Show HN: Docker-based immutable workstation - <AUTHOR> https://github.com/mikadosoftware/workstation <comment><USER2> This is pretty much exactly my project Darch is/does, except that it is truly completely native.

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

Here are my recipes: [https://github.com/pauldotknopf/darch- recipes](https://github.com/pauldotknopf/darch-recipes)

You can use either Ubuntu/Arch/Debian/VoidLinux.

My entire operating system is stored on DockerHub. I run "update-machine" from my terminal, grab a snack, come back, reboot, and my machine is updated.

My entire OS has a tmpfs overlay, meaning I can reak havok, and a simple reboot will wipe everything clean. I use "hooks" to mount disks at certain spots (/home, /var/lib/docker, etc) in the initramfs, before chroot.

Also, you can try it out really quickly in VM with a pre-built image: [https://pknopf.com/post/2018-11-09-give-ubuntu-darch-a- quick...](https://pknopf.com/post/2018-11-09-give-ubuntu-darch-a-quick-ride- in-a-virtual-machine/)

I run the _same exact image, bit for bit_ , natively on 3 machines I have (laptop, home and work). Together, with Darch and my dotfiles, my environment is consistent, wherever I go.

<comment><USER3> Truth be told Linux should become the de-facto desktop. I like that you specifically mention i3. I think there is a strong use case for a Arch-like Linux distro that has an open architecture for building the entire distro from source into container images automatically. It would also allow desktops to be managed from a cluster manager like K8S. At first I thought packages should go with static binaries for packaging, but then quickly realized that they can use dependency containers and what not to dynamically include libraries with multiple version requirements if necessary, but still allowing for dynamic updates too.

Using container permissions also give you much of the permission structure you'd be looking for in your OS, much like a mobile device. I'm honestly surprised someone hasn't put in the development efforts to create a truly modern distro like Arch in containers for desktop and mobile. I think Purism is working with wlroots for Wayland. I'm looking forward to trying this with SwayWM if I can find the time, money and partners to help me with it.

Also, check out Simula for some AR/VR concepts:

[https://github.com/SimulaVR/Simula](https://github.com/SimulaVR/Simula)

<comment><USER4> > I think there is a strong use case for a Arch-like Linux distro that has an > open architecture for building the entire distro from source into container > images automatically.

That's what Fedora Silverblue is all about [https://silverblue.fedoraproject.org/](https://silverblue.fedoraproject.org/)

I'm not sure what will happen after IBM's acquisition of RedHat but as far as I remember the last announcement was that Silverblue will get the best bits of CoreOS (in turn acquired by RedHat) and Atomic Workstation.

</comment></comment></comment><comment><USER5> I see some minor grammatical issues with the doc. "dependencies" is spelled wrong, and the final sentence of the "Docker Immutable Workstation" section seems incomplete. Also this line: "a Mac if we are lucky".. expect to be chirped at by non-cultists like myself :)

I do something similar but with a VM instead of a Docker container and it works well. The one thing I like about using a VM is it runs full Ubuntu with an init system, so it's easier to run daemons like Samba. My VM shares its home directory so I can mount it on the host and share files across the barrier (I've always found VM "shared folder" implementations flaky). Files are less an issue with Docker, but you might want to run other daemons within the context of your dev environment. The Docker "one executable per container" idiom really falls apart here, and requires you to hack around it.

To keep things fresh, I just have a couple bash scripts that I run (one for some system packages, one for dev tools, one for dotfiles) on a new Ubuntu VM every few months. I'm sure it would be trivial to automate this with vagrant to even further streamline it but it's been good enough for me.

<comment><USER6> > I do something similar but with a VM instead of a Docker container and it > works well. The one thing I like about using a VM is it runs full Ubuntu > with an init system

You could get that with LXC/LXD containers [1].

[1] [https://linuxcontainers.org/lxd/introduction/](https://linuxcontainers.org/lxd/introduction/)

<comment><USER7> You can even get it with straight up Docker, as long as both the host and container are running a new enough kernel+docker. You can even run unprivileged containers: [https://developers.redhat.com/blog/2016/09/13/running- system...](https://developers.redhat.com/blog/2016/09/13/running-systemd-in-a- non-privileged-container/) \- I did this with Ubuntu (Bionic and Artful, but I can't remember if it could work older versions, although this hardly new per the date on the blog). Of course this assumes you are running Linux everywhere and not some proprietary, limiting, OS.

<comment><USER6> In my experience, I was not able to run systemctl restart some.service in a docker container. This wasn't an issue in a LXC container.

</comment></comment></comment></comment><comment><USER8> This is somewhat similar to Jessie Frazelle's setup: [https://blog.jessfraz.com/post/ultimate-linux-on-the- desktop...](https://blog.jessfraz.com/post/ultimate-linux-on-the-desktop/)

The talk and slides at the end of that post are worth the time if this sort of thing is interesting to you.

<comment><AUTHOR> thank you will check it out - seems way more advanced than me :-)

</comment></comment><comment><USER9> I tried Fedora Silverblue [0] with the release of Fedora 29.

It uses OSTree to manage state, and only allows mutability inside of the home directory and /var.

Overall I was very impressed. Another year or two of rounding out the typical use cases and it will make a fine immutable workstation.

[0] [https://silverblue.fedoraproject.org/](https://silverblue.fedoraproject.org/)

<comment><USER10> As a user of standard Fedora, what would this give me?

Configuration of my system is mostly easy when setting up (dnf install xyz, plus 2 config file tweaks in /etc). It's the config of everything in /home that's complex (gnome settings, my emacs, bash and git config etc.).

<comment><USER11> Its immutable, so painless upgrades without worrying about a borked package that systems tend to have after you've been running across major releases. It also grabs most desktop apps through Flatpak, so in theory more frequent releases of desktop software.

It's a trade-off. I like it because I want a system that always works and updates silently, and I don't make heavy customizations. It's probably not for you.

</comment></comment></comment><comment><USER12> Did you consider alternate approaches like using Ansible to give you more native system options as well, or was the goal here truly to have something 100% cross platform on anything? A hybrid might be a good approach too. Personally I think I'd end up backsliding because if I'm using a platform I really like then I want to be able to take advantage of some of its best native software and interface bonuses, so a purely X-based setup will still lead me to some manual setup on my own systems. Once stuff out of the automatic flow crept in feels like it might build up over time since I'm not that disciplined. Some of the playbooks I've seen though could be enhanced further with this, neat project.

<comment><USER2> > if I'm using a platform I really like then I want to be able to take > advantage of some of its best native software and interface bonuses

This is precisely why I built Darch ([https://godarch.com](https://godarch.com)). I wanted an immutable OS, but also to take full advantage of my hardware, completely native. Your images show in in grub and you can boot right into them.

</comment></comment><comment><USER13> Good work! I've written something similar - an SSH server and X desktop (served up via a VNC server) in Docker. It's a reasonable base for building this sort of thing. You can build an image on top of it and throw in whatever GUI applications you need. It's a little light on documentation, but should make up for it by being fairly barebones.

[https://github.com/dpedu/docker-desktop](https://github.com/dpedu/docker- desktop)

<comment><USER14> Link [http://gitlab.davepedu.com/dave/docker- desktop](http://gitlab.davepedu.com/dave/docker-desktop) doesn't work.

</comment></comment><comment><USER15> Might be interesting to pair this with something like Fedora Silverblue (read- only /usr managed using rpm-ostree) and fedora-toolbox.

[http://silverblue.fedoraproject.org](http://silverblue.fedoraproject.org) [https://github.com/debarshiray/fedora- toolbox/blob/master/fe...](https://github.com/debarshiray/fedora- toolbox/blob/master/fedora-toolbox)

<comment><AUTHOR> you are the second person to recommend silverblue - never heard of it but intrigued now

</comment></comment><comment><USER16> I've built something vaguely similar to give me a virtual desktop that I can access from anywhere over Chrome Remote Desktop: [https://github.com/kstenerud/ubuntu-dev- installer/blob/maste...](https://github.com/kstenerud/ubuntu-dev- installer/blob/master/install-virtual-desktop.sh)

It installs mate or lubuntu desktop inside an LXC container, allows access via x2go, and pre-downloads chrome remote desktop, which can be configured in less than a minute (run chrome, log in, open remote desktop, enable connections).

It was spawned out of my virtual builders ([https://github.com/kstenerud/virtual- builders](https://github.com/kstenerud/virtual-builders)) project, to allow me to get my Ubuntu development environment installed, configured, and running, from a fresh install even, on any LXD capable machine, in short order.

Even if my dev box dies completely, I can be back up and running on another machine or hard drive within an hour. I can set up as many of these desktops as my machine has CPU and RAM.

</comment><comment><USER17> I love this idea, and because docker feels so much lighter than vagrant, and doesn't require virtualbox to be installed and updated (like vagrant did on windows when I used it). However on mac and windows, using docker means you're running in a VM.

I wonder if there's any plan on implementing the APIs that would allow docker server to run in WSL, thus abrogating the need for a VM? Edit: theres no evidence of any motion, but here's a uservoice for namespace, cgroups,etc support in WSL: [https://wpdev.uservoice.com/forums/266908-command-prompt- con...](https://wpdev.uservoice.com/forums/266908-command-prompt-console- windows-subsystem-for-l/suggestions/31120939-support-kernel-namespaces-and- cgroups-for-docker)

Edit2: Actually it looks like docker support is being worked on: [https://github.com/Microsoft/WSL/issues/2291#issuecomment-43...](https://github.com/Microsoft/WSL/issues/2291#issuecomment-438388987)

<comment><USER18> Docker for Mac and Docker for Windows do use a VM, but it's a single VM for the entire host system, not one VM per container. So the overhead is very reasonable.

<comment><USER19> My big issue with Docker for Windows is that it prevents VMWare Workstation from running, as it uses Hyper-V. You can have one or the other, but not both.

<comment><USER5> +1 - Super annoying.

I've never seen a good explanation of why hypervisors can't co-exist on Windows. I'm sure there's a technical reason but if anyone has any articles that explain this I'm very interested!

<comment><USER20> they also cant coexists on linux, you know... Its a hardware limitation. You have to give the hardware component responsible for the 64bit virtualization to either hypervisor, wherever that is vbox, kvm or hyperv

unless you're fine with 32bit. In that case you can use any system you want at the same time (also on windows)

</comment></comment></comment></comment></comment><comment><USER21> Hi.

You wrote "There is a developer who (I think) works for Docker..."

I believe that you are referring to Jessie Frazelle.

</comment><comment><AUTHOR> I have been playing with this and am kind of OK with it - would value any feedback about the idea / concept and pointers.

It just came about out of annoyance with yet again trying to rebuild my personal workstation to even barebones level.

It's definitely in the "if you aren't embarrassed you launched too late" category

<comment><USER22> This is approaching the idea of Qubes OS, which is a good direction IMO and something I've been waiting for stability to try.

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

[https://www.qubes-os.org](https://www.qubes-os.org)

<comment><USER23> NixOS may also be something to look at. It's doing things a bit differently compared to Qubes, but seems to have similar kinds of goals. I've not used it before but the idea seems to be neat.

[https://nixos.org/](https://nixos.org/)

<comment><USER24> It's worth noting that NixOS and Qubes aim to solve very different problems. NixOS (and Nix itself) tries to improve package/dependency management, allowing for things like rolling back upgrades and flexibly using multiple versions of the same package. Qubes targets sandboxing of individual services/apps, with the goal of preventing lateral movement within an endpoint between applications.

NixOS doesn't sandbox apps by default (obviously, the user could run all their apps using containers/VMs/etc, but the same is possible on other distorts).

<comment><USER25> Also worth noting that Qubes uses VMs (Xen) with whole guest OSs as the isolation mechanism, whereas Silverblue uses containers (Flatpak) to isolate individual apps. Qubes is great if you're paranoid and want to keep your banking VM isolated from your web browsing VM. Flatpak and Snaps are great if you just want to grab the latest LibreOffice without pulling a ton of dependencies into your package manager. I guess there's no reason you couldn't install Silverblue as a guest OS in Qubes...

</comment></comment></comment></comment></comment><comment><USER26> Was NixOS / Nix considered? Feels like a lot of overlap in the motivations.

<comment><USER16> Nix is problematic due to its memory requirements. The nix package manager alone requires over 2gb just to run.

<comment><USER27> While Nix can use a lot of memory while evaluating larger systems (or searching all of nixpkgs by evaluating _everything_ ), it is usable on systems with 2GB RAM.

Nix 2.0 had a bug which caused excessive memory use, but it's been fixed in 2.1: [https://github.com/NixOS/nix/commit/2825e05d21ecabc8b8524836...](https://github.com/NixOS/nix/commit/2825e05d21ecabc8b8524836baf0b9b05da993c6) [https://github.com/NixOS/nix/commit/48662d151bdf4a38670897be...](https://github.com/NixOS/nix/commit/48662d151bdf4a38670897beacea9d1bd750376a)

</comment></comment></comment><comment><USER28> @lifeisstillgood - in the spirit of mutual embarrassment...

[https://github.com/ramses0/docker-devenv](https://github.com/ramses0/docker- devenv)

[https://github.com/ramses0/docker- devenv/blob/master/Dockerf...](https://github.com/ramses0/docker- devenv/blob/master/Dockerfile)

I found it useful to separate OS configuration out from installing non-OS software (third-party)... it's basically a cue/cost that makes me prefer OS- level installations over "manual" installs.

[https://github.com/ramses0/dotfiles](https://github.com/ramses0/dotfiles)

[https://github.com/ramses0/dotfiles/blob/master/bash/profile](https://github.com/ramses0/dotfiles/blob/master/bash/profile)

...lots of hardcoded and ugly stuff in there, but I like the idea of it a lot.

My experience has been mixed, but good overall:

1) docker mounts local host's *.ssh info, and mounts "~/host" dir and "~/Git" dir (promotes some of the host FS to top-level directories) ... this is primarily around me coding / working with Git, so it's the right choice for me. It's nice for the auth story to mostly properly follow me around as I move from computer to computer (primary auth is on local host, this image expects my local auth is properly set up).

2) docker FS isolation is interesting... you can "apt install $foo" in different windows/instances and system level changes are effectively isolated and disposable. It allows near instantaneous install of certain packages (ie: "apt install ffmpeg") and the command will be gone after that particular session (unless I decide it's something I use often enough to be added to the docker recipe). Contrast this the cruft on a 5-year old home linux box which has 1000's of packages installed from running random tutorials from the net.

3) startup time is quick and roughly equivalent to booting an old x86 PC. No matter how much I screw up the (inside the docker) operating system, it's just a quick "reboot" to fix it back to the last known-good state

4) VNC/X11 is "meh" and more of a parlor trick. However, there's interesting use cases to making an "appliance docker image" ... Firefox works OK, and is maybe a good idea for carrying around a "paranoid browser", but it definitely feels a bit uncomfortable.

5) I know the non-OS install stuff (ie: heroku, rustc, etc) can likely be done in the initial Dockerfile step, it forces me to make sure the system stays in a consistent state. When something isn't pulled directly from Debian, it's likely that there's a more compelling story to make sure the software stays installable and up to date (ie: vim plugins, etc). I guess it feels a bit like a local version of homebrew recipes?

6) As a hack, I cobbled together a "build/bake" concept which locks down a particular set of the non-OS stuff as well. When "baked" the image doesn't really auto-update (tough to automate version control against certain random sources/installs), but I have some scripts which try to keep the base OS up- to-date, encouraging you to go through the "build-bake" cycle as time goes on, keeping the box "evergreen".

An example victory is when on a windows box, I can get "real" vim, bash, etc. and operate on windows files from within linux (something that WSL can't officially do).

On the mac-side, I can get "sort -R/\--random-sort" when processing random data, as well as the ability to quickly pulldown ffmpeg, or imagemagick... again in a "disposable" environment, without seriously jeopardizing my OSX install and building up cruft.

<comment><AUTHOR> Your 2) is spot on - I think its the major reason we build up this cruft. By making an explicit choice to add something to my docker file I have decided it is worth the 2 minutes mental effort (for me a surprisingly high bar!)

not sure I get 5/6 - will dive in later (just decided this project needs a roadmap)

<comment><USER28> 5/6 is the distinction between:

apt get update && apt get upgrade

vs:

curl [https://rust-lang.com](https://rust-lang.com) | grep "new version" && curl "[https://rust-lang.com/installer.sh"](https://rust- lang.com/installer.sh") | sh

I have very high confidence that debian/apt is "immutably available and consistently managed", but many of the non-free pieces of software (corporate- source or "not yet standardized, maintained, and included in debian") can/could require special attention, especially regarding updates.

build-env.sh - the operating system, apt-only, "just a linux box", download and install the heroku tooling b/c I often need it, but it's not in the main debian package pool.

bake-env.sh - "geeze I hate waiting for heroku, rust, and random vim plugins to download... let me freeze this moment in time" ... apt-get update still works and will keep O.S. up to date, but heroku, rust, vim plugins, etc won't "auto-install / auto-update" b/c they don't have properly managed versions or an install/update cycle like the rest of the o.s.

<comment><AUTHOR> the bake-env.sh seems to just trigger a flag in the Dockerfile

So you have a set of dotfiles, on your url, and if bake-env, those are part of the docker build - and presumably the dotfiles do the rust installs etc, so your docker is ready with rust ecosystem installed (not a rust user so unclear) and then you can happily ignore it till you need to upgrade some rust package ?</comment></comment></comment></comment>


Of Flying Cars and the Declining Rate of Profit - <AUTHOR> http://www.thebaffler.com/past/of_flying_cars

<comment><AUTHOR> This is pretty long for HN, but it is a thorough discussion about the current state of technology and our moment in history.</comment>


Ask HN: Any deaf or blind hackers? - <AUTHOR>

How does it affect your hacking on a day to day basis? What's the state of software like for your particular situation? Is there anything that you'd absolutely love to see a startup/open source project do?
I'd just love to hear about individual experiences in that regard.
Note: if you fall outside of deafness/blindness but still feel like you have a meaningful answer to contribute, please do! I wasn't sure exactly how to phrase the title. <comment><USER2> There's a vast spectrum of various vision and hearing impairments. The severity of each possible impairment is also variable, and often a single person faces multiple types/severities of impairments. The end result is a lot of variables, too many combinations, and the need to customize solutions on a per-person basis.

All health issues are extremely sensitive subjects, and the language used can be extremely important. Words like "deaf," "blind," and "disabled" are tough, really tough. They're tough to admit, tough to say, and tough to hear. I know people who insist on calling themselves "Hard of Hearing" (typically abbreviated "HoH") or "Hearing Impaired" rather than being called "deaf" \--which they consider offensive. Others are really easy-going about the terms used, so yes, this is yet another variable. And again, some are willing to speak publicly about it, while others prefer to just quietly pretend to normal on the Internet like everyone else.

You _really_ need to add your email address to the 'about' section of your HN profile since many would only discuss it with you privately.

As for ideas, I have more than a few. Some are hardware. Some are software. But none of them seem profitable from a business perspective. Accessibility is subject to the same market forces as everything else in the world. Given the dizzying number of possible combinations of types of impairments with many requiring customized solutions as well as the comparatively small number of disabled people, providing accessibility is often ignored. Even HN itself has major accessibility issues that prevent some people from using the site.

Free ideas are generally worth what you pay for them, but here's one; a pin grid display. Imagine every pixel on a normal display as a pin that can be raised or lowered. You could "see" the screen with your fingertips. It would be a world's first. You'd make pictures accessible to the blind, along with text, fonts, and formatting (layout/design).

With enough hardware, software, and mechanical engineering prowess, a pin grid display may now be possible to do, but it would be difficult. Just getting the raising and lowering of tightly packed pins right would take a lot of effort, but the idea can be expanded to include vibration, temperature, and possibly other tactile feedback.

This is long enough for now, but yes, my email address is in my profile.

</comment><comment><USER3> I'm hearing impaired (not deaf) and I'm also a very experienced software engineer. The tools at my disposal allow me to do a very good job, so that's not really a problem. What really sucks is the whole communication thing. I work with a number of people whose first language is not English, and some of them have very, very strong accents. It's nearly impossible for me to carry a conversation with them because of it. It gets better over time, but the first few weeks/months are a nightmare.

Here are some tech ideas that I would love to see come to fruition:

* Google Glass (or some similar device) with speech-to-text recognition for real-time subtitles. Main problem: Speech-to-text isn't advanced enough, and I probably get more out of reading lips than reading incorrect words. Also doesn't work too well with strong accents.

* Better hearing aid integrations. My hearing aid currently has a bluetooth attachment, which makes talking on the phone and listening to music 1000x easier. Previously, I'd have to hold my phone up to my hearing aid. Imagine this: someone speaks into a microphone, and the sound comes out of a speaker, then goes into another microphone, then comes out of another speaker and hits my ear drums. And that second microphone makes no differentiation between sounds from that first speaker or ambient noise. In other words, it's really, really hard to talk on the phone. Now with my Bluetooth device, your voice speaks into your microphone and comes directly out of my speaker -- I can even mute the microphone on my hearing aid, so that _all_ I hear is the phone call. Very cool. More things along this line would be awesome.

* Along the lines above, some tiny, cheap (read: replaceable) microphones/devices that I could just hand to my friends/girlfriend/family and have them clip onto their shirts or something that would send directly to my Bluetooth, enabling me to hear better in loud environments like restaurants and so on. Main problem: probably not cheap.

* Hearing aids that run off body heat. I don't even know if this is possible, but I have to change my hearing aid battery about once every 7-10 days. Sometimes it dies in a terrible place, like in an interview or a meeting or while I'm on a phone call or out on a run. In those cases, it's difficult to find time to change the battery -- assuming I even have a battery with me! And trust me, keeping a pack of batteries on you is a pain in the royal ass. Main problem: probably not even possible with current technology

* You know how they have those polarized glasses where something is invisible to the general public until you put on the glasses? Those. For subtitles. I can't watch TV without subtitles -- I honestly don't know how you hearing people do it. My friends and family are very understanding, but strangers and new acquaintances often make fun of me for having subtitles on (unless I point out the hearing loss thing, which I don't like to do with people I don't know). And even for my friends and family, many of them find subtitles to be distracting. When I'm not around, they turn them off. I would _love_ to be able to just pop on a pair of glasses and watch TV with subtitles without my friends or family having to see them. I'm aware that some movie theaters have these mirrored glasses with subtitles behind them, but that won't work in, say, a bar or my friend's house. Main problem: getting TVs to adopt the tech

* Some fun way to get someone to repeat themselves without saying "What?" over and over and over again. Seriously, it gets old, and eventually I just nod and smile and say "Oh yeah, totally," even though I have no idea what I just agreed to. This has come back to bite me in the ass many, many times. Main problem: I haven't figured this out in 32 years of existence.

* Something that gives a tactile response when someone says my name, preferably with some hint as to the direction. I'm completely deaf in one ear and I have a profound hearing loss in the other. Unfortunately, this means I don't have stereo sound -- I can't tell the direction of sound! I'd love a device that would buzz when someone says my name and give a hint as to the direction the sound came from so that I can turn to find them. Most times I just look around until I see someone looking at me. This has backfired many, many times. Main problem: If I can't hear my own name, how would a device? I dunno.

* Waterproof hearing aids. I love, love, love to swim... but I have to do it while I'm effectively deaf. Very frustrating. Main problem: waterproofing hearing aids would be done already if it was easy.

I'm sure I could think of others, but those are the ones that I can think of right now. I'd love to hear what other people think about these ideas.

Good luck.

<comment><USER2> Powering electronics with body heat is really tough, but at least there's some research being done on this front.

[http://www.cnet.com/news/arm-band-technology-converts- body-h...](http://www.cnet.com/news/arm-band-technology-converts-body-heat-to- energy/)

[http://pubs.rsc.org/en/content/articlelanding/2014/ee/c4ee00...](http://pubs.rsc.org/en/content/articlelanding/2014/ee/c4ee00242c)

[http://www.forbes.com/2010/06/07/nanotech-body-heat- technolo...](http://www.forbes.com/2010/06/07/nanotech-body-heat-technology- breakthroughs-devices.html)

Vaguely Related:

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

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

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

<comment><USER3> Awesome. I'm reasonably sure that current tech won't power it _enough_ to get rid of the battery (which by the way, is the primary reason hearing aids are so big to begin with), but... even an alternator-style body heat-powered generator would be nice.

I do wonder how it would work in winter, though.

<comment><USER2> In winter it would work better, not worse. The reason is (most) thermoelectric stuff is harnessing the _difference_ in temperatures to generate electricity, since electricity is a _difference_ in potential. Well, electricity can be thought of as a difference in potential, but I'm a bit too tired for a philosophical or scientific debate. ;)

If you're familiar with how a Stirling Engine converts a difference in temperature (i.e. heat) into mechanical energy, the vague and general principle will make a lot more sense.

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

As for the recent KAIST work (linked above) on thermoelectric (TE) generators, according to the following it does work on temperature difference:

[http://www.kaist.ac.kr/_prog/_board/?code=ed_news&mode=V&no=...](http://www.kaist.ac.kr/_prog/_board/?code=ed_news&mode=V&no=17562&upr_ntt_no=17562&site_dvs_cd=en&menu_dvs_cd=0601)

> _" When using KAIST's TE generator (with a size of 10 cm x 10 cm) for a > wearable wristband device, it will produce around 40 mW electric power based > on the temperature difference of 31 °F between human skin and the > surrounding air."_

I'm yet to watch these, but there are some videos on the KAIST TE.

[http://www.youtube.com/watch?v=BlN9lvEzCuw](http://www.youtube.com/watch?v=BlN9lvEzCuw)

[http://www.youtube.com/watch?v=9b4wOlc4Do0](http://www.youtube.com/watch?v=9b4wOlc4Do0)

My mom won't let me near her hearing aids due to her knowing all too well that I want to take them apart to figure out how they work. My past started with door knobs at the age of three, and some things just never change. ;)

Anyhow, I'll have to very roughly guess the power requirements of a "typical" (if there is such a thing) hearing aid. From the following:

[http://www.audiologyonline.com/articles/battery- consumption-...](http://www.audiologyonline.com/articles/battery-consumption- in-wireless-hearing-11899) [http://www.audiologyonline.com/ask-the- experts/voltage-of-zi...](http://www.audiologyonline.com/ask-the- experts/voltage-of-zinc-air-batteries-477) [http://www.rayovac.com/Products/Hearing-Aid- Batteries/Retail...](http://www.rayovac.com/Products/Hearing-Aid- Batteries/Retail-Hearing-Aid-Batteries-10-13-312-675.aspx)

Also I just found and still need to read this study "Siemens Battery Performance In Hearing Instruments" but it looks interesting:

[http://hearing.siemens.com/Resources/Literature/_Global/trai...](http://hearing.siemens.com/Resources/Literature/_Global/training- material/2010%20-%20Battery%20performance.pdf?__blob=publicationFile)

Our imaginary "typical" hearing aid power requirements are probably somewhere close to this:

      Capacity: 145 mAh
      Voltage:  1.4 V
      Drain:    1.1 mA

      1.1 milliamperes = 0.0011 amperes
      Watts = Amps * Volts
      Watts = 0.0011 * 1.4 = 0.00154 W = 1.54 mW

The KAIST TE can generate 40 mW with a 10cm by 10cm patch, and our mythically "typical" hearing aid only requires 1.54 mW. Some of the pictured TE generators are much smaller, but no specs are given in the abstract or the articles on it. Unfortunately, the paper is paywalled. None the less, creating a battery-less hearing aid with existing tech actually seems doable from a (very rough) power standpoint.

<comment><USER3> Oh wow, I didn't know that! Awesome. I'll watch those videos on my lunch break. Very cool :)</comment></comment></comment></comment></comment>


Gilead should ditch remdesivir and focus on its simpler and safer ancestor - <AUTHOR> https://www.statnews.com/2020/05/14/gilead-should-ditch-remdesivir-and-focus-on-its-simpler-safer-ancestor/ <comment><USER2> As someone who has been on the corporate side of this type of debate, I can assure you that Gilead has several magnitudes of more information about both of these molecules than the author has.

And as others have mentioned, the only data for the alternative molecule is animal data versus remdesivir which already has phase 3 data. Sure, the other drug might be better, but it might not work at all.

<comment><USER3> Sure, and that can include unpublished negative data.

Ben Goldacre (a Senior Clinical Research Fellow at the Centre for Evidence Based Medicine in the Department of Primary Care in the University of Oxford{0}), wrote in his book Bad Pharma, about an instance where a specific subset of SSRIs were given to eight(?) year olds for clinical depression. What the GPs prescribing them didn't know, however, was that the suicide rate for those children would go _up_ after prescription. The pharmaceutical company _knew about this_. It was a negative result, and was unpublished.

This is just a single example I've pulled from the book, and the book covers only a smidgen of the hundreds of thousands of cases of incompetence and malice perpetrated by pharmaceutical companies over the last 20 years. You can find more information about this by him here ( [https://www.theguardian.com/commentisfree/2008/jan/26/badsci...](https://www.theguardian.com/commentisfree/2008/jan/26/badscience) ), here ( [https://blog.ted.com/5-prescription-drugs-doctors-had-no- ide...](https://blog.ted.com/5-prescription-drugs-doctors-had-no-idea-could- hurt-their-patients/) ), and more information in general here ( [https://www.bmj.com/open-data](https://www.bmj.com/open-data) ), and here ( [https://www.livescience.com/8365-dark-side-medical- research-...](https://www.livescience.com/8365-dark-side-medical-research- widespread-bias-omissions.html) )

Pharmaceutical companies' _only_ duty is to turn a profit to their shareholders. If they spend five or ten years developing a drug that they find has either no or negative use, then in the eyes of the shareholders, they have _wasted_ that money. The duty of the company is to find a use for the drug regardless of whether it is useful or not, regardless of whether there is a more beneficial alternative.

{0} - I copied this line, sue me :)

<comment><USER4> This is exactly why Gilead won't allow the similar drug to be used in cats. They don't want to know about negative side effects that might then hinder the drug's approval for use in humans.

If ever there has been a business decision to illustrate the whole "putting profits over people" this is it. And sunk costs, too.

<comment><USER2> Where are you getting this from? The only mention of cats in the article is actual data of the drug in cats.

 _When GS-441524 was used to treat cats with feline infectious peritonitis, a progressive and usually fatal disease caused by a coronavirus, it displayed remarkable safety and therapeutic efficacy, with 96% of cats recovering after treatment._

<comment><USER4> Apologies, I meant to say I had submitted the article on HN a few days ago and it seems I forgot. Link here: [https://www.theatlantic.com/science/archive/2020/05/remdesiv...](https://www.theatlantic.com/science/archive/2020/05/remdesivir- cats/611341/)

</comment></comment></comment></comment></comment><comment><USER5> Remdesivir and GS-441524 triphosphate are nucleoside analogs that inhibit polymerase activity. These are notorious for breeding resistance due to polymerase variability amongst viruses.

So even if they can get it manufactured, it's is a short term boon and long term, questionable.

It's critical to find drugs that target other parts of the virus' life cycle to include in a combination therapy.

Source: conversation with Sean Whelan [https://en.wikipedia.org/wiki/Sean_Whelan_(scientist)](https://en.wikipedia.org/wiki/Sean_Whelan_\(scientist\))

</comment><comment><USER6> The article only mentions tests of GS-441524 on animals, but not humans, whereas remdesivir empirically seems to be reasonably safe in humans. Switching from the one thing that actually possesses efficacy in humans to something that has mainly been tested on cats seems like an unnecessary gamble at this point.

<comment><USER7> Ideally we could work on both. Remdisivir is apparently nightmareish to produce - it's unlikely that that Gilead can fully capture all the value on the market with it alone, especially if another another therapeutic becomes available.

That said, it makes plenty of sense why you would begin with your drug that has already passed clinical trials. I'm a bit disappointed that the article didn't emphasis this point. I'm certain the authors know about it, and even if they aren't out writing a hachet job, it can make this piece seem like one.

<comment><USER2> In a world of limited resources, you have to make a call on which leads move forward in development. You can't move every program forward.

And yes, remdesivir is a beast to make, but I don't think supply is an issue at all. They just packaged up and distributed 150 kg of it.

<comment><USER8> Are we in a world of limited resources in this specific sense? We're in a world of 3 trillion dollar re-ignite the economy. Whats the resource limitation here?

<comment><USER9> Money does not magically create the personnel qualified in scaling up drug production, nor does it magically make the necessary, specialized machinery appear. Furthermore, as described in the article, the manufacturing appears to rely a lot on various businesses which each perform one specific step with a compound and hand over the result to the next, and Gilead's core work seems to be to find these businesses, provide missing know-how, and coordinate all of their work such that the timelines and amounts produced line up. Just dumping money into an economy also does not magically make such specialized businesses appear all of a sudden; self-organizing systems like modern capitalistic economies require time to adjust to big changes in demand or supply of certain goods or services.

<comment><USER8> I dislike Trump on principle and from the other side of the fence. I am a natural born 'big government' person. From my side of the fence, the one thing Trump said which made sense was: "there are 15 good candidate vaccines: we are pursuing all of them"

That is exactly how the manhattan project ran: Thermal Diffusion, Gaseous Diffusion, Centrifuge and Calutron were all followed up, and it wound up that Thermal fed Calutron to increase yield but gaseous diffusion and centrifuges are what we use now. The point here is that they didn't penny-pinch "which one is better" they did them _ALL_

</comment></comment></comment></comment></comment></comment><comment><USER10> Cynical summary, basically: "The first patent on GS-441524 was issued in 2009, while the first patent for remdesivir was issued in 2017."

<comment><USER11> So greed and our patent system are getting in the way of saving lives.

<comment><USER12> If our patent system didn't exist, the drug would have never been developed in the first place.

<comment><USER13> Prove it.

</comment></comment></comment></comment><comment><USER14> Interesting article, but it could have done a better job of explaining the chemistry.

Remdesivir is a prodrug, meaning it must be metabolized (chemically processed) in the body to the active form. Think of it like this:

R-OPX -> R-OH -> R-OPPP

where OPPP is the triphosphate and X is the thing the body hacks off. R-OPPP is the active form of Remdesivir. Your body must perform the net reaction R-OPX -> R-OPPP before it can use the drug.

GS-441524 is R-OH in the above equation.

X is non-trivial to build and install, and it looks like it required a lot of work.

But as these things often happen, nature doesn't give e hoot about the medicinal chemist's net-o hypothesis (R-OPX is better) and does what it will do. It turns out the fancy targeting component PX isn't necessary for efficacy in animals. You get even better results using plain old R-OH.

Even better, R-OH is the starting material for R-OPX, so you save yourself some reactions to boot.

At this point a lesson pops up that gets forgotten time and again in drug discovery programs:

ALWAYS RUN THE CONTROL IN ANIMALS - RUN IT EARLY. NO EXCEPTIONS AND NO EXCUSES!

Also, there is enormous resistance to running the control, because of course it can't work - it's the control and doesn't conform to the neat-o hypothesis.

In this case, the control is R-OH. It was run, but not early enough it seems to prevent the R-OPX train from leaving the station. Once a team starts running with a compound it can be very difficult to pull them back.

Now, this is just speculation taking the article as gospel. It's almost impossible to know for sure what really happens inside drug companies because the trade secret/IP protection culture is so ingrained. Not only that, but I could be misinterpreting the facts presented in the article.

Of course, none of this addresses the main problem with Remdesivir: it can't be orally dosed. You need to get injected multiple times. And that's probably going to be in a clinic, and done by people wearing full PPE. An oral drug would allow you to buy pills and convalesce at home, conserving valuable hospital resources.

As an aside, you typically use a prodrug because you think it will lead to better drug properties than the parent compound. An interesting example is the case of Claritin/Clarinex. The former is the prodrug form of the latter. It turns out the latter is at least as good if not better than the prodrug. Another case of not running the control early, I suspect.

<comment><USER15> Your first 6 paragraphs are not clearer than the article:

 _Some background: Remdesivir works by interfering with the cellular machinery that allows viruses to replicate inside a human host. It is a pro-drug, meaning it must be metabolized and undergo a sequence of five bioactivation steps before it becomes GS-441524 triphosphate, the active compound that impedes viral replication.

Remdesivir isn't Gilead's only antiviral nucleoside analogue. The company has also developed GS-441524, another pro-drug that, as its name suggests, the body also converts into GS-441524 triphosphate, but in just in three steps. GS-441524 is easier to synthesize than remdesivir, requiring three steps instead of the seven needed for remdesivir._

You've omitted the "antiviral nucleoside analogue" jargon but run off into the weeds relative to the comparisons of the number of bioactivation and synthesis steps.

</comment></comment><comment><USER16> This seems like the sort of argument that should be distributed in the peer- reviewed literature to scientists, not on a news website.

I am far from average in my consumption of medical literature--I read several papers every week and have some (limited) background in biophysics. Nonetheless, this debate is miles over my head. One would need to know a great deal about pharmacology to evaluate this article. There are lots of reasons to use one prodrug over another; likewise, there are a great deal of differences between animal models and humans.

See also this reddit comment:

[http://reddit.com/r/chemistry/comments/fv8p4k/comment/fmhydy...](http://reddit.com/r/chemistry/comments/fv8p4k/comment/fmhydym)

<comment><USER17> Stat is a health website for scientists and it's not really meant for general consumption, but yeah.

</comment></comment><comment><USER18> This Atlantic piece has excellent background, including the astonishing effectiveness in cats against FIP, and questions about Gilead's motivations for prioritizing studies of one vs the other: [https://www.theatlantic.com/science/archive/2020/05/remdesiv...](https://www.theatlantic.com/science/archive/2020/05/remdesivir- cats/611341/)

Edit: I see goatinaboat also posted the link (I searched for a bit of the url that was elided).

</comment><comment><USER19> If they do, they should allow its use for sick cats [https://www.theatlantic.com/science/archive/2020/05/remdesiv...](https://www.theatlantic.com/science/archive/2020/05/remdesivir- cats/611341/)

<comment><USER20> Does it work in the feline at all? FIP is a deadly disease, if the compound was any good word of mouth would spread amongst veterinarians. Unfortunately, the outcomes are not encouraging.

<comment><USER21> It sounds like they are very aware. [https://www.avma.org/javma- news/2020-01-15/fip-drugs-continu...](https://www.avma.org/javma- news/2020-01-15/fip-drugs-continue-show-promise-while-being-sold-black-market)

</comment></comment></comment><comment><USER22> Okay so...I'm actually in a rare position where I _might_ be able to contribute to discussion on this! Brief caveats: am undergrad pre-med, but also took an infectious diseases grad class at Penn that spent a week diving into one of the papers cited in this article (when the authors mentioned the two compounds "showed no statistically significant difference in potency"). I think it's worth exploring what the authors of that paper actually meant to assess for. (also @HN please shoot me down if anything I say is inaccurate, also I do think the authors make other valid points, just not so much in reference to this particular aspect)

The paper in question is here ([https://mbio.asm.org/content/9/2/e00221-18](https://mbio.asm.org/content/9/2/e00221-18)) and they're looking at table 1. First of all, the paper didn't set out to actually determine whether GS-441524 is better than GS-5734 (aka remdesivir). It mainly set out to show that remdesivir could work against coronaviruses in general (this was written back in 2018, so they were focusing on SARS and MERS only). Furthermore, all of these experiments were in vitro with a model betaCoV, murine hepatitis virus, so results shouldn't necessarily mean much for human populations. But down to the nitty-gritty:

In figure 1 of the paper, the authors do in vitro experiments to show that both GS-441524 and remdesivir reduce their model CoV viral titer. However, they show a major difference. Remdesivir has an EC50 (dose at which 50% of viral replication is inhibited) that is much lower than GS-441524. This is great because you don't need as much remdesivir to inhibit viral replication. One area where GS-441524 did beat remdesivir was cytotoxicity (CC50 = dose at which 50% of cells w/the drug is killed). You want as high a CC50 as possible. So that would mean that remdesivir is technically more toxic to cells; however, it's effective dose is so low that you wouldn't need to give a dose large enough to kill off any cells. You can use a handy metric known as the selective index (CC50/EC50) to measure the tradeoff. High selective index = high efficacy without killing off your own cells. In this case, remdesivir has a higher selective index compared to GS-441524.

Now onto what the article referred to. The authors made their in vitro studies slightly more relevant to humans by using human epithelial cells and this time actual SARS CoV and MERS CoV virus and measured EC50 and CC50 again for both GS-441524 and remdesivir. The authors report some +/\- standard deviation ranges. From intro stat, I think one of the conclusions about looking at overlapping standard deviation bars is that no conclusion can be made about whether or not the differences are statistically significant or not! I encourage people to take a look at the table itself and make your own conclusions ([https://mbio.asm.org/content/9/2/e00221-18#T1](https://mbio.asm.org/content/9/2/e00221-18#T1))

The rest of the paper focused on remdesivir and showed a number of things. It showed it was most effective early post infection (in vitro) and it highly inhibited viral replication when viral exonuclease was knocked out (indicating that remdesivir messes with the function of that). It also showed (via serial passage experiments...basically think about it as mini-artificial selection) that nucleoside analog drugs will tend to favor the selection for two RNA- dependent RNA polymerase mutant viruses that confer resistance to the nucleoside drugs! But they showed in the next figure that these mutant viruses have a reproductive disadvantage compared to their wild type CoV.

Now for my 2 cents: I think that remdesivir was favored primarily because it was being used for anti-viral treatment in Ebola virus trials...but it was falling out of favor for Ebola treatment because of other monoclonal antibody cocktail treatments that show better survival rates (ref PALM trial: [https://www.nejm.org/doi/full/10.1056/NEJMoa1910993](https://www.nejm.org/doi/full/10.1056/NEJMoa1910993)). Sooo I guess gilead had this drug lying around, and they had a good idea as to its mechanism of action...so why not apply it for Sars CoV2?

</comment><comment><USER23> Both would be my preference

</comment><comment><USER24> Meanwhile... [https://bpa.st/43UA](https://bpa.st/43UA)

and Senegal [https://youtu.be/iBma_0oAiMI](https://youtu.be/iBma_0oAiMI)

</comment><comment><USER25> There are a few things that cause me serious frustration. One is when a lay person will talk about medicine.

Making drugs is a ridiculous process. I had the pleasure of listening to a physical chemist describe every single step it took for his team at Abbott labs to take Lopinavir/ritonavir to market. It is incredible how difficult it is to go from novel molecule to phase IV. Every single thing he did he had to, by FDA guidelines, be written and documented appropriately. Everything is highly scrutinized. With medicine we need to be right and we need strong scrutiny, because when there isn't oversight shortcuts are made. That's just the federal guidelines, the chemistry behind drug production, and this is something I find interesting but strongly dislike the amount of math behind physical chemistry, is intimidating. Some of the questions that need to be answered are: Does this molecule affect any enzyme? Is this enzyme hypothesized to be in a disease process? What is the structure of this molecule? How is it made? How can we make more? How can we make more more efficiently? Does this drug work in people? What's the dose that needs to be given to have an effect? What is the dosing ranges for a given drug? What are the serious side effects? What are the moderate/mild side effect? How is this drug cleared/excreted? Are there certain populations which this is contraindicated in?

These are some of the main questions that are answered when taking a drug to market, which is why it usually takes 10 years and billions to go from novel molecule to FDA approved drug.

<comment><AUTHOR> The people who wrote the article are not lay people.

<comment><USER25> Both are involved in discovering novel drug targets, but not in bringing drugs to market. I know a significant amount of individuals in medical research that don't know the nuances behind bringing drugs to market.

<comment><AUTHOR> Nice goal-post moving. Maybe you're the lay person? Med school doesn't qualify you to opine about novel therapeutics.

<comment><USER25> My best friend is working on novel targets for hepatocellular carcinoma. Does he know science? Yes. Does he know how to bring a drug to market? God no. Everyone outside of your field is a lay person.

>Med school doesn't qualify you to opine about novel therapeutics

Actually, it does. Especially when we tried hydroxychloroquine and it didn't work. When you go to a hospital with medical students 60% of the time our recommendation to the attending is what the care plan ends up being.

</comment></comment></comment></comment></comment><comment><USER26> There's actually a lot of easy ways to combat viral infections. This was well known in an alternative medicine forum I used to hang out in, which probably no longer exists because it was a Yahoo group.

I don't really understand why the world is approaching this problem the way it is. A lot of the things we are doing are very much in the vein of that Einstein quote about being unable to solve a problem from the same level of thinking that created.

This pandemic grew out of modern life. It grew out of 7 billion people living on planet Earth and global travel and Affluenza. We just keep bulling on ahead with more of the same.

There are fixes, but they aren't likely to come from our current main stream approaches. And this is problematic because everything we are doing is making the economy top heavy in a way that's actively hostile to the little guy. This makes it hard to start small somewhere.

<comment><USER27> What would you propose?

<comment><USER26> If I thought I could get any real traction, I would run a website talking about what works. But that's not likely to get traction, so that idea hasn't gone anywhere. I'm scared to try to develop it because I get so much absolute shit from people for trying to talk at all about health stuff.

I have a serious medical condition. I'm getting well.

I've done remote work for years. That's a good idea that's helpful for controlling infection for vulnerable people.

Social distancing is good, but one side effect of all this lock down stuff is that hours are shortened and this means there are bigger crowds. It has eliminated the option for me to shop at 2am to avoid people.

I'm for contactless food orders. I have been actively promoted Little Caesar's pizza portal, ordering ahead (by phone or online) and picking up takeout.

I know lots of things that work. It's not any one thing. I can't tell you in a single comment. I've been developing these practices for 19 years and I get nothing but the crap kicked out of me, even when I am just asking questions for my own edification.

The enormous hostility with which I am met for just trying to talk to people online is part of a larger pattern of thinking and behavior. It's not just hostile to me. It's hostile to anyone with a non-main stream approach to health issues.

Main stream approaches are what got us here. They won't likely get us out.

I will probably be okay. But other people don't need to suffer this much.

<comment><USER28> You could create a subreddit or something similar instead of a website.

You'd still face traction and backlash issues, but it seems like a lot less effort and commitment to get started.

<comment><USER26> Thanks.

I have a subreddit called HealthWorks. It has no real traction.

I have had several health sites over the years. They get no real traction.

The problem is not setting up a website. I have a zillion of them.

The problem is mostly positioning and framing and getting audience engagement. I've never figured that piece out.

I know a lot about health stuff, so much so that when I begin talking about what you can do for yourself at home, people get all up in arms and accuse me of "practicing medicine without a license" and things like that.

I started a site a few weeks back in reaction to the pandemic called Stop Touching Your Face and someone kindly gave me feedback on positioning it, but I never developed it. I don't think it works to talk about the pandemic and try to address the pandemic directly.

I have a health site about my medical condition. I rarely update it.

I am continuing to think on the problem space and I hope to eventually find a way to talk about stuff and have it go well. But I find it crazy making that people are openly hostile to the stuff I want to talk about. I don't get that.

You know someone with potential solutions in a life threatening situation and your response is rage and downvotes instead of trying to help them figure out how to better talk about it? Are you, like, trying to die or something?

I just honestly don't get that. I never have. It's the same reaction people with my medical condition give me and it makes no sense to me at all.</comment></comment></comment></comment></comment>


Udacity Raises $105M Series D, Bringing Valuation to $1B - <AUTHOR> http://techcrunch.com/2015/11/11/udacity-raises-105-million-series-d-bringing-valuation-to-1-billion/#.wg5qvi:VBm7 <comment><USER2> I taught myself to code on Udacity, and in a couple weeks I'm going to be launching a social network that I built with one other person. Shit works.

There's no reason why everyone shouldn't be on there.

edit: Obligatory link to sign up for the private beta: [http://fwdeveryone.com/](http://fwdeveryone.com/)

Also, here is what I wrote about the experience at the time: [http://alexkrupp.typepad.com/sensemaking/2013/11/2012-my- yea...](http://alexkrupp.typepad.com/sensemaking/2013/11/2012-my-year-of- code.html)

<comment><USER3> Man your blog post brought back so many memories. I went through just about the same learning path, and in 2012 as well. Like you I'd done CS in HS and taken one class in college, but couldn't build anything real if my life depended on it.

To me what really made me transition is their WebDev course In all seriousness, though, is their CS253 the greatest course ever or is it the greatest course ever?! Huffman was just brilliant in providing a nice framework with which to think about development. After I took that course, it was if Googling my way through problems and learning from the available resources on the internet became that much easier, because now I could see how all of these little parts fit into a broader context.

That's one thing that definitely disappointed me about how Udacity has grown. That course taught by Huffman was so good in that he explained so much of the theory and reasoning, and not just tools. Peter Norvig's advanced Python course is another one of their offerings which feel very similar. Lately, though, I think their courses have resembled much more what you find on CodeAcademy or places like that: A lot more focused on tools, content, etc., and less so on the broader picture.

<comment><USER4> CS253 all the way. I still have Steve Huffman's "pretty neat, huh?" echoing in my brain. Whenever anyone asks me "how can I learn to build web applications", it's the first place I point them. He even goes over basic crypto and security, yet doesn't oversell what he's teaching. Just perfect.

I agree that the Udacity classes available today just don't measure up, sadly.

</comment></comment></comment><comment><USER5> I've used quite a few other (pay) MOOC services; subscription based, pay by class, free, etc...

Pluralsight, Udemy, Lynda, Coursera, Code School, Stack Skills

I've also used some small independent ones as well (Bitfountain is just one example).

The thing I would be really curious to see (but unfortunately don't think we will see any time soon) is how the profit numbers stack up on these different pay models.

For the subscription based services I will pay a monthly fee for no more than one service at a time and I will make heavy use of it during that time period. This is what I did with Pluralsight, Code School, and Lynda. Got a subscription and used it for awhile then canceled when I was done with the material I was interested in or I didn't have enough time to spend for it to be worth the money.

I also cap the value at about $50/month max. Not that Udacity has bad content, but there is great content on the competitors too. I can sign up for Pluralsight + Lynda + Code School every month and still have money left over to buy some courses outright on Udemy or Stack Skills.

In total I've spent a lot more money on buying courses outright from sources like Udemy. Originally I was looking there for some specific technical classes, but they have so much variety I have spent more money on things like art, photography, and design classes.

Wow... I went off on a bit of a tangent there. Anyway; really would be interested in seeing how much money is being made by these different services as well as seeing percentages/dollars of how much of that passes through to individual content creators etc...

<comment><USER6> As someone who wants to use perhaps one or two--but certainly not all-- of these services, I'm curious which of these services you've found most valuable. I'm asking generally, though I'm mostly interested in compsci/dev topics, if that's helpful.

<comment><USER7> Udemy has some crazy discount almost 90 % of the time... I'm constantly getting 75-95 % discounts on my courses. So that might be a factor as well.

<comment><USER8> This actually led to a really good course author having an issue with them over this. (Alan Richardson who hosted a very good technical testing course and a good selenium/webdriver course).

I believe he still has those courses but he intially opted out of their discount program. A course he sold for $200 would have been sold for far less which undermined his own brand but also didn't give him a fair shot at earning from it, especially since he was helpful in responding to any questions I had.

I was lucky and took the course when it was $200, it shortly after went up to $300 due to changes in revenue sharing based around coupon codes. This also meant he stopped offering for free a really helpful free course on technical testing.

(The source of this information is through course announcements made at the time, I can publish them in full here.)

This post from udemy to instructors is interesting reading: [https://blog.udemy.com/announcement/](https://blog.udemy.com/announcement/)

One benefit of the udemy over the pluralsight model is that years later I still have access to the course and can revisit it, without paying an on-going subscription.

Pluralsight overall seems to have better content, at least from a software developer perspective.

<comment><USER5> I think Pluralsight has consistently higher quality classes than Udemy, but that Udemy also has some great classes. You have to spend a bit more time looking at reviews before you buy on Udemy. Also you end up having to accept the fact that sometimes you will end up buying a course that isn't worthwhile.

As an example of a non technical class; The Secrets to Drawing on Udemy is Amazing. I am a (bad) hobby artist in my spare time and this class has done more to help me with my drawing skills than any other book or class I've tried in the past; my kids have been going through it too and they absolutely love it.

[https://www.udemy.com/the-secrets-to-drawing/#/](https://www.udemy.com/the- secrets-to-drawing/#/)

This is two of the benefits of Udemy over Pluralsight

1) On Pluralsight I would never see this class (well not currently anyway) because it doesn't fall within their accepted domain of classes.

2) I paid the $30 one time for this class and I can go back and review whenever I want and let my kids go back and use it a year later and not have to pay another subscription fee.

</comment></comment></comment></comment></comment><comment><USER9> I am one of the first cohort of Udacity to complete Front End Web Developer Nanodegree. However, when I applied for a developer job(something called Udacity Experience Program) on their career site, few weeks after I got an email describing I am not a good fit for the role.

I have been looking for an entry level developer job for last couple of months. During job interviews when I mention regarding the Certification Program from Udacity or discuss on the projects that I did it does not ring a bell to most of interviewers.

Agreed I learned a ton on front-end development from the program but so far the nanodegree has not really helped me in my job search.

It will be interesting to see if Udacity can gather and publish data on number of nanodegree holders getting developer jobs after completion.

<comment><USER2> Are you looking for jobs at startups? If so, it's going to be difficult to get hired regardless of your training if you've never worked in the field before. This is just due to some quirks about the economics of the industry. It's much easier to get hired at a dev shop, work there for a year or two, and then apply to work at a startup or large company after that.

<comment><USER9> Right. Few startups and dev shops that I have interviewed in SF Bay area are looking for those developers (2-5 years experience) and the market here is crazy for experienced ones.

Few days ago I posted on HN (Who wants to be hired) even to work for free as an intern for couple of weeks but so far has not received any response.

<comment><USER2> Interesting, maybe it's different in NYC due to all the money in media, fashion, healthcare, and other industries where tech is more peripheral. Recently I've also seen some folks have success after regularly attending the weekly hack nights for their technology of choice, and then get hired after a couple months of that.

</comment></comment></comment></comment><comment><USER10> A lot of people are going to dump on this billion dollar valuation, but we don't have the terms. Presumably there is liquidation preference. According to Crunchbase [1], the total capital raised is about $160 million after this money, so the investors don't need this company to be worth $1 billion to come out fine. Sam Altman made the point a few days ago that a lot of these late- stage private financings are kind of debt-like [2, about paragraph 8-9 and footnote #2], with the result that the valuations aren't really meaningful.

[1] [https://www.crunchbase.com/organization/udacity#/entity](https://www.crunchbase.com/organization/udacity#/entity)

[2] [http://blog.samaltman.com/the-tech-bust- of-2015](http://blog.samaltman.com/the-tech-bust-of-2015)

</comment><comment><USER11> I used to think these online educational companies wouldn't be very profitable in the long run. Then I discovered Udemy. In the last two months I've bought three courses on Udemy (at about $10-$20 each). The courses aren't your conventional CS classes. I bought a course on Photoshop mastery. Another on Android programming, and another on Adobe Illustrator skills. I've enjoyed the material so far.

I have undergrad and grad degrees from respected US schools, so I don't really need certification, but I still find myself taking these online courses.

In the case of Photoshop and Illustrator, its not even for the sake of employment (although it might be useful in the long run). There's something satisfying about acquiring skills in an area you are really deficient in.

<comment><USER12> I like a good deal of what's on Udemy, but it feels like for reasons totally different from the marketing. For me it's more like the online version of those video lecture series you used to buy on VHS or DVD through a "distance learning" mailorder catalog, and not so much like an online classroom. There's some course-like content in it beyond the lectures (quizzes and such), but imo the main value is really just the lectures, and the quality of the lectures is what differentiates good courses on there from bad ones.

Which is fine, video lectures are a model that's worked for a few decades, but now online and more convenient to shop for. And a good video-lecture course is certainly worth at _least_ $10. I guess I can see why they don't brand it that way (the "disrupting education" hype train has money/press, while "mail-order video lectures, but on the internet" is a harder sell). But for me, their courses made a lot more sense to me once I started thinking of it as a place to buy a video lecture course, like the way you might order DVDs of the Feynman physics lectures.

<comment><USER13> Agreed, in my experience (primarily with Coursera and edX, which are admittedly different from Udemy/Udacity in their focus), the recent wave of online courses or "MOOCs" mostly boils down to video lectures being made readily available online. For my purposes, this is just great! The content is often very high quality, and I have yet to pay for a course since so much is available for free.

</comment></comment></comment><comment><USER14> Mind. Boggles. "Nanodegrees"? "now recognized by some of Silicon Valley's biggest companies, including Google and Salesforce"? What does that even mean?

And this is a company that has essentially "pivoted" to being a sort of vocational training in the CS space. There may be a business model there but it doesn't seem like anything particularly unique or deserving of out-sized evaluations.

<comment><USER10> I wouldn't be so down on vocational training for software...It _is_ a field that has an unusually high requirement for ongoing learning. And when you have to learn some new tech, usually you have to do it now, and in-place, not next September, in the nearest college town. Given the high ongoing learning requirements that software has, I think there is a pretty clear need for training that's delivered where you are and when you need it, and traditional schools won't be able to do that.

<comment><USER14> Oh. To be clear. I think on-going training is great especially given the pace of change. And things like automated evaluation of code is something that actually works pretty well in MOOCs in my experience. (Unlike peer grading.) However, the argument for platforms like Udacity hasn't in general been that they're a great advancement for vocational training but that they disrupt higher ed generally. And that's probably a different valuation metric.

<comment><USER15> That depends on how sensitive higher ed is to competition from vocational training for things like programmers, right? Something like Udacity isn't going to replace a traditional CS degree, but something more like an IT degree could just be high-end vocational training offered by a traditional four-year institution, and as college costs rise, it could start to eat into the lower end.

</comment></comment></comment></comment><comment><USER16> One worrying aspect of this sort of thing is that it obligates them to go after really big revenue potential as an end game.

We don't know much about where online education is going yet, how it works. It may be the case that a MOOC could change the way education works fundamentally and still have revenue that does not justify a valuation like this.

The field is still young and feels like the potential is much bigger than the current state. We don't know what achieving that potential looks like. I hope they aren't taking important options off the table.

</comment><comment><USER17> No they raised $105M in preferred shares with 1x or more liquidity preferences. The common stock is worth no more than the value of a way out of the money penny option that is only excercised in the case of a liquidity event. Meaning the real valuation of the company is maybe two or three hundred million. Of course founders don't tell employees that because they can get talent for pennies on the dollar this way.

<comment><USER18> How do you get to 300M? Is is possible that someone like University of Phoenix might offer $1B for the company? If so, might it be accepted? If so, how much are shares worth?

At my old job, whenever investors bought in they offers to buy out employee shares at the stated valuation.

<comment><USER17> Yes possible. It's possible my $2 lottery ticket will also be worth $100m but until it is, it is still worth only $2 or maybe even less. Until then the value of each share class is not the same and so it would be a mathematical mistake to calculate valuation as the sum of all shares multiplied by the highest price paid for the most senior share class.

</comment></comment></comment><comment><USER19> The JavaScript Design Patterns course[1] kickstarted by web dev knowledge. Not sure how the rest of the catalog is, but that course was useful for a newbie.

[1] [https://www.udacity.com/course/javascript-design-patterns-- u...](https://www.udacity.com/course/javascript-design-patterns--ud989)

</comment><comment><USER20> I interviewed at this place -- comically bad.

They're all clearly drinking the koolaid around a fire of VC money -- their CEO's ties to Google and resume will let them raise whatever funds they desire, but the people I talked to seemed elitist and really concerned about everything but the end product. We'll be talking about a "unicorn" failing in 2017 when they burn through this $105M...

<comment><USER21> How long ago did you interview? There have been some pretty big changes internally and things should have improved quite a bit over the past year or so.

<comment><USER20> End of Sept 2015

</comment></comment></comment><comment><USER22> Udacity has the absolute best online CS classes I've seen. My brother used Udacity to learn software development, and is now employed.

<comment><USER9> Hi Caleb, Care to elaborate a bit more about your brother's scenario? I am interested as I am a recent graduate from Udacity and looking for a junior developer position in SF Bay area.

</comment></comment><comment><USER23> There is a ton of astroturfing going on in this thread. The article looks like an ad... Where are the contrasting opinions?

<comment><USER24> TechCrunch is known for being "in" with VCs...you know, the ones who fund the companies they write articles for.

</comment></comment><comment><USER25> Relevant interview with Sebastian Thrun(CEO) on the raise: [http://www.bloomberg.com/news/videos/2015-11-12/sebastian- th...](http://www.bloomberg.com/news/videos/2015-11-12/sebastian-thrun-s- udacity-becomes-a-unicorn)

</comment><comment><USER26> Awesome, Udacity is awesome! Any time my friends ask me how I learned coding I always refer them to Udacity. The quality is just as good as University courses, and you don't have to wait months to finish because you can go on a 2x speed binge watch and crush it in days/weeks.

</comment><comment><USER27> I think Udacity is great but I don't know about efficacy of it. I think it's going to face the same challenges as any other online education site. I think one of the founders had some doubts a few months back about direction of the site, it didn't prove to be what it set out to be. In any case I wish Udacity all the best because I like them.

</comment><comment><USER28> Udacity is great for picking up specific skills but if a nanodegree is all you got on your resume, I doubt you would be taken seriously by employers.

<comment><USER29> I wouldn't put it on the resume either. I would instead just build something at work or after work using the skill I have. If someone asked me how I manage to write a simple chatbot I would say I learned it from Coursera and the Internet.</comment></comment>


The Scots Language: mutually intelligible with English - <AUTHOR> https://www.youtube.com/watch?v=cENbkHS3mnY <comment><AUTHOR> This is a video about the Scots language, spoken in the Scots language. Most of it is easily understandable to me as an english speaker, but other parts are difficult to understand.

I wonder if this is what it feels like to hear english when you only know the basics of the language - like a child or ESL learner.</comment>


Writing a Planner to solve a tricky programming optimization problem - <AUTHOR> http://rwmj.wordpress.com/2013/12/14/writing-a-planner-to-solve-a-tricky-programming-optimization-problem/ <comment><USER2> A smarter approach would be just to use one of the highly optimized ones that exist already ... I use popf, which supports numerics among other things:

[http://www.inf.kcl.ac.uk/staff/andrew/popf.html](http://www.inf.kcl.ac.uk/staff/andrew/popf.html)

You just have to write a problem and domain file which is very easy LISP syntax, it's standardized too[1], so you can swap planners later. I can give you examples if you want.

[1] [http://en.wikipedia.org/wiki/Planning_Domain_Definition_Lang...](http://en.wikipedia.org/wiki/Planning_Domain_Definition_Language)

disclaimer: I am collaborating with Maria Fox's group

<comment><USER3> "Smarter" is a pretty judgmental term.

I know we live in the era of "there already is a library for everything", but for small problems it may still sometimes make sense pick from the ideas you like and code directly. This can take less time than learning whatever huge family of encodings committees have agreed on, is less likely to bring in cross language calling requirements, less likely to bring in specific system requirements and less likely to bring in licensing requirements.

<comment><USER2> popf is a UNIX command line program. There is no cross-language linking required.

It's been battle tested, all the issues in the article are solved (proper pruning, optimal results). Furthermore, its likely to have less bugs than the authors.

Its been tuned over years for use in competitions. So it probably runs faster than the author's, even though it has more features.

It uses a derivative of the same language the author has suggested (STRIPS is the predecessor to PDDL). So its basically the same interface but more general purpose. Using a standardised language makes the overall system more maintainable

There are no licensing requirements, because its a shell script. If you want to modify the solver then its GPL, but you want to pipe data out of it its ok to invoke it in a separate process.

I agree programming stuff is useful for learning. But optimization is specialised and tangential to most companies core competencies. Leave it to the professionals. You don't write your own SQL query interface for example (which is quite a similar problem).

EDIT:

The author should not feel like they made an obvious mistake though. The planning community is the worst for writing their software up in human readable form. Its really very easy to use, but you would not be able to guess that from their websites, their constant use of complex logical constructs every other sentence is infuriating.

<comment><USER4> > Its been tuned over years for use in competitions. So it probably runs > faster than the author's, even though it has more features.

For OP's use case, which appears to have a max depth of maybe 3, invoking a shell program is going to be a _LOT_ slower than just running the search. No matter how slowly it is implemented.

<comment><USER2> "Those who don't understand Unix are condemned to reinvent it, poorly." – Henry Spencer

You are basically saying the whole UNIX philosophy of specialised reusable programs chained together is a flawed design.

Spawning a program is not slow. Store the programs file arguments on a ramdisk to avoid disk IO and there will be no noticeable overhead.

<comment><USER5> Are you kidding me? This is pretty fucking arrogant. My $DAYJOB is FreeBSD kernel hacking.

Reusable piped programs are great for some things, especially a productive shell language. No, composing processes is not great for all things, and certainly not where performance is required. This is why FreeBSD is a monolithic kernel instead of a microkernel with processes, for example.

Spawning a program is _incredibly_ slow, even ignoring disk read times, compared to 3 levels of low-branch-factor search in any language.

</comment></comment></comment></comment></comment></comment><comment><USER6> Writing planners can be fun. If you are interested in the topic (and the advances in the 40 years since STRIPS), you might enjoy the corsera course which starts in a month: [https://www.coursera.org/course/aiplan](https://www.coursera.org/course/aiplan)

I wrote a litte strips planner for the last iteration of the course and set it the task to sort some boxes in an interactive box2d world without actually understanding the simulated physics, the result can be quite amusing, [http://fhars.github.io/boxworld/](http://fhars.github.io/boxworld/)

</comment><comment><USER7> It's nice to see something like this, when programming in startups today involves a lot hand waving about efficiency and a "fuck it, ship it" attitude.

</comment><comment><USER8> Vaguely disappointed, I thought that this would be an implementation of PLANNER. Still cool though.

<comment><USER9> Can you give a link to what you're talking about? Searching for "PLANNER" without any extra context seems futile.

<comment><USER8> The PLANNER system is a similar system that is heavily referenced in the AI literature of the 70s/80s. PLANNER was a tool that let you (handwaving starting) specify a world, transitions for the world state, and then spcify an end goal. PLANNER would find the way to go from start to goal. Prolog is a weakened form of PLANNER, if I understand my AI history correctly. If you rummage around the "Good Old Fashioned AI" history, you'll get a good feel for what it can do.

A technical write-up is available here: [http://dspace.mit.edu/handle/1721.1/6916](http://dspace.mit.edu/handle/1721.1/6916)</comment></comment></comment>


Bad code may be to blame for $500M of cryptocurrency losses in seven months - <AUTHOR> https://topbitcoin.lv/bad-code-lost-500-million-cryptocurrency-year/ <comment><USER2> Consider this: Every single Bitcoin mined has either been lost/stolen, or will be lost/stolen, with probability approaching 1 over increasing timespans.

I'd argue that since January 2009 about 50% of the ~17M coins minted to-date are lost. But the realization that this number will asymptotically approach 100% of all coins is a bit striking.

The reasoning is simple - maintaining control of your coins is surprisingly difficult. The harder you try to secure them from theft, the more likely an accident will wipe them away. The more redundancy you keep to protect from losing them, the more they are exposed to theft. And as time goes on, the random noise of life conspires to blot your coins out of existence. And once they're lost, there is simply no recovery.

The supply of Bitcoin is not asymptotically approaching 21M. The supply is approaching zero.

<comment><USER3> Backing your coins up is very easy, most wallets support BIP32/39/44\. Just write the mnemonic down and put it under your mattress. Or a safe if you have one. But seriously, for most people under the mattress is equally safe. I don't understand why anyone would keep a non-trivial amount of coins in a wallet and not have a backup. That's irresponsible.

<comment><USER4> People losing their life savings because they kept it under their mattress is basically the reason that banks were invented. So I suppose this has all come full circle now.

<comment><USER3> There are web wallets today where you only have to remember a password, and can recover access if you can prove your identity. Like uhm… banks. If you don't trust yourself to keep the coins safe and backed up then go put them there. No shame in that.

<comment><USER5> > recover access if you can prove your identity

So hackable, you're saying?

<comment><USER3> Like banks.

The discussion is turning in circles. People lose coins. Have a backup. Too difficult. Put them in a bank. Banks are hackable. Manage the coins yourself. But then I might lose them.

(you can replace bank with 'trusted third-party', doesn't change the outcome)

Consider the two options: self-managed, or in a trusted third-party. Whichever has the smaller (perceived) risk, that's where you store your coins. Not everybody asses risk equally, and that's fine. My preferred solution may not be the same as your preferred solution. That's fine, still.

<comment><USER5> Fiat banks can recover money though - cash can be found and transactions unwound - and there are techniques to poison what is stolen without permanently decreasing the money supply. Freezing a wallet basically destroys the btc forever with no way to print more.

<comment><USER3> And the bitcoin software is written in stone, can never be changed.

<comment><USER6> Basically, yeah.

I mean, the wallet software is obviously open source, and you can change it however you want of course, but allowing for transactions to be undone would basically require rewriting the entire protocol and everything which interacts with the bitcoin network - and that's if it's even possible in the first place, without removing vital parts of bitcoin like the decentralization or being able to trust the entire network without trusting any one entity.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Who says it was lost? I suspect quite a few of these 'hacks' are inside jobs to take coins from the general public and move them to the founders/owners/employees of exchanges.

Yes, that's a pretty harsh accusation to make, but there is plenty of evidence that this happens with some regularity and the number of instances is high enough to make that claim. And it will continue as long as gullible people place 100's of millions in unsecured accounts without oversight.

Who knew that regulatory oversight was a good thing?

<comment><USER8> Hmm. I'd say it's a combination of inside jobs and general poor coding/security practices. The inrush of customers has prompted lots of people to follow the "sell the shovels, not mine for gold" mentality and try to open up their own exchanges... and every exchange is a prime open target for any hacker because of the massive amounts involved.

<comment><USER9> In addition to all you said, I would add that some more advanced test frameworks/library a missing. There are only good ones for unit tests and UI test automation like Selenium, for integration tests there is a huge gap of decent test frameworks missing.

<comment><USER7> Wrong thread? Or do you feel that test frameworks/libraries are going to take care of sloppy security practices and inside jobs?

<comment><USER9> From the bugs described in the article, specially the one a person could withdrawal from another account to its own account, I believe better test libraries could help. Normally people develop tests using the same input data from beginning to end of test execution, since it becomes cumbersome to use different test data for input in the same round of test execution. Mainly because how these data come from fixtures.

<comment><USER10> I don't know if this is a good example of the value of testing. This 'mistake' strikes me as so colossal that the idiot who allowed it to happen would not be saved by writing tests.

</comment></comment></comment></comment></comment></comment><comment><USER11> If this interests you:

[http://dayssinceacryptocurrencyexchangehaslostmorethan100mil...](http://dayssinceacryptocurrencyexchangehaslostmorethan100million.com)

</comment><comment><USER12> I've lost .38 Eth because of the Mist wallet on macOS.

Seems they've a password issue where the password is always wrong even if you wrote it down at the time of setup.

The suggested solution on the GitHub issues is to use a brute force attack using a python script. Such an issue just screams poor testing.

<comment><USER13> Is it this script? [https://github.com/burjorjee/pyethrecover](https://github.com/burjorjee/pyethrecover)

That is atrociously bad. It appears to use a pure-python implemention of AES (!!!) [1]. Holy cow. This is going to be miserably slow. Using all the CPUs isn't going to help when it's going to be literally tens of thousands of times slower than better techniques.

You will literally have time to learn hashcat [2] from scratch, learn how to implement the plugin, test the plugin with some sample passwords, and run it yourself, and _still save time_ over running the Python script, because even if you leave the Python script running during the entire, say, week you spend learning all this, the hashcat script will still outrun Python in the first _minute_ or so, by my somewhat conservative estimate that it will run 10,000x faster. (I wouldn't consider 100,000x out of reach. Depends on your GPU. But hashcat will still be faster even just on the CPU alone.)

(Also hashcat shows some ethereum support, but neither of the two things it says say "aes". I don't know whether hashcat would support this out of the box, I'm just saying that you literally have time to implement this from scratch and _still be faster_ than running that Python script.)

(I also want to be clear that this isn't GPU fanboying. It can't be, because I'm not one. GPU computing is very often oversold. But this is legitimately one of those cases where GPUs can smoke CPUs by multiple factors of magnitude.)

[1] [https://github.com/burjorjee/pyethrecover/blob/master/aes.py](https://github.com/burjorjee/pyethrecover/blob/master/aes.py)

[2] [https://hashcat.net/hashcat/](https://hashcat.net/hashcat/)

</comment></comment><comment><USER14> If a coin is stolen, it is still in circulation. No affect on the holders of that cryptocurrency.

If a coin is lost, it is out of circulation, and the net effect is that it is distributed to all the remaining holders of that cryptocurrency.

<comment><USER15> > If a coin is lost, it is out of circulation, and the net effect is that it > is distributed to all the remaining holders of that cryptocurrency.

Meaning the value of the remaining coins increases a tiny bit because supply was reduced?

<comment><USER14> Correct

</comment></comment></comment><comment><USER16> Tipping point is bulk of everything Seeing more of this further solidifies the case for decentralized exchanges

I used to remember how every hack hits the market really bad

This time every hack is like business as usual [https://www.coingecko.com/en](https://www.coingecko.com/en)

Which is why when I get into investing in crypto. I take coin hack risk and volatility risk into account from day

</comment><comment><USER17> On the flip side, the combined market cap* of all cryptocurrencies has increase approximately $400B in the last year.

* Yes, I know market cap is a poor metric, but it's equivalently bad to the $500M "lost" metric used here.

<comment><USER18> That's assuming the total number of coins still exists. I would not be surprised if 20% of all bitcoins have already been lost.

EX: Satoshi's coins could all have been lost at this point.

<comment><USER5> I wonder how much the rise in btc or eth can be attributed to lost or blacklist coins?

</comment></comment></comment><comment><USER19> Not necessarily code, not necessarily lost and not necessarily $500M

<comment><USER20> Not necessarily a reply.

</comment></comment><comment><USER21> ..and, yet, nothing of value was lost.

<comment><USER22> Lots of electricity was wasted.

</comment></comment><comment><USER23> One man's loss is everyone else's gain. If $500MM of a coin is irrevocably lost or destroyed, everyone just gained $500MM in value through an increase rarity.

It's equivalent to the losers transferring all their coin to the rest of the network participants (in proportion to their stake).

<comment><USER24> > If $500MM of a coin is irrevocably lost or destroyed

But the examples in the article are about coins being stolen, not lost or destroyed. Someone somewhere still has it and is presumably able to spend it.

<comment><USER25> >But the examples in the article are about coins being stolen, not lost or destroyed. Someone somewhere still has it and is presumably able to spend it.

quite a lot of these stolen coins were tracked down and weeks later locked by exchanges when someone tried to sell them.</comment></comment></comment>


Users Googling "Facebook login" mistake news story for Facebook [2010] - <AUTHOR> http://www.theregister.co.uk/2010/02/12/google_de_facto_internet_gateway/

<comment><USER2> Humanity never fails to amaze me in its capacity for stupidity.</comment>


Show HN: Shy – A Shunting Yard Rules Engine in Rust - <AUTHOR> https://github.com/paulchernoch/shy <comment><USER2> I have no idea what this is... ELI5?

<comment><USER3> It is a simple interpreter for expressions.

See more at : [https://en.wikipedia.org/wiki/Shunting- yard_algorithm](https://en.wikipedia.org/wiki/Shunting-yard_algorithm)

<comment><USER4> These toy-intepreters are very useful for putting scripting support in your applications.

I recently wrote something similar for allowing evaluation to be applied to arbitrary golang objects/structures - so that I could write simple scripts rather than hard-coding logic in my application.

With only a few primitives it becomes very useful!

[https://github.com/skx/evalfilter](https://github.com/skx/evalfilter)</comment></comment></comment>


Ask HN: What do you do when you hear something memorable/relevant in a podcast? - <AUTHOR> Six months ago, I started listening to podcasts, and I've been hooked ever since -- some of my favorites are Acquired (https://www.acquired.fm/) & The Twenty Minute VC (https://www.thetwentyminutevc.com/).
I love how much I learn in these podcasts, but I haven't found a great way to retain this knowledge. I'm curious to hear 1) how often this happens to others and 2) what you currently do when you hear something memorable/relevant?
Welcome to any additional thoughts! <comment><USER2> Writing into comments in code that I happen to be working on at the moment.</comment>


Ask HN: How does your team maintain a high level overview of its microservices? - <AUTHOR> After working for a while on products built around microservices, I saw repeatedly the issue of not having an easy way to check dependencies between these components or get basic info about them being discussed and raised by teams.
Do you know any solution that suit this purpose? A solution that provides a more high level overview of your microservices ecosystem?
I know there are tools that "scan" and drew a map of your microservices and inter-dependencies, but I just don't think they're very friendly to use. I also know that is possible to write wiki pages and readme files to describe the microservices, but I don't think this solution is easily searchable/accessible.
I was wondering if exist something that can be used more upfront, when the services are being created. Like a service index, for instance.
I'd like to hear your experiences if you please. <comment><USER2> The question could be - How do you design/develop/maintain dependency hell of your micro services?

Service discovery is one solution. Dependency graph is always behind built tools (SBT, Ant, Maven, NPM, PIP,..etc) unless you standardize them.

If it is environment specific, It could be part of your configuration management tools like Ansible, Chef. I like it here because it is pretty much codified in terms of DSL scripts. Config management sitting in front of Linux package manager like YUM, APT, etc.,

In Docker world, It could be part of application profiles, Pod, Pod groups. Sidecar dockers, System service dockers should be captured as dependencies in pod groups as part of infra/environment setup.

[https://kubernetes.io/docs/concepts/workloads/pods/pod/](https://kubernetes.io/docs/concepts/workloads/pods/pod/) [https://mesosphere.github.io/marathon/docs/application- group...](https://mesosphere.github.io/marathon/docs/application-groups.html)

I guess there is very good market to solve this dependency complexity issues. Micro services leads lot different type of tech stacks and addressing the complexity is niche in demand. This could be very good idea for startup.

</comment><comment><USER3> From a technical perspective, a tracing system like opentracing is essential. Jaeger is a very user-friendly and great standard to do it. I prefer it over Zipkin.

If you want to maintain an "index" you can use a service-discovery service like [https://www.consul.io/](https://www.consul.io/) and build tools on it.

Here you can see an example how to manage it with hemera in the node.js world [https://github.com/hemerajs/aither](https://github.com/hemerajs/aither). We use a production-grade messaging system called [https://nats.io](https://nats.io) as service-discovery and transport layer and have a very transparent and maintainable landscape of our services.

</comment><comment><USER4> Are you referring to just internal documentation about your own architecture?

If you are struggling with the runtime dependency and debugging, make sure you have a distributing opentracing stack like Jaeger running.

If it's internal docs and wikis and knowledge, make this part of what you build. Writing code and shipping to servers isn't where our job as engineers ends. Document it. Training your coworkers. Make sure you are building maintainable software, and that means that building software isn't just about writing code.

<comment><AUTHOR> Thanks. I was referring to internal docs and knowledge on the purpose of each microservice and how they interconnect (like a dependency matrix).

</comment></comment><comment><USER5> This is one advantage of having client libraries, if you publish them to a local package feed the dependencies become easily enumerable.

You could dynamically infer this by adding origin info to your service locator query (" _I 'm Profile service_ looking for User service").</comment>