skysight-inc/HackerNews huggingface dataset:
I don't think you need to learn the build system until after you're comfortable with single-file programs, where "gcc yourfile.c" is enough. Then add compiler options, and get to know Makefiles after your programs grow large enough to require multiple files.

GNU coreutils (and in general, a lot of the GNU projects) are rather excessively complex and certainly not what I'd advocate "learning by example" from. Take a look at the BSDs' standard utilities for simpler, more straightforward code.

But even if I can eventually understand what some code does, how do I learn why it does it that way?

I believe that the best way to learn "why" is to ask "why not". You will see that a lot of programmers, IMHO unfortunately really don't know why and are just doing what they were taught to. If you don't do X, then either [1] it doesn't matter and you don't actually need to, or [2] it does and you realise the reason why, when you see how X makes things simpler/more efficient for either the programmer or the machine, or both.
This is true to this day per IRONSIDES paper [1]. Made me consider using Ada as an executable specification language to be converted to equivalent C/C++ and compiled that way. They need to just do a functional implementation of the compiler in a language such as Ocaml with extensive testing. That's what Esterel did for SCADE generator. They said Ocaml compiler stages were easy to trace down to object code. So, that helps with the chicken and egg problem a bit. Alternatively, implement it in the VLISP, PreScheme, or VeriML that were formally verified for correctness.

[1] http://ironsides.martincarlisle.com/globecom_2012.pdf
As stated in the intro, the email is meant to be the start of a conversation. Of course you can discuss it in person instead. For many people, it can be intimidating and stressful to ask for a raise. Sending an email allows you choose your words wisely and take some of the pressure off. Better to send an email than to keep waiting for what feels like the right time.

Some have suggested the tactic of threatening to leave as your negotiation tactic. I would recommend against that if you like working where you are, as it could backfire. You could even get that raise, but then later be let go. If you don't really like where you are working at all that much, then go for it (but maybe don't lead with that tactic as it can burn bridges).
You're in luck, OP, someone just posted a raise template for webdevs to HN.

Oh, you meant a "I Would Like to Get a Raise" template for webdevs...
All of those professions count too. My point is that the value-creating power of any well-educated individual (in any profession) is higher; thus, the government of a country with a solid education system shouldn't be afraid of a lack of population expansion; value to the country isn't indicated by number of lives.
Here is a startup idea, the "License Plate Club" ...

For $10 a month users register their license plate and state, then every month they get a printout of two random plates (at 75% size so as not to be confused with the car's real license plate) which you just stick to the side of your car doors. Of course being on the side of your car no police officer is going to think you're passing it off as your own plate, but every camera trained to detect and record license plates will add a 'hit' to their database right then and there. As more people join more license fuzzing data will be dumped into the databases and eventually all automatically collected license plate data will be useless without manually going through and verifying each sighting by hand, which will make it cost prohibitive.

Hell you could pay pedestrians to walk around with license plates as they go from intersection to intersection. That would be hilarious.
Ask HN: What are you reading?
That's right, its the Sixth Edition of the HN Bookclub. Don't you dare upvote or post.

5: https://news.ycombinator.com/item?id=9543693

4: https://news.ycombinator.com/item?id=9443897

3: https://news.ycombinator.com/item?id=9394397

2: https://news.ycombinator.com/item?id=9342886

1: https://news.ycombinator.com/item?id=8918181
I agree and think it's slightly major. It's hard enough to get word on this language out. Having people Google for Ada 3.0 or 4.0 to get confusing results might make people say screw it. The author should revise the paper with the proper names for the sake of those people.
Depends on what you want. R has arguably better coverage for packages that provide various statistical tools, but Python is arguably a better general purpose language.
If you're a researcher, do you care about all the new technology developments?
I didn't say it wasn't complicated. What I said was most lift is due to angle of attack.

The fact is that the percentage of lift that is attributable to angle of attack is far greater than that due to reduction in air pressure across the curved part of the wing.
And also because of SNI.
Yeah we saw that. The real question is why we didn't have the parallel citation in our database. We'll investigate.
I linked to a book in my comment that refutes what you say by showing how the constructs themselves avoid many problems. Further, there were empirical studies done by the military and defense contractors in the past that compared defect rates of Ada vs many other languages. Ada always came out on top, sometimes with half the defect rate. So, your claim is wrong in theory and practice.
My Equifax account was hacked, and Equifax doesn't care
Below is the text of my email to Equifax today. Note: Separately from below, but for additional context, one of my Chase credit cards kicked off a fraud alert 1 day before the original Equifax email notice. Apparently, someone was running around Brazil with a physical credit card with my name and number on it. Chase said that sometimes scammers generate #s on physical cards, try to charge low-value amounts, and when they succeed, ratchet up the amount.

I'm sharing this because this past week has underscored how fragile our credit system is. Now I'm navigating through credit alerts, reports, and monitoring services, and the process is byzantine and painful. It feels like an arms race and one group is clearly losing: the customer. The industry needs to come up with a better way to manage this and threats to the system and its users - without making its customers bear the burden, as is happening today.

# part 1/3 #

* My account - and possibly Equifax - was hacked. The account has been marked for investigation. However, Equifax possesses information that would help me investigate this breach. I would like to request that the investigation be expedited and that that information be released to me as soon as possible so I can investigate this. *

On May 28, I received an email notification from Member.Benefits@equifax.com that someone had changed the email address on my account. A notice had been sent to the old and new email addresses. The old account was <email address>. It did not indicate what the new email address is.

The same day, I marked the email urgent in the subject line and wrote back that I did not request a change to my email address, and inquired whether this was a security intrusion. Since I had not used Equifax or AnnualCreditReport.com recently, I was confident this was an unauthorized third party.
Python has more consistent stats, time series and programming syntax (for the packages it does have), and better bayesian inference package (pymc 3 > stan).

Python is also better than R for ad hoc statistical modeling and algorithim development (you can write python code on the order of C fast with numba) , general programming, scraping, natural language processing, agent based modeling etc.

Python is also better for GIS, optimization, symbolic math and larger datasets with blaze and dask and pyspark.

R right now is a bit better for visualization, reporting and exploratory data analysis (I think this will change soon though with Bokeh and blaze) and has many more esoteric stats packages.

With statsmodels, pymc3, pandas and scikitlearn etc you can probably do 98% of everything you need in python without needing to dip into the more esoteric packages of R (with some exceptions). For everything else, you can call R packages with Rpy2. With this you get all the advantages of working in one language (not spread too thin) and the advantages that python offers while leveraging R's wealth of packages.

The latter is a bit more difficult through python, but not as hard as trying to remember the syntax of and gluing together a two language workflow.

That is why I chose python... Also I can write excel addins with python (xlwings) instead of using VBA
# part 3/3 #

I am deeply concerned that my account - and possibly Equifax itself - has been hacked, and would like to request the following:

- Please expedite the investigation into this intrusion.
- Please release the email address that the account was changed to, so I can investigate this. Otherwise, please work with the email provider and authorities to locate the person who breached my account.

In addition, I would like to request that Equifax please fix it's protocol for handling this type of situation. For instance:

- In the original email notice, Equifax asked me to email back if the change was not initiated by me. I did, but no one responded for 3 days, and when they did, they did not act on the information and instead closed the ticket. When I called, I was told I should call back during a weekday. Equifax should treat this as a security issue and act quickly, and have a way for issues like this to be addressed immediately instead of waiting days.

- <rep_name> didn't have anyone to transfer me to. Equifax should have a phone number or email to report fraud - not outside of Equifax, but affecting Equifax's systems.

- <rep_name> didn't have access to my full account info and was unable to release any information that would help me investigate this fraud. Equifax should have an escalation process for situations like this. Ideally, Equifax should investigate potential breaches; and if they are unable to, should release information to the user to help the user investigate breaches on their account.

Sincerely,

<my name>
Indeed. But the view of the NetSec team is that you server is not trusted to secure itself.

If every service in your ecosystem implemented ipfw rules (or equivalent) then that's great. But if your box got popped, then can I be sure that it won't be used as an attack vector for other machines? I will turn off the ipfw ruleset locally, and start connecting out to other systems. If there was a firewall sitting there between me and other systems, this would hit rules that should never be hit, resulting in the NetSec team getting some alerts.

Now I believe, like most sane people, that if you've popped an appserver, it's already likely to be game over, and this is a moot point.

For most applications, the app server doesn't live in its own little DMZ, and usually does have privileged access to the DB, often shares the same authentication domain as other services which is not properly secured (e.g. your [backup|log|monitoring|deployment] server connects to every machine with a service account, not SSH protected, and now I have the service account for all machines).

You wouldn't be foolish enough to have mixed admin functions (content management?), and user functions on the same app server... right? Right? Oh... wait... almost everyone does that.

Etc.
# part 2/3 #

3 days later, on May 31, I received a reply that Equifax was unable to locate the account, and requesting further information. I replied providing this information. I received another reply from Equifax saying they could not find the account, closing the ticket, and asking that I call in for support.

That same day (today), I called in and was connected to the Personal Solutions department. I briefed the representative, Mike, on the background of the situation and asked if there was a fraud or security department that could investigate this. I was told no, and the closest department was Disputes, which was closed on weekends. I indicated that if there was a hacking involved, this might be time-sensitive, and could affect other Equifax accounts. I was told there was no other way to get assistance.

I verified my identity with <rep_name>, who created a new account for me, and was able to view the email change history, but said he could not release the email address that the account had been changed to.

I requested 6 times to speak with a supervisor and was deflected each time. After 1 hour and 15 minutes, I was put on hold for 15 minutes, then connected with <supervisor_name>, the supervisor.

<supervisor_name> was helpful. She marked the account for investigation and indicated that it would take 7 to 10 business days. I asked if this could be expedited and she said sometimes it could occur more quickly but there was no guarantee.
Mozilla is working on SharedArrayBuffer (https://blog.mozilla.org/javascript/2015/02/26/the-path-to-p...) which brings something like pthreads to the browser.
> If that's the case you're pretty much dead as far as systems stuff goes because now you can't predict how long anything will take to run.

Erlang would argue with you. GC works fine as long as you have a bunch of really tiny heaps (attached to a bunch of really tiny processes) which can be collected in parallel. It just sucks for Unix-process-sized heaps.
How do you know it's actually plain text? There are plenty of 2-way encryption methods out there.

Do you work there? If so, are you willing to lose your job over it?

These sorts of leaks can have devastating effects on the company/customers. You should also think about the employees that work there as well. Are you willing to risk their jobs in the event that the company loses money?
> Of course being on the side of your car no police officer is going to think you're passing it off as your own plate

How would you know this? In some jurisdictions you can be pulled over and cited for putting a government issued temporary license plate (i.e. one assigned to your vehicle) in the back window instead of the normal mounting spot. At the very least, fake license plates plastered all over a car would raise suspicion, especially if they return information about another vehicle. This is a bad idea all around.
I switched to CMake for all of my C and C++ projects and i never looked back. Takes care of a bunch of makefile issues for you once you get used to it.
I feel like we should do this once a month at most instead of every two to three weeks.
In the picture you linked, he's not wearing two arm guards. He has an arm guard on his left arm (the one holding the bow), and a finger guard on the right (the one drawing the string).
I was blown away a few weeks ago when I came to chat with one of our tech leads during a lunch at his desk and he was reading slashdot. I asked him about it, doesn't read HN, reddit or really much else unless it's linked to from /.

Weird. I don't think I've found a reason to go there in the last 2 years and even before then it was a struggle to find something that wasn't already reported elsewhere days or weeks before.

It's kind of turned into my parent's facebook posts, echoing memes that have long come and gone but they think is new and original.
Even unartistic sites should aim higher than "bland and uninspiring".
Great idea. Potentially more useful alternative: rank the posts strictly by the time they were posted, so that it's easy to see what's new since you last looked. (Perhaps allow posts to be downvoted but not upvoted?)

I was reading the hiring threads regularly for a number of months, and I picked up the habit of scrolling past the first N postings each time: they were highly-ranked HN users posting jobs for their companies, often repeated month to month. Good jobs, no doubt, and good people, but I didn't need a monthly reminder that (e.g.) Matasano is hiring in cities far away from me. :)
I think it might not cover them, going by this: http://hentenaar.com/dont-learn-c-the-wrong-way
I think he is just saying that C isn't worth learning if you just need to do really simply things that a ton of modern languages can do in one of two lines.
> I don't see how the early anthropologists would be so bored with this tribe.

Once you document day-to-day living, which is probably not too unlike most of their neighbors. The only thing left is to document differences. In this case "doesn't do anything interesting" pretty much closes the book on them and it's time to move on.

Other groups will have interesting myths, or variations of myths, games, dances, music, etc. These guys basically just do nothing, and there's not a whole terrible lot that you can write about that.
I'm one of those people that think LISP is the most powerful language ever designed. Best for exploratory programming. Ada is best for mission-critical stuff being among the safest. While LISP didn't mainstream, Python did by emulating the right aspects of LISP without its issues. Coverity reported it had an extremely low defect rate, too. It's also great for maintainable, fairly-reliable, productive code. Yet, most installs still depend on unsafe code in interpreter and libraries.

So, what do you people think about doing a Python implementation in a combo of Ada and SPARK? Everything is done using robust, structured programming style with Design by Contract and all checks enabled by default. A given set of checks can be disabled if SPARK or another tool proves absence of that problem. Ada's tasking or (even better) the SCOOP model can give it real concurrency. The standard library features can be as safe or fast as necessary with Ada-grade interface protections and typing. OS-specific details will be abstracted away in order to port it to a low-TCB, microkernel OS or MirageOS-style Xen guest in the future.

The result should be as usable as Python, work about as fast, be more maintainable, and have fewer implementation risks. I'd also probably implement one of the Python compilers in Ada for performance boosts. Anyone think this is a project worth pushing on academics or FOSS?
Do they have a business model other than selling user data to advertisers? No? Then it'll take more than a "plan".
Whoah. I just had a flashback to a little Sharp personal organizer from roughly the same era. I had completely forgotten it even existed until this moment, but I loved it. It died in a car accident I was in (it was in my pocket, like a phone would be today, and I guess got bent/crushed, though it looked fine, it wouldn't power on after the accident). I just googled, and I'm pretty sure it was a Sharp ZQ model of some sort.

That was a strange time in computing, but now that I think of it, I think I may have been vastly better organized in my life back then, with that device, than I am now. I had two jobs and was going to school and made time for playing in bands and trying to flirt with girls. Maybe I should get another one...
You're diagramming your network. Typically network engineers like using a tree layout - core devices at the top, flowing down to aggregation devices, down to access devices, down to the end devices. Hence traffic to the North was to the core, and out, traffic SOuth was to the end devices.

Typically in a campus you would see traffic going from the end devices up to the core, and then out of the core, either to datacenters/machine rooms, or out to the internet.

In a datacenter, historically, you had a few servers that talked to each other, connected to the same "Access" switch (commonly refered to as the top-of-rack or end-of-row), and then almost all the traffic for those servers also went "north" to the core, with a much smaller amount going south. Almost all the traffic was from clients out in the corporate network, down to their specific set of services.

However over time, end users represent a smaller and smaller portion of what an application does. More systems integrate with more systems - pulling in data from many other systems, doing analysis, backup, etc. etc. This is the east - west traffic, that flows between things in the same tree diagram. East-west traffic is by far the largest throughput in a modern DC.

When the traffic was mostly north-south, network engineers secured the traffic at the edge of the DC - where the DC joined the core/internet. Now the traffic is between servers that are sitting in the same rack/row/room/DC, securing it in the same way just doesn't work.
huh? Hilarious response. Was that even suppose to be a reply to this thread?
too late to edit my comment, but here it is

https://www.psychologytoday.com/comment/246571#comment-24657...
More info from this researcher on this topic here:

https://www.aclu.org/blog/police-documents-license-plate-sca...

[2013]
This spec isn't very human friendly. As a human this bothers me.
Maybe template is the wrong word. It is meant to be a loose outline of what you could say. A starting point with some advice. Every situation is unique.

Also, this email should function as the invitation to have a discussion. Finding the right time and way to ask for a raise can be difficult and stressful. Using an email to start things up can take the pressure off.
I dunno. I've had some people be shocked that GOOG is hiring in Chicago and Pittsburgh and ask me if my post was for real. I don't do it often, but almost every time I post in one of the hiring threads someone is interested to at least know if it's for real.

Just my 2¢.
My pet hate is #include files. The whole way that C handles multiple source files just seems archaic to me, having worked in higher-level languages. I wish C had a proper package system that was standard, so I don't have to mess around with things like include file path order (or my favorite, the C++ template definitions having to be in the header files thing I only recently learned about).
May I ask if what caused you to leave Oracle?

I'm getting the impression that Larry is checking out now; the engagement he had ten years ago doesn't seem to be there anymore.
Having multiple license plates displayed is generally prohibited. As I found out when I had not had time to change my plate after it expired: I had the old one in the usual location, and the new one in the rear window. Got pulled over for it, but got only a warning.
If you don't know code then use Photoshop, get it approved by the client and get a project manager to get a developer to come up with whatever it is you have designed. Easy.
Their explanation of a line break doesn't really explain why JSON or something wouldn't work. Strip whitespace from input and it's basically the same.
The First 5 Principles of Object Oriented Design
Seconded. I'm about to start looking for people for a project that won't require them to be in our office, but which will require them to be physically present to attend client meetings with a week or two's notice. I'd probably be able to accept an intercity trip a coupe of times a month for that - I doubt I'd be able to get traction for a remote employee who'd need to arrange international travel to attend meetings.
To paraphrase an old saying, "When all you have is threat analysis, everything looks like a threat." Law-enforcement in the US has become a victim of it's own unrelenting focus on threat-mitigation, to the extent that they are all too happy to use tools that have always been anathema to American Culture. We have mass surveillance, abusive police, and huge gulags full of people who's first crime was to be poor and under-educated. It used to be these were the things we pointed to when asked, "Why is the USSR/DDR so much worse than you?"

Epic fail, USA. Epic.
Which Social Media Platforms Suit Your Business
The real answer, as many have tried to implement, is another site/tool entirely. One that allows filtering, notifications etc.

Pretty easy to build, not so easy to get community engagement unless the HN folks endorse it officially as an alternative.