skysight-inc/HackerNews huggingface dataset:
Learning the basics of any (within reason...brainfk,etc not included) is within easy reach of a beginner. The difficulty with languages and C++ is the more complicated features like templates and such.

Every minute you spend researching and trying to decide which language to use is time wasted. You shouldn't be learning languages at all, you should be learning concepts. Figure out concepts like what linked lists are, recursion, inheritance, etc.
Then learn the details of some language, then go back to the fundamentals and realize how little you knew before. Rinse, repeat.

This advice is for someone interested in CS as opposed to just programming. Yes, there is a huge difference.

Stop wasting your time and start something.
Wikipedia make dumps of their data available for exactly this type of use.

Those dumps are taken and stored in other places.

There's some weird GPL stuff that people need to be wary of, I guess.
I was a bit frustrated :(
Maybe part of the reason so many college-educated programmers can't pass FizzBuzz is because a lot of them cheated?
Software discovery is an unsolved problem. Apps is just a particular part of the whole problem (an important one nevertheless).

This is particular bad for games. What is the best game? It really depends on the user taste. Sites like Kongregate apply usual recommendation algorithms to ease this, which, I believe, is a nice first step in the right direction[2].

[1] http://www.kongregate.com/

[2] http://venturebeat.com/2007/11/11/facebook-search-expands-wi...
Hmm. Rather than spend $180 or $300 million to purchase tech companies, maybe some of these stores could try paying Silicon Valley salaries to a team of 10 or 20 devs.

20 devs * $200 K (loaded) / year = $4 M / year.

... Assuming they had a way to bootstrap an idiot-rejection-filter.
Oh, there's certainly junk that should alert someone to its comedic nature, but there's also content isn't entirely fabricated.
If they had retired it, then we could discuss it :)
And they certainly don’t design these devices by writing an essay on the topic or even by solving a mathematical equation. Rather, they imagine it in their minds eye, and then they draw it or construct it.

Remind me not to drive on that person's bridge. Sorry but if you can't hack the math to make sure your invention isn't going to explode and kill people then perhaps you should put down the power tools. Almost every modern invention is heavily math driven, because you have to know it will work not just be able to visualize and assemble it. Love that red herring about the nobel laureates, after all it has been shown that after a certain point drive is much more important than intelligence when determining outcomes.
That's a much better plan. It's funny that they are unwilling to pay above-market salaries to a few competent devs.
Carbon water bottle cages
"Calling alloca(0) should return a pointer to the top of the stack"

Eh? My understanding is that it's undefined behavior and varies per platform and compiler. Relying on it to return a stack pointer seems like a pretty terrible idea even if it should work.
That reminds me of how some insurance companies operate. They say they have accident forgiveness that won't raise your rates but you lose the "Good Driver Discount". So, in essence, you pay more even though your "rate" technically stays the same.
Gorilla glass is very hard. Keys aren't going to scratch it.

It IS breakable though, and things harder than it (some stone, for instance) can scratch it. But crushing is the big thing to worry about.
Is 30 close enough to 10?

I got a job with 30 lines of code appended to my resume, with a screenshot of the resultant output.

Perhaps the first two pages had something to do with it but I was told that the third page was what stood out.

This was a sysadmin position, the code includes bash, sed, awk, grep, tcpdump, netcat and gnuplot.

Hint to anyone who tries this sort of resume stunt: You WILL be asked what the code does.

Just the code: http://bbookkss.com/CharlesPerkinsCV3of3Pages.pdf
I don't know how large your project is, but you could use a parallel build solution such as Icecream to dramatically shorten your build time, especially if your project is composed of numerous compilation targets.
He's probably referring to the anti-carb/fructose people, see Lustig. Fructose alarmism is IMHO, BS. See here for more information: http://www.alanaragonblog.com/2010/02/19/a-retrospective-of-...

I view it a bit more simply. Find me a person who is fat because they ate too much fruit or drank too much real OJ. Obviously those things contain calories, but in an overall scheme of a persons diet, whole fruit in particular, is not adding to the obesity problem.
My Kingdom for a Capitalist
Apple design chief Jonathan Ive awarded knighthood
How can you share stats when you aren't doing well though? Won't that just hurt your startup?
As much as I hate LLVM, and as many times as I've been burned by bad code it has generated, I at least have to agree about this: alloca(0) tends to do random stuff on different systems (in fact, it often seems to be special-cased to clear the alloca area in library implementations).

However, assuming the actual compilation and test results reported in this article are true, I personally don't care what the function does: if (alloca(0) != NULL), then alloca(0) /should not/ return NULL. ;P
The point is that the behavior depends on the optimization setting. Worse: as you saw on the example, the optimizer actually expects the result to be non-NULL!
Thanks for the JoesDataCenter link. Definitely a great find! I'll give them a shot one day. I could only find great reviews on Google, but I'd love to hear from fellow HNers.
The C++ standard library for true pragmatists is Python. :) (Not technically correct, but I was making a point.) I'm pragmatic. Or try to be. So in a world where Python and C++ exist I'm going to try very hard to not touch C++ ever again. Life's too short.
In my personal experience, the hard part for a beginner is not the actual programming, but the environment. Fussing with the command line to compile and link a program, or setting up system environment variables, class paths etc. pp. can be a frustrating experience. I would argue that for a beginner a good IDE is an important tool to getting you up and running, having fun and keeping motivated.

I would therefore recommend something highly integrated like Visual Studio C# Express Edition which you can download for free. If you have Microsoftphobia, the alternative would be Java with Eclipse.

Having said that, at one point you HAVE to leave the "kiddie pool" and jump into the deep end. For that I would second the recommendation of Kernigham & Ritchie's The C Programming Language.

The order of these two steps is up for debate...
Bingo. Both returning NULL from alloc(0) and assuming that alloc() never returns NULL are correct behavior by the compiler. It's simply taking advantage of the nasal demons.

It seems that LLVM and Clang have generally been much more aggressive about taking advantage of undefined behavior, which has ended up breaking code that worked under gcc. For example, with some versions of Clang, if you try to write something like (int )0 = 0, it'll completely skip that line when generating code! Completely valid, since dereferencing NULL is undefined behavior, but not what one might expect after using a compiler that's more obedient.

There's a great post on undefined behavior in C, what it means for a compiler, and how LLVM and Clang deal with it here:

http://blog.llvm.org/2011/05/what-every-c-programmer-should-...
Not only that they have caps on how much developers can make, they are also heavily miss-managed, full of crazy managers with insane ideas, consulting companies with their own agendas, agile that is not even close to agile, etc.
You don't need to be in Silicon Valley to make decent website, you do have to manage it and develop it properly, most don't do that.
I knew a fellow at college who was awesome at setting up experiments and having them work. He worked with some incredibly bright post-grads and post-docs who couldn't scramble an egg. Sometimes you get these two "intelligences" in the same person. Usually you don't. We're better when we recognize different talents and work together.
John Hopkin's Center for Talented Youth summer camps (aka nerd camp) have been offering the Spatial Test Battery as a qualification method since I was in middle school (~10 years ago). See http://cty.jhu.edu/ts/stb.html and for a sample subsection see http://cty.jhu.edu/ts/stbsampSD.html. I never took it (you could also take the SATs as well) but as a heavily technical person my brain does backflips of excitement solving the sample problems.
I'm not sure what your anecdote is really meant to prove? Doing set intersection is fairly trivial to implement, and the C++ std library comes with an implementation. The argument is that this claim doesn't scale up, which your anecdote does not address.
Is that not the essence of undefined behavior?
I don't use GMail. I like the interface of Sparrow.
I use gcc for code gen.

The idea to use undefined behavior for optimization is really terrible. Somehow they forget this is engineering project, not in researching. Breaking existing code costs a lot of time and money.

By the way, I don't see their optimization has any impact on the real project I am working on (highly cpu intensive).
I'm fairly sure he is not mixing full-time / contract here, but strictly referring to contract work.
But where exactly is it specified that alloca(0) is undefined? None of the man pages I could find say that 'size' may not be 0.

EDIT: no idea why people vote me down for this, it is a legit question. Downvotes are for comments that don't contribute to discussion, not for comments that you disagree with.

Creating a file of 0 bytes is well-defined so why would it be such a strange idea to think that alloca(0) would also be well-defined, especially because none of the man pages mention that it's not allowed?
QR code voting
Made it for a friend, happy to release source if anyone wants to work on it.

It's built on NodeJS and designed to be used in conference rooms, halls, classrooms etc.
Once you invoke undefined behavior, all bets are off. If the result of alloca(0) is undefined (and reading the man page, it appears to be) then any return value is valid. Likewise, the optimizer is allowed to assume that alloca(0) never happens, because once you invoke undefined behavior, anything can happen.

C is a dangerous language. A large part of that danger is to allow compilers to produce efficient code. A major point of "undefined behavior" is to allow compilers to assume that such things can never happen, and thus avoid generating code that has to deal with them.

To take a more sane example:

int *x = ...;
*x = 42;
if(x == NULL)
foo();

A C compiler would be entirely within its rights to completely delete both the if check and the call too foo() in this code. It's illegal to dereference a NULL pointer, so the compiler may assume that that code path can never happen.

Now, you may set up your system so that 0x0 is actually a valid address that can be written to, with clever mmap tricks or whatever. You may then initialize x with NULL and run this code, expecting the dereference to work, and foo() to be called. From a naive point of view, that's what should happen. However, even though 0x0 is a valid address in this environment, dereferencing it is still undefined behavior according to the language you're using. If you manually wrote the above in assembly you're fine, but the moment you do this in C, all bets are off.

It's the same deal with alloca(0). You can't count on the return value being anything in particular, and simultaneously the compiler can assume that the return value is anything it feels like.

Edit: thought of a more pertinent example. Consider the following:

int x = INT_MAX;
int y = 1;
int z = -INT_MAX - 1;
if(x + y == z)
foo();
else
bar();

Directly translating this code to assembly and running it on any modern architecture would result in foo() being called (assuming I didn't screw up my arithmetic). The addition of x + y wraps around, and with a two's complement representation this results in the most negative integer being produced. That same integer is generated more directly in z, and the two compare equal.

But! integer overflow produces undefined results in C. The above program is ill-formed, and the compiler is completely within its rights to assume that the conditional is never true, because the moment you wrote x + y you gave up any right to expect any particular value in the result.

Interestingly, the version of clang on my computer optimizes the above to always call foo(), rather than always call bar(). However, either choice would be correct.

One certainly could get used to integer overflow always wrapping around according to two's complement and expect the above code to work. Upon encountering a compiler that optimizes the above to always call bar(), one might first suspect that the compiler is broken. However, it is the code that is broken, and the compiler is correct.
My 2011 in review.
I think spatial intelligence can help with programming, I'm not real up on all the different categories of intelligence, but I think I tend to be more of a spatial thinker which could be part of why I have more and more come to like designing complex applications with different, smaller components because when I visualize the entire application in my mind I see it in basically a 3D space as far as how the components interact
That was my point, but perhaps I misunderstood the parent. The comment he was responding to simply pointed out how much cargo culting happens once a serious concept turns into a buzzword. Consultants and "teachers" start showing up at conferences and companies hawking their wares, which are long on platitudes and short on substance. Quite frankly it's tedious, you just have to attend any Agile conference today to observe this. The people who coined concepts like Agile and Lean Startup did so out of real world experiences and don't expect their ideas to be taken and applied literally, but understood by and interpreted primarily those who have or are going through similar experiences. Only people who attempt to grow and learn through experience can expect to effectively apply and teach other these concepts. Personally I've never believed that those who "can't do" have ever made very good teachers.
Whatever is not explicitly defined is undefined.

My man page says, "The alloca() macro allocates size bytes of space in the stack frame of the caller. This temporary space is automatically freed on return. alloca() returns a pointer to the beginning of the allocated space."

What does it mean to allocate zero bytes on the stack frame? What does it mean to return a pointer to the beginning of zero bytes of allocated space?

You can't safely do anything with such a pointer within the confines of defined behavior in C, therefore there are no requirements placed on its value.
Big box retail is currently built on an interchangeable parts model. Retailers keep costs down by making people replaceable, unfortunately at this point that model doesn't work well for tech. It's unlikely that this will change as that mindset is built into the culture of the organization and has done well for the industry in the last 30 years.

It's likely that retail will undergo another change such as when sears took over in the late 19th / early 20th century. Retailers arent going to lose the war they will simply be replaced by more nimble competitors who can properly leverage technology. Contrary to popular belief there are good developers outside of sv and some developers are motivated towards well paying 9 to 5 jobs instead of options and sodas.

The article also conveniently ignores the huge logistics infrastructure retailers have and focuses purely on websites, while the web is certainly important the reality of the situation is that currently retailers such as Walmart have huge competitive advantages due to its investment in logistics tech and infrastructure.
LOL. 200k? 20 devs? To build store.target.com? They'd better be awesome, and that awesome doesn't walk for 200K.

That level of awesome builds the product (show don't tell) and then sells it for $180m.
Any time I want to learn something new, I always try to start with a book... SEO, JavaScript, Ruby, Version Control, etc. Being forced to follow a linear learning path works well for me. Even thought many of these concepts are evolving rapidly, books get me the core understanding I need to then venture out online for more current, even cutting edge material.

For me, there's nothing better than cracking open the pages of a book on a new topic.

Edit: Crappy grammar.
Trivia about the nasal demons: http://catb.org/jargon/html/N/nasal-demons.html
Atari’s latest legal actions putting the squeeze on hundreds of apps
You could probably stuff Node into this category too, if your target is the type to be impressed with writing their own basic web server in 10 lines of code.
Well, alloca is not specified in any formal standard, so you won't find an official ruling on whether it's undefined, unspecified or well-defined. By itself, that state of affairs should strongly discourage its use in portable code.
I couldn't read the top of the page using FireFox 8. A red block covered up the first paragraph or two.
I agree, it's really well done. It's enough like a real essay to withstand a semi-casual scan such as might be done by a student wanting to copy it, but contains enough absurdity to be blindingly obvious to anyone who reads through it thoroughly.
Fun With Bridesmaid Beach Dresses
Item: having to think of ways to speed up your build time instead of thinking of building your product.
The article was dated a few weeks ago. Hopefully the tide is turning.
There are plenty of ways to link to music, Amazon previews, bands website, official/certified vid on YouTube, etc., that don't involved copyright infringement.

Basically I'm still at a loss as to what you felt you were adding to the conversation?
Buffalo Bills vs New England Patriots live stream
Buffalo Bills vs New England Patriots
Match schedule:
Week 17 NFL Regular season
Date: SUN, JAN 1 2012
TIME : 1:00 PM (ET)
Venu: Gillette Stadium
watch and enjoy Buffalo Bills vs New England Patriots live streaming
and also watch NFL full season live streaming online here. Get the
best online sports coverage on the net directly on your PC.
A) I am pretty certain that alloca(0) is not "undefined" per C, as I'm pretty certain the C standard does not mention alloca at all. As far as the C language is concerned, alloca is a function like any other function.

(edit: To be 100% clear of the ramifications of this, even if alloca itself is implemented using horrible undefined black magic, a pedantic C compiler would not have advanced knowledge of that happening inside the function, and could not prematurely optimize it away.)

(Note: I use the term "pedantic" in this edit to describe such a C compiler, as the real-world behavior of practical systems does not conform to the view that "undefined" means "could order a kill strike on your children".)

B) Your example is kind of off, btw, as NULL and a pointer with dynamic value 0x0 do not mean the same thing: I am allowed to deference a pointer that is at the address 0x0, and the dynamic value of NULL need not be 0x0. ;P

(edit: This example was deleted by the poster I am responding to, but was an example involving comparison of a pointer value to NULL being allowed to be optimized to false if it had been previously dereferenced.)

(edit:) C) Your new example is at least internally consistent, but is still specifically relying on behavior that is undefined. The C standard does not define any undefined behavior with respect to calling the function "alloca" any more than it does calling the function "hello".

If the behavior of the function itself is undefined with respect to being passed 0, that does not affect the language's implementation of what to do when calling that function: it does not know how undefined it is.

What is actually going on here is that gcc has an optimized version of alloca that it declares as a "builtin"; this is both to make alloca itself performant (one instruction), but also to allow it to make further optimizations in the function.

These optimizations should be compliant with the C language standard, and in this case they are not. Honestly, in the real world (as opposed to pedantic standard land), that's fine, but this case is just egregiously confusing.

In fact, sufficiently confusing that I can't imagine the developers of llvm-gcc would not consider it a bug; in essence, gcc and llvm's translation layers are being layered, and they are interacting "poorly".

However, as llvm-gcc is a discontinued product, this bug will not get fixed. However, this is currently the best compiler that Apple has provided us for use on their platforms as of Xcode 4.2, which is "unfortunate".

(Note: I just say "unfortunate". It is not necessarily "horrible"; it is simply "unfortunate". There are many bugs in llvm-gcc that are not present in gcc, and it is "unfortunate" that Apple hates GPL3 sufficiently to have not only thrown a ton of money at replacing it, but have now even stopped shipping the old stalwart.)
Great offer for both chating and earning in the same time from your home
Great offer for both chating and earning in the same time from your home. Just signup on this great amatuermatch non adult site and start chating and earning in same time.
Not sure I agree with that, allocating 0 bytes seems pretty well-defined to me, just like allocating a file of 0 bytes is well-defined.

That said, http://pubs.opengroup.org/onlinepubs/009695399/functions/mal... explicitly mentions that malloc(0) is implementation-defined, not undefined. It would seem strange to me if alloca(0) is supposed to be undefined instead of implementation-defined.
it is called object hell. we want to get things done, but they give us a lot of objects.
Can this end Youtube clutter/anonimity ??????????????
That's amazing! First time I've come across the term. For the lazy:

"When the compiler encounters [a given undefined construct] it is legal for it to make demons fly out of your nose. Someone else followed up with a reference to “nasal demons”, which quickly became established."
Or maybe offer a percentage of the online sales revenue, after returns (and avoiding hollywood math).

I've interviewed with several "luxury" retailers within the past year, and my idiot-rejection-filter was usually triggered soon after the beginning of the interview.

It was usually due to the perception of inmates running asylum, or a legacy technology I didn't want anywhere near my resume (VB). Either way, lack of technological leadership, planning, and execution was easy to spot with a phone call or visit to a store.
Right, by his description the only things we value are 'skill at taking standardized tests'.

I'd say if you look at peak salaries, some of the most valued professions are spatial.