Alan Kay's answer to 'what are some forgotten books programmers should read?' - <AUTHOR> https://www.quora.com/Experienced-programmers-and-computer-scientists-what-are-some-really-old-or-even-nearly-forgotten-books-you-think-every-new-programmer-should-read/answer/Alan-Kay-11?share=1 <comment><USER2> These reading lists are lovely and promise a Better You, but I'll propose the following challenge:

* If you're at home, turn around and look at the bookshelf you've already accumulated. Did you really read all those books you so looked forward to when you first bought them? Or do you remember all the best bits from your favorite ones? Be honest now... the unbroken spine on your Godel Escher Bach suggests otherwise. Read what you have, before stressing on Kay's or others' lists!

* If you're at work, have you read all the wiki/docs/etc created by your team and neighboring teams? Do you understand the full architecture and implementation of the system you work with every day? Go read that, level up and become the most knowledgeable person on your team.

<comment><USER3> Sadly 99% of the code that's written nowadays can be directly thrown away. I propose another challenge: Learn the actual meaningful stuff. E.g. how to code in lisp. Really learn it. You will never code lisp in your job. Promised. But in almost every task you will find that you reuse what you learned.

Or learn the architecture of git. How many people write bullshit around git because they don't understand that git can already do 100x of what their shell script or UI tool or plugin can do....

Don't waste your time with what is hip and instead learn how things really work. Real things. Don't learn the latest javascript framework, but learn the difference between class based inheritance and prototypal inheritance. Don't learn the hippest UI IDE, learn vim or emacs. Really learn it, e.g. how to solve almost all problems in vim without any plugins.

And one last point about "read all the content your team created". Not sure how big your teams are, but in many companies that's impossible. If you spend 12h of reading 7 days a week you can't read all the content that is created in that week. But you know that the cool_library that replaces the AwesomeLibrary is just as bad at solving the problem and both actually don't even know what the problem is.

<comment><USER4> >Don't waste your time with what is hip

Wouldn't that apply to git? You can probably get 90-95% of the benefit of git using mercurial with a fraction of the effort in learning. Life is too short to spend learning the internals of one version control system.

This idea of "Don't waste time on X focus on more valuable Y" has no real end. Don't waste your non-work time on learning computing related stuff and instead spend time on social connections and physical fitness first. Pays off way more than emacs, git, vim, lisp, or programming paradigms. See how easy it is to make such pronouncements?

<comment><USER5> > You can probably get 90-95% of the benefit of git using mercurial with a > fraction of the effort in learning.

You absolutely cannot.

Even if we pretend that Mercurial is simply outright better than Git, there's a lot of value in learning Git specifically, as it's what most development teams use. Employers value proficiency in Git. If you mention your Mercurial proficiency in an interview, it's likely to be scored up as _cute but irrelevant_.

If you always work alone, sure, Mercurial might work great for you, but the real value of these version-control systems is in enabling _teams_ to work effectively. Most teams these days use Git, so you need to know Git.

(Of course, if your team does use Mercurial, you'd better become proficient in Mercurial.)

> Life is too short to spend learning the internals of one version control > system.

I agree that learning the intimate internals of Git's codebase isn't something that's likely to pay off in the day job, but short of that, Git's 'useful skill-ceiling' is pretty high.

> Don't waste your non-work time on learning computing related stuff and > instead spend time on social connections and physical fitness first.

Depends on your working situation. If your work offers no opportunity to learn new skills, and you don't want your CV to get stale, you have little choice.

<comment><USER4> >there's a lot of value in learning Git specifically, as it's what most development teams use. Employers value proficiency in Git. If you mention your Mercurial proficiency in an interview, it's likely to be scored up as cute but irrelevant.

Given that the person I was responding to was advocating _not_ spending time on things for the reason that employers are looking for them, and is advocating things almost no workplace uses, I find your comment strange. Perhaps you should be responding to the comment I'm responding to?

>Depends on your working situation. If your work offers no opportunity to learn new skills, and you don't want your CV to get stale, you have little choice.

You do have a choice, and you made your choice. In the US, in this era, SW professionals are near the top when it comes to freedom to change jobs and change locations. When I know several people who make half of what I do, are relatively unskilled, and have to work much longer hours than I do, who made a very clear choice in favor of physical fitness and social relations, I am not going to claim I don't have a choice.

Having said that, this is all orthogonal to my point, which was how easy it is to make (reasonable) lists of things one should focus on that are almost exclusive to one another.

</comment></comment></comment></comment></comment><comment><USER6> Somewhat unrelated but here is Bret Victor's reading list for anyone that's interested: [https://gist.github.com/nickloewen/10565777](https://gist.github.com/nickloewen/10565777)

alan kay is a big fan of his.

The depressing things about reading lists is that it's hard to go through all of them. Many of the books list (SICP) take a long time to wade through, read, and program the examples. They are not "light reading".

<comment><USER7> SICP also requires a fair bit of Mathematical maturity which threw me off when I tried to go through it.

<comment><USER8> That's not quite true, I remember going through SICP easily before I learned post-high school math (which included relearning some basic algebra) when I went on my own self guided CS course. The lectures on YouTube are particularly accessible to newbies too with basic math and programming knowledge.

<comment><USER6> Did you do the problem sets? The book makes a lot of references to make theorems and number theory that the average laymen wouldn't understand.

<comment><USER9> It doesn't. There's a few math heavy exercises in the first chapter, and the math is generally explained as it goes along too. Except for the first chapter, it's pretty math-free.

</comment></comment></comment></comment></comment><comment><USER10> I have read "Lisp 1.5 Programmers Manual", "The Mythical Man-Month" and "The Meta-Object Protocol" by Kiczales. These all are definitely timeless classics.

These quotes about Gregor Kiczales and AspectJ [https://en.wikipedia.org/wiki/AspectJ](https://en.wikipedia.org/wiki/AspectJ) are good intro to MOP:

"In Lisp, if you want to do aspect-oriented programming, you just do a bunch of macros and you're there. In Java, you have to get Gregor Kiczales to go out and start a new company, taking months and years and try to get that to work. Lisp still has the advantage there, it's just a question of people wanting that." \-- Peter Norvig

"I am reminded of Gregor Kiczales at ILC 2003 displaying some AspectJ to a silent crowd, pausing, then plaintively adding, "When I show that to Java programmers they stand up and cheer." \-- Kenny Tilton

<comment><USER11> Agreed, and I also think "annotation oriented programming" has become the bane of Java programmers everywhere.

Seems simple when you first slap an annotation onto a class or method. But God help you when it stops working and you actually have to debug what it's doing. Figuring out what code is actually executing and what it's doing seems nigh impossible.

(Which is all to say, Lisp is still far superior, because there is a straightforward process for figuring out what kind of code a macro will generate, or to run a macro and look at its output. Macros can become complex and convoluted, but that's still nothing to the mess that annotations in modern Java frameworks create.)

<comment><USER12> You can debug an aspect too eh? Throw a breakpoint before a method call, step into it, "oh I'm in a proxy now" step step "oh I'm in this forgotten point cut I made 6 months ago, okay now I know." _I have no exp with Lisp so not arguing just observing the one side of exp I have._

<comment><USER11> But you inadvertently reinforce the point I am trying to make.

There is no way to reason about the code without actually running it. You can not read the code and understand what it's going to do.

</comment></comment></comment></comment><comment><USER13> Does anyone else get scared that too much breadth will stifle them? CS is a massive field these days and you could easily sink all your time into a small area without fully mastering it. I have had coworkers before and who could speak at length about different Linux distros, networking, web dev, dbs etc. but then were not great at the meat and potatos of the job.

<comment><USER11> The books recommended by Kay here are very much about DEPTH, not BREADTH.

The majority of programming books are just ephemera and arcana and details that will be irrelevant in a year, or next month when the new version of the framework comes out.

Kay points to books, like the original Lisp Programming Manual, that will help you understand deep core concepts about computing itself, that will remain applicable no matter what framework or library you need to use tomorrow.

Take an Alan Kay, a McCarthy, Norvig, Abelson, Sussman, Armstrong, Steele, etc. from their prime and drop them into a software company where they have zero familiarity with the programming languages or tools currently being used, and within days or weeks they will be the most productive developer at that company by far. They will come up with simple, elegant, high performance and correct solutions to problems none of the other developers would have even considered.

Those are the kinds of thinkers you want to emulate, if you really want to write excellent software solving real problems in the shortest amount of time.

<comment><USER14> It doesn't even have to be "from their prime" (and I don't like to encourage that ageism concept, now that we have hiring managers fresh out of school). I'm comfortable asserting that, at any age, they will probably be high-value, having enough background to have insights and see connections that others cannot yet, now with a lot of general wisdom besides. See Danny Hillis's writeup on Feynman at Thinking Machines. You'd just need to offer them a compelling work situation, with problems that interest them.

<comment><USER11> Heh, true, I just added "from their prime" because I know not all of them are still alive so would not add much to a development team in their current state.

<comment><USER15> You never know, something like "The Hand of Alan Turing" might be a fairly decent draw for hiring

<comment><USER16> I'm totally picturing The Hand treated like a relic in some Italian church, along these lines:

[https://www.atlasobscura.com/places/st-anthonys- tongue](https://www.atlasobscura.com/places/st-anthonys-tongue)

</comment></comment></comment></comment></comment></comment><comment><USER17> A PDF version of the first recommended book _Lisp 1.5 Programmer 's Manual_:

[http://www.softwarepreservation.org/projects/LISP/book/LISP%...](http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf)

<comment><USER18> Thanks for posting this link. I'd never heard of softwarepreservation.org before and now I can see I'm not going to get a lot done today.

<comment><USER11> Of course you will get a lot done, just none of what you intended to do! :)

</comment></comment></comment><comment><USER19> My own humble suggestions - although the books are hardly forgotten. But I think people focus a lot on technical / engineering books, and very little on design / user experience / human behavior, which arguably contribute much more to the overall impressions end users have of programmers' work.

First, the greatest book of all time, The Autobiography of Benjamin Franklin - an amazingly introspective and insightful look into how to live an examined life and improve oneself.

And then if you want to learn lower-case "design thinking", my top 10 books

* Design for Everyday Things - duh. I re-read chunks of it all the time.

* Tufte - hard to pick one, I might actually be iconoclastic and go with Visual Explanations which I think has more to offer programmers over pure data visualization. Again, just grab one every day, flip through 3-4 pages, rinse, repeat.

* User Story Mapping - Extremely memorable book - it gives you a pretty clear field guide on prioritization, empathy, communication ... just a great book.

* Badass by Kathy Sierra - I flip through this book again and again. It is gospel truth about what motivates humans.

* The Field Guide to Human-Centered Design - IDEO's most practical book. (Close second: Designing Interactions.)

* Universal Methods of Design - another deeply practical book, lots of good tips and examples.

* Universal Principles of Design - Sister book to the Universal Methods. Again, straightforward, flip to any page and get an idea when you're brainstorming.

* Thinking in Systems - I recommend you skim this book through, but come back to it a lot, it grows with you.

* Inspired by Marty Cagan - again, love nuts and bolts process books.

* Don't Make Me Think! - still a classic, still see these mistakes being made all the time in modern app dev.

<comment><USER20> > Design for Everyday Things

Do you mean "The Design of Everyday Things" by Don Norman? If so, I agree that it is a great book.

</comment></comment><comment><USER21> Joe Amstrong had a related talk 'A Guide for the Perplexed'[0] last year. He mentioned several 'forgotten great ideas' such as Linda Tuple Spaces, Flow- based programming, Xanadu and Unix pipes.

[0] [https://youtu.be/rmueBVrLKcY?t=1949](https://youtu.be/rmueBVrLKcY?t=1949)

<comment><USER22> Hah.. My BSc thesis (>15 yrs ago) was around Linda Tuple Spaces... Good times.

</comment></comment><comment><USER23> Probably not on Alan Kay's list, but Leo Brodie's Thinking Forth was mind blowing and game changing!

[http://thinking-forth.sourceforge.net/](http://thinking- forth.sourceforge.net/)

<comment><USER24> What is a good Forth implementation to follow along with this book?

<comment><USER25> Take the book as a specification, then make your own Forth implementation.

Edit: Starting Forth also by Brodie would probably be a better "spec" for implementing a Forth.

<comment><USER24> Cool, "Starting Forth" is available for free on forth.com!

Makes me curious about SwiftForth [1]. I saw a bunch of other commercially available forth implementations in the past ([2] ?), but since Forth looks so niche I never got motivated enough to try Forth more seriously.

1: [https://www.forth.com/swiftforth/](https://www.forth.com/swiftforth/)

2: [https://8th-dev.com](https://8th-dev.com)

</comment></comment></comment></comment><comment><USER26> Coming from Alan Kay i definitely need to check these out. If I'd read this post a year ago I would have known almost none of the authors, but after reading "Hackers: the heroes of the computer revolution" earlier, these are all names that stood out right away.

Both Minsky and McCarthy seem like almost mythical figures in the book, and I don't think I could ever hold aa candle to them, but the next best thing is probably to understand their thinking. I think it's a bit easy for us to get caught up in the medium blog posts detailing a small segment of a new framework, when what we really ought to do to grow, is go back to the basics and understand them in-depth.

<comment><USER27> Another great book by Minsky is Perceptrons. It's really short to boot, IIRC. It is an especially good book for those interested in ML. In it Minsky shows that single layer neural nets can not compute all problems. I remember that he has a caveat somewhere that he hasn't thought about multi-layer neural nets and they they may still be interesting. So great was the impact of this that hardly anyone worked on neural nets for something like a decade afterwards. But it's a brilliant book presented in a really simple style. It's a piece of history, I think.

<comment><USER28> I read it fairly recently, and I agree that it is both great and short.

Regarding multi-layer neural nets Minsky says they're uninteresting as they could be declared with enough complexity to basically reimplement any existing logic circuit. What made multi-layer neural nets interesting again was a multi-layer training algorithm.

There another interesting part, shortly after showing that single-layer neural nets can't implement the XOR function, Minsky shows that all that's required for a single-layer neural net to implement the XOR function is to add another column to the training set with specific values, effectively encoding the hidden layer back into the training set.

</comment></comment></comment><comment><USER29> > The way to grow from this book is to deeply learn what they did and how they > did it, and then try to rewrite page 13 in a number of ways. How nicely can > this be written in "a lisp" using recursion. How nicely can this be written > without recursion? (In both cases, look ahead in the book to see that Lisp > 1.5 had gotten to the idea of EXPRs and FEXPRs (functions which don't eval > their arguments before the call — thus they can be used to replace all the > "special forms" — do a Lisp made from FEXPRs and get the rest by definition, > etc.).

Found it ironic that in a comment about Lisp, Kay forgot to balance his parens. :)

<comment><USER30> He knew someone would comment on it and use a smiley emoji.

</comment></comment><comment><USER31> His longer reading list: [http://www.squeakland.org/resources/books/readingList.jsp](http://www.squeakland.org/resources/books/readingList.jsp)

<comment><USER32> Not a superset of OP -- only five titles under "Computing".

</comment></comment><comment><USER33> Fisher's thesis here: [https://pdfs.semanticscholar.org/237f/33308e8e9dc794e5630764...](https://pdfs.semanticscholar.org/237f/33308e8e9dc794e56307649155e6aa7a5882.pdf)

</comment><comment><USER34> My adviser had suggested me a fantastic book for bedside reading - "Algorithmics: The Spirit of Computing" by David Harel ([https://www.amazon.com/Algorithmics-Spirit-Computing- David-H...](https://www.amazon.com/Algorithmics-Spirit-Computing-David- Harel/dp/0321117840)).

<comment><USER24> I discovered this book by looking for more information on state charts vs state machines. Harel writing also got me interested in Topology:

"Topological features are a lot more fundamental than geometric ones, in that topology is a more basic branch of mathematics than geometry in terms of symmetries and mappings. One thing being inside another is more basic than it being smaller or larger than the other, or than one being a rectangle and the other a circle. Being connected to something is more basic than being green or yellow or being drawn with a thick line or with a thin line." [1]

1: [http://lambda-the-ultimate.org/node/2342](http://lambda-the- ultimate.org/node/2342)

</comment></comment><comment><USER35> The Lisp 1.5 Programmer's Manual listed by Kay is available for download from the Computer Museum archives [1].

More Lisp fun [2].

[1] [http://www.softwarepreservation.org/projects/LISP/book/LISP%...](http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf)

[2] [http://www.softwarepreservation.org/projects/LISP](http://www.softwarepreservation.org/projects/LISP)

</comment><comment><USER36> I love that Joe Armstrong's PhD thesis is on this list. I have it on my reading list for junior engineers. It's incredibly accessible and the mental model is very powerful.

<comment><USER37> Yeah, how accessible is a 295 page PhD thesis where half of it is Erlang specific for junior engineers? Unless you want them to quit their jobs, or complain to their friends what a crap manager they have.

<comment><USER36> Relax. Nobody said it was a mandatory reading list. There are no tests. It's a suggested reading list that I pull from depending on context. Joe's thesis is incredibly accessible.

At least two of my items were on Alan Kay's list. The other being "The Mythical Man Month", especially the edition with the "No Silver Bullet" article, which a depressing number of people in our industry seem to not have read. So I don't feel like I'm too far off the mark.

</comment></comment></comment><comment><USER38> I've been meaning to read The Mythical Man-Month and found it's freely available online: [https://archive.org/details/mythicalmanmonth00fred](https://archive.org/details/mythicalmanmonth00fred)

<comment><USER39> This is a great companion to "The Goal" and "The Phoenix Project," both of which use fictional narratives to illustrate best engineering practices in the context of saving a (fictional) business.

[https://www.amazon.com/Goal-Process-Ongoing- Improvement/dp/0...](https://www.amazon.com/Goal-Process-Ongoing- Improvement/dp/0884271951/)

[https://www.amazon.com/Phoenix-Project-DevOps-Helping- Busine...](https://www.amazon.com/Phoenix-Project-DevOps-Helping- Business/dp/1942788290)

</comment></comment><comment><USER40> I'd also like to point out that the majority of software engineers nowadays lacks the mathematical background, so it's probably worth including theoretical books like Abstract Algebra by Dummit and Foote on the 'must read' list.

</comment><comment><USER41> Meta II by Dewey Schorre

[http://www.ibm-1401.info/Meta-II-schorre.pdf](http://www.ibm-1401.info/Meta- II-schorre.pdf)

<comment><USER42> > How could you combine this with Val Shorre's "Meta II" programmatic parser > to make a really extensible language?

At VPRI (Kay's research institute) they did this: COLA. (See also STEPS.)

[http://www.vpri.org/](http://www.vpri.org/)

[https://en.wikipedia.org/wiki/COLA_(software_architecture)](https://en.wikipedia.org/wiki/COLA_\(software_architecture\))

[http://www.vpri.org/pdf/tr2012001_steps.pdf](http://www.vpri.org/pdf/tr2012001_steps.pdf) "STEPS Toward the Reinvention ofProgramming, 2012 Final Report"

</comment></comment><comment><USER6> Not a book, but I encourage people to read Douglas Engelbart's paper on Augmenting Human Intellect: [http://dougengelbart.org/content/view/138](http://dougengelbart.org/content/view/138)

Alan kay is a big of Engelbart and I'm surprised it wasn't listed in his answer. Also, for anyone that's interested, a windows clone of NLS is available here for windows: [http://www.ndma.com/resources/ndm8543.htm](http://www.ndma.com/resources/ndm8543.htm)

Minus the "journal", many of the multi-user capabilities, and the "compiler compiler" programming system of NLS. still, it's interesting to play with.

</comment><comment><USER43> Grab programming pearls, read it cover-to-cover (and try the exercises please), collect all the references, read it all.

</comment><comment><USER44> I can see the n-gate.com entry now:

Alan Kay recommends some books. The Hacker News spend most of the thread recommending books they like, instead.

Anyway, this is a nice list filled with works I've not read, so I'll make certain to give them some attention next time I'm at a book store and ask them to order some things, since they only carry magazines and other drivel in- store.

</comment><comment><USER8> > It starts with a version of John's first papers about Lisp, and develops the > ideas in a few pages of examples to culminate on page 13 with Lisp eval and > apply defined in itself. There are many other thought provoking ideas and > examples throughout the rest of the book.

Sounds like the MIT SICP course from the 1980s using scheme!

</comment><comment><USER45> An old comment on McCarthy's LISP 1.5 manual: "This is the source of the opinion that LISP is hard."

</comment><comment><USER46> Threaded Interpretive Languages: Their Design and Implementation

[https://www.amazon.com/Threaded-Interpretive-Languages- Desig...](https://www.amazon.com/Threaded-Interpretive-Languages-Design- Implementation/dp/007038360X)

</comment><comment><USER47> Probably controversial, but eelco dolstra's PhD thesis was eye opening for me.

<comment><USER48> Agreed. IMO the most significant work in system administration in the past 20 years.

[https://nixos.org/~eelco/pubs/phd- thesis.pdf](https://nixos.org/~eelco/pubs/phd-thesis.pdf)

</comment></comment><comment><USER49> Glad to see him mention Peter Landin ([https://en.m.wikipedia.org/wiki/Peter_Landin](https://en.m.wikipedia.org/wiki/Peter_Landin)). As a user and developer of functional programming languages, [https://www.cs.cmu.edu/~crary/819-f09/Landin66.pdf](https://www.cs.cmu.edu/~crary/819-f09/Landin66.pdf) is my favorite paper of all time.

</comment><comment><USER50> Found a great set of slides about early practice vs theory disputes (and their resolution via the mathematical study of PLs, programs, and their semantics) that I found ~looking for pdfs of one of the books Kay mentions: Advances in Programming and Non-Numerical Computation~ I mean searching the internet:

[https://www.cs.ox.ac.uk/strachey100/slides/2-JS.pdf](https://www.cs.ox.ac.uk/strachey100/slides/2-JS.pdf)

</comment><comment><USER51> Computation: Finite and Infinite is one of my favorite books. It's fascinating to see computation built up from the theory of neural networks. Marvin Minsky is just such a deep thinker and writer.

For those who are interested I made the neural net system into a simulator:

[https://justinmeiners.github.io/neural-nets- sim/](https://justinmeiners.github.io/neural-nets-sim/)

<comment><USER6> Arrggh, I don't think it's published anymore. And used ones are over $100 on amazon.

<comment><USER51> yeah its out of print. find it online or get it from a library

<comment><USER52> Download links here:

[http://gen.lib.rus.ec/search.php?req=Computation+Finite+and+...](http://gen.lib.rus.ec/search.php?req=Computation+Finite+and+Infinite)

</comment></comment></comment></comment><comment><USER53> I wouldn't recommend the Lisp 1.5 manual, other than for historic reference in the context of learning about Lisp as it exists today.

If that is too new, then, for pete's sake, at least study 1986 Lisp; no need to go back to 1962.

Books from the mid to late 80's, like Wilensky's _Common LISPCraft_ are decently useful.

Just like I wouldn't tell someone to read the 1978 first edition of the Kernighan and Ritchie C book.

</comment><comment><USER54> It is not exactly a "book", but I have found HAKMEM to be an invaluable source of knowledge.

</comment><comment><USER55>
      Assembly Language Step-by-Step
      second edition
      Programming with DOS and Linux
      Copyright © 2000 by Jeff Duntemann
      Rev. ed. of: Assembly language, © 1992
      ISBN 0-471-37523-3

</comment><comment><USER56> The Mythical Man-Month is a classic, not just for CS.

</comment><comment><USER57> People don't read books anyways anymore. It's all audio books and videos now.

However, people like to claim that what I said above is reading a book.

</comment><comment><USER58> Now I've been at this game several decades I've probably got just about enough experience to really get some value out of Lisp.

</comment><comment><USER59> Computation: Finite And Infinite Machines was my first introduction to computing. It is the only book I still have.

</comment><comment><USER42> Ted Nelson "Dream Machines"

</comment><comment><USER60> Why on Earth is Alan Kay on Quora?

<comment><USER61> He is very accessible, concerned about preserving knowledge from a previous generation of computing, and not worried about his brand of self promotion. So he goes where interesting discussions are happening - he has been on HN a number of times (user [https://news.ycombinator.com/user?id=alankay1](https://news.ycombinator.com/user?id=alankay1), AMA - [https://news.ycombinator.com/item?id=11939851](https://news.ycombinator.com/item?id=11939851))

I met him at a conference 10 years ago - I basically blew off the whole conference to sit at his feet in the lobby while he told stories and shared pearls. There were 3-4 of us, probably 30-40 years younger than him, and we were all nobodies, but he didn't care. One of my favorite experiences ever.

<comment><USER62> > _I basically blew off the whole conference to sit at his feet in the lobby_

This implies that _he_ also blew off the whole conference. I wonder why he did that.

> _There were 3-4 of us, probably 30-40 years younger than him, and we were > all nobodies_

I would hope that this isn't the reason. Being famous and "holding court" like this is probably addictive.

</comment></comment></comment><comment><USER63> Software Creativity 1st Edition (1995) by Robert L. Glass.</comment>


Career Advice - <AUTHOR> http://www.moxie.org/blog/career-advice/ <comment><USER2> As much as I like the Stanfurd prison experiment, we really should stop treating it like real science. It's not peer reviewed, has a poor set up, and never been reproduced.

#3 on here.

[http://www.cracked.com/article_21193_5-ridiculous-lies- you-p...](http://www.cracked.com/article_21193_5-ridiculous-lies-you-probably- believe-about-psychology.html)

<comment><USER3> There was a recent discussion about this: "The Stanford Prison Experiment was flawed" [https://news.ycombinator.com/item?id=8073748](https://news.ycombinator.com/item?id=8073748) (121 points, 26 days ago, 66 comments).</comment></comment>


Show battery time remaining in Mountain Lion - <AUTHOR> https://github.com/codler/Battery-Time-Remaining

<comment><USER2> You can hold Option button and click on battery to see the remaining time on battery. Interesting project though..</comment>


Ask HN: Who may benefit from this advanced text search functionality? - <AUTHOR> I'm developing a text search solutions that allows users to perform complex queries on large collections of text. I'm not aware of any similar existing solution at the moment, so I'm having a hard time researching it and would like to have your feedback on this idea.
In particular, instead of the usual keyword-based search the user can specify conditions on the entities that must be mentioned in the text document: for example, instead of searching names of members of Al-Qaeda the user can just specify the condition "member of" -> "Al-Qaeda". Analogously, searches can be done, for example, for documents mentioning "any river longer than 2km passing through France", "any italian cheese", "any drug that is used to treat panic attacks", etc... The system supports a very large number of query "conditions" so that the user can basically express almost unlimited kinds of queries.
I hope this is enough context to allow people to give an informed answer. What I'm asking is basically what kind of businesses would you market this solution to? How would you go marketing this kind of product? From my point of view (developer, no marketing/business skills) I always have an hard time figuring out what the best solution is. <comment><USER2> > I'm not aware of any similar existing solution at the moment,

See [http://www.wolframalpha.com/](http://www.wolframalpha.com/)

<comment><AUTHOR> Can you use WolframAlpha to search news articles mentioning "members of al- qaeda" or scientific papers mentioning any "drug for the treatment of schizophrenia"?</comment></comment>


Dokany – User mode file system library for windows with FUSE Wrapper - <AUTHOR> https://github.com/dokan-dev/dokany <comment><USER2> This is a fantastic project. FWIW, Paragon's extfs for Windows uses either Dokany or the original Dokan, so at least one company thought this was good enough to use in production.

I'll just point out for anyone interested in trying this, expect BSODs: [https://github.com/dokan-dev/dokany/issues/344](https://github.com/dokan- dev/dokany/issues/344).

I'm also not sure how the Win10 Anniversary driver signing changes have affected the project - they're relying on a commercial sponsor for the signed releases.

Alternative: [https://github.com/billziss- gh/winfsp](https://github.com/billziss-gh/winfsp)

Paid alternative: [https://www.eldos.com/cbfs/](https://www.eldos.com/cbfs/)

There have also been a number of other discussions here, but I should get back to work instead of digging those up.

<comment><USER3> Why would a user-space file system driver cause BSOD?

<comment><USER4> As I understand it, the BSODs happened when virus scanners hit a Dokany FS. Interaction between two different hooks into the kernel's FS layer, I guess.

</comment></comment></comment><comment><USER5> I've been using an sshfs implementation for Windows which is based on this: [https://github.com/Foreveryone-cz/win-sshfs](https://github.com/Foreveryone- cz/win-sshfs)

It works moderately well. It's incredibly convenient to have sshfs on Windows.

<comment><USER6> Consider my SSHFS-Win port which allows you to map a new network drive from Explorer using syntax like: \\\sshfs\username@server

[https://github.com/billziss-gh/sshfs-win](https://github.com/billziss- gh/sshfs-win)

Download binaries from here:

[http://www.secfs.net/winfsp/download/](http://www.secfs.net/winfsp/download/)

<comment><USER7> This is exactly what does win-sshfs linked by modeless. Is it just not advertising to your own product ?

<comment><USER6> The difference is that SSHFS-Win is a port of SSHFS to Cygwin and not written in C#.

[Nothing against C# BTW. I used it for years while employed at MSFT.]

</comment></comment></comment></comment><comment><USER8> The design of this library reminds me of OOP anti-pattern "Public Morozov" (in the name of popular Soviet myth about 13-year old boy Pavlik Morozov, who denounced his father to authorities), which exposes internal state of an object and private methods via public delegates.

<comment><USER9> When I tried Dokany, I was pretty happy with the API. (C# Adapter) There were some non-obvious tricks, but overall, compared to ELDOS, the API is well thought out.

<comment><USER8> I meant the trick with delegating tasks to user mode DLL for what was supposed to be done in kernel mode by OS designers.

</comment></comment></comment><comment><USER10> How does it compare to UMDF[1]?

1\. [https://en.wikipedia.org/wiki/User- Mode_Driver_Framework](https://en.wikipedia.org/wiki/User- Mode_Driver_Framework)

<comment><USER11> UMDF isn't for file systems.

</comment></comment><comment><USER12> Was this always FOSS? I remember looking at this a few years back and it wasn't though maybe I'm mixing this up with a different fuse-on-Windows product.

<comment><USER7> Yes, this was always FOSS.

</comment></comment><comment><USER13> It's fantastic that this is being worked on again, I last looked at Dokan a few years ago and was disappointed, it seemed unmaintained.

Much QDOS to the crew at Dokany :)

</comment><comment><USER14> Is this the same project that was like...dormant for years?

<comment><USER7> Yes exact ! It has been forked and is highly active since 2 years now ! It has a lots of fix and improvement since the dokan legacy.

</comment></comment><comment><USER15> Why and when I need create a new file system on Windows other than FAT or NTFS?

This problem seems interesting.

<comment><USER16> It's not about creating new filesystems, but using filesystem ui to browse any filesystem like hierarchy. For example using a potential implementation you as a user could be browsing S3, remote NFS, or gmail account where labels would be represented as folders and emails as text files.

<comment><USER17> > gmail account where labels would be represented as folders and emails as > text files.

Okay, this sounds incredible - is this an actual doable thing here?

<comment><USER18> [https://en.m.wikipedia.org/wiki/GmailFS](https://en.m.wikipedia.org/wiki/GmailFS).

</comment></comment></comment></comment><comment><USER19> Oh good. Now npm install can stop telling me that fusefs is incompatible on Windows.

</comment><comment><USER20> I bet that hurt real bad.

<comment><USER21> with no survivors :^)</comment></comment>


How apps receive $1.50 CPM - <AUTHOR> https://developer.amazon.com/public/community/post/Tx3FON51WGLANVJ/Here-s-How-Thousands-of-Apps-are-Receiving-a-Guaranteed-1-50-Banner-CPM

<comment><USER2> $1.50 CPM... haha!! And its capped @ $3000? There are tons of ways to make much more if you have any decent traffic.</comment>


Scott Chacon on working at GitHub - <AUTHOR> http://thegeektalk.com/interviews/scott-chacon <comment><AUTHOR> _"At GitHub we don't have a project tracker or todo list – we just all work on whatever is most interesting to us. No standup meetings, burndown charts or points to assign. No chickens or pigs... No managers, directors, PMs or departments – and it's the most agile, focused and efficient team I've ever worked with."_

\---

This reminded me a lot of Steve Yegge's "Good Agile, Bad Agile" ( [http://steve-yegge.blogspot.com/2006/09/good-agile-bad- agile...](http://steve-yegge.blogspot.com/2006/09/good-agile-bad- agile_27.html)):

 _"- Google has a philosophy of not ever telling developers what to work on, and they take it pretty seriously._

 _\- developers are strongly encouraged to spend 20% of their time... working on whatever they want, as long as it's not their main project._

 _\- there aren't very many meetings. I'd say an average developer attends perhaps 3 meetings a week, including their 1:1 with their lead._

 _\- there aren't Gantt charts or date-task-owner spreadsheets or any other visible project-management artifacts in evidence, not that I've ever seen."_

<comment><USER2> "we just all work on whatever is most interesting to us"

Unfortunately, this will likely never be some of the things that bug their customers the most -- such as the wiki that's been wrong since before they launched.

<comment><USER3> You'd be surprised how often "the things that bug [our] customers the most" quickly become interesting to us. In this case, prioritization has played a huge factor. Wikis have been on our minds for a long time, it just happens that other stuff has taken precedence.

<comment><USER2> I appreciate the response, and continue to be a happy (paying) customer as I do think you guys do a pretty good job of working on stuff.

A lot of really nice features can be found on github, and a lot of interesting technology has come out of github since I've started using it (which is a few days short of two years now).

The wikis remain pretty much trapped in time, though. I can easily imagine what an awesome github wiki would look like, but I also understand that migrating to it would be a huge pain.

In the meantime, I just can't use it. github pages is awesome and it's _almost_ , but not quite a substitute. I wonder how much of the problem would go away with gh-pages as a mob branch...

</comment></comment></comment></comment><comment><USER4> _probably would be running [Linux] on my Air right now except that I can't quite get it to. The 2nd gen Airs are not very kind to Linux at the moment_

I'm running Ubuntu on a 2nd gen Air. The big problem is getting it to boot. The -noapic kernel option helps. Also I have a little ritual where when turning it on I hit the power switch at the beginning grey screen then proceed to turn it on again.

<comment><USER5> I tried that about 8 ways from Sunday - all I was getting was a black screen of ambivalence and a dead USB port until I COPS'd it. I finally just gave up for the time being.

</comment></comment><comment><USER6> [http://www.planeterlang.org/en/planet/article/Thoughts_on_an...](http://www.planeterlang.org/en/planet/article/Thoughts_on_an_Open_Source_Company/)

Damien Katz on couchdb

</comment><comment><USER7> Aside from the corny jokes that was rather interesting interview.</comment>


Finally, it will be possible to flip someone off via emoji - <AUTHOR> http://onefoottsunami.com/2015/09/10/finally/ <comment><USER2> This is a symbol that will be used 10s of millions of times in the next few years. If not much much more.

The fact it's even in discussion if it should be there is a huge free flow of speech rights issue.

I'd like to think if you're on hn you see the problems around the fact this was not there years ago.

I want a world were people can communicate exactly as they wish. Not by a standard, especially a standard with morals thrown in.

<comment><USER3> I don't disagree with the premise that free speech is important, but it's hard to argue that the absence of a middle-finger emoji is preventing people from being nasty to each other on the internet.

This changes nothing of consequence (but I personally see no reason not to include it).

<comment><USER4> I suppose the advantage of a middle finger emoji is it can be understood across (some) language barriers, and it's more concise than a roughly equivalent written insult.

</comment></comment></comment><comment><USER5> The Unicode Standard, Version 7.0 Miscellaneous Symbols and Pictographs -- Range: 1F300–1F5FF

[http://unicode.org/charts/PDF/Unicode-7.0/U70-1F300.pdf](http://unicode.org/charts/PDF/Unicode-7.0/U70-1F300.pdf)

Chart Page 4 at Codepoint 0x1f595

Description on Page 14: Hand symbols 1F595 REVERSED HAND WITH MIDDLE FINGER EXTENDED

[https://codepoints.net/U+1F595](https://codepoints.net/U+1F595) [http://www.fileformat.info/info/unicode/char/1f595/index.htm](http://www.fileformat.info/info/unicode/char/1f595/index.htm)

<comment><USER6> Just learned about it's neighbour at 0x1F596 ("RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS")

<comment><USER5> Given that there are 4 possible places between fingers where to put a separation (2⁴), two hands (⨯2), and each finger could be extended or bent (⨯2⁵) and the hand could be shown from front or back (⨯2), I'm actually quite amazed that they haven't shown due engineering diligence and spent a whole 2¹¹ codepoints to, for once and for all, solve the problem of displaying hand gestures... Even though some will be quite challenging to perform.

<comment><USER7> Clearly the solution is to have all those attributes to be combining codepoints over two single base codepoints of RIGHT HAND and LEFT HAND. The only question is whether in canonical form they should come before or after skin tone codepoints.

</comment></comment></comment></comment><comment><USER8> I've never quite understood the emoji thing, can somebody explain it to me? Why are "funny" symbols and pictures being put into the Unicode standard? I thought the point of extending the standard with symbols is to accommodate languages that use symbols for writing.

<comment><USER9> Part of the reason Unicode exists (other than encoding every possible writing system) is to unify existing encodings. Emojis come from Japan where mobile operators used proprietary encodings to transmit emojis in text messages.

<comment><USER8> Ah, that makes a lot more sense! I thought we had people sitting around talking about what funny picture to put in Unicode next. It's much more understandable if it's something that already exists that's being "ported in".

<comment><USER10> I think we have that now. The Japanese emoji that have been standardized are kindda culturally skewed, but suddenly became very available world wide and a lot of people around the world want their culture to be represented equally. Hence the whole skin color deal.

<comment><USER11> And flags. The original japanese emoji set only has 10 country flags (japan, korea, germany, china, USA, france, spain, italy, russia and the UK), the Unicode consortium added 26 REGIONAL INDICATOR symbols used in pairs to encode territorial flags using CLDR region subtags e.g. U+1F1FA REGIONAL INDICATOR SYMBOL LETTER U followed by U+ 1F1F8 REGIONAL INDICATOR SYMBOL LETTER S => 🇺🇸 (USA flag)

<comment><USER9> Frankly, I much prefer having 26 combining symbols over having to maintain a fixed list of country flags in the Unicode standard. That doesn't solve the problem of maintaining country flags but makes it Somebody Else's Problem, which is fine in my book.

<comment><USER12> It also lets you have a semi-decent fallback, where you can have some icon for "This was supposed to be the flag for country code XX but we don't know what that looks like."

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> It's offensive, a sad commentary on humanity, and I don't mind being down voted on Hacker News for stating it openly. (Actually, if you really want to do things right, just flip me off, yes?)

<comment><USER14> Agreed. And the OP going out of his way to push for it is sad. There are more important problems to spend your time on than trying to make it easier to insult each other. If you want to insult someone, you can still do it in English. Your freedom of speech is not restricted.

<comment><USER12> There are more important problems to spend your time on than criticizing people in internet comment sections, yet here you are.

</comment></comment></comment><comment><USER15> I wonder if this means they will stop autocorrecting to the word "ducking" as well.

<comment><USER16> Why the duck would they? This shut never gets old - almost a clbuttic.

<comment><USER17> You graduated comedy school with magna semen laude, didn't you?

</comment></comment></comment><comment><USER18> And the V sign is there but the reverse two fingered salute is not. Though perhaps that would lead to too much confusion and accidental offense between cultures.

[https://en.wikipedia.org/wiki/V_sign#As_an_insult](https://en.wikipedia.org/wiki/V_sign#As_an_insult)

<comment><USER19> Au contraire:

U+1F594

Unfortunately they name it 'REVERSED VICTORY HAND', which might get people in trouble.

<comment><USER18> Using this all the time now :) Thanks

</comment></comment></comment><comment><USER20> I may be a Luddite but I really prefer the old ways.. An ability to simply write FUCK YOU, or FUCK OFF is enough for me and is supported on all platforms.

</comment><comment><USER21> Given enough time, we may just have a modern Emoji pictograph set to rival that of the Chinese.

</comment><comment><USER22> It is allready implemented in Windows 10, although it doesn't scale down well. I'd paste it here but HN doesn't seem to support Unicode emoji, which is odd

<comment><USER23> One of the reasons is that people were cramming unicode into submission titles.

This is why we can't have nice things.

[https://news.ycombinator.com/item?id=10156894#up_10157836](https://news.ycombinator.com/item?id=10156894#up_10157836)

<comment><USER24> I recall a thread where the title used Unicode bold text - can't find it now, was curious how HN handled archived threads with Unicode.

</comment></comment></comment><comment><USER25> Can you set the skin color or it has to be a yellow hand? For when you need to add a certain specific racial factor to your insult?

</comment><comment><USER26> Here is the link to the full list of new emojis mentioned in the article: [http://9to5mac.com/2015/09/09/ios-9-1-emojis/](http://9to5mac.com/2015/09/09/ios-9-1-emojis/)

Cheers to more symbolic expression and communication!

</comment><comment><USER27> I'm less concerned with the middle finger and more concerned with the addition of tacos and unicorns!

</comment><comment><USER16> Wake me up when you can give someone a powerful electric shock via emoji. A control character, literally.

<comment><USER4> This reminds me of a bash.org quote.

[http://bash.org/?4281](http://bash.org/?4281)

</comment></comment><comment><USER28> Of all of the even mildly helpful things a person can do with their time, this guy decides to rally for adding a "fuck you" emoji and then decides to blog about it like it's a life-long accomplishment... This is just very sad.

<comment><USER29> Agreed, people should only dedicate time to things approved by you.

</comment></comment><comment><USER30> This serves as a reminder that the Unicode standard is remarkable US centric at times. Where's the guy flipping the bottom of his chin? Where's whatever the equivalent in Bangladesh is? (I'm sure there is one...)

<comment><USER31> Emoji is actually more Japan centric, hence the numerous sushi emoji, bento box emoji and various other Japanese items.

<comment><USER30> Yeah, that's the DoCoMo legacy shining through.

</comment></comment></comment><comment><USER32> We've had \\.|.. since as far as I can remember.

</comment><comment><USER33> It's already on Android ie via WhatsApp.

</comment><comment><USER34> Is it really necessary to have another way to insult people on the internet?

<comment><USER35> 0x1f595

<comment><USER11> and 0x1f594 "REVERSED VICTORY HAND" which is the equivalent sign in the UK, Australia and NZ.

</comment></comment></comment><comment><USER36> I'm really trying to see this as a positive. Sorry, but I just can't do it.

<comment><USER37> No need. The Unicode Consortium is not a therapeutic institution. It's about humans and their language, not about happiness.

 _The Unicode Consortium is a non-profit corporation devoted to developing, maintaining, and promoting software internationalization standards and data, particularly the Unicode Standard, which specifies the representation of text in all modern software products and standards. The Unicode Consortium actively develops standards in the area of internationalization including defining the behavior and relationships between Unicode characters._

\- [http://www.unicode.org/consortium/consort.html](http://www.unicode.org/consortium/consort.html)

<comment><USER38> > It's about humans and their language

Particularly relevant because e.g.:

* <OK HAND SIGN> is offensive in Brazil.

* <THUMBS UP> is offensive in the middle-east.

Unicode assigns numbers to the symbols. Humans assign meanings to the symbols.

<comment><USER39> > <OK HAND SIGN> is offensive in Brazil.

Well, not really. It may be, or may not. People use it as an Ok symbol too, what makes it quite useless for either use.</comment></comment></comment></comment>


How Hypnotoad boosted our CTR to 40.41% - <AUTHOR> http://blog.proshortlist.com/2012/04/30/all-glory-to-the-hypnotoad/

<comment><USER2> You should be very careful using fox's intellectual property to endorse your product. I'm sure you can get away with it once or twice, but it'll ultimately kill you.

</comment><comment><USER3> Is that seek.co.nz?

<comment><USER4> Probably seek.com.au given the Melbourne references.</comment></comment>


Animate Size in JavaScript - <AUTHOR> http://www.uize.com/examples/animate-size-in-javascript.html <comment><USER2> Be sure to check all the demos.

A feast to the eyes.

<http://www.uize.com>

</comment><comment><USER3> On OSX, it's very jerky on FF 3.6 but very fast and smooth on Chrome.

<comment><USER4> For Windows: On FF, this looks somewhat jerky as you mentioned, and very smooth in Chrome. Opera surprised me negatively: On some of the animations, the horizontal/vertical movement didn't happen at all (on e.g. _Nervous Horizontal and Vertical Wobbling_ ). Safari amazed me: Worked just as good as Chrome. Internet Explorer 9 worked amazingly well too: the movement worked okay from what I saw, the only error I could see this time was no round edges.

And for the loading times: Chrome and Opera fastest, then Safari, Firefox and last: Internet Explorer. Nothing surprising here.

<comment><USER3> Good data points. I wonder if it's more than just a JS engine issue and more to do with the rendering. Don't have time to dig into it more...</comment></comment></comment>


Rails is a Ghetto... [NSFW for Language] - <AUTHOR> http://www.zedshaw.com/rants/rails_is_a_ghetto.html Some pretty harsh words... <comment><USER2> I posted this on reddit and was surprised that no one had observed the same thing here (like, say, pg calling him out).

The arrogance contained in this rant is sad. He "almost" got his MS, he "nearly" completed a formal education, and he twice decided he was too good to be a Jr. Sysadmin at Google. What do Junior Sysadmins do at Google? They learn how to work with one of the largest distributed systems on the planet, and they become Senior Sysadmins or Production/SRE engineers. If you don't want to work at Google that's one thing, but unless you've got your own Big Idea (and no, "being homeless" does not count as a Big Idea), maybe it'd be worth the initial indignity....

Burning bridges in public is one thing, but I worry a little that he's burnt a bunch of bridges in front of him, not just behind. And the small satisfaction of a rant like this is not worth it. For perspective -- would you expect to see something like this out of Obie? Ever?

Make your own opportunities before you burn your bridges... the time for a victory rant is after you win big, not before.

<comment><USER3> _The arrogance contained in this rant is sad. He "almost" got his MS, he "nearly" completed a formal education, and he twice decided he was too good to be a Jr. Sysadmin at Google._

I didn't see his rant as arrogant . . . just pretty blunt. If you actually read his technical work, it's quite clear that Zed is very good at what he does and employs practical applications of computer science in his work. It's no secret that Zed thinks there are too many bullshit "hackers" out there who don't know basic computer science, yet they think they're God because they learned Rails or Django. It looked like he was trying to highlight the irony of (no offense to anyone here) English majors turned script kiddies trying to lecture him on topics in which they are, frankly, out of their depth.

Having been in the consulting world at a major firm for a few years before starting my company, I've seen it dozens of times. They'll pay, staff, and bill out non-technical people like they're technical and vice versa. You sometimes find yourself dealing with "superiors" and "peers" that think their "IT experience" of writing Excel macros makes them computer scientists all of a sudden. The water's just too deep for a lot of these people and they'll put their feet in their mouths a thousand times before they learn it.

(Before I get flamed -- I applaud non-technical folks who are able to crossover and start their businesses using frameworks and other tools. That's truly awesome. The problem is when these people start thinking that because they learned how to change a spark plug or bolt on a turbocharger, they're suddenly automotive engineers and can design a car engine from scratch just like their buddies who work at Ford. Formally trained engineers != mechanics, no matter what the field. Hell, I remember a few months ago, someone on News.YC had the audacity to declare that Computer Science is irrelevant to web apps. That's the sort of bullshit that goes on in this field. There are people who call themselves hackers and literally have no clue what they're talking about and no reverence for the people who've built the tools that allow them to get a foot in the door.)

 _They learn how to work with one of the largest distributed systems on the planet, and they become Senior Sysadmins or Production/SRE engineers. If you don't want to work at Google that's one thing, but unless you've got your own Big Idea (and no, "being homeless" does not count as a Big Idea), maybe it'd be worth the initial indignity...._

Meh. Any technical hiring manager who's researched what Zed's capabilities are would know that he is overqualified for that role. Why exactly should someone with twenty years of experience and Zed's skillset who also just happened to have single-handledly wrote one of the most rock solid webservers around with thousands of production deployments take some shit job just because it's Google? Honestly, they're just another company ...

 _Make your own opportunities before you burn your bridges... the time for a victory rant is after you win big, not before._

That's wise advice.

<comment><USER4> I generally agree with you here.

I also think that undergraduate CS degrees today, are diluted. That's not to say I have not met folks who know what they are doing with their CS degree. They are also the ones paying attention in class. For those that don't really know how to program ... they got about as much skill as a non-techie who goes off to try to do their own thing.

With regards to the English major. It was very possible that he programmed computer as a kid, tried to get a CS degree, and failing that dropped back to English. I'm not saying that this is what happened to him. I do know of a few folks at the local university it happened to. So far, they have not tried to get a programming job.

<comment><USER5> The "English major" Zed mentioned is a friend and co-worker of mine. Zed and him has had some beef going way back.

Kevin is no script kiddy, I can guarantee you that. His 20% time project at Powerset is contributing to Rubinius. I don't know how many people here are hacking on the next generation of Ruby VMs, but I wouldn't call him a script kiddy.

<comment><USER3> I'm not calling the dude a script kiddie either. I was pointing out the more general pattern of the sentiments Zed has shown in his posts.

Kevin's obviously done a lot of useful work for the Ruby and Rails communities and I respect him on that basis the same way I respect Zed for his open source contributions.

</comment></comment></comment></comment></comment><comment><USER6> There's one thing that just doesn't seem right about this rant, which I think will make his whole argument fall to pieces.

Before he wrote mongrel, it seemed like he had a pretty decent working situation. After he wrote mongrel, he was jobless and nearly homeless for an extended period if time.

That just doesn't sit right with me as being truthful. How can a person, who is otherwise a qualified developer, write one of the most well-known pieces of the Rails infrastructure, but suddenly be jobless? I wrote a shitty weather app and got 3 gig offers within a day. How can you be a household name within the Rails community and not have a job?

By being an arrogant asshole? By demanding outrageous fees? By demanding outrageous control over projects? All three?

<comment><USER7> I suspect his problem is geography. I haven't lived there, but I can imagine that in NYC when you deal with Rails shops you get to talk to sleazy "MBA types" as opposed to traditional startup hubs like SV and Boston, where you typically have no problems finding cool hackers to work with.

BTW: I don't think he is an arrogant asshole, he's just just brutally honest, NYC-style. And yes, Ruby/Rails folks often smell too much like "get-rich- quick" in their blogs/posts online, so I am not surprised if they are indeed shady in real life.

<comment><USER8> If you haven't lived in NYC why is the assumption that only sleazy MBA types work there. I am tired of people bashing the startup culture here in NYC, I believe there is a healthy community of startups in NYC anything from etsy, kaltura, tumblr, buglabs, amiestreet, delicious(started in NYC), hakia, viewdle,teachthepeople,clickable, wixi, commandshift3, and more...The concentration might not be like Boston or SF, but I think people forget there are 10 million people in NYC and 2 major universities ( NYU and Columbia) which make for a large number of developers.

</comment></comment></comment><comment><USER9> Why is this interesting? It's just some guy calling people names, airing personal dirty laundry on his petty little web log, and then complaining about how poor he is ("I wrote Mongrel and then my career was _ruined_ ").

I'm sure he's a smart guy, but he manages to make himself look totally unprofessional.

<comment><USER10> If the main people who control the direction of the framework which you use to make your living were acting in a shady way wouldn't YOU be interested? It's not just "personal dirty laundry" in that what the people he's talking about do, how they work, affects a lot of people.

Also, it's not just "some guy." Zed Shaw wrote Mongrel, which virtually every Ruby on Rails project uses. Without him, Rails development would likely still be a huge pain in the ass.

BTW, you should read his essay on statistics; it provides a good starting point for figuring out how to analyze the performance of your sites.

<comment><USER3> Yeah, that statistics essay is awesome. My favorite essay of his, though, is how he uses finite state machines to implement protocols. It's pretty badass.

<comment><USER11> You mean, like every intrusion detection system ever built?

<comment><USER3> Your point?

<comment><USER11> Parsing protocols with parser generators is not an original idea, despite the fact that it's one of the top 3 value propositions Zed Shaw has for Mongrel.

</comment></comment></comment></comment></comment></comment><comment><USER12> I'm grateful for Zed's work on Mongrel, and by all accounts he's a first-rate hacker, but this rant just doesn't hold water. Though the Rails community can certainly be a bit elitist, it's also full of friendly, supportive people, and Zed doesn't produce any convincing evidence that there is a systemic problem. This looks more like an airing of personal grievances, based on a small number of encounters, and blown all out of proportion.

<comment><USER3> _Though the Rails community can certainly be a bit elitist, it's also full of friendly, supportive people_

QFT

</comment></comment><comment><USER13> I have gotten help from zed a number of times, as an early adopter of rails and mongrel. He's always been professional, extremely helpful and courteous.

I respect his contribution to rails (I am using at least 18 mongrels as we speak) and I hope the rails community will be better because of this incident.

<comment><USER14> Would you hire him?

<comment><USER13> I would. Its like Richard Branson says. You don't want to lead sheep. You want to herd cats.

I think its the job of the founder/leader to figure out how to make a team of superstars work together. We ended up changing direction a few times midway through our startup (which was acquired). If we didn't have a kickass team that could switch strategies like that overnight (we had the prototype of the newer idea ready in 1 day) we would've been dead in the water.

</comment></comment></comment><comment><USER15> Zed is a talented developer and a committed open source contributor. It seems that some of the negative aspects of the community got to him and he sort of snapped...

But I suppose if you're the kind of cat who keeps IRC logs in anticipation of future sour grapes, then I think you qualify as eccentric.

That's not a bad thing, but the rant is oddly reminiscent of some of Hans Reiser's rants.

<comment><USER16> Some of us just keep our logs. If you keep the same computer for awhile, and leave the default logging on...

<comment><USER17> Indeed. With disk space cheap, there's no reason not to log everything on your personal machine(s). I have many years of mail and IM logs, not because I intend to use them against anyone, but just because it's so easy to keep them, and I might need to know something in there one day.

</comment></comment></comment><comment><USER18> I thought this was more concise as a T-shirt:

[http://www.offworlddesigns.com/pc-291-24-fools-i-will- destro...](http://www.offworlddesigns.com/pc-291-24-fools-i-will-destroy- you.aspx)

My apologies for the product placement.

And I gotta say: during the course of Zed Shaw's extensive business training, did they never have a class called "What Not To Do When You Burn Out, Part I: Cussing Out Your Former Colleagues on the Open Internet?" Because, if not, I think the b-schools owe him his money back.

</comment><comment><USER19> _Sure people would contact me for their tiny little start-ups, but I'd eventually catch on that they just want to use me to implement their ideas. Their ideas were horrendously lame. I swear if someone says they're starting a social network I'm gonna beat them with the heal of my shoe._

I wonder if it had ever occurred to Zed that most software jobs involve getting paid to implement other people's horrendously lame ideas.

 _I don't want to be a "Ruby guy" anymore, and will probably start getting into more Python, Factor, and Lua in the coming months._

Why is it that I find myself praying this guy doesn't try to get into Haskell, OCaml, Erlang or any of the languages I hope to use?

Someone should tell him to stop taking charm lessons from TDR.

</comment><comment><USER20> It took me 30 seconds to determine that this guy should be put on the ignore/avoid list.

I have seen his type before. There basic line is, "I am the best, everyone else is either stupid or recognizes how great I am. Are you stupid?"

Even if these types have talent, they fail to accept it in others, and thus they are very difficult to deal with. They can become better once they go through the school of hard knocks. And I thinks that this Zeb guy (was that his name?) is about to get some knocks. Maybe he will learn some humility... maybe not. Eventually he will learn, but it might take him 30 more years of pain.

<comment><USER20> From his site:

"If you haven't noticed, I'm funny and enjoy having fun. Enjoy my site, tell me if you use my projects. Don't take it too seriously though, it's all an act."

OK at least this guy probably has the ability of self-parity. It's just that I was first turned off by his seeming arrogance. But now that I look more closely, yes he is probably being picked at by the vultures...

</comment></comment><comment><USER11> The irony, if you can call it that, is that only in the Rails community could someone make a name for themselves by writing a web server in Ruby.

</comment><comment><USER21> If I knew where Zed lived, I would send him a copy of "How to win friends and influence people".

</comment><comment><USER22> When he gets over his God Complex he will be very successful.

</comment><comment><USER23> Is written language ever really NSFW? Spoken language and nudity seems a little different to me.

<comment><USER24> Plenty of things, written or otherwise, are not safe for work. I don't think this is one of them though.

<comment><AUTHOR> My apologies if I misled some of you. I was a little appalled by the language, and felt it pertinent that most of you were aware of the foul nature of the language used.

<comment><USER25> I'd say that programmers have been exposed to more foul language in their occupation than porn stars.

</comment></comment></comment></comment><comment><USER26> Zed seems to be proving his own point quite effectively with his foul-mouthed rant.

</comment><comment><USER7> What does he mean by Facebook having CIA backing?

<comment><USER3> Briefly, it's a reference to the fact that Facebook closed a round with Accel Partners, which through its manager, Jim Breyer, et al has pretty close connections to the DoD, DARPA, and the CIA. For example, Breyer was (IIRC) the founding CEO of In-Q-Tel [1], the CIA's venture capital arm founded by Gilman Louie. Indeed, some think that Facebook is also funded by In-Q-Tel. Because In-Q-Tel makes a combination of public and secret investments, it's not the sort of thing that would get covered on TechCrunch.

If one considers the data mining and correlation Facebook obviously has in the works, one might think that the CIA is using the vast amounts of data as a staging ground for techniques being employed in the recently black bagged Total Information Awareness program [2] started by DARPA and initially headed by (I shit you not) John Poindexter [3]. One might even argue that Mark Zuckerberg is so blase about potential acquirers because, indeed, the company will never allow itself to be acquired. One would probably be derided as a conspiracy theorist, however. :)

[1] <http://en.wikipedia.org/wiki/In-Q-Tel>

[2] <http://en.wikipedia.org/wiki/Information_Awareness_Office>

[3] <http://en.wikipedia.org/wiki/John_Poindexter>

</comment></comment><comment><USER27> This guy needs to take a good step back and gain some perspective. He may be entirely right about these people (although he's the only one I've ever heard say that Dave Thomas is anything but a super-nice guy).

Being right is not the same thing as doing the right thing. Right now he looks every bit as ugly as the people he's vilifying. That's a shame.</comment>


Ruby on Rails is out: major coding bootcamp ditches it, due to waning interest - <AUTHOR> https://thenextweb.com/dd/2017/07/26/ruby-rails-major-coding-bootcamp-ditches-due-waning-interest <comment><USER2> I'm not sure how does "RoR courses are out" translates into RoR is out.

1) One of the reasons why such camps\courses exist is to train new workforce.

2) One of the reasons why any language may be losing its popularity is because the market has more than enough workforce which means it is now cheaper to hire (good for a company), but also means less money for a fresh emploee.

1 and 2 gives you the reason to think that they are now trying to shift the market. We have enough RoR guys here, but we need more Java chefs once again.

PS: I do not use RoR so this is written without much of a knowledge about current state of the framework in the US market.

</comment><comment><USER3> > Replacing it is a Java course, which will emphasize the Spring application > development framework.

So this is what progress looks like?

<comment><USER4> Yeah, that kind of surprised me too. I would have expected a move to Node, or some other javascript framework.

I did think the quotes from Zed Shaw and Paul Watson were good. Zed's point, that Rails and Django are server-rendered frameworks written before the client-side, front end era, does sum up why I think interest in Rails is declining.

And Paul Watson's comment explains why, in spite of this, I'd still be inclined (for now) to use Rails for a lot of projects. If you're mainly dealing with web forms, in a light to medium traffic app, you don't necessarily get much from the front-end heavy frameworks. They add complexity, and can slow (bog) you down.</comment></comment>


Show HN: An algorithm automatically remove text from natural images - <AUTHOR> https://wc-ducktor.tech/ <comment><AUTHOR> Hello HN community. I am developing a web service which remove text from natural images, and a friend recommended me to share it with you.

A nice test is for example the doge meme from wikipedia. ([https://www.google.com/url?sa=i&source=images&cd=&ved=2ahUKE...](https://www.google.com/url?sa=i&source=images&cd=&ved=2ahUKEwiz1OPMuJHkAhUOzhoKHev- ByAQjRx6BAgBEAQ&url=https%3A%2F%2Ffr.wikipedia.org%2Fwiki%2FDoge_\(m%25C3%25A8me\)&psig=AOvVaw08m8kcDkAKWhGjaWvzEPZc&ust=1566390265195406)) Not every image is perfect. He is also having a hard time with huge capital fonts.

I think the usage is straight forward, but I would like to add some comments on the project.

* You are limited to 10 images per IP for now, because I have to pay for the servers and it can quickly get expensive. This is the easiest way I found to allow everybody to test it without exploding my bank account.

## Some question I am anticipating:

1) Why is it so slow

The algorithm is computationally intensive. With the current setup, it takes around 40s for a maximal size images. I could reduce it to few seconds (tested, it works) at the cost of expensive hardware.

2) Pricing page?

Yes, I sell "computation" tickets, which basically help me to compensate the cost of the servers. This is also a way to thanks me if you like this app.

3) How can I help ?

If you find bugs, please report them to me. If you find natural images on which the algorithm perform poorly, you can also share the information. If you have friends who make a good usage of this app, some visibility would definitively helps. Finally, if you want to invest or make a donation, please contact me.

If you have any question, post it below and I will answer you as best as I can.</comment>


EEVblog Channel: How Much I Make on YouTube REVEALED - <AUTHOR> https://www.youtube.com/watch?v=R8qdOAEQnps <comment><USER2> This is an excellent breakdown of the blended strategy, part Patreon, part Youtube ads, part sales of merchandise on their blog.

There are three things I find pretty interesting about this;

First is that it is a job that didn't exist before the Internet. There are elements of it, and perhaps it might have been a late night television show, but really anybody can make a youtube or twitch channel these days. Whether or not anyone will watch is a completely different story.

The second thing is that this guy has 405K subscribers, you can call those 'viewers' in television lingo that is a pretty small audience (for television shows). And yet he is able to achieve an annual run rate of about $96K/year gross ($3K/month Patreon + $5K/month youtube) So while it would be crazy to try to produce a television show for that, as a one person endeavor it works out.

And the final thing was the percentage of his youtube revenue that is from RED. In his example its about 20% of his ad revenues. I would have expected it to be more although I don't know how Google computes RED revenue. I expect they would at some point adopt something like the ratings/share system that broadcast television has been using for years.</comment>


Guide to European Rail Maps and Atlasses (2013) - <AUTHOR> https://www.notechmagazine.com/2013/12/the-thomas-cook-railway-map-of-europe.html <comment><USER2> This was written in 2013, when [https://www.openrailwaymap.org](https://www.openrailwaymap.org) didn't exist.

<comment><USER3> Is openrailwaymap just a filter of which OSM features to show, or does it include data that is not in OSM?

<comment><USER4> It's just a specialized renderer for the same database. But the project cares about the data model and helps curate the data. See [https://wiki.openstreetmap.org/wiki/OpenRailwayMap](https://wiki.openstreetmap.org/wiki/OpenRailwayMap)

<comment><USER5> It's a project run by the intersection of trainspotters & map programmer nerds. Of course they care about data models & tagging and curating data. :)

</comment></comment></comment></comment><comment><USER6> There's also a map of Japan's rail system, which is a thing of obsessive beauty:

[https://travel.stackexchange.com/questions/53640/where- can-i...](https://travel.stackexchange.com/questions/53640/where-can-i-find-a- map-of-the-whole-japan-railway-system)

Unfortunately the pics of it are tiny, but as a sampler, here's what greater Tokyo looks like:

[http://ontheworldmap.com/japan/city/tokyo/tokyo-rail- map.htm...](http://ontheworldmap.com/japan/city/tokyo/tokyo-rail-map.html)

<comment><USER7> When it comes to trains in Japan Hyperdia[1] is your ultimate friend.

It's the electronic time table for all things (train) travel in Japan. I put (train) in quotes because it also displays flights if the routing is more convenient.

Searches are highly configurable and it provides not only the best routing, but also includes the prices for the available options.

[1] [http://www.hyperdia.com/en/](http://www.hyperdia.com/en/)

</comment></comment><comment><USER8> So where can I order a European rail map printed as a poster?

If I buy one of the folding maps it will be creased, naturally.

<comment><USER9> [https://www.europeanrailtimetable.eu/rail-map-of-europe- flat...](https://www.europeanrailtimetable.eu/rail-map-of-europe-flat-wall- map-393-p.asp)

Shows only current passenger railways (excluding suburban networks), not freight.

</comment></comment><comment><USER10> [https://ec.europa.eu/eurostat/web/gisco/gisco- activities/sta...](https://ec.europa.eu/eurostat/web/gisco/gisco- activities/statistical-atlas)

[http://ec.europa.eu/transport/infrastructure/tentec/tentec-p...](http://ec.europa.eu/transport/infrastructure/tentec/tentec- portal/site/index_en.htm)

[https://ec.europa.eu/maritimeaffairs/atlas_en](https://ec.europa.eu/maritimeaffairs/atlas_en)

[https://www.eea.europa.eu/data-and-maps](https://www.eea.europa.eu/data-and- maps)

</comment><comment><USER11> Not directly related, but if you want to travel by train (almost) anywhere in the world: [https://www.seat61.com](https://www.seat61.com)</comment>


The ISEE-3 Reboot Mission: a dream SDR application for Ettus Research's USRP - <AUTHOR> http://www.ettus.com/blog/2014/07/contacting-a-36-year-old-space-craft-why-not

<comment><USER2> Two things I'd like to have, an Oscar-E and a complete Ettus SDR setup. That said, I believe they discovered the propellent pressurizing system was out of gas and the probe could not execute the trajectory course correction. Sad but an excellent effort all around.

<comment><USER3> They've got a problem with the propellent system, but they think it's a clog from some nitrogen bubbles, not that it's out of hydrazine. They're hoping to fix the problem this week.

</comment></comment><comment><USER4> See also [https://news.ycombinator.com/item?id=8028773](https://news.ycombinator.com/item?id=8028773)</comment>


Android apps related to Bitcoin cryptocurrency - <AUTHOR> https://coindash.co/t/android/ <comment><USER2> You forgot the [cryptocoin portfolio tracker: coinfox.co]([http://Coinfox.co](http://Coinfox.co))

</comment><comment><USER3> The page title is edited, and also this is `A hand-picked directory of the best cryptocurrency resources.`</comment>


When Nginx becomes the bottleneck - <AUTHOR> http://www.smashcompany.com/technology/when-nginx-becomes-the-bottleneck <comment><USER2> So it was just a misconfigured NGINX setup?</comment>


A bot disguised as a human software developer fixes bugs - <AUTHOR> https://www.technologyreview.com/s/612336/a-bot-disguised-as-a-human-software-developer-fixes-bugs/ <comment><USER2> An interesting prospect, but the patches appear to consist mostly of wrapping a block of code that throws a NullPointerException in a check for null. This is non-trivial -- consider [https://github.com/aaime/geowebcache/pull/1/files](https://github.com/aaime/geowebcache/pull/1/files), where the initializer form has to be broken up and the bot needs some kind of knowledge of data dependencies to know how much code to wrap in the if-block -- but it is also help that humans already receive from machines in the form of lints.

Much more interesting is this: [https://github.com/eclipse/ditto/pull/151/files](https://github.com/eclipse/ditto/pull/151/files). How did it know to use this.isConsuming()?

Here's the list of PRs it made: [https://github.com/Spirals- Team/repairnator/issues/758](https://github.com/Spirals- Team/repairnator/issues/758)

I want to take issue with a quote from the paper:

> There is one more aspect to consider. It has been shown that human engineers > do not accept contributions from bots as easily as contributions from other > humans, even if they are strictly identical [5]. The reason is that humans > tend to have a priori biases against machines, and are more tolerant to > errors if the contribution comes from a human peer.

Even if a machine and a human submit the exact same patch, the human's carries the implicit promise that it was the result of a (more or less :) intelligent process. The human actually _thought_ about it and came to the conclusion that not only did it make the build pass but that it was, taking into account as much context as might be necessary, the right patch to make. If you review a machine's patch, you are obliged to perform the whole intelligent evaluation of whether it is the right patch yourself, which is almost never easier than simply writing the patch yourself.

<comment><USER3> Wait, how is the code in the first link passing definite assignment analysis checks for `params`? The Java compiler is intentionally very restrictive about this (even if by means of more elaborate analysis definite assignment could be proven).

<comment><USER3> My hunch is that it doesn't, so the fix was actually wrong.

The file here has the necessary initialization for params for this to work: [https://github.com/GeoWebCache/geowebcache/blob/master/geowe...](https://github.com/GeoWebCache/geowebcache/blob/master/geowebcache/core/src/main/java/org/geowebcache/layer/wms/WMSHttpHelper.java)</comment></comment></comment>


An x86 Assembler in 256 LOC (2017) - <AUTHOR> http://blog.jeff.over.bz/assembly/compilers/jit/2017/01/15/x86-assembler.html <comment><USER2> Although not as regular as some RISCs, x86 is still quite regular which makes it relatively easy to write an assembler for; the main opcode space is octal- structured ([http://www.dabo.de/ccc99/www.camp.ccc.de/radio/help.txt](http://www.dabo.de/ccc99/www.camp.ccc.de/radio/help.txt)) and nearly 1/4 of the single-byte opcodes, 00-3F (0xx in octal) are where all the frequently-used ALU ops (reg-reg, reg-mem, mem-reg) reside. The ability to easily generate vast swaths of the opcode space from a compact description is what makes a table-driven (dis)assembler easy to write.

Related, an x86 (self-)disassembling demo in 256 _bytes_ : [http://www.pouet.net/prod.php?which=16930](http://www.pouet.net/prod.php?which=16930)

</comment><comment><USER3> (2017)

It's probably worth noting that this is only a runtime assembler, i.e. it does no parsing. It also doesn't support all of the addressing modes for the instructions that it does support. Nonetheless it does show that assemblers aren't that hard. Adding support for the various addressing modes and amd64 does complicate things but not too badly. Moving forward from this you'd probably want a better scheme for handling the various "extra" bytes (SIB, REX, etc.).

<comment><USER4> Never having written an assembler for a proper ISA, I was under the impression that assemblers for real CPUs are extremely simple until you start writing them.

<comment><USER5> Assemblers are one of those things that's very simple for the simple cases, and then when you add more complex cases you start to think it's actually very hard until you go back and add the proper abstractions, which would have seemed needlessly complicated for the simple cases.

So people doing something trivial thinks they're easy (like this example), people trying to do a bit more think they're really hard, and people doing an entire assembler think they're easy again.

<comment><USER6> What are the proper abstractions necessary?

<comment><USER5> Most simple cases of instructions seem straightforward to just go ahead and emit the bytes for. Then when you start to use more addressing modes you realise it gets to be a lot of code and it turns out there's a common pattern for everything.

Here's a concrete example from an industrial assembler.

Almost every simple instruction boils down this helper method which is parameterised by a bunch of flags and can then deal with all of them.

[https://github.com/oracle/graal/blob/f3a3576493f87abdea1045d...](https://github.com/oracle/graal/blob/f3a3576493f87abdea1045d6156a633e332550dd/compiler/src/org.graalvm.compiler.asm.amd64/src/org/graalvm/compiler/asm/amd64/AMD64BaseAssembler.java#L549)

Even that looks complicated! But writing this per instruction (the simple case) would be insanely complicated.

</comment></comment></comment></comment></comment><comment><USER7> Here's my x86 assembler in 250 lines of Clojure code that uses Clojure data structures as its input: [https://github.com/nathell/lithium/blob/master/src/lithium/a...](https://github.com/nathell/lithium/blob/master/src/lithium/assembler.clj)

And a sample program: [https://github.com/nathell/lithium/blob/master/examples/stri...](https://github.com/nathell/lithium/blob/master/examples/stripes.li.clj)

<comment><USER8> That's super cool. I will definitely check this out. I live with a lot of pentest folk and the traditional toolset with msfvenom and stuff doesn't teach you to be creative or self-sufficient, so a lot is left to be desired; this is an interesting opportunity to build a cooler tool for mediated shellcode building!

</comment></comment><comment><USER9> Do read out the follow-up post on testing the code:

[http://blog.jeff.over.bz/assembly/2017/02/15/finding- machine...](http://blog.jeff.over.bz/assembly/2017/02/15/finding-machine- language-encodings.html)

And then how to execute the binary which is output from the assembler:

[http://blog.jeff.over.bz/assembly/compilers/jit/2017/03/30/e...](http://blog.jeff.over.bz/assembly/compilers/jit/2017/03/30/executing- dynamically-generated-machine-code.html)

</comment><comment><USER10> As mentioned in other comments, maybe worth to note that it's an assembler in a library form, i.e. without code for a parser. But then, looking at it in another way, it's a clever reuse of the C compiler's parser!

Now, in a something of a "shameless plug", incidentally I took a very similar approach[1] recently, going for a "library form" too when writing an experimental assembler for Dalvik (i.e. Android VM) bytecode. Not having to write a parser helped me to iterate/prototype/hack faster!

[1]: [https://github.com/akavel/dali/blob/d79cec81293abc5f3a87f4d8...](https://github.com/akavel/dali/blob/d79cec81293abc5f3a87f4d879a225991395b62b/src/dali.nim#L382-L422)

</comment><comment><USER11> Since we're discussing novel syntaxes for x86, here's one I've been working on that should soon be self-hosting and come in under 2kLoC source and under 30KB executable (excluding tests): [https://github.com/akkartik/mu/blob/master/subx/Readme.md](https://github.com/akkartik/mu/blob/master/subx/Readme.md)

Stats: [https://raw.githubusercontent.com/akkartik/mu/master/subx/st...](https://raw.githubusercontent.com/akkartik/mu/master/subx/stats.md)

</comment><comment><USER12> This is typically used as a jit, not assembler. My little jit looks similar. A jit doesn't need to encode all ops, only a few. For jumps you want to abstract named labels, and you want to patch in ip's you dont know yet.

</comment><comment><USER13> The real question is: can you re-write it in assembly and make it self- hosting?

<comment><USER14> Good question - give it a shot

</comment></comment><comment><USER15> There should be a contest between assembly languages where they're rated by the simplicity and shortness of their respective assembler / disassembler code.

</comment><comment><USER16> I wonder if it would be possible to train an assembler in a recurrent neural network.

<comment><USER17> What do you mean?

<comment><USER16> I mean an assembler like this decompiler:

[https://www.cs.unm.edu/~eschulte/data/katz- saner-2018-prepri...](https://www.cs.unm.edu/~eschulte/data/katz- saner-2018-preprint.pdf)

Since all these compilers/decompilers are transforming one language into another, I cannot stop thinking if they could be fit into some nonlinear networks, or tensor-flow-as-a-(de)compiler.

</comment></comment></comment><comment><USER18> HN never stop amaze me. Good works!!</comment>


Ask HN: Programming jobs for the mathematically inclined. - <AUTHOR> I just finished an undergraduate degree in mathematics. I can program well and have work experience in web development (...ugh) and scientific/numerical computing. I'm looking for some direction:<p>* What sort of jobs allow me to combine math and programming? Where are they located? (I'm in the US)<p>* Should I pursue a graduate degree before I try to enter industry? If so, is it okay to continue in pure mathematics, or should I move toward applied mathematics, statistics, or computer science instead? <comment><USER2> If you want to do any sort of scientific programming you will need to obtain a PhD and then land a job at a research lab, university, or boutique software company. These jobs are all over but you will probably have to fight hard to get one and then fight even harder to keep it and get your project funded. Even scientists in top national laboratories probably constantly worry about funding.

An alternate route is to start a company around a new software product. If you manage to find a scientific programming job at an existing company and that job is not protected from the non-technical business in some way, your project will be in constant jeopardy.

As for field, you will have to determine what type of work you want to do. I would suggest reading some academic papers on the type of work you would like to do and then look at the path that the authors followed. You can also contact the authors and express an interest. They will probably point you towards an exploitative grad student job making 15-20k / year, but you will probably get to do some sort of scientific programming.

<comment><USER3> This is the best description I've read here so far. Scientific programming is ultimately a "niche" task, and there's a limited number of areas where this work happens (startup hubs, sure, but otherwise its research institutions, financial companies, or bust).

The best analogy I can think of is a tenure-track professorship. As a scientific programmer you are a complimentary good to advanced research; please remember that advanced research only happens in a few places across the world.

</comment></comment><comment><USER4> Don't get a grad degree just yet. Try a Data Engineering job (or also a software engineering job at a data-centric startup). You'd use a lot of algorithms, machine learning, and math to do all kinds of fun stuff with data. The new position is called 'Data Scientist' these days - I would use LinkedIn / Indeed.com to look for jobs with the title 'Data Scientist'

Here are some off the top of my head that are looking for mathy programmers:

Startups: Infochimps Lookout Mobile Factual Zillabyte Chart.io KhanAcademy

Corps: LinkedIn Google etc, you should be able to at least land interviews at the big tech corps, but I"ll guarantee you'll have a lot more fun at startups

I think you should get some industry experience before going off into a pure math PhD / grad degree. You could also consider doing a Master's in Statistics or Economics, both are which are super appealing these days - not sure how much you like applied math over pure math though!

<comment><USER3> I agreed with this post up to the point where you recommend a Masters in either statistics or economics. As a former econ student/researcher, I can say that you _should not get a MS in economics or statistics if you want to do scientific computing!_

1\. Both are too domain-specific, and they usually lack the technical (coding) rigor you want if you're dropping lots of $$ on a grad degree. There are exceptions -- the statsmodels.py team, for example, includes an econ guy from American University -- but they're exceptions, not rules.

2\. At best, either degree will get you experience in MATLAB/SAS/Stata, which are used for data analysis. This is not scientific computing, where you'll have to convert slow models to C/C++/Java etc.

Instead, if you're set on coding I would suggest a Masters in applied math or a Masters in CS with a focus on topics related to stats/ML and large-scale analysis (Bayesian inference and graphical models, sure, but don't ignore classes in numerical methods or distributed computing).

</comment></comment><comment><USER5> There are all sorts of overlaps with math and programming that take place in industry but usually they involve other disciplines as well (physics, chemical engineering, biology, materials science, electrical engineering, the list goes on).

The old adage about advanced degrees earning more money still carries some truth; I'd imagine this is especially true for a B.S. Math. Unless you want to be a math professor, I'd consider a lateral to another field as you go for a M.S. or Ph.D., even if it requires a couple of extra years to get the formative coursework in.

I think all of us can appreciate that any useful software product will benefit not only from good programming skills but difficult math problems that crop up unexpectedly.

Path A: Graduate school, troll job sites for a steady 9-5 someplace far away from where you are now.

Path B: Troll job sites for a steady 9-5 someplace far away from where you are now.

Path C: Leverage your ability to live like a student and start your own math- intensive software startup.

There is no right answer.

</comment><comment><USER6> Check out the Research Triangle Institute, in Durham, NC:

<http://www.rti.org/></comment>


Genetic secrets of the healthy elderly unveiled - <AUTHOR> http://www.nature.com/news/genetic-secrets-of-the-healthy-elderly-unveiled-1.19794 <comment><AUTHOR> Cited Journal "Cell" publication here : [http://www.cell.com/cell/fulltext/S0092-8674%2816%2930278-1?...](http://www.cell.com/cell/fulltext/S0092-8674%2816%2930278-1?rss=yes)

Whole Genome Sequencing of a Healthy Aging Cohort.

Key quotes:

 _" The top region is a large linkage block at MHC locus 6p22.1 ... This region contains a handful of SNPs that have been replicated and confidently associated with cognitive traits, including rs1056667, associated with cognitive performance"_

 _" The second sub-significant region included lead SNP rs156033 (p value = 1.7 × 10−6), in the 5q31.1 region, which contains SLC22A4 and multiple variants ... strongly associated with carnitine and carnitine-related metabolite levels"_

 _" third sub-significant region included lead SNP rs10209741 (p value = 7.0 × 10−6) in the 2q36.1 region containing KCNE4 and nearby (11.4 kb) rs895767, which was previously associated with cognitive decline"_

notes:

MHC = major histocompatibility complex, a set of cell surface proteins essential for acquired immune system to recognize foreign molecules in vertebrates.

carnitine = eukaryote specific nutrient involved in lipid metabolism

KCNE4 = a voltage-gated potassium (Kv) channel

SLC22A4 = integral plasma membrane protein , ergothioneine transporter. Foods found to contain ergothioneine include liver, kidney, black beans, kidney bean and oat bran [ wikipedia ].</comment>


It's 2011... how wide should my websites be? - <AUTHOR>

I build mostly blogs and news sites mostly on wordpress cms.  nytimes is 970px, economist is 991px huffpo is 971px ... <comment><USER2> You should check out Responsive layout. Nowadays with both desktop and mobile devices consuming websites, there's a need to code for different environments and display resolutions. Read more there: <http://maki.bo.lt/responsive- layout>

</comment><comment><USER3> If you are designing for a fixed width, you're doing it wrong. Make your design scale to the browser window.

<comment><AUTHOR> Um... I'm on a 27 inch monitor so I disagree with your suggestion.

Mobile devices are handled using the viewport meta tag.

</comment></comment><comment><USER4> Same width as the user's browser window.

<comment><USER5> ...with the caveat that sometimes that's too wide: use max-width in your css.</comment></comment>


Danger of Calling Out Cyberattackers - <AUTHOR> https://www.bloomberg.com/opinion/articles/2019-01-11/mondelez-lawsuit-shows-the-dangers-of-attributing-cyberattacks <comment><AUTHOR> Basically, what happened was:

      Company A bought cybersecurity insurance from company B
      Company A suffers a breach
      "Official statement from the White House called the malware "part of the Kremlin's ongoing effort to destabilize Ukraine"
      Company B refuses to pay, citing exclusion due to "hostile or warlike action in time of peace or war"
      Company A sues company B</comment>


CIA's Latest Layer: An Onion Site - <AUTHOR> https://www.cia.gov/news-information/press-releases-statements/2019-press-releases-statements/ciagov-over-tor.html <comment><USER2> It could be argued that all of Tor is a CIA honeypot. After all, they paid to develop it.

<comment><USER3> The Tor network is not and has never been designed to thwart a global network panopticon, as most (all?) low-latency mixer networks aren't. This is stated clearly in the Tor design spec. Choosing to frame this negatively (as a "honeypot") is a disingenuous characterization that only spreads FUD.</comment></comment>


Sabbatical - what it's like not to work - <AUTHOR> http://www.neugierig.org/software/blog/2012/01/sabbatical.html

<comment><USER2> Thanks, I enjoyed reading that article. I often wonder myself what I would or would not accomplish during a sabbatical.

The part about learning a new language struck a chord with me as I'm currently learning Italian and am finding it all too easy to declare there is no time.

I now know I have to get my arse into shape and become fluent in Italian, thanks for sharing.

</comment><comment><USER3> 6 weeks "sabbatical" is known as "paid yearly vacation" in civilized countries. You are not supposed to "accomplish" anything.</comment>