Oldest and Fatherless: The Terrible Secret of Tom Bombadil - <AUTHOR> http://km-515.livejournal.com/1042.html <comment><AUTHOR> I seem to be in the small minority but I always found Tom Bombadil to be one of the most curious characters in the LoTR, it's a pity he's usually edited out in adaptations. And he's no transient character either, Tolkien later wrote poems about him and he's also mentioned in _The Return of the King_.

I don't quite buy the explanation given in this post, although it was an interesting read. I think Bombadil is beyond good and evil, he just _is_. From [http://scifi.stackexchange.com/questions/1586/who-or-what- wa...](http://scifi.stackexchange.com/questions/1586/who-or-what-was-tom- bombadil):

"And even in a mythical Age there must be some enigmas, as there always are. Tom Bombadil is one (intentionally)."

The Letters of J.R.R. Tolkien, No 144, dated 1954

<comment><USER2> Agreed 100%. He's an aspect of nature in physical form, with all the danger and ambiguity that nature brings.

<comment><USER3> He is _underneath_ nature, primal and original. The ring was nothing to him; it changed things in such a trivial way, to his understanding, as to be irrelevant.

</comment></comment></comment><comment><USER4> This is a _wonderful_ reinterpretation of the existing "facts" in Middle- Earth, and I'm very glad that it's trending on Hacker News some time _after_ I used it in an RPG, to great effect.

There are rather a lot of hidden depths one can mine out of Middle-Earth, often in directions its creator would probably not have approved of.

Along similar lines, for example, if you cross-reference the location of _Nan Dungortheb_ , the Valley of Dreadful Death which is the last known location of Ungoliant, with the Third-Age map of Middle Earth, you discover that it's just a short way off the coast of the Western edge of Middle-Earth, more or less in a direct line between the Grey Havens and Valinor.

Which does present an alternative, less happy hypothesis about what happens to all the elves after they set sail for the Western Shore, and in turn begs the question of why exactly they're being compelled to do so...

<comment><USER5> > more or less in a direct line between the Grey Havens and Valinor.

Elven ships go in a straight line while the sea follows the curvature of Arda.

</comment></comment><comment><USER6> There is one major, major problem with this interpretation. He states over and over again that no hobbit has ever seen Tom Bombadil. But that's not true. At least one other hobbit has been described as knowing Bombadil--that is Farmer Maggot (the one Frodo used to steal mushrooms from). Let me quote from the story: "[Bombadil] made no secret that he owed his recent knowledge largely to Farmer Maggot, whom he seemed to regard as a person of more importance than they had imagined. 'There's earth under his old feet, and clay on his finger; wisdom in his bones, and both his eyses are open'" said Tom.

Later, it is mentioned that Bombadil already had messages from Gildor that Frodo & co were going through the forest.

I think the reason that Bombadil his hardly ever mentioned is the taboo which Hobbits have of going on adventures. If they talked about their adventures in the forest, meeting with magical folk like Bombadil, they would lose respectability.

<comment><USER7> This is addressed in the article:

"Now, in his conversation with Frodo, Bombadil implies (but avoids directly stating) that he had heard of their coming from Farmer Maggot and from Gildor's elves (both of whom Frodo had recently described). But that also makes no sense. Maggot lives west of the Brandywine, remained there when Frodo left, and never even knew that Frodo would be leaving the Shire. And if Elrond knows nothing of Bombadil, how can he be a friend of Gildor's?

What do we know about Tom Bombadil? He lies."

The only word we have is Bombadil's. Not that I buy this interpretation, but your complaint is addressed there.

<comment><USER8> But, the Hobbits did have rhymes about Tom Bombadil, so someone among the Hobbits knew about him. Not that it really detracts from the article, he was just having a bit of fun.

</comment></comment></comment><comment><USER9> "What do we know about Tom Bombadil? He lies."

The author fundamentally misunderstands Tom Bombadil, both in terms of where he fits (or doesn't) into Tolkien's mythology, and in terms of Tom's _literary_ purpose.

Tolkien _deliberately_ made Tom an enigma: "And even in a mythical Age there must be some enigmas, as there always are. Tom Bombadil is one (intentionally)" ( _The Letters of J.R.R. Tolkien_ , No 144, dated 1954).

The following are three suggested articles that are far more intelligent, subtle, well-researched, and balanced in comparison to km-515's rant.

Mark Fischer, _The Riddle of Tom Bombadil_ : [http://www.glyphweb.com/arda/t/tombombadil.html](http://www.glyphweb.com/arda/t/tombombadil.html)

Steuard Jensen, _What is Tom Bombadil?_ : [http://tolkien.slimy.com/essays/Bombadil.html](http://tolkien.slimy.com/essays/Bombadil.html)

Gene Hargrove, _Who is Tom Bombadil?_ : [http://www.cas.unt.edu/~hargrove/bombadil.html](http://www.cas.unt.edu/~hargrove/bombadil.html)

<comment><USER7> I get the impression that this is a _purposeful_ misunderstanding, mostly for kicks and giggles. Maybe I'm wrong? But it certainly seemed tongue in cheek to me, aimed at bringing a fresh perspective to a work that's already been picked over a billion times by fans.

<comment><USER10> That might because the author wrote that:

> Do I think that Tolkien planned things in this way? Not at all, but I find > it an interesting speculation.

> To speculate further and more wildly:

</comment></comment></comment><comment><USER11> Part of me loves speculation like this, but the other part of me wonders if the speculators are aware that Tolkien (and authors in general) is/are "just another imperfect human".

Did Tolkien think of any of this? It's his world. Speculators creating their own fantasy around it aren't really speculating, but making up their own version.

It's like the "nerd at star trek convention" finding plot holes. The reality is a staff room filled with writers working under deadlines and restrictions. However there seem to be people who want/need (and speculate) that every possible detail can/should be nailed down into something that makes absolute sense.

Maybe someone just wasn't very creative one day, or wanted to move onto a bigger plot point.

Anyway, this is just one dude's (me) point of view, maybe the speculators are more imaginative and better at life, and I'm just a cynical old man.

</comment><comment><USER12> This is the "Squall is dead" of LotR fan theories. Tom Bombadil exists outside of the struggles for control Middle-earth because he, like the world, is far older and more inscrutable than any of the persons or races contending in those struggles.

Alternatively he is the spirit of "Just repeat to yourself it's just a story, I should really just relax".

</comment><comment><USER13> I thought Tom Bombadil was one of the more interesting characters and was disappointed with his absence in the movie adaptations as he always seemed central to the theme; the spirit of a disappearing time and age.

But then again blockbuster movies rarely have time for such symbolic exposition.

If you like Tom as a character, you might like the book all about him: [http://www.amazon.com/Adventures-Tom-Bombadil-J-Tolkien- eboo...](http://www.amazon.com/Adventures-Tom-Bombadil-J-Tolkien- ebook/dp/B00KA104ZA/ref=sr_1_1?ie=UTF8&qid=1438379388&sr=8-1&keywords=tom+bombadil)

It's quite amusing.

</comment><comment><USER14> Is he that unpopular? Me and most of my friends like him, and we're disappointed that he got left out of the movies.

<comment><USER9> The author of the article, km-515, is the first person I've _ever_ heard of who does _not_ like Tom Bombadil.

<comment><USER15> For a competing anecdote, most of my friends who've read the books say they ended up skimming most of the Bombadil section and found it quite boring.

I suspect Bombadil is disproportionately popular among the people who like to critique what they read compared to the general public.

<comment><USER16> For me it wasn't so much him as all of the songs IIRC. Once I started just skimming the songs/poetry he became much less annoying (I'm horrible at deciphering meter and it just trips me up). The first words out of my mouth upon seeing the first film was "they left out Bombadil".

Had been looking forward to hearing one of those songs.

</comment></comment></comment></comment><comment><USER17> Bombadil is possibly my favorite enigma in all of Tolkien's work. You can dig all you want, but there is nothing, no lore. My own interpretation is that he is not part of the music of the children, but somehow an incarnation of the natural world that was created along side it. Tolkien focuses very much on how the music determines course of the history of middle earth, but Tom seems to be a kind of reminder that nature doesn't really care about us and will continue long after we are gone (unless we destroy it, but Tolkien's experience of the 20th century made human destruction of nature of secondary concern behind our destruction of our fellow man). Of course, the liar interpretation is always possible, but seems to undermine the importance of what the character represents.

</comment><comment><USER18> I've always dreamed of a movie featuring Samuel L. Jackson as Tom Bombadil.

<comment> D-Coder "Elvish, motherfucker! Do you speak it?"

</comment></comment><comment><USER19> are the entwives the trees that are under his control? is that what happened to them?

</comment><comment><USER20> Wow, live journal is still out there. I am impressed.

</comment><comment><USER21> Very much enjoyed that analysis. Shows there is still much to contemplate in LoTR.

<comment><USER22> If you can get a hold of it, I absolutely love Ursula K. Le Guin's writing about Lord of the Rings in The Wave in the Mind, one of her nonfiction collections. Lord of the Rings has true depth and longevity.

</comment></comment><comment><USER23> My friends and I always considered Tom Bombadil to be Tolkien's interpretation of the Christian God, as he was a Christian himself it isn't that far fetched.

<comment><USER24> I agree that Melkor's narrative is essentially the same as Lucifer's: God created the world, and fathered a quantity of powerful and benevolent beings to watch over it... until one of them goes rogue, eventually becoming their Evil counterpart. But if Tom Bombadil pre-dates even the Valar, then he doesn't really fit into that Biblical narrative. He's definitely not "God". There already is a God (Eru/Iluvatar), and he's utterly absent from world affairs after the Creation.

We all "know" that Lucifer was an angel who disagreed with God (or some such), who then banished him from Heaven... But do we really know that? The Bible doesn't actually say much on the topic. All we know is that he was once in Heaven, and was cast out. We don't know if Lucifer was born there (as opposed to merely visiting) or if he was even an angel at all!

Most of us believe the Serpent and Satan to be one and the same... but the Bible never says this. It's entirely possible that they are two separate entities, with different explanations. If Melkor is the Serpent (who corrupted the Elves), then perhaps Bombadil is the _real_ original evil. Possibly even the one who corrupted Melkor in the first place?

The Bible, much like Tolkein's mythos, has many inconsistencies + leaves a TON to speculation. That's half the fun (if not most of it) :-P

</comment></comment><comment><USER25> I'm just happy that other people are as fascinated by Tom Bombadil as I've always been.</comment>


Hacker News's big redesign - <AUTHOR> http://imgur.com/T1i1VC9 <comment><USER2> The black bar at the top is a mark of respect when someone important dies in the community - Gene Amdahl has died ([https://news.ycombinator.com/item?id=10557793](https://news.ycombinator.com/item?id=10557793)).</comment>


The easiest way to think of what is Ethereum, is as a programmable Bitcoin - <AUTHOR> https://www.ethos.io/what-is-ethereum/ <comment><USER2> Programmability (Turing completeness) was left out of Bitcoin on purpose due to the security risks it creates. You can find a couple of anaylses on Solidity, the Ethereum language, which show that it is anything but "solid."</comment>


The evolution of a website design - <AUTHOR> http://thinkvitamin.com/features/the-evolution-of-a-website-design/

<comment><USER2> Personally, I like clean, minimal designs. I'd have been happy with anything between 2-4. Stage 12 (or finished) is completely over-the-top for my taste. Tags are hard to read (red is too dark) and don't tell me anything about the depth or breadth of discussions that will be on these topics. Devdays font is coming off too strong in the final one. In Stage 4, StackOverflow was clearly visible and Devdays seemed pretty significant too. I was instantly able to make out that it was a 5-city dev conference by the folks from StackOverflow. In Stage 4, he could have highlighted some of the key words from the description to give more value to specific 'tags' and put simple links for buy-ticket, speakers etc. As it stands, it's very high on graphics, definitely very impactful, but not too clean or simple. However, that being said, it is still a very good design.

<comment><USER3> The more I write code the more I agree your sentiments, but when I start to reminisce why I got into web-design in the first place it had nothing to do with the web but more to do with the user's interface; thefwa's most influential [flash] site of all time is Eric Jordan's 3rd release of <http://2advanced.com> available at <http://v3.2a-archive.com/>. It is anything but minimal but it remains clean, intuitive to use, and downright awe-inspiring.

IMO, this is an example where a complex view [along with a modular sense of control] can work for busier interfaces.

[added_edit] I think your Stage 4 criticism holds true and for a very good reason, which is that most web-designers don't know how to control or present a view as something the_developer/the_user can rationalize and digest in visual terms according to the model of which it is representing. Generally, the view doesn't need to obsess so much in how the model _looks_ but I think why 2advanced stands out in this regard is how he is able to encapsulate control according to the view and present a modular sense of what information means according to the spaces it occupies.

<comment><USER4> Hell is flash web pages. I go through tens of advertising agency websites a day and it's all that crap as far as the eye could see. I have to leave click- directions for people to get them to a particular "form", because the bloody thing has no sense of URLs.

It's OK for a design studio's website to be over the top, because they're trying to wow you. But outside portfolios and games, please just give me a vanilla, responsive websites.

<comment><USER3> You are right, web-site's _design_ and a web-site's _user interface_ are not the same. If anything the UI is just 'a space where stuff can happen' the design should be responsible for handling whatever is happening.

As long as HTTP reigns supreme as a transfer protocol, so will formatting source files as text...

</comment></comment></comment></comment><comment><USER5> "I'm not feeling that good about the design at the moment as it's shit," made me laugh.

Also it's always heartening to see even great designers like Mike have to scrabble and grab for inspiration.

<comment><USER6> I've found there are generally four stages to my own designs:

      1. This is shit
      2. Okay, I'm getting somewhere
      3. This is pretty good!
      4. This is shit

I don't know why, but if I look at a design for too long I end up hating it, even if I liked it initially. So I try to get away from my work quickly if at all possible.

<comment><USER7> As an animator, this happens to me often - even if the stuff is good!

After you view something for hours on end, your mind become numb to the nuances that make it great. On a tight deadline there isn't always the luxury to actually get away from it. My solution is to look at some work of other animators that inspire me - but only for a couple of minutes - then go back to my animation and prepare myself for the "Single Viewing Moment of Truth". I get one or two truly objective viewings of it until my mind slips back into the abyss, so I keep my pen in hand ready to scribble notes about what I see.

</comment></comment></comment><comment><USER8> So does this guy design the covers for Wired magazine? Because that's what it looks like.

</comment><comment><USER9> I was just looking at this and one of my Japanese-speaking colleagues walked up and said "Whoa, nice site design. Lots of impact. What the hell is it for?"

I don't think I can improve on that comment.

</comment><comment><AUTHOR> The way he worked through the design really resonated with me, especially when he would break away from his original only to come back to it later on.

</comment><comment><USER10> I liked the second last design more. Christmas at StackOverflow!</comment>


Understating the Benefits of Avoiding Low-Probability Disastrous Consequences - <AUTHOR> http://www.ritholtz.com/blog/2010/06/understating-the-benefits-of-avoiding-low-probability-disastrous-consequences/ <comment><AUTHOR> Posted mostly for the robust debate in the comments.</comment>


jQuery plugins for your development - <AUTHOR> http://www.reynoldsftw.com/2009/02/10-quick-win-jquery-plugins/

<comment><USER2> May I also suggest...

File Tree <http://abeautifulsite.net/notebook.php?article=58>

Autocomplete [http://bassistance.de/jquery-plugins/jquery-plugin- autocompl...](http://bassistance.de/jquery-plugins/jquery-plugin- autocomplete/)

uEditor <http://plugins.jquery.com/project/uEditor>

Table Sorter <http://tablesorter.com/docs/>

<comment><USER3> Those are all excellent additions. The file tree plug-in is especially impressive. How well does the file tree work in practice with a large number of files?

<comment><USER2> It's actually pretty fast because it only returns HTML snippet for the current layer. To my knowledge, it doesn't do recursive digging.

</comment></comment></comment><comment><USER4> jQuery Validation is one of the plugins I use most often.

[http://bassistance.de/jquery-plugins/jquery-plugin- validatio...](http://bassistance.de/jquery-plugins/jquery-plugin-validation/)

</comment><comment><USER5> awesome. i was looking for an easy way to use Google Charts api. didnt know there's a jquery plugin for that!

</comment><comment><USER6> the date plugin is really a time-saver.</comment>


Sprout: The Online WYSIWYG Editor for Flash - <AUTHOR> http://www.techcrunch.com/2008/01/29/sprout-the-online-wysiwyg-editor-for-flash/ <comment><USER2> Tried it out, quite useful. Looks like I'll be able to make good on my promise to never actually learn flash.</comment>


Executive Leaves Apple After iPhone Antenna Troubles - <AUTHOR> http://www.nytimes.com/2010/08/08/technology/08apple.html

<comment><USER2> I obviously don't know what's going behind the scenes, but I question the wisdom of ousting someone who makes such a mistake.

Constantly pushing the technology/design envelope as Apple does seems prone to the occasional snafu. Having engineers and managers on board that have personally experienced such problems and solved/triaged/otherwise dealt with them seems valuable. Firing them runs the risk of creating a chilling effect toward risk taking, as well as lobotomizing some valuable experience from the company.

Now, maybe the executive was let go because he knew about the antenna problem beforehand, misrepresented its severity to Jobs, and launched the product anyway, in which case, yeah let him go. I recall some speculation that Apple knew about the problem before hand.

But for honest mistakes, with no deception involved, that hurt in the short term but are solvable and no more than a blip in the long term, maybe that's not so wise.

Thoughts?

<comment><USER3> Your theory makes sense, but if this is true, he _fucked up the iPhone_ and man, even if letting him stay would create a better executive, increase value to the entire company, etc., I just flat can't see Jobs letting him stay in any manner at all.

<comment><USER4> That sort of thinking is really stupid, and much as I dislike Apple I do believe their management is smarter than that.

<comment><USER5> I believe it's called 'accountability'.

</comment></comment></comment></comment><comment><USER6> This may signal that return rates for iPhone 4 have exceeded expectations and that iPhone 5 development will have to be accelerated. I can't see this happening if the antenna situation hadn't had a significant financial impact as manifestation of customer dissatisfaction.

That's unfortunate because many of us are awaiting the latest OSX iteration, and Apple is a company that doesn't really focus on more than one major product release at a time, based on personnel limitations and so on.

<comment><USER7> The two people that I know that upgraded (from G and GS) both say that overall reception is better than before and they love their phones. We're in a hilly area. The phones are still sold out in many places, I can't believe there is any significant financial hit over this.

Certainly any revisions to later production and next model antenna design would have no impact on the timetable of whatever OS X and iOS projects are in the works. If anything siphons talent within Apple, it'd probably be those continuing to improve iOS for iPad in particular. Although the iPad is doing extremely well, being so new they're no doubt working very hard to make things better yet. Apple is working hard on many fronts. Their projects are planned, so there's no reason to expect any significant unforeseen migration of engineers between projects.

Realistically, the biggest thing that drives some people away from the iPhone is AT&T. (on a personal level it is about general dislike of the company not any actual service problem, it's similar to how some have grown to feel about Microsoft. I had the feeling even before the iPhone came out) If Apple can expand to another U.S. carrier without a significant loss due to changed AT&T terms, we could see a real change in the financial picture... more growth.

The comment about "many of us are awaiting the latest OSX iteration" puzzles me a bit. While I'm sure Apple will add some cool new things in the future, without knowing what they are can you really be chomping at the bit? Apple certainly does work on development of many things at one time. Release timing is determined by many factors beyond engineering.

As far as hardware updates go, I think more people are interested in watching Mac hardware iterations as improved Intel chips come out. But for the bulk of consumers the existing chips are plenty powerful. I'd probably most like to see third parties (including open source projects) make more use of the excellent support for using multiple cores and GPUs in the OS. In particular I'm thinking of VLC and ffmpeg (which is the basis for many video utilities).

<comment><USER8> You can add a 3rd person to your analysis. I've had the iPhone 2G then the 3GS and now the 4 and the 4 has the best signal of the 3 by far.

In my experience all the cell phone companies in the US suck. Go to any of their message boards and you'll see the same complaints over and over. The nature of Apple tends to draw a lot of hype from both sides and that certainly spills over to AT&T. Personally, I had zero problems with AT&T when I lived in the south east. When I moved to Denver I just happened to move into a dead zone and would lose calls constantly. I used the mark the spot app and complained a few times and they apparently did something on their end to the point where I can't remember the last time I dropped a call now.

</comment></comment></comment><comment><AUTHOR> From Gruber's comments in <http://daringfireball.net/linked/2010/08/07/papermaster> , it appears like some folks at Apple are spreading the word that Papermaster was fired and that he was responsible for the problems.

It is unclear whether Papermaster will respond to the rumors or whether he'll ignore them.

</comment><comment><USER9> Maybe the antenna issue played some role but keep in mind he was an IBM old timer (26 years) coming into a _very_ different company. Imagine what his first day was like? I'm not sure it was a good fit. So there may be a lot more to this than the obvious knee jerk reaction of trying to connect it to the last notable event in our minds. With all the different people involved in launching the iPhone including Jobs himself it just seems unlikely to me they'd pick this guy to walk the plank for it. If he wasn't meshing with the culture before all this it could have been enough to push him over the edge.

</comment><comment><USER10> "Reached on his cellphone, Mr. Papermaster declined to comment." - so now we know he already got a job at Nokia.

<comment><USER11> Haha, I was going to make the same comment. However, for the HN audience, I wasn't going to add any commentary. The comment, in its entirety, would have been:

 _Reached on his cellphone, Mr. Papermaster declined to comment._

</comment></comment><comment><USER12> He did make a comment, however the way he was holding his phone dropped the call.

</comment><comment><USER13> We know very little about the design process that led to the iPhone 4 antenna. It's very hard to guess how much blame, if any, Papermaster has on the design flaw and where, in the continuum between "he was fired for covering his ass" or "he decided he could not work with the kind of external interference in the design by Ive or Jobs that caused the problem", this decision happened.

</comment><comment><USER14> Jobs really spend a large amount of time on the Antenna during launch. And he ended up looking pretty bad, and someone must have been responsible for making him think he could go ahead and talk about in during launch. If he had known about these issues I am sure he would never have dedicated a full 5 minutes on this 'magical antenna design'. Perhaps he never said anything about the antenna, than the reports might have been different. Jobs himself put the this under the microscope.

</comment><comment><USER15> I suspect Apple never caught this call dropping issue due to the fact that everyone who had one of these new 4G iPhones was required to keep it in a case when they were field testing them. Wasn't the phone that Gizmodo got their hands on in a big case that made it look like a 3GS? How can anyone but the people who insist on this secrecy be responsible for the fact that the field testing seemed like everything was working fine?

<comment><USER16> This is a common misunderstanding. In fact, Apple showed members of the press specially-equipped vans that they use to systematically test reception in the field under a variety of scenarios, in addition to the dozen or so anechoic black rooms they have indoors. [1]

[1] [http://www.engadget.com/2010/07/16/inside-apples-black- lab-w...](http://www.engadget.com/2010/07/16/inside-apples-black-lab-wireless- testing-facilities/) (among others)

<comment><USER15> Simulated and real world are two different ball games. In the real world tests with sh- er um crappy AT&T signal strength, they were testing in privacy cases. Ideal tests in the anechoic chambers or iVans were just that - ideal.</comment></comment></comment>


OpenKeychain 3.6: Security Audit and Tons of New Features - <AUTHOR> https://www.openkeychain.org/openkeychain-3-6/ <comment><AUTHOR> OpenKeychain developer here. If you have any questions about certain fixed vulnerabilities or features, I am happy to answer any questions.</comment>


Persistent XSS for Medium accounts - <AUTHOR> https://medium.com/@homakov/persistent-xss-for-medium-accounts-or-backdooring-domains-ecf5bf6c218d <comment><USER2> As far as I can tell the TLDR here is: domains can have previous owners, who might have made users cache malicious pages forever.

I agree it's a concerning thing, but I must be missing something because I don't see why this is a medium-specific issue - doesn't it impact almost every website?

<comment><USER3> I think the issue with Medium is that on a conventional self-hosted domain it only puts content and users of that domain at risk. With Medium it not only puts the content at risk but any user's Medium account.</comment></comment>


How to Disable "Not Secure" Warning for HTTP Websites in Chrome 68 - <AUTHOR> https://geekermag.com/disable-not-secure-warning-for-http-websites-in-chrome-68/ <comment><USER2> It's a non-intrusive flag, until Chrome starts blocking the pageload I don't think it'll be an issue.

Though personally I would love if browsers would switch from 80 to 443 as default port for traffic.

</comment><comment><USER3> I'm not sure why anyone would want to do this?</comment>


Show HN: Kumologica – Low-Code Integration Toolkit for Serverless Compute - <AUTHOR> https://kumologica.com <comment><USER3> Something that I have found when using graphical programming (by connecting nodes) (My experience with this is with Houdini for VFX) is that some developers do take to it and are comfortable either wayq (hence able to share setups with less-technical peers) but others will immediately swap to the (usually available) write-code context, and it's very hard to fault them for it. It's an interesting thing to expect developers to be able to cope with! Maybe even more of an ask than learning a new language?

<comment><USER4> > using graphical programming (by connecting nodes)

I use Octane Render [0] whose materials editor is based on graphically connecting nodes which might be materials (diffuse, specular, etc), image files, mappings, colours, procedurals, emitters and many more. Compared with conventional languages the Octane shader language lacks any sort of conditional or iterative constructs, which obviously simplifies the 'programming' required.

I'm happy with graphical node editing for this shader use case. However, I sometimes really miss the ability to do a global textual search and replace across multiple materials, e.g. to change the file name of a normal map that is used in a node in multiple materials. I suspect that there would be similar frustrations when maintaining and updating a complex system configuration using a 'no-code' node-based mechanism.

[0] [https://home.otoy.com/render/octane- render/](https://home.otoy.com/render/octane-render/)

<comment><USER5> Have you played around with octane script nodes for the use cases above? They should allow you to do almost anything in the node graph through Lua (or native code via ffi) - <USER2>

<comment><USER4> Thanks for this great reply, and sorry for lack of response!

I should have been more precise - I was actually referring to the Octane plug- in for Daz Studio, where I don't think script nodes are available.

</comment></comment></comment></comment><comment><USER6> This is amazing. Pretty much what I've done with Step Functions and deployed using Pulumi - rolled into one, with a graphical UI.

Taking it for a spin.

<comment><USER6> That is - I would if there was a Linux build or usable source code available..

Early days, I get it. If I find a way to run it on Linux will post here.

</comment></comment><comment><USER7> I'd love to give this a try, but there are no Linux binaries available despite being electron based. Is this on your roadmap?

<comment><AUTHOR> Thanks for your feedback. We are working on a linux build atm. If you are interested to be part of the beta testing for linux just drop us a line on: [https://kumologica.com/contact.html](https://kumologica.com/contact.html).

</comment></comment><comment><USER8> Maybe I should dive more into it, but everytime I read a project that claims to be "serverless" I have a really hard time to understand what it actually does or solves.

What is serverless about? Is it the next big thing? Or just the new buzzword?

<comment><USER9> "Serverless computing is a cloud computing execution model in which the cloud provider runs the server, and dynamically manages the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity. "

From Wikipedia, first result when googling. Don't be lazy.

<comment><USER8> That's not the main pitch, that's the standard dynamic cloud/container hosting claim, this is their pitch:

"Software is eating the world. Unfortunately, most businesses still can't deliver software successfully, much less do so at the pace needed to stay competitive. For those who wish to keep up, let alone lead, software delivery & operation must be radically simplified."

<comment><USER10> Just think of it as a function on demand. Call an API endpoint, a container spins up and does something, returns the result and shuts down, and you only pay for the milliseconds and RAM used in that amount of time.

</comment></comment></comment></comment><comment><USER11> Came across this link and found it awesome at first look. Has great potential, keep this up. Just downloaded Mac version and testing. Have a few feedback's already, do you have a link where I can share feedback

<comment><USER12> [https://kumologica.com/contact.html](https://kumologica.com/contact.html). You can share your feed back through the contact page link give above

</comment></comment><comment><USER13> Interesting tool. A low code approach to lambda.</comment>


Silicon Valley's Design Renaissance (1989) - <AUTHOR> http://www.nytimes.com/1989/08/06/business/silicon-valley-s-design-renaissance.html?pagewanted=all <comment><USER2> It's fun how occasionally people suggest that a graphical form of programming is the future. Whereas, this article shows that an industry that had a graphical language to express logic, got rid of it and never looked back.

It's not just that the layout of the chip started being done by computers, but also, the circuit design switched from graphical to symbolic.

Once we get to a complexity level beyond toy examples, then it seems we are better doing our abstract logic manipulation symbolically than graphically.

As one of my colleagues said when comparing C with Simulink (a graphical programming language), "The thing is, I can review a C file by starting at the top. When I get to the bottom I know I've read everything".

<comment><USER3> I would like to add one more: text is far easier to edit than graphics and everyone can do it without mouse. I guess at this point both Emacs and Vim users are united.

<comment><USER4> The nuance both you and the parent commenter are missing is that editing text feels like a chore to Joe/Jane User, and controlling a GUI doesn't.

<comment><USER5> Simple GUI manipulation is easy.

Repetitive or complex GUI manipulation rapidly gets tedious or intractable. There are reasons people adopted powerful symbolic representations and operators. These have learning curves, yes, but also very high payoff functions.</comment></comment></comment></comment>


Four Years in Startups - <AUTHOR> https://www.newyorker.com/magazine/2019/09/30/four-years-in-startups <comment><USER2> The text really captured my attention. I've recently been struggling with whether or not tech and the modern internet are a force for good. I always enjoyed tinkering with hardware and software, and have been working in related jobs because it pays well and there are always interesting challenges to solve. But the societal shifts ongoing in Europe, the filter bubbles and breaking down of discourse, the xenophobia and the growing divide between large parts of society as well as the erosion of (local) media and the crisis of mental well-being among both adults and adolescents, which I feel are at least partly attributable to technological changes in the past ten years, have led me to think that maybe the most important thing for people right now may be spaces without technology, without personalization and just being confronted with the community of others. This does not seem like a problem solvable by the means of technology and makes me wonder whether I've spent my life learning about technology only to abandon it at some point.

Are there any good resources about what I call my "tech hangover" to navigate how to move on, maybe convert this education into something of societal value beyond screens? Or am I being too cynical about everything and in reality it's all much better than I'm seeing it? Open for anything here really, but struggling with the status quo.

<comment><USER3> I don't have any good advice, but just wanted to say you're definitely not alone. I left the tech industry due to these feelings and observations.

<comment><USER4> Mind if I asked what you got into instead and how you transitioned to it?

<comment><USER3> Sure, although I'm not sure how helpful the answer will be as I'm still trying to figure things out myself :)

After I quit my job in 2017, I floundered for a bit while living off of my savings. Later that year, the big crypto bull run happened and I was introduced to trading. After the bubble popped, I learned how to trade options through TastyTrade [1] and have been doing that since. TastyTrade CEO Tom Sosnoff [2] has a refreshing attitude toward finance that totally spits in the face of Wall Street. I think the way he's addressed and dealt with Wall Street has some clues for how we can similarly criticize the excesses of tech.

For now, getting myself back on my feet has just been the start. I still feel unsatisfied with where I am in life and how I'm interacting with my community and what I can do for others. I have some vague ideas about how to use the money I've raised to bring more awareness to these issues in tech and to support those who are building organizations that address these issues from day one. I don't have anything concrete yet, but I've been trying to network and learn more.

[1] [https://tastytrade.com/](https://tastytrade.com/)

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

</comment></comment></comment></comment><comment><USER5> A beautifully written piece that brings to mind Alan Kay's statement that a change in perspective is worth 80 IQ points. The world would be much better off if tech could see itself from her vantagepoint.

Appearing on HN on a remarkable day in a remarkable era when notable women are forcing historic change with strength, courage, and a different perspective- it is likely this piece will just be a footnote. I hope it becomes more.

<comment><USER6> Tech _can_ see itself from her vantage point. It just refuses to acknowledge that it's looking at itself.

<comment><USER7> Yep. Everyone is gonna start to see tech the way tech sees finance and military contractors

</comment></comment></comment><comment><USER8> I share a very similar experience to the author, though somehow even a little more extreme, including working in an entry level role for a certain tech mafia, living through maybe half of the events detailed in the new Uber book, working for the family of the president's son in law, and then working at an absolute dumpster fire of a crypto company.

Should probably write a book about it one day!

<comment><USER9> You can write a blog. I think people would take interest in those kinds of stories.

</comment></comment><comment><USER10> Great write up! I really enjoy hearing this perspective. I think it's so easy to get wrapped up a big dream that we lose perspective into what's important. Treating people with respect and doing the right thing for the employees, customer, and owners. A lot of these mistakes can be tied to inexperience, and I wouldn't be surprised if the average age of VC invested founders goes up when money thins out!

<comment><USER11> Couldn't have written it better myself, however the toxic element is when all these naive/entitled people make the same mistakes over and over and lead to people lives getting destroyed over and over again

</comment></comment><comment><USER12> I don't understand why all these from-the-inside vignettes overplay all the stereotypes so much. I guess it has to do with making it more exciting and exotic for your readers

<comment><USER13> I have a feeling they don't overplay it. Writers of the HBO comedy series 'Silicon Valley' shared they don't use all real life examples because they were 'too hacky'.

[https://www.newyorker.com/culture/culture-desk/how- silicon-v...](https://www.newyorker.com/culture/culture-desk/how-silicon- valley-nails-silicon-valley)

</comment></comment><comment><USER14> The Mixpanel (if that is the company being referred to, seems pretty obvious) CEO's callous firing of someone who asked for a raise, then threatening anyone who disagreed with this decision with termination is horrendous (if true).

<comment><USER15> Yea that scene was bonkers. Is that even legal, to demand resignation of an employee if they admit to disagreeing with a decision of yours? I hope I would have the courage to speak truth if I were ever put in that situation.

<comment><USER16> You can't demand someone to resign, but you can terminate someone for no reason.

[https://en.wikipedia.org/wiki/At- will_employment](https://en.wikipedia.org/wiki/At-will_employment)

Resignation is an employee choosing to leave a job, and results in becoming ineligible to receive unemployment benefits, which results in the employer's unemployment insurance premiums to be lower.

</comment></comment></comment><comment><USER17> "The employees tried to be the C.E.O's friends, but we were not his friends. He shut down our ideas and belittled us in private meetings; he dangled responsibility and prestige, only to retract them inexplicably. We regularly brought him customer feedback, like dogs mouthing tennis balls, and he regularly ignored us. He was expensive to work for: at least two of my co- workers met with therapists to talk through their relationship with him."

This is Suhail Doshi, the former CEO of Mixpanel [https://twitter.com/Suhail](https://twitter.com/Suhail)

This article is accurate but barely scratches the surface of how cruel he was to his employees.

<comment><USER18> Now, Suhail is starting another company, Mighty [1][2], a cloud-based browser.

I had a quick exchange with him about a potential position, but his arrogance and inflated ego left me uninterested. He shared very few details about the company, talking with a tone that assumed I was automatically convinced I would want to join just because he has founded Mixpanel. Hiring is a two-way street buddy.

[1] [https://mightyapp.com](https://mightyapp.com) [2] [https://techcrunch.com/2019/08/19/all-84-startups-from-y- com...](https://techcrunch.com/2019/08/19/all-84-startups-from-y- combinators-s19-demo-day-1/)

<comment><USER19> > a cloud-based browser

I cringed reading that. Assuming I might have misunderstood the product I looked at the linked pages and cringed even more. There is definitely too much money available to startups in SV nowadays.

As Mighty are looking into spreading their business model to other software types I suggest they cover the video player market next.

</comment></comment></comment><comment><USER20> > A popular narrative about trolls was that they were just a bunch of lonely > men in their parents' basements, but this looked like a coördinated effort. > The repository included e-mail templates and phone-call scripts. It was, my > teammates agreed, unusual to see them so organized.

4chain raids provided automated software to assist in highly coordinated trolls - an email template seems like child's play compared to what the "best" trolls can pull. I experienced a raid running a business affiliated with Carson Daly, who made the "honest" mistake of appropriating a 4chan meme on his talk show. Had to shutdown the website and restore the database to the night before to get rid of all the child porn they were uploading to forums we hosted. Thanks for the memory, 4chan.

<comment><USER21> This is some mean shit on so many levels.

</comment></comment><comment><USER22> Rarely do I get the uncanny feeling of someone else describing my experience or taking the words out of my mouth, but this one did it so, so well. Somewhere in between The Circle and Silicon Valley (the show).

I often think about walking away and working as a baker.

</comment><comment><USER23> The companies, locations, and people referenced in this article are so thinly veiled I don't understand why they'd try to keep them anonymous at all?

<comment><USER24> I don't think they're claiming to actually anonymize them. Seems like it's just a stylistic choice to not affirmatively identify them.

<comment> john-radio And avoiding a potential libel suit.

<comment><USER17> It's only libel if it isn't true.

</comment></comment></comment></comment><comment><USER25> > On the train home, I leaned into Ian and recounted the interaction. What > sexists, I said. How dare they be so dismissive, just because I was a > woman—just because I did customer support and was considered nontechnical. > Ian cringed and pulled me closer. "You're not going to like this," he said. > "But you were trying to talk shit about self-driving cars with some of the > first engineers ever to build one."

I wonder who are these engineers who claimed to have built a self-driving car in 2013. Because we're in 2019 and self-driving cars still require two drivers to operate them.

<comment><USER11> agile methodology -- first build a skateboard, then a scooter, then a bicycle then a Tesla -- they were probably building an MVP

ref: [https://m.dotdev.co/the-agile- bicycle-829a83b18e7](https://m.dotdev.co/the-agile-bicycle-829a83b18e7)

<comment><USER11> I'm being sarcastic by the way -- that shit doesn't work

</comment></comment></comment><comment><USER26> Wow, this author actually wrote well enough for me to read the whole article. I usually drop out 1-2 paragraphs into these types of longer form stories. Good job and looking forward to reading more.

<comment><USER27> I think the key difference is that the headline doesn't bait and switch you with the promise of some deeply-buried lede. You're reading it in the first place because you're interested in the author's firsthand experience.

I normally detest long-form because I go into it wanting to discover a tricky horse-betting scheme, but then I have to sit through pages of what some guy's suit looked like and how he held his cigar as he sat down for lunch. This author has her priorities aligned and doesn't abuse or mislead the reader.

</comment></comment><comment><USER28> TLDR: Founders are arrogant, self-serving assholes, spending other people's money; techies are ass-licking, ignorant avocado munchers. $$$ is being spent and harm is being done, while non-tech people struggle to make a living, but have a real life. Get out of the bubble.

<comment><USER29> Don't know why you are being downvoted but you your TLDR is pretty much spot on.

I would suggest to any techie who finds this not true to leave the bay area for a couple months then come back. It is amazing how entitled everyone is over here.

<comment><USER30> This. I feel like the article is a little bit too negative, but I've been something pretty much similar. I moved to SF, worked for about 4 years, loved it, but then moved back to Europe and realised "oh wow, it IS a bubble".

Now I'm excited to eventually go back to the bay, but it was very valuable to take a step back, go away and think about it!

<comment><USER29> I'm in the exact same situation as you. Worked here for a couple years then left the bay area for a couple months in between jobs and came back.

Taking a step back allowed me to see how most people live outside of the bay area and how big our bubble is. As you I'm excited to be here but I take everything with a grain of salt.

</comment></comment></comment></comment><comment><USER31> Reading this beautifully written piece brings to mind the recent book about Elizabeth Holmes - Bad Blood. Some of the completely unacceptable behavior by tech CEOs and "higher ups" definitely rings a bell; some startups like Theranos were doing exactly that and ended up getting a lot of negative attention.

</comment><comment><USER32> I read it as 12 year a slave.

</comment><comment><USER33> I listened to the article, and yes, the startup environment has a LOT of problems.

But the pretentious tone removes a lot of it's legitimacy for me, mostly because it sinks as low as some of these startups to get engagement and reactions to the article, to the point of becoming hypocritical.

We need proper journalism uncovering these malpractices, not sensationalist or tech gossip pieces that can be discredited as such.</comment>


Back to the Future: Lisp as a Base for a Statistical Computing System - <AUTHOR> http://books.google.com/books?id=8Cf16JkKz30C&pg=PA20&lpg=PA21#v=onepage&q=&f=false <comment><USER2> This is referenced as part of the motivation for Incanter <http://incanter.org> the Clojure based, R-like statistical environment.</comment>


Longest streak on github? ~61 days and counting - <AUTHOR> https://github.com/tpope

<comment><USER2> doubtful, 87 days is my longest. Pretty sure i'm not the highest either.

</comment><comment><USER2> of course.. he'll beat me in 26 days :)</comment>


Show HN: Revolutionizing workshops in India - <AUTHOR> http://campushash.com

<comment><USER2> Can you explain how this is "revolutionizing workshops in India"?

<comment><AUTHOR> The workshop scene in India is quite messed up at present. The organizations who provide workshops in colleges are not keeping up with the Internet. There is no company who teaches HTML5, CSS3 in workshops. In web development, most of the companies start with a CMS, like Joomla or Drupal.

We, web-developers ourselves, were quite frustrated by this fact. We did a survey on colleges and found that students who had attended these workshops rarely continued, and most of them dropped whatever had been taught in the workshop.

CampusHash was started aiming to change this. We want to change the status quo, and bring the latest technologies of the Web into the college ecosystem. This might seem naive to a non-Indian, but the college curriculum in India still lags 20 years behind.

So, we are trying to revolutionize workshops in India. Thanks.

<comment><USER2> I'm interning at a company (a startup that has shown tremendous growth) in Delhi, India. I know Python for web dev. Devs in the company know ONLY PHP and some JS. So clearly, there's no demand for the modern web technologies.

So yes, you can teach students, but that doesn't mean they will be in demand. How do you think you can change this?

<comment><AUTHOR> I respect your opinions, but we really think students should get acquainted with these technologies. If you do, and love, Python, you know what I am talking about.

And, we are not trying to make the students in-demand. We cannot do that in a workshop. But yes, we can at least start a spark. The response we have been getting in colleges we have been has been tremendous. The students are so excited to learn. That's a good sign, isn't it?</comment></comment></comment></comment>


Set your status in slack - <AUTHOR> https://slackhq.com/set-your-status-in-slack-28a793914b98 <comment><USER2> This was a good idea, but people use them largely for whimsical purposes and they add a lot of visual noise. There isn't an option to disable them, but if you use Slack in a browser, you can do this in a custom stylesheet:

        .feature_user_custom_status .current_status,
        .feature_user_custom_status .message_current_status {
          display: none !important;
        }</comment>


Cooperative Threading - <AUTHOR> https://byuu.net/design/cooperative-threading <comment><USER2> There is a section about pipeline stalls caused by switching stacks, but that is misleading. Switching stacks per se is not a huge penalty, the cpu [1] might need to add synchronization opcodes to synchronize the stack engine view of the stack pointer with the actual stack pointer, but the performance cost is minimal and often free.

A big penalty is due to (failed) branch prediction: a coroutine switch is essentially an indirect branch so the predictor might need help (for example using a different branch instruction address for each coroutine type); also call instruction used to call into the coroutine switch function is not paired with a ret instruction, which messes with the specialized call predictor. Changing the final jmp instruction in the switch function to push add; ret actually makes thing worse; the best solution is to inline the switch function in the caller via inline assembler (this also helps with the previous issue and, if the compiler provides the functionality, it allows only saving the registers that are actually in use)

edit: last time I did a synthetic benchmark of my one of my own coroutine implementations, the switch performance was only constrained by the number of taken branches the CPU could issue (one every other cycle): [https://github.com/gpderetta/delimited/blob/master/benchmark...](https://github.com/gpderetta/delimited/blob/master/benchmark.cc)

[1] I'm talking about the typical x86 cpu.

<comment><USER3> You could well be right. In my own tests, the ESP swap is what tanked performance. A more limited stackless test did not have nearly the same overhead. And indeed, the largest speedup was from moving to set ESP as soon as possible, get the return address into EAX, and finally jump to it. CALL+RET with late ESP set behaved poorly, leading me to believe it was due to the CPU stalling on the ESP change.

I did also try inlining this, but it was much less portable and actually performed slower in my emulator. I won't claim that will be the case for everyone, of course. YMMV.

<comment><USER4> Wow. I used my own stack switch routine for several years now and didn't realize it could be improved until I read this thread. Thank you very much.

This is my old naive version:

[https://github.com/ademakov/MainMemory/blob/master/src/base/...](https://github.com/ademakov/MainMemory/blob/master/src/base/arch/x86-64/cstack- switch.S)

This is what I have now:

[https://github.com/ademakov/MainMemory/blob/cstack-switch- re...](https://github.com/ademakov/MainMemory/blob/cstack-switch- revamp/src/base/arch/x86-64/cstack.h)

<comment><USER2> You are missing x/y/zmm regs in the clobber list.

<comment><USER4> Yes, that's true. However in my app this has never caused any problems. Apparently even if the compiler auto-vectorizes anything it does this only with scratch regs or in leaf procedures. I don't have any fp or simd code of myself.

</comment></comment></comment></comment></comment><comment><USER5> > Basically it requires dropping down to the assembler-level for each > supported architecture to implement the context switching, as modifying the > CPU context registers and stack frame directly is not permitted by most sane > programming languages.

I thought that was (essentially) the definition of longjmp? Thinking further, it seems like the initial setup of additional stacks would require at least taking the covers of setjmp and interacting with its implementation details directly.

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

<comment><USER6> There's an implementation using setjmp/longjmp in his library here [1]. It uses sigaltstack to assign a newly allocated stack to the coroutine. Marc Lehman's libcoro [2] library does the same.

[1] [https://github.com/byuu/higan/blob/master/libco/sjlj.c](https://github.com/byuu/higan/blob/master/libco/sjlj.c)

[2] [http://software.schmorp.de/pkg/libcoro.html](http://software.schmorp.de/pkg/libcoro.html)

<comment><USER2> as an historical note, the sigaltstack trick was popularized, if not invented, by the Pth library.

</comment></comment></comment><comment><USER7> The efficiency of cooperative tasking was seen in the 1970s when machines were notoriously slow. In the example below roughly 8x better.

[https://www.forth.com/resources/forth-programming- language/](https://www.forth.com/resources/forth-programming-language/)

"a PDP-11 or Nova could be expected to support up to eight users, although the performance in a system with eight active users was poor.

On this hardware, Moore's Forth systems offered an integrated development toolkit including interactive access to an assembler, editor and the high- level Forth language, combined with a multitasking, multiuser operating environment supporting 64 users without visible degradation..."

</comment><comment><USER8> I wonder whether writing whole system in verilog, synthesizing cycle accurate simulator with verilator would yield better results...

<comment><USER9> I work for a silicon IP company and the verilog simulation of our product is about a factor of ten slower than our "cycle accurate" software model.

The FPGA version is about 40 times or so faster than the model and the actual silicon is another 10 times or so faster than that.

<comment><USER10> How cheap are fgpas that could simulate an SNES or similar?

Any chance we standardize and commoditize fpgas so that it can be just another device on a laptop or phone that anyone could use? Like bluetooth or a GPU or gps?

This has to happen at some point but how far off from that are we now?

I assume there are different grades of fpgas and that likely complicates things but it is like desktop GPUs are way way better than phone GPUs... But both run opengl/vulkan and essentially the same code.

<comment><USER2> I know of FPGA based implementation of whole Amigas [1] and I do not htink they are particularly expensive. It is very likely that SNES reimplementations also exist already.

Edit: this [2] is a full system for 220 euros and in addition to Amiga it emulates a bunch of 8 bit consoles.

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

[2]: [https://amigastore.eu/en/358-mist-midi-fpga-computer-with- mi...](https://amigastore.eu/en/358-mist-midi-fpga-computer-with-midi-add- on.html)

</comment></comment></comment></comment><comment><USER11> According to the article, being preempted by the kernel is too expensive because of the context switch userland<>kernel. I wonder if its possible to implement the same preemptive mechanism purely in userland, for example with a timer alarm and a signal handler using swapcontext or similar to achieve better performance?

<comment><USER12> That would still involve entering and leaving kernel mode, because timer alarms ultimately are triggered by a hardware interrupt (from e.g. the APIC timer or, in really old x86 machines, the 8254 programmable interval timer, aka IRQ 0). So IRQ -> switch to kernel timer IRQ handler (prologue saves all usermode registers) -> examine internal data structures, find pending alarm signal -> modify process state, pushing signal frame and setting RIP to signal handler -> return to userspace. That's probably slower than just Timer IRQ -> switch to kernel -> invoke scheduler -> decides to preempt, changes to new thread -> restore context, return to user space (but I'd be curious if someone actually measured).

Fundamentally, preemption has to originate from a hardware IRQ (or IPI from another core), so really the only way would be to kernel-bypass by setting an IRQ handler in userspace (ring 3). That's technically possible on x86 (IDT entry can have a ring-3 code segment) but I don't think the kernel has a mechanism for that...

<comment><USER13> How do user-mode network drivers work? Do they rely on polling, or do they still have the kernel handle interrupts?

</comment></comment></comment><comment><USER14> What's with them mprotect here: [https://github.com/byuu/bsnes/blob/master/libco/x86.c](https://github.com/byuu/bsnes/blob/master/libco/x86.c) ?

<comment><USER15> Good question. [https://github.com/byuu/bsnes/blob/bd8e94a7c7cbfdf7ac0b7f24c...](https://github.com/byuu/bsnes/blob/bd8e94a7c7cbfdf7ac0b7f24ce06fa219e7e5974/libco/settings.h#L3-L6) suggests there are reasons why the section(text) approach might not work, and [https://github.com/byuu/bsnes/blob/6b7e6e01bb025bf5cbeb92e65...](https://github.com/byuu/bsnes/blob/6b7e6e01bb025bf5cbeb92e65a492121070fb996/libco/libco.c#L1-L7) explicitly says it doesn't work with clang, though I don't see why there's not some way of solving this without mprotect that works everywhere.

<comment><USER2> but why is it not simply using a separate asm file instead of embedding the preassembled binary as a constant?

<comment><USER3> Because for many years libco has supported _all_ C89 compilers. I didn't want a dependency on GNU as on Windows, nor did I want to write an MSVC variant. There is no technical reason it cannot be inline now, especially now that we have Clang with a compatible asm syntax.

</comment></comment></comment></comment><comment><USER16> I do wonder why byuu wrote his own library rather than using one of the half- dozen existing ones. Presumably there is something about this use-case that makes a dedicated library useful.

<comment><USER3> There's probably hundreds of these libraries. Almost everyone chooses to just write their own.

I wanted one because in 2007, no project existed that was laser-focused on maximizing performance (I switch threads tens of millions of times a second in my emulators), was lightweight enough (I implement my own schedulers for my emulators), and was portable enough (I am not even aware of a CPU architecture libco won't run on currently.)

The library is extremely small, and being in control of it allows me to adapt and support new targets directly as needed.

</comment></comment><comment><USER17> The cool thing about libco, is that it's also used in LXD. Quite a novel use for this library!

</comment><comment><USER18> Do we really need all this complexity? how about if having, let's say, N chips to emulate, do a simple loop and call 'emulate' for each of the chips?

        for(EmulatedChip &chip : chips) {
            chip.emulate(time);
        }

Why would the above not be suitable for emulation?

<comment><USER19> I think this approach is the "state machine" approach given in the article. The added complexity in moving to a coroutines/co-operative threading model is balanced by the drastic code reduction, pointed out in the article by "Yes, it's really that dramatic of a difference".

<comment><USER20> Yes, you inevitably end up implementing a state machine like that.

<comment><USER3> I consider it something of a trap in fact.

You start writing a new emulator for the first time, dispatching entire instructions in one go, and so you don't even really need a state machine at all.

Then you start trying to get the timing better with opcode-cycle granularity, and in comes a separate state machine for every instruction.

Then you realize you need clock-cycle granularity to fix certain edge-case games (eg emulating the effects that occur during bus accesses), and suddenly the prospect of a state machine for every cycle of every instruction becomes overwhelming.

You would then be realistically stuck with the choice to either stop improving your accuracy, or rewriting things cooperatively.

Since I'm focusing byuu.net articles toward aspiring emulator developers, I thought it would be an important topic to cover.

</comment></comment></comment></comment><comment><USER21> > Unlike coroutines, each cooperative thread has its own stack frame.

This seems to be incorrect. See:

[https://stackoverflow.com/questions/28977302/how-do- stackles...](https://stackoverflow.com/questions/28977302/how-do-stackless- coroutines-differ-from-stackful-coroutines)

> In contrast to a stackless coroutine a stackful coroutine can be suspended > from within a nested stackframe.

It seems the author is trying to reinvent stackful coroutines, and calls them "cooperative threads".

<comment><USER3> No one really agrees on the exact terminology. There are stackful and stackless coroutines, continuations, green threads, fibers, cooperative threads, etc. Generally when people talk about coroutines without a qualification they are meaning the stackless variety. I personally consider a coroutine with a stack frame to be a cooperative thread, but understandably not everyone will agree on naming. The nomenclature hopefully should not affect the broader message of the article though.

In any case, I am not so much trying as I already have. C++ does not have stackful coroutines. I implemented them via my libco library and have been using them for over a decade now.</comment></comment>


THE 9 BEST LANGUAGES FOR CRUNCHING DATA - <AUTHOR> http://www.fastcompany.com/3030716/the-9-best-languages-for-crunching-data <comment><USER2> These are not all languages, but a mix of languages and tools.</comment>


Twinkies Maker to Liquidate, Lay Off 18,500 - <AUTHOR> http://www.cnbc.com/id/49852161 <comment><USER2> I wish this was simply because demand for food-like substances had disappeared and the market was punishing those companies that make predominantly food-like substances, and instead choosing actual food made with recognizable ingredients.

But, it's not. It's mismanagement. I suspect the bankruptcy is simply a method of ending all of the union contracts and moving to factories in right-to-work states in cities without strong unions. It's been done more than a few times in the past few decades by major corporations. That's not to say the unions are all right, just that based on my reading of the situation, they're being used as a convenient scapegoat in a situation caused by long-term mismanagement and incompetence.

<comment><USER3> That is not the case here. In fact, they are already in bankruptcy. The judge had imposed a new contract on the union that didn't accept, so they went on strike. The company claims they cannot whether the strike and instead are completely liquidating all assets of the company. They are closing down, not reorganizing.

<comment><USER2> I'd bet dollars to donuts (or Twinkies) that there will be a new team, made up of a few members of former management at Hostess, who will raise funds and purchase the most valuable assets of Hostess. That team probably already exists, and the private equity company already has the contracts written.

They will then be starting with a clean slate, with only the really valuable assets (the brands, mostly), and none of the baggage of old contracts and agreements.

Of course, another company might buy up those assets, since bankruptcy sales have outside oversight (to some degree), and thwart those plans. But, I'm confident those plans are underway, and would be surprised if it doesn't turn out with some of old management heading up the new company that begins producing Twinkies again.

<comment><USER4> There is a good chance you are right and this would be evidence that the union was holding out for terms that the _market_ had determined were unsustainable.

If you can start from scratch and lease/purchase/hire what you need under new terms then it is an existence proof that the union had priced itself out of the market (i.e. there were other workers completely willing to accept the new terms). This is true whether the new management is truely a new group of people or simply a new legal entity for the old group of people.

<comment><USER2> That's a simplistic interpretation (as is mine). Without studying the numbers, the compensation of executives at various levels, the terms of employees, etc. it's impossible to say this business couldn't have continued to run and honored old contracts and satisfied new demands.

It's true that there's often a disconnect in how much unions demand and how much the rest of the labor market demands, and it can lead to businesses preferring to hire in non-union areas (making areas with strong unions suffer economically). I'm not entirely convinced that's the best outcome for everyone (everyone in the city, state, country, world), since it leads to employers holding a disproportionate amount of the power (the corporation becomes the only organized, powerful, force in the negotiation), and employee compensation consistently being pushed downward, while executive compensation often skyrockets. I'm pretty libertarian, so I like market forces, but I think we're seeing evidence that not having some kind of force that opposes corporations having disproportionate power leads to stagnant wages (not keeping pace with inflation), more reliance on government services (when an employer doesn't pay for any benefits, the employees end up relying on various government services for those necessities like healthcare), and a bigger disparity in power. Corporations and states end up having all the power, while individuals (those not lucky enough to have money and influence) end up getting pushed around.

If executives are receiving massive pay increases (which is what happened at Hostess; 300% pay raise, apparently), while the ship is sinking, I'd say there's a lot more than mere market forces at work. I think greed plays a role, too. In a company with some folks making millions, while others are asking for a $1/hour raise, I'm not sure I'm willing to call it merely market forces at work.

<comment><USER4> The 'disproportionate amount of power' argument comes out a lot in these discussions about unions. It sounds like a good argument but I think it ignores the fact that the labor market itself is a pretty powerful force that works against corporate interests.

Intertwining employment with health insurance has been a big mistake in my mind. Not only does it distort the insurance market in many ways, but it also radically affects job mobility as it artificially binds employment and heath care decisions creating constraints that wouldn't otherwise exist.

</comment></comment></comment></comment></comment></comment><comment><USER5> > Union President Frank Hurt said on Thursday that the crisis at the company > was the "result of nearly a decade of financial and operational > mismanagement"

It's surprising that the union would actually let the company fall apart. Was there some lapse in communication? Did the unions think the company was bluffing when they said "we're going to go bankrupt"?

Also, their downfall probably had more to do with a change in social perception that they couldn't do anything about. Everyone knows that Twinkies are "bad for you". It's almost stereotypical for a fat person to be eating Twinkies, and this makes everyone want to avoid them.

<comment> at-fates-hands >>>> their downfall probably had more to do with a change in social perception that they couldn't do anything about.

Agreed. When I was growing up, I ate a LOT of these snack foods and regularly had twinkies in my bag lunch I brought to school.

Nowadays, there's a much better emphasis on nutrition and making sure kids avoid getting obese.

Back in 2005, the same thing happened to Krispy Kreme. They flooded our city with stores, but within a few years, they were all gone. There were a victim of the health food craze taking off.

As much as I hate to see them go, it's a good sign.

<comment><USER6> The Krispy Kreme situation is quite different. They had an accounting scandal that actually caused them to contract, in addition to the health craze reasons that many people assume.

<http://www.nytimes.com/2005/08/11/business/11place.html?_r=0>

<comment><USER7> This is off-topic, but I really hate the term "health craze." People caring about something does not make it a "craze." When people put on their seat- belt, we don't say they have a "safety craze." For the same reason, we should stop using the term "health craze."

<comment><USER6> Donuts in moderation are fine. Seat-belts in moderation are not a good idea.

That's why your analogy doesn't really work.

I said "craze" because the anti-carb mood is somewhat of a fad, so I think the word "craze" is perfectly suited.

</comment></comment></comment></comment></comment><comment><USER8> There's a lot more detail on what went on behind the scenes in this article: [http://www.zerohedge.com/news/2012-11-16/hostess- liquidation...](http://www.zerohedge.com/news/2012-11-16/hostess-liquidation- curious-cast-characters-twinkie-tumbles)

(I'm not endorsing any particular political viewpoint expressed in it, but merely posting it because it has a lot of info)

<comment><USER9> It looks like that entire article is blogspammed from this (good) CNNMoney article: [http://management.fortune.cnn.com/2012/07/26/hostess- twinkie...](http://management.fortune.cnn.com/2012/07/26/hostess-twinkies- bankrupt/)

<comment><USER10> Wow. So much of Hostess' crisis, and the state of California and its cities hinge on pension obligations. It makes me wonder if it is even possible to create a pension plan that isn't eventually toxic.

<comment><USER9> Well, at least a private company can eventually just go bankrupt. Nobody knows what's going to happen in CA and IL.

<comment><USER10> Good point. San Jose discharged a lot of its future pension debt with negotiation. But my question wasn't how people get out from under the debt, rather it was how such a program could be designed so that it wouldn't have this issue.

For example, could you say

"You pay 10% of your salary and we'll match that, into an investment account that buys inflation protected treasuries, then when you reach the age of 55 you have the choice of getting 20%, 50% or 100% of your salary paid out annually until the total of the amount paid in + appreciation over that time reaches zero."

Basically once the company/state had matched the 10% they have no further obligation. And if you're genetics were great and you lived to 115 perhaps your 'salary' would run out at 75 long before you died. But what I don't know is how practical this is, it was so much easier when people actually died around 72 than it is now.

</comment></comment></comment></comment></comment><comment><USER11> Twinkies + Liquidation = Best. Milkshake. Ever.

</comment><comment><USER12> The brand will be bought by yet another company, and the snack cakes will be produced again. This is the umpteenth time they've been sold.

</comment><comment><USER13> I'm going to buy a few boxes then give them out as Christmas gifts in 10 years.

<comment><USER14> At which time they'll probably still be "fresh".

</comment></comment><comment><USER15> It takes 18,500 people to make Twinkies?!

<comment><USER16> And "Ho-Ho"s, but since they are baked goods with a shelf-life measured in days/weeks (not years as is commonly assumed), having them produced close to their markets reduces shipping time, but demands more facilities and therefore more employees.

</comment></comment><comment><USER17> What's in a Twinkie?

[http://www.thedailybeast.com/newsweek/2012/05/05/what-s- in-a...](http://www.thedailybeast.com/newsweek/2012/05/05/what-s-in-a- twinkie.html)

<comment><USER18> Hopefully in 200 years people will look back in shock that we actually used to eat that stuff.

<comment><USER19> In 200 years, they can open up a pack of Twinkies from today and still experience them as we do now.

<comment><USER18> Hopefully people will be smart enough not to.

</comment></comment></comment></comment><comment><USER20> Blaming this bankruptcy on strikes is so utterly, transparently horseshit. I hope pundits call them out on this.

<comment><USER9> Nobody is blaming the bankruptcy on strikes; they were in bankruptcy long before this strike. What's happened as a result of the strike is that their Chapter 11 (restructuring) has changed to Chapter 7 (liquidation), because they are not capable of generating revenue if they can't reliably produce products, and their operational overhead is huge.

<comment><USER20> I think "nobody" is a bit inaccurate:

Seattle PI (AP): "The Irving, Texas, company said a nationwide strike crippled its ability to make and deliver its products, which also include Ding Dongs, Ho Ho's and Home Pride bread."

[http://www.seattlepi.com/news/texas/article/Twinkie-maker- Ho...](http://www.seattlepi.com/news/texas/article/Twinkie-maker-Hostess- reaches-the-end-of-the-line-4043395.php#ixzz2CPcWHJoE)

MSN (Reuters): "Nearly 18,500 workers will lose their jobs as the company succumbs to the crippling effects of a nationwide union strike."

[http://money.msn.com/top- stocks/post.aspx?post=6d7b095e-e558...](http://money.msn.com/top- stocks/post.aspx?post=6d7b095e-e558-4dc4-83e9-1859d177e676&ocid=ansmony11)

Read other articles this morning (sorry I don't have them on-hand) that are also pinning this on strikes, mostly because AFAIK Hostess is trying to pin it on the strikes.

<comment><USER9> The strike _is_ crippling them. But the strikes themselves aren't the systemic cause of Hostess Brands bankruptcy, which started long before this round of strikes. Demand for Hostess offerings is down, and Hostess' overhead is atypically high for its industry.

<comment><USER20> Right, so we agree then.

</comment></comment></comment></comment></comment><comment><USER21> Surely a fresher word than "iconic" exists to describe Twinkies. I'd suggest "Beloved", but that sounds only a little better than "iconic" when it's said out loud.

"Iconic" is the "robust" of the 2010s, doomed to look and sound dated, like the music and fashion of the 1980s.

<comment><USER22> 'Fresher' & 'Twinkies' is an oxymoron.

</comment></comment><comment><AUTHOR> I shared this link earlier and had the word "iconic" in it. Simply because growing up in the US, everyone knows what Twinkies are. Whether you like it or not.

</comment><comment><USER23> Anyone else think, Bad Luck Brian's first union job!?

</comment><comment><USER24> (I posted this in the other article about hostess that got buried)

I will remind people here the following: Indiana is a right-to-work state. This was passed last year. Right to work lowers employer burden why someone is laid off/fired. Along with that, makes it a felony to require union dues to work at a company. However, the union is still required to represent you upon its charter.

Hostess also lost a sizable chunk of money with the lawsuit concerning Sachs donuts. Because of things I do not understand, Hostess had to kill all lines of yeast donuts and all "packaged fresh" yeast donuts. And from talking to employees of Hostess in Columbus,IN, those machines were scrapped.

A good reason why the union was giving hell was Hostess wanted to cut wages by almost 20%: the union already agreed to a 10% cut and reduction of benefits. Hostess wanted 9% more, and threw a tantrum here locally.

Who was in the right? I have no idea. But it looks the the nuclear option was used: blow it to the ground.</comment>


Ask HN: Get a GED to Skip High School or Online School? - <AUTHOR> My nephew (jr in High School) has medical issues that have prevented him from attending classes, such as PE where 80% of the score is participation. Based on conversations with his School Counselor, they are recommending he do online school instead. However, he is very smart and a motivated programmer that wants to do research. I'm wondering if anyone here started with a GED and was able to get into a good state or ivy league school and/or graduate school.
If I were in his position, I would want to quit, get a GED right away, and get some online community college credits while I hone my development / research skills.
Are there any relevant experiences or thoughts you have? Much appreciated. <comment><USER2> Unfortunately, the outcomes of people with GEDs are not good on average (see below). If employers disdain GED holders, it's better to get a regular high school diploma if at all possible. OTOH, if your nephew will definitely get a college degree, the lack of a high school diploma may not matter.

[https://www.bakadesuyo.com/2012/10/ged-high-school- graduate/](https://www.bakadesuyo.com/2012/10/ged-high-school-graduate/)

Are people with GED's more like high-school graduates or high-school dropouts?

More like dropouts. While GED holders are as smart as graduates, in terms of future outcomes (annual income, unemployment, divorce, drug use) they look exactly like dropouts.

</comment><comment><USER3> One of my mates used [https://www.uopeople.edu/](https://www.uopeople.edu/) While I know its not an online high school, I'm pretty sure if you check your state law about age of dropping out you could probably enroll him here.

<comment><USER3> Btw he also transferred to a university in London from it I think.</comment></comment>


Full archives of Game Developer magazine - <AUTHOR> http://gdcvault.com/gdmag <comment><USER2> If you want to download all the PDFs to your current working directory:

        wget -rH -nd -Dubm-us.net -Apdf http://gdcvault.com/gdmag

Edit: for the curious, the flags are:

        -r recursively retrieve all the links on the page
        -H span hosts (default would stay with gdcvault.com only)
        -nd don't replicate directory hierarchy, just download the files to cwd
        -D only download from ubm-us.net
        -A pdf extensions only

<comment><USER3> Consider grabbing the torrent[0] instead so as not to peg the gdcvault server.

[0]: [http://thepiratebay.sx/torrent/8940823/Game_Developer_Magazi...](http://thepiratebay.sx/torrent/8940823/Game_Developer_Magazine_Complete_1994-2013_Archives)

</comment></comment><comment><USER4> Especially since this collection isn't going to change, I'm confused as usual why they don't include a 'download them all' torrent link. Torrents are wonderful for things like this - reduced hosting costs, often significantly faster download rates, and nearly perfect resumeability even in cases of extremely bad internet connections. Win/win/win but very few do it.

<comment><USER5> Offering a torrent could be legally interpreted as giving up copyright for the work(s) offered by the torrent.

<comment><USER6> Really? I did not know that. Can you tell us why?

<comment><USER7> It can't.

</comment></comment></comment></comment><comment><USER8> Chris Hecker's articles on building a perspective correct texture mapper were _awesome_. In the late 90s, I used these articles to build a software renderer from the ground up in assembler and then added bilinear filtering at no additional charge.

It was dancing on a Nintendo 64 at the time. Sadly, while it went on to get used in a couple obscure games, the HW company for which I created this went belly-up.

</comment><comment><USER9> I think the most refreshing bit about this, besides the fact that it's a goldmine of free information (thanks!), is the fact that it's all laid out on one html page. It makes me think of what websites used to be like before ads and crazy designs took over.

</comment><comment><USER10> Great magazine.

If, like me, you lack the specialized knowledge to understand most of the articles, there was one monthly feature worth reading anyway -- a detailed postmortem of some multi-year, multi-discipline game development project.

</comment><comment><USER11> First was Dr. Dobbs Journal and now GDM. My favourites magazines are all dead now :(

<comment><USER12> [http://www.drdobbs.com/](http://www.drdobbs.com/) is still active though

<comment><USER13> Indeed, but it's not quite the same. Thanks for the reminder though -- every once in a while I remember to stop by, and there are always a few new interesting articles.

</comment></comment></comment><comment><USER14> I feel like I've discovered this a little too late. Does anyone have any good suggestions for other quality software based magazines?

<comment><USER15> I'd like to know this too; where are the best software and software development periodicals of any format? I don't even know where to ask.

</comment></comment><comment><USER16> Thank you for this. What's interesting is how dramatically gaming improved between 1994 and 1999, and then it kinda became incremental. I also enjoyed being able to see how the graphic design (page layouts, colors, fonts) of the magazine itself has evolved. I wonder if current trends can be extrapolated.

</comment><comment><USER17> Huh. And I just discovered it and subscribed on my iPad last Fall. Oh well. :)

</comment><comment><USER18> Where can I buy a physical subscription?

<comment><USER19> Sadly, the magazine has shut down, so you can't.

<comment><USER18> Too bad. It looked like a fantastic magazine but I would really like to read it in its physical form. Do you know any other game development magazines?

</comment></comment></comment><comment><USER20> I found the quote on the first page of the first issue a little too relevant:

"The true danger is when liberty is nibbled away, for expedience, and by parts." —Edmund Burke

</comment><comment><USER21> Would be nice if I could search the contents.

<comment><USER22> Free and posted in its entirety online, and you're still not happy eh?

<comment><USER21> Don't get me wrong, i think its great, but I'm not going to browse hundreds of issues to read about specific topics I'm interested in.

<comment><USER7> That hole you're digging is getting deeper and deeper...</comment></comment></comment></comment>


Which pricing model is more effective: GitHub's or  Bitbucket's? - <AUTHOR>

I have a product that I plan to release soonishly. I am planning on doing a free-for-public, pay-for-private pricing model. For the latter, the choice is essentially between Github's model and Bitbucket's model. Github allows unlimited private collaborators but charges by the project. Bitbucket allows unlimited private projects but charges by the collaborator.<p>My question is: have any of you decided between these pricing models for your product? If so, how did you decide? Also, any related resources would be appreciated. Thanks! <comment><USER2> Disclaimer: I have no slightest idea about economics. And I'm not sure the following is a good idea. So, don't listen to me.

As I get it, you probably want to let users start for free when their requirements are small, and start changing as they grow. I suppose everyone has different needs, though — some value ability to spawn a dozens of tiny private repos, but some want just one for a relatively large team.

Then — just a wild idea — maybe assign some value for resources and services you provide and give a quota of what's free? Say, maybe, the formula could be repository count multiplied by collaborator count, so mediocre usage will stay under the threshold, raising either repo count or collaborator number alone (possibly, until the number is sufficiently large) still wouldn't be enough to leave the free tier, but raising both would nearly instantly require paying for your services. Something along those lines.

This probably could be confusing to customers (although some flexible cloud providers seem to deal with it with those fancy price calculators page with resource sliders), but maybe you'll think something. Or not.

And it certainly depends whenever your customers actually want such flexibility and there's enough diversity of use cases among them. Maybe they don't care and everything fits into something simpler. Then, for me, I think it's BitBucket's model — even though most of my repos are public (and are on GitHub), I have two private ones (on BitBucket), with no collaborators.

<comment><AUTHOR> Interesting idea! You remind me that I have seen such pricing calculators before, e.g. on Heroku's website. Yeah, I could see a more complex approach working well to let me cover all the bases. Thanks!

</comment></comment><comment><USER3> I prefer BitBuckets because I don't want pricing to become an issue in how I split up my projects. They also have free private repos if you have 5 collaborators or fewer.

</comment><comment><USER4> Bitbucket has better pricing for closed-source projects, Github has better pricing for open-source projects.

It really depends on the structure of your market and your competitors. There's not enough information in your post to say anything more helpful than that.

<comment><AUTHOR> Thanks for your reply. You're right, of course. But rather than try to explain my market, target user, competitors, etc., I think I can translate discussions of Github vs. Bitbucket fairly well into my situation.

So, can you elaborate? Why is Bitbucket better for closed-source and Github better for open-source projects?

<comment><USER4> GitHub is free for public repos up to unlimited number of participants. This is great for open-source projects.

BitBucket is free for private repos up to 5 users. This is better for closed- source projects.

</comment></comment></comment><comment><USER5> Pricing is a big interest of mine (30,000 words into writing a guide on it). Understanding your ideal pricing depends upon understanding your customers and your value proposition.

We need more information before we can tell you what to charge and how to charge it.

<comment><AUTHOR> Nice! I see your guide here: [http://taprun.com/pricing/](http://taprun.com/pricing/) . I'll check it out, thanks!

I think the Github vs. Bitbucket question is a proxy that I can easily translate into my scenario. So in that case, what are the relevant factors?

<comment><USER6> It would definitely help if you said more about what your product is. But generally speaking, from the customer's perspective, you should charge for the thing that the customer can predict better up-front, so that it's easier for them to assess your value proposition. You might want to take into account your own costs as well, if applicable.

The interesting thing about Github vs. Bitbucket is that both usage patterns can make sense depending on the project and user. For individuals, you might have a lot of repositories for small projects that end up abandoned after a while. For teams, it might make more sense to have a flexible headcount.

<comment><AUTHOR> Ah, very good point, to consider what is easier for the customer to predict. I had not considered that. Thank you!

</comment></comment></comment></comment><comment><USER7> A quick and short answer is which one is your target customer segments want most.

</comment><comment><USER8> By the user is more typical for enterprise software (in general, not limited to SaaS) and probably more related to cost in comparison with by the project.</comment>