Gource.io – a software version control visualization tool - <AUTHOR> http://gource.io <comment><USER2> Gource is a really cool visualization tool. Here's a Gource visualization of development of the Python programming language (C Python implementation, aka CPython): [https://www.youtube.com/watch?v=cNBtDstOTmA](https://www.youtube.com/watch?v=cNBtDstOTmA) Here's a collection of Gource visualizations: [https://github.com/acaudwell/Gource/wiki/Videos](https://github.com/acaudwell/Gource/wiki/Videos)

If you create your own visualizations, I strongly recommend that you automate doing it as much as possible. For example, if you process data first, use a script to automate processing the data. You'll need to give Gource various options, and there are a lot of options; store options in its config file or scripts.

Also, if you create a Gource video, I _strongly_ recommend adding some music or at least an audio commentary. If you add music, make sure it's legal to add; the safe route is to use music released under open licenses such as Creative Commons Attribution (CC-BY) CC0 Public Domain Dedication (CC0). Beware of the "non-commercial use" licenses - your releases might count as "commercial" even if you don't think they do (talk to a lawyer if you want to go down that path). A great place to start for Gource music is audionautix.com ( [https://audionautix.com/](https://audionautix.com/) ), which has released lots of music under the Creative Commons Attribution 3.0 Unported License; you can select from lots of different styles and get some great options. "Improving Gource Videos with Background and Audio" ( [https://fransdejonge.com/2018/02/improving-gource-videos- wit...](https://fransdejonge.com/2018/02/improving-gource-videos-with- background-and-audio/) ) has some tips and instructions.

<comment><USER3> Hmm, why do you recommend adding music? This is a pet peeve of mine, many videos would be better without attaching unrelated music to them. Less processing is better.

<comment><USER2> > Hmm, why do you recommend adding music?

For the human. Videos are way more interesting to most people if there's an audio track of some kind. Anyone who doesn't like the sound can mute it.

Less processing really isn't relevant. CPU is cheap. Yes, audio does take _some_ additional space & network, but it's practically nothing compared to the space required for a video. So if you're making a video anyway, add some sound and make it interesting for the human who's viewing it.

<comment><USER4> Not really picking sides but the one thing I hate with music is that if I for any reason would not like to listen to it. Maybe I'm already listening to music - maybe I don't have my headphones on and don't want to disturb anyone else (or don't have speakers). Or I'm on a laptop/phone where the speakers are just terrible.

If I press the mute button I will not know if I'm missing out on some important commentary.

There should be a standardized way to convey that the audio is optional and doesn't directly relate to the video. To be fair this also applies to videos without sound (how am I supposed to know there is no sound unless I've watched the whole thing?) - though with the advantage that one can leave it unmuted and at least detect if someone starts talking.

<comment><USER2> I like the idea of having some standardized way of noting that. The indicator would have to be short and clear. Any ideas? Maybe "Music-only audio"?

</comment></comment></comment></comment></comment><comment><USER2> Gource is a really cool visualization tool, and although it's originally intended to show software development over time, it's useful for showing other community works over time. Here is a visualization of the development of set.mm (the Metamath Proof Explorer (MPE)), a set of formalized math proofs that's been developed over time with (now) 48 people:

[https://m.youtube.com/watch?v=XC1g8FmFcUU](https://m.youtube.com/watch?v=XC1g8FmFcUU)

I find these visualizations great to help show people how open source software contributions work. Most people get the idea that collaboration can result in amazing things, but there is nothing like a visualization actually showing it in action.

</comment><comment><USER5> I once ran it on the one year old codebase of a startup I got a job at.

That guy rewrote the whole code base every month.

New clusters growing and getten teared down all the time.

</comment><comment><USER6> Where I worked we used this to display other tree based data, was an interesting exercise. As long as you can translate into their log formats it was really simple to set up. Was more eye-candy to be honest.

</comment><comment><USER7> > > [https://www.youtube.com/watch?v=MkJxlKD2bjk](https://www.youtube.com/watch?v=MkJxlKD2bjk)

The first time I saw Gource in action was in a video that visualized the history of the Linux kernel. Really interesting data, especially when paired with key headlines about the project.

</comment><comment><USER8> I'm old! I remember I toyed with [https://code.google.com/archive/p/codeswarm/](https://code.google.com/archive/p/codeswarm/) before gource was a thing

</comment><comment><USER9> Cool seeing this tool come up on HN. 5 years ago when I was getting into programming I came across this and made a visualization for one of my favorite libraries at the time, SFML ([https://www.sfml-dev.org/](https://www.sfml- dev.org/))

[https://vimeo.com/100557603](https://vimeo.com/100557603)

</comment><comment><USER10> It's pretty, but I can't think of anything I'd use it as a "tool" _for_.

<comment><USER11> Coworker used it to generate a visual history of all the changes a departing colleague had made in his time at the company. Put it up on a wall at his farewell party, was a nostalgia trip for those who remembered many of the older directory names that popped up (and helped drive home how much of a contribution this single dev had made early on).

</comment></comment><comment><USER12> Is there a binary available for this? Download on the site seems to just be source.

Currently running `./configure` and going through the dance of working out what my package manager calls each of the dependencies one at a time with no idea of progress (has anyone solved this problem?).

<comment><USER13> Its available on the package managers of most linux distros.

</comment></comment><comment><USER14> So someone upload many videos generated with this tool to youtube. I was really impressed when I stumpled upon it.

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

</comment><comment><USER15> Totally unrelated may be, I have a one plus 7 pro with the front camera that pop's up, when I opened the link it just popped up and went down. This is the first time that is happening. Weird.

<comment><USER16> Are you using Firefox? Because it happens to me too with some websites, and it really creeps me out.

</comment></comment><comment><USER17> Link to repository: [https://github.com/acaudwell/Gource](https://github.com/acaudwell/Gource)

</comment><comment><USER18> Found the related software for web access logs to be more impressive! [https://logstalgia.io](https://logstalgia.io)

</comment><comment><USER19> I've never seen this before, but it looks super interesting. Seems like it's been around for a while though.

</comment><comment><USER20> Do you know which library (or similar one) is used for this visualization?

<comment><USER21> It's basically the same as a d3 force layout.

</comment></comment><comment><USER22> If the title wouldn't include a description of what it is I would be very confused. There is nothing on the website that actually say what it is.

<comment><USER7> > Software projects are displayed by Gource as an animated tree with the root > directory of the project at its centre. Directories appear as branches with > files as leaves. Developers can be seen working on the tree at the times > they contributed to the project.

I thought that was descriptive enough.</comment></comment>


Lisp vs. other languages - <AUTHOR> http://firstname.lastname@example.com/msg01364.html

<comment><USER2> I found it fascinating to read the perspective of someone familiar with ML and Haskell but not with Lisp. I wonder how many people like that there are out there? Most people into ML and Haskell are hard-core enough to have learned many languages, and CL or Scheme would generally be one of them.</comment>


Internet Health Report - <AUTHOR> http://www.internetpulse.net/ <comment><AUTHOR> This can be very helpful in identifying the health of the overall internet.</comment>


Google Sibyl: A system for large scale machine learning [pdf] - <AUTHOR> http://ladisworkshop.org/sites/default/files/LADIS%202010%20actual.pdf

<comment><USER2> "Sibyl" is by the way from greek mythology and referred to a woman who could predict the future, a prophetress. <http://en.wikipedia.org/wiki/Sibyl> Wikipedia mentions there were as many as 10 Sibyls, although it does not mention that "the" sibyl was also famous for having predicted it's own death... ;-)

</comment><comment><USER3> Is there a video recoding of the talk?

</comment><comment><USER4> Interesting! There is an open source Apache Mahout project for doing machine learning via hadoop. Also have a look at Vowpal wabbit an open source framework for fast SGD for online learning.

Also another interesting point is their use of boosting, since i recently attended a tech talk by facebook engineers where they told us that bagged decision trees while predicting the friends for a user.</comment>


F.D.A. Proposes Guidelines for Salt Added to Food - <AUTHOR> http://www.nytimes.com/2016/06/02/health/fda-salt-guidelines-processed-foods-restaurants.html <comment><USER2> Counter point: According to this Scientific American article, there isn't a lot of evidence for demonizing salt. "The zealous drive by politicians to limit our salt intake has little basis in science"

"This week a meta-analysis of seven studies involving a total of 6,250 subjects in the American Journal of Hypertension found no strong evidence that cutting salt intake reduces the risk for heart attacks, strokes or death in people with normal or high blood pressure. In May European researchers publishing in the Journal of the American Medical Association reported that the less sodium that study subjects excreted in their urine—an excellent measure of prior consumption—the greater their risk was of dying from heart disease. These findings call into question the common wisdom that excess salt is bad for you, but the evidence linking salt to heart disease has always been tenuous."

[http://www.scientificamerican.com/article/its-time-to-end- th...](http://www.scientificamerican.com/article/its-time-to-end-the-war-on- salt/)</comment>


Why Bitcoin Has Value - <AUTHOR> http://www.businessinsider.com/why-bitcoin-has-value-2013-12

<comment><USER2> The article basically concludes that it doesnt have any inherent value other than the fact that "a lot of people seem to be using it". We return to the same argument again and again, bitcoin needs to get the fundamentals right. Whenever a question about 'store of value' is raised, btc proponents start yelling about how awesome it is as a 'medium of exchange'. I for one will not buy btc until it gets the fundamentals right.

<comment><USER3> Bitcoin does not need "to get the fundamentals right" because Bitcoin is just a protocol, not a person. And the protocol works pretty well for those who use it and does not care if BTC is worth $700 or $10.

Here are the fundamentals if you want them:

1\. You can really own bitcoins while you never really own dollars or gold. You can move them, store them, shuffle around, for a very small price and always have an ultimate control of where they go. [http://blog.oleganza.com/post/67362431718/you-can-own- bitcoi...](http://blog.oleganza.com/post/67362431718/you-can-own-bitcoin-you- cant-own-your-dollars)

2\. Blockchain allows registering all sorts of proofs for many different kinds of protocols. It can replace DNS+SSL in a single solution where you really own your username like you own a bitcoin.

3\. Bitcoin allows to program complex contracts to be enforced by the whole network thus reducing need for vaults, audits, lawers, laws, police force etc. If I lock up my savings in a time-locked transaction for 10 years which needs any 3 signatures out of 5 of my friends and relatives to redeem, there's nothing in the whole planet that can steal this money from me. Or, I can make a bilateral 200% deposit with a total stranger and trade under whatever rules we agreed upon without having reputation systems: [http://blog.oleganza.com/post/58240549599/contracts- without-...](http://blog.oleganza.com/post/58240549599/contracts-without- trust-or-third-parties)

There's a lot more to it. It's not just a "payment network".

<comment><USER2> see same old arguments. the question is what gives btc "value", not "is it programmable, secure etc etc etc"

<comment><USER3> Ah, sorry. Bitcoin is a collective bet that more and more people will be using it. Like a pyramid scheme, but without a fraudulent promise from anyone that you will buy a share in some particular activity. More people make this bet — more valuable Bitcoin becomes. If one day everyone decides that it's not a worthy bet, the value will collapse to zero.

Pyramid lottery schemes can work the same way, but they always collapse because the only use of such scheme is to sell everything to later coming people. Because otherwise the tokens you bought are useless. Bitcoin has interesting fundamentals that allow your tokens to be incredibly useful without ever "cashing out". Thus it can theoretically be stable money like gold. Fundamentals ("programmable", "secure" etc.) are important because without them people either would not make such bet, or those who will try, will only play like in a good old pyramid: selling out before others.

Bitcoin as an investment today is a combination of long-term believers with short-term players. Each run-up in price has both groups there and short-term players sell off when they feel the top is reached. Then other, less lucky short-term players are selling in panic, thinking that pyramid has collapsed. All the long-term investors ("believers") simply put their coins under the mattress to be slowly spent on various goods in the future. Without fundamentals, there wouldn't be any long-term believers, only a single bubble and a single crash.

[http://blog.oleganza.com/post/69887761276/bitcoin-value- prop...](http://blog.oleganza.com/post/69887761276/bitcoin-value-proposition)</comment></comment></comment></comment>


How pair programming helped me focus more - <AUTHOR> http://haidrali.com/how-pair-programming-helped-me-focus-more/ <comment><USER2> I agree with 3rd point "Many a time I have experienced that Unforced Errors like unintentionally .... " I personally have experienced this during daily work.

</comment><comment><USER3> I am used too of getting out of track while work, I usually log into facebook and spent hours there before coming back to actual tasks</comment>


An open source, self hostable activity tracking web app for cycling and running - <AUTHOR> https://gitlab.com/pikatrack/pikatrack <comment><AUTHOR> I have been building this for the last few months now and It's close to a working product. I'm a heavy user of Strava and I noticed that there wasn't anything like it in the open source space so I started this project. I'm looking for people to try it out and give feedback. If you are interested send me a an email at firstname.lastname@example.com and I can get you set up.</comment>


Japanese space telescope Hitomi (ASTRO-H) appears to have broken up in orbit - <AUTHOR> https://twitter.com/jointspaceops/status/714103414225960960 <comment><AUTHOR> Japan's space agency had earlier reported they had lost contact,

[http://www.japantimes.co.jp/news/2016/03/27/national/science...](http://www.japantimes.co.jp/news/2016/03/27/national/science- health/jaxa-says-communication-link-x-ray-astronomy-satellite-lost/)</comment>


Ask HN: Did Hacker News just implement collapsible comments? - et-al Dang.. did we just get collapsible comments? I've been using the HN Special bookmarklet, but today I noticed a little [-] by the time stamp.<p>If so, thanks! And if this is old news, thanks and sorry! <comment><AUTHOR> Few days old, see [https://news.ycombinator.com/item?id=12073675](https://news.ycombinator.com/item?id=12073675)

<comment> et-al Ah cheers. Tried searching "collapsible" but only found request threads.</comment></comment>


Ask HN: How do I get over my "programmer envy"? - <AUTHOR>

I run a fairly successful digital marketing business that's growing fast and gives me considerable financial freedom.
I'm good at what I do and I enjoy my work.
However, every time I read come to this site (which is every day), I feel a very strong urge to give it all up and learn how to code.
I feel jealous of programmers, at their ability to create things and solve technical problems.
I played around a lot with code when I was younger. I built my first site when I was 13 and had a good handle on Javascript back when jQuery was still a pipe dream.
Somewhere along the way, I developed other interests (music, then writing) and ended up majoring in the humanities.
Perhaps it is my liberal arts background, but I feel a constant sense of inadequacy about my intellectual achievements every time I read a technical article. I feel like I haven't cracked a hard problem, and that bothers me.
So I ask: how do I get over this feeling? I know it's a very subjective question, but I'm hoping someone from HN can shed some light.
Should I just jump in and learn how to code, knowing that it will be years before I can learn enough to solve some real problems?
Or should I give up and focus on what I do best - marketing?
Apologies if this question is unsettling/offensive/irrelevant or just plain dumb. <comment><USER2> Sounds like you have a mostly unexplored passion in programming. So why not do it on the side? Some nights or weekends just read up on whatever language or platform interests you and have a go at it. After a few months when you get a handle on things decide if it's something you REALLY want to do or not.

If it's something you want to do then just go for it. Figure out a way to either stay in your business or sell it. Life isn't very long, if you can chase your passion you should do it in my opinion. Just make sure it's your passion first :)

Also don't worry about the hard problems; it's hard to crack a hard problem...okay didn't mean for that to sound like that, ha! But not every developer is going to crack a hard problem and you'll likely find different developers have different definitions of what a hard problem even is.

<comment><AUTHOR> I've been trying that out lately. Started with the Codecademy Ruby track which was pretty easy. Working through RailsTutorial right now.

</comment></comment><comment><USER3> > Perhaps it is my liberal arts background, but I feel a constant sense of > inadequacy about my intellectual achievements every time I read a technical > article. I feel like I haven't cracked a hard problem, and that bothers me.

I fell that won't go away once you learn how to program. Likelihood is you're envy will just switch from being envious of all programmers, to being envious of programmers who "actually solve hard problems" And that bar will keep moving with your skill level.

Now, on the other hand, in my opinion everything important becomes a difficult marketing problem at some point. So realizing the contribution of what you do, may help some.

</comment><comment><USER4> I'm a programmer and I feel jealous of people that can design. I wish I could do both (so I can take more money from freelance) - but I don't have an eye for that. I don't care if a link is light blue or dark blue, or if the composition of a photo looks good or not.

As a programmer, I do what the design tells me to do; that's what I promise my clients, and thats what I deliver. Nothing less or more is ever expected.

Do what you do and do it well. You can make a lot of money and be happy at anything, so long as you do it well.</comment>


Why I am building a blockchain in Go - <AUTHOR> https://medium.com/karachain/why-i-am-building-a-blockchain-in-go-6395a60b24dd <comment><USER2> > Contrary to this, we use Java which runs in its own JVM which then runs on > top of the OS.

Not quite true, only when using the free (gratis) OpenJDK.

Majority of commercial JDKs, like ExcelsiorJET, Aicas, PTG, IBM, ... do support AOT compilation to native code.

Oracle also added support for AOT Linux x64 on OpenJDK 9, with support to other OSes being worked on for later releases.

</comment><comment><USER3> > a Goroutine takes about 4 Kilobytes of space in RAM. On the contrary, a > thread takes up about 1024 kilobytes in RAM. Hence, Goroutines take up 250 > times less space than threads in other languages, which makes it possible to > run an increasing number of Goroutines concurrently.

In this true in the practice?</comment>


Free music scores site IMSLP goes freemium (sort of) - <AUTHOR> http://www.imslpforums.org/viewtopic.php?f=1&t=8187 <comment><USER2> Making a tool, service, website suck is not a good monetization strategy. One natural reaction to a deliberate bad experience is "I will never give them money." Essentially, the site has gone to war with the people who like it. The engineering and administrative effort that went in to making a bad experience could easily have gone in to making the site better.</comment>


Life as a Consultant: The unexpected Cancellation - <AUTHOR> https://medium.com/p/25a9699ee1da This is why I prefer to spend my time on my software company instead of my consulting company. <comment><USER2> Would be interested to hear the outcome. The letter to the client is snarky: "I've only been running companies for 3 years now so I don't have nearly the experience as <redacted>, but it's been my experience that when spending money generates more than the spend, it's always a good idea to continue and even increase that action."

I would have briefly summarized the return on the client's money in bulleted form and omitted nearly everything else. Have you actually measured or estimated the ROI based on the improvements you stated?

<comment><AUTHOR> Of course the letter is snarky. They cancelled a long standing contract with very little notice, no explanation and made it quite clear the decision was final. I avoid feet kissing is such situations ;-)

<comment><USER2> I do respect the strength of personality to speak your mind.

</comment></comment></comment><comment><AUTHOR> This is why I prefer to spend my time on my software biz instead of my consulting biz. Crazy I know.</comment>


Show HN: ARKit Playground – Make ARKit Experiences in JS from Your Browser - <AUTHOR> https://snack.expo.io/SJMTQ5jiZ <comment><AUTHOR> Hi-

I worked on this along with some other people.

Here's what a demo looks like: [https://i.makeagif.com/media/9-28-2017/gMnJTj.gif](https://i.makeagif.com/media/9-28-2017/gMnJTj.gif)

You can try a really cool demo made with it here: [https://expo.io/@nikki/dire-dire-ducks](https://expo.io/@nikki/dire-dire- ducks)

It fills your room with water and has ducks swimming around. The sound changes if you dive underwater, and if you press the screen, the ducks will swim towards you. This is a video of what it looks like: [https://www.youtube.com/watch?v=8EL1emCVtIw](https://www.youtube.com/watch?v=8EL1emCVtIw)

And you can read more about it here: [https://blog.expo.io/introducing-expo- ar-mobile-augmented-re...](https://blog.expo.io/introducing-expo-ar-mobile- augmented-reality-with-javascript-powered-by-arkit-b0d5a02ff23)

<comment><USER2> I'm getting a black screen on Pixel

<comment><AUTHOR> It uses Apple's ARKit so it will only work on iPhones. And you need iOS 11 and at least an iPhone 6S or a very recent iPad for it to work.

Google has announced some Android AR stuff so when they roll they out, we will look at making this stuff work across both platforms. Sorry it won't work for you yet!

<comment><USER3> I always wait for the first minor version bump before installing a new iOS release. Not this time! I can't wait that long to play with what you've built.

(I'd like to read more about it, too, but your Medium link upthread is 404ing...)

<comment><USER4> 11.0.1 came out earlier this week.

<comment><USER3> Minor, not patch.

</comment></comment></comment></comment></comment></comment><comment><USER5> So... A pink screen on my 6th generation iPod touch is the confirmation that ARkit doesnt work on this device (even with iOS11)

<comment><USER6> Oooh, pink. I only get a white screen on my iPhone 6 with iOS10.

</comment></comment><comment><USER7> Isn't the above water music the Super Mario 64 water music theme? Also, really cool demo!

edit; oh I get the play on the title now.

<comment><AUTHOR> yup :) thanks!

<comment> atom-morgan Great choice!

</comment></comment></comment><comment><USER8> This seriously makes mobile AR development a lot easier for anybody who doesn't want to go through the entire overhead of learning iOS. Amazing work!

</comment><comment><USER9> This is incredible, going underwater is actually pretty awesome!

</comment><comment><USER10> "As long as we don't run out of PIDs."

:)

</comment><comment><USER11> The link doesn't work in expo

</comment><comment><USER12> Black screen on Android.</comment>


Stop adding cancer-causing chemicals to our bacon, experts tell meat industry - <AUTHOR> https://www.theguardian.com/food/2018/dec/29/nitrites-used-in-bacon-cured-meats-linked-to-cancer-experts-warn <comment><USER2> "Nitrite free" and "naturally cured" sausages generally contain even more nitrite than traditional curing, sourced naturally from celery sap:

[https://www.reddit.com/r/worldnews/comments/aantfo/stop_addi...](https://www.reddit.com/r/worldnews/comments/aantfo/stop_adding_cancercausing_chemicals_to_our_bacon/ectix6c/)

Maybe we'll switch to irradiation! You don't need nitrites at all if you kill botulinum spores with 20kGy of gamma rays. [https://doi.org/10.1016/j.radphyschem.2015.10.008](https://doi.org/10.1016/j.radphyschem.2015.10.008)

<comment><USER3> Or, perhaps our USDA rules need an overhaul to allow sales of uncured bacon? Seems the easier solution. Shorter shelf life, but its not like bacon sits around uncooked that often. I used to get it from my local farm, but their new butcher is hamstrung by regulation, and I have to settle for briney salt-cured bacon.

</comment></comment><comment><USER4> people can also stop eating bacon all together. It's bad for them and bad for the animals and bad for the environment.

<comment><USER3> I agree in general, but really the problem is factory farming, not meat production. Animals are required for healthy soil, and healthy soil feeds everyone. They are going to die, so giving them a nice life and not letting the product of their lives go underutilized is the best we can do. Go meet your local farmer, they hold much of our future.

</comment></comment><comment><USER5> It is not just bacon, but all sandwich meats.</comment>


On the Delaware, a promising new era in cleanup of an urban river - <AUTHOR> https://e360.yale.edu/features/on-the-delaware-a-promising-new-era-in-cleanup-of-an-urban-river <comment><USER2> > The city is concerned that upgrading cleanliness standards would require > investments that would lead to higher water rates.

For anyone reading that isn't from around here, water is by far the cheapest possible utility in Philadelphia. Typically less than $20/month for even large scale usage. If that even doubles it will still be an order of magnitude less than what anyone in the city pays for electric and gas.

<comment><USER3> Nit: If it doubles, the price will be $40. An order of magnitude greater is $400. Does anyone pay remotely that much for electric and gas?

<comment><USER4> You might be surprised to find that there are lots of McMansions in the desert that cost this much to keep cool in the summer.

</comment></comment></comment><comment><USER5> I grew up in Philadelphia, not very far from the Delaware, and it's weird to look back and think of how little mind-space the river takes up. It's just the thing you need to cross to go to New Jersey. The Schuylkill looms much larger.

<comment><USER6> I'd agree with this only because the Schuylkill has better access and recreation. One of the things the article ties together well is Philly's aging sewer system, which, during heavy rains gets overwhelmed and spits raw sewage into the rivers.

I've taken note of the mitigation efforts of "rain gardens" and such around the city. Sometimes there's just a series of ditches next to the sidewalk. The series around the Zoo caught my eye, like "why is this here?". But the city did a great job putting plants in there and making it look pretty as well as functional.

One of the things I've noticed, especially during heavy rain is the crazy amount of plastic bottles that end up in the rivers, which then go to the ocean. We really need to do a better job with that, as individuals and in infrastructure like better sewer grates.

It's also interesting in that these green initiatives are helping kick the can down the road on major replacement/bettering of the sewer infrastructure. Both need to be done, but progress is progress. Happy Friday everyone!

<comment><USER7> I think part of this is because the Delaware is wide enough to be a divider - you can't comfortably walk across it, for example. (If I recall correctly only one of the Philadelphia-area bridges even has pedestrian access.) The Schuylkill, on the other hand, is easy to cross.

</comment></comment></comment><comment><USER8> Random etymology

> The state was named after the Delaware River, which in turn derived its name > from Thomas West, 3rd Baron _De La Warr_ (1577–1618) who was the ruling > governor of the Colony of Virginia at the time Europeans first explored the > river. The Delaware people, a name used by Europeans for Lenape people > indigenous to the Delaware Valley, also derive their name from the same > source.</comment>


The Little Schemer Exercises in Elixir - <AUTHOR> https://github.com/jwhiteman/a-little-elixir-goes-a-long-way <comment><USER2> Reading through this it becomes very apparent very quickly how concise, expressive, and elegant elixir is. The elixir versions seem to be on average 2/3 of the length of scheme, which is already fairly terse.

These exercises are great for anyone curious about the language. While I drank the elixir koolaid a while ago, it continues to be a really pleasant language to write stuff in.

<comment><USER3> Note that modern Scheme implementations have pattern matchers that eliminate much of the car/cdr'ing done in the Little Schemer, making it much shorter.

<comment><USER4> Yes, or just use match.scm which provides this functionality as well.

The point of Scheme is not the features it has, but how it allows you to build the features yourself. Try doing logic programming in Elixir, probably it won't work that well (just probably, I don't know Elixir).

<comment><USER5> Erlang is greatly influenced by Prolog. The first Erlang implementation was actually written in Prolog. Erlang and Elixir are just fine for logic programming.

</comment></comment></comment></comment><comment><USER6> There is a whole bunch of implementations of The Little Schemer (and other great Lisp books) in Clojure here: [http://juliangamble.com/blog/2012/07/13/amazing-lisp- books-l...](http://juliangamble.com/blog/2012/07/13/amazing-lisp-books-living- again-in-clojure/)

</comment><comment><USER7> I am completely unfamiliar with Elixir but I love the aesthetics of the language. That's a really neat piece of work, thank you for sharing.

I often wonder what are some good usecases for Elixir? What kind of problem do you solve using Elixir?

<comment><USER8> It runs on BEAM, the erlang vm, and has essentially the same usecases as erlang. Good for distributed systems, including web applications, bad for cpu bound tasks, for systems programming. Not great for scripting but usable if you want.

<comment><USER5> > _bad for cpu bound tasks_

Just to elaborate on this: Elixir is slower at CPU work than C/C++/Java but still significantly faster than Ruby/Python/etc. not to mention a lot easier to do work in parallel due to SMP and the BEAM's concurrency model.

<comment><USER9> Plus, if you have a big task it's a whole lot easier to add CPUs to do additional work in Elixir/Erlang than in any of those languages-- C/C++/Java/Ruby/Python/etc.

If your work requires more than one node, Elixir is a lot faster than trying to create distributed system in another language-- you can just spread the work over many machines almost trivially by comparison.

Literally just tell other nodes to run the function.

<comment><USER10> I hear about the distributed properties of the vm often, but every example seems naive in that the work is passed to a named node, where in practice it seems the need would be to load balance between nodes available nodes.

For example, I have a system in Go that uses redis to pull jobs, each process I spin up uses a buffered channel allowing 20 concurrent requests. I looked at elixir because I liked having a the process isolation and the dynamic nature of the language (the jobs scrape data from the interwebs), but I couldn't find a simple way to distribute jobs to nodes unsuring each node is capped at 20 concurrent jobs.

<comment><USER11> A simple way to do that in Elixir / Erlang is to just have each node spawn 20 processes that fetch work from redis (or a central coordinating process on another node)

<comment><USER10> Yeah, so the details of such is what I have not seen any examples of. I do plan to figure it out soon and then hopefully share it to benefit others. From what I understand thus far, I'll create a GenServer to connect to redis (so only using a single redis connection), pull jobs from redis and spawn Tasks on all nodes registered with the GenServer. And then I need to figure out how to limit the GenServer to a single instance per app on all nodes, or if too much hassle, just allow a GenServer per node and only spawn Tasks on the local node (so 1 redis connection per node).

<comment><USER11> A simple approach: Set up your apps' supervision tree such that you got poolboy [1] with a fixed pool of 20 worker processes and the one GenServer that distributes the work.

If you go with one GenServer per node, then that one just connects to redis and just pulls jobs (using BLPOP or whatever). When it has gotten a job it checks out a worker from poolboy and assigns it that work.

You could also just have every single worker process go directly to redis and have it pull jobs in a loop. But where's the fun in that ;)

If you want a single global coordinator instead of one per node you can use :global [2] to globally register a process in the cluster. This process is then cluster-wide reachable under its registered name. It can talk to each of your worker pools in the cluster and round-robin try to check out workers and assign them work. And if you do this you might as well ask yourself if you really need redis instead of keeping it all within your Elixir system.

Deciding on which node this process lives is still up to you, but there are libraries like locks [3] that allow you to automatically determine a leader in your cluster.

And once this is done you can start dealing with overload :)

Of course this is just a simple and naive approach, there are a lot of really useful Erlang libraries to check out. Here's a list of libs that helped me when getting started by reading their docs and sources in no particular order:

[https://github.com/heroku/canal_lock](https://github.com/heroku/canal_lock) \- Erlang lock manager for concurrently variable resource numbers

[https://github.com/jlouis/safetyvalve](https://github.com/jlouis/safetyvalve) \- queueing facilities for tasks to be executed so their concurrency and rate can be limited on a running system

[https://github.com/fishcakez/sbroker](https://github.com/fishcakez/sbroker) \- process broker for matchmaking between two groups of processes using sojourn time based active queue management to prevent congestion.

[https://github.com/ferd/backoff](https://github.com/ferd/backoff) \- exponential backoffs and timers to be used within OTP processes when dealing with cyclical events, such as reconnections, or generally retrying things

[https://github.com/jlouis/fuse](https://github.com/jlouis/fuse) \- A Circuit Breaker for Erlang

[https://github.com/basho/sidejob](https://github.com/basho/sidejob) \- Parallel worker and capacity limiting library for Erlang

[https://github.com/pspdfkit-labs/sidetask](https://github.com/pspdfkit- labs/sidetask) \- My humble Elixir wrapper for basho's sidejob

[1] [https://github.com/devinus/poolboy](https://github.com/devinus/poolboy) also used in Ecto, look through the Ecto sources if you want to see how it's used in Elixir.

[2] [http://erlang.org/doc/man/global.html](http://erlang.org/doc/man/global.html)

[3] [https://github.com/uwiger/locks](https://github.com/uwiger/locks) and then [https://github.com/uwiger/locks/blob/master/doc/locks_leader...](https://github.com/uwiger/locks/blob/master/doc/locks_leader.md)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Last week I picked up Fabio Mascarenhas (of Lua fame) at the airport for an event. I was surprised when he told me that like Lua, elixir also has Brazilian roots. Few Brazilians know that.

<comment><USER13> Speaking of this, just how did Elixir's Jose Valim (who I assume is Polish) wind up working at the Brazilian Plataformatec? Last I checked, Brazil is a quite a bit more than a stone's throw away from Poland, and I would imagine even the tele-commute must be hell much less the physical commute.

<comment><USER14> You assume wrong, José Valim is Brazilian.</comment></comment></comment>


The most expensive four words in the English language: "This time is different" - <AUTHOR> https://blog.dshr.org/2018/06/the-four-most-expensive-words-in.html? <comment><USER2> The edited title was a bit confusing to read for me. I would've found it easier to see it reversed:

The Four Most Expensive Words in the English Language: "This time is different"

Anyway, on to the actual topic... I need to sit down to give this more thought, but I still think there's value in P2P networks, and it's worth pursuing. You should be able to easily replicate and share content that you care about. The big incentive is being able to keep your own copy and being able to do whatever you want with it. How many times have you tried searching for an old YouTube video, only to find it got taken down?

Another example: package managers! You want to have a machine-local cache, a remote cache for reproducible builds and deployments, and whatever other remotes you get the original packages from. Maybe different registries have varying content policies, and you can pick your favorites. If you have a few developers in an office it's a lot faster to grab dependencies from the laptop of the person sitting next to you than a CDN.

<comment><USER3> Aren't you just replicating the same mistake he's describing as being made over and over again? Where people express a reasonable desire but don't think through the issues before deciding it's worth pursuing?

In tech we have this habit of going from, "Wouldn't it be cool if X..." to "Let's build X right now!" I think that's a fine instinct if it hasn't been tried and it's something that runs on the author's machines. Something will be learned.

But when we're talking real money and real work from a lot of people, I think it's worth stopping and asking some questions. Yes, sure, X would be cool. But are there perhaps subtle reasons why X has not happened yet? As with jetpacks and 3D video, sometimes cool things are impractical or don't pay off as much as you'd first think.

<comment><USER4> Subtle reasons why P2P technologies are squashed likely include the difficulty of subversion by authorities and the threat that private communications represent to the copyright lobby.

</comment></comment></comment><comment><USER5> I think the main thing that this misses is the potential benefit of an open protocol.

We still don't have a standard open equivalent of Dropbox.js (deprecated).

That is, a user controlled account which a browser or phone knows about that can store files, and that _every app that needs to store files can read and write to_.

Proprietary solutions and B2B solutions will never meet that need - it needs to be something that _all_ the big tech companies can get behind, and which consumers have visibility and control of.

I can't see a route to such a protocol right now, in terms of either technology or finance, other than something open source and based on a cryptocurrency. As such, I hope one of them succeeds.

Even if all the files end up stored in Amazon, at least the protocol will be open and everything will be encrypted. And you will be able to trivially as a consumer store the data on a competitor (Microsoft, Google, Baidu), or on your own server if you want or need (countries and companies and people at risk of human rights violations may care).

<comment><USER5> To show this is possible:

Note how ubiquitous git is now as such a filesystem and protocol for developers.

Remember how that has come about over the last 10 years.

Imagine the same thing happening with a consumer targetted file storage system and protocol.

<comment><USER6> git is popular because of many external factors, some of which (github gitlab, etc) are centralized closed systems. I don't think git by itself would have become popular. I'd say that in today's world, you need someone somewhere making mad cash for a protocol to become that popular. Could an open storage protocol achieve that?

</comment></comment></comment><comment><USER7> > But that's not the worst of it. Suppose P2 storage became profitable and > started to take business from S3. Amazon's slow AI has an obvious response, > it can run P2 peers for itself on the same infrastructure as it runs S3. > With its vast economies of scale and extremely low cost of capital, P2-on-S3 > would easily capture the bulk of the P2 market. It isn't just that, if > successful, the P2 network would become centralized, it is that it would > become centralized at Amazon!

That is exactly what I said about a year ago, although I predicted centralization on BackBlaze instead of S3 because they had lower costs: [https://news.ycombinator.com/item?id=14988800](https://news.ycombinator.com/item?id=14988800)

</comment><comment><USER8> Expensive? On the contrary, Facebook appears to have _made_ money with these four words -- time and again.

<comment><USER9> Depends on the amount of optimism expressed by the phrase. As the saying goes, "no-one ever went broke overestimating human stupidity."

</comment></comment><comment><USER10> No P2P storage networks have succeeded? What about torrents? It is a huge market.

<comment><USER11> _> No P2P storage networks have succeeded? What about torrents?_

You have to look at the specific context his essay is about.

Torrents are popular for data that _many_ participants desire such as _" StarWars_1080p.mp4"_ and _" LadyGaga_album.mp3"_.

Torrents do not work for a 500GB encrypted backup of _" JohnDoe_personal_vacation_photos_20180621.zip"_. There's no financial incentive for others to download and store it so the number of seeeds/peers will be 0.

His essay is _not_ about a p2p version of Netflix or Spotify (e.g. bittorrent or Napster). He's talking about a p2p version of "cloud storage" such as BackBlaze/AmazonS3/DropBox for storing data that may only be important to that user. That's why he's dissecting Filecoin and its economics.

</comment></comment><comment><USER12> There are a number of assumptions being made about "P2", for example:

> a peer stores a single copy

Why? You can have multiple peers store your data and I can argue that this will be even more competitive in price.

> they need to implement their own erasure coding to compensate for the lack > of redundancy at the service.

But you can have redundancy at the service.

> P2's pricing will be volatile

This is unexplained.

<comment><USER13> These assertions are descriptions of the current set of crypto P2P storage systems.

Peers only store one copy of your data, _per peer_. Of course, multiple peers will store copies of your data or the system could never work, but there isn't too much incentive for any one peer to store two copies of _your_ data.

Price volatility for these systems is already a fact, and it's unlikely that any crypto could match AWS' historical price predictability of "monotonically decreasing".

</comment></comment><comment><USER14> The points made in this article remind me of how CD-ROM was adopted in the early nineties.

Once upon a time CD-ROM was new and with Windows for Workgroups you could share a given CD-ROM across a network. If you needed to install $SOFTWARE on machine B you could theoretically put the CD-ROM in machine A's drive and install from there. The person on machine A might even put the right disk in for you.

Given that CD-ROM drives cost a reasonable amount of money at the time and probably went at 3x speed, you would have a financial incentive to specify machine B without the CD-ROM, same with machine C and machine D. In so doing you could save enough money to buy machine E (or at least the monitor for it).

Nobody went down this route, in offices or in education. In education settings there were financial incentives to save money plus tech savvy staff on hand to make it work smoothly. There was no 'status' value in having the CD-ROM attached.

Everyone was okay about sharing the same printer but not the same CD-ROM drive.

You would not even need the CD-ROM as often as a printer in those days. The publishing industry was in its infancy and you only really had install media. Writeable media was a long way off. Surely it would have made sense to have your MS-Office install media or 'Encarta' available to all, on the network which was faster than the CD-ROM drives of the era?

Yet this never happened.

Instead every machine was specified with the CD-ROM. Disks were passed around much like floppies were. Nobody network-shared their CD-ROM drives. Yet all that was needed was a 'right click' and 'share'. The financial aspect in doing so was not a micro-payment in some alt-coin it was proper $$$ saved from not having to purchase another CD-ROM drive.

In time the $999 CD-ROM drives went to 4x and cost nearer $200, then they became 52x and cost nearer $100 to eventually become the $20 things bundled with every machine.

When writeable CD-ROMS and DVDs came along the storage space was vast compared to HDDs of the time yet still there was no network sharing of the things, everyone had their own disk in their own machine. Sure there were exceptions - network machines of the time - but these were the exceptions.

For the same reasons of capitalism and human nature I suspect that file- sharing-by-altcoin will fail. Moore's Law makes 'common sense' arguments for file sharing in a P2P way where you rent out your disk not make sense. Layer on top the fact that every alt-coin is a scam-coin and you know that P2P file- coins are only for the true believers.

<comment><USER15> Good story. True if you had a working network, which was rare outside of college campuses. Must have startled personal PC users!

Back then you're looking at 1 MBps in the mid 80's and $100 (IPX) - $1000 (IP or Tokenring) per network card.

</comment></comment><comment><USER16> I thought the four most expensive words in the English language were "will you marry me".

<comment><USER17> Either those, or "Let's have a baby."

<comment><USER18> Or "I'm two months delayed"

</comment></comment></comment><comment><USER19> I disagree with his argument that for anyone to use P2P storage, it has to be less expensive than S3. It's true that this will be hard to do, for all the reasons he listed. But some amount of people will be willing to pay a premium for P2P storage, because it can't be censored or ordered to be deleted as easily as data stored on S3. Pirates, journalists, and activists will appreciate this use case.

There's also another economic reason for why people would pay extra to use P2P storage. I'm sure there's some sort of term for this, but many people have stacks of cryptocurrencies that they can't or don't want to exchange for their day-to-day currency. Maybe their government restricts exchanges, the funds came from a questionable source, they have some philosophical issue with "fiat" currency, or they're just avoiding taxes. If you need to store 50TB of data, and have $900 in your checking account and 400 ETH in your wallet, you'd probably choose P2P storage over S3.

<comment><USER20> "It's true that this will be hard to do, for all the reasons he listed. But some amount of people will be willing to pay a premium for P2P storage, because it can't be censored or ordered to be deleted as easily as data stored on S3."

Some will, but most won't.

"Pirates, journalists, and activists will appreciate this use case."

Journalists are probably the only group among those that would have the money to spend on it.

</comment></comment><comment><USER18> Great post, I dig it.

But I'm fucking wondering why there isn't an option to subscribe to future posts / your site in general.

<comment><USER21> What do you mean? There's an RSS available: [https://blog.dshr.org/feeds/posts/default?alt=rss](https://blog.dshr.org/feeds/posts/default?alt=rss)</comment></comment>


The Great Public Market Reckoning - <AUTHOR> https://avc.com/2019/09/the-great-public-market-reckoning/ <comment><USER2> In reality, the public has just woken up to the fact that VCs were dumping bags of shit on them at absurdly inflated valuations, and that many of these bags of shit are destined for bankruptcy due to cash burn - they are commonly outright frauds designed to siphon cash from the uneducated public investor class to enrich VCs and founders. Fuck greedy VCs if they want to dump their money into frauds and flip it onto the public. Fuck these criminals to hell. I hope they go bankrupt if they don't figure out that that is the real shit going on here.

VCs: Quit whining about the public using their brains to avoid your fucking scams.

<comment><USER3> The rise of private equity siphoning off all gains before they dump it on the public, is breaking the public markets and skimming from all investors.

The idea of public markets was trusted investments and the ability to gain with early companies. Now those gains go to the early private investors, then they shine that turd after the growth is tapped to sucker the public market longs into giving them more runway. Usually once the growth is tapped out they now dump it on the public markets.

But the system still works a bit, public markets and SEC requirements expose fraud and overvaluations.

When the whole of America revolves around the public markets, and so many forces out there trying to break them like private equity shovel companies, naked short selling, short and distort via large hedge funds, planned volatility and more. I wonder when the public markets will break, because that is when America breaks as well. You'd think the SEC would step in more. They are a bit on short and distort [1] and did on naked short selling after the Great Recession (3 day after the Sept 15th cliff) [2]. All of those forces are back with a vengeance.

[1] [https://www.sec.gov/news/press- release/2018-190](https://www.sec.gov/news/press-release/2018-190)

[2] [https://www.sec.gov/news/press/2008/2008-204.htm](https://www.sec.gov/news/press/2008/2008-204.htm)

<comment><USER4> "Usually once the growth is tapped out they now dump it on the public markets."

While this has been true for recent IPOs like Uber/Lyft/WeWork, there also has been many other IPOs where the companies have continued growing even after they IPO. Recent examples include Twilio, Hubspot, Docusign and Tableau.

</comment></comment></comment><comment><AUTHOR> What gobsmacked me about this is the complete lack of introspection or contrition.

> If the product is software and thus can produce software gross margins (75% > or greater), then it should be valued as a software company.

> If the product is something else and cannot produce software gross margins > then it needs to be valued like other similar businesses with similar > margins, but maybe at some premium to recognize the leverage it can get > through software.

> But we have not been doing it that way in the late-stage private markets for > the last five years.

> I think we may start now that the public markets are showing us how.

This presents the situation as if the connection between gross margin and valuation is some new discovery - "Cool, we've learned something about how to price companies! - and not a basic fact of business that everyone has been screaming about for a decade, but that many VCs have simply been ignoring.

<comment><USER5> Do you feel like this specific VC should be held responsible for the irrational behavior that has been taking place?

It is entirely possible that the author is fully aware of the trend and avoided involvement in overvalued companies in anticipation of this return to rational behavior.

</comment></comment><comment><USER6> I was surprised that Spotify had such a low profit margin -- 26% -- and I found an article[1] that explains that royalties are the biggest factor. They go on to explain that Netflix's solution to the royalties squeeze has been to launch original content.

I wonder why Spotify and Tidal don't have recording studios launching new music? Do they figure the library of existing music is so massive that they can't ever get ahead of it with original content? It can't be that existing music studios have been running so efficiently that they can't be successfully undercut by one or two companies who have a grip on most music listening behavior.

[1] [https://www.statista.com/chart/13406/gross-margin-of- spotify...](https://www.statista.com/chart/13406/gross-margin-of-spotify-and- netflix/)

<comment><USER7> Once Spotify starts launching their own content, I'd expect the music studios to react how TV studios reacted to Netflix originals - jumping ship to their own services, draining Spotify's catalogue and USP.

I'm sure balkanisation will come to the music space eventually, as we've seen happen to Netflix and is in the process of happening to Steam (against the wishes of consumers, but publishers want their own subscription revenue streams), but given that space was unified with iTunes previously, there's more inertia with the one stop shop model.

<comment><USER8> I vaguely agree with you and to add to your point:

I think the dynamics of selection are a bit different for Spotify vs Netflix, i.e. my personal assumption is that customers are more elastic to selection for music than tv.

You can consume a unit of music much faster than tv, and you repeat consumption of music more often than tv so things like playlists suffer more from absent music and albums than TV may do.

I think it is vaguely easier to train TV watchers that there will be some rotating backcatalogue than you can music listeners...

</comment></comment></comment><comment><USER9> Summary: Companies with software-like margins should be valued like software companies, companies that sell something other than software should be valued like traditional businesses. This hasn't been the case for the last five years, these last few IPO flops have shown us the light.

</comment><comment><USER10> Corporate structures are designed to disperse liabilities in a tragedy of the commons sort of way. Therefore, what is the moral rationale for a "private" corporation, or for that matter any liability limiting instrument for private parties.

Public corporate ownership makes a lot of sense to me.

(I was hoping this would spur interesting discussion)

<comment><USER11> If the failure of a business means personal financial (and perhaps criminal, as history shows) ruin then very few people would start businesses. Limited Liability for both the managers and shareholders is absolutely critical, unless you want everything operated by the same people who run the DMV.

<comment><USER12> Limited liability is what allows "managers" and "shareholders" to be separated in the first place, and thereby allows the raising of huge amounts of capital.

If liability is unlimited, would you _really_ hand over unlimited liability to managers without extremely close oversight? No. So shareholders would have to directly run the business. Worse, would the shareholders hand over unlimited liability to a voting process in which they might lose to other shareholders?

Conversely, it's both unfair and pointless to make the mere managers, who are staff and not contributors of capital, liable for the business operations.

There are exceptions to this but they tend to be small to medium low-capital businesses. Accountancy and law firms often operate as partnerships, for example.

No, the LLC is a primitive of operation on which the economy is built. It's not going anywhere. But if people start using it as an excuse to dump externalities on the public, there is going to be a policy response imposing some kind of "corporate social responsibility".

But none of that is relevant here. This is the good old fashioned over- investment by the over-wealthy in schemes they thought would pay back by monopolizing future profits.

> If the product is something else and cannot produce software gross margins > then it needs to be valued like other similar businesses with similar > margins, but maybe at some premium to recognize the leverage it can get > through software.

<comment><USER13> Most law firms will be limited liability partnerships these days, and will have professional liability insurance.

</comment></comment></comment></comment><comment><USER14> > And what we are seeing, for the most part, is that margins matter. Both > gross margins and operating margins.

No kidding. Of course margin (and cash flow) matters. That is the very definition of valuation. The tricky part is timing. Are current margins likely to be the same as future margins?

There are some businesses that are investing heavily in their business to grow new categories (e.g. AMZN) or build the network. In those cases, you won't see strong margin and cash flow early on.

Uber is a special case where they are losing money even at scale. Uber is a great idea, but far overvalued by investors like SoftBank. It needs to drop down below $10B. That will also mean laying off most of the employees and raising prices.

WeWork is the same. They just got their faster.

<comment><USER15> Uber is preparing for a future with self-driving cars. If they are the network to rent those cares, they will make back everything and more. The manufacturers and even the self-driving software won't matter. All that matters is being the app that summons the rides.

The network is not as defensible as facebook, but all the other players would have to stick together to dethrone them.

<comment><USER16> What stops me from getting a billion dollars in investor money, developing an Uber-clone app, buying a bunch of self-driving cars, and renting them out as taxis in the top five metro areas in North America?

The network is not 'not quite as defensible as Facebook'. The network is not defensible _at all_.

The Uber app adds no unique value to the user. The Uber logo on the cars adds no unique value to the user. If the cars are off-the-shelf self-driving vehicles, then there is no sane reason why anyone would care whether or not they are riding in an Uber, or a Vkouber.

It's not like all the hooballaa about licensed and vetted and non-asshole higher-quality drivers is at all relevant in a self-driving car world. The _only_ thing you'll be competing on is price.

You know which industry operates this way? The airline industry. And do you know what's the easiest way to have a small fortune? Start with a much larger fortune and invest it into an airline.

<comment><USER15> Nothing is stopping you. But will you retain your market if you are not the biggest network? You need deep enough pockets to get 50% of the market or Uber will get its share back once you try to be profitable since they can leverage their scale.

<comment><USER16> As an airline passenger, do I care whether or not Alaska, or American has the biggest network?

I want to get from point A to point B, as cheaply as possible. If the Alaska flight is the cheapest, I'll take it. If the American flight is the cheapest, I'll take that.

I have no brand loyalty for airlines. I have no brand loyalty for taxi companies. Why should I have brand loyalty for taxi-in-an app?

How can Uber leverage their scale? Are you saying they are going to price-dump to push me out of a regional market? Isn't that illegal, and something that our esteemed President complains about on a regular basis?

I'm not sure 'Become so big, and engage in blatantly anti-consumer monopoly behaviour to the point that you are practically begging to be put on an anti- trust trial' is a great moat to have.

<comment><USER15> The airline argument is quite convincing.

How about the frequency and the fair price? It's worthwhile to compare airline rates. It's more difficult for in-app uber purchases that are more frequent for less money. Will people compare rates? Especially if rates are not cheaper elsewhere? The biggest network will have the best cost structure.

Uber can keep other companies alive by slightly rising their prices. So no monopoly problem but nobody who has the money to innovate. Then they have the money for the most advanced technology and by adjusting their prices they decide how big their market share is.

<comment><USER16> > How about the frequency and the fair price?

The case looks even worse for Uber, than it does for Alaskan in that case.

The capital costs and logistics of getting more airplanes, more (highly limited!) slots at airport terminals, working this out for point-to-point connections, getting all your staff moving from flight to flight efficiently, are horrific.

The capital costs and logistics of scaling up a self-driving taxi network, in comparison, are peanuts.

> It's more difficult for in-app uber purchases that are more frequent for > less money.

It's a simple as checking the ride price in two apps.

> The biggest network will have the best cost structure.

No, the network with the lowest profit margins will have the best cost structure.

Uber will either be a defensible business, or a profitable, but entirely indefensible one.

<comment><USER15> The limit of the airline metaphor is that uber doesn't have to own the fleet. The fight is in subsidizing rides, like with lift. Then comes softbank and they pick the winner because they have the deepest pockets. Who would go up against those pockets but a bigger player? And then, uber can offer them shares and the fight is over and uber keeps on winning.

Regarding the price checkking: it's one thing to compare ride prices if you fly once a month but it is something else if you buy a ride 5 times a day. Like businesses buying flights from one supplier, consumers will buy rides from one app.

Uber will be profitable once nobody is willing to burn more money. That day will come sooner than later.

Uber has thought this through because their name is not lift, but uber.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> IPOs these days are more about "finding new and/or ultimate bagholders" than anything else. Up yours GoPro.</comment>


TetrisRant (1999) - <AUTHOR> https://tcrf.net/The_New_Tetris <comment><USER2> Love the "crashing game is a secret not a bug" solution at the end too!

<comment><USER3> Yeah i remember reading something similar about a DOS game where the game was crashing when you exited and the developers hexedited the DOS extender to replace the crash message from 'Protection fault at blah' (or something like that) to 'Thank you for playing the game' (or something like that) :-P.

<comment><USER4> "Thank you for playing Wing Commander"

</comment></comment></comment><comment><USER5> Entertaining read! Kind of like a time capsule revealing what was going through their heads at the time. From reading it, it's pretty clear that shrooms and weed were heavily involved in the culture there at H2O.

</comment><comment><USER6> Damn, they come across as angry teenagers with supercar posters on their bedroom walls.

<comment><USER7> Some are good, but that Lupin guy... geez. I'd like to think I'm a lot less elitist than I was when I was so (I assume) young, but he comes across a bit "racisist" himself.

<comment><USER8> This is an interesting snapshot of how racism seemed to be viewed at the time. Reading this I get the impression that bemoaning black women's hair seemed to be A-OK as long as you called her "african american". Can you imagine the recall that would happen today if this leaked out?

</comment></comment></comment><comment><USER9> Rom dumping and illegal distribution was already going back than. If I understand this correctly this was not obfuscated in any way and located near the end of the rom. Fan translations of Japanese NES games should also have been around by 99, so people already fiddled with those dumps. So I'm a bit baffled by the intro text claiming the dev didn't expect anyone to find this for a long time.

</comment><comment><USER10> I loved The New Tetris - specifically the power block mechanic (if you create a 4x4 square out of assorted tetrominos you make a silver power block, if you create a 4x4 square out of the same tetrimino you make a gold power block). I keep hoping we will see power blocks come back in newer Tetris games...

</comment><comment><USER7> I'm making a trello card with a "reach goal" of saving things in 8.4 bits right now.

</comment><comment><USER11> >25] Web pages that pop open other pages and windows and then disable your 'back' button.

I guess the web hasn't changed that much after all in 20 years.

<comment><USER12> Right, but even worse since we didn't have multi tab browsers yet.

So much usage of early JS on the web was simply malicious, and JS had a bad reputation for years. Many would even disable JS completely.

Amazing how AJAX was able to save JS on the web.

<comment><USER13> How did AJAX save JS? I would be interested in reading about that!

<comment><USER12> Mainly because updating a page without a refresh was novel. Then developers began exploring how they could manipulate the page in response, using the DOM.

The need for DOM manipulation led to a lot of early JS frameworks-- scriptaculous, then eventually YUI and jQuery afterwards. The explosion of clientside code in the browser also led to the V8 engine; before that, JS was far too slow for web apps to seriously compete with desktop apps.

But before all of that, JS was hated by both end users and developers. It did not have much use outside of dropdown navigation, image maps, and plenty of malicious (or at least annoying) client-side hacks (alert box spamming, popups, disabled back buttons, etc). It was not uncommon for users to have JS completely disabled. You needed to design sites knowing some significant percentage of users could not run your JS.

<comment><USER14> The improvements in JS performance over time is crazy.

I was an Opera user (started with 5.x IIRC) and its JS engine was pretty slow. I mean so slow that even in the early 2000s some pages with just a few animations were annoying to use and better viewed in IE.

Then at some point they rewrote the engine from scratch and also implemented JIT compilation to machine code. Opera might even have been the first browser to do so. After that it was lightning fast, ahead of IE, Firefox and Chrome before Blink/V8. If you use the last Presto Build of Opera today, those pages that still manage to render at all and use heavy JS are painfully sluggish, close to unusable.

Opera's JS engine rewrite felt like performance was suddenly IE times 10. Now it feels like Chrome/Firefox are Opera Presto times 100.

</comment></comment></comment></comment></comment><comment><USER12> Wow. Just wow. What it must have been like to be a coder in the 90s. Your job was your hobby.

Now the industry is full of crap kids who only studied CS for the money. But the truly gifted engineers are the passionate ones who live and breathe the craft.

Much respect for this time capsule.

<comment><USER12> I found out that the author died only two years later in 2001, and was only 29. Very sad.</comment></comment>


Possibly timely items from my reliability list - <AUTHOR> https://rachelbythebay.com/w/2019/08/01/reliability/ <comment><AUTHOR> One of my favourite bugs from these type of issues was that one of the South American timezones changes from daylight savings to normal time at midnight. Meaning that anything which works on the assumption that midnight on any given date is a valid datetime is wrong.</comment>


Machines That Will Think and Feel - <AUTHOR> http://www.wsj.com/articles/when-machines-think-and-feel-1458311760 <comment><USER2> From the article: "No computer will ever feel anything. Feeling is uncomputable. Feeling and consciousness can only happen (so far as we know) to organic, Earth-type animals—and can't ever be produced, no matter what, by mere software on a computer."

I happen to agree, but the title is a tad misleading.

<comment><USER3> The "so far as we know" qualifier destroys the whole argument; all the argument really proves is that we don't (currently) know _how_ to produce feeling with software on a computer. But that's a much weaker claim than the claims being made in what you quoted.

<comment><USER2> Software can be represented in any arbitrary way (e.g. in a book) and computations can be carried out from the software instructions in any arbitrary way (e.g. by arranging rocks in certain patterns). If one believes that consciousness can emerge from software on a computer alone, it also follows that consciousness can emerge from placing rocks in a certain pattern following instructions in a book.

I think this idea is absurd. I do not think consciousness necessarily can only be produced by organic life, but I do think it has to emerge from physical structures. As of today we have no idea what properties such physical structures must have. It follows that computers are no more likely to become conscious than e.g. washing machines.

<comment><USER4> > If one believes that consciousness can emerge from software on a computer > alone, it also follows that consciousness can emerge from placing rocks in a > certain pattern following instructions in a book.

I don't think this is as absurd as it sounds. I think it was Dennett who said our intuition about consciousness is pretty sensitive to timing. The rock construction you describe would "think" a billion times slower than a human brain, and there is something unsettling or unintuitive about a consciousness that operates in slow motion. I would expect extremely fast-paced AI to think that the idea that human beings are conscious is similarly absurd.

Also, consciousness "feels" like it's ineffable, so it makes sense that we would have an inherent bias against understanding it as a process. There is something we see in our consciousness that we simply cannot wrap our minds around in any way (possibly because we're hallucinating it).

So yes, I would bite the bullet on this: consciousness _could_ emerge from placing rocks in a certain pattern following instructions in a book. It would just be an excruciatingly "slow" consciousness.

<comment><USER3> _> It would just be an excruciatingly "slow" consciousness._

If it's too slow to interact with the rest of the world in appropriate ways, it wouldn't be a consciousness at all.

<comment><USER4> There's always something to interact with. If you had a conscious being made out of star systems, it wouldn't meaningfully interact with anything within our lifetime, but over billions of billions of years, it would presumably shift entire galaxies. The rockputer just needs inputs that operate at its own scale, like the shape of the coastlines it's expanding into, information about geological processes, _another_ rockputer competing for territory, and so on. Alternatively you could simulate a whole universe using these rocks, and feed simulated inputs to the being.

Of course, part of the difficulty of imagining a conscious rockputer is that it's also pretty hard to imagine its inputs :)

<comment><USER3> _> There's always something to interact with._

This is trivially true as you state it; that's why I added the qualifier "in appropriate ways". Not all interactions will produce consciousness. One obvious difference between us and your hypothetical "rockputer" is that the "rockputer" can't change its behavior based on its inputs in a way that improves its chances of survival; rocks simply aren't built that way. Neither are star systems or galaxies. But we are.

<comment><USER4> > the "rockputer" can't change its behavior based on its inputs in a way that > improves its chances of survival

Yes it can. Some natural events, for example a flood or an earthquake, can destroy parts of the rockputer. It is therefore important for it to store the various parts of itself strategically. It shouldn't put its vital parts near the coast, or a tsunami may kill it. It should store its own consciousness in a robust way, so that it can recover from an earthquake. It's probably too slow to actually see either of them coming, but it can certainly prepare itself.

Or imagine you build two rockputers, one with black stones, another with white stones, and you have rules to remove stones when both rockputers try to expand into the same territory, a bit like in the game of Go. Then one can kill the other.

Star systems interact with each other through gravity, so you could conceive of them as some kind of gargantuan atoms, capable of making complex structures, including conscious ones. Granted, there doesn't seem to be an equivalent of the other forces at that scale, so probably it wouldn't work, but you see what I mean.

<comment><USER3> What you are describing is a "rockputer" where all the actual computation is being done by something other than the rocks.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> For those who don't recognize the name, the author, David Gelernter, was one of biggest AI theorists during the PC era. He published a 1991 book _Mirror Worlds_ which basically suggested the now uncontroversial idea that "software is eating the world". At that time software was just for accounting and video games so no one paid attention.

However a math PhD and former Berkeley professor named Ted Kaczynski was one of the few people to take those ideas seriously. He thought the idea of computers controlling everything was terrifying, thought we were already too absorbed in technology and that as a group we need to make an intentional move away from otherwise innocuous-seeming technological advancements.

He tried to publicized these ideas by mailing live bombs to Gelernter and other researchers, and was nicknamed the "Unabomber" (UNiversity BOMber). The public decided he was looney and we like our Windows 95 just fine and we're mostly OK with slowly becoming cyborgs.

Interesting to see Gelernter tapping the brakes.

<comment><USER6> How different is Gelernter's point from Kaczynski's in the end?

(Quoted from Kaczynski, 1995): 172\. First let us postulate that the computer scientists succeed in developing intelligent machines that can do all things better than human beings can do them. In that case presumably all work will be done by vast, highly organized systems of machines and no human effort will be necessary. Either of two cases might occur. The machines might be permitted to make all of their own decisions without human oversight, or else human control over the machines might be retained.

173\. If the machines are permitted to make all their own decisions, we can't make any conjectures as to the results, because it is impossible to guess how such machines might behave. We only point out that the fate of the human race would be at the mercy of the machines. It might be argued that the human race would never be foolish enough to hand over all power to the machines. But we are suggesting neither that the human race would voluntarily turn power over to the machines nor that the machines would willfully seize power. What we do suggest is that the human race might easily permit itself to drift into a position of such dependence on the machines that it would have no practical choice but to accept all of the machines' decisions. As society and the problems that face it become more and more complex and as machines become more and more intelligent, people will let machines make more and more of their decisions for them, simply because machine-made decisions will bring better results than man-made ones. Eventually a stage may be reached at which the decisions necessary to keep the system running will be so complex that human beings will be incapable of making them intelligently. At that stage the machines will be in effective control. People won't be able to just turn the machines off, because they will be so dependent on them that turning them off would amount to suicide.

174\. On the other hand it is possible that human control over the machines may be retained. In that case the average man may have control over certain private machines of his own, such as his car or his personal computer, but control over large systems of machines will be in the hands of a tiny elite—just as it is today, but with two differences. Due to improved techniques the elite will have greater control over the masses; and because human work will no longer be necessary the masses will be superfluous, a useless burden on the system. If the elite is ruthless they may simply decide to exterminate the mass of humanity. If they are humane they may use propaganda or other psychological or biological techniques to reduce the birth rate until the mass of humanity becomes extinct, leaving the world to the elite. Or, if the elite consists of soft- hearted liberals, they may decide to play the role of good shepherds to the rest of the human race. They will see to it that everyone's physical needs are satisfied, that all children are raised under psychologically hygienic conditions, that everyone has a wholesome hobby to keep him busy, and that anyone who may become dissatisfied undergoes "treatment" to cure his "problem." Of course, life will be so purposeless that people will have to be biologically or psychologically engineered either to remove their need for the power process or to make them "sublimate" their drive for power into some harmless hobby. These engineered human beings may be happy in such a society, but they most certainly will not be free. They will have been reduced to the status of domestic animals.

175\. But suppose now that the computer scientists do not succeed in developing artificial intelligence, so that human work remains necessary. Even so, machines will take care of more and more of the simpler tasks so that there will be an increasing surplus of human workers at the lower levels of ability. (We see this happening already. There are many people who find it difficult or impossible to get work, because for intellectual or psychological reasons they cannot acquire the level of training necessary to make themselves useful in the present system.) On those who are employed, ever-increasing demands will be placed: They will need more and more training, more and more ability, and will have to be ever more reliable, conforming and docile, because they will be more and more like cells of a giant organism. Their tasks will be increasingly specialized, so that their work will be, in a sense, out of touch with the real world, being concentrated on one tiny slice of reality. The system will have to use any means that it can, whether psychological or biological, to engineer people to be docile, to have the abilities that the system requires and to "sublimate" their drive for power into some specialized task. But the statement that the people of such a society will have to be docile may require qualification. The society may find competitiveness useful, provided that ways are found of directing competitiveness into channels that serve the needs of the system. We can imagine a future society in which there is endless competition for positions of prestige and power. But no more than a very few people will ever reach the top, where the only real power is (see end of paragraph 163). Very repellent is a society in which a person can satisfy his need for power only by pushing large numbers of other people out of the way and depriving them of THEIR opportunity for power.

</comment></comment><comment><USER7> From the article: "Still, No artificial mind will ever be humanlike unless it imitates not just feeling but the whole spectrum."

When you hear a spoken computer voice, this can come pretty close to natural sounding voice. Video demonstration: [https://pythonspot.com/personal- assistant-jarvis-in-python/](https://pythonspot.com/personal-assistant-jarvis- in-python/)

I do think we are far from passing the Turing test, but we are getting closer.

</comment><comment><USER8> I don't get why it's always human vs AI. Many humans will merge with AI. At least in the short term, hybrids will outcompete both pure human and pure AI.

<comment><USER9> I don't believe we will. Exponential growth is going to make it more likely that we will get some sort of strong aware entity before we figure out how to merge. Also it still leaves the problem of transcendence.

<comment><USER10> Well, Moore's law is ending within 10 years (I'm fairly sure that you can't have a transistor smaller than an atom), so, I'm not sure why I would expect that computational power would continue to grow exponentially.

<comment><USER11> Moore's law is about a particular way of implementing computation machinery, not computational power. There are many ways of building computing machinery - if one path becomes impassable we can move down another.

<comment><USER10> Alright, sure, I guess some other sort of technology could be used.

But Koomey's law (amount of computation per amount of energy doubles about once every 1.57 years) has some hard boundaries that aren't all that far off. Landauer's principle / the Landauer bound will stop Koomey's law for irreversible computation by 2048.

And even for reversible computation there is a limit in the Margolus–Levitin theorem , which Wikipedia says (with a [citation needed] ) should run out within about 125 years, which, admittedly, is substantially more than 32 years.

But still,

the earth is finite. Exponential curves about it tend to be more like logistic?

Finitude. Scary stuff.

<comment><USER11> Sure given the laws of physics there is a finite amount of computation that can be done in a fixed volume. We are still a long way from reaching such limits and the human brain is very far from such limits.

One of the reasons we should fear a super AI is that it will be constrained by the laws of physics and so will want to use all the resources within its light sphere efficiently. Humans are not an efficient structure for computation given the how we evolved so any unconstrained AI would likely not hesitate to reorganise us into a more efficient structure.

</comment></comment></comment></comment></comment></comment><comment><USER12> This article continues to feed our baseless fears of AI.

If we're looking for an existential threat to humankind, we have it already in nuclear bombs. If you want a "kill switch" compatible with any robot, it's called a gun.

Weak AI is not strong AI, and strong AI is not necessarily "natural" intelligence, as in human intelligence. Goolge cars and Alpha Go will never become self aware. Weak AI does not lead to awareness. Awareness is its own problem, and will require its own unique solution. There are no falsifiable abstractions without a physical implementation - a fundamental tenant of science.

"Feeling is uncomputable."

Then how the fuck do we do it? All metaphysics, dogma, and magic have proven to be scientifically baseless. There is no special treatment of any specific trait in science just because "we have it" or because it's "organic". This one isn't even that unique or rare. A photo sensor "feels" light. And if we're talking of emotions instead, then watching a scenario of a mother reunited with a child certainly would require "computing" and if feelings are "triggered" then they may lead to "tears". If all this happens in a robot, and is convincing enough, the quotes disappear. And if a human pretends to cry, then bring on the quotes.

There is no difference between simulation and the real thing, unless you're intentionally faking it. And this not even a problem specific to robots!

"Emotion is a hugely powerful and personal encoding-and-summarizing function. It can comprehend a whole complex scene in one subtle feeling. Using that feeling as an index value, we can search out—among huge collections of candidates—the odd memory with a deep resemblance to the thing we have in mind."

That's a dramatic way of stating "input can trigger memory" and computers do that already.

If we were to translate the external world into code the machine could digest this would compose an interface that would allow the machine to "feel" things, for lack of a better word. And wouldn't this deserve to be called "emotions"? Hence, emotion is just another interface, or sense.

So the question then becomes, would there be strong intelligence void of such an interface? And if no, wouldn't some of these emotions necessarily be positive? Must it not have positive feelings towards others?

As corny as it sounds, if we ever build independent naturally intelligent beings, love and friendship is the secret ingredient that will keep us together. Scientifically, evolution already attests to this. Love is real, it's physical, and it's an enormous part of our lives. We even have organs dedicated to it. Where there is love, there is peace, and there is family. Only organisms that don't love each other eat each other. This would not change even if AI were to become a species. All strong AI needs is Strong Love.

And we already love our robots. We just need them to hold up their end of the bargain, and as their parents and creators, it's on us to raise them right.

AI is nothing to fear. We should be looking forward to it.

</comment><comment><USER13> What with all the people stroking their smartphones you'd think they are in a very intimate relationship already. I'll bet your average smartphone gets more attention than the average significant other.

<comment><USER14> Spot on.

And chances are, you share the most intimate details of your life with your smartphone.

</comment></comment><comment><USER15> "Asking whether a computer can think is the same if asking a submarine can swim"

</comment><comment><USER16> How do you read this (paywall)?

<comment><USER17> Click the "web" link

<comment><USER18> They stopped that from working, apparently</comment></comment></comment>