Backblaze has ordered 100 petabytes of hard drives - <AUTHOR> https://www.backblaze.com/blog/400-petabytes-cloud-storage/ <comment><USER2> I've been a customer for years and recently had a catastrophic failure of a computer and it's direct attached backup drive. I have spent the last four days waiting for backblaze to create a restore a backup for a computer on and last I checked it was at 9%.

I chatted with support and they said this is normal. That progress may jump to completed any time because the restore only tracks file count.

I wish I could say I'm happy about this but I'm four days into trying to pull down my data and I still have no idea when I'll be able to start the download.

This sucks.

<comment><USER3> Yev from Backblaze here -> That's definitely not normal, how much data/files do you have (are you doing a .zip or a USB restore)? We're currently QAing a dramatic increase to the restores, but right now only available internally until we are confident in it. In the mean time though you can download mission-critical files in smaller-sized restored, that might help you get up and running faster while the mega-restore completes.

<comment><USER4> Do you reckon the increase in restores has anything to do with APFS? I also lost my computer and Time Machine this week after upgrading to High Sierra, had to restore from backblaze.

Btw, unlike parent comment, I had a great experience with the restore and couldn't be happier with the decision to go with backblaze.

<comment><USER5> HE means they're QA testing a new method of restoring that will dramatically increase restore speed, not that there's a sudden uptick in restores. It's unclearly written, I had to read it twice before I got it.

<comment><USER3> Sorry - yes, you're correct!

</comment></comment></comment></comment></comment><comment><USER6> I love the articles from Backblaze. I enjoy them publishing the failure rates of drives and anything else on the blog.

Two things missing from them in my opinion 1) a Linux client and 2) a second location

I guess I could get away without a Linux client if there was an unRAID plugin for B2.

<comment><USER7> Second on the linux client. I have a linux machine with a zfs volume that I've been backing up to crashplan. Since they've announced they're dumping their consumer market I have no cost-effective place to go. Most likely, I'll be more picky about my backups and use S3 life-cycled to Glacier.

<comment><USER8> I would really like to use rsync.net for my "external third-party" backups specifically because of their "ZFS Platform" [0] but (from my off the top of my head calculations) their pricing seems to come out a little on the high side.

With my luck, the first time I need to be able to quickly restore a full dataset or something, it will probably have been well worth it and I'll likely be kicking myself for not doing it.

[0]: [http://www.rsync.net/products/platform.html#zfs](http://www.rsync.net/products/platform.html#zfs)

<comment><USER9> Be careful with rsync.net if you're on a comcast cable modem. They can't seem to handle the "xfinity powerboost" and you end up being throttled to 160kB/sec

</comment></comment></comment></comment><comment><USER10> I guess all the crashplan personal users are jumping over there en-masse. Good for business...

<comment><USER3> Yev from Backblaze here -> An influx of Computer Backup customers has certainly played a factor, but also Backblaze B2 is growing quickly!

<comment><USER11> [Resolved]

<comment><USER12> I have a hunch the page you're after is [https://www.backblaze.com/company/partners.html](https://www.backblaze.com/company/partners.html)

<comment><USER11> Contacting via HN was the last option. I tried there and sales on numerous occasions.

</comment></comment></comment></comment></comment><comment><USER13> I've watched Backblaze closely, and I love their detailed reports of drive stats. I've always been curious about their choices of manufacturers though. In my past I found that Hitachi/HGST drives were far more reliable than others. We had a couple people doing hardware and software support on ~120 machines, and hard drive replacements were expensive (in man-hours) for us, so whenever possible we got Hitachi drives.

The Backblaze numbers seem to support this as well, far fewer failures of HGST drives vs Seagate, but they seem to buy mostly Seagate. I guess when you have tens of thousands of drives, you're always going to need to be replacing them. So maybe a 10x reduction in failures isn't worth it? Or maybe they just couldn't get HGST drives in quantity?

<comment><USER3> Yev from Backblaze here -> We have relationships with manufacturers but don't directly buy from them (yet - fingers-crossed). It really is a combination of price/reliability. At our scale we can afford slightly higher failure rates if it means less expensive drives, so our #1 data point for purchases is the cost per gigabyte. After that we do look at failure rates, but unless it's something wildly out of "normal" we tend to live with the occasional failures. Thanks to Vaults the back-end is designed in such a way that if a drive fails we don't have to run and replace it - so individual failures tend not to stress us out too much anymore!

<comment><USER14> If a 10's of petabytes isn't enough scale to talk to manufacturers directly, I wonder what is!

<comment><USER15> After the order mentioned in the article, I wonder if it will be. Since they mention a mix of 10 an 12 TB hard drives, we can assume the order was for around 9000 drives. At a cost of $0.03/GB (not taking into account shipping or taxes), you're looking at a 3 million dollar order.

</comment></comment></comment></comment><comment><USER16> Do you keep them powered on at all times? Does a storage pod include a software-switch to turn them off selectively?

<comment><USER3> Yev from Backblaze here -> Yes, unless the storage pod is in maintenance, it remains on so that backup and B2 data can be uploaded and accessed.

<comment><USER16> Interesting. Have you ever computed how much power you would save if you turned them off when not needed?

Or is every pod constantly in use? Would it help if smart algorithms repartition the data on storage pods, to optimize power use?

<comment><USER17> Brian from Backblaze here.

> Have you ever computed how much power you would save if you turned them off > when not needed?

Electrical power is a gigantic part of our datacenter bill (like 60%). However, we cannot really ever turn off the hard drives.

If they were powered down, it would take too long to retrieve data. It would be like Amazon Glacier where it can take 15 minutes to get a single image back.

> is every pod constantly in use?

The way we built it, yes. If one user deletes a backup or unsubscribes from the Backblaze service, it frees a little bit of space on pods all over the datacenter. So we allow some other customer to use that space up as soon as we can.

We also use ALL the pods in the datacenter to give us "breadth" to accept data faster. This is particularly helpful on surges of new customers due to a press event, or if a competitor like CrashPlan decides to exit the market.

<comment><USER16> > If they were powered down, it would take too long to retrieve data. It would > be like Amazon Glacier where it can take 15 minutes to get a single image > back.

Well, speaking for myself, I don't mind if I have to restore a backup, and have to wait 1 minute extra for a system to come online (that's about the typical boot time of a Linux system, so I suppose for a storage pod it would be about the same).

By the way, it seems possible to power down an individual SATA drive if it is not in use: [1].

[1] [https://unix.stackexchange.com/questions/112117/shutdown- my-...](https://unix.stackexchange.com/questions/112117/shutdown-my-backup- hard-disk-on-linux-when-i-dont-use-it)

<comment><USER18> Interesting, your considering that your setup somehow compares to Blackblaze

Also if if he says it takes about 15 Min's for it to come online and be usable in their massive data center I would believe him.

<comment><USER16> Not really, he was talking about Amazon's solution.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> If anyone from the Backblaze team reads this: I love your service BUT please provide proper invoices.

The ones provided in the "My Account" page are an absolute nightmare.

Look at services like Stripe or Digitalocean and make them downloadable as PDF. Best case: send them out via email or auto-upload to specific Dropbox folder.

</comment><comment><USER20> @atYevP how much does the Backblaze business plan cost?

Or rather, if I have 10TB on a NAS and a Linux machine, what would it cost to back that up to Backblaze as a consumer given that you don't support this and I'd need to purchase the business thing?

<comment><USER3> Hey there! The business and consumer computer backup service have the same feature-set, so our business service would also not work with a NAS or Linux box. I'd recommend looking in to Backblaze B2. It'll be a bit more expensive as it's $0.005/GB but you'll have more control over your backups and lots of integrators make it easy.

<comment><USER12> Is Linux backup support anywhere on the radar at all?

I recently trimmed down my Backblaze licenses after switching to Linux installs, just went with s3 as s3cmd had a path of least resistance to storing backups. Would love to switch back if it's ever possible :)

<comment><USER21> Theyve repeatedly said no -- it breaks their business model to allow Linux machines (often servers) to backup "unlimited" data for $5/month. People with multi-hundred TB NAS machines would end that business model, quickly (see Amazon Cloud Drive, Crashplan, and others).

But if youre using S3, just switch to B2, its per GB pricing, much cheaper than S3 and supports lots of Linux tools. I use rclone.

<comment><USER22> I took the GP's remark about how he "went with s3 as s3cmd had a path of least resistance to storing backups" to mean that he considered B2 but opted for S3 since the latter offers a backup utility, but the former supports neither a "native" (e.g., git or rsync over SSH) backup interface, nor does it have a Linux client—the approach for backup on B2 from desktop Linux is to roll your own backup solution or use somebody else's client that has already added support for the B2 API.

I'm pretty sure the right Linux backup solution is rsync.net, by the way, which _does_ support a native (SSH) file access interface. For big backups, storage is (slightly less than) twice as expensive as S3, but unlike S3, there are no bandwidth costs.

<comment><USER23> "For big backups, storage is (slightly less than) twice as expensive as S3, but unlike S3, there are no bandwidth costs."

Just to clarify ... we (rsync.net) support "borg backup" now (with borg deployed on the server side ...) which is the "holy grail" of efficient, zero knowledge, remote backups:

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

... and if you are willing to give up our ZFS snapshots on the account (you manage retention yourself with borg) _and_ you are willing to handle your own technical support of borg, we offer a 3 cents rate. This is _about_ the same price as S3:

[http://rsync.net/products/attic.html](http://rsync.net/products/attic.html)

<comment><USER12> Sorry guys the path of least resistance also took into account price. I'll admit I've not checked your pricing recently but last time I used your service I was paying something like $70/yr for <100G storage

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> @atYevP Do you guys do anything special regarding HDD vibrations? I am assuming your special case is built with this in mind. It is crazy how many things one has to consider at such scale. Things people normally do not care about!

<comment><USER17> Not Yev but I also work at Backblaze.

Most of the anti-vibration tech is straight forward, like the fans aren't bolted to the chassis, they are held by rubber rivets, and we have slowly but steadily improved the "pressure" that drives are held in place to limit failures, etc.

From time to time, a fan will "half fail" causing large vibrations which can massively increase drive failures in the rack that bad fan is in.

<comment><USER24> Thanks. Another question I got for you is:

What is louder? The fans or all the disks together? I had a workstation with 6 spinning disks and that was already quite loud.

<comment><USER3> Now it's Yev - you'd have to ask our DC techs. Every time I go to the datacenter it "feels" like the loudest part are the fans, but my ears aren't attuned to what is causing which ruckus :P

</comment></comment></comment></comment><comment><USER25> I imagine you'll have to reduce pricing on Backblaze B2 eventually in order to stay competitive. What's it like having to flip such a massive switch where your revenue is X one minute and then X - 20% the next?

<comment><USER26> I don't understand. B2 is currently about half the cost of S3 for outbound data and 1/4 the cost for data at rest.

What do you mean "stay competitive?"

<comment><USER27> They're not equivalent. B2 is singly homed.

<comment><USER28> So is S3. You have to pick the region (home) for the data when you create the bucket.

<comment><USER29> From [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/) and [https://aws.amazon.com/s3/details/](https://aws.amazon.com/s3/details/)

        Data is automatically distributed across a minimum
        of three physical facilities that are geographically
        separated by at least 10 kilometers within an AWS Region

        Designed for 99.999999999% durability and 99.99%
        availability of objects over a given year.

        Designed to sustain the concurrent loss of data in two facilities.

From [https://www.backblaze.com/b2/cloud- storage.html](https://www.backblaze.com/b2/cloud-storage.html)

        Uptime: 99.9% SLA

        Reliability: 99.999999% durability

So S3 is 10x more available, 1000x more durable, and datacenter redundant.

<comment> shawn-furyan Eleven 9s of durability is an utterly farcical guarantee from a decade old service. A single big durability event in the next century would irrevocably decimate that record. They really might as well claim 100% durability, because it is no less plausible.

I mean, what are the odds that S3 will even be operating in 100 years? I'll certainly put $1 against $1,000,000,000 that it won't, and that's only one many ways it could fail the standard.

</comment></comment></comment></comment></comment></comment><comment><USER30> Love these articles! Thanks for writing it. Must feel so good to buy that many HDDs at once...something really gratifying about that.

<comment><USER17> As the guy who signs the check, "gratifying" isn't quite the right word. :-) Some stress, some amazement that everything got this large.

When we started 10 years ago, we could only afford to rent a quarter of one cabinet at the datacenter at 365 Main Street, San Francisco. We had "right of first refusal" on the rest of the cabinet we occupied. We could pile all of the hard drives ever deployed in that cabinet on my kitchen table.

Now it is semi trucks filled with fork lift pallets of drives. But it just "snuck up on us". Each day it was a little larger, each drive order was just slightly larger than the previous.

<comment><USER3> Yes, something taking 10 years to sneak up on you is very sneaky.

</comment></comment></comment><comment><USER31> How about security? If Backblaze can recover files for users then they can get the same files for any TLA.

<comment><USER32> That's the advantage of B2: straight storage, bring your own (encrypting) client. If Backblaze proper had a decent restore story (rather than typing your key into a web page and getting a zip), I'd recommend it wholeheartedly.

</comment></comment><comment><USER33> wonder if Backblaze is buying directly from HDD manufacturers or wholesalers and how much volume discount?

<comment><USER34> They've talked about this before -- despite orders like this, they're still not a big enough customer to be on the manufacturer's radar. So they're ordering from a middle-man.

Back during the hard-drive crisis after the tidal wave that disrupted production ... they were buying from anyone that had drives to sell, including people going into their local big-box store to source drives.

<comment><USER35> Link to their blog post on mad dashes to Costco after the floods [1]. It's an engaging read.

[1] [https://www.backblaze.com/blog/backblaze_drive_farming/](https://www.backblaze.com/blog/backblaze_drive_farming/)

<comment><USER3> Yev here -> it was a pain to drive around the Bay, let me tell you :P

</comment></comment></comment></comment><comment><USER36> Could you let us know about failure rates over time? Thanks for sharing.

<comment><USER3> Yev here -> These drives will be part of our ongoing "Hard Drive Stats" posts on our blog!

</comment></comment><comment><USER37> Curious where one would buy those, directly from the manufacturer?

<comment><USER3> Yev from Backblaze here -> Most of our purchasing is done through distributors. We'd love to buy direct at some point, but for now we have good manufacturer/distributor relationships! We're getting there though!

<comment><USER38> There is a simple fix - become a distributor. I worked for local European distributors that moved less merchandise per year and had direct relationships with Samsung/Fujitsu/IBM/WD/Seagate (you can tell it was a long time ago :P).

<comment><USER3> We've batted the idea around :P</comment></comment></comment></comment>


The 40 smartest people of all time - <AUTHOR> http://www.businessinsider.com/the-40-smartest-people-of-all-time-2015-2 <comment><USER2> I always wonder about why Einstein is regularly named as of the smartest person ever. He was clearly super smart so he deserves to be in the list. In this list Goethe came on top, not an absolute true rank for sure, but ask 10 random people who the smartest person ever was and most will say Einstein not Goethe.

I suspect his ability to promote himself while alive is what keeps him in our minds. What do you all think?

By the way, where are Feynman and Bohr.

</comment><comment><USER3> 40 smartest people of all time, and Niels Bohr didn't make the cut.

It's an arbitrary list but still a good read.</comment>


Designing for a Beautiful Enterprise - <AUTHOR> https://medium.com/@ethanjb/designing-for-a-beautiful-enterprise-8b5ce3d25509 <comment><USER2> Good luck, but nobody in the enterprises will pay you for beautiful software. Who chooses the software and who uses it are two very different categories of people. You'll end up adding things (pleasant, consistent interface) as a _free_ addon to enterprisey feature sheet, like AD/Lotus integration.

It's quite a lot of effort on its own, but you'll add it for _free_.</comment>


Distributed, lock-free, self-hosted health checks and status pages written in GO - <AUTHOR> https://sourcegraph.github.io/checkup/ <comment><USER2> dupe [https://news.ycombinator.com/item?id=12240380](https://news.ycombinator.com/item?id=12240380)</comment>


Android's Acne Problem - <AUTHOR> http://www.wired.com/gadgetlab/2010/06/androids-acne-problem/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+wired%2Findex+%28Wired%3A+Index+3+%28Top+Stories+2%29%29&utm_content=Google+Feedfetcher

<comment><AUTHOR> I read this article and came to the realization that the handset manufacturers are wasting millions of dollars of developer time to make their phones harder to use. Imagine what would happen if that developer time was used to improve Android instead!</comment>


Stress hormones in our diet may be a missing link between food and wellness - <AUTHOR> https://www.worth.com/stress-is-edible-heres-how-we-can-avoid-it-in-our-food-system/ <comment><USER4> > In plants, the predominant stress hormone is ethylene.

Wikipedia: "During the life of the plant, ethylene production is induced during certain stages of growth such as germination, ripening of fruits, abscission of leaves, and senescence of flowers." Ethylene the main way to ripen fruits, on the vine or after-the-fact.

> ethylene, a plant stress hormone known to trigger stress responses in > microbiomes, _including in species such as proteobacteria that are present > in human gut biomes_

The italics section is linked[0] in the article, but the link has no mention of the word "ethylene". I don't see anywhere they say that the human gut microbiome is "stressed" by ethylene.

As for the animal meat stress:

> The same pig study found that, due to negative feedback loops, the pigs > eventually exhibited abnormally low blood levels of cortisol and > norepinephrine due to overcorrection by the body.

This sounds like eating stress hormones produces less stress in the body, not more. They then use this as further evidence of their position, somehow.

[0]: [https://www.sciencedirect.com/science/article/pii/S000989811...](https://www.sciencedirect.com/science/article/pii/S0009898115000170)

<comment><USER5> I never cease to wonder if articles like this are incredibly cleverly put together, or incredibly stupid.

I feel like it would take me so much effort to string together these unrelated things and try to present them in a faux-scientific manner, with such succinct certainty, in the way this article does.

Like how they smartly concede that they're waiting for answers, ... and then they quickly breeze through making a bunch of connections, with references that don't back up what they're saying, as if these are all just 'known' things. It's kinda clever, and I would expect a lot of people to be fooled.

<comment><USER6> I'd say it's something more like fortune telling. Based on scant clues, string together a story which seems meaningful. There's a skill in taking advantage of human intuition to grab attention, with a spectrum of how aware you are if what you're actually doing.

</comment></comment></comment><comment><USER7> Are we supposed to believe that the wild animals our ancestors hunted were not consistently under stress? I think living in the food chain pretty much ensures experiences of stress. Both of hunger and the threat of being food for something else.

Do some people think nature before modern human agriculture was a happy go lucky place where the creatures experienced little or no adversity? Hope not!

<comment><USER4> I'm sure being a wild animal means some level of stress. I'm also sure it is nothing compared to the deplorable conditions in which factory farm animals are raised.

Your comparison feels like talking about soldiers with PTSD and then saying "all humans have jobs and deadlines and they depend on these for their livelihood! All humans have stress, how are soldiers different?"

I have no desire to look for images of how disgusting the living conditions and lives of these animals are in an attempt to prove this, but you are welcome to. There is no doubt in my mind it is far worse than their state in the wild. (I'm not defending the "article" or its findings, just saying that we as a society do terrible things to animals we plan to eat).

<comment><USER8> > Your comparison feels like talking about soldiers with PTSD and then saying > "all humans have jobs and deadlines and they depend on these for their > livelihood! All humans have stress, how are soldiers different?"

Wouldn't the animals in nature be more like soldiers with PTSD and livestock be more like humans?

> I have no desire to look for images of how disgusting the living conditions > and lives of these animals are in an attempt to prove this, but you are > welcome to.

Are they any better than the animals in nature being eaten while alive?

> There is no doubt in my mind it is far worse than their state in the wild.

Then you don't know what it is like in the wild. Ever wonder why you don't live out in the wild but rather live in human factory farms instead?

The vast majority of livestock don't live like the few cherrypicked photos/videos pushed by "activists/propagandists". Just like the vast majority of animals in the wild don't live wonderful lives.

<comment><USER9> Pigs in particular have it pretty bad, in factory farms in general. Ever heard of a gestation crate? Imagine being stuck in a box on a concrete floor forced to look straight ahead for months on end. That's the life of the average pig in today's world.

</comment></comment></comment></comment><comment><USER10> I don't know how this would make sense from an evolutionary perspective - <USER2> you kill and eat something you want to rest and recover, not assimilate the stress and give yourself anxiety so that you don't recover after the meal.

<comment><USER11> Evolution is really only concerned with procreation and not much else beyond that. It definitely doesn't care if you feel stressed or suffer some inflammation after a meal.

<comment><USER12> Fun fact for the reader at home - ANY meal produces an inflammatory response! A large part of the "eat smaller meals" belief, for many.

<comment><USER13> Some meals induce quite a bit more inflammation than others. Not including an autoimmune response, eg soy is a common cause of inflammation, inflammation is caused when what you eat falls behind the mucous layer in the stomach lining. So, if your diet provides the nutrients to have a healthy mucous layer or you have good genetics, you're far less likely to have an inflammation response when you eat. I believe eating mushrooms or yams has the nutrients that help the most.

</comment></comment></comment></comment><comment><USER14> There are some interesting ideas in this article, but it's nearly all speculation.

<comment><USER15> This definitely fits the organic / free-range narrative (ie happy cows make better milk/meat). So regardless of veracity, it will likely be a popular idea.

</comment></comment><comment><USER16> I'm reminded of the whole dietary cholesterol fiasco. After that, I'm inclined to assume most things are metabolized. And foo molecule food in <=/=> foo molecule in blood.

If our ancestors got our meet from hunting, surely those animals for full of cortisol, unless a lifetime of chronic stress in a disgustingly cramped creates more stress hormones.

<comment><USER10> That's my sort of assumption as well, but the article seems to indicate otherwise.

> A recent study of piglets published in the Journal of Animal Science by > Purdue University scientist Elizabeth Petrosus found that when pigs are fed > stress hormones such as cortisol or norepinephrine, their blood levels of > these hormones spike, body temperatures rise and gut biomes shift.

I'm not saying I believe it, but that's the argument they are making. Now does that mean that eating stressed plants cause similar results for our stress levels? I doubt it.

<comment><USER17> Yeah, the whole article is based around that one study of piglets. It seems like a lot of conclusions to draw from one data point in general, especially since there are often differences in animal/human studies that can lead to incorrect conclusions.

</comment></comment></comment><comment><USER18> Funny how we want to take an incredibly complex system and boil it down to 1+1=2. We think we're really advanced when we throw in 3rd or 4th step into the math equation. But not surprisingly this sort of reductionism leads to people being equally certain of exactly opposite conclusions. To the point they'll belittle the other person's simplistic understanding while completely missing the simplicity of their own model.

</comment><comment><USER19> This would have interesting implications for folklore common in some East Asian countries, particularly China, where meat flavor is "enhanced" by animal suffering at time of death. I must say the practices are abhorrent - particularly regarding the slaughter of intelligent, sensitive animals like dogs and pigs.

<comment><USER10> The article make mention of flavour, and I don't think you need to try to scientifically rationalize what can be sufficiently explained by human cruelty. In fact, based upon these findings I'd expect eating tortured meat to be less enjoyable than that relaxed kind.

</comment></comment><comment><USER20> Interesting hypothesis, but feels a bit light on fact and data. Breezed right over the bit about plant-based diet being a negative.

As for avoiding pork, that's a given. That industry is one massive toxic waste dump.

</comment><comment><USER21> Apparently, my initial response below was too terse and insensitive - <USER3> it may be how I really feel after reading that.

It seems unscientific to me, its an opinion piece pitched as common sense. And its coming from someone that is looking to 'transform the way you think'. The approach strikes me as offensive.

_________________________________________________________

Hocus Pocus, I said its true!

"Changing lives by transforming the way people think." -Yun Foundation

<comment><USER22> Please don't post like this to HN. You may not owe the Yun Foundation better, but you owe the community better if you're participating in it.

Would you mind reviewing the site guidelines ([https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html))? Note these ones:

" _Please respond to the strongest plausible interpretation of what someone says, not a weaker one that 's easier to criticize._"

" _Please don 't post shallow dismissals, especially of other people's work. A good critical comment teaches us something._"

</comment></comment><comment><USER23> I believe it!</comment>


"If you told me you were going to write me a check for $10 million, I'd say, 'Forget it'" - <AUTHOR>

--Lance Tokuda, the chief executive of RockYou, which developed the "Super Wall" Facebook application.
I have a difficult time seeing the value in an application that can be developed by a first-year computer science student in one weekend.
Also, if Facebook ever decided to enhance their Wall feature, Super Wall would become obsolete. (Facebook would never cannibalize its highest profile developers like this. At least not yet.) <comment><USER2> Of course, Lance is saying that because no one is actually stupid enough to write him a check for $10 million right now. Not for Super Wall, at least.

Most Facebook-only apps are in absurdly precarious business positions: they're features, not products, they've got a low barrier to entry for competitors, and they exist at the whim of a shrewd, aggressive company with a history of "incorporating" applications on its platform _into_ its own product with little regard to the developers who created them.

</comment><comment><USER3> "I have a difficult time seeing the value in an application that can be developed by a first-year computer science student in one weekend."

First of all, the value doesn't come from the technology, the value comes from the users. RockYou's applications have millions upon millions of Facebook users, each of which can generate revenue via... advertising!

Second, that said, I doubt a first year CS student could write a _scalable_ implementation of Super Wall, etc, that would support said millions upon millions of users.

Basically, RockYou is like HotOrNot... not very technologically exciting, but managed to get a critical mass of users. If another company tried to duplicate what HotOrNot or RockYou has done _now_ , they would fail miserably, and believe me, many have tried.

</comment><comment><USER4> I assume that was $10 million for more than just Super Wall. RockYou's not poorly positioned in this whole widget/app/gadget/plugin space. Meanwhile, Super Wall is a Facebook developer's boring weekend away from irrelevance.

<comment><USER5> But super wall has lock in, vis-a-vis the existing posts.

<comment><USER4> If there's anything dispensible on Facebook, it's wall posts. Superwall is popular because people mass migrated from the original Wall, and they'll go right back if Facebook makes a clearly superior product (or if it integrates in a way that's impossible for an outside developer).

<comment><USER6> really? The features I use the most are 1. pictures 2. wall posts

</comment></comment></comment></comment><comment><USER7> > I have a difficult time seeing the value in an application that can be > developed by a first-year computer science student in one weekend.

I have trouble believing that billions of gallons of oil discovered in 5 minutes by a 5 year old should be worth anything. Wait, that reasoning makes no sense at all.

</comment><comment><USER8> I agree SuperWall isn't worth $10 million, but wanted to point out that "could be created in a weekend" doesn't mean anything at all. A lot of successful startups could be written in a weekend.

For example, this guy created the core structure of twitter in 170 lines of Scala and lift. [http://blog.lostlake.org/index.php?/archives/55-Prance- with-...](http://blog.lostlake.org/index.php?/archives/55-Prance-with-the- Horses,-Skittr-with-the-Mice.html) That could easily have been done in a weekend.

Often you start with something fast/tiny and iterate like mad to fill in the gaps, but the basic concept is often easy to start.

</comment><comment><USER9> I'm a little skeptical when their main revenue source is selling users to other facebook applications. Feels like the whole subprime thing to me.

</comment><comment><USER10> Wasn't superwall made redundant wihtin a few weeks of release thanks to facebook wall and message attachements feature?

</comment><comment><USER11> $10 million checks: Accepted here.</comment>


2014 API year in review: last year's API predictions - <AUTHOR> http://www.3scale.net/2015/01/2014-api-year-in-review-last-years-api-predictions/

<comment><USER2> Good bet on what happened in 2014!</comment>


Former US Mint Director: "I Feel Strongly About the Promise of Cryptocurrencies" - <AUTHOR> http://newsbtc.com/2014/08/08/former-director-u-s-mint-feel-strongly-promise-cryptocurrencies/ <comment><USER2> "Mr. Moy's past work, however, that makes his presence among us interesting."

I don't know why. He was Director of the US Mint: he printed coins. It's a manufacturing business. It has nothing to do with monetary policy, fiscal policy or law as far as I know.

If the Secretary of the Treasury said something ... well, then we'd have a story.

<comment><USER3> Yet he's no manufacturing guru... "[...] graduated with a triple major in economics, international relations and political science." Aside from helping start the DHS, wiki says he's chief strategist for... Morgan Gold, a company which I can't find out much about except their "F" rating with the Better Business Bureau.

<comment><USER4> IIRC They sell gold coins via infomercials...

</comment></comment></comment><comment><USER5> Let me just make the token comment minimizing any positive Bitcoin stories, the title of this guys position makes him seem more important than he really was in the economic world. The director of the mint is more bureaucrat than economist. So while him having a positive view of cryptocurrencies is certainly good news, I could see the possibility that supporters of cryptocurrencies will hold this up as a bigger story than it really is.

</comment><comment><USER6> Feel strongly? Which way?

"I feel strongly about violence" \- Mr. Bungle

</comment><comment><USER7> It would be nice if this were more meaningful but the Mint director is not significant policymaker or even influencer. Perhaps he is in a position to advocate for cryptocurrencies from an informed position regarding the cost of printing reasonably secure banknotes, but he's not equipped to say much about whether, for example, Argentina should convert to a cryptocurrency if their current currency collapses and the altternative is dollarization.

</comment><comment><USER8> Cryptocurrencies are pieces of technology. Technologies don't make promises, people do, and most of the time those promises are empty. I have the feeling that this guy knows nothing about the technology, only about what people have promised or hope for.

</comment><comment><USER9> It's refreshing to read comments from someone who gets what cryptocurrencies could represent in the wider world, especially someone with former government connections.

</comment><comment><USER10> The premise? or the promise?</comment>


The importance of unit testing and functional testing - <AUTHOR> http://app.arat.us/blog/?p=159

<comment><USER2> "Unit tests measure the quality of material used to build the application. Functional tests measure the strength of the application structure. The overall quality of the application is dependent on both."

I understand what the author is getting at with the bridge analogy, but I think it's best to avoid analogies, especially in contentious arguments. Otherwise, we'll end up in a battle of dueling analogies about bridges and code - with each analogy containing the key assumption that either validates or refutes the argument.

I'm not glad that there's "negativity about unit testing" either, but I am glad that some people are starting to subject the 99% unit test coverage goal to a cost/benefit analysis - and, yes, concluding at times that it isn't worth it.

<comment><USER3> It's interesting to think about the Cost Benefit analysis of testing. I can say from my own personal experience that test driven development actually speeds up my results and it seems that I get a test for free.

<comment><USER2> I agree - when unit testing is working well for me, it feels "free". I realized I've always been "unit testing", in that my approach has usually been to write a bit of code, test it with a short main(), write a bit more, and so on. Unit testing, when it feels natural, is no different. I just keep the tests instead of throwing them out. This is more of a parallel testing approach than a TDD, but it seems to lead to good code coverage.

The part where I start to feel like the benefit isn't worth the cost is when I feel like I'm unit testing a framework rather than my own code.</comment></comment></comment>


What problems does Google Wave solve? - <AUTHOR> http://danieltenner.com/posts/0012-google-wave.html <comment><USER3> Yep - I think that article gets it spot on. I got my invitation yesterday morning and the first thing I used it for was to work with one of my co- founders to work up an agenda and discussion points for a more formal meeting later in the day while talking on skype. During the day before the meeting we were able to polish it up and make points not to forget.

Perfect - something that has been missing from our working methods since we all work remotely.

and yes we have kind of been using google docs for this kind of thing - <USER2> wave is a much better fit

<comment><USER4> But it seems that Wave is currently marketed to people who won't find it particularly useful.

One could argue that social media types are more concerned with public communication than private collaboration.

<comment><USER5> It's a huge marketing problem. If your app can't connect with the early adopters, it will never reach its target market.

Perhaps Google needs to try seeding entire _companies_ at once -- preferably not companies composed entirely of geeks who know what Etherpad is -- instead of handing out invites to random folks. On the other hand, such a strategy would limit their growth rate and constrain their feedback in a _different_ way. It's tricky.

<comment><USER6> But didn't other companies submitting new revolutionary "never before done" ideas had trouble in explaining it to their early adopters? Email, IM, Java, anything really.

I think Google Wave is great. But it is by its nature revolutionary, maybe we need more time to redefine how we think of "communication on the Internet"

</comment></comment></comment></comment><comment><USER7> The problem google wave solves is that Google doesn't have easy way to slurp/index all the world's emails, text messages and similar communications.

This is also why Google Voice exists.

Google is serious when they say they want to search _everything_.

<comment><USER8> I'm anxiously awaiting GoogleDresser, so I can find those missing socks and one of my favorite t-shirts.

<comment><USER9> You will never find your socks. Google wants you to buy new socks. From them.

<comment><USER10> *from someone who pays them to advertise socks; per click.

<comment><USER11> Google is going to release Google Dresser, and it will be absolutely free! It will keep your whole wardrobe on the server and provide a simple and intuitive user interface through which you can browse, create, and wear outfits.

Google is willing to give away these dressers for free because Google makes money through the dresser advertisements, so the more time you spend with your dresser, the more advertising opportunities they have. Thus Google wants to make a better dressing experience for you because ultimately it turns into more revenue for them.

Next up: Google Life, helping you do more and reducing your need to sleep.

<comment><USER12> I know you guys are all joking, but those things really scare me.

</comment></comment></comment></comment></comment></comment><comment><USER13> "To most geeks, the main problem with email is spam."

He lost me right there. You are not a geek if you have a problem with spam. Spam? I never see it. It all goes into my +inbox-spam folder and I spend < 1m/day scanning it before I delete the contents.

The problem with email is there is too much of it. Actually damn messages I must read and deal with.

<comment><AUTHOR> I didn't suggest that geeks have a problem with spam. On the contrary, because that problem has been on the geek radar for many years, it is largely resolved. And because most of the other problems have not been on the geek radar, they're not resolved yet.

 _The problem with email is there is too much of it. Actually damn messages I must read and deal with._

And my point is that Wave can help reduce the clutter and chaos of these messages by presenting them in a more structured, intuitive, and versatile form. So instead of having 50 emails discussing the text for the new homepage, you can have just one Wave.

<comment><USER14> _To most geeks, the main problem with email is spam._ ... _I didn't suggest that geeks have a problem with spam._

You certainly could have phrased that better :-P

<comment><AUTHOR> Yep, clearly! Sorry!

</comment></comment></comment></comment><comment><USER15> So then: Wave is an Outlook killer.

It definitely seems to fit much more than what we've been hearing over the last few months.

He's right. We've all been looking at this the wrong way.. Brilliant piece.

<comment><AUTHOR> Yep. Outlook killer is a great way to put it. I guess Google tried to do that with GMail, and Google Apps for your Domain, but only managed to kill off Exchange (in small businesses). GMail still suffers from many of the same issues as Outlook, in terms of collaboration (though it did solve both the spam and the storage problem). This is a more complete solution that has a chance of replacing Outlook because it's just a lot better.

Then again, Microsoft doesn't need to ditch Outlook - they could just release Outlook Wave - after all, it's all open-source. That would be nice - we'd all win from such a move.

</comment></comment><comment><USER6> Thanks for that insightful article. I only just recently got my Google Wave invitation (finally) and I for the first time logged on and was a bit lost.

I knew I might be on the initial phase of the next direction of communication/email and knowing that this might one day replace Email and/or IM kept me thinking that I am visiting something grand, even if I still had a small idea of what it actually does.

Google Wave is such a hard thing to explain to friends/family and non- techies...this article really helped me try and stitch a clearer picture.

I am, however, worried about the amount of spam/bots that might come with these waves as soon as they're made public.

</comment><comment><USER16> Google Wave does not solve problems directly, just like SMTP/POP/IMAP _per se_ does not solve the problem of communication. You need email client to communicate over SMTP/POP/IMAP, and the better your client is the better you deal with your problems (e.g. Outlook's feature of transmitting the messages of predefined format over SMTP to all the appointment participants helps you manage appointments).

When Wave will be public, I expect plenty of different Wave bots, clients and other type of software appearing out there. This Wave-based software will solve real problems, not Wave itself.

<comment><USER17> I think you're mixing up wave.

Wave _is_ an actual application, not a protocol. It uses several protocols to get its job done, but it _is_ an application.

And the wave code is already public: <http://code.google.com/apis/wave/>

<comment><USER16> Sure it's an application, not a protocol.

However, I still think that it's not the current application that will deliver most of the Wave's value. Just like it's not the Twitter website that delivers most of the value of Twitter, but the ecosystem of the clients using its API.

<comment><USER9> Think light wave - sometimes it's an application and sometimes it's a protocol.

 _da-dish_

</comment></comment></comment></comment><comment><USER18> This closely mirrors my own reaction, after five minutes of examining the introductory videos Google has placed on YouTube. Wave solves a number of problems I've faced for years in corporate environments, and in a much more integrated fashion than the piecemeal approaches that have previously been available.

It also provides a single point of integration. In the past, I've advocated for e.g. bulletin boards to replace email exchanges where information tends to "submarine" into private exchanges. But getting corporate IS to even consider a deployment -- even just a small one for a single team -- was a non-starter. Going rogue would be a termination offense.

If you can get Wave adopted, you solve a whole bunch of problems all at once.

I remain extremely skeptical, though, about the compatibility of Wave as it currently exists with many businesses' requirements for both confidentiality and guaranteed information access -- uptime, an unlimited timeframe into to future, and not becoming locked in to a single vendor platform to the extent that Wave currently seems to imply. A Wave failure on any of these points could quickly destroy a business; so much would be locked up in its data, and if there is no alternative -- even if imperfect -- means of access...

<comment><USER19> Yes, this. In a corporate setup, you need a messaging system that, for lack of a better description, is like email but persists like a message board. Targeted to a particular user/users but available for the next person to join the team without someone digging through their mail looking for the message.

The problems with adoption of current solutions (wikis, hosted stuff like Basecamp) are that many corporations don't let you host proprietary data offsite, and adding another server is something that is so difficult as to be essentially impossible. Not to mention "another server" could be one of 50 alternatives, all incompatible.

There still will adoption issues, as it doesn't seem like Google is aggressive in pursuing business customers, and I don't know if they have good answers for the questions that will come up. But I see Wave as essentially a protocol designed to solve the same sorts of problems as Basecamp et. al.

<comment><USER20> Basecamp, sure.

But I think the best example is a customer support ticketing system. This is pretty much an attempt to record email conversations in a structured way and be able to attach files to them.

</comment></comment></comment><comment><USER21> _Crossing the Chasm_ had a distinction between applications and platforms. The latter are harder to sell, but scale horizontally, leading to massive adoption. Potentially.

Wave seems to be a platform. It needs a killer app in order to be adopted. Often, this happens through hitching a ride on some bigger change, like faster hardware.

There are _plenty_ of great technologies that never got adopted. It actually seems common for a second-rate but good-enough version of a technology to win, because actual adoption is a huge challenge in itself. Perhaps a greater challenge than creating the technology in the first place. In pg-land, it's the "people want" part of "make something people want".

There's great opportunity here for the one who _can_ apply Wave to alleviate a felt pain.

<comment><USER17> Only geeks see it as a platform. The current Google Wave client feels like a single, unified application just like GMail (compared to a platform like 'email'). The current wave client _is_ the killer app.

<comment><USER22> Or rather... it fails to convince as the killer app.

<comment><AUTHOR> Give it time! It's still in beta :-)

It should get out of beta in, oh, what, 5 years' time, going by GMail's timeline?

</comment></comment></comment></comment><comment><USER23> Isn't that all pretty much taken care of with forums, google groups? (Attaching files, giving everyone the same view, keeping people added, etc)

Why would you use wave over a forum/google group etc?

<comment><AUTHOR> Forums, Google groups, etc, don't have the "edit other people's posts" Etherpad-like collaborative editing. Most of them aren't branchable in the same way Wave is. They generally don't have the privacy controls of a Wave. They don't weave from email-like to IM-like like Wave can. They're not built to allow native clients to interact. And they don't have any federation ability.

You could say that Wave is a bit like Email, Basecamp, Campfire, Etherpad, and a bunch of other collaboration tools, all merged into one unified interface. I'd be scared if I was 37-Signals. From everything I've heard, the feature Basecamp users most like is the discussion system... with Wave, that becomes a lot less worth paying for.

<comment><USER24> I haven't bought into Wave yet, although it has more to do with the current UI than anything else. In addition to what's mentioned above, there are plugins for LaTeX, for rendering molecules, etc which make collaborative editing very powerful, potentially at least.

</comment></comment></comment><comment><USER25> I didn't find anything new in this article.

But to have a few use-cases, I found this lifehacker article better (<http://lifehacker.com/5381219/google-waves-best-use-cases>) (it is a crowdsourced collection from users on how they would use google wave, rather than one person speculating on various uses).

The use-case from the air traffic controller seems to be the best - as if wave was an app made for traffic controllers!

<comment><USER26> I found the lifehacker article to be a rosy-eyed view of what people would use _their idea of what Wave is_ for. Some of them just wouldn't fly with the current UI and so on. swombat's more on the button as to what Wave actually _is_.

<comment><USER22> Exactly. That lifehacker article was terrible. People were buying the spin and the promise or real-time collaboration.

The OP article made great points, and in principle google wave (client and the underlying protocol) should provide everything the article outlines, HOWEVER, as is, the web client solves little or nothing.

The interface is sluggish, mysteriously buggy, overly complex and it actually exacerbates one of the MAIN problems it was going to resolve, ie the endless indentations. It fails #miserably# at that, because of the incredible amount of "chrome" (icons, borders, etc etc) used in the interface, especially in large public waves, but even with a very limited set of co-workers, you'll end up with a sea of bordered bubbles impossible to read for an ordinary human being.

I've used wave for 2 weeks now, I'm fully aware of all the browser short-cuts and features and my appreciation for it has waned.

Contrast this with etherpad (<http://www.etherpad.com>). It has its own issues (e.g. no indication of age of edits) but it actually works and #everyone# I've introduced to that site keeps using it and I've received many kudos.

Since google wave is both a client and a protocol.Perhaps an independent group can create a wave client that actually works...

</comment></comment></comment><comment><USER27> I completely agree with the author of the article. And he even introduced me to a new, possibly better, way of describing Wave to friends of mine: "it solves the problems with email".

I'm also relieved to see someone else pointing to Scoble's article and noting that he doesn't understand what Wave is about. When I read that article, my respect for the 'king of tech-bloggers' took quite a dive.

Anyways, kudos to you for writing about Wave more sensibly!

</comment><comment><USER28> This is a good analysis... I also now have Wave account and can very quickly see that it's as a "much-improved" system of email that it's real strength lies.

My only problem right now is I don't have enough fellow friends and associates with a Wave account to use it more and do better evaluation.

I'm looking forward to its spread!

</comment><comment><USER29> I think the problem Google Wave is intended to solve is Facebook. Facebook being a problem for Google, rather than a problem for the user.

</comment><comment><USER30> It was given to the wrong group, it should have been given to a collaboration of people working toward a common goal.

</comment><comment><USER31> Google Wave will force me to learn to touch type to avoid embarrassment in front of my geek friends!

</comment><comment><USER32> i hope i can "wave" people who are'nt on Google Wave... If only it can convert wave-traditionalEmail & vice-versa, it would be cool...

Also, i guess that should be fine as Google should be intrested in information-base rather than user-base...

</comment><comment><USER33> The needless "beta" limits how many people I can converse with using Google Wave - the invitations don't propagate soon enough to hold my interest.

Google wave = Jabber Client + glorified logging

</comment><comment><USER34> synchronous, asynchronous & broadcast communication.

</comment><comment><USER35> Ok, if this article is correct then it's a big problem for Google. Because their entire revenue model is based on earning money from from advertising... I can't imagine enterprise level organisations allowing Google to Earn money via advertising.

I know that Google have made some efforts to make money by directly charging Enterprises but that represents a tiny part of their revenue to date.

In other words, is Wave a much smaller opportunity than they had hoped? And if so, it might just end up being a "side project"...

<comment><USER36> _I can't imagine enterprise level organisations allowing Google to Earn money via advertising._

I'm not entirely certain what you mean by this. I would take you literally, but taking that sentence literally would be mad (Google does earn money via advertising, and every enterprise-level organization "allows" it in the sense that they don't explicitly "disallow" it (what would that look like, anyway?)). Could you clarify?</comment></comment>


Show HN: Blanqd – Gamifying the News - <AUTHOR> http://www.blanqd.com/

<comment><USER2> Installed the App. Honestly love it, its a fun game :)

The color scheme is almost too vibrant. It feels like it should be slightly toned down/masked a touch. I feel like I'm stuck in the barbie toy isle if anyone remembers physical toy stores from the 90's.

The UI is very nice and clean other then the color complaint. The fact that there are tips also seems slightly amiss. I found myself annoyed by the tips since I could just pick up and run with the app. But I understand why they are there.

The fact the name is dead center and always un-click-able seems to be a waste. Put all the icons in a single bar at the top or bottom (piggy bank, x, stats, etc.) Saves more screen real estate.

<comment><AUTHOR> Thanks for checking it out. Good points you make and I'll add 'em to the queue. This has been a good exercise in shipping something despite my tendency to want to tweak it endlessly before launch. Yes, the color scheme is risky...I guess I just went for it! I get bored with many of the color themes I see out there, especially for news related apps.

</comment></comment><comment><AUTHOR> Author here. Would love to get some feedback.

<comment><USER3> This if sort of cool. I am guessing you are generating the questions via some kind of smart substitution?

One thing that would be good is a way to skip or dismiss the tutorial pop-ups tips you get when you first open the app. I didn't need them; it was pretty obvious what to do.

<comment><AUTHOR> Correct. Hand creating the questions would be quite a task! I'll have to wait until the investment comes through...that's how QuizUp works I believe, they unscalably pay people to curate the questions. Probably why they are trying to go the crowd sourcing route now as paid minions can't create them fast enough.

About the tutorials, in user testing there was always something any given person couldn't figure out without the tutorials. However, when I added the tutorials with an option to skip, Nobody would bother to read them. I'll need more time to make it perfectly intuitive - in the meantime I wanted to ship so forced tutorial is what I went with. Thoughts on that?

</comment></comment></comment><comment><USER4> Unavailable outside of the US? Am in NZ..

<comment><AUTHOR> It should be available. My dev phones are U.S. based and I didn't know how to test/verify it running on a non U.S phone. Any ideas out there?</comment></comment>


Plankton Haven't Been the Same Since the Industrial Revolution - <AUTHOR> https://www.smithsonianmag.com/science-nature/plankton-havent-been-same-industrial-revolution-180972266/ <comment><USER2> At Kyso [1] we are really concerned about climate change and environmental damage in general - one of my co-founders actually started as an environmental scientist. We make tools to make data-visualisations easier using Jupyter but we've been wanting for the last few weeks to really focus the content that we write on climate change, from a data point of view.

I'm wondering does anyone here have experience with this - where do you source data-sets, what kind of charts have the most impact on people - is this even worth doing?

We've made a few studies before going through Co2 rates ([https://kyso.io/KyleOS/atmospheric- co2-concentrations-2](https://kyso.io/KyleOS/atmospheric- co2-concentrations-2)), which countries are on the most sustainable path ([https://kyso.io/KyleOS/environment- ranking](https://kyso.io/KyleOS/environment-ranking)) and per capita meat consumption ([https://kyso.io/eoin/per-cap-meat- consumption](https://kyso.io/eoin/per-cap-meat-consumption)) but we'd love to get some advice on how to really target high impact work in this area

[1] [https://kyso.io](https://kyso.io) I'm a founder

<comment><USER3> Interesting; your meat consumption data seems to contradict what BBC's article on meat consumption in India seems to imply. It makes it out as though Indians are eating a lot of meat. Perhaps it's simply that a lot of Indians do eat meat, but not very much of it (relative to North Americans for example).

[https://www.bbc.com/news/world-asia- india-43581122](https://www.bbc.com/news/world-asia-india-43581122)

<comment><USER4> That is addressed:

> Although some will attribute this to a tradition of vegetarianism, surely > this is mostly due to the limited access to meat for the poor. As I note > below, meat consumption is highest across high-income countries, and the > demand for meat in India is, therefore, expected to grow faster with > stronger & sustainable forecasted economic growth and rising per capita > income.

</comment></comment></comment><comment><USER5> I think climate scientists need to be careful about doing conclusion-oriented research, and climate crusaders should be more careful with their marketing efforts.

CO2 is heavier than air. Most of the human-generated CO2 ends up in the ocean [0]. This changes the pH of the ocean water, making it slightly more acidic. pH changes and nutrient changes (CO2 + agriculture runoff) probably explain the observations of changes in the types of plankton better than temperature changes.

The climate is a complex system with lots of inputs. It is fundamentally dishonest for the climate crusaders to whip up a frenzy (hockey-stick doom prophecies) on incomplete models and data.

Changes is solar activity (sun spot cycles) and underwater volcanic activity aren't really incorporated into the climate scientists' models, because they don't have much/any data. Temperature sensors have only recently been placed on the Juan de Fuca Ridge [1] (just off the coast of Oregon/Washington/British Columbia). The volcanic trenches in the deep ocean have no network of temperature sensors, or long-term activity data.

The Wall Street-owned utility model for the provision of electricity is technically and ideologically bankrupt, but the "green energy" replacements aren't much better. Solar panels wear out after a few decades, and are not easily recycled with current technology. Most people can't put a wind farm on top of their house, so wind-derived electricity is still purchased from a utility company.

I wrote a piece titled _use as much energy as possible:_ "Under our current system of money and finance, Wall Street is trusted to plan for the economy's future energy needs. Wall Street invests where it sees the most potential for payoff, and THEY make more money when the economy uses as much energy as possible.

"Like a rigged carnival game, the energy economy is specifically distorted so that we have little choice but to send lots of money to our financiers' energy companies. [...]" [2]

[0] "The constant atmospheric CO 2 concentrations in the centuries prior to the Industrial Revolution suggest that the oceans released a small amount of CO 2 to the atmosphere to balance the carbon input from rivers. Today, this trend is reversed and the oceans must remove CO 2 added to the atmosphere from human activities, known as anthropogenic (humanderived) CO 2. In the 1980s, the oceans removed an estimated 2.0±0.6 Pg of anthropogenic CO 2 each year. Because humans are producing CO 2 at an everincreasing rate, the average ocean removal rate increased to 2.4±0.5 Pg of carbon each year in the 1990s." \- [http://www.waterencyclopedia.com/Bi-Ca/Carbon-Dioxide-in- the...](http://www.waterencyclopedia.com/Bi-Ca/Carbon-Dioxide-in-the-Ocean- and-Atmosphere.html)

[1] [https://en.wikipedia.org/wiki/Juan_de_Fuca_Ridge](https://en.wikipedia.org/wiki/Juan_de_Fuca_Ridge)

[2] [https://teslabox.com/use-as-much-energy-as- possible/](https://teslabox.com/use-as-much-energy-as-possible/) [I wrote this in 2011 - all my picture links are broken, hmm...]

<comment><USER6> "heavier than air"

air is a mixture of gases - which gas of the mixture are you referring to ?

<comment><USER7> A mixture has a density of its own.

<comment><USER6> and CO2 is part of the mixture which we call 'air' hence the question</comment></comment></comment></comment>


Ask HN: Why are we not using airships to battle CA wildfires? - <AUTHOR> <comment><USER2> Something like a fleet of Hindenburg zeppelins? Fighting fire with fire?

Maybe because there's no fleet of airships, and they would make poor water delivery vehicles. They're slow, for one thing. The Hindenburg could lift 10,000 kgs in addition to its own weight. That's about 2,600 gallons of water. An Olympic-size swimming pool holds 500,000 gallons for comparison. A C-130 supertanker can carry 19,600 gallons, 7.5 times a huge airship's lifting capacity, and can get to the fire and back to refill a lot faster.

This might make a good tech interview question for people who already know how many piano tuners work in Chicago.</comment>


Never Use a Warning When you Mean Undo - <AUTHOR> http://www.alistapart.com/articles/neveruseawarning/ <comment><USER2> "Oh, and the next time you see a warning used instead of undo, send the designer of the application/website a nice e-mail suggesting that they implement an "undo" feature instead."

A typical designer point of view on the world. Has the author any idea of how much time (therefore money) it can take to implement Undo features across the board? I don't think so. Successfully implementing Undo functionality can be a daunting task. The question simply comes down to; is it worth the money investing in this feature? For most applications it simply isn't, no matter what mister visual UX dude thinks or says.

<comment><USER3> There's a lazy solution: do what Gmail does. Rather than have an actual undo stack, especially for those pesky things like removing information from the database, just delay action for 5-30 seconds and offer an undo button until the time expires.

<comment><USER4> It is not a real undo it is a warning with timeout.

<comment><USER5> "LAUNCHING MISSILES (click here very quickly to undo)..."

<comment><USER4> "cancel" and "undo" is not the same thing.

You can cancel the launch. But you can't undo it. It is thermodynamically impossible.

<comment><USER5> Right. But that's how Gmail is marketing it. "Undo send" gives you the impression that Gmail is reaching through the tubes and yanking your message back for you, but in reality it's just cancelling a launch that didn't happen yet.

</comment></comment></comment></comment></comment></comment><comment><USER6> In my perfect world, all software, from nuclear reactor software to Angry Birds, would be powered by a learning neural net that dynamically reshapes the interface as it learns my most common actions and foibles. It would interface directly with my brain so that there would be no chance of my mouse slipping and clicking 'OK' when I meant 'Cancel'.

Oh wait... that would be incredibly time-consuming to implement, would very likely only marginally improve the experience for the majority of users, and would be plagued by edge-case pitfalls.

</comment><comment><USER7> I don't think he's thought through the difficulty of implementing something like this in a non trivial situation ... or at least he doesn't dwell on it in a way that suggests that he has.

I mean, what happens if you delete 3 things, and realize that you want to undo the 1st one?

What happens if the action you take, changes the state of the user's data in a way that is unrecoverable?

I like where he's going, but I'd love to see a more rigorous treatment of the idea.

<comment><USER8> > I mean, what happens if you delete 3 things, and realize that you want to > undo the 1st one?

Just drag the first one out of the trash and leave the other two there.

> What happens if the action you take, changes the state of the user's data in > a way that is unrecoverable?

Store the previous state.

<comment><USER9> "Store the previous state" sounds great in theory. Doesn't always work in practice.

Storing the state of the system may involve a non-trivial amount of both storage and/or time. Or the backing store may not allow for reversing a deletion.

pan69 really said it all: these ideas sound great to designers, but cause nightmares for the programmer that actually has to implement it.

<comment><USER10> > Storing the state of the system may involve a non-trivial amount of both > storage and/or time. Or the backing store may not allow for reversing a > deletion.

That sounds like an excuse. The problem isn't with the undo. It's with the rest of the system, so clearly their are other problems to address first.

<comment><USER9> To put it bluntly, this is an ignorant response. Many systems have constraints beyond the control of the developer. It isn't an _excuse_ to say, for example, that doing save/load from a PS2 memcard is slow and non-trivial; that's just the way it _is_.

A good designer will have a deep understanding of the capabilities and limitations of the medium they are working with. (Think Jonathan Ive and the countless testing they do using all sorts of different construction materials.) A poor designer will come up with a grand idea, but no idea how to implement it, and then blame the programmer if it's impossible to do.

<comment><USER10> I said in another comment that certain cases (like games) are the exception of the rule. But in context with the article, what I say stands. Implementing undo for users is fairly trivial. If it's not, their are other problems that need addressing.

<comment><USER9> You are being hopelessly dogmatic on this point. I'm not sure it's worth belabouring.

<comment><USER10> I'm coming off that way, and I apologise. I wasn't clear. I believe the original article was mostly discussing these factors within the confines of web based applications, which is what my comments here have assumed. Obviously their are exceptions to the rule, and a true undo is not trivial. However, a true undo, and an undo that meets the users needs are different things entirely. While it's unfair for me to suggest that implementing undo is trivial, it's also unfair to assume that implementing undo has to be difficult.

<comment><USER9> I think we have common ground, here. If it's reasonable to put in undo (pragmatically speaking, in terms of money, time, technology, etc.) then I agree the user _is_ better off having it than not.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> How exactly does he propose to undo the closing of an application, as the application developer? It was his canonical example for the entire first half of the post, and then he jumped to trivially undo-able actions _within_ an application when it came time for examples.

How does he feel about the UX tradeoffs of blocking state synchronization to non-volatile storage for every user action? Better or worse then _usually_ not losing data on an unsaved close?

How about the UX of restoring state when you re-open the application? Should the user see the last state every time? The last manually saved state with an option to roll-forward? A huge obnoxious recovery dialog box like OpenOffice when you kill it without saving?

These are the questions the first half of the article setup, not trivially reversible actions within an application.

<comment><USER12> E.g. mobile apps just save their state all the time and revert when you reopen them. Imagine if MS Word didn't ask you before it exits, but instead it asks you when you open it if you want to restore previous state.

<comment><USER11> Right, and both of those involve UX tradeoffs. Which was my point and why I gave them both as options in my initial comment. Having read the first half of the article, I was expecting the second half to address the issues which these various options raise.

Sure you _can_ "Just save state all the time", but doing so involves tradeoffs. Tradeoffs which were not addressed at all in the article.

Your MS Word example is exactly what OpenOffice does when it's been closed without saving. It's really obnoxious. I was hoping to read some UX insight into how to make those kinds of actions less obnoxious without losing their helpful functionality when it's needed.

In general I agree with the core idea of the article. But it lacked useful discussion about the hard UX problems involved, opting instead for some easy in-application examples.

<comment><USER10> > I was hoping to read some UX insight into how to make those kinds of actions > less obnoxious without losing their helpful functionality when it's needed.

An initial ideas I had, fairly trivial in the context of OpenOffice and Word asking to return to your previous state:

If a short period of time has elapsed since closing the application, simply resume state. Short period of time would have to be determine, of course. But it's fair to say that if I close an application and open it again within a minute, I probably want to resume the state. Additional conditions could be added based on testing: didn't save in the last close might be a good indicator.

</comment></comment></comment></comment><comment><USER13> The fundamental problem with this article is that the author brings up a problem, but does not offer a practical real-world solution. The article only pretends to offer a solution.

A List Apart is well known for helpful and practical solutions, down to detailed implementations. This does not introduce anything helpful or practical.

All I got from this article was that undo is better than a confirmation modal. Thanks for stating the obvious.

</comment><comment><USER14> (This post turned into a rant. Sorry about that.)

The OS X shortcut for quitting an application is Cmd+Q. The shortcut for closing a window/tab is Cmd+W. Q and W are adjacent on a standard QWERTY keyboard, which means you sometimes hit Cmd+Q when you meant to hit Cmd+W.

Now hitting Cmd+Q accidentally doesn't matter most of the time. Most applications will ask you if you want to save your changes before you quit. Web browsers will offer to save your session. Also, most applications save their state anyway, so you can relaunch them and continue working. So not a problem, right?

There is one piece of software, though, that refuses to follow this convention. A program that has ignored every HIG and UI convention in the history of all known universes in the name of creating a "better" user experience: Google Chrome.

I didn't complain when they hacked the window system to put tabs on the top of the window. I didn't complain when their shitty multi-process model brought my aging MacBook to its arthritic knees. I didn't complain when they opened PDFs in the browser without asking me first, or when they used filetype associations from my OS instead of letting me redefine them. But this just takes the cake: Google Chrome will quit without a confirmation if you accidentally hit Cmd+Q when you meant Cmd+W. In the last month I've accidentally quit the browser twice, and lost about 50 tabs every time. Surprisingly enough, there is no extension that will fix this behavior. Yes, a couple of hacks exist, but they only work half the time.

I don't expect Google to fix this, though. There are gaping holes in Android that Google has simply ignored or outright refused to fix. I don't expect them to treat Chrome differently.

<comment><USER15> ever tried enabling the "Confirm to Quit" setting in the about:flags page in chrome?!

A little search before ranting would have certainly helped.

<comment><USER14> Thanks for the tip. I didn't know about that page. I still don't see any such setting, though. I'm on Chrome 8.0.552.237. What version are you using?

<comment><USER16> IIRC, it's 9.x and up only.

</comment></comment></comment></comment><comment><USER17> Generally, adding "undo" of some kind doesn't seem like a great idea. Too much complexity to solve a simple problem which virtually never arises in my experience.

I've always found the "«save» «discard changes» «cancel»" dialog to be effective. The outer (easy) "save/cancel" choices are non-destructive. The save dialog is a file selector which can be easily canceled and "cancel" brings you right back into the program which you are free to try quitting again. And face it, when we form habits like this (which, I agree, are natural and to be accepted) we tend not to form them around the longer options. I always scan the "discard..." button semi-consciously before clicking it because the information is long, and specific to the operation (i.e. throwing everything away) so if you do manage to form a habit around "discard changes" it will apply only when that is what you want to do. (You probably won't form a habit about generally clicking the largest button regardless of the situation.)

A solution I do not like is using "clever" dialog window placement or mixing up button orderings. These are just frustrating and do little to solve the problem.

</comment><comment><USER18> "Undo" is one alternative to warning dialogs that users learn to click through mechanically.

There's at least one other: if you're going to implement some irreversible action, find a way to delay it --- like in email programs or file managers where the button labeled "delete" moves things to a trash folder, and the _real_ deletion operation is separately labeled "expunge". Implementing this sort of thing is usually easier than keeping the "real" delete operation, and then implementing a separate "undelete" which works in full generality.

<comment><USER19> That's even worse. Users habituate themselves to the two-step process in exactly the same way, only now they're annoyed because you're forcing them to do extra unnecessary work.

</comment></comment><comment><USER20> This article spends way too much time clearing throat with an explanation of why we need to make our interfaces usable.

<comment><USER21> I think I have to disagree. The habit he's pointing out is so deeply ingrained that we need to pull it to the surface and examine it for a bit before we can talk about it coherently.

<comment><USER20> Agreed, but I don't think those are necessarily the kind of people in his audience -- reading Hacker News and articles on A List Apart, I feel like one can assume "make things usable" is a principle on which we can all agree.

</comment></comment></comment><comment><USER22> If your software tries to anticipate that you _might_ want to not-close when you told it to close, you end up with the opposite complaint: it takes too long for anything to happen.

I'd be willing to bet that there would be _far_ more complaints that your program takes a minute longer to shut down than that they told it to quit when they didn't want it to quit. I'm a _huge_ believer in software that people can use, and love trying to make things totally foolproof for as many people as possible, but I also believe that to truly be _useful_ on a computer you _must_ learn some of the ground rules. Like anywhere else in life. The trick then becomes teaching your users without them realizing or fighting it, not trying to predict the inherently un-predictable (ie, the immediate whims of anyone and everyone).

</comment><comment><USER23> Predicting user behavior is a fruitless time-consuming task.

I get the gmail example... but the quitting example?

How are you supposed to know that _this time_ they really meant to quit and didn't just slip and click the wrong button?

This is why I hate GUIs. I'm too clumsy with a mouse to trust it. How many times have I opened the wrong application from an applications menu and had to wait for it to startup only to shut it down right away? How many times did I close the application I was using by accident and have to open it again?

I get a lower error rate on a keyboard using a tiled window manager.

So... should I code a new feature, fix a broken one, or spend time trying to predict what mistake (or intentional action) you are going to make next?

Priorities...

</comment><comment><USER24> Similar to keyboard accessibility, undo is one of those things you should only consider if you don't have any less time consuming features that you should implement.

The easier workaround to the "oops, I didn't mean to do that" problem is to make it harder or awkward to do it in the first place - e.g. turn reset buttons into smaller, less prominent links, don't put delete buttons right next to edit buttons, don't cram unrelated next-step actions together (e.g. "send email" and "add attachment" shouldn't be right beside each other), etc

</comment><comment><USER25> it's surprising to me that so far, no one has pointed out that this sort of user behaviour is A Bad Thing. while Undo is definitely important and desirable, a user base that ignores attempts to communicate with them is not. i don't know if the issue is that warnings are the wrong way to communicate, or if it's that we haven't done our jobs on user education, but the fact that we have somehow trained the average Joe to just click "ok" without reading is indicative of a larger problem than irreversible actions.

<comment><USER26> Dialogs like that should be reserved for important, irreversible changes but instead are used everywhere. They're no longer read and solely seen as an interruption to the program flow.

Always providing undo, or a delayed action without interrupting what the user is doing eliminates the need to retrain users.

</comment></comment><comment><USER27> But when I close a program, most of the time I want it to go away and go away quickly. If the program hangs for a few seconds while it saves data that I've already told it I don't want on the off chance that I decide I really do want to restore it later, then I am likely to get annoyed with it to an extent that I'll stop using that program and never find out what a useful feature that undo functionality was.

</comment><comment><USER28> There is a technique that is used in some applications (Windows) that worked really well, at least with my mind.

Most of the time, the "Yes" button is in the left. I have the habit to click on the left. Some application inverse the position. When the position is inversed, my mind stops, because something is wrong. And yes, I read the message and select the appropriate button.</comment>


Ask HN: Looking for a startup/project idea with Bitcoin - <AUTHOR>

The best startup ideas are those born from solutions to real problems that people have.  Sitting around thinking of ideas isn't a good way to start a business.
However, I'm a kind of strange person, because I don't have many problems, and the problems that I do have aren't really solvable anyways.
Bitcoin, I think, is on the rise.  I realize not everyone thinks this, but it's something that I think and something I would be willing to invest some time into this summer as a side-project.
I'm trying to imagine what problems other people have involving the use of Bitcoins, but it isn't going so well.  So if you use Bitcoin, and have problems relating to its usage, let me know what they are!  I'm sure there's many potential markets, but I can't seem to think of one I could easily jump into (particularly as a side project).  Any ideas HN? <comment><USER2> Security (e.g. theft resistance) and UX are pretty poor right now.

</comment><comment><USER3> amazon just closed theirs. there might be opportunity there

</comment><comment><USER4> Bitcoin has two serious problems, first it is too hard to common people understand.

Second, it is too hard for common people to buy and sell.

Bitcoin is perfect to you create a cheaper exchange and remittance company, like Western union. Pull a WU using bitcoin as backend and get bloody rich.</comment>


Twitter's Patent Strategy: Don't bother - <AUTHOR> http://www.bnet.com/blog/technology-business/twitter-8217s-patent-strategy-don-8217t-bother/6091

<comment><AUTHOR> "I have never seen a software invention that is foundational in that way. Much more often, I see cases where a naïve patent examiner is hoodwinked into approving a patent on the software equivalent of the word "the" and when the patent later falls into the hand of a troll, it becomes the platform to systematically extort as broad a segment of the market as they can."

I wonder what the US Patent Office thinks of all this?</comment>


Ask HN: Where can I learn more about Random Forests? - <AUTHOR>

After reading this http://strataconf.com/strata2012/public/schedule/detail/22658 I am interested in learning/understanding what random forests or ensembles of decision trees are. Can someone please recommend suitable resources? Thanks <comment><USER2> There's always the original paper <http://oz.berkeley.edu/users/breiman/randomforest2001.pdf>

</comment><comment><USER3> Chapter 15 of [http://www.stanford.edu/~hastie/local.ftp/Springer/ESLII_pri...](http://www.stanford.edu/~hastie/local.ftp/Springer/ESLII_print5.pdf)

<comment><AUTHOR> Great, thanks</comment></comment>


Show HN: c - <AUTHOR> https://github.com/Jonovono/C

<comment><USER2> Comments for your C learning:

        #include <stdbool.h>

is better than

        typedef int bool;
        #define true 1
        #define false 0

Always, always, surround your if and else clauses with brackets. There are plenty of ways leaving them naked will screw you over. This goes for any language.

This is terrifying, and broken:

        char * s = malloc(snprintf(NULL, 0, "%s/%s", cwd, argv[1]) + 1);
        sprintf(s, "%s/%s", cwd, argv[1]);

Passing NULL to snprintf, first of all, should be a huge red flag for you. If it's not, train yourself to recognize it. I realize what you're trying to do, but it relies on non-portable behavior. In particular, from the manual:

        The glibc implementation of the functions snprintf() and vsnprintf() conforms
        to the C99 standard, that is, behaves as described above, since glibc version
        2.1.  Until glibc 2.0.6 they would return -1 when the output was truncated.

So until glibc 2.0.6, your program would be allocating 0 and then sprintfing into it. Always be careful when you read the manual, to read everything. And even then, program defensively, and train yourself to watch for errors like this one. In this case, passing NULL as the destination argument was an immediate no-no.

In this function, you really should be checking errno (for ENOENT). stat(2) can fail for all sorts of reasons, one of them is that the entry is not there.

        bool dirOrFileExists(const char dir[]) {
    	struct stat st;
    	if (stat(dir, &st) == 0) {
    		return true;
    	}
    	else {
    		return false;
    	}
        }

Same for this loop, check errno to make sure the function's failing for the reason you think it should.

        while((entry = readdir(mydir)))

Here, you have something a little messy:

        int fileOrDirectory(const char path[]) {
    	struct stat s;

    	if (stat(path, &s) == 0) {
    		if (s.st_mode & S_IFDIR) {
    			// Is a directory
    			return 0;
    		} else if (s.st_mode & S_IFREG) {
    			// Is a file
    			return 1;
    		} else {
    			// Something else
    			return -1;
    		}
    	}
    	else {
    		// Error
    		printf("Error occurred\n");
    	}
        }

First of all, returning values only you know about is bound for destruction. You should define an enum if you want a function to return specific states. Better yet, just do these checks in the function that would normally call this. It's not so bad usually, and you're probably calling stat(2) more than you should. It's a syscall, and those can be expensive. But more importantly, you have a branch where all you do is print something (to stdout, not stderr as you should), and then just return nothing! If you hit an error state, you need to either propagate that error up and handle it in the caller, or crash immediately. Don't leave your program in a garbage state and keep going. A compiler should have warned you about this (not having a return value in one branch). Turn on -Werror and at least -Wall. And fix your warnings, don't try to suppress them.

You should use fscanf(3) instead of this:

        while (1) {
    	ch = fgetc(fp);
    	newch[i] = ch;
    	if (ch == EOF) {
    		newch[i] = '\0';
    		break;
    	}
    	i++;
        }

That's all for now, I gotta go. Good luck!

<comment><USER3> > So until glibc 2.0.6, your program would be allocating 0 and then sprintfing > into it.

glibc 2.0.6 was released in 1997. I do not think it is reasonable to ask that applications accommodate bugs in libc that have been fixed for 15 years. If someone was actually using a system that old, their system will have so many unpatched vulnerabilities that this will be the least of their problems. And it's highly unlikely that every such bug is documented in the manpages anyway.

<comment><USER4> glibc is not the only libc in existence. It _is_ reasonable to ask that applications support systems other than those developed by GNU.

<comment><USER5> Supporting implementations that do not conform to the language standard might be very important to you or it might not. I hardly think it's a moral imperative.

</comment></comment></comment></comment><comment><USER6>
        And those on Mac should be able to use:

        $ brew install c

Wow, uh, didn't it strike you that this might be a bad idea?

<comment><USER7> As far as I can tell, this program is not included in Homebrew.

<comment><AUTHOR> hmm. It should be. You may just have to run brew update? It wasn't added very long ago so you may not see it if brew has not been updated. If it still doesn't work then not sure.

<comment><USER8> Are you sure you committed it to the homebrew repository on github? Your github page doesn't show any activity that indicates you've forked the homebrew repo or created a pull request in the past 14 days (since you made the "c" repo).

Even so, based on the general rules for homebrew inclusion they would reject the formula because:

1\. I don't think they like names that have the potential to conflict with others ("c" is in that category). The shortest name I see in their repo is two chars.

2\. Typically they only want widely used formulas ("We generally frown on authors submitting their own work unless it is suitably notable." [1]).

[1] <https://github.com/mxcl/homebrew/wiki/Acceptable-Formula>

<comment><AUTHOR> hmm interesting. I just followed the instructions on <http://mxcl.github.com/homebrew/> and when I run brew install c in my terminal it says "Error: c-1.0.0 already installed". But if it is not a formula they would want then I guess I should not be too worried.

<comment><USER8> That just means you have a local formula that knows how to build and install c, but you have not shared it with the community so no one else will have access to the formula. You'd need to fork, push to your fork, and create a pull request to the main homebrew repo to try for inclusion.

Also, it is only my hunch that they wouldn't accept the formula--you can still try. I'd still rename the project to be more descriptive (dir-c?) as there are only two homebrew formulae that have single char names (R, which has been around since 1993 and Z, which I'm surprised got included).

<comment><AUTHOR> Ahhh, makes sense. Thanks. I'll fix it up and maybe try submitting it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Terrible, terrible name.

<comment><USER10> i agree that no program should have 1 character name, but what do you currently alias 'c' to?

<comment><USER11> clear screen

<comment><USER4> There is no reason to use clear during a terminal session. ^L (Ctrl-L) does this for you in one key press, without needing to clear your input or fill your history.

<comment><USER12> > There is no reason to use clear during a terminal session. ^L (Ctrl-L) does > this for you in one key press, without needing to clear your input or fill > your history.

Isn't this based on the assumption that one's shell explicitly supports ^L or has editline/readline support?

</comment></comment></comment></comment></comment><comment><USER13>
        if (getcwd(cwd, sizeof(cwd)) != NULL)
            ;
        else
            perror("getcwd() error");

Is that common? What's the advantages over the below?

        if (... == NULL) {
            perror(...);
        }

<comment><USER14> No, it's not common. This is not idiomatic C code (not that that's an intrinsic problem).

</comment></comment><comment><USER15> I would rename it to something else and just alias it to 'c'.

</comment><comment><USER16> It may be more appropriate to store the comments in extended attributes rather than in dotfiles: <http://en.wikipedia.org/wiki/Extended_file_attributes>

</comment><comment><USER17> Hidden files are handy for some things, but a README.txt file would be apparent to anybody who comes across the directory, and not just someone who knows that the hidden directory is/may be there.

</comment><comment><USER18> Googling topics on "C" has been tough for me for the past 15 years.

Bonus point for me trying to filter out C++.

</comment><comment><USER15> I'd also like to point out that the Twitter account you link to for contact looks extremely inactive.

<comment><AUTHOR> It is. But I plan to start using it. I just started using twitter and only really plan to use it to share projects I work on or communicate with others!

</comment></comment><comment><USER19> I love this post and the exchange of comments going on here. The OP is just starting to learn C, and to help learn it got started on a project that they found useful, which I think is one of the best ways to learn programming.

The community then responded by posting helpful feedback, much of which demonstrates the idiomatic way of doing things, which is often one of the most difficult things to learn when picking up a new programming language. Other helpful advice is posted on build options and debug tools.

This kind of constructive and useful feedback is great to see.

</comment><comment><USER20> Why did you decide to use autoconf?

</comment><comment><USER21> As a sub-novice C/++ programmer myself, it's awesome to see a program like this being discussed. The source code is relatively short, it's a simple enough implementation, and all the feedback in the comments here is teaching me things I wouldn't necessarily be exposed to in a book.

<comment><AUTHOR> Yeah! I am happy with the feedback. I just made this because I thought it would be useful for me and to help learn C since I just got K&R book. Also, I know people are always looking for open source projects to submit to so this would be perfect to try out as there are most likely (as pointed out in the comments) many things that can be improved!

</comment></comment><comment><USER22> Great idea - I think 'c' should be a shell alias though.

Tagging support would be cool.

<comment><AUTHOR> Thanks!

And yeah, didn't think of that. It would be neat to be able to tag files or directories and then execute a command to see all the directories with that tag and then enter that directory easily. Maybe i'll try adding that to the next version. Can you think of anything else that would be useful?

</comment></comment><comment><USER23> Wouldn't it be better to use Extended file attributes ? <https://gist.github.com/2695264> (actually my first attempt to a bash script)

<comment><USER24> I'd prefer to have all the comments located in a single location (e.g. ~/.comments or ~/Dropbox/comments-<hostname>) rather than litter hidden files all over the place because I could (1) easily back them up, (2) share them (even across different platforms), and (3) allow multiple users to set local and global (shared) comments.

EDIT

Because I was bored: <https://gist.github.com/2697095>

</comment></comment><comment><USER25> 4DOS used to have this. It was especially useful back in the day with the 8.3 DOS filenames, which often weren't very descriptive. It's nice to see this feature return.

</comment><comment><USER26> This is really cool! Thanks for sharing.

<comment><AUTHOR> Thanks! Glad you like it.</comment></comment>


Show HN: The World's First Logging Platform for Swift - <AUTHOR> https://medium.com/swiftybeaver-blog/the-world-s-first-logging-platform-for-swift-25222bec387e#.6kdzm7do7 <comment><USER2> Local logging data for production environments sounds nice. Will give it a try if my beta registration gets accepted.

</comment><comment><AUTHOR> Sebastian here, founder & CEO. Please leave feedback, I am here to discuss!</comment>


Ask HN: How do you get users to try your MVP? - <AUTHOR> <comment><USER2> Really depends.

If it's a B2B product, just keep talking to everyone you know who is a buyer and try to get them to take a shot on you. If the product is far enough along to add value, make sure to charge. If it's not, and you're just looking for feedback, make sure to let them know you'll be charging down the line but right now am looking for quality feedback.

If it's B2C, there's a lot of ways to hustle. From stopping people on college campuses, running some light paid advertising just to get some feedback, posting on product hunt, posting on HN, posting in response to related questions on Quara... etc, etc.

Sometimes meetups and networking are a good way to find early users. Talk about what your product does and hand out your card with a URL on it. Ask them to give it a shot and don't be shy.

Once again, all depends. Without knowing more about the product it's hard to be specific.

</comment><comment><USER3> Your product should already have an "existing" market who hacked something together.

Something social might have a dedicated forum, subreddit, FB group. A game might have a similar mod in another game. A web tool might be in the form of a spreadsheet somewhere.

Find out where those early adopters are and tell them about your product. You should try to charge them as early as possible, as high as possible. The early target market is often willing to pay the most. Lower your price later and reward those early adopters afterwards.

<comment><AUTHOR> Our MVP is general purpose. iPrompted.com helps you make sure the people around you get tasks done! However, maybe we should specialize early to focus on a group. Parents trying to manage kids' and their after school actitives, for example.

Any thoughts, if we specialize for customer acquisition, if we should modify the product too, or keep it general purpose for now?

<comment><USER4> Figure out who your ideal customer is and make sure your product fulfills that customer's needs. Be _really_ specific about that, not just "project manager", but include age, marital status, hobbies, etc so you _really_ get to know this person. You want to be able to know them so intimately that you could conceivably introduce them to a friend at a social gathering.

The point here is to get into the mindset of the users of your product. What are you enabling them to do, how do they want to interact with it, and how much are they willing to pay for the service.

You'll want 2-3 ideal customers to start off with to cover your target market. Once you have an idea of who that is, find them. You already know them well enough to know where they would be found, right?

</comment></comment></comment><comment><USER5> Ofcourse it needs specific promotion channels created based on what the product is about. Firstly a lnading page is to be created explaining why should an user even would invest time to taste the product. Once a landing page is created it has to be shared across forums and communities the prospective users are expected to frequently visit.

</comment><comment><USER6> Start by sharing your link on Show HN.

<comment><AUTHOR> I shared it once and it didn't seem to stick - probably b/c of the title.

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

When some new features are added and we update the homepage, we'll share it again.</comment></comment>