Plausible Deniability and Gaslighting in Fighting Ad Blockers - <AUTHOR> https://secarch.dev/posts/plausible-deniability-and-gaslighting-in-fighting-ad-blockers/ <comment><USER3> While the controversy centers around ad blockers, the most important aspect of the Chrome extension API changes seems to have been missing from the discussions of the past few months. You will not be able to fully control every aspect of a request in your own browser, despite installing extensions that run priviledged code that you trust.

HTTP headers can no longer be freely edited, unless they are part of a limited whitelist blessed by the Chrome team. This kills innovation in the browser extension space in its tracks, and ad blockers are just a subset of use cases that will be impacted.

The changes will inevitably find their way into Chromium forks which do not have the resources to maintain the deprecated API while merging upstream changes, further limiting choice and hindering innovation.

<comment><USER4> Mind you, another way to say that is "malicious extension authors can no longer snoop on all network traffic."

As someone who was, at one point, pitched a project proposal for a browser extension our company could make which would "make users think they're getting one useful effect, while secretly using their browser as a node in a distributed web-scraping farm to social-network sites they're logged into" — I'm sure this is more common than people think, and very wary of extensions saying they do one thing while doing quite another (which happens to fit into the same permissions set as the explicit purpose of the extension, making users none the wiser.)

<comment><USER3> The discussed API changes do not limit malware to snoop on browser traffic, requests can still be observed, and scraping is also not affected.

Ad blocking is arguably one of the best ways to protect yourself from malware, and that is the capability Google attempts to limit.

<comment><USER5> This also isn't even a first step where eventually privacy restrictions around observation will be added later. From the discussion thread[0]:

> _Chrome is deprecating the blocking capabilities of the webRequest API in > Manifest V3, not the entire webRequest API (though blocking will still be > available to enterprise deployments). Extensions with appropriate > permissions can still observe network requests using the webRequest API. The > webRequest API 's ability to observe requests is foundational for extensions > that modify their behavior based on the patterns they observe at runtime._

It's not just that the people claiming that this will improve privacy are wrong about this specific change. Google's stance is that blocking request observation is fundamentally not acceptable, specifically because it would stop extensions from tracking and responding to user behavior.

To all the people saying, "well, it's about time extensions got locked down" \-- Google is not your friend and they don't want the same things as you.

[0]: [https://groups.google.com/a/chromium.org/forum/#!topic/chrom...](https://groups.google.com/a/chromium.org/forum/#!topic/chromium- extensions/veJy9uAwS00%5B101-125%5D)

<comment><USER6> > though blocking will still be available to enterprise deployments

So I guess the answer is to be an "enterprise", then.

<comment><USER5> Not necessarily, since having the API available for you personally is only one part of the problem.

The other question to ask is, will you even have an ad blocker to install, given that Gorhill has hinted these changes might mean abandoning Chrome as a target platform?[0]

If enough ordinary people move to enterprise, Google will eventually restrict that as well. If not enough people move to enterprise, extension authors won't support Chrome and you'll be stuck writing or forking your own ad blocker. So you're gambling on being able to walk very thin line alongside a company that's already shown you that it is actively hostile to your interests.

The more permanent answer is to just switch to Firefox and stop playing their game. Switching to enterprise will probably at best buy you some time before you're forced to make that decision.

[0] [https://github.com/uBlockOrigin/uBlock- issues/issues/338#iss...](https://github.com/uBlockOrigin/uBlock- issues/issues/338#issuecomment-456179825)

<comment><USER6> Oh, I switched to Firefox years ago (Chrome still doesn't offer any reasonable equivalent to Tree Style Tabs). This would be more for the folks that I haven't quite convinced yet to do the same.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> From a technical standpoint, I don't understand why the adtech companies don't just serve ads via APIs consumed by website owners, and served to clients via the primary domain. This seems like it would obviate current adblocking and third-party cookie blockers.

It would add a bit of technical complexity for site owners, but that seems manageable, particularly for b2b relationships.

Obviously, I hope this doesn't happen, but it seems like an obvious strategy and I don't see the flaw.

<comment><USER8> "From a technical standpoint, I don't understand why the adtech companies don't just serve ads via APIs consumed by website owners, and served to clients via the primary domain."

I also would like to know why there is so much resistance to this, which was the original model of ads on websites ...

rsync.net stopped advertising, in all venues, about two years ago - <USER2> because the overlap between "people smart enough to use rsync.net" and "people who don't use an adblocker" is basically zero. Nobody who cares about our product ever saw our ads.

But, of course, we still have some interest in advertising our product and, to that end, I have approached several websites and offered very good money to _just insert two lines of plain text on their HTML page_. No "network", no code blob, nothing interactive ... _no picture_ ... just an extra line of text, with a bit of it href'd for a link.

Huge pushback on that. No interest. "Impossible".

I really don't understand the responses I've gotten ...

<comment><USER9> As an example, from LWN.net's FAQ under Advertising

"What happened to text ads? The text ad facility allowed readers to place simple, text-oriented ads on the site. Use of this facility had been dropping over time; when we realized that nobody had bought an ad in over six months, we decided to remove the feature."

LWN would still sell you banner advertising, but they don't do text any more. As with other features that were killed because nobody used them, the interest of a single small buyer won't bring them back because it doesn't make any economic sense.

<comment><USER8> That's very interesting that you used that example because LWN.net was one of the content providers that we approached.

I figured _someone_ at their organization had the wherewithal to open a regular file in vi and paste in two lines of HTML ... in exchange for money ...

Nope.

</comment></comment></comment></comment><comment><USER10> There's plausible deniability and then there's sheer barefaced denial. When will the Better Ads Standards protect the average user from having outright malware, browser-jacking, click-jacking etc. etc. delivered via ad networks, potentially including Google's or Facebook's? Do _that_ and 99% of web users will most likely stop caring about any other sort of ad blocking. However, as things stand today, switching to Brave, Firefox or any other browser that commits to making _all_ malicious ads blockable is the only reasonable course of action.

<comment><USER11> Brave is based on Chromium, so it's vulnerable to Google's future decisions about what browsers should be able to do.

</comment></comment><comment><USER12> This is a very good article, but misses out a critical fact: Google plans on making the old API available to paid enterprise users, which is the final nail in the coffin.

I hope that Qt will add a new Gecko backend for QtWebEngine and move away from Chromium/Blink.

<comment><USER13> Where do I go to get this paid enterprise Chrome?

<comment><USER14> No payment necessary.

[https://cloud.google.com/chrome- enterprise/browser/download/](https://cloud.google.com/chrome- enterprise/browser/download/)

</comment></comment></comment><comment><USER15> I don't know, I'm not convinced.

I very much agree that Google's conflict of interest regarding ads is problematic and I'd absolutely trust them to look for ways how to get rid of adblockers, but the current issue seems like an unnecessarily roundabout way to archive that.

The Chrome team seems to have put a lot of engineering effort into the DNR language and even extended the language to respond to some of the criticism. (Though still far less than what the API would need to be usable). It seems odd to me that they would spend so many resources into implementing something that is not really expected to be used.

I feel if they really wanted to get rid of adblockers this instant, they could just tell so openly. Since Chrome has its own built-in filters now, they could just spin it as additional blockers no longer being needed.

Instead they're just _slightly_ tipping the scales in favour of site developers. Ad-blockers wouldn't be made impossible with this change, they'd just be made less accurate and reliable. This doesn't make a lot of sense to me.

<comment><USER16> > Instead they're just slightly tipping the scales in favour of site > developers. Ad-blockers wouldn't be made impossible with this change, they'd > just be made less accurate and reliable. This doesn't make a lot of sense to > me.

It's the camel's nose under the tent (or the boiling frog). Abolishing all ad- blocking extensions would cause many folks to migrate away from Chrome, so they probably see a more effective strategy in incrementally neutering these extensions at a rate that reduces peak outrage.

"What is something we can take away that ad blocking tech relies on?" Today it's an API change, in a few months it'll be some other measure.

<comment><USER15> Yeah, you could imagine some strategy where they modify the API to make adblockers appear progressively more annoying and unreliable to end users, so that eventually, the public perception of them changes.

However, this seems a bit like a Xanathos Gambit to me. There are a lot of things that could make this plan fail. It starts with the current backlash of the adblocker devs themselves: They could simply choose to boycott Chrome instead of damaging their reputation.

Even if they don't, so far you still have competition to Chrome so differences can be observed: If adblockers perform significantly worse on Chrome than they do on Firefox, it's apparent even for non-technical users that the browser is somehow a factor in this.

I agree though, just making a change to web store policy (e.g. disallowing all adblockers) probably wouldn't have cut it - that would risk triggering a Streisand effect where everyone tries to smuggle adblockers back into the store using all kinds of rule-bending. So a technical restriction would probably be needed from their point of view.

To be honest (warning, tinfoil hats ahead), I wouldn't be surprised if a long- term goal for Google is to abolish browser extensions altogether. Philosophy- wise, extensions seem completely at odds with Google's vision how the web should behave and how user experiences are designed. Most of their work in the space seems to be about restricting extensions, too - while work that extends capabilities (e.g. support for inspecting WebSocket connections or bringing extensions to mobile Chrome) is postponed.

</comment></comment></comment><comment><USER17> > As far as I know Apple's declarative API doesn't have the same low rules > limits as Chrome's planned one either.

Safari content blockers have a limit of 50,000 rules.

<comment><USER18> For comparison, activating all uBlock origin registered filter sets takes 281,078 network filters + 210,016 cosmetic filters.

<comment><USER17> Yeah, I'm writing a conversion tool and I'm having quite a hard time getting EasyList to fit in the 50,000 limit. I have some deduplication rules in place which takes it quite close, and with cleverer algorithms it might be possible to fit the entire thing, but it's pretty clear that this limit is quite restrictive (plus, there's no guarantee that it will even work on iOS, which will kill the ruleset compiler if it uses too much resources).

</comment></comment></comment><comment><USER19> It seems It will be better for me to stay with Firefox. Though I must admit sometimes it occures to me that maybe in the future I'll use curl more..?

<comment><USER20> IME Curl and even NoScript is becoming nigh impossible to use because of all the JS

</comment></comment><comment><AUTHOR> one can only hope that firefox steps up its game. May be eventually the new rust engine can push firefox forward with performance, and renew the market from chrome's dominance.

<comment><USER21> How recent is your "firefox is slow" perception? I've been using it as my daily driver web browser since... well, for a long time, and it's come a long way.

Admittedly I haven't run Chrome myself much recently but looking over other peoples' shoulders I don't see much in terms of a perceptible difference in speed.

<comment><AUTHOR> If you load up youtube.com, the site loads faster on chrome than firefox.

On a mobile, chrome's scroll seems smoother than firefox (the test i use is if i rapidly swipe up and down to scroll the page, does my finger covering the text change position?).

<comment><USER22> Slow YouTube load is entirely YouTube/Google's fault

>YouTube page load is 5x slower in Firefox and Edge than in Chrome because YouTube's Polymer redesign relies on the deprecated Shadow DOM v0 API only implemented in Chrome.

[https://twitter.com/cpeterso/status/1021626510296285185](https://twitter.com/cpeterso/status/1021626510296285185)

</comment></comment></comment></comment><comment><USER23> "I think it's fairly safe to say at this point that Google is institutionally incapable of imagining a world without ads, so they're not capable of entertaining solutions that would seriously interfere with the ad ecosystem."

I think it is safe to say the same about Mozilla. They, too, rely (indirectly) on the ad ecosystem to survive.

An HTTP client that does not deliver ads _by default_ will not be produced by either company.

Trying to escape from online ads by using these corporate-controlled browsers is like trying to escape from a wet paper bag without being allowed to damage the paper.

</comment><comment><USER24> It amazes me that Google isn't facing an antitrust lawsuit over the chrome adblocker situation. Of course chrome is going to block everything except Google ads to destroy the competition.

<comment><USER25> Relevant essay for the uninitiated: [https://alexdanco.com/2019/05/30/google- chrome-the-perfect-a...](https://alexdanco.com/2019/05/30/google-chrome-the- perfect-antitrust-villain/)

</comment></comment><comment><USER26> Very good write up on the Chrome ad blocker issue, and worth reading in its entirety.

Based on the comments in other posts on this topic, my view is a little different. I think Google is making decisions that look good in short term models but will be very damaging to them in the long term. In this case, it is simple. If Chrome does a poor job blocking ads they are going to become known as the junk browser.

Recall a behavior Google added to Chrome. When you open Chrome, you are presented with what looks like a default Google.com search page. When you click the search field and start typing, instead of appear in the search bar, the search occurs in the URL navigation bar.

Google could have trained their users to be certain they went to Google.com to make a search. They didn't. Today Google pays billions of dollars a year to Apple. Google still doesn't seem to have learned that lesson (see AMP and weird ideas on divorcing the URL from the site the user is on.)

Not only is Google's revenue growth under threat, but their existing revenue base may very well be too. After GDPR, the EU copyright directive, and changes Apple is making to Safari who knows what 2020 revenue will look like. In my mind, this explains a lot of the sloppy decisions Google's management has been making.

If there was no Firefox or Apple, then panic. For now, the panic should lay within Google.

<comment><USER27> Don't forget that Chrome reached its dominant market share in large part because every time you went to search for something you were presented with an ad for Chrome. Alternative search engines at this point are hard to come by, AFAIK it's basically just Google and Bing in much of the world, plus whatever has approval in China - most other search is just wrappers around those 2.

In that environment it may be hard to get the "Chrome as a junk browser" idea widespread. I still deal with people daily whose goto browser is IE because it's what they've always used.

</comment></comment><comment><USER28> As an oblivious Firefox user on Debian and Android, am I missing something by not using Chrome?

<comment><USER29> Features are missing in Google Aps in Firefox. I use Firefox as well, but sometimes when I want to use Google Docs, I just switch back to Chrome.

<comment> false-mirror What features are missing? I use Google Docs in firefox and haven't noticed anything wrong.

<comment><USER30> >What features are missing? I use Google Docs in firefox and haven't noticed anything wrong.

Tracking and cookie slurping.

I've noticed that if you turn on privacy protections in firefox, all google sites start misbehaving. And forget about trying to get through a recaptcha without spending minutes clicking on crossroads.

</comment></comment></comment></comment><comment><USER31> Is it time for piracy of ostensibly free content? Just so that we can protect ourselves, and perhaps our children from large scale tracking? Any injected adverts into the content stream would either become static, or removed by the release group. Imagine, pirated text content of blogs, just to get away from the new web.

The alternative is ToR, i2p or other anonymising web services simply to make the tracking model unviable. What was once a mechanism for persons in oppressed countries and criminals, actually becoming the web of choice to stay out of the tracking traps.

Edit: Just wanted to add, the way Stallman gets websites delivered to him via email and an external scraping system.

</comment><comment><USER32> Google did a similar hypocritical thing with GDPR in Europe. As a Google/DoubleClick customer we lost access to the raw data logs on where our ads were served, Google cited "privacy" and "GDPR" as the reasons. Then within a month Google created a product called "Ads Data Hub" that has the exact same data in it, for paying Google customers, in Google Cloud.

So for privacy reasons we cannot process that data in any Amazon (or other competing) product, but surprise surprise, it is available in a paid Google product.

Google has zero interest in privacy or even performance. All they care about is abusing their monopoly to push others out of the market and make more money from their own ads. The "do no evil" thing is long gone, it's time they get the antitrust lawsuit they deserve.

</comment><comment><USER33> Just moved all my bookmarks from Chrome to Firefox and don't miss a thing. I hope Firefox positions 'import bookmarks' feature prominently.

<comment><USER34> Same here, switching is a _very small_ hassle. I hope chrome's web metrics are plummeting in reaction to this.

</comment></comment><comment><USER35> I wish somebody would start a business with 1000 Pi-hole servers on a CDN cloud and charge $10/year to use them. But I don't have a clue how you match DNS lookups to paying customers. Probably have to just punt and make it a nonprofit funded by a foundation like Wikipedia. If anybody wants to build this, I'll help.

<comment><USER36> [https://news.ycombinator.com/item?id=20012687](https://news.ycombinator.com/item?id=20012687)

<comment><USER37> Domain blocking is really useful, but... is it possible to do more? I mean that uBlock Origin and other adblockers can make a more fine-tuned work, cleaning pages much further, like cookies popups or similar useless crap.

I had thought of such a service time ago, but would it be legal? If I do it in my private intranet, it shouldn't be a problem. But a service that would remove ads from known webs and serve a clean versions through a proxy could be accused of plagiarism or something like that.

Maybe that's because thay only do the domain blocking part.

<comment><USER35> I'm not sure it's even possible to do this on a proxy any more since so many sites do client-side rendering now. You'd have to run the Javascript, see what crap it produces, figure out what Javascript generated the crap, and remove that Javascript. Sounds dangerously close to solving the halting problem. (I presume ublock can do these things because it's sitting at the rendering engine. Proxies don't have that luxury.)

<comment><USER37> I forget how different my Internet experience is from everybody else, without Facebook, Twitter and similar sites that you log in to use.

</comment></comment></comment></comment></comment><comment><USER38> This is a very nice write-up. Would be nice if the forces behind the Chrome change would comment.

</comment><comment><USER39> This is truly one of the best long-cons in the tech industry history. Invest 10 years into creating a browser and get the whole industry and it's developers to love it, push it and develop solely for it, so that you can reap the benefits now. They learned from the best - Embrace, Extend, Extinguish. Even as recently as last year, saying that Google would eventually abuse Chrome market dominance would got heavy downvotes here.

<comment><USER40> More likely Google bean counters went to chrome team and demanded they start generating money or at least stop loosing other divisions money.

The good news is that Firefox and soon Edge are on all (important) platforms and support ublock origin

<comment><USER41> How long will Edge support uBlock if their upstream makes architectural changes to prevent it and its kind?</comment></comment></comment>


Most Impressive Recruiting Pitch I've Ever Seen! - <AUTHOR> http://senzee.blogspot.com/2007/02/red-5s-pitch.html <comment><USER2> Red5 has been making some impressive additions to their development staff.

Regarding equity, I doubt most new hires would be getting substantial percentages, and it doesn't help that early employees at most game studios will never get rich from stock holdings. Some of this stems from the way the game business generally operates (milestone system) where developers often don't see royalties until their publishers cover their own costs. Not to mention that the MMO category is severely crowded and extremely high risk...web startups can put out a beta in 1-2 months and user test the heck out of it whereas MMO developers basically don't get any resolution until they sink $10-30 million upfront into a project. Additionally, unless Red5 develops some killer intellectual property, studio acquisitions usually happen at the 30-50 person headcount for $5-15 million.

The Golden Ticket: <http://www.red5studios.com/about/goldenticket>

</comment><comment><AUTHOR> At the other end of the spectrum:

<http://www.37signals.com/svn/posts/372-dear-no-first-name>

</comment><comment><USER2> However, it is interesting to note that Red5 is backed by Benchmark Capital. I'm guessing Bill Gurley as he seems to be partial to interactive entertainment.

</comment><comment><AUTHOR> Wow. Red5's approach is so starkly different from the lame mail-merge recruiter emails I get. A great example of how to woo someone to your company!

</comment><comment><USER3> Shiny, yes. But what about equity?</comment>


Ask HN: Liquidate 300 high-end FPGA Boards - <AUTHOR> we have 300x 2yr old Virtex Ultrascale Xilinx Boards, how do I find a good home for them?  Has value depreciated a lot? <comment><USER2> The folks on the Oberon mailing list might be interested in them: [https://lists.inf.ethz.ch/mailman/listinfo/oberon](https://lists.inf.ethz.ch/mailman/listinfo/oberon)

</comment><comment><USER3> Hi are you selling them off all at once?</comment>


Desert quakes may have boosted chances of 'big one' striking California - <AUTHOR> https://www.sciencemag.org/news/2020/07/desert-quakes-may-have-boosted-chances-big-one-striking-california <comment><USER2> The article keeps repeating the mantra that the quakes, or at least quakes in this model, _add_ to the stress already there. That runs opposite to my (admittedly lacking) understanding of geologic forces. Wouldn't quakes indicate a reduction in stress has occurred, or would it be dependent on the "type" of the cause, i.e. a separation or a compression?

<comment><AUTHOR> I'm not an expert but it is believed that stress can move along faults during earthquakes.

See [https://en.wikipedia.org/wiki/Coulomb_stress_transfer](https://en.wikipedia.org/wiki/Coulomb_stress_transfer)</comment></comment>


Robespierre the Incorruptible, Robespierre the Daemonic (2014) - <AUTHOR> https://www.waggish.org/2014/robespierre-the-incorruptible-and-the-daemonic/ <comment><USER2> I had a friend who read a biography of Robespierre, and I was very surprised when I learned that as a young attorney he vehemently opposed the death penalty. A very ironic thing. One can only wonder what the young Robespierre would have thought of the older Robespierre.

<comment><USER3> His position on the death penalty -- at least according to himself -- never changed. He came to the belief that the only way a republic would survive, was if it was a republic of virtue, and that it could only contain virtuous people. People who were not deemed virtuous were to be executed. Once all the non-virtuous people were executed, a republic of virtue could be established, and the need for the death penalty was no longer needed.

As he himself would argue about the necessity for the Reign of Terror, "virtue, without which terror is baneful; terror, without which virtue is powerless" \-- effectively, to prevent the usage of the death penalty, we must use it aggressively, so there will be no need to use it later.

</comment></comment><comment><USER4> Robespierre shares much with Oliver Cromwell.

<comment><USER5> Please explain. In what way? Both men, both leaders at the top of revolutionary regimes. What else?

<comment><USER6> they are both subjects of excellent historical fiction novels by Hilary Mantel

</comment></comment></comment><comment><USER7> I believe I read that Robespierre seemed to have suffered a nervous breakdown, after which the reign of terror really commenced.</comment>


Why elections are bad for democracy - <AUTHOR> http://www.theguardian.com/politics/2016/jun/29/why-elections-are-bad-for-democracy <comment><AUTHOR> There were two particular points in the article that strongly resonated with me:

> _But the problem is not confined to referendums: in an election, you may > cast your vote, but you are also casting it away for the next few years. > This system of delegation to an elected representative may have been > necessary in the past – when communication was slow and information was > limited – but it is completely out of touch with the way citizens interact > with each other today._

This sounds very much like an area of human communication in need of a technological update. (And I'm not talking about using insecure/rigged voting machines at elections.) I'm not confident that more frequent referenda is the answer (a monthly Brexit/Nobrexit doesn't sound like the best idea for a number of reasons), but surely there's some way to decrease the political communication/feedback latency.

But the real insight for me was this quote from British sociologist Colin Crouch:

> _public electoral debate is a tightly controlled spectacle, managed by rival > teams of professionals expert in the techniques of persuasion, and > considering a small range of issues selected by those teams. The mass of > citizens plays a passive, quiescent part, responding only to the signals > given them._

There is a double-dissolution (ie, all seats in both houses of parliament are up for re-election) federal election in Australia happening this weekend, and the electioneering over the past few months has been exactly as Mr Crouch described: The leaders of the two major parties have chosen a few uncontroversial campaign issues that fail to address any of the real problems (rising socioeconomic inequality, a vocal minority undercurrent of racial/religious tension & bigotry) in Australia. All the leaders will discuss during their campaigns are these superficial issues. The people are simply expected to react to these few selected issues, agreeing or disagreeing as appropriate for their political party affiliation, without asking for any discussion of broader/deeper issues.

There are a few minor parties & independents that are attempting to broaden the discussion, but the two major parties are openly advising voters to vote "for stability" (ie, them) rather than "instability" that might result in a minority government.</comment>


Software is too important to be left to programmers - <AUTHOR> http://www.ganssle.com/tem/tem303.html#article2 <comment><AUTHOR> This is the third part of a discussion on the argument. 1st part: [http://www.ganssle.com/tem/tem301.html#article2](http://www.ganssle.com/tem/tem301.html#article2) 2nd part: [http://www.ganssle.com/tem/tem302.html#article2](http://www.ganssle.com/tem/tem302.html#article2)

Subsequent defence of the Apollo software mentioned: [http://www.ganssle.com/tem/tem304.html#article2](http://www.ganssle.com/tem/tem304.html#article2) [http://www.ganssle.com/tem/tem305.html#article3](http://www.ganssle.com/tem/tem305.html#article3)</comment>


The Children's Illustrated Guide to Kubernetes - <AUTHOR> https://deis.com/blog/2016/kubernetes-illustrated-guide/ <comment><USER3> As this is putatively a _children 's_ illustrated guide, I will allow myself to say that I do not trust that owl at all. I do not like that owl which put the innocent and helpless giraffe down in the cargo hold of its exceptionally dodgy ship and kept it locked down there with all the other animals and brainwashed it into thinking that it is happy. I do not like that owl that smiles a benevolent smile and laughs a hearty laugh without twitching the beak on its expressionless face. The one which is incredibly obviously a pirate because of its hat. That one.

That said, the pictures are very nicely drawn, I would encourage the author to illustrate his writings in the future.

<comment><USER4> Looks like the owl took the giraffe prisoner to conduct unethical experiments like cloning.

<comment><USER5> I read that as "conduct unethical experiments like coding."

<comment><USER6> Cloning, coding, eh. Much the same.

</comment></comment></comment></comment><comment><USER7> I would pay good money to have complex topics like this presented in the illustrated child fable format. I can imagine learning a university level course on security/network/OSI model protocols (boring as F __*) but presented in a human readable narrative with characters and story arcs. My brain would remember it so god damn well.

<comment><USER8> You'd like "The Manga Guide to Databases" :)

Read the reviews here [https://www.amazon.com/Manga-Guide-Databases-Mana- Takahashi/...](https://www.amazon.com/Manga-Guide-Databases-Mana- Takahashi/dp/1593271905)

Then buy it direct here [https://www.nostarch.com/mg_databases.htm](https://www.nostarch.com/mg_databases.htm)

<comment><USER7> YEah ! I love that book. I wish companies paid artists to collaborate with their technical writers to deliver engaging content tutorials in graphic novel format. I think in terms of memory stimulation --->

text + (color + emotion + narrative) > text

The Greeks could memorize incredibly long speeches because they set up such weird memorization queues with bizarre imagery/stories to trigger passages from one topic to the next. Narrative inside technical documentation could leverage this as well.

<comment><USER9> Never heard about that. Time to Google it:)

</comment></comment></comment></comment><comment><USER10> Looks like illustration 12 got replaced with a repeat of 10 at the end, the file is there and matches the text: [https://deis.com/images/blog- images/kubernetes-illustrated-g...](https://deis.com/images/blog- images/kubernetes-illustrated-guide-illustration-12.png)

<comment><AUTHOR> Thanks for catching this. Fixed!

<comment> semi-extrinsic Typo in Kubernetes here:

"And other applications can find your service through Kurbenetes service discovery"

Edit: also "ephmeral" on the Volumes drawing.

</comment></comment></comment><comment><USER11> I kept waiting for Captain Kube to kill Phippy.

<comment><USER12> Haha. Yeah, the real story would probably be better told as a horror story...

Captain Kube captures Phippy and locks him in a dark container on his ship and forces him to perform repetitive work around the clock without any breaks - <USER2> make matters worse, Captain Kube begins carrying out highly hazardous experiments on Phippy which involves cloning him, messing with the clones and then mercilessly slaughtering them one by one in a seemingly endless cycle of violence and suffering.

<comment><USER13> I'm imagining netflix's chaos monkey as king kong boarding the ship and wreaking havoc on the boat and its crew.

</comment></comment></comment><comment><USER14> Nice but wouldn't have hurt to throw in a simple little story, like "The Mange guide to Electricity". I already had a good understanding of electricity/electronics when I read that but the narrative created this fun refresher instead of the usual dry books you read on the subject.

The story helps me ground topics. It's weird but very effective. I highly recommend it if you are playing with Arduino/RASPI and want to go to that next level. Actually, I can't think of one subject that wouldn't be fun to learn with a Manga guide (they already have lots of them, Calculus, Linear Algebra, Physics).

</comment><comment><USER15> Kudos to the author for making the images 3840x2560. Not only are they fantastic illustrations, they are somewhat future proof, as they will scale nicely on 4K+ resolution displays.

</comment><comment><USER16> Kudos to Matt Butcher - The man always had a fantastic ability to distill information down to its most essential and consumable form.

</comment><comment><USER17> Can someone do one of these on monads too? Heh...

<comment><USER18> Isn't a monad just an endofunctor on the category of monoids?

<comment><USER19> No, you're thinking of a dish served at Chipotle.

</comment></comment></comment><comment><USER12> Hilarious! On a serious note though; Phippy should be an elephant, not a giraffe...

<comment><USER20> Phippy is a PHP app, not a Java app.

<comment><USER21> I assume that's a joke about bloat, but anyway: [http://php.net/elephpant.php](http://php.net/elephpant.php)

</comment></comment></comment><comment><USER22> I like the children's illustrated guide concept (for adults). You definitely took it to an extreme here in terms of the characters and storyline. Assuming you aren't really trying to start a children's book series, I think if you toned down the cuteness just a little bit, you might have something interesting in explaining complex concepts.

</comment><comment><USER23> Technical writing at its best. I wouldn't say the fate of the giraffe is something to envy. Just look at the final post-namespace picture.

</comment><comment><USER24> This is fantastic in terms of quality and in terms of being unique as a format for conveying complex technical info. Thanks!

</comment><comment><USER25> I love this concept. Great work and it really helps make a complex topic understandable.

</comment><comment><USER26> Pffft, dial up days are over. Thank you for using large images, looks great on high-dpi.

</comment><comment><USER27> Wonderful illustrations. However, I'm going to dissent on its benefits as a guide. For me, this makes a common mistake in "simplified" technical writing: it assumes you already possess the knowledge that the author does. An example:

      > Kubernetes uses labels as "nametags" to identify things.
      > And it can query based on these labels. Labels are open-
      > ended: You can use them to indicate roles, stability, or
      > other important attributes.

Using nametags as an analogy is great, but what's the querying for? The image shows a bullet point "Can query based on these labels". What can query, and when does it query? Is it Kubernetes can query, or I can query? Why would I want to query? And what's an example of a role? How does one indicate stability? Is stability labeling when a container has been running unreliably recently, or does stability mean that it's a beta version, or something else? What is an example of an "other important attribute"?

And so on... many other knowledge assumptions are made. The primary deficiency is that it doesn't present the story in terms of a problem to be solved. It's a solution presented as if you already know the full context of the problem, which is its achilles heel.

I exaggerate a little here, but I'll recap the story with what essentially are the questions I have remaining if I don't make many knowledge assumptions after having read it a few times. I know I can apply my experience to make intelligent assumptions and fill in the gaps, but you did say this was a guide for children, and I don't expect them to have decades of experience. Here's my recap:

So some giraffe doesn't like its environment and decides to go floating on an ocean, eventually gets picked up by a ship captain, is thrown into a pod (apparently along with an imaginary other container I have to pretend doesn't exist), and has an unexplained fetish for cloning. Why would a giraffe want to clone itself? Then some tunnel opens up to the rest of the ship. Does this mean that the captain, who has a penchant for picking up random strangers in the ocean, has now given access to my stuff to everybody else riding on the ship? What if some of those other random strangers are malicious? This tunnel sounds like a bad idea. Why do I want to be discovered, or discover others? Then the giraffe gets a gift and stores it in a shared location. Why would other clones need access to a private gift? Does that mean the elephant, lion, and turtle hiding in the closet now have access to my gift too? I don't know or trust them. Then namespaces are introduced, ostensibly as a means to have privacy. But wait... I thought my container, or my pod was private. I used it to get away from the scary shared hosting, but it sounds like it's no different here. And what is a namespace? Is it related to the "Hello my name is ______" image that was used for labels? Maybe it labels groups of things together? I'm not sure how revision control system (rcs) fits into this. Maybe I can store multiple versions. At any rate, it shows that a namespace lets you keep secrets from each other. Oh, maybe this is a better place to store my gift than a volume. Volumes can be read by any pod (and I don't want that pesky lion and turtle reading my things) so I'll keep it secret in a namespace... somehow. I hope my gift isn't too large to store it there. I'm told that a namespace isolates me from the rest of the cluster, but this is the first time the word cluster is introduced other than the original, highly technical explanation which resulted in the "Huh?" response that triggered this children's story.

Again, nice illustrations and a good effort. But I'm left confused about what all this stuff is because I don't know the answers to some of the assumptions you've made. I still have no idea why a PHP app with only one page needs all this complexity. It's just one page, right?

</comment><comment><USER28> Thanks for this, I try to tell my fiance what I do at my job but she hasn't understood until now!

</comment><comment><USER29> He meant to write "Dearest Father, whose knowledge is incomparable, what is Kubernetes?"

</comment><comment><USER30> Is that title a Diamond Age reference?

</comment><comment><USER31> Next: The Children's Illustrated Guide to Docker Networking.

</comment><comment><USER32> i have never read something so entertaining and enlightening!! Thank you for that.

</comment><comment><USER33> I love this!

</comment><comment><USER34> what about Mesos?

</comment><comment><USER35> Please use JPGs that are not bigger than 50kB. More than 20 3MB images was about to eat my daily 3G data cap

<comment><AUTHOR> Oops. Thanks for flagging that. Shrunk them.

</comment></comment><comment> gm-conspiracy Not bad.

Images were a bit oversized.

</comment><comment><USER36> It's cute but does anyone else feel this helps perpetuate the man child stigma of our industry?

<comment><USER20> I think a bunch of 22 year-olds making $150K straight out of college does a bit more damage in that department than an illustrated Kubernetes guide.</comment></comment>


Ask HN: Recommendations for running a US company with all revenue in crypto? - <AUTHOR> Our company, Stealthy Inc., is a Delaware C-corporation, setup through Clerky. We hadn't needed banking since incorporating as we've been bootstrapping the company ourselves. However, we recently started earning App Mining Rewards every month from the platform we've built upon. The rewards are paid in Bitcoin (anywhere between $1k and $20k USD in Bitcoin). We're using [Blockchain.info](http://blockchain.info/) as a wallet and that is where the challenge begins.
We wish to convert some of the Bitcoin to USD for operating capital, but we're encountering some challenges in setting up a corporate bank account. Our product is a decentralized messenger ([Stealthy.im](http://stealthy.im/)) and one problem is that one of our future features will allow users to send payments in crypto. In working with Silicon Valley Bank to get accounts, they wanted significant detail about the types of crypto transactions we will be enabling and the process looks to take a considerable amount of time if it is successful.
We're hoping the HN community might have some suggestions or experience that can help us sort out our banking situation more quickly and possibly more appropriately (any related advice and recommendations or referrals are also welcome--i.e. accounting etc.)? <comment><USER2> I'm one of the co-founders of Clerky, thanks for using us! Have you tried Silver Lake Bank? I don't know them personally, but they're known for being more friendly toward crypto startups.

<comment><AUTHOR> Thanks I'll look into them.</comment></comment>


ShowHN: my first webapp, NotForCred: a user-submitted list of practice projects - <AUTHOR> http://www.NotForCred.com/

<comment><AUTHOR> Given that this is my first published webapp (and I've only been coding for two months total), I'd love any feedback people have.

Thanks!</comment>


EC2 now offering "High-CPU" VM (2-8 core) instances  - <AUTHOR> http://aws.typepad.com/aws/2008/05/more-ec2-power.html

<comment><USER2> We've been using these for about a month at Justin.tv. They are awesome. Capacity increased from about 350mbps per m1.x-large instance to nearly 700mbps per c1.x-large instance.

</comment><comment><USER3> As a web app developer, I've found memory to be the greatest bottleneck for both web and database servers. But this will no doubt be useful for sites like animoto that need to do a lot of offline processing.

<comment><USER4> Agreed. I'd love to read an announcement about "High Memory" instances. It'd be great to be able to pay 15 cents per hour and get the basic instance with 3 GB of RAM, or 20 cents per hour to get 5GB of ram.

<comment><AUTHOR> RAM just hasn't gotten cheaper at the same rate as clock cycles. Offering lots of memory for very little additional money couldn't possibly be cost- effective, unless Amazon is _also_ memory-constrained for most of their applications.

Regardless, you can almost always trade CPU time and/or IO for memory in webapps. Limit your RAM caching, and move less-frequently-used data to temporary files on disk. Be more judicious in your SQL, so that you don't return large result sets to your application servers which then get filtered further in your business logic. Hell, run one or two fewer app server processes to begin with, and just bring up another EC2 image to handle load if you need it.

</comment></comment></comment><comment><USER5> Has anyone done a benchmark comparing a real machine to an EC2 instance on something concrete that is processor-bound? I'd be interested in hearing from anyone who has personally made a comparison in some manner.

</comment><comment><USER6> Benchmarks anyone?

</comment><comment><USER7> I see they still insist on using confusing units. Would it be so hard to say 2.5 GHz?

<comment><USER8> That wouldn't be consistent over time. The EC2 Compute Units represent the power of a certain type of CPU at a certain point in time. Performance for a given clock speed has increased dramatically over the past few years. If you have a suggestion for something better, I can definitely pass it along to the EC2 team.

<comment><USER9> Hi Jeff, funny running into you here. :-)

I like the EC2 compute units in general -- they are much better than keeping track of many different models of CPUs. There are, however, a couple of important limitations with this approach: First, different processors vary considerably in their integer : floating-point performance ratios, so your notion of how a modern CPU compares to a 1.0 GHz 2007 Opteron might be different from mine. Second, because the rated performance of instances is a minimum value and some instances (if you're lucky to get a new box, presumably) have slightly higher performance, it's not possible to test code on one instance and then expect it to take the same amount of time if run on a different instance of the same nominal size.

To solve these two issues, I'd suggest taking the SPEC benchmarks (yes, they're crude... but they're better than nothing), publishing minimum SPECint and SPECfp values per EC2 Compute Unit, and then adding an API call to say "tell me what the SPEC values are for my instance i-12345678".

Of course, there are more complicated approaches which could work -- I can imagine a system where instead of having a pool of "small" instances, there are some "1 core, SPECint_base2000 750" instances, some "1 core, SPECint_base2000 800" instances, et cetera, and different prices for each (maybe even fluctuating from hour to hour based on demand or an auction system).</comment></comment></comment>


Clojure Survey 2015 Analysis - <AUTHOR> http://www.danielcompton.net/2016/01/29/clojure-survey-2015 <comment><USER2> Regarding Cursive, I do like it (and it's helped me get into Clojure at all when I had previously bounced off it just due to setup issues) but I feel like I'm not using it efficiently (for various reasons: not being used to the IntelliJ IDEs in general, not used to writing Lisp, etc.). Does anyone know of a writeup or even a (ugh) video that describes not necessarily the technical installation/setup steps, but just.. how do you use Cursive day-to-day? Open the file over here, open the REPL over there, write your code here then try it out, do this for debugging, and so on. Obviously a lot of that is personal preference, but I guess I don't know enough yet to have preferences, and so seeing other people's preferences might be a big help.

</comment><comment><USER3> Clojure has evolved so fast that not a single Clojure book in publication today covers the some of most significant developments in Clojure , namely reducers and transducers. I thought I was no longer a clojure newbie -- but with transducers, I have that awful noobie feeling again.

<comment><USER4> You can always get a few Common Lisp papers that describe them.

<comment><USER5> If this isn't just snark, I'm unaware of any such papers, and would be very interested to read them. Any links?

<comment><USER4> Here, it was posted some time ago on Reddit.

[https://m.reddit.com/r/Clojure/comments/3tha86/transducers_i...](https://m.reddit.com/r/Clojure/comments/3tha86/transducers_in_1989/)</comment></comment></comment></comment>


Ask HN: Are humans tools for creating the internet of all things? - <AUTHOR> This is a statement from the book "Homo Deus" by Yuval Noah Harari (pg 444). <comment><USER2> no</comment>


The Non-Overnight Success: How Twitter Became Twitter - <AUTHOR> http://www.fourhourworkweek.com/blog/2011/04/20/little-bets-peter-sims/ <comment><USER2> Mr. Dorsey must have received or at least _heard about_ text messages (SMS) before 2006. Is it really possible that he had no idea what it was?</comment>


A LadyCoders Attendee: Learning To Code Isn't Enough To Get The Job - <AUTHOR> http://ladycoders.com/2013/02/12/a-ladycoders-attendee-learning-to-code-isnt-enough-to-get-the-job/

<comment><USER2> "Learning to code" feels like a very amorphous and vague notion. Does it mean knowing iterators and for-loops? Integrating 2 web APIs? Building a compiler?

Speaking for myself : I know how to code, in the sense that I know how to write computer programs. However, it's certainly not enough to get hired as a computer programmer. The problem isn't my lack of presentation, it's a lack of knowledge. This may be the case for others as well.

<comment><USER3> _I know how to code, in the sense that I know how to write computer programs. However, it's certainly not enough to get hired as a computer programmer._

I disagree. In today's job market, if you can code, you can get hired as a computer programmer. Are <https://github.com/arn-e> and <http://a-rne.tumblr.com/> your work? (From your profile.) If so, you should definitely be able to get hired as a programmer. If you don't believe me, contact me at my HN username at gmail, and I can help you out.

<comment><USER4> Then why do so many women say they keep getting tracked out of software development jobs?

<comment><USER2> I don't think anyone can actually answer that, since it's anecdotal.

For the record, I'm a dude (in case there was any confusion given the context of this thread). Obviously, gender discrimination does not apply in my case.

</comment></comment></comment></comment><comment><USER4> The reason I posted this was to show that the people who want and need to come to our seminars are people who already know how to code, but don't know how to get jobs in tech.

You can learn about our seminars here: <http://ladycoders.com/about-us/about- our-seminars/>

You can register for seminars here: <http://ladycoders.com/event- registration/>

You can also see some of the nice and nasty things people have said about us here:

Huffington Post: [http://www.huffingtonpost.com/cassie-slane/who-knew- helping-...](http://www.huffingtonpost.com/cassie-slane/who-knew-helping- women_b_2599848.html)

CBS Radio: [http://kiroradio.com/874/2194952/LadyCoders-Helping- Ladies-S...](http://kiroradio.com/874/2194952/LadyCoders-Helping-Ladies- Succeed-in-the-Tech-World)

Or here: <http://ladycoders.com/as-seen-on/>

</comment><comment><AUTHOR> This is a great story by one of our attendees talking about how learning to code wasn't enough to help her actually get jobs. She still had to learn to speak confidently about her skills.

<comment><USER5> It's not just that. You also have to "decode" whatever signaling people are unconsciously looking for. Or, to put it another way, the prospective employers are going to be prejudiced in some way shape or form. (And they'll be in denial about it.)

This doesn't make the employers bad. This just makes them human. I just really wish more humans realized all of the above.

<comment><USER4> These are unconscious social biases. Men are not evil for not hiring women when they don't understand the style of communication being used. When women are hesitant explaining the gaps in their resumes from childcare, or don't have any confidence answering questions, it's hard to blame men for going with someone they see as confident.

</comment></comment></comment><comment><USER6> Great to see LadyCoders getting more attention here on HN. From my time working with awesome women in startups and in a big tech shop it seemed like this was always a challenge given social norms. That's why I backed LadyCoders on kickstarter and I can't wait to see how they keep growing.

<comment><USER4> Thanks for supporting women in tech.

<comment><USER7> Is anybody against women in tech? Serious question, I'm all for anyone who wants to learn how to program, regardless of gender or age, and I can't imagine anyone not supporting it.

Also: Hey Tarah! Just saw this was you. Great job with LadyCoders, I hope it gets even better.

<comment><USER8> I think the majority of people are not against women in tech.

Most of the issues are fairly unconscious bias. Some people just assume women aren't as good at tech jobs as men are. Some people assume pretty women are stupid. Some people are simply uncomfortable around women, so don't put themselves into a position where they will be around them.

Issues with actually getting women into tech jobs range from their manner of speech (for example, raising their voices at the end of sentences) to being overly modest about their job skills.

<comment><USER7> Hmm, that's interesting, I would never have guessed that the manner of speech is something that might need improvement. I guess the points you mentioned apply to any job (and probably gender), though.

<comment><USER9> To add to this, I know that when I'm nervous I smile a lot and laugh to try to ease my own tension, so I can understand how an interviewer would take that as being naïve or not serious about the role, when it's really just a case of anxiety mixed with imposter syndrome.

</comment></comment></comment></comment></comment></comment><comment><USER10> I wish this article mentioned more information about LadyCoders. I feel like it lead up to the point "go to a LadyCoders seminar" without explaining much about what LadyCoders is. Guess I'll just have to do my own research.

<comment><USER4> I'm happy to answer your questions here in the comments. I am one of the LadyCoders; my name is Tarah Wheeler Van Vlack. LadyCoders is an initiative that puts on seminars and provides mentorship for programmers (often women) who find that they're having problems getting jobs in tech. Women often suffer from Impostor Syndrome. That frequently manifests itself as the inability to be confident about their skills in front of technical interviewers.

<comment><USER10> Do you guys ever consider getting involved with University Computer Science programs?

I went to this extremely depressing "females in computer science" sort of mentoring meeting today and all of the women holding it essentially conveyed the idea "don't go into industry (got to grad school), they will eat you alive since you're a woman." it was horrid to hear this from other women. I'm glad to see that not everyone agrees with that.</comment></comment></comment>


How Democrats Killed Their Populist Soul - <AUTHOR> https://www.theatlantic.com/politics/archive/2016/10/how-democrats-killed-their-populist-soul/504710/?single_page=true <comment><AUTHOR> Money quote:

 _" [Supreme Court Justice Louis] Brandeis's basic contention, built up over a lifetime of lawyering from the Gilded Age onward, was that big business and democracy were rivals. "We may have democracy, or we may have wealth concentrated in the hands of a few," he said, "but we can't have both." Economics, identity, and politics could not be divorced, because financial power—bankers and monopolists—threatened local communities and self- government."_

</comment><comment><USER2> _The essence of populist politics is that political and economic freedom are deeply intertwined—that real democracy requires not just an opportunity to vote but an opportunity to compete in an open marketplace._

There's a deep confusion at the heart of the article. Wal-Mart got huge _because_ it was extremely competitive and because most regions' marketplaces were open to its very effective competition. The argument is confused because it's trying to criticize some outcomes of markets without admitting that those outcomes are _natural to_ market competition and only preventable by non- market mechanisms. He can't just say "markets have both good and bad effects." Every unwanted effect of the markets has to be rhetorically set off as if it were separate from the Real Market, which every right-thinking American knows to be made of unalloyed goodness. _Members of the jury, my client did not take that purse; the arm and hand incidentally attached to my client took that purse._

The author doesn't want powerful corporations or individuals to have too much economic clout, relative to the median citizen. I am sympathetic to that. But he gets twisted in pretzels trying to praise that kind of freedom in the vocabulary of market freedom. It doesn't work. Big business is the natural outcome of robust competition between smaller businesses. (Not every natural thing is desirable.)

Reviving small grocers and other fondly remembered set decorations from Main Street Americana would require substantial _protections from_ competition for small business. It would also tend to increase retail prices. A Mom and Pop retailer cannot obtain much economy of scale. That may be acceptable to prevent overlarge accumulations of financial power in private hands. I'm open to that argument. But I have enough capital that I could imagine joining the re-invigorated ranks of the petite bourgeoisie if I didn't have to compete with bigger businesses; most Americans don't have even that.

At one step further back, my reaction to this article is: Were the last good populist ideas invented before 1960? Is the future of populism a nostalgia-off between conservatives LARPing as coal miners and liberals LARPing as trust- busters? Enough with looking for greatness in the rear view mirror, already. America's post-WW II economic golden age was a one time only deal. Think about dealing with the future starting from 2017 instead of 1947.</comment>


Four Layers of Intellectual Conversation - <AUTHOR> https://rationalconspiracy.com/2017/01/03/four-layers-of-intellectual-conversation/ <comment><USER2> Maybe you don't need four layers of intellectual conversation :-)

</comment><comment><USER3> see also [https://en.wikipedia.org/wiki/Six_Thinking_Hats](https://en.wikipedia.org/wiki/Six_Thinking_Hats)</comment>


My Raspberry Pi WordPress server survived the front page of Hacker News - <AUTHOR> http://pipress.vo3.net/?p=16 <comment><USER2> Kids today. The Raspberry Pi has a 700Mhz processor and at least 256M of memory. In 1999 I was running an mp3 search engine that processed 200k daily queries at its peak, on a Pentium II with 128MB.

Serving static pages at the rate HN can generate requires less resources than playing any game on your phone.

<comment><USER3> I agree that the site holding up to traffic is nothing special. However, the server operates on less than a 5 watts, costs under $50, runs on a flash disk (still faster/bigger than disks back then), and can fit in your palm - that is what really is impressive.

<comment><USER4> It's really not that impressive. You're probably surrounded by such computers every day, you just don't host some static HTML on them.

</comment></comment></comment><comment><USER5> So, you blogged about your blog, posted the blog about your blog, then blogged about the traffic you got from that post, then posted that blog as well.

I'm going to go outside and play now.

<comment><USER6> ...and it was still worthwhile.

Cool hack, interesting results, relevant to many peoples' businesses. Nice work.

</comment></comment><comment><USER7> The title is wrong. Like you said in article, it's not a WordPress server but only a nginx serving static content.

Only 2 persons hit PHP on your Pi, you when you edit posts and the first visitor for cache generation.

<comment><USER8> This is how caching works in the real world. Everywhere. For a CMS delivering mostly static data this is a perfectly fine way to do it.

<comment><USER9> Not quite everywhere. When you have enough traffic, the load spikes resulting from putting cache generation in the user path becomes seriously painful, so often a separate process is responsible instead.

(Imagine 5,000 threads all deciding they want exactly the same data at exactly the same time, then trying to write it to exactly the same location. Now imagine 50,000 more threads trying to do exactly the same thing because of the delays caused by the first set. Now imagine your web site is down and your mobile phone is ringing)

<comment><USER10> Yes, the thundering herd problem. While the site may be briefly less responsive, if the traffic is all to a single piece of content as long as one of them goes through you'll end up with the content in cache and then the load immediately drops.

The bigger problem is when your _entire_ cache is cold (ex. memcached was restarted) and there's a ton of traffic to lots of different content. A single piece of content should not be that crippling, unless it's stupidly-slow to render and cache.

</comment></comment></comment></comment><comment><USER11> one thing to consider is to send all of your logs over the UDP syslog service to a collector like splunk or another server that just listens on UDP and writes them to disk. will save you the trouble of hooking up an external disk to the raspberry pi device and start you down the path of centralization and management.

</comment><comment><USER12> Hahaha. It is not accessible now

</comment><comment><USER13> Is this running from home?

If so, do you have a static IP? Does your ISP allow home servers?

<comment><USER14> Not the OP, but it seems that my comcast IP stays pretty stable (for months on end). Also, I know that namecheap (and possibly others), provide a dynamic dns type api to update their nameservers if your ip does change.

Certainly you wouldn't want to host something too important on your home network, the odd mumble server or webpage shouldn't be too big of a problem.

<comment><USER15> I do exactly this--I use namecheap's dynamic DNS thing and a Comcast home connection to serve my personal website. Namecheap lets you update DNS with a GET request to a URL, so I just set up a cron job to do that every night. Works great.

</comment></comment></comment><comment><USER16> Raspberry Pi should be able to happily serve up to 50-100 requests per second for static files. That's up to 360k requests per hour.

Didn't Raspberry Foundation website run on Pi itself?

</comment><comment><USER17> I think there's a lesson here about how proper caching really gives life to weaker hardware. I only bring this up because I remember when the term "the digg effect" was used for the first time. I also remember people testing services like MediaTemple to see if it could stand up against the incoming traffic. There was so much focus on having beefy hardware when really all everyone needed was better caching.

<comment><USER18> Caching is only needed in the first place because wordpress generates hundreds of sql queries on a page load. It probably does more queries then Amazons homepage.

</comment></comment><comment><USER19> Survived? It is down now, and it was down when it hit the front page the last time… But true, I don't belive that it has started to burn or anything.

</comment><comment><USER20> Ironically, it is down now.

<comment><USER21> It was also yesterday.

</comment></comment><comment><USER22> I felt really naughty upvoting it. Glad to hear it survived.

</comment><comment><USER23> And it looks like it's holding up again ;)

</comment><comment><USER24> Not the second time, no.

</comment><comment><USER25> This sounds like a challenge, boys.

</comment><comment><USER26> Not working right now...</comment>


Ask HN: Good resources for Resilient Architectures? - <AUTHOR> Anybody have good websites or book for resilient application architectures? <comment><USER2> If you're a developer, you're really looking to build idempotent and self- healing services/applications as much as possible (especially anything that's being run by a queue/job scheduler/crontab). One thing that will make this happen faster is if developers are on-call and have to fix things.

</comment><comment><USER3> People like the book 'Site Reliability Engineering: How Google Runs Production Systems'. You could take a look at Netflix's info and tools. They break their system themselves to ensure it recovers well. It would help if you indicated which meaning of resilient you use?

</comment><comment><USER4> I think Udi Dahan's course Advanced Distributed Systems Design is by far the best and most extensive resource on this topic. It costs money though. Perhaps you can find the videos somewhere.</comment>


How are you using YubiKey? Is it worth $40 tag? - <AUTHOR> I didn't want to buy it because of the price tag, however, now since I have at least three good use-cases I feel like it's worth the cost. I intend to use it for GPG storage, GMail 2FA, and LastPass 2FA.<p>What are a few other good use-cases? How are you using it? Are there any cheaper alternatives? <comment><USER2> Almost every other form of 2FA/MFA makes me nervous. I have three YubiKeys (one for my purse, one backup at home, and one unused). I only use them to secure various accounts.

<comment><AUTHOR> Most people seem to have a backup one

</comment></comment><comment><USER3> Yes, I use it a lot. Gives me the freedom to carry my encryption keys (GPG) with me securely and I am able to use it on several systems.

<comment><AUTHOR> Can you specify a few good use cases?

<comment><USER4> logging in to github, google, your own PC, ... key to keepassxc saves multiple (x509) certificates

<comment><AUTHOR> Great. Do Macs let you login with these? Let me google that.</comment></comment></comment></comment>


Alphazero crushes Stockfish in 1,000 game match - <AUTHOR> https://www.chess.com/news/view/updated-alphazero-crushes-stockfish-in-new-1-000-game-match <comment><USER2> "CCC fans will be pleased to see that some of the new AlphaZero games include "fawn pawns," the CCC-chat nickname for lone advanced pawns that cramp an opponent's position. "

The "fawn pawn" naming comes from fans of kingscrusher on youtube who analyzes Leela Chess Zero games. [https://www.youtube.com/user/kingscrusher](https://www.youtube.com/user/kingscrusher)

His accent makes him saying "thorn pawn" sound like "fawn pawn", and thus the name has been given.

Here is a link to shirts he sells with "fawn pawn" on them. [https://teespring.com/fawn- pawn?tsmac=store&tsmic=kingscrush...](https://teespring.com/fawn- pawn?tsmac=store&tsmic=kingscrusher#pid=211&cid=5291&sid=front)

</comment><comment><USER3> I feel compelled to repeat the previous criticism on the games: \- Stockfisch was never designed nor tested on so many cores. Running on 44 cores may degrade the performance of Stockfish. \- Stockfish was designed to start a game with an opening book. In games with opening book, Stockfish has won significantly more games, too. \- Stockfish 8 was not a particularly good implementation. Stockfish 9 or 10 should be a better choice, though.

Nevertheless, the performance of AlphaZero was impressive, especially the positional knowledge it has acquired is second none. In all existing chess engines, positional knowledge is under-represented through simple heuristics. Acquiring positional knowledge was a longtime dream of chess programmers many generations. The dream was to create an engine which plays a more human-like style of chess. AlphaZero has realized this dream and even goes beyond that: extending the humans knowledge of chess.

I believe the most intriguing question right now is why AlphaZero stopped to improve after 9 hours of training? It's due to the inherent problem of chess or due to the limits of ANN? If it's the latter, how we can breakthrough and create a new generation of engines that can even surpass AlphaZero?

<comment> forgot-my-pw Perhaps in the highest level of chess, almost all games will be a draw. So there's not much progress left to be made other than playing a variation that has less draws, like Shogi?

</comment></comment><comment><USER4> I'm glad that they took a lot of criticisms to heart this time.

The opening book and Syzygy Tablebases were enabled, so we're seeing Stockfish go at full power here. The only last bit of problem is that Stockfish's scaling isn't very good. But there's not much that the admins of the test can do about that.

This test seems fair IMO.

</comment><comment><USER5> Do we know what hardware each was using? Aside from time, s criticism of the previous AlphaZero/Stockfish match was that AlphaZero was using a tremendous amount of TPU power while Stockfish was running on, essentially, an average laptop.

<comment><USER6> They used the same config as TCEC.

"Stockfish was configured according to its 2016 TCEC world championship superfinal settings: 44 threads on 44 cores (two 2.2GHz Intel Xeon Broadwell CPUs with 22 cores), a hash size of 32GB, syzygy endgame tablebases, at 3 hour time controls with 15 additional seconds per move"

<comment><USER7> For comparison, AlphaZero used 4 TPUs and the same number of cores. So more computing power but not absurdly so.

<comment><USER8> And it's literally true that the TPU has more computing power than a CPU in terms of e.g. flops but part of the reason why NNs are so powerful is that their operations can effectively be parallelized whereas Stockfish is optimized for CPUs that can efficiently branch and do smaller, more flexible operations.

</comment></comment></comment></comment><comment><USER9> How did AlphaZero lose 6 games? Do we have an analysis of those? I'd love to see what happened.

<comment><USER6> They are available in the appendix but here's one of them: [https://lichess.org/IVW0T4Jd](https://lichess.org/IVW0T4Jd)

<comment><USER10> Kinda strange stockfish won it since it looked like stockfish pushed for draw via repetition multiple times with alphazero declining.

<comment><USER11> AlphaZero seems to hate repetitions, whether in won drawn or lost positions. I don't understand why, given that it isn't explicitly programmed to have "contempt" like most engines.

<comment> david-gpu Most chess engines have "contempt"? What does it do and what purpose does it serve?

<comment><USER12> It influences how the engine values situations that could lead to draws. If playing against an (assumed) weaker opponent, it's likely good to avoid draws when there's probably a good chance to win. In reverse, trying to lock in a draw is better than likely loosing later.

Since repetition is one way to get a draw, an engine with positive contempt (it assumes the opponent to be weaker than itself) will score repetitive moves lower and is more likely to pick something else.

</comment></comment></comment></comment></comment></comment><comment><USER13> Previous discussion from a submission by a DeepMind engineer here: [https://news.ycombinator.com/item?id=18620978](https://news.ycombinator.com/item?id=18620978)

</comment><comment><USER14> More detailed article: [https://deepmind.com/blog/alphazero-shedding-new- light-grand...](https://deepmind.com/blog/alphazero-shedding-new-light-grand- games-chess-shogi-and-go/)

Paper: [http://science.sciencemag.org/content/362/6419/1140/tab- pdf](http://science.sciencemag.org/content/362/6419/1140/tab-pdf)

</comment><comment><USER15> > According to DeepMind, AlphaZero uses a Monte Carlo tree search, and > examines about 60,000 positions per second, compared to 60 million for > Stockfish.

The previous statement was talking about how much faster and more efficient AlphaZero is, but the interpretation I pickup from that sentence is the opposite. Is this a "golf score" situation where lower is better?

<comment><USER16> When Stockfish evaluates a position, it explores moves to a greater depth (a greater number of plays ahead), with its guesses and the value of the final board arrangements it can get to estimated using a relatively simple heuristic. AlphaZero evaluates the different potential moves using the neural network, which guides the search with a very complex heuristic that implicitly incorporates a tremendous amount of depth from prior games that have been incorporated into the model. Similar to the way an image recognition model takes in a whole image and says "this is an image of a goat," AlphaZero takes in a whole board and says "this is a winning board."

<comment><USER4> > Similar to the way an image recognition model takes in a whole image and > says "this is an image of a goat," AlphaZero takes in a whole board and says > "this is a winning board."

IIRC, AlphaZero has two outputs from the neural network. You described the first output.

The 2nd output was absolutely critical to it growing in strength. In effect, this 2nd output value is the difference from AlphaGo and AlphaZero. The 2nd output value guides the monte-carlo tree search.

Naive MCTS looks at board positions randomly. AlphaZero's MCTS looks at board positions the neural network deems "interesting". In effect, the neural network both guides the search (output #2), and evaluates the position (output #1).

MCTS chooses a position based off of the "interesting factor", as well as "how much that position has been evaluated". Ex: if "Knight to c3" has been evaluated 1-million times, MCTS will try to look at other positions. But if the neural network says that "Knight to c3 is really, really interesting", MCTS will still favor to look at that position, more so than other positions.

Etc. etc. down the hierarchy of moves.

</comment></comment></comment><comment><USER17> "Crushes _an old version_ of Stockfish." The current Stockfish 10 is said to have a >100 Elo advantage over Stockfish 8.

<comment><USER18> Says they had almost the same results against Stockfish 9. That said it would be interesting to see a more fair competition with Stockfish set up by an opposition team and maybe the same budget for cloud compute. Given they run on different hardware that might be a way to do it.

</comment></comment><comment><USER19> Still, Houdini is again leading on the CCCC live championship table, with Stockfish at the #2, and the open-source AlphaZero clone lc0 at #3

[https://www.chess.com/computer-chess- championship](https://www.chess.com/computer-chess-championship)

</comment><comment><USER20> Will AlphaZero be available to more chess players to play? It would be interesting to find a blind spot in this engine in a format where humans could use their brains and more tools trying to beat it. Or is it really unbeatable?

<comment><USER21> Chess AI has been "unbeatable" for long time now.

</comment></comment><comment><USER22> What would happen if you let AlphaZero compete against AlphaZero?

<comment><USER23> Personally, in that case I'd probably bet on AlphaZero to win. (that was a joke)

It might be an interesting question what the appropriate bet would be for win vs draw in this case, and how this would change with greater training. Presumably the more you train both sides the more likely they are to draw?

Also interesting would be to quantify the effect a small hardware handicap has, and how this trades off with training. Is more training always better than more hardware? Vice versa?

<comment> forgot-my-pw > Personally, in that case I'd probably bet on AlphaZero to win. (that was a > joke)

Then I would bet on a draw.

<comment><USER23> Unless you think they are "perfectly" matched, in which case you might bet on White to win because of a hypothesized first player advantage. I think it's still an open theoretical question as to what would happen with two equally matched perfect players: [https://en.wikipedia.org/wiki/First- move_advantage_in_chess](https://en.wikipedia.org/wiki/First- move_advantage_in_chess)

</comment></comment></comment></comment><comment><USER24> Shouldn't we take into account the computing power used to train Alphazero?

I feel the comparison is a bit unfair...

<comment><USER25> Stockfish's evaluation/search heuristics are also tuned with a lot of CPU power:

[http://tests.stockfishchess.org/tests](http://tests.stockfishchess.org/tests)

Plus it has all of the knowledge from past human/computer chess research, experimentation and tuning that's been done in other chess engines since the 70s helping it.

<comment><USER24> That's a misleading comparison.

Stockfish would still be an extremely strong engine even without the training. Alphazero couldn't even move a single piece without having been trained extensively.</comment></comment></comment>


Python client for the MonkeyLearn API (machine learning for text analysis) - <AUTHOR> https://github.com/monkeylearn/monkeylearn-python <comment><USER2> Nice! Just added to my list of Python wrappers -> [https://github.com/realpython/list-of-python-api- wrappers#mo...](https://github.com/realpython/list-of-python-api- wrappers#monkeylearn---machine-learning-for-text-analysis)</comment>


IBM fired ~100k old employees to look "Cool"/"trendy" - <AUTHOR> https://www.computerweekly.com/news/252467729/Veteran-IBMers-given-cold-shoulder-as-Big-Blue-promotes-millennials <comment><USER2> Similar article discussed earlier today: [https://news.ycombinator.com/item?id=20581301](https://news.ycombinator.com/item?id=20581301)</comment>


Discussion: How to start developing my own video game - <AUTHOR>

Hi All,
I am a trained mathematics / computer science working professional interested in starting a side project. Ever since I was a kid I was interested in video games and would like to try my hand at game development. I work with code professionally, but I have no experience with graphics or physics engines beyond what I have read on HackerNews, Twitter, research papers / conferences, etc. Beyond a gaming project in undergrad, I have never  created a game before (we coded this project in C++ using SDL, following the tutorials on LazyFoo).
I am a cerebral person and sometimes need to push myself to 'jump in' to the creative process; I have an art and music background and want to create my own sprites and music, and imagine the android platform is a great place to start developing.
Can anyone on Hackernews help me get started? Would anyone be willing to walk me through the basics or direct me to good blogs / resources for getting started? Anyone in my position and want to collaborate?
I have some specific questions too. Take your favorite Android game. Anyone know the high-level overview for how it was coded? What packages the development used, developed themselves, etc.
Thanks for reading, I look forward to this discussion!
Myles <comment><USER2> I'm kind of an old-school type, so your other responses may vary. :-) First question is do you have a game in mind, or you just want to "make a game"?

Essentially, first you need to work out a direction.

If you do have a game in mind then find something to start on, given your maths experience you might want to tackle the game physics/movement/whatever.

If you don't have an idea, this again is where your maths might help. Back in the day folks would mess around with the computer, trying to do different animated effects, etc. Those with math would usually go toward animated graphing functions and whatnot, once they get something that's interesting, they mess around on gamifying the hack, making it a playfield, character or goal... and build out a game from that.

The third method is well known to artists, start by emulating something you already like and put your spin into it. Got a game you like but have an idea that you could improve upon the concept? then maybe that's the route to start.

Once you have the spark of what to do, now you work on making it work (what platform do you want to see it on, go to that platform forum; need 3d support? go to 3d forums; etc). Most of all while doing this is actually writing code and testing out your ideas.

Without an idea of what you want, the most folks could help you with is directing you to some type-in game tutorial...

<comment><AUTHOR> Hi Larry,

Thank you, this is great advice. I know I need to start small and progress slowly so your recommendations are great places for me to begin and improve.

I like all sorts of games, but I wanted to start with something 2D. I was thinking a puzzle game to start, which could expose me to some of the event- like structure of programming a game without the complexity of the physics engine (for now). I could recreate a game like Tetris, for example, but that doesn't really seem very interesting to me.

I have thought about 'modding' a SNES game or downloading an open source gaming project to poke around and understand how the code / architecture works, rather than starting from scratch myself. I generally learn much faster this way, and would love to find someone willing to help me with this approach.

Does that help?

<comment><USER2> That's a good idea, modding something open source. Like maybe changing a game to be something different, new rules, graphics, sounds, etc.

The SNES games would be probably way different than modern phone/web/tablet games. On the SNES you are dealing with a single process device so code can be more rudimentary, some of it probably in assembly. On newer devices you will find are built higher level languages (c, python, c#, etc) with code that plays nice with other processes in the device, as well as modern graphics/sound methods. If you are planning to ultimately do code on modern devices, that's probably a good place to start.

</comment></comment></comment><comment><USER3> You might check out

1\. <http://www.digitalscienceacademy.com/dsa/index_general.php> They are offering a game development course.

2\. Udacity's HTML5 Game Development course - <https://www.udacity.com/course/cs255>

3\. The ultimate resource and forum in Game Programming - <http://www.gamedev.net/page/index.html>

I am in the same shoes like you. And asked the same question to someone. I felt like sharing my findings with you.

I am interested in learning game programming but have to make time. Currently I am off to a trip volunteering and would return on 13th June. I am also working on a startup idea.

But I know, I will make time for doing something if I really want it.

Most of your specific questions are answered on the internet.

Shoot me an email if you want to collaborate.

<comment><USER4> Thank you for the resources!

</comment></comment><comment><USER5> I made a couple of games for android. It was always a dream of mine to just make a game. For 'a game', you don't need much, only eclipse and google sdk - that's all I used. Starting from this place you would find a few tutorials guiding you about how to create and finish Activity, add a game loop, draw an image and process user input - other things are regular programming.

Before finding out technologies you may figure out what kind of a game you want to make. Your game may or may not require 3d, so you may or may not want to look at 3d engines. It would be too broad of a search to research all technologies.

The basic advice I heard for making first game, is to make sure you finish it, do not set unattainable goals.

<comment><AUTHOR> Thank you for this feedback. I will make sure before I start a game I have a strong direction of what I would like to develop and make sure it is not too ambitious.

</comment></comment><comment><USER6> check out this link: <http://www.coronalabs.com/products/corona-sdk/>

cross platform check out some of the tutorials.

<comment><AUTHOR> Thanks, this looks like a promising starting point. Have you used this product? Am I sacrificing learning anything by using this SDK?

<comment><USER7> It's a great SDK for making cross-platform 2d games. (For cross-platform 3d games, Unity is currently the most popular choice.) You are sacrificing control of the technology by using it, or similar products, but that's only relevant if the underlying technology is more important to you than the game itself.

If the technology is important, you're probably better of creating your own engine (this will take a long time), or licensing an existing engine (i.e., the Unreal Engine) and modding it as necessary.

<comment><AUTHOR> Thanks for the reply. I'm not fixated about the cross-platform functionality of any game I develop yet, because I am sure I will need to iterate through the design process a few times (and it might be easier to start over once I better conceptualize my idea).

I'll keep this in mind.</comment></comment></comment></comment>


Python App to figure out what those VC terms mean for your equity - <AUTHOR> http://www.tompinckney.com/2010/01/how-to-figure-out-what-those-vc-terms.html <comment><USER2> I'd love to make this into a quick online utility at my site utilitymill.com. Any thoughts how you would set it up as a form to fill in? Maybe make a utility for the most common use case.

</comment><comment><USER3> Website seems down, Google Cache:

[http://18.104.22.168/search?q=cache:http://www.tompinckney....](http://22.214.171.124/search?q=cache:http://www.tompinckney.com/2010/01/how- to-figure-out-what-those-vc-terms.html)

</comment><comment><USER4> A Python app? Surely there are like ten different liquidation models in Excel floating around the web. If there aren't any, let me know. I'll make one and post it.

<comment><USER5> Yeah, there are definitely Excel models, but personally I find it easier to think Python than Excel. Over time I think there's an interesting opportunity to simulate more what-if scenarios as well and again personal preference is to code in python vs Excel.</comment></comment>


The Tumblr Story - <AUTHOR> http://www.observer.com/2008/would-you-take-tumblr-man?page=0

<comment><USER2> Their tech support does not seem too good. Many months back I wrote a command- line client to post/edit/delete etc in tumblr.

Posting an image gave an error (using their API). I forwarded that to tech support. Weeks later i even wrote to Marco. But no reply from anyone.

<comment><USER3> If they're as lean as the article makes out (it is from 2008, so maybe they're bigger now) then I can understand why.

I have many, many fewer users than that and I'm still overwhelmed with tech support requests. Can't login, forgot my password, mistyped my email, feature X isn't working right, etc, etc, etc. Now mind you, most of these are flat-out user error, not actual bugs to fix. Still, I try to reply and help out with each one. Usually it involves some hand holding.

I don't know what I'm going to do if our userbase keeps growing.

<comment><USER2> Some of that can go into a FAQ, or even be a link (such as cant login or forgot password). Much easier to put a link that reply to each person.

However, surely when you've put up an API for others to use, you should have tested it out. It's not a large API. My email was quite clear too in its title, that its a bug.

I really know what you mean in that last line of yours!

<comment><USER3> I almost pre-responded to this response, since I knew it was coming.

 _Put it in a FAQ or even a link_ \- There is a link to "forgot password" on the sign-in page, plus a FAQ, plus an article in the FAQ called "Having trouble logging in?", plus some smarts in the ticket system to prompt people who email about logging in with a message saying, "Maybe you should read this article titled 'Having trouble logging in?'

That's like 4 layers of tech-support between the user and me, and I still get emails about people needing password help.

Trust me: Any site with a sizable userbase will have a lot of support requests. You can find ways to mitigate some of it, but the only way to mitigate all of it is to provide poor customer support.

</comment></comment></comment></comment><comment><USER2> I still really haven't understood in what way is tumblr different from blogspot etc. Is it just a reduced version of blogging.

There's no size limit. It takes photos, videos, text etc. The only thing is does easier is login (from your own client or command-line), since (IIRC) that's unencrypted (which is obviously not good, but acceptable if what you put up is just some junk notes).

</comment><comment><USER4> "So far, Tumblr is growing, but it's nowhere near MySpace's 70 million users or Facebook's 61 million or even Wordpress' 3 to 4 million [...]"

Ah, how things change...

</comment><comment><USER5> Ironically, this little NYC scene (including the author of this article) is also very incestuous and prone to logrolling.</comment>


Oregon shooter tells 4chan ahead of time, is encouraged - <AUTHOR> https://imgur.com/tDxuCsA?desktop=1 <comment><USER2> Do we know this is from the shooter or is it speculation?</comment>


How a Construction Crane is Erected (Video) - <AUTHOR> http://www.wired.com/gadgetlab/2009/09/video-how-a-construction-crane-is-erected/ <comment><USER2> It only gets interesting after about 4:30 - before that it's simply building a crane using an existing mobile crane (that just keeps getting longer and longer).

</comment><comment><USER3> Bootstrapping is always interesting. Thanks!

<comment><USER4> It's not _really_ bootstrapping considering another crane is used to build the base of it and initial structure.

I was actually hoping it was more of a bootstrapped effort.

<comment><USER5> _It's not really bootstrapping considering another crane is used to build the base of it..._

Well, there's no reason it has to be that way, except money and time. One could, in theory, assemble the base and initial structure by carrying individual steel rods and buckets of concrete to the site and assembling them all.

But the astute (and, perhaps, perverse) observer would note that this only pushes the problem farther down the stack. Using humans to carry your parts to assemble the base isn't really bootstrapping, either, because where did the steel and concrete come from? For that matter, where did the humans come from?

Unfortunately, we don't yet know how to depict humans being bootstrapped from raw organic chemicals at this level of detail, and even if we did it would probably run a bit longer than 6:17.

</comment></comment></comment><comment><USER6> Interesting video. $10,000/mo actually seems a little low. I wonder how long it takes for the initial crane construction.

</comment><comment><USER7> There are two points that surprised me here: 1\. Rods and pins are used instead of classic nuts and bolts; 2\. Crane's extension. It's amazing how self-sufficient a construction crane setup is.

<comment><USER8> I am surprised by the load bearing power of steel, the total height of a crane made of steel + the counter weight + the weight of what it's lifting, that's a lot of force at the bottom of the steel tower.

</comment></comment><comment><USER9> If the title included the words "MOST AWESOME VIDEO EVAR!!! MUST WATCH!", it would not be an exaggeration.

<comment><USER10> I usually would not up vote a comment like this... but you're actually correct here.

</comment></comment><comment><USER11> Very cool, now where is the video on how a compiler is written?

</comment><comment><USER12> _It takes a crane, to build a crane_

Yes, I am quoting a Jason Mraz song...</comment>