Writing a Compiler for Python - <AUTHOR> http://ece-www.colorado.edu/~siek/ecen4553/

<comment><USER2> I've already commented, but I feel compelled to comment again after looking at his homework assignments. They could easily be the basis for a practical textbook in compiler design and implementation.

For anyone who's never had a class in compilers, but wants to know more about them, Siek's material is a great way to start.

</comment><comment><USER2> The course is taught by Jeremy Siek, who has done interesting research on generic programming and the design of concepts in C++. Take a look at his papers: <http://ece-www.colorado.edu/~siek/publications.html>

</comment><comment><USER3> This is a great idea. One problem with the class upon first glance: the grading structure.

It's a compilers class, where you'll actually implement a compiler, for only 10% of your overall grade? The rest of the grade is made up by midterm, final, and quizzes.

Teachers not putting emphasis on the actual development often leads to students half-assing assignments and not getting the coding done. The compiler implementation is by far the most valuable experience in this class. The final isn't. The grading weight should reflect as much.

<comment><USER4> I actually took that specific course from Professor Siek last semester. (You can find my name on that page.)

Doing the homework was the only way to do decently on the quizes, or the exams. Most of the questions on those tests consisted of "write out the code for the $x portion of the compiler". So if you didn't already understand how that bit worked, you weren't going to figure it out in 10 minutes, and get any of the points.

The low emphasis on the homework allowed him to have basically no restrictions on students working together, which is rather handy for most folks. And it still required you actually develop an understanding of the content.

</comment></comment><comment><USER5> I really wish the videos from lectures like this were widely available. They would be a great resource for self learners along with the course material.

</comment><comment><USER6> I couldnt find any link to enroll, for this distance learning program

<comment><USER7> There's a link to the CAETE site, which has a big register button.

<http://caete.colorado.edu/registration-tuition>

CSCI: <http://caete.colorado.edu/coursedb/view-course/310>

ECEN: <http://caete.colorado.edu/coursedb/view-course/309>

Though the course website says Fall 2008, so you may have to wait to see if it's offered again in Fall 2009...

<comment><USER8> However, you have to enroll to the university for credits to distance-learn the course.

The Professional development course registration (noncredit) unfortunately does not list the course in its schedule of Fall 2008.

</comment></comment></comment><comment><USER9> Thanks!</comment>


WiFi Hides Inside a USB Cable - <AUTHOR> https://hackaday.com/2019/02/18/wifi-hides-inside-a-usb-cable/ <comment><USER2> About a month ago I found a similar device on aliexpress that has GPS and SIM card slot:

[https://www.aliexpress.com/item/1m-USB-Charging-Data- Cable-f...](https://www.aliexpress.com/item/1m-USB-Charging-Data-Cable-for- GPS-Locator-GPS-Positioning-Pick-up-Line-Tracker-Remote- Tracking/32822576534.html)?

<comment><USER3> Would be even scarier with eSIM, but I suppose it's just a matter of time before we get that.

<comment><USER4> I bet it's there, someplace, for sometime now.

</comment></comment></comment><comment><USER5> This is scary. I mean someone can just replace the cables in my house and my phones and computer would become infected. I can't even imagine the headache this does for company's cybersecurity practices.

A rogue janitor replaces the usb cables on some of the employees of a company that makes $INSERT_SUPER SECRET_TECH$ and done.

<comment><USER6> How? I've never seen a device, certainly not a PC, that will just randomly connect to any router it sees without some sort of user input.

<comment><USER7> My understanding is that it allows an attacker connected to it via WiFi to mess with the plugged-in computer using USB (pretending to be a keyboard).

See the Twitter video: [https://mg.lol/blog/omg- cable/](https://mg.lol/blog/omg-cable/)

<comment><USER8> A secretly-IoT keyboard that shares your key presses and may "type" malicious stuff when you're not looking at it; the OS wouldn't be able to tell it's not you doing the typing. Not scary at all, no sir.

<comment><USER9> It can't read your keypresses (I think)

<comment><USER10> It can't (unless it's the keyboard cable).

<comment><USER11> Hid usually ok with systems and hence a wireless mouse and keyboard pretended.

A windows hack may be - The "mouse" would ask to move to leftmost bottom corner then click. Type searching terms like Cmd<r>. Then if can get hold of the windows one is in ...

Any better idea?

<comment><USER12> <windows-key>R brings up a run dialog with the focus already in the text box waiting for a command. No mouse needed.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> If you can do this for kicks, imagine what you can do with a budget.

<comment><USER14> It's basically what the NSA's ANT catalogue had in their COTTONMOUTH devices, among others [1]

[1]: [https://en.wikipedia.org/wiki/NSA_ANT_catalog](https://en.wikipedia.org/wiki/NSA_ANT_catalog)

<comment><USER15> [http://www.nsaplayset.org/turnipschool](http://www.nsaplayset.org/turnipschool)

</comment></comment></comment><comment><USER16> Naomi Wu reported on those last August.[1] There's one on Amazon that uses GSM, but it's 2G.[2]

[1] [https://twitter.com/realsexycyborg/status/103190315541447884...](https://twitter.com/realsexycyborg/status/1031903155414478848?lang=en)

[2] [https://www.amazon.com/Jiusion-Listening-Surveillance- Quad-b...](https://www.amazon.com/Jiusion-Listening-Surveillance-Quad-band- Lightning/dp/B06X42SGPY)

<comment><USER17> This is a couple levels past just a simple audio recording device.

It's a remote control rubber ducky and more.

</comment></comment><comment><USER18> I'm wondering whether any of the Google security team will use this for their "leaving tradition" [1], or whether it's considered cheating, just too easy.

[1]: [https://twitter.com/LeaKissner/status/1085624255381827584](https://twitter.com/LeaKissner/status/1085624255381827584)

<comment><USER19> I worked on a security team that did this when I left - I taped & signed every USB connection at my desk and checked the signatures every time before I unlocked it.

<comment><USER20> I must be out of the loop but, how do you sign USB connections?

<comment><USER21> "Tape and sign" sounds like apply tape and add a signature on the tape that you don't expect anyone else to be replicate reliably.

</comment></comment></comment></comment><comment><USER22> Here's the announcement tweet with a video demonstration:

[https://twitter.com/_MG_/status/1094389042685259776](https://twitter.com/_MG_/status/1094389042685259776)

</comment><comment> entire-name I guess even some sort of "signed device protocol" will not work. An attacker can just create a device that guesses the device identifier (or whatever is used to create the signature). Then, the attacker device can just keep guessing until it gets it right. Chances are, some serial number or similar will be used for this, so continuous guessing is feasible.

Will the solution to this, then, be to have some sort of "smart card enabled device"? For example, assuming TOFU, you manually accept all device's public keys (and all devices, including cables and stuff will have one of these). Then, the computer will have to verify all actions done by those devices by sending a challenge for each action. But this seems impractical and inefficient...

Perhaps physical security is the only way for this...

<comment><USER23> On Windows XP this would display a "new device: keyboard connected" balloon and the Safely Remove Device icon would immediately set-off my spidersense - it's unfortunate that newer releases of Windows hide those notifications by default and the only clue that something might be wrong would be hearing the generic device connected sound multiple times in quick succession which many users might think was their sound-card glitching.

I think a solution is for OSs to only allow the automatic mounting of newly- attached devices if they're "passive" (e.g. mass storage - assuming no autorun.ini, output-only devices, HID class devices that only expose game- controller functionality, etc) - other device classes like mice and keyboards plugged-in to non-trusted ports should always require explicit approval.

While we're on the subject: keyboards can be massively improved by adding over-the-wire encryption to prevent keyboard-port logging, and the USB keyboard class should be extended to include the keyboard declaring its layout to the host OS. It's silly that we still need to configure keyboard language settings or that the OS infers it from our regional settings.

<comment><USER24> How would you approve the keyboard without using the keyboard?

Anyway since we are assuming physical access, they could just swap out your keyboard for one that works normally until you go for lunch, then starts typing for itself..

<comment><USER25> The OS could display a random sequence of keys that you have to press to enable the keyboard. If the evil cable can't see the screen it wouldn't know what keys to transmit.

This is not a serious suggestion since it would be annoying to most people.

<comment><USER23> No more annoying than Bluetooth pairing PINs or iOS's passcode-to-use-USB prompts. If the keyboard has secure stateful memory (e.g. for a client- certificate or client-secret) then the user would only have to enter it once.

</comment></comment></comment></comment></comment><comment><USER26> What is the wifi for? the only attack I can possibly see here is pretending to be a keyboard. And you don't need wifi for that, you just need a pre programmed set of steps to set up remote control for the pc.

</comment><comment><USER27> That hardware solution sans wifi could offer some interesting security solutions such as trusted bridge between any computer and your mobile phone. Can't wait to see this torn down and hacked.

</comment><comment><USER28> so... that could be useful to penetrate secure facilities, like nuclear weapons bunkers/reactors. A worker is sent a cable as a "gift" or has one substituted in by mail intercept for an actual order. Attacker waits outside in a van and controls things over wifi.

<comment><USER29> Also a reason why the TEMPEST standards exist, wifi isn't going to go very far through the walls of a shielded facility that is basically a huge Faraday cage.

</comment></comment><comment><USER30> what's the attack? the website just drones on about a cable that, as far as i can tell, could just broadcast your keypresses over wifi.

<comment><USER31> Most operating systems trust USB devices completely. You can send keystrokes that open a text editor and type malware that'll do whatever you want, and you can control the attack in real time via wifi.

(it couldn't read user keypresses unless they use the cable to plug in their keyboard)

<comment><USER32> It certainly could read user keypresses after it typed in malware with a keylogger, and then transmit your keypresses over _its_ wifi (not your network, where it might be detectable) back to the attacker.

</comment></comment></comment><comment><USER33> Can someone confirm for me? This needs a nearby wifi network that is either open or has credentials too, correct?

The video appeared to have it connect directly to the phone or to the network they both were on.

<comment><USER34> It looks like this hack uses an esp8266, which supports WiFi. Most likely the chip is booting up its own WiFi network for the phone to connect to, the phone is sending the payload over this network, and running the usb exploit. Some esp family chips should also support Bluetooth.

<comment><USER33> Okay, so the attacker would need to be within range. Is that a correct understanding?

<comment><USER35> Although that's implied, you could use a proxy device nearby instead

</comment></comment></comment></comment><comment><USER36> Another reason to use QubesOS, where usb devices are connected to a separate virtual machine without any networking. And any usb keyboards are only activated after a confirmation.

<comment><USER37> Noob question: How do you confirm?

<comment><USER36> Qubes is designed for laptops, so your first keyboard does not need any confirmation (it's not connected via usb).

upd: Alternatively, for installations with a usb keyboard, this defence is disabled.

</comment></comment></comment><comment><USER38> Would a high voltage loop, for breaking components, be a good solution to an attack like this? Like, fry the electronic components to verify it's just plain metal on the insides?

<comment><USER39> Perhaps, but it could start a fire. You might consider plugging into a power supply and measuring if there is any current draw.

<comment><USER29> USB type A male-to-female inline ammeters are really cheap, and accurate to 0.1W. I got one for ten bucks.

<comment><USER40> How do you know THAT doesn't have a surveillance device inside?

<comment><USER29> Sort of a "it's turtles all the way down" type problem, but one could always x-ray it.

</comment></comment></comment></comment></comment><comment><USER41> the cable is cool, but i'm more excited to read about his PCB manufacturing process. he built those tiny boards on a desktop CNC machine!

</comment><comment><USER42> Does it just connect to the first WiFi which is t password protected? I'm assuming it's useless if there's no open WiFi about?

<comment><USER43> It creates a wifi hotspot and the attacker can connect to that using another device from a distance. They can then do stuff via the USB port, for example send key presses.

<comment><USER44> So they have to be close by.

<comment><USER45> [https://www.simplewifi.com/products/parabolic- grid](https://www.simplewifi.com/products/parabolic-grid)

"2.4Ghz wifi antenna extends a 7 degree wide cone, allowing it to perform over large distances up to 8 miles of range."

<comment><USER46> Or if a real parabolic antenna is too expensive, sticking a copper wire on a BNC connector mounted in a Pringles can (5 GHz) or wider tin soup can (2.4 GHz) works as a cheap alternative.

[https://en.wikipedia.org/wiki/Cantenna](https://en.wikipedia.org/wiki/Cantenna)

[http://www.turnpoint.net/wireless/cantennahowto.html](http://www.turnpoint.net/wireless/cantennahowto.html)

<comment><USER47> Even simpler would be to take a standard dipole and put a corner reflector around it (not quite as pin-point powerful, but you can still get plenty of gain). You can make these out of roofing flashing.

</comment></comment></comment></comment></comment></comment><comment><USER48> Info sec industry is a rabbit hole. Just ask Jeff Bezos.

<comment><USER49> Jeff Bezos would probably think "info sec" is a unit of time.

<comment><USER50> He is Electrical Engineering and CS graduate from Princeton.

<comment><USER49> Having an engineering degree doesn't mean you necessarily know what 'infosec' is. Different domain and discipline.

<comment><USER51> What domain or discipline (specifically undergraduate major) does infosec fall under if not electrical engineering or computer science?

</comment></comment></comment></comment></comment><comment><USER52> Any links to schematics and code?

</comment><comment><USER53> Huh, so all it takes is someone to break into your home when you're gone and swap a cable. Seems like privacy doesn't really exist for people who truly need it. Unless they're not using any technology.

<comment><USER31> Do you not use laptops? Or do you never leave your home?

<comment><USER53> Huh? What I wrote is basically saying privacy doesn't exist for the ones who truly need it. Since those two cases you write in question are pretty much universal and the majority of people using technology would be prone to them. Unless they're not using any form of technology.

</comment></comment></comment><comment><USER54> Are their third party OS extensions for macOS, like Little Snitch, that act as a firewall for USB-C devices?

It's just crazy to me that plugging my Crapbook Pro into a USB-C power brick could do all sorts of bad to my computer when all I need is power.

</comment><comment><USER55> _The construction of this device is quite impressive, in that it fits entirely inside a USB plug_

The level of miniaturisation is not all that impressive, these have been around for a while:

[https://www.amazon.com/Edimax-EW-7811Un-150Mbps-Raspberry- Su...](https://www.amazon.com/Edimax-EW-7811Un-150Mbps-Raspberry- Supports/dp/B003MTTJOY)

There's no mention of using the rest of the cable as the antenna, since in my experience the above tiny adapters have an equally tiny antenna and thus poor reception.

<comment><USER12> It says there's a microcontroller as well.

<comment><USER56> There's a microcontroller in the connector at each end of your USB Type C cables.

<comment><USER12> Well, I assume in this case, one that drives and controls the wifi independent of whatever you plugged this into.</comment></comment></comment></comment>


Show HN: Code.xyz code editor to build Serverless APIs in 1 click for Stripe - <AUTHOR> https://github.com/stripe/stripe-stdlib-demo/ <comment><USER2> This is great! After a brief glance, is there subscription functionality or is there a plan to add subscriptions?

<comment><USER3> I work at Stripe and built this demo, thanks for your interest! This sample StdLib app only showcases one-off payments, but subscriptions are easy to implement with Stripe: [https://stripe.com/docs/billing/quickstart](https://stripe.com/docs/billing/quickstart).

Check out Typographic, a demo app for subscriptions, that could be ported to serverless functions on StdLib too: [https://github.com/stripe/stripe-billing- typographic](https://github.com/stripe/stripe-billing-typographic).</comment></comment>


United States Camel Corps - <AUTHOR> https://en.wikipedia.org/wiki/United_States_Camel_Corps <comment><USER2> Camels were used during WW1, WW2, and are even used today for peacekeeping missions in parts of Africa.

The following picture is of Dutch peacekeepers on camelback: [https://en.wikipedia.org/wiki/Camel_cavalry#/media/File:UN_S...](https://en.wikipedia.org/wiki/Camel_cavalry#/media/File:UN_Soldiers_in_Eritrea.jpeg)

Not to mention the anti-Taliban rebels in Afghanistan... Camel calvary are still alive and well.

<comment><USER3> I read a great series about the Eastern Front in WW1 from the 'Axis' perspective [1] and the use of donkeys and horses was a critical part of the Austro-Hungarian Empire and later German armies offence (and later defence) against the Russians.

Their entire front against Russia was eventually reliant on their ability to drag heavy artillery and supplies through the dangerous mountain passes of the Carpathian mountains. An example of what they went through for their country: [https://upload.wikimedia.org/wikipedia/commons/4/42/Wintersc...](https://upload.wikimedia.org/wikipedia/commons/4/42/Winterschlacht_in_den_Karpaten.jpg?1502922470339)

Supply lines are the often unspoken critical pieces of the puzzles for any great war before mid-WW2. Poor logistical planning in their invasion of Russia was also was a major factor in why the Nazi's lost WW2 - which is where Germany really lost the war, the "war of the Atlantic" and later western front with the Americans was just the multi-year delayed wrapping up action where they had very little odds from the beginning.

This second book [2] has a great overview about why the Nazi's had actually lost the war by 1941 (and very obviously by 1942) due to poor logistical planning of Operation Barbarossa, largely due to the strategic planners overconfidence in the German superiority over Slavs after they swept the French/British out of Europe. The next 3yrs were just Hitler's delusions keeping it afloat.

[1] [https://www.amazon.com/Collision-Empires-Eastern-General- Mil...](https://www.amazon.com/Collision-Empires-Eastern-General- Military/dp/1472813189/)

[2] [https://www.amazon.com/Operation-Barbarossa-Germanys- Cambrid...](https://www.amazon.com/Operation-Barbarossa-Germanys-Cambridge- Histories-ebook/dp/B00B23DEBQ/)

<comment><USER4> The situation in WW2 wasn't any better then WW1.

If you think the roads in your town are poorly maintained, take a look at this example of Rasputitsa in the USSR. [1]

Yes, the people in the photographs are trying to pull that car down the road. Yes, that is indeed a road.

Soviet railroad gauges being incompatible with European rail gauges also did little to help German logistics. And later in the war, due to fuel shortages, more and more axis machinery had to be transported by draft-horse.

[1] [https://upload.wikimedia.org/wikipedia/commons/e/e9/Bundesar...](https://upload.wikimedia.org/wikipedia/commons/e/e9/Bundesarchiv_Bild_146-1981-149-34A%2C_Russland%2C_Herausziehen_eines_Autos.jpg)

<comment><USER3> Agreed, I said mid WW2 because the later half of the war was in Europe where more modern transport supported the supply lines (aircraft and railroad).

But the earlier half was largely a mix of WW1 esque supply logistics using horses and german automobiles struggling over poor Russian roads. The poor logistical planning I alluded to was largely underestimating how poor Russia's infrastructure was and overestimating the capabilities of Germans to overcome them.

</comment></comment></comment></comment><comment><USER5> BSF Camel Corps ( [https://en.wikipedia.org/wiki/Bikaner_Camel_Corps](https://en.wikipedia.org/wiki/Bikaner_Camel_Corps) ) are probably the last forces still using camels for active duty.

[https://www.youtube.com/watch?v=Nqr0_PjPEIk](https://www.youtube.com/watch?v=Nqr0_PjPEIk)

</comment><comment><USER6> By the by and apropos of nothing, 'Camel Corps' is what we used to call certain members of the British diplomatic service who had 'gone native' in the Middle East and Arabian peninsula generally but more specifically to those diplomats who had passed through the Middle East Centre for Arabic Studies school in the Leb (and Oxford). FO had many Arabists for a time, not so sure nowadays. There was of course a fairly impressive Imperial Camel Corps during WWI comprised of actual camels and mainly Anzacs.

<comment><USER7> This article in general reminded me of the role camels played in the European exploration of Australia. There is now a reasonably large population of wild, feral camels in Australia[1], and I thought this article might speak of something similar in the US.

However, I'd never heard of the Imperial Camel Corps[2] and am now intrigued to learn more. Thanks for the initial information.

[1] [https://en.wikipedia.org/wiki/Australian_feral_camel](https://en.wikipedia.org/wiki/Australian_feral_camel)

[2] [https://en.wikipedia.org/wiki/Imperial_Camel_Corps](https://en.wikipedia.org/wiki/Imperial_Camel_Corps)

</comment></comment><comment><USER8> Jim Kjelgaard wrote a kid's fiction book, "Hi Jolly", about this that I remember reading 30+ years ago:

[http://www.gutenberg.org/files/41700/41700-h/41700-h.htm](http://www.gutenberg.org/files/41700/41700-h/41700-h.htm)

</comment><comment><USER9> A sort of homecoming, since camelids originated in North America, and afterward spread to South America and Asia: [https://en.wikipedia.org/wiki/Camel#Evolution](https://en.wikipedia.org/wiki/Camel#Evolution)

</comment><comment><USER10> Why did the confederates write a receipt to the US government?

<comment><USER11> Early in the rebellion the confederates were determined to establish the legitimacy of their secession, which would include respecting property. The camels were the property of the U.S. government.

</comment></comment><comment><USER12> Reminiscent of the hilarious story "Space Rats of the CCC" (Combat Camel Corp) by Harry Harrison.

I highly recommend reading it if you can find it - my google-fu is failing.

<comment><USER13> I found an archive of it: [http://www.pacificaradioarchives.org/recording/kz0566](http://www.pacificaradioarchives.org/recording/kz0566)

> This recording is currently on a 1/4" reel tape and has not been digitally > preserved. If you would like to contribute to the cost of transferring this > recording, and receive your own personal copy on CD, please complete this > form and we will return your request with pricing information.

</comment></comment><comment><USER14> "On June 4, 1855, Wayne departed New York City on board the USS Supply"

We weren't very good at naming ships back then.</comment>


The Netscape Dorm (1994) - <AUTHOR> http://www.jwz.org/gruntle/nscpdorm.html

<comment><USER2> Here's a fun bit of trivia: you can download the original Mosaic Netscape 0.9 beta today and experience for yourself what it was they shipped way back in October 1994.

<http://img46.imageshack.us/img46/9341/netscape091.png>

<http://img171.imageshack.us/img171/3833/netscape092.png>

<http://img145.imageshack.us/img145/6576/netscape093.png>

Details on how to set this up are here: [http://www.jwz.org/blog/2008/03/happy-run-some-old-web- brows...](http://www.jwz.org/blog/2008/03/happy-run-some-old-web-browsers- day/)

Now excuse me while I go play Mille Bornes, Glider Pro, Lemmings, and Oregon Trail...

<comment><USER3> Heh, I remember when the recommended practice for <script> tags was to put the contents inside an HTML comment <!-- --> so that it was hidden from browsers that didn't recognize the <script> tag. I believe it was even special-cased in the JavaScript parser so that it wouldn't cause a JS error. I wonder if that's still the case...

<comment><USER4> Yea, in fact, have you seen this: <!--//--><![CDATA[//><!-- ... //--><!]]>

XHTML required the <![CDATA[, old browser compatiblity required the <!--.

</comment></comment></comment><comment><USER5> Thanks for posting this! I just mentioned this article (but couldn't remember its name) to someone who called me for advice on bootstrapping a company. It's the best writeup I know on the feeling of dread that keeps so many of us from launching as early as we should.

<comment><AUTHOR> More than that, the diary logs show the real face of a startup, with the veil of all the glamor removed. The guy was basically trying not to get killed doing his startup.

</comment></comment><comment><USER6> I wonder if he still thinks it was worth it.

It's sad to think of the enormous amount of human effort wasted by people who blindly copied that behavior in a cargo-cult like attempt to get rich.

<comment><USER7> Jamie has done ok and has been great at documenting his assorted endeavors, be they at Mosaic (All Hail the Company) or Netscape/AOL/Mozilla. He also did pretty well in the process, enough to buy / renovate / and provide entertainment at the DNA Lounge and through his blog about that whole process. Oh, and he still runs it and has provided some fun musical mixes over the years.

Unfortunately, he was one of the few in the mid 90s that were pretty active in writing (now referred to as blogging) about their experiences. His writings are both amusing and informational, I wish more had.

A good deal of the early Netscape crowd did quite well. Many are still involved in startups to this day -- Andreesen doing VC work, Montulli/Treuhaft doing some cloud storage, Tom Paquin @ OnLive, etc.

<comment><USER8> Praise. It was "All Praise the Company", not "Hail". It was a Doctor Who reference - <http://www.drwhoguide.com/who_4w.htm>

</comment></comment></comment><comment><USER9> <http://www.youtube.com/watch?v=u404SLJj7ig>

Code Rush documentary from PBS. Details 98-99 when Netscape released their source.

<comment><USER10> This is great. I'd read some of the pieces on jwz.org (including this one), but watching Code Rush and then reading this again really helps me relate to the stuff him and the rest of the team must've been going through.

(The key phrase that links the two together for me is "my one and only youth"; he both writes that in a diary entry and speaks it during a video interview in _Rush_.)

</comment></comment><comment><USER11> 1\. I do not like thinking about how badly they smelled.

2\. I am very much enjoying OhLife's ability to make me write about my day, and this gives me a standard to shoot for.

 _Saturday, 17 September 1994, 2pm. If I hear someone imitate Beavis and Butthead one more time..._

3\. I've got bad news, Bea- I mean, Jamie.

</comment><comment><USER12> It blows my mind that this is the same person who created and owns DNA Lounge.

(Btw, DNA lounge is way cool. Tho it could use some nicer bouncers!)

</comment><comment><USER13> The value of writing things down - details about finger pain and waxy skin surely would have been lost memories, but are the things that make stories like this so great.

</comment><comment><USER14> I've worked for three startups in my career so far. Besides working, a fair amount of time was spent interviewing potential new employees. All had some modicum of talent, but almost all had stars in their eyes from reading glamorous puff pieces about the allure of startup life (Foosball! Unlimited supplies of Jolt! No rules! Exclamation points everywhere!) They were so eager to leave their corporate lives that they had illusions about what they were really getting themselves into: shitty hours, cranky co-workers, and fixing your own goddamned wifi.

I wish I had been able to show them this before we hired them. Would've saved a LOT of trouble, tears, and heartache.

</comment><comment><USER15> Is it possible we could stick to relatively new content here? I read through all of the Netscape-related JWZ stuff more than 10 years ago. I suspect that anyone who has an interest in the rise and fall of Netscape has done the same.

<comment><USER16> New people are born every day. HN is for them, too.

<comment><USER17> Yes, with some of the dross that is beginning to make it to HN front page I'm more inclined to agree that there is "one born every minute".</comment></comment></comment>


Amazon Acquires Kiva Systems For $775 Million In Cash - <AUTHOR> http://techcrunch.com/2012/03/19/amazon-acquires-online-fulfillment-company-kiva-systems-for-775-million-in-cash/ <comment><USER2> With Amazon's resources, Kiva's warehouse automation will be widely used. Amazon can take it down the route of AWS.

I am very happy for my advisor, who's the CTO at Kiva Systems. Congratulations!

</comment><comment><USER3> Awesome, love to hear about robotics used for something other than hunting and killing!

</comment><comment><USER4> I wonder if Amazon is going to try to do in fulfillment / logistics / etc. what they've done in web services.

Perfect a highly efficient system, then charge others for access to the same technology.

Or if this is just a play to keep the KIVA system to themselves and provide a competitive advantage. They obviously didn't need to buy KIVA to get access to the system, so it strikes me that it's one of those two possible reasons.

<comment><USER5> > _I wonder if Amazon is going to try to do in fulfillment / logistics / etc. > what they've done in web services._

They're already doing it: [http://www.amazonservices.com/content/fulfillment- by-amazon....](http://www.amazonservices.com/content/fulfillment-by- amazon.htm)</comment></comment>


The overhead of abstraction in C/C++ vs. Python/Ruby - <AUTHOR> http://blog.reverberate.org/2014/10/the-overhead-of-abstraction-in-cc-vs.html <comment><AUTHOR> From the article:

 _> when you are crossing the language barrier and deciding the boundary between what should go in the high-level language vs what should go in C or C++._

While performance considerations are indeed a good indicator about where to make the high-level / low-level split, there is more to that.

I believe that having a small, stable interface is even more important. Even if that incurs a small performance penalty, a small interface will free you from having to add lots and lots or more tiny foreign function call as your application grows. It also frees you from writing converters and wrappers all over again, which can be partly automated, but not fully.

Reducing the interface can save a lot of development effort with usually just a tiny performance penalty.

Moreover, in one case I was even able to recognize that all I need is some C++ code to perform batch processing. So I was able to get rid of the wrapping as a whole, and compiled a separate C++ command-line instead. The FFI code was replaced with a simple "exec" with IO redirection. The wrappers were just creating a JSON structure in the high-level language, and loading that on C++ side. This resulted in code which is a lot simpler than initially expected, and even in a separate command-line tool that is useful on its own, and can trivially integrated into any other high-level language.</comment>


Happy 10th birthday pandoc - <AUTHOR> https://groups.google.com/forum/#!topic/pandoc-discuss/0rutNJAVKoc <comment><USER2> A couple of cool things about pandoc:

1\. It's a tool built in large part by folks involved in the humanities. John, of course, is a professor of philosophy. (We could stop there, since his contributions so outnumber all the others, but I'll go on...) I'm an assistant prof. of English. It has large contributions from the curator of medieval manuscripts at the British Library, and contributions from a historian as well. And those are just the ones that come to mind -- I'm sure there are others. It's cool to have a tool used by many folks in the humanities, but also in large part driven by their needs.

2\. John is a great project lead, and it's an amazingly open project. If you're interested in getting started with haskell, the filters API allows you to really adapt it to your needs. And if you're interested in adding another reader or writer, there's a good chance it can be added.

For myself, I started out using the python docx library, found it didn't handle enough stuff, wrote one myself (covering mainly my conversion needs, not creation) and had it output JSON that pandoc could read. When that worked, I ported it to haskell, and posted it to the mailing list. Within a few weeks, the docx reader was part of the program. It's been a great experience -- both in using haskell, and in playing a significant role in a program I use and love.

</comment><comment><USER3> Pandoc has made the recent push for reproducible research across the sciences possible (via Rmarkdown/knitr and IPython/Jupyter) --- it's an essential part of solving a pretty big epistemological problem!

(For me, it's also a large part of solving my own productivity problems.)

It's also driven markdown itself to become more feature rich and internally consistent. I'm extremely appreciative of JGM's efforts to product a unified markdown spec[^1].

Huge thanks, John!

[^1]: [http://commonmark.org/](http://commonmark.org/)

</comment><comment><USER4> Happy birthday, Pandoc!

Pandoc is a key component in my Markdown-to-Kindle-and-Paperback pipeline. In fact I've soft-published an article about it: [https://medium.com/@gabrielgambetta/how-i-wrote-and- publishe...](https://medium.com/@gabrielgambetta/how-i-wrote-and-published-my- novel-using-only-open-source-tools-5cdfbd7c00ca)

Amazing piece of software. Not that often a tool dominates an use case so thoroughly that there are virtually no alternatives, because there really is no need. Thank you, John MacFarlane :)

<comment><USER5> I had a problem converting embedded images and fonts from Markdown to EPUB; this script helps by piggy-backing on the epub-embed-font option to include images:

        #!/bin/bash

        FILENAME=$(cat title.txt).epub
        CSS=style.css
        IMAGES_DIR=images

        # Ensure images get embedded into the document.
        for url in $(grep image $CSS | grep url | sed 's/.*url( *\(.*\) *).*/\1/g'); do
          EMBED="$EMBED --epub-embed-font=$IMAGES_DIR/$url"
        done

        # Generate the ePub, including fonts and images.
        pandoc \
          --smart \
          --epub-cover-image=cover/cover.png \
          --epub-metadata=metadata.xml \
          --epub-stylesheet=$CSS \
          --epub-embed-font=fonts/MyUnderwood.ttf \
          $EMBED \
          -t epub -o $FILENAME output/*.vars

The .vars files are chapters that have their variable names substituted for values, such as:

        for i in chapter/*.md; do
          out=$OUTDIR/$(basename $i);
          cat variables.yaml $i > $out;
          pandoc $out --template $out > $out.vars

          cat $out.vars | sed -e 's/;;/\$/g' |\
            pandoc --chapters -t context -o $OUTDIR/$(basename $i .md).tex;
        done

A handy trick to avoid duplication (of names, places, or any text really) within the content.

</comment></comment><comment><USER6> Thanks to Pandoc, I never need to use Microsoft Word at work. If someone wants me to upload some documentation to Sharepoint, I just write it in Markdown and convert to docx with Pandoc. Wonderful piece of software.

<comment><USER7> How do you update someone else's document?

</comment></comment><comment><USER8> What an amazing project! I use it all the time, for converting between textile (redmine) and markdown (everything else), and also for extracting my company's proposals from Google Drive, and converting them to latex and PDF with our customized template. The code for this is all here: [https://github.com/dergachev/gdocs- export](https://github.com/dergachev/gdocs-export)

Thanks so much to it's creators and contributors!

<comment><USER9> Redmine actually has a Markdown mode, though it's probably too much work to convert an existing Redmine installation (unless you can use pandoc?)

[http://www.redmine.org/projects/redmine/wiki/RedmineTextForm...](http://www.redmine.org/projects/redmine/wiki/RedmineTextFormatting)

</comment></comment><comment><USER10> I love the markdown to PDF converter using embedded LaTeX for math expressions. So much easier than writing pure LaTeX and you still get a beautiful result.

</comment><comment><USER11> I have started using pandoc again recently since thier org support has gotten a lot better in recent months. Using emacs, it is not a very hard decision to use org mode over markdown or rst.

With org support in pandoc, i no longer have to start up emacs to generate HTML for my website, so doing that in batches just got a lot easier.

<comment><USER12> I found it's conversion into org (from OPML) isn't fantastic, but definitely workable. But out of org is seamless for me as well.

</comment></comment><comment><USER13> Great project. Have written my whole thesis in Markdown thanks to Pandoc (+Sublime+Latex+Zotero) and this great template [https://github.com/tompollard/phd_thesis_markdown](https://github.com/tompollard/phd_thesis_markdown)

</comment><comment><USER14> Happy birthday!

Pandoc is one of those things that I only recently discovered and totally fell in love with: I wrote a bunch of code in literate Haskell for work, so that I could have the logic right, and then ported it to JS to reduce the bus factor of the project. When I discovered pandoc I just ran it on my literate Haskell and the resulting PDF was so beautiful I had to print it out and tack it up on a cubicle wall, like a "this is what they pay me for" type of reminder.

</comment><comment><USER15> I love Pandoc! Thank you, [John MacFarlane]([http://johnmacfarlane.net/](http://johnmacfarlane.net/))!

</comment><comment><USER16> Happy Birthday Pandoc!

The ability to write and collaborate on memos in markdown, and turn them into fancy PDFs and .docs is seriously world changing.

<comment><USER17> I'm working on some mechanical engineering software that produces a report that is heavy in tables and equations. Today we are generating html for display and have an option to output the same report in pdf form. We use htmldoc to do the html->pdf conversion. htmldoc is unbelievably fast, it's also quite limited. It doesn't know about Unicode or CSS.

We've tried other more capable converters but they are an order of magnitude slower than htmldoc. I guess Unicode and CSS support is expensive. htmldoc is also better than anything else we've tried at not putting page breaks in the middle of a table.

Would you say this type of report generation is something than Pandoc would be suited for?

<comment><USER18> I'm a big fan of Pandoc. However, if you have a lot of tables in your document, ASCIIDOCTOR is a better choice to produce PDFs.

ASCIIDOCTOR has clear and superior table formatting syntax and more importantly it can work with CSV files. This way you don't have to copy paste data into your reports.

[http://asciidoctor.org/docs/user- manual/#tables](http://asciidoctor.org/docs/user-manual/#tables)

<comment><USER19> Sounds like the next format that pandoc should support :)

<comment><USER18> IIRC, pandoc has asciidoc writer. ie., it can parse other formats and output asciidoc/tor format.

</comment></comment></comment></comment></comment><comment><USER20> Enough of procrastination. It's time to finally start learning Haskell!

</comment><comment><USER21> It feels redundant to say this with all the others expressing the same thoughts, but thank you thank you thank you John et al for Pandoc. It's been life-changing since running into it a few years back.

I do a lot of work researching older and historical documents. Some of these are available in only scans, meaning image-heavy PDFs, or rotten OCR transcriptions. Occasionally I get lucky and find a solid ASCII source.

A recent case in point, Dugald Stewart's 1793 "Account of the Life and Writings of Adam Smith", which I'd found in ASCII format.

A couple hours (mostly of finessing the markup) to pandoc, and I had a 72 page PDF, ePub, and HTML versions, the former two posted online.

[https://ello.co/dredmorbius/post/-h-b6ek6segi8eamq2g6vq](https://ello.co/dredmorbius/post/-h-b6ek6segi8eamq2g6vq)

ASCII Source: [http://socserv2.socsci.mcmaster.ca/econ/ugcm/3ll3/smith/duga...](http://socserv2.socsci.mcmaster.ca/econ/ugcm/3ll3/smith/dugald)

Markdown: [http://pastebin.com/LdKXpHdR](http://pastebin.com/LdKXpHdR)

PDF: [https://drive.google.com/file/d/0B6Q6JFf- mAJPY0tfaXlQWUNwLWc...](https://drive.google.com/file/d/0B6Q6JFf- mAJPY0tfaXlQWUNwLWc/view?usp=drivesdk)

ePub: [https://drive.google.com/file/d/0B6Q6JFf- mAJPdXgwcm1NbDhQdEE...](https://drive.google.com/file/d/0B6Q6JFf- mAJPdXgwcm1NbDhQdEE/view?usp=drivesdk)

(The Google Drive docs _should_ be world-readable.)

That's only one of many docs I've fixed up using Pandoc.

</comment><comment><USER22> A huge thanks to John and all the contributors.

What's most amazing is it's ability to generate beautiful outputs (for printing, viewing, presentations alike). Awesome.

</comment><comment><USER23> Using it all the time and love it.

The only issue I had though is that it does not convert certain charset sometimes due to some latex related issues.

</comment><comment><USER24> Pandoc's Markdown to Word conversion saved me when I was writing a book. Thanks and happy birthday!

</comment><comment><USER25> I love pandoc, thanks for this great tool :)

to me it's the perfect tool to generate user docs and manuals for software and other cli tools, my best use case is markdown (github flavoured) to man, markdown to HTML and PDF, etc.

</comment><comment><USER26> Is pandoc the most famous/most used program written in Haskell?

<comment><USER27> I think it's the most used by non haskeller's. I'd say most used and most famous is the ghc Haskell compiler.

</comment></comment><comment><USER28> Happy birthday, I used it for both outputting pdf, and often when encountering a very long html pages without styling (quite common around these parts) to output epub.

</comment><comment><USER29> Thanks so much to all the contributors for such a useful tool. I use it to convert markdown posts with embedded Latex to HTML for my blog.

</comment><comment><USER30> Awesome productivity tool. Pandoc changed my entire document preparation workflow. Thank you!

</comment><comment><USER31> I like it but it still makes my life hard when I want to use french typography...

<comment><USER18> I know nothing about French typography.. having said that..

pandoc allows you to use different LaTeX templates than the ones it ships with. So, you can take the default templates, add the overrides necessary for French typography and voilà! (hopefully).

</comment></comment><comment><USER32> Pandoc just make me happy. Thanks John & contributors for your work!

</comment><comment><USER33> Keep going and enhancing

</comment><comment><USER34> Pandoc is fantastic! Just a few days ago, I used it in a makefile to keep markdown, HTML, and PDF versions of my resume in sync.</comment>


Malicious Chinese SDK in 1,200 iOS Apps with Billions of Installs - <AUTHOR> https://www.forbes.com/sites/johnkoetsier/2020/08/24/malicious-chinese-sdk-in-1200-ios-apps-with-billions-of-installs-causing-major-privacy-concerns-to-hundreds-of-millions-of-consumers/#1aa180391aa0 <comment><USER2> The main accusation is this:

> Since brands pay ad networks for successful mobile app installs, the > Mintegral SDK would then quickly send out a fake click and "claim credit" > for the app install, Grander says.

Basically, they are faking clicks if users installed an app after seeing the ad but not clicking on it. Looks like a gray area and will be interesting to see what the ad networks and Apple will do about this.</comment>


No, email really is broken (and here's how to fix it) - <AUTHOR> http://www.isaacsukin.com/news/2012/04/15/no-email-really-broken-and-heres-how-fix-it

<comment><USER2> Why do you want so much domain-specific kruft in your mail?

Use OmniFocus for task management, with a script or rule to move messages to Task status. Add a new iCal/vCard style micro format to specify tasks that you wish to delegate to me. No protocol needed, it is just a request after all. The protocol in delegation resides at the human layer, not the technology layer.

Priority etc in email makes it sound like you want to use the one piece of software to write correspondence while simultaneously managing your projects and to-do lists. Use a to-do list manager for managing tasks, use project management software for managing projects.

There are ways to link the lot together, but using the IMAP server as your go- to resource for everything is not the answer.

But I agree with you on the encryption thing.

<comment><AUTHOR> I like where your head is at, but most people aren't able to set this configuration up on their own. For something to replace email it all has to "just work."</comment></comment>


Two dead in Marseille train station knife attack - <AUTHOR> http://www.aauthespian.news/2017/10/two-dead-in-marseille-train-station.html <comment><AUTHOR> [http://www.aauthespian.news/2017/10/why-are-some-nigerian- mo...](http://www.aauthespian.news/2017/10/why-are-some-nigerian-mothers.html)</comment>


50 Year Anniversary for First Cryonically Preserved Human - <AUTHOR> http://www.newhistorian.com/50-years-ago-dr-bedford-first-person-cryonically-preserved/7841/ <comment><USER2> Just our generation's version of 'pickled punks'. I doubt many of the early adopters have a chance to be successfully thawed, but interesting to think about. Even if it turns out to be a technological dead end, at least it gave is inspiration for Futurama.</comment>


Where do all the old programmers go? - <AUTHOR> http://www.infoworld.com/article/2617093/it-careers/it-careers-where-do-all-the-old-programmers-go.html <comment><USER2> They take up farming, of course. Having explored the most 'modern' parts of society they're ready for a new challenge. Also, having dealt with virtuality for so long it is time for a dose of reality.

Me, I bought a farm in Sweden. Harvest is in, manure has been spread, looking to grow my first 'beer crop' (barley and hops) within a few years. The forest needs some attention but that is what winter is for.

What comes around, goes around. Programmers (and developers and architects and others of similar ilk) turn to the land while farmers are surrounding themselves with technology. GPS-controlled tractors, milk robots, ID-based cow feeders, etc. Horticulture is being robotised. Forestry will go that route soon enough, with clear-cut harvest being replaced by individual tree harvesting.

<comment><USER3> While not ready for retirement I'm getting up there and I am buying a house soon with between 1/4-1/2 acre piece of land attached. Its a reward and opportunity for me to experiment with a large "garden" for myself and my family and maybe enough for friends or to can/jar.

I get this impulse but I'm still plugged in enough to want to automate things. I'm looking at farmbot on kickstarter and thinking how I could build my own, program or automate various systems and sensors. I'm extremely excited about having one foot in both worlds.

<comment><USER2> I'm not retired, by no means - I'm 51. I'll keep on hacking for as long as I feel the urge and find some need. I do concentrate on trying to make our (way of) life less dependent on a steady income stream - in other words, I use time and some money to make us less dependent on future money. A farm with enough land to support a family is a good start, especially one which has both arable land as well as productive forest. Hence my choice, although the fact that I studied forestry at an agricultural university might have something to do with it as well.

</comment></comment></comment><comment><USER4> To work is where I go (59). You won't meet a lot of people like me because when I started (1981) there were way fewer programmers than today plus some became obsolete, some became managers, and some got burned out. So the chances of meeting someone like me if you started in the past decade is not high. This of course makes it hard to decide how much age discrimination there is as it's hard to quantify, unlike gender for example. For me I got this job based on a manager from a previous job needing here what he already knew I could do.

<comment><USER5> The vast growth of the programmer population as a reason for why there aren't as many older programmers is a very compelling reason. I'm surprised I haven't seen it before.

<comment><USER4> I think there are 20 million or so programmers (not sure how you count this) today. I bet there were less than 1% of that back 35 years ago though of course no clue how to measure that either.

<comment><USER6> One way is to look at total revenue of IT/Software Industry at present and compare it with 1981. My guess is that even after adjusting for inflation it would be more than 100 times growth. Many of the present great companies were not even formed and some had just formed.

I started working in the mid 90s. Joined a company which had few 100 employees, when I left it had around 300 times more.

</comment></comment></comment></comment><comment><USER7> They find companies that value their experience and don't just hire those who already know how to use all the shiny things. They do independent consulting after spending years building their reputation as someone who delivered for past co-workers and managers. They go to mature mid-market or large companies where those in management and hiring are perhaps a few years older as well. Sometimes they need to retool

Anyone thrust into the job market for the first time in several years (say 10+) might find it somewhat unrecognizable. Job search has changed significantly in the ~20 years I've been in recruiting.

I've developed a bit of a niche business in helping older programmers (I'm 44) "rehabilitate" themselves and prepare to enter a job search (writing/reviewing resumes, consult on job search strategy, etc.). It's mostly people who don't want to go into management and still want to stay in the code.

I can only think of a few people that left the industry entirely, out of thousands (I also ran a Java Users Group for 15 years, which has a large contingent of older programmers).

</comment><comment><USER8> I'm 55 this year, still programming. And I still love it ... well, I love trying new things.

One of my friends that I started my first job with is now at the CTO level, while I keep turning down opportunities to "advance" into management. Another friend of mine quit after the Senior Director level because he started hating his life, and went back to programming/embedded engineering for the fun of it.

Age does make you wonder if you were turned down for an offer because of subconscious ageism, but I am not aware of rampant problems with it.

You do have to be careful to give everybody's proposals a chance, instead of just pattern-matching to something awful in your past.

Keeping an open mind is a discipline.

Having kids helps you rediscover what you once loved, helps you recover from jaded oldsterism.

<comment><USER9> Once in a while, I get to help my college age daughter learn "R" programming. That's a pretty interesting language, which she probably knows better than I do now. (at least operational knowledge of the library, but not all the Computer Science aspects)

Conversely, it's interesting that my adult child is now having to deal with a bout of "imposter syndrome" :-)

</comment></comment><comment><USER10> I'm 66, started programming 40 years ago, and I'm not going anywhere!

Seriously, I love what I do and will continue programming as long as possible. I'm addicted to learning and the satisfaction of good, clean, simple code that gets the job done.

</comment><comment><USER11> A related phenomenon is that programmers have no collective identity to rely on (or uphold). The struggle of the classes and the topic of the bigger social good is relatively meaningless to them. They can't put a finger on these issues, they belong to other classes. Programmers are by nature but also by nurture very much individuals, and as individuals, without nurturing collectivity, they are easily manipulated and put against each other.

So programmers don't work on socially relevant or desirable problems, but on some relatively obscure scalability issue that exists only inside a few internet behemoths. They need soldiers, not wisdom.

With these employers dominating the marketplace, socially relevant innovations take a back seat. Society doesn't help either, as open source sadly isn't tax funded (because tax-fundedness is a pivotal privilige of the disfunctional political class).

So being a programmer often is (cor)related to the strength of youth, and youth ends at 40.

However, no craftsman worth his salt loses his abilities, instead he has experience about what works and what doesn't, and becomes more effective at what he does. He doesn't run trying to catch his own tail.

For example this guy here, at [https://millcomputing.com/docs/execution/](https://millcomputing.com/docs/execution/). What he and his team have done is a work of beauty and is the fruit of experience and intuition.

The young and the old work together.

</comment><comment><USER12> At about 40, it _does_ start to get more difficult to get hired. And by 50, it is all but hopeless.

And the salary offered begins to go down at 40 too. Sharply after 44 or so.

Where I am now, at 51, I have had to learn to get by on what I was making as a SysAdmin 20 mumble years ago. But at least I have a job. Before getting my current job I was having to learn to get by without a place to live too.

<comment><USER7> If you are willing to share, I'd be curious to hear more about your situation. I've seen salary plateau at certain career levels and ages (40s usually), but saying salary goes down at all (let alone sharply) is something that I expect is not a general truth about the market at large. My anecdotal data comes from ~20 years in recruiting engineers.

There are several reasons you could see a salary drop (stagnating skill set no longer in demand, move to company that pays less, move to industry that values programmers less, etc.), but age alone isn't likely to be one of them.

<comment><USER12> Would a significant gap in employment be _that_ damaging?

I was severely burned in an automobile accident (60%, 3rd degree) on June 6, 2006 -- and was completely unable to work for a couple years. It took a little over 4 years total from the date of the accident till I got another job.

Every job since then has been with a startup.

<comment><USER7> A four year gap in employment is a much more logical conclusion to a reduction in salary than your 44th birthday. Even if it was something like an accident (I'm glad you are better now BTW), candidates are sometimes reluctant to share medical issues on resumes/cover letters (and rightfully so in some instances) which can lead to the reader making all sorts of assumptions about _why_ you haven't had a job in n years.

</comment></comment></comment></comment><comment><USER13> There aren't that many older programmers because they are diluted by the large numbers of younger programmers in a growing field.

Even if everyone who was employed in a software dev role in 1975 or even 1985 were still employed in a software dev role today, they would be so outnumbered by younger people as to be a statistical blip. (Whoa, age discrimination!)

Also, older people will tend not to suddenly switch to software development. The major entry path is through young people becoming developers. Most people over 50 in development are people who were 20-something in development, possibly younger. So how many 50-somethings there are in dev has mostly to do with how many 20-somethings were in dev thirty years ago. It could be different if large numbers of non-dev 50-somethings suddenly retrained as devs, but they don't.

</comment><comment><USER14> At 49 I am still coding and still learning. I architected and implemented node.js services this year and have done lots of interesting modern web development. I am well respected within my organization and in fact have been poached from one team for another.

Ageist hiring practices are a reality, but not all companies are so biased. And you could not pay me enough to go into management. I want to make things. Perhaps that is why I am still viable.

<comment><USER15> You could definitely pay me enough. Great managers help more things get built than great engineers. They do it in a different way, but as long as they don't suck, they are critical. Good managers are much harder to find than competent engineers.

<comment> saiya-jin I think he meant he doesn't want to do the management job. Ie moving from abstractly creative work to endless series of meetings, conf calls, creating powerpoints excels and whatnot. Yes they are necessary, but it doesn't make it a cool job that brings fulfillment and happiness.

Most devs move there over time, and then complain how cool coding actually was, but they are already in money/debt trap

<comment><USER14> Yes-- that is exactly what I mean. If I found myself in an organization where management looked appealing I would make the switch. It has never happened.

</comment></comment></comment></comment><comment><USER16> They become architects / development managers / product managers / pre-sales engineers / professional services consultants / founders of startups / project managers / security advisors / dev ops managers / tech recruiters / biz dev managers / even sales...

<comment><USER17> Some of the best product managers I have worked with are former programmers...they just get it. When I hire people in these roles, I often specify "technical" in the job title to attract these former programmers.

<comment><USER18> Programming develops the skills found in good program managers. I think it's because so many of us build things that don't exist constantly. So we build a natural intuition about what are valuable problems to solve and can do it in ways that people would never consider, even "domain experts".

A domain expert might try a naive or brute force approach to a very specific problem, while a programmer would see a graphing problem and instantly think of several different techniques to apply and be able to tell what outcome they'd produce.

</comment></comment></comment><comment><USER19> These articles are getting old. Pardon the pun.

The main reason older programmers are so under-represented is that the field has grown exponentially over the past 2 decades. With ever larger influxes of college grads the previous smaller cohorts get more and more diluted across the industry.

> "Many programmers find that their employability starts to decline at about > age 35," Matloff writes. ... "Statistics show that most software developers > are out of the field by age 40," Matloff continues ... (Matloff declines to > mention which statistics he's reading.)

So basically he's spouting BS to match his talking point.

IMO, older programmers who have done good work in the past are at a major advantage: we have a network of former co-workers who can speak to our abilities better than any whiteboard interview can and who can alert their managers/recruiters that we are someone worth going after.

I realize my experience is anecdotal, however having made two job changes in my 40s, my experience could not be more different from what Matloff implies:

\- When chatting with former co-workers, if I even remotely hint at considering a switch, I have their recruiters kicking down my door the next day.

\- I have employers skip phone screens to get me into a loop faster in the hopes of getting a jump on other potential employers.

\- I've had some offers without interviewing both times I was looking for my next gig. Other offers' interviews felt like formalities because they had to have a loop in the big company HR system.

\- I have a constant stream of "would you consider this great opportunity?" on LinkedIn despite the fact that one can easily reverse-engineer my approximate age from my profile.

\- etc., etc.

It doesn't feel like "employability starts to decline at about age 35" from where I'm sitting. And lest I be labelled some special outlier, I have a good number of friends & former co-workers in the mid-40s age bracket who are having similar experiences.

The fact that a handful of SV startup bros only want to hire their long-lost twins doesn't make the bulk of the industry old-programmer-averse.

<comment><USER20> _I have a constant stream of "would you consider this great opportunity?" on LinkedIn despite the fact that one can easily reverse-engineer my approximate age from my profile._

I'm sure they could, if they bothered to actually read it (which basically no one ever does). In general, "feeler emails" are a poor measure of serious interest in one's overall profile.

Basically they're just trying to ping you to see if (1) you're in the market and (2) remotely interested. _Then_ they'll actually look at your profile -- and make the kind of assessment you would have thought they made _before_ reaching out to you.

</comment></comment><comment><USER21> Many of us still work. I am in my 60s and I still work about 20 hours a week. I love designing and writing code, and I also do software maintenance and devops, and I write about one computer science book a year (working on two right now: one on Haskell and one on Cognitive Science).

I don't earn the very high salary that I used to earn, but that is OK because I am doing what I want to do.

</comment><comment><USER22> Mid 40s here. architecting/engineering Java monstrosities by day (although it's not too bad lately - fat jars/docker etc), hacking on some personal pet projects with newer tech (been getting into Elm and some Haskell lately) by night.

</comment><comment><USER23> I turned 40 this year, most of the developers I work with are older than I am. The answer is in Federal contracting.

</comment><comment><USER24> Michigan!!

Worked in the SE of England as a programmer for 20 years, moved to being a tester ( had 20 years experience of how things could go wrong) then moved away from the rat race commute of London to low-cost of living Michigan and couldn't be happier.

Currently learning how to program mobile apps so that I can test them better

</comment><comment><USER25> GTFO of "the valley" and you can have a very productive career past your 40's. Seriously, I know this is HN, but the world doesn't revolve around SJ and SF.

<comment><USER9> Irony: I work with a group of about a half dozen devs for ... _UC Davis_ (same uni as the prof mentioned in the article). We are all 50-ish, and work with minimal hand holding.

We do grant work for the state, and to some extent, the federal government. We are not doing "super scalable" stuff, but we still have thousands of users, many daily, and some of the entry forms for things are _huge_ , with much complicated logic to be _legally_ compliant.

I have set myself up as the resident Javascript guy (Angular), but I have to admit, it feels odd when I go to the local JS user group - it's a much younger crowd, overall. The funny thing, though, is that Angular/JS feels quite a bit like the interpreted language, proto-MVC, stuff I did on PCs back in the 80s :-)

</comment></comment><comment><USER26> I have a question for all the veteran devs out there.

How do you keep from getting burned out on the mismanagement that plagues our industry?

Is it personal perseverance? Are you just super selective with what jobs you take? Is the love of building something stronger than any feelings of frustration with poor management?

<comment><USER6> Not sure if I qualify as old. But have coded for 20+ years. And have always loved it. The other aspects of work (sending email, meetings, making presentations, documents, etc) may feel like work based on the situation, but coding rarely(if not never). TBH, one does procrastinate, even for coding. But once you start it, and soon you tend to enjoy it.

Being selective helps, so if you can afford to say 'no' to projects you don't like, you should. Another more important thing about being _selective_ is IMHO, what you choose to believe and what path you choose for yourself. We will find all kinds of examples in others(people we know or people we read about). But perhaps taking inspiration from the likes of say Nikola Tesla, who were working in their 80s until they died. A lot of other people also work in management roles late into their life. But I think, programming is more like being a Scientist, in the way that the kind of brain muscles which get exercised.

Can't speak about perseverance, as its easier to keep doing something you like. But yes, it does help to keep abreast of latest technology. I started doing C++ coding, then did Java about a decade. Now mostly program in Go, but fairly competent in C++/Java as well. And I also try to be a full stack engineer - coded Android app, and also UI in JS/Dart(This aspect of being a full stack engineer, of course may not be necessary for every one).

Taking breaks to learn some new tech, also helps, I am taking an 'Intro to AI' course on a MOOC. And also spent time learning about Bitcoin and how it works.

Sometimes, if my work does not offer me strong enough programming challenge, I do programming challenges on sites like Hacker Rank (and earlier Topcoder) just for fun.

On burnout: Yes, that can happen. I think, it happens when you are working in an unhappy position for too long. Sometimes, it may happen when you keep doing a project for too long, even though it was your own baby. No easy answers.

So, I think, its mainly love of programming for me. I hope to keep doing it, till late in life.

PS: I see the question was posed few days ago. But its still not answered. So answering, just in case you check for replies.

</comment></comment><comment><USER27> The part of the article that really rings true for me is the part about specialization. Certainly a lot move into management of one sort of another (line, product, project). Some move into "architect" roles or CTO offices where they apply their wisdom (and biases) to affecting technical direction other than by actually coding. However, many still remain in coding roles, but the coding tends to be more specialized:

* Outside of tech companies, in other orgs with their own specific tech needs (e.g. financial or scientific).

* More infrastructure, less user-facing.

* More "old school" like embedded/OS work.

I'm 51, and I specialize in storage. Consistent with this pattern, I've had many colleagues and collaborators in their 40s and 50s (after that it really does get pretty thin). We might be less visible than people doing the mobile/VR/ML kinds of stuff that are en vogue in the Silicon Valley VC/YC ecosystem, but many of us are still in high demand. There are even headhunters who specialize in facilitating such hires. They don't focus explicitly on age, but their focus on specific domains often results in a greyer-than-average contact list. You just have to know where to look.

</comment><comment><USER28> Data point: I just turned 50, and I am happily coding away as a developer. Couldn't be happier - I still love to code.

<comment><USER29> Glad to hear - do you take special care of your wrists? I'm 32 and with some problems already...

<comment><USER30> The biggest difference maker for me in terms of alleviating repetitive strain was switching from a mouse to a trackball. Something about not having to tense my arm up and move the mouse all over anymore...

<comment><USER29> I never had pain on my right hand which I use for mousing. My mild pain is the left hand - two hypotheses: this hand is weaker, and too much alt-tabbing.

I suspect lifting weights already improves this generally, as I have periods of much less pain which coincide with being more active.

<comment><USER31> I had wonky, comes-and-goes knee pain which cleared up when I hit the gym and started doing squats.

If you have a body pain problem, "see if lifting doesn't help" is good advice, but you have to be careful, i.e., don't be a dumb gymbro and load on more weight than you know you can hamdle with good form.

</comment></comment></comment></comment></comment><comment><USER32> An article that contains a bunch of anedotes to refute another article that contains a bunch of anecdotes. Hmm...

I want to see the data of where they go and determine from that.

<comment><AUTHOR> Yes - the article is not very good but I couldn't find anything decent (didn't search long though). Put this up mostly interested in what actual people might have to say.

Data point - in my 40s (doing DevOps atm). Truth is in my company (one of the big ones) I do not see a lot of older folks doing technical work (I might be the oldest in a team of about 40 people). So I'm wondering - where is everyone (and why am I not there too)?

</comment></comment><comment><USER33> They get cast into void.

<comment><USER34> Many of them stick around as a memory leak.

</comment></comment><comment><USER35> I work in a place where I'm in the low end of the age spectrum at 30. The company is in the Financial industry and was founded in the 70s. It has a long history of using technology so many engineers started 10-20+ years ago. The company offers great benefits and salary are above average which is what I think many of the engineers here optimized for when coming to work here. That's also what I felt led a lot of the engineers I worked with in my previous job for one of the big tech companies to leave after 5 years or so. Most of them ended up taking jobs with companies which seemed to offer better work life balance and benefits.

A lot of them also ended up in management. Some because it was the only path available for advancement. Many orgs just don't have (or make) space for distinguished engineers and the career path for SE ends at the senior level to which most can attend in less then 5-10 years. After that there is nowhere to go for them but management. Another issue is the demand for distinguished engineers is lower since you need less of them then junior and senior devs so it's a limited pool of jobs.

</comment><comment><USER36> To me, it has become easier to find work when I approached 40. I'm 42 now, and I've had plenty of co-workers who were older than that. Any company that refuses more experienced programmers is foolish.

My dad retired as a professional programmer a few years ago. He started in the 1970s, and had been doing a lot of Java before his retirement. He's occasionally doing some work on an open source project now.

</comment><comment><USER37> I have yet to meet a recruiter that wasn't desperate for demonstrated talent. Every corporate shop i've seen has older programmers doing the real work and younger programmers paying the tech debt and building UI.

I think most of these articles are focused on startup culture and marque companies. (ie. 1% of the market)

</comment><comment><USER38> Does anyone have hard numbers on what the cohorted attrition is for programmers? Ie, of the individuals employed as programmers 10 years ago, what percent are still employed in programming? 20 years ago? 30 years ago?

I've tried to search for this, but I think my google-fu's not up to snuff.

</comment><comment><USER39> An old joke about this:

They go to the elephant graveyards of IT, banks.

</comment><comment><USER40> 54 yr old here, 32 of experience in programming. Working on a startup, learning something new every day. Never short of offers, grateful for that and for having a rewarding profession.

</comment><comment><USER41> They take up farming, coffee brewing, bagle cooking, photography, anything that doesn't involve a computer screen directly streaming nightmares into your brain 18 hours a day.

</comment><comment><USER42> I'm 40, and I'm just getting _started_ as a software developer after years doing other sorts of IT things (networking, tech support, sysadmin, etc).

<comment><USER43> Exactly. I'm older than you by a few years and I don't even waste my time considering my age.

Too much to do to worry about this nonsense. This constant rumination about age discrimination in the industry is the only thing getting old from my perspective.

</comment></comment><comment><USER44> There are lots of developers in their forties and some in their fifties at our company. We would be happy to hire more.

<comment><USER45>
      >> lots of developers in their forties and some in their fifties at our company. We would be happy to hire more.

You can try oldgeekjobs.com

</comment></comment><comment><USER46> Just how many new programmers were produced between the years 1975 to 1985? Not a whole lot. That's why you don't see too many old programmers around, because they were pioneers in a new field. They are still around but they get lost in the crowd of new younger and less-experienced programmers.

</comment><comment><USER47> If anyone knows where, let me know. I'm gonna need to head there pretty soon.

<comment><USER12> /dev/null

</comment></comment><comment><USER48> Other than anecdotes, is there any actual longitudinal data which tracks programmers and technical types across their careers?

</comment><comment><USER49> They're taken out back and shot

</comment><comment><USER50> /dev/null probably.

</comment><comment><USER51> into the soylent of course!

</comment><comment><USER52> They gosub without return.

</comment><comment><USER53> they die

</comment><comment><USER54> > you'll probably check the box next to "project manager" instead of "software > developer"

Actually that's a demotion as far as I can tell.

<comment><USER55> Right?! Engineers reporting to non-engineers is a bit of an anti pattern. A front line manager needs to manage the work being done and not just the schedule.</comment></comment>


Sokal Affair - <AUTHOR> https://en.wikipedia.org/wiki/Sokal_affair <comment><USER2> The article: [http://www.physics.nyu.edu/faculty/sokal/transgress_v2/trans...](http://www.physics.nyu.edu/faculty/sokal/transgress_v2/transgress_v2_singlefile.html)

Sokal announcing the hoax: [http://www.physics.nyu.edu/faculty/sokal/lingua_franca_v4/li...](http://www.physics.nyu.edu/faculty/sokal/lingua_franca_v4/lingua_franca_v4.html)

The response by Social Text to Sokal announcing the hoax: [http://www.physics.nyu.edu/sokal/SocialText_reply_LF.pdf](http://www.physics.nyu.edu/sokal/SocialText_reply_LF.pdf)

Sokal's response to Social Text's response: [http://www.physics.nyu.edu/sokal/reply.html](http://www.physics.nyu.edu/sokal/reply.html)

<comment><USER3> Wow Social Text's response is worse than what is quoted in wikipedia. They include how they regret that other people did not help them save face.

</comment></comment><comment><USER4> I remember working on a research project in statistical physics and my professor taught us the 'politics' of being published. I was crushed.

</comment><comment><USER5> Reverse Sokal Affair (spoofed physics papers): [https://en.wikipedia.org/wiki/Bogdanov_affair](https://en.wikipedia.org/wiki/Bogdanov_affair)</comment>


Show HN : Create your own HackerNews - <AUTHOR> http://postatic.com

<comment><USER2> This would be more interesting to me, as someone who's building a forum as a side project, if there were a bit more to it than a landing page.Why does a simple landing page with an email form need to load that much javascript?

</comment><comment><USER3> there is also the lamernews project (written in Ruby), and a small port that I started writing with Node: [https://github.com/mulderp/echojs](https://github.com/mulderp/echojs)</comment>


RhodeCode 1.5.1 Released - <AUTHOR> http://rhodecode.org/news/2012/rhodecode-151-released/ <comment><USER2> For those who may have missed it (I certainly did), this came only a few days after the 1.5.0 release.

<http://rhodecode.org/news/2012/rhodecode-150-released/></comment>


Little Caesars Has a Patent for a Pizza-Making Machine - <AUTHOR> https://thespoon.tech/scoop-little-caesars-has-a-patent-for-a-pizza-making-robot/ <comment><USER2> The future of pizza is self-driving pizza ovens. It sounds ridiculous, but just imagine a pizza delivery place that has no physical store, no employees, and can deliver you a pizza in 15 minutes, fresh out of the oven.

It seems inevitable.

<comment><USER3> It would be a little challenging. A proper pizza oven is about five or six hundred degrees minimum, and the pie bakes in 5 to 10 minutes or maybe less in some cases. And when it's done the toppings and sauce and cheese are pretty much a liquid. Going around the corner too fast will slosh at all to one side.

<comment><USER4> If it only takes that long, it could just cook while parked at destination

<comment><USER5> what? you sure you thought this through? So instead of having one kitchen producing pizzas all day long, you cut off half (or worse) of that productive time for traveling around?

All this complexity just to save on the cost of having some land to put a bunch of ovens sounds absolutely ludicrous.

<comment><USER6> I'd say the point of cooking en route is not for productivity but for freshness.

<comment><USER7> The point of the pizzeria (at least for its owners) is to make money. If you're spending 5 minutes at the destination cooking a pizza, that's either going to be one expensive pizza or the pizzeria is going out of business in a few months.

<comment><USER4> It's going to be one expensive pizza, of course. That is the target market. Think gated communities, high property-tax areas, etc..

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> The sauce part isn't new [https://www.youtube.com/watch?v=8Q0vk_fKDEo](https://www.youtube.com/watch?v=8Q0vk_fKDEo)

Nor is the oven: [https://www.youtube.com/watch?v=ZW_Maj0g8cg](https://www.youtube.com/watch?v=ZW_Maj0g8cg)

Nor are dry ingredient spreaders for anything from cheese to sliced meats regularly used at an industrial scale for frozen pizza and bruschetta already.

The fact that all the components exist but aren't in common use in delivery pizza isn't due to lack of innovation in the area, more likely it's cheaper with better throughput to have the labour of 4 pizza chefs rather than the expertise to keep an assemblage of these machines running in all the local pizza places.

For the industrial and frozen segment they make perfect sense, but on the "hot" pizza side they're probably more useful in collective bargaining than anything else.

<comment><USER9> >The fact that all the components exist but aren't in common use in delivery pizza isn't due to lack of innovation in the area, more likely it's cheaper with better throughput to have the labour of 4 pizza chefs rather than the expertise to keep an assemblage of these machines running in all the local pizza places.

I think this is what it comes down to. I was picking up a pizza at Dominos the other day, and while the girl was ringing up my order, she was also taking calls for orders and manually entering them into the computer. The workload for one person seemed absurd. I started wondering "why on earth doesn't dominos just staff a call center in India and have the orders forwarded to the store's ticketing system?".

And then I realized It's because that would be a cost center, and the food industry is already on tiny margins (<2%) as it is. It is simply cheaper and easier to offload all of that work onto a $9/hr employee you're already paying that will be replaced every 3 months after burning out. Modern capitalism has become brutally efficient at the expense of humanity.

<comment><USER10> > I started wondering "why on earth doesn't dominos just staff a call center > in India and have the orders forwarded to the store's ticketing system?".

Or, y'know, Twilio. Voice recognition on limited grammars (such as pizza toppings + addresses) is already crazy good. And the system can always repeat back what the customer said to confirm it parsed it correctly.

Or, go one step further: have no phone number, only a website. There's an cellular MVNO in Canada ([https://www.publicmobile.ca/](https://www.publicmobile.ca/)) that operates using this cost-cutting model, and they seem to be doing pretty well.

<comment><USER11> I have the nagging feeling that Telus is trying to kill the PublicMobile 'experiment' by transitioning their customers to Koodo before the bury the coffin.

<comment><USER12> Why are there ads all over the place for public mobile then?

It is weird that they were redirecting their customers to Koodo when they stopped offering a certain favorable plan.

</comment></comment></comment></comment></comment><comment><USER3> Cheese and sauce spreading utensils have been available for decades and a lot of pizzerias use them. They're especially helpful for portion control. Not so sure about pepperoni, but doesn't seem like it would be much of a challenge especially something like a slicer that cuts solid pepperoni sausages and flings the slices onto the pie.

I'd be more impressed with a robot that could flatten, spread, and toss a ball of dough, that's a bit more of an art form.

<comment><USER13> We have machines for that. Btw you don't need to toss the dough, that's just for looks, as for flattening and spreading, it's fairly standard and straight forward if everything is portion controlled correctly.

Source: 17 year chef and recently helped a friend setup a highly successful pizza shop.

</comment></comment><comment><USER14> thats a shame, one of my local pizza makers used to serve dime bags with the pizza. robots cant do that :p

<comment><USER2> Here in Oregon they could.

<comment><USER14> is it supposed to be a means to an end, or do I get to know the robot? :p

</comment></comment></comment><comment><USER15> They have a pizza vending machine which makes and cooks a fresh pizza.

[https://youtu.be/j7_lxiU8eLM](https://youtu.be/j7_lxiU8eLM)

I heard years ago they were going to have these in a large theme park in Orlando, but the article didn't which mention one. Not sure if it ever happened.

Here's a video I just found of someone using one: [https://youtu.be/tTLXzF5u13I](https://youtu.be/tTLXzF5u13I)

</comment><comment><USER16> Replacing higher operational costs (from laws mandating a higher minimum wage) with a one-time capital cost. Bound to happen.

The local McDonalds now has kiosk ordering.

<comment><USER15> I heard they were going to start doing that. Haven't happened here where I am. I wonder if you can tell it you don't want onions or pickles like you can tell a worker on your burgers, since I'm a bit of a picky eater.

I also wonder if touch screens spread more germs, but I guess you could argue the same for door knobs anyways.

<comment><USER17> The kiosks over here allow you to customize your order, and I assume they're the same everywhere.

It does appear that the kiosks are limited to removing the default ingredients, rather than allowing extra ingredients. Maybe this is a general policy change, but in the past I recall asking for bacon on a bacon-less burger and getting it. So could be that ordering with a person still has an advantage in some cases.

</comment></comment></comment><comment><USER18> Hey, maybe they can either make their terrible pizza even cheaper, or maybe make less terrible pizza for the same price.

<comment><USER19> There's worse. Ultra cheap buffet pizza like Cici's. Little Caesars isn't great, but it's edible.

Little Caesar's gets its cheese from Leprino, same supplier as more expensive (and also "meh") chain pizza places.

<comment><USER20> Getting the cheese from the same supplier doesn't mean it's the same cheese. I expect that they produce a somewhat different product for each major customer.

Little Caesars is completely inedible to my taste.

<comment><USER19> As far as I know, Leprino doesn't have any low end or "fake cheese" products. Just saying the ingredients are on par with other uninspired chain pizza, but not pure garbage.

Little Caesars does skimp on quantity. Like 2 pepperoni per slice, and perhaps less cheese, for example.

<comment><USER20> There are a lot of gradations of quality between top-end cheese and fake cheese.

I would be _extremely_ surprised if a customer the size of Little Caesars or Dominos doesn't specify its requirements down to the smallest detail.

Those details would be considered proprietary information and/or trade secrets, of course, so neither the cheese company nor the pizza chain would be interested in discussing it or making it public information.

<comment><USER19> Hrm okay. I don't see much difference between Domino's, Pizza Hut, Papa John's and Little Caesar's. They are all edible, but meh...none of them terrible, but no real difference or real "mmm" factor. I go to specific mom and pop places that do NY style pizza that's actually good. Most of the good ones seem to use Lisante ingredients. Can't think of a chain place that's memorable.

Might be different if I lived in NYC or Chicago. Here in Texas, just mom-and- pop vs chain is the real difference. Fwiw, most of them are Albanian owned vs Italian. Outside of the Northeast US, there isn't much real pizza lineage/history/culture.

</comment></comment></comment></comment></comment></comment><comment><USER21> The future of Pizza is a 3D printer at home that prints out your dinner right at your dinner table.

No, make that printed directly into your stomach, via a plugin.

<comment><USER22> But then we won't be able to experience the taste and chewing.

<comment><USER23> If you're at Little Caesars/Pizza Hut, that's not something you care about.</comment></comment></comment>


LearnStreet Launches To Help You Learn How To Build, Test And Push Code - <AUTHOR> http://techcrunch.com/2012/11/07/learnstreet-launches-with-1m-from-vinod-khosla-to-teach-you-how-to-build-and-push-code/

<comment><USER2> You should check out <http://codehs.com> if you are interested in learning to code. It's perfect for absolute beginners and gives you access to help and feedback from awesome tutors from Stanford.

There are projects to work on, and you learn what it means to write a good program (style, decomposition, readability, etc). Mostly, it's really fun. You start by teaching a dog some tricks and then get to make awesome games in the browser.</comment>