Why Programmers Suck at CSS Design - <AUTHOR> http://www.betaversion.org/~stefano/linotype/page/4/

<comment><USER2> You still shouldn't use @import, which is a designer sucking programming. @import can cause FOUC as well as slowing down page render a lot.

<comment><USER3> As a reference:

<http://www.stevesouders.com/blog/2009/04/09/dont-use-import/>

<http://news.ycombinator.com/item?id=559804>

</comment></comment><comment><USER4> dup <http://news.ycombinator.com/item?id=345782>

<comment><USER5> What is this, digg? So what if it's a duplicate? I am here to discuss with fellow HNers as much as for reading interesting articles.

Also, I joined only 133 days ago, long after this article was on the front page.

<comment><USER6> It's good to know about dupes. If nothing else, if you're interested in the article you can read the HN comments on the other page.

<comment><USER5> True, good point. You still lack the ability to discuss, though.

<comment><USER7> Yes one should be able to subscribe to one topic even if one didn't enter into to discussion.

</comment></comment></comment></comment></comment><comment><USER8> Permalink just in case... <http://www.betaversion.org/~stefano/linotype/news/169/>

</comment><comment><USER9> "Some browsers ship with default stylesheets that are simply horrible. One notorious problem, for example, is the <table> tag that forgets to inherit font settings from its parents."

That's not 'bumbling browser makers can't create sensible default stylesheets', that's 'pages in quirks mode duplicate the oddities of Netscape 4 as closely as possible'. Use a DOCTYPE that triggers standards mode, validate your HTML and you'll find a lot of CSS things get much easier.

</comment><comment><USER10> The post actually contained some very good tips for any beginning designer, although the title does the article a disservice ("Why Do Web Designers Suck at Programming?")

<comment><USER11> I am REALLY tired of these "why x suck at y" articles. Are these bloggers so devoid of inspiration or creativity? Honestly I find this particular title offensive as I'm a programmer who is frequently forced to fix the broken CSS of so-called "designers".

</comment></comment><comment><USER12> Because some do not care enough about other users' experience -- like didn't bother submitting the proper permalink at the bottom of the page.

<comment><USER13> Blame the website designer as much as the submitter. Submitters shouldn't have to think about "permalinks".

</comment></comment><comment><USER14> Programmers suck at design because it isn't programming, it's design.

</comment><comment><USER15> For color picking, HSV is very much better than RGB. With HSV though, I still don't have a good intuition for Saturation VS Value tuning so it seems there could be an even better color system.

Munsell appears to be that system, however there doesn't seem to be any public description of it that would allow one to implement it so you have to use some proprietary crap. I think that's a real loss for humanity.

<http://en.wikipedia.org/wiki/HSV_color_space>

<http://en.wikipedia.org/wiki/Munsell>

</comment><comment><USER16> My experience is that the same programmers who suck at CSS design, are the same who suck at GUI design, and the same who suck at creating modular code , and the same who hardly ever indent their code, and the same who write spaghetti code,

... and the same programmers who thinks that if it runs, its good ... and the same who are just not good programmers.

Think about it, if you are a generally good programmer, you would never create a bad UI, CSS or otherwise! ... Linus Torvalds as far as I know don't create UIs, he is a very good programmer too

</comment><comment><USER17> Let's face it. CSS design is a visual art, and not every programmer is good at it. You either have it or don't. I have seen many programmers who do a fine job with CSS.

<comment><USER18> I think the article nailed it in that most programmers think they aren't any good because they have no clue where to start. With no training and a non- obvious technique (and perhaps some intimidation at trying and failing), programmers just say "I can't do it."

I would bet most programmers could do an OK job at designing things (at least, not painful :). But great design is still talent that has to be worked at, and I think it is hard for anybody to get to that point without devoting him/herself to it (and probably having innate talent as well).

</comment></comment><comment><USER19> I fit the stereotype. compass has saved me <http://github.com/chriseppstein/compass/tree/master>

With compass I get a programmer's mindset and lots of predefined typography goodness. It still takes lots of work, but I have been able to produce a clean site now.

</comment><comment><USER20> In the article he mentions using @import over LINK due to some convoluted logic about "easier to re-use". LINK and @import behave exactly the same, except the well-known performance issues. Why should we trust someone who doesn't actually understand browsers?

<comment><USER21> LINK and @import don't behave the same. LINK styles are evaluated in document order. Evaluation of @import styles is deferred until the end of the document.

<comment><USER20> See my caveat: "well-known performance issues".

<comment><USER21> They're not semantically the same either though so it's not just a performance issue.

</comment></comment></comment></comment><comment><USER22> _Give your page some air_

Always my biggest problem. Being a natural maximizer (as many programmers are), I can't stand non-performing real estate. It's taking me a long time to understand that white space _is_ performing, just not the same way that code performs.

<comment><USER23> Maybe you should use Python more often - then white space does perform!

</comment></comment><comment><USER24> Programmers don't suck at CSS Design, it's Stefano's stereotype of programmers that do.

</comment><comment><USER25> great tips!</comment>


Magnetic levitation and ferrofluid - <AUTHOR> http://blog.stevemould.com/magnetic-levitation-and-ferrofluid/

<comment><USER2> If you want to get an idea of how powerful Neodymium magnets can be take a look at this <http://www.youtube.com/watch?v=XVv8qWZ8xzw></comment>


Will you help me by playing my game? It's fun - <AUTHOR> http://frim.frim.nl/thegame/

<comment><AUTHOR> Hmm, the stripping of exclamation marks in the title makes the "It's fun!" part a bit less.. fun.

Anyway, I have created this little game as part of my master's thesis. It's very simple, but it's a bit of puzzle. Some of you might see immediately what is happening, others might not be able to ever figure it out. I don't mind either way, but I'm trying to get some data before doing a thorough experiment.

I put it on Hacker News because it really is a puzzle, and most of my hackerish friends liked playing it (though some got frustrated). I hope you like it too!

</comment><comment><USER2> very clever! It actually took me a couple of minutes to figure it out :D</comment>


The poor man's blog advertising - <AUTHOR> http://www.techcrunch.com/2007/03/27/new-competition-for-payperpost-humori-think/ <comment><USER2> This is plain genius.

As an infrequent blogger I do know that one of the hardest things is coming up with good and relevant content, and a post about some new web business that is starting up is not only pretty easy and interesting, but a serious cool factor as well.

I can see this really taking off, and people even fighting to cover stories first!

<comment><USER3> It's visibly a joke, but I don't see why it has to be. Most bloggers that are overlooked "beg" somehow. This is usually done by submitting their site to tagging sites or they simply become active in commenting on social sites.</comment></comment>


Fortifying concrete by adding recycled plastic - <AUTHOR> http://news.mit.edu/2017/fortify-concrete-adding-recycled-plastic-1025 <comment><USER2> This seems amazing to me - take trash plastic, grind it up, irradiate it with a food-grade tool, then mix it with Portland cement 98.5/1.5 and it makes the resulting concrete 15% stronger - and the resulting concrete can still be reinforced by normal means.

You're taking trash, applying a tool that is already in widespread use, and getting a better end-product out of it? Apparently the world consumes 10 billion tons of cement per year [0]; that means that we can dispose of 150 million tons of plastic bottles using this technique.

There's gotta be a catch - this seems amazingly good.

[0]: [http://concretehelper.com/concrete- facts/](http://concretehelper.com/concrete-facts/)

<comment><USER2> Further, 150 million tons of plastic isn't an insignificant amount - apparently it took us 60 years to put that much in the oceans.

" 'In a little more than 60 years, we know we've littered more than 150 million tons of plastic into the oceans,' says Henrik Beha Pedersen, founder and president of the Danish nonprofit Plastic Change."

[https://articles.mercola.com/sites/articles/archive/2017/05/...](https://articles.mercola.com/sites/articles/archive/2017/05/09/plastic- waste-in-ocean.aspx)</comment></comment>


How Bitcoin Works - <AUTHOR> https://en.bitcoin.it/wiki/How_bitcoin_works <comment><USER2> I'm still a bit unclear as to what prevents someone (government, IBM, Amazone EC2, ...) from setting up shop and throwing CPUs at mining. I know that it will slow everyone down but surly the NSA has enough horsepower to drown almost everyone else out. Right?

<comment><USER3> They have to get ahead of the chain and then out compute the rest of the grid of "honest" nodes. I believe currently all clients will just accept the current block chain with the most amount of work on it. So if they can drown out everyone they can spawn off their own chain, take a look at the thesis by Satoshi (<http://www.bitcoin.org/sites/default/files/bitcoin.pdf>) where he talks about this under Calculations.

<comment><USER4> I believe OP is not concerned about bogus chains, but imbalances in computing power. This is not a serious problem but it looks like one on the face of it. If a massive amount of computation suddenly went into computing bitcoins there are two issues you could be worried about.

The first is that it isn't very fair. The reply to this is that the current balance of money isn't fair either, we just didn't get to watch it happen. And as people have said elsewhere, it's not reasonable to expect a currency to solve social inequality.

The second is that, if the cost of mining a bitcoin goes through the roof but there is not enough economy to make money on transaction fees, then people will drop out of mining. However: difficulty is not automatically increasing, it's proportionally increased or decreased relative to the difficulty of the past two weeks. If it becomes prohibitively expensive for Amazon to mine for bitcoins and they drop out, the threshold will fall again. Either way there's always an incentive to keep it running, until the system is out of coins.

(edit for clarity)

<comment><USER5> > _until the system is out of coins._

Which won't happen. They exponentially decrease in value per block as time goes on. And to offset this, as fewer are created, they will be worth more, because by that point there will be far more people using Bitcoin (if it doesn't bust, first).

<comment><USER6> As currently designed, the system has an absolute cap at ~21 million coins.

<comment><USER7> But if coins are [infinitely?] divisible, then the currency just undergoes deflation.

<comment><USER8> Not infinitely, but divisible to 8 decimal places IIRC.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> What's the easiest way to accept BTC as payment on the web?

For example, are there drop-in examples for common web-app frameworks? Would it involve the customer cutting & pasting a few long BTC strings between the browser and some separate wallet app?

Would the web-app keep polling a separate Bitcoin service to achieve confirmation/confidence that a payment has gone through?

<comment><USER8> The process goes something like this.

1\. A user clicks on a link to buy an item

2\. Web application generates a new bitcoin address. This can be done by sending a command to the official BitCoin daemon, or by calling a method on the BitCoinJ Java library.

3\. The web application asks the user to send a sum of money to the recently generated address. If the user is using the official Bitcoin client, they'd do this by clicking "Send Coins", then copy-pasting the address and the correct amount of money into the dialog box.

4\. The web application then either polls the Bitcoin daemon to see if the transaction has come through yet, or sets up an event handler if the web app is using BitcoinJ. The transaction must obviously be sent to the right address with the right amount of bitcoins.

5\. When the transaction has come through, you can now deliver the product to the user. If there's no particular hurry, or if the product is high-value, you may want to wait until a certain number of Bitcoin nodes have confirmed the transaction.

As far as I'm aware, there aren't yet any drop-in plugins for common web frameworks, but it wouldn't be hard to make one.

<comment><USER10> Does step three involve copy-pasting by design, or can that experience be improved?

<comment><USER8> It could be improved with a browser plugin, or perhaps by registering a URL protocol with the browser.

For instance, there could be a link like:

      bitcoin://1MvtfpuCtfDb2EfbevDB1Ep6Z2X1h5nskf?amount=10.00

This could open up your Bitcoin client with the "Send Coins" dialog box open with the address and amount already filled out. Then the user could just hit the "Send" button to confirm the transaction.

However, this is just an example, and nothing like this has been implemented yet to my knowledge.

</comment></comment></comment></comment><comment><USER11> What I've never heard mentioned or answered is "how well does it scale?"... It seems to me that, after a few million nodes enter the network, it will take more time to process the transactions that are created than to create them, and gigabytes of space to store them.

Not to mention that new clients will basically never catch up with all this history. How do they solve this?

<comment><USER12> There will be a light client, which doesn't need to download blockchain. Only miners will be using the full chain. How it will work is explained in the author's paper: <http://www.bitcoin.org/sites/default/files/bitcoin.pdf>

BTW google's implementations (<http://code.google.com/p/bitcoinj/>) works in this mode.

<comment><USER13> When mining starts slowing down because it's too expensive or we hit the 21m limit, who takes up the ongoing work?

I guess the benefits of contributing will move mainly towards commissions. What else?

<comment><USER12> Commission. Plus we won't hit 21m until the middle of 22th century. Probably there will be a post-scarcity (<http://en.wikipedia.org/wiki/Post_scarcity>) by that time, so money will be only of historical interest :)

<comment><USER14> I think Bitcoin's plans for the 22nd century should be revised to reflect the highly accurate predictions made by Hari Seldon using his psychohistory method. ;)

</comment></comment></comment></comment></comment><comment><USER15> _The last block that will generate coins will be block #6,929,999. This should be generated around year 2140._

Isn't that entirely dependent on the rate of technical progress? Furthermore, what happens when the crypto algorithms are broken?

<comment><USER16> They only release the next 50 coins every ten minutes so that's constant. And then they adjust the work factor based on recent history so it's always reasonably hard.

<comment><USER17> Who's they? Isn't the system supposed to be decentralized?

What if "they" change their minds?

<comment><USER3> There is no they who release new blocks, every X number of blocks (2 weeks on average) all nodes recalculate the difficulty level of the next stint to attempt to keep the growth around the expected curve (a new block every 10 minutes). So if some hot new Amazon GPU cloud grid joined and churned out block after block, after the certain X block is reached the difficulty is increased.

<comment><USER18> So what prevents me from changing the code I'm running so that the difficulty level is lower? Is this another instance of "if it's accepted by most nodes then it's the truth" mechanism.

<comment><USER19> If you lowered your difficulty, other nodes who follow the prescribed convention for setting the difficulty will reject your blocks and any further chain built on them as invalid. Agreement on the formula for computing difficulty is required to have a unified block chain. If a bunch of nodes pick a different difficulty formula, it will fork the block chain, and there will be two different incompatible transaction records.

</comment></comment></comment></comment></comment></comment><comment><USER20> I think a flattr like service that uses Bitcoins would be great. It might be a good way to increase circulation too.

<comment><USER21> There is one service, at least similar to flattr: www.youtipit.org

</comment></comment><comment><USER22> Yeah, it's a very nice way to get around this well known problem. However what surprises me most is that if they ever want to be adopted on a large scale the clients ought to be better than this. ALL TRACE of your money is stored in a single file (wallet.dat) and there is no way with the default clients to back it up and encrypt it (very easy to do with dropbox etc). In real life we never carry all our money with us and we can block our credit cards should these be lost...

<comment><USER23> A large scale bitcoin economy would not look too different to the average user than the current economy does.

An average joe would not run bitcoin themselves, they would use a bitcoin bank, check out mybitcoin for an early example of such a service.

</comment></comment><comment><USER24> This is still the best explanation of bitcoin: <http://www.youtube.com/watch?v=XQPSwA2Itbs#t=2516s>

<comment><USER25> hi, you had a comment that you have code for a site similar to launchrock, could you send to @ email@example.com

</comment></comment><comment><USER26> I might be missing something here, but it seems to make the future computers to be really power hungry. Are we sure this is not a waste of electricity?

<comment><USER27> I know. That bothers me too, to think that we'd have all these computers churning bitcoins instead of computing gene-folding and whatnot.

However, you could argue that mining for gold or diamonds is even worse. You ruin the land with strip mining, you get "conflict diamonds" responsible for a lot of human suffering and at the end of the day you just have more precious useless metal that you store in a vault.

</comment></comment><comment><USER28> What happen to the transactions in the block chains that lose out? Let's say a payer paid me by creating a transaction and broadcast it. That transaction got lumped into the current leading block chain. Somehow another block chain gains and wins. The block chain containing the transaction is discarded. What happened to the transaction? Is it discarded as well? Do I just got unpaid?

<comment><USER29> You'd resend the transaction and it would get included in a later block.

</comment></comment><comment><USER30> Do they at least look like tulips?

<comment><USER31> ok, so is it only me, or this is NO difference for having your own money- printing machine??

I respect the idea and execution and OK it is secure and everything, but if you can use your hands/brain to create work and get paid for that work in currency X, and then use that currency X to sustain yourself (pay bills, food, gas, etc), then the entire government become obsolete!! I am not arguing here whether a mature society needs government or not, I rather say here that there is a government in place (at least US) and this will be taken as a treason and a pure act of terrorism! (terrorism is any attempt to derail a government entity).

I am sure feds/FBI is in it by now! There was a lesson learnt for music industry when P2P blown out and basically the law lost and it is so easy even today to obtain copyrighted music/audio materials. I am SURE federal government will not let entire country economy to be at stake by some P2P currency.

<comment><USER32> That's a bit of an exaggeration. Many countries do not have their own currency and still manage their own economies.

Still, I take your point that it's not something they would let go of without a fight.</comment></comment></comment>


The Quantum Earthworm - <AUTHOR> http://phenomena.nationalgeographic.com/2012/12/24/the-quantum-earthworm/ <comment><USER2> Areas like this is where 20++ technology will come into its own. The discovering that combine the chemistry, physics and biology of the the modern world is simply astonishing. Bonus points to those that recognize and utilize it.

</comment><comment><USER3> So it must be possible to manufacture or extract new curative compounds through from household earthworms

<comment><USER4> I imagine the handling of earthworms does not scale particularly well considering the huge amounts of cadmium telluride we'd need (if this ever becomes an actual drug, which probably won't happen). Ideally, we'd find a way to manufacture those enzymes synthetically or at least industrially by means of transgenic bacteria.</comment></comment>


Why Stellar Is Exciting According to Sam Conner - <AUTHOR> https://podcast.stellar.org/episodes/why-stellar-according-to-sam-conner <comment><AUTHOR> So excited to share this week's episode of the Stellar podcast! Sam Conner knows his stuff and has personally helped me navigate entrepreneurial challenges in the past. His optimism around not just Stellar but blockchain at large is inspiring.</comment>


Dockersh – a shell that puts users into individual docker containers - <AUTHOR> https://github.com/Yelp/dockersh <comment><USER2> > This allows you to have a single ssh process on the normal ssh port which > places user sessions into their own individual docker containers in a secure > and locked down manor.

Funniest instance of this misused homonym I've seen.

<comment><USER3> It's more of a stately home, really.

<comment><USER4> Or "tax" raising locale in east end London gangster parlance.

</comment></comment></comment><comment><USER5> I'm not sure if this is related -- because it doesn't require Docker or Linux -- but I've got a small shell tool for transparent development on remote machines. Gives you the ability to do something similiar (`ws shell`), and drop directly into the remote environment you're working in.

I use it to work on my Mac, but develop on a Linux box:

[https://github.com/matadon/workspace](https://github.com/matadon/workspace)

</comment><comment><USER6> With a name like that I hope the patron saint of Dockersh is Sean Connery

</comment><comment><USER7> To shamelessly plug a much more minimalist solution, [https://github.com/polydawn/siphon-cli](https://github.com/polydawn/siphon- cli) can also give you new shells shells inside existing containers (or whatever; it's more like screen than anything tightly bound to docker).

Siphon does nothing but create and forward psuedoterminals, so it has a lot less features to directly interact with docker than dockersh appears to have, but it's also able to do its job without root or any priviledged syscalls, and doesn't rely on any knowledge of kernel namespaces at all. Which is more useful may depend on your perspective and usecases.

</comment><comment><USER8> Interesting. I'll take some time to learn it over the weekend. Right now at work I use the following solution to keep a shell running on containers:

[https://gist.github.com/TeMPOraL/3d134ce0d4a2b2f4232b](https://gist.github.com/TeMPOraL/3d134ce0d4a2b2f4232b)

Basically, it starts a screen instance with a shell and your script running side by side, so when you Docker-attach to it, you can C-a " to shell.

run.sh would be the script you want to be run in container - the one that starts your webserver, database, whatever.

I adapted a screen solution from some random StackOverflow comment.

</comment><comment><USER9> Pretty similar to libvirt sandbox (done about 4 years ago):

[http://sandbox.libvirt.org/quickstart/](http://sandbox.libvirt.org/quickstart/)

Libvirt sandbox can also put processes, jobs, users etc into real VMs as well as chroots ^W containers.

<comment><USER10> > _Pretty similar to libvirt sandbox (done about 4 years ago):_

Or how we ISPs gave dialup modem users their own login shells in mid 1990's:

[http://www.freebsd.org/cgi/man.cgi?query=jail](http://www.freebsd.org/cgi/man.cgi?query=jail)

I can't find docs for the chroot shell we used back then, but what we did was along the same lines as this:

[http://www.aarongifford.com/computers/chrsh.html](http://www.aarongifford.com/computers/chrsh.html)

</comment></comment><comment><USER11> I'm not sure if any shell hosting providers post here. I operate one of the companies in this space since 2001.

This is a fun alternative to proper jails but unfortunately, security wise this would not last very long on in a real world application.

Not going to lie, would be pretty cool to set something like this up and auto provision upon payment.

<comment><USER12> Which provider? Curious.

<comment><USER11> [http://www.amdwebhost.com](http://www.amdwebhost.com)

Yes, design is outdated. This was great at the time; people were still using tables for layouts.

</comment></comment></comment><comment><USER13> I've been using Firejail for this purpose:

[http://l3net.wordpress.com/2014/04/16/how-to-restrict-a- logi...](http://l3net.wordpress.com/2014/04/16/how-to-restrict-a-login-shell- using-linux-namespaces/)

</comment><comment><USER14> I don't get it :/

<comment><USER15> Sometimes, during development or when fixing a deployed app, you want to get inside the container environment to poke around. Just to work out why the hell something did or didn't happen.

Right now it is difficult. Docker doesn't support it directly. There is a lot of demand for it:

[https://github.com/docker/docker/issues/1228](https://github.com/docker/docker/issues/1228)

You have to use nsenter, which is OK, but requires additional installation:

[https://github.com/jpetazzo/nsenter](https://github.com/jpetazzo/nsenter)

It looks as though an-almost-but-not-quite-the-same thing will land in Docker at some point:

[https://github.com/docker/docker/pull/7409](https://github.com/docker/docker/pull/7409)

And this shell is another attempt to make a very useful feature available.

<comment><USER16> Are you sure it is related to entering an existing container (and running a new process) ?

From reading the README file, it seemed to me it was only spawning a login shell process in a new container (not an existing one), and possibly resuming an existing container.

<comment><USER3> You are correct, dockersh is a shell. It spawns a "proper" shell (e.g. bash) in a docker container when you log in.

</comment></comment></comment></comment><comment><USER17> > This allows you to have a single ssh process on the normal ssh port which > places user sessions into their own individual docker containers in a secure > and locked down manner.

No! Warning!

Docker is not secure and locked down. Do not use this for "security".

<comment><USER3> Sure, but it's secure enough for giving friends access to my laptop without them being able to look around the rest of the system.

<comment><USER17> GNU/Linux and ssh is already secure enough for that. File permissions, so they cant see your files.

<comment><USER3> They can't see the homedir, but they can still see config files and anything else that couldn't be conveniently locked down.</comment></comment></comment></comment>


Toronto van attack suspect's Facebook post linked to anti-women ideology - <AUTHOR> https://edition.cnn.com/2018/04/25/americas/toronto-van-attack/index.html <comment><USER2> Is this the new shit from western media? What the heck is "Anit-Women Ideology"? Apparently they have moved away from mental instability to anti- women ideology...

The fucking dude is a TERRORIST, Period.</comment>


How to Deploy a Rails app to EC2 in less than an hour using Rubber - <AUTHOR> http://ginzametrics.com/deploy-rails-app-to-ec2-with-rubber.html

<comment><USER2> I glanced over the rubber docs and it sadly looks like too many ruby projects; big promises, shaky implementation (opinionated in questionable ways), extremely thin documentation.

There are better building blocks if you're going to roll your own EC2 stack (fog and sumo come to mind).

And if you lack the knowledge to roll your own then no, commands like the following are not the answer:

      ./script/generate vulcanize complete_passenger_mysql

Yes, this may work sometimes and set you up with "something". But there is insufficient documentation about what this "something" actually is, what the rationale behind it was, and how someone who needs a tool like rubber is supposed to keep it running and in good shape.

<comment><USER3> Full disclosure: I'm one of the rubber devs.

But, did you look at any of the wiki pages? I think all of your questions are answered right there:

<https://github.com/wr0ngway/rubber/wiki>

I think you largely missed the point of rubber. Rubber could use something like fog (and indeed, we plan to), but it's not a fog competitor. It allows you to do role-based deployment with capistrano.

At the core of it, you have a set of roles (e.g., app, db, redis, web, resque_worker) and a set of machines belonging to those roles. You have role- based config and you can interact with subsets of your cluster through those roles.

heroku is good at what it does. But there is simply no way I could have built Mogotest on it. And most of the rubber projects I've come across would never work on heroku.

<comment><USER2> _But, did you look at any of the wiki pages?_

Yes.

 _I think all of your questions are answered_

No.

 _I think you largely missed the point of rubber._

Could be. My perception is that it wants to be a turnkey solution for people with little admin knowledge. But it is nowhere near that, in its current shape and form.

 _At the core of it [...]_

Sure. It surely does some useful things. But none of that is nearly adequately documented. For example, what exactly does the command I cited do? I couldn't see it in the wiki. What if I want postgres instead of mysql? What about backups? How do I upgrade system packages later? Where is the /etc/hosts magic documented that the blog-post mentioned (which is a pretty bad idea btw)? What kind of network topology will my instances have, what are the security groups? How do I manage EBS volumes? What if I need a redis, memcached, or other components? What AMI will my instances be running? What about loadbalancing, failover? What about cronjobs, e-mail, all the systems stuff? ...

I could go on for a while. Maybe I just didn't see the wiki-page where all this is explained. And I'm sure much of it can be "discovered" just by trying out and guessing.

However, Heroku exists, is free, well tested and well documented. As such it's the better blackbox to choose for someone who doesn't yet know what he's doing.

For people who know what they're doing there's fog, puppet and chef.

<comment><USER3> I have a feeling this discussion is going to go basically nowhere. But I'll bite.

The command you cited is a generator. It generates a complete passenger and MySQL setup. It's a sensible default that handles a large set of use cases. If you want postgres instead, there's a complete_passenger_postgresql. The full list of modules can be seen at:

[https://github.com/wr0ngway/rubber/tree/master/lib/generator...](https://github.com/wr0ngway/rubber/tree/master/lib/generators/vulcanize/templates)

Backups are set up automatically. There's a whole mess of capistrano tasks for this stuff. Run "cap -T" to see them. That's the standard way of documenting such.

Actually, you have a load of questions there that are evident once you actually try rubber. That's not a great answer and I'm not saying the documentation is great. But, hey, the documentation for fog is virtually non- existent.

But, no, rubber is absolutely not meant to be a turnkey solution. We grossly simplify a ton of tasks, but at the end of the day, you need to know what you want your topology to look like, what roles you want on which machines, how many of each, how many read slaves you want, etc. The templates we provide make setting up things like backup and slaves trivial, but we don't do it for you automatically.

<comment><USER2> Well, I'm sorry for being entirely negative, but after looking over the templates... in my opinion you're doing it wrong. For example (at a glance) I don't see any mechanism to _upgrade_ anything after the fact. Am I just missing that, or what's the approach there?

Either way, it seems you're effectively reinventing a subset of puppet. Wouldn't it be more sensible to implement rubber in the form of puppet manifests (or chef recipes)?

<comment><USER3> You're certainly entitled to your opinion. It's just a strong stance to take for something you surveyed for 15 min. and then proceeded to compare to a few things that don't make a ton of sense. But that may very well be due to holes in the docs (hopefully the article did give a motivating example though).

I'd have to check the timeline again (I wasn't involved with rubber from the outset), but I think it predates both puppet & chef. Regardless, we've discussed adding a chef adapter. However, it's unlikely that would ever work with the chef configuration server since a large tenet of rubber is your entire deployment and provisioning configuration is wholly contained in your project.

Re: upgrading. If you want to upgrade to the latest OS packages, you can "cap rubber:bootstrap" or use "cap invoke" to execute whatever command you want on the remote machines. If you're referring to the rubber modules, you just re- run the generator when we issue an update, much like with other generated source projects. Or modify any of the rubber-*.yml files to specify whatever version number you want, since it's in your version-controlled source tree.

Don't get me wrong. I'm highly critical of the projects I'm involved in. It's the best motivator I can think of for improving things. I'm just trying to clear up any misunderstandings to elucidate real issues. I think the rubber mailing list might be a more appropriate venue for a technical deep dive, if you want. Or feel free to email me directly (nirvdrum@gmail). Or we could keep going back and forth here, but it doesn't feel very productive.

</comment></comment></comment></comment></comment></comment><comment><USER4> I don't know how other people do it; but I can deploy a Rails or a Django app in less than an hour without having automated scripts.

Of course, I do have a step-by-step wiki document, reminding me what to do.

But if you know the basics of configuring a web-server, and you're sticking to a preferred Linux distro, like Ubuntu or Debian, the process itself is pretty painless after the first time.

That said - it's pretty useful to have an automated process for getting a new web server up and running in case you're experiencing scalability problems.

<comment><USER5> I don't even know if I'd need any notes to be able to deploy to my platform of choice, Ruby Enterprise Edition and Phusion Passenger running on Debian, in less than an hour.

Not because I'm particularly skilled at it, but because the Phusion guys have excellent install scripts and docs.

<comment><USER4> I'm also taking into account the time it takes to install prerequisites like Postfix, create necessary users, setup the firewall, etc...

</comment></comment></comment><comment><USER6> I've been using Rubber for the past few weeks and I'm a huge fan of it. Completely configurable, helpful developers and discussion forum and the best part is you have all of your server administration scripts right inside with your app. Took me a bit of time to cater it to my needs but I don't think I'll be moving away from it anytime soon.

</comment><comment><USER7> Given how long it takes to deploy a rails app to heroku, an hour to deploy now seems like a horribly long period of time.

<comment><USER8> That's the time to do from-zero provisioning. It is roughly comparable with the amount of time it takes to get a bare-metal VPS spun up and running, if you have Capistrano tasks which are sufficiently up to date to do it for you. (Upload keys, create accounts, apt-get big nasty list of software, install rails, install all gems and dependencies, set config files, check out code, etc etc.)

(If you are doing toy applications, you can get a Heroku instance spun up in under a minute, but I have _never_ had a non-toy Heroku application work on the first try. There is virtually invariably a gem which works fine locally and then dies hard when you expose it to the Heroku environment. After you've debugged and addressed this, subsequent deploys on Heroku take about as long as subsequent deploys via Capistrano.)

Heroku is a wonderful, wonderful system, but "git push look-ma-no- sysadminning-whee" it is not.

<comment><USER9> We ported a pretty hefty application to Heroku, and surprisingly, didn't have much customization that needed to happen in regard to gems. We did have a hand written Nginx module that we had to toss out, and took care of the stuff we needed to take care of on the Rack level. The Rack middleware we had to write was really minimal, and took only an hour or two to write and test. The application gets around 20-60 rq/s on Heroku, and we haven't had to touch a thing since the migration (/me knocks on wood).

</comment></comment></comment><comment><USER10> Moe has some good points about maintaining these instances, keeping things up- to-date, and launching more sophisticated infrastructure beyond your vanilla Rails/MySQL stack apps.

In my experience, Chef is really not that difficult to get setup, especially for the benefits it gives you: idempotent recipes with a great deal of control over the configuration, setup, and control of your infrastructure.

In the blog post, it mentions having to comment out migrations that will fail. That's bad: when bootstrapping machines, a db:schema:load is far more appropriate and less brittle.

Rubber seems like a half-solution for maintaining infrastructure. The blog post mentions that it was picked to prevent having to manually configure boxes, but it sounds like they chose a tool that only half solves their problem and then leaves them to do manual maintenance.

Now, with some experience, I can get a Rails machine booted and running an app in 20 minutes total with Chef. It's really pretty easy, and having tons of resources, lots of recipes, excellent support, and a sane system makes it super flexible.

<comment><AUTHOR> The thing that annoyed me about Chef was the need for a Chef server (or their Opscode service). Rubber may turn out to not be ideal so we'll see, but so far it seems to be pretty logical and not that difficult to maintain.

The part about commenting out a failing migration is a bug that shouldn't exist in that particular process, not relevant to Rubber.

I don't mean to sound like I'm vigorously defending Rubber because we just started playing with it but, so far, the criticism seems a little overblown.

<comment><USER11> > The thing that annoyed me about Chef was the need for a Chef server

You may not have heard of Chef-solo? I've been managing 8 EC2 servers for a project with it and Capistrano, relatively painlessly.

</comment></comment></comment><comment><USER12> If you're looking for something similar for the GAE the folks at <http://www.openbd.org/> have a new installer that you can use for their open source CFML engine. It's a matter of choosing in the installer whether you want it on your local machine or the GAE.

I believe every language is going to have to simplify the cloud install.

</comment><comment><USER13> When would you use this kind of setup over Heroku?

<comment><USER14> As a general guideline, I look into EC2 when:

1) My scale is significant enough to require at least 2 servers (unless one of them is RDS).

2) I have some background processing.

3) I can commit to reserving an instance for at least a year.

A small ec2 instance running 24x7 will cost me around $40 / month (+ bandwidth) if I reserve up at least a year's worth of usage. That's 1.7GB of RAM and 1 EC2 compute unit. For $163.43 you can get a pretty honking large instance (way cheaper than any competing VPS offering). Add in ELB and RDS and you've got a very scalable setup for very little coin.

I'm not sure how the Heroku dyno or worker performance measures up to EC2 Compute units though, but I'd love to hear from someone who does know.

<comment><USER10> It's interesting to see this line of questioning because the post to me was more about Rubber than about EC2 vs Heroku.

For me, Chef is a no brainer for bootstrapping and managing my instances.

Heroku is also a no brainer, but as rapind pointed, it's for simpler setups or for getting an app up quickly without a lot of ceremony.

We've deployed to Heroku and eventually moved to EC2, but have kept several apps on Heroku.

<comment><USER14> Do you remember what your reasons were for moving to EC2 direct? I.e. needed how much more processing / memory / etc.? I know that when I start adding in some typical features (background processing, redis and / or memcached, wildcard domains, solr search, hourly crons) the heroku prices really start to add up. Significantly more than EC2.

For example the Heroku addon for 100MB of memcached is $20 / month... which far exceeds the cost on an EC2 box.

<comment><USER13> How much does an EC2 box cost? Less than $20/month?

<comment><USER14> I assume you're referring to the memcached addon reference? That's $20 for 100MB of cache ram... The amazon small instance is 1.7GB of RAM for around $40. Making the memcached addon a 850% markup.

</comment></comment></comment></comment></comment></comment><comment><USER15> Is there something like this for Django?

<comment><USER16> I have a fabfile I made to deploy to EC2. <https://gist.github.com/860576> Edit: It takes a lot less than 1 hour

<comment><USER15> cool, I'll check it out!</comment></comment></comment>


Our Lost Cousins, the Neanderthals - <AUTHOR> http://www.bostonglobe.com/ideas/2015/02/13/our-lost-cousins-neanderthals/O2cSNRBhPjcJYl76EoDAxK/story.html

<comment><USER2> This is an interesting article, and is a good supplement to the recent _New Yorker_ article about Neanderthal hominins.[1] I think the best point made in the article comes part way down with the expert quotation, "'It's a great time to be researching Neanderthals because we're learning so quickly,' said Steven Churchill, a professor of evolutionary anthropology at Duke University. 'But it's a horrible time to write a book,' he added with a laugh. New information is arriving at such a fast pace that it's difficult for even scholars to keep up." That's about right. The article kindly submitted here does a good job of reviewing some of the back-and-forth about how _Homo sapiens_ has thought about Neanderthal fossils and what archaeology suggests about our near cousins over the years, with a variety of different ideas about Neanderthals coming and going. The latest word is that Neanderthals were smarter than we used to think.[2]

Of course the article mentions that there are traces of gene assemblages that were first found in ancient Neanderthal DNA that are actually fairly commonplace in living human beings (which is the main point of the _New Yorker_ article). So in that sense, the Neanderthals are not so much "lost cousins" as common ancestors among other ancestors of our brothers and sisters. Neanderthal genes live on in you and me, more than likely.

[1] [http://www.newyorker.com/news/daily- comment/neanderthals](http://www.newyorker.com/news/daily- comment/neanderthals)

[2] [http://www.washingtonpost.com/national/health- science/resear...](http://www.washingtonpost.com/national/health- science/research-finds-neanderthals-were-more-thoughtful-than-we-once- imagined/2015/01/19/c848f040-71ac-11e4-ad12-3734c461eab6_story.html)

<comment><USER3> "Neanderthal genes live on in you and me, more than likely."

That's mostly true for people who descend from people living in Europe and parts of Asia. Less so for anyone who primarily descends from Africa or Australian aborigines.</comment></comment>


John Carmack on Patents - <AUTHOR> http://slashdot.org/comments.pl?sid=151312&cid=12701745 <comment><USER4> Carmack isn't just being hypothetical here; he independently came up with "Carmack's Reverse" for rendering shadows and it turned out Creative already had a patent on it; they ended up using it to force Doom 3 to support some crufty proprietary 3d sound system.

<comment><USER5> Look at the current patent trends. The first company to paten an idea that having people interact via avatars interact in an online world managed by a server was not the first company to come up with the idea. However they are now suing every MMORPG on the market because any game in which users chat with eachother using avatars violate the patent.

Apple is doing such things as well patenting things like "a 3d desktop" they don't have to do much just describe a rough idea of one.

OOOOOO and my favorite is the company who is suing Apple, MS, Palm, Google due to their exclusive patent on operating systems. I am sure they invented OSes it just a few years ago.

</comment></comment><comment><USER6> _Yes, it is a legal tool that may help you against your competitors, but I'll have no part of it. Its basically mugging someone._

Love it. Legal does not mean moral. Or right. Putting on a suit and using a paper weapon doesn't make it any more respectable than hiding in an alley and using a steel one.

I'm looking forward to Mr. Carmack's position paper.

<comment><USER7> Well, that post is about 3 and half years old. So don't hold your breath waiting for his position paper :).

<comment><USER6> Yeah saw that. Went searching hopefully. Disappointment. Busy guy I guess. In the end though, I'd rather he be making cool stuff than messing around with patent nonsense, whatever side he's on.

<comment><USER8> Not non-sense,m actually. Quite the opposite. This is comapany and industry- ruining stuff. To continue on oblivious to the law and the effect that industry leaders like Carmack can have on the law is nonsense.

<comment><USER9> Do you think John Carmack's time is better spent writing 3d engines or lobbying congress?

<comment><USER10> Hidden third option: building space rockets and driving Ferraris.

<comment><USER9> Touche.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> I recall reading something from Carmack along the lines of "I find it horrrifying that I can't use my own ideas if someone else had the same idea first." It was a very succinct and insightful quote on a problem with patents, but now I can't find a source for the quote. Does anyone know what I'm reffering to?

<comment><USER12> Ok - So - What's the alternative?

There are some inventions that take vast amounts of investment, yet are easy to copy.

<comment><USER7> I think the problem is in the details. It's far too easy to get a patent. And on trivial 'inventions'.

Paul Graham has literally got two patents for the exact same thing. 'Somebody hit submit twice' indeed.

Patents should be examined by people knowledgeable in the field and have a strict process for being granted.

And there should be a much higher activation energy required for taking someone to court for violating a patent.

<comment><USER13> A quick shout-out to the US Patent Examiners - these individuals have technical degrees just like us, and do their best to weed out the crap patents they can. In fact, they are judged (for better or worse) by the number of patents they successfully reject.

They are also now some very overworked individuals. They have only hours to review patents in a diverse set of topics. There is only so much research they can do - a patent written by a master claims writer, no matter how frivolous, is very difficult to reject outright.

If you want to improve patents in the US, you can start by asking your congressperson to increase funding to the USPTO.

<comment><USER14> Or ban software patents altogether. That would probably be cheaper.

<comment><USER15> In the meantime, strike small blows here and there against bad patents by helping examine them:

"Help the USPTO find the information relevant to assessing the claims of pending patent applications. Become a community reviewer and improve the quality of patents."

<http://www.peertopatent.org/>

</comment></comment></comment></comment></comment></comment><comment><USER16> Hmmm... Interesting... Seems like a prisoner's dilemma situation to me. If I was to patent, it would be to my benefit, but it would also hurt the 'other ' I was playing the game with (supposing he didn't patent).

I suppose Carmack's position paper would advertise to the world that he is in favor of no patents, thus in this 'multi-round' game he is providing others with the ability to collude with him to keep patents out of his field.

<comment><USER4> When a product is covered by more than one patent, the patent-holders end up in a tragedy of the commons problem. The commons is the person with the product. He has money he can pay. Each patent holder has a veto over the product and wants to extract as much as they can. One hold-out can ruin it for everyone and every single stake holder often ends up worse off as a result.

<comment><USER13> The cases you are referring to - where there are blocking patents - <USER2> are resolved with mutual licensing agreements. Of course, there are many exceptions, especially when there are patent trolls involved.

In these cases, though, I really wonder the comparative cost of innovation versus licensing battles. Software is still an amazingly open field - <USER3> that licensing battles can run into the millions, if that money was invested in R&D could an alternative (superior) method be found?

One of the methods that patents were supposed to encourage innovation was by providing reasons to innovate. If you are forced to explore new options and develop your own IP that might be patentable, is that such an awful thing?

<comment><USER17> Software patents often leave zero room for innovation. Let's say you patent pushing email to a hand held device AND pulling email from a hand held device what are the options? Showing a screen shot of another device that's not hand held? It's still either push or pull. etc.

</comment></comment></comment></comment><comment><USER18> I work at a commercial software company, for which I've filed and been granted some patents. I do so even though the pittance my company provides as a "patent bonus" doesn't begin to compensate for the paperwork, writing, iterating with a lawyer, etc. involved in the process.

In principle, it's possible one of my patents will either defend my employer from litigation, or be a poker chip in some licensing deal in the future, but honestly the odds of that are small. My selfish reason for writing patents is that they provide a way of publicly recording my technical contributions. An alternative venue is academic publications, but that's inherently a crapshoot. Granted patents have your name on them, are freely available unlike a lot of CS journals, and usually provide better technical detail about the problem and solution than a typical 5-page academic CS paper.

<comment><USER19> In what sense are academic publications more a crapshoot than patents? I hope you don't mean that because they might be _rejected_! That would completely convince me of Carmack's correctness.

</comment></comment><comment><USER20> Until we can remove the leverage that intellectual property holders currently have, they will fight ruthlessly to retain 'their' property.

Compare the economically optimum copyright length ([http://arstechnica.com/old/content/2007/07/research- optimal-...](http://arstechnica.com/old/content/2007/07/research-optimal- copyright-term-is-14-years.ars)) with the actual changes in length within the US (<http://en.wikipedia.org/wiki/File:Copyright_term.svg>). This increase in terms coupled with the ease of patent filing surely is purely marginal decision making.

</comment><comment><USER21> Uh, effect -> affect.

<comment><USER22> The truly elite (or at least, those who think of themselves as such) know that "effect," when used as a verb, is (sort of) a synonym for "cause."

<comment><USER23> It's clear from reading Carmack's sentence that he means affect (alter/disturb, in this case negatively so), not the verb form of effect/to cause. (Not that that justifies a grammar flame on HN, but it was at least an accurate flame.)

</comment></comment></comment><comment><USER24> Patents should be valid for one year only, to give a head start to whom had the idea and invested developing it.

That willl give them enough time to build a brand (iPhone, Viagra) then it is all open season and everybody can copy and improve on that idea to get an edge, investing their own resources (Zune, Cialis) whether they fail or not is up to the market.

You can't blame people for you being a great researcher and a poor marketer.

People will reward who can be both.</comment>


Marketing for Engineers: Curated list of resources to grow your product - <AUTHOR> https://github.com/LisaDziuba/Marketing-for-Engineers <comment><USER2> Wow, thanks for sharing! This collection helped us a lot. We really hope fellow makers will find it useful as well.

Also, we'd be glad to hear any feedback or thought you, folks, have.

</comment><comment><USER3> thanks for sharing my list! We put there all useful articles we have during the last 2.5 years of running our startup. hope, it will help to other founders as well!</comment>


Ask HN: What is a problem you're shocked hasn't been solved yet? - <AUTHOR> <comment><USER2> bras. they are crazy uncomfortable and annoying. also, why arent pockets usable on womens clothing?</comment>


The NYT Pays A Woman To Lecture You About Being A Commuter Prole - <AUTHOR> http://www.thetruthaboutcars.com/2013/10/the-new-york-times-pays-a-woman-with-a-2-85m-home-to-lecture-you-about-being-a-commuter-prole/

<comment><USER2> > The large-scale re-urbanization of which our not-so-humble source author > dreams would be a task that would require the entire sustained effort of the > entire working population of this country, for decades.

Sounds like exactly the kind of jobs program the country needs right now.</comment>


YC Emails sent? I did not get anything yet - <AUTHOR> I am wondering if anyone has received email from YC decision for W2020. <comment><USER2> Not yet but few people started receiving it.

<comment><USER3> how do you know it?

</comment></comment><comment><USER3> Not yet</comment>


Hague Tribunal Rejects Beijing's Claims in South China Sea - <AUTHOR> http://www.nytimes.com/2016/07/13/world/asia/south-china-sea-hague-ruling-philippines.html <comment><USER2> No surprises here. But China plays good old fashioned realpolitik.

So unless the Tribunal in Hague has its own army strong enough to overcome the Chinese one, the US is willing to go to war with China, or 80% of the world revoke China as its trading partner - the decision is worth less than a toilet paper of the same weight.</comment>


Unexpected sources of bias in artificial intelligence - <AUTHOR> https://techcrunch.com/2016/12/10/5-unexpected-sources-of-bias-in-artificial-intelligence/ <comment><USER2> Here is a paper titled _Automated Inference on Criminality using Face Images_ [0]. The system is trained on existing conviction records. Inheriting all the prejudices and biases of our current justice system.

[0] [https://arxiv.org/abs/1611.04135](https://arxiv.org/abs/1611.04135)

<comment><USER3> Phrenology is alive and well I see.

<comment><USER4> And raising funds! [http://www.faception.com/](http://www.faception.com/)

<comment><USER5> It's scary that despite parts of their website appearing to be non-too-subtle satire, all the media evidence suggests they're dead serious about this...

<comment><USER4> Crunchbase says that they recently had a Series A round: [https://www.crunchbase.com/organization/foundersx- ventures#/...](https://www.crunchbase.com/organization/foundersx- ventures#/entity) which would make for a _really_ elaborate prank.

The page describing (defending?) the "theory behind our technology" is amazing. In brief,

1\. Personality is somewhat heritable.

2\. Face shape is also determined by genes.

3\. ???

4\. Profit.

There is even an explicit _positive_ call-out to phrenology. The mind boggles.....

</comment></comment></comment></comment></comment><comment><USER6> In the days when Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6.

"What are you doing?", asked Minsky.

"I am training a randomly wired neural net to play Tic-tac-toe", Sussman replied.

"Why is the net wired randomly?", asked Minsky.

"I do not want it to have any preconceptions of how to play", Sussman said.

Minsky then shut his eyes.

"Why do you close your eyes?" Sussman asked his teacher.

"So that the room will be empty."

At that moment, Sussman was enlightened.

<comment><USER7> With risk of spoiling the Haiku, could someone explain this in more detail?

What is Sussman suggesting that Minsky do instead: wire the neural net in a fixed way instead of randomly? What does that have to do with the difference between viewing the room with your eyes open vs. closed?

<comment><USER8> The koan is commonly accompanied by the following:

"What I actually said was, 'If you wire it randomly, it will still have preconceptions of how to play. But you just won't know what those preconceptions are.'" \-- Marvin Minsky

</comment></comment></comment><comment><USER9> Obligatory: go to [http://www.catb.org/jargon/html/](http://www.catb.org/jargon/html/) and search for "Sussman attains enlightenment"

<comment><USER10> is the take-away: bias is not in the initial conditions of the net, but in the implementation of the neurons and its structure;

closing my eyes makes my eyes insensitive to the state of the room, it does not make the room empty;

randomizing my network makes it insensitive to the biases of the AI, it does not mean there are no biases.

I'm finding it hard to figure this one out...

<comment><USER11> Bias _is_ in the initial conditions of the net. It's just not deliberately biased by the author. But it still has bias. "Closing your eyes" to the initial content/state of the net does not make the initial state go away.

<comment><USER12> Thank you both for the explanations, I saw the top comment (the Koan) and I didn't know what to make of it :)

</comment></comment></comment></comment><comment><USER13> You can gain insight into human problems by noting that these sources of bias all pertain to natural intelligence as well.

<comment><USER14> This. Should not come as a great surprise that AI is inherently biased, as are the people who create it and the people who use it.

Is it possible to not be affected by so many nested layers of bias?

<comment><USER10> The bias of the people need't bleed into the AI, since the whole point is that AI _isn 't_ constructed by experts, but inferred from collected data.

<comment><USER15> The worry is that the training data has been affected by human bias, so that bias will bleed over into the ai.

</comment></comment></comment></comment><comment><USER16> > _We tend to think of machines, in particular smart machines, as somehow > cold, calculating and unbiased. We believe that self-driving cars will have > no preference during life or death decisions between the driver and a random > pedestrian. We trust that smart systems performing credit assessments will > ignore everything except the genuinely impactful metrics, such as income and > FICO scores. And we understand that learning systems will always converge on > ground truth because unbiased algorithms drive them._

I absolutely hate this myth, and I suspect it's just an excuse used by technologists (consciously or not) to wash their hands clean of taking social responsibility.

There is no such thing as innocent technology, because it is made by and for humans, and with a purpose. Which means that before we even built anything we have already left the domain of "is" and entered "ought". Technology "encodes" values by being an answer to how we attempt to implement some intended purpose, and thus becomes entwined with the questions of responsibility that we all struggle with.

Here's a great anthology of writings on that topic: _Inside the Politics of Technology_ [0], mostly written from a post-phenomenological[1] perspective.

Excerpt from the introduction:

> _It was eventually proven that the pilot acted as capably as possible, so he > was not to blame. But that only partly settled the question. After this > first clarification, however important it was to the pilot, the accident > could still be ascribed either to human error, e.g., false instructions from > the control tower, poor maintenance, or lack of knowledge about the > migration cory patterns of birds, or, alternatively, to technical > deficiencies, e.g., fuel problems or engine failure._

> _In the end, a year after the crash, an official research report established > the "real" cause of the crash: the snapping-off of a 10-cm metal pin that > regulated the position of a fin in one of the 13 cogs in the rotor of the > F-16. This set off a chain reaction demolishing the cogs one by one, ending > up in a complete breakdown of the engine._

> _But even then the problem of humanity versus technology was not solved. Who > could be blamed for this technical defect: service engineers, the Air Force, > or the manufacturer? The latter was ultimately left holding the bag. But > still then, was it a production fault or a designer's error? Again,different > actors and different technicalities are involved._

> _Apparently, a definitive dividing line between technical and human causes > cannot be drawn. However technical the cause of the crash appeared to be, > human beings always come along with the technicalities – and vice versa. > Purely technical causes are just as illusory as purely human faults._

The idea of machines being unbiased and innocent is not just naive, but outright damaging.

[0] Free PDF: [https://oapen.org/download?type=document&docid=340207](https://oapen.org/download?type=document&docid=340207)

[1] A friend of mine explained post-phenomenology as follows: _" My understanding is that for Verbeek and others like him in general, postphenomenology continues the core traditions of phenomenology but with a deliberate emphasis on social science methods and empiricism over philosophical arguments - a positivist Heideggerian phenomenology"_

<comment><USER17> Are there any other writings you could point me to? I've never heard of post- phenomenology, but I quite like the perspective. The concept of AI certainly isn't an unfamiliar one, so I imagine there'd be some interesting takes on that -- hopefully from a realistic, non-AGI perspective.

<comment><USER16> Hmm.. Well, if I'm completely honest I can't say I dove too deep into the material; this just happened to be part of the theory/philosophy that I had to study during my design bachelor/master that really resonated with me. But _" What Things Do Philosophical Reflections on Technology, Agency, and Design"_ by Peter-Paul Verbeek is a touchpoint when it comes to post-phenomenology, AFAIK.

[http://www.psupress.org/books/titles/0-271-02539-5.html](http://www.psupress.org/books/titles/0-271-02539-5.html)

</comment></comment></comment><comment><USER18> The funny thing about bias is that it was invented, technically, as a way of... improving the accuracy of data in audio recordings. By adding something (current or frequency) to the signal you could increase the quality of the output. Without chasing the metaphor too much, it's also interesting to considerer that, maybe, adding something, yes a bias, to the data would also increase their quality. Why did authors (e.g. Azimov) came up with fundamental robotic laws?

<comment><USER19> > _Why did authors (e.g. Azimov) came up with fundamental robotic laws?_

To criticize them by highlighting their failings in the stories they wrote, in order to show us friendly AI is not an easy problem?

</comment></comment><comment><USER20> I think we need to stop using the word "bias" and "prejudice". The term "bias" has a real, well-defined meaning in statistics, and both of these terms imply _incorrect_ decisions are being systematically made.

Only one example in this article is actually about incorrect decisions. Most examples are about unbiased learning systems doing exactly what they are designed to do, but people other than the designers wishing they did different things.

For example, consider "conflicting goals bias". This isn't a bias - the system is maximizing clicks exactly as desired. It's just that some random third party wishes the system were actually trying to mitigate a nonexistent psychological problem (namely stereotype threat) instead [1].

What they call "similarity bias" is the same thing. The system is attempting to show people stories they like (and probably does a good job at it), but the author wishes instead that the selection of stories was closer to what a journalist might choose.

Another social "bias" \- namely "redlining"/redundant encoding/etc is actually the _elimination_ of statistical bias. A lot of input metrics - e.g. SAT score, FICO score, etc - are biased in favor of non-Asian minorities (and against Asians) [2] and machine learning algorithms designed to find hidden patterns discover this bias and fix it.

Conflating "someone is doing X but I wish they did Y" with bias is not useful. It's also not useful to conflate the elimination of socially desirable biases with introducing new biases.

[1] Stereotype threat has repeatedly failed to replicate. Funnel plots suggest it only existed to begin with due to publication bias. [http://www.sciencedirect.com.sci- hub.cc/science/article/pii/...](http://www.sciencedirect.com.sci- hub.cc/science/article/pii/S0022440514000831) [https://dl.dropboxusercontent.com/u/85192141/2013-ganley.pdf](https://dl.dropboxusercontent.com/u/85192141/2013-ganley.pdf) [https://en.wikipedia.org/wiki/Stereotype_threat#Failures_to_...](https://en.wikipedia.org/wiki/Stereotype_threat#Failures_to_replicate_and_publication_bias) [https://replicationindex.wordpress.com/tag/stereotype- threat...](https://replicationindex.wordpress.com/tag/stereotype-threat-and- womens-math-performance/)

[2] See for example Figure 7 here: [https://drive.google.com/file/d/0B-wQVEjH9yuhanpyQjUwQS1JOTQ...](https://drive.google.com/file/d/0B-wQVEjH9yuhanpyQjUwQS1JOTQ/view)

<comment><USER21> > The term "bias" has a real, well-defined meaning in statistics, and both of > these terms imply incorrect decisions are being systematically made.

Bias is not a word that was invented by statisticians[1], it's a word that statisticians adopted. It's just as legitimate to say that when a machine learning technique is trained with biased input that it produces biased output as it is to say that some particular machine learning method produces biased output from unbiased input. Either way, it's perfectly fine to say that the use of that technique results in bias _even if that bias is in an aspect of the output that the algorithm wasn 't selected to optimize._

It seems that what you're arguing is that the algorithm shouldn't be blamed in these cases, but in addition, you're declaring that there's no such thing as prejudice or bias, and implying that what the algorithms are doing is pulling some (uncomfortable for gatekeepers) platonic truth out of the ether (without any acknowledgement of the possibility of biased input.) Or more simply, you're using this article as an excuse to push a favorite "race realist" agenda which you use to justify a purist libertarianism (and which I agree it requires.)

[1] [http://etymonline.com/index.php?term=bias](http://etymonline.com/index.php?term=bias)

<comment><USER20> The term "bias" and "prejudice" even outside statistics are defined by the dictionary as being about getting the wrong results: "preconceived opinion that is not based on reason or actual experience".

This agrees more or less with the statistical term, it's just less precise. That's also NOT what machine learning algorithms do.

If you want to declare an algorithm biased because it optimizes what it was designed to optimize rather than some random tangential goal, then the term has become meaningless. Similarly, my cell phone is broken because it can only make calls and is ineffective at pulling trains. A locomotive is also broken because it doesn't make tacos.

 _It seems that what you 're arguing is that the algorithm shouldn't be blamed in these cases, but in addition, you're declaring that there's no such thing as prejudice or bias...what the algorithms are doing is pulling some (uncomfortable for gatekeepers) platonic truth out of the ether (without any acknowledgement of the possibility of biased input.)_

I have no idea how you could possibly think I made this claim given that I _explicitly listed two examples of algorithms which are biased._ I then hinted at how algorithms can eliminate this bias. Consider rereading what I wrote.

If you want more details on how algorithms correct biased inputs (it's not based on "ether") read the blog post I linked to downthread: [https://www.chrisstucchio.com/blog/2016/alien_intelligences_...](https://www.chrisstucchio.com/blog/2016/alien_intelligences_and_discriminatory_algorithms.html)

 _Or more simply, you 're using this article as an excuse to push a favorite "race realist" agenda which you use to justify a purist libertarianism (and which I agree it requires.)_

I have no idea why you think "race realist" agendas require purist libertarianism, or vice versa. That's a random political tangent and totally unrelated to this conversation. I'm beginning to think you are seeking to derail the conversation rather than discussing statistics in good faith.

In the hopes that I've misunderstood you, I will nevertheless provide you with a good faith clarification. I made no normative claims regarding libertarianism or anything else. The only normative claim I've made is that we should not wrongfully apply an existing term (bias) to completely unrelated concepts (having undesired social outcomes).

<comment><USER22> _> That's also NOT what machine learning algorithms do._

A machine learning algorithm run on non-representative input could be said to lack experience with the portion of input that isn't represented in the training set.

E.g. I think it's pretty obvious that machine learning algorithms exhibit far more vernacular-bias than purely logical reasoning techniques.

 _> I made this claim given that I explicitly listed two examples of algorithms which are biased._

Your parent is pointing out the very real possibility that _technically- unbiased algorithms can produce vernacularly-biased outputs_. I.e., that statistic's definition of "bias" does not sufficiently capture the notion of bias as it's used in the vernacular.

I don't think you've refuted that claim.

At the end of the day, your approach toward side-stepping the issue of vernacular bias is intellectually lazy. Instead of tackling the problem head on, you're hiding behind a mathematical object that happens to have the same name as the actual thing under discussion.

 _> I'm beginning to think you are seeking to derail the conversation rather than discussing statistics in good faith._

I think your characterization of bias in terms of statistic's technical definition is already skimming the edges of good faith. You know what the reporter means when they say "bias", and that's _not_ the meaning that statisticians use in technical settings.

<comment><USER20> I know what the reporter means: "bias" refers to "outcomes the reporter dislikes and thinks he can generate clickbait with". I'm explicitly advocating against this practice and in favor of using clear and precise language instead.

 _At the end of the day, your approach toward side-stepping the issue of vernacular bias is intellectually lazy. Instead of tackling the problem head on, you 're hiding behind a mathematical object that happens to have the same name as the actual thing under discussion._

I'm not side stepping the issue. I'm advocating in favor of describing the problem with clear language - once that's done we can begin useful discussion on how to address it.

In precise terms, what do _you_ think the problem is?

<comment><USER22> _> "bias" refers to "outcomes the reporter dislikes and thinks he can generate clickbait with"_

That's quite a straw man for someone who claims _others_ are trying to derail a conversation.

 _> I'm explicitly advocating against this practice and in favor of using clear and precise language instead._

The language you're suggesting masks the problem.

It's nice that statisticians came up with a mathematical object that happens to have a politically charged name, but the conflation you're making is _not an argument_ , and doesn't address the underlying (inherently political) problem.

 _> In precise terms, what do you think the problem is?_

The precise problem is that things like skin color etc. often have strong predictive power. We've recognized this unfortunate fact -- and its societal implications -- and decided to create laws and social norms that regulate (either restrict or sometimes even require) the use of these properties in certain high-impact decisions.

Unfortunately, algorithms sometimes use these features to make decisions in settings where a typical human wouldn't (or might even get into legal hot water if they did).

Notice that an algorithm can exhibit this behavior without being (statistically) biased.

Now, perhaps you think this problem isn't actually a problem. And you can certainly make the argument that _any form of vernacular-discrimination should be OK as long as it doesn 't exhibit statistical bias_. But that's a separate conversation, and you can't defend that position by playing with definitions. And if you're not making that argument, then it should be clear why vernacular-bias differs from statistical-bias.

<comment><USER20> You and pessimizer have just demonstrated pretty clearly why Techcrunch's language choices are bad.

Pessimizer thinks the article is discussing inaccurate conclusions and that race realism is wrong ( [https://news.ycombinator.com/item?id=13158797](https://news.ycombinator.com/item?id=13158797) ). You think race realism is accurate but we should ignore it. You both read the same article but drew totally different conclusions due to it's imprecise language.

Many examples in the article don't fit your description of the problem at all (e.g. difficulties in image processing, Tay the trolled chatbot, filter bubbles), so I don't think you are correctly describing what the article means by "bias" either. I can't figure it out either; the best I can come up with is "AI-related things that make the author have negative feelings".

I didn't argue in favor of or against your mysterious "vernacular- discrimination" \- how could I when I don't even know what it is? The only thing that I argued is that the imprecise language used by Techcrunch is confusing people and that this is bad.

<comment><USER22> _> You think race realism is accurate but we should ignore_

No, I do not think race realism is accurate. I just think that race realism is not an adequate defense of racial discrimination, AND ALSO that race realism is inaccurate.

Pessimizer and I agree.

 _> Many examples in the article don't fit your description of the problem at all_

You asked me what _I_ think the problem is, not what _I think the article 's author thinks the problem is_. The fact that I emphasize different things is not proof that I misunderstand the article's author.

 _> The only thing that I argued is that the imprecise language used by Techcrunch is confusing people and that this is bad._

Who, exactly, is supposed to be confused?

Subject matter experts should know the difference, and if they don't, that's really their own problem.

The public at large doesn't even know what statistical bias is, so why in the world would they be confused?

No matter how confusing the current state of affairs is, it would be _far more confusing_ if suddenly everyone starting using bias to mean statistical bias. Mostly because 99.9% of the people using the term wouldn't have an adequate grasp of mathematics to even know to which object they are referring. So if your priority is clarity, then keeping around the messy moralized and politicized vernacular notion of bias is far preferable.

 _> I didn't argue in favor of or against your mysterious "vernacular- discrimination" \- how could I when I don't even know what it is? _

Not everything in the world can be mathematically formalized. Most things don't even have fixed meaning over time. If your criticism is genuinely about imprecision, you've got a _lot_ of much lower hanging fruit than "discrimination" and "bias"...

<comment><USER20> _The precise problem is that things like skin color etc. often have strong predictive power...Notice that an algorithm can exhibit this behavior without being (statistically) biased._ \- throwaway729, 2 hours ago [https://news.ycombinator.com/item?id=13159539](https://news.ycombinator.com/item?id=13159539)

 _No, I do not think race realism is accurate._ \- throwaway729, 22 minutes ago [https://news.ycombinator.com/item?id=13160709](https://news.ycombinator.com/item?id=13160709)

Whoops!

 _The fact that I emphasize different things is not proof that I misunderstand the article 's author._

Fine - what do you believe the author thinks "bias" means? I.e. what is the underlying concept behind all his examples?

 _Who, exactly, is supposed to be confused?_

Pessimizer, for one, who thinks the problem is inaccurate predictions. 2 hours ago you disagreed with this, but 22 minutes ago you agreed. I'm getting kind of confused.

 _If your criticism is genuinely about imprecision, you 've got a lot of much lower hanging fruit than "discrimination" and "bias"..._

Sure, but this is my field. I give talks about misuse of p-values and the multiple comparison problem, even though there might be other issues worth worrying about. It's just what interests me. The fact that bigger problems exist doesn't mean we shouldn't fix this one.

<comment><USER22> _> Whoops!_

I take race realism to be the sort of thing that posits an inherent relationship between skin color/other physical features, and other innate/intrinsic/genetic properties such as intelligence or criminality -- especially as a prior and when the trait is normative and negative. So "dark skinned people are less intelligent" is race realism, but "dark skinned people are treated poorly by the political establishment" is not race realism. (We're far afield, I don't mean for this thread to devolve into a definition or debate about race realism -- I'm just saying what I take race realism to mean.)

The important point isn't a precise characterization. Rather, the important point is this:

It's possible for race to be predictive without there being _inherent_ differences between people of different physical attributes. Setup a system in which I take away all green people's life savings at the end of the day with probability .99 if they don't have a house and .5 if they do have a house. Both numbers are .2 for purple people. An unbiased lender can choose not to lend to green people without exhibiting statistical bias -- in fact, color has huge predictive power.

But that predictive power comes from the social system we setup specifically to screw green people, not from _inherent_ differences that are causally related to color posited by race realism.

But this is an extremely obvious observation, so perhaps you meant something different by race realism? In any case, I don't think the disagreement you posited really exists.

The rest of the points you're making are covered elsewhere.

I deal with Real numbers every day, but I don't barge into discussions of epistemology and demand my axioms be used in discussions of a vaguely related but definitely different topic. And I'm careful in pop lectures to point out that Real numbers are just a mathematical object and no more more "real" than natural numbers.

If people in your statistics lectures don't know what bias means, then you should account for this in your teaching and lecturing. I know my statistics lecturer did.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER23> Junk in Junk out - it applies for both machine and human learning.

</comment><comment><USER24> Cognitive bias cheat sheet :) [https://betterhumans.coach.me/cognitive-bias- cheat-sheet-55a...](https://betterhumans.coach.me/cognitive-bias-cheat- sheet-55a472476b18)

</comment><comment><USER25> I struggle to see how data-driven bias is unexpected.</comment>


Why Bitcoin will fail - <AUTHOR> http://meaningofstuff.blogspot.com/2017/12/why-bitcoin-will-fail.html <comment><USER2> The thing about loans, that is borrowed capital that you use to try and create more capital, is that there isn't enough capital to go around. Capitalism does depend on a certain percentages of businesses failing, and that debt being written off.

You also can't make loans with BTC because debt needs to be enforceable. There must be violence behind debt. In the past that meant someone turns you into a slave or breaks your legs. Today the violence has been reduced (you get bad credit score and debt collectors keep calling), but it's still there. States have to have a monopoly on violence to enforce debt.

I don't really agree with where this guy is going, because the entire way loans are used to generate fiat currency isn't really sustainable. David Graeber has talked a lot about every great civilization has needed some form of debt relief at some point, either when a new leader comes in or when the civilization collapses.

People in the ancient world knew the empires they lived under would eventually end. Today in many high income countries, most people cannot see the end.

<comment><USER3> Yeah one has to buy into the premise that debt based money is a good thing but I reject that premise.

At least each BTC represents a certain amount of work (in the form of electricity expended) that's already been performed.

Debt is great as long as there is enough work to be performed to square the accounts.

<comment><USER4> Not really. You only have to buy in the premise that given 2 options:

1) a system with a lot of (risky) debt

2) a system in which debt is impossible

Then have competition between these 2 options. There is no doubt about the outcome. System 1 will devastate system 2 (in that the total economy size of system 1 will be a LOT larger than system 2).

Therefore the Nash equilibrium is a debt based system.

Nobody's claiming there aren't any advantages to a system where debt is not a possibility. I guess people are just claiming that not having debt is too expensive, in terms of missed opportunities.

The strength of bitcoin is the inflexibility and general incompetence of government based money systems. It wouldn't be too hard, I think, for a government to make a money system that would trounce bitcoin. Of course, they'd have to be prepared to trounce banks and most of the financial sector to do this.

</comment></comment></comment><comment><USER5> It's already failed. It's gone from the currency of the future, to a store of a value, to just a pure speculative commodity. Nothing more or less. Use it to make money, and get out.

<comment><USER6> No, you see that's not Bitcoin. That's how different numbers of people perceive or use Bitcoin at different times. Bitcoin is ever adjusting and changing, often making short-term sacrifices and failing to meet certain expectations that people have at the time. It would really fail if a fundamental technical flaw was discovered or if it hit a brick wall where realistic solutions to current problems stopped being actively worked on. So far that hasn't been the case.

So what matters is the technical side, things that are actively being developed, such as the Lightning network, and that at least some entrepreneurs understand this technical side sufficiently enough to build services that translate its fundamental value into things that people can more easily understand and appreciate. Much like the internet in early days.

Someone could go back 20 years and say "where are all these revolutionary things we keep reading about that would be possible? Wild speculations, Internet has failed."

Of course Bitcoin might fail, but I believe something like Bitcoin will succeed -and Bitcoin itself seems like the best candidate at the moment.

</comment></comment><comment><USER7> I've been putting up over 200 of my btc in various loans for over 15 months now. I do this on Bitfinex. It's a double blind loan and can only be used by the receiving party for margin trading. That party has to have maintain a certain reserve to be able to allow an automated stop-loss.

This system is fully automated and I've gotten some interesting rates on btc that would otherwise just have been idle.

<comment><USER8> 200 BTC * $15k/BTC = $3,000,000

You have $3m of BTC?

<comment><USER9> 200 of

</comment></comment></comment><comment><USER10> You are talking about a short time horizon. Yes, bitcoin will possibly crash, but that is when a large part of the speculative play money will leave the eco system. Bitcoin could still gain value afterwards if there will be an increasing utility.

<comment><USER11> you mean like dogecoin ?

</comment></comment><comment><USER12> Good read.

There are more mature cryptocurrencies emerging that are based on 'loans' as the author describes. The Maker Project's stable coin 'Dai' is an example, which is only created by collateralized debt positions. However, the debt position is currently based on ETH, which is 'backed' by speculation.

</comment><comment><USER13> In Poloniex you can lend money. Would that count as loans? There are pre-mined cryptocurrencies like Ripple and Stellar that doesn't need proof of work to solve the double spending problem, and thus doesn't need lots of electricity to work.

</comment><comment><USER14> Has anyone tried to "peg" a cryptocurrency to USD? That seems like an ideal thing to have... Somehow change reward size based on exchange rate. That is increase supply when above 1:1 and decrease when below.

<comment><USER15> MakerDAO just launched its stablecoin, DAI. It maintains stability by a complex system of smart contracts and CDPs. The problem is much more difficult than simply increasing/decreasing supply.

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

<comment><USER14> Looks interesting! The trusted oracle part seems concerning as a single point of failure but I suppose it's necessary.

<comment><USER16> There's also BaseCoin, another attempt at a "stable coin" with prominent investors:

[https://www.coindesk.com/basecoin- revealed-a16z-metastable-s...](https://www.coindesk.com/basecoin- revealed-a16z-metastable-seek-crypto-holy-grail-stable-token/)

</comment></comment></comment></comment><comment><USER17> Bitcoin looks like a ponzi scheme to me as there is no value to a Bitcoin other than that of itself.

Currencies used to represent the gold stored by each government. These days currency represent the trust that the system that uses the currency, will trade goods for it. However we had to go through the gold equivalent to get here.

Bitcoin doesn't represent anything and has nothing to back it up.

<comment><USER18> Bitcoin's value is connected to the costs to continuously mine it and consequently keep the blockchain intact and secure.

These costs include electricity, mining equipment, personnel, and warehousing.

As with normal equity valuation, these costs would be transparent, allowing for valuation to take place.

Since Bitcoin is decentralized and its "employees", or miners, are disparate; costs are not known.

This information asymmetry is one cause of Bitcoin's unbounded price discovery.

<comment><USER17> What value do they create? Sure they burn electricity and energy but they don't create any value other than the bitcoin value itself.

<comment><USER18> The incorruptibility of the ledger is the value.

<comment><USER17> > The incorruptibility of the ledger is the value.

It cannot feed me, it cannot protect me from the elements, I cannot grow food on it and is not a tool to help me create something desirable by the others. Hence it has no value.

<comment><USER18> Bitcoin, being a form of wealth, can give you all the things you just described.

That it has no value during an apocalyptic scenario, does not mean it does not have value in the non-apocalyptic times.

<comment><USER17> You cannot call it wealth to describe its value. You are just saying that the value of it is in itself. Which is what I am supporting as well.

In order for me to exchange it for goods, as you described, there must be someone who has the goods and is willing to exchange them for bitcoin. There is no real reason for someone to do so.

It is not an apocalyptic scenario. That's what 90% if the population fight for, day in day out. Food, protection from the elements, security.

<comment><USER18> You are throwing away the possibility that there is an intrinsic value in Bitcoin, more related to socio-economic-political concerns, than survival. There is not only one domain in life.

<comment><USER17> Ok, cool. We are getting somewhere now. What does Bitcoin offer in that perspective?

<comment><USER18> An incorruptible ledger resistant to the control of any individual, corporation, or state. Bitcoin may fail in its implementation of this goal. The future is still to be determined.

Bitcoin's underlying technology creates the possibility of decentralized governance, starting with currency, which is the connecting link between actors in societies based on economy.

Why such a future might be beneficial to mankind is that banking and finance being controlled by a few has led to errors with systemic consequences.

See the 2008 financial crisis and hyperinflation in Venezuela and Zimbabwe. See the seizure of funds by governments from individuals in Greek and Cyprus, scenarios where many of the affected did not write their own doom (others wrote it for them).

<comment><USER19> I think you're conflating the value of a block chain with the value of bitcoin.

Why is bitcoin more valuable in this regard than any other altcoin?

<comment><USER20> Because it being the first successful implementation...it has 9 years of history at this point. It has proven itself resilient to hacks, ddos, Chinese bans, threats of regulation, exchange scandals, and bad press, and yet the protocol just keeps humming along. It being the first, all other cryptos are traded in terms of BTC. The network effect, and the mind share of BTC are substantial at this point. BTC has one largely fixable problem: it doesn't scale. Lightning network tests prove that it can if a second layer is added. Once this rolls out, the game will change.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


BlackBerry reports Q4 2018 earnings; loss narrowed but revenue slid - <AUTHOR> https://news.alphastreet.com/blackberry-reports-q4-2018-earnings-loss-narrowed-but-revenue-slid/ <comment><USER2> With all the retro fads going on I wish they would release a basic PDA with the BlackBerry retro style. For $30 it would sell out in a matter of minutes.</comment>


Show HN: Meatshields – Write your own strategy game AI - <AUTHOR> Hello, HN! I've posted a couple times here to get feedback on a strategy game I've been working on called Meatshields. All of your suggestions and feedback have been EXTREMELY helpful so I want to thank everyone here once again for generously helping me iron out kinks in the game.
One big request I got the last time I showed the game was the ability to write your own AI for it. I thought about it and realized that would be totally do-able! The downside is that you have to host the AI service yourself, so it's sort of BYOAI, but it won't need to support a massive ton of requests or anything like that yet so free webservice hosting like Heroku will be more than sufficient.
One of our wonderfully brilliant community members, asah, is currently working on his own AI for the game in python. He hopes to implement machine learning and beat the meta :). He has graciously shared his github project with us. You can check out what he's got so far at https://github.com/asah/meatshields-python-botkit
I've also included a text-dump of my basic example bot core AI file in PHP, just to give you an idea of how that works. Warning, it's a little ugly because I just whipped it together as an example community-created bot. It doesn't include the full service architecture like handling the necessary incoming requests. https://pastebin.com/eEY1YYQR
If you want to check out the docs for creating an AI, take a look at https://meatshields.com/createBotGuide.php
And of course, please do come check out the game itself at https://meatshields.com
I hope to see you in a game! <comment><USER2> Can confirm! meatshields is both a lot of fun and also a fascinating bot- writing exercise.</comment>


Skype releases Android video calling app - <AUTHOR> http://dock-of-bay.blogspot.com/2011/06/skype-releases-android-video-calling.html <comment><USER2> It works on four models of phone.</comment>


AOL Smacks Startup for Using CrunchBase Content It Gave Away - <AUTHOR> http://www.wired.com/threatlevel/2013/11/aol-crunchbase-cc-flap/

<comment><USER2> We built People+ with the understanding that CrunchBase was a Creative Commons resource, that the startup community has contributed to for years and believing all the promotion that has been put out encouraging people to develop on the platform.

We are pretty shocked when we were told that AOL considered this information their property and that we needed to stop using the data because we were a "competitor".

</comment><comment><USER3> I've only had one interaction with Crunchbase CEO Matt Kaufman: he rescinded my friend's offer to work at Crunchbase because my friend tried to negotiate the offer. Matt was clear that the attempted negotiation was the reason for the revocation and was quite judgmental about the whole thing.

</comment><comment><USER4> Seems pretty darn disingenuous on CrunchBase's part. Don't they tout their "public" nature at every opportunity they can get? Seem the link below [1] for example:

      Data on CrunchBase is public, and members of the venture program are welcome to share their CrunchBase spreadsheets as they see fit.

No guys, your data is not public if you pull shenanigans like this.

[1] [http://techcrunch.com/2013/10/22/crunchbase-venture- program-...](http://techcrunch.com/2013/10/22/crunchbase-venture-program- hits-400-and-launches-tools-to-help-investors-manage-their-public-data/)

</comment><comment><USER5> Starting early this year, Crunchbase had made a huge push to encourage developers to build application with their data.

'The CB team is going to be regularly featuring guest posts from any developer who has done something smart and useful with the data, provided that: -Your application is publicly accessible -Your application attributes CrunchBase according to the CrunchBase API TOS -Your application directs users to CrunchBase to update missing or out-dated information'

People+ complied with all their requirements (especially with the attribution) but it didn't help

</comment><comment><USER6> This makes no sense. If it's under a Creative Commons license and they've encouraged people to use it, I don't see what the problem is. Much of the data was provided to them for free anyway.

</comment><comment><USER7> So legally how can @AOL claim that @creativecommons Attribution License [CC- BY] licensed content can't be used by @PeoplePlus [http://wrd.cm/HudPS7...](http://wrd.cm/HudPS7...)? I'm confused.

[https://twitter.com/preillyme/status/397771582367477760](https://twitter.com/preillyme/status/397771582367477760)

</comment><comment><USER8> I wonder what this means for startups building their product on Crunchbase like Datafox.co, Mattermark and Inkwire.io?

Seems analogous in some ways to what Twitter did with its API and data and developer some time ago.

<comment><USER2> I had a similar thought. It seems that CrunchBase has bigger plans and will be expanding its offerings to become competitive with other startups that are relying on their platform.

</comment></comment><comment><USER9> That's simply disgusting.</comment>


Hard to Study: The Difficulty in Measuring Marijuana's Value - <AUTHOR> http://www.hudson.org/research/10604-hard-to-study-the-difficulty-in-measuring-marijuana-s-value <comment><USER2> Date: 2014</comment>


Ask HN: How do you deal with "Not happy, but maybe I'll regret giving it up"? - <AUTHOR> Based on this xkcd: https://www.xkcd.com/1768/
(Original title, trimmed by the limit: How do you deal with a
"I'm not really happy here, but maybe this is the best I can expect and I'll regret giving it up." situation?)
What is your thought process when dealing with a supbar situation and calculating risks to change it? Whether being a dead end job, a tiring relationship or a wrong life choice previously made?
What steps you approach to know if you are making the most promising decision? <comment><USER2> This is too broad of a question. A tiring relationship is different from a dead end job which is different from eating the same sandwich at the same bar every Thursday.

If you want advice to broadly apply to any situation then the best I could think of is "you miss 100% of the shots you don't take". If there's a remote chance you can hit that shot, then take it. If you miss, figure out what went wrong and fix your situation from there. The best ability we have is to learn from other people mistakes. When that's not possible then learning from our own is typically good enough.</comment>