Wadler's critique of SICP (1987) - <AUTHOR> http://www.cs.kent.ac.uk/people/staff/dat/miranda/wadler87.pdf <comment><USER2> As others have mentioned, it's really a critique of their choice of Scheme rather than Miranda (a proto-Haskell).

As somebody who did most of the first chapter in both Haskell and Scheme, I think it's crazy for Wadler to not mention the downsides of a strict type system; it's listed only as a positive.

The main errors that I faced in writing my programs were type errors, where I knew what I wanted to do and spent upwards of several hours figuring out the magic incantations to convince the compiler to do what I wanted it to do. They were not type errors in the sense that the compiler was preventing me from making bugs, but rather type errors in the sense that I had to figure out a whole bunch of things about the type system in order to try and convince the compiler to accept my program.

There's a heavy cognitive load to programming in Haskell, and I hit many walls where I just had to Figure It Out™ before I could compile my programs.

(All this was as an experienced programmer. Maybe it would be easier for a newbie not used to dynamic languages!)

<comment><USER3> So you did first chapter of Scheme book in Haskell. Ie, in a language authors weren't prepared you for. And you get errors you're not expected as authors couldn't prepare you for them.

I think that's pretty straightforward thing that happened with you. The same will be with Scheme if you do some chapters from Learn You A Haskell.

Also, Haskell type system is one of most logical out there. Most type systems are either build around some weak logic with many exceptions (dynamic languages, C++, Java, C#), or just build from some limited number of cases (Ada, VHDL, Verilog).

The Haskell type system incorporates a logic system (some kind of constructive logic, I think). You actually learned that logic while "fighting the compiler" and you did some of first session with "proof assistant" which Haskell compiler/interpreter is.

So I think you're complaining for nothing.

Not that I stopping you, just my thoughts. ;)

<comment><USER2> I'm not trying to complain! I'm just saying that the type system is A Thing that people need to learn, and I think that a rigorous type system can be a hindrance to learners. As such, I think Wadler should have mentioned it as a possible downside of his hypothetical world where Abelson and Sussman used Miranda in SICP, even if only to debunk it.

<comment><USER3> "SICP in Miranda" would prepare reader for type system. So the reader of that imaginary version of SICP wouldn't encounter those roadblocks. And those who read Learn You A Haskell don't encounter ones.

<comment><USER2> I challenge both of those assertions. I haven't done LYAH, because I was learning haskell before it existed, but I did nearly every available haskell tutorial when I was learning.

As soon as you step out of bounds, you find strange corners of the type system. It's quite a complex beast, and many of the error messages are cryptic at best.

<comment><USER3> I had two colleagues who done LYAH and one who attacked a program with type level programming without LYAH (because of LYAH non-existense at the moment).

The first two didn't asked me or my colleague about anything type system related too often. After month or so of on-off work on his project one of them finished a complex translator from CPU description into VHDL.

The one who studied Haskell without LYAH did asked us. I attribute it to complexity of program he worked on.

My experience allows me to remain confirmed that proper exposure to Haskell type system greatly lessen associated burden.

I should note that we didn't encounter many errors in our Haskell code. Much less than in code in Java or C#.

<comment><USER2> An alternative solution: I'm thick! It's consistent with the evidence.

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> When I started to study programming, one of the languages we used was a dialect of Lisp. It didn't make much sense to me at the time because it only allowed me to do boring things, not cool things. Programming only started to make sense when we switched to C, I did some simple tasks first, then paired off with a classmate and we implemented a simple raytracer for a summer project. Graphics is neat.

So I'm skeptical of the idea that programming education needs to be even _more_ hardcore than Scheme and we need to use a lazy functional language instead. I think the right way to teach programming is to give students a simple procedural language (perhaps not even OO) that makes the computer do cool things, like graphics or webpages. The ones who are curious for more hardcore stuff can always discover it afterward, like I did.

<comment><USER5> I think that's more a libraries thing that a language thing. For example, you can do very cool, HTMLy things using Racket's web-server/servlet and Scheme continuations, which would be incredibly hard to do in C.

But I agree with your suggestion that C should be teached first. If anything, because C's "computational model" is very simple: you know what executes when; it encourages a more common, procedural way of thinking, and it's easy to do side effects in single-threaded C.

<comment><USER4> IMO what you call the "computational model" of Scheme is also a poor fit for beginning web programmers. The most straightforward model is exemplified by PHP: put a file on the server, type its path into a browser, get the page. Change the code, refresh the page. I'm not defending the language design choices PHP made, but it _nailed_ rapid development and deployment. Every environment that requires a recompile or restart feels like a huge step backward in comparison. I want to see my changes _instantly_ , dammit, we had it in 1995, why can't we have it now? :-)

<comment><USER6> You can do it in Lisp... even in a long-polling application you can change a class definition and all instances are immediately updated without restarting the image or anything.

</comment></comment></comment></comment><comment><USER7> Note here that the language used (Miranda) was perhaps the most influential language in the design and implementation of Haskell. The motivation for Haskell was mainly to explore the non-strict semantics of Miranda in an open environment with an open specification.

<comment><USER8> That is true.

There was a lot of programming language research in the 1970's and 1980's that is not really used in mainstream programming languages in these days.

A good collection of this material can be found in Simon Peyton-Jones' book "The implementation of functional programming languages". Probably out of print (my uni library has one), but freely available on the net, here's the link: [http://research.microsoft.com/en- us/um/people/simonpj/papers...](http://research.microsoft.com/en- us/um/people/simonpj/papers/slpj-book-1987/)

It's worth to note that since the Miranda days, Haskell has added type classes that can do some OO-style stuff and more, a sensible and efficient solution for IO that also works well in parallel and a kick-ass compiler and run time system.

<comment><USER3> Also Haskell slowly approach dependent type system with type functions (type and data families).

</comment></comment></comment><comment><USER9> This critique is just a bit unfair to Scheme, given his first couple examples being used to show how cumbersome it is compared to Miranda. Normally you'd have a fold function defined and use that instead:

        (define (sum x) (fold + 0 x))

Writing it this way is more idiomatic Scheme, and isn't really cumbersome.

<comment><USER10> I have never seen this sort of definition in scheme. Can you provide a pointer or three to show that this is 'idiomatic'?

<comment><USER11> See chapter 1.3 of SICP. It talks about the motivation and usage of higher order abstractions in general, and also about fold specifically, which they call 'accumulate'.

<comment><USER10> Ah yes, thanks, we discussed it several times over on the arc forum (e.g. <http://arclanguage.org/item?id=10791>)

I was asking more about code in the wild that _uses_ accumulate instead of the naive recursive formulation. That's typically what we mean by idiomatic.

I see foldl often in haskell, but rarely in scheme. I'm not disagreeing that it's a great idea, just that this is how it 'would have been written'. Personally I find the naive recursive formulation plenty clear.

</comment></comment></comment></comment><comment><USER12> If Jamie Oliver critiqued El Bulli, it doesn't mean he is advocating for Burger King. Miranda != Java.

</comment><comment><USER13> It's a critique of Lisp as educational language rather than one of SICP.

<comment><USER14> Yes, and for good reason. I have seen suggestions elsewhere on the internet that SICP be taught in Python and other languages, and have even seen "ports" of parts of the book to these other languages. But SICP is by now part of a family of textbooks from MIT courses (CLRS and Walter Rudin's Principles of Mathematical Analysis come to mind) that have been utilized and perfected and picked apart and cited for so long that they now are accepted as the "right way". In essence, this is why UC Berkeley's decision is such a sad one. SICP is a classic, and I would go so far as to state that it is beyond critique, in the sense that it does what it sets out to do to the point of perfection.

<comment><USER15> Honestly? It's the things you think are beyond criticism that most need to be criticized.

(and especially SICP, which inspires such a dogmatic belief in its advocates that it really ought to just be considered a religious text at this point)

<comment><USER16> No not really. SICP doesn't, whatsoever, inspires any sort of dogmatic beliefs. And I think it would be more appropriate to discuss the subject (SICP itself) rather than discuss what it's advocates says about it.

Simply put, it's more than an excellent book in the world of Computer Science. It is concise, clear, straightforward and challenging. And I think a text like that deserves every interest and respect from every computer scientist.

Respects.

<comment><USER15> Here's the statement I was replying to:

 _I would go so far as to state that it is beyond critique_

No matter how excellent a book someone might think it is, that's not a healthy attitude to have, and is essentially dogamtism.

<comment><USER16> Thanks for clarifying your point. I think this matter is subjective and there's nothing from my side to express.

</comment></comment></comment></comment></comment></comment><comment><USER17> Wadler's critique seems to be that Scheme is too imperative for his tastes and that programming ought to be more like maths.

In my opinion, comp sci is (or ought to be) about computers. And the underlying hardware of nearly all Turing-complete computers is imperative: there's a CPU which executes instructions one at a time, and which can vary which future instruction is to be executed based on the results of previous ones. I get the impression that Wadler, on the contrary, regards comp sci as a branch of mathematics rather than engineering.

<comment><USER18> You're not going to turn shlubs into Einsteins by forcing students' heads under water next to a calculus textbook.

I've suffered at the hands of "CS is all math" profs. I was in a course that subjected a bunch of CS-101 students to this kind of thing. A whole semester of "Here's a proof that this ten line program sums some numbers correctly."

A collective "Huh?" from the class.

It became crystal clear, after nearly everyone failed the mid-term, that things were not working. The profs held a "come to Jesus" class, where they explained everything; all the proofs, all the ten line programs that added or multiplied numbers, all the assignments full of greek symbols they made us learn. That all became crystal clear, and you could see the lightbulb blink on, just above everyone's head:

/Yup, they're trying to fuck us./

[I survived this course because I wrote my own functional language interpreter, then just typed their damned calculus into it for the programming assignments. What a crock.]

I take a real dim view of teaching "mathematically pure" CS to beginning students. You don't start riding a motorcycle by doing experiments with gryroscopes in a lab; you listen to an instructor, get on the damned thing and learn to ride in a safe environment. Save mathematical purity for after you get 'em hooked.

I've heard: "Oh, but if have them program in BASIC we're doing irreperable harm!"

Horsepucky. I'd rather have an ex-BASIC hacker at my side, helping me ship, than someone who can't write a hundred line program without dragging in declarations that nobody will be able to understand a week later. The best engineers I know weren't hurt by exposure to BASIC, or assembly; they were good at everything.

I guess I'm just a greasemonkey with a keyboard.

[I love Scheme, btw. I don't get functional languages that think it's okay to ditch the programs-as-data paradigm.]

<comment><USER3> >The best engineers I know weren't hurt by exposure to BASIC, or assembly; they were good at everything.

I wish I spend my time with assembly language with something more fruitful, like Coq (which was developed during my assembler-using days).

</comment></comment></comment><comment><USER19> Or you could teach Java/Assembly/C++/[insert least favorite language] first so that when the student finds Ruby/Python/Scheme/[insert favorite language] then s/he is amazed at how cool programming can be.</comment>


A blueprint to write copy that converts, even if you're an awful writer - <AUTHOR> https://docs.google.com/document/d/1PyMCM_by8IabaIrBYpj4QQnm7dP07rOdTdzqZv8dZTs/template/preview <comment><USER2> Caveat: I haven't read the doc as I can't get it to open.

There is no one size fits all blueprint.

There's a long tradition of people promoting their one true way to create sales copy. In the recent past, much of this has been a rehash of the 1950s style of long form copy that bashes the reader over the head until they finally relent.

For all the advice I see promoting that form, I don't see people using it other than in sketchy scenarios (MLM, etc).

Unless we are talking about content marketing, then we are not in an era of long form sales copy. Who has the patience?

You want to sell to someone then you need to understand their needs and preferences, then write accordingly.

<comment><USER3> >Unless we are talking about content marketing, then we are not in an era of long form sales copy. Who has the patience?

Even content marketing tends towards shorter content these days. Sure, there's the occasional in-depth longer-form piece about some topic that really demands more words or longer video/audio. But, in general like it or not, the trend is towards bite-size chunks, more graphical, easier to consume content.

Unfortunately, there's something a bit formulaic about a lot of digital marketing content. That doesn't mean it can't also be useful and engaging. But a lot of branded formulaic content (e.g. the mini-Dummies books) makes me roll my eyes a bit but it can be really effective.

</comment></comment><comment><USER4> Well it's certainly something watching this doc get live edited by so many people.

Probably the most ill advised way to post content tho, because the recommendations are actually quite good and simple. Unfortunately, it's getting vandalized pretty hard.

Not to mention, now absolutely noone should trust following a link from that document, which is also unfortunate, because you had various links to otherwise monetize this free content by redirecting to paid product (which I think is an absolutely fair way to monetize), but now noone can or should trust the links due to editability of the document. Fun experiment tho.

<comment><AUTHOR> Yeah that was my bad. I originally created the doc for my newsletter audience who I can trust to add useful comments/questions.

Posted to HN as an afterthought. Big mistake!

<comment><USER4> Interesting way to get feedback from your newsletter audience tho, I bet you get some really good info that way eh. Also good way to build a relationship with your audience. Cool idea and implementation!

</comment></comment></comment><comment><USER5> Does anyone have the original link? I would have liked to read this before all the edits occurred. It could be helpful in creating website copy for a number of startups/small businesses, so is clearly relevant to the HN audience. Unfortunately the linked format (template) and the edits make it not the best way to share the article.

</comment><comment><USER6> Love your tip to sell with the 'Bonus Tip' and use it in the guide itself.

</comment><comment><AUTHOR> OP/author here...

Firstly, sorry about the comments on the doc. I've deleted them and locked the doc so no more will appear. As of right now (and going forward), all links are correct and content is original.

Secondly, happy to answer any questions!

</comment><comment><USER7> links seem to be broken

</comment><comment><USER8> I suggest changing the link to be [https://docs.google.com/document/d/1PyMCM_by8IabaIrBYpj4QQnm...](https://docs.google.com/document/d/1PyMCM_by8IabaIrBYpj4QQnm7dP07rOdTdzqZv8dZTs/template/preview)

The current edit link drops you into a collaborative "Suggest edits" mode which isn't very HN-friendly.

<comment><USER9> Indeed, I see some wag has already suggested an edit from "Copy that _sells_ " to "Copy that _shills_ ".

<comment><USER10> wag: noun, A person who makes jokes; a joker.

Learned a new word today, thanks!</comment></comment></comment>


TRON has 50+ dApps, reaching 100M transactions in 173 Days – Justin Sun - <AUTHOR> http://mainbloq.io/2018/12/tron-has-50-dapps-reaching-100m-transactions-in-173-days-justin-sun/ <comment><USER2> didn't EoS hit that within the first 17 days?</comment>


MG Siegler cryptically announces Facebook's iPad App launches tomorrow - <AUTHOR> http://www.facebook.com/parislemon

<comment><AUTHOR> _"After sitting at a computer all day, switching to the iPad really is just about the best thing ever."_

And shortly after...

 _"Really impressed by Facebook's team. They're 10 hours away from the biggest day of their professional lives and they're troubleshooting silly little bugs for me and reaching out with answers. On the ball."_

And in a comment:

 _"If only there was a native iPad Facebook app..."_</comment>


Building a cross-platform desktop app with NW.js, React and Flux - <AUTHOR> https://meetfinch.com/blog/cross-platform-app-nwjs-react-flux <comment><USER3> Was recently looking for information on building desktop apps with Electron or NW.js. Found a few useful links regarding source code protection. In short: Documented method is v8 snapshots. They are compiled code, run slower and are not cross platform.

* Using v8 snapshots - [https://github.com/nwjs/nw.js/wiki/Protect-JavaScript-source...](https://github.com/nwjs/nw.js/wiki/Protect-JavaScript-source-code-with-v8-snapshot)

* Electron thread about source code protection - [https://github.com/atom/electron/issues/3041](https://github.com/atom/electron/issues/3041)

The second link has a lot of comments with useful information. One of them mentions that v8 snapshot format is documented and also that the actual code is shipped with the snapshot for future optimizations. nw.js just removes the sourcecode from the snapshot.

I'm curious if there is any reliable means of source code protection for Electron or NW.js apps.

</comment><comment><USER4> Long time user/supporter of both NW and Electron, It's worth noting that Electron has surpassed NW in almost every way at this point. If you want to program against clean node-style API's then Electron is the one to choose.

<comment><USER5> Good to have this kind of feedback from someone who used both. Could you expand the comparison on a few key points?

<comment><USER6> I'm not OP, but I've also used both and recently switched a production app from NW.js to Electron. I'm extremely happy with the decision to switch.

Benefits of Electron:

* Much more active development, more frequent releases, more quickly addressed bugs (this is huge)

* More active ecosystem

* Lower level API that requires you to perhaps do a bit more work to achieve the same cross-platform behavior but gives more control and fewer weird issues

* Much better documentation

* Much better error reporting. It may have just been me, but when I had a JS error in NW.js, the process would simply crash with no feedback whatsoever (which as you can imagine is infuriating). I opened a couple issues about it and never got any help or feedback. Electron pops up a dialog with a stack trace.

Edit:

* Another major difference is that NW.js uses a shared global object for communicating between the main process and renderer (BrowserWindow) processes. Electron uses evented message passing using an `ipc` (inter-process communication) module that makes for more robust code.

* Besides being lower-level, the API is just (IMO) a lot better/more powerful in general

<comment><USER7> About error reporting in nw.js, it's just like working with chrome (chromium), you see JS errors in: developer tools > console tab.

You could probably send messages to a log instead of the developer tools (might require editing the nw.js source code).

<comment><USER6> Yeah, I should have been more clear.

Regular JS in the renderer processes showed errors in the console as usual. However, if I tried using one of the NW.js APIs incorrectly in the renderer, or there was any error at all in the main process (which doesn't have devtools) it would just crash.

</comment></comment></comment></comment></comment><comment><USER8> I hope React Native will expand to desktop eventually, native controlled by javascript is the best of both worlds.

</comment><comment><USER9> So, what's the resident memory usage? That was part of why e.g. Java and Flex weren't that well received, and browser-based solutions didn't fare that well either.

Okay enough for something enterprise-y, but once your fancy new IRC/Slack/Twitter client takes up a gig of RAM...

<comment><USER10> My Gitter im instance been running for past 2-3 weeks and it only consumes 100 megs. It runs inside nwjs

</comment></comment><comment><USER11> I reallllly want someone to repackage how NW.js works to be able to ship just the app files, and have NW.js work like the JVM. Super tired of having 20 different instances of webkit

Very full guide though, down to release.

<comment><USER12> I for one do not. Desktop/laptop storage drives are huge now, RAM is plentiful, internet connections are fast. Time spent debugging horrific deranged multiple JVM setup nightmares, however, is as expensive as ever.

<comment><USER13> [https://en.wikipedia.org/wiki/Wirth%27s_law](https://en.wikipedia.org/wiki/Wirth%27s_law)

</comment></comment></comment><comment><USER14> The section about crossing the uncanny valley reminds me of this old rant about Microsoft Foundation Classes:

[https://www.relisoft.com/resource/libs.html](https://www.relisoft.com/resource/libs.html)

The author likens MFC to a specialized Lego set for building a pirate ship, whereas the Win32 API is a general Lego set. I think the analogy is much stronger if one replaces MFC with web tech in a native wrapper, and Win32 with any OS native toolkit.

</comment><comment><USER15> Really nice article, thorough and shows the pluses and minuses of this solution.

I noticed that they discarded the C++ option due to being unfamiliar with the language, but there might be an alternative: Qt's QML is a declarative language that's designed for easily creating interactive UIs and I think it's a great fit for a custom UI like the one in the article. The interesting part - one can embed and include JavaScript in a QML file ([http://doc.qt.io/qt-5/qtqml-index.html](http://doc.qt.io/qt-5/qtqml- index.html)).

<comment><USER16> This. For Tasktopus[1], I started with Electron, had a decent prototype in 2 weeks[2]. Then hit some issues - very rudimentary print support, large binary size, hard to protect source code. Decided to switch to Qt/QML. Very pleased with the result.

[1][https://gumroad.com/l/ADWm/tasktopus](https://gumroad.com/l/ADWm/tasktopus) [2][http://imgur.com/gallery/NZzEFKX](http://imgur.com/gallery/NZzEFKX)

<comment><USER17> How do you protect QML/Javascript source code?

<comment><USER16> You make it part of the Qt resource system[1], which gets it combined with your binary executable.

[1] [http://doc.qt.io/qt-5/qtquick-deployment.html#managing- resou...](http://doc.qt.io/qt-5/qtquick-deployment.html#managing-resource- files-with-the-qt-resource-system)

<comment><USER17> Thanks. Do you know if the binary packaging is obfuscated to discourage decompilation?

</comment></comment></comment></comment></comment><comment><USER18> I'd much rather use Java, and SWT, which implements native widgets than ship a browser without toolbars. They can even leverage their JS code with Nashorn or Rhino.

<comment><USER14> SWT is pretty good, and the fact that it uses native widgets makes it great for accessibility. Creating a well-behaved menu bar on OS X was tricky in my experience though. Also, how would you package the app? Ship the full Oracle JRE, or use something more lightweight like Avian?

<comment><USER18> I work as a web dev, I'm only a hobbyist wrt desktop programming, despite having worked on a small commercial app in Delphi. The toy apps I've built with SWT were tested only on Windows. I didn't even know about Avian - <USER2> reference. But if I had to ship an app, i'd leave it up to the user to install JRE, on the installation instructions.

</comment></comment></comment><comment><USER7> I think the intended package method is to get the user to first install nw.js then just give them the app files.

nw.js is backwards compatible, so if your app works now, it will probably work in future versions too!

If you do not care about Windows 7 you could use cardova instead.

<comment><USER19> I assume you mean Cordova?

[https://cordova.apache.org/](https://cordova.apache.org/)

</comment></comment><comment><USER20> Didn't see much of the Flux stuff explained.

<comment><USER21> From the article,

 _> This isn't a tutorial on using either library [React and Flux] but if you'd like to see one by all means let us know._

"let us know" is a link that directs you to [https://meetfinch.com/contact](https://meetfinch.com/contact)</comment></comment>


Howcolors.work - <AUTHOR> https://howcolors.work/ <comment><USER2> A few points on the page design: the whole layout jumping if you hover over a square is far from ideal. If you want to increase the padding on hover, you can offset with negative margins or use some other similar solution. The whole page shouldn't jump around when I hover over something.

Secondly, the click-on-the-box interaction is not all that intuitive, it took me a fair bit to even figure out I could (or should) click on the boxes. It might be a good idea to open one section by default and link the opened are with the colored square somehow.

<comment><AUTHOR> Thanks for the feedback, I fixed the page jump and also opened the RGB notation box by default.

</comment></comment><comment><AUTHOR> Website to show beginners the different CSS color notations.</comment>


Lotteries: America's $70B Shame - <AUTHOR> http://www.theatlantic.com/business/archive/2015/05/lotteries-americas-70-billion-shame/392870/?single_page=true&utm_content=buffer1dd2c&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer <comment><USER3> My father once won $100,000 from a scratch off ticket. It was a $20.00 scratch off ticket. I gave him crap for years over it because between playing Keno, and buying other scratch offs, he's probably spent close to that trying to recreate the effect.

The thing is, he's very serious about his lottery. He enters every losing ticket into a second chance registration on Maryland's lottery site. (This was how I got him to start using the internet, actually) He won a few times and knows what he's losing. He's not bad at math. He's not rich either, he lives off of a very small military pension and has a job filling vending machines on a route.

I've pressed him again and again about how stupid the lottery is. I've pointed out the math, the bad odds, the addictive design of the games.. you name it. His answer remains the same. A shrug and "It's fun." I have since realized after spending afternoons with him at the places he likes to play, that it's his own odd social network. He knows all the employees, the other regulars. He complains about politics to the other players. He sweet talks the old ladies behind the counter. It's his excuse to leave the house. He keeps making his mortgage payments, keeps making his wife dinner every night, and takes care of his mother. If he wants to blow his fun-money on lottery at this point, I've just quit arguing with him and I go play with him when I visit. Losing 40 bucks to spend the afternoon with my old man is a bargain, in my eyes.

<comment><USER4> I'm not surprised that there are anecdotes of people who play in a (mostly) harmless way. One question I have is whether there might be another way for your dad to have an equally fulfilling amount of fun without losing as much money. It would depend on the individual, obviously.

The problem with lotteries is that many of the players aren't like your dad. There are some serious ethical questions that arise when you think of lotteries are guaranteed to lose the vast majority of players a substantial amount of money:

1) If the state didn't run the lottery, who would? Would that money get funneled into public works if the state didn't run the lottery?

2) Is it ethical to market the lottery in order to create new players?

3) When the lottery is marketed (as it heavily is in many states), is it targeting vulnerable groups, like the poor?

4) Is playing the lottery an expression of hopelessness for some people? They know that their $5 is never going to multiply to $10 (the way it might for a wealthier person), so it's easier to risk that $5 for a chance to win $5 million.

<comment><USER5> > 4) Is playing the lottery an expression of hopelessness for some people? > They know that their $5 is never going to multiply to $10 (the way it might > for a wealthier person), so it's easier to risk that $5 for a chance to win > $5 million.

I think this is key. Turning $5 into $10 is impossible. Turning $5MM into $10MM is inevitable. The Lottery is a band-aid to treat the symptom (hopelessness). Address the root cause, which is the lack of opportunity for economic mobility.

<comment><USER6> >Turning $5MM into $10MM is inevitable.

What do you mean?

<comment><USER5> If you have only $5 in your pocket as this month's disposable income, there is no investment vehicle for turning that into $10. Besides putting it in a bank where it will lose value due to inflation, gambling may be the only non-zero investment opportunity available to you.

On the other hand, if you have $5MM in your pocket, there are tons of investment opportunities for you to choose from, from treasury bills to angel investing, limited only by your appetite for risk. You have an entire financial services industry that exists for the sole purpose of helping you turn that $5MM into $10MM.

</comment></comment></comment></comment></comment><comment> rm_-rf_slash "When you play the lottery, sometimes you win and sometimes you lose. But it's better than using drugs or alcohol because when you use drugs or alcohol, you always lose" \- "American Movie"

People who don't play the lottery are always so quick to dismiss it. They disregard how accessible it is - you don't need a next-gen console or flat- screen tv, just cash - as they disregard how independently fun it is - <USER2> could be sitting alone in a dark room with nothing but a lottery ticket in your hand and be perfectly satisfied with fantasies of winning. It's like discussing guns with people who will never use them.

Let's not get too carried away by sensationalism and look at this from a bird's-eye view: lotteries are great sources of revenue (better than state corporate income taxes? Holy cow!), they are low-health-risk (someone may need treatment for gambling addiction but it never hurts their lungs or livers), and they are easy to scale up and down.

If the regressive-tax-on-the-poor argument is too convincing for you to resist, then here's a solution: register lottery purchases so you can only buy $X in lottery tickets based on your $Y income. Just don't come crying to me when the state comes for your income and property taxes to make up the difference...

<comment><USER7> _" you could be sitting alone in a dark room with nothing but a lottery ticket in your hand and be perfectly satisfied with fantasies of winning"_

This is one of the biggest reasons I dislike the lottery, from a societal perspective: it satisfies people who would otherwise have an incentive to go out and create their own success. You can see this anytime the jackpots get big enough that non-players buy tickets. There is a noticeable drop in productivity as people sit back and fantasize about winning $1 billion or more. Instead of actually doing something that would improve their lives, they're happy sitting in the dark and fantasizing. If that's a one-day a year occurrence, fine. But its clearly not a one-day occurrence to the regular players, and I think it negatively impacts their lives far beyond the actual cost of the tickets.

<comment><USER5> You act as though everyone has the opportunity "to go out and create their own success," which is less and less true the poorer you are.

<comment><USER7> Let's assume you're right, and that many poor people have no opportunity to better their situation. That doesn't change the fact that some people absolutely do have the opportunity to better their situation, but choose not to because their desire for a better future is satisfied by the fantasy of winning the lottery. The lottery acts as a drain in these cases, not only on the individuals who continue to stagnate, but to the rest of us who would benefit from those individuals contributions.

I'll also note that I fundamentally disagree with your statement. Everyone has an opportunity to create their own success. Obviously not everyone has the same kinds of opportunities or the same number of opportunities. Those of us with enough time to comment on Hacker News probably have dozens of opportunities PER DAY to create our own success, whereas a poor black kid from Baltimore may only have one, and it may require him to wake up at 4am to go to work or stay up till midnight to educate himself. But those opportunities still exist, even if you're poor.

</comment></comment></comment></comment><comment><USER8> Really, people should pause before calling behavior that does not conform to their model or their own preferences "irrational".

The typical argument goes like "Expected monetary payoff is negative, therefore buying a lottery ticket an irrational decision" \-- but this ignores, for example, the possibility of winning a life-changing prize, that would provide enjoyment far above and beyond what e.g. investing money spent on lottery would, and there is no reason why this possibility cannot compensate for the expected loss. Technically speaking, claims of irrationality implicitly rely on assumption of concavity of preferences, but there are good reasons to think that it's not always correct.

<comment><USER5> Isn't the "Expected monetary payoff" of starting a company negative?

<comment><USER9> It's not purely chance how well a company will do.

And if you just consider the statistics I wouldn't have thought that the fraction of companies failing is that extreme for it to be negative in the expectation value (especially if you group it into different categories, etc.). Economically it sounds counter-intuitive to me as well.

</comment></comment></comment><comment><USER10> This issue boils down to the proper function of government: ensure people's freedom to act as they wish (barring negative impact on others), or enforce the "healthiest" behavior?

Yes, buying lottery tickets for any reason other than entertainment is irrational. But does that mean it shouldn't be allowed? People are _choosing_ to spend their money like this.

Personally, I prefer a government that lets people do stupid things -- e.g. buying a lottery ticket with the expectation of winning -- to a government that paternalistically enforces middle-class norms.

<comment><USER11> > "Personally, I prefer a government that lets people do stupid things"

What an ignorant statement to make. Are you okay with people making "stupid decisions" like smoking in public places ?

Are you okay with people making "stupid decisions" like driving drunk ?

Are you okay with people making "stupid decisions" like shooting up a school ?

Society works when we look out for each other - and not let people do whatever they think is "right".

<comment><USER12> I think his caveat of "barring negative impact on others" pretty much covers these cases.

<comment><USER11> > "barring negative impact on others"

You think taking what little money poor people have from them via allowing them to spend it on lottery does not have social consequences ?

<comment><USER13> Different methods of governing can basically all boil down to a simple balance scale:

On one side you have the rights of the individual and on the other side you have the rights of the community.

Some people tend to lean the scale toward individual rights and others toward community rights.

Smaller government tends to handle the balance by staying out of the way until it's necessary that they step in. Bigger government tends to handle the balance by marking clear (or blurry) lines and moving them when necessary.

<comment><USER10> This is exactly what I was trying to say. Well put.

</comment></comment></comment></comment></comment></comment><comment><USER14> I would never think of playing the lottery or engaging in any other form of gambling because I understand the odds are always in favor of the house. I understand that I'm going to lose money. What a terrible irony that we fund public education with a lottery that relies on participation by those who don't understand basic math?

But I see this as part of a larger trend of preying on the poor. Watching far- right media, I see poor people being told to invest heavily in gold, reverse mortgages, guns, and raging them up into sending all their money to political organizations whose sole purpose is to take money from the angry. And there are plenty of examples on the left as well (people investing in college degrees for the sake of college degrees without any idea if their field of study is a good investment or not). I don't know how we break these cycles and inspire low-income American citizens to temper their emotions and rationally invest in their futures.

<comment><USER15> That depends if the prize is large enough then the pot odds are such it does make sense to bet on the lottery.

<comment><USER16> 1\. This basically never happens.

2\. Don't compare to letting the money sit under a matress. Insteaad, compare with other investments.

Buying a lottery ticket doesn't make sense when measured purely in terms of profit, even when the expected profit is non-negative.

<comment><USER17> Then neither does buying a movie ticket make sense. Of course it doesn't make sense if you frame it as an investment. But people don't necessarily buy lottery tickets expecting to win and more than you or I sit down at a slot machine expecting to walk away with more money than we arrived with. They buy them as entertainment or a reason to hope or dream for a few days.

<comment><USER16> walshemj's comment was clearly referring to cases where the expected profit of a lottery ticket is positive ("pot odds are such it does make sense to bet on the lottery"). I'm working from walshemj's assumptions about how risk and benefit should be measured, which is in terms of monetary value.

</comment></comment></comment></comment></comment><comment><USER18> A lottery is a better investment than other crap the poor often buy. Crack, TVs, xboxes, alcohol all have a EROI of 0. A lottery at least is >0 . Better would be if we sold partials of VT(I) in the store at lottery ticket prices. $2 for a near 0 chance at 1B, or $2 for a near 100% chance at $4 given enough time.

<comment><USER19> This is a sad truth that's a lot less flashy of a headline, so it's not surprising it's not covered. You're unlikely to see an article with the title: "People who buy stupid shit they don't need and can't afford shocked to find they are still broke".

Much easier to blame the lottery. Yes, poorer people like to buy lottery tickets. They want a chance to rise up and be rich, and there's really no other way most of them can ever do that.

<comment><USER18> > They want a chance to rise up and be rich, and there's really no other way > most of them can ever do that.

Then maybe lottery tickets are actually smart.

</comment></comment></comment><comment><USER20> >According to the North American Association of State and Provincial Lotteries, lotteries took in $70.1 billion in sales in the 2014 fiscal year. That's more than Americans in all 50 states spent on sports tickets, books, video games, movie tickets, and recorded music sales.

One should be careful when making this sort of comparison-- at least from the standpoint of the overall economy. The cost of "producing the lottery" is more or less fixed relative to its revenue, i.e. its marginal cost is free, but it's not necessarily free for the other good they're comparing it to. For consumers to increase the number of movie tickets they buy or books they buy, more theaters have to be built or books have to be printed. The cost of producing the extra consumption goods is relevant, precisely because there is nearly zero cost of producing the consumer good that is a lotto ticket.

In other words, money is changing hands (mainly from the poor people's hands into the government's and from there who knows), but resources are not being consumed like they would be if we were constructing new movie theaters all over town. That particular aspect of the lottery is actually praiseworthy and might be missed by a simple comparison of consumer spending on it vs "all these other forms of entertainment combined".

<comment> rm_-rf_slash As I said elsewhere, it takes nothing more than a printer with ink and paper. No terminals, no coin-collectors, nothing else. We shouldn't antagonize a ruthlessly efficient method of revenue because people make bad decisions.

Whether it's killing a man or providing jobs to miners, the dynamite doesn't care.

</comment></comment><comment><USER21> For me lotteries is one of the reason, I have grown skeptical of State.

1\. They Lie, Lie about funding schools and lottery is the only way to do it.

2\. Lie about the Prize money, the advertisements of lottery are untruthful and a private entity would be charged with fraud.

3\. The practice of gaming the game, i.e. they try to make lotteries popular and sink a lot of money for advertising, they claim 50% goes for prizes but of the remaining 50% a lot goes to advertising than going to schools.

4\. Taxing the winning, splitting the wins. Even if you win, you will be short-charged depending on the number of winners.

5\. Exclude non-State entities from having their own lotteries, State monopoly.

6\. Corporate tax cuts are pretty much common in states that aggressively promote lottery, lotto and video poker.

Even if it is entertainment, which it is not, Government should not be in it. I am not against lotteries, they need to competitive and have should have a level transparency, that is currently lacking since the law makers are the law breakers.

<comment><USER22> > Even if it is entertainment, which it is not

Just because you don't find it entertaining does not mean it's not entertainment.

I'm not necessarily disagreeing with your other points, but gambling of all types is most certainly an entertainment product, regardless of its tendency to create addiction, etc.

</comment></comment><comment><USER23> I don't see it as preying on the poor. I see it as a hobby / investment of the poor due to thousands of other factors that already prey on the poor.

Imagine you have 0 chance of having any savings and barely staying ahead on your mortgage. The breakdown is this:

upper class: easy access to what you want and need middle class: easy access to what you need lower class: difficult access to what you need

If you are never going to have disposable income and forever be barely a paycheck ahead, what investments are available to you? You raise your child as well as you can for the school district and streets you live on, at best they go to a low-tier state school -> more debt. You can't retrain for a job because you are half a paycheck away from needing to take a second job.

In this situation, the outcomes are this: don't play lottery -> 100% stay poor play lottery -> 99.99999% stay poor

what do you choose?

</comment><comment><USER24> The poor do a lot of dumb things: They don't track their money, they rack up credit card debt, they don't plan to minimize taxes, they depend on payday loans and check cashing services, they drink and smoke and do drugs, they constantly overdraft their bank accounts, they spend too much on entertainment, etc. The middle class are better with this, mainly because they have more money and so are less likely to be fined for non-payment.

I know some family approaching 60 who are still paying off the house, 2 cars, and an RV. If that wasn't bad enough, they play the lottery every week because "somebody has to win".

I still think we should abolish social security, but after seeing countless examples of people racking up debt buying stuff they don't need and then depending on it in old age to avoid starving, it's almost enough to make me think it has some merit.

I feel like that entire line of thought with government-enforced retirement accounts leads to increasing taxes on the poor since they can't be trusted to responsibly spend it. Which actually might be what a lottery is.

</comment><comment><USER25> Lotteries are a self-assessed tax on poor critical thinking skills.

</comment><comment><USER26> Duplicate from two days ago: [http://www.theatlantic.com/business/archive/2015/05/lotterie...](http://www.theatlantic.com/business/archive/2015/05/lotteries- americas-70-billion-shame/392870/)

<comment><USER27> ITYM: [https://news.ycombinator.com/item?id=11365501](https://news.ycombinator.com/item?id=11365501)

</comment></comment><comment><USER28> Wow. What's going on in North and South Dakota that there's such a big divide?

<comment><USER29> In oil country the wages are really good and there isn't much to do.

<comment><USER27> That doesn't explain the _difference_ between North and South Dakota.

<comment><USER29> Aren't there a lot fewer oil workers in North Dakota?

<comment><USER27> Currently, with the price as low as it is, I don't know. While the "boom" was on, there were actually more in North Dakota.

</comment></comment></comment></comment></comment><comment><USER30> The government runs lotteries because otherwise criminal organizations would. Now if only the US government would apply this same 'harm reduction' strategy to other 'crimes' like marijuana use.

</comment><comment><USER31> Lotteries are really a great wait for the state to collect taxes. Unfortunately the way the are currently handled results in too much profiteering/skimming/corruption.

</comment><comment><USER32> We should abolish income tax and introduce mandatory lottery

<comment> rm_-rf_slash When I'm done laughing I'm going to take this suggestion to my college's economics and federal policy faculty...

</comment></comment><comment><USER33> I'm pretty sure we let the government run the lotteries here in the US because it's a lot better than when the gangs would run them. It's much the same argument for drug legalization, really... if people are going to be stupid, and you know they're going to be stupid, at least help them be smart about being stupid.

<comment><USER34> We should also cut tax on lottery tickets. It would reduce economic inequality.

[http://econlog.econlib.org/archives/2015/05/low_hanging_fru....](http://econlog.econlib.org/archives/2015/05/low_hanging_fru.html)

</comment></comment><comment><USER18> @OP put May 2015 in the title.</comment>


Scaling VMware with Diane Greene: Notes from CS183C - <AUTHOR> https://medium.com/@mccannatron/scaling-vmware-with-diane-greene-class-15-notes-of-stanford-university-s-cs183c-73134ca73f7b#.sn0g2ap58 <comment><USER2> I was disappointed that this was about scaling the company and not the product. Given that the content was from a Stanford CS course, I was expecting the latter.

<comment><USER3> Not sure why you would expect that from the title - _VMware_ is the name of a large company with many products ([http://www.vmware.com/products](http://www.vmware.com/products)), none of which are named simply "VMware" (i.e. as opposed to a startup with a single product that shares a name with the company - "scaling SnapChat" is ambiguous, "scaling VMware" is not).

<comment><USER4> > none of which are named simply "VMware"

Ehh... my pedantic alarm was triggered. For a while the only product VMware created was what we now call Workstation, so much so that when people say "I'm using VMware", it's not at all uncommon that they mean "I'm using VMware Workstation." (The Workstation binary is still named "vmware" for this historical reason.)</comment></comment></comment>


Supreme Court Justice Anthony Kennedy Announces Retirement - <AUTHOR> https://www.wsj.com/articles/supreme-court-justice-anthony-kennedy-announces-retirement-1530122570 <comment><USER2> Thank you for sharing.

For those who can't access the full article: [https://outline.com/3PBfAC](https://outline.com/3PBfAC)</comment>


Show HN: The Wishler, an online wishlist - <AUTHOR> https://thewishler.com/ <comment><AUTHOR> Submitter/Creator here, just wanted to note that this was created to fill a void my family and I needed but I thought others might find it useful. Of course I used the opportunity to learn some new technologies and play around with some new tools :)</comment>


A brilliant use of recursion - <AUTHOR> http://jithusunnyk.blogspot.com/2011/09/pascals-triangle-c.html

<comment><USER2> This is pretty and hopelessly inefficient, in the same way that functions for calculating the fibonacci sequence can be pretty and hopelessly inefficient.

<comment><AUTHOR> True. But it looks beautiful.

<comment> saiko-chriskun I think you're mistaking beauty for common sense :P

<comment><AUTHOR> True. I got carried away with that one line magic :)</comment></comment></comment></comment>


Apple Hires ex-Rolls Royce Director - <AUTHOR> http://thenextweb.com/?p=569976

<comment><USER2> This looks like an interesting cross-industry hire? Does this happen a lot.

I assume this has a lot to do with regulatory issues in these regions as outline in the article....</comment>


RON: Replicated Object Notation - <AUTHOR> https://github.com/gritzko/ron <comment><USER2> It would be nice to have "Quick Start Guide"

<comment><USER3> It is not a drop-in thing at the moment, that's for sure.

</comment></comment><comment><USER4> I sure hope that some of the tools is named Weasley.

<comment><USER4> Or Hermione for that matter.</comment></comment>


How Many U.S. Federal Laws Are There? (2013) - <AUTHOR> http://blogs.loc.gov/law/2013/03/frequent-reference-question-how-many-federal-laws-are-there/ <comment><AUTHOR> I'm starting to think that the principle that "ignorance is no excuse" may be wrong.

<comment><USER2> I think there is a joke that everyone commits three felons a day. So ignorance might be a valid excuse or there is just too many laws to even think of enforcing them.

<comment><USER3> No joke, it's in fact a book about how the average white collar worker indeed commits an average of 3 Federal felonies a day: _Three Felonies A Day: How the Feds Target the Innocent_ ([http://www.amazon.com/Three-Felonies-Day-Target- Innocent/dp/...](http://www.amazon.com/Three-Felonies-Day-Target- Innocent/dp/1594035229)). Forward by Alan Dershowitz, which implies it's not out to lunch.

</comment></comment></comment><comment><USER4> We are almost at 2016. Shouldn't something as important as this be maintained under version control, available for free for everyone in easy formats, updated as frequently as needed, with a proper API etc?

<comment><USER3> Surely you jest.

Probably the most chilling thing about the book _Gun Laws of America, Every Federal Gun Law on the Books_ ([http://www.amazon.com/Gun-Laws-America-6th- Edition/dp/188963...](http://www.amazon.com/Gun-Laws-America-6th- Edition/dp/1889632244)) is how many of the ones restricting the government or are otherwise favorable to gun owners were somehow never incorporated into the U.S. Code. In the last "Statutes at Large" chapter of the 5th edition are 28 items, each from a separate bill that was passed.

Note that on its face, not incorporating all the language of bills into the U.S. code is frequently reasonable, e.g. N words that result in changing "10 years" into "15 years". Or legality neutral funding language. But the 28 examples Korwin and company found are not innocent.

I wonder how many other examples might be found in other fields of law....

<comment><USER4> If someone were to do it (make all the laws available in one place, in machine readable format, version control it etc) - is that even possible?

Wikimedia might be a good candidate to take on such massive task (they'd need to restrict write access to actual lawyers)

</comment></comment></comment><comment><USER5> You would think that at some point, the law books would have been digitized, so this could just be a database query.

<comment><USER6> Also it can be visualized to see which USC's have the most, least, common, contradictions. Talk about 'big government.' This can easily be solved. Most importantly, we can see if there are any gaps rather than waiting for a court case to pop-up and waste time/money.</comment></comment>


Opera is really nice. - <AUTHOR> http://tomforb.es/opera-is-really-nice <comment> dao- Opera doesn't just use Blink, it is based on Chromium. If you have performance issues with Chrome, Opera likely isn't the solution you're looking for. Chances are tomforb.es felt it was faster because it had a new, fresh user profile without history and other cruft. Or it was just the placebo effect.

<comment><AUTHOR> I mainly had performance issues with Firefox, to be honest I don't think Chrome was that bad (a bit sluggish sometimes perhaps). Even if it is the placebo effect it doesn't matter, I'm happy feeling like its faster.

<comment><USER2> And what was the version of Firefox you had these problems with? They made their browser much leaner and faster. It consumes far less memory than Chrome on my machine.

</comment></comment></comment><comment><USER3> I'm sorry, what? I'd say it's the opposite, Opera is _not_ nice anymore. Mouse gestures, mail and IRC client, huge options, its own engine, Dragonfly, tab stacking, Linux client... things why I still use Opera 12. That blog post is so uninformed and biased it sickens me.

(sorry about the rage mode, but seeing this at the top of HN really makes me furious knowing how dumbed down even Opera 20 is compared to 12 or 11)

<comment><USER4> FWIW, Mouse gestures still work in the new Opera.

My biggest gripe is that I used to love how opera could actually navigate its history very quickly. Forward and back are slow now like chrome.

<comment><USER3> Mouse gestures in Chropera work only partially. In fact, all I managed to get working is back, new tab and close tab. And yeah, "caching" (or whatever they call it) visited sites (even closed tabs) is a very handy thing.

</comment></comment></comment><comment><USER5> Since they switched to be chromium-based they stopped publishing for linux. is there someone who knows why? I can't see any technical problem stopping them..

<comment><USER6> Here is the link for linux version: [http://www.opera.com/computer/linux](http://www.opera.com/computer/linux)

<comment><USER7> There is someone who cryptically mentioned, I think on the thread about measuring a startup's product viability by whether or not employees voluntarily used said product, being a developer for Opera and his management team alienated a lot of developers by blowing off Linux and denigrating interest in it as a platform with supporting and the general low blow jokes.

I am too lazy to search. Maybe you or someone else will point you in the right direction.

</comment></comment></comment><comment><USER8> So far Mobile Opera is the only browser to support:

* Readable text size after double-tap-to-zoom

* Text reflow

I still can't find a browser that remembers my zoom level per site.

<comment><USER9> Chrome remembers zoom level per site.

<comment><USER8> Not Mobile Chrome.

</comment></comment></comment><comment><USER10> Without the layout engine, what can they offer that Chromium doesn't?

<comment><USER11> Try it out. it has a nice feature-set that is mostly on par with the other browsers. here's a glory screen shot I just took: [http://i.imgur.com/NpzUWWB.png](http://i.imgur.com/NpzUWWB.png) (I'm ok with people knowing my home directory path)

In the mobile world they offer access to their compressing proxy built-in, similar to [http://www.khelekore.org/rabbit/](http://www.khelekore.org/rabbit/) so that you can save your OTA bits. I haven't found any other mobile browser that allows you to push your web connection through a proxy like that.

<comment><USER12> Chrome for Android and iOS optionally does this, now. [1]

[1] [https://developers.google.com/chrome/mobile/docs/data- compre...](https://developers.google.com/chrome/mobile/docs/data-compression)

<comment><USER13> Note that Opera's "Off-Road mode" in present in Opera for Desktop as well, so it's not a mobile-only feature. Here's a screenshot that shows how to enable it: [http://i.imgur.com/rvGkQrI.png](http://i.imgur.com/rvGkQrI.png)

</comment></comment></comment></comment><comment><USER14> I'm an average-Joe in browsing matters and well, it did a good first impression on me in regard to browsing itself, but then I got frustrated with the default options stuck on me. For instance the theming - is it supposed to change only the background of the browser's internal pages? That's something one barely encounters. I couldn't change the color of the window itself which is actually something I'll have permanently before my eyes, save the full- screen browsing! ...and as more I come to use it, the more that default intense blue color grew on bothering me. I've tried to look for ways to solve it several times, and each time giving up in frustration - it's not only only the inability to change a default skin, it doesn't actually leave you much control over almost anything. The browser isn't just brought up with a design that removes the interface clout leaving it buried somewhere on a deeper reach, it removes it outright leaving you bare-bones!

Maybe there are solutions that would solve my needs, but those weren't to be found easily when I still had patience.

</comment><comment><USER15> I miss Dragonfly so much. It felt leagues beyond anything Chrome and Firefox had.

<comment><USER16> Dragonfly was/is by far the best debugger of any browser. I still use Opera 12 so I still use it, but for how much longer remains to be seen... I don't have high hopes for the new Opera being supported on Linux and even if it is, dragonfly is gone.

</comment></comment><comment><USER17> I like Opera a lot, especially on the road with crappy internet connections. You are right, I should switch on the desktop, too.

</comment><comment><USER18> Especially since they're from Europe, if I were them I'd probably focus on anti-tracking and privacy, much like what Epic Browser [1] is trying to do. But I think Opera would have the brand name recognition (and better technical expertise, too) to pull it off. Become THE privacy browser.

Later on, start to support next-gen stuff like Namecoin for P2P DNS, Ethereum, and other stuff like that. At their 1 percent market share or whatever they have now on the desktop, what do they have to lose? I only see upside, because there's a strong and growing community that would support and spread the word about such a browser, if it was really that good for privacy and so forward- looking towards a much more secure and privacy-friendly Internet.

[1] [https://www.epicbrowser.com/](https://www.epicbrowser.com/)

</comment><comment><USER19> I am amazed at how fast opera has changed. I used to have installed, but haven't gotten around to in a year. It has changed from this rebellious "doing it their own way" kind of browser to "chrome with a different interface".

Which I understand, the browser business must be pretty harsh when you're one of the few players that actually needs the revenue.

</comment><comment><USER20> I like it too but I just couldn't get used to the fact that the top pixel line is not part of a tab I keep clicking above the tabs, it annoyed me back to Firefox. ([http://my.opera.com/community/forums/topic.dml?id=1418282](http://my.opera.com/community/forums/topic.dml?id=1418282))

</comment><comment><USER21> Opera WAS very nice. Fast, great keyboard navigation, native mouse gestures, native tabs on the left instead of above.

But sometimes it would just hang, some sites would not show properly.

I kept it around for way too long. Now I use firefox with a tab addon and curse its sluggishness..

There just don't seem to be any browsers that don't suck in some way.

</comment><comment><USER22> My opinion about Opera was always sort of ambivalent.

The sad thing though is, now its nothing more than yet another Webkit (or even Chrome) shell

[http://www.binarypassion.net/2013/05/a-farewell-to- opera.htm...](http://www.binarypassion.net/2013/05/a-farewell-to-opera.html)

</comment><comment><USER23> Until I can put my tabs on the left of the window with the new releases, I'm staying with Opera 12.16.

<comment><USER24> I'm still using Opera 11.xx. Just at work I have Opera 12.xx. That browser line was effectively killed and there is nothing even remotely comparable. I tried to switch to both Chrome and FF several times, but it didn't went well. Now I use multiple browsers. One for normal web and one for stuff like gmail (that has trouble running in the old Opera).

<comment><USER16> Gmail's HTML-only mode works fine in Opera 12, and unless you really like the (imho slow and bloated) interface of regular gmail, it is _better_. The only issues I had were bulk deleting spam and trash, it took me only a 5 line userscript to add a "select-all" button and the problem is solved. Also worth mentioning that this interface isn't exactly html-only, it still has some assisting javascript like automatically completing typed addresses from your contacts.

</comment></comment></comment><comment><USER25> I have Opera installed on my Nexus 10 tab. Performs so much better than Firefox/Chrome - it doesn't get stuck whenever loading a website.

Also used to use it on Windows. But now I've moved on to Ubuntu it kind of sucks - fonts for Opera sucks so much.

</comment><comment><USER26> I used to be an Opera die-hard fan--mouse gestures, built-in email and RSS client, tabs much more functional than any other browser, and very fast. It's had a long and circuitous journey, and much has changed, but the more choice the better.

</comment><comment><USER27> Does anyone know if the new version of chrome can download bittorrents? I don't have any windows/mac computers to try it out at the moment.

</comment><comment><USER28> I used to be able to run 300 tabs (of websites some years ago) at once without lag in Opera 11. It is the most efficient browser I've used.

On an AMD Turion.

</comment><comment><USER29> I'll never use a non-free browser except when forced to.

<comment><USER13> What is your definition of 'non-free browser'?

<comment><USER29> A browser denying one or more of the basic software freedoms: use, study, share, improve.

[http://fsfe.org/about/basics/freesoftware.html](http://fsfe.org/about/basics/freesoftware.html)

</comment></comment></comment><comment><USER30> 502 Bad Gateway here。。。

</comment><comment><USER31> Surprisingly nice.</comment>


What is the average monthly revenue of an early-stage startup? - <AUTHOR> http://spreadsheets.google.com/viewform?key=pfzV-fWRlSq90R-t5IQQDRQ

<comment><USER2> No idea about the average (arithmetic mean), but I'd bet that the median is zero...

<comment><USER3> Google probably knows (and is aware of) the growth in revenue (if any) and the growth in users (via Google analytics - their "free" competitor to WebTrends). I haven't read the TOS/Privacy for Google Analytics recently but I would not be surprised if there is some legal loophole that lets them look at your startup's site visit data.

</comment></comment><comment><USER4> Seems to completely depend:

Google -- $0 for a long time.

Youtube -- some ad revenues

Microsoft -- $$ from IBM

Biotech -- nothing for 7 years, then $$$</comment>


Social Distancing – if you have to leave home, help others do it safely - <AUTHOR> https://socialdistancing.app/ <comment><AUTHOR> The best way for you and me to fight COVID-19 is to #stayathome and avoid crowds! If you absolutely have to go outside, this app is here to help you do it safely. Share your location and use this map to avoid crowds.

Your fully anonymised location data is used purely to be displayed on this map for 5 minutes. Your data won't be used for any other purpose. In order to provide most accurate location data, use this app on your .

Avoid crowds and help #flattenthecurve!

<comment><USER2> O kurczę Polak. Fajnie wam wyszło i naprawdę ciekawy pomysł :)

<comment><AUTHOR> Dzięki, proszę przekazać znajomym! :)</comment></comment></comment>


Power Outages Coincide in LA, New York, and San Francisco - <AUTHOR> https://www.inverse.com/article/30631-lax-sf-ny-power-outages <comment><USER3> LA's outages are widely scattered, and are being blamed on high winds.[1] Crews are fixing distribution lines and transformers. Probably unrelated.

The NYC subway outages may have originated at two locations. The MTA says they lost signal power at 42nd/Grand Central, and utility power from Con Ed at 7th Avenue. Trains can run through the 7th Avenue station but the station is out of action. (The NYC subway system has three separate power systems - traction, signal, and utility.) No info on cause yet, but the problems are mostly fixed or bypassed now.

SF's outage is still vague, but is being blamed on a fire at the big substation on Larkin. SFFD says they've been using large amounts of CO2 to put out smoldering insulation. SFFD also says they're caught up after getting 20 people out of stuck elevators. PG&E isn't saying much.[2] They list "cause" as "unknown". They probably can't even get into the Larkin substation yet.

[1] [https://www.sce.com/wps/portal/home/outage-center/check- outa...](https://www.sce.com/wps/portal/home/outage-center/check-outage- status) [2] [https://m.pge.com/#outages](https://m.pge.com/#outages)

</comment><comment><USER4> Hmmmm...I'm trying to verify the outage in LA. The tweet about the power outage at LAX is from today, but the other tweet in the example is from 2/22/17\. No articles about a power outage in LA are popping up on google. Something about this article feels a bit click-baity.

<comment><USER5> Seems like something is going on in LA: [https://m.sce.com/outage/OutageMap.html](https://m.sce.com/outage/OutageMap.html)

<comment><USER6> Unless a bunch of outages have cleared up, looks pretty typical to me. The biggest outage I'm seeing on that map is labelled as planned maintenance, affecting 66 people. Nothing major on the LADWP map either.

</comment></comment></comment><comment><USER7> It could be worse, from the Wikipedia page of notable power outages (yes there is such a page):

"On 7 June (2016), about 100% of Kenya went without power for over 4 hours. The nationwide blackout was caused after a rogue monkey got into a power station and triggered a nationwide blackout. However, it is notable that only about 1 million citizens were affected by the outage as the World Bank estimates that only 23% of the country's population have access to electricity."

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

I am not seeing any of these power outages being due to crazy al-qaeda terrorists or any of the other bad guys our government clowns get excitable about. It's the rogue monkeys and Enrons I fear.

<comment><USER4> Let's not forget Cybersquirrel1. #cyberwar4ever

[http://cybersquirrel1.com/](http://cybersquirrel1.com/)

</comment></comment><comment><USER8> Search "power outages" in Google news and scroll through a few days worth. They happen all the time, everywhere. I would be very surprised if there's any correlation across events here.

</comment><comment><USER9> The outage in SF shutdown the company I work at for most of the day. I work remote so was unaffected but everyone else ended up being unable to work.

This was an outage of one substation for less than 12 hours. Now imagine an 8.0+ earthquake anywhere in the bay area. The whole city could be shutdown for prolonged periods.

You don't put all your servers in one datacenter so why would you put all of your employees in one building? I am not sure why companies don't encourage at least 50% of their employees to be remote. Seems like basic DR planning to me.

<comment><USER10> Risk.

</comment></comment><comment><USER11> The seeming reluctance to spend lots of money on infrastructure maintenance and modernization really worries me, especially when I read these kinds of stories.

<comment><USER12> Isn't this a self-correcting problem? The grid will become more robust when there is an economic need to do so.

<comment><USER13> Alas, the "economic need" will be immediate when the outage happens, and the damage will be substantial because it hasn't been updated yet. Possibly expensive enough to make an update unlikely.

The "move fast and break things" attitude does not work for infrastructure. And no, the market will not magically correct all things. Major infrastructure problems are expensive enough that damage to them causes feedback loops.

</comment></comment></comment><comment><USER4> I lived in NYC during the 2001 blackout. It was the first power outage since 1977. The lights don't go out in NYC...it's a really big deal when they do.

<comment><USER14> you mean 2003

<comment><USER4> You're right, it was 2003. I was only 21 when I moved there and it was all a bit of a blur.

</comment></comment></comment><comment><USER15> I was once informed by someone working at a major energy company that if the utility frequency dropped to a certain specific value it could cause uncontrollable systemwide cascading blackouts. I don't remember the value, but I wish I did.

A large outage like SF, if it wasn't done in a controlled manner, could be grid overload. Or to prevent grid overload, utilities might need to shut down a regular on a high voltage supply line, which causes an overload somewhere else in the system, and automatic cutoff switches force a blackout.

Similar events have happened over the years starting in a remote state and ending in a California blackout. Often it's due to aging infrastructure which goes down unexpectedly, which then causes a chain reaction that hits other parts of the grid. If winds took down power lines in LA, this could cause a backup which could take out SF. It's possible that either LA or New York could have caused the SF blackout, or vice versa. If one part of the grid starts to go down it puts pressure on the rest, and things start to pop.

Note: I'm talking out my ass here, but it's based on news reports of previous outages.

<comment><USER3> The power grid does not work like that. See this tutorial, "PJM 101" for background.[1] All of today's events are in distribution, not the HV transmission network. The NYC event involves tiny loads by grid standards. PJM isn't reporting any major emergencies today. Neither is CAISO.

[1] [http://pjm.com/Globals/Training/Courses/ol- pjm-101.aspx](http://pjm.com/Globals/Training/Courses/ol-pjm-101.aspx)

</comment></comment><comment><USER16> Could be another warning shot from someone - 2013 silicon valley substation sniper attack [http://money.cnn.com/2015/10/16/technology/sniper-power- grid...](http://money.cnn.com/2015/10/16/technology/sniper-power-grid/)

</comment><comment><USER17> North Korean retaliation for us hacking their missile launch last week?

<comment><USER18> North Korea doesn't exactly have a large pool of technically skilled people available.

<comment><USER17> What makes you think that?

<comment><USER18> It's a country where only top level officials have access to the internet, most places don't have working electricity, and there's virtually no interaction with the rest of the world.

</comment></comment></comment></comment><comment><USER19> Hasn't there been increased electromagnetic activity on the surface of the sun throughout the week?

[http://www.solarham.net/older.htm](http://www.solarham.net/older.htm)

Is the interference causing unexpected surges in old, unshielded equipment and infrastructure?

</comment><comment><USER20> Anyone else read ted koppel's book?

<comment><USER21> Yea, came here to post about it. Was a riveting read with some great interviews. It being Ted Koppel, he got access to some really high placed people. [1]

1: [https://www.nytimes.com/2015/11/22/books/review/lights- out-b...](https://www.nytimes.com/2015/11/22/books/review/lights-out-by-ted- koppel.html?_r=0)

<comment><USER20> One thing I liked about it was how he dove into how the incentives and limits on federal authority combine to make it very hard to get the power industries more tightly regulated wrt security/resilience

</comment></comment></comment><comment><USER22> Crazy conspiracy theory: the Chinese and/or Russians have most likely already compromised our power grid and other infrastructure control systems and are waging covert economical war by disrupting important services.

<comment><USER23> The biggest part of that economic war would be letting everyone know the grid has been compromised, not the actual outage, there's no advantage to keeping it secret.

<comment><USER24> I'd argue that taking out the power in three major economic centers at the same time would be the opposite of keeping it secret. But I completely agree with your reasoning.

</comment></comment></comment><comment><USER25> I have a friend with a very important deliverable due today and he was not ready. I'm not saying he's responsible, but in the realm of things that make you go hmm...

</comment><comment><USER26> Interestingly, in India this would have close to zero impact. Because of the rate of industrial growth combined with a massive shortfall of energy - <USER2> everyone in urban India has private diesel-fueled electrical generators (yes - including individual homes and small startups).

Plus as a cultural thing, Indians have designed power failure into their daily lives. Interestingly trivia - the most popular Nokia phone in India was the one that had a dedicated torch.

</comment><comment><USER27> Coincidence.

</comment><comment><USER28> It's impressive how the article is reporting "as of 1pm" in SF, at 12:30 PDT...</comment>


We built a multiplayer game last week (like Battleship) and would love feedback - <AUTHOR> http://www.sinkabuddy.com

<comment><USER2> Here's what I -really- would like to see:

No login, just give me a url (<http://sinkabuddy.com/f8jNsh1o>) that I can IM to a coworker to start playing with. I don't want to have to require both of us to sign in with Facebook just to play a video game during scrum.

<comment><AUTHOR> I think the general theme that we understood from the early feedback is facebook connect isn't really the preferred option. Our stats show the same. We saw 7% of visitors in the last couple days actually click facebook connect. Although the experience in the end is better since it's easier to connect with friends I think it's up to us to show a real use case as to why a user should connect.

The link/guest type signup is something we'll probably do quickly, invite via email or url.

</comment></comment><comment><USER3> Why do you need my real name, facebook profile picture, gender, networks, facebook user id, list of facebook friends, and birthday for me to play this game?

<comment><AUTHOR> I guess the logic is to make it easy to connect with a list of friends and be able to play against 'real' people. I do think it makes sense to allow simple registration or anonymous type play, we'll probably add that as we get time.

does the birthday make it more awkward? We thought about removing that permission..

<comment><USER4> birthday seems unnecessary, but otherwise remember that the HN crowd will complain about FB login far more than the general population would.

<comment><USER5> Maybe you want to give credits/points/stars as a birthday present(or something like that). But that should be something the user chooses to opt-in.

</comment></comment></comment></comment><comment><USER6> Log in with Facebook? No thanks.

Also, the graphic design is pretty bad.

<comment><USER7> In addition to the above, A help or introduction to new or changed game mechanics would be useful.

<comment><AUTHOR> Def agree here, we need help/how to play sections

<comment><USER4> It's always better to do an interactive tutorial the first time someone plays. You can count on very very few people ever voluntarily clicking a help section and reading what lies within and on similarly few people actually reading any amount of text you show the first time they play presented more than a couple sentences at a time.

</comment></comment></comment></comment><comment><USER8> As soon as it required a FB login, I closed the browser.

Stop forcing social logins, especially ones tied to networks where there's a high degree of likelihood you'll post random shit "as me" that I most likely don't want to be posted.

This diagram might explain our reaction a bit better: <http://i.imgur.com/oXtWdH2.png>

</comment><comment><USER4> You should let players save starting configurations so games can get going faster once a matchup is made. I'm now waiting for my buddy to set up. Alternatively don't start looking for players to match me with until I have finished set up. Either way I really really want to start playing and I really really don't want to wait for the other player to get ready.

EDIT: Aaaand when I refresh the page it seems like everything is gone.

EDIT 2: There should be a way to return to my list of games from the game screen.

EDIT 3: I notice there is a way - you click the top bar - but it should explicit, you have the space to include a back button on the side anyway. I also am unclear on how to remove the position of a ship I've already placed, and the error messages need to be polished a little. "You have placed too many lage_ship ships" isn't super user friendly.

<comment><AUTHOR> Ok I think that was a known one, it's still saved in the backend just not reflecting.

Saving config would be good, i'll throw that on the list of things for this weekend :). Thanks for the feedback

<comment><USER4> They'll be more once I actually get a game going!

Where are you folks located? Interesting time to post :)

<comment><AUTHOR> SF Bay area, extremely odd time :)

<comment><USER4> Waddya know. Me too.

</comment></comment></comment></comment></comment><comment><USER9> What about those of us without Facebook? :(

<comment><AUTHOR> So far it seems as if facebook connect is a huge fail, even from the early analytics, it seems like a guest option or a way to register w/o facebook is key. I think we'll be adding that as quick as possible! :)

<comment><USER4> Depending on your demographic of players this may be a mistake. HN will complain a lot about Facebook login but take words with friends as an example - you can play the tutorial without logging in and then it's FB login to play for real. Period. Why? Because a major driver of growth for them is Facebook. They've optimized their flow so that the average player invites other players, they used OpenGraph to post a lot when players take in-game actions, basically Facebook allows them to grow their userbase by having each user spread the game to more users.

The fact that so many games have Facebook only login is a sign that when done right, with a demographic of players that accept it (almost all, the SF Bay Area is way more anti facebook-login and sharing than most of the rest of the world), the players you lose by having only Facebook login are made up for by the viral spreading you get from Facebook users.

The caveat of course being that you have to design, from the ground up, for the game to spread through Facebook. If you don't, it's not worth it. But if you don't, you need some other strategy to make the game spread, and there are very very few unfortunately.

<comment><USER10> _Depending on your demographic of players this may be a mistake._

How could having the option of registering sans Facebook be a mistake? In what way could broadening your target audience be a poor choice?

Hinging your cart entirely like that (becoming a sharecropper that is completely dependent on the goodwill and cooperation of a much bigger partner) is seldom a responsible business strategy.

<comment><USER4> Adding email registration can be a mistake in situations when users who would have signed up through Facebook now sign up through email instead. Depending on what % of your growth is driven by virality vs organic discovery and how viral your fb users vs email users are (could be a 10X difference or more) you can be better off losing say 50% of players but having the remaining 50% sign in through Facebook than having 80% sign in through email and 20% through Facebook. It really depends on your numbers.

<comment><USER11> I have a gut-level reaction to this reasoning, which is that I believe that when you provide less value to your users you will likely get fewer users no matter how well you've justified the opposite case to yourself.

But I also have some specific reasoning that leads me to believe it's not a poor choice to provide another way to sign in. Signing in with facebook is extremely easy compared to normal signup paths. What this means is that most people who trust you with facebook will still sign in via facebook. And I don't think there's much of an argument that people who don't trust you with facebook will be signing in with facebook if it's the only option.

You can always allow them to link with facebook later, after they know what the game is, and after you've explained to them why linking will be valuable to them.

<comment><USER12> > that I believe that when you provide less value to your users

You're assuming that more options always increases value, but this is not the case. See Apple and, let's say, the Samsung Jitterbug for counter-examples.

<comment><USER11> Yeah, forcing users to make a decision or navigate a cluttered UI are both ways in which options decrease value. So adding options can suck if people aren't going to exercise them (which is what I see with a lot of options that get added to software -- only a very tiny percentage of users ever tweak them.)

However the claim I was debating was that a second sign-in method would be bad because people would exercise it. The argument was basically that it's bad _because_ it's increasing value for users in a way that decreases value for you. And I don't think adding a second sign-in method to a page that currently only has one button really causes a difficult or confusing decision or creates a cluttered UI.

I suppose I still do see your point, though, since I personally wouldn't go much beyond that -- "sign in with facebook or twitter or google or browserid or github or create an account or or or" sounds like a miserable experience.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> why? because i can. <http://oi34.tinypic.com/2w20whk.jpg>

<comment><AUTHOR> Weird, I know we didn't put any restrictions on the web front end to do that but the backend should reject the setup. I'll have to look through and figure out why it's not rejecting it.. thanks for pointing it out though!

<comment><USER14> I have the same issue.

</comment></comment></comment><comment><USER15> You shouldn't have to install Facebook to play any game. So you lost me 5 seconds in.

<comment> iso8859-1 How do you install Facebook? :)

</comment></comment><comment><USER16> I've head a similar game idea brewing for a long time: massively-multiplayer Battleship! Think Words with Friends meets Eve Online. :)

</comment><comment><USER17> Would be nice to have a messaging system or at least a way to prompt the other person. Never know when they've stepped away.

</comment><comment><USER18> Love the initiative, don't have a FB account though. Is it reasonable to ask to be able to log in with my GitHub account?

Since I don't have access to the game, could someone explain the part of the game design that goes beyond the concepts of the classic Battleship game?

<comment><AUTHOR> Ideally it should be any of the major web sign on methods (fb, google, twitter, linked-in) Github would be cool though. Maybe if we get some time we'll hack that together.

<comment><USER6> Why should I need to sign in at all? Why not give the option to play as a guest?

<comment><AUTHOR> I guess we were so caught up with the 'social' aspect of facebook we didn't realize guest play would be good.

We didn't even add the play against a random opponent until today =\\..

<comment><USER19> Forget about Facebook, it takes weeks before someone responds to game request and response is usually "Deny request and block app" in best cases and "Unfriend" in others.</comment></comment></comment></comment></comment>


Mixpanel founder says Have An Impactful Vision Before You Start Building - <AUTHOR> http://sprouter.com/blog/have-an-impactful-vision-before-you-start-building/

<comment><USER2> Interesting article. I'm going to a presentation of theirs in a few weeks. <http://www.meetup.com/SF-Growth-Hackers/events/106188332/></comment>


Memory is the Next Platform - <AUTHOR> http://www.nextplatform.com/2016/10/10/memory-next-platform/ <comment><USER2> The biggest problem with 3d chips is the heat from the logic die down below. It might not be an issue when the logic is simple and doesn't do a lot.

But once you want to put complex and fast logic there, it's a big issue, the same issue preventing putting memory on top of the CPU.

So it would be interesting to see how they would approach this.

<comment><USER3> One important aspect of memory is that you don't access all of it all the time. So I'm not sure if heat is such a problem here.

<comment><USER4> So it would make sense to put it on the bottom layer, not the top.

</comment></comment></comment><comment><USER5> Another approach to "deep learning" hardware. We now have another highly distributable problem with a volume market. The last one was graphics rendering, which created the GPU market.

</comment><comment><USER6> High throughput memory with simple arithmetic units is similar to a GPU?

<comment><USER7> Sure, why not? If you're able to connect the memory units (? don't know the technical term for this) together into the right topologies, you can do very fast parallel computations.</comment></comment>


Toyota Manufacturing Principles - <AUTHOR> http://josephmcohen.com/post/71536977591/toyota-manufacturing-principles <comment><USER2> Its hard to talk about Japanese management techniques without talking about Deming.

So Jidoka is pretty much Deming #11. Poka-yoke is obviously Deming #3. Kaizen is Deming #5. At least according to the "Out of the Crisis" poster I used to have.

I keep my Deming fandom quiet, he's about as anti-american as you can get. I'd get less flack if I said I was a Marxist. Its too bad, Deming was a genius. I'd say this whole topic is NSFW because you can't get further away from modern American management than Deming. Its safer to quote Marx at work than Deming.

<comment><USER3> Weren't Deming's ideas the genesis of the whole "Total Quality Management" fad in the 90's? What happened?

<comment><USER4> We'll work on product quality just after we make our numbers for the quarter. Honest.

</comment></comment></comment><comment><USER5> It amazes me how many of us are willing to endure non-poka-yoke, that is, processes that are inherently mistake-ready. My current fave is timesheet rekeying by our admin. We're small, so it isn't too bad, but it cannot scale, and as the admin becomes more harried as we grow, mistakes will be made. Guaranteed.

Poka yoke. My new favourite process term. The other two are important, vital even, but poka yoke has to be paramount.

(If you jidoka without poka yoke, how long before a worker is hurt by a machine?)

</comment><comment><USER6> Could such attitudes form part of an explanation for the JRPG/WRPG gulf?

JRPGs typically encourage training, finding efficient ways to grind (improving processes) and perfecting character builds through trial and error - at least on the first playthrough. This seems like a Kaizen approach.

WRPGs typically encourage a focus on fight-by-fight tactics and a priori evaluation of build options and strategies to find an 'optimal' team, tactic, strategy and build. This seems like a 'secret formula' approach to management I've seen a lot in my own professional life.

At their worst, JRPGs are grindfests where the gameplay consists of finding ways to minimise that grind or maximise efficiency.

At their worst, WRPGs are spreadsheet and inventory management simulators.

I think I am stretching a little here (many Japanese RPGs are indistinguishable from so-called WRPGs), and I appreciate that this is something of a tangent, it was just something that struck me.

<comment><USER7> I think tendencies in rpgs and relative success/feasabilty of _actually_ realizing lean production is more likely manifestations of underlying cultural differences than any direct relation with these (concrete) management/process ideas.

<comment><USER6> Oh yes, that's what I was thinking.

I wasn't implying that kaizen was causing culture which was causing JRPGs. I was implying that the same culture was causing kaizen and JRPGs.

I was also talking only about kaizen, rather than about any of the other management ideas touched on in the article.

</comment></comment></comment><comment><USER8> If you're interested in Toyota's manufacturing principles, "The Toyota Way" by Jeffrey Liker is worth reading.

<comment><USER9> That's a good book.

Brief history of TPS: [http://www.sae.org/manufacturing/lean/column/leanjun01.htm](http://www.sae.org/manufacturing/lean/column/leanjun01.htm)

</comment></comment><comment><USER10> I have extended the Toyota stuff in my own special way...

1) Imagine every piece of data in your code is a component, a physical widget.

2) Imagine that component has mass proportional to its size as measured in 1's and 0's.

3) Imagine you have to have some person or some robot move it from place to place, maybe via a warehouse (hard disk somewhere).

4) Now question what you are doing and whether it is efficient.

Take the simple but common scenario of working with someone that knows Dropbox but not how to use FTP, e.g. a graphic designer. They upload their stuff to Dropbox, taking hours to do because they are on the slow end of an ADSL connection. They then send you the Dropbox link for you to then download and upload to the server for them. Now imagine all of those 1's and 0's have physical mass and have to move physical distances back and fore across the Atlantic.

This whole process is so not 'just in time' manufacturing ways of doing things.

Clearly this also goes on in your own code as well as with inane procedures needed to work with non-techies. Sometimes thinking data has physical mass helps you see whether what you are doing is efficient.

</comment><comment><USER11> Some blogs for those interested in Toyota's management practices

      - http://www.gembapantarei.com/
      - http://superfactory.typepad.com/
      - http://www.leanblog.org/
      - http://management.curiouscatblog.net/category/lean-thinking/

</comment><comment><USER12> Am I the only one who remembers this?

[http://www.edn.com/design/automotive/4423428/Toyota-s- killer...](http://www.edn.com/design/automotive/4423428/Toyota-s-killer- firmware--Bad-design-and-its-consequences)

<comment><USER13> Didn't it come out in the trial that the vehicle computer source code was utter crap by any standards?</comment></comment>


Zeromq: Fast Messaging - <AUTHOR> http://www.zeromq.org/

<comment><USER2> So the point about ZeroMQ's performance is that it removes almost all the messaging overhead, leaving only the network stack and network protocol. The main cost in conventional messaging is what sits above the network stack, in the messaging products and in the applications.

ZeroMQ gets rid of almost all this cost, so lets applications approach full network speed, as zinxq said, 10Gb on a 10Gb network.

There is a very big difference between a test program at each end of a network, and an application framework like ZeroMQ, which includes routing and queuing of messages based on the AMQP semantics of exchange and queue. The real beauty of ZeroMQ is the way it lets developers build fast multithreaded applications without ever worrying about how to scale - everything works as asynchronous messages, between processes on one machine, or processes distributed across wide networks.

It is possible to get about 2M kernel traversals per second, in one direction, per core. So with a perfect scalable messaging product that does not bypass the kernel and TCP/IP stack, you can hope for up to 1M messages per second per core. Depending on the size of the message you can thus saturate any network.

Apart from ZeroMQ, no existing messaging actually manages this. The very best closed-source products in this space manage 1M messages per second, which is already a big number.

To get to the stated goals, ZeroMQ will need to bypass TCP, bypass parts of the kernel, and probably move parts of its routing into silicon.

</comment><comment><USER3> The note that they get 2.5 million messages per second (and they mention 512byte messages). I don't doubt this is true but so what? All they are quoting (from my quick math) is the speed of a 10G network.

I can write a small program to stream 512byte messages from one machine to another on a 10G network and get 2.5 million messages across too. They're also assuming the network connection is setup and that the messages are fully formatted and ready to send. They also dont have any messaging acknowledgment or anything.

Please check my math: (I was lax with 1000 or 1024, but results are similar)

k = 1024

meg = 1024 x 1024 = 1048576

Gigbit network = 1048576 x 1000= 1048576000

10Gigibit network = 1048576000 x 10 = 10485760000

Convert from bits to bytes:

10485760000 / 8 = 1310720000 bytes per second

i.e., 1310720000 is the number of bytes that a 10G network can push per second. Note, thats raw - TCP overhead and such will eat some measurable portion.

how many 512 byte messages fit in that?

1310720000/512 = 2,560,000 (just like they said)

I'm wondering if they actually tested this or just did this math. Because again, this has nothing to do with their product, its just the throughput of a 10G network - and again, these numbers don't factor the 40byte TCP headers per packet.

So.. if we made a webserver out of their message infrastructure (even lets say, just a static webserver that only serves 512 byte pages ) - we can get 2.5million pages served per second?

<comment><USER4> You should have probably read more closely before writin this diatribe: they specifically note in several places that they do not use TCP and can also max out on 4x Infiniband as well as 10GigE. They use UDP as their transport for ZeroMQ messages.

</comment></comment><comment><USER5> The way it's written, it's not "Zero M Q" it's actually "Null M Q." On early personal computers like the Apple II, the null-set symbol was used in the display font as zero, so maybe that's a reference to this.

</comment><comment><USER6> > I can write a small program to stream 512byte messages from one machine to > another on a 10G network and get 2.5 million messages across too.

Hey, common, do you really believe you can pass the networking stack up and down 2.5 million times in a second?

<comment><USER7> you do not have to go up and down 2.5M times/sec - unles you are batching messages. but have to take care about latency big care. btw on zeromq website is nice chart latency vs. throughput - worth to have a look.</comment></comment>