skysight-inc/HackerNews huggingface dataset:
I completely agree. I work in plant sciences (as a bioinformatician) but my background is in econ, pol sci, and stats. Unless things have changed since I switched fields, most global food security problems are market related. There's more than enough food, and we're really good at getting it all around the globe quickly. Also, huge amounts of food are lost due to post-harvest losses. I'd bet a beer that in terms of absolute food weight to mouths, post-harvest research may have higher benefit/cost ratio than photosynthesis research. Evolution has been pretty damn good at getting photosynthesis as efficient as possible (read R. Ford Denison's Book Darwinian Agriculture for this point argued well).

Having experience in both fields, I don't work in plant genomics because I want to feed more people (I do, but if that's what solely motivated me I'd be working under economics still). I do it because genetics is awesome, and plants are great to study.

But, I'd argue that the hard sciences are always a good worth investing in. Being capable of trying to understand our world with the scientific method is something that is uniquely human. We should use this talent as much as possible. Drosophila (fruit fly) genetics is a great example. Decades ago, drosophila was chosen because it was cheap to grow in a lab and had a short generation time. Yet through drosophila we've learned so much about genetics, development, and evolution in ways that are just unparalleled. Yet Sarah Palin[1] and others attack it as a silly waste of money. If we'd have limited drosophila research decades ago because we didn't think an organism with a ~700 million year split with humans would be useful for us, where would be? Much stupider, and much worse off. Basic science matters, big time.

[1]: http://www.youtube.com/watch?v=HCXqKEs68Xk
This is very interesting. It actually strikes me as quite similar to React.js; in both cases, the mantra is "replace explicit boilerplate with an intelligent diff algorithm".

Yes, this means performance isn't as good, but does that really matter? It eliminates an entire _class_ of programming errors in one fell stroke. Higher productivity and less chance for things to go wrong? Sign me up.
> I think what a lot of people mix up is that just because something isn't as big as it was before doesn't mean it's dead.

Something that may cause confusion is "acceleration" vs "velocity". Languages like Ruby are still accelerating, Go is accelerating a lot, even Javascript is accelerating from an already massive user base. Languages like Perl and Tcl are still widely used, but their adaption has peaked and is not accelerating.
unlike, you know, apache's logo and name
How would they intimidate you? Send you an e-mail? Call? Show up at the door? If they would do the latter, would you have to let them in?

Small disclaimer: I'm not an American (which is why I'm even more pissed off at this whole situation than I'd be if I were an American -- I've lost complete respect for the US government over this) so obviously the NSA has no interest in showing up at my door. And if they would, I seriously doubt that I'd be doing anything wrong by slamming the thing shut in their faces.
The main things to remember is that declaration mirrors use, and you don't actually directly declare the type of the variable, you declare the type of the expression that the declaration mirrors.

// x has type int
int x;

// the expression *x has type int
// -> x is something that, when dereferenced, yields an int
// -> x is a pointer to int
int *x;

// x[n] has type int for some integer n
// -> x is something, when applied the array subscript operator to, yields an int
// -> x is an array of ints
int x[5];

// x() has type int
// -> x is something that, when called, returns int
// -> x is a function returning int
int x();

// *x() has type int
// -> by operator precedence, calling x, then applying *, yields an int
// -> x is a function returning a pointer to int
int *x();

// (*x)() has type int
// -> dereferencing x, then calling the result, yields an int
// -> x is a pointer to a function returning int.
int (*x)();
> The database equivalent of maintaining order for every single-column selection is to have per-column indices.

I guess that's where the misunderstanding comes. In K/APL, every column has an implicit "natural index" - the first item has index 0, the second item has index 1, etc. The thing that is always guaranteed is that, in a result set, the natural indices of the different columns of the same tuple correspond.

Some operations guarantee a particular natural index order, but many do not. An additional index on the values that allows you to find an exact value (e.g. hash) or range of values (e.g. a b-tree) may or may not exist, just like in a relational database.

This "natural implicit index" does not take memory or anything to maintain, but it is useful.

> Try that in production on a busy OLTP system and let me know how you go.

ksql runs my queries approximately 100 times faster than optimized MySQL (using MyISAM - faster, but no acid guarantees; ksql is acid).

> Incidentally, I don't see why you think the tax-bracket thing is such a killer case. Oh noes, a small join!

That was just for known terminology, not knowing where you come from. I have tables with thousands of such brackets. And while I haven't tried Oracle or MS-SQL for them since 2006 or so, it was incredibly easy to confuse their optimizer into doing a complete cross product on those tables and filter it - which makes it takes a second per query instead of milliseconds when the query is optimized properly (or microseconds using K).

This is known as an "as-of" join in time-series queries, and any database without explicit support for it usually takes thousands of times more resources than needed for such a join.
Thanks for pointing this out. Good to see a peer preacher.
Elaborating on the OO bit, as derefr did an excellent job of talking about the usefulness of function pointers in a VM.

So, let's say I have a structure which I will use to represent objects in my game:

typedef void (*thinkfunc_t)(void* self, unsigned int dt);

typedef struct BaseFoo {
float x,y,z;
thinkfunc_t doThink;
} BaseFoo;

void null_think(void* self, unsigned int dt) { return 0; } /* empty think function */

BaseFoo* Foo_new() {
BaseFoo* ret;
ret = calloc(1,sizeof(BaseFoo));
ret->doThink = null_think;
return ret;
}

BaseFoo* Foo_clone( BaseFoo* foo) {
BaseFoo* ret;
ret = Foo_new();
memmove( ret, foo, sizeof(BaseFoo) );
return ret;
}

So, if I want to create a new BaseFoo, I just call Foo_new() and I'm off to the races; I get back a Foo object that, during my update loop, I can fiddle with:

/* update loop snipped for brevity */
BaseFoo* currentFoo;
currentFoo = get_my_foo_from_my_big_foo_list();
currentFoo->doThink(currentFoo, getFrameTimeInMilliseconds());

So, that's kind of cool, but what if I want to create a new, better foo, that actually moves? I do this:

void move_think(void* self, unsigned int dt) {
BaseFoo* foo = (BaseFoo*) self;
foo->x += dt;
foo->y += dt;
foo->z += dt;
return 0;
}

typedef BaseFoo MovingFoo;

MovingFoo* MovingFoo_new() {
MovingFoo* ret;
ret = Foo_new();
ret->doThink = move_think;
return ret;
}

So, this is very bland, but it gets across the idea that function pointers let me easily override member methods on class instances. You can imagine that, with a little cleverness, you can store arbitrary data into the struct, along with a table of function pointers to instance methods (a virtual function table).

This is a very fun, very deep rabbit hole.

In a lot of ways, you basically fake the type of prototypical inheritance you'd expect from, say, JavaScript.

EDIT:

Elaborating on another point--it's very common to use function pointers in a struct that then gets filled out by a dll or shared library.

For example, let's say that I've got a renderer that draws 3D stuff and conforms to an API. At runtime, I check what driver the user wants to use (software renderer, Direct3D, or OpenGL), and then I fill out the function pointers of that structure to point at the architecture and driver-specific methods I'd like to use.

The rest of my code doesn't change, because it only ever calls the interface exposed by the structure--the actual addresses pointed to by the function pointers are irrelevant.
I understand where you're coming from; social proof removes a massive barrier to conversion, even in my own experience.

I found that having it at $1.99 most definitely improved sales after it had been at $0.99 for about a week; after another week, it started to degrade again.

You're spot on in saying that $0.99 is a good price to get "disconnected" users who might experiment. If they like the app, they might make the personal recommendation to their "connections" where price is less sensitive.

After a while, that social proof and networking effect wears off and it's time to reset the price down to the "discovery amount" of $0.99.

To be honest, I'd love to flip SnappyCam over to freemium; but I feel that can't happen until the social sharing is bolted in and the app has a chance to sell itself organically.
I don't think I badmouthed them, I just said I can't imagine wanting that. Being forced into it is another matter. I totally sympathise with anyone who is forced out of science due to lack of jobs.
> Most startups scoff PHP, whereas 99% of the porn industry is based on PHP.

Only the vocal ones. I find that PHP is used a lot more than what the chatter on HN might lead one to think.
it's the pulsing that induces the altered states, you can use a metronome-like sound for similar results, this ones at 9hz which is mid alpha - absorbed in a good book frequency

a quick bit of supercollider code: play{SinOsc.ar(369.99,0,LFPar.kr(9))}
"This is because essentially every clone is a backup."

Tags are essentially backups, too. If you tag a commit, you can always get back to it, or repoint a new branch at it. And you'll preserve all history leading up to that point.

They don't back up your whole git repository exactly as it was, of course.
From the article:

> If you're unhappy with the "reward," or if the project never gets created, well, tough. Take it up with the project creator.

However, from the Kickstarter terms of service quoted directly below:

> Kickstarter does not offer refunds. A Project Creator is not required to grant a Backer's request for a refund unless the Project Creator is unable or unwilling to fulfill the reward.

I believe that the project "never getting[sic] created" would certainly be cause to deem the Project Creator as "unable ... to fulfill the reward."
LibreOffice 4.0 dropped support for old StarOffice binary formats
So what was the end of the story? What did you do about this kangaroo court? Report it?
I'm convinced they "work" when done correctly. If the current brainwave frequency is too far from the desired state, the entrainment may not work, from what I've read. I hope they do more studies.

I first found out about binaural beats and brainwave entrainment in the 80's reading a book called MegaBrain by Michael Hutchison.

I went to his seminar. There was a device that generated binaural beats via audio and some flashing lights.

I closed my eyes, put on the headphone/helmet thingie. Did the program. My mind was 100% on the ball. Pshaaaw. Felt like nothing happened. Was skeptical. Gave up on it. Took off the helmet. Stood up. And fell back into the chair. Because the brainwave entrainment put me into a sleepy state.

While I understand that placebo's are powerful, I find it hard to believe that I imagined that deep a sleep, particularly when I had decided that it didn't work.

Flash forward years later, I figured they must have an app for the iPhone by now. So I searched and found several, but settled on an app called Brain Wave, by Banzai Labs. It isn't quite as strong an effect as with the light machine combined, but it does seem to get me into a deep sleep.

I understand this is anecdotal. Try downloading an app, do a program and judge for yourself.
> Previously we’d been experimenting with Redis, Varnish and a few other technologies.

I read this paragraph and was a bit baffled. It sounds like they had merely been toying around with Varnish. I would think that heavy edge-level caching was essential to keep that kind of site up. Considering most content probably isn't personalised, it's basically a matter of serving a lot of static content fast.
The Sun website paywall comes into effect
People now have to pay to read The Sun newspaper online.

The online version is called Sun+ and costs subscribers £2 per week. The daily print tabloid costs £3.20 a week.

Online readers get free access to 20 articles each month before they have to pay. UK papers The Times and Financial Times already charge for online access.
True story.

I had to learn this after my studies. You have to get shit done or nobody listens to you.

But I met many people who just learned this and not much else.

They building huges piles of shit and sell them to people who don't know any better.
It shouldn't, they genuinely are optional, and Javascript coders need to know when they can be inserted because you can't turn that behaviour off.

However, needing to understand the rules is one thing - I much prefer to see the semi-colons in there. I dislike seeing any formatting that is substantially different from the accepted norm and find it harms readability.
How Entrepreneurs Can Use Vine Videos To Market & Promote Businesses
I wrote an interactive guide to javascript that covers a lot of the same material.

http://caplin.github.io/new2JS/
Just a thought - which do you think will be cut more if tax revenue declines? Food stamps or NSA funding?
What do you think about my startup? 
What do you think about my startup?

Hi
My name is sagi
After 12 years in EE, Management roles in R&D and some experience in trying to go for my technology ideas (apps, gadgets),I have decided to try and explore and hopefully solve my and others obstacles in going for their dream ideas or collaborating on a great startup idea.
We are creative but most of the time we have commitments to our daily work ,lack of knowing the right people to team with, legals and always miss money and at the end read about someone else that made it with our own great idea.
so please check it out and let me know feedbacks right in my face!
www.ATeam4ADream.com
Appreciate it
Sagi
Sometimes it is a useful sin, many data structure libraries for C use this for:

1) genericity
2) (extreme) speed

It's (unfortunately) impossible for C to equal C++ templates in this: write once, use for multiple datatypes (without macros).

For people who like copy pasting, generic macros is on the horizon for C11, which is rapidly being implemented (and mostly works) for Clang and GCC, the most important compilers. Read more about it here: http://www.robertgamble.net/2012/01/c11-generic-selections.h...

Simply put, it allows to create a small "shim"-macro that detects the type of the input parameters and redirect to an actual function based on type.
I like it, well done!
Opsview expands monitoring capabilities with NetFlow traffic analytics
Good. You can always download an older version if you needed to read them, and I can't imagine anybody, baring an old codger with a spreadsheet, would need to write to actually use them for something.
Doesn't mention the standard "read it backwards to get the type", and consequently recommends "const int" over the superior "int const".

int * const p;

Is clearly a pointer to pointer to constant pointer to int. (Hint: read from right to left). This is made easier if you always put the const modifier to the right when it is optional.

And just never, ever mix commas with pointer declarations.
He only runs code that he can vet. You can't do that when you use Javascript, or use a proprietary OS, for example.
I agree that this is likely not a "scientific breakthrough". Every time I write some really cool software, I don't claim a new scientific breakthrough. I guess I could, but I'm pretty sure my coworkers would grow tired of my antics. Perhaps some graduates with CS degrees actually believe they are scientists.
Is the economics of manufacturing and selling a car, even a luxury one, in Australia sustainable? Every year, the newspaper has stories about a government support. A cynic would say that this is their largest income source.

The market is small, mostly consist of city dwellers. There are only three car manufacturers in Australia (some would say that it is decreased to 2 with the troubles Ford are having). Having another one would not make much sense at all. I hope I am wrong on this as I would really want to see something like this succeed in Australia.
Just adding my vote for android version! Great job !
(fitting user name, sir or madam!)

I'm guessing he's referring to declaring a global structure or collection of function pointers, and then using #ifdef's and compiler flags to actually assign those function pointers to things that make optimal sense for the architecture.

Or, at runtime (but hopefully before usage!) setting those global function pointers to point at routines optimal for the situation the program is running under--say, setting them to point at an optimized SSE3 vector routine if the CPU supports it.

Maybe that's it?
Live your dream but don't leave work... ( I said it first :-))
I think there's actually an argument not to discuss these small pilot studies outside of the immediate community of researchers. The studies aren't powered to detect a difference, and history tells us we're more likely to be mislead than enlightened by interpreting the results of small trials.
Opencongress.org is a great site for following this sort of info.
Introduction to Gibbs Sampling
Nice introduction to Gibbs sampling
Not sure why the comment editor trashed "int * const * * p"
I really doubt that could be a less interesting or valuable use or the interviews, the interviewees or any potential readers time.

In Summary: we took a perl site, changed it to php and implemented Redis because it is good at lists. I don't really have any specific tips on Redis or any details of clever implementation approaches.
You're spot on about money. I saw Keith Alexander's talk at the recent BlackHat conference, and was miffed at people applauding the guy, but then realized that it's a Black Hat conference, the epicenter of the monetization of exploits.

The other factor is that the NSA's reputation is irreparably tarnished, and they will continue to attract the wrong kind of people. I think we need to prepare for some dark times ahead.
At this rate if the surveillance programs get shut down and most of the Patriot act etc get rolled back, it would be a miracle.
Why does it seem hipster to use a language feature? Is it hipster to use null coalesce as well?

The article linked above explains the reasons to omit semi-colons very well. I would personally prefer if JS forced you to terminate all statements with a semi-colon to avoid any ambiguity, but there you go.

Speaking of ambiguity caused by whitespace, Coffeescript is a 1st degree offender for this. All you have to do is indent the wrong block of code, and you completely change the scope of a nested function, and you have no visual indication of your mistake whatsoever.
This is basically a bad rewrite of a City Pages article from 2011: http://www.citypages.com/2011-01-19/news/oregon-trail-how-th...
Cost to solve all human energy problems? About 256 Apollo programmes
HN ate your \* symbols. Try prefixing the line with 4 spaces to trigger code formatting.
Getting Started with Netwire and SDL
Thank you for making that beautiful site.
Yes, developers have known about this problem for years.

But Gravatar and sites using Gravatar are terrible at explaining these risks to less technical users. Those users have an expectation of privacy when a site claims they won't share their e-mail address with anyone. No one has told them how incredibly easy it is to verify that their user account on one of the sites they use is the same person as a user account on a different site.
I hear the "warbling", but I don't get sleepy or dizzy or whatever the described effect is it.
I hadn't realized the line around the shutter button was supposed to change at all. That's definitely not where I'd put it.
Ad networks become shadowy Java-flavoured killer DoS bots
This will probably be largely determined by whether or not you could overcome network effects (http://en.wikipedia.org/wiki/Network_effect). If you could reliably go to your site and find a cool project to work on, or if you could post on the site and reliably get good people to work with, it should succeed.

I think that something like this should exist. It meets a real need. Whether it's you or someone else, the market will meet this demand eventually.

A point about design: it would be nice if there was a little more explanation as to how it works exactly. Preferably on the home page. I'd guess that you're still working on it though.

I admire the ambition and initiative you're taking. Good luck!
Maybe it is not necessary but I don't see anything against it. That was the weird thing about that article all kinds of semi legit reasons why it is not necessary to use them but no reason why not to use them. I would say if there are some semi legit reasons to use them and no reason not to use them than just use them :)
The website is clean and interesting but what do you get out of it? I mean are you going to have a sign up fee or ask for a cut of the product? Unless its purely autristic which would be honorable of you.
Not to mention that others snooping on open Wi-Fi is more likely to cause problems.
Good luck :) I made a similar app called Photoficient (http://www.photoficient.com/), but it doesn't have any users. If anyone is interested, here's the source code: https://github.com/frabrunelle/photoficient (Ruby on Rails).
What an icky mess of strawman and false dichotomy! Who is this "theory guy" that never wins in business - someone who does only theory, eh? I wonder how well the "practice guy", who acts without any thinking whatsoever, comes out in comparison.

As an aside and fuel for furhter thought, here is one of my favourite quotes (from Less Wrong):

"As a general idea, high level intellectual exploration should consume substantially more time than goal-directed action, but there are few social encouragements to behave in this manner so the only people who do so are essentially those who are addicted to such intellectual exploration and have no propensity or willingness to take action at all."
Metasploit unleashed
Uruguay MPs back marijuana legalisation bill
Man Reunites With Family After 11 Years Through Facebook In Western India
Execution is the key, yes. But to "HATE reading", well that is a stretch! Sure a pure theoretical person will have limited success, but to despise reading is not the optimum solution at all.

Also, 3 hour reading a day is not small!
Looks nice and it helpful, thanks.
Maybe you could change the output so the latest output is on top instead on the bottom (more blog style). Also it would be nice to reset the output altogether
Judging from the title of the article I was hoping to get an overview of the HN server infrastructure and software.
I agree with you, but still, I look at (a lot of) JavaScript every day and it's hard to explain it, but for some reason I find the lack of semicolons disturbing. I have no problem with CoffeeScript and I've also worked with Python a lot so I appreciate a language without semicolons, but I don't approve mixing the styles.

I think this is more of a psychological thing than a syntax thing because if you're used to a syntax of a language, it gets embedded in your brain and with years of practice you can spot a missing semicolon from a mile away after only a quick glance over the code. People are afraid of changes and if they are used to something and that thing is taken away they become unsettled.

Or their brain explodes if they see JavaScript with missing semicolons :P.
It seems it's more common in TV-series. Examples are Continuum, Doctor Who and Primeval. Star Trek Voyager probably also had some time travel :-)