CAA checking becomes mandatory for SSL/TLS certificates - <AUTHOR> https://ma.ttias.be/caa-checking-becomes-mandatory-ssltls-certificates/ <comment><USER2> I think people in here are misunderstanding the threat model this is protecting against, which is probably because the article doesn't really explain it.

This is not to protect against malicious CAs. You'd need DNSSEC for that, but that's just pushing the job down to the next turtle below you, since DNSSEC needs certificates and trust too.

This is to protect against malicious operators from getting CAs to give them certificates without authorization of the domain owner. The reason this is necessary is because the method that CAs use to validate that they're issuing the certificate to the right person is not standardized, and so you end up with a bunch of potential ways that an operator could fraudulently get a certificate that are hard to stop. I know in the past, some CAs would issue to certificates to anyone with root@, admin@, or any one of a list of privileged email addresses. Do you want email admins to be able to create whatever certificates they want for your domain? No.

<comment><USER3> > This is to protect against malicious operators from getting CAs to give them > certificates without authorization of the domain owner. The reason this is > necessary is because the method that CAs use to validate that they're > issuing the certificate to the right person is not standardized, and so you > end up with a bunch of potential ways that an operator could fraudulently > get a certificate that are hard to stop. I know in the past, some CAs would > issue to certificates to anyone with root@, admin@, or any one of a list of > privileged email addresses. Do you want email admins to be able to create > whatever certificates they want for your domain? No.

I don't see how CAA protects against this. If you're using CAA, presumably your email admin could just request a certificate from one of the whitelisted CAs. The only saving factor is if your whitelisted CAs don't support email- based verification.

<comment><USER4> There is at least one CA that simply doesn't offer DV. So if you happen to agree with them that DV is worthless (for the record I do not), or at least that it's never appropriate for your business, then setting CAA to require that CA means nobody will be using some scheme to get "legitimate" DV certificates for your domain.

</comment></comment></comment><comment><USER5> If I understand correctly, you could set this to 'CAA 0 issue "example.org"' effectively preventing conforming CAs from issuing certificates for your domain. Then if you actually need to get a new cert for the domain, you would temporarily switch the value to your certificate provider of choice.

<comment><USER6> The standard way to do that is:

        example.com. CAA 0 issue ";"

[https://tools.ietf.org/html/rfc6844#section-5.2](https://tools.ietf.org/html/rfc6844#section-5.2)

</comment></comment><comment><USER7> ...in September 2017, according to the linked article. Title might need a little tweak to reflect that fact.

</comment><comment><USER8> Last I checked route 53 did not support caa records yet. Any idea when they might be a available?

</comment><comment><USER9> See also this great gist on CAA adoption:

[https://gist.github.com/roycewilliams/1710ade469c05eb0b090d2...](https://gist.github.com/roycewilliams/1710ade469c05eb0b090d268470aa741)

There was a little discussion on this topic yesterday:

[https://news.ycombinator.com/item?id=14068901](https://news.ycombinator.com/item?id=14068901) (12 comments)

</comment><comment><USER10> There seem to be very little benefit to this new validation check. The CAs I've used have required you to prove you have control over the domain you want a certificate for (either by adding a DNS entry or by responding to an email sent to one of the defined contacts in the registry.

If someone can already create a new DNS entry for you, they can create their own CAA entry. If someone has compromised your registry account, they can always redirect DNS requests for your site to a new location.

<comment><USER11> You have it backwards. The point of this is so that a CA does not issue a certificate to someone who does not have control of your DNS records. It's a fail safe.

Plus combining this with Certificate Transparency should allow for handling this in an automated fashion. A third party can validate CAs to ensure compliance.

<comment><USER12>
      A third party can validate CAs to ensure compliance.

Domain owners can remove or change the CAA record after the certificate has been issued - so any third parties performing checking will have to be quick about it :)

<comment><USER9> Why would they? The idea of CAA is to help the domain owner, to prevent malicious issued certificates, to have a documented, open, visible way do identify which CA is authorised to issue a certificate. So, if you doubt what you see is legitimate, you have a way to check (also, when combined with DNSSEC, it is quite hard to forge/spoof).

Even without DNSSEC, every little bit of additional validation counts IMHO. You could e.g. trace sudden changes in CAA records and get very suspicious...

<comment><USER13> It's quite hard to forge or spoof to anyone except:

* The world governments that control the TLDs and can thus override DNSSEC policy by fiat.

* Any attacker between the CA's resolver and the DNS server, since DNSSEC only protects transations between DNS servers, not between clients and servers.

<comment><USER6> I would _hope_ CAs run their own DNSSEC validating resolvers, and they don't just plug "nameserver 18.104.22.168" into resolv.conf.

</comment></comment></comment></comment></comment></comment><comment><USER3> What does CAA protect against? Malicious/pwned CAs can issue certificates anyways. Unless browsers start enforcing CAA correctness, this doesn't seem to be very useful. Browsers checking the CAA record seems like it would be an OCSP-like situation where browsers don't do the check to avoid a performance penalty, or softfail when they get no response.

<comment><USER4> Take Facebook's experience last year as an example

Facebook has this policy where all the facebook.com and fb.com certificates, including sub-domains, test sites, everything, have to go through a central security team. Obviously they can't reach out to every CA in the world and tell them about this policy and the millions like it at every company. So they came to agreement with a single CA, and only ever use that one CA who knows their rules.

A company working with Facebook built some site, let's call it example.fb.com. They were responsible for it, so they controlled the content on the site. Some employee at the contractor wanted an SSL certificate, they'd heard of Let's Encrypt, so they just used Let's Encrypt to get themselves a certificate. Let's Encrypt checked their proof of control, it was fine, so it issued a certificate to the employee.

Now, within 24hours that certificate was published to the Certificate Transparency system, and Facebook's security team monitors CT, so they saw there's this certificate for example.fb.com which is from this new Let's Encrypt service not their usual CA and they didn't ask for it. They, understandably, go straight to alert status - possible attack in progress.

In that particular case it ends happily, the firm making example.fb.com confesses to what happened, that they didn't read the terms telling them to get certificates from Facebook security, the certificates are revoked, it's not Let's Encrypt's fault this happened, CT logs are proved to do the intended job...

But CAA allows Facebook to tell everybody "Digicert is the only CA we want issuing for our names" and not have this whole panic in the first place. With CAA in place, Let's Encrypt would have told that employee "Issuing for this name is forbidden due to CAA" and then the employee would look that up on Google, realise they just violated Facebook's policy and reach out to Facebook Security. No sirens, maybe somebody gets a slap on the wrist, life goes on.

</comment></comment><comment><USER14> Cloudflare hasn't even mentioned adding that record type

<comment><USER15> We are doing it right now.

</comment></comment><comment><USER16> So only CAs check this, not browsers?

Surely the problem this sort of thing is meant to address is rogue CAs who are already behaving badly.

<comment><USER17> That's correct. Browsers offer other mechanisms like HPKP to mitigate attacks through rogue CAs.

Active CAA checks by browsers would either be soft-fail like OCSP (i.e. useless in the face of an active adversary who could block the request or spoof the response) or cause a lot of unnecessary warnings because of failed requests. You'd also have to force every site on earth to create a CAA record if you want it to be hard-fail. That's going to be impossible.

</comment></comment><comment><USER18> But CAA is fully dependent on DNS(Sec).

<comment><USER11> Why would that be the case? Can't I have untrusted records indicating you _can 't_ do something (issue a cert for a domain)? That's how SPF / DKIM works.

At worst you'd get false rejections which you'd follow up on immediately as your cert wouldn't be issued.

</comment></comment><comment><USER19> Sort of an idiotic way to do this considering you can use the DNS infrastructure to validate the actual certificate and get rid of CAAs altogether. Chain of trust then goes from the owner of the website directly to his or her readers rather than some private organization which by its very nature is already compromised to third parties like the government.

</comment><comment><USER20> Thankfully, you're still allowed to not have any CAA record for a domain. While I agree that in general it's a good thing, for my setup, the additional security it provides is not worth the hassle of upgrading PowerDNS past what comes with the OS (Debian 8 ships with 3.4.1, CAA requires 4.0.0).

Generally, I notice that the pace of standards requiring newer versions of software than what's shipping with the latest OS releases is increasingly quicker these days.

Like ALPN being required for HTTP/2 and not being supported by the latest stable version of Debian.</comment>


Hey startups on a budget, download Photoshop CS2 for free - right from Adobe - <AUTHOR> http://www.zeropaid.com/news/103252/how-to-download-photoshop-for-free/

<comment><USER2> Is this really doing anyone a favor?

\- Direct links to CS2 that neatly bypass the notice that says this is for licensed users. Note: the login page was not there 2-3 weeks ago, apparently CS2 is still popular and Adobe have noticed. Adobe say they have disabled the licensing code, but have they stopped it calling home?

\- A recommendation to use bittorrent to get CS6

\- And finally GIMP

If you are on a startup "on a budget" use GIMP. Or get the CS6 trial, if you need it pay for it after the next round of funding.

</comment><comment><USER3> <http://news.ycombinator.com/item?id=5023859></comment>


USGS Calls Oklahoma Quake the Largest "Human-Induced" Earthquake on Record - <AUTHOR> http://www.allgov.com/news/controversies/us-geological-survey-calls-oklahoma-quake-the-largest-human-induced-earthquake-on-record-140310?news=852643 <comment><USER2> I wonder if the technique could some day be used to intentionally trigger smaller earthquakes to relieve pressure to prevent massive earthquakes.

</comment><comment><USER3> One of these days there's going to be a really big one. And the lawsuits will last for decades, and fracking will go the way of nukes.

<comment><AUTHOR> _"The observation that a human-induced earthquake can trigger a cascade of earthquakes, including a larger one, has important implications for reducing the seismic risk from wastewater injection"_

I recall reading that there are a lot of fracking sites around San Andreas Fault.

Sometimes it pays to be skeptic also about this kind of technologies.</comment></comment>


What social media users want - <AUTHOR> http://www.noemi.ro/kids-are-going-to-extreme-lengths-to-reclaim-the-power-of-the-internet/ <comment><USER2> I feel you. I think 1990's was the time for forums and yahoo chat, where you could be anonymous, and find people like you. But with today's social networks in place, the makeshift internet has lost popularity, even among teens with a tough "real life".

Your piece is spot-on to show how deep today's social platform's tracking systems are. Facebook's array of products know who you are.

Still, there's reddit, with it's 100% anonymity, but with a distinct downside that it's made public, for anyone in the world to access, or for any redditor to check your full history — which can lead to undesired consequences for the online life you've built for yourself.

<comment><AUTHOR> Yeah, I like reddit, but I do feel like if I post too long on one account people can start to figure out who I am. I always think about what people could google search to find things about me, since I myself cyberstalk others pretty well.</comment></comment>


Looking for a new Mac? Here's a pricing matrix - <AUTHOR> http://www.appleinsider.com/mac_price_guide/

<comment><USER2> I went shopping for a laptop a few days ago, and checked out the MacBook Pro 15", which is $1738 at Club Mac (and that's after a $150 mail-in rebate). I instead ordered a Dell Latitude E6500 for under $1250 (plus $50 for a Mini 9 netbook, which was available in a combo deal), equipped with twice the RAM, the same CPU, the same disk, a magnesium alloy chassis (not as pretty as the Mac's aluminum, but not bad and very light), same resolution LED lit display, similar dedicated video card, backlit keyboard, a 9 cell battery (reportedly ~2.5 hour longer battery life than the Apple), web cam, roughly the same weight, roughly the same height (1" vs. 0.95" for the Apple), and more ports. Oh, and a three year pretty comprehensive warranty.

So, Mac OS X tax = ~$488, and I would have gotten less RAM, and deal with a rebate which I seem to never actually receive even when I remember to fill out the forms and stuff.

Just saying...the MacBook _is_ a fine looking machine, though. This Dell is reportedly hackintosh ready, too, but I always end up just using Linux, anyway.

<comment><USER3> Your experience coincides with Microsoft's new series of commercials where they give a person a fixed budget for a laptop:

[http://blog.seattletimes.nwsource.com/techtracks/2009/03/26/...](http://blog.seattletimes.nwsource.com/techtracks/2009/03/26/new_microsoft_ad_swipes_at_apple.html)

<comment><USER2> Yeah, I saw that ad a while back, as someone linked it here at HN. That ad didn't influence my decision to check prices at Dell. Though I _was_ deeply disappointed to note that Dell imposes a Linux tax. The version of pretty much all of their laptops with Ubuntu cost sometimes hundreds more (they just don't go on sale, so the special deals that Dell always has running don't apply). So, I'll take the Windows and install Linux on it myself.

For slightly less nice build quality the Studio 15 from Dell can be had for another couple hundred bucks cheaper (it added up to $1086 with almost the exact same specs). I decided that thinner and lighter was worth the extra money for me (and the Mini 9 for $50 with the Latitude was a pretty big draw...I love little machines, and the screen and RAM on my OLPC isn't _quite_ big enough to actually use for even on-the-train development or catching up).

</comment></comment></comment><comment><USER4> Matrix? What's wrong with the "equivalent PC x 2" algorithm? Maybe it needs to be trendied up a bit with some shiny translucent plastic? Or maybe it's the fact that the variable 2 could be updated at a later stage without throwing out the whole algorithm and starting again?

(Chill out fanboys, just kidding. Sheesh, you guys are tetchy)

<comment><USER5> This still isn't funny and the price difference between Macs and PCs has nothing to do with the article, which is about the prices of Macs at different stores.</comment></comment>


Measuring Search in Firefox - <AUTHOR> https://blog.mozilla.org/data/2017/06/05/measuring-search-in-firefox/ <comment><USER2> I'm very sad to see Firefox opting for these sort of measurements. I understand Mozilla may want to renegotiate the search deals to make more money, but it risks losing users' trust. They should really be spending time to figure out a sustainable way to stay alive. Email + Cloud Storage seem both very obvious to develop premium businesses on top (given Firefox's still good reputation).</comment>


The blockchain story is bullshit - <AUTHOR> http://geoffreywoo.com/the-blockchain-story <comment><USER2> The author is missing the fact that the world has adapted to the requirement for centralised trust. That makes it very hard to see the value of a blockchain system - you automatically think about problems and solutions within another constrained framework. It's similar to e-mail before people used email. It seems laughable now, but it wasn't obvious why e-mail would be useful ("I need to switch on my computer every time to check if I have a message!? A phone is so much easier..."). The value of a blockchain system will become more and more evident over time as we use it to solve problems that are hard to see in our current paradigm.

Comparing the blockchain directly with centralised switching systems is like comparing e-mail with phone calls, and using "ability to speak" as the metric of comparison. E-mail allows you to do something else, but it took us a while to realise that something else is incredibly valuable. The blockchain will be the same. Simple example: we don't even think in terms of individuals or corporations issuing their own currency. It's not a "problem" that we generally acknowledge to exist. We'll certainly see it as one worth solving when companies and rich individuals start using blockchain technology to compete with countries in terms of issuing currency.

<comment><AUTHOR> You're making strawman arguments e.g. a blockchain and a centralized database is much more similar than email and phone.

<comment><USER2> I think your comment is affirming my statement implicitly. For the things you want to do with a centralised database they are very similar. Given the entirety of things you can do with a blockchain then are very different. You view email and phones as very different, because enough time has passed for those differences to become obvious.

<comment><AUTHOR> No, I think there's clear objective attributes that are different. Email vs. phone: async vs. sync, recorded vs. unrecorded, etc. The only real difference between blockchain vs. standard db is anyone can write who has 'x-coin' vs. trusted authority can write, and I argue that the difference really isn't that important.

<comment><USER3> I think if you replace phone with 'answering machine', his logic makes more sense.

</comment></comment></comment></comment></comment><comment><USER4> The article makes three main arguments that have been debated endlessly the last few years.

1) Blockchains are not as fast as centralized databases.

This is true in the same way that a democracy can't act as fast as a dictatorship. Blockchains are important because they allow a large number of strangers to trade with each other, to exchange value, free from centralized control, corruption and skimming. Millisecond response times would be nice, but that's a secondary feature.

2) The first people to mine or invest in a new cryptocurrency can be far wealthier than those who come later.

How is this different or worse than the status quo? Those who invest their time, money and ingenuity in a risky project reap rewards if it succeeds.

3) Centralized authority is required for arbitration and reversing transactions.

This assumption is exactly what blockchains and cryptocurrencies are testing. Can people exchange value freely, without a central authority that skims unearned value for itself? Can we enforce complex agreements without submitting to a power that stifles innovation?

The final chapter hasn't yet been written, but the experiment looks very promising so far.

<comment><AUTHOR> 1\. Usually it takes a 10x improvement to make a switch from status quo to something new. To see a switch when the performance is much worse forces the benefits of blockchain to be extraordinarily compelling. And some of the benefits are not as rosy as initially conceived.

2\. Agreed. This is status quo. I see a lot of arguments where folks claim that the blockchain creates a more egalitarian system. I wanted to explain why this wasn't necessarily the case here.

3\. Agreed. However, the most important transactions are the ones most prone to arbitration, and arbitration requires authorities. Outside of valuable transactions is there really a need for such a complex database?

Thanks for the thoughtful response.

<comment><USER5> 1\. One use case for this is trade settlement. Instead of the DTCC's status quo of T+3(days), if there are trades that can be settled on a blockchain, that can be reduced to T+1(hr) or less. Same with payment/transfer - ACH T+3 sucks, blockchain T+1hr or less is much better. A lot of research into both right now.

3\. This one is interesting as there are some areas of law that computational law researchers have decided are uncomputable, hence requiring judges, arbitration, etc. Those probably won't be represented blockchains for the foreseeable future, at least until strong AI is perfected.

There's definitely a lot of noise about moving everything onto blockchains, but as you point not all of it makes sense. The name of the game, especially for startups and companies in this space, is to find what does.

</comment></comment></comment><comment><USER6> The author is making valid points.

Nobody here likes to hear it, and I feel like a lot of people in SV are tuning this out, but bitcoin is really, really struggling to find a relevant use case, especially with consumers. Regular consumers have absolutely no reason to use bitcoin. The "1-click" payment and 1% price discount are not appealing enough to the average Joe who already gets 1-2% cash back, airline miles, and consumer protection on his credit card (and 1-click checkouts on many e-commerce platforms). And more regulation isn't helping the "crypto- anarchist" decentralization angle either. Add price volatility to that and it kills the consumer use case.

Bitcoin is great, FOR MERCHANTS.

BUT PAYMENTS IS A TWO-SIDED MARKET. A winning product must appeal to both sides, the buyer and the seller. Bitcoin appeals to the seller at the expense of the buyer. Even if the blockchain technology overcomes all of its flaws, we would have bootstrapped a value exchange system that does not offer greater benefit to the one that exists today.

Many are making the flawed and simplistic analogy of comparing bitcoin/blockchain technology to the early days of the Internet... That analogy is not valid. When it comes to money, consumers actually WANT a central authority. They want to be insured and cuddled and protected and not run the risk (however small) of being criminally liable for transactions and have someone to speak with if they make an erroneous transaction or have their card stolen. And they can already do all that, which makes it tremendously difficult to compel them to change the habits they've had in forever to adopt a system that does not provide them with significant advantages.

I've been in bitcoin since 2011 and used to be a big believer, but I don't see bitcoin or blockchain technology gaining traction with consumers, because it simply doesn't solve a problem for them.

It could be destined to eternally remain a store of value (like gold) or find targeted applications (like machine-to-machine payments). The underlying blockchain technology could be of more use if adopted by the banking system, for example, but that is still far in the future.

</comment><comment><USER7> There are some systems where blockchain technology will be really useful (#1 for me is zerocash for non-government-sanctioned transactions, but that probably won't be ready for real use until 2015; not the least of which because we need more secure wallets and other systems to handle a fully anonymous irrevocable currency than even what we have for bitcoin today).

I don't think it's going to take over everything. One, a decentralized network of distinct currencies with an exchange is a better route to decentralization than centrally-coordinated protocol-decentralized currencies for a variety of reasons (performance, ease of modeling, ...); two, a lot of things are inherently centralized.

On OP's third point about reversibility being a feature -- the solution to that is to leave funds in escrow. So, you can do $100 transactions as long as you have $100 at-risk in an escrow transaction, and can do an aggregate volume of transactions up to the amount you have on deposit. Maybe some more sophisticated risk modeling there, too (older accounts, lower risk transactions, etc. take less of your deposit balance).

<comment><AUTHOR> For escrow, are we then not transferring trust from just one arbitrator to another now? Why re-invent the existing escrow system :)

<comment><USER7> multi-sig on the blockchain allows you to do escrow in some interesting ways.

</comment></comment></comment><comment><USER8> > So the trust issue reverts into trusting that the creators + early adopters > to not abuse the system. This is the exact argument used against single- > authority systems that the authority may abuse the system.

This is not exactly true. Look at Napster vs BitTorrent. Napster failed because it was a single-authority system. BitTorrent has succeeded because it is (mostly) decentralized. Trackers might go the way of the block chain in the not-too-distant future.

As far as abuse: It is up to early adopters to sniff out the scams. Unfortunately that is how free markets work. If those adopters stay and continue to promote the new system, it __may __have a chance with the populace at large. The small localization of failure is a __feature __not a bug.

<comment><AUTHOR> I'm not trying to argue that decentralization is bad (Napster vs. BitTorrent is a great example). And there's a lot of cool technologies around decentralized / anonymized networking. My central point is that a trustless, distributed database i.e. the blockchain doesn't really offer practical advantages / new applications over what can be done today w/o such a database.

<comment><USER8> You are correct that "functionally" there may be no advantage. The value is not the functionality but the architecture. It is resilient to some very powerful attackers, both actual and theoretical. _That_ is where it derives it's power, not necessarily from functionality.

If Bitcoin operated on a centralized database, as E-Gold did, it would have gotten shut down quickly (as E-Gold did).

[http://en.wikipedia.org/wiki/E-gold](http://en.wikipedia.org/wiki/E-gold)

</comment></comment></comment><comment><USER9> Pre-mining doesn't necessarily translate into more power, just more fruits thereof. Pre-mining bitcoin wouldn't mean that one can control the blockchain; it just makes one rich. One might even see that as the just reward of the creator of the technology

Interestingly, in a proof-of-burn system pre-mining _would_ give the pre-miner increased power.

<comment><AUTHOR> Yeah, I make the distinction that while the distribution of power is relatively fair (determined strictly by processing power), the distribution of wealth (in the form of x-coins) is heavily skewed.

I don't have a problem with early adopters getting their just fruits, but to claim that it's more egalitarian than what exists today is misleading. The same argument can be claimed that Godaddy and other early DNS registrars are getting their just fruits by being early adopters of the current domain name registering system.

</comment></comment><comment><USER10> Pre-mining and fixed generation rates aren't inherent to blockchain technology, so I think that distracts from your point.

<comment><AUTHOR> I wanted to note how it's used in practice.

</comment></comment><comment><USER11> Your 'Less Performant' paragraph seems to misunderstand where the big CPU hit happens: It happens with database inserts (which require mining a valid nonce), not with verifies (which only require verifying that a transaction block has a specified hash). So reads/verifies are fast, but inserts/updates/deletes are slow. Also, the mining parameters can be tuned to make it easier/faster to do an insert, at a tradeoff of a larger blockchain history for initial clients to process and more orphans (See litecoin, which has a 2.5min block processing target). So I think you should consider that a 'tuning parameter' based on your application, more than a set-in-stone disadvantage.

</comment><comment><USER12> Human administrators are not a feature. Chargebacks and other forms of manual intervention allow a third party to diddle with the business of two transacting parties on the instruction of a single one of them and some idea/law/regulation about what is 'right'. To assume that this is a good idea is hopelessly juvenile and naive.

Try to UML-ify a system with manual intervention. Now modify it accepting the ideas that a) people are imperfect; and b) people work on their own incentives which may not (probably won't) be aligned with the users of the system. The manual intervention bit is now a black hole of undefined behaviour with nothing but a wing and a prayer to say it might actually do something useful.

Try and get that past QA.

<comment><AUTHOR> Charging back is protection for either one of the two transacting parties to protect themselves from misrepresentation from each other. The fact that it's one of the most popular features of a credit card would imply placing the naiveness on you. Laws/regulation exist because people are imperfect!

<comment><USER12> Equating popularity with validity is a logical fallacy. Sticking my face in a steaming pile of human shit would be the most popular feature of forced captivity if my captors offered only one other option of molten lead.

Laws and regulations exist because there is an 'elite' who make them, they affect us because the elite have an army of muscle men called the police who threaten our liberty for non-compliance. This is easily, formally provable. The intentions of the elite are murky and decidedly unprovable - how many NSAs do we need to create before people get that?

</comment></comment></comment><comment><USER13> Regarding performance/cost, there's no mention of Proof of Stake-based blockchains or variants ([http://bitshares.org/security/delegated-proof-of- stake.php](http://bitshares.org/security/delegated-proof-of-stake.php))

</comment><comment><USER14> This is an interesting piece. But I think a problem with it is that it assumes an initial unequal distribution of coins is untenable. Has it been a problem for gold that the initial distribution is heavily weighted towards gold miners and their investors?

</comment><comment><AUTHOR> Addendum (4/26/2014): My focus is from a Computer Systems and Engineering perspective on the blockchain as a distributed database with trustless write access and it's potential as a major component for new applications. Bitcoin, the application it was designed for, isn't the focus here.

From a technical standpoint, the blockchain doesn't open up any new 'technical' attributes. The blockchain does not enable any new sensors, nor does it enable an order of magnitude increase in bandwidth, storage, affordability, that doesn't also apply to any other types of distributed stores of data. In fact, performance will be most probably be worse and at best will not be any better than existing trustful distributed datastores. In other words, any system built on a blockchain can be built on any other distributed datastore.

It does open up new 'social' attributes where trust is distributed away from existing central authorities, and there's a line of argument that existing central authorities slow down innovation in regulated areas. We already see activity around finance and a new form of DNS. My point here is that trust is not magically removed from the story. Trust (in an economic sense) is simply transferred from an existing central authority to a new oligarchy of coredevs and early adopters.

Authority is a different sense, and in the cleanest arguments for blockchain's potential, authority is transferred from humans to mathematics (any blockchain-based system transferring power to another set of humans is just not that interesting). My line here is that more important transactions tend to be ones that are disputed and thus regulated. Enforcing these decisions (especially in cases of real property and physical assets) therefore tend to be a function of the government. In one scenario if we follow this line to completion, I imagine a computer authority with drones and robots enforcing all contracts. This is perhaps a more trusted government because the blockchain-based datastores will be ground truth and there will be no need for human intervention. I don't have any qualms against such a future. In this case, authority and trust is transferred from existing governments to properly carry out the will of the people (which a lot of people at any given time don't think is happening), to authority and trust that every component of this humanless contract enforcement apparatus being properly implemented. But in the immediate and foreseeable timeframe, it's unclear how this new authority will play with existing authority, and that's really out of scope for this particular commentary.

Thanks for the responses and discussion!</comment>


The World Is Closer Than Ever to Eradicating Guinea Worm - <AUTHOR> https://www.washingtonpost.com/national/health-science/the-world-is-closer-than-ever-to-eradicating-guinea-worm/2016/08/20/59d4a752-55bd-11e6-b7de-dfe509430c39_story.html <comment><USER2> Going back to the conversations we've had in the Zika thread[1], why are we OK with eliminating the Guinea Worm, but not certain species of mosquitoes?

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

A lot of people in that thread made the argument that we shouldn't exterminate a species without first fully understanding the consequences. Yet we seem to be doing that here with this parasite, and no one seems to be saying, "but... think of the ecosystem!"

<comment><USER3> One factor is that there is a lot less "we" involved with the Guinea Worm.

I mean, good luck suppressing the knowledge that filtering your drinking water through a cloth prevents a devastating episode where a 3 foot worm crawls out of your body.

The proposed programs for eradicating mosquitoes involve things like releasing millions of dollars of genetically modified mosquitoes and putting larvicides and insecticides in all known bodies of standing water.

<comment><USER4> Using gene drive doesn't require releasing huge number of modified mosquitos, and doesn't require larvicides.

</comment></comment></comment><comment><USER5> > There is no vaccine for Guinea worm, because the parasite induces no immune > response.

So, eradicating it might lead to the loss of some knowledge, on how it doesn't trigger some immune response. Specially because if you pull the worm, it retracts and causes infection, so the mechanism might not be that simple.

Even more: few years ago (2013) [1], it was expected that soon it would have been eliminated, because dogs had their own species of guinea worm and wouldn't substitute human beings as the necessarily step in the worm life cycle.

[1] [http://phenomena.nationalgeographic.com/2013/01/24/the- guine...](http://phenomena.nationalgeographic.com/2013/01/24/the-guinea-worm)

</comment><comment><USER6> I remember a story about a worm that is extracted using a stick: the worm is presented with the stick, wrap itself around it and you can pull it out. Presumably, that image of a long animal around a stick as a healing process is what gave the caducean, the symbol to medicine of a snake around a stick.

Anyone familiar with anything like this?

<comment><USER7> I would suggest that you not google image search that, as I did. There are many modern results, and it's quite awful.

<comment><USER6> Yup: girlfriend is an MD, I learnt the hard way to deactivate Google Image before any medical search. I would ban any relation to dermatology from GI if I could.

<comment><USER7> Oh god yes. My "Cannot unsee" file is overwhelmingly dermatological, or burns.

</comment></comment></comment></comment><comment><USER8> Neal DeGrasse Tyson did an interview with Jimmy Carter on his podcast (Startalk); the interview covered the guinea worm in detail--very interesting.

</comment><comment><USER9> I wonder how much danger there is of the worm finding a new host species. I mean an animal other than dog and possibly harder to control. That would be a disastrous outcome.

<comment><USER10> Little danger, I guess. The eradication program introduces no new evolutionary pressure on worms' lavae living in water. Those filtered out or killed in their hosts are removed from the gene pool anyway.

On the other hand, we may discover more such preexisting hosts, as dogs. A parasitic relationship that evolved over a much longer period than a few mere decades and evolving from a much larger population than the few individuals thought to remain in the wild.

<comment><USER11> > introduces no new evolutionary pressure on worms' lavae living in water

not being able to reproduce (by infecting a human, which is required in the reproductive cycle) is just as real of a new evolutionary pressure as dying is.

</comment></comment></comment><comment><USER12> It's an actual worm.

 _The male Guinea worm dies, but the female worm incubates in a person's body for a year, where it grows three to five feet long. It forms a horribly painful and itchy blister until it erupts through the flesh of the legs, arms or even chest_

</comment><comment><USER13> Great news, although I suspect the Save the Guinea Worm Foundation may not agree with me: [http://www.deadlysins.com/guinea- worm/](http://www.deadlysins.com/guinea-worm/)

<comment><USER14> The reference to Swift at the bottom suggests this is satire.

<comment><USER15> Upon further investigation of the man's twitter and blog, I'd be inclined to agree with you.</comment></comment></comment>


Germany records hottest June temperature - <AUTHOR> https://www.dw.com/en/germany-records-all-time-hottest-june-temperature/a-49420773 <comment><USER2> It's all of Europe that's crazy hot now.

It's a strange kind of heat too, even without the sun beating down on you, the air is so hot and thick, it's like wearing a blanket while breathing soup.

However, in Eastern Europe most people installed split AC units in their apartments to counter this but in Western Europe that's not allowed in apartments so if you're at home or working ouside, instead of an air conditioned office, you're gonna cook.

Later EDIT: To clarify, you ARE allowed to have AC but due to regulations it's very difficult to get permission for city apartments as it has to be a centralized unit for the whole building with planning to certify that it won't affect the aesthetic of the building or be too loud or hot for the neighbors. If you want a split unit just for your apartment you'll never get permission, so basically, you're not allowed to have one. In EE regulations are lax or don't exist or are not enforced so everyone and their mums has AC.

<comment><USER3> I never knew air conditioners were not allowed in some parts of europe, I don't know of any regulations here in Italy.

<comment><USER4> You can't install AC units on the outside of your building in Rome to maintain the architecture, which is the same as saying you can't have any at all.

<comment><USER5> I think you're just talking about the historic portion of town?

Lots of AC units on display here: [https://firstname.lastname@example.com,12.4546184,3a,75y,23...](https://email@example.com,12.4546184,3a,75y,238.83h,101.94t/data=!3m6!1e1!3m4!1s1_XirSj_1DTDlwOgG6GEZA!2e0!7i16384!8i8192)

<comment><USER4> Of course it's not in every single building. Where I grew up we had AC, but where my grandpa lived for example you couldn't. Just saying that the root comment isn't completely wrong, it happens.

</comment></comment></comment></comment></comment><comment><USER6> In Switzerland we are getting our first reprieve from the same heat wave now: super-intense thunderstorm cells have formed and are releasing rain across the country.

Could not come a moment too soon. The heat was incapacitating, and I write this as someone who grew up in Tornado Alley. If this kind of thing returns with greater frequency or duration, the results will be catastrophic. Dwellings, energy, etc. are not designed here for such extremes.

<comment><USER7> Climate change:

More frequent/extreme heat waves.

More frequent/extreme cold fronts.

More frequent/extreme drought.

More frequent/extreme heavy rain.

More frequent/extreme storms.

<comment> mkr-hn This is basically why "climate change" is coming into fashion to replace "global warming." Warming is the problem, but it manifests in different ways. The same warming that makes worse heat waves also weakens the jet stream and lets the polar vortex move further south.

</comment></comment></comment><comment><USER8> [https://www.forbes.com/sites/michaelshellenberger/2018/05/23...](https://www.forbes.com/sites/michaelshellenberger/2018/05/23/if- solar-panels-are-so-clean-why-do-they-produce-so-much-toxic- waste/#9d48968121cc)

Germany is closing nuclear for solar and wind energy. They even generated less energy with more solar panels and turbines for wind energy. They had to use more coal due to closed nuclear plants.

France, on the other hand, has more nuclear plants and cleaner and also cheaper energy.

<comment><USER8> Sorry for the spam, but this link is interesting too. There are many TEDx talks on youtube for nuclear energy that analyze this topic.

[https://www.politico.eu/article/germanys-green-dreams-run- in...](https://www.politico.eu/article/germanys-green-dreams-run-into-climate- change-reality-nuclear/)

</comment></comment><comment><USER9> So much confirmation bias. I haven't looked into Germany, but the French heatwave -- which is mentioned in the article -- has almost the same record temperatures as were recorded in 1930, 1870, 1773 and 1718, when, presumably, there was much less CO2. [1]

The other day's record-setting France temperature of 115F was recorded in Toulouse, where the temperature rose for _one hour_ above the record set in 1923. Hardly conclusive proof of anything. [2]

In Paris, the heatwave's hottest day was 96F. Paris has had 164 days since the year 1900 hotter than that, including seven days over 100F.

These extremes are hardly new. Weather is not climate. Stop giving power and money to scaremongering media and politicians.

[1] [https://realclimatescience.com/2019/06/50c-in- france/](https://realclimatescience.com/2019/06/50c-in-france/) [2] [https://realclimatescience.com/2019/06/the-footprint-of- glob...](https://realclimatescience.com/2019/06/the-footprint-of-global- warming/)

<comment><USER10> Global temperature averages over the past 100+ years: [https://earthobservatory.nasa.gov/ContentWOC/images/decadalt...](https://earthobservatory.nasa.gov/ContentWOC/images/decadaltemp/annual_temperature_anomalies_2014.png)

Looking further back, here is reconstructed temperature estimates of the past few thousand years. This additional context shows the dramatic change that is occurring:

[https://en.wikipedia.org/wiki/Temperature_record_of_the_past...](https://en.wikipedia.org/wiki/Temperature_record_of_the_past_1000_years#/media/File:2000_Year_Temperature_Comparison.png)

The evidence really seems as plain as day at this point...

</comment></comment><comment><USER11> In Greece on the other hand this was one of the coolest months I remember in the last couple of decades. We even had rains for multiple days.

</comment><comment><USER12> I speak as a trained environmentalist. These rare extreme weather events are emotive publicity for climate change but they are mainly only just that and are not actually science.

It's the meteorological equivalent of a horrific serial killer being used as evidence that crime rates are going up.

<comment><USER13> You sure about that? It seems like most of the hottest European summers on record are all very recent. [0]

Interestingly, your chosen example does share some correlation with the rise in temperature. [1]

[0][https://www.nationalgeographic.com/environment/2019/06/europ...](https://www.nationalgeographic.com/environment/2019/06/europe- has-had-five-500-year-summers-in-15-years/)

[1][https://www.researchgate.net/publication/247781234_Heat_and_...](https://www.researchgate.net/publication/247781234_Heat_and_Violence)

</comment></comment><comment><USER14> Went to Germany/Switzerland/France last summer, no AC anywhere - what a misery.

<comment><USER15> Tbh getting more than 30 degrees in these countries is a 10days/year thing. We just suck it up, ac is expensive and consume huge amount of energy. Most big building have passive climate control that gets the temp 5-7 degrees less than outside and it's more than enough.

</comment></comment><comment><USER16> [https://wattsupwiththat.com/2019/06/29/frances-new- hottest-r...](https://wattsupwiththat.com/2019/06/29/frances-new-hottest- recorded-temperature-ever-is-in-question-guess-where-it-was-measured/)

"But they don't mention that where it was recorded was next to a concrete drain, and a steel chain mesh fence close to a bitumen (asphalt) highway. So much for only using correctly placed instruments in a Stevenson Screen in a open space away from unnatural heat source. "

And this is very far from being an exception.

</comment><comment><USER17> Want to make a difference on climate change as a technologist? Feel free to join these communities actively looking for support and with ongoing projects (that are alive): \- [https://climateaction.tech/](https://climateaction.tech/)

\- [https://techimpactmakers.com/](https://techimpactmakers.com/)

\- [https://www.tmrow.com/](https://www.tmrow.com/)

<comment><USER18> I'm sure these projects have their heart in the right place, but this crisis needs urgent action at the level of national policy. Unless you're able to develop commercial nuclear fusion in the next 5-10 years, the most effective thing you can do is demand action from your political leaders.

Individual actions cannot make a dent on a problem of this scale: [https://lithub.com/rebecca-solnit-when-the-hero-is-the- probl...](https://lithub.com/rebecca-solnit-when-the-hero-is-the-problem/)

</comment></comment><comment><USER19> On average, June was about 4 degrees Celsius too warm in Germany.

</comment><comment><USER20> Wow! I was think it is India which is particularly receiving climate wrath.

[https://timesofindia.indiatimes.com/india/at-50c-plus-its- ta...](https://timesofindia.indiatimes.com/india/at-50c-plus-its-tandoori- nights-and-days-in-worlds-hottest-place-churu/articleshow/69669036.cms)

For those who are more familiar with Farenheight, 50C is 122F.

<comment><USER21> Or Guadalajara, Mexico, which received 6 feet of ice in a hailstorm: [https://www.cbsnews.com/news/mexico-hail-storm-up- to-6-feet-...](https://www.cbsnews.com/news/mexico-hail-storm-up-to-6-feet-of- ice-dropped-guadalajara-north-mexico-city-in-summertime-freak-hail-storm- sunday/)

</comment></comment><comment><USER22> One thing I've learned so far is that even though it is scorching hot outside, that won't stop the Germans from enjoying the sun.

</comment><comment><USER23> Just got done reading about how that freak storm dumped five FEET of hail on Guadalajara, and now this...our planet is in distress

<comment><USER7> Earth has a fever: "A fever is a temporary increase in your body temperature, often due to an illness. Having a fever is a sign that something out of the ordinary is going on in your body."

</comment></comment><comment><USER24> One thing to note is that climate change is now generally used as synonymous for anthropocentric climate change. I have a hard time debating the issue as there are dissents in the scientific communinity about the anthropocentric climate change and I'm just not qualified to evaluate the matter properly.

But I do think it's important to point out that there are issues with this whole "all scientists agree" argument.

</comment><comment><USER25> anyone worried about crops and yields ?

</comment><comment><USER26> I was just in Berlin a couple weeks ago. It was brutal. No AC in hotels and 95 degree weather sucks.

</comment><comment><USER27> Too much traveling. Too much consumption. Not enough minimalism. Not enough contentment. Government promises, minimal actions. I'm not bitter, I'm being realistic. 2018 3rd highest annual mean growth rate in CO2 of all time. [https://www.esrl.noaa.gov/gmd/ccgg/trends/gr.html](https://www.esrl.noaa.gov/gmd/ccgg/trends/gr.html)

We need to urgently implement solutions now. They are controversial but necessary to protect humanity and keep the planet culpable for future generations. We know we need less people and birth control, less consumption, and a goal of carbon neutrality. How do we get there?

<comment><USER28> Do we really need fewer people and less consumption if we have carbon neutrality?

<comment><USER29> We kind of need fewer consumption if we want to get anywhere near carbon neutrality. We don't have time to invent the future technology that will enable us to replace petrol everywhere. Hell, if that technology was invented already, we don't have enough time to replace our cars anyway. And even if we did, it would emit too much greenhouse gas just to manufacture all the new electric cars. So yeah, in my humble opinion the only solution in the time that we have is, less cars, planes, boats...

</comment></comment></comment><comment><USER18> [https://rebellion.earth/](https://rebellion.earth/) or this just keeps getting worse.

<comment><USER30> What is their position on nuclear? I don't see anywhere were there's a plan to replace Oil + Gas + Coal (renewables atm will not come close!).

James Hansen has the carbon dividend / tax.[0] This is the only thing that will work imo.

[0] [https://en.wikipedia.org/wiki/Carbon_fee_and_dividend](https://en.wikipedia.org/wiki/Carbon_fee_and_dividend)

<comment><USER18> XR's main goal is just that politicians be honest with people about how desperate the crisis is, and treat the problem with the seriousness it deserves. They aren't scientists and they're not trying to pre-determine what action should be taken: [https://rebellion.earth/the- truth/faqs/](https://rebellion.earth/the-truth/faqs/)

> What does XR think about 5g, Veganism, Nuclear power, smart meters and so > on?

> Many people within XR will have strong views on all of the above and we want > to welcome a variety of views, rather than adopting positions on > controversial topics. We believe a social movement is best built as a "broad > church" and that respectful discussions should take place within the > movement on a variety of topics (honouring our principle and value of no > blaming and shaming). XR does not take a position on solutions to the > ecological crisis- our third demand is for a Citizens Assembly to come up > with a way to deal with the crisis focussing on climate and ecological > justice based on being presented with facts from a variety of experts. We > focus on the issues that have a clear body of mainstream science with a > large consensus of opinion – for example, biodiversity loss and climate > change.</comment></comment></comment>


The Internet Is Acid, and America Is Having a Bad Trip - <AUTHOR> https://medium.com/s/story/the-internet-is-acid-and-america-is-having-a-bad-trip-fa0864c3ef1e <comment><USER2> I've recently been thinking of the internet in a way similar to the author...

In the past, what was most visible were a society's actions. The visibility of the thought that informed those actions was either ibscured or available to us only in very limited scope (newspapers, conversations with friends, etc).

Now, the internet makes it so that society's collective thought is more visible than anything else. Speech and conversation is what makes the internet go, but talk is cheap; when people talk on the internet they often let loose streams of consciousness fueled by idealism. Action is necessarily more sober.

Think of all the thoughts that shoot through your mind every single day. The fears, hopes, elations, frustrations... Imagine if everyone you knew had access to all of your thoughts, like when you imagine ramming your car into the asshole who just cut you off on the highway (knowing full well you would never do it), or when someone you're attracted to passes by and your mind wanders off...

This is the internet. It allows us to peer into the dark recesses of society's mind. Of course it seems unhinged. We would all seem a bit unhinged if our innermost thoughts were laid bare for all the world to see.</comment>


Art-List: A Music Licensing Platform for Filmmakers - <AUTHOR> http://www.art-list.io <comment><USER2> what is the use case for this/how is it different than the hundreds of existing licensing libraries that currently serve this need?</comment>


Ask HN: Does solving math problems make you a good programmer? - <AUTHOR>

My question revolves around the problems that companies like Facebook put on their websites that require programmers to solve puzzles - which are essentially wordy math problems - when submitting an application.
Does this prove you are a great programmer if you can solve the problem?  What is the real point?
Note: I am a UI designer with a passive interest in real development and I am simply curious what good coders think. <comment><USER2> It makes you a better programmer. It does not, in itself, make you a great programmer, and probably does not make you as good a programmer as if you'd written lots of code in problems that stretch yourself.

Similarly, if you test for math ability in interviews, you will get better candidates, on average, than if you don't. But you aren't guaranteed a great candidate, and you'll like miss a few people that are qualified but just don't do well with those sort of problems. And it's not as reliable an indicator as having written lots of code in interesting problem domains, but the number of people who are hacker-famous is less than the size of most large companies.

</comment><comment><USER3> No, it shows that you're good at a particular type of problem-solving, which _can_ be indicative of you being a good "programmer" all-around, as designing and implementing anything "larger" tends to involve the same type of mental processes used when you solve math problems like the ones you mention (at least from what I've seen).

The problems that companies like Facebook put on their websites tend to be at least somewhat difficult - probably because they're dealing with rather non- trivial system design problems, and want to make sure you think in a way that will help them solve them, and don't want to limit themselves to the "I have x and y degrees" crowd.

</comment><comment><USER4> It's not realistic in my opinion for interviewers to throw complex problems at people and expect to draw useful conclusions. For one thing, truly challenging problems are generally solved in teams. And there are plenty of differences between pure math and how computers do it (think of an entire course on numerical analysis).

Interviewers should find out how well candidates might work in teams, how familiar they are with debugging on a computer, and how likely it is their "cleverness" won't result in a steaming pile of unmaintainable code. There are lots of reasons why someone may make it or not make it through a puzzle, and either way they may be an excellent candidate.

What should occur is a reasonable bridge between abstract problem-solving and programming, to see if the candidate's aptitudes are strong where it counts. For example, numerical analysis is great: you could ask someone how they would _make a machine_ perform a certain calculation expressed in "pure" math. (Does everyone know how to factor equations to minimize expensive instructions? Do all candidates realize the inherent quirks in things like the representation of floating-point numbers? This is the kind of stuff that comes up when math meets computers.)

</comment><comment><USER5> It doesn't prove you're a good programmer. But there is a correlation: if you take 100 programmers and give them a (non-programming) problem that 50 can solve, the ones who can solve it will on average be better than ther ones who can't.

</comment><comment><USER6> I think that most people miss the point of these sorts of questions. I don't ask them just to figure out if the person can answer it or not. a scantron with all the answers filled in would be useless to me. I ask them to watch how the person approaches problems, how they think, how well they communicate and how they interact with people while trying to solve a problem. a person who spits out the answer in 5 seconds, but acts like this question is beneath them is a strong no hire, but someone who struggles a bit, but finds some interesting insights along the way has a good chance.

</comment><comment><USER7> math scales programming

compare j=n*(n+1)/2 to for i in range(n+1): j+=i

the former being math and the latter programming for solving summation from 0 to n</comment>


Twitter hash tags and UTF8 - <AUTHOR>

Interesting.
As far as Twitter is concerned, hashtag #ą is the same as #a And #ö is the same as #oe But #ć is not #c And #ź is not #z <comment><USER2> I was about to say it may have something to do with the fact that they're separate letters in other languages, like in Polish ą is a different letter, as are ć and ź. It may have something to do, though, with the fact that the ą sounds very similar to a, but ć and ź sound much different from c and z. (I'm only speaking from my very limited knowledge of Polish, I'm not sure about other languages.)

<comment><USER3> >> the ą sounds very similar to a

Nope, ą is more similar to 'o' than 'a', and this is seen very often in how kids write words like 'mówią' as 'mówio'

From wikipedia:

Originally ą was a nasal a but in modern times the pronunciation of this vowel has shifted to a nasal o sound. It is most commonly pronounced as /ɔw̃/, /ɔn/, /ɔm/.

<http://en.wikipedia.org/wiki/%C4%84>

Kind regards</comment></comment>


ZFS 128 bit storage: Are you high? (2004) - <AUTHOR> https://blogs.oracle.com/bonwick/128-bit-storage:-are-you-high <comment><USER2> > Some customers already have datasets on the order of a petabyte, or 2^50 > bytes. Thus the 64-bit capacity limit of 264 bytes is only 14 doublings > away. Moore's Law for storage predicts that capacity will continue to double > every 9-12 months, which means we'll start to hit the 64-bit limit in about > a decade. Storage systems tend to live for several decades, so it would be > foolish to create a new one without anticipating the needs that will surely > arise within its projected lifetime.

So exactly 14 years passed, does someone have 2^64 bytes for a single ZFS filesystem (or anything close to that)? I don't really feel like storage capacity (or 1/price) doubles every year.

<comment><USER3> I think the largest file systems in the world are Amazon's S3, and maybe Glacier. I guess Google's internal system used for YouTube and Gmail probably outrank it but there are no numbers for it. But I doubt that they are in a single address space on a single file system.

So basically we moved away from singular large unified file systems and built swarms of little file systems.

<comment><USER4> Indeed. "Cloud" is essentially tons of commodity hardware nodes running a tailored userspace distributed file system application. There now certainly exist cloud services that host well in excess of 2^64 bytes, but they are not hosted on traditional file systems, but an array of those.

I can't certainly blame their choice though, and 16-million terabyte hard drive arrays (the limit of 64-bit addressing) on a large mainframe are really just a few quantum leaps away. Heck, I still vividly recall buying a MASSIVE 40 GB HDD in 2000 - it seemed excessive beyond wildest dreams at the time (and was promptly filled to brim at a LAN party.)

Since, advances in mass storage tech, most importantly the successful commercialization of perpendicular recording in 2005, mean that nowadays 12 TB drives are commercially viable - roughly 1000x the size of a 40 GB drive.

In the next 20 years, petabyte-sized drives might well be available (though almost certainly not based on any form of magnetic recording). Once you hook hundred 50-petabyte drives to a single fileserver, you start closing in on limitations of 64-bit addressing.

<comment><USER5> Overly pedantic quibble: a quantum of anything is the minimum possible unit. One planck length, time, mass, charge, temperature.

Everybody uses it to mean "big". Oh, language.

<comment><USER6> "Quantum leap" is typically interpreted as "big leap" but I believe the true implication is more like "indivisible leap", in line with your quibble. A Turing-complete computer is a "quantum leap" ahead of a non-Turing-complete calculator. A warp drive is a "quantum leap" ahead of a reaction drive. You either have all of it or none of it.

<comment><USER7> Quantum leap is an increase in the units, or "quanta" you use to measure something i.e. MHz to GHz - the term doesn't relate directly to quantum mechanics

<comment><USER5> In your example you are using the same units - Hertz, one cycle per second - and adding SI prefixes for million X and billion X.

<comment><USER7> Yes, but the "quantum" has increased by order of magnitude.

The point is, that the increase in frequency is so large, that using MHz is no longer sensible.

There has been a "quantum leap" in frequency.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> "we don't want to deal with this shit for another forty years or possibly forever" would have sufficed for me.

<comment><USER9> I'm struggling to think of a project that released a new version to accommodate some far-off limit that wasn't blindsided and obsoleted by something operating on a different paradigm - like using YYMMDD for dates, the changing it to YYYYMMDD for Y2K when they should have been using integer time_t - but then that was 32-bit and now 64-bit. But we won't even be 10% of the way there before a relativistic-capable time system will replace it.

So why worry? We're doomed to rewrite it anyway :)

<comment><USER10> Trading off a tiny design decision like that against knowing you're unlikely to have to ever revisit except in an unforeseeable situation is a pretty good place to be.

</comment></comment></comment><comment><USER11> What's the _downside_ to having 128 bits over 64? I'm not familiar enough with file systems to know, so I'm left wondering if there's any downside to oversizing the hammer for the nail?

<comment><USER12> It expands the data structure size, which multiplies N for both on disk and in RAM representation (and cache and shorn cache lines). Many modern architectures have native 128b types (amd64, POWER) so it's not really a big deal to the CPU itself even if you need to do atomic operations for concurrency.

OTOH it guarantees there wont really need to be on disk changes for pointer sizes. That may be useful in situations that weren't really imagined, for instance 128b is enough for a Single Level Store where persistent and working set (or NV) are all in the same mappable space for any conceivable workload.

</comment></comment><comment><USER13> Real-world large filesystems are distributed across many thousands of hosts and multiple datacenters, not mounted as a Linux filesystem on a single host. Because whole racks and whole datacenters fail, not just disk drives.

So they used 128 bit because of bikeshedding. Committees always make the most conservative decision possible. Like IPv6.

<comment><USER14> The fact that real-world storage systems are distributed on the network bolsters the case for supporting 128-bit and even larger types.

Creating unified namespaces is _really_ useful and a _great_ simplifier. The reason we don't do that as often as we should is because of limitations in various layers of modern software stacks, especially in the OS layers.

Unfortunately, AFAIU ZFS only supports 64-bit inodes. A large inode space, like 128-bit or even 256-bit, would be ideal for distributed systems.

Larger spaces for unique values are useful for more than just enumerating objects. IPv6 uses 128 bits not because anybody ever expected 2^128-1 devices attached to the network, but because a larger namespace means you can segment it easier. Routing tables are smaller with IPv6 because its easier to create subnets with contiguous addressing without practical constraints on the size of the subnet. Similarly, it's easier to create subnets of subnets (think Kubernetes clusters) with a very simple segmenting scheme and minimal centralized planning and control.

Similarly, content-addressable storage requires types much larger than 128 bits (e.g. 160 bits for Plan 9 Fossil using SHA-1). Not because you ever expect more than 2^128-1 objects, but because generating unique identifiers in a non-centralized manner is much easier. This is why almost everybody, knowingly or unknowingly, only generates version 4 UUIDs (usually improperly because they randomly generate all 128 bits rather than preserving the structure of the internal 6 bits as required by the standard).

ZFS failed not by supporting a 128-bit type for describing sizes, but by only supporting a 64-bit type for inodes. And probably they did this because 1) changing the size of an inode would have been much more painful for the Solaris kernel and userland given Solaris' strong backward compatibility guarantees, and 2) because they were focusing on the future of attached storage through the lens of contemporary technologies like SCSI, not on distributed systems more generally.

<comment><USER13> Unified namespaces on many-petabyte filesystems are perfectly commonplace

HDFS, QFS,.... even old GFS

You wouldn't make them Linux/fuse mountpoints though, that's just an unneeded abstraction. Command line tools don't work with files that are 100TB each.

<comment><USER14>
      Command line tools don't work with files that are 100TB each.

No, but they do work with small files, which presumably most would be if the number of objects visible in the namespace system were pushing 2^64.

100TB files are often databases in their own right, with many internal objects. But because we can't easily create a giant unified namespace that crosses these architectural boundaries, we can't abstract away those architectural boundaries like we _should_ be doing and _would_ be doing if it were easier to do so.

<comment><USER14> Just to be more specific, imagine inodes were 1024 bits. An inode could become a handle that not only described a unique object, but encode _how_ _to_ reach that object. Which means every read/write operation would contain enough data for forwarding the operation through the stack of layers. Systems like FUSE can't scale well because of how they manage state. One of the obvious ways to fix that is to embed state in the object identifier.

A real world example are pointers on IBM mainframes. They're 128 bits. Not because there's a real 128-bit address space, but because the pointer also encodes information about the object, information used and enforced by both software and hardware to ensure safety and security. Importantly, this is language agnostic. An implementation of C in such an environment is very straight forward; you get object capability built directly into the language without having to even modify the semantics of the language or expose an API.

Language implementations like Swift, LuaJIT, and various JavaScript implementations also make use of unused bits in 64-bit pointers for tagging data. This is either not possible on 32-bit implementations, or in those environments they use 64-bit doubles instead of pointers. In any event, my point is that larger address spaces can actually make it much easier to optimize performance because it's much simpler to encode metadata in a single, structured, shared identifier than to craft a system that relies on a broker to query metadata. Obviously you can't encode all metadata, but it's _really_ nice to be able to encode some of the most important metadata, like type.

<comment><USER15> POSIX invented "slow" extended attributes for this kind of use.

</comment></comment></comment></comment></comment></comment><comment><USER16> > Thus, fully populating a 128-bit storage pool would, literally, require more > energy than boiling the oceans.

This is actually an argument _against_ 128 bit, because it clearly shows that 128 bit are unreachable and thus a waste. What about 96 bit?

<comment><USER9> 96-bit, and other non-power-of-two systems are cumbersome and error-prone to work with in C - which is often used when writing firmware for computer hardware.

The real risks of economic damage caused by bit-fiddling bugs is much greater than the risk of bringing the universe's thermodynamic heat-death ever so slightly nearer...

<comment><USER17> I would think it's fairly easy to keep all calculations in C in 128-bit and just mask out the top few bytes when retrieving and storing. You could also argue that >64 bit values will be rare enough that they warrant their own code path if they are encountered as an optimization (perhaps they already do this?).

</comment></comment></comment><comment><USER18> Back in 2004, they were probably thinking, "Well, IPv6 is using 128bits, and that's going to be the standard any day now..."

</comment><comment><USER19> > If 64 bits isn't enough, the next logical step is 128 bits.

Can someone explain this? Is there some kind of awkwardness/waste with anything less than doubling the number of bits?

<comment><USER20> Yes, any operation is easy in 2^(2^n). For instance, take addition of two 128-bit numbers x and y (seen as 64-bit int arrays) on a 64-bit big-endian CPU:

      sum[1] = x[1] + y[1]
      sum[0] = x[0] + y[0] + carry from previous operation

In contrast, if you'd use 96 bits, you couldn't just use 64 bit integer operations. Instead, you'd have to cast a lot:

      sum[4..11] = *((int64*) x) + *((int64*) y)
      sum[0..3] = (int32) ( (int64) *((int32*) x) + (int64) *((int32*) y) + carry)

So you'd read 32 bit-values into 64 bit registers, set the top 32 bits to zero, perform the addition, and then write out a 32bit value again.

It gets much worse if your CPU architecture does not support the addition to 2^(2^n); if you were to use 100 bits, you'd have to AND the values with a bitmask, and write out single bytes.

So 128 is far easier to implement, faster on many CPU architectures, plus you get the peace of mind that your code works for a long time. For instance, let's assume the lower bound of 9 months per doubling (which is unrealistic as described in this article), then you're going to hit:

      50 bits (baseline from article): 2004
      64 bits: 2014
      80 bits: 2026
      92 bits: 2035
      100 bits: 2040
      128 bits: 2062

Now, what's the expected lifetime of a long-term storage system? It's well- known that the US nuclear force uses 8 inch floppy disks. Those were designed around 1970. So a lifetime of roughly 50 years is to be expected. For ZFS, that would be 2054. By this (admittedly very conservative) calculation, 128 bits is only barely more than required.

<comment><USER21> Don't 64-bit CPUs usually have efficient instructions for operating on narrower values?

For instance, consider this C code for adding two 96-bit numbers on a 64-bit machine (ignoring carry for now):

      #include <stdint.h>

      extern void mark(void);

      int sum(uint64_t * a, uint64_t * b, uint64_t * c)
      {
          mark();
          *c++ = *a++ + *b++;
          mark();
          *(uint32_t *)c = *(uint32_t *)a + *(uint32_t *)b;
          mark();
          return 17;
      }

The purpose of the mark() function is to make it easier to see the code for the additions in the assembly output from the compiler. Here is what "cc -S -O3" (whatever cc comes with MacOS High Sierra) produces for my 64-bit Intel Core i5 for the parts that actually do the math:

      callq   _mark
      movq    (%rbx), %rax
      addq    (%r15), %rax
      movq    %rax, (%r14)
      callq   _mark
      movl    8(%rbx), %eax
      addl    8(%r15), %eax
      movl    %eax, 8(%r14)
      callq   _mark

I'm not too familiar with x86-64 assembly, but I am assuming that this could be made to handle carry by changing the "addl" to whatever the 32-bit version of adding with carry is.

Taking out the (uint32_t * ) casts to turn the C code from 96-bit adding into 128-bit adding generates assembly code that only differs in that both movl instruction become movq instructions, and addl becomes addq.

So, if you were writing in C it looks like a 96-bit add would be a little uglier than a 128-bit add because of the casts but isn't slower or bigger under the hood. But note that this is assuming accessing the 96-bit number as an array of variable sized parts. It's that assumption that introduces the need for ugly casts.

If a struct is used, then there is no need for casts:

      #include <stdint.h>

      typedef struct {
          uint64_t low;
          uint32_t high;
      } addr;

      extern void mark(void);

      int sum(addr * a, addr * b, addr * c)
      {
          mark();
          c->low = a->low + b->low;
          mark();
          c->high = a->high + b->high;
          mark();
          return 17;
      }

This generates the same code as the earlier version.

(I still have no idea how to handle the carry in C, or at least no idea that is not ridiculously inefficient. When I've implemented big integer libraries I've either used a type for my "digits" that is smaller than the native integer size so that I could detect a carry by a simple AND, or I've handled low level addition in assembly).

<comment><USER22> 1\. Accesses through pointers type-punned to something other than `(un(signed)) char` are undefined behavior.

      uint64_t n = 0xdeadbeef;

      uint32_t foo = (uint32_t)n; // OK

      uint32_t *bar = (uint32_t*)&n; // "OK" but useless
      foo = *bar; // undefined behavior!!!

      uint8_t *baz = (uint8_t*)&n;
      uint8_t byte = *baz; // OK, uint8_t is `unsigned char`

      // Same-size integral types are OK
      const volatile long long p = (const volatile long long*)&n;
      const volatile long long cvll = *p; // well-defined

2\. Structs are aligned to the member with the strictest alignment requirement, so a struct of a `uint64_t` and a `uint32_t` will be aligned on an 8-byte boundary, meaning its size will be 128 bits.

<comment><USER21> > Structs are aligned to the member with the strictest alignment requirement, > so a struct of a `uint64_t` and a `uint32_t` will be aligned on an 8-byte > boundary, meaning its size will be 128 bits.

Don't most C compilers support a pragma to control this? "#pragma pack(4)" for clang and gcc, I believe.

Given this (where I've made it add two arrays of 96-bit integers to make it easier to figure out the sizes in the assemply):

      #include <stdint.h>

      #pragma pack(4)
      struct block_addr {
          uint64_t low;
          uint32_t high;
      };

      int sum(struct block_addr * a, struct block_addr * b, struct block_addr * c)
      {
          for (int i = 0; i < 8; ++i)
          {
              c->low = a->low + b->low;
              c++->high = a++->high + b++->high;
          }
          return 17;
      }

here is the code for the loop body, which the compiler unrolled to make it even easier to see how the structure is laid out:

      movq    (%rbx), %rax
      addq    (%r15), %rax
      movq    %rax, (%r14)
      movl    8(%rbx), %eax
      addl    8(%r15), %eax
      movl    %eax, 8(%r14)

      movq    12(%rbx), %rax
      addq    12(%r15), %rax
      movq    %rax, 12(%r14)
      movl    20(%rbx), %eax
      addl    20(%r15), %eax
      movl    %eax, 20(%r14)

      movq    24(%rbx), %rax
      addq    24(%r15), %rax
      movq    %rax, 24(%r14)
      movl    32(%rbx), %eax
      addl    32(%r15), %eax
      movl    %eax, 32(%r14)

      ...

      movq    84(%rbx), %rax
      addq    84(%r15), %rax
      movq    %rax, 84(%r14)
      movl    92(%rbx), %eax
      addl    92(%r15), %eax
      movl    %eax, 92(%r14)

(Some white space added, and the middle cut out). The 96-bit inters are now only taking up 96-bits.

<comment><USER22> Packed structs are possible, to be sure, but inhibit numerous optimizations, such as (relevant to this case) the use of vector instructions and vector registers.

Changing the loop to 4 iterations for compactness' sake, (aligned) structs of two u64s generate the following, vectorized code:

[https://godbolt.org/g/jB4jki](https://godbolt.org/g/jB4jki)

      vmovdqu (%rsi), %xmm0
      vpaddq  (%rdi), %xmm0, %xmm0
      vmovdqu %xmm0, (%rdx)
      vmovdqu 16(%rsi), %xmm0
      vpaddq  16(%rdi), %xmm0, %xmm0
      vmovdqu %xmm0, 16(%rdx)
      vmovdqu 32(%rsi), %xmm0
      vpaddq  32(%rdi), %xmm0, %xmm0
      vmovdqu %xmm0, 32(%rdx)
      vmovdqu 48(%rsi), %xmm0
      vpaddq  48(%rdi), %xmm0, %xmm0
      vmovdqu %xmm0, 48(%rdx)
      retq

And if the pointer arguments are declared `restrict`, the loop can be vectorized even more aggressively:

      vmovdqu64       (%rsi), %zmm0
      vpaddq  (%rdi), %zmm0, %zmm0
      vmovdqu64       %zmm0, (%rdx)
      vzeroupper
      retq

Either of which is much more efficient than the code generated for unaligned, packed 96-bit structs:

      movq    (%rsi), %rax
      addq    (%rdi), %rax
      movq    %rax, (%rdx)
      movl    8(%rsi), %eax
      addl    8(%rdi), %eax
      movl    %eax, 8(%rdx)
      movq    16(%rsi), %rax
      addq    16(%rdi), %rax
      movq    %rax, 16(%rdx)
      movl    24(%rsi), %eax
      addl    24(%rdi), %eax
      movl    %eax, 24(%rdx)
      movq    32(%rsi), %rax
      addq    32(%rdi), %rax
      movq    %rax, 32(%rdx)
      movl    40(%rsi), %eax
      addl    40(%rdi), %eax
      movl    %eax, 40(%rdx)
      movq    48(%rsi), %rax
      addq    48(%rdi), %rax
      movq    %rax, 48(%rdx)
      movl    56(%rsi), %eax
      addl    56(%rdi), %eax
      movl    %eax, 56(%rdx)
      retq

A smaller cost is that in non-vector code, using a 64-bit register (rax) in 32-bit mode (eax) is wasting half of the register.

IIRC, unaligned loads and stores will also, at the hardware level, stall the pipeline and inhibit out-of-order execution.

<comment><USER22> Oops, I used `#pragma pack` incorrectly in my code, but it doesn't change the codegen for the 96-bit structs other than offsets. Also `restrict` is only needed on the output argument to enable full vectorization of the 128-bit structs.

New link: [https://godbolt.org/g/8uGn4h](https://godbolt.org/g/8uGn4h)

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> > Thus, fully populating a 128-bit storage pool would, literally, require more > energy than boiling the oceans.

So we should be good until OceanCoin is introduced.

</comment><comment><USER24> "Thus, fully populating a 128-bit storage pool would, literally, require more energy than boiling the oceans.". Could we instead boil some Jupiter Moons?

<comment><USER25> Boiling the oceans is an alternative energy use, not a source.

</comment></comment><comment><USER26> Is it true zfs never saw widespread adoption because of licensing compat with Linux and patents or has come and gone?

<comment><USER27> People are reluctant to use openZFS on Linux as it can't be included in the kernel due to license issues. I'd still say it has widespread adoption when you consider the people willing to run it on Linux and how popular it is on FreeBSD/some other systems.

</comment></comment><comment><USER28> >That's enough to survive Moore's Law until I'm dead, and after that, it's not my problem.

...really?

<comment><USER29> No, I don't think that was entirely serious. 128 bytes should be more than enough to last for a very long time, not just a little bit longer than the author's life.

<comment><USER29> Damn, just noticed I wrote 128 bytes and not 128 bits, too late to edit.

<comment><USER28> I wasn't talking about the number of bits, my friend. I was talking about the attitude that "it's not my problem after I'm dead." That's exactly why we are stuck with so many societal problems. For example, the Federal Reserve Act of 1913 was a true victory for the sons-of-guns who got it enacted, but then they died and now we're all left with the aftermath. It's this shortsighted attitude that is the problem, not the number of bits in the implementation.

</comment></comment></comment></comment><comment><USER30> It could run the file system of the death star (Star Wars).

</comment><comment><USER31> Why can't they have a 64 bit and 128 bit ZFS offering side-by-side. When somebody actually needs 128bit they can migrate?</comment>


Ask HN: Django Materials - <AUTHOR>

After my first submission a user suggested I try python/Django before I go any further with Ruby.  Suffice it to say, I'm burning through learnpythonthehardway.org... I'm considering purchasing Django 1.0 Website Development written by Ayman Hourieh as the next step.
Before I pull the trigger, I am looking for some trusty HN opinions.
Thanks all. <comment><AUTHOR> Clickables:

First sub: <http://news.ycombinator.com/item?id=2303991>

Django 1.0 Web Dev on Amazon: [http://www.amazon.com/Django-Website- Development-Ayman-Houri...](http://www.amazon.com/Django-Website-Development- Ayman-Hourieh/dp/1847196780)

</comment><comment><USER2> I like "Practical Django Projects" a lot and "Dive into Python" is a classic. You can also watch the PyCon 2011 (and 2010) presentations on pycon.blip.tv and the DjangoCon 2010 ones at djangocon.blip.tv. Both groups are available as podcasts. I have been watching them at the gym.

</comment><comment><USER3> The best way to learn Django is by using it. Go through the screencasts at showmedo if you're a visual learner, or read the django book if you're a word- based learner, but start with something simple like a todo list and work up to a twitter type app if you want to get to grips with it.

</comment><comment><USER4> I have been teaching myself django as my first foray into development and these tutorials have been helpful <http://showmedo.com/videotutorials/django> , particularly the Django From The Ground Up series

</comment><comment><USER5> <http://djangobook.com> is what taught me Django.

The 2.0 version isn't entirely complete, but it's probably the best way to kickstart going through Django, if only while you're waiting for your books to arrive in the mail.</comment>


The Socially Awkward Founder - <AUTHOR> http://www.matthewstump.com/misc/2012/05/01/the-socially-awkward-founder/ <comment><USER2> My two sons are ASD -- aka extremely socially awkward, especially my oldest. It is their good fortune that I happen to be unusually socially observant and, at times, reasonably smooth (when my health issues aren't fostering research for a future book called "How to win enemies and alienate people"). Some things that helped:

Addressing underlying health issues.

Shadowing -- i.e. watching me do stuff first, learning by example.

Apprenticing -- an extension of shadowing where they took over pieces of the process as they became comfortable with them and I filled in any gaps until they had the whole thing down pat.

I also started an email list at one time tailored to an interest my oldest son had. With the assurance that mom had his back because I was the moderator, he bloomed and rapidly became the life of the party. He finally got to share with other people the sparkle I had long known and adored. Having experienced it once, he became capable of sometimes turning on the charm for the crowd. Most people still are not privy to it but it is because most of the time he just doesn't care.

Best of luck to everyone struggling with this.

</comment><comment><USER3> Nodding gets me into trouble. It's made me a "good listener" to quote many people from my personal history. I start nodding, people keep talking. It takes an external interruption to get me out of the situation. And that's where I feel I'm 'socially awkward.' I get along with people just fine, but I find getting out of undesirable situations to be a Hard Problem.

Empathy. This is the root of the problem. I'm an American male with empathy. That's not a complaint, but an important observation of critical self- analysis.

<comment><USER4> I know the feeling, sometimes it's ok to interrupt people. You just need to practice the 'conclusive' tone of voice and say something appropriate, e.g. "Well, I guess that's just the way it is" ... pause ... "Good talking to you!"

</comment></comment><comment><USER5> Thank you for this. I partly own and run a website dedicated to New Zealand Modeling and Fashion. We have high hopes of turning it into something more which is where I come in as a developer. Unfortunately, as part owner, I have to attend meetings made up of photographers, models and the general hipster crowd. How utterly painful for me. I haven't found a way around my social ineptitude and am open to suggestions that especially fit my situation. At present my technique involves drinking a few beers before attempting to start any conversation.

<comment><USER6> What's the website? I'm a Kiwi and always interested to know what other people are doing here. :)

In terms of improving meeting with "photographers, models and the general hipster crowd", does it help any if you think of them as "people"..?

What do you define as "utterly painful" and "social ineptitude" in your case?

What do you say to yourself as you enter these sorts of situations? Is it "Wow, I suck" or "Wow, I'm awesome and have something that's really of value to these people, I should find out what they're looking for and demonstrate how I can help them"?

I know the whole self-talk thing seems bogus but I think it does have an impact.

<comment><USER5> The site is <http://model.net.nz/>

Well I acknowledge they are certainly people :) I've suffered through a few years of depression which include being medicated. I suppose I'm just terrible at initiating and continuing a conversation. Entering a conversation, I typically feel insecure so this is leaning towards more of a "Wow, I suck".

I realize such thoughts are a terrible handicap in networking situations and I'm working on improving that.

<comment><USER6> > I realize such thoughts are a terrible handicap in networking situations and > I'm working on improving that.

There is no magic bullet so that's actually a pretty good approach to improving things. :) It just takes time...

It can seem fake to try to take the positive angle but it's important to try. When you have the choice between choosing to think of yourself as awesome or not, try to always choose the awesome option--even if you don't really believe it...

Also, if someone ever tries to compliment you on something, make sure you don't try to deflect it--just say "Thank you" with a smile.

Yeah, it all sounds a bit wanky but I've found it helpful for me. :)

(Also, check out Bar Camp Auckland <http://twitter.com/#!/barcampauckland> if you've not been before--there's some good peeps involved.)

Good luck!

</comment></comment></comment></comment><comment><USER7> I'm not sure if I read this somewhere or if someone told me about this, but I think your system is a good beginning but could be improved by adding a few steps.

I use this formula when I am tired, but still need to network, and it works exceptionally well.

1) Start with exactly what you said, asking questions about the person. When you find something they are interested in, move to step 2.++

2) Tell a brief story. Make sure it has a beginning, middle and an end.+

3) Introduce them to someone else, and tell the new person about the old person's interests to get them involved in the conversation.

The toughest part is step 2 and requires practice, you might as well start now. Every time you are out, practice by telling stories. The shorter the better and always have a beginning, a middle and an end.

+As an escape, if you tell a crappy story and you can sense it, you can always joke about how it was a crappy story. It isn't perfect, but usually that will buy you some respect/time.

++ If you ask the person too many questions about them without telling a story you will notice they will start to back off. People who are socially strong may not mind as they will understand you are nervous and will intentionally give you a break, but this is not the norm.

[EDIT] It is important that the story you tell relates to what that person is talking about.

<comment><USER4> I've always been terrible at story-telling, my friends have given me shit about it. Then I have one friend who can take any normal every-day event and basically turn it into an epic poem which is hilarious or fascinating or both. Definitely a good skill to have.

<comment><USER7> I read a pretty good book called Telling to Win. It really takes practice and making sure you have a beginning. A middle and an end. Most people who are bad story tellers don't have the end right.

</comment></comment></comment><comment><USER8> Actually, I would say you should NOT try to develop people skills. If you are a technical guy, your work will speak for you. By all means, be friendly to anyone who talks to you, but don't go out of your way to improve your social skills, because they are not your most valuable asset.

Being an introvert is not a bad thing.

I strongly recommend reading this:

<http://www.carlkingdom.com/10-myths-about-introverts>

(Particularly #10)

<comment><USER6> [You were down in the grey, so I upvoted you, not because I necessarily agree with you but because your comment is still contributing to HN--even if it might be somewhat contrarian. :)]

While I agree that being an introvert is not a bad thing, I don't think it's unreasonable for a person to _want_ to change some aspect of their approach to life if they see a benefit in doing so.

I would caution against taking a pure "your work will speak for you" approach. If I have the most amazing programming language/web framework/cold fusion reactor sitting in my house but I tell no one then my work is _not_ going to speak for me. It's just going to sit there generating cheap energy.

In order for your work to speak for you someone needs to be listening.

Social skills are a force multiplier: the more your work is promoted, to the right people, the bigger impact it will have. Either you do the promotion yourself or you meet someone who will do the promotion for you...

And this comes from an Introverted New Zealander so I know of what I speak. :)

As a final example:

Do you know one of my forms of passive income? I would say, probably not.

As an introvert I'd leave it at that.

But as an introvert who has learned people have to know something exists before they can hear what it says...

You should totally listen to what The Bright Bunny has to say:

The Bright Bunny.

A little craft. A little electronics.

A whole lot of awwwwww! <3

(<http://thebrightbunny.com/>)

<comment><USER8> I agree, kind of - obviously you need to get the word out. This does not mean you have to be an expert in social interaction though. Case study: in 2006, I released a demo I had worked on (in isolation for 2 years!). Within the first week, 600,000 hits, just by me posting a link, no social skills needed :)

</comment></comment></comment><comment><USER9> Good post. Have you read Dale Carnegie's "How to Win Friends and Influence People." Did wonders for me...

<comment><AUTHOR> I haven't read it. I think as a geek, or maybe just as a male I have a hard time buying what one would typically think of as a self help book. I don't know why it just is some sort of block or form of denial. Even after being upfront about what is or isn't easy for me I still have a hard time being seen reading that book. I think that behavior is fairly common, It's ok to say "I'm a nerd", but it's not OK to be seen working on fixing the problem. I guess that's why more people don't talk about this issue. That being said I'm going against my instinct and buying the book, thanks for the tip.

<comment><USER10> > _buying what one would typically think of as a self help book._

Screw that. Carnegie's book is just like any other hacking book, except the OS is humans, the API is social interactions. It's not a manual, and is more in the vein of The Art of Hacking.

Seriously, worth reading.

<comment><AUTHOR> Agree, I'm just being honest about my knee-jerk reaction. I'm not defending it as logical.

<comment><USER4> I used to feel the same way. Then I read it. This is a self-help book from before self-help books were a scam. Or maybe they still were, but in any case it was a genuinely useful book and a really quick read too. I keep it around and review a chunk now and then.

</comment></comment></comment></comment></comment><comment><USER11> > _Just walk up, listen to the conversation, occasionally node..._

I was confused for a few seconds there, trying to conjure up an image of a socially awkward founder desperately behaving like a node that belongs in a network.

Typo aside, nodding is a godsend if you don't want to (or don't know how to) participate actively in group talk but you also don't want to look like you're indifferent. Just nod at appropriate moments. Nod if you agree. Nod even if you disagree, it shows you're paying attention.

Heck, it's even OK to nod because you're falling asleep. People will want to know what kind of fantastic thing you built last night that made you lose so much sleep. (If not, it still gives you a perfect excuse to ditch the boring group and go grab some coffee.)

</comment><comment><USER6> I have no idea how it appears to other people but my personal approach is to not say my name or ask for names when I first meet a person.

Unless you have developed the skill to remember names, you're most likely going to forget it in a second--and then you just have to ask for it again later!

Instead, I prefer to have a great conversation with someone and _then_ ask them for their name once I have something to which I can attach it.

I find this reduces the pressure/anxiety at the beginning of a conversation as I can focus on what the person is saying instead of trying to memorise their name.

Well, it's been great talking about succeeding in social situations as an introvert. By the way, I'm Philip, what's your name..?

<comment><USER2> Michele. Pleased to meet you.

<comment><USER6> Hi Michele, thanks for helping me out with this demonstration.

Do enjoy the rest of your Hacker Newsing today, I should probably go and do some work. :)

</comment></comment></comment><comment><USER12> _just keep them talking, they'll eventually bring the conversation around to something that is dear to them_

It's painful to pretend to show interest then. I can only talk about thinks i am thoroughly interested in (and i talk _a lot_ then), or I can analyze a minor detail or bring up lots of trivia (i know lots of them) to divert the conversation. I don't exactly pass as a talker that way, but at least people don't think i lack confidence.

<comment><AUTHOR> I find something about that persons interest that I always wanted to know, and ask about that. It can be tangentially related.

</comment></comment><comment><USER13> > Start out easy. [..] Just stick out your hand, smile slightly, and say "Hi

Question: How do I get the courage to get that far?

<comment><AUTHOR> To be honest, you need to just suck it up and try it, consequences be damned. You're going to suck for a while, embrace it.

I think that's a difficulty for smart people, we're used to being good at things easily and when we aren't we avoid them. It's OK to not be good at something if you're just starting out. You will make mistakes, it's your job to learn from them and get better.

<comment><USER6> > "You're going to suck for a while, embrace it."

Yeah, that's a good thing to remember.

> I think that's a difficulty for smart people, we're used to being good at > things easily and when we aren't we avoid them.

I think "smart people" want to avoid the "I feel dumb" stage of learning. Actually, I suspect most people do. :) When it's something that's familiar (like learning a new API or language) we can get through it with familiar tools (e.g. our brain) so it's not quite as bad.

When it's something unfamiliar (like improving conversation with people) it's a longer & more obvious stage and our usual tools don't help. (Particularly when we have our critical brain along for the ride.)

> It's OK to not be good at something if you're just starting out.

I definitely had to remind myself of that when I enrolled in an Improv Theatre course recently. :D

Good advice.

</comment></comment></comment><comment><USER14> See "How to Win Friends and Influence People" for a more complete discussion on this technique :)

[http://www.amazon.com/How-Win-Friends-Influence- People/dp/06...](http://www.amazon.com/How-Win-Friends-Influence- People/dp/0671723650)

</comment><comment><USER15> Tried to read the page, but it kept jumping back to the top on my android phone. Could not make it through the first paragraph.</comment>