skysight-inc/HackerNews huggingface dataset:
I don't think the Gnome/Unity/KDE split is nearly as significant as people find it. You don't have to support them all! I use KDE, and programs written for Gnome fit right in. As far as I know, there is no reason at all to depend on some particular environment exclusively; even things like notifications work uniformly across different systems.
Or rather, "Sorting with std::sort: 3 times faster than qsort".
It doesn't sound like you're looking for "obfuscated" code, which is what the links below show. But rather real code that's more complicated than slide examples.

I would look for random code people wrote, for example on github:

https://github.com/search?utf8=%E2%9C%93&q=sort&repo...

And then just look at the code and try to understand how it works. This result for example seems to implement basic functions and is well commented:

https://github.com/erlide/erlide/blob/6b836bcb0770d23c4471f4...

Hope this helps
> But what is the alternative to a non-distributions based gnu linux operating system?

A small core set of libraries that change _very_ slowly and arent intentionally obsoleted every few months. Think of Windows like slow, stable and supported for a decade. Distribution of apps decoupled from the distribution of the base. Never make an app update trigger a lib update.

> How do you manage the 1000 packages and their libraries and dependencies?

You dont do that at all. Developers to that themselves like they do on Windows and OSX. Every dev packages his own app and puts it either into the App store or distributes it himself. You manage only the libs and dont allow them to change fast or in an uncoordinated, chaotic way.

> What you're saying basically is that linux is failed.

From the point of a normal user, yes. For a normal user, it is not an option. Everybody I personally know who tried it, went back. The main reason for most of them was the insanity of application management. (And lack of hardware drivers and games, but thats not Linux' fault.)

> since I cant see another way to distribute and manage the massive amount of packages that sit on gnu.org.

Decouple libs and apps. Dont change APIs and lib versions every few months. Make the base a very reliable and slow moving target. Dont force anybody to change everything every few damn months.

> It is my opinion that the one who solves these problem is in for a lot of business-opportunities.

The problem is already solved, at least under Windows and OSX. Thats why Windows and OSX get all the desktop business and Linux gets none.
Isn't creating one of those Windows installers also complicated? To me, it seems even more complicated than packaging software for Linux, yet it has never stopped anyone.
Shouldn't he be using getrusage() instead of gettimeofday() in his timer code (https://gist.github.com/2057981)?
> a) How can you make standard-OOP-like method dispatch faster than vtables?

The JVM optimizes this by using (P)ICs, which are faster than regular vtables.

http://en.wikipedia.org/wiki/Inline_caching
TORTINE CAROTE E FINOCCHI
Seagate GoFlex Satellite reportedly getting firmware update on March 19th
The point is, unless you are using some macro magic in C, you'll almost always have to make such a compromise to get an abstracted out sort function.
No-one seems to be tying in DNS to all of this. That gives Google a signal aide from the link-graph and social that tells them which sites are being use and how often. Its power will increase vastly when IPv6 brings static IPs and Google then can say that you followed a specific link from your fridge and made no further DNS hits for 3 minutes, etc..
How to Care for Introverts
The semi-standard commercial solution for widget toolkits, excluding old software tied to something legacy, is typically to use Qt, which has both LGPL and (reasonably priced) commercial license options. Audio isn't really a problem for statically linked apps not doing anything particularly strange; it works fine in anything I've tried. Even ancient audio APIs in ancient binaries are transparently emulated through something-or-other in a way that "just works".

If you haven't used Linux in "many years", that might be the source of your impressions. I remember mucking with that kind of stuff on Slackware in 1998, but I haven't touched OSS or ALSA or whatever in a decade; it just does its thing under the hood. Audio even works fine when I run Windows applications under Wine!
Is there a linux equivalent of PC-BSD[1]?:

_Programs under PC-BSD are completely self-contained and self-installing, in a graphical format. A PBI file also ships with all the files and libraries necessary for the installed program to function, eliminating much of the hardship of dealing with broken dependencies and system incompatibilities. _

[1]:http://www.pcbsd.org/index.php?option=com_zoo&view=item&...
Sad but true: Napster '99 still smokes Spotify 2012
This was also explained in the book "Programming Pearls".
That's true to the degree that the implementation of those libraries does not require other things from the rest of the system. If they are just libraries of code, attached to nothing, sure.

But when they need integration with things beyond that? That's when it breaks down. That's when you need interfacing libraries that adapt one version of a library's interface to the next version, and very careful API and ABI design. I see that there's very little reason to take that approach for open source everywhere, but that kind of environment is essential for the stability commercial development needs.

Static libraries aren't the answer. A careful API and ABI interface to the core system, with managed compatibility from release to release, is needed. This is hard work; incredible amounts of effort went into making Windows 95 work as smoothly as it does, and some of the best war stories from Raymond Chen's blog date from this effort.

Things like preserving bugs in the moral equivalent of malloc to accommodate software that used memory after freeing it. This very concept - bug compatibility - is something that I see OSS community in general as being fairly hostile to, thinking that the software with the bug should be fixed, rather than making things work for the user. Of course the buggy software should be fixed; but making things work for the user is more important still.
Hands on: Firefox 11 improves syncing
How can one "limit branching", and "optimize for the second level memory cache"?
Couldn't you replicate most of C++'s optimizations by hand in C? Because that's what I always took to be the real reason C is fast--not because pretty code is fast, but because you can make the code as ugly as you want (hello instrinsics!) to optimize it.

For example, couldn't you just inline the relevant code manually in C? Sure it would be ugly, but it would be fast. Besides, in an absolute sense pretty much any C or C++ code is going to be ugly; if you want pretty code and a compiler that valiantly tries to optimize it, use something like Haskell :P.
You still package and build an application separately for each distro version. And then the community tests it before it goes to the stable apps repo. So broken packages (either by packaging, or by app not functioning properly) are unlikely to pass QA.

So if your package conflicts with something, either fix that issue or don't release for that distro versio.
Not really - optimizers are smart enough to get the same performance out of runtime-generic C code using void* and function pointers; after all, it's a simple matter of type inference and constant propagation.

However, that's only true if you let them do their job, ie use link-time optimizations or code inclusion (which is where most of the template performance comes from).

Including the source of qsort() instead of linking against a DLL blob might be enough to make the C code perform as well as the C++ code.
Performing the intersection of sorted lists is a well studied problem in information retrieval, so nothing new or surprising here...

The performance can be improved even further by for example using a compressed integer list with an embedded skip list or by using compressed bitmaps. Using sorted int32 lists is the naive solution :-)
I first used iTunes on Mac OS 9. Since then it only grew bigger, slower, more cluttered (I don't care about iP* devices, I wouldn't use them at any price).

For years I've found it much too big and clunky for my taste. VOX is indeed fine.
For most taxpayers in the US state taxes make up a much smaller portion of their total tax burden than federal taxes. So, overall, the tax burden in Washington isn't so much more regressive than a state with income tax.

You can have luxury taxes, but it's hard to match income tax if your goal is to have a fairly progressive tax.
If I don't like the license you use, I don't. Except when I have no choice, which has unfortunately often been the case due to natural monopolies or social pressure. A decade ago, that problem was Microsoft. Today it is becoming SaaS in the cloud (witness Facebook's natural monopoly on all things social).

Regarding devaluing developers by making the entire industry more efficient... you can't possibly believe that's bad for society. You sound like you feel entitled to a big paycheck and government granted monopoly protection for your work (that is what Copyright and patents and the like are, artificial government granted monopolies).

I disagree with that sense of entitlement. And as a result, I do think your so called rights (privileges would be a better word) should be restricted a bit. :-) But I honestly don't think it will harm you. Without a complete paradigm shift in how code is created, programming will remain a highly sought after and highly valued skill for a very long time. There are still so many unsolved problems out there, and people will pay to have them solved, no matter what the license and no matter what the legal environment.
Stamped concrete chicago
Decorative concrete contractor in Chicago IL? Sundek of Illinois (847) 392-3939 offers concrete overlays & concrete resurfacing for commercial & residential projects.
A Lean Story for Eric Ries at SXSW: MedChart
I don't know the details in and out as I don't use them. I care about privacy (no FB account) and openness (Free Software for ever). Apple is on a downward slope on both accounts.
Mapping the Infrared Universe - The Entire WISE Sky
I use Linux every day; I haven't used desktop Linux much since a fairly unpleasant experience with the original Eee PC (701, in 2007).

But package management (I live with Debian apt-get and friends) is a bane of my life. Generally, the binaries that come when I install a package are too old, or don't have the right compile-time options configured, or there is some dependency missing that I don't have installed and is for some reason missing in the repository due to bitrot. It's usually more reliable to download the source, configure, build and install it the old-fashioned way. That also means fixing build errors, tracking down missing libraries, and generally a whole load of work I wouldn't trust an otherwise fairly competent software engineer to do, never mind the average user.
The same is true with undefined. You should use void 0 rather than undefined because undefined is just a normal variable which happens to be undefined unless somebody defines it, while void 0 is always going to be undefined.
> Isn't creating one of those Windows installers also complicated?

Not for years now, no. The process for creating an .msi for a basic stand-alone app in Visual Studio is pretty simple and well-documented.
Building an opportunity without a product
So why do it?
I have no idea why people do it. I'm just glad I'm not developing software for apple products.
HP Pavilion dv6-3091tx Battery
That's the way I solved this particular problem. No iTunes -> no account -> no problem. As I don't like what Apple products are becoming, I advise people to choose this solution. Haters (fanbois) gonna hate, etc.
of course you can. the whole point is that you don't have to.
On the other hand, being able to install software so easily with package management is a huge benefit of distributions. Perhaps the solution is to create a new package management system for a desktop distribution. A system which ensures that when upgrading an application only its personal namespace (libraries etc) changes, while other applications remain untouched. Libraries are second-class citizens, almost. That way we get the benefits of packages and libraries, but each application is logically isolated from changes to any others.

I very much agree with the idea of a slow-moving core, though. That's how I've tended to use Debian: a stable foundation upon which I can install less stable higher-level software (the things I actually interact with). Of course, this doesn't address the distro fragmentation problem Ingo is talking about.
Actionable definition A Players and how to hire them
Cue comments about how obviously this problem could be avoided and this person is doing something wrong.

Never mind her explanation of how this happened and how it's a real problem and how real users (far less technical than the author) could run into problems.

This is a mess that happens with most companies that have been in business for a while (Microsoft, Google, Apple) and their various id schemes + services over time.

It's a real problem Apple could solve.
> but they're in a brand new market on brand new devices.

But they still had no problem starting with an ecosystem with zero apps. Now they have hundreds of thousands.

> I still think the main difference is that you have to install Linux yourself.

Over the years, I've had several people, whom I talked into checking out Linux, give it up and go back to Windows because they refused to accept that they have to upgrade the whole distribution just to be able to install new versions of single apps. Did you ever try to explain a Windows user what a "backport" is, and whats it good for, and why there are none on Windows and why he can he can install whatever app and whatever version of an app he wants on Windows, but cant on Linux?

> Your average random laptop buyer who just spent $600 on a laptop from Staples would be able to use Linux perfectly well if that's what his laptop came with

For 6 months, then he wouldnt be able any more to update his apps.
It doesn't say python is faster than C++, just that it's easier to write.
You are right, the same argument can be made, and often it should be made.

As an example, a lot of people are pissed off that they can no longer fix their cars themselves because of black-box designs and software restrictions. The ultimate result of that sort of thing is a monopoly on repairs and upgrades, where only approved mechanics who promise to only make approved changes can do useful work. This may be good for the bottom line of the car manufacturer, who ultimately wants you to buy another car, but it is not good for society.

Software is also a special case, in that it is rapidly becoming our society's primary means of communication and decision making. Some things, games and toys, don't matter really and are not a matter of great concern. But other things, operating systems and communication platforms, social networks, voting systems... it can be argued that allowing these to be closed and proprietary is something we should never accept.

Also, keep in mind that Intellectual Property is not a natural right - it is an artificial construct, a monopoly granted by government to encourage innovation and for the benefit of society. If it turns out that it does the opposite, hinders innovation (patent wars, anyone?) and disempowers society (censorship on Facebook?), then it has stopped serving its purpose.
The Danger of Having Only a Single Story - Chimamanda Adichie (video)
Tell HN: I would love to use Duck Duck Go, but it's just too slow
I have been endeavouring to use DDG for some time now since I decided that is not living up to 'don't be evil', but it's just too slow.

Do you guys have any tips to speed it up, or is it a server side thing?

Do you have a similar problem?
Android has pretty good mouse and keyboard support already. Try one of the Asus Transformers in laptop mode, for instance. Keyboard shortcuts, mouse cursor, two-finger scrolling, all works as you would expect on a desktop.

High-resolution apps are still somewhat lacking because the larger tablets haven't sold that well, but I hope this will improve.
PDF format is dead end for e-publishing (TeleRead)
WebOS Open Source Roadmap Update
This example highlights the reasons to avoid function pointers when possible.

An apples to apples comparison would use a handwritten sort routine for C instead of using a library function: STD::sort is closer to writing your own sort and putting in the function calls than calling an external function.
But 0*0 is 0
I feel the same way unfortunately. I really wanted to like DDG but compared to Google I just found it a little too slow.

I really like the bang syntax and well.. the search engine as a whole I guess. I think it is the lack of Google style ajax fast content loading which makes adjusting searches just seem really slow.
Why not all of them? OBS makes this easy. Big projects can run their own OBS, and for us others there is the public instance provided by OpenSuse. Builds many versions of all major distros.
If there is a sales tax, an inheritance tax, and a property tax, who cares? If you are a millionaire that lives like you make minimum wage, those are the type of taxes you will pay.

The rich secretly like the progressive tax code and all the exemptions. The thicker the tax code the more loop-holes for them.
it's just Ubuntu, not all Linux. unless there are other distros with Unity and 6-month cycles I don't know of.
"The pixels you buy will be displayed on the homepage permanently. The homepage will not change."
Same on the iPad 2.
There are "core" linux distros, like Slackware. There are many attempts at autonomous apps distribution like
zero-install and openpkg that mostly work, and probably would work fine with a reasonable effort backing them.

[1]: http://0install.net/
[2]: http://www.openpkg.org/

Of course the problem is that the big distros (redhat, debian) can't be bothered to care.
Couple other ideas:

Optionally bundling specific versions of libs (or compiling in statically), and placing in user's home directory, setting path to look there first (maybe that's what you're saying exactly?)

Stop using the same tool for updating userland apps and system core specific stuff. Same app for updating "/bin/ls" and for "audacity" is, imo, at the core of the brokenness. These are different types of apps with different areas of responsibility, but we lump them all together in one tool and process.
Coupling the updates of single apps with the updates of the whole desktop or framework and libs, is just plain wrong.

You don't have to do all that to upgrade a single app. In fact you're thinking of it backwards. Distros mean that when you upgrade the OS or libs, you get new versions of the apps for free.

You can still configure && make && make install, or grab a statically-linked binary, or any other method of getting Linux apps to run.
Wait, why did you create US account at the first place!? You can change the country and the payment info right?
> You can still configure && make && make install

You aren't serious, are you?

> statically-linked binary

Nobody builds them.

> any other method of getting Linux apps to run.

There are no other methods.

> Distros mean that when you upgrade the OS or libs, you get new versions of the apps for free.

That in turn means that if I dont want to upgrade the OS and the libs, I cant get new app versions. The collective refusal to acknowledge that this is a problem is what is holding back (aka killing) desktop Linux.
Gists also don't show up in some (most?) RSS readers.
but but but....

"you'd have duplication of files!"
or
"you'd have to update multiple libraries when there's a security patch!"

I didn't know about pcbsd, but I've espoused similar ideas to my linux friends years ago, and was generally met with the one of the two objections listed above. I think they're both bad arguments, but it's what I encountered the most.
Our speed varies a decent amount by network location, and it is mainly server side. We are aware of and are actively trying to speed it up across the world, however.
Actually, your post is making me optimistic.

On Linux, the 4 most common API layers encountered by an application are:

1) system calls
2) standard (and not-so-standard) libraries
3) X11
4) d-bus

#1 is notoriously stable. Linus often posts quite a vehement response to anybody who proposes breaking #1.

#3 was for a long time, TOO stable, it wasn't taking advantage of new developments in hardware and design. The breakup of XFree86 freed that up.

#4 is relatively stable because it's a cross-distribution partnership. They're designed to be the same across multiple distributions which by necessity makes them stable.

The problem are for Linux is #2. Most standard libraries are actually very stable on the micro level. The problem is the vast area they expose: if a single backwards-incompatible change can break your app, it's a problem if there are a million things that can potentially change.

Windows & OS X applications "solve" this problem by shipping their libraries with their applications.

I think Linux has a potentially even better solution: simply allow multiple versions of applications and libraries to be installed simultaneously, a la rubygems & bundler. You'll get all the disk space savings of shared libraries at the point of initial install, which will slowly erode as users install new apps, upgrade some apps but not others. But who cares? Disk space is cheap, but more importantly, if the user cares he can do something about it, only upgrading applications when the whole application upgrades.
The Eee PC Linux install was terrible. I installed Ubuntu almost immediately.
Wigan Athletic vs West Bromwich Albion live Premier League March 17, 2012
Enjoy Premier League match Between Wigan Athletic vs West Bromwich Albion match. Please do not miss the today’s great match between Wigan Athletic vs West Bromwich Albion. i hope you will get so much fun by watching this very exciting match between Wigan Athletic vs West Bromwich Albion live Premier League 2012 online streaming,Watch Premier League Wigan Athletic vs West Bromwich Albion live online on 17th march 2012 .
what I prefer in this posts is the interesting discussion coming with the article. It seems attention whores and trolls have not yet reached g+, it looks pretty sane for now.

mode religious:on
please g+ try somehow to make a good karma system to keep the NSR low.
0-install (http://0install.net/) or even better - Nix packaging system (http://nixos.org/nix/ - they claim to be a purely functional package manager)
The extent of my experience with R was a couple of somewhat introductory statistics courses, so I’m not the best person to answer probably.

But I like dealing with numpy/scipy much, much more than R. Python as a language is I think much better designed, and numpy is a really nice tool for interacting with multidimensional arrays. When I write Python code, or read Python code written by anyone competent, I find program intent very easy to design/follow. Most of the R code I’ve seen “in the wild” is kind of a mess, because it is written by non-programmers many of whom have little experience or concept of code style. Additionally, as soon as a program has to do anything other than statistical analysis (examples: text munging, internet scraping, network communication, dealing with file formats, user interaction, etc.) Python is miles ahead.

The big advantages of R that I saw: (1) it has become the tool of choice in the academic statistics community, meaning that there is quite a lot of existing code for doing various sophisticated things, some of which you might have to implement yourself in Python, (2) it has some really nice graphing tools, (3) there seemed to be a few examples where a particular few lines of R code were more compact and clearer than the equivalent Python (can’t think of anything off-hand though).