jkeisling/hacker-news-corpus-2007-2022 huggingface dataset:
Hi guys, Netanel Rubin here.

First of, I'm not a Pythonist. Python has nothing to do with the faults of Perl - Perl does.

Perl was a great language back at the 90's and early 2000 - it doesn't now. That is mainly because of the 'write-only' code style and many not-that-intuitive behaviors other languages practice better.
It is true that my talk was based on bad programming practices, but that's the practices actually used in the wild - in Bugzilla, TWiki, MovableType, and I haven't even started talking about what cPanel developers did.
So, if 99% of programmers doesn't use the language properly, who's fault is that? A company needs to provide its costumers with a working, intuitive product. So is a programming language. If so many people doesn't know how to use it properly, I'm sorry, but it's the language fault.

Another thing pointed out is prepare(). Yes, you can use it, no SQLIs there. BUT, this has nothing to do with the point. The point is that list expansion behavior in function calls is a problem most programmers weren't aware of.
These are some code sections used at Bugzilla 4.4.6 (fully patched as of 30/12/2014) at different places:
$attachment->_check_content_type($cgi->param('content_type'));
$cgi->uploadInfo($cgi->param('data'))->{'Content-Type'};
IsValidQueryType($cgi->param('query_type'))

And it also has 2 different quote() occurrences:
$dbh->quote($cgi->param('requester'));
$dbh->quote($cgi->param('requestee'));

Now, I'm not saying all of those leads to a vulnerability, but as you can see there's a very visible trend here.

Did all of those programmers and maintainers never read the tutorial for the language? Or did the language documentation confused them to the point they simply weren't aware of this behavior?

From a personal perspective of one that did try to figure out what's going on with lists I can definitely say that this behavior is documents - At several places, very differently. As a simple example go back to my slides and look at the CGI documentation screen shot. VERY confusing, and honestly, just false.

As for the attitude, I do apologize for everyone offended by the young douchebag that attacked your language. But, as recent vulnerabilities showed us, without a proper show no one's gonna notice you and your point, important as it may be. So, yes, I added a couple of funny images and built a momentum for a punch line, but otherwise this talk wouldn't have got the buzz it's getting right now and programmers would've still be blind to this behaviors, as sad as it may be.

For an ending note, I do believe Perl has done it course, especially for large, maintained systems such as Bugzilla and cPanel. It may be the end of an era, but who said this is such a bad thing?

Thank you for your comments (positive or negative) and for reading this.
I just posted a very similar thing implemented as a browser extension (HNtitles[0]) so that it shows the original text in the page without any effort for the user.

(I had written a first version of this some time ago[1] as a bookmaklet, but a browser extension is simpler to use.)

[0] https://news.ycombinator.com/item?id=21621411

[1]: https://news.ycombinator.com/item?id=6573188
I want a browser extension (or native feature) that searches several engines at once and display's the results side-by-side. Sort of like this:

+-------------------------------+
| Search string |
+---------+----------+----------+
| | | |
| Bing | DDG | Google |
| | | |
| Hit 1 | Hit 1 | Hit 1 |
| | | |
| Hit 2 | Hit 2 | Hit 2 |
| | | |
| Hit 3 | Hit 3 | Hit 3 |
| | | |
+---------+----------+----------+

And I want to be able to pull it up instantly with a keyboard shortcut.

The extension would need to be smart enough to de-duplicate hits across the different engines.

Finally, I really REALLY want to pay for the search engines themselves (make it a subscription at $50/m or something), because then I know their incentives are aligned with my needs rather than with their ad business's needs.

I don't think any of the search engines have search API's? Maybe they could make API access a paid feature.
For firefox on Mac they made an important milestone three weeks ago in that performance got increased while power consumption was reduced. Are you using the latest version?

If mobile means Android you should give Firefox Preview a shot, a whole new experience.
I assume Namibj is suggesting a switch from our current hub-and-spoke ISP model to a peer-to-peer mesh networking model.

Radio technologies have strengths and weaknesses. While WiFi works great in a home, other radio types are better at transmitting data long distance. The best solutions combine a mix of radios to leverage their strengths.
I've only worked in Western Europe, and regular social activities in the workplace have been a common feature, across countries. Usually either as a weekly lunch outing or post-lunch activity (e.g. daily foosball or Friday timeout (beers optional)).

They were all during work hours, though.

EDIT: also, the level of "officialness" varied. Some were organized by the company, others by the direct manager of a team, and others by the employees themselves on a more personal basis.
I doubt there's a definition of "ad" that would be feasible target on a platform like Youtube. A trailer, for example, is an ad for a movie, but I think Youtube would be harmed if all of the upcoming movie trailers were removed.

As a consumer, I find it pretty easy to distinguish between a "wanted" ad and an "annoying" ad, but I don't think there's a way to enforce rules based on user value systems if for no other reason than every user's value system is going to be distinct.
The mosquito problem is one of the aspects the Gates Foundation is working on to eradicate Malaria.
I think Amazon warehouse is a good job for some, and others with no choice. Personally all other things being equal(which they prob aren't but depending on age and situation the other benefits may not matter much) I'd rather work fast food than run around that warehouse like a mad man all day. Lot a fast-food and other places offering 15/hr around me and I live in a relatively low COL city..

I wonder how many people here saying Amazon warehouse is a good job just because it pays 15/hr have actually worked there along with other jobs paying similar or better?
Exactly. There are a lot of things we can do without - refrigerators in every home, laundry in every home, AC, etc. But they make life way better and very few people are willing to go without.
Slight nit-pick: while aircraft primarily use AM, FM is frequently used in services like fire-fighting and forestry.

Source: installed FM radios more times than I can count, including troubleshooting one last month
Hear, hear! I'm 90% of the way there, now.
> The rise of "Roundup Ready" crops is helping to eradicate the monarch butterfly.

This is true, but it's significantly less direct than the news stories have indicated. The issue is that Roundup is being used to eliminate milkweed, which are essential for monarch butterflies. It's not Roundup or Roundup Ready crops that are harming monarch butterflies, but what they're being used to eliminate.
This is a slightly misleading title.

Matt Cutts: for the next few years links are not going anywhere and will still be used for determining reputation.

But overtime, Google will rely a little bit less on links for reputation purposes.
Clickable links

Teaser video: http://youtu.be/l_xZeMUzwH4

App Store download: https://bit.ly/1hkfxC6
Just like how a Java application works on all platforms!
It depends on your situation. Personally, I wouldn't give a bird in the hand for two in the bush.

Do you have a family, loans?

Do you have at least 6 months worth of living expenses?

Can you quickly find a job if things don't go as expected with your freelancing jobs?

You should consider these things first.
One very important thing not mentioned is what technology the OP freelances in. Mobile is hot and will have you working immediately (email me for iOS work), and PHP will take some weeks before you get a good contract that is not tweaking templates.
This is very similar to the story of Jesus as his mother, Mary was a virgin.

So they don’t need to spend all that tax payer dollars on researching this.

God made man. End of story.
> it's in an open sourced package, so the assumption is someone is eventually going to see it, so it's not going to remain a secret and thus is useless as a stealth backdoor.

The fact that people can see the nature of the bug in the source code for themselves just makes the case that it was a deliberate backdoor even more deniable which, as Schneier is pointing out, is a very desirable property.

You're also assuming that a backdoor you can use indefinitely is desirable.

As an added side-benefit, any other proprietary or FOSS products that adopted this code are now vulnerable.
Thanks for the shoutout! Yes, the web app was definitely first priority. But apparently mobile is a huge recent growth area for travel search sites. Folks evidently want to search & book from their smartphones -- but it's still not as big as web (yet?).
They still have embassies. Being neutral doesn't necessarily imply being isolationist.
Free has no strings attached. If you don't like the feedback, don't use it. Nothing to lose.
Is this really the path you want to go down?
I actually read To Phat Monocle the first time I glanced at it :)
I just tried a medium sized file. About 3 pages. It just says loading......
Here's a link to the project website: http://www.cs.cornell.edu/projects/fabric/.

It has a link to the paper as well.
A lot of people misunderstand that book. Design Patterns reduce complexity when used correctly. A good book to understand that is Refactoring to Patterns http://industriallogic.com/xp/refactoring/.

If you need your code to construct objects without knowing the type, then you need a factory (or other creation pattern). If you don't -- it's overkill. They are using a solution to a problem they don't have.
He sounds like a whiny little idiot, angry about 14 million dollars. If he wasn't such an idiot, he'd have been fine for the rest of his life.
We've had widespread unauthorized sharing of video and movies for nearly as long. Are fewer TV series being created, fewer channels being launched, fewer movies made today? Or more?

Post ho ergo propter hoc fallacy, there. The technology of making a film/video has become vastly cheaper than it used to be. This has been a far bigger influence on the economics of production than the ability to get copies via unauthorized sharing. On the other hand, it's a lot harder to make your money back than it used to be. File-sharing is partly responsible, but is only one factor among several.

First they came for the domains of the scum of the earth, and I said 'good riddance', because I'm not scum.

Yes, losing your domain is just like being sent to a concentration camp. I'm not asking you to support this (I don't) but let's keep a little sense of perspective here, shall we?
Why aren't these LINK tags with appropriate REL extensions?
I also started running Linux on macbooks in 2009, three of them so far. I get them from the companies I've been working for.

In general, I agree with you. It can be challenging, but as long as you don't have the bleeding edge macbook, the latest Ubuntu tends to work pretty well.

The 2014 macbook pro I'm using now has everything working on Ubuntu 2014 LTS except suspend and the thunder bolt ports for video.

Those are kind of a big deal, but I don't need them and I really like to run Linux on the exceptional mac hardware, so I take the hit.

When I do need to project a presentation, I just boot it into OSX. Again, that might not work for most, but I'm fine with it. I just really like to run Linux on the bare metal mac hardware.
s/Perl/software development/
Everything at the lowest levels needs to be tightened up now.

Buffer overflows in trusted code have to go. This means getting rid of the languages with buffer overflow problems. Mostly C and C++. Fortunately we have Go and Rust, plus all the semi-interpreted languages, now, and can do it.

We need something that runs Docker-like containers and, all the way down the bare metal, has no unsafe code. We need dumber server boards, with BIOS and NIC code that's simpler and well-understood. The big cloud companies, Amazon, Facebook, and Google are already doing their own server boards.

Companies which put in "backdoors" should face felony criminal prosecution. That doesn't happen by accident.

Latest CERT advisory: "Vulnerability Note VU#936356 Ceragon FiberAir IP-10 Microwave Bridge contains a hard-coded root password ... Ceragon FiberAir IP-10 Microwave Bridges contain an undocumented default root password. The root account can be accessed through ssh, telnet, command line interface, or via HTTP. ... CERT/CC has attempted to contact the vendor prior to publication without success."

All Ceragon customers should demand their money back, and their products should be seized at US customs as supporting terrorism.
Your math is wrong, making your entire premise/argument invalid. A transaction costs $0.60 of electricity as of right now:

150000 kilowatt (power consumption of the global Bitcoin network [1]) ÷ (3600 (sec/hour) * 7 (transaction/sec)) = 6.0 kWh/transaction

The worldwide average price of 1 kWh is $0.10, so a transaction costs $0.60 in electricity to be processed by the network.

Also, the 7 transaction/second limit comes from the current 1MB block size limit which was chosen by agreement. It will be increased in the near future. If it is raised to, say, 10MB this would allow 70 transaction/sec, hence reducing the electricity cost of a transaction down to $0.06.

[1] http://www.eetimes.com/document.asp?doc_id=1323522 - the global hashrate has increased by 50% since this article was written (~200 petahash/sec in August 2014, up to ~300 petahash/sec today) but at the same time hardware efficiency (hash/sec per watt) has increased, so the ballpark number is correct
There is such a point. If you have a widescreen monitor, you can verify this by maximizing your browser window and trying to read that article. I tried this. I couldn't take it. I then resized my browser to half the screen width (which in my case is 800 pixels) and was able to read it comfortably. But the comfortable size was still much more than 100 characters per line! (If you count spaces. I'm not sure if I'm supposed to count spaces. But even if you don't count spaces, the first line of the article on my half-screen browser had 102 non-space characters.)
> I guess that'll now change.

Why? So long as they don't do anything illegal in the selection process they shouldn't have to worry about anything. This is only for people who get accepted, not rejects.
Your contention is that Little League would be more expensive if they weren't allowed to sell your financial records?
If the company is of a certain size, Docker Desktop is no longer free. As in, it's free to install and use, but your company is supposed to pay a license.
I disagree where you say 'an octree is definitely part of coding an MMO.'

An Octree is just one technique to reduce the size of the Potentially Visible Set of geometry that is sent to the rendering pipeline. While its a quite a natural fit for a voxel-style world, such as minecraft, there are many techniques to achieve this; an octree just being one.

If the Octree was the core technical challenge and data structure used to create every MMO, then I'd have no issue with the article.
But its really not - its a simple technique, graphics 101, used to speed up rendering (or collision detection).

Further, just having an octree is not nearly sufficient for handling MMO scale issues - a lot more needs to go into structuring the world - when those larger challenges are solved, I'd like to read his article on it.
Depends. Am I salaried or hourly? If I'm hourly, I guess that's just the way it works. If I'm salaried, how is it that I can be expected to put in 50% more hours for 0% more pay, but if I want to work less hours I have to take a pay cut?

It seems to me that programmers simply aren't paid according to the hours they put in.
The problem is that our current economic system is not ready to deal with such a high productivity level. With technology advancements eliminating entire job classes virtually overnight, in our lifetime we will reach a point where there will be way more people than necessary jobs; and the economic system will have to adapt. Two simple (not easy) solutions that come to mind are artificial population control or a different resource diatribution model.
From the article, 600 for a bedroom in the notoriously dangerous Bedford-Stuyvesant doesn't sound like either Manhattan or cheap.
Cute, but the gameplay doesn't seem very fleshed out?
The MSP430 RTOS I wrote was real-time and cooperative, with the caveat that it was application specific, and no task would ever take more than one millisecond to complete. I was careful to design all the tasks so they would never exceed the maximum run-time. For the tasks that needed more time, I broke them into several sub-tasks.

You said; "When you set a timer, which stops the running task to switch "to somewhere else", then it's not cooperative." You are correct. The OS does not require the cooperation of the task in order to suspend it and start/resume a different task. A non-cooperative OS does not require the task to either make a system call (such as waiting on I/O) or to finish. It will preempt the running task according to the scheduler rules. Typically a scheduler will receive periodic interrupts so that it can assess which task should be made active. On real-time systems without much processing headroom, the context switching between tasks can take up a significant percentage of CPU time, which is why I went with cooperative multitasking on the (25MHz) MSP430 micro-controller.
Bezos explicitly said it in this letter - he expects all of this stuff to make the company gobs of money in the future. For a lot of the stuff Google spends money on, I don't think investors are necessarily very confident that it will have the same impact on future profits.
How does a small company like Fog Creek handle ordering, delivery, and clean up each day? In the photo it appears that everyone is eating off of china with silverware. Do they maintain a cafeteria?
You've clearly never been on the internet before. That image is already linked on thousands of sites. I'm assuming you'd say this exact same thing if I posted tubgirl or detroit hardcore?
Another data point: here only one friend has a jailbroken iphone. The other ones don't even know what it means :)

But otherwise I do agree with all you wrote!
How do you know I am not the one calling and just trying to get information about your business since you are one of my main competitors?
read this

http://www.joelonsoftware.com/articles/fog0000000069.html

http://steve-yegge.blogspot.com/2007/01/pinocchio-problem.ht...
My experience is completely different from yours. As a programmer I need very little: a terminal, Emacs, and a browser. These run very fast on the MBA.

And unit testing... I usually only run tests relevant to what I'm working on, and the full suite only before I push code, so it never takes much time.

But then again, I work on scripting languages.
> if you give away your work for free, all of the cheapskates and losers come out and start insulting the service

This is exactly what Spotify experienced when they announced they were going from free -> not so free.

http://www.spotify.com/uk/blog/archives/2011/04/14/upcoming-...
I've never used one, but it sounds like a great idea. 3rd party React components are a huge pain in the ass to work with. People do all sorts of bullshit like re-implement half of CSS in their component's API and half the time it's easier to just build the fucking thing yourself than learn all the arbitrary rules around customisation the author has conjured up.

The best reusable components are the ones that have exactly one look, which you're fine with, and are just plug in and go.

None of that is a problem with the logic behind the component though, just the display. So for something complex that has a bunch of logic behind it, it's a real nice idea to just be able to reuse that logic and whack some html and css over the top of it instead of having to read some 6 page doc every time you want to increase the width of a border or something.
it does make it clear to me on MacOs ? I haven't noticed that at all
>And it didn't get that way WHILE I was there. That project had been around since 1998. They were so afraid of change that they were still using the C++98 compiler. So I didn't even leave that job with relevant (read modern) C++ knowledge.

This happened to me too!

I understand the reasons for that: it was highly specialized (scientific) software used in computer chip manufacturing. Most of the people on the team had a PhD in Engineering or Science, but few had extensive Computer Science training before joining the company.

The hardware industry is moving slowly, because you don't just upgrade a fab. Some of the clients were on RH5, so that was our build target.

Part of the codebase was in Fortran (and for good reasons too; this language is common in HPC/scientific scene).

All this resulted in a codebase that was part brilliant, part byzantine, poorly documented, and not even compiling with a modern C++ compiler (hence reluctance to start using C++11 or newer).

Thankfully, the automated test suite was holding it all together; but that was about it. As people left, they took systems knowledge with them that was written down nowhere, and nobody wanted to do a deep dive and document the still known parts.

Predictably, the priority has shifted to "quality" - that is, fixing bugs instead of innovating on the core functionality.

That was not the only reasons why I left for better opportunities, but it was a big factor. It wasn't the legacy system that was scary - no more scary than a hairy prototype that gets the job done, really - it's that nobody was going to put in the effort and take the risk to start moving from a decades-old "prototype" stage.

I believe that things finally started moving when the people there realized that there is no way but forward; I hope they are using modern C++ now. But that train was set in motion after I left.
I've done it at small companies just by talking to my manager. Not sure how to do it at a large company.
Because suddenly to make them happy each store requires thousands of dollars in new equipment.

It's not just offering the product it's requiring a separate process for it that costs money to each franchisee

The impossible burger is a product. The demands are the result of these people not impossible burger
> That is 367.5 times more audio samples than video frames.

Okay, but an audio sample is not comparable to a frame of video, which by itself means something to the viewer. (But, on the other hand which probably doesn't differ much from the previous or next one, especially at 120 Hz).

An audio sample is sort of more comparable to a pixel.
If Amazon extracts any value out of public roads, perhaps it should pay taxes that support those roads. After all, socialized services can't afford to look the other way forever.
I don't think qsort changes anything about the mechanism described in the blog post, but maybe I'm missing something. (I.e., use qsort_r...)

(qsort is really only for C. Other languages can potentially inline the comparison function, so using FFI for that is kind of insane.)
> American age discrimination laws only protect people over 40 from discrimination, they don't protect people under 40 from being discriminated against.

Are you sure about that? Do any lawyers want to weigh in?

Explicitly hiring only 40+ for any given role seems like it would be a lawsuit magnet.