skysight-inc/HackerNews huggingface dataset:
In general a "hypothetical person" probably isn't going to be a big fan of any one technology, platform, language, etc.

There are too many choices and everything is fragmented to the point that it's hard to find any common ground between ruby developers, js / jquery developers, old school c++ hackers, bash-scripting sysadmins and even perl gurus.

Emacs definitely isn't the most popular editor I've ever used though. When someone asks me why I use it, I usually give a short one minute demo where I macro a bunch of changes, show git integration, multiple buffers, and use some pre/post save hooks. Few editors come close to matching Emacs feature set.
Two theories of software development
This post and the attention it garnered will bring him more customers than he'd hoped for (customers who will think about what he said, and maybe pitch in that dollar). Whether it was intentional or not, it's a clever marketing ploy I find.
Lead Generation Tactics: A Recipe for Success
I've found the "developer time is more important than machine time in 99% of cases" argument to be particular effective when preaching python to the C++ masses.
My 24hr HNSearch API Contest Submission - HNTop100.com
I am proud to present a submission to the HN Search API contest. My entry grabs the top posts of HN from all time based on either upvotes or comments. You can browse through the history of the highest ranking HN posts ever!

This took way long than it should have to finish on account of my having to stop and read all the interesting articles. Hope you enjoy this as much as I do!

http://HNTop100.com
Ask HN: I call myself a "computer programmer", how about you?
When I'm asked the "what do you do" question, and also on official documents, I call myself a computer programmer. Not a "software engineer", not "IT", not "computer scientist".

I do this because I think it reflects what we do. And what we don't do. I wouldn't trust us to build bridges and buildings like real civil engineers. Very few of us are discovering new theories about the world like scientists.

What do you call yourself?
Monthly eNewsletter Featuring Blogs from Industry Experts
You see some very cool, informative, deep conversations on Reddit and HN from time to time. The main missing thing is the userbase.
For me, addressing underlying health issues has helped. I also read a book a long time ago about "psychology" (for lack of a better word) which talked about how people have different profiles for what stuff they will do in varying amounts. You figure out how much of different types of things you need to do and find a lifestyle that gets the results you want (in terms of money or whatever) and do that.

Real life example: I'm a middle-of-the-road extrovert, so I need a certain amount of social interaction but I have my limits. When deprived of the minimum necessary amount of social interaction, my functioning is impaired. When I reach my limit, it's time to stop and go be alone for a bit. That doesn't mean I'm a flake and now abandoning folks or some such. It means my "budget" has been spent for this particular thing and I need to recharge before I can do more of it.

Folks on HN sometimes talk about being only able to code X number of hours per week and no more, so they can't manage to work full time as a coder and also do a side project. Others talk about needing to code a certain amount and being unable to just stop until they have done a certain amount of problem solving or the like. Some "needs" can be channeled somewhat into different pursuits but when the limit is reached, that's all you can do. So maybe part of the issue is that being in college uses up so much of what you have to give that there isn't enough left to finish something else on top of it? If so, then doing a start-up full time might work but trying to do it on the side might not.
DONT. STOP. NOW. By all means get a job to pay back debts etc but KEEP GOING. :-) . that tuition you just paid will be for nought if you don't start your next company soon. (not suggesting you were going quit but beware that in your situation the worst thing that could happen is that you go get a "comfortable" job.)
The Ultimate Recap of Global Tech Progress in Six Minutes
Facebook, YouTube couriers of Syrian uprising
Thanks for the links. This actually relates to a paper that I've been collaborating on.

BTW, Isaiah Berlin's concepts of liberty featured quite strongly in the Adam Curtis documentary series The Trap:

http://en.wikipedia.org/wiki/The_Trap_(television_documentar...
I think there are three more reasons to do unit tests I wish the author had mentioned:

1. Not only do they prevent you from messing your code up because you forgot how it actually worked, they prevent you from having to think about how and whether you've messed something up. I find this to be a creativity boost.

2. By helping you maintain the same level of quality, they ensure that if you don't add any new features but keep fixing bugs (and unit testing the fixes), your bug-count will go down. That's a good property for a system to have.

3. They give you the freedom to quickly and securely change your design, which in turn means you can keep improving quality, which in turn means you maintain higher productivity in the long run.

With this in mind the it seems the author's suggested alternative approaches fall short of what unit tests can do.
My 14 year old self was instantly entranced by the immediacy of being able to program the ZX81 and the BBC (or Electron). But my 14 year old descendant is entranced by the internet, the Playstation, the iPod Touch, among much else and hasn't - yet - got around to being entranced by the idea of trying to make simple things for himself. It's more about motivation.
Javascript, node.js and for loops
I find unit tests are useful due to a property they share with types, paired programming or formal specifications: you are forced to describe your program in two different "languages", and therefore have to think deeper about the problem. All of the aforementioned methods force one to code, as well as describe the intent behind the code. E.g., a unit test forces the programmer to describe the relationship of input/output, while the code describes the actual mechanism of linking input with output.

Code is always the most fundamental "description" of a program, but all the methods have some descriptive power. The process of having two separate descriptions should lead to a higher quality output, as divergences between the two show a possible misunderstanding of the problem, and hence a source of bugs.
Read "The Little Kingdom" by Michael Moritz. While it is not only about Steve, it does talk about him quite a bit. It is a great read.
For the F# developer, WebSharper ( http://websharper.com/ ) seems to offer a great implementation based on the Formlets abstraction. For some theoretical background, have a look at http://groups.inf.ed.ac.uk/links/formlets/ which has some articles describing the Form abstraction by Philip Wadler, et al.
How to add an instapaper text button to your blog
What about the equivalent of find and replace (delete) based on pattern matching? Something along the lines of, extract a sample of the cancer, create a virus that binds to it with high specificity and kills it, then deploy.
This deal is over 10 years old.
>>And while you're at it, don't use HTTP authentication either. Use signed queries that authentication each API call individually.

Beyond server-server api calls and authentication, I'm curious to know what folks think about authentication and individual-user client apps making api calls to a server.

If you build a web service whose REST apis are only intended to be consumed by customers of your $0.99 mobile app, one option is to use no authentication at all. This means that a third-party may potentially write another $0.99 app that "steals" your web-server resources.

Has this been a problem and what (if any) schemes (e.g. digest auth, facebook login etc.) have you used to mitigate the problem. (facebook login etc. doesn't fully address the problem unless you can distinguish between facebook users who have purchased the app and facebook users who haven't purchased the app )
In agreement with the article. Without bringing about an internal conflict, there can be no mental or spiritual growth.
It is so low that any additional lower rating would be complete anarchy.
It's actually even worse than that because they do something called washing out placebo responders. Essentially before the study begins they give everyone a placebo, and then eliminate those who respond best to the placebo from the study. So that 82% figure is only compared with the people who didn't receive the most benefits from the placebo. The most ridiculous part is that the FDA has let the pharma companies get away with this for so long they now argue that it's not unethical because everyone else is doing it, it's just the standard practice.

Robert Whitaker has a great explanation of the implications of this in his book Anatomy of an Epidemic, which is one of the three books this article is reviewing.
Article in nature for the inclined http://www.nature.com/nphys/journal/vaop/ncurrent/full/nphys...
Most file-level encryption that I'm aware destroys benefits of blocked data. For example, changing a few bytes in an encrypted file will cause MANY bytes to change in the actual file on the disk... at least with ecryptfs and truecrypt. If there is an encryption scheme that works well with striping, I'd really super appreciate you pointing me in that direction - it would greatly help with a problem I'm currently trying to solve.
Will work for Bitcoin
Everyone working in teams needs to share information about what they're doing with the rest of the team, so that they can work together.

If the simplest way to do so is a brief "Yesterday I built 90% of Foo, but hit problem Bar, today I plan to finish Foo and start implementing BaseWidget" then that's great.
I asked some non-programmers about this recently and they all said that "software engineer" sounds professional and they know what it means. "Computer programmer" sounds very old fashioned to them.

If anyone thinks that I work in "IT" after I tell them I'm a software engineer, I stop talking to them.
Love the question. :) A few ideas:

- You're not putting in enough effort.
- You give up and move onto the next thing too quickly.
- You're stretching yourself too far beyond your current abilities.
- You're not analyzing, criticizing, and actively improving yourself well enough.
- You're lacking in useful resources, such as good books or a good mentor to
help you overcome hurdles.
- You're picking things merely because they're uncomfortable and cannot be
improved upon (e.g. sitting on a knife).
Static typing doesn't have to force you to fix them now, just statically-enforced typing. An ideal (and achievable) language would be capable of checking types statically but still allow you to run programs that contain type errors.

I know virtually every static type system in use today doesn't do this, but it still bothers me when people just give up and advocate dynamic typing for this reason.
> I'm definitely one of those "The people that pirate your software, never would have bought it in the first place" believers.

I think that's only true for X% of the people who pirate. Pro-piracy groups like to assume X=100% (that people who pirate would never be persuaded to purchase a copy), anti-piracy groups assume that X=0% (that every pirate can be persuaded to purchase a copy). The truth is that X is probably somewhere in between.

Unfortunately there's no public data about what X really is, or even anything that could narrow down the range a little bit.
This is really cool; very impressed!
I'm not sure if it works anymore. But with the App Store you can download on anyone's device after you pay for it once. For example, I buy Angry Birds, and then I log in on your phone and install Angry Birds on it as a free update. Then I log out of your phone, and Angry Birds is still installed.

I didn't even know it was possible and I did iOS development. Then I saw someone do it and had a WTF moment. He just said that's how everyone he knows 'shares' apps. One guy gets it, and downloads it on everyone else's phone.
Hmm, works for me, but I wonder if my MacBook has wider than average screen. What resolution are you using?
I have come to think that (or at least wonder if) maybe all cancers are viral/have a viral component: 1) Human papilloma virus causes cervical cancer (which is why women get annual "Pap smears") 2) Cancer causes tumors, ie odd growths, much the way warts and fever blisters cause growths on the body. Both warts and fever blisters are caused by virii and I don't know of any other pathogen which causes growths of that sort, by taking over the cell like that. 3) Virii are made of the same stuff as genes: RNA. This is precisely why some of them can get inserted into a cell and take it over, which is the way warts operate.
What drives you to migrate to a new site from your preexistent one?
I'm hoping to garner a large viewer base for my technology news site (right now it is just middling tech blog). I hope to make the site into more than just news, but as a hub for news, opinion, reviews, deals, and various media that I will produce. In your opinion does this idea stand a chance in the crowded market? I would greatly appreciate any constructive criticism.
HNSearch Feature Requests
Please let us know about bug fixes and feature requests for hnsearch.com and the HNSearch API.
It's cool to see log files streamed in real time to your browser but most of the time it scrolls too fast to get any useful information out of it (unless you use regex filters of course). It would be cool to have graphs that show, say, browser usage (or IP geolocation or operating system or page visited or any other metric that can be gathered from log files), being updated in real time.
Free speech means being free to say things others might not like being said.

If free speech only covers things that others might find acceptable, then it is completely meaningless.
Hackers report breach of US-based FBI affiliate
"Theory P methodologies like XP and Scrum constantly recalibrate expectations, so if the result is dissapointing, you are left blaming the inelasticity of space-time. An alternate version of this story had the protagonists choosing a methodology for a risky project: Choosing Waterfall was defecting and choosing Agile was coöperating."

I'm sorry, but measured against the number of times I've heard the phrase "Doing Agile Wrong", this sound disingenuous.
Generally, I say "software engineer". Depending on the context I might say "software guy" or "entrepreneur".
MergeBox - Source code hosting for bzr
FWIW, the motorcyclist in that video was never once "at gunpoint".

The officer drew his weapon because he did not know how dangerous a situation he would be in with the motorcyclist and he was in a tactically weak position by having to pivot around to face the person he was stopping. He never pointed the gun at the motorcyclist and quickly reholstered it after assessing the situation was non-threatening. And as you can see in the full video, the traffic stop was totally warranted, the idiot on the motorcycle was a danger to himself and everyone else on the road:

http://www.youtube.com/watch?v=G7PC9cZEWCQ

There are plenty of bad cops out there caught on video doing horrendous things, but I don't get why anyone would use this as an example of bad police behavior -- the cop in this video was totally reasonable and professional.
> Log.io has no persistence layer. Harvesters are informed of file changes via inotify, and log messages hop from harvester to server to web client via socket.io.

This struck me as really odd. Why is it done that way? Most stuff is logged via syslog. Those things are already in the buffer and it seems the local nodes are doubling the seek+read of what was just written. Downsides:

- double disk action for every log line

- inotify overhead for the system

- logging requires local disk space

- disk io delays mean collection delays

- when disk get full / fail on write you don't collect the message about the failure if one was attempted to be written

- when syslog daemon decides that messages are coming in too fast, it might drop them from the for_the_disk buffers - this way the only copy was lost (not 100% sure, but I believe syslog-ng can send to one destination even if another is blocked)

I really can't see positive sides of this approach. Logstash seems to handle everything log.io does and much more... am I missing something?
You can definitely use log scales with google charts, just it won't do it for you. You'll have to perform the math beforehand and send custom number labels.
>>>>>
"... I think the reality distortion field will be at full blast for this book."
<<<<<

That's precisely why I'd want to read it. There's something fascinating about peeling away the layers of reality (and un-reality) in SJ's speeches, mannerisms and writing.
Uh, it doesn't mean that at all. Here's a random link, note how it doesn't redirect to the homepage: http://www.nintendo.com/games/detail/9xKcFNixgDWMPXx0DGu0_77...

That's just the default behavior. There's an enormous amount of other rewrites to handle actual functionality.

Bookmark interfering - probably. But which is worse for most users: a 302 / 404 error, or being pushed somewhere useful to start from?
Excuse my lack of a reply this evening, I've been busy today - I'll respond tomorrow. If you have time could you please tell me what your proof of principle solution refers to,
Thanks.
node.js isn't interpreted; it uses V8, which is a JIT.
> The truth is that X is probably somewhere in between.

X depends a lot on the particular piece of software, the target market, and the context in which it's available. There won't ever be any generalized data.

One interesting test would be to offer an app for a ridiculously low price, like $0.01 and see how many people don't bother to pay even that.
Why people form beliefs that aren't based on evidence
the selfposts (the ones that link to hn) link to hntop100 on your site.

Just a friendly heads up :-)
While Shulgin was certainly a very cool fellow and did exceptional research, he also had a pretty unique situation. Being friends with the head of the DEA he was able to get a DEA license to work on scheduled compounds.

Your average Joe won't have those kind of connections, or even access to current literature, which rather limits you to certain fields (i.e. not anything biology, chemistry or probably physics).
I think Raspberry Pi is missing the point by running "normal" Ubuntu Desktop on it, and having such limited connectivity.

Stuff that I'd add:

* (Ethernet) networking. Or at least some serial ports. Or some way to plug two or more of these together (something over USB maybe?)

* USB hub. First of all, using male USB connector as host port is just plain ugly. Secondly, if USB hub is a requirement to actually use the computer (as it seems to be currently), why not have it built-in?

* Analog video and sound output. Doesn't need to be HiFi, composite video and builtin DAC will be fine.

What I would change/remove:

* Ubuntu. Instead run some minimalistic system that boots directly to simple REPL, and allow more powerful programming somehow (inline ASM?).

* The SoC is huge overkill. And imho way too complex for a beginner to understand. Of course if you plan to teach just some high level language that hides all the hardware from you then it doesn't matter, but then the hardware wouldn't matter at all, and just using some off-the shelf x86-box would yield same results.

* Few GPIO pins are good. Arduino shield compatibility would be great.

tl;dr. I would make the computer more like self-hosting arduino and less like gimped generic ubuntu box.
Flare is flash only, not Javascript.
If only we could develop a small device (say the size of a briefcase) to convert electricity to antimatter and then slow release antimatter reaction back to electricity.

It would make electric vehicles much more economical than oil. We could finally make a ship that could pack enough punch to make a trip to the asteroid belt and back. To bring back the unobtainium.
Are you serious?

His app does no such thing! It's a fun little bookmarklet which gives users a little spaceship they can fly around a website, and shoot things at. It's for fun. It has nothing to do with actually destroying a website.
In some places it is actually illegal or something to call yourself an 'Engineer' unless you have been licensed by a certifying board. Ontario in Canada is one such place apparently: http://www.peo.on.ca/enforcement/Software_engineering_page.h...
Um, I think you misread what he meant by "destroying" websites - this app seems to be a game where you control an "asteroids"-style spaceship shooting UI elements on websites (a mobile version of this: http://www.wired.com/epicenter/2010/09/kick-ass-bookmarklet-...)
Also, would Apple really approve an application used for DDOS-ing websites?
Good, bad, or otherwise, Gruber usually has unique insight. Nothing here seems shocking or surprising, or really anything that people weren't guessing a year ago.
There are lots of cases when it was documented for piracy to bring positive change.

This guys problem? Patience ;)
Come on. The game was mass pirated like yesturday? Does he really expect the positive loop back to kick in that fast?

People that pirated it will take time to play it, like it, mention it to someone that might buy it, blog it, show off to friends etc, etc, etc. it takes time. but eventually those 500 pirated copies will translate into some sales.

the question is therefore whether number-of-pirates-that-would-buy-it-if-it-were-not-cracked bigger or less then number-of-sales-that-will-result-from-pirate-marketing ;)

the jury is still out.
The Guts of Android
Ask HN: How do you learn your way around a new codebase?
I've been spending the past few weeks learning about various new technologies/libraries that interest me. While it's been fun, I find that my ignorance and lack of a systematic way of exploring new codebases lead to simple mistakes that take me hours to track down. Also, when a class spans multiple source code files, it can be difficult to contain it all in my head. In principle abstraction barriers should mitigate this, but in practice this isn't always the case and sometimes I need (or, perhaps, want) to go to the lower level to see what's going on. As of late I've been drawing inheritance and call stack diagrams to help with my understanding.

Do these problems sound familiar? Are there any general strategies that you use when you want to quickly understand how a codebase works?
I was just struck by the accuracy of this: http://xkcd.com/906/

Thanks for the link! I wish I could follow it more closely, but overall 'tis interesting stuff.
The post was culled from my current experiences starting Happy Stuff. So far friends, family and new people I meet are exceedingly enthusiastic about our project. I love hearing how great we are, but I want to hear the bad with the good, the side that too often overlooked.

For the part concerning feedback, I've seen a ton of douchy founders, and want to avoid being one of them.

Disclaimer: I'm the author of the post.

PS - I'm sure the interwebs are full of things you already know ;)
I find that emacs ruby-mode slows to a crawl when editing a 6000 line ruby file. Now I realize the file is way too long ( these things take time to fix / refactor ), any tips on getting it to be more responsive?
Cool, you just reinvented syslog, poorly.
This is actually more bad news for Sony. It shows that their competitors have much better security than they do, and Sony won't be able to claim anymore that "it wasn't really their fault, it's just that the hackers were very good".
Having someone who knows the code base spend even just one hour with you can be extremely valuable.