OpenSSL in Debian Unstable drops TLS 1.0/1.1 support - <AUTHOR> https://lists.debian.org/debian-devel-announce/2017/08/msg00004.html <comment><USER2> This makes me anxious, but I'm not sure if my anxiety is valid. I didn't know it was okay to disable TLS 1.0/1.1 this early. Correct me if I'm wrong, but this will affect all HTTPS web requests and web serving, as well as mail delivery and receipt from Debian sid. I'm not sure I want to only be able to surf ~90% of the encrypted web[1] and I'm not sure I'm ready to drop support for Android 4.3[2] or stock Windows 7/IE (which has TLS 1.2 switched off in Internet Options.) Not to mention all the mail servers out there running outdated crypto. I have mail in my inbox (from eg. Amazon Pay) received over TLS 1.0. As far as I understand, supporting outdated protocols like TLS 1.0 is only a problem if there is a downgrade attack that can force a server and client that speak TLS 1.2 to communicate over TLS 1.0. Otherwise, it should be fine to support TLS 1.0 to speak to older clients, while giving newer clients the option to speak over TLS 1.2.

Hopefully this announcement is correct in the assumption that support for TLS 1.2 will be high enough when Buster is released.

[1]: [https://www.ssllabs.com/ssl-pulse/](https://www.ssllabs.com/ssl-pulse/) [2]: [https://www.ssllabs.com/ssltest/clients.html](https://www.ssllabs.com/ssltest/clients.html)

<comment><USER3> Yes, you can't run a webserver on that Debian that supports tls with Android 4.3 or earlier for example.

<comment><USER4> I'm pretty certain you're being sarcastic, but on Debian, most of the users stick to the "stock", packaged ones, instead of building their own. Indeed you can build nginx with custom ssl, but most of the Debian users won't fiddle with this.

</comment></comment></comment><comment><USER5> Last year I disabled TLS 1.0/1.1 on my _personal server_ and encountered problems. Turns out Mono (Keepass2Android) and Qt (QBittorrent) libraries on Android for some reason had not enabled higher-than-TLS-1.0 support, although AFAIK they supported it at the time.

So yeah, I ended up reenabling TLS 1.0/1.1 on a system on which I had _full control_ over the clients connecting to it. Given the difficulty and nature of current attacks, I figured the low risks to me personally weren't worth the inconvenience.

I commend the Debian project for making the push for this, but I wonder if the world is ready to be TLS 1.2+ only.

</comment><comment><USER6> I predict hereby that this change won't last long.

While cryptographically it's the right move (everything below TLS 1.2 with an AEAD is cryptographically broken), this disables connectivity with half of the Internet. There is a huge number of hosts out there running on legacy hardware that won't do anything beyond TLS 1.0.

<comment><USER7> We're talking Debian _Unstable_. That change is at least 2 years out if you're running Testing on your servers or 4 years with Stable. I think that's a reasonable goal.

<comment><USER8> > That change is at least 2 years out if you're running Testing on your > servers or 4 years with Stable. I think that's a reasonable goal.

That's not how the Debian release process works. If everything goes well, that package may hit testing next week[0]; and it may very well be that the next stable release will be in two years.

[0] [https://tracker.debian.org/pkg/openssl](https://tracker.debian.org/pkg/openssl)

<comment><USER9> If everything goes well, then this change will not have been particularly noteworthy... it is going into Unstable now, and if it causes problems then that is exactly how it works.

Packages are not promoted into (out of?) testing unless they don't have open issues reported against them. If this concerns you, then the right thing to do is to file an issue. Keep it open long enough and this won't make it into the next stable release.

</comment></comment></comment></comment><comment><USER10> Good. Debian won't be making stable any time soon, so a very reasonable timeline.

<comment><USER11> I don't know. We have customers connect to us with their internal systems they haven't touched in ages. I can't possibly tell them that they need to update their infrastructure two years (Debian has a two year release cycle and has released this year) from now.

And then there are some end-users behind enterprise middle-boxes which don't support anything beyond TLS 1.1 and I have a feeling it's going to be difficult to communicate to them that they need to change the configuration.

This means that we'll have to package our own FTP and HTTP servers in the future. Not a big deal, but certainly not something I'm looking forward to.

Oh and our mail relay I probably have to build myself too or just disable TLS. You have _no idea_ what shitty SSL configurations are used out there by the various systems trying to send us email.

Grumble. At this point, I might as well run Linux from scratch when most of the daemons we run won't be able to talk to a seizable chunk of the clients connecting to us any more.

In other words: if you set up Debian out of the box today, its default packages will talk to 99% of clients out there on the internet. If you set up Debian in 2019, about 30% of the clients out there won't be able to talk to you.

And the fix won't just be a configuration change; it will require you to manually build every single daemon you make use of.

<comment><USER12> I think introducing some friction here is a good idea, pre 1.2 tls/ssl are objectively broken, insecure protocols.

Unless some of these people experience some pain and fix their shit, they will never upgrade, and by extension keeping everyone that wishes to communicate with them vulnerable as well (due to BAD_GUY being able to force protocol downgrades)

Is it the right solution to accommodate them (not to mention _by default out of the box_ which means it hurts your users without them being aware of it or able to make an informed choice) and pretend it isn't a problem, and thus putting yourself at risk too?

For the same reasons i think its highly irresponsible people like FreeBSD patch in garbage like null cipher support into ssh. It is _broken_ let the people who have to use it for whatever weird reason deal with the burden of their broken shit, don't force it on everyone else and weaken their security.

<comment><USER11> _> not to mention by default out of the box_

sure. Disable it by default, but leave it compiled in, so an admin can re- enable it by changing a config setting instead of recompiling half a distro.

 _> and thus putting yourself at risk too_

I'm not at risk if some big restaurant chain orders their supplies over TLS 1.1 instead of TLS 1.2. I'm not at risk if their email server sends us support tickets over TLS 1.1 instead of 1.2.

However, my business is at risk if they can't order their supplies and if I then can't receive the support email telling me so.

 _> patch in garbage like null cipher support into ssh_

there's a huge difference there: null-ciphers are completely pointless and no known client out there only supports null-ciphers.

But about 30% of the internet doesn't support TLS 1.2.

<comment><USER12> Its unfortunate that this situation causes you problems, but there is literally no other way that some people will _ever_ upgrade their shit, you could wait 10 years and they will still be using tls1.1.

Its important to at least make it harder than flip some switch and forget about it forever, or nothing is going to change.

<comment><USER11> I agree that there is the absolute need for advocacy. I agree that we need to get rid of old TLS. But I disagree that it's up to the OSes to make this a compile time issue.

If Debian comes out in 2019 in a state where 30% of the internet can't talk to it without recompiling the daemon packages, then people will switch to "more compatible" distros.

I have the infrastructure to quickly deploy patched packages, so for me this is just an annoyance (also because these self-built packages I have to security-patch myself, which is actually putting me at risk), but others don't. For them this will be a reason to switch distros

<comment><USER12> thing is chrome and firefox are almost certainly going to disable it well before then, and thats gonna make a shitload of people enable it, not everyone granted, but its going to be a lot lower than 30%

<comment><USER11> The internet doesn't just consist of Firefox and Chrome. There's mail servers, mail clients, FTP clients, etc.

And Firefox and Chrome can be behind middleboxes and/or personal firewalls that only talk TLS 1.1 on the public-facing side.

And finally, there's a lot of android devices running Android < 5 which all don't support TLS 1.2 and never will.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Seems a little risky especially for SMTP services. Will be interesting to see how this pans out!

</comment><comment><USER14> I also have disabled all versions before TLS 1.2, any key exchange other than x25519 (I wanted to avoid the NSA curves) and all encryption/mac algorithms other than Chacha20-poly1305. It works just fine with the last Firefox ESR and Chromium that way.

</comment><comment><USER15> Can we have a reminder, what is the security issue with TLS 1.0 and TLS 1.1?

<comment><USER6> The main issue is lack of authenticated encryption and in consequence padding oracles.

It turned out that fixing them thoroughly is extremely difficult. Again and again new variants of these attacks have been found and existing countermeasures have turned out to be insufficient. While these attacks are of low impact (involves timing and that's hard to pull off remotely), it's certainly not something you want in the most important crypto protocol.

TLS 1.0 has additional issues, notably the BEAST attack.

All of that can be mitigated, but it's ugly and complicated and you really just want authenticated encryption (AES-GCM or Chacha20-Poly1305), which is only available in TLS 1.2.

<comment><USER16> A good TLS 1.1 server implementation implementing all the fixes should be "fine". While a good TLS 1.0 client implementation should prevent the BEAST from working.

Note that all of these could run without problems if both side support the encrypt-then-MAC extension ([https://tools.ietf.org/html/rfc7366](https://tools.ietf.org/html/rfc7366)).

It's a lot of "if" though, hence why we prefer TLS 1.2 which has no problems (so far). But usually when nothing do, it is still better to have something than nothing.

If you want to know more about BEAST: [https://www.cryptologie.net/article/413/beast-an- explanation...](https://www.cryptologie.net/article/413/beast-an-explanation- of-the-cbc-padding-oracle-attack-on-tls/)

</comment></comment></comment><comment><USER17> Is there a plugin or setting for Firefox or Chrome that would give me stats on server protocol support for my own interactions?

I'm pretty sure the preference is newer versions of TLS where available. So would be interesting to see if this would have any impact on ones own browsing habits (ignoring the fact that FF has its own TLS lib so wouldn't be using OpenSSL anyway).

<comment><USER18> Here's an addon for firefox that'll display that for you easily. [https://addons.mozilla.org/en- us/firefox/addon/cipherfox/](https://addons.mozilla.org/en- us/firefox/addon/cipherfox/)

<comment><USER19> I use ssleuth that gives me a bit more details and a rating: [https://addons.mozilla.org/en- US/firefox/addon/ssleuth/](https://addons.mozilla.org/en- US/firefox/addon/ssleuth/)

</comment></comment></comment><comment><USER20> Also for MTAs? That's a bold move :)

</comment><comment><USER21> What's appalling is how they're not switching to libressl yet.</comment>


Monkey Island – Insult Swordfighting Game - <AUTHOR> http://www.int33h.com/test/mi/ <comment><USER2> Fun fact/veiled attempt to ask for money: Ron Gilbert and Dave Grossmann are creating a new adventure in the style of Maniac Mansion: [https://www.kickstarter.com/projects/thimbleweedpark/thimble...](https://www.kickstarter.com/projects/thimbleweedpark/thimbleweed- park-a-new-classic-point-and-click-adv)

(No affiliation, I'm a backer though.)

<comment><USER3> I remember Maniac Mansion, I played it as a kid. It was a) extremely scary and b) impossibly hard. Although I imagine that was because of my age mostly!

It came in a bundle with Monkey Island, Loom and Zak McKraken.

Zak McKraken and Maniac Mansion were the two I couldn't make any progress on!

<comment><USER4> For me the most impressive thing about Maniac Mansion is how more advanced in terms of gameplay it is, compared to many graphic adventures that came later, since you can select different characters and still beat the game, by solving different puzzles.

Later adventures had better graphics/story/characters, but were more linear than MM.

Thanks to the parent for the kickstarter heads up: I will be backing as soon as I get home!

</comment></comment></comment><comment><USER5> Hello, I am the programmer of this little game. I wanted to thank you, it is a great satisfaction to be on HN! If you want you can take a look to my other small demo/game that can be found linked just below the game: these are all projects that I did in my spare time, just for passion! Again, thank you so much!

<comment><USER6> Very, very cool! So you extracted images and dialog from scummvm game data and programmed the interactions? Or you are interpreting scummvm data straight out?

<comment><USER5> I took a lot of screenshots from scummvm, many many screenshots, it was a nightmare! Luckily there was no antialias or something so I was able to crop the sprites easily.

</comment></comment></comment><comment><USER7> Oh, I had a hard time playing through this part. My english was just basics and with the all the colloquial speech and puns, I just couldn't understand, or even make sense of the sentences.

Took me some time to realize I was just supposed to fight through different enemies to gather the right answers and use them on the later battles. And even so I was just trying to match keywords between sentences to realize what was answer to what.

Oh, how much fun one miss playing adventure games not speaking english.*

*(TWPFWP - Third World People, First World Problems).

<comment> andrey-p Likewise - I learned a lot of my English from classic adventure games.

For me there was also the additional challenge of growing up in an ex-Eastern Bloc country where you could find dodgy pirated copies of games more easily than the real thing.

So you'd end up in a situation where you're trying to beat a bootleg Legend of Kyrandia translated to Russian by looking up walkthroughs in English and somehow trying to match up both without knowing either language very well.

Those were the days.

<comment><USER8> Heh, now I'm going to learn Dutch thanks to some Minecraft server chat, where most of the players are from the Netherlands.

</comment></comment></comment><comment><USER9> Fun fact time: The dialogue for all the insults and responses in MI1 was written by Orson Scott Card!

<comment><USER10> Really? That's really interesting. Do you have any more info/background how it came to be that he wrote them (and only them?)

<comment><USER9> I don't know anything more than that he was involved with writing the insults in MI1 and had some involvement in several other LucasArts games including the Dig, which I never played.

<comment><USER11> Ah The Dig. Such a nice premise, but a very disapointing execution.

<comment><USER12> Why do you say that, I quite enjoyed it, way way back... :D

<comment><USER11> Well I do have fond memories of it, I just try to forget the awkward parts. Especially the weird [dinosaur|dragon|bird]-like higher beings that you manage to wake up. They had a nice sci-fi premise and ruined it with some fairy tale mumbo-jumbo.

I do remember though that it had, some harder than usual(for a Lucas Arts game) puzzles, that I really enjoyed.

<comment><USER13> > They had a nice sci-fi premise and ruined it with some fairy tale mumbo- > jumbo.

A common criticism of Card.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> My only problem with this is that the pirates (and you) don't move around as little dots on the map screen, having random encounters. Clicking on portraits is less fun.

<comment><USER15> Luckily there are us who don't mind minor details like that. For me it was so much fun to complete this and to get Swordmaster to say "OK, you win. Well...I hope you're happy."

The best lunch for a while.

<comment><USER14> Oh, it is fun and brings back memories, for sure. But it'd be even better with the dots. :)

<comment><USER15> Perhaps. But on the other hand, then I would have been hunting down the moving dots and spending less time on the actual insults. And I probably wouldn't been able to finish it in reasonable time to call it a lunch break.

<comment><USER14> Fair point. They could add an option to skip that.

</comment></comment></comment></comment></comment><comment><USER16> It isn't quite the same when I'm not holding a rubber chicken with a pulley in it.

I always thought that the insult fencing mechanic of Monkey Island games was fun and amusing, but it always felt like a gratuitously inserted grind to me, with the need to wander around the island to find new retorts. It would have been better to add new retorts to progress gates, such that the player is guaranteed to have them by the time he or she needs them.

If you prefer your jokes bluer and your graphics cruder, there is always the "insult beer pong" portion of the obligatory pirate subquest at [http://www.kingdomofloathing.com/](http://www.kingdomofloathing.com/) .

</comment><comment><USER17> And I still know most of the retorts after all these years. Way too much time spent on those!

</comment><comment><USER18> This was what I spent most of my childhood playing on my Amiga! A few years back I got an emulator working and completed it again - it's such a difficult game!

</comment><comment><USER19> Very appropriate. The right insult at the right time is what makes the decisive impact on closing that deal or fixing that bug in 71% of all cases. This is a good pedagogical means to teach our youngsters the importance of not just wielding the power of wit, but to apply it right. Bravo :)

<comment><USER19> Someone got it completely wrong. Down-voting my previous comment is not the right insult and not a show of wit. I am disappoint.

</comment></comment><comment><USER20> Doesn't quite work for me. The answers aren't right - they never change. So whatever insult I have, I get the response for the dairy farmer & shish kebab one followed by ones like "I am rubber, you are glue". I don't see the right one to choose

<comment><USER21> If I remember correctly, you're always allowed to start the first insult. Pick an insult you don't know the answer to. Hopefully your opponent knows the correct response. If he does, you learn a new response to an insult. If he doesn't, you win that round. That means you will advance a bit, and the enemy retreats a bit. If you win enough rounds (insult - retort), you win the fight. Win enough fights and you get to play against the sword-master, who knows all the insults and reponses.

<comment><USER20> That's how I remember it too. But it doesn't seem to be learning any new ones... Let me try again.

<comment><USER22> If I remember right, it's a very time-consuming, grind-y process, pretty out- of-character with the rest of the game. Just gotta be persistent through it. The feeling of success from finally beating that puzzle is great, though, due to the time investment.

</comment></comment></comment></comment><comment><USER23> This is my favorite game ever! This is one of the best parts of Monkey Island of course, so I thank whoever created and shared this. I just wish they brought back "The Curse of Monkey Island" for iPhone and iPad some day..

<comment><USER24> I guess you already know it, but at least The Secret of Monkey Island is already on iOS ([https://itunes.apple.com/se/app/secret-monkey-island- special...](https://itunes.apple.com/se/app/secret-monkey-island- special/id390454624?mt=8)). I'm pretty certain there are emulators if you're jailbroken though...

<comment><USER25> ScummVM has iOS version.

</comment></comment></comment><comment><USER26> Here's a soundtrack for this game: [https://soundcloud.com/martin-leblanc- eigtved/monkey-island-...](https://soundcloud.com/martin-leblanc- eigtved/monkey-island-reggae-remix)

</comment><comment><USER27> The best part of the game, bookmarked for future nostalgia too!

</comment><comment><USER28> I'd really love to know the library used to get these lovely pixelated graphics - did this gentleman write his own, or are there mature options out there?

<comment><USER5> Hello, I've used the createJS library [http://www.createjs.com/#!/CreateJS](http://www.createjs.com/#!/CreateJS) For the graphics, I ripped it directly from the original game.

<comment><USER28> Excellent stuff, thanks for responding

<comment><USER5> If you want to take a deeper look, the full source code is available directly from the game page (it's just below the game)

</comment></comment></comment></comment><comment><USER29> This was one of my favorite games growing up. There was something about it that was just fun and addicting. Thanks for sharing the link.

</comment><comment><USER30> "I got this scar on my face during a mighty struggle!" "I'm glad to hear you attended your family reunion."

No dice. :(

<comment><USER31> "I hope you learned to stop picking your nose."

</comment></comment><comment><USER32> Wow, this brought back some really good memories. I was surprised how many of the answers I remembered!

I miss my Amiga. :)

</comment><comment><USER33> My favorite part of Monkey Island is the music. I could listen to MI2's sound track all day.

<comment><USER26> Did you hear mix remix? [https://soundcloud.com/martin-leblanc-eigtved/monkey- island-...](https://soundcloud.com/martin-leblanc-eigtved/monkey-island- reggae-remix)

</comment></comment><comment><USER34> "Welcome. Stay a while. Staaay fooorever!" Brilliant!

</comment><comment><USER35> not bad at all! not sure it's legal, thought

</comment><comment><USER36> So awesome, thanks a lot!

</comment><comment><USER37> Aaaaaaaaaand there goes my productivity.

<comment><USER38> Ohhh yeah. Sitting in a Seminar, listening goes down the drain... ;-)</comment></comment>


Why Red M&M's Disappeared for a Decade (2014) - <AUTHOR> http://priceonomics.com/why-red-mandms-disappeared-for-a-decade/ <comment><USER2> So what you're saying is the Soviets were involved in -2- red scares

</comment><comment><USER3> This part actually had me laughing out loud (I guess I don't understand other people's passions as well as my own): "Is my life worth living without red M&M's? This is the question I had often asked myself. For many years now, I have somehow managed to go on, thinking there was nothing I could do. One person against the world! But now I have a purpose, a meaning in my life. My life is meant to give re-life to the red M&M's."

</comment><comment><USER4> As a child I longed for a "blue" M&M. Even though I repeatedly gave into buying these candies that melted in my hands and crackled in my mouth, when the last one was consumed I felt an emptiness ... a blueness ... on the inside. To help with the growing bitterness, I battled friend and family over the green ones ... trading out ugly yellow whenever possible.

*based on a true story.

</comment><comment><USER5> Thankfully the media - and government - never gets science wrong anymore!

</comment><comment><USER6> As I seem to recall, there were also suspicions circulating about red food dyes and hyperactivity in children. That's what I expected to read about when I clicked the link.

</comment><comment><USER7> But red 2 is still pointlessly banned?

</comment><comment><USER8> Green ones make you hit home runs. And the red ones are made with beatle wings, right?

<comment><USER9> Maybe you're thinking of carmine, which is a red dye extracted from insects. But that's different from either of the red dyes used in M&M's.

<comment><USER10> The grandparents comment about 'green ones' is from an American m&ms commercial from 1985.

[http://youtu.be/ap6pAUBsl30](http://youtu.be/ap6pAUBsl30)

</comment></comment></comment><comment><USER11> [https://xkcd.com/882/](https://xkcd.com/882/)</comment>


Ask HN: Using HN as a commenting engine? - <AUTHOR>

Has anyone though of making a service that utilizes Hacker News as a commenting engine for a blog? E.g. as a plugin for Wordpress or something. The idea would be that all comments are visible and accessible from both places (the blog and the HN) at the same time. <comment><USER2> If this involves auto-submitting every blog post to HN, then please don't.

<comment><USER3> This could involve auto-submitting every blog post to HN once it gets a comment which might be slightly better.

Best case would be to check if the article has been submitted to HN and if not default to the blog's own commenting system.

</comment></comment><comment><USER4> You could potentially use <http://hubski.com> as a blog, which is built on top of news.arc, and thus, has a similar commenting engine. It allows for richer content, like embedded videos and pictures. But no nice url...

A few people submit their blog posts to hubski. Since people don't share feeds, it's not frowned upon.</comment>


Autodidacticism - <AUTHOR> http://raganwald.posterous.com/autodidacticism <comment><USER2> This whole idea of the self taught programmer is a little disingenuous, because while I fit the stereotypical mold of one (no college degree, no formal computer science education), I was anything but self taught.

To claim so would be to discredit my friend who explained pointers to me in high school, or my first programming boss who helped me transition from writing HTML to SQL.

While I didn't take a class from Hennessy or Patterson, Gosling, the GoF, McConnel they certainly 'taught' me from their books, as did the countless anonymous internet posters in #java, #c, and as of late, #scala.

The feedback I received from friends who reviewed side projects or the JBoss guys reviewing my patches was invaluable.

It may be fair to say I created my own computer science curriculum, or that I wasn't formally taught, but I'm quite hesitant to take on the label of 'self taught'. Unless someone grew up in a cave without the internet and emerged a programming wizard, I'd caution others too.

<comment><USER3> I agree that few programmers are autodidacts in a _really_ strong sense, like the way some outsider artists have developed completely independent (and usually a bit crazy) art styles out of contact with historical art practice. Anyone who isn't sitting in a cave reinventing computation from scratch will learn things from other people, so it might just be useful to think of different ways of learning rather than a strict "formally trained" versus "autodidact" dichotomy. I have a CS degree, but before that I "self-taught" myself C mainly via FidoNet's C_ECHO... but of course it wasn't a one-person echo with no other humans on it, so "self" is in a certain manner of speaking, in that I had no formal teachers there, but did have interaction with people who I learned from.

It's still a vaguely useful term, but I do think it's important to keep the wide variation along more than one axis in mind. Some people mean something like, "I read the manual and taught myself to code", while other people mean something closer to, "I studied something close to a regular CS curriculum, but outside a traditional university lecture environment".

</comment></comment><comment><USER4> Last week I took Philip Greenspun's intense relational database systems class at MIT. I had built some modest database-backed applications before, but I had only learned the minimum that I needed in order to make my applications work. Being forced by the structure of the class to read and do exercises that I evidently was not interested in on my own provided the framework for me to learn much more than I ever had on my own.

But what material did we cover? Pretty much <http://philip.greenspun.com/sql/> with some additional topics. I had seen that online book before. Why had I never made myself study the entire thing? Why had I never gone through all of the examples on my own? I don't know. I guess I didn't see the value in it. Now I do.

<comment><USER5> I have had the same experience over a somewhat longer term. I am/was an autodidact most of my life. I learned programming and software engineering mostly by myself while pursuing an electrical major. I switched to software development as a job and learned a decent bit of algorithms and theory mostly due to interest and sometimes due to necessity.

After displaying great disdain towards structured education for the first 8 or so years of my career, I eventually decided to go back to school for a masters. Things were considerably harder; I discovered that there were parts of math and theory that I didn't quite "get". Often I had "seen" these during my studies, but hadn't looked at it in any detail because it didn't seem interesting for some reason or the other. I survived masters (and actually did quite well thanks to some guidance from professors and being well organized)

After another couple of years of working, I decided to do a phd and proceeded to discover in great detail the list of fundamental things I didn't understand about topics I thought I knew well. It took quite a while to cover that ground back.

Overall my experience has been that the purely interest driven approach I took is extremely valuable. But at the same time it makes one prone to fundamental gaps in understanding compared to a more systematic approach. (Just prone. It may not happen). I have found it valuable to realize this. Among other things it encourages me to continue poking at the subjects I care about.

</comment></comment><comment><USER6> I've a secret for you: in programming there are only people that taught programming to themselves, because there is no other way to do it. I guess that this is true for many other things as well.

p.s. for the same reason many people have a CS degree and can't code.

<comment><USER7> Disagree. There are plenty of people with CS degrees who can code, what's more dangerous is a programmer with gaping holes in their theoretical knowledge.

A friend of mine who both has years of real world experience and a PhD in CS is fond of saying: "A 'Web Developer' is a person militantly ignorant of computer science who spends most of their career re-implementing elementary computer science."

It's sheer hubris to think that one can disregard decades of CS theory and be a good developer. You might know the syntax of a language or have a great memory for APIs, but if you don't know how to efficiently apply that knowledge, what's the point?

<comment><USER8> As the old saying goes, theory is nice, in theory, but has problems in practice :)

Leaving aside the scornful sneers at those "web developers" (which read more as envy that "this chump makes more money than me and _didn't_ spend as much as I did on a degree"), there is a strong tendency for people to assume that what _they_ know and can do is special, while what someone else knows and can do will never be up to snuff. And there's a tendency to extend this to group membership. Witness the hate of people with theoretical CS education for people without.

In reality, there are large fields of programming which are well-trod enough at this point, or possess layman-oriented tools of sufficient caliber, that years of systematic formal theoretical CS education simply is not a necessity. Which, to be honest, is a _good_ thing; programming is a useful skill to have in the toolbox, and restricting access to or participation in it by denigrating dabblers or self-taught amateurs is a net harm.

Consider, for example, how many people doing quite successful and worthwhile things today got their start writing BASIC on their home computers a decade or two ago, and then consider how many of them and how many of those successful and worthwhile things we'd have if they'd all listened faithfully to Dijkstra's bile.

<comment><USER9> Don't confuse a formal CS education with a formal _theoretical_ CS education. That is, CS theory is only _part_ of a formal CS curriculum.

</comment></comment></comment></comment><comment><USER10> There's a hell of a lot of wisdom in the collected software development body of knowledge. It's a shame that a lot of that knowledge seems to have been wiped from recent working memory.

I'm a little bit sensitive to this. This morning I received a 55 page 'requirements document' from my management-appointed senior software engineer (whose background is in forestry). It amounted to little more than a very complex relational database schema and some algorithmic pseudo code. I then spent 4 hours via phone and email trying desperately to explain why those weren't requirements. His forceful rebuff: his approach had worked in the past, so it should work again. I didn't blame him - he just didn't know what he didn't know.

I've worked with some damn good programmers who had little knowledge of computer science or software engineering. They've been awesome at cranking out some (even clean) code, and they're some of the smartest people I've ever met. But, software is hard, the breadth of knowledge is vast, and just being a good programmer doesn't cut it.

<comment><USER11> People, no matter how much prior training they have, are going to invent their own ways. Some will be hits and some will be misses. In your case, it sounds like a miss, but if your manager has had prior successes, he is inclined to disagree.

Some people believed the Ruby on Rails "magic" was the worst violation of software engineering to ever exist, while others felt it was the greatest advancement in programming to date.

No viewpoint is wrong, because there is no such thing as right.

<comment><USER12> > No viewpoint is wrong, because there is no such thing as right.

"2 + 2 = 5"

"do mutlti-threaded reads and writes to a shared mutable data structure and you absolutely never have to worry about race conditions, clobbering or corruption"

do you still think all viewpoints are equal and none are right?

<comment><USER11> Absolutely, assuming you are not trying to take my quote out of context. You can do whatever you feel is best.

Take, for example:

做多线程读取和写入到一个共享的可变数据结构,你绝对不会担心竞争条件,会破坏或腐败

Maybe you can grok that, though chances are that you cannot. It is still just as valid for someone to believe it is an efficient method of communication though, even if you disagree.

Generally accepted patterns can be useful, but it takes people pushing that envelope for us to evolve.

</comment></comment></comment></comment><comment><USER13> During my "learning" life I have been in both sides; in different fields but definitely in both sides. While I have learn most of my knowledge in the university (2 undergrads, 2 masters and finishing a phd) there have been other topics besides CS, mechanical engineering, statistics,... that were interesting to me. Sports and nutrition being the most important, and I have never had any mentor or taking any course on them.

In the University the education has to be focused on teaching what is needed, not what an individual wants to learn. I did not like databases, but I took 2 db courses. I did not like compilers but I took 1 course just focused on this topic. And both topics are useful, and somebody working on CS need to know its basics. This cannot (and should not) be decided by an individual sorely based on his interest or needs. A basic layer of knowledge is decided by experts on the field that consider that ANY xxxx (put here whatever career you want) must have.

What I felt in the fields I am an autodidact is basically a huge lack of basic knowledge. How am I supposed to decide whether the book A is better than the book B for the topic I am trying to learn? Do I need to know something before getting into this other topic? How I decide the path I need to follow to reach a certain knowledge? Those questions are (almost) always solved with somebody guiding you through the process of learning.

There is something that has always shocked me: is that most autodidacts cannot accept that their education might be partial and the lack of base (generalizing here) might affect their adaptation for new projects or their speed on learning new techniques.

Following the structure of a university in careers like CS or engineering should be a must, and new methods of education are stepping on the learning process by helping autodidacts to be directed into a clear path of what-is- needed.

<comment><USER14> > How am I supposed to decide whether the book A is better than the book B for > the topic I am trying to learn? Do I need to know something before getting > into this other topic? How I decide the path I need to follow to reach a > certain knowledge? Those questions are (almost) always solved with somebody > guiding you through the process of learning.

This is rapidly becoming a thing of the past:

[http://ocw.mit.edu/courses/electrical-engineering-and- comput...](http://ocw.mit.edu/courses/electrical-engineering-and-computer- science/)

I'm 3 years into a software engineering degree and in all honesty, I'm doing it for the piece of paper. Last semester, I attended about 10% of the classes, studied by myself and still managed to get good grades. I wouldn't recommend it to people who aren't passionate about the subject though.

One thing I hate about the 2 universities I went to (Montreal, Hong Kong) is that many teachers (un)knowingly discriminate against students who don't attend classes. This often takes the form of giving hints about the exam during tutorials, giving privileged information about which topics will be evaluated and which won't. In Hong Kong, I have even seen teachers give participation grades or require a minimum class attendance in order to pass (this happened in computer engineering/science!).

<comment><USER13> Precisely my point here (as I mention in the last paragraph) is that knowledge is becoming widely available and new ways of learning are arising.

You are no longer an autodidact and you are studying the topics the college is telling you to follow. Some of them you would have never consider if you were to chose, some others you would. But in the "high level" (and probably in the future) you would appreciate the starting point that college has given you.

PS: I agree completely with you regarding attending to classes, even though I would have homeworks/exams to help retention of the material.

</comment></comment></comment><comment><USER15> You really have no choice but to be somewhat autodidactic if you develop on the web, but I like to make that point that Tiger Woods has a coach. Michael Jordan had a coach. Coaching is important, because learning happens best with constant feedback.

Just read Moonwalking With Einstein, which touches on this.

Seems like this guy Dr. Ericsson in Florida is the go-to expert on mastery in general.

As working programmers I do think it's easily in our interest to spend time learning how to acquire new skills as well as we can.

Moonwalking With Einstein: [http://www.amazon.com/Moonwalking-Einstein- Science-Rememberi...](http://www.amazon.com/Moonwalking-Einstein-Science- Remembering-Everything/dp/159420229X)

Dr. Ericsson: <http://en.wikipedia.org/wiki/K._Anders_Ericsson>

</comment><comment><USER16> The major benefit of a "formal" education (or in learning from someone with lots of experience) is that they have a better feel for the overall territory than a novice. They can help guide you towards the direction you need to go.

Learning by yourself should obviously be encouraged, but it's often difficult to know what thing to learn about next in order to ensure that the new knowledge integrates well with what you already know and (pragmatically) helps you solve the problem at hand.

To give a specific example, I'm lucky enough to sit next to our chief infrastructure engineer at work and he has helped me learn a huge amount about Linux over the past three years. He hasn't done this by giving me "formal" instruction, but instead he's pointed me in the right direction when I get stuck with something.

</comment><comment><USER17> The word "autodidact" hides a lot of complexity behind it that makes it difficult to make any coherent argument for or against it.

For one thing, a teacher cannot shove anything down your throat. It is _always_ the student who learns and in that sense, everyone is an "autodidact". This is not to belittle a teacher who's role in directing a student, keeping her on her toes, challenging, questioning, probing, explaining, etc. which are all valuable. The thing is, a formal teacher is not the only source of those things. Our parents and peers do those things too.

You learn, you get good at something ... anything. In today's world, feedback from the community on what you need to get good at and whether you're getting good at it seems adequate to the point that if you know how to make use of that, you can learn stuff efficiently and effectively. You might say more of us are becoming "allodidacts".

The third point is teachers also continuously learn. Peer learning is how scientific progress happens, for instance. So if you do continuous learning at all, you're likely to do it for a much longer fraction of your life than the period that you're "taught".

</comment><comment><USER18> I don't agree with this:

Reality directs your learning.

With or without a mentor you are still being forced to work in a particular direction. Do you read a book for your own benefit or for your employers or for both? Who appraises you? Are your colleagues impressed by what you've learnt?

Unless you live on a desert island you probably have constant feedback.

</comment><comment><USER19> I'm an autodidact.

Isn't it part of being self-taught to find mentors - in books, online, and if you're lucky, in person?

<comment><USER20> I'm an autodidact too--I was lucky enough to find this big group of mentors who were willing to speak to me several times a week about a variety of subjects. Then, after a few years, they all agreed that I now knew a lot of things and gave me a piece of paper saying so.

<comment><USER19> Yes - the article argues autodidacts become "students," and must accept that a student can't autodidact. Or they fail.

This is not some strawman I want to knock down. From the article:

"...there is more to being a good student than being good at learning. One of the responsibilities of a good student is to seek out excellent teachers. In the Wikipedia article on Autodidacticism, I find this paragraph:

"Autodidactism is only one facet of learning, and is usually complemented by learning in formal and informal spaces: from classrooms to other social settings. Many autodidacts seek instruction and guidance from experts, friends, teachers, parents, siblings, and community."

He misses the second sentence of his Wikipedia quote. He argues that you must sometimes become the student.

Any excellent student knows he must eventually teach from his corpus of knowledge to cement what he knows, and pit it against new, hungry students.

Even I - the autodidact - knew to communicate what I learned, test it in the "field of battle," wherever I could find that.

For me, it was all before I reached "higher education." So by the time I had professors, classmates, and TA's, I had already developed a highly effective method of autodidactism.

</comment></comment></comment><comment><USER21> As far as knowing what my goals are, there is nobody better than myself as a teacher. Mentoring or other 1:1 discussions where a real teacher could help with career guidance, philosophy, et cetera. I also go online and talk with people there, or I could leave the house if I so choose.

As far as selecting the best teaching material, I win. I can pick any used copy of any books that I feel are necessary, and they are cheap. Textbooks with exercises are a must. If I was shut off from the rest of the world, the sheer volume of college textbooks I physically have a copy of would keep me busy for years.

You don't learn from the teaching, you learn by doing. If you teach yourself and you never use what you have learned, done 5-10 of the medium to hard problems, and then tried to put together what you have learned, you will fail.

In the end, we agree. You should NOT be the sole teacher, unless you plan on just living and working for yourself. Perspective is a hard thing to get from yourself.

</comment><comment><USER22> I don't necessarily disagree with the author, but almost inevitably you cannot be an autodidact. If you consult a book or the internet for information, you are learning from someone else (just not necessarily audibly or directly). The real question is, are you somehow at a disadvantage if you avoid academia? Is it better to be practiced in real-world scenarios and real failures then to learn theory? Personally I think a little of both is good, but you do not necessarily need to be "taught" in the traditional sense we think of teaching.

</comment><comment><USER9> _But no matter what you think about formal education, it has one thing going for it: The separation of teacher and student._

It's more than just a separation, it's an inherent power-asymmetry.</comment>


Ask YC: How can you recruit and reward non-founder programmers at early stages? - <AUTHOR>

I constantly run into situations, where it would be useful to recruit additional non-founder programmers to help out on a project.  However, I am not sure what compensation should look like for these non founders.  I.e. We have been working on a project part-time for over a year, but could use another rails developer to help out on our front-end work.  We'd like to pay with equity, but I am not sure what that normally looks like.  Ideas? <comment><USER3> My own experience of working in a startup (Bubble 1.0) was that (as techies) the web designer and I were completely ignored and counted out of the decision-making processes, even for deeply technical matters. I think this stemmed from the insecurity of the boss, and his second-in-command who was supposed to be "a marketing genius" but somehow never achieved his full potential ;)

Anyway, we were excluded from meetings, and even when we were invited it was only for show and we were told to leave whenever the grown-ups had to make real decisions. The boss started showing people around the office saying "This is our accounts person, Jo. And our support person, David. Oh, and we've got a couple of geeks out the back but I won't bother introducing you to them."

This was an extreme example but it's often similar to that wherever I've worked: techies are viewed with a mixture of suspicion and contempt. If you can get over that and allow all your people to engage in decision-making (not always possible, but desirable, I believe) you will find it easier to retain them, despite lower salaries, etc. You probably know much of this anyway but it's worth keeping it in mind and using it to "sell" the job to potential applicants.

<comment><USER4> You're obviously not working at companies dominated by engineering (cough, Justin.tv, cough).

<comment><USER3> In that specific case, I was. It was very strange... I mean, there were about three or four business plans, each of which centred on the Internet. When I finally left for a contract at double the money, the boss held another secret meeting where he told everyone not to talk to me for the duration of my notice, because I had been "disloyal". One of the office monkeys habitually referred to me as "Spacker" after that. Looking back, I have a headache ;)

</comment></comment></comment><comment><USER5> In my opinion, if you don't have money to pay them yet, they're a co-founder, even if you've already been working on things for a year. General rules for finding co-founders apply.

<comment><USER6> And these rules are...?

<comment><USER5> I'm not sure there's a reasonable compendium, but Paul's written a lot on such in his essays. There's some here:

<http://www.paulgraham.com/start.html>

For me it's pretty simple, though finding and verifying is the tricky part.

\- You have to be able to put up with them. A lot of them. Really a lot of them. It's kind of like getting married there.

\- They should be able to do something essential to the company's survival. And they should do that while "getting" what you're doing and thinking it's special.

\- You trust their judgement. Enough to bet a few years of your life on it.

"Art of the Start" also has some decent info there.

</comment></comment></comment><comment><USER7> well right now the ball is in your court. There really aren't that many jobs out there, so you can get a decent programmer who'll take the pay cut just to have a job.

But you do have some other options.

You can give out different titles, lets say someone is just starting out, and you start calling them senior developer on paper, no impact now, but for their next job they'll be able to ask for a lot more money .

The stock options etc have been mentioned, so I won't cover it.

Office space, stay away from the cubicles, and have a relaxed policy.

Workhours, instead of working 9 to 5, offer them to work 10 to 5. + have general flexibility, better to have a good programmer for 4 days, than have someone crappy for 5.

Basically use small stuff like this to make yourself appealing to a certain niche of programmers. So that they'll be much more willing to take a pay cut and work for you.

<comment><USER8> Wouldn't you like to have first few programmers to be interested enough to work for 12 hours a day, all days a week than to let him think that getting a low pay means I can do a crappy work for 4 days?

<comment><USER7> A good programmer will do more work in 4 days, than a crappy one can do in 7. So its a net gain overall.

And the shorter work week will help you attract the higher quality of talent who are willing to take a paycut in order to get more free time.

If someone is good enough, why would he want to work his ass off for 12 hours a day for someone else. That type of workload is co-founder territory.

</comment></comment></comment><comment><USER9> > We have been working on a project part-time for over a year, but could use > another rails developer to help out on our front-end work.

The fact that you've been working for a year isn't all that relevant. In fact, what you've got now isn't all that relevant. The important thing is what goes into the next step. If all your work is a small part of that, the folks doing the rest get the big piece of the pie.

Think of it from the other side. How much would someone pay you for what you've got now if they have to do the rest?

</comment><comment><USER10> 1) Achieve revenues.

2) Hire freelancers for well-defined specific tasks targeted at increasing revenues, aiming at the low-hanging fruit first.

3) Repeat until you have your own private island.

This works for other skilled workers besides programmers, too. I don't make nearly enough from BCC to hire my writer full time (she has a masters degree and has commitments that make full time impossible at any price) but I get an awful lot of bang out of $100 per month.

</comment><comment><USER11> 5-10% depending on the quality of the developer is what I have done in the past and as soon as we start making cash they start getting paid. Also I only do this deal with folks I know well as it is so much more complicated than standard hiring.

<comment><USER12> So much more complicated is an understatement. Complications with IP, firing and sickness spring to mind.

If you know the person well you still need to be careful with the contract but you should be less likely to fire them and get into an argument about equity.

<comment><USER13> To think about it, knowing the person well might even be worse if you end up in a sticky situation. Not only have you just lost a friend, but your reputation as well. Moreover, chances are high that he/she will be in the same social circles as you - which ends up getting even more messy

<comment><USER11> To clarify when I say know well I don't mean friends I mean people who I know have the coding chops to be worth the equity and pitfalls. I'm never had any luck telling how good a coder is without working with them for 3-6 months, after that it is obvious :-)

</comment></comment></comment></comment><comment><USER14> As a developer, something I worked out with a startup trying to save some cash was that I would work for about half my normal hourly rate up-front.

Then I would take a share in the startup's revenue (not equity - say 20% of gross income) until the other half of my hourly rate was made up for - <USER2> could take a year or two years etc, or if the startup is very successful it could only take 3 months; but it is capped to the total 50% of the hourly rate * number of hours worked.

I also would take an extra share of revenue, say for the first year, as a potential bonus for taking on the risk of possibly not earning my full developer rate if the startup fails. This extra could be 5% or 10% of the first year or two years' revenue but is not capped and so if the startup is very successful the developer could do quite well, but the founders have not sacrificed any long-term equity in their business.

I thought that was a nice way to give the developer a share of the business' success without actually giving up equity, and also without asking the developer to take a total risk that they could have wasted their time and never receive anything for it.

<comment><USER15> This is creative, but the problem with clever 'backpay' solutions and startups is that often they are starved for cash, so the extra 5% or 10% is valuable money that they could be using to grow the business.

From an owner's perspective, I would never spend future revenue today. What if your not making enough money to pay the bills, yet have to give a percentage of revenue to a developer? They aren't going to stick around if things get tough.

It would be slightly safer to agree to a percentage of profit, but much better to just give a percentage of the company. The same could be said for replacing the lower salary. When you go to work for a startup there is a reason you get paid less: cash in the early stages is extraordinarily precious. This can not be said loud enough. I would not work for a company that didn't understand this.

It's a battle to start a company, and you really need everyone "in the same boat". If it sinks, everyone loses out.

<comment><USER9> > From an owner's perspective, I would never spend future revenue today. What > if your not making enough money to pay the bills, yet have to give a > percentage of revenue to a developer? They aren't going to stick around if > things get tough.

If they developed the product that's producing said revenue, why does it matter whether they're still around?

Suppose that your product required an expensive piece of equipment and you didn't have enough cash to pay for it. (Or, you didn't want to pay cash.) Would you object to paying over time? Does the answer depend on whether the payments go to the manufacturer or a third-party?

Yes, you might well prefer terms with a fixed cost but there's a considerable risk that they'll get nothing and it's unlikely that they can reuse the code elsewhere. (Besides, you probably insisted on an exclusive license.)

</comment></comment></comment><comment><USER16> We're in the same boat here and found equity share plus an adequate (although not exactly "market level") honorary a good balance.

It lowers the barrier of entry for the would-be partner because he'll at least get _something_ out of it immediately which is still better than working on promises alone. It's also attractive for us because we obviously don't want to give away too much of our equity early on. Remember: equity can only be given out once, cash will hopefully be a regenerative resource.

Btw we're looking for flash devs, drop me a line if interested.

</comment><comment><USER17> The equity slice in compensation depends on the salary and the stage of the company.

When the company is just a drawing on a scrap of napkin and no way to pay salary, it may require as much as 10-30% of the company to convince someone to come code for you. Based on this equity slice, the person would be essentially a founder.

When your company is a small prototype and can only pay enough salary to cover food, rent, etc, then you're probably looking at 2-8% of the company based on experience.

When the company is a couple thousand man-hours of code and you can pay a basic intro-level salary, then you're probably looking at 0.5-2% of the company, depending on experience.

</comment><comment><USER18> Not to sound simplistic, but I think most any coder would work for a modest salary if the work were meaningful or exciting to him/her. My first job (coding) was for a company that made special software for financing insurance premiums. No offense to anyone in that field, but to me, it wasn't a terribly interesting subject matter.

On the other hand, I regularly see offers of people willing to volunteer on iPhone game projects just so they can learn the ropes -- it's just that interesting to them.

So, perhaps you should only offer the equity/money/bennies after you've found someone who's passionate.

</comment><comment><USER19> How much equity have you set aside for non-founders in total?

Are you intending on hiring other developers? Is the developer you're hiring permanent?</comment>


Ask HN: Phone scam from "Microsoft" - <AUTHOR>

I got a call from 949.486.6422, some not easily traceable VOIP, I'm guessing. "Microsoft" detecting viruses on my computer, called to help me remove them. I played along, nkt doing the steps but just saying I was to see where this was going, and they had me open the event viewer -> logs, show warning and errors and then delete them, telling me those were viruses. The connection. Broke up, but I'm wondering what their end game was.<p>Anyone had this happen to them or heard of this? Were they going to charge me for "virus" removal? <comment><USER2> Yes. The Indian Microsoft virus phone scam is well known. Search for examples on YouTube.</comment>


Blue Ocean Strategy - <AUTHOR> http://en.wikipedia.org/wiki/Blue_Ocean_Strategy

<comment><AUTHOR> Makes me wonder if most web2 startups have taken this a little too far. It almost seems like the startups doing somewhat well(translation: making money) are doing so by charging money for a need that already existed.</comment>


What Colour are your bits? (2004) - <AUTHOR> https://ansuz.sooke.bc.ca/entry/23 <comment><USER2> I'm not sure whether the author of the article is playing on words or not, but in many parts of the world 'your pink bits' is a fairly common euphemism.

[https://www.urbandictionary.com/define.php?term=pink%20bits](https://www.urbandictionary.com/define.php?term=pink%20bits)</comment>


Chrome Sidebar API - <AUTHOR> https://code.google.com/p/chromium/issues/detail?id=51084

<comment><AUTHOR> Posting this in hopes of raising awareness to the issue (and because it was recently reopened). The sidebar API would help open a new world of useful chrome extensions (especially tab management, such as for instance vertical side tabs). If this is something you want, please show your interest by starring the issue.

<comment><USER2> Vertical split tabs is definitely a feature that I would like (especially if it gets integrated with vimium[0]), however I am unaware of the chrome sidebar, is it this[1] or something more?

[0] [https://github.com/philc/vimium](https://github.com/philc/vimium)

[1] [http://www.askvg.com/how-to-enable-new-side-tabs-feature- in-...](http://www.askvg.com/how-to-enable-new-side-tabs-feature-in-google- chrome-show-tabs-in-left-sidebar/)

<comment><AUTHOR> The Sidebar API is a proposal/concept for adding a sidebar surface to allow chrome extensions an alternative to injecting iframes into pages in order to display something next to a page.

With it, you could implement something like the old Side Tabs feature (that you mention), which was removed from Chrome due to "the complexity of a tree- style interface in terms of usage is beyond what most users need or want, and in terms of implementation is more than passes the cost/benefit test for building into Chrome natively as an option."[1])

[1]: [https://code.google.com/p/chromium/issues/detail?id=344870#c...](https://code.google.com/p/chromium/issues/detail?id=344870#c113)

</comment></comment></comment><comment><USER3> I think the title to this should've been something more descriptive like "Google willing to accept Chrome Sidebar API patches" as that seems to be the main reason it was reopened.

<comment><AUTHOR> Agreed. Unfortunately it's too late for me to change it now.</comment></comment>


Write your own Virtual CPU in C++ - <AUTHOR> http://megalomaniacbore.blogspot.com/2014/04/virtual-cpu-in-c-4001-cpu.html <comment><USER2> I got this idea from a friend, but whenever I wanted to learn a new language, I would quickly hack out a 4001 emulator in that language. Its an interesting but quick challenge.

[http://pastebin.com/YkhRsuih](http://pastebin.com/YkhRsuih) \- C

[http://pastebin.com/L79CeeGB](http://pastebin.com/L79CeeGB) \- Haskell

[http://pastebin.com/LybWwGzm](http://pastebin.com/LybWwGzm) \- JS

[http://pastebin.com/ZVDiRmP6](http://pastebin.com/ZVDiRmP6) \- MHS this language cant take input (its an educational toy language for a course)

<comment><USER3> As a beginner studying C, Java, Python and JS at the same time this is very interesting and educational. Thank you very much for posting these links.

</comment></comment><comment><USER4> I wish there were more people who thought about and understood these low-level basics; it feels like today, almost everyone who uses a computer is at such a far level of abstraction from the base hardware that they've lost the intuition for how computers behave the way they do and everything seems mysterious to them.

This book is highly recommended to anyone interested in how computers work; it starts off with very basic electronics and goes up to a full CPU, plus some software stuff near the end: [http://www.charlespetzold.com/code/](http://www.charlespetzold.com/code/)

</comment><comment><USER5> My mips cpu which boots linux -

[https://github.com/andrewchambers/cmips](https://github.com/andrewchambers/cmips)

</comment><comment><USER6> I've written an (incomplete) 8086 emulator in C++ [1] as part of a bigger project [2]. This kind of thing is really fun to do and gives you a lot of insight of how CPUs work (as a black box, though).

[1] [https://github.com/ggambetta/emulator-backed- remakes](https://github.com/ggambetta/emulator-backed-remakes)

[2] [http://gabrielgambetta.com/remakes.html](http://gabrielgambetta.com/remakes.html)

<comment><USER7> You'll probably be interested in this: [http://reassembler.blogspot.com/](http://reassembler.blogspot.com/)

This guy spent three years disassembling the Outrun arcade ROM, then 2 years re-implementing it in C++, then extending his engine with features like high fps and new game modes, and is now onto creating extender tools like track and time editors.

Along the way he found several new bugs and provides a fixed ROM which can be flashed to the arcade board. He's also got a project to develop an SoC which uses his engine to run an arcade cabinet, completely replacing the original board.

It's a phenomenal effort and an amazing blog to read back through.

</comment></comment><comment><USER8> A nice book I have found on the topic of virtual machines as they relate to programming languages is [http://www.amazon.com/Compiler-Design-Machines- Reinhard-Wilh...](http://www.amazon.com/Compiler-Design-Machines-Reinhard- Wilhelm/dp/3642149081). It is a pretty good book although the focus is less on emulating actual hardware and more on designing and implementing custom virtual machines as compilation targets for imperative, functional, and logic languages.

I kinda wish there were more meetups that focused on this kind of stuff instead of the latest and greatest frameworks. This kind of fundamental theory is applicable in any kind of application and framework setting.

</comment><comment><USER9> I've done this in Racket. It was quite a fun little learning project. I've been meaning to dust off the core and add some more I/O hardware to it though.

[https://github.com/jarcane/MicroMini](https://github.com/jarcane/MicroMini) if you're curious.

</comment><comment><USER10> If this is something that tickle's your fancy, you should check out 'The Elements of Computing Systems' [http://www.amazon.com/The-Elements-Computing- Systems-Princip...](http://www.amazon.com/The-Elements-Computing-Systems- Principles/dp/0262640686).

</comment><comment><USER11> In C++ , a full virtual computer : [https://github.com/trillek-team/trillek- vcomputer-module](https://github.com/trillek-team/trillek-vcomputer-module)

</comment><comment><USER12> Another one in JS that boots linux:

[http://riscv.org/angel](http://riscv.org/angel)

<comment><USER13> It's orders of magnitude slower than Bellard's JSLinux ([http://bellard.org/jslinux/](http://bellard.org/jslinux/)) on my iPad. I haven't waited until the end.

<comment><USER12> That's largely (entirely?) because it's a 64-bit system whereas jslinux is 32-bit (JS does not natively support 64-bit ints).</comment></comment></comment>


Android Success Stories - <AUTHOR> http://www.kreci.net/android/android-success-stories/

<comment><AUTHOR> Comments as usual welcome!</comment>


Largest Rube Goldberg machine ever built successfully triggered (412 steps) - <AUTHOR> http://newatlas.com/worlds-largest-rube-goldberg-machine-latvia/46849/ <comment><USER2> This should probably use the original source at [http://www.guinnessworldrecords.com/news/2016/12/worlds- larg...](http://www.guinnessworldrecords.com/news/2016/12/worlds-largest-rube- goldberg-machine-lights-up-christmas-tree-for-latvian-town) (cited by this article itself, which didn't seem to me to add much).

What a great achievement!</comment>


Not a designer? Here's how to make your web apps look awesome - <AUTHOR> http://tbbuck.com/how-to-make-your-web-apps-look-awesome/ <comment><USER2> > _Not a designer? Here's how to make your web apps look awesome -_

Hire a designer :)

\--

I am saying this only half-jokingly. There's always a trade-off. Pre-made themes are great, but

(a) they are shared and have a mass-production stigma attached to them

(b) they are designed first and spec'd second, which is the opposite of the normal process whereby the design follows from what it is that needs to be achieved with it.

The title should really be "great looking designs on a budget" rather than focusing on the lack of the designer skills. Because if there are funds available, then contracting out the design and getting exactly what you want beats the hell out of purchasing a theme.

<comment><USER3> I am in the very early stages of bootstrapping a business[1], I have no problems using Photoshop or Illustrator from a technical stand point but my design skills are rather lacking (see link). My plan is to take an awesome premium theme that has the PSDs and use it as a framework from which to build a design if not original with be distinguishable as my own.

I wish I could afford the time of one of my designer friends, I know some kick ass designers but even at mate rates my current budget isn't enough. That said I am planning on bribing a couple of them with booze and a home cooked meal to get some advice.

[1] <http://www.relishment.com>

</comment></comment><comment><USER4> What are other good sites for this kind of thing besides Themeforest? This looks like a good way to go to get a nice looking website up fast and inexpensively.

<comment><USER5> WooThemes is a pretty good one: <http://www.woothemes.com/>

According to their blog [1] a lot of their templates use 960.gs, which might make them more friendly to use than ThemeForest.

[1] <http://www.woothemes.com/2008/12/why-we-love-960gs/>

<comment><AUTHOR> _According to their blog [1] a lot of their templates use 960.gs, which might make them more friendly to use than ThemeForest._

Just to play devil's advocate, plenty of themes use 960 on ThemeForest. I think all of them have used jQuery, but I've definitely bought a couple using 960 :)

<comment><USER6> 960gs is a fancy template for math. Lots of sites use the 960gs style, without actually including the template.

</comment></comment></comment></comment><comment><USER7> This is the approach I took with Disrupt.fm

I almost convinced myself to spend around $7-800 on a design from 99designs before I found an awesome admin theme on themeforest for $20

Just because you purchase a theme from themeforest does not mean that your site will look like 500 other sites that have the same theme. I bought an admin template so that I could use the styles....not the structure and layout.You should purchase a theme knowing that it's going to be customized to fit your needs, not to just drop it in and be done...plus, chances are most of the admin templates are used on the backend for a bunch of websites that the public won't see.

</comment><comment><USER8> I was really hoping for something explaining how to simply make designs that will work well for any topic, and instead read about how to use a paid for theme.

Disappointing.

<comment><USER9> Agreed, I was really hoping for some amazing minimalist techniques for adding that professional flare to any design.

<comment><USER10> There's no magic that makes design professional. If you want a professional design, pay for a pro template or pay for a pro designer.

</comment></comment></comment><comment><AUTHOR> Hi everyone,

I wrote this post after being asked by a few people to tell them exactly what you get once you've downloaded the theme that you've paid for.

If you have any questions, please do ask away :)

<comment><USER11> Thanks for the writeup. I discovered Themeforest recently, but are any there other good options for buying non-WP themes?

<comment><AUTHOR> I've looked at TemplateMonster, who should in theory have lots of themes, but have found their site such a nightmare to navigate that I just gave up. ThemeForest doesn't have the most themes, but by and large they're consistently good.

</comment></comment></comment><comment><USER12> At the risk of being seriously down-voted in a Hacker dominated community, please read the following:

 _Not a designer? Here's how to make your web apps look awesome_

A) Please hire a designer. You might hire someone who is not very costly and fits your budget but I cannot over emphasize the value someone who does this day in day out brings to the table.

OR

B) If you were a designer and wanted to build something, what would you do? Use one of the million ready made coding junks like "Digg Template" or "Twitter template"? No you know very well that innovation does not work that ways. You would pick up a book and learn to program or find someone who knows it and will help you.

Just because "everybody" thinks they can design or make things "look" good, it does not mean it is design. Read a few books like the following to get started:

1)The Design Of Everyday Things by Donald A. Norman, Don Norman (basics of design)

2)Visual Grammar by Christian Leborg (basics of visual design)

3)Stop Stealing Sheep & Find Out How Type Works by Erik Spiekermann (typography)

4)Don't Make Me Think!: A Common Sense Approach To Web Usability by Steve Krug (basics of UX)

5)Understanding Comics by Scott Mccloud (basics of storytelling- useful in web interfaces too)

6)The Visual Display Of Quantitative Informations by Edward R. Tufte (useful in information design and dashboards)

If you have read them and want to learn more, please feel free to contact via my HN Profile.

<comment><USER13> > B) If you were a designer and wanted to build something, what would you do?

Install wordpress and download a few plugins. It won't be the next facebook, but most sites aren't.

Similarly, if all you need is good enough design that won't scare people away a theme is probably adequate. You can always hire someone later.

</comment></comment><comment><USER14> There's room here for a dedicated site to focus on all the little design widgets that a developer needs too: Login boxes, modal dialogs, growl style notifications, mouseover effects etc. There's a lot of individual jQuery plugins available (and jQueryUI is too spartan), but for someone who is primarily a backend developer, it can be hard to put together something with a consistent look.

<comment><USER15> Take a look at Dojo Toolkit, it has a pretty full set of widgets with consistent look and feel, and even accessibility built in.

<comment><USER16> Although the lack of decent Dojo documentation should put you off. Unfortunately I don't get to make that choice and mostly have to guess / Firebug my way to a solution. Also, Dojo excels at reproducing a desktop-type app which might not be what you're after.

</comment></comment></comment><comment><USER17> Awesome. Being a dev and having no eye for design, awesome place to start.

For some reason, people don't dig the plain white page with tons of controls.

<comment><AUTHOR> _For some reason, people don't dig the plain white page with tons of controls._

Heh, totally - I remember playing with RadControls years ago, and always being severely disappointed that placing the controls on the page didn't magically transform it into a masterpiece :)

</comment></comment><comment><USER18> This is a helpful article, but the theme of the site it's on is really tacky with its faux wood paneling which sort of takes away from its message about awesomeness.

</comment><comment><USER19> What are the risks of this? there was an article(1) a while back which went through the google hits of "free wordpress themes" which had either base64 obfuscated js code directly in the theme code. What are the chances of code allowing other attack vectors?

(1) - [http://wpmu.org/why-you-should-never-search-for-free- wordpre...](http://wpmu.org/why-you-should-never-search-for-free-wordpress- themes-in-google-or-anywhere-else/)

</comment><comment><USER20> I remember the last time someone posted about ThemeForest, there were questions of whether you needed the extended license for a SaaS app that charged money or if the regular license was fine.

The license prices (~$100 vs ~$1000) could make a big difference; was there ever an "official" answer on this? The terms on the ThemeForest site aren't super clear.

<comment><AUTHOR> _was there ever an "official" answer on this_?

Before I wrote the blog post, I contacted the author of the theme I use on TweetingMachine (for the tool itself), and he congratulated me on its use. Given the price difference of what he could be missing out on, that's good enough for me.

</comment></comment><comment><USER21> I am a little confused-- why does the theme come with PHP files? Isn't it just a front-end?

<comment><AUTHOR> Makes life easier, as the various design elements have already been split up for you :)

<comment><USER21> Right, but I don't want to use PHP. I don't understand why it wouldn't be just a straight-forward CSS/HTML/JS front-end. Is there some code generated on the server that I'm not getting?

<comment><USER22> You can use whatever you like on your backend. This /is/ just a straight- forward CSS/HTML/JS frontend, however the theme's author has helpfully (un- in your case) provided the theme's basic structure a set of PHP files such that you can use it as a template without breaking it apart yourself.

<comment><USER21> Ah, got it. Thanks!

</comment></comment></comment></comment></comment><comment><USER23> FWIW, they don't look "awesome" to me. They look usable and relatively clutter free though, which is better than many sites. Someone with a sense of typography could probably fix the layout and colors with minimal effort.

</comment><comment><USER24> <http://99designs.com>

Disclaimer: I work at 99. :-)</comment>


A Surreal Trip to a Domain-Names Conference - <AUTHOR> https://www.theatlantic.com/technology/archive/2017/02/domain-names-dot-horse/516438/?utm_source=atlfb&single_page=true <comment><USER2> Stopped reading at "reached out..."

FFS. Just stop it, people!</comment>


Eerie music Flash thing - <AUTHOR> http://www.oculart.com/

<comment><AUTHOR> Back in the 90s it seemed like you'd see these kind of art things all the time. This one reminded me I miss that stuff.

There should be a name for these things.</comment>


Power 9 May Dent X86 Servers: Alibaba, Google, Tencent Test IBM Systems - <AUTHOR> https://www.eetimes.com/document.asp?doc_id=1333090 <comment><USER2> One thing I think IBM has failed to grasp about POWER architecture is how to get people to use it.

Lots of people in tech talk about being interested in trying it, it has a number of interesting characteristics, but the barrier for entry is fairly high.

It's possible to get a POWER8 based server on Softlayer, IBM's cloud product, but not as a VM. You can get one as a bare metal server, _but_ you can't get one for an hourly fee. You have to pay for a full month, which starts out at around $1000.

There are very few individuals that would be willing to make such a commitment, but so many that would be willing to spend a few tens of dollars on spinning up a VM for a few hours to see if it provides value.

If you want people to get excited about it, or interested in using it, you _really_ need to make it easy for people to test it on a small scale.

<comment><USER3> So...

I sit on the POWER Customer Advisory Board, what you have raised has certainly been something I've told IBM multiple times over the last few meetings I've had with them.

I plan to continue pushing on this front.

<comment><USER4> From IBM's history, I'd assume this is chalked up to IBM institutional inertia (enterprise customers make big deployments, nothing else matters) than willfully doing it for some other profit-oriented purpose?

<comment><USER3> There are NDA items I can't get into but certainly it's not the case where I've just been shouting into the wind.

</comment></comment></comment></comment><comment><USER5> ~Literally the exact same headline in 2015 with POWER8, no results then, (probably no results this time).

I guess this is pretty much all just leverage to hold into Intel's face to get better prices out of them. "Look, we could _totally_ convert to POWER..."

</comment><comment><USER6> I will believe it when I can pull out my visa card, go to some online stores (such as those that resell Supermicro, Tyan, MSI, Quanta, etc), buy a Power9 capable ATX motherboard from one of the top-ten taiwanese motherboard manufacturers for $350, put a $300 CPU in it, $300 to $400 of RAM and build a 1U server with it. Until that happens it will not get into the hands of enough developers/sysadmin/devops/engineers to matter.

</comment><comment><USER7> > _Power 9 is IBM's first to use standard DIMMs, opening a door to other > standard components that are, overall, cutting system costs by 20% to 50%_

Glad to see them throwing in the towel on a pricey and proprietary component. Competition is good.

<comment><USER8> Didn't IBM make _exactly_ this same mistake thirty five years ago with PCs??

<comment><USER9> Which mistake exactly? Note that the Power9 processor itself is single-sourced from IBM so they don't have to worry about clones.

</comment></comment></comment><comment><USER10> Print version to avoid unnecessary pager: [https://www.eetimes.com/document.asp?doc_id=1333090&print=ye...](https://www.eetimes.com/document.asp?doc_id=1333090&print=yes)

</comment><comment><USER11> I'm really excited to get my Talos finally in my hands (was one of the early orders). Good to see Tim Pearson and the demo system. I'm very hopeful the wait will be over soon.

<comment><USER12> Please let us know your experience with the Talos system.

<comment><USER11> I'll definitely be posting unboxing, tests, progress reports, etc., to the TenFourFox Development blog.

<comment><USER12> That's great! Thank you already in advance! I am playing with the idea to get a TalosII computer. But so far I didn't find much experience reports from users and on top, on the [https://raptorcs.com/](https://raptorcs.com/) they are only on pre-order.

</comment></comment></comment></comment><comment><USER13> That would be nice, but the problem with these systems historically is that they're ridiculously expensive compared to x64 servers for the end user. As a result end users and SMBs never get their hands on them and nobody develops anything for them or supports them.

<comment><USER14> which is why they're not being sold directly to enterprises but to Cloud Providers. I'm not a hardware engineer so not familiar with the fine print but what I've read so far seems to suggest that Power systems are more efficient at running Database-centric workloads and the power hypervisor is an order of magnitude more efficient than intel ones [http://www.computerweekly.com/opinion/Intel-x86-and-IBM- POWE...](http://www.computerweekly.com/opinion/Intel-x86-and-IBM-POWER-CPUs- Which-When-Why).

Disclosure: I work on IBM cloud, but only tangentially with the Power systems.

<comment><USER15> Is there a cloud provider that allows a EU-based natural-person customer buy a little Power 9 time for testing?

Last I looked, Power cloud offerings required the customer to be a big company that buys a lot of compute.

<comment><USER16> I think IBM Softlayer has been renting out small numbers of Power-based machines for a while now, enough to test with.

<comment><USER14> Correct! They rent out POWER8 systems: [https://www.ibm.com/cloud/bare-metal- servers/power](https://www.ibm.com/cloud/bare-metal-servers/power). POWER9 systems don't seem to be available (yet).

As for the future, I can't say much publicly (le sigh) but let me just say that personally I think future of power is bright, especially with cloud providers.

</comment></comment></comment></comment></comment><comment><USER17> This is only good. Everyone is arguing here about stuff that really does not matter if this move the needle forward.

x64 by AMD pushed Intel to do better. Things became faster / cheaper. AMD fell behind and Intel rested and priced for high end went up. AMD released Ryzen and all of the sudden we see movement from Intel again. ARM on the low end pushed Intel to look at their lower powered chips and try to do better. IBM pushing P9 to win at the top at a reason price point pushed on AMD and Intel. Competition is only good here and brings value to all of us.

All of this is only good.

</comment><comment><USER18> I have a serious bee in my bonnet about POWER9.

The architecture was something I was very excited about for low latency workloads; it seemed that only thing stopping IBM from overtaking x86 in this space was the actual availability of hardware. POWER9 has been "in the works" for, what, two years now [1]? Google have been running POWER9 internally for at least 12 months [2], and IBM seem to have been caught up in the AI hype train by pivoting the POWER9 to some kind of "AI processing system" [3].

Had the P9 been released before Skylake, it might have been successful. By the time it is GA, it will be competing with x86 chips two generations higher than were available at the original P9 announcements and SPECInt benchmarks.

This has been made even more frustrating by the fact that Oracle effectively killed off SPARC during this time. Perhaps Fujitsu will continue to run with it, but I think it's fair to say that development will stagnate and support will dwindle as it is increasingly obscure and niche architecture.

[1] [https://www.nextplatform.com/2016/08/24/big-blue-aims-sky- po...](https://www.nextplatform.com/2016/08/24/big-blue-aims-sky-power9/)

[2] [https://cloudplatform.googleblog.com/2016/10/introducing- Zai...](https://cloudplatform.googleblog.com/2016/10/introducing-Zaius-Google- and-Rackspaces-open-server-running-IBM-POWER9.html)

[3] [https://www.forbes.com/sites/tiriasresearch/2017/12/08/why-i...](https://www.forbes.com/sites/tiriasresearch/2017/12/08/why- ibm-launched-instead-of-power9/)

</comment><comment><USER19> I can see China running with ARM and POWER, ditching Intel entirely.

Google, on the other hand would need a reason to switch. Somewhere there's a spreadsheet with a number for energy cost savings that would make it worth it for Google to switch architectures. I've heard it's as low as 10%.

<comment> Tuna-Fish > I can see China running with ARM and POWER, ditching Intel entirely.

China has Zhaoxin, which develops domestic x86-compatible cores that have received massive state funding, despite little commercial success. They way it looks, I think that China has decided to stick with x86, with Zhaoxin as an "escape valve" for the case where chip supply from Intel and AMD gets threatened.

<comment><USER20> If I were China I'd be cultivating a friendly chip fab for my high assurance platforms. There's no way China trusts Intel or AMD chips for classified processing.

</comment></comment></comment><comment><USER21> I think the formula is simple — if the amount of idle developer time waiting for development gear + the cost of development gear + the cost of porting your software to POWER > the potential cost saving of POWER, don't touch it.

If POWER unlocks something fundamentally new and historically impossible on X86, like ARM unlocked cell phones, and such, maybe that's another reason to try it.

At the end of the day, nobody got fired for choosing x86. Its well understood, it's cheap, development tools are accessible, and it works.

</comment><comment><USER22> Similar discussion with POWER8 from 2015 [https://news.ycombinator.com/item?id=10519548](https://news.ycombinator.com/item?id=10519548)

</comment><comment><USER23> From what I've read, POWER was affected by spectre/ meltdown too. However, Intels initial response to play down it's significance can't have gone well with large enterprise customers. In addition to the performance boosts the article refers to, I wonder how much of an impact the recent kerfuffle over Intels response had on POWER demand.

<comment><USER11> IBM already released patches for this, at least for POWER7+. Interestingly the Meltdown issue seems "only" to affect the L1 cache, so L2 does not need to be evicted. Raptor says all Talos systems will be patched prior to shipping.

[https://wiki.raptorcs.com/wiki/Speculative_Execution_Vulnera...](https://wiki.raptorcs.com/wiki/Speculative_Execution_Vulnerabilities_of_2018)

<comment><USER3> Patching POWER for Spectre/Meltdown was a pain but we are done with it.

You have to apply patches to the LPAR/OS, VIOS and firmware. IBM has acknowledged that there will be a performance hit but have not provided any quantified numbers that I have seen so far.

<comment><USER24> [https://ibm.biz/BdZjPy](https://ibm.biz/BdZjPy)

"All POWER8 and POWER9 results in this table reflect performance with firmware and Operating System updates to mitigate Common Vulnerabilities and Exposures issue numbers ... known as Spectre and Meltdown"

<comment><USER3> Thanks.

I also just found the rPerf and CPW consolidated spreadsheet from IBM (including pre and post Spectre/Meltdown numbers).

[https://www.ibm.com/developerworks/community/files/basic/ano...](https://www.ibm.com/developerworks/community/files/basic/anonymous/api/library/91037d4b-518a-4662-8832-0049a2d2563c/document/4c46604b-c783-4843-86d7-c34a8dbe0bc0/media)

</comment></comment></comment></comment></comment><comment><USER25> Amazing how nobody talks about POWER unless they're in the middle of an IBM trade show (in this case, THINK2018).

</comment><comment><USER24> [https://developer.ibm.com/linuxonpower/cloud- resources/](https://developer.ibm.com/linuxonpower/cloud-resources/)

</comment><comment><USER26> "Power 9 may dent x86 servers: Alibaba, Google, Tencent test IBM systems"

For those like me whose comprehension was hindered by all the upper casing.

</comment><comment><USER27> It's not RISC-V. They want you to adopt some exotic, proprietary ISA. And they've forever been doing a poor job of it.

Not a chance.

</comment><comment><USER28> Heard that Google has all their services ready to go on Power just needed to flip a switch.

</comment><comment><USER29> I don't ever see P9 getting price-competitive with x86 or ARM.

</comment><comment><USER30> Is "Power 9" purposefully a Magic reference? Or just a coincidence?

<comment><USER2> The CPU architecture has been called POWER since 1990, and this is the 9th generation of it, hence POWER9.

MtG didn't come out until 1993. So yes, it's a co-incidence.

<comment><USER31> Or causation in the other direction.

</comment></comment></comment><comment><USER32> Code running on Intel proc is much faster than anything else, I'm not sure how long it would take to catch up with the performance they provide.

<comment><USER33> Do you have actual benchmarks of x86 vs. Power 9 or are you just talking out your ass?

<comment><USER34> For well-optimised floating point calculations, this is generally true (even taking into account the SMT capabilities of Power8). Intel also has 8-wide (and more) SIMD in terms of intrinsics (AVX/AVX512), whilst Power is still limited to 4-wide with AltiVec, although with Power9 VSX should allow wider (I think).

Where Power8/9 _really_ shines is memory bandwidth - it's orders of magnitude faster than leading edge Intel stuff currently. But if you're not memory constrained, Intel machines can still have a bit of an edge.

<comment><USER35> _Where Power8 /9 really shines is memory bandwidth - it's orders of magnitude faster than leading edge Intel stuff currently. But if you're not memory constrained, Intel machines can still have a bit of an edge._

That makes Power sound very appealing. I've never met a real life scientific simulation that _wasn 't_ often constrained by memory bandwidth. I'm sure they exist, but they aren't all that plentiful. I'd love to try running the code that matters to me on Power. (For one thing, I don't even know if it would pass basic regression tests; numerical code is touchy. Are gcc/gfortran reliably adequate on Power like they are on x64?) Unfortunately, as everyone else is commenting, entry level x64 is dirt cheap and entry level Power isn't.

<comment><USER11> gcc is perfectly cromulent on Power (speaking from experience with my own PowerPC and POWER6 systems, and when I had time on one of Raptor's POWER8 systems). The speed differential between that and IBM xlc is pretty small IME nowadays, too.

I'm more hesitant to say the same about clang/llvm but it's been awhile and I'm probably not current.</comment></comment></comment></comment></comment>