Simplifying Docker on OS X - <AUTHOR> https://blog.andyet.com/2016/01/25/easy-docker-on-osx/ <comment><USER2> From someone who has wasted many hours trying to get B2D working, I have ended up using [https://github.com/codekitchen/dinghy](https://github.com/codekitchen/dinghy)

Easier to use, more reliable and some nice features like the OPs .docker DNS and NFS shares. The maintainer is very responsive and I recommend it to anyone who is struggling with docker on OSX.

<comment><USER3> After seeing this article, I just migrated from Dinghy to Dlite. I saved about 5GB of disk space, got much faster VM startup time and basically no hassle. It was a cinch to work my docker-compose startup into a LaunchAgent and now I finally have all my services running on boot. I highly recommend giving it a shot; my eyes nearly popped when I saw how quickly it downloaded and started the VM (must have been all of a 10MB download).

<comment><USER4> As a Dinghy user too, thank you! I will give a shot at Dlite right now :)

</comment></comment></comment><comment><USER5> I feel like this isn't much simpler than the official docker-machine workflow, but I may be too far in the weeds at this point to objectively tell how complicated it is. In my case I need to test tools across 4 versions of Docker so I'm locked into using docker-machine and dvm.

<comment><USER6> The lack of /var/run/docker.sock is annoying but its really not that big of a deal in my opinion either. docker-machine covers a lot of other use cases such as multi-host docker swarms and docker in the cloud. Adding this tool to the toolbox is extra mental overhead for a small benefit if you have any need for these more advanced use cases.

<comment><USER7> I also am not sure what major advantages this brings. And the article was slightly unclear in that you can add Docker environment variables to your `.bash_profile` -- you still are dealing with environment vars, but don't have to run the `eval` command all the time. And, I believe the docker-machine default VM settings mount your User (Users/myname) directory in it's virtual machine

<comment><USER6> yes you are correct, docker-machine mounts your current user's folder into the VM as well so thats not an advantage over docker-machine either.

<comment><USER8> But that mount is vboxfs and is slow. You need to do some extra work to get NFS going.

</comment></comment></comment></comment></comment><comment><USER9> There's a lot of neat work going on in this space because Docker support on OS X is pretty lackluster out of the box. My team and I built Dusty[1] to try to solve many of the same problems, though we seem to be operating at a bit of a higher level than this tool.

I'm excited to try out xhyve for virtualization, but even if you solve the virtualization problem there are still some real usability concerns around using Docker for development in even medium-sized teams. I gave a talk at PyGotham[2] about some of the benefits and issues of using Docker for dev at this point.

All told, this looks like it might be an attractive lightweight solution though if virtualization is your main problem now.

[1] [http://dusty.gc.com/](http://dusty.gc.com/) [2] [https://www.youtube.com/watch?v=pYLOuuR7HI0](https://www.youtube.com/watch?v=pYLOuuR7HI0)

</comment><comment><USER10> I also really hatte the official Docker way in OS X. It's even hard to uninstall! If anybody is interested how to uninstall official Docker for OSX: [https://therealmarv.com/how-to-fully-uninstall-the- offical-d...](https://therealmarv.com/how-to-fully-uninstall-the-offical- docker-os-x-installation/) Running Docker in a Vagrant VM is or was the best way. Speaking of Vagrant... does anybody know if there is a xyhve Vagrant project?

</comment><comment><USER11> Nice work joeyespo, it's definitely a much-needed step forward. NFS, though, is a huge pain point for me on OSX performance-wise. The only reliable solution I've found so far is Unison sync between Mac & Vagrant (Ubuntu). That also comes with some caveats, as Unison has to be compiled with exactly the same version & dependencies on both OSX and Ubuntu.

If anyone's interested, I've created a list of steps involved in making it work on El Capitan: [https://gist.github.com/pch/aa1c9c4ec8522a11193b](https://gist.github.com/pch/aa1c9c4ec8522a11193b)

<comment><USER12> FS sync, may it be for the code, the assets, the data, the logs, is painfully slow on osx, because of vboxsf poor performance.

If you intend to use docker containers on osx as an isolated runtime, with all your "data" sync'd in realtime between your host and your container, then use linux.

Fswatch / Rsync / unison over NFS, ssh or cifs are hacks of a greater order than having to source an env script.

Out of curiosity, why would you need directional sync/unison?

</comment></comment><comment><USER13> Pretty cool trick to make the OS X docker hacks feel transparent. I've been tempted into getting a Linux laptop just because using Docker on OS X feels so hacky.

<comment><USER14> I did and never looked back. Lenovo X1 Carbon Gen 3

<comment><USER15> Been using Linux on my work macbooks since 2009. There are some bumps involved, but it works really well on the awesome Apple hardware.

<comment><USER13> How's the battery life?

<comment><USER16> I use a Macbook Pro (2014) with Kubuntu Linux installed full-time. The battery life is about half of what it is when running OSX.

If you forget your charger, there is serious range anxiety. Luckily, I've been running PC laptops for years and have gotten completely used to bringing my charger any time I take my laptop.

</comment></comment></comment></comment></comment><comment><USER17> `eval $(docker-machine env docker)` is great, I can stick it in scripts and separate my development environment from testing, staging, and production for every project I need to track. It works on Windows, OS X, and Linux so all my developers can use whatever OS they want and I still have one platform- agnostic environment setup script that gets people up and running in less than 15 minutes. The only problem with docker-machine is you can't share environments without copying over the entire machine configuration, which is somewhat baffling in the case of EC2 machines but is by no means a deal- breaker.

</comment><comment><USER18> Thank you! I'll have to check this out. It baffles me that a company such as Docker has yet to make using its primary product on Mac OS X simple plug and play. Needing to remember to run `eval $(docker-machine env docker)` is not a sustainable solution. Hell I know about this and would occasionally forget and become confused at the error messages.

In fact I put this horrible hack into my ~/.bash_profile (I wouldn't recommend doing this but, hey, it works.):

docker-machine start dev

eval "$(docker-machine env dev)"

<comment><USER16> From my understanding, the limitation is from OSX and not from Docker, as OSX does not have native support for kernel namespacing. This is why Docker on OSX runs inside of a Linux virtual machine.

<comment><USER19> Making OSX Linux is hard, but making Docker smarter about running on OSX is easy (have docker-machine provide a socket like this project does, have docker client detect the environment and connect to the correct virtual machine's docker socket) and would be an obvious huge step forward.

<comment><USER16> Yeah, sure, I agree, there's a lot of room for improvement. But, I still talk to a lot of developers who are new to Docker and use OSX, who are confused as to why they need to run a VM or enter docker commands into a different terminal than they are used to.

</comment></comment></comment></comment><comment><USER20> The interesting links are

[https://github.com/nlf/dhyve](https://github.com/nlf/dhyve)

[https://github.com/nlf/dhyve-os](https://github.com/nlf/dhyve-os)

</comment><comment><USER21> docker-machine is almost completely seamless to me. The _only_ thing I have to do is start the VM, the eval is in my .profile.

This whole problem took me <5 mins to solve, and about 30s to solve each boot. I could quite easily start the VM on boot as well, but it's such a non problem for me that I don't even bother spending the 3 mins it'd take to set up.

</comment><comment><USER22> Honestly, for me it looks like a wasting time. If you want to have simplicity - install Docker Toolbox, which will help you with getting access to docker with all environment variables. If do not need simplicity - you probably want to handle multiple docker hosts, including VM, Linux machines, Cloud instances - this is why you want to have an option to switch between docker environments using `eval $(...)`. Also you can use something like [https://github.com/Tarrasch/zsh-autoenv](https://github.com/Tarrasch/zsh- autoenv) to automatically call this command in specific folders.

And if you really need docker-lite- you do not need to write it in go, just do

Run that once (do sudo or any other crazy stuff):

``` echo $(docker-machine ip dev) local.docker >> /etc/hosts ```

Add that to `.bashrc`

``` eval $(docker-machine eval dev) ```

</comment><comment><USER23> Unfortunately it seems that Xhyve cannot connect to the Internet when traffic is routed through OpenVPN. Otherwise I would use it at my job. I tried [https://github.com/coreos/coreos-xhyve](https://github.com/coreos/coreos- xhyve), [https://github.com/ailispaw/docker-root- xhyve](https://github.com/ailispaw/docker-root-xhyve) and Veertu, and they all won't work.

Apparently is a known issue [https://github.com/mist64/xhyve/issues/84](https://github.com/mist64/xhyve/issues/84) ; it might have to do with Hypervisor.framework

<comment><USER24> Same goes for Cisco AnyConnect VPN. Updating the routing table seems to temporarily fix it, but it would be nice not to hack around it to get it to work.

<comment><USER23> > Updating the routing table seems to temporarily fix it,

can you share a link ? thanks

<comment><USER24> It's been a while, but I believe the fix is in this thread:

[https://github.com/boot2docker/boot2docker/issues/628](https://github.com/boot2docker/boot2docker/issues/628)

</comment></comment></comment></comment><comment><USER25> This looks great and is now high on my todo list to test.

I am all in on docker development because I am all in on using images and containers in production via ECS. Getting a laptop and AWS talking the same abstraction is the future.

I too suffer from problems with Docker Machine and virtual box on OS X. Frequently I find myself debugging these subsystems. It's been ok because the worst case to get back to a good state is uninstall, reboot and reinstall. Annoying but passable b

I have also experimented with xhyve and it looks extremely promising but does need some new tools to make it a turnkey docker dev environment.

From my survey of this technique and the tools we need more time, energy and cooperation to get there.

Thank you and everyone else for your efforts!

<comment><USER26> > Getting a laptop and AWS talking the same abstraction is the future.

You can already do this with Vagrant and VirtualBox. Docker is just additional abstraction.

</comment></comment><comment><USER27> I used to struggle with this. Then I set up a Vagrantfile and put my docker code in a Vagrant instance. It's just far and away better than any other hack I've tried. File mount point transparency problems? Solved!

</comment><comment><USER28> I just use bash aliases in my .profile

\----

alias dm="docker-machine"

alias dc="docker-compose"

alias denv='function __denv() { eval "$(dm env $@)"; unset -f __denv; }; __denv'

\----

dm create --driver virtualbox local

denv local

Also works with swarm params:

denv local --swarm swarm-master

<comment><USER29> The whole Quay team at CoreOS uses OSX to develop a container registry. As a result I have a bunch of useful aliases as well[0]. A lot of them have to do with just plain cleaning up after yourself, but I also wrap my calls to `docker` with a zsh function that will eval my dev docker-machine environment if it hasn't been already.

[0]: [https://github.com/jzelinskie/dotfiles/blob/b2d33f8c601d1b7d...](https://github.com/jzelinskie/dotfiles/blob/b2d33f8c601d1b7d9cce1df3319561e182251a26/zshrc#L12-L30)

</comment></comment><comment><USER30> Hey, this is pretty sweet.

This is a simple alternative than the solution I wrote about here: [https://allysonjulian.com/setting-up-docker-with- xhyve/](https://allysonjulian.com/setting-up-docker-with-xhyve/) which uses docker-machine-driver-xhyve ([https://github.com/zchee/docker-machine-driver- xhyve](https://github.com/zchee/docker-machine-driver-xhyve)).

I've been trying to figure out how to deal with the env variables used by docker, and used a workaround ~/.profile ([https://gist.github.com/astrohckr/efceb07887225cbc2ba2](https://gist.github.com/astrohckr/efceb07887225cbc2ba2)). Like the OP, running eval in every terminal session makes me a bit concerned as well.

I'll give dlite a Go.

</comment><comment><USER31> I created a very similar post not too long ago:

[http://shahruk.com/code/snippets/2016/01/18/Definitive- Guide...](http://shahruk.com/code/snippets/2016/01/18/Definitive-Guide-To- Making-Docker-Wordpress-Work-Mac-OSX.html)

</comment><comment><USER32> Docker is one of the tools that was concocted (by brilliant people!) after I began programming professionally. From my understanding, Docker allows you to containerize your applications so they function properly anywhere you (so to say) "place those containers".

Now, does if I'm working with say Django or Flask, and things behave differently on an AWS server than they do on your local machine, for example — relative paths for file uploads work on localhost, but mess up on AWS. Also file permissions are irritating to work with on AWS, but never an issue on localhost (on a Mac). In such a scenario, is Docker for these issues? I imagine I use Docker, make a "container" and setup everything properly in that, and then just move it to AWS when I'm deploying?

<comment><USER33> You can also use Docker on AWS. Just use it as a target "runtime" for all your environments.

<comment><USER32> So that would mean telling Docker to setup a container to model the configuration on AWS on all my environments, correct?

</comment></comment></comment><comment> brown9-2 Is there a technical reason why docker-machine on OS X doesn't set up /var/run/docker.sock in a similar way? It sounds so simple when put this way in the article.

</comment><comment><USER34> So I imagine the solution is using xhyve to run a simple linux.

Why is the xhyve virtualization framework through low-level go-bindings better than using VirtualBox for the same task?

<comment><USER35> It is more light-weight?

<comment><USER10> Yes. VirtualBox is emulating a whole PC including controllers for all internal stuff like CPU, graphics, HDD etc. Where as xhyve is more like an interface which can be used by VMs to access the native hardware indirectly.

</comment></comment></comment><comment><USER36> My main problem with using Docker on OS X is that I have multiple OS X user accounts - one for myself, one for my main client. And I ran into a bunch of trouble trying to run boot2docker and dockermachine on both of them, it just wouldn't work. Unfortunately I forget the details since I haven't had need to use docker since then.

</comment><comment><USER37> for me, using docker on my own workstation (OSX) makes it easy for me to test deploy's to multiple machines quickly (even if these are only locally hosted VMs). docker-machine facilitates that by allowing you to quickly spin up and spin down virtual machines locally or in the cloud.

I can see advantages for running docker as a way of streamlining dev environments, and keeping them consistent across team members, but by automagicaly awaying the docker-machine env commands you have effectively lost the most powerful facet of container technology.

Perhaps we would all do better if Docker's toolset docs were written in a way to communicate these design decisions (their purpose, and how they conceptually work behind the scenes)...

<comment><USER38> If I understand, using this doesn't preclude you from using docker-machine, it just gives you a default Docker installation, similar to what you'd get if you installed the Docker daemon on your Linux workstation.

It might be neat if this were integrated into docker-machine though. Looks like there's already a docker-machine plugin for xhyve ([https://github.com/zchee/docker-machine-driver- xhyve](https://github.com/zchee/docker-machine-driver-xhyve)).

</comment></comment><comment><USER39> I actually just use aliases, it feels like this DLite/dhyve is more of a hack.

</comment><comment><USER40> Add this to your bash profile and it will feel simpler

function docker_activate() { eval $(docker-machine env $1) }

alias docker_activate=docker_activate

Then:

docker-machine start mymachine

docker_activate mymachine

</comment><comment><USER41> Question, is there a homebrew package for DLite?

<comment><USER42> Hopefully soon: [https://github.com/Homebrew/homebrew/pull/48460](https://github.com/Homebrew/homebrew/pull/48460)

</comment></comment><comment><USER43> Docker does run natively on OSX.

Just forward a port with ssh/socat/etc and set the environment variable correctly to point to your build host that can run lxc.

There is so much over-engineering going on in this arena. :/

<comment><USER44> There is no definition of "native" where your statement is true.

<comment><USER43> Containers don't run on osx, but docker isn't responsible for the containers anyway - lxc is.

The "docker" program builds and runs natively under osx just fine, like any other Go binary.

<comment><USER45> Docker doesn't and hasn't used LXC for a long time. It uses libcontainer, which is their own implementation of a container runtime. Even when Docker did use LXC, the Docker daemon was required for management. The Docker daemon only runs on GNU/Linux and Windows, so there is no sane definition of "native" where the statement "Docker runs natively on OS X" is correct.</comment></comment></comment></comment>


A trip down the League of Legends graphics pipeline - <AUTHOR> https://engineering.riotgames.com/news/trip-down-lol-graphics-pipeline <comment><USER2> Several years ago, if I had to choose a video game company where I would loved to work as a software developer, it would have been Blizzard Entertainment.

Now, it would definitely be Riot Games.

As player, spectator and developper, I'm so impressed by their work, the evolution of their game since the release in 2009, how they listen their community [1], try new things and, most of the time, admit their mistakes (e.g. removing the ranked solo queue in 2016) and rollback [2] or improve their changes when it's needed.

Their game is the most played game ever. ~100 millions active players every month [3].

Their game is also the most watched game ever. ~40 millions unique viewers for the finals of the last World Cup in September [4]. Hundreds of thousands of viewers on Twitch every day (without even counting the Asian region). They have revolutionized the "e-sport" in Occident. I don't play anymore (for now) but I'm still watching most of the professional games because they created an accessible, passionate and entertaining game to watch (for those interested, the new season just started in Korea, China and Europe, and tomorrow in North America [5]).

Really inspiring. Congratz Riot Games.

[1] [https://www.reddit.com/r/leagueoflegends](https://www.reddit.com/r/leagueoflegends)

[2] [http://na.leagueoflegends.com/en/news/game- updates/competiti...](http://na.leagueoflegends.com/en/news/game- updates/competitive/riot-pls-ranked-pls-2017-season-ranked-changes)

[3] [http://www.riftherald.com/2016/9/13/12865314/monthly-lol- pla...](http://www.riftherald.com/2016/9/13/12865314/monthly-lol- players-2016-active-worldwide)

[4] [http://www.espn.com/esports/story/_/id/18221739/2016-league-...](http://www.espn.com/esports/story/_/id/18221739/2016-league- legends-world-championship-numbers)

[5] [http://www.lolesports.com/en_US](http://www.lolesports.com/en_US)

<comment><USER3> This Moba and TowerDefence genres that started as maps and mods of RTS games (Age of Empire 1/2 and WarCraft3).

I personally find this grinding gameplay style boring. Like Farmville or playing at a casino or lottery. Pointless and boring repetitive. I prefer real games.

Sadly, triple-A RTS games are no more, no new release for 10 years (beside SC2, which I dislike). Halo Wars 1 and C&C4 marked the end, and the low point of RTS by causualisation to fit the consoles. Whereas modern games like Watch Dogs 2 on consoles have a more complex control schema and RTS elements with it's drone and hacking.

One day I want a new AoE and C&C with modern graphics as PC first triple-A game.

<comment><USER4> Dawn of War: Warhammer, Age of Wonders 3, Paradox games, Civilization...

It may not be quite like it used to, but strategy as a broader genre is still going strong.

<comment><USER5> Homeworld: Deserts of Kharak also came out in 2016 and was a great RTS.

</comment></comment></comment></comment><comment><AUTHOR> Few things consistently blow my mind as insane graphics demos

[https://www.shadertoy.com/view/4dfGzS](https://www.shadertoy.com/view/4dfGzS) (or basically anything on that site)

How is that 400 lines of code.

Or this one which even generates the sound on the GPU

[https://www.shadertoy.com/view/4ts3z2](https://www.shadertoy.com/view/4ts3z2)

With the wide adoption of WebGL, it's a good time to get involved in graphics. Furthermore, GPUs are taking over esp. with the advent of machine learning (nvidia stock grew ~3x, amd ~5x last year). The stuff nvidia has been recently doing is kinda crazy. I wouldn't be surprised if in 15 years, instead of AWS, we are using geforce cloud or smth, just because nvidia will have an easier time building a cloud offering than amazon will have building a gpu.

These are some good resources to get started with graphics/games

# WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL

[https://www.amazon.com/WebGL-Programming-Guide- Interactive-G...](https://www.amazon.com/WebGL-Programming-Guide-Interactive- Graphics/dp/0321902920/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=akhn-20&linkId=6a3c5120f9335a1038329ba5136d0ca9)

Historically, C++ has definitely been THE language for doing graphics but if you are starting these these, you would have to have really compelling reasons to start with C++ and not JavaScript and WebGL. And that's coming from someone who actually likes C++ and used to write it professionally.

# Book of Shaders

[https://thebookofshaders.com/](https://thebookofshaders.com/)

# Game Programming Patterns

[http://gameprogrammingpatterns.com/contents.html](http://gameprogrammingpatterns.com/contents.html)

[https://www.amazon.com/Game-Programming-Patterns-Robert- Nyst...](https://www.amazon.com/Game-Programming-Patterns-Robert- Nystrom/dp/0990582906/ref=as_li_ss_tl?sa-no- redirect=1&linkCode=ll1&tag=akhn-20&linkId=abb3d10b5110e80969bf860188704f7c)

HN's own @munificent wrote a book discussing the most important design patterns in game design. Good book applicable beyond games.

# Game engine architecture

[https://www.amazon.com/Engine-Architecture-Second-Jason- Greg...](https://www.amazon.com/Engine-Architecture-Second-Jason- Gregory/dp/1466560010/ref=as_li_ss_tl?_encoding=UTF8&psc=1&refRID=CYQ60B781NB1PD69E20Y&linkCode=ll1&tag=akhn-20&linkId=d234fcc54fc7579edd423dccfe0d47a4)

# Computer graphics: Principles and Practice

[https://www.amazon.com/Computer-Graphics-Principles- Practice...](https://www.amazon.com/Computer-Graphics-Principles- Practice-3rd/dp/0321399528/ref=as_li_ss_tl?s=books&ie=UTF8&qid=1484843854&sr=1-1&keywords=computer+graphics&linkCode=ll1&tag=akhn-20&linkId=ce5d19658fd2884b7b6bf7ceb09686dc)

This is more of college textbook if you'd prefer that but the WebGL one is more accessible and less dry.

# Physically Based Rendering & Real-Time Rendering

These discuss some state of the art techniques in computer graphics. I'm not going to claim to have really read them but from what I've seen they are very solid.

[https://www.amazon.com/Computer-Graphics-Principles- Practice...](https://www.amazon.com/Computer-Graphics-Principles- Practice-3rd/dp/0321399528/ref=as_li_ss_tl?s=books&ie=UTF8&qid=1484843854&sr=1-1&keywords=computer+graphics&linkCode=ll1&tag=akhn-20&linkId=ce5d19658fd2884b7b6bf7ceb09686dc)

[https://www.amazon.com/Physically-Based-Rendering-Third- Impl...](https://www.amazon.com/Physically-Based-Rendering-Third- Implementation/dp/0128006455/ref=as_li_ss_tl?s=books&ie=UTF8&qid=1484843804&sr=1-1&keywords=physically+based&linkCode=ll1&tag=akhn-20&linkId=1c04902237f3600b48d26a8d3e9f507b)

<comment><USER6> Pardon me asking, Is there a way to save comments for later? This is gold, and thank you for the resources. I have been very interested in graphics since I took Computer Graphics in College (It felt like an applied linear algebra course, but I loved it. It was subsequently the only course I felt like I was challenged beyond my abilities -- I had to take the course twice to get the credit, but I loved that class)

Also just kind of asking for curiosity, do you think a language like go or rust will become popular for developing game engines? I realize game programmers are anti-GC but what if GC technology advances that the performance drop is negligible I wonder.

<comment><USER7> Tap the time (x mins/hours ago) of the comment you want to favourite. That should take you to a page where you can favourite it

</comment></comment></comment><comment><USER8> I'm always impressed by how well hugely popular games like League and CSGO run on bottom-tier machines. Maybe it really isn't all that impressive and its just the number of poorly optimized bloatfests out there that skews my perception

<comment><USER9> Nope, as a gamedev I can say that it definitely _is_ impressive.

As with all optimization it is hard: as you try to squeeze more out of the machine your code gets less and less elegant.

<comment><USER10> I agree as well. Most of my fastest, "best" code is awful to look at because it has to be. It's full of crazy comments and hacks that were necessary for the hardware, language, and time usually. I think as processing power has increased, the low-level code is actually much less ugly. This is in no small part due to astronomical leaps in game design, engine design, and development time and other resources.

Still, in my experience any codebase that pushes a large amount of technical boundaries tends to be full of huge "WTF is this" moments that require explanation. It is an achievement if you can create a decently powerful codebase that can survive rapid changes and additions. It's much more common, but I've seen and worked on AAA codebases that would break if you blew on them.

</comment></comment></comment><comment><USER11> It's interesting to me how a few of the effects are still baked into the textures, which means they still can't let the user rotate their camera. Most people feel there is an advantage to playing on the bottom side due to camera perspectives, and allowing users to rotate their cameras could nullify this disadvantage.

<comment><USER12> They could just bake two versions for the two possible views and let you select between them. Or even just always put the enemy team on top.

</comment></comment><comment><USER13> Title is a nice nod to the classic _A Trip Down the Graphics Pipeline_ by the great Jim Blinn.

</comment><comment><USER14> The author answered a few question in this /r/gamedev thread: [https://www.reddit.com/r/gamedev/comments/5otq0r/a_trip_down...](https://www.reddit.com/r/gamedev/comments/5otq0r/a_trip_down_the_lol_graphics_pipeline/)

</comment><comment><USER15> Along the lines of this, can anyone recommend a blog post, or an article that demonstrates the mathematics that goes into game design? I want to show my 8 year old who wants to build games one day why math is important. Maybe something that shows how matrices are used to show placement, or vectors to drive movement?

<comment><USER16> This may help [https://nrich.maths.org/1374](https://nrich.maths.org/1374)

</comment></comment><comment><USER17> See also the fantastic graphics studies produced by Adrian Courreges.

[http://www.adriancourreges.com/blog/2016/09/09/doom-2016-gra...](http://www.adriancourreges.com/blog/2016/09/09/doom-2016-graphics- study/)</comment>


My Code Was in the Original Terminator Movie - <AUTHOR> https://twitter.com/ThrillScience/status/1249742678532620293 <comment><USER3> Other scenes have ASM from an Apple II. [https://i.guim.co.uk/img/static/sys- images/Lifeandhealth/Pix...](https://i.guim.co.uk/img/static/sys- images/Lifeandhealth/Pix/pictures/2014/1/10/1389352492085/Code-in-The- Terminator-008.jpg?width=300&quality=45&auto=format&fit=max&dpr=2&s=e991a8810bf2bc310a77ddeae2ed4098)

<comment><USER4> I break all those down in my video on The Terminator and its code: [https://www.youtube.com/watch?v=YRnnjoiSV-U](https://www.youtube.com/watch?v=YRnnjoiSV-U) It's all from Nibble Magazine.

<comment><USER5> Epic, John!

</comment></comment></comment><comment><USER6> Slightly disappointed that this wasn't the 6502 assembly listings we saw in the classic "Termovision" shots from the first movie ;)

<comment><USER7> Indeed! Came here to say the same thing. That code [0] was via Nibble Magazine, which was pretty great back in the day.

[0] [https://www.pagetable.com/?p=64](https://www.pagetable.com/?p=64)

<comment><USER8> Very kind of Skynet to include the English-language comments in the binary in case somebody needs to step through it in a debugger.

<comment><USER9> The Skynrt was probably all dreamt together in an adversial neural network.

</comment></comment></comment></comment><comment><USER10> At least the movie Sneakers was serious about the math: [http://world.std.com/~reinhold/math/sneakers.adleman.html](http://world.std.com/~reinhold/math/sneakers.adleman.html)

</comment><comment><USER11> That's close to "Hello World" in COBOL. Read a number and add it.

<comment><USER12> So it's true: when he's not killing people, the original Terminator processes New Jersey unemployment insurance applications.

<comment><USER13> No need to repeat yourself

</comment></comment></comment><comment><USER14> Oblig-

[https://nmap.org/movies/](https://nmap.org/movies/)

</comment><comment><USER15> I was going to link to this on YouTube since I remember watching it for free, but it seems they stopped providing it.

[https://www.youtube.com/watch?v=-fN82upbGPo](https://www.youtube.com/watch?v=-fN82upbGPo)

[https://www.indiewire.com/2018/11/youtube-full-movies- free-a...](https://www.indiewire.com/2018/11/youtube-full-movies-free- ads-1202021659/)

</comment><comment><USER16> I've seen this website used in a bunch of TV shows these past few years: [http://www.hackertyper.com/](http://www.hackertyper.com/)

According to `git blame` Alexey Dobriyan wrote most of that file so congrats Alexey on your unexpected career as a TV prop guy!

</comment><comment><USER17> So Skynet was written in COBOL. Explains why it was so angry, I guess.

<comment><USER18> They had to send the Terminator back in time to circumvent Y2K

<comment><USER19> If you're looking for a young guy working in cobol in the y2k vicinity, that was me (19 at the time). not only I added 2 more digits to some microfocus app, I also saved the world :) My first professional gig was with cobol, and it was almost cool.

<comment><USER20> We salute you. Thanks for saving the world; to all greater y2k saveaists. What an unseen fix, you guys, all you y2k fixers, I mean, really did it. Thanks man(s).

man s might also mean women etc whatever all the new forms of people and identities goes on. We salute everyone.

</comment></comment></comment></comment><comment><USER21> Wow, the Terminator was powered by a "Hello World" COBOL application?

Think what it could do with some real code behind it!

<comment><USER22> Think what it could have done had it used PL/I-80, the immediately preceding listing in the magazine article, which benchmarked faster.

Or indeed, per the magazine benchmark test results, BASIC. (-:

</comment></comment><comment><USER23> So T-800 was written in Cobol? :/

</comment><comment><USER4> Happy ending to my YouTube video on where all the code came from in The Terminator. I tracked down the author of one piece and emailed him out of the blue.

[https://www.youtube.com/watch?v=YRnnjoiSV-U](https://www.youtube.com/watch?v=YRnnjoiSV-U)

Here's the code: [https://gist.github.com/jgrahamc/9a90399f39926857b19e8635b30...](https://gist.github.com/jgrahamc/9a90399f39926857b19e8635b30a3ebd)

<comment><USER24> And the magazine article (mentioned in the Twitter thread - "Dr digital" page 98 - 73 magazine 1984):

[https://archive.org/details/73-magazine-1984-05/page/n97/mod...](https://archive.org/details/73-magazine-1984-05/page/n97/mode/1up)

The online version is pretty much unreadable for me on Firefox/mobile, but the Pdf is ok:

[https://archive.org/download/73-magazine-1984-05/05_May_1984...](https://archive.org/download/73-magazine-1984-05/05_May_1984.pdf)

Ed: corrected link. The article itself would be a great hn submission - <USER2> comparison of time (writing+execution) of a simple program in basic, Pascal and cobol..

<comment><USER25> Came to say the same thing. Fascinating look into a time machine—what problems are we still wrestling with and what celebrated innovations then do we see as problematic legacies now (e.g., when a language allows 1 + '1' to equal 2)? Very fun read.

</comment></comment></comment><comment><USER26> > I remember seeing the movie and thinking "HA! Robots from the future use > COBOL". Sadly, this may turn out to be true.

Turns out COBOL was a failsafe against the robot apocalypse

</comment><comment><USER27> What a great find! I guess back then, they didn't think too much about the "rights" for a fragment of code lifted from a magazine. I don't think movie studios would do this today.

<comment><USER28> Please don't use multiple accounts to comment on or vote for your own posts. You succeeded in getting this perfectly good submission buried by our software. I had to manually restore it.

<comment><USER29> Did the IPs match or something? How did you know it was multiple accounts?

<comment><USER28> Unfortunately I can't talk about the details of that without making it easier for people to break the rules. Sorry to disappoint.

<comment><USER20> You should make a biography about what it took [you] to moderate HN once this site blows over, then you can just spill anything, man. Insert Deity; I guess this is hard work; or some wayfaring good algorithms.

Thanks man. I'll troll less, knowing how much dung (huh) you're in daily.

Please write the tricks once HN goes under or whatever.

<comment><USER28> I appreciate that! also, I don't think I've seen that inflection of dang before.

It would be nice if HN continued beyond all of us, though. Sounds grandiose and dumb, but why not? There's already a rich archive (a dozen years' worth and counting) and the site has certain properties that prevent it from growing too much.

Maybe eventually we (or our successors) will come up with an anti-abuse system that makes the current one obsolete and then we can publish the old one and HN can have a retro thread about it, like about 1980s Lisp AI programs.

<comment><USER29> > a retro thread about it, like about 1980s Lisp AI programs

LOL. Be careful what you wish for...

</comment></comment></comment></comment></comment></comment></comment><comment><USER30> HR: tell me about the most exciting project you did. Me, Senior Developer in Cyberdine: actually, T-800, despite of our customer insisted on using Cobol</comment>


Multi Layer Archive in rust released by ANSSI (French cybersecurity agency) - <AUTHOR> https://github.com/ANSSI-FR/MLA <comment><AUTHOR> See also the "Guide to develop secure applications with Rust" released by the same agency last year:

[https://github.com/ANSSI-FR/rust-guide](https://github.com/ANSSI-FR/rust- guide)</comment>


A $5 part used to modernize nuclear warheads could cost $850M to fix - <AUTHOR> https://www.defensenews.com/smr/nuclear-arsenal/2019/09/25/nuclear-warhead-programs-need-850m-fix-heres-how-the-government-plans-to-cover-it/ <comment><USER2> Cheap caps vs high end caps. You get what you pay for.</comment>


Computational Thinking without Programming - <AUTHOR> http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2009-02.html#e2009-02-17T09_31_04.htm <comment><USER2> Articles like this all ways remind me of Dijkstra's old saying "CS is as much about computers as astronomy is about telescopes." Maybe it is just where I did my undergraduate work but there were always two types of CS classes those were you learned theory and those were you programmed. The programming classes were always easy because they never had you build anything bigger than you could hack together without a thought in a couple of hours. The theory classes were always the hard ones were you learned something because the prof wasn't having you build bs.

Algorithm analysis, relational algebra, programming languages. How do any of these require code to be written to understand them? If anything the code takes time away from understanding.</comment>


No jokes: I've had only 7$ bill instead of 200$ as usual in roaming - <AUTHOR> http://roamerapp.com/

<comment><USER2> I really must commend Roamer's marketing people. They have stories planted in many places and I have seen several threads here on HN.

I have no idea if the product is good or not. I am an example of their target customer -- international traveler and a buyer of local SIM cards when I land anywhere. I downloaded the app. Let's see what happens next time I am in Beirut. :-)

Anyway, congrats to the Roamer people for getting noisy and publicizing their product.

</comment><comment><USER3> With a spammy title like that, I doubt many people will click on this... However looks interesting.</comment>


The Last Messiah (1933) - <AUTHOR> https://philosophynow.org/issues/45/The_Last_Messiah <comment><USER2> Loved it! Definitely bearing Nietzsche's torch in many ways. All the talk in the beginning about the deer with fatally-large antlers reminded me of this recent, perhaps terser, essay from Venkatesh Rao: [https://www.ribbonfarm.com/2018/09/20/dodo- thoughts/](https://www.ribbonfarm.com/2018/09/20/dodo-thoughts/)

</comment><comment><USER3> [I may have skimmed most of it.]

Insightful, dense and heavy stuff, with definite parallels to the present. At the end it seemed like a pathologically flowery/frenzied way to express quite a fatalistic outlook. My take on the final sentiment is that we'll probably more or less need to become a different species to 'earn the right' to exist in perpetuity. Our ultimate moral failings as city-apes were brought to light like never before in WWI, and it inspired a lot of dark reflection like this. Now I'm curious what this guy thought of WWII!

On my more optimistic days I like to hope the path of improvement from what we are now to something 'better' might turn out to be a gradual, peaceful process. I figure that since we're extremely unlikely to experience it, we may as well just pick the happiest possible transition and pretend that's how it all works out.

<comment><USER4> In my best moments, i still can't get past the "rich liberals" problem. Democrats are too enriched by the system to make effective change. The tide of fascism is rising around the world, and by the time that pacificts wake up to the magnitude of the problem, it'll be too late

</comment></comment><comment><USER5> His concept of "anchoring" seems immensely useful, especially today. It is essentially the continuation of Nietzsche's "God is Dead" concept.

Indeed, one could probably describe modern western society in the 21st century as increasingly devoid of population-wide anchors.

</comment><comment><USER6> This is Lovecraftian horror at its best.</comment>


Show HN: I made a social experiment while drinking coffee this morning - <AUTHOR> http://religoid.com/

<comment><USER2> Not very helpful. I have religious friends that would be offended by that for sure.

<comment><AUTHOR> Offended by the term itself? Do you think the word religoid has an innate negative connotation like "liberal" or "atheist" or "socialist"? Or offended by the definition?

<comment><USER2> I don't know exactly..most the religious people I know don't even like the term "religious". It's what we call them, not what they call themselves. Similar to Hackers being the same as Crackers to the outside world.

I wouldn't even like you calling me a "liberaliod". I think the "OID" brings to mind android. Like I'm a liberal who gets my guidance from outer space??? (read crazy, lacking logic)

I can't think of a way your term would be considered positive. It could be a catch phrase to describe crazy people...if that is what you mean it for. I wouldn't use it.</comment></comment></comment>


Show HN: Curl https://ec2.shop - <AUTHOR> https://ec2.shop <comment><AUTHOR> From time to time, I want a quick tool to help me compare EC2 instances price. [https://ec2instances.info/](https://ec2instances.info/) works great but it's somewhat slow and didn't have a way to just `curl` from terminal.

So I develop this small tool which you can do thing like

        curl https://ec2.shop
        curl https://ec2.shop?region=us-west-2&filter=t2,m4

<comment><USER2> Are you manually detecting Curl specifically? If I use anything other than Curl, e.g. HTTPie or wget, I get the HTML page, even if I provide an `Accept: text/plain` request header. If I use one of those tools and spoof the Curl user agent string, I get the text/plain response. You should probably just look at the Accept request header, it's there specifically so clients can tell you what kind of response they want.

<comment><AUTHOR> Great idea.

I just implement it: [https://github.com/yeo/ec2.shop/commit/ab258aef3ac2ad3d45b26...](https://github.com/yeo/ec2.shop/commit/ab258aef3ac2ad3d45b26d76304476424379a77c)

Now by default it's text mode, so request by http client library or tool like curl, wget, httppie all get text bersion.

Only when detecting `Accept` contains `html` and user agent is safari/chrome/firefox etc it send html version.

<comment><USER3> There should be no reason to check user agent if already checking `Accept`. That's usually more for browser quirks or allow/blocking.

</comment></comment></comment></comment><comment><USER4> You can do cool things with this very quickly. For example, I always wondered the price differences between different regions, you can compare two instance prices quickly:

        diff -u <(curl -sS "https://ec2.shop?region=eu-central-1" | grep "t3.large" ) <(curl -sS "https://ec2.shop?region=us-east-1" | grep "t3.large")

</comment><comment><USER5> The prices column is sorted lexicographically, instead of numeric, i.e. 1, 10, 2

<comment><USER6> They all are

<comment><AUTHOR> I fixed this sorting issue :-). Give it another try.

</comment></comment></comment><comment><USER7> Color output seems to be tuned for dark terminal backgrounds. Memory, vCPUs, and Storage are nearly unreadable on a white background.

<comment><USER8> I've moaned about this with other CLI tools as well. I wish trend of using RGB values in ANSI escape codes would die because as ugly as the 16*3 colour fields¹ are, they are at least customisable so people can use palettes that suite their terminal and eyesight.

You don't get any such opportunity if the developers hard code the colour values in (and it's worse with a tool like this because you can't even set an environmental variable to change the tools behaviour)

¹ sixteen colours plus bright and dark variants

<comment><USER9> Can you link me to a way to use colours that change with the terminal colour preset? I haven't come across anything like that or maybe didn't pay attention. It would be really helpful

You said you can't even set an env variable to change them so I assume that there is an even better way?

<comment><USER8> Wikipedia has a good section on the different methods of describing colour: [https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4_bit)

I've got some Go code that you can reuse if you want to the escape codes in Go: [https://github.com/lmorg/murex/blob/master/utils/ansi/codes....](https://github.com/lmorg/murex/blob/master/utils/ansi/codes.go)

Just bare in mind that any numbers you see in documentation are sent as ASCII values rather than integers. eg `ESC[31m` (red text) should be sent to the terminal as

        []byte{  // http://www.asciitable.com/
            27,  // ESC character code
            91,  // '['
            51,  // '3'
            49,  // '1'
            109, // 'm'
        }

Though, as you know, most languages will have some syntactic sugar to translate characters to their ASCII values, eg

        'm' == 109
        Asc("m") == 109
        ...etc...

so at least you don't have to write all those values by hand.

<comment><USER9> Thanks for the explanation and the snippets ^^

</comment></comment></comment></comment></comment><comment><USER10> I really like this, but the horizontal lines are not helpful at all and just double the number of lines for no benefit.

You can obviously

        curl ec2.shop | grep -v ─

but I'm not sure I want to do that every time and I'm not exactly sure why, but when I do that, I can't select the entire row, only a column at a time (zsh on iTerm 2).

<comment><AUTHOR> I turn off the color :-). And I must say it much nicer without color. Thank you.

</comment></comment><comment><USER11> Is this open sourced?

I personally try looking into implementing a curl "interface" to one of my projects, realised that it actually need to check the user-agent (of curl and a plethora of curl alternatives) which I find kind of weird...

<comment><AUTHOR> Hey, yes it's 100% open source.

[https://github.com/yeo/ec2.shop](https://github.com/yeo/ec2.shop)

The reason it check `curl` agent is because it share the same endpoint (root url) for both of `curl` page and browser version(the one with dropdown, grid etc)

<comment><USER11> I see, thanks!

</comment></comment></comment><comment><USER12> Neat! The prices are without currency symbols - I guess it's always USD? Or maybe dependent on the region…? Would be nice if the $ symbol is printed, and even better if I could see the prices of my european servers in european currency - maybe add a param to select the currency?

It would be very helpful if you would support the `Accept: application/json` header. This way, we could use it in combination with jq to do arbitrary filtering:

        curl -L -H "Accept: application/json" ec2.shop | jq .

</comment><comment><USER13> Cool! You should probably add http support and not only https. Writing `curl ec2.shop` is easier than `curl [https://ec2.shop`](https://ec2.shop`)

<comment><USER14> For HTTPS to truly be meaningful we need to stop supporting HTTP as an on- ramp, to prevent people from just hijacking that initial unencrypted connection and sending anything they want.

<comment><USER15> If you MITM and the user agent send an HTTP request for ec2.shop it does not matter whether the webserver supports HTTP or not, you can send a fake HTTP response either way.

<comment><USER8> That was the GPs point.

</comment></comment></comment></comment><comment><USER16> Could you update the `...&filter...` example to wrap the URL in quotes so that the `&` isn't interpretted by the shell as sending the process to the background?

<comment><USER17> this is an issue of ZSH.

<comment><USER8> That is a POSIX standard and not something specific to zsh

</comment></comment></comment><comment><USER18> Interesting tool. Would be really useful if it supported Spot prices, which are even more of a PITA to find using Amazon's UI.

<comment><AUTHOR> Yes, it isn't that hard to support Spot prices but the price change too often so I have to scrape it for every 5 minutes. Right now, I haven't had the automation to run this yet but it's doable and my pain point too =)

</comment></comment><comment><AUTHOR> Wow, thank you for the feedback. I'm going to implement lot of features suggest in this page.

Since I cannot edit original comment, yes, the site is open source: [https://github.com/yeo/ec2.shop](https://github.com/yeo/ec2.shop)

</comment><comment><USER19> Can I be sure that the prices from this endpoint are accurate (i.e. if Amzn changes the prices, this endpoint will reflect that change)? Off-topic: if I request a spot instance, is there any way (API/cli) to know how much Amzn charges me every hour for that instance?

<comment><USER20> I've built something like this in the past (I was running a beefy server for my friends, and wanted them to know how much it was costing us at an hourly rate, before they ran it for 3 weeks straight).

It's definitely possible and not very challenging, but the API Documentation for prices was pretty weak when I built it (a year or two ago, written in Go if it makes a difference). The google cloud prices API was similarly gross. It was kinda fun, but I wouldn't enjoy maintaining that code. In reality, it turns out that $/hour isn't a super straightforward metric (there are many dimensions that go into it), so it's not super straightforward to query.

</comment></comment><comment><USER21> Super! It would be great to see price per month as well.

</comment><comment><USER22> Very neat. Anyone know why

        curl -s https://ec2.shop | grep 't2'

would work, but

        curl -s https://ec2.shop | grep 'm4'

does not? Both commands work if I write the curl result to a file, but when I pipe from curl, the pattern `m4` matches all instances of the number 4.

<comment><AUTHOR> Thank you, this is a bug.

The color code for blue is `"\033[34m` so it always match m4 for anything :(.

Just push a fix by disabling color as suggestion in here as well

<comment><USER22> Ah, got it, thanks for the clarity.

</comment></comment></comment><comment><USER23> Neat, didn't realize how much the options for ec2 have grown over time. Can those instances with 100Gbps networking actually push that to upstream transit (ie. the Internet)? Or is that mostly for internal network communication between instances and other AWS services?

</comment><comment><USER24> The examples miss the opening quote before the URLs.

Illustration: [http://dmitry.cheryasov.info/random/missing-quote- mark.jpg](http://dmitry.cheryasov.info/random/missing-quote-mark.jpg)

</comment><comment><USER25> Nice list. Recently, I loaded all the prices into an Excel document to make things easier for projecting costs and determining prices. I always use the following formula for estimating monthly costs on Amezmo.

$Hourly * 750

750 being the number of hours in 1 month.

</comment><comment><USER26> Nice! thanks for using [https://gridjs.io](https://gridjs.io) :)

</comment><comment><USER27> now curl is the new black ? :) This is not my first time that I see curl based services.

</comment><comment><USER28> Could you have it retain the sort order when changing region?

</comment><comment><USER29> Is there a way to show the output in json format?

<comment> mike-cardwell Would be nice if both of these work (they don't):

curl [https://ec2.shop](https://ec2.shop) -H 'Accept: application/json'

curl [https://ec2.shop?json](https://ec2.shop?json)

<comment><AUTHOR> It should work that way now :-). Thanks for suggestion.

</comment></comment></comment><comment><USER30> Very hand. Can you add sorting?

<comment><USER8> ...or remove the pretty line glyphs so this tool can be used in a normal CLI pipeline (eg `sort`)

</comment></comment><comment><USER31> Bravo. This is really lovely!

</comment><comment><USER32> I like this trend</comment>


Show HN: FlatMateMe – We believe sharing a flat is a special experience - <AUTHOR> http://www.flatmateme.com/home <comment><AUTHOR> Hi! We are an Italian startup from Milan now approaching the Bay Area rental market. We use Facebook friends and interests data to help people looking for a room and roommates.

How does it work? In addition to all the basic information (location, monthly fee, pictures of the room) for each listed room FlatMateMe shows if you actually have common friends and interests with the roommates.

On the other hand, if you are looking for a roommate, the website lets you manage all the applicants on one single dashboard. There you are able to see all the friends and interests you share with each one of them on top of the personalized FlatMateMe profile, in order to find your perfect match.

What do you think? Any advice is super appreciated. Thanks!</comment>


Google Donated To A Senator Who Voted Against Gay Conversion Therapy Ban - <AUTHOR> https://twitter.com/Pinboard/status/1208200736862982144 <comment><USER2> Google is not a group of people who decided to associate based on their shared values. That was always bullshit, and I'm unsure why anyone took it seriously. If you fell for it, that's on you.

Google should never have talked about "pride" or "our shared values". It's very clear that they inherited that stuff from universities, where garbled nonsense about "safety," "this is our home," and "no place for hate" have become institutionalized. Mature companies led by adults know to avoid this minefield.

All of that aside, the attitude evinced by this post is counterproductive. Politics is about persuasion. If you want to persuade (and not just preach to the converted), you have to understand the other perspective. If all you can do is dismiss people as "indefensible," you don't understand them, and you won't convince them. You'll come off as nasty, entitled, arrogant, and ideological. You know, the kind of person who commits code to push their political agenda, spies on their coworkers, or spams some lawyer they disapprove of with emails.

<comment><USER3> I assume to tell the gay people in your life that you would rather they didn't exist? When you support money flowing to politicians who support policies like conversion camps, the message you are sending is clear. If Google or others want to convince politicians who support backwards policies to change their ways, they can still engage with them, but there is absolutely no need to financially support then.

<comment><USER4> > I assume to tell the gay people in your life that you would rather they > didn't exist?

That's a weird assumption to make.

What I would assume is that the Senator has any other position that Google finds more profitable than an alternative Senator. It would be kind of crazy to think Google is directly supporting conversion therapy, or that anyone on this forum would.

<comment><USER3> These political donations have externalities beyond the single policy that a person, Google, or any company may be donating for. If Google absolutely had to donate to one of several politicians and this was the lesser evil, that would be understandable. This is not the case. Companies don't need to donate to have political influence: Apple doesn't and they do fine.

Supporting a politician financially who also happens to support conversion camps in the end is still supporting all those policies, whether or not that was the initial intent.

</comment></comment></comment></comment><comment><USER5> I've been doing Twitter threads of Google's political giving for a while; they donate to a large number of terrible people. I try to single out politicians with records that are antithetical to basic values Google employees share, or that the company advertises (like its ostentatious committment to #pride), not just things I politically disagree with.

To head off some comments that always come up:

1\. Like most corporate PACs, Google gives fairly evenly to politicians in both parties. I don't think donations to Democrats "cancel out" donations to indefensible figures like Scalise, or Nunes, any more than giving money to the NAACP cancels out a donation to the KKK.

2\. Google's giving is not indiscriminate, but tactical and highly targeted. In particular, they don't just give to everyone across the board like the sugar lobby.

3\. The dollar figures are small because they are capped by statute. At most, Google can give one politician $10,000 in an election cycle. This is absolutely dwarfed in size by Google's D.C. lobbying operation, which can't contribute directly to campaigns but finds many ways to be influential.

4\. This money is donated by employees who opt in, but is allocated by the company. Googlers have no input into the targeting and timing of these donations; it's decided by the office of public policy.

5\. An American corporation can do fine without a PAC. Apple and IBM don't have one. Microsoft won a giant Pentagon cloud computing contract while its political giving was suspended.

With that said, some further threads:

November 2019: [https://twitter.com/Pinboard/status/1197253535735267328](https://twitter.com/Pinboard/status/1197253535735267328)

August 2019: [https://twitter.com/Pinboard/status/1164031478897901573](https://twitter.com/Pinboard/status/1164031478897901573)

June 2019: [https://twitter.com/Pinboard/status/1152245502361997314](https://twitter.com/Pinboard/status/1152245502361997314)

April 2019: [https://twitter.com/Pinboard/status/1119751992597835776](https://twitter.com/Pinboard/status/1119751992597835776)

<comment><USER6> _This money is donated by employees who opt in_

Why do they opt in? If they wanted to donate to a politician, they always can. Why this setup?

<comment><USER7> Anonymity? Instead of everyone knowing the exact person working at Google donated to a cause/politician, you only know there might be an employee at Google that did.

<comment><USER5> The employee donors are a matter of public record; they're listed in each FEC filing.

</comment></comment></comment></comment><comment><USER8> What else does this senator stand for? Does it even matter? Honestly, I'm not really sure if Google should be basing their donations on just one issue.

</comment><comment><USER9> $2,500 hardly seems a large donation from a behemoth like Google. It's fairly common practice in the Fortune 50s to donate to any politician who might even have a glance at any potential legislation that could affect them.

This would be more impactful if Google was one of the only large companies that donated.

<comment><USER5> The donations are capped by law at $10K, so they are all "small" in that sense.

</comment></comment><comment><USER10> The ex-Mozilla CEO was shit-canned for much less. I'm surprised so many here on HN support this.

<comment><USER11> Try to look at the forest instead of any individual tree.

The ex-Mozilla CEO donated to an anti-gay marriage SuperPAC; the entire existence of that SuperPAC was 100% dedicated to opposition to gay marriage.

Google donated to a candidate that has voted on hundreds of different bills; less than 1% of his votes are under scrutiny in this Twitter thread.

<comment><USER10> Do you have proof that the SuperPACs only purpose was to oppose gay marriage?

He donated a very small amount of personal money as opposed to an entire company making donations.

<comment><USER12> See [https://en.wikipedia.org/wiki/Political_action_committee#Sup...](https://en.wikipedia.org/wiki/Political_action_committee#Super_PACs) and [https://www.cbsnews.com/news/colbert-gets-a-super-pac-so- wha...](https://www.cbsnews.com/news/colbert-gets-a-super-pac-so-what-are- they/). Citizens United (2010) after SpeechNow (2009) created Super-PACs. Prop 8 was on the CA ballot in 2008. So the comment above is technically wrong to use "Super-PAC", which was coined in 2010, but it sounds scarier than PAC. The double standard and special pleading for Google stink.

</comment></comment></comment></comment><comment><USER13> Who cares? Google and every other large corporation donate to all the candidates covering the entire spectrum of politics.

It's a hedge bet strategy focused in risk management: the hope is to have influence over whoever so happens to be politically popular at any given time.

<comment><USER5> You're wrong twice within the first twenty words. Google doesn't donate to all candidates, and there are U.S. corporations of its size that don't make political contributions at all.

<comment><USER14> Could you name one or two of those that are Google's (Alphabet's) size don't contribute? That seems highly unlikely in the US.

<comment><USER15> > Could you name one or two of those that are Google's (Alphabet's) size don't > contribute?

All of them, including Google, because they are legally prohibited from it.

Google's PAC donates, but not with Google funds, because corporate PAC donations can't come from corporate treasury funds.

There are some large companies that lobby but don't operate PACs (IBM and Apple for instance.) It's debatable whether this is better or not, but it's certainly a different shape of political engagement.</comment></comment></comment></comment>


Billionaire hedge fund manager Klarman issues dire warning on global economy - <AUTHOR> https://www.cnbc.com/2019/01/22/billionaire-hedge-fund-manager-klarman-issues-dire-warning-on-economy.html <comment><AUTHOR> Klarman's thoughts in more depth, from a month ago:

[https://www.alumni.hbs.edu/stories/Pages/story- bulletin.aspx...](https://www.alumni.hbs.edu/stories/Pages/story- bulletin.aspx?num=6818)

<comment><USER2> From the text itself, in the words of Lou Gerstner. "You always get more of what you measure" could be the root of a solution.

I think that's the idea behind the Gross National Happiness. You find a metric that mostly fits in with the capitalist model but has fewer negative externalities.

Great read in any case.</comment></comment>


Splice Machine open-sources its "dual engine" RDBMS - <AUTHOR> http://www.splicemachine.com/splice-machine-announces-move-to-open-source-offers-early-access-to-developers/ <comment><USER2> Doesn't look open source to me _yet_. The only things I can find are this announcement and a Surveymonkey page where would-be contributors can indicate what they think they could contribute to the project. I couldn't find any licensing information.

The URL also mentions _" announces move to open source offers early access to developers"_.

From what I can read, this could mean a not too well executed 'real open source' release, a "let's try and find free developers by letting them work with the source, but not deploy it commercially", or anything in-between.

<comment><USER3> and nothing on [https://github.com/splicemachine](https://github.com/splicemachine)

<comment><USER4> Please expect it this summer, I will post here once we announce its availability.

</comment></comment></comment><comment><USER5> Has anyone used this successfully who would like to comment on it?

We ran a brief test about a year ago and found performance was not acceptable given the amount of hardware dedicated to the test cluster, which they set up for us to their specifications in their hosting facility after multiple in- house attempts were disqualified post-completion (...a frustrating waste of time) by their SE. I'm not sure how fair we were with the workload we designed for the test; Our management seemed to think this was going to be "Easy Scale Out Big Data MSSQL!" but I came away thinking this was not a product you could just port an existing application to and be done with.

<comment><USER4> I am sorry to hear that. We spent a lot of time trying to get SQL compliance nailed (Triggers, constraints, etc.). Our 2.0 product with Spark for our analytical workloads has helped our performance and resource isolation significantly.

I hope once we open source you might try it again.

</comment></comment><comment><USER6> Sounds interesting, do they have any spatial (PostGIS like) capabilities? I couldn't find anything, but curious if its something they are going to have.

<comment><USER4> No spatial yet. We use Spark for our analytical engine so it would not be a stretch to implement...</comment></comment>


PCIe, power management, and problematic BIOSes - <AUTHOR> http://lwn.net/SubscriberLink/449448/95c739f46051924f/ <comment><USER2> So how does Windows do this? And why can't Linux do the same?

<comment><USER3> Since the hardware vendors write both the firmware/BIOS and the Windows drivers, they don't have to make sure that they follow specifications closely or document properly. Even worse, they generally aren't the original authors of stuff so don't understand the code, are under incredible time pressure, and are often hardware engineers rather than software engineers. So it's a lot of hack and slash coding combined with "it boots Windows, ship it!"</comment></comment>


Security questions, re-imagined - <AUTHOR> http://shout.setfive.com/2010/11/10/security-questions-re-imagined/

<comment><USER2> The problem isn't really what questions are being asked, it's that questions are being asked at all. Verify by phone/text, and encourage it's kept up to date (by periodically confirming). It's really convenient/simple and it's more secure than asking a question. Based on the questions you provide, anyone who knows me IRL (friend or not) could easily gain access to my accounts protected by them. This is not true security, it's imagined security. Security just in place to make us feel better.</comment>


Marching Towards Zero Waste - <AUTHOR> https://aishwaryabhargav.com/2020/09/15/marching-towards-zero-waste/ <comment><USER2> I like the idea, but would say there still is a giant step missing towards zero waste, given that a lot of waste comes from private households and that at least half of the food is wasted along the supply chain.

<comment><AUTHOR> Hi, Thanks for reading my post. I would like to clarify that we have two different distinction when it comes to wastage. One is the 'food wastage' (that I talk about) which happens at the end of the food chain. Second is the 'food loss' that you mentioned above (supply chain wastage)

My major focus was on the food wastage in restaurants/cafes. I hope this clarifies. Thank you.</comment></comment>


Why I'm officially quitting Apple Laptops - <AUTHOR> https://www.youtube.com/watch?v=gZUSFda_W7k <comment><USER2> I had been waiting for the new MBP, and when Apple released the 2016 touchbar models I went and bought the 2015 15'' model.

I used the 2015 for a year before selling it because the Intel GPU was seriously underpowered and the 4th gen CPU ran too hot which made the fans annoyingly audible too often.

So since I din't need the portability I ended up getting a 5K iMac, which is quite frankly the best Mac I've ever owned. I still use a 2014 13'' MBP that I had lying around on the rare times I travel or work away from home.

I hope Apple knows all the problems with the current laptop line, but if they don't do something quick they will end up losing a lot of audience. Unless something drastic happens my next laptop won't be an Apple one.

</comment><comment><USER3> Yeah, me too. Mostly it's the keyboard and execrable touchbar. But also, just the general decline in quality of Apple software and design.

Got a System76 Darter. Very happy with it. Great keyboard.

By the way, the dude in that video is really irritating to listen to and watch. What is up with his hands?

</comment><comment><AUTHOR> Why does Apple keep trying to patch up the butterfly? When will they accept that the technology is a failure?

<comment><USER2> I'm guessing people working at Apple are not idiots. Probably they couldn't find any other way of keeping the small profile and since everyone was expecting a redesign they had to go with it.

I imagine Apple is working on a complete redesign of their laptop line, but that takes time. Specially when the Mac is only 10% of your business.</comment></comment>


Ask HN: How much equity is a good advisor worth? - <AUTHOR> Hi Guys,
Long time HN'er here. I'm using a throwaway for this post.
Here's the deal: We have a solid advisor looking to join our startup. His connections and involvement will have a strong positive impact on our company and it's a legitimate possibility that he might invest later in the game.
He's offering 3-4 hours a week of his time and to help us build an advisory board.
How much equity is that worth?
In advance, thanks for your time!
(I know it's a bit of a broad question, but any help the HN community would be highly appreciated) <comment><USER2> I'm in a similar situation, and am struggling with the same question. From some desktop research and talking to investors/other startups, it seems like "0.1% - 2% of post-Series A stock" is a reasonable range depending on the results an advisor might bring about. (<http://venturehacks.com/articles/advisors-part-2>)

Are you planning to draft a legal agreement of sorts with this person? If yes, it may be helpful to tie in dollar amounts with milestones to determine equity percentages, I think. Personally I find it hard to quantify how much connections and a couple of hours a week are worth in terms of dollars. If it's possible to put a revenue amount to what s/he is bringing to the table, either in a strategic "$X in the first N years" or "$X from this release within N years" kind of way, that may help to crystallize the equity percentage somewhat.

</comment><comment><USER3> The answer lies in one of my favorite pg's essays: 1/(1 - n)

<pg> You should give up n% of your company if what you trade it for improves your average outcome enough that the (100 - n)% you have left is worth more than the whole company was before. </pg>

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

<comment><USER4> But isn't "what is the value of n?" just a rephrasing of the OP's question?

<comment><USER3> Yes, indeed. But IMO this is the way to see this problem. A "typical" range answer (eg .1% to .5%) is not very useful in this case. Alas! I would give Jobs half of my company to have him in my board of advisors.

</comment></comment></comment><comment><USER5> Check out this video of Travis Kalanick, angel investor and entrepreneur. It's a video of his entire talk at a TechCocktail event so you might have to jump around if you're not interested in the whole thing, but he does address how much a good advisor is worth.

[http://techcocktail.com/hustle-is-the-antidote-startup- busin...](http://techcocktail.com/hustle-is-the-antidote-startup- business-2010-11)

<comment><USER6> Travis is an interesting guy but caveat emptor.

</comment></comment><comment><USER6> Hard to say without more specifics. Generic answer would be maybe a quarter of a percent.

Ask him to invest now. Even $10. And to help you raise capital (telling other people "yes, I put money into them" lends credibility if the guy does in fact have credibility to lend).

</comment><comment><USER7> Not much. I've seen advisor equity in the .1-.25% range. Advisors aren't founders, nor are they taking any risk (as a director would). The important part is to vest it.

</comment><comment><USER8> A good advisor's worth is based on how many valuable connections he has in the industry.

If your advisor has some serious silicon valley connections that he can get on the phone whenever he wants, then he's worth a good percent of equity.</comment>


If Hackers Didn't Exist, Governments Would Have to Invent Them - <AUTHOR> http://www.theatlantic.com/technology/archive/2012/07/if-hackers-didnt-exist-governments-would-have-to-invent-them/259463/ <comment><USER2> _> The hackers who dominate news coverage and popular culture -- malicious, adolescent techno-wizards, willing and able to do great harm to innocent civilians and society at large -- don't exist_

Okay, look. I'll agree that the media, as with most issues, spreads fear, uncertainty, and doubt about computer hackers out to wreak havoc. That said, capitalizing on this "myth" and claiming that these malicious hackers don't exist is flat-out wrong.

I'll be honest and admit that I skimmed the rest of the article after this point. It only takes looking at the arrests made re: the LulzSec hackers and the stunts they pulled off to know that saying that these people don't exist is a falsehood designed to get readers interested. For me, it didn't work.

Look at Anonymous hackers on Twitter, or the AnonOps IRC channel if you want to see some real nefarious youths.

We should take media coverage designed to scare us with a pinch of salt, but we also shouldn't rest on our laurels that "oh, these threats don't exist." They do.</comment>


A 'wave' of layoffs is coming for $100k/year white-collar jobs - <AUTHOR> https://finance.yahoo.com/news/jeffrey-gundlach-sees-unemployment-wave-hitting-white-collar-jobs-224443437.html <comment> jim-jim-jim > one of the outcomes of remote work is it reveals who produces and who > doesn't

This is why there was a massive spike in meetings scheduled after my company went into lockdown. All the buzzword jockeys are in a mad rush to prove themselves "useful" and it's getting in the way of us actually accomplishing anything.</comment>


Google CEO touts green energy shock doctrine - <AUTHOR> http://arstechnica.com/news.ars/post/20081120-eric-schmidts-shock-doctrine.html

<comment><USER2> Sure he's a smart guy no doubt, but how stupid would it sound if the CEO of Toyota said the same thing? What if the Secretary of Defense had a plan to modernize our railroads? Or if Steve Jobs had a revolutionary plan to save the airline industry?

I'm merely sounding a cautionary note here. Are we listening to Schmidt b/c he's the best man to listen to, or because he works for a very popular company? If he has "the Chief of Staff's ear on this," should we be concerned or happy? If he is to serve some un-official advisory role to the government shouldn't he be advising about software, hardware and networks? To be sure he has experience w/ energy issues in running google but this hardly makes him the point man for overhauling our energy infrastructure.</comment>


If I Had More Time, I Would Have Written a Shorter Letter (2012) - <AUTHOR> http://quoteinvestigator.com/2012/04/28/shorter-letter/ <comment><AUTHOR> I really liked this quote by Woodrow Wilson:

 _"That depends on the length of the speech," answered the President. "If it is a ten-minute speech it takes me all of two weeks to prepare it; if it is a half-hour speech it takes me a week; if I can talk as long as I want to it requires no preparation at all. I am ready now."_

</comment><comment><USER2> This makes me think of a teacher I had in school - he told us we should try to keep our exams to about 600 words. Whereas students in other classes routinely wrote about 2000 words, sometimes 3000.

I first disliked him, because he meant business - my first exam with this teacher was about 1100 words, and he explicitly told me he would have given me a better grade if it had been shorter. (Boy, was I mad!)

But in time, I came to appreciate this attitude, because it forced me to really think about what I wanted to say and how to say it. And I suppose that is what Pascal referred to, as well. Thinking about what you want to say and boiling it down to the essentials takes time.

The upside is that, with a little practice, it helps one to focus and what is essential and strip it as bare as possible.

(As you can see, I have since forgotten that valuable lesson and reverted to my old rambling ways.)

<comment><USER3> Your rambling was the result of providing context. You can be concise and clear when the reader is already knowledgeable. When that's missing, things get messy (witness any corporate email chain involving more than 3 people or 2 teams).

Lots of folks have resorted to footnotes, which isn't a bad tool at all, but it detracts from the core message Pascal was trying to relay: know your audience, and make sure each word is carefully selected to reinforce your message.

<comment><USER4> I've long been a fan of footnotes. Alas, they often don't work well in electronic formats. But they are a good way to provide context, justification, or additional detail without breaking the flow.

<comment><USER5> I believe they do work[0], it's that most people simply don't use them. I use them in articles, e-mails and HN comments[1] pretty often ;).

\--

[0] - especially if you can hyperlink to them and from them back to the main text.

[1] - as demonstrated.

<comment><USER6> The main problem with foot notes in electronic form vs print is the lack of pages.

In print you can glance slightly down for the foot note and the back up with out too much effort. In electronic form "without pages" it can be a significant effort to find your place again. < a >'s being remarkably unreliable.

Grantland often used marginalia which usually worked well but tragically is non trivial.

<comment><USER4> Fully agree. By way of comparison, endnotes in printed material are pretty much required citations, etc. But footnotes could often be "Hey, if you want a bit of additional context without interrupting the flow" with a quick glance. But there tends to be a commitment in electronic form to following a hyperlink even if everything works as it's supposed to. I don't have a good solution.

It's one of the reasons that fiction works better than non-fiction in non- paginated electronic formats.

</comment></comment></comment></comment></comment></comment><comment><USER7> An elucidating quote from Antoine de Saint-Exupéry:

"It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to remove."

<comment><USER8> This sort of attitude leaves us without headphone jacks on our phones.

<comment><USER9> Which is why Albert Einstein said it better: "Everything should be as simple as possible, but not simpler."

<comment><USER10> Though what he actually said was:

 _It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience._

which isn't quite as catchy.

</comment></comment></comment></comment><comment><USER11> I often find myself writing something long, so I have to close it with a kind of wrap-up, "this is the point" statement. Then I immediately delete everything except for the wrap-up statement.

<comment><USER12> The first draft is for me to figure out what I want to say.

The second draft is for me to say it.

The third draft is to fix all the mistakes I made in the second draft.

The fourth draft is to fix all the mistakes I missed in the third. Around here, it's finally good enough.

</comment></comment><comment><USER13> Perfectly applicable to software development. You can bang out a simple unoptimized program in tens or hundreds of lines of some scripting language (that compiles to megabytes of executable) in minutes. Doing the same thing in a highly optimized way with a minimal set of assembly instructions could take weeks or months.

<comment><USER14> And even more applicable to code golfing...

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

</comment></comment><comment><USER15> Ironically all of the source quotes cited in the article are much longer than "If I Had More Time, I Would Have Written a Shorter Letter".

I guess it took a century or two to whittle it down further.

<comment><USER16> That's not ironic, it's congruent: every quoted person didn't have much time at the moment to make that sentence shorter either.

</comment></comment><comment><USER17> As with a lot of witticisms, I guess just about every country attribute it to some native; in Norway, 'everybody' knows nobel laureate, author and bon vivant Bjørnstjerne Bjørnson wrote this.

(That would have been sometime between, say, 1875 and 1910, though, so he quite possibly lifted it off one of the people mentioned in the article.)

<comment><USER18> The attribution to Pascal is as definitive as these things ever get. Quote Investigator just likes to present the case cautiously.

</comment></comment><comment><USER19> I thought it was Knuth who wrote something to this effect. Not so, but I stumbled onto another gem of his:

> _Beware of bugs in the above code; I have only proved it correct, not tried > it._

</comment><comment><USER20> That's one thing I have learned at Toastmasters. You typically have 5-7 minutes but the first draft of most speeches is 15 or more. It's hard to let go of things you want to say but the results is always much better.

<comment><USER4> There are exceptions, such as when the intent is to really dive deep on some topic (workshops and the like), but I generally find that keeping talks at conferences to 30 minutes or so, rather than the more typical 50 minutes plus Q&A, results in a better program. It forces people to focus on the key points they want to make and dispense with a lot of stage-setting or unnecessary detail.

Unfortunately, hour sessions are sort of the industry standard and a lot of people feel that it's not worth it to give a talk if they're not going to have 60 minutes.

<comment><USER21> Would not better presentations have taken 2 to 3 hours of content and condensed down to an hour?

<comment><USER20> Not many people have 2 or 3 hours of real content. Filling just an hour is pretty hard.

</comment></comment></comment></comment><comment><USER22> I've always liked the scene in the movie version of "A River Runs Through it" where the father is teaching his son to write, and has him write an essay, then says "half as long", several times.

That has actually been one of the best reminders for me regarding my efforts at writing. Write and compress until the essential points remain.

</comment><comment><USER23> This comment intentionally left short.

<comment><USER24> The shortest comment is no comment at all. :)</comment></comment>


Will they get the 20K emails? - <AUTHOR> http://www.yoovi.co/

<comment><USER2> I really like your idea for crowd-sourcing with email collection.</comment>


Detexify: LaTeX handwritten symbol recognition (2009) - <AUTHOR> http://detexify.kirelabs.org/classify.html <comment><USER2> Excellent tool! Used it heavily while writing my lecture summaries during my studies.

Also, interesting to know: the backend was re-written in Haskell at one time; it gets mentioned in Daniel's thesis [0]

[http://danielkirs.ch/thesis.pdf](http://danielkirs.ch/thesis.pdf)

<comment><USER3> Do many people use LaTex for notes?

I've considered using it for my notes on my iPhone/iPad. At the moment, I'm using Markdown but for a few things, LaTex would be better.

<comment><USER4> I've written notes during the lecture at the same speed as the lecturer with Word 2007 in the last year I had math in uni. This worked surprisingly well since Word's math typesetting requires a lot fewer \ and {} than LaTeX and you immediately see what your current equation looks like, eliminating a lot of guesses around proper bracketing, etc.

With pure LaTeX I think I couldn't have done it, despite being somewhat proficient with the language.

(I've scribbled diagrams and other images by hand and done them properly at home, but the text and math parts went fairly well in real time.)

</comment></comment></comment><comment><USER5> A thread from 2016: [https://news.ycombinator.com/item?id=11155978](https://news.ycombinator.com/item?id=11155978)

A bit from 2013: [https://news.ycombinator.com/item?id=6344210](https://news.ycombinator.com/item?id=6344210)

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

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

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

Discussed at the time: [https://news.ycombinator.com/item?id=700043](https://news.ycombinator.com/item?id=700043)

</comment><comment><USER6> "Detexify" should probably be added to the title. I thought it would be something new and was wondering what this would solve that Detexify couldn't.

Detexify is a trusty tool I've taken for granted for almost a decade. Saved me a lot of searching countless times. (Apparently I can't recognize the domain, though.)

<comment><USER5> Added. Thanks!

</comment></comment><comment><USER7> Detexify is amazing! It's one of the most popular tips when we give tutorials or workshops on LaTeX :)

</comment><comment><USER8> The service seems to be down...

I've used Mathpix in the past for converting math formulas into Latex with great success.

[https://mathpix.com/](https://mathpix.com/)

</comment><comment><USER9> Daniel is a bright guy and was always fun to work with. Great to see that this project of his keeps getting recognition even years after its creation.

<comment><USER10> Hehe... hi Lars, long time no "see" ;-) Yes, he is and I was also very happy to see the project getting mentioned here! I used it myself and was always impressed about it!

<comment><USER11> What is this, class reunion? :D Cheers guys

\- padde

<comment><USER12> Definitely class reunion :D

<comment><USER13> Omg I just created an account to reply... ;)

</comment></comment></comment></comment></comment><comment><USER14> I don't get it. Where are the neural networks?

</comment><comment><USER15> My question is, where's the unicode equivalent of this? :)

<comment><USER16> Google (Docs, Sheets, Slides, etc) actually has this built in. It's under the "insert symbol" menu item

</comment></comment><comment><USER17> Firefox shows 344 visits to this page :) Thanks for saving me the trouble to awkwardly describe the symbol I in order to google it.

</comment><comment><USER18> This has saved me many hours of searching for LaTeX symbols when I was in University.

</comment><comment><USER19> Great LaTeX tool but oh dear:

"Your connection to this site is not secure"

You probably need to cover the "I want to use this site without anyone MITMing me" use-case with Let's Encrypt, but you probably already knew that.

<comment><USER20> What information is one providing that should be private?

<comment><USER21> As always, encryption everywhere even for not private information avoids showing you want to hide something when you do have a private interaction.

Https also makes it more difficult for someone in the middle to temper with the contents, e.g. adding malware.

</comment></comment></comment><comment><USER22> Great project</comment>