The Idea That Launched a Thousand Civilisations (2012) [pdf] - <AUTHOR> http://www2.psych.ubc.ca/~ara/Manuscripts/Norenzayan_NewScientist2012.pdf <comment><USER3> I think the transition in human history from the age of Gilgamesh to the Homeric Epics and The Old Testament was very abrupt. Gilgamesh described a relatively peaceful society without much focus on lineage and vengeance where the characters were at times remorseful for being violent toward monsters they met in the forest for example. The Homeric epics and The Old Testament in contrast are filled with constant warfare, and brutality and a pathological focus on lineage. Has anyone else noticed this? It's not something that would have ever occurred to me without actually reading a lot of ancient literature.

<comment><USER4> Gilgamesh described a world in which men and gods were equally capricious, and the strong took everything from the weak justly by virtue of their strength, justly, because there was no concept of justice (again, only divine caprice.)

<comment><USER5> There was a concept of justice, if the pre-socratics are to be believed (and if their view reflected the earlier views - which I conjecture it did). Thrasymachus (the Sophist) gives his understanding of justice and injustice as "justice is what is advantageous to the stronger, while injustice is to one's own profit and advantage". So you are right in saying that "the strong took everything from the weak justly by virtue of their strength" but this was seen as justice being done (the weak having no right to do anything about it. Might makes right, the law of the jungle, pre-Axial Age justice.

</comment></comment></comment><comment><USER6> Passionating.

I see religions mostly as Conway's game of life - blips of colors fighting for territory using various ways, sometimes removing the competition, sometimes behing destroyed by competition, sometimes dying by themselves, etc.

It's like competition in a soul market :-)

But in what they do, they seem push humanity forward, to give a reason, a hope.

Yet I would be worried if a religion achieved dominant status (monopoly) in a way that could be used to eradicate newcomers and innovation.

We already have an oligopoly - see the problems it makes on a worldwide scale.

<comment><USER7> > But in what they do, they seem push humanity forward, to give a reason, a > hope.

I'd argue that the surviving religions are more like the strongest viruses of the mind, not really the most useful mutations for society. You could look at the progress of societies and religions as the co-evolution of hosts and parasites, rather than of a single species acquiring useful new features :)

<comment><USER8> A good parasite never kills its host.

I'd say the truth is somewhere in between. Religions _were_ a useful adaption. But after being supplanted by more useful mind viruses (like philosophy, which is itself becoming outdated; or formal justice systems), then their utility no longer mattered - just their ability to cling on.

<comment><USER9> The formal justice system is based on the Talmud. It's filled with "case studies" of edge cases that were used to set precedent of interpretation.

<comment><USER10> Because what we really need right now is a "formal justice systems are a Jewish conspiracy" meme going around.

</comment></comment></comment></comment></comment><comment><USER11> I don't agree with the assumption that religion is obviously man-made. Another possibility is that religion is a response to something that is actually out there. Primitive societies' interaction with the spirits is usually fear of the spirits and/or trying to control/manipulate the spirits to get what they want which they are unable to provide themselves. One explanation is that they act out of ignorance. Another explanation is that they act out of some sort of knowledge that we have written off.

Furthermore, religions claim to have a revelation of truth not discoverable by the western, Enlightenment-based assumptions that the world consists of only the physical reality. There could actually be a spiritual reality, and one of the religions might actually be correct. For example, I personally think that the Christian worldview that we are all selfish (in opposition to God, who is giving, since he needs nothing) explains a lot of things: poverty, oppression, why we can't stop fighting among ourselves, why communes fail, among others.

Religion might just be made up; some certainly seem to be. But, it might also be that some are actually right, and if one of them is right, it might have profound implications on how we live our lives. For example, if there really is a God who loves us so much that he died so that we could eternally relate to him as a child deeply loved by a father, we do ourselves a disservice by assuming that it is just made up. Christianity might be wrong, some other truth claim might be right, but until we have established that religions do not reflect reality, we should at least remain open to that possibility.

<comment><USER12> > one of the religions might actually be correct

How would you propose that we set about determining which religion or mythology is "correct"?

> until we have established that religions do not reflect reality, we should > at least remain open to that possibility.

The burden of proof is on the religious. If they can offer testable, reproducible proof that a religion makes valid predictions in specific circumstances, and explains how the universe operates, then they should do so. Once they have, we can call it "science".

In the meantime, as Christopher Hitchens said, "that which can be asserted without evidence, can be dismissed without evidence."

</comment></comment><comment><USER13> Interesting study <http://religions.pewforum.org/reports> suggesting that there is a correlation between religion and birth rate, the obvious conclusion is that religious people are more traditional. Another explanation is that as humans evolved the ability to have rational thought, there needed to be a mechanism to for people to feel that there was something larger than themselves, otherwise, through sheer reason one would conclude that having children would decrease their chance of individual survival. ,Although, hormones probably also contribute to the suspension of reason at times as well.

<comment><USER14> I wonder how much that has to do with religious groups' dislike for contraception and their leaders' urging followers to maximize reproduction.

<comment><USER15> Google "quiverfull" if you haven't heard of it. It's an extreme position, but ideologically consistent with much of organized religion.

<comment><USER14> I hadn't heard that term before, but it's exactly what I meant.

</comment></comment></comment></comment><comment><USER16> Interesting article, thanks for sharing.

In particular I liked the numerous little tidbits such as _Even subtle exposure to drawings resembling eyes encourages good behaviour towards strangers_.

Perhaps changing the title to something more grabbing might help to generate interest, eg. "Hacking Society: Religion and Surveillance".

<comment><USER17> I wonder what the impact is of reddit's look of disapproval: ಠ_ಠ?

<comment><AUTHOR> A little off-topic, but I'm very impressed that when I selected, copied, and pasted the emoticon into a Google search, Google gave me the explanation of the emoticon

[http://knowyourmeme.com/memes/%E0%B2%A0_%E0%B2%A0-look-of- di...](http://knowyourmeme.com/memes/%E0%B2%A0_%E0%B2%A0-look-of-disapproval)

as the top search result.

<comment><USER16> I am also impressed but less surprised. Once you surpass a certain basic level of search functionality with a monolingual frame of reference, you realise that you are going to have to tackle such things; for example to facilitate foreign language or mathematical search. Anything that exceeds such-and-such a frequency as a 'word' object is going to be treated as such, even if its traditionally-framed linguistic provenance is unknown.

</comment></comment></comment></comment><comment><USER18> In Guns Germs and Steel Jared Diamond states that "civilization is the result of a chain of developments, each made possible by certain preconditions." Interestingly religion never was one of those preconditions.

<comment><USER19> Religion seems more an emergent property of human experience. Or should I say "spirituality" out of which religion emerges.

<comment><USER20> I wonder if this is the best place to put it, but one of the better books I read on religion (named literally: Religion explained) did a multi-factor approach to religion and is one of the better books I've read on this subject.

Some of the reasons:

1) We're hard wired to remember and transmit some types of information - <USER2> to remember the X different types of blood vessels? Hard problem. Want to remember a story about a mountain that eats people? Much Easier

2) Religion and religious structures provide order

3) Religious systems explain and help handle death

4) They provide a form of control against randomness (pray and your child will not die.)

5) Religious systems as social moderators and interaction protocols

6) Act as the super set for superstition and offer explanations and systems to handle unexplained events.

I may have missed or mixed a few points, (Its been a while.)

ALL these reasons combined, ensure that religion will be always be created, and it fills, or ends up filling, multiple key niches human beings encounter

And finally because of our internal wiring, we will always end up remembering and building on these traditions.

So as you say, religion for many reasons really is an emergent property of human existence.

</comment></comment></comment><comment><USER21> Faith always helped people in hard times, and it gave an opportunity to explain things (like natural disasters) that the science couldn't explain then. Indeed religion is an important part of human's history, but what really launched civilizations was the imagination (which leads to creativity).

</comment><comment><USER22> "While atheists think of their disbelief as a private matter of conscience, believers treat their absence of belief in supernatural surveillance as a threat to cooperation and honesty".

Yeesh, that's sort of an insulting (and rather broad) conclusion to draw about religious people. It seems akin to saying "Religious people are too simple- minded to understand the concept of morality; They can only conceive of good behavior enforced by the threat of torture/violence/all the other stuff that hell entails."

<comment><USER23> Are you arguing that it's false, or merely stating that it's not a nice thing to say?

<comment><USER22> Well I wouldn't presume to say whether it's false or true; just that it's a pretty damning conclusion, if true.

</comment></comment></comment><comment><USER24> Some of the other articles from the "God Issue" can be found here: [http://www.forteantimes.com/forum/viewtopic.php?p=1199197...](http://www.forteantimes.com/forum/viewtopic.php?p=1199197&sid=43745c1d2e5d0a903d02f04d1d3ade56)

</comment><comment><USER14> If religion were a glue to bind disparate people, wouldn't religious communes prove successful while secular ones failed? Yet both types fail.

<comment><USER9> Communes are a tribal configuration. Religion is a source of success because it lets people expand beyond tribal society.

<comment><USER12> It's a way of extending the "tribe" to large numbers of strangers?

<comment><USER9> Tribes max out in size around 50 people. They also tend to participate in tribal warfare with those not of their kin. Religion lets people join together around a common belief rather than a common bloodline.</comment></comment></comment></comment>


Decoupling inlined UI code - <AUTHOR> http://twistedoakstudios.com/blog/Post1694_decoupling-inlined-ui-code

<comment><USER2> This is great point about a problem I've had in my early days of GUI programming.

I'd take the author's suggestion a bit further: in terms of MVC a Controller should always call the appropriate function on its Model but the Model should check for an appropriate state before performing the requested action.

Collecting state information in the Model would also make it easier for Views to adjust their appearance after a state change since there would only be one source of this information.

</comment><comment><USER3> While this example looks pretty good now with just that limited functionality, if you continued to use this pattern across a complex UI, your Setup() function is going to be 1000 lines long and likely incomprehensible.

I like the idea, but I'm pretty sure there are nicer ways to set that up than an arcane looking IObservable block inside a Setup() function. I guess it's just for demonstration though, and in a real UI he would have those off in their respective controllers and setup in their own methods.

<comment><USER4> > your Setup() function is going to be 1000 lines long and likely > incomprehensible

Have you worked on a system that used these principles, and found them to be inadequate, beyond an off-the-cuff read of this blog post?

I ask because I have built a system like this, and if your nightmare 1,000-line Setup() function is true, then my experience is that implementing the same behavior imperatively would be 2,000+ lines of spaghetti code that is an even worse nightmare.

For behavior that changes on multiple conditions (just like in the OP), declarative programming is a win. Otherwise you end up coding "oh, wait, now do _this_ " is in 2-3 different places, and invariably forget to keep all of them in sync you're making changes.

<comment><USER5> I've always found such systems intolerably difficult to debug. Is there an option for 1,000 lines of imperative non-spaghetti?

I've found that keeping the bulk of UI code in one place is the key to keeping these things manageable. Ideally, each widget's handler should do little more than affect whatever data it needs to affect, then call another function that updates all widgets' states according to the latest data.

For stateful sequences of events (e.g., mouse drags) the rx-style approach is a bit more compelling. Imperative code for that stuff is always ugly. But you still seem to have the same problem of debuggability if you use rx, and backing out of a state looks like it might be a bit of a chore.

Call me a Philistine, call me a barbarian...

</comment></comment></comment><comment><USER6> This does increase code complexity and make things harder to understand.

You can see a lot of this in Android's framework and it makes modifying the simplest thing require a lot of looking around just to understand the code base.

I think the approach itself is okay, but this is just the con in my view.

</comment><comment><USER7> I believe this is the architecture pattern known as event pooling. Though I could be looking at it wrong.

</comment><comment><USER8> I believe this is addressed by the Mediator pattern in the GoF's book.

</comment><comment><USER9> AngularJS does this super well :)

<comment><USER4> I generally agree, although for my taste I don't like how Angular allows declaring complex conditions inside the view as inline expressions.

Admittedly, it is succinct, and I'm being pedantic, but it seems like keeping the expressions in the controllers and just exposing them to the view as single, opaque values would be better separation of concerns.

(E.g. instead of "ng:show=a && b && c", you would only be allowed to do "ng:show=nowInStateFoo" and in the controller you'd define nowInStateFoo=a && b && c".)

Hm. I suppose you could actually build Angular applications this way, by opting in to the extra ceremony.</comment></comment>


Ask HN: Domain privacy? - <AUTHOR> I've been using domain privacy on my domains, but my registrar recently increased its rates by quite a bit.  I found that I would get quite a bit of spam when I made my details public.  Have you found domain privacy to be useful?  What's a good registrar offering the service at a fair price? <comment><USER2> Domain privacy is not just about email spam. First of all, you will also get letter spam and quite a few scammers that try to trick you into moving your domain to their services by claiming to be "The Domain Registry Of America" (a London-based company, which contacted me multiple times).

Second issue is privacy. Despite (rather useles) efforts by registrars and registries to prevent mass queries to Whois servers, there are _huge_ searchable databases of Whois data. This makes it possible for comptetitors to "spy" on your projects, for crooks to determine your wealth and location, for lunatics/stalkers to be always up to date on your location, etc.

I personally use nearlyfreespeech.net for domains and domain privacy.

</comment><comment><USER3> It's been said often before, but namecheap.com seems worth a look. Their "WhoisGuard" (or whatever it's called) is "free" the first year (I'm not sure about transfers) and about $3 per year after that. And their domain name pricing for the "usual" TDL's is about $10. There's always some coupon that will save you a fraction of a buck, sometimes more, if you google "namecheap coupon".

Now that namecheap has implemented persistent HTTPS throughout a logged on session, I don't feel uncomfortable mentioning them.

gandi.net and nearlyfreespeech.net are mentioned here frequently, as well (e.g. prior comments here -- vote them up, not me). I don't have personal experience with them.

I don't know how suitable these providers are for "commercial grade" registrations. In my "real" work, other people buy those thing. (I'd be interested in any informed perspectives on this.)

</comment><comment><USER4> I got rid of domain privacy a few years ago. I don't get all that much spam to my personal e-mail account which is associated with my domains. I've also heard that some people see domain privacy as a sign of a potentially scammy/spammy site.

</comment><comment><USER5> I've never paid for domain privacy and rolled my own instead: <http://news.ycombinator.com/item?id=635193>

Since writing that post I've switched to using a real, physical address and I list my company's phone number instead. As far as I can tell, none of the junk mail, phone calls and spam I get (which is hardly any at all) are due to my whois information.

</comment><comment><USER6> Domain privacy is free (for individuals) at gandi, but the details vary per domain: for .com, .net, .org, .info, .biz, .name, tv, and .cc they'll hide your physical location but not name. For some of the country TLDs they'll hide your name as well.

<http://www.gandi.net/domain/whois></comment>


Does 4K display result in productivity loss? - <AUTHOR> We've recently upgraded our developers, team of 20 with retina displays and recorded 20% productivity drop. Does 4K display have any effect on productivity, coding being the main task here? Is there any research on this? <comment><USER2> What is the refresh rate and latency?

I have two monitors on my desk, One of them has a very high resolution, but with noticeably higher latency than the other.

When using the high resolution / high-latency display, I notice that I start to feel more clumsy, frustrated and stressed, so (despite all of the gorgeous pixels), I tend to use it just as a 'side display' for static documents and reference material ...

I think latency could be a critical factor here.

</comment><comment><USER3> The productivity drop I see is that machines spiking CPU and apps like sketch struggling to keep up with updates and refresh. When that starts then devs and designers start tweaking settings and googling answers and boom. 1 hour gone to IT issues. Swapping adapters. Swapping cables. Cycle continues...

</comment><comment><USER4> I run two HP Z32x 4K monitors off an nvidia 1060. Text is easy to see. Lots of pixels. Very little alt-tab. Lots of productivity. So my environment isn't really about retina and HiDPI,

On the other hand, take a look at your developer's postures: are they leaning/squinting into the screen? Are they using 1:1 pixels, or scaling?

What does the retina get you when one is a developer?

Coming back to what I said, I have large monitors so that I can make use of and see the pixels. Any thing smaller would probably be a waste of 4K unless I had really good eye-sight.

</comment><comment><USER5> I just upgraded myself to a 4K 28" monitor. Mine has 1ms response time. I noticed a _slight_ loss of productivity in the initial stage, but really just because I was getting used to it. Now I'd say it's increasing productivity since I don't have to Alt+Tab all the time anymore. I can fit 4 source files comfortably now. So, in regards to your drop in productivity, I'd say give it time.

</comment><comment><USER6> How did you measure the productivity drop?

</comment><comment><USER7> It's harder to find suitable wallpaper for HiDPI display.

But if serious, there may be some problems with adapting specific software to run HiDPI.</comment>


Show HN: Domestica – Manage Your Successful Household - <AUTHOR> https://about.domestica.app <comment><AUTHOR> Hello HN, I recently launched my side project, Domestica.

It's a comprehensive household management platform that I've been building for the past two years--instead of multiple apps to manage every niche household function, why not combine and integrate everything? The MVP focuses on budgeting, cooking, and shopping, and I have a lot of other ideas for areas to expand in (task management will most likely come next). It's currently a SaaS solution, but I'm actively looking for feedback on how best to deliver a hosted solution.

From a tech stack standpoint, I chose Go for the backend and TypeScript/Mithril for the frontend. I plan on writing a blog post around each of these technologies and the pros/cons for a MVP, but I found Mithril to be an absolute pleasure to work with. The API is very small, and the outputted files are quite compact and fast. I opted to go with my own CSS after battling CSS frameworks, and it allowed me to create the interface I wanted--clean, minimal, and responsive.

</comment><comment><USER2> Interesting idea but here are a few points you might want to think about:

1\. I don't imagine that most people us an app for the daily running of a household. I can see this working better for students in private accommodation, room mates, etc. Less so for couples and families.

2\. The website doesn't really tell me why this will make my household successful. What's the value proposition? All I'm seeing just now is actually another layer of life admin as I need to input lots of data in the app.

3\. The design could really use some work. That's not to be mean, but right now it's not hugely appealing and I nearly closed the tab immediately. It looks like the sort of system you might tolerate at work, but wouldn't want to use as part of your personal life. I'd recommend checking out some tips by Steve Schoger for design, consider using a theme, or paying someone to do this if you don't have time. It just doesn't really resonate with a potential user and erodes trust.

4\. Who are you marketing this to? Think about it and tailor your copy / design accordingly.

Hope that helps!

</comment><comment><USER3> > This site can't be reached

> about.domestica.app's server IP address could not be found.</comment>


You Should Run Your Startup Like a Cult. Here's How - <AUTHOR> http://www.wired.com/2014/09/run-startup-like-cult-heres/?mbid=social_twitter

<comment><USER2> "Your stock options will be worth more here than elsewhere." "You'll get to work with the smartest people in the world." "You can help solve the world's most challenging problems."

I should make a catchphrase bingo sheet and bring it to interviews.

<comment><USER3> In the absence of anything real and tangible where every company is trying to trick people into giving them free data so that they can go and sell it to the highest bidder you most definitely have to run your company like a cult. Otherwise people will see the whole thing for what it is and we can't have any of that.

Also, the weird narrative of extremes that is prevalent in the startup ecosystem is not helpful. Rockstars, ninjas, fanatics, cultists, revolutionaries, etc. does not make for any kind of persuasive argument. Even that article points out at the end it's more about making a mutually agreeable arrangement between the employer and employee more than anything else but that doesn't really make for a compelling headline when phrased in such reasonable terms.</comment></comment>


Ask HN: Is philosophy and coding highly related? - <AUTHOR> I started to like philosophy in high school and afterwards kept reading books, same time coding. Now I realize that these two are highly related because the main thing in both areas is thinking in high abstraction levels.<p>You connect and build relations between nonphysical blocks, notions and in the end they produce meaningful results surprisingly. Where philosophy helps you find and label things in your life with meaning and doing so you build a thinking structure, code helps you connect functions, which I call thought, objects and then build a structure, more like a thinking path. Just like your brain, it sees input and produces outputs according to its structure. What do you think? <comment><USER2> No doubt, and the connection is building abstractions and pushing/popping between layers of thought</comment>


Self-Discipline: Persistence - <AUTHOR> http://www.stevepavlina.com/blog/2005/06/self-discipline-persistence/

<comment><USER2> Quoting the article:

"This was a particularly difficult lesson for me to learn. I had always believed one should never give up, that once you set a goal, you should hang on to the bitter end. The captain goes down with the ship and all that. If I ever failed to finish a project I started, I'd feel very guilty about it.

Eventually I figured out that this is just nonsense."

My thoughts: Louis Sullivan said something like "The only way to find the truth is to take everything they say, and to test it out for yourself. By doing so you will realize that many things they say are true are not true and many things they say are not true are true."

And he is so right. The amount of false stuff we learn through our life is mind boggling. To make things worse we sometimes invent stuff ourselves.</comment>


Backslapping Ruby's average performance once again - <AUTHOR> http://codehappy.wordpress.com/2008/07/19/backslapping-rubys-average-performance-once-again/ <comment><USER2> The application, BumperSticker, simply serves out customized images to users - online bumper stickers

The vehicle, Space Shuttle, simply carries a payload a few miles off the surface of the Earth.

The author gives no basis for comparison, what would the identical app in Python require for hardware? Also, the app does more than just serve up images. It seems that the most common experience with RoR is that it is less performant than other Languages/Frameworks, but this article can hardly be considered proof of that.

</comment><comment><USER3> Let's see, 12 of the machines are database and web server machines. Here's a hint--ruby doesn't make you need particularly more or less web servers or mysql machines. The fact that the author bemoans this betrays that he doesn't especially understand what he's talking about.

They are serving around 3/4 of a billion page views a month. That's billion with a B. So yeah, I'd give them a slap on the back for that. Would it be cooler if they needed 9 app servers instead of 13--sure, but come on.

<comment><USER4> Instead of hundreds per second I see you've switched to billions with a "B" per month? No shit, Sherlock. How about Trillions with a "T" per year? You should also try measuring shit in football fields just to make your arguments more impressive.

<comment><USER3> Backing into per-second transactions from larger numbers is far more suspect, Holmes. Those transactions _could_ be spread out perfectly evenly over the course of a day (hint: not likely), _or_ 80% of that traffic might come in a 6 hour window in a pattern shaped like a bell.

</comment></comment></comment><comment><USER5> It's not very likely that the 27 million requests per day was divided entirely evenly over the 24 hours. Assuming lows and highs, those requests could well exceed 1000 requests /sec at peak times.

The data is really open to interpretation, which would allow you to draw any conclusion from it, unless a more detailed breakdown of lows/highs was provided.

</comment><comment><USER6> Wow... The amount of hardware required for that application is just horrifying...

I'm really not sure what to think of this. I know Ruby isn't a speed demon, but 25 servers to serve up a few hundred images per second is just insane. These articles about scaling Ruby/Rails apps remind me a bit of those old Java/EJB/SuperEnterpriseEdition/TimeSink hello world examples that took 80+ lines of code... only with hardware.

I'm not a big Ruby fan, but I have a hard time believing that this is representative of the experience one could expect to have scaling a Ruby application. Can anyone here share some personal experience? All that seems to be out there is the typical Twitter bashing kind of stuff.

By the way, I think this is the article the blog refers to: <http://blog.linkedin.com/blog/2008/06/web-scalability.html>

<comment><USER7> They're not just serving up images - hundreds of thousands of images are being uploaded daily and millions more are being sent to different users every day.

It's not like a blog or digg, or even YouTube where you can just serve up static files for the most part. Social applications tend to be extremely write-heavy and every request ends up hitting the full Rails stack.

We do around 1/3 of a billion page views per month and we run on about half of those machines. [http://highscalability.com/friends-sale- architecture-300-mil...](http://highscalability.com/friends-sale- architecture-300-million-page-view-month-facebook-ror-app)

</comment></comment><comment><USER8> People seem to like blaming Rails for things that aren't Rails' fault. The stuff that's probably using CPU time is actually generating the image. Getting the data from the user and into the database via a CRUD interface probably doesn't require that much hardware. If it did, that would be a joke, but I doubt that's the problem. (Just like Twitter's problem isn't reading the "What am I doing" form submission and adding it to the database. The hard part is what happens _after_ that, way outside of Rails' control.)

As for the large number of static image servers, that again has nothing to do with Rails.

Anyway, I doubt changing languages would fix the problem. You'd still bottleneck on MySQL (for extracting data), and generating images (since every language uses the same image libraries; all written in C anyway).

In conclusion, without some more data, the author is clueless.

</comment><comment><USER9> Taking the other side for a moment, I think things like EC2 and S3 could help mitigate some of the costs of scaling RoR apps like this. Thought out prior to making rash decisions like buying dedicated servers from Joyent at a high cost, you could possibly save your company quite a bit of cash.

However, I do agree that Ruby (and Rails) needs to get its act together. Sure, its never going to be the best, but the ease of development and deployment and (etc.) makes it very, very hard to turn down.

BTW: 25 servers to service up to 400 images per second is inaccurate. It only took them 8 asset servers to serve that amount of images. Even so, that is pretty ridiculous. I would have to say that they didn't spend time optimizing their asset servers, or anything else other than Ruby. I think it could be done better.

</comment><comment><USER10> This assumes that when scaling up a Rails application, Rails itself is the bottleneck rather than, say, the database.

Honestly, I just find that hard to believe.

If the author wants to write another "gosh, relational databases aren't always perfect for every situation" article, get in line.

<comment><USER8> Well, the 13 app servers aren't bottlenecking on the 4 database servers. If the database was the problem, you wouldn't need 13 app servers.

<comment><USER3> Yeah, but as stated elsewhere, image generation is CPU intensive and there's no indication what drives the need for the app servers. Armchair quarterbacking is fun for the whole family. Let little johnny tell you why your app doesn't scale!

</comment></comment></comment><comment><USER11> Welcome, Redditors, to news.yc!

Let the flame war about Rails begin!</comment>


Huawei Announces Kirin 990 and Kirin 990 5G: Dual SoC Approach, Integrated 5G - <AUTHOR> https://www.anandtech.com/show/14851/huawei-announces-kirin-990-and-kirin-990-5g-dual-soc-approach-integrated-5g-modem <comment><USER2> What's with the non zero axis graphs? This kind of things immediately taints the presentation.

[https://images.anandtech.com/doci/14851/IMG_20190906_111056....](https://images.anandtech.com/doci/14851/IMG_20190906_111056.jpg)

[https://images.anandtech.com/doci/14851/2019-09-06%2011.01.0...](https://images.anandtech.com/doci/14851/2019-09-06%2011.01.03.jpg)

<comment><USER3> I mind less non zero axis graphs than no unit graphs.

<comment><USER4> Apple is doing this for ages....Like how they demonstrate Swift is faster than Python, lol

</comment></comment></comment><comment> dis-sys will be interesting to watch how Kirin 990 based phones are going to perform in EU markets when Google Play services are not allowed to be pre-installed

<comment><USER5> Are there EU sanctions against Huawei? Because the US lifted the ban on US companies selling to Huawei before it really came into effect.

<comment><USER6> The Mate 30 will not have Google services:

[https://www.reuters.com/article/us-huawei-tech-alphabet- idUS...](https://www.reuters.com/article/us-huawei-tech-alphabet- idUSKCN1VI240)

Google, as a US company, can't license (=sell) to Huawei. EU never enters into it.

<comment><USER7> If Huawei can make a set of comparable cloud services (app store, push notifications, maps ...) that runs in the eu under eu law. Then that coupled with the high end hardware they are obviously capable of making would make a very compelling package for an European audience.

This may not be obvious to an American observer but the mistrust of American big tech is quite widespread in certain parts of Europe.

<comment><USER8> > If Huawei can make a set of comparable cloud services...

Lack of YouTube, Google Maps, and GMail will kill it for 90 percent of users.

<comment><USER9> GMail supports SMTP an IMAP access, so they won't lack GMail. Youtube supports web access which frankly is better than the Google App because it doesn't nag you all the time. Google Maps up until recently was just another navigation app which are a dime a dozen. (For a while there it wasn't a particularly good navigation app, but they've really pick up their game recently.) I have no doubt can build replacements for them all.

But all those apps in the app store - that's a problem. Google's lead in speech recognition - that's a problem. Google pay - that's a problem, particularly as the app store is tied into it. Google's lead in image processing and cameras - that's a problem. Google's amazing ability to translate languages - that's a problem.

</comment></comment></comment></comment></comment></comment><comment><USER10> I can't wait for affordable 5G wireless broadband routers to hit the market. 5G has recently arrived in my area and I'd love to upgrade from my Huawei 4G router.

<comment><USER11> Where are you such that it's attractive and that you already use a 4G router? In the US at least cellular internet, wether 4G or 5G, is still cost prohibitive due the high cost data ($/GB).

<comment><USER12> US prices are a joke and are multiple times higher than in other places, e.g. Poland - you can get 50GB/month for 12$. Even better there is special promotion now and it's half of it for 6 months .. 6$/50GB. On top of that this is not sth like 12-months contract and you can cancel it any time.

At the same time I am living in Bay Area paying close to 100$ to Comcast for landline connection because my discount promotion has expired and AT&T is not providing service to my address.

[https://www.play.pl/resources/pdf/2018/Cennik-Oferty-Play- NE...](https://www.play.pl/resources/pdf/2018/Cennik-Oferty-Play-NEXT.pdf)

<comment><USER13> Wow maybe Poland don't have a "communications commission" whose primary task is to protect telco monopolies?

</comment></comment></comment></comment><comment><USER14> These are still ARM based right? How are these legal?

<comment><USER15> ARM is UK afaik and Huawei is not banned in UK. Maybe after brexit US will force UK to ban Huawei in return for a trade deal (IF brexit goes through and I always maintained that brexit would never happen)

<comment><USER16> Owned by a japanese parent company, HQ'd in the UK, designed and, I assume, patent filed in the US, texas iirc

<comment><USER15> I didn't know they were owned by a Japanese company. Which makes this even weirder because Japan is really anti-Huawei. They were the first to ban Huawei.

<comment><USER16> It's currently a subsidiary of Softbank Japan.

</comment></comment></comment></comment></comment><comment><USER17> What about the basephone firmware sending tracking data to China?</comment>


The Teacher - <AUTHOR> http://marioaquino.blogspot.com/2011/09/teacher.html <comment><USER2> I've had the opportunity to speak with Gerry on a couple occasions. He's an incredibly nice and brilliant man. He pulled a postdoc into his office and they talked to me for about an hour on a huge variety of topics. He taught me the Y Combinator, gave me a pocket protector (same as the author's) and signed my copy of SICP. (Hal, unfortunately, was on sabbatical at Google at the time.)

What impressed me about Gerry was the incredibly wide variety of topics he could speak on, not just computer science and electrical engineering but many other hard sciences and I even remember him mentioning something about the ambiguity of ancient Hebrew. He had something intelligent to say about everything. A few other interesting points are that when he was my age (high school) he used his knowledge of chemistry to make explosives for fun, and he had a chair hanging from the ceiling he had built himself. Being around someone that knowledgeable and intelligent has the potential to automatically make you more ambitious, and it's something I recommend every young person do as soon as possible. (PG said something similar about showing founders how to be relentlessly resourceful: <http://news.ycombinator.com/item?id=508048>)

I came back and visited Gerry a few months later for a briefer visit. At the time I was deciding between colleges. He asked me about where I was considering and provided me the most helpful overview of the strengths and weaknesses of each of their cultures. Needless to say, he was a pretty big fan of MIT. ;)

He told me an interesting anecdote about Marvin Minsky that I haven't heard anywhere else so I'll put it here. We were discussing good procrastination. He said Minsky advised putting all mail in a pile, newest on top, and only processing the pile top-down. Then, once a month throw out the bottom half of the pile to save time. "Anything important will come twice," Minsky said.

<comment><USER3> Great insight into the character, thanks!

      "Anything important will come twice," Minsky said.

Next time it may be _more_ important -- bills have a tendency to grow.

</comment></comment><comment><USER4> I was fortunate to have Gerry teaching my section of 6.031 (the predecessor of 6.001). I remember a story he liked to tell about why he thought Marvin Minsky was very smart. Gerry was building some kind of connectionist system -- a neural net or something, I don't recall exactly -- and mentioned to Marvin that he was initializing the weights randomly "so it won't have any preconceptions". Marvin replied, "Of course it will have preconceptions! You just won't know what they are. "

<comment><USER5> This is an "AI Koan" that I've read before. I love all of these, and it's nice to hear that there's some truth to (at least one of) them. <http://www.science.uva.nl/~mes/jargon/s/someaikoans.html>

<comment><USER6> If you looked at the Wikipedia article, you'd see a citation to Levy's _Hackers_ for that AI koan :)

([https://secure.wikimedia.org/wikipedia/en/wiki/AI_koans#Unca...](https://secure.wikimedia.org/wikipedia/en/wiki/AI_koans#Uncarved_block) is not the best Wikipedia article I've worked on, but in some respects, it's one of the more special ones.)

</comment></comment></comment><comment><USER7> I've never been inspired to do programming from a video more than when watching Sussman doing the HP SICP lectures with Hal Abelson. You can feel him barely contain his enthusiasm for the subject. Truly infectious and all you need to get a boost in order to plough into the next chapter of SICP :-)

I'd love to see Gerry Sussman's talk from Strangeloop this year, does anyone know if a video is likely to be available at some point?

<comment><USER8> According to announcements made by Alex at the end of the conf, videos will trickle out slowly but surely on infoq. He hoped the first would be available in a few weeks.

It is definitely worth watching and I suspect worth re-watching many times.

<comment><AUTHOR> That is correct. I will try to make Gerry's one of the first to go up.

<comment><USER9> Followed closely by simple made easy please? I've been describing rich's talk as something I will probably carry with me the rest of my life. We talked for 5-6 hours about the concepts he posed after that keynote. I really want to share it with others now that I'm back at the office.

<comment><AUTHOR> Those are both in the first batch.

</comment></comment></comment></comment></comment><comment><USER10> Its amazing to see what impacts a great educator can make on you... I have never met Gerald, but can tell you that there are these gems of educators out there that have single handedly impacted the lives of so many.

I will never forget how my economics professor at my small state college kept a WSJ out for me every day so I could learn about the world outside of our town in Missouri. Every week he would meet with me and would ask me what I learned from it. At a college where 80% students were first generation college students, it was him that really got a lot of people excited about the world...

His name is Dr. Viran Kharadia

</comment><comment><USER11> I was at MIT when Jerry taught adventures in symbolic programming. pretty fucking awesome class. Also he offers you darjeeling tea if you go to his office. very nice tea.

</comment><comment><USER12> Sounds lime a gem of a person as well as professor. Thanks for sharing!</comment>


Google Drive OSX application is very heavy on the CPU - <AUTHOR>

When running the Google Drive OSX application the CPU goes into overdrive while syncing my local files to the Google servers and pushes the CPU temperature to around 100° Celsius. The temperature is measured with iStats which I have heard is not always reliable but the laptop becomes noticeably hot and the fans kick in. Is anyone else experiencing the same issues? <comment><USER2> Yes, Google Drive for Mac is poorly written. It is taking 2-4% CPU just idling - even when paused. I won't be using it until they get this fixed. [http://johnmarshall4.tumblr.com/post/21864353801/gdrive- suck...](http://johnmarshall4.tumblr.com/post/21864353801/gdrive-sucks-cpu-on- macs)

</comment><comment><USER3> I'm experiencing the same issue. Fans blazing as we speak.</comment>


TechCrunch: WordPress Gives Us The VIP Treatment, Goes Down On Us Again - <AUTHOR> http://techcrunch.com/2010/06/10/wordpress-gives-us-the-vip-treatment-goes-down-on-us-again/

<comment><USER2> Do anybody know how many servers is typically used by WordPress for a "VIP" site like TechCrunch?</comment>


Ask HN: do you have any low end boxes/VPS? If so, what do you do with them? - <AUTHOR>

The more impressive the better. I wonder if there's someone out there who's hosting a 10,000 uniques/day site on a 128MB VPS. I have 3 VPS that i pay roughly £12 a year for. One is a personal VPN, one serves files for a small VB app i'm making and the last one just serves as a place to mess around in and test different configurations out. I also host a site for friends on my Raspberry Pi which is hosted at home (works great btw). I run nginx on everything, but my playground VPS is running Lighttpd as i want to test something new.<p>I get zero to 5 visitors (friends) to my sites at any one day. Due to this, i don't know how well my VPS or my Pi would handle a larger amount of visitors. Are there any recommended tools to test this? <comment><USER2> >I get zero to 5 visitors (friends) to my sites at any one day. Due to this, i don't know how well my VPS or my Pi would handle a larger amount of visitors. Are there any recommended tools to test this?

Google search for 'load testing tools.' Apache's AB ([http://httpd.apache.org/docs/2.2/programs/ab.html](http://httpd.apache.org/docs/2.2/programs/ab.html)) or Locust ( [http://locust.io](http://locust.io) ) will do this for you.

<comment> workhere-io Also Siege ([http://www.joedog.org/siege-home/](http://www.joedog.org/siege- home/)).

</comment></comment><comment><USER3> I have an OVH dedi that I pay $60/month for, I can host all of my projects on it. It's fantastic.

</comment><comment><USER4> Interesting question :) I'd like to know this too!</comment>


Ask HN: Who do you follow on Twitter? - <AUTHOR> <comment><USER2> I usually follow people that i find interesting and sharing good stuff.

I also have an unfollow rule where if someone starts to share something I don't like I just unfollow them.

</comment><comment><USER3> I don't.

</comment><comment><USER4> Nobody really - but after the epic geniusness of Kayne West asking over ___twitter_ __for a billion $ investment in his ideas from Zuck, I should follow Mr. West...

I've literally put my cloud deployment plans for 2016 on hold until his "Luxury Cloud Services" product can be launched!!

Did you know that gold is a good conductor of electricity?

We used to say "nice grill" to those thugs who had gold teeth, haha jokes on us!! but now it will be the new gold-plated faceplates for Facebook's latest release on the open compute platform.

The faceplates, which Facebook stupidly got rid of in open compute, will now be gold plated. This will ionize the air providing a luxury environment for these select 1% of their data center infrastructure along with gold plated monster cabling and exclusively hosted in a Kanye approved luxury cluster.

This will allow his "Luxury Search Engine" exclusive access to all the au domains he hosts from there where he can influence such things as Home Holograms and Personal Protection!!!

The Internet is such a beautiful place!!!!

<comment><USER5> What does Kanye West have to do with thugs.

<comment><USER4> IQ?

<comment><USER5> I haven't really followed his career, but he's never struck me as being dumb? Wiki says he got a scholarship to art school (and his mom was a university professor).</comment></comment></comment></comment>


iOS 11 Horror Story: The Rise and Fall of iOS Security - <AUTHOR> https://blog.elcomsoft.com/2017/11/ios-11-horror-story-the-rise-and-fall-of-ios-security/ <comment><USER2> All things considered, with a six digit passcode and "erase all data...after 10 failed attempts" turned on, you reduce the likelihood of someone breaking in to the point of having no need to worry. I agree with the article in that iOS11 has taken a position of convenience over security (compared to previous iOS releases), it's assuming someone gains your passcode. That's a pretty big assumption.

<comment><USER3> And the feds have the million dollar bypass rig or access to third-parties that provide services, which probably supports 4-6 digits. 8-10 might be a better idea.

</comment></comment><comment><AUTHOR> This got posted yesterday and got ignored. I don't fully understand why. Unless I'm totally misunderstanding, this is a really big deal. Compromise of _any_ iDevice I own can result in the total compromise of my Apple ID, and potentially bricking all of my other iDevices in the process! Whaaaaaat is going on!?</comment>


Three Best Online Image Editors - <AUTHOR> http://www.chromebookhq.com/three-best-online-image-editors-making-the-switch-to-a-chromebook/ Editing images on a Chromebook is totally possible with these three awesome online image editing tools. You didn't think your Chromebook could do it. <comment><USER2> > it is totally possible to move your image editing online

That's insane from both a time and horsepower standpoint. Online image editors are one-use fringe case stops of convenience.</comment>


Snowden email undercuts whistleblower status - <AUTHOR> http://mobile.nytimes.com/2014/05/30/us/nsa-releases-edward-j-snowden-email-and-undercuts-whistle-blower-claim.html

<comment><USER2> The actual headline is: N.S.A. Releases Email _That It Says_ Undercuts Snowden's Whistle-Blower Claim (my italics)

The NYT can be very establishment at times, but the actual headline is appropriately neutral in this case.</comment>


The Wisconsin Foxconn plant will be staff by robots - <AUTHOR> http://www.slate.com/blogs/future_tense/2017/07/27/the_wisconsin_foxconn_plant_will_be_staff_by_robots.html?wpsrc=sh_all_dt_tw_top <comment><USER2> Clickbait title swap. (Extra one-tenth deduction for the grammar fail.)

Actual title: "The New Wisconsin Foxconn Plant Will _Probably_ Be Staffed By Robots—if It Ever Gets Built"</comment>


Thinking of Aaron: An Update - <AUTHOR> http://www.plainsite.org/articles/article.html?id=5

<comment><USER2> > It's been a year since Aaron Swartz died at the hands of federal > prosecutors.

I find it quite distasteful that the lawyers' info are linked in the two words "federal" and "prosecutors".

Also, and this is just my personal opinion again, I generally don't like when people assume what the dead (in this case, Swartz) would have wanted and wouldn't have wanted, as the post does all throughout.

That said, I think what they are doing is really great, and the post itself is rather well written (besides from my earlier points). Best of luck to PlainSite on the rest of their venture.</comment>


Ask HN: What are the obstacles to open data? - <AUTHOR>

In Finland there has recently been quite a lot of public discussion about open data in daily news papers (http://bit.ly/sWb6ZA). The government has also agreed that all official data should be made public. However, the government has not stated anything about the means to make such data public.<p>What do you see as the main obstacles to open data? <comment><USER2> I think changing mindset is one.

For example, I would structure it as "in order to use the data for any purpose, internal _or_ external, the open infrastructure must be there". In other words, everyone uses the same mechanism so that it can't be bolted on as an afterthought that may or may not work or be maintained.</comment>


Crypto "investors": Please go away. Thank you - <AUTHOR> https://medium.com/@explodi/crypto-investors-please-go-away-thank-you-8e55ed863999 <comment><USER2> You didn't have to write this whole article just to shill your own crypto game.

Edit: but I would like a dedicated link explaining it.

<comment><AUTHOR> I will remove the link to make clear that this is not about my product.

<comment><USER2> Keep it man</comment></comment></comment>


'Devastating' bug pops secure doors at airports, hospitals - <AUTHOR> http://www.theregister.co.uk/2016/04/04/devastating_bug_pops_secure_doors_at_airports_hospitals/ <comment><AUTHOR> Ah, post with one comment couple of days ago: [https://news.ycombinator.com/item?id=11429941](https://news.ycombinator.com/item?id=11429941)

<comment><USER2> Since that one has the comment and came earlier, we've put it in the second- chance pool (described at [https://news.ycombinator.com/item?id=10705926](https://news.ycombinator.com/item?id=10705926) and the other links there) and marked yours as a dupe. Sorry Bill!

<comment><AUTHOR> Understood.</comment></comment></comment>


Hyhyhy.py – Presentation nano-framework. [GitHub] - <AUTHOR> https://github.com/MaciejCzyzewski/Hyhyhy

<comment><AUTHOR> It's very simple project in python to create a static presentation. I hope someone does it profit or want to contribute to the project.</comment>


On Political Belief - <AUTHOR> http://nbashaw.tumblr.com/post/11598657577/on-political-belief

<comment><USER2> When I'm trying to solve reasoning problems with other people, and each of us has a different concept of what constitutes then desired en state, the arguments tend to become very similar to political disagreements, in both the observable interactions and in the subjective way my brain 'feels' during the conversation.

The author of the article believes that political discourse is a process that's intended to "come up with a solution to a problem". This is itself an ideological position: not everyone holds this technocratic viewpoint. If we construe the purpose of the political process as one that's intended to reconcile people who hold competing value systems but who must productively coexist in proximity to each other, then recognizing ideology as the appropriate basis of political discourse _is_ the most rational first step.

<comment><USER3> Very good point. Still, politics is not (only) a philosophical discussion - policy must be made, and it's reasonable to try for an effective policy with minimal bad side effects.

Consider the US' Prohibition. Even taking it as a given that the majority of the voters wanted to see alcohol banned [1], it's hard to see it as anything but a disaster.

I'd say there are more modern examples, too.

[1] Yes, this is debatable. Not the point, though.

<comment><USER2> But in order to try for an effective policy, we have to have a consensus on what that policy is meant to achieve. If there's a persistent disagreement here, we're at an impasse.

Sure we can look at the _unintended_ consequences of policies like prohibition (which is still a very current example, with its disastrous effects still readily evident), but when the disputes extend to the _intended_ consequences, or when people resolve the tradeoff of primary result vs. deleterious side effects in opposing ways, the debate is irresolvable.

I think the highly polarized political climate is itself a deleterious side effect of the meta-policy of political centralization: the more people you try to cover under a single policy, the more conflict and 'gridlock' there will inevitably be. This, of course, is a strong argument for addressing policy questions as the smallest appropriate level; perhaps those who want to create economies of scale for their political projects are creating disproportionate diseconomies of scale.

</comment></comment></comment><comment><USER4> > In fact, neuroscientists have recently discovered that the part of our > brains we use when making decisions about politics is totally different from > the part we use when trying to solve reasoning problems.

It's called caching. Just like it makes no sense for your server to constantly re-generate the same thing over and over again, it makes no sense for your brain to re-evaluate the same thing over and over again. That's what ideology is. The article gets to it, but only at the very end.

> After all, the biggest problem with democracies tends to be the voters.

No, the biggest problem with democracies tend to be a select number of people who think they know better than the voters and start making decisions for them. That's when democracies turn into bureaucracies.

<comment><USER5> I'd submit that it's less like caching than it is rooting for your favorite sport team.

In the current context, how else to explain liberals justifying Obama's policies WRT the financial sector, or Republicans vilifying his healthcare bill? Ask both groups of people about those policies 4 years ago, in the absence of names and faces, and you'd get very different answers. And don't even get me started on "I'm either ok with or stridently oppose deficit spending".

That's the opposite of caching, it's tribe-based fist-pumping.

<comment><USER6> That's why Tim Russert's Red States/Blue States map (<http://en.wikipedia.org/wiki/Red_states_and_blue_states>) is so significant -- it exacerbated the us vs. them mentality and created a deeper visual divide throughout the country. It is so effective because sports has already conditioned us to think this way.

The us vs. them mentality enables parties to get away with bundling "good" policies with "bad" because Republican voters will go along with the Republican party line even though they may not agree with all of the positions, likewise with Democrats.

The parties cycle every few years so the "good" stuff that doesn't pass and the "bad" stuff that gets pushed through is blamed on the other side. This wouldn't be so pervasive if we would focus on individual issues and not parties.

<comment><USER5> _We_ are already conditioned to think that way, tribal unity means you beat the other tribe.

I'd say that the networks certainly exacerbate it by treating it as a sport, though. There's room for honest disagreement within a tribe, but we shouldn't be two tribes.

</comment></comment></comment></comment><comment><USER7> Somewhat tangential, but there is a relatively influential theory in evolutionary biology (<http://en.wikipedia.org/wiki/Machiavellian_intelligence>) which states that high intelligence in primates and specifically humans arose as a direct consequence of living in large groups where reproductive fitness was strongly linked to social status. Living in such groups necessitated political maneuvering and caused an "arms race" of increasingly sophisticated tactics used by the group members to gain status. This theory also claims that living in such groups had a far bigger impact on the development of intelligence than toolmaking did and resulted in each of us possessing a theory of mind and being capable of introspection.

What I thought was interesting is that if political decision-making is performed by an area in the brain that is completely separate from, for example, problem-solving, then this fact doesn't play very well with the above theory.

<comment><USER4> > What I thought was interesting is that if political decision-making is > performed by an area in the brain that is completely separate from, for > example, problem-solving, then this fact doesn't play very well with the > above theory.

It's meaningless to perform a study on adults. By the time we're adults, our views are more or less set. At that point, your brain is simply retrieving an already established pattern and there's no need to store it in the same place where it was constructed. Doing a study on adolescents would be more meaningful. Or perhaps confronting people with an issue they have never encountered before and forcing them to pick a side.

</comment></comment><comment> loup-vaillant Strongly related: <http://wiki.lesswrong.com/wiki/Politics_is_the_Mind-Killer>

Maybe after you read this, technical problem and political ones will start to feel the same.

</comment><comment><USER8> "After all, the biggest problem with democracies tends to be the voters."

Democracy is the worst form of government, except for all those other forms that have been tried from time to time. \- Winston Churchill</comment>


Ask HN: Good Employee Onboarding Tax Form Automation Software Options? - <AUTHOR> Our business is looking for a good solution to automate our employee on-boarding paperwork (forms w-4, i-9, etc). I know Zenefits offers a free option, and many start up employers use DocuSign or HelloSign, or their API, to take care of this administrative work electronically. I was wondering if there are other options available that I'm not aware of. Each of these choices gets me ~80% of what I need, but I feel like there must be something better. I am curious what others are doing. To share a little more about our use case: we hire 50-100 employees temporarily during the summer, so the administrative load can get quite high. I'd also, if possible, like to integrate everything with our software so new hires only have to log in to one new system before starting work. Many thanks! <comment><USER2> Take a look at tasytt.com .. we're a startup so we'll work with you but we're tackling this problem completely different than most. We take care of the forms and much more. Schedule a demo and tell them you spoke with Chris on HackerNews

</comment><comment><USER3> What is the missing 20%? It sounds like you want a complete API type solution, correct?

<comment><AUTHOR> Yeah, but the pricing for the API with HelloSign and DocuSign is a bit steep, given their pricing for using their service. $30/month for unlimited document sends vs $2/API call (1 document send) via the API.</comment></comment>


Introducing Skala: A New Vision for Dotty - <AUTHOR> http://scala-lang.org/blog/2017/04/01/announcing-skala.html <comment><USER2> "And while val and var were near-doppelgangers, unveränderliche and opportunistisch are now much more easily disambiguated."

"One more planned change to Skala's syntax is the elimination of unnecessary spaces between modifiers and definitions. It was always a frustration to Odersky that abstract override lazy val could not be a single word. "It's a single concept, so why not?" he asks, incredulously. Yet the reason was always that forming compound words simply didn't work so well in English; but in German, writing implementationsdefiniertüberschreibenfaulunveränderliche is completely natural, so we intend to fully embrace it."

I feel the same. Why do you use multiple words when you could just use one?</comment>


No Brainer (2015) - <AUTHOR> http://www.rifters.com/crawl/?p=6116 <comment><USER2> the scans are actually of a retarded person with hydrocephalus, and are not scans of the near-mythical never-verified anecdote from Lorber ([https://www.gwern.net/docs/iq/1980-lewin.pdf](https://www.gwern.net/docs/iq/1980-lewin.pdf)) of the 126 IQ guy (Hawks gives a couple reasons why that might not have been as impressive as it seems: [http://johnhawks.net/weblog/reviews/brain/development/ten_pe...](http://johnhawks.net/weblog/reviews/brain/development/ten_percent_brain_myth_2007.html) ).

So the best example doesn't have hard fMRI scan evidence, and the documented cases of hydrocephalus going along with an IQ of 70 or whatever are much less impressive - if you think the brain is doing something, you would expect profound deficits like that!

More interesting is a recent paper: "Miniature spiders (with miniature brains) forget sooner", Kilmer & Rodriguez 2019 [https://www.gwern.net/docs/psychology/2019-kilmer.pdf](https://www.gwern.net/docs/psychology/2019-kilmer.pdf)

<comment><USER3> I don't know, the mere fact that someone with brain damage that severe could even be conscious and interact with the world is pretty damned impressive to me. An AI with that kind of systemic damage would present a Blue Screen. The difference between vegetative and able to take an IQ test is far, far higher than the difference between an IQ of 70 and one of 130.

<comment><USER4> Dropout is regularization technique in deep learning that works little like like that. Randomly selected neurons are ignored during training, typically the probability is 0.5. This means that half of the neurons don't work.

In other words, the network is trained with 50% 'brain damage' to make it learn better and become more robust.

<comment><USER5> Dropout is not deletion. The neurons turned off will be lit in the next run, and all would make into the model (brain).

</comment></comment></comment></comment><comment><USER6> Does this remind anyone else of the lottery ticket hypothesis deep learning paper that was published recently? [0]

I think the gist was that neural networks are usually much larger and more connected than necessary. The paper provided an algorithm to iteratively prune connections by seeing which links in the neural network had the lowest weights.

Here's a quote from the paper:

"The Lottery Ticket Hypothesis: A randomly-initialized, dense neural network contains a subnetwork that is initialized such that—when trained in isolation—it can match the test accuracy of the original network after training for at most the same number of iterations."

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

<comment><USER7> Or EfficientNet, SOTA performance with a tenth of the compute: [http://ai.googleblog.com/2019/05/efficientnet-improving- accu...](http://ai.googleblog.com/2019/05/efficientnet-improving-accuracy- and.html)

You would hope the human brain would be pretty efficient, given the selection pressure but apparently not.

<comment><USER6> I mean, it's pretty incredible and coincidental that we evolved brains this sophisticated in the first place, out of a totally random process with selective pressure. After 13 billion years, I mean I think it's reasonable progress, but I wouldn't expect SOTA efficiency. Once you have intelligence, the evolutionary benefits are huge. There's all of a sudden not as much pressure to be efficient (well there was, for like 100,000 years, but then we invented fire and could cook, and that made getting energy/nutrition more efficient. FYI, at this point I'm just quoting from the book Sapiens)

</comment></comment></comment><comment><USER8> I love Peter Watt's writing. If you haven't read Blindsight I totally recommend it. [https://news.ycombinator.com/item?id=18378221](https://news.ycombinator.com/item?id=18378221)

<comment><USER9> Seconded. I honestly don't see the world exactly the same after I read it.

</comment></comment><comment><USER10> > Right now, right here in the real world, the cognitive function of brain > tissue can be boosted— without engineering, without augmentation— by literal > orders of magnitude. All it takes, apparently, is the right kind of stress.

The implied benefits assume the effect would be cumulative... but perhaps sheer brain mass is not the limiting factor in a body, which is why these cases aren't as detrimental as expected. i.e smaller mass of brain tissue tries the best it can to fill the potential available to it.

As a crude and purely fictitious example: what if something in the brain stem defines how much useful contentedness can be exploited? similar to how a north bridge defines to some degree how useful a "capacity" of CPU is - More is still better, but for many tasks there are diminishing returns past a certain point due to the basic bandwidth limitations.

In this analogy these people would still have a fast bus, but a rather small CPU - but you can still do a lot with that CPU and fast bus if you use them in the right way and were forced to.

</comment><comment><USER11> Discussed at the time: [https://news.ycombinator.com/item?id=10810454](https://news.ycombinator.com/item?id=10810454)</comment>


How do you manage your contacts? - <AUTHOR>

As my business starts to build up I'm finding it more difficult to keep track of everyone. I have people I talk to primarily over the phone, some email only correspondence, others via linkedin or another network. What recommendations do you guys have for managing contacts? <comment><USER2> For business use, a CRM is the best way to go. I'm seeing a few people (grudgingly) paying for Highrise (37s), which seems to work well; CapsuleCRM is another freemium option. If you look at other solutions, you might want to check if they support Mailchimp in case you ever want to send out a newsletter.

Alternatively, see if Podio.com works for you; free for up to 5 users and more of a project management suite.

If you're talking about something better than Plaxo for private+business use, I'd be curious as well. There is soocial.com and I recall a YC-backed company posting on HN.

</comment><comment><USER3> Thanks for asking this question, that I am also struggling with.

I am trying to use Zoho CRM which has free option. Though it does have plenty of options that I do not even need.

</comment><comment><USER4> I don't really use it myself but Gist.com seemed to have an interesting way of organizing your contacts across multiple platforms.</comment>


The CEO should not be the CFO. Delegate that work as soon as you can afford to - <AUTHOR> http://sachin.posterous.com/i-should-have-hired-a-cfo-a-year-ago

<comment><USER2> Series A + 2 to 3 people is way earlier than I thought. I would like to have someone to take care of all this paperwork for me though... :)

How did you find yours? Was he a friend before hand?</comment>


How to beat Page's Law? Pretend you're coding for a Vic-20 - <AUTHOR> http://technologizer.com/2009/05/29/pages-law-why-pcs-get-slower-not-faster/

<comment><USER2> "There's no question that an app like Zoho Writer does Microsoft Word-like things in a more efficient way."

Bizarre line of the day.

A comparison of current MS Word with a word processor from the early 90s (or 80s!) would make sense. A comparison with a web app running on a server farm that you have to access via a browser (so as to layer more abstraction and bloat) is just _strange_.

</comment><comment><USER3> Yes, software is getting more bloated, but it's also getting more powerful. The VIC-20 couldn't do any number of graphics related things our current range of hardware does on a regular basis. Take all your best engineers, and try to make it play a HD movie at an acceptable frame-rate. It's not going to happen.

</comment><comment><USER4> This assumes that Page's Law is said negatively. That's not necessarily so. Speed is a feature like any other.

The vast majority of programs are written to solve a need for a human being, and if the answer comes in a human-acceptable time frame, it's Good Enough. Why waste time optimizing outer loops?</comment>


How Balanced Does Database Migrations With Zero Downtime - <AUTHOR> http://blog.balancedpayments.com/payments-infrastructure-suspending-traffic-zero-downtime-migrations <comment><USER2> You mean you didn't have to "build a custom HTTP server and application dispatching infrastructure around Python's Tornado and Redis" in order to suspend traffic? [1]

I like the simplicity of your approach, it's literally 2 lines of code. Bravo guys.

[1] [https://www.braintreepayments.com/blog/how-we-built-the- soft...](https://www.braintreepayments.com/blog/how-we-built-the-software- that-processes-billions-in-payments)

<comment><USER3> To be fair, they had to upgrade to a development release (1.5) of HAProxy to configure it in this way. When we introduced the broxy at Braintree that feature did not exist.

(Disclosure - I work at Braintree)

<comment><USER4> The broxy also adds more functionality, such as intelligent rate limiting by merchant (no one merchant can consume all of our backend app processes).

(Disclosure - I also work at Braintree)

<comment><USER5> We actually have much the same functionality. We can dynamically route/rate- limit requests on a per-marketplace (or anything else, really) basis, using Nginx's Lua integration capabilities. We may end up writing another post on this, if there's any interest from the community.

<comment><USER6> I think you can safely assume that any post along the lines of

"How we handle something <TECHNICAL> at balanced"

or

"How we handled <SITUATION> using <TECHNOLOGY> at balanced"

is of interest to this community.

No need to ask, get writing, hop to it! :)

</comment></comment></comment></comment></comment><comment><USER7> This strikes me as a very risky way to do a migration. If there are bugs in the new application code you basically cannot roll back, since the old version of the code ran against an old database schema. The slower approach of making the schema change backwards compatible, deploying new code, and then dropping the old columns seems a lot safer.

<comment><USER5> You're definitely correct that bugs in the new application code would be a showstopper. Another bit of infrastructure we plan to write about if there's interest is our testing setup.

Basically, before any deploy (not just drastic ones like this), not only do all existing unit tests for the new code have to pass (with a certain minimum code coverage threshold), but also a full acceptance suite, which tests the new code and how it connects to all of our other bits of infrastructure. We simulate an extensive set of operations that a client might perform against a test instance of the server, and also run a number of tests with all of our services loaded in-memory, which allows us to mock/patch arbitrary points in the code, to assert that what we expect to happen is actually happening. We also run each of our various clients' test suites against the new code, to make sure that each client sees the behavior it expects to see. This testing suite has dramatically increased our confidence any time we have to do a deploy, and best of all, it's all done automatically.

<comment><AUTHOR> If HN is interested in how this is, I've demonstrated this to a few people but it allows us to move FAST and confidently.

Since we use services internally, being able to confidently test interactions between all our services (6+ at this point), it is a HUGE win for us.

Open up an issue here: <https://github.com/balanced/balanced.github.com> if you're interested.

<comment><USER8> Are you seriously questioning that there's interest? I come here for the few links to tech articles with high signal:noise ratios. There are perhaps one or two a day.

Judging by what just got posted, please assume you can post anything about your tech stack and we will love it.

</comment></comment></comment></comment><comment><USER9> I gave a presentation on zero downtime database migrations at a devops conference in Boston in November 2012. Slides are here: [http://www.completefusion.com/zero-downtime-deployments- with...](http://www.completefusion.com/zero-downtime-deployments-with-mysql/)

I also wrote a more detailed post about it for SysAdvent 2012 - [http://sysadvent.blogspot.com/2012/12/day-3-zero-downtime- my...](http://sysadvent.blogspot.com/2012/12/day-3-zero-downtime-mysql-schema- changes.html)

</comment><comment><USER10> What's the point of ELB, Nginx, and then HAProxy?

<comment><USER5> Nginx is primary for SSL termination and static assets. At the time we set up our infrastructure, I don't believe HAProxy supported SSL termination. According to Willy Tarreau's comment to the first answer of this question ([http://serverfault.com/questions/426919/should-i-use-an- ssl-...](http://serverfault.com/questions/426919/should-i-use-an-ssl- terminator-or-just-haproxy)) it was added in the same release as the patch I mentioned, coincidentally.

<comment><USER10> Why not let ELB handle SSL termination and load balancing (ignoring the fact that HAproxy can delay connections by 15 seconds)?

<comment><USER5> Due to the fact that we process credit card payments and thus fall under PCI scope, we have to adhere to the PCI DSS (data security standard). There's a "quick" summary of it here [https://www.pcisecuritystandards.org/documents/pci_ssc_quick...](https://www.pcisecuritystandards.org/documents/pci_ssc_quick_guide.pdf) , and section 4.1 in particular specifies that we have to secure cardholder data all they way to our servers -- Amazon's ELB doesn't quite count.

<comment><USER11> I believe Amazon is PCI compliant now? Would that change things?

<comment><USER5> Amazon being PCI-compliant was a requirement for us using them in the first place :) We could have possibly made a case for their PCI-compliance obviating the need for us to do our own SSL termination, but that could have gone either way, depending on our PCI audits.

Using Nginx also lets us do fun stuff with routing using Nginx's Lua integration, which we may end up writing about in the future as well.

<comment><USER12> OK then why HAProxy? Why not just let nginx do the load balancing? (Obviously you have a reason now if you plan to use the method in the blog post again, but what about before?)

<comment><USER13> I use nginx + haproxy and use haproxy for the load balancing piece, too. haproxy simply has much more visibility into the queue. I'm not aware of anything built into nginx that is as robust as the logging and stats page from haproxy. This makes horizontal scaling decisions infinitely easier.

<comment><USER12> I see... Do you run nginx and haproxy on the same box?

<comment><USER13> Yes.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> "- perform schema changes in a way that won't break existing code (e.g., temporarily allowing new non-nullable columns to be NULL). \- deploy code that works with both the old and new schema simultaneously, populating any new rows according to the new schema. \- perform a data migration that backfills any old data correctly, and updates all constraints properly. \- deploy code that only expects to see the new schema."

That sounds a lot like transactional schema updates in Firebird to me. Plus being careful about how the app handles the data. Schema updates in Firebird are essentially instantaneous, with the row updates performed lazily (although if you need it, a SELECT COUNT(*) will force an update of all rows immediately).

<comment><USER15> Oracle is the same - DDL is automatically committed. I think in SQL Server DDL can be transactional. Not sure about Postgres.

<comment><USER16> PostgreSQL can have almost all DDL changes inside a transaction.

</comment></comment></comment><comment><USER17> That's a great approach for the cases where the migration takes only a few seconds. When you start running into situations where the migration takes hours or days, it's back to the "normal" way.

<comment><USER5> Sure, this definitely isn't the right approach for all migrations everywhere. When we have migrations that we know will take a long time, we try to make them non-invasive enough that we can have code that works with old and new schemas simultaneously. That way, the migration can take as long as it needs to, and everything Just Works™.

</comment></comment><comment><USER18> This was a really interesting article. I feel silly for asking this but why didn't you set up a script which did all of the maintenance, migration and deploy tasks automatically?

You obviously thought about this a lot but I don't see why you'd want two humans doing it instead of a script.

<comment><USER5> Thanks! We had been practicing on test servers and so we had the commands ready to be repeated, but you're right -- for reproducibility, a script would have been the way to go.

<comment><USER19> Not just for reproducibility, but to avoid human errors. I always just get nervous when humans make changes to production environments. I'd much rather have a tested script do it.

</comment></comment></comment><comment><USER13> This isn't zero downtime. It's still 15s of downtime (which is really a trivial amount of time for a migration). As a user, I would rather see a maintenance page up than have my connections stall out and have me staring at a blank page.

<comment><AUTHOR> (Posting for msherry since he can't seem to respond at the moment)

The whole point of this was so API requests _wouldn't_ fail, they would just take slightly longer. API requests don't get the option to see a maintenance page -- they would just return errors to the client, which potentially means lost business for them.

</comment></comment><comment><USER20> This sounds incredibly rudimentary compared to [http://www.percona.com/doc/percona-toolkit/2.1/pt-online- sch...](http://www.percona.com/doc/percona-toolkit/2.1/pt-online-schema- change.html)

<comment><USER5> Hi there. I'm the author of this post.

If I'm reading this correctly, your suggestion would alter a single table online, and at the end, I would end up with a table with a new schema (assuming I had no foreign keys referencing the table being modified, which seems to introduce additional complications). Presumably, this change happens while my application was running, which means that during the migration, I would have to use the old table format, and then cut over to the new one instantly once the migration has completed.

Our migration at the time involved multiple table changes, many of which had foreign keys referencing each other. It doesn't sound like this tool would atomically switch all tables to the new schemas, which would have led to broken data for us. Does that make sense?

EDIT: grammar

<comment><USER20> You're right about needing to switch your application over instantly. Where I've used it, it has mostly been to add columns to a table and thus the old application code continues to run perfectly fine.

While you can't use pt-osc to do multi-table updates directly, you can use the same strategy. All it does is creates a new table with the new schema, adds triggers to the old table to duplicate row modifications to the new table, and then copies old rows across. Then, when all the copies are done, atomically renames the new table into place, then deletes the old table.

There is nothing to stop you from delaying the rename until all new tables are ready, except that it is more hassle than just using pt-osc as it comes.

But, point taken: your case is more complicated than the one I was thinking of. And thanks for your thoughtful response to my somewhat dismissive comment :)

</comment></comment></comment><comment><USER21> I would have used sharding, and then normal failure handling and resynchronisation between nodes. If you have the requirement that two adjacent versions have to be able to resynchronise after failure upgrades (and rollback) become equivalent to normal node failure.

As it stands, during your upgrade you've lost all of your fault tolerance and can't meet your performance requirements - you've gone from 5 nodes able to process the traffic to 1!

<comment><USER5> You make a good point re: fault tolerance. As it happens, I've simplified the diagram quite a bit to make it simpler to visualise. We have more than 2 Nginx instances, and more than one shard of our app was running the new code.

<comment><USER21> It sounds like a shard collapsed down to a single database instance? Otherwise, you wouldn't have had to turn off requests to the shard, you could have quiesced one of the nodes, taken it out of service and brought it back up with the new release?

</comment></comment></comment><comment><USER22> It seems like the interaction required by the two engineers could have been scripted to remove the human element. Was there a reason you chose not to do this?

</comment><comment><USER23> Perhaps I'm missing something, but why not down a segment (shard I guess), upgrade the application and database, then fail over to that shard?

This would provide a fail back mechanism assuming you could resolve data continuity.

I'm sure there is a reason this wasn't viable (possibly the data issue), but I was curious.

<comment><USER5> This is basically what we did, except during the "upgrade the application and database" step, we suspended all traffic to our app servers. The schema change was an incompatible change (I think this is what you mean by "resolve data continuity"?) So basically, our old code and new code could not run simultaneously, because they were designed against incompatible schemas.

<comment><USER23> So if this was the case, why couldn't the other shards handle application requests while you casually upgraded the application and database tier in say... 30 seconds (or even minutes) as opposed to sub 15s?

<comment><USER24> As stated in the post, the db migration was a large enough change that having both codebases working on the migrating db would have been a high cost.

</comment></comment></comment></comment><comment><USER25> I've been eyeing Soundcloud's Large Hadron Migrator (<https://github.com/soundcloud/large-hadron-migrator>). I would love to see a Django/South specific implementation.

<comment><USER26> We're a django shop, and pt-online-schema-change is an amazing tool. We're run it on tables with 10-50M rows in production with minimal downtime, <1 Second. I can't speak highly enough of it if you are a MySQL shop.

</comment></comment><comment><USER27> Great writeup! Loved reading it and adding this to my stash of known HA strategies. Did you folks also chart out historical traffic and carry out this migration when it was the most sparse? Like early morning on a weekend or something.

<comment><USER5> Absolutely.

Being a payments-processing company, we have a variety of users (marketplaces), each of whom has users who are widely geographically distributed, so our usage doesn't drop off as much as some other types of sites might on weekends. That being said, on weekends we see slightly lower traffic than during the weekday, so we performed this migration on a Saturday evening.

</comment></comment><comment><USER28> what happens if it takes more than 15 seconds to migrate the database?

<comment><USER5> Then some of our clients would have been disappointed by the timeout errors they had started seeing, if they happened to make a request at the very start of the migration ;)

We ran our migrations multiple times on test instances of our database, because we were worried about this exact issue. We optimized the migration to remove extraneous changes a few times in order to cut down the time taken. Also, 13 seconds was actually the upper bound of what we saw -- many times we ran it, it took closer to 9-10 seconds.

<comment><USER28> The time to migrate your database will only get larger over time as the data grow. Looking toward to your follow up post. :)

</comment></comment></comment><comment><USER29> "Zero Downtime" migration but if the migration will take less than 15 seconds. Honestly, this is not very interesting. The same effect could be achieved by increasing connection timeout on the clients and the server and then just letting the clients to wait while the DB schema changes takes place. This works great for small tables/data sets. When you get to a bigger scale and you migration takes longer (minutes, hours, days) then you might start to look at more advanced tools including percona tools or custom migration code in your app.

<comment><USER5> Are you saying it would work without code changes by increasing the timeout limit? We had to deploy new code to work with the new schemas, since the underlying models went through drastic changes. Having our code be compatible with old and new schemas simultaneously, as it is during most of our migrations, would have been extremely difficult in this specific case, which is what prompted this solution. I don't think this is a problem that could have been solved by simple timeout changes, but I'd love to hear your thoughts on it.

<comment><USER29> For, say, adding a new column or changing indexes, one can probably just run update w/o any code changes. For more complex cases, you might need to modify the code to work with both old/new schemas. It's all about details :)

</comment></comment></comment><comment><USER30> Is the socat required in the Fabric bits at the end?</comment>


Kontakt.io beacon hardware and software company - <AUTHOR> http://techcrunch.com/2014/07/28/kontakt-io/

<comment><USER2> I'm rather confused about the capabilities... the terms BLE and (i)Beacon seem to get mixed up several times on the website. So are there any benefits compared to other iBeacon provider (e.g. Roximity , which also comes with an API and Admin panel..)?

I really would love to see full-BLE enabled devices (GATT etc).

Edit: I stumbled upon the following sentence: "Once setup, Beacons will continuously broadcast a signal (similar to a radio station) to create a mesh network connected to our platform and API."

Is a bunch of emitting beacons _really_ a mesh network?

</comment><comment><USER3> Their product is nice, but I'm waiting for it to improve. It isn't so much the functionality, but the quality of iBeacon itself. It rattles if you shake it, unlike any other Beacons we've tested. There isn't much weight to it and there is tons a wasted space. I know these things shouldn't be heavy, but they should feel like a nice product. I'd prefer not to be locked into their system, but I understand why they do it. My company has just preferred working with Accent Systems, but if Kontakt becomes less restrictive then we would reconsider them.

<comment><USER4> That seems to be the problem right now with most iBeacon makers, too much proprietary stuff out there. I think iBeacons can really take off if there were more open standards across the board.

</comment></comment><comment><USER5> Not to be confused with audio software plugin with the same name - [http://www.native- instruments.com/en/products/komplete/sampl...](http://www.native- instruments.com/en/products/komplete/samplers/kontakt-5/)

</comment><comment><USER6> Congratulations to the team! Heard many good things about kontakt.io - we're about to testdrive various BLE vendors for an assistance platform for the elderly and will certainly give them a shot.

<comment><AUTHOR> Great. Lmk if I can facilitate an intro. You'd be joining a great list of customers: [http://kontakt.io/our-customers/](http://kontakt.io/our- customers/)

</comment></comment><comment><USER7> Does Native Instruments have a problem with the name?</comment>


How Entrepreneurs Find Opportunity  - <AUTHOR> http://blogs.hbr.org/cs/2011/09/entrepreneurs_find_opportunity.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+harvardbusiness+%28HBR.org%29&utm_content=Google+Feedfetcher <comment><USER2> I just saw the 'big belly' for the first time yesterday and had no idea why it was any better than regular trash cans.

I think this article could have been significantly better if it focused on a product that more people were familiar with.</comment>