Alan Kay Answers "Is There a Successor to Smalltalk?" - <AUTHOR> https://www.quora.com/Is-there-a-programming-language-thats-effectively-a-successor-to-Smalltalk/answer/Alan-Kay-11?share=1 <comment><USER3> Kay starts off by citing Moore's law, but misses that Moore's Law hasn't been kind to Smalltalk. Specifically, CPU power has grown at a faster rate than memory bandwidth, to the point that going to main memory is hundreds of times slower than the L1 cache.

I believe the pendulum is swinging back from dynamic languages to compiled languages with stronger static guarantees. Languages that are parsimonious with memory and give you control over the layout when you need it.

Don't get me wrong. Smalltalk is a hugely influential language and we're better for having it, but it was designed in an era where hardware had very different performance characteristics from today's hardware.

<comment><USER4> Citing performance (especially related to micro-optimization) everytime we discuss language design is not a right thing to do. Most applications don't require or benefit from such micro-optimization(tight control of layout).

> but it was designed in an era where hardware had very different performance > characteristics from today's hardware.

Exactly, the era of 256k memory computers are over. Programmer time and correctness is more valuable than making sure everything fits in L1 cache.

<comment><USER3> You're missing my point. When we had 256k memory computers we didn't have caches because memory access was uniform. As time goes on, fitting in cache is getting more important, not less.

</comment></comment></comment><comment><USER5> Smalltalk inspired the languages I grew up with. I'd say that they're worthy successors.

I was introduced to programming at school using LOGO when I was 7 years old. My dad found a broken Mac Plus and told me I could keep it if I could fix it. So I learned basic hardware repair (swap out the motherboard). Having my own computer gave me a sense of responsibility and independence that I never had before.

When I was 11, he bought me an iBook. I also saved up my pocket money (allowance) for an iPod.

I wanted more apps on the iPod, and was interested in the Notes feature. I taught myself AppleScript to scrape websites and convert the HTML to 1000-character iPod Notes TXT files. This included my English textbooks - <USER2> read Shakespeare on an iPod in 2003 so I didn't need to carry a heavy book. I also wrote many scripts for iTunes.

All of this was self-taught, without textbooks or YouTube or tutorials online. It was even before StackOverflow. How did I learn?

The syntax is easy. There's a single button to compile & run. The code is auto-formatted in colour. And there are lots of APIs to every other app.

As a Computer Science class project, I spent months writing a database program for SMS messages using Java. But for myself, I spent half a day coding a converter AppleScript to put those SMS text files into blank MP3s and store them with iTunes. All the fancy features (smart playlists, playlist folders) were already done!

Programming is not scripting - you have to use libraries instead of leveraging other apps. But I see the successor to SmallTalk being a scripting language with a lot of APIs. Like AppleScript, but with better support for cross- platform and GUIs.

<comment><USER6> > The syntax is easy

That made me chuckle. I've tried Applescript from time to time but always given up with it in frustration having failed after repeated attempts to find whatever particular Englishey construction might do what I want (or anything for that matter). Perhaps its approach doesn't work well for programmers (or just for me).

</comment></comment><comment><USER7> 10000 lines for an os , plus gui, plus media player, plus... i suppose smalltalk was used as a glue over an api written with a lower level language ?

I don't understand how one could build just a kernel with the required graphical drivers with that few number of lines... But maybe at that time the requirements for each part of the system were orders of magnitude simpler (memory protection, scheduling, fault isolation, graphical functionalities,...).

<comment><USER8> The only API was the machine instruction set, the lower level language was the microcode language used to define machine instructions. For example, the bitblt operation used to move graphics around on the screen was a machine instruction implemented in microcode. Ditto for network etc. At boot time, the Alto and later Xerox machines that ran Smalltalk loaded a different microcoded instruction set for each language: Smalltalk, Lisp, Mesa, BCPL ... Then the whole system was written in that language. Details appear in the many papers and reports linked here:

[http://xeroxalto.computerhistory.org/xerox_alto_file_system_...](http://xeroxalto.computerhistory.org/xerox_alto_file_system_archive.html)

I just noticed that site includes the code, apparently including the microcode, in addition to papers and reports! (I'm not sure if the microcode programs are included in Kay's 10 - 20,000 line estimate.)

<comment><USER7> Thanks for the info !

I'm still having a hard time understanding how having to ability to program your own "assembly" operation through microcodes could reduce the number of lines for huge programs that drastically. At worst you could still code those operations with the higher level language (smalltalk)... I can imagine how that would make things slower, but that's another issue.

Another thing i wonder as someone that hasn't coded in assembly since school : isn't the set of low level instructions required to build most regular programs pretty much settled now ? I'm not talking about high performance or 3D graphics, or AI. Only things personal computers have been doing for the last 30 years.

Put it differently: supposing intel gave use the possibility to reprogram a large set of its assembly instruction using microcodes, would the linux codebase be radically smaller ?

<comment><USER9> > the linux codebase be radically smaller ?

I believe Linux isn't built the same way the Smalltalk system was. One glaring difference is the use of C - with that you can't get very high level and are always programming at a very low level. You also force all integrations to be at a very low leve, given how the ABI and syscalls work.

You can do quite a bit more if you use a higher level language with very good meta programming, for instance Lisp or Smalltalk. E.g., you could imagine very high level abstractions that get translated to lower level logic automatically. Unfortunately, this is not an area that has been extensively adopted IMO, and the mainstream thinking is we need to use lower level languages for operating systems and such.

> supposing intel gave use the possibility to reprogram a large set of its > assembly instruction using microcodes

Actually Alan Kay has been critical of Intel not doing this. It may not affect Linux much but it will definitely open the door for systems using more advanced techniques, specifically the ability to build high level emulators. See [https://news.ycombinator.com/item?id=15282739](https://news.ycombinator.com/item?id=15282739) for more.

<comment><AUTHOR> It sort-of depends on what you mean by "low level". You can play very sophisticated games with C and present a high-level interface to functionality.

</comment></comment></comment></comment></comment><comment><USER10> He didn't mention some of the stuff Viewpoints was working on which seems to have petered out (although maybe "bad funders" was a dig at that). I'd like to know what happened to those projects.

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

<comment> loup-vaillant The STEPS was more or less finished if I recall correctly. The last report took forever to get public, but they did get a proof of concept out.

Many people asked for something usable, but that wasn't really the goal, so they didn't do the polishing —it sure takes work, but it doesn't prove much.

We can still take the ideas, though. We could integrate some of them in the current ecosystem to write simpler programs, or even simpler ecosystems. How about something like squeak or pharo, only 10 times simpler?</comment></comment>


GNU Make in Detail for Beginners - <AUTHOR> http://www.linuxforu.com/2012/06/gnu-make-in-detail-for-beginners/ <comment><USER2> I used to write a column called "Ask Mr. Make" for CM Crossroads. I ended up turning it into a self-published book called "GNU Make Unleashed" and it contains lots of information like this (all the way to very advanced topics).

[http://www.lulu.com/shop/john-graham-cumming/gnu-make- unleas...](http://www.lulu.com/shop/john-graham-cumming/gnu-make- unleashed/paperback/product-2937580.html)

If you don't like the book format then the original articles (which I cleaned up and improved for the book) are here:

[http://blog.jgc.org/2010/01/update-list-of-my-gnu-make- artic...](http://blog.jgc.org/2010/01/update-list-of-my-gnu-make- articles.html)

Also, I created a useful 'standard library' of functions for GNU Make which can be found here: <http://gmsl.sf.net/>

<comment><USER3> A digression but .. CM Crossroads has gone downhill for a while now. Recently it took three or four emails from me for them to remove some spam hacked into their site.

</comment></comment><comment><USER4> Thank you for a good article. Even I learned some new stuff. However, there was a major omission: automatic dependency generation. Every now and then I forget how it's done and try to find a good source on the net, but they're really scarce. On the other hand, there are tons of small "your first makefile" tutorials (this article is better than the average).

Here's my Makefile boilerplate. It build single executable from all .c files in this directory and scans for include file dependencies to properly cause recompilation when a header file is touched.

      INCS=-I./
      LIBS=-lglfw -lGLEW
      CFLAGS=-std=gnu99 -g -ggdb -W -Wall -Wextra -pedantic
      CFLAGS+=$(INCS)
      CFLAGS+=-march=native -mno-80387 -mfpmath=sse -O3
      SRCS=$(wildcard *.c)
      OBJS=$(SRCS:.c=.o)
      DEPS=$(SRCS:.c=.d)
      EXECUTABLE=main

      .PHONY: all clean
      all: $(EXECUTABLE)

      $(EXECUTABLE): $(OBJS)
      	$(CC) $(CFLAGS) $(LIBS) -o $@ $^
      %.o: %.c
      	$(CC) $(CFLAGS) -c -o $@ $<
      %.d: %.c
      	$(CC) $(CFLAGS) -MM -o $@ $<

      -include $(DEPS)

      clean:
      	rm -f $(EXECUTABLE)
      	rm -f $(OBJS) $(DEPS)

If anyone has a better one (preferably with out-of-source build to put .d and .o files to a better place), please share it.

<comment><USER5> You might want to provide separate CFLAGS and LDFLAGS.

Also, I prefer adding -MMD to CFLAGS instead of having an additional rule for dependency generation: This way, you won't unnecessarily trigger dependency generation on targets which do not build objects like clean.

<comment><USER6> (Sorry, I misread the above post, but I believe LDLIBS is the Makefile built- in variable for libraries to link.)

Actually, in this case, I believe LDLIBS would be more appropriate since the OP isn't passing any flags to `ld` but rather the libraries for `ld` to link. I ended up getting hit be this in a simple Makefile a few weeks ago that worked in Fedora but failed in Ubuntu.

The target was "%.o: %.c", which make auto-expands to be (something like):

        $(CC) $(CFLAGS) $(LDFLAGS) $@ $^ $(LDLIBS)

But I had placed the libraries in LDFLAGS, instead of LDLIBS which caused Ubuntu to fail at finding a function in one of the libraries. Moving the libraries to LDLIBS solved the problem.

<comment><USER5> I was more concerned about passing CFLAGS when linking - he already has a LIBS variable; you're right that the 'canonical' name for his LIBS variable is LDLIBS (as well as LOADLIBES - anyone an idea where that name came from?).

EDIT: stop editing your answer while I'm writing my own ;)

According to the manual, the built-in rule for linking an executable `n` from a single object file is

        $(CC) $(LDFLAGS) n.o $(LOADLIBES) $(LDLIBS)

</comment></comment></comment></comment><comment><USER7> Fair warning: GNU make cannot handle directory names or file names which contain spaces. This is a show-stopper defect which has been present since the day it was written and shows no signs of ever being fixed.

<comment><USER8> Why would you have a space in a directory/file name though? I wouldn't call this a show-stopper.

<comment><USER7> Program Files

My Documents

Also, why wouldn't I? Why shouldn't I? There isn't a single file system that prevents me from doing so and there isn't a single other computer program in the world which has a problem with it.

<comment><USER9> I understand you are making a point, one which I largely agree with, but:

 _there isn't a single other computer program in the world which has a problem with it_

is a bit too much hyperbole -- there is some really really bad software out there.

<comment><USER7> That's a fair point. Strawberry Perl, I'm looking at you.

I stand by the rest of what I said, though. If a piece of software can't handle spaces in paths, the software is broken. I'm not adding a top-level directory to my C: drive just to appease it. I'll use something else.

</comment></comment></comment></comment></comment><comment><USER10> Sigh, yet another article giving advice about how to use make as a kind of general-purpose language. It's not. Forget all the crap with wildcards, conditionals, filename globbing, etc. and use it for what it is: a program that takes as input a DAG and a timestamp for each node, and executes rules when predecessor(s) of some node are newer than the node itself.

Take make for what it is and use a proper programming language to handle Makefile generation, installation, etc.

<comment><USER11>
      c:\>copy con m.bat
      cl foo.c bar.c baz.c boz.c
      ^Z

</comment></comment><comment><USER12> I really appreciate that this article talks about using Make in contexts other than just compiling software. I've used it in the past to automate bioinformatics analysis pipelines. Unfortunately, I ultimately found that it did not really have the flexibility that I needed for more complex analyses, because of various limitations such as the inability to handle multiple output files from a single rule. I also couldn't figure out how to do automatic dependency generation in the general case (not just for C files).

<comment><USER13> I figure you already solved that problem, but maybe <http://gittup.org/tup/> is general enough for your use case?

<comment><USER12> No, I haven't solved that problem. tup looks really useful. Thanks for the suggestion!

<comment><USER14> It's worth highlighting here how Tup differs fundamentally from Make in that you specify the DAG from the bottom-up, rather than the top-down as in Make.

That is to say, with the top-down scheme used by Make you think about and write things down in this kind of order:

      1. executable <- object files
      2. object files <- source files

Whereas in Tup you think and write bottom-up, like this:

      1. source files -> object files
      2. object files -> executable

... which is more akin to how you would write a simple shell script for your build, with all of the commands in the order that they need to be executed. But you still get the time saving of files not being rebuilt if their sources haven't changed, which is the point of using a build system over a shell script in the first place.

To put it another way, Make is declarative like a functional language, whereas Tup more like an imperative language. If you're like me, building is a chore and a build system is supposed to make my life easier, so if it's very much more difficult than a shell script then I can't be bothered with it. Like most programmers I'm more at home with imperative languages than functional; and looking at other people's Makefiles tends to do my head in.

Having said that while Tup has less cruft and some better features (eg. multiple output files as per the parent poster's wish) than Make, it's still a domain-specific language and as such its overall features are limited to what its creator decided were sufficient to his definition of "building programs" for the sake of terser syntax. So, if you're like me you may prefer to hurry on to the 'ultimate' step which is to just use a general-purpose language with a helper library for running build commands. I currently use fabricate.py (<http://code.google.com/p/fabricate/>) which provides a 'run("shell command")' function to a Python script that runs the command while hooking system calls to spy on the command's inputs and outputs, then saves the command-line and the input/output file names to a file ('.deps') so next time it can check whether the command needs to be re-run or not.

Of course in a general-purpose language such as Python you can do just about anything you like and don't have problems with silly little things like spaces in strings (though see below). While the resulting script may not be as short as the 'ideal' Makefile or Tupfile which could be nearly empty with all their implicit rules taken into account, I'm of the view that explicit is better than implicit.

Couple of specific fabricate.py caveats - being on Windows, I had to do some hackery on my copy of the library to make the dependency detection work better, and to allow for supplying the dependency filenames manually as a fallback. And, the documentation of that 'run()' function could be better (in short, you shouldn't just supply a full string as you would type it at the command line; you should convert those space-seperated command-line arguments into comma-seperated Python arguments, and Fabricate will automatically quote any argument that contains a space. I have no connection with the project but I should really see if I can get into their wiki there and add a little doc laying out the subtleties of it; it does work out in the end). That said, I couldn't be much happier now; it works like a champ everywhere I've tried it including C++, Java, ActionScript and Haxe.

The other downside of bottom-up/imperative style is that it doesn't lend itself automatically to parallel builds (cf. an oft-noted difference between imperative and functional languages in general). I hear it's possible if you plan for it (<http://code.google.com/p/fabricate/wiki/ParallelBuilding>) though personally my projects have not been big enough to bother trying this so far.

<comment><USER12> Thanks for another interesting suggestion. Reading the fabricate "how it works" page, I see that you can subclass it to implement your own dependency- determination code, which is cool.

</comment></comment></comment></comment></comment><comment><USER15> Great article! I could have only wished for such fine introductory material when I was starting off with Make. It would be nice if the docs themselves had a similar chapter.

One thing that I've always wanted from Make was a way of writing long commands with less escaping and without continuation characters. Something like _heredoc_ for Make.

For example, the following is just too arcane and I would by all means move the body of the command into a separate file:

        compress:
          find -iname '*.html' -print0 | \
          while IFS="" read -r -d "" fn; do \
            old=$$(stat -c "%s" "$$fn"); \
            java -jar htmlcompressor.jar "$$fn" -o "$$fn"; \
            new=$$(stat -c "%s" "$$fn"); \
            delta=$$(echo "scale=2 ; 100 - ($$new/$$old) * 100" | bc); \
            echo "compressed $${fn}: $${old}/$${new} $${delta}%"; \
          done;

Assuming there is no interpolation between Make and Bash, why not provide a way of writing the command as naturally as possible:

        compress:
          %cmd -flags -that -control -escaping << EOF
          find -iname '*.html' -print0 | while IFS="" read -r -d "" fn; do
            old=$(stat -c "%s" "${fn}")

            java -jar htmlcompressor.jar "${fn}" -o "${fn}"
            new=$(stat -c "%s" "${fn}")

            delta=$(echo "scale=2 ; 100 - (${new}/${old}) * 100" | bc)
            echo "compressed ${fn}: ${old}/${new} ${delta}%"
          done
          EOF

Of course, shell and Make have a lot of conflicting syntax that would make this into a hard problem.

</comment><comment><USER16> This paper provides really valuable insights about Make's /modus operandi/ and desired usage:

<http://miller.emu.id.au/pmiller/books/rmch/>

</comment><comment><USER17> I used to be a pretty good GNU Make 'expert'. I must admit that I'm glad that I've been lucky enough to be able to purge this arcane and esoteric knowledge from my head. Long live .PHONY!

</comment><comment><USER18> Is recursive make not considered harmful, i.e. best practice is to instead include makefiles from subdirectories ( <http://aegis.sourceforge.net/auug97.pdf> )?

<comment><USER19> Including makefiles from subdirectories is not recursive make. Recursive make is reinvoking make on a subdirectory.

<comment><USER18> Ehhh, that's what I said? In the article he takes about reinvoking make using $(MAKE), having mentioned changing to a subdirectory in the previous paragraph.

</comment></comment></comment><comment><USER3> It would be nice to Make tutorials to mention the simplest possible Makefile ... none at all.

1\. Create something.c

2\. make something

Look, no Makefile!

<comment><USER20> What about when?

"Large projects can contain thousands of lines of code, distributed in multiple source files, written by many developers and arranged in several subdirectories."

</comment></comment><comment><USER21> Assuming you have GNU Make installed, go to your terminal and run `info make'. Quite a read but comprehensive.</comment>


Why are the missing Malaysian Airlines passengers' phones still ringing? - <AUTHOR> http://www.dailymail.co.uk/news/article-2578020/Why-cellphones-missing-Malaysian-Airlines-passengers-ringing-Family-members-claim-loved-ones-smartphones-active.html

<comment><USER2> Does nobody in the media know how cellphones work? If you call a cellphone and hear a ringing, it doesn't mean at all that the destination phone is physically ringing or not. Landlines work that way usually, but mobile phones not at all.</comment>


Show HN: Dark Mode List – A List of Apps That Support Dark Mode - <AUTHOR> https://www.darkmodelist.com/ <comment><USER2> Kind of sad how rare it is to see applications actually honor the OS's user- chosen color and font preferences--especially on the web. Ideally you shouldn't even have to "set this up." We had OS-wide color themes as far back as Windows 3.1, probably even earlier. Remember "Hot Dog Stand?" You just tell the OS what set of colors and fonts you wanted all the windows to use, and all but a handful of badly-behaving applications would automatically conform. For whatever reason, this automatic behavior is getting less and less common--the badly behaving applications that hard-code their color scheme or require an application-specific theme system are becoming the norm. The concept never seemed to make it over to the web, either. I can set up my preferences to be "light blue backgrounds, dark blue title bars, and purple serif fonts" yet HN still shows up black-on-beige with an orange header. I'm not a web developer, so maybe this is a Hard Problem but it's always kind of irked me.

<comment><USER3> It's more a branding problem. Companies spend a lot of money on their branding and wants to use it everywhere, it's their identity. The same with private blogs, they want to express their identity.

I'm not sure if it's still possible to override all css on pages with any browsers but I used to do that with Netscape since I wanted dark background to let my eyes rest. Blue light is not good for the eyes in the long run.

I don't think webpages can read your windows color preferences in any way yet?

<comment><USER4> > I don't think webpages can read your windows color preferences in any way > yet?

Why should they need to?

Your user agent could apply CSS based on the OS theme.

<comment><USER5> That would probably leak information which could be used for fingerprinting users: a web page could use a style like { background-color: theme-default; }, then capture the actual color being used. Or font, font size, etc.

<comment><USER4> Probably. I imagine that Tor browser would provide standard styles rather than the OS supplied ones.

</comment></comment></comment></comment></comment><comment><AUTHOR> I like to use dark mode in a lot of apps and sites like Slack, Chrome, Gmail, Product Hunt, Medium etc. and I tried to find a list of where I could find the dark mode for some other apps with an instruction how to turn it on, and I couldn't.

So I decided to build my own.

Let me know your feedback or maybe suggest some of your favorite apps that you are using in the dark mode and, HN :)

<comment><USER6> TweetBot has a really nice dark theme

<comment><AUTHOR> Yeah! Added as well.

<comment><USER6> No love for Citationsy?

<comment><AUTHOR> Missed your comment. Added :)

</comment></comment></comment></comment></comment><comment><USER7> How dare you miss Emacs? The mostest, the beautifulest piece of undisclosed source, the end and the beginning, truth and lie, the life of innumerable generations of infinite iteration cycles, everything in a neat and cosy text operating system.

<comment><AUTHOR> I've added circadian which is theme-switching for Emacs based on daytime or geo: [https://github.com/guidoschmidt/circadian.el](https://github.com/guidoschmidt/circadian.el)

</comment></comment><comment><USER8> FireFox Developer Edition Dev Tools comes in dark mode by default.

[https://www.mozilla.org/en-US/firefox/developer/](https://www.mozilla.org/en- US/firefox/developer/)

<comment><USER9> The dark mode can be enabled in the main release from the "Customize" view (using the Themes picker at the bottom).

<comment><AUTHOR> Sorry, I try to found it in Firefox but I can't. Can you please make a screenshot?

</comment></comment></comment><comment><USER10> Well, every text editor with theme support obviously applies, but there's a neat Emacs package called "circadian" that I recently discovered, which automates theme switching by time or even geographically based sunrise/sunset.

[https://github.com/guidoschmidt/circadian.el](https://github.com/guidoschmidt/circadian.el)

<comment><AUTHOR> Thanks! Added to the list.

</comment></comment><comment><USER11> DDG has a dark theme[0].

Also a project I open sourced a few weeks ago uses a default dark theme[1] (:

Tangent - Firefox mobile recently added a "Night Mode"[2] that seems to just invert the colors of a site. It has an odd effect on things already in night mode, hah[3].

[0] [https://duckduckgo.com/settings#theme](https://duckduckgo.com/settings#theme)

[1] [https://github.com/cdubz/babybuddy](https://github.com/cdubz/babybuddy)

[2] [https://blog.mozilla.org/blog/2017/07/20/firefox-ios- offers-...](https://blog.mozilla.org/blog/2017/07/20/firefox-ios-offers-new- improved-browsing-experience-tabs-night-mode-qr-code-reader/)

[3] [https://imgur.com/a/xhImR](https://imgur.com/a/xhImR)

<comment><AUTHOR> 0 - Already added Duck Duck Go 1 - Added. 2 - Seems it's that it just dim the brightness so wouldn't add it :b 3 - Yes very odd :)

</comment></comment><comment><USER12> Hm… it's Friday evening, i'm having a headache… but challenge accepted!

Let's see how long will it take me to make a dark mode for [https://cryptojobslist.com](https://cryptojobslist.com)

Started!

<comment><USER12> Done! Added dark mode for [https://cryptojobslist.com](https://cryptojobslist.com) Also shot a little tutorial video about how I done it. Never done anything like this before, so I guess it'll take some time to edit and upload to youtube. it was fun though

</comment></comment><comment><USER13> The Old Reader - Has a Firefox Dark mode extension [https://addons.mozilla.org/en-US/firefox/addon/the-old- reade...](https://addons.mozilla.org/en-US/firefox/addon/the-old-reader-dark/)

Scrivener - Can be styled to have a dark mode and the newest releases for iOS have one you can select.

Sabnzbd - Has a night mode for their web interface

Boostnote - Has a variety of themes. Great for markdown notes and coding notes.

SumatraPDF - Allows customization of the color scheme in the Advanced options section. Requires knowledge of HTML colors

</comment><comment><USER14> I used this [https://chrome.google.com/webstore/detail/dark-void- minimali...](https://chrome.google.com/webstore/detail/dark-void-minimalistic- bl/clkkkcoibikhfhbjaafkinjmmjfbcnal) for making chrome theme black. It added a chrome extension.

Now I can't find the extension in my chrome://extensions. Anyone else facing this?

<comment><USER12> try reinstalling it?

<comment><USER14> Can't reinstall when already installed. Web store says 'added in chrome'.

</comment></comment></comment><comment><USER15> A couple years ago I gave up on looking for app support and started using "invert colors" (under accessibility settings) so the whole screen is always inverted.

No special app support required. I only switch when I'm watching a video, and that's my internal reminder that I'm probably not doing something productive.

<comment><AUTHOR> I'm still using this trick sometimes. Option-Command-8 as the shortcut.

</comment></comment><comment><USER16> Is this site open-source? Would be nice to be able to send PRs for new dark mode apps. :)

</comment><comment><USER16> I don't think sites that can be modified with dark userstyles should be listed as "supporting dark mode" \- that's misleading. Dark userstyles are not reliable since they break easily when those sites get updated.

<comment><USER17> Good point. But best to not remove them, just move them to a separate section at the bottom.

<comment><USER16> Good idea!

</comment></comment></comment><comment><USER18> Regular expressions tester and cheat sheet Regex101 has a dark mode theme you can choose in the settings.

[https://regex101.com/settings](https://regex101.com/settings)

<comment><AUTHOR> Looks awesome! Added!

</comment></comment><comment><USER19> It's crude but for when I want it to be dark and the app doesn't support it I have 'xcalib -invert -alter' mapped to a keyboard shortcut so I can toggle display inversion on/off

<comment><USER3> Yeah, very effective. I made a program for this on my Atari ST, shift+shift+alt or something like that. Works well since most stuff is black on white anyway. Not so nice when doing graphics but easy to switch back again.

</comment></comment><comment><USER6> [https://crontab.guru](https://crontab.guru) is dark by default, although there is no light mode so I'm not sure if it counts?

<comment><AUTHOR> Why not? :) Added :)

</comment></comment><comment><AUTHOR> Added iOS section: [https://www.darkmodelist.com/ios](https://www.darkmodelist.com/ios)

</comment><comment><USER20> Small nit. you are showing Visual Studio Code on your site. The larger Visual Studio editions at least 2012-2017 also support dark mode.

<comment><AUTHOR> You're right! Thanks for the tip. Fixed :)

</comment></comment><comment><USER16> [http://unigram.me/](http://unigram.me/) is in dark mode by default. :)

<comment><AUTHOR> Added!

</comment></comment><comment><USER21> I see HN on that list, but I don't see how I can switch to the dark side.

<comment><USER13> It's a userstyle from stylish. Click on the link to take you to the style. You will still need to install Stylish for whatever browser you are using.

</comment></comment><comment><USER22> FastMail added a Dark Mode this week :)

(Settings → General & Preferences → Theme → Dark)

<comment><USER23> It was actually added about six months ago, blog post and all, but most people only heard about it once it was mentioned in the newsletter, which was last week.

I'd qualify the inclusion of FastMail because the mobile app doesn't yet support the dark theme. (It will, it just doesn't yet. There's a fair bit of refactoring of the style system to make it work better pending.) Then again, half of the websites listed on this site depend on applying user styles or installing a browser extension…

</comment></comment><comment><USER24> Emacs?

<comment><AUTHOR> I've added Circadian it is a theme-switching for Emacs based on daytime: [https://github.com/guidoschmidt/circadian.el](https://github.com/guidoschmidt/circadian.el)</comment></comment>


The web apps that will eat mobile - <AUTHOR> https://kruschecompany.com/blog/post/the-web-apps-that-will-eat-mobile <comment><USER2> PWAs indeed have a bright future.

Apple's iOS Safari remains terribly lagging behind in PWA support. Even the latest iOS 12 beta support for PWAs is utterly broken[0], including full reloads on suspend/resume, local storage gets blown away on reload, no icon, incomplete support for web manifest, and much more[1].

A charitable interpretation of this would be, Apple hasn't felt the need to keep its PWA support up to par with the other browsers due to the success of its App Store. A cynical interpretation is that Apple is deliberately dragging their feet because PWAs undermine their $99/year + 30% app price + 30% in-app purchases business.

[0]: [https://twitter.com/firt/status/1003761267155394561](https://twitter.com/firt/status/1003761267155394561)

[1]: [https://twitter.com/tomayac/status/1003910651151085568](https://twitter.com/tomayac/status/1003910651151085568)

<comment><USER3> "A cynical interpretation is that Apple is deliberately dragging their feet because PWAs undermine their $99/year + 30% app price + 30% in-app purchases business."

That interpretation doesn't make sense. The $99/year/active developer is a nominal amount -- sofa change to Apple -- that couldn't sanely affect the Safari development roadmap. The 30% is a much a larger amount (though still small to Apple's scale), but PWAs don't compete for that money; a PWA developer looking to monetize their app doesn't have an alternative monetization platform/store with anything like the reach into the iOS device market. Put another way: a PWA developer looking to monetize their app is surely going to release it through the Apple app store anyway.

<comment><USER4> I agree that the $99/year/developer isn't that much for Apple. The 30% of all sales is probably significant though - the App Store has a lot of users.

I don't necessarily agree that PWA developers have no way of monetising their apps though - if I'm not mistaken they could use ads and subscriptions for their services. These would normally grant a cut to Apple if they were done through the App Store, hence the incentive for apple to delay the implementation of PWAs.

<comment><USER2> $99/year isn't small. There are 2m apps in the iOS App Store today. Each app must pay $99/year. That's __$198m /year __as a passive income stream for Apple.

Factor in 30% of app purchase price, plus 30% of in-app purchases, and you have a significant revenue stream.

<comment><USER5> This assumes (incorrectly) that every app is released by a different developer with their own account. In reality many of those 2M apps are basically shovelware - with developers releasing dozens if not hundreds of different apps under the same account.

</comment></comment></comment></comment></comment><comment><USER6> Unpopular opinion here, but I just don't see PWAs living up to the hype. Yes, there are lots of technical advantages, they're catching up to native apps in capabilities, and there is reduced friction by bypassing app stores. However, the ingrained user behavior of downloading apps from the app store, trust of knowing what you're downloading by doing so (yes, even on Android), and browsability on mobile falling behind searching the app store from a ux standpoint make me think there are still some big barriers to PWAs taking the mobile world by storm. Yes, they'll have their place, but I don't see them living up to the hype often promised by their evangelists.

<comment><USER7> Depends on the user, I might be an outlier but my "ingrained behavior" is to not download an app unless I absolutely have to.

<comment><USER8> So the solution is to automatically download and execute anything and everything?

The 90s called and want ActiveX back.

<comment><USER9> As long as I can use a browser with uBlock Origin and API access (location, file system, camera, etc.) remains sane, I would very much prefer a web app. I don't want to: waste time installing; use up limited storage space; allow who knows what kind of access to other stuff on my device (e.g. LinkedIn and Facebook style abuse of native APIs); and have no way to combat ads. Especially for something I'm going to use maybe just once a month or less.

<comment><USER7> Add "10 apps need your approval to update" to the list

</comment></comment></comment></comment></comment><comment><USER10> Progressive Web Apps have the potential to be massively disruptive to apps as we know them now... and that's _before_ the near-native speeds that WASM will bring are factored into the equation. After making the mistake of going all-in on Xamarin in 2014 I realized, much to my chagrin, that the future of mobile is HTML, CSS, and JavaScript. Sure, there are cases where certain features require vendor-native apps for now, for example if you want to register a service that runs in the background without the app being launched. Currently that's not possible with mobile web or hybrid but there's no reason the mobile OS cannot look for and hook JavaScript -- or WASM -- code and run it as part of a background service. Could be as simple as specifying in the app manifest one or more code files which contain logic for background processes along with instructions like "run this only when the app is active, run it all the time, or run it on this cron schedule."

A completely different question is whether vendors like Apple will refuse to support something like this because it circumvents the need to deliver via the app store (and the $$$ they collect through the Apple Developer Program) but there's no reason background services and processes can't be implemented in JavaScript.

<comment><USER11> I have the same thoughts. Phones were too slow few years ago, web standards were not mature, so well written native apps were in obvious advantage. Now phones have proper CPUs, lots of RAM, so web apps for many tasks won't be distinguishable from native apps. Web standards are good too.

May be Apple will curate list of blessed websites and allow them to launch background services, using icloud payments, etc. This way they'll continue to have their cut and their control.

<comment><USER12> 5G could help close the gap as well.

</comment></comment></comment><comment><USER13> How many years have we been hearing this tale? And yet almost every major web site continues to bend over backwards to persuade us to install their battery- killing surveillance system oops I mean mobile app.

So the solution now is even more battery-killing HTML + Javascript + Secret Sauce? Hell no...

PS Just say no to push like the Hulk says no to Banner.

All IMO of course but these days, I use my phone for Yelp, Google Maps, weather, GMail, stock prices, and little more. The improvement in battery life from 6-8 hours to 2+ days has been astounding and what it's drove me to the viewpoint I just espoused. Am I missing something here?

<comment><USER14> We've been hearing this tale for more than a decade and native apps are still better at pretty much everything. :)

Web devs are a very optimistic bunch.

<comment><USER11> They are not better at a single and simple thing: cost of development for multiple platforms. And it means everything, unless you're swimming in money.

</comment></comment></comment><comment><USER15> "According to Google's data, for native apps 80% of time is spent in each users' top 3 apps. Just 3 apps!"

I also probably spend a large percentage of my time online on a handful of websites. That doesn't mean the other 20% of my time isn't incredibly valuable and not worth building an app/website for.

As an advertising company Google have plenty of incentives to push PWAs. Apple, who own the minority hardware platform with the most affluent users, do not. So long as this is the case their will be a strong monetary incentive to build Apps as the PWA experience will always feel a little off.

A non technical point glossed over by this article is the discoverability app stores afford the end user. I see this in person all the time: I tell someone about a new service or online store and the first thing they do is search the App Store for an app not the web.

In summary I think companies will build PWAs as either a complement to an existing mobile app or as a first product when they don't have the budget to build an app.

<comment><USER16> I was looking for this comment. I concur, is in Google interest to push PWA.

</comment></comment><comment><USER17> There are two ways to write mobile app...

1\. Write native app's for both the platforms, pay once and cry once. 2\. Write web mobile apps, realize how sub par the experience is, rewrite in native. Pay twice, loose competitive advantage, and cry twice.

This is what, 3rd or 4th iteration of web app's are going to take over mobile cycle?. My first instinct about any blog that promotes this turd is, either their business depends on selling this solution or the person is huge web guy and never really worked on complex native apps.

<comment><USER18> > realize how sub par the [mobile web app] experience is

why is this a given?

<comment><USER19> A proven experience since Symbian introduced the Web Runtime in 2011, with a few dead OSes pushing for a Web only experience?

<comment><USER20> There is such a thing as "good enough". The cheap plastic solution tends to win when that happens. We weren't there in 2011, maybe we're not there in 2018, but the writing's on the wall.

<comment><USER19> When that happens, the browser would have turned into a general purpose VM running apps via WebAssembly with WebGL/WebGPU for rendering, thus becoming native as well.

The writing is on the wall with the ongoing efforts on .NET, Java, Go, Unity, Unreal and who knows, someone might even port Flash to it.

<comment><USER20> I don't consider an universal bytecode as native.

<comment><USER19> So according to you IBM and Unisys mainframes, the Xerox PARC computers, watchOS apps don't run native code.

<comment><USER20> Do the CPUs of their respective systems directly understand the instructions? In my opinion, if they don't, that's not native code. Of course, for strategic reasons such as portability the manufacturer might not provide any kind of access. At which point that's the closest to "native" you're going to get...

<comment><USER19> Depends, on the mainframes and watchOS, bytecode (or bitcode) is used as portable binary format and JIT compiled at installation time into native code.

On Xerox PARC systems, the CPUs were micro-coded.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> I'm down for enhancing what sites I only go to on occasion can do for me as a user, but that PWAs will replace Native is IMO not desirable (particularly every website asking me to allow notifications these days -- turn that right off immediately)

A PWA will never be nicer than Tweetbot, but if it means I no longer get harassed to install an app for EVERYTHING it will have a place alongside native

<comment><USER22> At least we do have a solid cross-browser implementation of Service Workers, that will allow a lot of quiet optimization in the background to make websites feel a lot snappier.

</comment></comment><comment><USER23> These apps seem to solve a developers' problem, not a users' problem.

<comment><USER24> As long as people wants new apps quickly (now) and cheaply (free) the developers problems are _very_ important. Making those problems smaller or disappear makes it quicker and/or cheaper to develop apps and the companies paying for the apps will like that.

</comment></comment><comment><USER25> > Dramatically, a huge change has happened again thanks to a move from Apple. > This time with Safari.

A few paragraphs later:

> -There's still no Web Push or Background Sync on iOS (and it will take > time).

And here is a response from Apple[0]:

> As we indicated we were doing last year, we've implemented the core > ServiceWorker spec - > [https://w3c.github.io/ServiceWorker/](https://w3c.github.io/ServiceWorker/) > \- in trunk WebKit. Web Push is a different spec that we've made no comment > on one way or another.

[0]: [https://bugs.webkit.org/show_bug.cgi?id=182566](https://bugs.webkit.org/show_bug.cgi?id=182566)

</comment><comment><USER16> Doubt it. Just look at recent history (2011), back then the hype was "HTML5"[0].

[0]: [https://www.allbusiness.com/web-apps-vs-mobile-apps-which- is...](https://www.allbusiness.com/web-apps-vs-mobile-apps-which-is-the- future-16672651-1.html)

</comment><comment><USER26> All that text and not a word about monetization!

I realize that selling binaries directly or via IAP isn't all that lucrative these days, but plenty of developers still make a living doing it. How, exactly, are you supposed to sell a PWA? I assume they're meant to be a value- add for the main product, which is probably SAAS/subscription/ad-based, but I think a world without a good way to sell software directly—a world exclusively centered around services, not software—would be a sad one indeed.

EDIT: I just remembered that, I guess, Android lets you sell PWAs directly through the Play Store. But if you're not installing them from the web, then what's the point?

</comment><comment><USER27> the problem noone mentions with PWAs is that simple users do not know what A2HS means. They dont know what a PWA is so in the end we are talking about a web page that is mobile friendly.

<comment><USER28> With a popup asking to be added to the home screen. A lot of mobile websites I visit (usually if my HN reader app can't parse the content) either have one of those, or have it hidden somewhere in the other popups - sign up for our newsletter, agree to our cookies, fixed headers, etc.

</comment></comment><comment><USER29> I've read this exact same article every year for ten years and in that time the web has become increasingly slower and more personally invasive while apps have become more capable and faster.

Pardon me if I take this all with a grain of salt.

</comment><comment><USER30> No mention of writing apps in React Native?

<comment><USER31> it's out of fashion already :-p

<comment><USER24> According to this article, yes, it is. On the other hand it is a really, really easy to convert a react native app to a web app with react so it might have been a very good choice of technology anyway.

<comment><USER30> Basically my thought when I chose RN.

Although, after building my backend with php + frameworks, I already have a web app.

Im just hoping I wont need to update an IOS app every time apple breaks it. Also, I'm looking to avoid buying an apple computer and doing the compiling only 1 time. I hope...

</comment></comment></comment></comment><comment><USER32> Web apps have a bright future, with only Safari lagging behind. (Did you know Steve Jobs originally envisioned AL mobile apps to be web based?)

I have emailed Jonathan Davis (web-evangelist@appl..) from Safari several times over the last few years asking when Push Notifications will finally be supported. Without this, websites need to rely on email as a retention mechanism.

But here's the thing with all this. It's a lot to build and support all these operating systems, where things constantly change. Even more to have an integrated unified solution.

Take for instance onboarding. New people click an invite link and go to your site. First you want an instant social experience. That's easy enough: just have each invite have a unique link confirming that phone number or email, and when they arrive show them all the friends who uploaded hashes from their Contact list where they are found. And show all the content they have already engaged with. But wait, phone numbers only have 10^7 possibilities roughly, so that's a trivially reversible space. SO now go read about the state of the art from Signal and others and figure out your own more secure solution.

And after this you want the user to download the native app so you can send notifications to them, they can upload their Contact list and find their friends, invite people easily etc. Seems easy: just redirect them to the store.

But wait. You want attribution for campaigns, and you want to resume sessions. How to do it? Well you could use SFSafariViewController to get the web cookies but that's been deprecated in iOS so now you need to to use SFAuthenticationSession.

Wouldn't it be nice if there was a project that would take care of all this shifting stuff for you so you can focus on building the core of your app?

Well that's why I started Qbix initially. We keep adding free open source plugins to solve these individual problems:

[https://github.com/Qbix?tab=repositories](https://github.com/Qbix?tab=repositories)

Go ahead and grab them, we plan to maintain them as the OSes change since we use them in our ow apps.

But this is literally the tip of the iceberg. Most of the questions have to do with social and communty features like roles, permissions, realtime sync, offline notifications, user authentication across apps, payments, and so on.

If you want something that will let you develop new web based apps at record speed or support turning existing websites/apps into social apps with accounts (think turning git into github) without reinventing the wheel you are welcome to the code

[https://github.com/Qbix/Platform](https://github.com/Qbix/Platform)

It is licensed under AGPL so if you want to keep your code private and not open source it to your website visitors then you'd have to contact us for a license, which at this point is probably like $100 a year regardless of users. But for FOSS projects and weekend stuff it's totally free, to promote the improvements of the ecosystem.

Here is the vision long term: [https://www.youtube.com/watch?v=pZ1O_gmPneI](https://www.youtube.com/watch?v=pZ1O_gmPneI)

Oh also we aren't happy with the state of mobile browsers when it comes to supporting content addressable routing, verification of resources, encrypted web push notifications secure access to contacts by websites, and so on. So we are building the Qbix Social Browser:

[https://projects.invisionapp.com/m/share/TKHYMVSJNW2](https://projects.invisionapp.com/m/share/TKHYMVSJNW2)

</comment><comment><USER33> Web app can be easily blocked by government. Look at telegram in Russia. Native app still useful without vpn.

<comment><USER34> This doesn't even make sense. Blocking is blocking of network connection. Native apps still need that to talk back home

<comment><USER35> Native apps can be a bootstrap shim for a more distributed back-end. PWAs are not going to be loading off onion nodes or ephemeral distributed networks any time soon. Native apps, especially those that can side-load or update without the app stores, will always be more resistant to these sorts of attacks.

</comment></comment></comment><comment><USER36> PWAs feel to me as if they are a way for websites to get around adblocking or any kind of extra browser extension. They are the equivalent as a website wrapper webview as a native app. I equate a PWA similar to an Electron-based stand alone web app (e.g. like Discord).

Am I incorrect in my assumptions about PWAs? I know you can run them in browsers, but the intended use is to launch them in their own browser window as a separate process, right?</comment>


Ask HN: Review my startup, pegby.com - <AUTHOR>

Get stuff done collaboratively, from small tasks to complex projects.
http://www.pegby.com
We're a small team based in Chicago who've built a GTD web app that allows you to manage all your to-dos and projects in a simple visual interface that emulates "pegging" 3x5 cards to a board.
Boards can be customized according to the way you think, scaled to meet even the most robust project management requirements, and shared to get groups of people working together fast and efficiently.
We've learned so much from the HN community over the years. With Pegby now in open beta, we figured the time was right to ask for your thoughts on where we're at, and how best to improve.
Thanks in advance for all your help!
Stephen, Matt and Jerry <comment><USER2> A few thoughts just on the home page:

Love the design overall. Copy is quirky and humorous, but still feels professional. I agree with others that the vertical navigation is probably not the best. For some reason that is probably irrational, I hardly ever play product videos but love screenshots. Maybe that's just me.

In this HN post, you've given the app context. ie "Get stuff done collaboratively, from small tasks to complex projects." and "a GTD web app that allows you to manage all your to-dos and projects in a simple visual interface that emulates "pegging" 3x5 cards to a board." That explains a lot for me. However, that information isn't obvious when landing on the homepage. The "How it works" hints at it, but not as well as what you've written here IMO.

Minor things: Horizontal scroll slightly annoying. I'm using latest Safari (5.0.5) on OS X, 1440 x 990. The lined page behind the Add Cards to Get Stuff Done box doesn't line with the text for me. Slightly harsh on legibility.

That said, I'm looking forward to trying it out when I've got some time!

<comment><USER3> Agreed - we can do a better job at clarity on the initial page. And the legibility issue, I'll take a look at that. Thanks for the thoughtful commentary.

</comment></comment><comment><USER4> Design of the front page is quite well-done, I think. Validation messages about required fields in registration form are a bit unfriendly (consider adding `required` attribute), but overall—good work, Matt!

And the video is right in place, IMO. I doubt that the concepts of a product like yours could be explained briefly and clearly enough—submission text above failed for me in this regard. (BTW, Fog Creek's site redesign shows that people _do_ watch videos: [http://blog.fogcreek.com/our-marketing-is-up-fog- creek-and-w...](http://blog.fogcreek.com/our-marketing-is-up-fog-creek-and- what-we-did-about-it/). Yes, I believe that also applies to videos without Joel.)

Also, the first time I see '100% beta' stamp. Awesome.

<comment><USER3> Heh, glad you liked the Beta Stamp; it was one of those 2am additions to the design. I will spend some time on the registration section to make some tweaks - we can certainly make it more friendly. Thanks for the feedback.

</comment></comment><comment><USER5> Above you explain what it does in two sentences, yet on the web page you do not (or not successfully). Instead of a video that most people lack the patience to watch (unless they're already interested in your product), show a screenshot and a very simple (in one brief sentence) explanation what it does. Then if they're interested, link 'em to the video showing your product in action (but cut out the titles and get right to showing the product).

It's about making that first look count - most people won't give you a second one if they're not specifically looking for something like this. So you need to grab their attention right away, show what you're offering and make it easy to find out more.

<comment><USER6> Thanks, sdf! We'll definitely think harder about getting our "value prop" out there faster.

</comment></comment><comment><USER7> Your video is ridiculously long and pointless. The product itself is simple and core concepts can be explained in under 25 seconds (not 2 FULL MINUTES). It should be a quick narrated video that explains the differentiations between pegby and flow/basecamp/things/asana/rtm

With regard to the navigation.. look at what getflow.com does with the link at the bottom of the page or look at tumblr.com's "vertical" layout

<comment><USER3> We could do a better job a explaining the differences, thanks for commenting.

</comment></comment><comment><USER8> Would love to try it - agree with the others, the visual interface is very very nicely done (I've been reading up on this subject recently...!)

The video makes me want to try it out. If I dare offer one suggestion...the guitar music is a bit bland and seems out of place with the video, maybe I'm missing something. Great job overall!

<comment><USER3> Exactly! I told Jerry we should use "One Step Closer" because Linkin Park makes everything better. :) But honestly, finding the right music and paying for it can be very time and money consuming, so we went with something that we hoped would entertain the senses without being off-putting. But do take Pegby for a spin!

</comment></comment><comment><USER9> Some thoughts:

1\. The vertical navigation is a complete fail.. I almost missed it and have to tilt my head to read the links

2\. Instead of having a video (it's also not apparent that I need to click on the black box to play the video), have some screenshots that show how your app works.

<comment><USER6> Thanks for the thoughtful feedback!

<comment><USER10> I remember Joel from StackOverflow writing that they had a lot of luck with a BIG play button on their video in their A/B testing.

<comment><AUTHOR> Definitely worth adding. Thx, TL.

</comment></comment></comment></comment><comment><USER11> I love that you give a quick video to show it in action, huge plus. However I wish the video did show a bit more usage. I think almost a quarter of it is someone creating a bunch of cards for the demo. That's a little nitpicky, good work overall.

<comment><USER3> Agreed. We are planning on having additional demo videos, or more so, just basic functionality videos. Really need to get those done Jerry! And we are working on getting a public demo up so anyone can go in and try it immediately. Thanks for the comment.

</comment></comment><comment><USER12> Great design, Maybe you could change the "How it works" for a catchy line, like "get things done fast", or "get things done easily"

</comment><comment><USER13> <http://www.pegby.com>

Beaten to it, oh well :)

</comment><comment><USER14> Like it. Good work, looking forward to trying it out.

@ste101, @theradhouseteam

<comment><AUTHOR> Thanks for taking a look. We'll be in touch. Cheers!

</comment></comment><comment><USER9> Clickable: <http://www.pegby.com>

<comment><AUTHOR> Thank you (both!)

</comment></comment><comment><USER6> (p.s. -- I'm the Stephen mentioned in the post)</comment>


Amazon And Microsoft Have Both Delayed Their Plans For Smartphones - <AUTHOR> http://www.businessinsider.com/amazon-and-microsoft-have-both-delayed-their-plans-for-smartphones-2013-2

<comment><AUTHOR> Essentially ...

"Both were expected to be out in the first half of this year. It appears as though those plans have been put on hold for now."

Tablets can be sold anywhere, but phones are sold to the telcoms - and they just may not like Amazon and Microsoft.</comment>


Ask HN: Form LLC in Virginia - <AUTHOR>

I've started taking on enough side work and want to launch a couple side projects, so it's come time to form an LLC.<p>What's the best way to do so? Any guides or advice one could offer? Just don't want to miss any essential steps and have it kick me in the ass later. <comment><USER2> I've started two LLCs in Virginia. It's very straightforward, although maybe I've just been lucky. Both were fairly low-risk ventures. I'm pretty sure I just went to the VA Small Business Administration page, downloaded the application PDFs, and mailed them in with a $100 check. I think that was the extent of it. No lawyers.

You'll have to jump through some more hoops to get your EIN from the IRS (which you'll need to open up a company bank account), but, again, it's not too bad. From what I gather, Virginia's one of the easier states, especially if it's just you as the owner.

</comment><comment><USER3> I've started a consulting shop here in VA, and initially did it through one of the cheaper online one-stop-legal-shops (I think I used LegalZoom) -- and initially formed as an LLC. We later, after getting our feet under us and actually consulting a lawyer (I can recommend a good law firm with strong tech background in NoVA, if that's where you are) we ended up re-organizing as an S-corp (not an LLC) for several reasons.

Long story short: I'd spend a couple hundred bucks to get a lawyer's input on your own situation and make sure you're getting set up right out of the gates.</comment>


Misplaced: Ethics and the Photographs of Vivian Maier - <AUTHOR> https://www.academia.edu/6320666/Misplaced_Ethics_and_the_photographs_of_Vivian_Maier

<comment><USER2> This is good and fell through the cracks. It would be worth reposting. If you'd like advice on how to do so, please email us at email@example.com.</comment>


graphql-tools-fork can now merge types - <AUTHOR> https://github.com/yaacovCR/graphql-tools-fork/blob/master/src/test/testTypeMerging.ts <comment><AUTHOR> As an alternative to Apollo Federation, requiring no annotations (or control) of subschemas.

Can be combined with schema transforms to rename types prior to merging!

Supports subscriptions.

New transforms also allow for hoisting and wrapping of fields.

Contributions/suggestions welcome.</comment>


The Highest-Calorie Menu Item at McDonald's is Not a Burger - <AUTHOR> http://online.wsj.com/article/SB10000872396390443884104577647400959492314.html?mod=e2tw ...at least it wasn't a salad <comment><USER2> TL;DR:

> McDonald's highest-calorie item [is] the 1,150-calorie Big breakfast with > hotcakes and large biscuit.</comment>


How MIT Students Won $8M in the Massachusetts Lottery (2012) - <AUTHOR> http://newsfeed.time.com/2012/08/07/how-mit-students-scammed-the-massachusetts-lottery-for-8-million/ <comment><USER5> This isn't the first time someone has been able to turn lottery odds in their favor. A woman named Joan Ginther, who has a PhD in Statistics from Stanford, won more than $15 million from a Texas lottery scratch card based game [1]. Though she has never spoken and exactly how she did it remains a mystery, her odds of winning the number of times she did as a random buyer of scratch cards were 1 in 18 _septillion_ and should occur approximately once every _quadrillion_ years. Here's another case, where a geologist named Mohan Srivastava cracked several different lottery scratch ticket games [2]. He warned lottery officials, who did....nothing.

[1] [http://www.forbes.com/sites/kiriblakeley/2011/07/21/meet- the...](http://www.forbes.com/sites/kiriblakeley/2011/07/21/meet-the-luckiest- woman-in-the-world/)

[2] [http://www.wired.com/2011/01/ff_lottery/](http://www.wired.com/2011/01/ff_lottery/)

<comment><USER6> After reading the wired article, what's to stop people who work at the ticket printing companies from using their inside knowledge to exploit flaws?

<comment><USER7> Most likely are they prohibited from buying lottery tickets from the company that they work for.

Just like we where prohibited from gambling on the online gambling site i worked for a couple of years ago.

<comment><USER8> I don't know what the story is today, but some years ago I worked in the same office tower as the Ontario Gaming Corporation, and I had a nodding acquaintance with some of their systems people.

They told me that employees were allowed to purchase tickets. The theory was, if employees can't be trusted to buy tickets, there must be a flaw in the system. And if there's a flaw in the system, then it will be exploited whether you prohibit employees form directly purchasing tickets or not.

That obviously does not map directly to the employees of companies that print scratch-and-win tickets, of course.

</comment></comment></comment></comment><comment><USER9> Old article. Please put (2012) in title.

prior discussions on HN:

[https://news.ycombinator.com/item?id=4340852](https://news.ycombinator.com/item?id=4340852)

[https://news.ycombinator.com/item?id=4341645](https://news.ycombinator.com/item?id=4341645)

[https://news.ycombinator.com/item?id=9678607](https://news.ycombinator.com/item?id=9678607)

<comment><USER10> The third one links to this same page. I was confused for a second, thinking that people copy-pasted their own comments from the last time or something.

<comment><USER9> Sorry. Would correct, but outside the edit window. Thanks!

Disclaimer: ...but I have a time machine ;-)

</comment></comment></comment><comment><USER11> The Irish National Lottery format used to be 36 choose 6, giving odds of a jackpot win at 1 in 1,947,792. The cost of a single ticket was £0.50; therefore you could buy up the entire "space" for £973,896.

Thus, when the jackpot rose above this value, it became economically viable to buy up the entire "space" to guarantee a win; this would result in a profit so as long as no one else bought a winning ticket. This is what a group of individuals attempted to do in May 1992.[0]

They were limited by the physical requirement of filling out all such possible combinations on the paper tickets, but they attempted to spread out the work by pre-filling out combinations over several months and waiting for the jackpot to rise to a large value before "deploying" the tickets.

0\. [https://en.wikipedia.org/wiki/National_Lottery_(Ireland)#His...](https://en.wikipedia.org/wiki/National_Lottery_\(Ireland\)#History_of_Lotto)

<comment><USER12> Not quite. Covering the space only guarantees you a share of the jackpot - <USER2> wasn't unknown for there to be more than 5 winners especially when the jackpot was big as ticket sales skyrocketed What made the play profitable was the introduction of novelty guaranteed amounts for matching 5 and 4 numbers - regardless of the number of winners.

</comment></comment><comment><USER13> As this article from 2012 makes clear, the positive return on investment resulted from unusual rules in one state lottery game that has now been discontinued. The typical state lottery in most parts of the United States has parimutuel pay-outs for winning tickets, meaning that if multiple purchasers have winning numbers, they split the prize in a way that ensures that the lottery doesn't pay out more money than was bet for that drawing. An example from Britain was a national lottery that had something like seventy-six different winners, who all bet on the same "lucky" number that happened to be drawn in that drawing. They split the prize equally, so that each bettor's individual winnings from a large prize were not particularly large. The number may have been lucky in the sense that it matched the drawn number on that one occasion, but the number wasn't INDIVIDUALLY lucky for each person who bet it.

Over and over and over, some people have winning tickets, but most people have losing tickets. When a lottery is structured in the typical parimutuel way, as most lotteries are, even if you buy all the tickets available for sale in the next drawing, which takes a big investment, you can't be sure of winning a full prize individually, because other bettors may have a collision with your choice of a winning ticket number. tl;dr: A bug in one state lottery game was discovered by MIT students, who invested in exploiting the bug until the game was closed.

</comment><comment><USER14> The url of this article and the titles of other uses the word "scammed" which is unfortunate since they don't seem to have done anything of the sort.

<comment><USER15> Exactly. They did nothing illegal or immoral.

<comment><USER16> What did they do?

BUMP: those downvoting. It's a serious question. The article doesn't explain the student's methods. I really don't know what they did to game the system. Is it well known?

<comment><USER17> Ok, found the summary on Wikipedia [0], which matched my recollection from a TV news magazine report from a few years ago when this came out.

When the jackpot reached a certain point, they'd increase the payout on the lower tier prizes (match 5, 4, 3) from ($4000, $150, $5) to something more significant.

Instead of needing to match all 6 numbers (range 1..46), you could get a good return by only trying to match a smaller set. I guess they worked out a good distribution of tickets to purchase that covered a large percentage of those possibilities. They were purchasing 300k tickets to guarantee their 15-20% ROI.

[0] [http://en.wikipedia.org/wiki/Massachusetts_Lottery#Cash_Winf...](http://en.wikipedia.org/wiki/Massachusetts_Lottery#Cash_Winfall)

</comment></comment></comment></comment><comment><USER18> _" This isn't the first time that MIT has been involved in a gambling controversy."_

If it isn't illegal, what's wrong with using brains to make money?

<comment><USER19> Quite a lot of people see gambling as fun and/or random activity. Play some blackjack with friends: everyone wins/loses and have a great time. Then along comes someone who counts cards and... game ceases to be fun and players just drop out.

There is nothing neither wrong nor immoral about such behaviour, just a huge portion of others (those who just play for fun or are envious) sees such activity as an act of jerkiness.

<comment><USER20> A card counter in a casino doesn't reduce anyone else's fun. He just reduces the profits of the casinos, which generally catch on long before they're seriously hurt.

A while back I read about an early Microsoft employee who, once a year, goes to Vegas and counts cards at high stakes until they throw him out. Generally it takes about an hour, he makes several multiples of $10K, and donates it to charity.

<comment><USER21> Any chance you have a link to the article about the charitable card counter? That sounds fascinating.

<comment><USER20> Sorry, it's been a while. I tried googling but no luck. Seems like it was someone fairly well known.

<comment><USER22> Do you mean this: [http://floodyberry.com/carmack/johnc_plan_1998.html#d1998020...](http://floodyberry.com/carmack/johnc_plan_1998.html#d19980209)

<comment><USER20> I don't think so but that's pretty interesting.

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> This article strongly implies there was something morally wrong about what the students did but doesn't detail any actual misconduct on anyones part. Sounds like the lottery officials just got their pants in a bunch because they like to be the ones taking advantage of other people's naiveté and not the other way around. Ironic that the article embeds a video of John Oliver ripping the lottery for taking advantage of those who can least afford it.

<comment><USER24> Sounds like lottery officials didn't "get their pants in a bunch" \- they were actually complacent in the scheme.

>A recent report by the state's inspector general reveals more details about the scheme, including the fact that the _Massachusetts Lottery knew of the students' ploy and for years did nothing to stop it._ The inspector general's report claims that lottery officials actually bent rules to allow the group to buy hundreds of thousands of the $2 tickets, because _doing so increased revenues and made the lottery even more successful_. While the students' actions are not illegal, state treasurer Steven Grossman, who oversees the lottery, finally stopped the game this year.

<comment><USER25> They're (wilfully) complacent and indirectly complicit. The more people buy tickets, the more money they make. If someone finds a flaw that causes them to buy a shit ton of tickets, the lottery commission makes a shit ton of cash - <USER3> portion of which gets paid out in winnings. If someone exploiting the system makes the lottery commission more money, why on earth would they fix it? They're getting more rich by _not_ fixing it.

<comment><USER26> This doesn't make sense if the group buying the shit ton of tickets is making money. Overall more money goes out than comes in. If someone puts $600k and get $660k out, you can't make that up in volume.

If the lottery is still making money, it must come from other people who aren't winning but still playing.

I'm not sure exactly how this lottery works, but I think in other games there is no pile of cash sitting around. Instead the owner of the game insures it so that an intermediary (insurance company) pays the winner. If that's the case here the lottery commission will end up paying higher insurance premiums over the long term, but might show a short term profit.

But if you take into account all of the sources of money, there's no way the lottery commission could come out ahead on this.

<comment><USER27> More tickets sold still means more income for the lottery.

That jackpot was going to be paid to someone, this group merely became that someone.

Basically, they chose the best time to buy in so that they had a higher chance of winning.

Moreover, when the jackpot grows high, more people play. It's almost certain that their ticket buying inspired other people to buy more tickets as well.

</comment></comment></comment></comment></comment><comment><USER28> Lottery = Poor People Tax and should be removed from Government.

[http://www.businessinsider.com/lottery-is-a-tax-on-the- poor-...](http://www.businessinsider.com/lottery-is-a-tax-on-the-poor-2012-4)

<comment><USER25> Poor people or people that don't mind taking a risk for the chance of a reward?

I know fairly wealthy people that still dabble on the lottery. They well aware that the odds are stacked against them and many of them can quote the statistical probability of their making (or not making) a profit on their play, but they still gamble because a). it's amusing and b). because just maybe they'll get lucky and will get a bazillion percent return on their investment - plus, the amount they spend on the lottery is totally meaningless to them.

Eventually you get to a point where the $5 (or whatever it costs) is so trivial it makes zero difference in your life, so why not, right? It's not really that much unlike Venture Capitalists. 95% of startups fail, yet they still get VCs clamoring to invest in them every year because 5% of them may pay off a windfall return. VCs are no slouches in finances; they're sharp, quick witted, ruthless hustlers, yet still they play this lottery.

I would say that the lottery is less a tax on the poor than it is a tax on those that are either ignorant to the math, aren't risk averse or are well off enough that the cost of playing the lottery is much less meaningful to their bottom line than the potential win would be.

After all, at least 1 person wins it most weeks, and every play has an equal chance of being a winner - why not you? I'll spend my $5 on ice cream, because I'd rather do something that will definitely make me feel good now than spend $5 buying a piece of paper that will most probably be garbage in a few hours and make me feel like I wasted the money - in the hope that just perhaps I'll get rich and never have to worry about anything again, supposedly; though, I guess it's no different than people supporting the Leafs, hoping every week that their team will win, only to get crushed when they lose...again. Given they're (allegedly, according to their fans) the richest team in the NHL despite consistently sucking, it would appear that hope is a trillion dollar industry, find a way to sell hope to everyone and you'll make your own windfall.

<comment><USER29> >I know fairly wealthy people that still dabble on the lottery.

This might be obvious to everyone, but gambling expenditure is higher (as a percentage) in low-income households, and still doesn't exceed 1% of disposable income in any income group in the UK.

Ref: [http://www.ons.gov.uk/ons/rel/family-spending/family- spendin...](http://www.ons.gov.uk/ons/rel/family-spending/family- spending/2014-edition/rft-3-2-final-2013.xls)

People with more economic power can participate in forms of gambling with a lower rake: we might call those investments.

<comment><USER25> > This might be obvious to everyone, but gambling expenditure is higher (as a > percentage) in low-income households

As is everything. Your household grocery bill is higher (as a percentage) in low-income households. Everything is a higher percentage because the cost of stuff doesn't go down when you have little money. Gambling, alcoholism and drugs, medical bills, life don't cost less when you're broke, you just have to pick and choose what you buy to make ends meet.

Hope and escape are the biggest sellers on the market. When everything around you is geared towards selling "bigger is better", "newer is better", "richer is better" and you have no means to participate in that "Xer is better" society. Beauty companies sell us on "just use our makeup and it will cover all your flaws and make you look beautiful", fitness companies sell us on "just use our product and it will make you look beautiful", clothing companies "just buy our clothes, they will make you look beautiful"... The media constantly brainwash people to act that way.

Is it any wonder that people will spend out on anything that will let them hope (even if just for an hour or two) that perhaps, no matter how small the odds, they just might have a shot of "belonging" and joining those that have made it... or purchase some means of escaping from that whole system - if just for the hour or two it takes the drugs to wear off.

That's human nature. We live emotionally. We will die emotionally. No amount of math or education is going to change that. As long as the media keeps drumming its ever present beat that you need money to belong, you need stuff to belong, you need to be someone to belong, people will keep spending money on the hope of belonging... or spending money on a means of escaping from that pressure.

<comment><USER29> > As is everything. [Everything] is higher (as a percentage) in low-income > households.

No. Exceptions including (from the link above):

       Buns, cakes, biscuits etc.   Beef (fresh, chilled or frozen)    Bacon and ham   Fish and fish products  Milk     Butter Margarine, other vegetable fats and peanut butter   Fresh fruit  Dried fruit and nuts Preserved fruit and fruit based products  Fresh vegetables  Other preserved or processed vegetables    Sugar and sugar products Jams, marmalades Chocolate    Other food products     Cocoa and powdered chocolate Fruit and vegetable juices (inc. fruit squash)  Soft drinks (inc. fizzy and ready to drink fruit drinks)                              Beer, lager, ciders and perry (brought home)           Men's outer garments Men's under garments Women's outer garments Women's under garments  Boys' outer garments (5-15) Girls' outer garments (5-15) Infants' outer garments (under 5) Children's under garments (under 16)  Accessories Haberdashery and clothing hire                                                                  hire/repair of furniture/furnishings      Medicines, prescriptions, healthcare products etc.         Purchase of new cars and vans Purchase of second hand cars or vans Purchase of motorcycles and other vehicles   Spares and accessories Petrol, diesel and other motor oils Repairs and servicing Other motoring costs   Rail and tube fares Bus and coach fares  Other travel and transport                                      TV, video and computers        Computer software and games Equipment for sport, camping and open-air recreation Horticultural goods, garden equipment and plants Pets and pet food   Sports admissions, subscriptions, leisure class fees and equipment hire Cinema, theatre and museums etc. TV, video, satellite rental, cable subscriptions and TV licences  Development of film, deposit for film development, passport photos, holiday and school photos Gambling payments    Diaries, address books, cards etc. Newspapers    Package holidays - UK Package holidays - abroad             Restaurant and café meals Alcoholic drinks (away from home) Take away meals eaten at home Other take-away and snack food Contract catering (food) and canteens   Holiday in the UK Holiday abroad Room hire                           Hairdressing, beauty treatment Toilet paper   Hair products, cosmetics and related electrical appliances      Household insurances - structural, contents and appliances Medical insurance premiums Vehicle insurance including boat insurance Non-package holiday, other travel insurance   Moving house  Other services and professional fees              Money, cash gifts given to children Cash gifts and donations7 Club instalment payments (child) and interest on credit cards

Healthcare is explicitly included as something high-income households spend a larger % on.

<comment><USER29> Please disregard the data here, in my haste I buggered it up :)

</comment></comment></comment></comment></comment></comment><comment><USER30> Here's the Boston Globe source article for the Time piece.

* [http://www.boston.com/news/local/massachusetts/articles/2012...](http://www.boston.com/news/local/massachusetts/articles/2012/07/31/inspector_general_says_lottery_allowed_gambling_syndicates_to_take_over_winfall_game/?page=full)

And a couple of investigative pieces the Globe had run previously:

* [http://www.boston.com/news/local/massachusetts/articles/2011...](http://www.boston.com/news/local/massachusetts/articles/2011/07/31/a_lottery_game_with_a_windfall_for_a_knowing_few/?page=full)

* [http://www.boston.com/news/local/massachusetts/articles/2011...](http://www.boston.com/news/local/massachusetts/articles/2011/10/16/a_game_of_chance_became_anything_but/?page=full)

A fun quote from the first piece they ran:

 _Mark Fettig of Tennessee, one of the top 10 winners during the May rolldown week, urged the Globe not to write a story at all, saying "it would be immoral'' to attract more people to Cash WinFall and potentially dilute the winnings of current players._

</comment><comment><USER31> It bothers me how the article implies that they were doing something wrong. They figured out a trick to the system and used it to their benefit.

<comment><USER32> Exactly. Also, lotteries and gambling are all about who can come up with the best strategy to game the system within a prescribed set of written rules. Like everything else in life, it's a puzzle. What's the point of any game if it's all chance and no strategy?

<comment><USER33> I don't think that's generally assumed. Gambling is random; its exciting to risk and win. There doesn't have to be any strategy at all. What 'strategy' are all those grandmas using at the nickel slots?

<comment><USER32> That's why those grandmas lose money most of the time. One day a smart grandma will figure out how to game those machines too; it's an open-ended puzzle left to the world. They may build a better machine, and the world will again build a better grandma over time.

The world and economy is a system with rules and ethics, and entrepreneurs game that system within those rules and ethical bounds. Ping-pong wasn't first played with the intention of having back-spins and side-spins, but spin balls are perfectly within the written rules and are supposed to confuse and defeat your opponent.

If you want to have an edge at rock-paper-scissors, it's all about statistically analyzing and gaming your opponent, because humans are extremely bad at being uniformly random. There are tournaments for this. It's just humans being intelligent beings.

These students are gaming the lottery just the same.

Rules are rules; game and engineer the hell out of anything within those bounds, I say. Make the world an interesting place.

</comment></comment></comment></comment><comment><USER34> I don't understand why the lottery commission would know and not stop this. If they are guaranteed to win I think that is the same thing as the state have a guaranteed loss.

<comment><USER35> Not really. The guaranteed wins (presumably done by buying enough tickets to cover a large proportion of the available number space) would be taken at the expense of either any coincidental winners or at the expense of the rollover.

Lotteries are designed to take their cut from the tickets bought - <USER4> proportion of the money from tickets then goes to the prize pot. More tickets sold means more money for the lottery organisation, regardless of who buys those tickets.

So the loser in this case was the "lucky" lottery player, who would have found that, had they won, they had to share their prize with these guys.

<comment><USER25> But just like every casino, the house always wins. The more tickets sold, the more money the lottery makes. This is why despite knowing the flaws in the system, it doesn't get fixed, they don't care... in fact, it's in their favor to ignore it because those attempting to exploit the flaw only line the lottery's pockets more. It's more profitable for them to ignore it and hope that as little ruckus as possible draws attention to this corruption.

</comment></comment></comment><comment><USER36> This is from 2012, probably should include in the title.

</comment><comment><USER37> The card counting rings mentioned in the article have been going on for decades. Edward Thorp, while a math professor at MIT, was the first to do a rigorous analysis of card counting.

[http://en.wikipedia.org/wiki/Edward_O._Thorp](http://en.wikipedia.org/wiki/Edward_O._Thorp)

</comment><comment><USER38> "While most students at [MIT] use their powers for good [...] others are busily using their prodigious math skills to" win the lottery.

Interesting morals on display by the author.

Further: "While the students' actions are not illegal, state treasurer Steven Grossman, who oversees the lottery, finally stopped the game this year."

I expected the last part to say they'd filed charges against the students. Since they didn't (because their activity wasn't illegal), the state treasurer made the right decision to stop the game.

I'm not impressed by this author's writing skill.

</comment><comment><USER39> Doesn't that mean that the lottery was losing money? How is that even possible?

<comment><USER25> I'm quite sure this scenario was modeled extensively and they were well aware of it and had worked to ensure they were still profitable (or perhaps more so) even if the flaw was exploited.

<comment><USER40> The state takes their money off the top, and the rest goes towards the jackpot. They make money as long as people play the game. They might have made more money by hyping the higher jackpot to get more ticket sales, but it obviously wasn't worth their time.

The people rushing to buy tickets because of that jackpot have the same chances of winning as they would without MIT students buying tickets. They have a reduced amount of time to try and win it, since MIT winning will lower the jackpot, but they're probably better off for it by not throwing their money at the game as much.

The people really losing out are the ones who buy tickets no matter what the jackpot is, and that's only if they win after the jackpot has been lowered. They may have won more money, but if that was their concern, they shouldn't have been playing when the payout was so low.

</comment></comment></comment><comment><USER41> This story (and the math behind it) is discussed at length in "How Not to Be Wrong: The Power of Mathematical Thinking" by Jordan Ellenberg. I highly recommend it, the other stories in it are equally enlightening.

</comment><comment><USER42> It takes a fair amount of man power to buy hundreds of thousands dollars of lottery tickets. Especially if you have to fill out forms and submit them to a cashier. I've heard of consortiums hiring people to do such.

</comment><comment><USER43> So I suppose there's a sort of intergenerational underground community of advantage players at MIT that these exploits come out of? Hard to imagine that MIT just happens to be the source of unrelated rings.

<comment><USER44> In terms of these guys and the poker players no. But you'd be amazed how many people from the MIT Assassins' Guild go into computer security.

</comment></comment><comment><USER45> Reading between the lines, there is a very strong hint that lottery officials violated lottery rules to enable the exploitation, possibly for indirect benefits. What the students is very similar to how card counting is supposed to not work: they violated the maximum bet. And lottery officials let them, against the rule of the lottery system.

It seems like no real harm done though: they guaranteed themselves winnings, causing the jackpot to never grow, _before_ anyone else bought tickets against the larger jackpot. So in a sense they just stomped the game before it started, no other players got screwed out of their chance at any existing jackpot.

<comment><USER46> As I understand it, there was no rule against the maximum number of tickets (and therefore no maximum bet). But somebody buying up all the tickets did increase the total revenue of the lottery, which is presumably something that lottery officials are supposed to encourage (if there's any advertising for it, at least), and may have been rewarded for.

</comment></comment><comment><USER47> Hah, what can't these people do.

</comment><comment><USER48> This is overrated.

Grant that you can make 15-20% ROI on your 600K investment, however, you could have 95% chance to lose all of it and 5% chance to hit jackpot and win say 26 mil. Your expected value is high but no one would play 600K like that, unless you are some rogue hedge fund manager.

You might well invest it in stock market, which has better Risk-reward ratio.

<comment><USER24> You are totally missing the point. This one lottery game was set up in a way that if you spend enough money at exactly the right time you are mathematically guaranteed to make more money than you spent. You can't guarantee success in the stock market and certainly not 20% ROI in a few days.

It isn't like they just threw $600k at the lottery blindly hoping for a payout. This was a mathematical analysis.

<comment><USER49> There was still the massive risk of the strategy being replicated by someone else and then both parties would lose money.</comment></comment></comment>


Ask HN: How do you get your startup okayed by a very large employer? - <AUTHOR>

I work at a really large company, 100k+. I work on web apps on the side. I've read from several sources (Jason Cohen's blog, twist and startupcompanylawyer) that its not enough just to work on your own time with your own resources. You must also get someone with authority to sign off and acknowledge what you're doing. In such a large organization, getting a C*O isn't possible. Who would have the authority to officially clear your startup? <comment><USER2> HR. usually its an ammendment to the exhibits in your employee contract.</comment>