Diversity of thought and tech conferences - <AUTHOR> http://code.joejag.com/2013/diversity-of-thought-and-tech-conferences/

<comment><USER2> For me, the most useful tech talks are the result of a lot work by the speaker (or the speaker's team). My favorite example is Charlie Miller's talk on battery firmware hacking at DEFCON 19[1]. In 45 minutes, he detailed months of time spent trying to get a laptop to explode remotely. He gave examples firmware disassembly, research (he'd never done hardware stuff before), and social engineering. Not only did the talk contain information about battery security, but it gave a glimpse of the thought processes and tools he used.

Compare that to conferences about politics and philosophy. There's no equivalent talk. They use debate formats because what else could they do? They don't have much useful information to present.

1: [http://www.youtube.com/watch?v=dlSBQ5b6Pdw#t=0m35s](http://www.youtube.com/watch?v=dlSBQ5b6Pdw#t=0m35s)

<comment><AUTHOR> I agree, there's no doubt that a well executed classroom like talk is both inspiring and informative.

What I'm arguing is that the community we are part of also has issues that aren't clear cut, that we could debate to generate interest and inspire the community.

There is no shortage of great political speeches.

</comment></comment><comment><USER3> How would this work any better than the never-ending flame wars that are continually being waged in countless online forums?

</comment><comment><USER4> I like it. Look forward to seeing it in action.</comment>


How Hardware Drives the Shape of Databases to Come - <AUTHOR> https://www.nextplatform.com/2017/08/15/hardware-drives-shape-databases-come/ <comment><USER2> Great interview with a bit of plugging from Prof. Stonebreaker</comment>


Million Dollar Problems (2000) [pdf] - <AUTHOR> http://www.math.buffalo.edu/~sww/0papers/million.buck.problems.mi.pdf <comment><USER2> Discussion would be incomplete without - [https://en.m.wikipedia.org/wiki/List_of_unsolved_problems_in...](https://en.m.wikipedia.org/wiki/List_of_unsolved_problems_in_mathematics)

<comment><USER3> Would love if someone knowledgeable could point out from this list what are the most apparently easy or simple problem statements.

i.e. problem statements that someone who has a degree but is not a mathematician would still be able to appreciate. I'm really interested in this, but reading through the list it all sounds really "deep" =)

I was wondering what was the most surprising problem to not have been solved yet.

<comment><USER4> Landau's problems are pretty simple in their statement. I believe that Goldbach's conjecture is the oldest, dating to 1742. So I wouldn't exactly call it approachable in the sense of easy to solve, but the statement is quite simple. The full list of Laundau's problems, from the Wikipedia page ( [https://en.wikipedia.org/wiki/Landau's_problems](https://en.wikipedia.org/wiki/Landau's_problems) ), is:

1\. Goldbach's conjecture: Can every even integer greater than 2 be written as the sum of two primes?

2\. Twin prime conjecture: Are there infinitely many primes p such that p + 2 is prime?

3\. Legendre's conjecture: Does there always exist at least one prime between consecutive perfect squares?

4\. Are there infinitely many primes p such that p − 1 is a perfect square? In other words: Are there infinitely many primes of the form n^2 + 1?

I don't think any of them has a million dollar prize, but tenure at a decent university seems like a fairly reasonable expectation for solving one of these.</comment></comment></comment>


Bitcoin sinks below $7000 - <AUTHOR> https://bitcoincharts.com/charts/bitstampUSD#rg1ztgCzm1g10zm2g25 <comment><USER2> Something to think about....

I don't really want to get into another Tether discussion but someone who trades will be well aware that volatility is usually much more severe on the way down than on the way up.

Hence the saying "Equities take the escalator up and elevator down".

With Bitcoin we saw larger volatility on the way up, than on the way down, ie it went up in less time than it took to come back down.

This is atypical in the markets and suggests that something is propping up the price of bitcoin that doesn't exist in other markets.

The other place you see this is on the day of a IPO where the banks that lead the IPO defend the share price by strong artificial buying at the IPO price.

<comment><USER3> Trading volume is actually still pretty low, by BTC standards. This is actually a little worrying, since it indicates that the panic hasn't even started yet.

<comment><USER4> I'm really shocked this panic hasn't set in yet, I would have bet otherwise. I wonder if it'll be a slow slide all the way down.

<comment><USER3> I imagine it will kick in when the truth comes out about Tether and USDT becomes worthless. Right now the evidence is overwhelming, but there's still no smoking gun. When Tether/Bitfinex declares bankruptcy, or the CEO is arrested at the airport trying to flee to Vanuatu with a suitcase full of cash; that'll be when the bloodbath starts.

<comment><USER5> The evidence makes no sense. We're supposed to believe that Bitfinex printed Tethers and used them to buy Bitcoins on their exchange - whose on-exchange USD reserves aren't even backed by USDT and aren't meant to be[1] - and this somehow caused a price bubble that mainly seemed to be driven by GDAX/Coinbase judging from the price differences between the exchanges and trading volumes, even though they don't deal in Tether at all. Not only that, it's just too small - for comparison, the total amount of Tether printed as of the end of 2017 was about $1 billion, roughly the same as Coinbase's revenue from fees in 2017. (Another billion or so has been printed since, but that was all after the Bitcoin price peaked.)

There's some circumstantial evidence that they may or may not have been printing unbacked Tether to keep the price at parity, but that's a far cry from powering the Bitcoin bubble.

[1] They were sort of a Tether exchange in the sense that for a while it was the only way for most people to withdraw USD balances, but they only kept a relatively small amount of USDT on hand to cover withdrawals.

</comment></comment></comment></comment></comment><comment><USER6> Keep in mind Bitcoin miners (and Ethereum miners et al.) keep producing a not- insignificant number of coins every day, at least a % of which are typically sold to pay taxes, electricity, and other operating costs. A constant stream of new investment is needed to offset that sales pressure.

<comment><AUTHOR> Afaik about $20m in bitcoins are created via mining per day. If that is insignificant or not is an interesting question.

<comment><USER7> $20m when? Since the value changes significantly each day.

<comment><AUTHOR> [https://charts.bitcoin.com/chart/miner-revenue- value](https://charts.bitcoin.com/chart/miner-revenue-value)

About $20m yesterday.

You have to subtract the transaction fees:

[https://charts.bitcoin.com/chart/transaction-fees- value](https://charts.bitcoin.com/chart/transaction-fees-value)

About $2m yesterday.

</comment></comment></comment></comment><comment><USER8> The Great Unloading is well underway.

The fear of missing out (on board) drives the price on the way up. The fear of missing out (get off) drives the price on the way down. Classic trading cycle.

</comment><comment><USER9> Where are the store of value guys now? I honestly want the rationale behind this explained.

<comment><USER10> Behind what? Bitcoin is a store of value. 1 BTC will always be worth 1 BTC.

If you want to store your USD, perhaps you should keep them in the form of USD.

<comment><USER11> > Bitcoin is a store of value. 1 BTC will always be worth 1 BTC.

You really want to look at a store of value in terms of other goods and services, not itself. (Major world currencies tend to be stable in value against common goods baskets in the short-term with slow inflation in the longer term, so comparing—especially over a short term—a more volatile store of value to a major currency can also;make sense.)

</comment></comment></comment><comment><USER12> ETH is off almost 45% from its peak too. For a few days it was stable and it looked like the BTC drop was just a reshuffling within the crypto world, but it seems like that buffer has been blown through and we're in a full-on correction now.

Not the expected crash, though: it's been going steadily down, which surprises me. I've always though the lack of liquidity would produce a crash-to-zero when the bear market came. But there appear to be people buying BTC even now. ... Who?

<comment><USER11> > But there appear to be people buying BTC even now. ... Who?

Possibly the same people who are already holding a lot and not selling, which is why the volume is low. If those people don't have a lot of free non-BTC assets you'd see some bargain hunting as other investors try to exit, but limited overall volume no matter how hard the rest of the market is running for the exits and driving the price at which the true believers can buy down.

</comment></comment><comment><USER13> To keep this in perspective bitcoin was under $1000 at the start of 2017. It is still a 700% increase since just that recent time.

<comment><USER14> How many data points to drop to gain perspective?

</comment></comment><comment><USER15> Wow. The fire sale keeps happening.

<comment><USER4> It is pretty incredible how resilient BTC has been to panic selling, it has definitely been trending downward at a high rate but I would have bet that a panic sell-off would have occurred before it reached these prices. There is still a reasonable inflow of money, from the looks of it -- and this is coming from a serious skeptic.

<comment><USER16> I suspect that the exchanges are doing their best to keep the prices artificially high by limiting sales and withdrawals under the guise of technical issues and support load.

<comment><USER17> This. Very much this. 100% this is a major reason.

<comment><USER15> +1 to all of the above. I am just buying small chunks of it here and there as the price falls with play money. It's not much of an investment grade thing yet imo so that's how I play it.

</comment></comment></comment></comment></comment><comment><USER18> There's $7000 left to short.

</comment><comment><USER19> bitcoin may find support on bitstamp above 6600 (currently 6900). buy limit 6666.66</comment>


Why Microsoft can't afford Windows 7 to fail  - <AUTHOR> http://news.bbc.co.uk/2/hi/business/8310867.stm

<comment><USER2> The article listed at least one thing -- compatibility with older Windows versions -- that isn't part of _every_ version of Windows 7.

I hate this kind of marketing soup: nobody knows what Windows 7 will really be like, because articles and commercials can claim anything that's in the $399 version. It's time for someone to upgrade a 10-year-old-laptop after spending $100 on the cheapest version of Windows 7, and write an article about that "Windows 7".

</comment><comment><USER3> It won't. Does anything truly think it will? I'm no MS shill, but I haven't heard any "faults" from anyone using Win 7 that will affect the vast majority of users, and that's where their bread and butter is.

</comment><comment><USER4> Very suspicious of all the hype. Vista had a lot of over the top enthusiasm and we know how that one turned out.

<comment><USER5> Vista was really obviously bad on release. I mean _really_ unusably bad. It wasn't just that it was only on par with XP, it was substantially _worse_.

Windows 7 is quite different. It's not going to blow you away, but it works and looks a better than XP. The "bit" better puts it right about on par with OSX for various tasks -- although the GUI consistency is off because Windows as a far longer history than OSX, and can't afford to blow off bw compat (that's part of the Vista error).

There are parts that still feel like they're stuck in 1991 (especially the command line), but that's Windows for you -- and I don't expect that to change.

If anything worries me, it's MSFT itself. Their management really stinks, which makes me question how stable the internals of the system are -- are they managing the development of windows more tightly than, lets say, their mobile effort? One hopes so... but one never knows for sure.</comment></comment>


Show HN: A way to send coded messages using a deck of playing cards - <AUTHOR> https://github.com/clabasky/codeinthecards <comment><USER2> Doesn't work for me. Whatever message I try to encode, I get a _" This deck already exists..."_ error.</comment>


Is Google deliberately screwing up social? - <AUTHOR> http://phonons.wordpress.com/2010/10/25/is-google-deliberately-screwing-up-social/ <comment><USER2> Neat thought - but I think one of the comments there nails it: "Facebook is aiming squarely for Google's turf (ads, traffic), and will do so regardless of Google's success or failure in the social sphere." (Robby Grossman, [http://phonons.wordpress.com/2010/10/25/is-google- deliberate...](http://phonons.wordpress.com/2010/10/25/is-google-deliberately- screwing-up-social/#comment-245) )

<comment><AUTHOR> It's definitely a big weakness of the argument, which is just meant semi- serious anyway. I wrote a reply to the comment nonetheless. The aim of the strategy might be to create just that competition between Facebook and Apple, which is absent right now.

</comment></comment><comment><USER3> I think Google or anyone else should man up and "invent" something that can compete on a quality level with Facebook.

Facebook is like Hercules, very strong, but not immune to death, still a mortal. In other words Facebook did not max out the capacity in social networking.

Something like Diaspora may be a step forward, I think it's kind of creepy for Facebook to know all my social stuff.(The main reason I don't do much on Facebook).

TL;DR: There is still a chance to do better than Facebook.</comment>


A blog on Spiral Dynamics and other theories - <AUTHOR> https://spirals.blog/ <comment><AUTHOR> Hey HN! This is my first time sharing something here...

I recently started a blog/newsletter for Spiral Dynamics. I've been studying it for ~6+ years now, and find it incredibly useful in my personal and professional life. My wife and I use it all the time. The community I started uses it for strategic discussions. I'm even starting to use it at work!

If you're familiar with the framework/model, I'd love some feedback. If you've never heard of it before, check it out, it's super cool!

Thanks guys! </comment>


Software optimization resources for C++, assembly, Windows, Linux, BSD, Mac OS - <AUTHOR> https://www.agner.org/optimize/ <comment><USER2> From my experience the greatest optimization gains can be achieved by introducing more domain knowledge into the code. Heuristics that cut the number of executions of some expensive function, shortcuts that introduce good enough approximations, pre-computing and memoizing certain values that are actually constant in the processed data. Things like that.

And in programs that had never been optimized it's usually very easy to fire up the profiler and find some obviously terrible things. Like reinitializing in a tight loop some expensive object that can easily be a singleton (or at least a thread local object). I've once spent a month on a decent piece of code and brought down the CPU cost by literally 100x (nobody had optimized the code before).

Also, always, first create a reliable framework for measuring progress (cpu instruction retired counters in Intel CPUs are very good and don't need a lot of execution repetitions to bring the p-values low), and only then start optimizing.

Low-level, hardcore optimization rarely pays out (not never, but rarely).

<comment><USER3> My experience differs.

Domain-specific optimizations do often yield order-of-magnitude improvements, but once those opportunities have been exploited, there is very often another factor of two or ten remaining.

For example, a three-line change to quicksort, not changing the algorithm at all, more than doubles its speed.

The key insight not taught is that the familiar order notation -- O(N), O(N^2) -- does not dictate what N must count. Traditionally, it counts comparisons, swaps, or other algorithmic events. Nowadays, these operations are practically free, and what matters are cache misses and pipeline stalls.

Because each miss is so devastating, it is essential to keep plenty of work in the pipeline. Interfaces should provide batched operations, because often it takes no more time to, say, produce four hashes than one.

Measurement is necessary, but since it is so hard to know whether a thing is fast, reading out the hardware performance counters is essential. How many pipeline stalls, how many cache misses, how many branch mispredictions?

Transforming "if (c) ++i;" to "i += c;" can make a huge difference, in an inner loop, when c is unpredictable. Similarly, "if (c) a -= b;" may become "a -= (-c & b);". Compilers usually will not make these transformations because they guess that c is predictable. When it isn't, you get a pipeline stall every other iteration, with 10-15 cycles down the drain each time, enough for ~40-60 useful instructions.

<comment><USER4> > [...] what N must count. Traditionally, it counts comparisons, swaps, or > other algorithmic events.

Er, _N_ is counting the _input_ elements (eg number of nodes in a graph, array length, etc), _O()_ is what counts algorithmic or microarchitectural events.

> Similarly, "if (c) a -= b;" may become "a -= (-c & b);".

Reminds me of speeding up a ECC loop by almost two orders of magnitude with (basically):

      - if(i&(1<<k)) p ^= parity(x[i])<<k;
      + p32[k] ^= x[i] & -(ii&1); ii>>=1;

<comment><USER5> GP mis-spoke, s/he meant "O(N) of what?" rather than "N of what?"

</comment></comment></comment></comment><comment><USER6> Small threads from 2016 and 2015:

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

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

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

</comment><comment><USER3> Agner is an absolute treasure. I hang on his every word.

One essential reference not cited is [https://danluu.com/branch- prediction/](https://danluu.com/branch-prediction/) .

<comment><USER7> A treasure he is, but he writes a lot…I can never seem to be able to use his stuff except as reference when I need to know the IPC of something.

</comment></comment><comment><USER8> I tried recently to optimise a loop looking for a value in a small array of short integers (8 elements), not so easy, there are so many choices: tight loop (a priori not an optimal choice but use only one instruction cache line), unrolled loop, using cmovs, SIMD?

</comment><comment><USER9> The code is mostly or entirely GPL, if that is something you might be interested in.

<comment><USER10> The code that looks most interesting is the vector class library, which is licensed under the Apache License 2.0.

<comment><USER9> The string.h libc functions ("Subroutine library") and Object file converter also look interesting to me. Those are GPL.</comment></comment></comment>


Ask HN: What's your experience with DuckDuckGo search quality? - <AUTHOR> Because I think that privacy is important and - for the most part - non-personalised search results fundamentally are a good thing these past few weeks after more than a decade of Google having been my default search engine I've finally been giving DuckDuckGo a try and made it my standard search engine.
So far unfortunately, in terms of search result quality I'm not convinced at all. I constantly find myself using the Google bang !g as a prefix because native DuckDuckGo (or rather Bing, which is their main underlying search index provider) results are sorely lacking.
Maybe, it's me and due to years of using "Googlese" I've unlearned how to use a generic search engine.
However, frequently even when explicitly searching for phrases I find that the search results don't even contain the terms I was looking for. To give you an example, when while coding I encounter an error message or stack trace I don't exactly know the cause of I usually search for a relevant, distinctive segment as a phrase.
With Google I usually get relevant results that point me in the right direction fairly quickly. With DuckDuckGo more often than not I'm presented with completely irrelevant results.
This might be personalisation at play but an explicit search for a specific technical error message should return relevant results (if available) regardless of my search history.
From what I've read from others who made the switch  I seem to be in a minority. Most DuckDuckGo users claim that for them search results are equivalent to - or even better than - Google's, not the least because Google's search quality is said to have been in decline for some time now.
What's the experience with DuckDuckGo among Hacker News users? Am I the only one having these issues? <comment><USER2> I switched a few years ago. I use Firefox, explicitly because it's not controlled by a profit-driven multinational corporation, so factor that belief in...

Duckduckgo started to b the default search engine for FF a few years ago. For a while, I found myself irritated with the results, and I would sometimes try again in Google. That gradually wore off - I'd like to think it was because of changes at Duckduckgo, but more likely I'm fooling myself. I very seldom try again in Google, but I do try again every once in a while.

</comment><comment><USER3> I find their results pretty abysmal, like ALL modern search engines -- particularly in terms of returning irrelevant results that don't even contain my specific search terms, so you're definitely not the only one!

I think they're all scared of having to simply say "we couldn't find anything that matches what you specifically asked for... or was even close".

</comment><comment><USER4> Pretty decent overall, but I am starting to see more low-effort sites gaming results. Mostly those useless question/answer format sites that make you sign up to see that nobody else knows which bolts on a 1989 toyota camary are left- hand thread either. But increasingly, the keyword jackpotting spam sites.

Overall, still a smidge better than the ugly g for most things.

</comment><comment><USER5> I feel same.

I do try sometime google especially for code related work. Duckduckgo is best for the people who are ready to sacrifice more accurate results against privacy.</comment>


The Funniest Tech Related April Fools' Jokes - <AUTHOR> http://mashable.com/2011/04/01/april-fools/

<comment><AUTHOR> Here are some additional ones: [http://techcrunch.com/2011/04/01/april- fools-2011-the-big-li...](http://techcrunch.com/2011/04/01/april- fools-2011-the-big-list/)</comment>


Bringing Ruby's ActiveRecord to Java - <AUTHOR> http://blog.rapleaf.com/dev/2011/03/28/bringing-rubys-activerecord-to-java/ <comment><USER2> Maybe this could have helped: <http://code.google.com/p/activejdbc>

<comment><USER3> Or my own take on an ActiveRecord-inspired ORM: <http://joist.ws/> :-)

</comment></comment><comment><USER4> Why not just use JRuby?

<comment><USER5> I was thinking the exact same thing. My superficial reaction is that they could embed jruby in their java code and use the real active record model. this would let them reuse the validation logic and all that good stuff.

I'm really curious if they explored this possibility, and if so why they rejected it.

<comment><USER6> I immediately jumped to this conclusion as well. I judge that it may not have occurred to them. If most of their experience was in Java they may not have thought of embedding as a solution.

</comment></comment></comment><comment><USER7> Can anyone who's got Hibernate and ActiveRecord experience give a quick shot on the big differences?

I haven't used ActiveRecord.. but spent years with Hibernate, and consider it a pretty impecable project compared to other ORMs I've encountered (J2EE's CMP, and Django's ORM, specifically.

<comment><USER8> I've used NHibernate (which is the .NET port of Hibernate) and Rails ActiveRecord.

The biggest difference to me is that Rails ActiveRecord encourages you to work from the database first. That is, you define your database tables and columns which are then used to generate your classes. In contrast, NHibernate (and I'm assuming Hibernate as well) encourages you to design your classes first and worry about persistence later.

There are merits to both approaches. In general, I'd say that Rails ActiveRecord is much easier to use and get started with while NHibernate allows for more flexibility in your domain model.

<comment><USER9> If you prefer the flexibility of the class-first model, it might be better to use something like Mongoid (with MongoDB) instead.

<comment><USER8> Or DataMapper if you want to keep using a relational database as your persistence medium.

<comment><USER10> Btw, datamapper has a mongo adapter too, so it isn't restricted to RDBMS.

</comment></comment></comment></comment></comment><comment><USER11> remotely related: php-activerecord (<https://github.com/kla/php-activerecord>) is a good php implementation of activerecord that works pretty much like the ruby version.

no migration support yet, but the rest of the code is there. i've been using it in a number of projects for over a year.

</comment><comment><USER12> To me the biggest benefit of ActiveRecord is the database introspection to dynamically create the objects attributes based on the columns in the database.

This doesn't do that in Java, it parses rails migrations to generate the java classes for objects with these attributes.

Why is this a problem?

We have a similar setup up where I work, but rails migrations doesn't manage the database schema, that is managed on the java side. Rails still gets all changes to the DB in its objects, but using this setup wouldn't work. I was all excited by the title too, still it's a good solution to their particular problem.

<comment><USER13> I remember tackling a similar database introspection problem in 2006 I think it was. Reflection played a pretty big part in the solution if I recall.

I don't remember what exactly it was that I wanted to do, but it might have been something like building a dynamic table editor. You pull back the resultset, and then whip up a grid and for each column you assign the column heading based on the value from the resultset, and then when you go to update one of the rows you need to remember the name of the column for building the query dynamically. You have to jump through a few hoops, but it isn't hard.

Anyway, once I discovered the superior technology of JPA I never looked back.</comment></comment>


How Google is helping with the coronavirus - <AUTHOR> https://blog.google/inside-google/company-announcements/coronavirus-covid19-response/ <comment><USER2> Those are fair efforts. Good job.

How about giving the research community FREE access (until infection rate starts to decline?) to your TPU pod infra to accelerate their efforts?

I'm aware of DeepMind's efforts and the chinese _seem_ to be ahead at least in detecting it[0](?)

Keep it up.

[0] - [https://thenextweb.com/neural/2020/03/02/alibabas-new-ai- sys...](https://thenextweb.com/neural/2020/03/02/alibabas-new-ai-system-can- detect-coronavirus-in-seconds-with-96-accuracy/)</comment>


What I Learned from Reading Every Amazon Shareholders Letter - <AUTHOR> https://medium.com/@gsvpioneer/what-i-learned-from-reading-every-amazon-shareholders-letter-cdc35f309e8b <comment><USER2> >> If you're offered a seat on a rocket ship, don't ask what seat. Just get on.

I believe this is from Eric Schmidt. It's probably the single most important principle that you have to follow if you want to have a successful career. Especially if you're an engineer.

Most fast growing tech companies are founded by random dumb kids in their garages. Don't try to build the rocket yourself (that's a gamble that practically never ends well); let someone else do it and try to hitch a ride. That is the safest way by far.

It's much easier to identify a good rocket ship than to build it yourself.

<comment><USER3> > Most fast growing tech companies are founded by random dumb kids in their > garages.

Most fast growing tech companies were in fact founded by people between the ages of ~28 and ~50 (and not in a garage), not by kids in garages. The kid in the garage founding a major tech company is a very rare exception. I can add a lot more names to this list:

Paul Graham (31, Viaweb), Jan Koum (33, WhatsApp), Brian Acton (37, WhatsApp), Ev Williams (34, Twitter), Jack Dorsey (33, Square), Elon Musk (32, Tesla), Garrett Camp (30, Uber), Travis Kalanick (32, Uber), Brian Chesky (27, Airbnb), Adam Neumann (31, WeWork), Reed Hastings (37, Netflix), Reid Hoffman (36, LinkedIn), Jack Ma (35, Alibaba), Jeff Bezos (30, Amazon), Jerry Sanders (33, AMD), Marc Benioff (35, Salesforce), Ross Perot (32, EDS), Peter Norton (39, Norton), Larry Ellison (33, Oracle), Mitch Kapor (32, Lotus), Leonard Bosack (32, Cisco), Sandy Lerner (29, Cisco), Gordon Moore (39, Intel), Mark Cuban (37, Broadcast.com), Scott Cook (31, Intuit), Nolan Bushnell (29, Atari), Paul Galvin (33, Motorola), Irwin Jacobs (52, Qualcomm), David Duffield (46, PeopleSoft; 64 Workday), Aneel Bhusri (39, Workday), Thomas Siebel (41, Siebel Systems), John McAfee (42, McAfee), Gary Hendrix (32, Symantec), Scott McNealy (28, Sun), Pierre Omidyar (28, eBay), Rich Barton (29 for Expedia, 38 for Zillow), Jim Clark (38 for SGI, and 49 for Netscape), Charles Wang (32, CA), David Packard (27, HP), John Warnock (42, Adobe), Robert Noyce (30 at Fairchild, 41 for Intel), Rod Canion (37, Compaq), Jen- Hsun Huang (30, nVidia), Eli Harari (41, SanDisk), Sanjay Mehrotra (28, SanDisk), Al Shugart (48, Seagate), Finis Conner (34, Seagate), Henry Samueli (37, Broadcom), Henry Nicholas (32, Broadcom), Charles Brewer (36, Mindspring), William Shockley (45, Shockley), Ron Rivest (35, RSA), Adi Shamir (30, RSA), John Walker (32, Autodesk), Halsey Minor (30, CNet), David Filo (28, Yahoo), Jeremy Stoppelman (27, Yelp), Eric Lefkofsky (39, Groupon), Andrew Mason (29, Groupon), David Hitz (28, NetApp), Brian Lee (28, Legalzoom), Demis Hassabis (34, DeepMind), Tim Westergren (35, Pandora), Martin Lorentzon (37, Spotify), Ashar Aziz (44, FireEye), Kevin O'Connor (36, DoubleClick), Ben Silbermann (28, Pinterest), Evan Sharp (28, Pinterest), Steve Kirsch (38, Infoseek), Stephen Kaufer (36, TripAdvisor), Michael McNeilly (28, Applied Materials), Eugene McDermott (52, Texas Instruments), Richard Egan (43, EMC), Gary Kildall (32, Digital Research), Hasso Plattner (28, SAP), Robert Glaser (32, Real Networks), Patrick Byrne (37, Overstock.com), Marc Lore (33, Diapers.com), Ed Iacobucci (36, Citrix Systems), Ray Noorda (55, Novell), Tom Leighton (42, Akamai), Daniel Lewin (28, Akamai), Michael Mauldin (35, Lycos), Tom Anderson (33, MySpace), Chris DeWolfe (37, MySpace), Mark Pincus (41, Zynga), Nir Zuk (30, Palo Alto Networks), Caterina Fake (34, Flickr), Stewart Butterfield (31, Flickr), Kevin Systrom (27, Instagram), Adi Tatarko (37, Houzz), Brian Armstrong (29, Coinbase), Pradeep Sindhu (43, Juniper), Peter Thiel (31, PayPal; 37, Palantir), Jay Walker (42, priceline.com), Pony Ma (27, Tencent), Robin Li (32, Baidu), Liu Qiangdong (29, JD.com), Lei Jun (40, Xiaomi), Ren Zhengfei (38, Huawei), Arkady Volozh (36, Yandex), Hiroshi Mikitani (34, Rakuten), Morris Chang (56, Taiwan Semi), Cheng Wei (29, Didi Chuxing), James Liang (29, Ctrip)

<comment><USER4> Garage doesn't literally mean garage in this context. Another way to put it is: Most fast growing tech companies are started by young people barely into adulthood on a laptop.

I see a lot of late 20's in your list, and a lot of companies that started with one person writing some code on a computer.

<comment><USER5> Late 20ties is miles different than early 20ties, especially for those who went to college. Very very different. Anything over 22 does not count as "barely into adulthood". 23 years old are adults in all meanings of the word.

<comment><USER6> In my experience men only reach adulthood at 30, (women at 25). And I'd like to hear the opinion of others (who are passed this age).

<comment><USER7> Please elaborate on how you define adulthood, and why it's so different between men and women.

<comment><USER8> Women have to worry about settling down earlier.

<comment><USER5> Still, what does adulthood means for you?

26 year old dudes are adults, full stop. And in my experience, they don't think nor act like teenagers whether they settled down or not, whether they married or not, whether they kept old hobbies or not.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> It's funny. I've heard the "Disagree but commit" from a lot of managers lately; usually used to shut peons up. Ironic that it's original usage (at least where these managers heard it from) speaks to the opposite direction: leadership should trust their teams.

<comment><USER10> Even internally to Amazon, it's misunderstood.

The point is to gather all the facts, make a decision as a team or group, then have everyone commit to the decision and not whine about how they should have done what _I_ said we should do. You disagree, but you commit to the decision of the group for cohesion and productivity.

It's also a means to prevent groupthink. No one should be thought poorly of _for_ disagreeing, so everyone should be giving all their thoughts, even ones that contradict what the group is thinking. Just so long as they get those points out before the decision is made, of course.

<comment><USER11> Exactly. No matter how good an idea is, if people in the team are sabotaging it because they don't like it you'll have a bad time. A variation on Patton's quote: A mediocre plan executed well is better than a great plan executed poorly.

</comment></comment></comment><comment><USER12> Is it safe in this thread to bring up the human cost of Amazon's (and likely by extension Bezo's) almost sociopathic pursuit of success? I wouldn't deny Amazon is a successful company, but how many horror stories from employees being ground to dust under their management have crossed HN's front page? How many companies are now refusing to do business with Amazon because of the iron-fisted requirements enforcement on their suppliers? How many sales on Amazon are of shit quality, ripoff products no better than you'd find on the streets of Hong Kong?

I mean eschewing any and all corporate, social, and ethical responsibility will definitely make you a truck load of money, but I wouldn't call it exactly a net gain for all involved.

<comment><USER13> I had a roommate who worked in the Amazon warehouse. He said it was very chill and easy work. Mind that he was someone who was a day-laborer, worked in filthy factories, and so on, so it's possible contrast principals are at play here.

As for the quality of the products, there are many 3rd party sellers on Amazon who are selling garbage. This is unfortunate, but that's a tough battle for Amazon or the competing sellers to lock down.

I'm not sure why you'd defend the suppliers who refuse to sell due to iron fisted policies, yet complain about the quality of the products sold. Amazon had / has to do something to clean up the mess. Hopefully it will be beneficial to the buying experience on Amazon.

<comment><USER14> In my experience working in an Amazon warehouse (albeit only one,) it depends. I could barely walk for two months after I started, just because I wasn't physically prepared to stand or do repetitive movements for ten hours a day - and I work in one of the biggest FC's in the network so it was a six or seven minute struggle across the building and down two flights of stairs to get to the car sometimes. I don't blame Amazon for that, though. I do blame them for complaining about the cost of providing us with aspirin, then simply deciding not to provide it anymore.

The work is tedious and exploitative, and it's very apparent working there that Amazon considers you little more than a meat machine there to run an algorithm, despite the lip service otherwise, and often your job depends on metrics you're not even allowed to see, and the pay is terrible. But, some people don't mind it. Some people actually like it. Others have to be carted off in an ambulance because they worked themselves into heat exhaustion.

</comment></comment></comment><comment><USER15> It's a very interesting read, and I can't help the feeling that lately Jeff Bezos is taking the place of Steve Jobs as the superhuman CEO (deservedly, it seems!).

<comment><USER16> Then you haven't been an Amazon supplier dangling at the end of a rope as Bezos tries to wring blood from a stone.

<comment><USER17> That sounds a bit familiar to how Apple dealt with their suppliers.

<comment><USER18> Any big company, apple, wallmart, ford.. and on and on.

<comment><USER19> To give a contrast, Aldi has an excellent reputation with suppliers. That German hard discounter pays like clockwork.

<comment><USER20> I gotta admit that I can forgive a multiple of sins when I'm paid on time.

</comment></comment></comment></comment></comment></comment><comment><USER4> Amazon shareholder letters seem to be becoming the new Berkshire shareholder letters [0]. They are friendly, engaging, and most importantly, written by an author who steadfastly holds by principles that haven't changed in decades.

If you haven't read any of the berkshire letters you really should.

[http://www.berkshirehathaway.com/letters/letters.html](http://www.berkshirehathaway.com/letters/letters.html)

</comment><comment><USER21> It's still amazing to me that an online book store is now the #1 seller of server infrastructure.

<comment><USER22> Many people were selling things online when Amazon was just a book store. Amazon was the best of them all.

To me, it doesn't sound so strange that the #1 online store grew to be a strong competitor in other online businesses as well.

</comment></comment><comment><USER23> Too abstract. Amazon businesses outside of North America get steamrolled by Alibaba one after another, yet people laud their "innovative business model," when it isn't (sell web hosting, and stuff over internet, something a gazillion other companies do)

<comment><USER24> That's nonsense. It's only true for China (for obvious reasons). Amazon is more successful in India, UK, Germany, France, Japan, and the list goes on.

<comment><USER23> See, they are in the business of selling fancy trinkets from China as it is what 9 out of 10 consumer goods are. No mater what they do, a Chinese company will be having an edge over them no matter what they will do.</comment></comment></comment>


Bradley Manning's case is about more than freedom of speech - <AUTHOR> http://www.newstatesman.com/politics/2013/06/bradley-mannings-case-about-more-freedom-speech

<comment><USER2> Yes, the US gets away with human rights atrocities, and yes, Manning should not be tortured. However, one can't ignore the fact that he released US government secrets to a non-government entity. That is treason. Manning will receive some sort of punishment because he committed treason, and treason is breaking the law. It's fairly simple.

<comment><USER3> > he released US government secrets to a non-government entity. That is > treason.

That's not what treason is in the USA. Treason is defined in the US Constitution as such:

"Treason against the United States, shall consist only in levying War against them, or in adhering to their Enemies, giving them Aid and Comfort. No Person shall be convicted of Treason unless on the Testimony of two Witnesses to the same overt Act, or on Confession in open Court."

<comment><USER4> > giving them Aid

<comment><USER3> Aiding the enemy is a separate offense than treason, and a less serious one. Bradley Manning is actually being charged with aiding the enemy, but is not being charged with treason.

<comment><USER4> Ah, so your argument is a semantic one.

<comment><USER3> Well, yes, it's obviously a semantic argument. I'm arguing about what "treason" means.</comment></comment></comment></comment></comment></comment>


World War Two Affects Hackers Today - <AUTHOR> http://pointsandfigures.com/2012/06/09/why-its-important-to-remember-world-war-two/

<comment><USER2> This post has nothing to do with "hackers"</comment>


Show HN: Patat – Terminal-based presentations using Pandoc - <AUTHOR> https://github.com/jaspervdj/patat <comment><USER2> In addition to the prior art the author links in the README, there's also the suckless.org project ssg[0]. For something a little more graphically oriented, there's Tom MacWright's big[1] and the in-browser slide editor biggie[2], which both use Markdown.

1: [https://github.com/jroimartin/ssg](https://github.com/jroimartin/ssg)

2: [http://www.macwright.org/big/](http://www.macwright.org/big/)

3: [http://www.macwright.org/biggie/](http://www.macwright.org/biggie/)

</comment><comment><USER3> This is great. I'd love to see something like this with terminal image support for iTerm and Terminology.

If I display images in slides it's only usually 1 image on it's own or occasionally with title text.

I guess if you could use an embedded background image shell commands, e.g. tybg for Terminology, in the Markdown (or other input text) you could make it work.

An alternative would be to use Pandoc to create a presentation and then use w3m to display it in the terminal but Patat would be neater.

</comment><comment><USER4> As an other text based presentation tool I recommend Pinpoint, which also supports transitions or PDF export:

[https://wiki.gnome.org/action/show/Apps/Pinpoint](https://wiki.gnome.org/action/show/Apps/Pinpoint)

</comment><comment><USER5> It's a neat project, and props on bringing it to fruition! But do you see there being a practical use case for this kind of presentation, or did you create this purely for the novelty and fun?

<comment><AUTHOR> I don't intend to make money with it, but yeah I found it to be pretty useful if I want to give quick-and-dirty presentations to other engineers or technical folks. It basically allows me to switch between the presentation and a demo (running in the console) more seamlessly.

For my particular use case: I work remotely and we use video conferencing all the time. Our video conferencing software allows you share a single screen which is neat, but annoying if you need to switch between a browser (or PDF viewer) and the terminal.

I wouldn't use it for "proper" presentations, or stuff that needs a lot of math (LaTeX beamer comes to mind for that).

<comment><USER6> I welcome anything that support textual interfaces. Thanks and kudos. Also, naming award.

</comment></comment></comment><comment><USER7> Being a Dutchman the name alone made me upvote this.

<comment><USER8> Being Belgian, I did the same! But the project does look useful :-)

The OP is Belgian as well and he has a Trivia section where he does explain what it means in Dutch to the Dutch/Belgians

<comment><USER9> Being French, all I saw was a spelling error ;-)

</comment></comment></comment><comment><USER10> I like tpp ([http://www.ngolde.de/tpp.html](http://www.ngolde.de/tpp.html)). Syntax is easy to learn. It can simulate shell interaction and you can shell out from within the presentation.

And it's been feature complete for a long time. I just tried viewing a short presentation I have at BayLISA nine years ago ([https://gist.github.com/cwarden/1349583](https://gist.github.com/cwarden/1349583)), and it looks fine.

</comment><comment><USER11> If I load test/03.md with it, the process consumes around 19MB. Is that expected and normal for displaying ansi text?

<comment><AUTHOR> I haven't done any sort of profiling, but yeah that's a bit much. Unless Pandoc really needs that much memory to do the conversion, I can probably cut it down by quite a lot. I will look into it.

</comment></comment><comment><USER12> Terminal-based presentations generally don't look quite presentable. I'd rather use suckless.org's sent. It's a very similar tool for graphical presentations, although it doesn't have quite as many features. It's quite good if you're a fan of the Takahashi Method, or the similar Lessig Method of presentation. Which I am.</comment>


Why are Facebook, Digg and Twitter So Hard To Scale? - <AUTHOR> http://highscalability.com/blog/2009/10/13/why-are-facebook-digg-and-twitter-so-hard-to-scale.html

<comment><USER2> I think it's laughable to put Twitter and Digg in the same category of scalability as Facebook.

Maybe things have changed since the last time I visited Digg over 2 years ago, but the social networking aspects are not very significant. The vast majority of their hits are practically fully page cacheable.

Twitter at least has an interesting scaling problem, but they don't have any features and they move at a glacial pace.

Facebook on the other hand has a graph that almost as nasty as Twitter's (minus the million followers thing), but they have 100 times the features, and they push new code _every week_.

<comment><USER3> Facebook also "has about 30,000 servers supporting its operations, hosts 80 billion photos, and serves up more than 600,000 photos to its users every second."

(check out <http://www.facebook.com/Engineering?v=wall> )

<comment><AUTHOR> Facebook handles 30K machines, 300M active users, 20B photos, & 25TB per day of logging data. <http://bit.ly/EA3oY>

</comment></comment></comment><comment><USER4> I wonder if there is value to be had in migrating users to increase social graph locality.

The probability of (B fr C) is greater than the mean if (A fr B) and (A fr C). That's useful information.

Off the top of my head, I wonder how an algorithm like:

\- I have N shards

\- pick the top N most-connected users

\- assign them each to a shard

\- assign their immediate friends to the same shard

\- randomly fill in other users

would work.

Possible refinements:

\- if the %age of shared friends between two users in the top N is > X, put both users in the same shard + add the N+1th user at a new shard-seed

\- chase more than one level of immediacy from the shard-seed users to fill the shard

\- if a shard is full, don't drop to random allocation for 1st- or 2nd- level friends, but instead put them all onto shard+1

The idea here is that for pull _or_ push you win if you need to contact fewer shards. i.e. the queries and updates needn't be per-user but per-shard. i.e. you can query/update for all users on a shard in one sql statement.

If you somehow manage to keep all of ashton's friends on 10 shards instead of 100, then that's a big win, surely?

</comment><comment><USER5> I've wondered for a while about some hybrid push/pull distribution scheme. I have 100 followers, just push. Oprah has 1M, 1% of which are currently active, pull. Sounds complicated, but feasible.

<comment><USER6> But is also has to do with how frequently the information is changed/accessed.

e.g. If Oprah only publishes 3 tweets a day, but her one million followers each check 100 times a day (just to be on the bleeding edge of gossip), it's much less effort to push the change.

On the flip side, if you post status changes several times a day but your followers rarely check (daily/weekly), pull may make more sense.

Although, I suppose that a push inherently requires an update/write, while a pull is generally a read. Seems like this might need to be taken into consideration as well.

</comment></comment><comment><USER7> This is in fact an unsolved problem. Current database systems cannot handle this level of connectivity. Facebook can't do a "push" because of all the features they support. It gets extremely complicated if they push complex data into user's mailbox. And twitter cannot do "pull" so they can avoid putting a cap on the number friends/followers but then that's why they cannot really add any feature.

</comment><comment><USER8> Because those who ignore the pub-sub research IBM did in the 80s are doomed to re-implement it badly.

<comment><USER9> I'll preface this with the fact that I've not read those papers (but today was thinking through the concept of write hooks in information graphs), but I'd assume from the common formation of the pattern that it's only really set up for one-dimensional publishes.

The problem in large scale information networks, more in the Facebook way than the Twitter way, is that you you potentially trigger a cascading effect in information updates if you go pub-sub. Specifically, applications that do interesting things with social graphs have to go beyond basically doing message passing.

I naturally look at things from a recommendations angle, but if you've got a new edge that enters the graph that may affect other edges that are connected to the end points. Those may in turn affect the edges that are connected to those nodes and so on. You want to avoid something that effectively becomes a breadth first traversal of the graph doing updates since that's well, slow, to put it mildly.

This is why large-scale graph algorithms like PageRank work on constantly regenerating static matrices rather than doing regeneration of the ranks dynamically, but that naturally is problematic when you're working on data sets where the most recent data is the most important and is being generated at very high rates.

<comment><USER10> In some models, sure, but is that true in Facebook's? Does anything go beyond one degree?

I can't think of anything, really. If X and Y becomes friends, X's friends and Y's friends see it in their feed ("inbox"), but nobody else. Same goes for tagging someone in a photo, etc.

<comment><USER9> Ad targeting, what's hot in your network, friend recommenders, etc. are all essentially ranking problems. They're moving more in that direction, definitely.

<comment><USER10> Word. True. I knew there was something I wasn't thinking of.

</comment></comment></comment></comment></comment><comment><USER6> I think the trade off between push/pull is influenced by the ratio of the 'velocity' of data (how frequently it changes) to its access frequency.

If accessed frequently, but changes less frequently, then push makes sense, if changes frequently, but accessed infrequently, then pull makes sense.

It also seems likely that the same piece of data may have different ratios from different perspectives.

</comment><comment><USER11> I spent a few hours mocking up a solution to this type of status updates in code. It seemed fairly obvious so I assumed it was not a real problem. However, if there is any interest I can turn it to some sort of blog post next weekend.

<comment><USER12> Sure it's obvious until you have hundreds of millions of nodes that each link to somewhere between 100 and 2,000,000 other nodes that need to be updated when any given node updates (assume around 5,000 nodes are updating every second with a power law kind of distribution).

If you think that's obvious, I think you're significantly beyond all of the people with all of the "hello world" twitter clones out there.

<comment><USER11> It all comes down how well you can slice the process. There is no cheep over the counter solution to these problems but a little custom code can go a long way.

5k node updates per second might sound like a problem, but one core of one machine can easily keep up with that so you can have several copies _and several views_ of the whole network graph. Public vs. private messages can be handled separately and then joined before presentation to the user. You can separate finding which message to display from the message data. You even get to display dirty reads as long as the data is <2 seconds old it's plenty good enough.

Ok, describing the solution based on the above insights takes some time and pictures but does it still sound horrible?

PS: Twitter was forced to morph an architecture built to solve a different problem into a working solution. That takes time and can be fairly difficult. But, starting from scratch it's not that bad.

<comment><USER13> I think you under-estimate the complexity and performance costs of having a massively distributed data structure. Having N nodes perform computations on a graph many times the size of N is easy. Maintaining some form of coherency throughout all N nodes is hard.

The communication costs are significant, and probably similar to N-body simulations.

<comment><USER8> _Maintaining some form of coherency throughout all N nodes is hard._

Hence the "eventually consistent" model.

<comment><USER13> That's still hard. There's a trade-off between accuracy and performance.

</comment></comment></comment></comment></comment></comment><comment><USER14> I've been wondering for a while why we don't see more often systems with a huge amount of RAM and asynchronous persistent updates, with a more, how should I put it, computer science-ish architecture inside. MVC works ok, but does it really mean we _have_ to use it always? Is it so hard to make system with a TeraByte of RAM? Why even use memcache? Why not make a clear decision that stuff like user statuses will never even see the inside of a hard disk and make use of the simplification it brings? Is there a clear reason, or simply it's not fashionable?

<comment><USER15> User statuses should never touch hard disk? What happens when your server restarts and everything you were storing in memory disappears?

<comment><USER16> The greylist daemon I wrote (<http://www.x-grey.com/>) keeps everything in memory, with a checkpoint (everything gets written out to disk) every hour (the main process forks, and it's the child that does the writing). A similar approach might be applicable here.

It could very well be a RAM based approach might be viable once memristros ([http://en.wikipedia.org/wiki/Memristor#Potential_application...](http://en.wikipedia.org/wiki/Memristor#Potential_applications)) are used for memory.

</comment></comment></comment><comment><USER17> scaling is hard. this is why, for the non-technical audience... also the post ends with "brave new world." yuck.

</comment><comment><USER18> Pervasive writes?</comment>


Ask HN: DevOps learning resources - <AUTHOR> Hey guys,
I've been a developer for some time now, but I've never had to do anything with deployment, servers, and all these good things.
I'd really like to have the basics so would you guys have some nice resources to gain some general knowledge about it. Thanks! <comment><USER2> Well, the best way to learn is to actually do something. Create a small service in your favourite framework. Something really small, an echo service will probably suffice.

Then stop "developing" and switch on "Ops mode".

Automate:

\- builds (build & packaging scripts)

\- deployments - try all 3 major approaches:

        - push deployment: running a command on a central server that orchestrates everything (Ansible, Salt, chef-solo, ...)

        - pull deployment: agents running on your target server, that pull the latest changes (Chef, Puppet, ...)

        - immutable infrastructure: VMs or containers that are never modified, only recreated (CloudFormation, Docker, ...)

      include database updates in your deployment orchestration and possibly include even environment pre-warming/pre-caching

\- functional tests, especially fast smoke tests

Add:

\- high availability/load balancing (Nginx, HAProxy, Apache, Elastic Load Balancer)

\- detailed technical monitoring and graphing (Nagios, Zabbix, Cloudwatch)

\- availability monitoring (Pingdom)

\- a status page (can't give you a decent example; you can build your own, but host it somewhere else than your main "app")

\- log collection and shipping (Splunk, Graylog)

Basically, for almost everything I listed google options and pick an "Ops stack". Then implement that as best you can.

Oh, and by the way, while working on the "Ops stack", only "develop" things in support of this Ops work in your "app".

<comment><USER2> I forgot to mention 3 very important things "to add":

\- security (you should already know a great deal from your work as a developer, the general things such as no open ports, no plain text passwords, etc.)

\- related to security: secret management (Chef, Puppet - I think, Vault)

\- backups, backups, backups: for the database and basically anything which is not reproducible from source (which in general should only be your database data)

<comment> rob-olmos Interesting only one comment made a clear call to backups. Strongly second the notion of backups as a high priority to learn and implement. Could make it more "devops-y" by also automating the verification of them with restores/testing.

</comment></comment></comment><comment><USER3> The first thing to realize is that DevOps is an ambiguous term (at least partly by design, it seems).

My belief—shaped by many at the forefront of the DevOps movement—is that it is a cultural focus rather than a technical one. In many ways, it's an extension of agile philosophies, with a focus on fast feedback, transparency, heightened interactions between teams, etc. There is also a heavy focus on automation (CICD), but the automation is there to serve the cultural goals. Just because you do CICD doesn't mean you're necessarily doing DevOps, and you can adopt a lot of DevOps principles without doing full CICD.

Books:

* The Phoenix Project— introduces a lot of concepts (such as lean principles) that are foundational to the movement

* Effective DevOps (Oreilly)

* The DevOps Handbook

Podcasts:

* Arrested DevOps

* DevOps Cafe

Blogs:

* IT Revolution

Events:

* DevOpsDays conferences

* Local meetups

* Velocity conferences

* DevOps Enterprise Summit

Having a good grasp of both development and operations skills is helpful. But it's far from complete. If you solely focus on the technical aspects without examining the cultural, you're missing the foundation of the movement.

<comment><USER4> For those who've gone, is the DevOpsDays $175 price tag worth it?

<comment><USER3> They're offered all over the world, so the quality probably varies quite a bit (especially since it's a fairly decentralized organization). However, for the price tag, I'd say it's a steal—the networking value alone is worth more than that.

DevOpsDays has been around since the very beginning of the movement—in fact, the term was popularized at DevOpsDays Belgium in 2009.

</comment></comment></comment><comment><USER5> Have you written a webapp as a side project before? If yes, then great:

1\. Find a bare VM provider, e.g. Linode or Digital Ocean or EC2.

2\. Figure out a way to get your code up there, even if it's ghetto. e.g. git pull from github. Get the app server running.

3\. Figure out how to expose your app to the internet. Buy a domain name, get it to point to your IP addr. Soon enough you will realize that DNS load balancing is terrible...

4\. Then you should install Nginx or HA proxy and put your app behind it. Run your app on localhost, only nginx should be exposed.

5\. Once everything is up, iptables is your next concern, expose only ports you want and disable everything else.

6\. Repeat 1-5 on a second instance.

7\. Soon enough you will find that repeating the same thing sucks, so you will write Python script using Fabric library. But then you realized someone else have done this already, after a quick googling, you will find Ansible or Salt. Use those instead.

8\. Rinse and repeat for other networked things. e.g. databases, mail relays, cache servers, etc.

9\. Evolve your approaches, rewrite ghetto stuff, make your artifact as immutable as possible with very few network dependencies...

That's pretty much the entire devops evolution up until 3 years ago. Once you got good in these...

1\. Start reading about Linux container and why they are useful.

2\. Install docker and try to get your toy project in a dockerfile.

3\. Repeat the learning exercise again on deploying Docker containers.

Hope that helps :)

</comment><comment><USER6> The Phoenix Project is a really inspirational novel, good for 'getting' the devops mindset and also as a tool to get other people in your organisation on board.

[https://www.amazon.co.uk/Phoenix-Project-DevOps-Helping- Busi...](https://www.amazon.co.uk/Phoenix-Project-DevOps-Helping-Business- ebook/dp/B00AZRBLHO)

The DevOps Handbook is a sister book to The Phoenix Project which is more technically oriented around the practicalities of closer integration between Dev and Ops.

[https://www.amazon.co.uk/DevOps-Handbook-World-Class- Reliabi...](https://www.amazon.co.uk/DevOps-Handbook-World-Class-Reliability- Organizations-ebook/dp/B01M9ASFQ3/)

</comment><comment><USER7> I work at one of the large insurance companies as a DevOps role wherein I convert the various product build processes into a CI pipeline. We use Jenkins (we use all of them, but our department uses Jenkins). Everyone has roughly the same process in general - you store some code in SCM, and then something checks it out, runs various "Quality Gates" (corporate speek for tests), and then you eventually build the product and commit it to some secure artifact repository. You put some logs on there that you're somewhat convinced employees can't modify or delete, and call that an audit trail.

Ok, so that said, I would say that for an open source core like Jenkins, the source code is hands down the only documentation you can trust. And that's very, very frustrating at first. Trusting what's in a wiki is the easiest way to burn a day, believing something that was once (possibly) true to still be true. Most interfaces are not documented at all, beyond system generated documentation. A certain class of developers are fine with that, but many of us need a little push up the hill in order to script our way around these ecosystems effectively.

After accepting that the source code is the single source of truth, the job got a lot easier (and made me come across as far more of an expert). But it's a difficult sell to get other people interested in sharing this work.

</comment><comment><USER8> I made a mind map for learning DevOps :

[https://learn-anything.xyz/programming/software- development/...](https://learn-anything.xyz/programming/software- development/devops)

Clicking on nodes with a map will go to other mind maps with resources.

<comment><USER9> Nice. Hope you don't mind me pointing this out, but cluster manager seems like odd semantics, wouldn't that grouping be container orchestration?

<comment><USER8> Yes, I think that is more appropriate too. Will change it now.

</comment></comment></comment><comment><USER10> Devops:

One word of caution. The future really will be having a docker file and finding a place to run code (docker swarm, ecs, etc). When you commit code it will be ran through a ci system (unit tested, staged) then updated.

The salts, puppets, chefs, Vaults, running your own Kubernetes (wtf), VMs, Nagios, sendmails, vpcs and all this other drama will be latin in a few years.

The future will be running the code on your macbook (with container of choice), then commiting. The end.

<comment><USER11> This could be true, from a developer's perspective. But the OP was in the spirit of expanding one's knowledge and understanding. But even if a single- interface, fully-managed container orchestration service is available to all, the value of understanding how the underlying systems actually function will not cease to exist. Anyone building moderately complex systems will still want to know about OS, networks, storage systems, access control, and all the rest, because those areas of expertise are applicable and useful across the stack.

</comment></comment><comment><USER12> I recommend the following books to learn more about the work involved on the Ops side:

[https://www.amazon.com/Modern-Linux-Administration- Cutting-E...](https://www.amazon.com/Modern-Linux-Administration-Cutting-Edge- Administrator/dp/1491935952)

[https://www.amazon.com/Practice-Cloud-System- Administration-...](https://www.amazon.com/Practice-Cloud-System- Administration-Practices/dp/032194318X)

[https://landing.google.com/sre/book.html](https://landing.google.com/sre/book.html)

[https://www.amazon.com/How-Linux-Works-Superuser- Should/dp/1...](https://www.amazon.com/How-Linux-Works-Superuser- Should/dp/1593275676)

[https://www.amazon.com/Effective-Monitoring-Alerting-Web- Ope...](https://www.amazon.com/Effective-Monitoring-Alerting-Web- Operations/dp/1449333524)

[https://www.amazon.com/Ansible-DevOps-Server- configuration-m...](https://www.amazon.com/Ansible-DevOps-Server- configuration-management/dp/098639341X)

[https://www.amazon.com/Terraform-Running-Writing- Infrastruct...](https://www.amazon.com/Terraform-Running-Writing- Infrastructure-Code/dp/1491977086)

[https://www.amazon.com/Amazon-Services-Action-Andreas- Wittig...](https://www.amazon.com/Amazon-Services-Action-Andreas- Wittig/dp/1617292885)

<comment><USER13> Great list of books, I have quite a few in common and some to add:

[https://www.amazon.com/Modern-Linux-Administration- Cutting-E...](https://www.amazon.com/Modern-Linux-Administration-Cutting-Edge- Administrator/dp/1491935952) (General Linux)

[https://landing.google.com/sre/book.html](https://landing.google.com/sre/book.html) (SRE)

[https://www.amazon.com/Ansible-DevOps-Server- configuration-m...](https://www.amazon.com/Ansible-DevOps-Server- configuration-management/dp/098639341X) (Ansible)

[https://www.amazon.com/Puppet-4-10-Beginners-Guide- Second/dp...](https://www.amazon.com/Puppet-4-10-Beginners-Guide- Second/dp/1787124002) (Puppet, beginner)

[https://www.amazon.com/Learning-Puppet-Configuration- Managem...](https://www.amazon.com/Learning-Puppet-Configuration-Management- Automation/dp/1491907665) (Puppet, intermediate)

[https://www.amazon.com/Learning-SaltStack-Second-Colton- Myer...](https://www.amazon.com/Learning-SaltStack-Second-Colton- Myers/dp/1785881906) (SaltStack)

[https://www.amazon.com/Networking-Systems-Administrators- Mas...](https://www.amazon.com/Networking-Systems-Administrators- Mastery-5/dp/0692376941) (Networking)

[https://leanpub.com/serversforhackers](https://leanpub.com/serversforhackers) (SysAdmin)

[https://leanpub.com/scalingphp](https://leanpub.com/scalingphp) (Scaling)

[https://debian-handbook.info/get/](https://debian-handbook.info/get/) (Debian Linux)

</comment></comment><comment><USER14> For the build/test/integration/deployment cycle, there's "Continuous Delivery" by Humble and Farley: [https://smile.amazon.com/Continuous-Delivery- Deployment-Auto...](https://smile.amazon.com/Continuous-Delivery-Deployment- Automation-Addison-Wesley/dp/0321601912/)

I found that very good for understanding the principles and reasons. Implementing it was a very frustrating experience for me, which is why I wrote a (much shorter) book on how to do it practically, with worked examples: [https://leanpub.com/deploy](https://leanpub.com/deploy)

</comment><comment><USER15> Also, if you can afford it, the Site Reliability Engineering book is an excellent comprehensive resource on practices, theory, return from experience: [https://landing.google.com/sre/book.html](https://landing.google.com/sre/book.html) (and you can read it online for free, too).

<comment><USER16> Instead of buying the book, why not get Safari (the website, not the browser) and read that book plus many more? And if you are an ACM member you already have access to it through [http://learning.acm.org](http://learning.acm.org)

</comment></comment><comment><USER17> This is a less general answer, but if you want to work with AWS and you have a Kindle, download the manuals for free and read them during down time. I did this and it helped me a lot.

</comment><comment><USER18> Do you have a website / blog or any other hobby project?

You can learn basics by automating its deployment.

Let's say you will go with public cloud: Amazon or Google.

Create a small basic infrastructure with some automation tool such as terraform.

For example a VPC with private subnets and two small instances in different availability zones. Another instance for NAT and a load balancer.

Then use Ansible / Puppet / Chef to automate deployment of your application, make sure you can deploy without any outage to the service (set up some health check to verify your app is always up).

Perhaps deploy the app in a container. Automate security settings to lock down ports. Automate SSL certificate renewal with let's encrypt.

You can even take it a step further and automate deployment of a PaaS like Kubernetes or CloudFoundry and deploy your blog / website there.

Next task would be setting up CI pipeline and continuous deployments. Integrate it with PaaS.

Where do you store all secrets and credentials? Look at solutions such as Vault from hachicorp or Ansible Vault.

There's a lot to learn by just automating everything about a simple hobby project or blog.

Of course after you're done with this scale down all this crazy infrastructure so you don't pay $200 for a blog.

</comment><comment><USER19> Here is some I collected

[http://serverfault.com/questions/1046/what-is-the-single- mos...](http://serverfault.com/questions/1046/what-is-the-single-most- influential-book-every-sysadmin-should-read)

[https://github.com/Leo-G/DevopsWiki](https://github.com/Leo-G/DevopsWiki)

[https://learn-anything.xyz/programming/software- development/...](https://learn-anything.xyz/programming/software- development/devops)

[https://news.ycombinator.com/item?id=14153545](https://news.ycombinator.com/item?id=14153545) (What Is 'Site Reliability Engineering'?)

[https://www.reddit.com/r/homelab/wiki/software](https://www.reddit.com/r/homelab/wiki/software)

[https://www.reddit.com/r/linuxadmin/comments/65vb8s/advice_i...](https://www.reddit.com/r/linuxadmin/comments/65vb8s/advice_if_you_are_wanting_to_go_into_devops)

[https://www.reddit.com/r/sysadmin/wiki/bootcamp](https://www.reddit.com/r/sysadmin/wiki/bootcamp)

[https://www.reddit.com/r/sysadmin/wiki/learn](https://www.reddit.com/r/sysadmin/wiki/learn)

[http://Learn.SharjeelSayed.com](http://Learn.SharjeelSayed.com)

</comment><comment><USER20> Ten Persistent SRE Antipatterns:

[https://www.usenix.org/conference/srecon17americas/program/p...](https://www.usenix.org/conference/srecon17americas/program/presentation/horowitz)

</comment><comment><USER21> Work through all of these tutorials on containerization and orchestration found here: [https://github.com/docker-training/orchestration- workshop](https://github.com/docker-training/orchestration-workshop)

When running the Dockercoins example, how can you scale it up to mine as many coins as possible? How would you set up alerts for if one of the services went down? How would you diagnose the problem? What other tools might you use?

Play around and see what tools you like and don't like. Have fun!

</comment><comment><USER22> Over at DZone, we have big community of developers sharing tutorials and content that could help introduce you to DevOps.

For starters, we have an entire web portal with thousands of free community- written articles about DevOps-related topics: [https://dzone.com/devops](https://dzone.com/devops)

We also have several Refcardz (cheatsheets) on a variety of DevOps related topics:

Deployment Automation Patterns [https://dzone.com/refcardz/deployment- automation-patterns](https://dzone.com/refcardz/deployment-automation- patterns)

Continuous Integration Servers [https://dzone.com/refcardz/continuous- integration-servers](https://dzone.com/refcardz/continuous-integration- servers)

Continuous Delivery Patterns [https://dzone.com/refcardz/continuous-delivery- patterns](https://dzone.com/refcardz/continuous-delivery-patterns)

And for an introductory overview, we provide topical research and best practices Guides. Here is our latest 2017 DevOps Guide: [https://dzone.com/guides/devops-continuous-delivery-and- auto...](https://dzone.com/guides/devops-continuous-delivery-and-automation)

</comment><comment><USER23> DevOps is a such a broad term and can mean lot of things. If you are looking for something related to orchestration, I am putting together some Ansible recipes specific to AWS. It is here at [https://github.com/gshakir/ansible- recipes](https://github.com/gshakir/ansible-recipes)

</comment><comment><USER24> DevOps is a moving target right now, and a lot of great fundamentals are linked here already. I'd also recommend subscribing to, and reading old issues of:

[https://sreweekly.com/](https://sreweekly.com/) [http://www.devopsweekly.com/](http://www.devopsweekly.com/) [https://lastweekinaws.com/](https://lastweekinaws.com/) [https://weekly.monitoring.love/](https://weekly.monitoring.love/)

The last two are fairly young, but have good content so far. I wouldn't call it a well-curated list, but there are tons and tons of great posts are linked (in loosely chronological order, as weekly mail blasts tend to be).

</comment><comment><USER25> I just searched "list of curated devops github", this is what I got.

Awesome Devops. A curated list of resources for DevOps

[https://github.com/AcalephStorage/awesome- devops](https://github.com/AcalephStorage/awesome-devops)

</comment><comment><USER26> Conference videos might be helpful-

[http://findlectures.com/?p=1&class1=Technology&category_l2_T...](http://findlectures.com/?p=1&class1=Technology&category_l2_Technology=-DevOps)

</comment><comment><USER27> The new cloud space has changed a lot in the last few years. A short time ago I'd say you should learn about creating VMs, using ansible, scripting etc, now Kubernetes and Docker has changed much of that. Its worth looking at which space you want - with Kubernetes etc you barely need to know any Linux or scripting.

People learn differently - but I'd recommend starting there. Get the generous Google Compute intro special and write some apps. There is a bunch of free resources on the web - I can't point to anything specific. Linux academy, Safari books online are huge but not cheap.

</comment><comment><USER28> (In case the handle is missed, I created Ansible and I'm a little opinionated on this)

DevOps isn't really a thing, but an amalgam of things. Some people think it's about culture or something, which I think is too obvious to be a thing. In the beginning when many people were using the word lightly, most people really just used it to mean automated systems administration, which is more likely called "Operations" now. That's fine. Some people use it to mean groups of people who make ops tools to allow developers to self-deploy their own stuff. That's also fine.

Most likely what you are looking for is to learn how to do IT Operations stuff they way people are currently doing it.

Reading a lot of articles is fine, trying lots of tools is fine. Talking to people at your company that DO ops is huge. Make friends with the guys who run the build systems, do security, or anything like that for starters and they can show you lots. Plus I strangely find that ops guys are much better to go to lunch with than developers. Don't know why :)

You should read up on AWS lots, as it will likely be across your career path at some time. Try a configuration management tool (or two). Learn about monitoring systems and logfile collection/analysis systems. Do a little bit of reading on computer security. Vagrant is probably useful, but optional, though you should at least get going on a virtualized Linux box. Reading up on Immutable Systems is worthwhile. Pick up either CloudFormation or Terraform, or both if on AWS. I don't know Google as well, but it has a lot of similar things.

DevOps Days conferences can be good sometimes but often they are too cultural to get down into technical bits. But they are cheap and usually close by, so they are things.

If you have a local meetup group that can be absolutely great.

The really nice thing about AWS now is there are tons of parts and it is pretty cheap to try things out, where before you probably couldn't get your IT guy to let you play with a load balancer or get you your own database instance. Now you can, so that makes it a lot easier to learn than it was before.

IMHO I don't like books because they are often written by people who don't DO things (DevOps has an unfortunate "thought leader" problem, which impacts conferences and tries to get everyone to believe the same things), and podcasts/videos are too slow for me, and my brain is a lot more random access.

Don't get caught up in assuming you must do any one particular thing. For instance, Continuous Deployment is a spectrum, it's not appropriate for everyone.

And at most people's scale, you have no need for something like Docker or Kubernetes when basic AWS instances require a lot less to keep going in your head.

</comment><comment><USER29> Few resources I haven't seen mentioned yet:

[https://github.com/dastergon/awesome- sre](https://github.com/dastergon/awesome-sre)

If you're looking for a community of people to interact with I've found the following Slack teams to be very active with lots of helpful people:

[https://hangops.slack.com](https://hangops.slack.com)

[https://devopschat.slack.com](https://devopschat.slack.com)

<comment><USER30> How do you get an invite to the latter slack?

<comment><USER29> I believe it was [https://devopschat.co/](https://devopschat.co/)

</comment></comment></comment><comment><USER31> Like most comments here, I'd suggest you get started by deploying your side project to any of the cloud providers out there. This process alone will teach you a lot about deployment. Also, I find [https://serversforhackers.com/](https://serversforhackers.com/) and [https://sysadmincasts.com/](https://sysadmincasts.com/) very useful.

</comment><comment><USER32> Linux Academy. Not free but has a very nice DevOps learning track.

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

<comment><USER33> Love that site.

</comment></comment><comment><USER34> Shameless plug - I've got a 15 hour course on building a full infrastructure on AWS:

[https://awsdevops.io/p/practical-and-professional-devops- wit...](https://awsdevops.io/p/practical-and-professional-devops-with-aws-and- docker)

We go from zero to fully scalable/loadbalanced etc. infrastructure on AWS. :D

</comment><comment><USER35> devops is more of a principle than a job. that's my opinion though.

i've been reading through this book and it does a decent job of covering the principles for CICD, builds, tests releases: [https://www.amazon.com/Continuous-Delivery-Deployment- Automa...](https://www.amazon.com/Continuous-Delivery-Deployment-Automation- Addison- Wesley/dp/0321601912/ref=sr_1_1?ie=UTF8&qid=1498754960&sr=8-1&keywords=continuous+delivery)

you'll run across various "thought leaders" in devops and its important to remember that a) each employer treats devops and cicd differently and you'll want to learn their practices as you bring about your own ideas to the culture and b) form your own opinions, just b/c thought leaders and books are out there its important to learn what you like to do and improve how you like to do it.

</comment><comment><USER36> Check out my "Training program to make a Novice System Administrator": [http://verticalsysadmin.com/blog/training-program-to- make-a-...](http://verticalsysadmin.com/blog/training-program-to-make-a- novice-system-administrator/)

</comment><comment><USER37> I use pocket to collect (and tag) links related to the field. I hacked together a small UI around it that lets you filter them by tags. There's a lot of good content there IMHO.

You can check it out here: [http://links.ozkatz.com/](http://links.ozkatz.com/)

</comment><comment><USER38> Where do you live? If you'd like to meet up, I'd be happy to braindump as much as possible on you.

</comment><comment><USER30> I'm trying to build up the effort to finish writing my book on monitoring, let me know if you'd like to read it and it might encourage me to push on.

</comment><comment><USER39> Vendor specific but a lot of good tutorials [http://learn.chef.io](http://learn.chef.io)

</comment><comment><USER40> get a digital ocean account and a domain name. start a lamp server (or equivalent), use the excellent (imo) documentation to get things running. add services as you go along. I learned a lot from just that, now I have my own webserver, source control (git server with gitea) and other things running. tons of fun and learning

</comment><comment><USER36> Check out: \- The DevOps Handbook \- State of DevOps Report 2017 \- Guide to Sysadmin Body of Knowledge www.sabok.org</comment>


Copyright Office Seeks To Make It More Difficult To Retain DMCA Safe Harbors - <AUTHOR> http://www.techdirt.com/articles/20111227/17285417210/copyright-office-seeks-to-make-it-more-difficult-to-retain-dmca-safe-harbors.shtml

<comment><USER2> This is both worrying and unnecessary. As the responses point out, entries are dated to prevent claiming safe harbor after the fact and people don't DMCA sites that no longer exist.

However, I fear that it will likely be allowed simply because it allows them to collect more fees. I certainly don't know that for sure by any means, but if I had to bet on it, well...

</comment><comment><USER3> Add it to the anti-SOPA bill; allow outdated DMCA agents.

Bam, people don't get screwed over as much by the copyright industry.</comment>


Dear Jetblue - please read this - <AUTHOR> http://eric-jctf3.posterous.com/dear-jetblue-please-read-this

<comment><USER2> Before anyone gets riled up, be sure to see the resolution: a rep working on her day off to resolve the issue, a $100 credit and 2,500 frequent flier miles.

Not the best experience, but this one worked out.</comment>