skysight-inc/HackerNews huggingface dataset:
Realistically, just about every mainstream dynamic language today has its major implementation(s) written using C or C++. Some of them have significant amounts of C code underlying their common libraries, as well. Some of the most popular third-party libraries or modules are in fact nothing more than thin wrappers over existing C or C++ code.

Don't think that you're escaping C or C++ just because you're using Ruby, or JavaScript, or Python, or Perl, or Tcl, or even Java. Don't think that you aren't as vulnerable using a dynamic language as you are using C or C++ directly.

Furthermore, it is quite easy for dynamically typed languages to suffer from very serious security vulnerabilities. There was one affecting Ruby and Ruby on Rails widely publicized just a few days ago. You can read more about it at: http://news.ycombinator.com/item?id=5002006
When i started Kaya.gs and even during it, i always wondered if games will arrive to the html environment at any time.

Tetris is the most basic game and yet even in this (perfectly fine) example, its far for complete. It lacks sound and many other things, which lead me to believe that if there is an HTML game era, its far away yet.

A standard tetris on classic Java/C# languages take a day to do at most and are an exercise as simple as doing a CRUD for web development.
I'd say to forget about apologising when the user was at fault and tell them what they can do to resolve it. No need to turn it into a personalised essay.

For example, you could say:

"I'm sorry you cannot delete this document"

A better message may be:

"You cannot delete this document when someone else is viewing it"

and even better may be:

"You cannot delete this document when someone else is viewing it. Click here to see who is viewing this document".

If you want to apologise when the user does something wrong, then build software that doesn't cause the user to generate an error situation in the first place. By apologising you are supporting the fact that it was okay for the user to do what they did or that they were treated unfairly, when it isn't, because the user still can't do it.

If the user wasn't to blame, then by all means apologise and reassure them that the issue will be addressed. Also clearly explain what the expectations are from now on, such as, loss of data.

That's my take on it, and I wont be apologising for that. But if you want to know whether you should apologise or not, you need to do some usability testing and see if it has any impact on the goals of the software and the user experience.
I suspect this one is a diversionary tactic.

I guess Zed Shaw suffers from nerd burnout. As in, a sort of more emotional burnout from having had to deal with them all the time in the past - or at least, that's what I get from some of his writings anyway. So I imagine him popping this stuff in as a sort of early warning system. It's all true enough to be right, and true enough to get his point across, BUT IT'S NOT TRUE ENOUGH FOR A NERD. So any time somebody complains about his strcpy example, or 0-terminated C strings, or whatever, that's his nerd alert. This person is not worth dealing with, and now he can block them, or set up a mail filter to put their email in the junk folder, or whatever, without having had to invest any time in finding this out the long way.

There was also a bit in one of his essays about the way ruby fans were always these stupid armchair pop psychologists.
Does the absence of type checks in dynamically typed code result in remote execution vulnerabilities typically?

It's twenty goddamn thirteen, stop writing trivial buffer overflow vulnerabilities already. And that applies whether you are a novice or an expert.
Imo it would also depend on the culture from the user; I wouldn't be surprised that too much apologizing would come over as "weak" in some cultures. This might influence the impression of your product.
Be careful for what you wish for as it looks like other non WebKit browsers will be caught up in all this. Under this remit Firefox OS/Boot to Gecko for example would be blocked from using Google Maps.

Regardless who the victims are its a bad move for anybody who believes in open web standards.
You're right to mention the conflicting nature of much of the data available. I quite agree that there is noteworthy evidence both for and against the IBS link, but the fact that IBS lawsuits led Roche to pull the drug off the market in 2009 suggests that there must be some compelling evidence of a link.

It's anecdotally accepted that isotretinoin users have a tendency to avoid reporting depression so as to continue being prescribed the drug. It's common sense – of course there will be underreporting in cases where the reporting will prevent someone being prescribed a drug they wish to take.
Well, html5 can do music and better graphics. It's just me being a noob and not intending to do so.
BTW, it took me about one hour and I was/am new to js.
It is already the HTML era. Just the very start of it.
Most people no - but, for example, a company of my group tried to go fully Linux, but constantly have problems with Word documents formatting. Having that option could help a lot this kind of choices.
Nice work, dude.

The simplicity of both the html and the js is neat - and, oh the colors are so sharp. it's a pleasure to play.
All My Life I’ve Been Told I Was Special. It Was A Lie.
Secret and Lies of the Bailout
sorry for disturbing you :)
There are also now GORM plugins for all the nosql solutions - lots of people use it with Mongo, redis, etc.

Also you can switch to JPA and use any JPA provider
After Years in Solitary, an Austere Life as Uruguay’s President
Most people spend to their level of income, and sometimes beyond, which often makes them nervous and miserable. Even the rich feel this, especially with big items like the Lear Jet repayments - it's golden handcuffs and it sucks... or so I'm told.
When you use a dynamically typed language you have CHOSEN to live without those concerns -- you traded checking for flexibility.

In a statically typed language, where you already made the effort of using types, it would be a shame for your program to die or cause havoc because you didn't also think about enforcing some invariants.

Plus, those kind of errors in C can cause buffer overflows, privilege escalation and such.

In a dynamic language it's usually just a halt and a stack-trace.

(And actually there is a move to do exactly what you say --add type checks in dynamic languages. See Dash and Typescript, with their optional type annotations and checks. But if it was possible to optionally have those checks by pure inference, without adding anything to a dynamic language's syntax, most people would jump at it instantly).
One of the coolest things about Windows RT is that you have access to the filesystem like on any normal computer, and the integration with cloud filesystems like SkyDrive and Box.net. These are treated as just another drive and are available from the file picker. Dropbox isn't there yet but I imagine it is coming.
While I have to agree, 1mg/kg seems to be by far the most commonly prescribed dose at present. Perhaps that will eventually change in light of the recent research you've mentioned.
Really? Blog-spam of an article that was really discussed in-depth? Discussion 3 weeks ago: http://news.ycombinator.com/item?id=4932196
There is fine line between creating a positive experience for the end user, and suggesting a positive experience. Some examples:

Cars: No, cheaper car makers will not degrade the experience, but they will direct less attention to the perceived experience by the end user, also because their margin is lower.
Your point about the audio plug: It annoys me too, but this depends on the target audience. Do they value an audio plug over a clean dashboard?
Toothpaste: Here a false claim is made. That does not convey respect to the user at all.

What complicates these discussions is that, for example on HN, they are discussed with people who often value features over a smooth experience. But I argue, that for the average high income user, the experience, the treatment is an important factor, next to features.

And to come back to the OP, treating your users properly will enhance the value of your application to this group.
http://news.ycombinator.com/item?id=5012549
8 Indications of a ‘Wanna Be’ Entrepreneur Dreamer
From a dumb user POV, I would say that it depends on frequency.

If I see a one off apology, for a one off issue, perhaps with a mild sense of humour, then that's good, I like that. I might even have sympathy.

If, however, I see a regular, frequent issue and get the same apology over and over again, it begins to feel insincere, and that they are trying to cover an inherent issue with an insincere apology, or humour. I then begin to feel that they simply cant be bothered.

I think sincerity is the most important thing.
I wish this were true, but it doesn't seem to have adversely affected roughly all startups in the history of business.
And who helped him keep shipping? Or did you forget the thousands of other workers at Apple? Let's get real.
Honestly I don't have any sympathy for this kid. He is an idiot, plain and simple. The cops weren't monitoring his facebook, rather it was HIS friends who tipped them off. IANAL but my guess is the status update would be geotagged (so it can be paired to reported vandalism/car damage) and able to count as an admission of guilt.
Windows Phone has a very small market share. If we discovered that people running Opera on Maemo (if there even is such a thing) are getting the same behavior, would it surprise anyone? Would anyone even object?

They don't have an obligation to support tiny platforms that would cost more to support than they're worth just because Microsoft is very loud to complain about anything they do. Or subject users to a crashy experience because the site doesn't need Webkit to load but still needs it to not crash. Any more than Microsoft has to make officeupdate.microsoft.com support Firefox on Mac rather than just redirecting it to office.com like they do now.
I like the articles in http://www.joelonsoftware.com/

Proably the more usefull sections for you are "Tech lead" and "Program manager".
HN is mainly startups who need to develop code quickly and be as 'in fashion' as possible. Java is more focused on long term, reliable code. For a general idea of the 'real' popularity of a language outside of the silicon valley startup scene, something like this is a better indicator:

http://www.google.co.za/trends/explore#q=java%20developer%2C...

So it really depends on what you want to do - if you want to work in a large multinational or contact out to larger companies, then Java is a far better choice than Ruby or Python as the job demand is much higher.

If you want to jet out to silicon valley and shack it up with some guys who probably can't afford breakfast the next morning, then Ruby and Python are THE thing to go for! Not that you won't find enterprises using these languages, they're just much further apart and the demand level for these jobs is usually through the roof.

Flamebait
It's still true though.
Enter The Dronenet
How I Intend To Blog in 2013
This is an article about Bayesian statistics, which is usually considered as quite hip in these places. You do remember who wrote the "A Plan for Spam"-paper, after all?
>Don't think that you're escaping C or C++ just because you're using Ruby, or JavaScript, or Python, or Perl, or Tcl, or even Java. Don't think that you aren't as vulnerable using a dynamic language as you are using C or C++ directly.

Actually this is completely backwards.

Think exactly that you are NOT AS vulnerable as using C or C++ directly.

That it's C/C++ underneath has little importance.

It FAR MORE difficult and FAR LESS common to reach runtime/interpreter bugs that to produce bugs of your own in the higher level language.

>Furthermore, it is quite easy for dynamically typed languages to suffer from very serious security vulnerabilities.

Of a different kind, that doesn't pertain to the current discussion.
Even if I made a function copy(char to[], char from[], int lenTo, int lenFrom) it would still be incorrect using his reasoning because most of the possible inputs would still cause the software to crash. I could symply add a wrong lenTo and lenFrom.
I suppose every young person has a moment in which they learn that organizations and structures (corporate, government or other) they thought they could trust can't be trusted. I knew a guy who was about as much of an upright apple-pie eating golden boy as could be. He got pulled over for speeding once as a teenager and when the cop asked if he knew how fast he was going he immediately answered honestly telling the cop he knew he was going 8 over but that it was to keep up with traffic in that lane.

At the time, he felt bad about getting ticketed but glad that he had done the right thing and been honest and that the cop had seen that he was a good kid. Months later he learned that the officer had quoted his admission of guilt and he therefore wasn't eligible for an automatic fine reduction if he paid early by mail or something like that. After that, he said never speak openly with law enforcement again-- he'd try to follow the law, but there would always be a wall up when talking with people in that sort of authority.

This guy just learned that facebook is like that, too. Unless his goal is to report his activity to the authorities, he really can't trust facebook with that kind of comment. It feels private and restricted to his friends, but it isn't.

And yes, I agree with the sibling commenter that he's an idiot. A lot of people are, especially as teenagers.
Google, however, doesn't provide the same version of Google Maps for desktop and mobile.
I agree about information density, and lousy options for keyboards also makes me avoid tablets for serious work.

However, less tech-savvy people -- you know, the type who get confused when there's more than one application window on screen at a time, or who gets confused when there's a tabbed web UI inside a tabbed browser -- are probably more productive with less information density, because it also means simpler and less-layered interfaces.
Yes, we are all sure you understand C better than ZShaw.

I expect you will point us to your prodigal output in the language, and that it was only by accident that you forgotten to add any points of critique in your comment.
Ancient Mars: Covered with life, oceans, clouds, and imagination
A = {'a','b','\0'}; B = {'a', 'b', '\0'}; safercopy(2, A, 2, B);
A = {'a','b'}; B = {'a', 'b', '\0'}; safercopy(2, A, 2, B);
A = {'a','b','\0'}; B = {'a', 'b'}; safercopy(2, A, 2, B);
A = {'a','b'}; B = {'a', 'b'}; safercopy(2, A, 2, B);

This analysis only tries different values of A and B, not the lengths. A proper analysis of "for what values does it fail" should include all parameters. What happens if you do `safercopy(3, A, 2, B)` or `safercopy(3, A, 3, B)`?
IMO - No.

"Sorry, all our customer care representatives are busy on other calls. Your call is important to us..." Has anyone - anyone! - ever been mollified by this kind of apology? Straight from the Sirius Cybernetics Corporation's Genuine People Personalities( first against the wall when the revolution comes)

Error messages which apologize fall into the same bucket. Scripted apologies add insult to injury. Just tell me what's wrong and how to fix it, don't bother pretending to be human.
> we will be modernizing the code in K&RC [...] It will be more verbose, but it will be clearer

It's been at least a year since the article first showed up on HN, and the author still hasn't made good on this promise. It's actually hard to do, because verbosity and clarity are usually at odds with each other.

One of the main attractions of K&R C is exactly its lack of verbosity, its extraordinarily high content-to-length ratio. In a very short space you learn to do a lot of sophisticated programming, and most if not all code examples fit on one page or less.

Of course, optimizing for conciseness has its costs, as anyone who has debugged segmentation faults knows. So you avoid some of this shooting-yourself-in-the-foot that C is infamous for by using various crutches: add an extra argument for some functions, build your own Pascal-style strings etc. And if you pass in external input then you should definitely use some of them, such as strlcpy (which is actually preferable to the four-argument function that this article is getting to).

But there are also lots of cases where plain old strcpy will do fine, and for simplicity sake it's better to use it. I believe one of these cases is a learning experience in which you want to get the big story as soon as possible, and are willing to wait until later to get acquainted with the inevitable caveats and detours.
if this is true, then I'm going to take C more seriously. I have to move myself forward from TurboC programming.
That's the only one I've got. Sorry it's not it. IIRC, the velocity of money was mentioned in it too, in later chapters. It seems to be an idea that's been around for a while.
For a more advanced version of Tetris in HTML5, I suggest you take a look at Francesco Cottone's rendition of it at http://www.kesiev.com/akihabara/ (it's called T-Spin).

It makes a pretty darn good at emulating the game mechanics of the best versions of Tetris (namely the arcade version "Tetris the Grand Master", but also the Gameboy, NES and DS version).
I haven't proved anything, true — I was illustrating a point with an example, not writing a series of syllogisms. What I meant to do was to direct the reader to the broader idea that our language usage doesn't suggest that line count is a pressing concern past a point that allows for considerable verbosity.

Now, wasn't it more enjoyable the way I put it first?
Reeddit - Minimalist, elastic and read-only web app client for Reddit
But the beauty of modern programming languages is that the responsibility has gone from sole programmers to actual implementation developers. You would expect that people who implement the runtmies and libraries are far, far more knowledgeable, experienced and trustworthy. And it often is so -- the end user(programmer) can't be trusted to know all about security implications, possible vulberabilities let alone how to exploit them!

The whole idea that "Well it's insecure because you program in insecure way!" is outright idiotic, and should be killed. If that means getting rid of C and C++ and people who write in these languages(Hey, myself included!) then so be it. The faster the better. Sure, there are cases in which it's hardly possible, but I'd take 10 times slower computer for 1) fewer bugs 2) more advanced software 3) cheaper software 4) far less security concerns any day.

Now, I'm going to close the C++ project and go write some Python. Makes me feel happy and far less stressed, although C++ does damn well in comparison to C.
The featurelist reminds me of Emacs Org-Mode.
http://orgmode.org/
IMO, this is a better book at explaining C clearly: "advanced programming in the unix environment" by W. Richard Stevens. Don't be fooled by the title.. it's a beginner book.
One day maybe Apple will invent a device for those few of us who have two hands
Debunking Red Bull Myth
But if you never win and you never quit you're doing something wrong
It was news to me that Java in general ran so well on the Rasberry Pi - I'm quite interested in getting one now!
I think by "serious" the GP must have meant literally serious developers, such as those working in huge corporate body shops who are prevented from not being serious by strict regiment. Certainly management in such environs would consider authorization to use any more expressive language than Java as tantamount to handing out dynamite on Halloween.
The lambda implementation requires the MethodHandle/invokeDynamic work introduced at 7, and run time components introduced at 8. There is also some significant work being done on the inliner to support better optimisation for lambdas. Further to that 8 introduces default implementations to interfaces to allow lambda exploiting features to be added to the standard Java APIs while allowing old code to be run without requiring recompilation.

Though changes to the instruction set do not happen at every release there are normally changes to the class file format - so although generics were implemented by type erasure at Java 5 so did not need an instruction set change new signature information was added to the class file format to describe the type parameters, and annotations were introduced which required further class file format changes.
Fundamentals – Stock App for the iPad
I respect your mision to make it "as hard as possible" and understand where you are coming from. My opinion is that a framework lets you follow a ton of best practices by default and helps you from reinventing the wheel. That said I do like what you have done, I am going to give it another try when I get a chance.
Whatever qmail might do wrong, I always smile when I get a mail bounce from a qmail server explaining that it tried everything but couldn't send my email, and that it's sorry. Just an anecdote, but I think a friendly tone humanises things and takes a bit of the frustration away.

It's a fine line between that at being annoying, though.
Could you expand on this? Googling the mk808 it sounds like its a tv device.
No software is infinitely malleable; no matter how much flexibility or portability you design into a code-base, it'll still only really work in situations that at least resemble the ones in which it was originally designed. Currently, the situations Webkit was designed for are a really good match for the situations we have (desktops, laptops, tablets, phones), and it's very difficult to find a situation where Webkit isn't a great choice. However, if there's one thing to learn from history, it's that situations change and usually in unpredictable ways. I have no idea what possible up-set to the computing landscape could arrive and make Webkit unfeasible, but I'm pretty sure something will change eventually, and wouldn't it be nice if we had a backup plan?

Also, consider what might happen if Webkit were the only browser engine. Sure, Webkit moves at a fast pace now, when it has competition from both other browsers and native apps, but consider that the two biggest supporters of Webkit both benefit directly from people using native apps over web-apps. Sure, they benefit from web-apps too, but Apple in particular gets actual revenue directly from native apps, so if they didn't have other browsers to compete with, maybe Webkit wouldn't be as shiny and cutting-edge as it is. I mean, it already renders existing websites, and anything that needs abilities the current web-platform doesn't support can just be implemented as a native app, right?

> If you need to create a completely different engine do it, but only because there is an important difference and reason to do so.

The thing is, if Webkit were the only browser-engine, even if you did come up with some completely different engine, your idea would be useless. You wouldn't be able to achieve compatibility with existing sites without mimicking all the weird bugs and corner-cases of Webkit, which would not be feasible, and if your idea is so completely different you can't just fork the Webkit code and add your idea on top.

> You could achieve all the dreams Mozilla has AND use Webkit at the same time.

"all the dreams Mozilla has" is pretty much "make sure there are always multiple independent, interoperable implementations of the Web technology stack", so no, that wouldn't really be possible. :)