skysight-inc/HackerNews huggingface dataset:
You nailed it. Either way, I think the most important thing is to go out and talk to people. Our mental models are pretty limited in that we see and feel what we wish to see and feel. Talking to people helps open up whole new ways of looking at things. There's always another perspective you failed to see.

I recently came across the Stanford design Bootcamp Bootleg [1]. It outlines the whole process for getting from an itch to a working product. And they obsess over empathy. It's all over the Bootleg. Interview potential users, learn how they currently solve the problem you're trying to solve and show them how your idea could help them.

The Bootleg is highly recommended. Even if you don't follow the practices it describes, it pays to have those mental models.

We were brainstorming recently. And we did this entire exercise. We went to meet students, shop owners, teachers and even some folks at the local administration. It was extremely tedious but our efforts paid off. We gathered insights that range from pretty obvious to mind-numbing and some even rather stupid.

We then made a small web presentation [2] of the most interesting ideas and asked people to vote and give their suggestions. It has been a very rewarding experience.

[1]: http://dschool.stanford.edu/wp-content/uploads/2011/03/Bootc...

[2]: http://idea.diwank.name
... but not the interactions of google's users with google's services.
When writing profiling code (https://github.com/vstefan/Instrum/), I use clock_gettime(CLOCK_MONOTONIC) as it measures elapsed time from an arbitrary reference point.
While I agree that this is totally possible, are there any shipping, non-buggy optimizers that do this? Sometimes C/C++ seems purposely designed to make the compiler/optimizer's job difficult.
Ask HN: prices of electronics in Europe
I noticed in the "startup in Ireland" discusion, the comments mention that electronics were expensive there. They are expensive here in Paris, too. As a general rule, whatever the price is on Amazon.com, one can just just replace the "$" with "€".

I was wondering if that is caused by decreased demand, higher import duties, less active shipping lanes, or what?

I tried to see if this had already been discussed, but the keywords in my question made a meaningful query challenging.
Hi Jim. I'm the founder of a small web app called Skimling. It allows students to have their essays graded and marked for feedback by teachers. It hasn't done so well, and I'm looking to move onto a new project. If you're interested in hearing more, email me at jack@skimling.com.
Exactly. std::sort does NOT use quick sort. So all he's doing is comparing two different algorithms. It has nothing to do with C vs C++.
Android interface design/impl,because UI/UX matter even more on small screens
But the "evil" aspect of Napster wasn't that it was P2P: it was that it didn't return any money to the creators.

No, it's because it forfeited the control the labels had over the music. They've showed again and again that they don't mind losing money to maintain that control.
Yes; first I reenabled the underlying UI so that I had access to a console; soon after I installed Eeebuntu when it was put together by the community. I never used the original limited UI for more than perhaps 60 minutes total.
Assange 'to run for Australian senate'
I've been using Linux since 1993, and back then, the Linux OS and desktop were far superior to Windows 3.1.

Then Win 95 came out and that had a decent desktop. I remember when the KDE people started talking about a desktop for Unix and people didn't get it, but when we saw the beta it was like... Wow!

Then Red Hat Linux didn't like the license of KDE, so they had to create Gnome. As a result, rather than having one good Desktop, the average Linux has two half-baked desktops. This fork has wasted people's energy and been a distraction away from an excellent experience.

Another example of this is sound. I don't know how many incompatible sound APIs exist for Linux now, I know it's more than the fingers on one hand. The consequence of it all is that often sound doesn't work and unless you're a crazy enthusiast you might never get it to work.

I was a Linux zealot until 2003 or so when I had a job that had me using a Windows machine a lot, and by that point there was Win XP which was a huge improvement over Win 95.

I still use Linux on servers, but desktop Linux has largely disappeared from my life. Every so often I try to install it here or there, but I typically find the experience disappointing. I was a Fedora fan for a long time, but Fedora became increasingly finicky about where it would install. I switched to Ubuntu, but every installation ends up having some serious problem.

For instance, Ubuntu installed just fine on my PPC Mac Mini with the exception that the fan runs full speed all the time and the machine sounds like a vacuum cleaner.

Windows and Mac OS have been on a general trajectory of improvement -- sometimes there are changes you don't like, but the overall direction is good. Linux did, after years of struggle, get a stable multiprocessor kernel (2.6) but other than that I get the feeling Linux has been going backwards not forwards.
Of course there are exceptions. Reddit is a pretty good one of the parent not killing the acquisition. Although it's spun out again. It definitely grew immensely under Conde Nast and wasn't quashed.
Based on non-persistant disk IO tests on an EC2 instance, yes, it appears you are getting a raw disk.
The fall of Big Paper
> Adding repositories? Already too late. Touching the command line?

Nope. As simple as clicking a link with special URL scheme, like `apt+hXXp://archive.canonical.com?package=acroread?dist=feisty?section=commercial`

> This is all compounded by the fact that there is no app bundle.

I'm all for the bundles (which single-app repositories, actually, are!), but I want them to be non-monolithic (i.e. contain multiple separate packages).

I don't care about disk space — if I'm that constrainted with disk space that's probably another story that'll probably never happen to most ordinary users, having terabytes of storage. But I certainly care about bugs, and if libXYZ 1.2 has a critical one, I want my system to be free of that version ASAP.

And I don't care that you've never tested your awesome app with 1.3 — it's better to be possibly unstable than certainly unstable or, far worse, vulnerable.
Loop unroll for limit branching.
You can sort what's in cache, then load a new chunk of data into cached and sort it ... then merge the sorted chunks.
every once in a while some one would come out with this kind of stupid study. please do not post these results any more, it is just a waste of time.
Eval breaks both JIT[1] and garbage collection [2] (unless used very carefully). It also affects Google Closure Compiler [3]. What is even better - it won't ever be fixed, at least not in the terms of performance.

[1] http://echo.nextapp.com/site/node/6097

[2] http://stackoverflow.com/questions/5368048/how-are-closures-...

[3] http://groups.google.com/group/closure-compiler-discuss/brow...
JuiceTank a iPhone case with charger | GadgetMAG
BKF Windows 7 Restore Tool
Get BKF Windows 7 Restore Tool from SysTools which is reliable tool to recover corrupt Windows BKF file and easily restore old Windows BKF file in Windows 7 when you unable to restore XP BKF data in Windows 7.
I'm annoyed by Pivotal's interface too, but the intro video from Planbox didn't really impress me much (maybe because I work at a really small company and that level of hierarchy and customization probably isn't relevant to us.) Do you have any particular examples of what it does better than Pivotal?
vim -f +'syn on' +'run! syntax/2html.vim' +'wq' +'q' [file]

produces file.html

Or, use perl's Text::VimColor
http://search.cpan.org/~rwstauner/Text-VimColor-0.14/lib/Tex...
Trello for Android: The unofficial app
One way to limit branching is to try to make applications of each operation as temporally contiguous as possible. That is, rather than take each data item and apply each operation to it, structure the operations so they can each be applied to the entire data set, one after the other. The branch predictor is happy because you're predictably looping over a simpler piece of code. The I-cache is happy because you're looping over a smaller piece of code.

Optimizing for the second level memory cache means making your data access patterns predictable (the above suggestion helps here, too) and keeping your data compact to get as much use out of each cache line as possible: Do you really need a 64-bit size_t to store an index into an array that will never be larger than a few thousand elements?
I am weirdly excited that there is exactly one Google hit for the word "hrirachu".
You said you stopped pointing people toward Linux because of the distros. But distros only add ways to get software. You don't have to use their package management at all. If you want to install a new version of an app, with or without the help of the distro, what better way is there to avoid dependency hell?

Edit: Central-repository installation methods I've used: python easy_install, perl CPAN, Ubuntu PPAs (which are a way to add 3rd-party apps to your package manager).
The Best Alternative File Browser for Linux
Yeah, my sister pointed that out to me. It's a fairly serious concern. (Coincidentally, that's probably where the term "bird brained" came from...)
Trello is great, the interface makes me a lot happier than Pivotal, but I think it's more suited for something like a big data collection and processing project, where you have a lot of little pieces to keep track of. It doesn't seem like it would be that great for software development. Correct me if I'm wrong though, please.

BTW I thought I read someone comment somewhere about being able to split checkboxes out into separate cards, but I couldn't find any other mention of it. Can you do that? That's one thing that I thought would make Pivotal much better.
The problem isn't that you have to update multiple libraries - it's that you have to rely on each application developer to release an update when there's a patch for one of its libraries. That simply won't happen in many cases.
I think it's a little unfair to make a comparison to something that is essentially illegal against something that is not. I know Spotify has it's flaws both in its business model and catalog but as someone who has used virtually every illegal filesharing method going in the past and has now been converted to Spotify I think they should be given a little more credit.

It's not the fault of Spotify that the collection is limited. At least they are trying to move the music industry into the future - whether it will work or not who knows but I'm sure we will all look back in hindsight and see Spotify as the pioneer of whatever comes.
Nine months in trade school. Job guaranteed.
Untethered jailbreak for new iPad shown on YouTube, not quite ready for download
Part 2, where he discusses his solutions, is more enlightening I think.

He's dead-on about the impassable problem of package updates affecting other packages. Having everything sandboxed with a general permissions system for directories instead of per-file is also better (this is how MacOS wanted to work before OS X). A free and open mesh network with reputation-based security is also the future.

But hey, linux is wide open, if these are the changes that are needed, we will see them.
So just because Napster had built in chat and a wider illegal catalogue it becomes better than Spotify eh? Also, why would I want to know the personality of some ramdom guy on the other side of my p2p connection?
This is mostly a fluff piece with absolutely nothing new or interesting being said.
Up until very recently, I was a long-form narrative non-fiction feature (:)) writer at a very prominent Israeli magazine; I'd like to share a bit of my experience and respond to the remark about "the problematic nature of narraive jounalism".

I have always considered Truman Capote, Tom Wolf, Terry Southern and their ilk my heroes and sources of inspiration, even though I have been well aware of their use of composite characters and other "embellishments" that are frowned upon in modern magazines and newspapers. While I have never created a composite character myself, a couple of times I did describe a composite scene: say I had spent a week with my subjects and one night one of the characters made a remark at dinner, and the next night someone else said something else during dinner, I chose to recount those two events as taking place the same night during the same meal. I made that decision (which I'd discussed with my editor) becaue either the two events occured on two different nights randomly, and could have just as easily taken place on the same night, and I didn't want to interrupt the flow of the story or the reader's image of the scene, or, they may have been a good reason for these two events to have occured separately, but that reason was complicated, and explaining it would have detracted from the story. Did I do a disservice to the truth? I don't think so. Here's why.

To explain it in terms familiar to the readers of this forum, journalism is a "reverse problem". The journalist's job is not listing facts, but extracting a model of the truth from a sample set of observation data. This is a very difficult problem. In contrast to what many critics think, a good journalists must not only stick to "the facts", because the facts are simply a biased sampling of reality. Sticking to the facts is just like connecting sample points with lines - it's called overfitting and it's as gross a mishandling of the truth as negligent interpolation or extrapolation is. Neither sticking to facts nor "completing" them is "the truth". A good journalist is one who is able to recreate a good model of reality, a fine approximation of it, by relying on observed facts as well as on gut instinct and genuine emotion, and who's able to convey the model as clearly as possible to his audience, introducing neither outright fabrications nor irrelevant and confusing facts.
Because Find my iPhone is only meant to help you find your phone if misplaced, not stolen.

Law enforcement needs static, printable data in order to do their job, because evidence needs to be shown in court and Find my iPhone's information is only real-time, not historical.

Or heck, you can always do what this guy did:

http://preyproject.com/blog/2012/02/lost-found-case-v93l
Unfortunately, with the advent of TextMate/Sublime Text 2, I'm always disappointed when returning to VIM's syntax highlighting. It leaves a lot to be desired.

I'd love a JavaScript plugin to parse TextMate theme files and highlight blocks of code.
What distro do you use? It's very much not my experience on Debian (Sid).
> This is simply false, there are plenty of complex apps with varying degrees of usefulness but they certanly don't reduce to 80's game clones and few screen apps. And even if it was true it's not a result of anything intrinsic to the app model.

If I am writing "mostly", I mean "mostly" and if you refute "mostly" with "there are plenty of" you are missing even the basic tenure of a sane discussion. Check the top 100 apps in app stores/markets, and you will see how wonderful those sandboxed apps, you and ingo show us as examples of success. They are "mostly" my-web-page-as-an-app-now hype.

You miss Ingo's point, if you don't read his paragraphs, and carefully read that he compares Android/iOS core and apps to 20+ years of Linux kernel /desktop and software from various architectures, programming languages and technologies. He even claims their core is stable missing the point how young they are. The proud iOS core cannot go for more than few devices and the number of deficiencies/issues people had there are also interestingly high.

Finally, and if you really are doing all those compilations to get the latest version of a software, you might consider better considering your options of distro and package manager. Clearly you are doing something wrong there; and if you please mention what you compile on which distro and version Someone may able to understand what you are trying to achieve, and tell you what you should do instead.
Funny to see so many people running with this story today. As expected the comments in /r/Android are miserable.

This feature has been in CM9 since... before there were nightlies. The Kangs at the end of December had this feature enabled. It is literally a single check-toggle in the Settings app. It takes... all of 3 seconds to enable.

And yes, as anyone who has used root before knows, the SuperUser app limits permission to root and will ask each time if you choose for it to
>STD::sort is closer to writing your own sort and putting in the function calls than calling an external function

No it's not, that's like saying that using inline operators for vector addition is the same as manually inlineing the code or that manually unrolling a loop is the same as the compiler doing it - by that logic everything is expanded to assembly therefore you should write it in hand optimized assembly to get a "decent comparison" (or LLVM if you want portability) and conclude that assembly is "faster" than C/C++.

Of course there is a reason C++ is faster - it's not magic - it compiles and runs on same hardware - but the point is that it has better abstractions that deliver more for similar code - C provides weak abstractions that don't make this sort of optimization easy for the compiler, so unless you like manually rolling out a sort function every time you need to use it it's actually slower than C++. Same goes for collection libraries, small vectors (eg. 3d vectors), etc. And it's worth pointing out because a lot of people assume low level == fast.
It takes 3 seconds to check this toggle box. It is a more sane default and frankly, despite loading new nightlies of CM9 every night, I never, literally never, use root.

Actually, now that I think about it, I might reinstall Adblock and use it, but Chrome for Android is so fast, I might not bother.
Package managers certainly need improvements.

Repositories must declare what packages (or, better, package name prefixes, like `foobar-*`) they intend to host, and package managers must restrict them from installing something not from this list.

Then you can, for example, host your own libsqlite3, but it'll be namespaced as foobar-libsqlite3 with some `Duplicated-By: libsqlite3 (tested with >= 3.7.3, <= 3.7.7)`.

[Added after some thought] Or, better, let's just namespace package names, based on DNS. I.e., a repository at sqlite.org can provide org.sqlite/sqlite3, but not org.kernel/linux2.6. Obviously, trusted repositories won't be subject to such restriction.
I don't agree with how you define "apples".

I would define an apples to apples comparison as "How would a typical C developer write this test? How would a typical C++ developer write this test?"

A typical C developer would use a library function. A typical C++ developer would use the stl.

This was a great article for me because I am actually about to write some very performance intensive data manipulation code that will use sorting and other similar algorithms. I was thinking about doing it in C because I always mentally associate C with performance.

This article is a reminder to me that although I could eventually laboriously hand-tweak the C to be performant, there are things in C++ that will perform better than C without my even having to do much optimization, if any.
std::sort isn't guaranteed to use any particular algorithm, but IIRC quicksort fits the requirements and hence has been used in the past, even if introsort might be more common now.
I'm not really a big fan of R but I have found it to be advantageous to use for some things. In particular, the big advantage of R is the huge user community. You can find a huge number of packages to use for many non-trivial tasks. Also the graphics tools are in my opinion superior to scipy.
> But distros only add ways to get software.

Without distros, the way to get software is unbearable for Windows converts, where it is just "click, click, done."

> what better way is there to avoid dependency hell?

All distros agreeing to ship one specific version of a lib, so that app devs can target that "standard" version instead of daily changing upstream versions.

The dependency chaos is a consequence of no distribution being influential enough (or the major players not being able to agree) to slow down the interdependent moving target that is the library space. So app devs dont care what distros ship and only target the upstream, and the upstream lib devs dont care about the overall ecosystem and just ship whenever they feel like shipping.

Nobody of them seems to care about the user experience of the end user, for whom getting on Linux seems like building on a shaky ground. And then they both pretend to not understand that a majority of end users would rather pay for Windows and have a decade of peace of mind and hassle free app availability, than moving for free to a earthquake prone area.
I thought browsing other folks libraries was pretty cool. As an artist, I'd look myself up, and see what else those people listened to. Pretty neat and I've yet to come across anything similar. I haven't had to the time to investigate the other p2p music platforms since then, so probably others have that feature...
I didn't test it with qsort() specifically (my use case was merge-sorting a linked list), but both gcc and clang are able to perform such optimizations.

I would be surprised if other high-performance compilers were unable to do so.
Reading your blog's "About me" section makes me sad.

"I am working as a freelance software architect, IT consultant, ..."
You are correct this isn't great - lets move to email.
danny ---- dannygagne ----- com

As for your objections.
A pragmatic approach, where we only look at outcomes is flawed in a few interesting ways.

1. We cannot know for sure the effectiveness of any given action so it's still a guess.
2. It's an ends justifies the means world philosophy
3. It has no moral basis, anything is good as long as the end result is what you want.

I prefer to take a process based philosophy, if each step along a path is moral then the end result is moral even if it's negative or suboptimal.

For instance, the argument about creating a better society one could easily be used for a totalitarian eugenics program.

Libertarians aren't against public schooling, just the manner in which it is funded. If you look at how much government schools cost and how poorly the perform, I think it's clear that private solutions are superior. Since the market allows experimentation and gives people a choice on what type of school they want instead of a bureaucrat deciding for them. This can be replicated through school vouchers/school choice and relaxation of standards.

I kind of meandered off topic, but I think it boils down to a faith in people to create what they need. If people value school, which they do, then they will find a way to provide it.