Sia – Decentralized cloud storage network - <AUTHOR> https://blog.sia.tech/meet-sia-the-most-viable-non-financial-application-of-blockchain-technology-afe6e7412a25 <comment><USER2> > Today it is possible to purchase a refurbished 1 TB hard drive for about $20 > — so buyers are essentially paying Amazon each month the entire cost of the > hard drives used to store their data!

What a refurbished hard disk does not give you:

\- Redundant storage

\- Redundant power/network/etc.

\- Geographic distribution

\- A network API

\- _Any_ networking, or uplinks at all

\- Access control

\- A team ensuring the reliability and security of your data

\- Global network of datacenters and pops

\- Integration with other cloud services

All that and Amazon et al. do not store your 1TB of data in a single refurbished hard disk. This is beyond non-sense.

Sure, some of these costs are amortized, but I still think this is a lame comparison. If all you wanted was at-cost block storage with crappy reliability and speed, you could probably accomplish that in easier ways.

<comment><USER3> I think the use-case of cloud storage is mostly marketing by cloud provides to show relevance to the consumer. They are are loss leaders at best; used to lock you in to their services / track your every move; at worst.

I think the comparison with a $20 1TB hdd is perfect. Cloud providers, and phone makers, have convinced you to have your photos, music, data, online, always. Like a bank. Among other things, its much easier to mine your usage patterns that way and enforce DRM of other cloud services.

I have my IDE PC drive from 20 years ago. It still works. I can burn a CD if im that worried about failure. I dont need the redundancy of a billion user website, a networking api, access control, all that other crap you use in enterprises that comply with ISO standards.

Before cloud providers, people didnt take their photos to Apple and tell them to store them. The only reason u do it now, is because of marketing and service integration.

<comment><USER4> Wrong. The reason we do now is so that we can have our photo library accessible on our phones and synced between multiple devices.

</comment></comment></comment><comment><USER5> Abuse concerns and "does it need a blockchain" cynicism aside I find all of these "crypto" cloud computing projects fascinating. I highly recommend playing around on their testnets. Storj and Filecoin are also competing in the storage space, and BitTorrent is vying to be a CDN alternative.

SONM aims to be an EC2 competitor, and interestingly requires ID verification to participate in their testnet due to the clear abuse potential of unattributable internet-connected VMs. (which exist in plenty of other places anyways since at present date, hosting providers have no KYC requirements)

Will the sharing economy extend to computing resources? I'll stay tuned.

<comment><USER6> Decentralized computing is a challenge because unlike storage, it's very expensive to encrypt computation. You see something like 10,000x slowdowns.

With storage, we can encrypt and checksum everything client-side in a cryptographically secure manner, and we can have full faith that even though we are giving our data to someone else, they have no way to view the data or tamper with the data.

If techniques like homomorphic encryption gain substantial speedups, I'm sure that we'll start to see decentralized/trustless computing, but for now you really need to be doing your outsourced computing with someone you can trust and someone who is regulated, because it's possible to act maliciously.

<comment><USER7> [https://golem.network](https://golem.network) is the project to make decentralized computing possible. They already have beta version released.

<comment><USER8> This still leaves problems:

1\. Now I have to trust two providers, each of which could have problems.

2\. Now I have to pay for encryption, _then_ pay for storage, and probably have higher ingress costs, too (I can probably trust AWS/GCP/Azure/Backblaze/whatever; not sure about random-blockchain-guy #67812).

</comment></comment></comment></comment><comment><USER9> Hi all, author here, just wanted to say I am thrilled to see the HN community discuss decentralized cloud storage in more detail. There are many drawbacks today and narrow use-cases, but our goal is to continue to improve Sia – and over the coming years we will prove that decentralized storage can compete directly with Amazon, Google, and Microsoft. We feel confident that the marketplace dynamics, in particular, will foster competition between hosts on the network and maintain prices that are an order of magnitude cheaper for storage and two orders of magnitude cheaper for bandwidth.

<comment><USER10> Pretty arrogant to say you're going to make cloud storage providers obsolete when you haven't even built a competing solution. You can't even share data yet...

And what about all the other features that cloud providers offer? You say "[the] Sia software is exponentially improving, and performance and featureset is quickly approaching Amazon S3", but I see absolutely no evidence of even the most basic features of cloud storage providers.

Authorization? Regulatory compliance? High-performance bandwidth? High- reliability public API/URLs? Customer support? Private cloud peering? Zero effort integration with many (most?) major data-related open source projects? Versioning? One-click, no-knowledge reliability?

How much do you need to grow to hit cloud scale? 1,000,000x? More? And you're already claiming that you're going to make S3 obsolete?

Your blog would hold more weight if you weren't so over-the-top, bullshit- level optimistic.

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

<comment><USER12> I often enjoy the cynicism of HN as a counterpoint to the typical breathless media coverage of new technology. However that now famous comment on dropbox is a good demonstration that cynicism isn't a short cut to truth.

</comment></comment></comment></comment><comment><USER13> > and their prices are suspiciously similar at about $20 per TB per month. > Today it is possible to purchase a refurbished 1 TB hard drive for about $20 > — so buyers are essentially paying Amazon each month the entire cost of the > hard drives used to store their data!

Really? That's the argument? That you could store your files cheaper on a single, refurbished disk without considering the cost of housing, electricity, network, physical security, redundancy, management etc.?

<comment><USER14> Aren't all those costs priced in? I assumed the data storage with Sia was redundant and encrypted, which should cover basically all of those things, right?

Looks like it from looking at the site:

>File segments are created using a technology called Reed-Solomon erasure coding, commonly used in CDs and DVDs. Erasure coding allows Sia to divide files in a redundant manner, where any 10 of 30 segments can fully recover a user's files.

[...]

>Before leaving a renter's computer, each file segment is encrypted. This ensures that hosts only store encrypted segments of user data.

I'd love for someone to do an analysis on the performance and availability of the data. I wonder if you could pay more for faster speeds or higher levels of redundancy? That would be neat features.

</comment></comment><comment><USER15> > Hosts on Sia do not have to worry about building and maintaining enormous > datacenters, employing thousands of employees, and marketing their services. > They only need to worry about providing reliable storage capacity to renters > on Sia.

I would expect that building large datacenters and employing people to manage them is exactly how you go about providing reliable storage capacity.

And while it's true that providers don't have to worry about marketing or branding, well... the flip side is that they can't do any marketing or branding and need to compete in a market where the product is completely commoditized.

<comment><USER6> Sia is built on a completely different assumption than most large datacenters - uptime requirements for hosts are around 95%, which equates to about 36 hours of downtime per month.

This means that you can run a much leaner database and require substantially less expertise to keep things going. If a rack goes down, you don't need someone on-site to bring it up ASAP, you can fix it the next workday without upsetting your customers.

95% uptime for hosts translates to 99.99+% uptime for Sia users, because users store data across hosts in a 10-of-30 scheme. As long as 10 out of 30 of the hosts are online, you will be able to access your data. The probability of losing 20 hosts when each of your 30 hosts have 95% uptime is exceedingly small; your practical uptime depends more on the reliability of the software than it does the reliability of the hosts you use.

As for commoditization: that's the goal! If we can completely commoditize data storage, prices should come down dramatically, and the market should be a lot more efficient. You won't need to be an Amazon or Google to have a stable and competitive data offering.

<comment><USER16> > This means that you can run a much leaner database and require substantially > less expertise to keep things going. If a rack goes down, you don't need > someone on-site to bring it up ASAP, you can fix it the next workday without > upsetting your customers.

This is already the case for cluster storage systems like Ceph.

<comment><USER17> This extends to the whole site. You don't need backup power. At all. Maybe no redundant network equipment, if you get replacements on speed dial. Likely no redundant fiber, just don't take your time to arrange a replacement if someone cuts it (use a different, pre-scheduled conduit you can rent and fill with fiber in a day or two).

If you get unexpected "bus factor", you can handle replacement combing back early from holiday.

Get creative.

</comment></comment></comment></comment><comment><USER18> I tried Sia about 2 years ago. It worked "ok" for half a GB files, However, for 4-5 GB my upload got stuck while the help forum couldn't provide answers besides "wait for the next release".

There were also unclear issues back then. Are the files encrypted on my computer before being uploaded? are they sharded between many hosts? or are they stored in one host? How long will they be stored.

Most of these issues seem like they could be improved. Not an inherent faults of the technology or something. I like Sia's idea and tech in general; I'll give it a try again now.

<comment><USER6> Sia has come a long way in the past two years. Uploads, downloads, and repairs are both much more stable and also a lot faster. Sia can effortlessly sustain 100mbps upload and download if your connection is that fast.

Sia is happy with files that are hundreds of GBs in size today, and with a filesystem that that gets up to about 20 TB. Beyond that it starts to struggle, but we're continuously working to expand its capabilities.

Data has always been encrypted client-side, even in very early releases. Data today is sharded between hosts in a 10-of-30 Reed-Solomon scheme.

I think you will find that the experience is much smoother and more complete compared to the experience from 2 years ago. And, a critical feature is now available as of the latest release: seed based file recovery. After you upload your files, it's possible to create a snapshot of your data that you can recover later on a different machine using nothing more than your wallet seed. This makes Sia a practical and cost effective solution for secondary or tertiary backup.

</comment></comment><comment><USER19> Long time user and follower of Sia. It's always surprising to me that it's overlooked compared to filecoin (which is similar, but seems like $250m+ vaporware to date). I use it to have tertiary backups.

Weird caveat I found: the smallest chargeable size is actually pretty large.

<comment><USER20> > Weird caveat I found: the smallest chargeable size is actually pretty large.

This and the cost to form contracts is is large enough that it doesn't make economical sense until you are storing > $1gb.

That said, they seem to slowly be working through a number of these concerns. They very recently released seed based backups, one of the biggest issues I had last time I looked.

<comment><USER19> Ya; that's another one - the same wallet on multiple machines = different set of contracts. Didn't notice that was fixed though...

<comment><USER9> We do not yet have the ability to share the same set of contracts across multiple machines, but it is on the roadmap. This would include using the same set of contracts on desktop and mobile devices, which will open up some intriguing use-cases.

</comment></comment></comment></comment><comment><USER21> This reads like a typical blockchain non-sense hype article. Before you even go down the road of comparing sia to S3, what about some unbiased benchmarks? Show us the 99.999999999% durability, the pretty much unlimited bandwidth, the single digit milli-second latencies, the practically unlimited capacity.

If you want to compare Sia to anything, compare it to Dropbox or OneDrive. S3 was made for an entirely different purpose and Sia can't even remotely compete with it.

As a personal data store? Maybe. But wait until this thing becomes more popular and hackers start making a mess. Will be interesting to see how stable this "fully decentralized" network is, once it gets the full attention from bad actors as all the cloud providers.

<comment><USER22> You are being deceived by Amazon's PR machine at its finest. The 11 9s of durability are a "design", not a guarantee. The official PR line at the time was "S3 is designed to provide 11 9s of durability".

There's still no SLA on durability AFAIK.

<comment><USER23> Actually it is 11 9s of durability, but availability is a different story.

<comment><USER22> Parent comment mentioned durability, in fact. Not sure where did you read availability?

</comment></comment></comment></comment><comment><USER24> Can someone explain the difference between Sia vs Filecoin/IPFS. The latter seems to be still working on solving some fundamental crypto primitives before they can offer what seems like what Sia already claims to have solved?

<comment><USER25> Yes, Filecoin is trying to come up with a "more efficient" and possibly "elegant" implementation based on algorithms that are still being invented. Of course, with 100x the budget it's possible that they could still overtake Sia.

</comment></comment><comment><USER26> There is one missing piece to all this, I/O.

Given they publish their apps on all platforms they could probably add this in the future as an ssd or PCIe storage tier by doing regular disk benchmarks.

However it seems like a major limiting factor, given that random access speeds on spinning drives or even cheap ssds can drop drastically by an order or two of magnitude (i.e. from 130MB/s to 2MB/s). Given how they're doing error correction in a distributed manner, having a fast storage tier would be a major advantage for them which would eliminate any problems from flash storage wearing out and fully gain the benefit of throughput, random access times and cheap new prices of nvme drives.

At the moment I probably can't use this for streaming my own 4k videos to myself because an up to 300mbps network is not good enough for that, the slowest storage in it would be a bottleneck for a significant amounts of the experience of watching the streamed file.

And I definitely can't use it for application storage given how important response time is to the user experience and user growth.

That all aside, those 2 are relatively extreme examples and there's a lot of usage scenarios in between them.

I do admire how far they've gotten this given all the blockchain hyped products that have failed. They seem to have a solid system here that will only improve on performance and put pressure on bringing online storage prices down.

<comment><USER6> Most 4K video is closer to 50mbps. If your home connection is that fast, Sia should be more than capable of delivering smooth 4K streaming to your home.

A single host with slow storage is not a blocking factor because Sia downloads in parallel from as many as 30 hosts at once when composing a stream of data. Even if each has an I/O bottleneck of 1 MB/s (8mbps), you'll be able to get your video out at 240mbps.

In practice today, Sia hosts are almost all network bottlenecked, most use HDDs which do not have trouble keeping up with network latencies (HDD seek times are 11ms, network latencies usually 50ms+) or throughputs (HDDs can usually get close to 100 MB/s, far more than the network throughput)

Can I ask, have you tried streaming 4K video from the latest version of Sia? Seek times might be 5-10 seconds, but I believe that once your stream has loaded you will see completely smooth playback. Our next release has a focus on reducing those seek times, but the code is not ready yet.

<comment><USER26> That's interesting, and very informative thanks.

No I have not tried it however, based on your information, this looks ideal for something like showing auto-playing video on a splash screen using your API to pull the file on the client side.

      /renter/stream/*siapath [GET]

</comment></comment></comment><comment><USER27> I'm trying to understand the reliability story better. I'm currently looking at this page:

[http://siastats.info/contracts_status](http://siastats.info/contracts_status)

Does that mean for every individual hoster-renter contract, of ones that were established and used, some ~9% of them failed?

That would essentially mean that to get equivalent numbers to those advertised by B2, which claims 11 9s I'd need to buy over 10 contracts. Is this actually how bad it is at the moment?

<comment><USER6> You are correct that the failure rate for contracts is somewhere around 9%, and you are also correct that you need over 10 contracts to get 11 9's of redundancy, however this doesn't translate to needing 10x redundancy on the Sia network to get high reliability.

Data is uploaded to Sia (per-default, it's configurable through the API) in a 10-of-30 scheme using Reed-Solomon coding, which means that each piece of data is held by 30 hosts, and out of those 30 hosts any 10 of them are sufficient to recover the original data. This has a total overhead of 3x, and the algorithms behind it are in my opinion super fascinating.

If you assume each host independently has 91% uptime, you get this amount of downtime as a result: [https://www.wolframalpha.com/input/?i=sum+of+(30+choose+x)+*...](https://www.wolframalpha.com/input/?i=sum+of+\(30+choose+x\)+*+0.91%5Ex+*+\(1-0.91\)%5E\(30-x\),+from+1+to+10)

In reality, the software reliability is a bigger factor in downtime than the host's reliability.

<comment><USER27> > Data is uploaded to Sia (per-default, it's configurable through the API) in > a 10-of-30 scheme using Reed-Solomon coding, which means that each piece of > data is held by 30 hosts, and out of those 30 hosts any 10 of them are > sufficient to recover the original data.

This sounds good - I'm just trying to understand how this is counted - are you establishing 30 separate contracts to achieve this?

<comment><USER6> Sia maintains 50 contracts with hosts at all times, and uses 30 of them for each file segment that gets uploaded. We use state channels, so we can use the same contracts each time you upload a new file, minimizing the total amount of on-chain activity.

</comment></comment></comment></comment><comment><USER28> Can someone ELI5 why you need a blockchain for this? Another startup could make a non-blockchain version of this that uses similar syncing technology to GDrive / Dropbox file sync that just syncs other people's stuff instead of yours and pays you monthly.

<comment><USER29> Non-reliant on central services or entities.

<comment><USER30> This also cuts both ways. Your business needs a file but your customer can't connect to that node because of some political blocking of internet connections. Who can you rely on? What central service can you call to get this fixed asap?

<comment><USER27> The idea with Sia is you upload to not one, but several people, you pick the level of redundancy you want and if you can't get the file you want from any given one of them, they pay the price and you get it from someone else.

</comment></comment></comment></comment><comment><USER31> I was greatly skeptical of these types of systems but ipfs proved me wrong. It's fine, when combined with a CDN. I'm interested in what new use cases Sia handles when CDN + IPFS works so well. For instance my blog [https://www.wuli.nu](https://www.wuli.nu) (source code [https://github.com/posix4e/blog](https://github.com/posix4e/blog))

<comment><USER32> Can you please clarify which CDN features are you referring to on your blog (can't find any) or anywhere else? Also can you elaborate what do you even mean by "so well"? Sia was started to be built before IPFS was even announced and has hosted PBs of data already as a working product. On the other hand IPFS hasn't even released it's public testnet so it would be great to understand your point. Edit: btw by IPFS I assume you refer to their Sia equivalent product, Filecoin. At least I do, as IPFS cannot be compared to Sia alone.

<comment><USER31> I am in no way referring to filecoin. I am talking about IPFS and cloudflare integration. [https://blog.cloudflare.com/distributed-web- gateway/](https://blog.cloudflare.com/distributed-web-gateway/)

</comment></comment></comment><comment><USER33> How do services like Sia handle illegal content?

<comment><USER34> All data is fragmented and encrypted, so it's impossible to know whether a particular host is storing a fragment of illegal content or not. I suppose if you somehow _did_ find out you were hosting a fragment of illegal content you could breach the storage contract (and pay the resulting penalty) but that's very unlikely because, again, all content is encrypted.

<comment><USER35> Encryption on Sia happens on the client-side, so the host has no guarantee that the file is actually encrypted.[1]

For encrypted data, I think it will be similar to the situation with other storage providers. If law enforcement searches your computer and discovers that you've uploaded illegal content in encrypted form to S3/GCS/Mega (especially Mega because they make it so easy to upload client-side encrypted data), then law enforcement will order the provider to destroy all copies of the data.

It will be interesting to see what happens if the provider is a Sia host. Law enforcement entities have standard processes for reporting illegal content to Amazon/Google/Mega/etc, and those companies have teams responsible for handling those requests. Casual Sia hosts currently wouldn't know how to handle such a request. The outcome might be that the compliance costs are too big for casual home users, so hosting on Sia becomes a specialized task that only dedicated companies can provide.

[1] [https://lukechampine.com/irresponsible.html](https://lukechampine.com/irresponsible.html)

<comment><USER34> I think someone technically skilled enough to run a Sia host would also be skilled enough to know how to delete delete a specific file off their hard drive. Sia could even provide a UI to make that easy. Though if Law Enforcement has access to the client's encryption keys, I think chances are it'd be way easier for them to just issue a delete command to the Sia network directly.

<comment><USER36> We do in fact already make it trivial to remove content from your host. Law enforcement can provide a list of hashes, which you pass as parameters to a CLI command that deletes them.

</comment></comment></comment></comment></comment><comment><USER37> Although the cost of cloud backups are egregious compared to the cost of raw storage, I'll pay a premium for the peace of mind that comes from letting someone else be held liable for storing my data and credentials to access it. I can easily upload/download files to google, iCloud, or Dropbox from almost any device knowing only my email and password, which I find preferable to having to remember an arbitrary 29 word seed. With the amount of exit scams in cryptocurrency, too, I just don't trust any project to continue to provide the same amount of utility that they do now, if they provide any at all.

I suppose you could use a custodian site to link an email and password to the seed, but then you enter a centralized third party to the mix.

I see value in Sia but it's just not for the average person in its current state.

<comment><USER34> You could store your Sia seed for free on Google Drive. That way you get the benefit of Google being "liable" for your data and credentials, but with the much lower storage costs of Sia. Yes, it's a centralized third party, but you already implied you have no problem with that.

</comment></comment><comment><USER38> Just switched to backing my data on Sia. Was previously using Nextcloud, which is great, but more expensive.

Took a little time to set up, but renting 200 GB for 10 cents/mo, in a decentralized system that encrypts my data, has great uptime, and doesn't mine my personal or "aggregated" data, is unbeatable.

I heard Sia is not great at handling large number of files, so I'm using a backup software to create automated, compressed backups first, and Sia handles those larger files.

I'll see how it pans out over time.

</comment><comment><USER39> I have a feeling this is an apples to oranges comparison.

Can you serve clients directly over HTTP using Sia in a permissioned manner? If not, then it's not usable like S3. If it's not usable like S3, then S3 pricing comparison is meaningless.

Also, how correlated is Sia pricing to the overall cryptocurrency market? Will my costs go through the roof when there's another crypto bubble?

Would it actually scale? If Sia became popular, would prices go up like Bitcoin transaction prices? Isn't the extremely cheap bandwidth due to spare capacity of average broadband plans? If so, wouldn't providers eventually cut that off? Broadband pricing relies on the fact that most users don't use all of the bandwidth most of the time.

</comment><comment><USER40> > How is this possible? By removing intermediaries

> [Sia] makes a small transaction fee from each file contract.

Am I wrong in observing that the number of intermediaries between hosting data on AWS == the number of intermediaries oh Sia == 1?

What exactly is this doing? Blockchain contracts to rent out your hard drives?

<comment><USER34> They explain what the mean by that two sentences later:

> Hosts on Sia do not have to worry about building and maintaining enormous > datacenters, employing thousands of employees, and marketing their services. > They only need to worry about providing reliable storage capacity to renters > on Sia.

And yes, it's essentially a decentralized storage market built on smart contracts. You can either pay to store your files (the client software handles redundancy, contracts, etc automatically) or _get_ paid to rent out space on your hard drive.

<comment><USER40> How do they verify that a host can actually store all of the data?

<comment><USER6> Ajedi32 is not correct.

Data is verified probabilistically on the Sia network. The blockchain has access to the Merkle root of the data that the host is supposed to be storing. The blockchain will request that the host provide a 64 byte segment of the data (chosen randomly) along with a Merkle proof that the data is part of the Merkle root.

If the host can provide the data and the proof, the host is rewarded as though they've demonstrated that they have all of the data. If the host cannot provide those 64 bytes along with a proof, the host is punished as though they are not storing any of the data.

<comment><USER40> How does punishment work? What stops one bad actor from agreeing to collect infinite data from a variety of sources and tanking both the trust and profitability of data hosts?

Also what about bandwidth constraints on the host end

<comment><USER6> When a host agrees to accept data, they put up out-of-pocket money. This makes it expensive for a bad actor to accept an infinite amount of data, as each piece of data requires more collateral to be put forward by the host.

Before a renter creates a contract with a host, the renter will perform some measurements on the host and determine if the host is suitable. A renter in China will chose different hosts than a renter in the US, because the latencies and throughputs of each host will be different.

<comment><USER40> Is there somewhere I can read about the punishments in more detail? E.g. how often the quizzes are, what the penalty is for getting it wrong / not being available for the answer?

</comment></comment></comment></comment></comment></comment></comment><comment><USER41> This is a flashback for me to 2006. I was working on storage technology and reviewing a few products in p2p storage. There's too much burden to apply p2p to get space. Storage is cheap enough for this idea to work.

</comment><comment><USER42> "The cloud storage industry is very similar to the financial industry in that trust is a necessity ..."

[https://www.stavros.io/posts/holy-grail- backups/](https://www.stavros.io/posts/holy-grail-backups/)

"I Found the Holy Grail of Backups"

</comment><comment><USER43> This takes me back I still have a few of there coins sitting around from years ago that have done nothing but tanked ( this was somewhat expected but I wanted to diversify in alts and this looked like one of the cooler options )

</comment><comment><USER44> Can somebody from Sia team compare it to Radix DLT and it's mechanism to shard and distribute data ?

[https://www.radixdlt.com/](https://www.radixdlt.com/)

</comment><comment><USER45> Is forums.sia.tech down temporarily or permanently?

</comment><comment><USER46> Sia is a future

</comment><comment><USER47> These ideas are all the wrong direction to decentralize. We don't need more layers and more complexity and more blockchains, we need simple, reliable, accessible household appliances. For storage, for sharing, for posting.

Please stop adding layers and layers of calculations, it's a waste of energy.

<comment><USER48> From what I understand, right now these projects are working on the backbone of the systems. In the future, other developers will be able to create services on top of these platforms to resell the storage space. So maybe someone will have an online cloud hosting service with a simple drag and drop online interface. They will charge a fee to the customer and the website operator will simply buy storage contracts on SIA or similar providers to provide the actual hosting and distribution of the files.

<comment><USER49> You would be correct!

Filebase[1] provides S3-compatible object storage at a fraction of the price. We happily use Sia on our backend. :)

[1] [https://filebase.com](https://filebase.com)

</comment></comment></comment><comment><USER50>
      Don't give up, I won't give up
      Don't give up, no no no
      Don't give up, I won't give up
      Don't give up, no no no

\- Blockchain guys

(I know I know.. I couldn't resist.)</comment>


Ask HN: What do you think of my idea: voice driven presentations - <AUTHOR> So if I am on stage, the correct presentation slide is displayed during my speech.<p>So I don't have to fiddle with a remote control. <comment><USER2> Options:

1\. It progresses based on content. Likely outcome: it randomly changes slides when you use a phrase too early.

2\. It progresses based on specific command, e.g. "ok, next slide." Likely outcome: some joker in the audience will start shouting "OK NEXT SLIDE".

I'd stick to the remote.

</comment><comment><USER3> It might be fun, but the remote is not that bad.

I have a Logitech remote that fits easily in the palm and has forward and next buttons that are easy to find by touch. It has a laser pointer too.</comment>


The case for treating sugar like a dangerous drug - <AUTHOR> http://www.vox.com/2014/6/2/5771008/the-case-for-treating-sugar-like-a-drug

<comment><USER2> Sugar was, is a luxury in many third world countries. When I was growing up in one such third world country, I had to steal sugar from attic. Some times, we could not afford sugar; in which case, we used jaggery to add to chicory mixed coffee.

In the states, the cheapest source of food is sugar-laden crap: go to any 711, you can find 3 donuts for $1.</comment>


Subway history: Don't be early - <AUTHOR> http://blogs.law.harvard.edu/philg/2014/09/19/subway-history-dont-be-early/

<comment><USER2> Interesting article. The first comment (by "dg") is interesting, too:

> Yup. American visitors to Europe + UK often marvel at the efficient > passenger railway system and wonder why the US can't build something > similar, without understanding the history of how they were built. In the > 1800s early investors/inventors went through a railway mania, grossly > overbuilt, and went bankrupt. The good lines were later scooped up for a > fraction of their original cost by a 2nd round of investors, and morphed > into today's system. It was never economically feasible to build a passenger > railway system without first wiping out the "too early" investors.

So while being too early pretty much guarantees failure, it seems we might need those early people. Perhaps the recipe for an truly innovative society necessarily includes over-encouragement of bleeding-edge innovator types. These will almost certainly fail; however, in failing, they allow later businesses to succeed.

Readers are invited to consider what role Y Combinator might play in this process. :-)

<comment><USER3> This kinda sounds like dark fiber laid out during the first internet bubble. Maybe Google fiber is like that 2nd round of railway investors.

<comment><USER4> And the first social networks (Friendster/MySpace) with Facebook

<comment><USER5> It's a shame, since MySpace was so much better in a lot of ways I care about, majorly the HTML customization.

<comment><USER4> I don't recommend <blink> tags though.

</comment></comment></comment></comment></comment><comment><USER6> HN really, really needs to stop showing just the domain and show the full hostname (perhaps minus ^www\d*.) instead.

<comment><USER7> The bugs and feature request queue got much better recently. In the past it was just a long and disorganized comment thread. [https://github.com/HackerNews/HN/issues](https://github.com/HackerNews/HN/issues)

</comment></comment><comment><USER8> "But before long more than a hundred decorated omnibuses were crowding the streets of the city, with names painted on the sides, from George Washington to Lady Washington to Benjamin Franklin. They were popular. And they caused complete chaos. For the individual owners of the omnibuses, nothing mattered more than the paying passenger. Drivers whipped their horses repeatedly to speed them past a competitor to the next potential fare, even if it meant a harrowing few seconds for those already on board. Grazing a lamppost to cut a corner or to cut in front of a rival was fair game, and pedestrians not paying attention could get maimed by a cornering horse or the trailing carriage." This sounds exactly like the present situation with dollar vans on Flatbush Avenue in Brooklyn.</comment>


John Resig dissects the neural network javascript OCR captcha code - <AUTHOR> http://ejohn.org/blog/ocr-and-neural-nets-in-javascript/

<comment><USER2> If I'm interpreting this correctly (which I may not be, since there is some ambiguity in the wording) Resig seems to have a bit of a misunderstanding of how neural networks work.

He says that an edge weight in the neural network means "At pixel 9x6 the letter A is 58% likely to be filling in that pixel." That isn't how neural networks work (although, it is fairly close to how bayesian belief nets work). In a neural network the edge weights of the graph don't obviously correspond to anything - they are simply chosen (most commonly through the back propagation training algorithm) to minimize the error between the desired output and actual output on the training data.

The weights in a neural network are simply the coefficients for terms in an equation that, when plotted, produces a curve that's a good fit for a series of data points. Unfortunately, that explanation is not very sexy ;-) That's one of the big problems with neural networks - they're effectively just black boxes that incidentally produce pretty good answers. They are (in most of their standard incarnations) really just a fairly simple technique for regression analysis.

Incidentally, I got to see Resig speak about jQuery yesterday, and he's clearly a very clever guy. I say this with all due respect, and fully expect that this is just a misunderstanding due to me misinterpreting the sentence I quoted in my second paragraph.

<comment><USER3> I think you can be a very clever guy and still have misunderstandings of how neural networks work. They aren't contradictory!

<comment><USER4> Heh, yeah, I'm almost certain that I'm just wrong in my interpretation - I may know JavaScript but I'm still a neural network newb. I've updated that paragraph to, hopefully, be a little more correct.</comment></comment></comment>


Irony run wild - Air Force Can't Afford Bombers, Schools Can't Hold Bake Sales - <AUTHOR> http://reason.com/blog/2010/12/05/finally-air-force-cant-afford

<comment><USER2> The original cited article states:

 _The language is broad enough that a president's administration could even ban bake sales, but Secretary Tom Vilsack signaled in a letter to House Education and Labor Committee Chairman George Miller, D-Calif., this week that he does not intend to do that._

So this is a matter of principle: whether the federal government _should_ be able to do this.

Does anyone know if this would allow prohibition of these sorts of activities, or simply withholding of funding? The destinction may not matter in practice (see: the drinking age) but does in principle.

FWIW The obesity legislaton "wouldn't apply to after-hours events". Bake sales at my high school were always held after hours. I infer that they were successful because they often nearly sold out, and because they continued to hold them. (I don't know if they'd do any better without that restriction.)

</comment><comment><USER3> Offer to sell the B1-Bs to Australia. We've retired our FB-111s and have a serious gap in our air power lineup.

<comment><USER4> ...replacing a tactical bomber with a strategic bomber is a bit of a leap. And B1s are -expensive- to keep flying. That's one reason why they're first to be considered to retire. B2s cost a lot too, but they're stealth and B52 are just... well, remarkable is the only word.

Btw, I think you ended up replacing your FB-111s with Super Hornets.

On the side, I'm sad that you guys are retiring your F-111s. Once they're gone, there'll be noone left to do dump and burns. Voosh!

<comment><USER3> It is a leap, but at least it would be a leap _up_. Neither the Super Hornets nor the JSFs which will replace them have the range and load that the FB-111 had.

For many mission profiles cruise missiles would do just as well -- better, actually -- but sometimes you don't want precision, you want to bust up a whole bunch of shit at the same time. That's the sweet spot for bombers. During the Timor independence crisis the forward deployment of 6 FB-111s from New South Wales to Darwin caused a buildup of troops and armor on the Indonesian side of the border to disperse and return to base.

FB-111s were originally purchased to fill a strategic role. Australia has a nuclear technology establishment. It's an open secret that we only have it to keep some degree of potential bomb-making knowhow on hand. But we don't have a rocketry organisation, so for that threat to remain credible you'd need a bomber that could carry an unrefined, bulky warhead. That's gone.

It was, in the context of the times, a quite nuanced deterrence which avoided prompting a regional arms race.</comment></comment></comment>


Masstree: A cache-friendly mashup of tries and B-trees - <AUTHOR> http://the-paper-trail.org/post/masstree <comment><USER2> I've been staring to write a paper on bcache/bcachefs's b-tree design, which is also a sort of combination b-tree/trie (it uses binary trees in eytzinger layout). Pretty cool to see the same idea coming up in multiple places.

Running index-microbenchmarks now to see which is faster :)

<comment><USER2> With what appears to be the current version of masstree: [https://github.com/kohler/masstree-beta](https://github.com/kohler/masstree- beta)

Single threaded random lookups: 1.4M/sec for bcachefs, 2M/sec for masstree.

</comment></comment><comment><USER3> Masstree is one of the DBs Berkeley used when comparing the performance of Anna [1] (now Fluent [2]):

[1] [https://rise.cs.berkeley.edu/blog/anna- kvs/](https://rise.cs.berkeley.edu/blog/anna-kvs/)

[2] [https://github.com/fluent-project/fluent](https://github.com/fluent- project/fluent)

<comment><AUTHOR> Yeah, Masstree has settled into the standard set of comparator systems for most research since it was published - and not as a strawman "this system was crap, so let's pretend we've done good work by beating it!" but as a real challenge to do better than.

Anna is on my list of systems to include in this review (see [https://www.the- paper-trail.org/reading-list/](https://www.the-paper-trail.org/reading- list/)). Looking forward to it!

</comment></comment><comment><USER4> Related: qp-tries and critbit tries: [https://dotat.at/prog/qp/README.html](https://dotat.at/prog/qp/README.html), [https://cr.yp.to/critbit.html](https://cr.yp.to/critbit.html)

</comment><comment><USER5> So what are the advantages over adaptive radix trees or good old judy- dict/array?

Apart from judy being too damn complicated, and too old to be optimized for vector-compare instructions (I think the fancy hand-coded x86 vector- comparisons are the main reason for ART being competitive with judy, considering that it misses at least key compression and the clever allocator, and that ART is not as optimized for using every byte out of every fetched cache-line).

<comment><AUTHOR> Here's a recent comparison of Masstree to ART: [https://twitter.com/andy_pavlo/status/986647389820747776?s=2...](https://twitter.com/andy_pavlo/status/986647389820747776?s=21)

ART looks to be better in most cases. It's on my list of K-V stores to review: [https://www.the-paper-trail.org/page/reading-list/](https://www.the-paper- trail.org/page/reading-list/)

<comment><USER5> Cool, looking forward. Please put Judy in as well :)

Seriously, the 17 year old judy is still pretty good, despite it's lack of use of cool vector load / compare / etc instructions for quickly traversing tree nodes that are too small for a full radix search (ART does "simultaneous search", i.e. compares to all stored keys in a single instruction, while judy afaik runs a linear search).

It would be pretty cool if someone vectorized that in judy, and replaced null- terminated strings by a binary-safe representation. Unfortunately, all implementations are old and very hard to read.

<comment><AUTHOR> I could either figure out how Judy works, or review another three papers :)

<comment><USER5> :)

My super high-level partial understanding of Judy is the following:

Start with ART, which is pretty simple. Then do the obvious improvements: First, we want fast access to "element number N in sorted order", i.e. you also store number of descendants. Next, you do key compression: Storing the portion of the key that can be reconstructed from the tree traversal is silly. Next: an 8-bit tag for signaling one out of 4 node types? Are you, like, filthy rich? More node types it is. Next: Spending 64 bit for a node pointer? Are you crazy? Put the type-tag into the parents pointer (earlier resolution of the branch!), and use a custom allocator to get smaller pointers (you allocate big segments and your node pointers are offsets).

You end up with an unintelligible monstrosity. Give it a cute name, forget about SIMD because it is 2001, and you end up with something like Judy.

</comment></comment></comment></comment></comment><comment><AUTHOR> Author here - if you like this you might also like another paper summary of mine in the same vein:

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

<comment><USER5> So I was wondering... are there sensible structures that combine hashmap and tree by having a double index?

Reason: Ordered access or range queries need a (radix-)tree.

So insertion and removal need to pay for the comparatively slow tree search and rebalancing.

Lookups or mutations could use a hash table that references the same data, especially if no key compression is used for storage.

<comment><AUTHOR> I don't know of one, but it's such a natural idea that I'd guess it's been studied. There are standard implementations of LRU caches that use e.g. a hash map and a linked list to get both fast lookup and ordering, but for real performance I think you'd want to try and minimise the number of data structures to avoid having competing cache behaviours.

</comment></comment></comment><comment><USER6> Why do I get a gross yellow block covering the image when I mouse over it?

edit: oh, it's because it's a link and they have some background coloring or something on links.

<comment><AUTHOR> Oh yeah that's no good. I'll fix that when I'm back at my computer. Thanks for pointing that out!

</comment></comment><comment><USER7> can't you better hash the keys and match hashes? They arent variable length, and will be unique per unique string regardless of the length.

<comment><USER8> That won't give you range queries / ordered iteration, which were the point of using a tree rather than a hash table in the first place.</comment></comment>


Russia is planning military invasion in Ukraine - <AUTHOR> http://www.bbc.com/news/world-europe-26400035

<comment><USER2> [https://www.youtube.com/watch?v=G2DCExerOsA](https://www.youtube.com/watch?v=G2DCExerOsA)

</comment><comment><USER3> Wasn't that a bit expected? They held off during the olympics to make sure it doesn't affect their event. Russia only cares about Russia.</comment>


How truly great entrepreneurs manage their time – A Founder's Notebook - <AUTHOR> https://davidjaxon.wordpress.com/2015/06/04/how-truly-great-entrepreneurs-manage-their-time/ <comment><AUTHOR> One thing that I have noticed is that these people know what they want to learn and they only learn that.

General people try to learn as many things as possible.</comment>


How much longer will you live if you take a statin? - <AUTHOR> https://drmalcolmkendrick.org/2015/10/27/how-much-longer-will-you-live-if-you-take-a-statin/ <comment><AUTHOR> _"Results: 6 studies for primary prevention and 5 for secondary prevention with a follow-up between 2.0 and 6.1 years were identified. Death was postponed between −5 and 19 days in primary prevention trials and between −10 and 27 days in secondary prevention trials. The median postponement of death for primary and secondary prevention trials were 3.2 and 4.1 days, respectively."_

<comment><USER2> So in the end, it doesn't even matter.

<comment><AUTHOR> A medical company owner I brought my attention to the possible downsides/side effects of statins; those side effects put him in a wheelchair. In light of statins (in)efficacy it made me question my use of statins. I'm going to wait until I consult my doctor before going off them.</comment></comment></comment>


Ask HN: Apple DevOps question - <AUTHOR> Hello, I developed an interactive story app for young children about a medical device. I was given a license by the manufacturer to use its image. Apple will not approve it to its App Store, claiming that it is a non-iOS device. The intention of the app is to introduce the medical device to children outside of doctors' offices in a less-scary way.<p>Does anyone have any suggestions as to how to get an app published to Apple's App Store using a non-Apple manufactured medical device? <comment><USER2> Depending on how your app is written, you may be able to convert it to iBook. iBook's Author can help you out here. Apple isn't likely to budge on this issue for app approvals without some extra work.

I would recommending talking with the manufacturer and having them reach out to Apple with you. That way you can begin formal discussions about how this situation might be resolved. 1-800-GO-APPLE is the number at Apple Healthcare, and that's where I would start unless the manufacturer has some contact. [https://www.apple.com/healthcare/](https://www.apple.com/healthcare/)

<comment><AUTHOR> Thanks. I will look into this.

</comment></comment><comment><USER3> The non-approval is due to the app's -content- not being related to iOS- specific devices or that the app doesn't work with the device?

Did they list a specific guideline?

<comment><AUTHOR> This is the message they sent:

"Specifically, it would be appropriate to remove the non-iOS device images."

I am redesigning things, but this is irritating.

<comment><USER3> Ah.

Did you have android or other mobile device images in the image copy?

<comment><AUTHOR> Yes - I had images of the medical device. I'm reworking them now, but even if I am able to rework this I was planning on creating other apps with other non- iOS devices.</comment></comment></comment></comment>


ICC Allows Afghanistan War Crimes Inquiry to Proceed - <AUTHOR> https://www.commondreams.org/news/2020/03/05/total-win-human-rights-groups-welcome-icc-probe-us-torture-and-war-crimes <comment><USER2> >Human rights advocates celebrated Thursday after the International Criminal Court determined that an investigation into alleged war crimes committed by United States forces and others in Afghanistan during the so-called War on Terror can proceed.

I know it's Common Dreams so the bar is low but if you're reading the comments first just know that the article doesn't get any better or informative from here. Case in point, the writer had all the time in the world to quote tweets from activists but couldn't even be bothered to mention that the US never ratified the Rome Statute and is also among the list of countries to declare they changed their mind on committing to the ICC.</comment>


Ask HN: Mentor for programming language / Garbage Collection - <AUTHOR> Hey guys,<p>For the past 2 years, I've been working on a programming language. One thing I've been struggling with for the past 12 months is getting the GC to work correctly. I've been  trying to implement a naive mark and sweep collector, for my language. I'm in need of some direction. Would anyone want to help me via Skype or some type of pair programming / screenshare? This is an open source project, with no plans to sell it or anything, however, if you would need money for helping me, I would be willing to pay. <comment><USER2> github repo?

I'm almost sure I can't help because I usually don't know too many low level stuff, but if it were a subject I may try to help the first things I'd like to see is a github repository to look at the code. In particular, in which language are you writing your language. Some people also care about the specific license.

Are you using C? Have you tried the Boehm garbage collector? [https://en.wikipedia.org/wiki/Boehm_garbage_collector](https://en.wikipedia.org/wiki/Boehm_garbage_collector) . GC are too difficult, perhaps you can try to use it first and when the rest of the language is complete write your own.

Also, it would be nice to have a blog post or something explaining what is working and what is failing in your GC.</comment>


48 Dynamic Photos Bound To Touch The Depths of Your Soul - <AUTHOR> http://www.emlii.com/145f0427/48-Dynamic-Photos-Bound-To-Touch-The-Depths-of-Your-Soul?hn

<comment><USER2> 17\. Animals being used as part of medical therapy, 1956</comment>


How Tenants and Landlords Should Think About Covid-19 RentStrike - <AUTHOR> https://www.rentstack.co/blog/how-tenants-and-landlords-should-think-about-covid-19-rentstrike <comment><USER2> Summary:

1\. Renters may lose their jobs, unable to pay rent.

2\. Some landlords have jobs and so have to cover the mortgage and such; but they might also lose their jobs, going into foreclosure.

3\. Thus renters can lose their home that way, even if the landlord lets them go without paying rent.

4\. Thus, who is the winner? Why money landlords: banks!

Banks are not out of a job; they get to take people's houses.

If you want a pandemic-proof racket, start a bank.

<comment><AUTHOR> Thanks for taking the time to read my article. In this situation there aren't any obvious winners except those with cash that will be able to buy properties and other assets at discounted prices given the cascade of selling we're likely to see in the coming weeks and months. Banks will suffer with non performing loans across many industries and loan types. Banks also have compression of net interest margins with rates close to zero. But banks are in good shape going into this mess and will likely be backstopped by the federal government and will probably come out in a lot better shape than other stakeholders.</comment></comment>


BitTorrent: Register report on protocol change is "utter nonsense" - <AUTHOR> http://www.thestandard.com/news/2008/12/01/bittorrent-register-report-protocol-change-utter-nonsense

<comment><USER2> "And as one Slashdot.org forum participant said of Bennett's article..."

It'd be much more effective to actually get some quotes from the official response (<http://forum.utorrent.com/viewtopic.php?pid=379206#p379206>) :

\</comment><comment>

uTP, the micro transport protocol. This UDP-based reliable transport is designed to minimize latency, but still maximize bandwidth when the latency is not excessive. We use this for communication between peers instead of TCP, if both sides support it. In addition, we use information from this transport, if active, to control the transfer rate of TCP connections. This means uTorrent, when using uTP, should not kill your net connection - even if you do not set any rate limits.

\----

Just to re-iterate and offer a few more details (there's some pretty wild press reports popping up): Firon described uTP completely accurately. uTP is the result of a couple of years of work to try to make a Bittorrent protocol that works better on the internet.

The switch to uTP is at this point purely experimental, but the design objective (counter to some reports in the press) is actually to offer better congestion control than TCP offers, but maintain the same level of performance (speed). Better congestion control is good for everyone – for users (VOIP, Gamers etc.) as well as for ISPs. Same performance is what users have come to expect from their BitTorrent application – unless we can offer the same performance, then people will switch to a different BitTorrent client. (In reality we may be able to offer faster speeds too in many circumstances, but this is a byproduct and not the main objective.)

uTP is our UDP-based implementation of the BitTorrent protocol. Normally BitTorrent is implemented on top of TCP which is the standard congestion control mechanism for the internet. It so happens that the congestion control mechanism inside TCP is quite crude and problematic. It only detects congestion on the internet once "packet loss" has occurred – i.e. once the user has lost data and (probably) noticed there is a problem. The problems of TCP are fairly well known in technical circles, but it doesn't get fixed as TCP is one of those protocols that is implemented in every webserver and application (e.g. browsers, bittorrent clients) on the internet. Co-ordinating a giant upgrade is a very long process.

Because BitTorrent publishes the world's most popular BitTorrent clients AND because these clients are talking mostly to each other (not to web servers), then we have an opportunity to detect end-to-end congestion and implement a protocol that can detect problems very quickly and throttle back accordingly so that BitTorrent doesn't slow down the internet connection and Gamers and VOIP users don't notice any problems. This is our objective.

This is great news for users of the internet and even for ISPs as it should mean that people make far more efficient use of internet bandwidth, but don't over-use it to destruction. If uTP is successful, then internet congestion due to BitTorrent protocol could become a thing of the past. Of course there are many other applications that use the internet and they may also cause congestion, but we can only control what we do. Having said that, given that some press reports suggest that BitTorrent traffic constitutes half of all traffic on the internet, our technology might have a profound impact. We're trying to do our bit to be responsible citizens on the internet.

While uTP is for now a proprietary BitTorrent protocol, we are also co- chairing an IETF group to address these issues. Hopefully that will lead to solutions that can be standardized and broadly adopted in due course.

\- Simon Morris VP Product Management BitTorrent, Inc.

</comment><comment><USER3> I'm still very concerned. When someone tells me they can design a better TCP, I'm worried. Having seen how tricky it can be to build a reliable protocol that provides congestion control and is fair to everyone, I wouldn't count on anyone getting it right without very serious effort.

</comment><comment><USER4> what next ...

Register: BitTorrent denial about protocol change "utterly ridiculous"

</comment><comment><USER5> 1</comment>


Ask HN: Strategies to Catalyze Social Invites? - <AUTHOR> Looking for a recommendation on resources aimed improving the invite rate on a social app. I've scoured the more generic and obvious sources like Hooked, Influence, and related works on behavioral psychology.<p>Wondering if anyone can refer me to resources having more specificity wrt this problem. Even blog posts would be great. Thanks! <comment><USER2> What's your seeding strategy? You could try walking around physically in a target rich environment and asking people to install it.

From my research, a great technique could be to make invites core to your product, and have both ends of the invite/accept transaction to receive a powerful brain chemical or financial reward. Did you ever get $10 to join paypal? That was a great strategy!

<comment><AUTHOR> Haha never got the $10 personally but I'm familiar with the rationale (from Thiel/Hoffman).

So in this particular case I'm less concerned about seeding as I am about viral coefficient and viral cycle time. I'm not seeing the metrics I want yet, so looking for ways to boost them. I think the fundamentals are working but it's clearly not enough to leave network growth to the whims of users. They'll often fail to bring others in even if they would like to. But by contrast I want the motivation to be organic and not necessarily a product of dark patterns or incessant prodding (imo in the best case these besmirch the app's appeal and in the worst contribute to churn).

Without getting specific, our app is already naturally amenable to friend invites - that was a prerequisite we considered before even scoping a prototype. So really just need to add fuel to a solid platform now.</comment></comment>


Ask HN: Caps lock warnings - <AUTHOR>

This is really just a small rant, but I'm curious nonetheless.
One of the principles of secure programming, is to not provide too much information to the user when failing on an authorisation attempt.  In other words, a potential attacker shouldn't be given information about a failed attempt that could help him/her narrow the possibilities.
Why then, do all the major OSs warn you when you've turned caps lock on while you're trying to login?
I can think of similar examples in cloud services as well (telling the user the email address doesn't exist, instead of just saying that the login failed), but that is a topic for another day... <comment><USER2> You get warned about caps lock being on _before_ you enter your password, so it's not a security issue.

Before OSs did this, when I mistakenly had caps lock on while entering my password, my thought process after each password attempt went something like this:

\- oh, did I mistype my password?

\- I'm sure I typed it right, are the key presses not registering?

\- oh ffs, did I change my password? No. Wait, is caps lock on?

\- yes, that was it, argh

It just stressed me out for no good reason, and I'm glad I get warned about it now.

</comment><comment><USER3> > Why then, do all the major OSs warn you when you've turned caps lock on > while you're trying to login?

It's not clear to me that this is a security issue or that it reveals any information to an attacker? Presumably the keyboard also provides notification that caps lock is no, so the login system is not providing any additional information not already available to an attacker.

<comment><AUTHOR> This is partially true. However, a fair few keyboards (and laptop keyboards) aren't making it THAT clear that caps lock is on anymore. Given that most people would rather use shift to make an uppercase in a password (at least the ones I know), leaving caps lock on when you're away from your computer is a quick and dirty deterrent from someone who may have watched you enter passwords earlier...

<comment><USER2> If someone is memorising your password from watching you type it in, caps lock being in an unexpected state is not going to hold them up for long.</comment></comment></comment>


Mark Zuckerberg Will Have a $1 Salary, Starting In 2013 - <AUTHOR> http://techcrunch.com/2012/02/01/mark-zuckerberg-will-have-a-1-salary-starting-in-2013/

<comment><USER2> You know you've made it as a CEO when you're only paid $1.</comment>


Google to use HTML5 in Gmail - <AUTHOR> http://www.computerworld.com/s/article/9178558/Google_to_use_HTML5_in_Gmail <comment><USER2> > HTML5 will also help in building new features. One feature that the Gmail > design team is now working on is the ability to drag files from the desktop > into the browser.

Working on? I've been using this for the past few months, ever since I heard about it. One time I wanted to send an attachment on a machine without Firefox or Chrome. I didn't bother, because it would have taken too long for the value it would have added to the email.

<comment><USER3> It doesn't currently work with Safari.

</comment></comment><comment><USER4> "If the browser supports CSS3, Gmail will render the pages using these specifications, rather than its traditional approach of using the Document Object Model (DOM)."

Better go build a GUI in Visual Basic to track the IP as well!

</comment><comment><USER5> What do they mean by rendering in CSS3 instead of the DOM?

<comment><USER6> Maybe CSS-powered manipulations instead of using JS to manipulate the DOM directly? As in, tag it with a class and use CSS to animate + hide + everything beyond that, instead of using a JS effects library.

* shrug __* just guessing here.

</comment></comment><comment><USER7> >Currently, the Gmail program is comprised of 443,000 lines of JavaScript, with 978,000 lines if comments are included.

Interesting - more comments than actual code (535,000 lines vs 443,000 lines).

<comment><USER8> That's usually considered a good thing...

</comment></comment><comment><USER9> It's great that they're using HTML5 for their purposes, but unfortunately they still rank among the worst for supporting HTML in the actual emails. <http://www.email-standards.org/>

You can't even include background images in GMail.

<comment><USER10> "You can't even include background images in GMail." Thank goodness. The people who use background images in email where the background is a notebook paper or similar are troubling.

<comment><USER11> Yeah, really. I don't want that shit showing up in my inbox.

</comment></comment></comment><comment><USER12> Why doesn't Google use GWT to write Gmail or any other applications? And how the hell does it maintain that many lines of JavaScript Code.

<comment><USER13> I believe that Gmail predates GWT.

I'd imagine that GWT also isn't as fast or compact as they'd like for Gmail.</comment></comment>


Lisp Hackers: Peter Seibel - <AUTHOR> http://lisp-univ-etc.blogspot.com.au/2012/07/lisp-hackers-peter-seibel.html <comment><USER2> I'd love a book on statistics for programmers written by Peter Seibel. I know there's Think Stats, and that's a pretty good book, but I'd be interested in a Lisper's take. PCL and Coders at Work are really great.

<comment><USER3> what makes a lisper better at statistics teaching and exposition than a non- lisper? (say, a trained maths educator?)

fwiw, creators of R are Lisp weenies, so you might wanna look there more carefully :-)

<comment><USER4> I actually have the same feeling as the previous poster. I'd buy/kickstart his stats book in a heartbeat. I don't think Lisp users would be "better" at teaching stats in some objective sense, but many of them (not all) have a certain turn of mind which looks like "clarity" through my subjective lens.

It is probably like Michael Spivak writing _Physics for Mathematicians_, because he didn't understand physics books written by physics people. PDF where he explains his troubles with elementary physics: (<http://www.math.uga.edu/~shifrin/Spivak_physics.pdf>)

<comment><USER5> Combining the above with the original comment, check out Structure and Interpretation of Classical Mechanics:

<http://mitpress.mit.edu/sicm/>

Physics explained by lispers! using consistent notation!

<comment><USER6> Woah! Does this exist in PDF form somewhere?

In fact it does: [http://www.fisica.net/mecanicaclassica/struture_and_interpre...](http://www.fisica.net/mecanicaclassica/struture_and_interpretation_of_classical_mechanics_by_gerald_jay_sussman.pdf)

<comment><USER3> I also loved the Berkeley book, Structure and Interpretation of Signals and Systems. Went down well with a 5 week daily diet of "Thinking in Systems: A Primer".

</comment></comment></comment></comment></comment></comment><comment><USER7> Funny - when looking at a codebase for the first time, I do almost exactly the same thing as described by Mr Seibel: I start rewriting it. I rename functions or methods that I think have poorly chosen names, I rename the names of fields, variables or parameters for the same reason, I refactor, restructure, and reformat the code to look like I think it should look, and so on.

<comment><USER2> That sounds like it could be really beneficial to understanding a piece of code, but it seems like it would only ever be really feasible if you were working alone and taking some code from somewhere else and completely consuming it, into a new project like Toot and Whistle or into some other existing project. Most of the times that I've needed to ramp up understanding of some code is either at a new job or before contributing to some existing project.

Would you do this after starting at a new job, and make this your first commit? Or before contributing to open source?

I could envision some awkward social problems arising there. If you kept that code to yourself, but continued working on the old code, that would probably be frustrating.

I'm just curious because I'm really attracted to the idea of this method but am not sure if it would really work where I'd want it to.

<comment><USER8> As I think I mentioned in the interview, I've found that if I do this, by the time I'm done with my rewrite, I actually understand the original code too. So if I had to, I could throw away my new (better?) code and still benefit from a better understanding of the original code.

<comment><USER9> Funny, it's a thing I repressed myself doing, always wondering if static analysis (call graphs and such) wouldn't be better.

<sidenote> There should be a site with a substantial piece of code to discover and people would answer what were the main (3-5) steps they had to do to ~understand it and how long.

</comment></comment></comment></comment><comment><USER10> _From time to time I imagine a language that lets you write constraints on your code in the language yourself — kind of like macros but instead of extending the syntax your compiler understands, they would allow you to extend the set of things you could say about your code that the compiler would then understand._

Auditors in E: <http://www.erights.org/elang/kernel/auditors/>

<comment><USER11> completely off topic, but when I started reading your comment, the 'inner voice' was C3PO...

</comment></comment><comment><USER12> Great interview. And thanks for the reference to 'Coders at Work'. Greatly enjoying reading it.</comment>


Tesla's Cybertruck will have a solar charging option - <AUTHOR> https://techcrunch.com/2019/11/22/teslas-cybertruck-will-have-a-solar-charging-option-says-musk/ <comment><USER2> I was not interested in the Cybertruck, and I find it relatively ugly and many of the features don't apply to me. However, a solar-charging option is BIG news to me. I'm surprised this was not mentioned on-stage.

<comment><USER3> > _However, a solar-charging option is BIG news to me. I 'm surprised this was > not mentioned on-stage._

It wasn't said onstage because it was an off-the-cuff response by Musk to a random tweet. Like when he said the Roadster will have rocket boosters. Why is it an "article" on TechCrunch is the real question.

But I'll ask: how is slapping a solar panel on an electric vehicle "BIG news"? According to Musk, it can add 15 miles per day; that's a few hours of walking, and has very little practical value.

<comment><USER2> I don't drive a lot (only a couple dozen kilometers a week), but I live in a sunny area. I'd be happy if my car/truck/atv outside could just charge for "free" outside (big news to me, perhaps not to most) and never have to buy petrol again.</comment></comment></comment>


The Ghost of JavaScript Future (by Substack) - <AUTHOR> https://webrebels.23video.com/the-ghost-of-javascript-future-by-james

<comment><USER2> This is a great talk about being impulsive, having fun and experimenting while creating software from the guy who made browserify.

It has little to do with ghosts, javascript or the future.</comment>


Ask YC: How did you pop the question? (to your co-founders) - <AUTHOR>

There's a friend of mine that I think I'd really like to have on our team, specifically as an exec.  I've known him for years, he's already got one startup under his belt (as a founder) and he's got a good head for business.
I'm debating how to pop the question.  I asked my current co-founder via email, since I knew we'd see each other that day and wanted to give him some time to think about it.  How'd you guys do it?  Any particularly funny / successful / horrible experiences?
Edit:  I should have been more clear in the original post based on some of the replies:  We're already several months in and in beta, so we're not at the "I have an idea"-phase, but still pre-money.  This is someone I'd like to come in since I think he'd round out the experience that the two of us have. <comment><USER2> I asked them to accompany me to the beach and sat there with them, trying to get the nerves to pop the question. They knew it was coming, and after fumbling around like an idiot for a little bit, I spoke the words

        I've noticed lately, that you've been lagging at work. You feel empty inside, and the
        work you're doing is meaningless. I feel it too, but I also feel that together as a
        team, we can make something. We can be something, and we can take over this damn world
        and keep a portion of the profits. We can fix things--together. So, I'm asking
        you...will you start-up with me?

<comment><USER3> And he said - Our friendship is too important, I don't see you that way...

</comment></comment><comment><USER4> i was like "hey, you want to start a company?" that worked pretty well.

or ask him for help coming up w/ a business plan. by the time you're done, he has a sense of ownership over the idea and is [hopefully] excited about it.

<comment><USER5> i spotted a fuzzwich t-shirt in the wild yesterday.. you guys are getting around :)

</comment></comment><comment><USER6> I'd suggest getting together for some social (basketball, a drink, playing cards... whatever you guys do) and have a casual conversation. Never be too keen to let others know what you're thinking. Once you've been hanging out a little while, start bouncing the idea. As in discuss the business opportunity and see how excited he gets about it - without actually mentioning that you'd like him to join.

You know that he's got skills you need, but does he want to be involved? You can test this by just floating enough information for him to have to work a little to get more out of you.

This could then lead to a passionate, enthusiastic conversation and result in the outcome you want. If he doesn't take the bait, maybe offer a little more, but ultimately I think it means he wouldn't be right for the team - lack of burning desire.

We always appreciate most the things we've worked hardest for :)

</comment><comment><USER7> I talked to mine a little while after he got to college. I'd been there for a few weeks, and we'd been talking about how dull college was compared to the program we'd been at the summer before. (It was a very selective education- intensive month-long course, and I think we'd both describe it as one of those events that inspired us forward.) I asked him if he'd be up for trying to launch a web site business, and he said "absolutely." And, after talking about it for a while, we both agreed that if push came to shove, we'd both drop out rather than abandon the project, if it ever seemed like there'd be a foreseeable future to it. We'll hopefully be applying for this next summer.

I think you should try to get him excited with what you're doing, first things first. If he's passionate about it then he'll be that much easier to recruit.

</comment><comment><USER8> Just be direct and honest! Something like "You know, I always wanted to start a company and do something exciting. I think we would make a terrific team and would like to hear your opinion." Good luck!

</comment><comment><USER9> I had to talk to a coworker who had this excellent idea, but either didn't realize it or didn't know how to "sell" it. So I told her, "this idea is great because of X and Y, and I want to help you develop it". She thought about it and agreed with me. So here we are trying to carry it forward!

I think you have to consider if your project is good enough for your friend to drop his work and come help you. And then consider if you can actually find the words that make him feel like that. But focus on enthusiasm and above all, honesty :)

</comment><comment><USER10> If he's a good friend, he no doubt knows about your startup/venture already. If not, start by giving him the details and presenting some of your challenges. I'm guessing that he will have lots of ideas and solutions, and will even follow up after your conversation with more thoughts.

If he does, then mention that you'd love to explore him coming aboard. Seems to me you should be selling your vision and getting _him_ to bite.

</comment><comment><USER11> Just ask. Be direct and don't tip toe around the subject. Realize that it will be a hard (but rewarding/learning) experience.

Make sure you have founders agreement and a way to settle disputes so that friendships aren't destroyed.

</comment><comment><USER3> Go out to a bar, over some drinks push the idea a lot, see if the other person likes it. At the end, mention that if he ever has interest in joining you, you'd like it.</comment>