skysight-inc/HackerNews huggingface dataset:
DC (and nearby Arlington) has a lot of established companies in the area - all of the big defense contractors are around, as well as the big consulting companies. Many major news companies also have a lot of tech working around, such as USA Today, U. S. News World & Report, Washington Post, Bloomberg, etc. And of course, all of the government agencies.

OPower had a $100 million IPO earlier in the year - they have some good employees (I know some of them).

Palantir does business in the area (unsurprisingly, given that part of their funding comes from the CIA's venture arm, In-Q-Tel, and their business is in visualization & analytics).

Thinkgeek is in Fairfax (I believe they're owned by someone else now though?), and Custom Ink in Tyson's Corner.

The Motley Fool is a fun company in Alexandria (been around for a while though) in the business of financial advice.

I formerly worked at Learning Objects, which is a bootstrapped edtech company - really miss my time working there, the environment beat all of the Valley companies I've been at so far easily IMO. LO is based right in the heart of Dupont Circle, maybe the envy of all of the tech companies in the area in terms of location being right at the north side metro stop.

Rally Health (formerly Audax Health) is one that got bought out by UnitedHealth earlier in the year.

Optoro is another shop that has been doing well, had a Series B round earlier in the year & some excellent engineers.

TrackMaven is a startup in the marketing space that has been doing pretty well - I worked for a company in the Valley once who viewed them as sort of competitors.

Vox Media is between Dupont & Farragut Square I believe (they run Vox, Polygon, SBNation), probably a fun place for a more designer oriented person.

There are a lot out there - keep in mind though, while it is an employee's market in the DC area market right now, there is only so much they are able to pay. Pay seems to be more commensurate with experience. If money is of concern, you're not going to beat government contracting. Otherwise, there are a bunch of great startups to choose from around.
One advantage that circuit routing has over stateless routing is that of largely painless muxing / demuxing; and hence almost no buffer bloat. SONET can mux multiple channels without the need for a single buffer. Obviously the downside is the lack of flexibility, interdependency and hence increased fragility.
I said that based on a Wikipedia reference to this paper: http://arxiv.org/abs/0710.5135

Which proposed to do testing in late 2007 through 2008, which I gather didn't happen, no doubt because of the reason you point out.
Ethereum/Tual: The web, without servers (14:09 min)
There is a way to do this securely whilst improving the user experience. The merchant site can run PayPal's js, which would check whether the user is signed in to PayPal. If they are signed in, the js could just display a "confirm payment" button rather than requesting credentials from the user. If they're not signed in, it could just ask the user to sign in to PayPal in a new window, where the user can verify via the browser's address bar whether they are signing into the real PayPal.

Google Wallet for Digital Goods (which Google is retiring soon) does this, and I think it is the best payment user experience that has been made, so far.
Is your product organic, glutton free, kosher, and Eco/fair trade/fair wages friendly?

My partner and I are interested in purchasing large quantities for a successful niche German adult video venture we founded, but wouldn't want to degrade our performers by using anything less than premium feces.

Thank you.
> OK, so what, though? If it makes the software better for the users, I don't understand the problem.

there isn't a problem! your pull request might take me 6 months to respond to. That's the point. Contributors shouldn't have a problem with that, either.
Are we talking about vocational training or computer science? If the former, Python or Ruby is probably all you'll need.
It helps a lot to be exposed to a variety of approaches, exactly as you say, and to be exposed early while you're still forming ideas about how things work.

Simply saying C is the "best" way also misses that point that different people are motivated to learn in different ways. For many, ramping up quickly in Python and plugging something into a Twitter library would show them that they can actually do something interesting right now, which is enough to keep them coming back for more. Others are driven by understanding how things work, and would be happy to crack open a core dump to figure out what happened.
That's only true in the cases where you are at the same moment jumping off the deck.
“One day you’ll be in Europe”
> Even if we’ve never seen the inside of a gearbox, we know what the Overdrive gear in automatic-transmission cars means, and why you use it to pass a truck on the highway.

Wow, such a bunch of self righteous bullshit! Overdrive is either a specialized gear or just the highest gear. It is in all cases the worst possible gear to 'pass' anybody, or really do anything besides maximize efficiency while cruising at a constant speed.

People that drive stick aren't better drivers or better at driving, evidence of which is the pile of prematurely worn clutches behind every lube shop.
I wrote my first sizable professional C program a few years ago. There were issues with some slow memory leaks in my code. I'd only vaguely heard of valgrind before, but I decided to give it a try. A day of debugging with it caught issues that would have taken months to shake out otherwise, if at all. (It also helped me track down the memory leaks.)
This list is ridiculous. I question whether the author has any idea what he's talking about.

Python isn't used in the real world?

EVE Online begs to differ.

PHP behaves as expected

...ahahahahaha.
The best way to get started is to do it. It is just like moving up the developer ladder from journeyman (not knowing anything about it and working with junior or above developers to learn the ropes) to becoming a senior or master developer. Starting small is the best way to get started, just as with everything in life so you gain experience with each project without being overwhelmed and have time to do things the write way. You can start by writing a nice 150 page book on going over your workflow on creating an app, from no code to fully functional code, encourage no copy and pasting and include pictures of the finished product at the end of each code section. Spend some time working on a theme, front and back cover and insure you have the copy proofread by professionals.
I agree that C is not the "best"; just, vital (I buy that Rust might supplant it.)

But there's nothing you engage with in Python that you can't get by learning C, or Lisp.

Like I said: Python is just a bad example.
Serious (but I'll admit, slightly inflammatory) question.

Do you think people kicking a football round "in an urban area" or thowing a Frisbee in a park with other people around should be "required to have insurance"?
Is there any reason why the open ODS format would not be a better alternative for those of us concerned about open standards?
Considering that the push for Guile is not coming from the Emacs community, but from the Guile community in order to promote Guile, I guess that Emacs will be forked as soon as they deprecate Elisp and start forcing people to use Scheme. Switching to Scheme will be GNU Emacs's suicide.
While you're definitely right when it comes to printed books, self-published books tend to be pretty up-to-date (as an example, I believe "Agile Web Development With Rails" runs a test suite against Rails and the author gets notified the moment something's not accurate with the book, maybe it's the case for this one).
In fact, many typos:

"multiple purmatuations of the origional object and has been analyzed for parts of speach" -> permutations, original, speech

"Sentence Analysys" -> Analysis

Regardless, looks cool. Will be exploring!
> If there's value in understand how a program actually executes on a computer, why not teach that at the same time as "loops and functions"?

Because that's doubling the amount you have to learn in early CS courses. Most students already struggle with wrapping their heads around basic programming, algorithms, and data structures. Adding the challenges of pointers, memory allocation, etc. into the mix can only drive up dropout rates.

I don't think anybody should graduate with a CS degree if they don't know C, but I also don't see any value in forcing them to learn it first.
I've been programming for more than 3 decades. I actually learned Basic first, then DBase, then ASM. I didn't learn C until I'd been programming for about 8 hears. I then learned C++, and Perl, as well as SQL, etc..

I don't feel that learning C would have been the best choice to start with. And the stick shift analogy really not a very good one.

Nobody ever needs to learn to use a stick shift if they don't want to drive a stick. End of story. If you don't need C, you don't need it.

C is great for embedded programming, although I'd prefer at least a limited version of C++ myself. Pure C? I personally don't fine a lot of uses for it.

If your a web developer, or any one of a large number of modern programming areas, you may well NEVER need C or C++. To imply that all programmers need C, is, kind of antiquated IMO.
It's also irrelevant. NYC-Miami is a popular air route. Tampa-Miami is not. The inclusion of Miami in the list I gave upthread would, as I said, make the numbers worse for his argument.
> I think we do a disservice in introductory physics when we have things like massless ropes that do not stretch, massles pulleys and neglect air resistance.

This might actually be a good point.

A lot of students struggle with these ideas because they can't match the naive model to reality and so it's a struggle to understand the purpose of it.

Then, a lot more students struggle to get past this type of naive model because they understood the naive model was the point of what they were learning and it turns out - not really close to the end goal.

Sure, most anyone can learn the naive model of mechanics well enough to pass high school physics. But, it takes an excellent teacher and/or an excellent student to get past those two cognitive obstacles and progress any further. I recall physics to have a shortage of students, shortage of teachers and shortage of practitioners, a deficit that's getting worse.

I understand you are trying to make an ironic point but it's not obvious that it should be ironic. Is a naive model the best way to teach people mechanics? It works for some people but it's at least arguable.
That makes no sense whatsoever. By default the Docker daemon listens only on a local unix socket only accessible to root (and in some distros a separate root-equivalent group).

The CoreOS model relies on running all containers via another centralized daemon: systemd. Feel free to expose an unauthenticated web UI to manage systemd, and see what happens security-wise.

Note: full disclosure, I also downvoted you, not because I disagree with you (that's what the above rebuttal is for), but because based on your prior comments on this topic, you are being deliberately obtuse and aggressive, and no amount of reasonable debate or explanation seems to change that. I look forward to your response (or seeing this comment and all others by me downvoted exactly once) which will probably demonstrate my point.
To my mind in your case it's definitely too early to quit your job just because you are not enjoying it at the moment. I think everybody that left university or school struggles at the beginning of his/her professionell career. To identify parts that you like in your job you should maybe compare it to other jobs. Ones you found out about the advantages your job offers you might be more enjoying it ;)
I bought and read this book soon after it was originally published. This, by far, was my favorite interview.
They probably shouldn't, but the DC-NYC route is Amtrak's most lucrative; it is the Amtrak route that requires the least amount of support from the rest of the country.
That problem burdens the user with constantly checking whether the address bar has changed on every interaction they have with the site. Currently, browsers are still trying to train users to check the address bar just once before putting their credentials into a site. Even for technically slanted users, checking the address bar on every interaction would be a bit too much to ask, I think.
That's a great article! As the article says, "Valgrind should be your tool of first resort". Running clean under Valgrind (as well as without warnings under -Wall -Wextra) is a good requirement for quality code. And it's worth mentioning that although C++ is the example the author chose, Valgrind works on any binary regardless of the language it's written in.

Leaked memory at close might be OK, but "uninitialized value" or "illegal access" almost never is. And if for some reason you think it is OK in your particular case, don't just ignore the warnings. Either change your code, or use a suppression file (http://valgrind.org/docs/manual/mc-manual.html#mc-manual.sup...), or the macros in valgrind.h (https://raw.githubusercontent.com/svn2github/valgrind/master...) to so that others don't waste time on it. And realize that more often than not Valgrind is right and you are wrong. :)

The small changes I might suggest to the article are to add "-g" to the command line flags you always use (it makes debugging a lot easier, and while it makes the executable larger, it almost never makes the code slower); to emphasize more strongly that Valgrind is not a static analyzer and will only catch errors in your code if the execution actually triggers them; to say that "-pedantic" is a good choice if you want code portable to all standards compliant compilers but may not be a good choice otherwise; and to suggest that if you are on Linux, 'perf' is a better first-line profiler than 'callgrind'.
It's pretty silly to compare the average speed of the Shanghai Maglev. It's like a 7 minute trip with 1 minute at top speed. There's several, traditional HSR, routes in china with faster average speeds.
For me, Lisp and Haskell exercise two different conceptual muscles. And neither of them, nor C in general exercise the increasingly important concurrency muscle. Maybe Clojure is a good way to get both the Lisp and concurrency fixes, but something on the Erlang VM, or perhaps Go or Node, are more fundamentally designed around concurrency, and many people build those chops using threads in C++ or Java. Interestingly, this is another area where the usual suspects of Python, Ruby, and PHP are quite poor.
There's also the Open Xml SDK, written in C# and works with Mono (in addition to .NET on Windows)

https://github.com/OfficeDev/Open-XML-SDK

Someone has also created a javascript version of the SDK - http://openxmlsdkjs.codeplex.com/
As a user, I agree 100%. The only way I use CSV files is to import them in Excel.

I've always assumed that programmers output to CSV because they are too lazy to implement an Excel output function.
So your position is that no one is ever going to figure out how to make cryptocurrencies sustainable? Bitshares is already doing it today, and any strategy that proves itself can easily be added to Bitcoin. It's a bad bet, but good luck with that.
Everything you say is true, but it doesn't mean this web ui is not useful, or a bad idea. It just means that it should add authentication :)

Since we are developing Docker's identity and authentication primitives separately from the main binary (https://github.com/docker/libtrust), it would be a cool experiment to try using that in Seagul.

Personally I think this is a cool project, and look forward to seeing it evolve!
I've only done a UK Diploma in Computing, and then only as a part time course (OU), however we started with C and a hardware module (temperature sensor connected by parallel port - that dates it, though they were on their way out - IIRC it was the last year they used that module) and learnt binary operations, some assembler, memory addressing schemes and what have you. It was a great way to introduce the computer as a general purpose device and be able to link the computer language back to assembler and machine code and ultimately to physical operations on binary data within the processors and memory/RAM.

The other modules I took covered OOP using C++; Smalltalk, SQL, db design (JNF and all that jazz). We're going back more than a decade here so no doubt there was a whole heap more too.

Personally I liked starting with the hardware, jumping in with C and then linking the two together. Gave a good basis to understanding computers, I think that first module might have been called something like "understanding microprocessor based computing".
Hi everyone, I am the author of Zusie. I was alerted by a friend about this thread. Thanks for all the interest!

The machine is actually more or less finished, even though the web page doesn't say so. The only thing I was going to add, but haven't gotten around to yet, is a mechanical master oscillator instead of the current solid-state one.
I might also add a proper relay based memory someday (I still have thousands of relays in boxes.. :)
Indeed. I would also add GPU programming, and also a number of features of modern processors such as hardware STM and some other such things tend to be things that C supports only poorly or as an afterthought, despite the fact Intel generally has to keep C compatibility in mind as a design criterion in the first place, an advantage shared by virtually no other language. (Perhaps C++.) It has also long had the "aliasing" problem which is the reason Fortran kept its position as a math language for so long.

Of course in each case, C has been extended so as to do "something" with those features. (Excepting GPU programming, which is just such a different abstraction that C just stops working entirely.) But they are extensions bolted on after the fact, to varying degrees, not something well-integrated into the core language and its core runtime, which remains an abstraction of the 1970s computers from which it emerges.

Which is, all things considered, not that great a criticism, seeing as how few modern languages are terribly optimized for these cases either. The very cutting edge of general-purpose languages today are arguably focused for hardware now merely 10 years old. It doesn't mean I think C is "bad" (... or, at least these reasons aren't related to my real objections). It just means that C, while a great guide to how computers worked 40 years ago, is not all that great for the much richer and more interesting machines of today.

I suppose one can make a solid argument for teaching the 1970s model as a valid simplification. Still, I'd prefer that professionals see it as such, rather than have the unexamined idea that C is truly "how computers work".
I find switching between Algol family based languages easy (Basic, Pascal, C, C++, Javascript, Java, C#, Go, PHP, Lua, Rust). But switching between Algol and various Lisp dialects takes some minutes.
> I don't get much pleasure out of life or everyday experiences anyway

That's a very existentially depressing statement. I tend not to experience "true" happiness on a daily basis, but at least in the course of a year I can accrue many experiences which make me very happy.

I sincerely hope you eventually come to find general pleasure with life.
Yeah, apologies if it looks like I was intentionally misleading. Was not my intent.
Currently, IO.js is faster than Node.js
There is an important way in which writing C (or really any language where you allocate memory manually) is not like driving a stick.

The thing about driving a stick shift is, when you make a mistake, you know it immediately: you hear gears grinding, or see the tach leap up because you downshifted too far, or start rolling backwards downhill. The car gives you instant feedback on your performance as a driver. You learn from this feedback and become a better driver. You know you're a better driver because the bad feedback doesn't happen anymore.

Making a mistake when programming in a language where you manage memory manually is frequently not like this; you don't get the instant feedback when you screw up. The code compiles, the binary runs, everything looks fine. It's only days or weeks or months or years later that you realize that, while it looked fine, it has actually been slowly leaking memory, or in certain circumstances can lead to a buffer overflow, or so forth. Maybe you never realize it. So, without the prod of that instant feedback, you don't become a better programmer. You just keep writing crappy, broken C forever.
> I often think about this too. What languages will be the gold standards in 30 or 50 years from now? Or 100? Will people view Python and Ruby as many people view COBOL and Pascal today?

It's hard for me to believe that they will view Python and Ruby as charitably as we view COBOL and Pascal. Cobol is only 32 years older than Python (1959/1991) and Pascal only 25 years older than Ruby (1970/1995).

I imagine the gold standard programming language for the 2040s is either a twinkle in someone's eye or just invented.
I'm glad there were other nerds who were bothered by this like I was. Thanks HN!
I should have been more clear: I agree with you on this and think C should be one of the batch of first languages students are exposed to (as the best choice in its class at the moment). The OP seems far too biased towards C, though.

What worked for me was early exposure each of: a specific teaching language (somewhat like Eiffel, within a simplified environment), C/C++ and Scheme. They each taught me very different things and I'm glad they were all offered in my undergrad, although I think they should offer Scheme earlier (IIRC it was part of an optional third year course, which also touched on e.g. Prolog).
Valid and like I said, I didn't mean my comment to be antagonistic and certainly wasn't overtly trying to attack the OP. Obviously it came off like that so my apologies.

But, I think you're missing my point - the information overload, in this particular case, seems to be a direct result of the decision to continually add articles to their list all the while knowing that they are never going to be able to find enough time to read them.

"You seem to think that a person has nothing else during his day than read every piece of news that comes their way."

I understand that my post could have been interpreted in this way, but what I actually meant was that if you are truly interested in something, start making time for that interest. Sure, no one can drop everything they're doing whenever they want to pursue each of their interests every time they arise. However, you can make the decision to create time for your interests - and this means prioritizing your interests.
Dante nerd? Leopardi geek? You are talking about giants, don't use those inappropriate terms to describe them please. Both are Great artists, we all need to study more before judge or even comment about Dante and Leopardi.
If you have stretchable ropes, massive pulleys and air resistance, you'll need to be able to solve some complex differential equations which, in the North-American context, would not be taught until 2nd year university. Yet, the simple concepts of conservation of energy and momentum can be taught using simple algebra at the high school level with these idealized systems.

As for the deficit of practioners ... there are at least 10 times as many people getting a Ph.D. in Physics in Canada and the U.S. as there are positions ... so, no, there is no real shortage. (There is a shortage of qualified high school teachers though.)
Code as Art: My thoughts about why Haskell is not popular