Email Apps Suck - <AUTHOR> https://schneid.io/blog/why-your-email-app-sucks.html <comment><USER2> I will not beat a dead horse with my "mutt is superior because they know the best they cannot do is suck without confessing it" trope, but almost all email clients lack is Maildir.

Even if you are not a technical user, you should respect the fact that proprietary formats will bite you. Look how many this guy alone used. If you use opensource, even, the mbox and mh all email, one giant file paradigm is all nice until it is corrupted.

I wish more clients respected Maildir underneath, or tried to bend the truth on Windows FAT32 and NTFS ad the ; in path names limitation is a pain.

[https://en.wikipedia.org/wiki/Maildir#Filesystem_Compatibili...](https://en.wikipedia.org/wiki/Maildir#Filesystem_Compatibility_Issues)

Sadly even Thunderbird has struggled to re-engineer a Maildir subsystem where it was never intended. Show me any email client devs who had the khutzpah to even dare that.

[https://bugzilla.mozilla.org/show_bug.cgi?id=845952](https://bugzilla.mozilla.org/show_bug.cgi?id=845952)

But you have a lot of safety in spreading it across files, and you can throw dumber full text search at it, shell scripts, and a lot more flexibility over all.

Sadly, some Unixisms will never escape Unix culture. As someone who has watched people screw 10+ years of email in Thunderbird n>1 times, I wish for the love of God everyone would use Maildir in the client, regardless of interface, free or not, et cetera.

<comment><USER3> I don't agree with you. Like with anything else, less abstraction = more performance. Creating a specific/targeted way to index, store and manage email data has its benefits too.

I'd hazard a guess that most proprietary formats are similar to the maildir format. Its just that the individual files are opqaue at the filesystem level. If you create thousands of tiny files then you are hoping that the file system design - which like any other design can only be optimized for specific workloads - can handle it better than a database type format specifically designed for email.

Then again a generic full text search system (which probably won't even know that they're email files) over those thousands of files would have to be better than a targeted design for email data.

You would miss certain optimizations like.. (making one up now) extracting and storing just the email headers in a separate region to speed up indexing and having some indirection built in to lookup that specific email.

<comment><USER4> If a filesystem is a poor match for an email database, I'd appreciate the use of a well-established, open, and documented database format. That is, a format not only your unique email client can understand. Something with an independent manipulation tool. In the perfect case, something that can be interoperably used by several different email clients (not in parallel, of course) and / or third-party indexing / filtering / other processing tools.

SQLite is used in many cases to store smaller things. It's likely not a good fit for a few gigabytes of email with binary attachments, though. I wonder what would be? NoSQL document-storing databases seem to have been created for a purpose like this. Is any of these used by any remotely popular client?

<comment><USER2> Again, shoving everything into one file is mbox, which is a recognized file format (if not database), and it does not help things that much.

I have wondered the Sqlite thing myself beyond my one criticism. If anything, you would love K9 Mail on Android, which does this out of necessity.

And some people have made SQL and noSQL email stores.

[http://nosql.mypopescu.com/post/3083070885/couchdb-as- email-...](http://nosql.mypopescu.com/post/3083070885/couchdb-as-email-store)

[https://www.npmjs.com/package/haraka- nosql](https://www.npmjs.com/package/haraka-nosql)

[http://www.dbmail.org/](http://www.dbmail.org/)

</comment></comment></comment></comment><comment><USER5> No mention of Postbox ([https://www.postbox-inc.com](https://www.postbox- inc.com))? It's based on Thunderbird, but has very good support for conversations and archiving (Gmail-like workflow) even for non-Gmail providers. It also has nice native looking styles for macOS and Windows.

For me, it is one of the best clients... although I use primarily windows and sometimes Linux (where it works fine with wine), so I can't try the macOS-only ones.

<comment><USER2> As a FLOSS supporter, I have been perturbed they charge money and let Thunderbird languish, just like I have been as an individual user all these years. Problem is I don't make a profit off it. Do they give back? I would like to stand corrected if I arrogantly assumed.

</comment></comment><comment><USER6> Mail.app is fine for me... What am I missing in an email client that Mail.app doesn't provide?

<comment><USER7> From the article:

"[...] it's buggy and crashy, it needs to update my email library every few months when I open it (why does my email need a library?), and it lacks any sort of innovative feature set (or even support for things like snoozing)."

<comment><USER8> And yet none of us seem to see those issues.

I can remember mail.app needing to rebuild a mailbox to a new format maybe twice or three times, since probably 2008.

1 person saying "x is buggy and crashes" doesn't mean much without actual descriptions of the problem.

<comment><AUTHOR> I mean, if you like Mail.app, use Mail.app. I'm not here to tell you that you should change how you read your email if you're satisfied with it. I was pithy in the Mail.app section because the article was already shaping up to be quite long and I just sort of assume everyone in the Apple ecosystem has used Mail.app at least a bit and knows its strengths and shortcomings already.

<comment><USER8> > knows its strengths and shortcomings already.

I've used mail.app since I've used OS X, and I wouldn't describe any version I've used as particularly "buggy" or "crashy"

</comment></comment></comment></comment></comment><comment><USER9> For what it's worth, I have been using Outlook for Mac for about a year now and have really enjoyed it. Categorizing emails by folder is, well, what Outlook has always done well and search is surprisingly good.

Maybe I'm the odd one out, but I don't need any glitz and glam in my email client. I just want it to work and show me the email I want to see when I want to see it.

<comment><USER2> It's all fun and games until you mirror the IMAP folder structure (what you sync with server) with local folders, break your Mac, and then import them into a new Mac and have to keep it all straight.

Or you have to make a PST export on a Mac and do it on a PC? Given my job, I am relieved but terrified I have not even had to worry about it. I just looked it up and chuckled. Not a surprise this will screw you.

[http://answers.microsoft.com/en- us/mac/forum/macoffice2011-m...](http://answers.microsoft.com/en- us/mac/forum/macoffice2011-macoutlook/can-i-export-outlook-for-mac-file-into- outlook-for/b505a2cc-6997-47f7-9e87-4ff57e17d97d?auth=1)

Again, I said this before in another thread and stood in the middle of a minor flame. All email clients suck more than mutt.

Do I love mutt? Not so much. But the developers have the serenity to accept that which they cannot change, and that the whole charade blows. (Does a day go by where we do not pounce on those who propose secure email, as a protocol and system? Forget the clients even.) That, and I have low self-esteem and relate to people who poke fun at themselves for sucking a little less since the beginning. [0]

To relate it to a real technical issue. Mutt tries to be as nothing as possible, in terms of feature set and use case, while Outlook/Thunderbird/fat clients try to be everything.

Someone likened Outlook to Emacs (which I love ironically), which I would say is true with a caveat. Something as intimate as correspondence and personal communication programming needs to be powerfully extensible and customizable, and none of the fat clients have good interfaces for that. Not even mutt does easily, and this is the core of the problem.

Show me a world where everyone uses the same ink, pen, and paper to draft dead tree letters in the exactly style and preference and we can find an email that does not suck.

(Hint: there never was one and never will be! Let the downvotes descend upon me!)

[0] [http://www.mutt.org/](http://www.mutt.org/) I pray they never change this beautiful site and its header.

<comment><USER10> Greg Kroah-Hartman told me on LKML: "try mutt, you won't regret". I did try, and I don't regret indeed - I migrated to it :)

<comment><USER2> Well, certainly he would agree. MS devs who needed to patch the Linux kernel could not even get Outlook to do git-patch properly, as the old Linus anecdote went.

[http://stackoverflow.com/questions/9814276/git-patch-file- at...](http://stackoverflow.com/questions/9814276/git-patch-file-attached-to- outlook-email-gets-modified-by-it)

</comment></comment></comment></comment><comment><USER11> A friend uses MailMate[0]. It seems to be a bit pricey (50 USD), but considering it shot the fundraising campaign for the next release by 170%[1], I'm sure there are fans here.

[0]: [https://freron.com/](https://freron.com/)

[1]: [https://www.indiegogo.com/projects/mailmate-2-0-the-email- cl...](https://www.indiegogo.com/projects/mailmate-2-0-the-email-client-for- the-rest-of-us#/)

<comment><USER12> I use this app every day and never heard about the campaign. I guess their marking wasn't really top notch, which even makes the shot even more impressing.

</comment></comment><comment><USER13> > My kingdom for a unified inbox and a Mac app. I would never leave Google > Inbox again. It's almost perfect – stable, amazing Google-powered search, > snoozing by time and location, all the bells and whistles.

I've used Fluid.app[1] to create 'standalone applications' of webpages. It's always worked great, and is almost what the OP is asking for for 'inbox'.

[1][http://fluidapp.com/](http://fluidapp.com/)

<comment><USER14> There's also Wmail[1], which I've been using for the past few months. It's essentially just an Electron wrapper around the web app, with all that entails. It's worked fairly well for me, though, and enables easier inbox switching.

[1]: [http://thomas101.github.io/wmail/](http://thomas101.github.io/wmail/)

<comment><AUTHOR> Huh. Thanks for posting this, I actually hadn't heard of it. It avoids some of my complaints about Boxy[1]; I'll have to give it a try.

[1]: [http://www.boxyapp.co/](http://www.boxyapp.co/)

<comment><USER14> Great, I hope it works for you!

</comment></comment></comment></comment><comment><USER15> I feel Email has evolved organically since eons and what we have today is like the way humans have evolved over millions of years. While the standard look and feel remains the same pretty much, it has become one's identity for receiving messages on the web of all forms and types, of all needs from commerce to friends to business.

It is also a database of all our past communications. Apart that mobile adds further complexity. It is likely that any one answer for it can miss out things in the enthusiasm to bring out a simpler version or in the over- enthusiasm to make it complicated than what it should.

It is hard to quantify the "needs" as it caters to a wide audience as a one stop answer. Slack like app can take away the professional side, or a Facebook can take away the social side, but no matter what, you still need a email as it serves as the identity to reach out for the Web applications.

So whoever is building a new email App needs to keep all of this in mind and come out with something nifty yet powerful.

</comment><comment><USER16> This is off topic, but the typeface in that article looks terrible in Firefox on Windows 8.1. All of the lower case e's are missing the horizontal line:

[http://imgur.com/ShUxi15](http://imgur.com/ShUxi15)

Does it look okay in your browser?

<comment><AUTHOR> Hmmm that's not great. It looks fine for me in Firefox/Chrome on Mac. The base font is a Google webfont though (Merriweather) and sometimes I see those have random rendering problems for whatever reason.

<comment><USER17> I use palemoon. They are right now extremely upset that Google fonts is buggy, doesn't comply to standards, and Google not only refuses to fix it, but keep making changes that break palemoon workarounds. the project lead has seemly in the past months working more to create google font workarounds than on the rest of the browser.

<comment><AUTHOR> This doesn't really surprise me. I should really download the ttf's and such and font-face it myself. My blog is built on a Jekyll theme that I lightly modified and as I recall didn't mess with the fonts at all.

</comment></comment></comment></comment><comment><USER12> I tried all mentioned in the post and comments. I am currently using MailMate ([https://freron.com/](https://freron.com/)) It is still lacking, but does most of the things I personally need.

</comment><comment><USER18> I've used Gmail since 2004, when they had invites and everyone wanted one. I use Outlook for iOS at work and think it's great, although there's issues getting signatures to transfer when your company uses Sharepoint.

Email is a non issue for most people because most people just use a web browser and a mobile app. For the record, I wasn't impressed with Outlook for the Mac.

</comment><comment><USER19> On the other hand iOS doesn't really support the use of alternatives to the built-in Mail app. I was trying Google Inbox in a new iPad where I didn't configure the built-in Mail, but then I wanted to mail a link to a web page from Safari and I couldn't. It seems is not possible to tell iOS or Safari that I want my emails to be sent through Inbox :(

<comment><USER20> > I was trying Google Inbox in a new iPad where I didn't configure the built- > in Mail, but then I wanted to mail a link to a web page from Safari and I > couldn't.

Sure you can – tap on the share button, then scroll to the Gmail icon and tap on it. A new email will be started in the Gmail application containing the page title and URL.

If you don't see the Gmail icon straight away, scroll to the end of the list, and tap on More… to add Gmail to the list.

</comment></comment><comment><USER21> Every time I experiment with a new e-mail client, I return fairly quickly to Mail.app.

I like Mail.app.

Maybe that's a personal deficiency.

<comment><USER22> Give me a decent way to digg out and manage attachments and I'd be over the moon.

<comment><USER23> As far as digging out attachments across multiple messages in Mail.app (described here[0]):

\- Select a group of messages (could be Command-A in a smart folder, for example).

\- Then choose "File -> Save Attachments..."

\- Finally, choose or create a directory where you'd like the attachments to reside.

As for managing them, I would imagine that would vary for each person in how they like to work and what they seek to accomplish.

0 - [http://email.about.com/od/macosxmailtips/qt/How-to-Save- All-...](http://email.about.com/od/macosxmailtips/qt/How-to-Save-All- Attachments-from-Multiple-Emails-Fast-in-OS-X-Mail.htm)

</comment></comment></comment><comment><USER24> I tried most of the ones on the list. I'm currently using [Spark]([https://sparkmailapp.com/](https://sparkmailapp.com/)) not as buggy as Airmail, mailbox many of the features I liked from both.

<comment><AUTHOR> I've tried Spark too; I kind've slotted it under the "others" in the "needs Mac app" category. I didn't really feel it did anything better than EasilyDo Mail (which has more personal assistant type features) or Boxer (which is more customizable) if I was going to go for an app on iOS only.

</comment></comment><comment><USER25> While I also think email apps are not great, especially when trying to find a unified experience with macOS and iOS, I think CloudMagic for iOS is pretty good and Nylas N1 for macOS is also very good. maybe if N1 comes to iOS..

<comment><USER26> Nylas is pretty bug-ridden at this point, and they have committed to a pretty crazy pricing model ($7 per month). It's hard to get behind it.

<comment><AUTHOR> > they have committed to a pretty crazy pricing model ($7 per month)

I actually sort of prefer email apps with this sort of pricing model; it makes me think they're trying to be financially sustainable rather than just getting acquihired in a year or two. I would definitely pay $7/mo for the right email app. (But I don't know if N1 is it; I added N1 and some other Mac-only email apps to the original article.)

</comment></comment></comment><comment><USER27> The problem is the economics of non-SAS applications: getting an email client right is hard and the free alternatives are good enough for plebe-tier users. $4.99 a one-time pop isn't going to get it done.

</comment><comment><USER28> I'm pretty happy...

OSX: Mail.app does the job very well, little bloat.

Linux: I like Geary. Lean but not as good as Mail.app though

Windows: Mailbird. Light but also not as good as Mail.app

For Business I have Outlook.

None is perfect but all do what I need in the corresponding context.

</comment><comment><USER29> Here's another new one to try [http://dejalu.me/](http://dejalu.me/) (from one of the creators of Sparrow)

</comment><comment><USER30> Can one use k9 with Gmail? I've never tried.

<comment><USER2> Yes. I do for Google Apps now for years. Why I love it, server-side IMAP search, which means you use server-side search not the Gmail way, but as part of the IMAP protocol.

Is it as fast and perfect? No. But I do not have to store so much damn email or increase the efficiency of Gmail's real-time tracking of my butt all over the world.

</comment></comment><comment><USER31> Geary is actually quite a nice e-mail client to use if you use GNOME or something close to GNOME (Unity, Cinnamon, Pantheon).

</comment><comment><USER32> I just use gmail, it seems ok to me.

</comment><comment><USER33> just use mail.app

</comment><comment><USER34> email by definition sucks

<comment><USER35> Why? I haven't seen a single alternative, ever, that comes close to providing the flexibility, versatility or openness of email. Despite the ability to be pretty much what ever you want it to be, it's still a remarkable simple protocol.

Really the only thing email is lacking is good end-to-end encryption.

People suck at writing emails though. I partially blame Outlook, but also the unwillingness to wanting to read and write well. So much of the hassle of email has to do with volume and the sender not re-reading their writing before hitting send.

<comment><USER36> If you're looking for a modern integration with PGP, you might consider checking out the recent update of N1. More on that here: [https://nylas.com/blog/pgp](https://nylas.com/blog/pgp) (I work at Nylas.)</comment></comment></comment>


Now We Can Rig Up Twitter "Groups" - <AUTHOR> http://lauraminer.com/post/107337770/now-we-can-rig-up-twitter-groups <comment><USER2> I do something similar to this for a group that I'm involved in. We have a registered twitter account. This account follows all of the group members. If a member direct messages the group account, this message is rebroadcast.

This works regardless of which way twitter decides to go with their settings.

The only downside is that unlike the solution mentioned in the article, our solution requires a cron job to poll twitter for any DMs to the group account.

</comment><comment><USER3> Or, you could use a service that supports this kind of functionality and not run the risk of having to turn lemons into lemonade again when twitter makes a change that shuts out the small percentage of users who are working around deficiencies in their system.

</comment><comment><USER4> Sending message to specific people or groups? Im pretty sure this is called Instant Messenger.

<comment><USER5> Sending a message to a persistant, searchable noticeboard of messages by topic? I'm pretty sure this is called Twitter.

<comment><USER6> Forums? Email? (Gmail does have pretty good search) Actually, even factoring in search, unless your group ends up having a _huge_ amount of messages a basic text search should be enough. In that case, IM should do fine.</comment></comment></comment>


Windows 8 tablet freezes in Microsoft keynote demo - <AUTHOR> http://www.theregister.co.uk/2012/03/19/microsoft_demo_trouble/

<comment><USER2> So, uhm, I'm not a fan of Windows 8, but why exactly is this in any way a big deal?

It's not finished. It will break. You have a backup device (or two) ready when you present it in front of a crowd.

Apple does it (I remember keynotes where they had to switch to their backup Mac), Microsoft does it, everyone does it.

<comment><USER3> I'm an Apple fan, and I agree, stuff breaks. This is a non-news story.

</comment></comment><comment><USER4> "We're essentially enabling you to break the electronic concrete of the past and move your business to the future, by connecting your people, by enabling your people to communicate and collaborate in real time, and by taking all the wealth of communication, collaboration, and social networking opportunities, and apply those into very specific business scenarios."

Now that sounds good! What would be even better, is if you build the whole thing on web-standards ;-)

</comment><comment><USER5> "Luckily, there was a second tablet available on stage that was working, so the changes for the hypothetical app were successfully written to the pretend database, and all was well."

That's not luck. I would think that a backup is almost always a must for any presentation.

</comment><comment><USER6> "Windows 8, which Microsoft touts as the first operating system to run across multiple devices"

Doesn't Linux already do this? Or does it not count, as it is only a kernel?

<comment><USER7> It's marketing speak, and no one of importance to Microsoft is going to call them on it. I would imagine their line of thinking would be Ubuntu doesn't ship on tablets or phones. OSX doesn't ship on tablets or phones. What they run are stripped down and re-imagined versions of the parent OS.

Approval of the magnitude of this claim is up to the reader.

<comment><USER8> Still, Linux runs on just about everything between a 68000 and an IBM mainframe. As does NetBSD.

I find the propensity to lie disturbing.

<comment><USER7> This could get into deep discussions about what is an OS (versus a kernel), what constitutes the "same" OS (versus a modified version of the OS) and even what can be put in the same class as Windows.

I think what Microsoft is getting at is, OSX and Ubuntu don't run the same code on their mobile devices. Windows 8 will. It's marketing, and NetBSD doesn't even cross their mind.

<comment><USER8> It all depends on where is the line defining what's an OS. A Linux machine doesn't need X to be a Linux machine - Unix machines have been serving terminals for decades. So much, in fact, I joke that, in order to be a serious computer, one has to have no monitor, keyboard and mouse ports - if you really need a physical console, a serial port will do. So, I've seen Linux running programs on a very broad selection of hardware, from ARM to zSeries (68020+ has always been more of a curiosity, albeit there were serious Unix machines using them).

Really, it's marketing. Not truth.

</comment></comment></comment></comment></comment><comment><USER9> Has anyone figured out why exactly Microsoft makes such buggy software? Is it a company culture thing?

<comment><USER7> Massive company. Massive software projects. Massive amount of end users. Massive amount of use cases for their software. Time restrictions on their development.

The wording you used makes it sound like they make buggy software on purpose, which makes no sense.

<comment><USER9> Oh, sorry. Yeah I meant why they end up producing buggy software when competitors like Apple have proven it's possible to both ship _and_ make stable software. And Apple does both hardware and software.

<comment><USER10> I seem to recall an iOS presentation where people were told to turn off their wifi or Jobsy wouldn't continue...

<comment><USER11> Which had absolutely nothing to do with buggy software.

</comment></comment></comment></comment></comment><comment><USER12> Lol, maybe Microsoft hasn't changed. I like windows on desktop, but I love android on tablet. I guess I'll sticking with android for now.

<comment><USER7> Android never freezes or crashes. Come to think of it, neither does iOS or OSX, or Linux.

Oh wait, almost all software crashes.

<comment><USER13> No iOS product would crap itself like that during a keynote demo. Sure, I've had them panic and reboot on me in real world use, but Apple takes the time to make sure the demo runs smoothly.

When you can't or don't make your demo run smoothly during a high visibility presentation, it makes you look careless, either in the development of your product or of your demo. In either case, it reeks of incompetence. This might not be a justified impression (accidents happen), but that's how life is.

<comment><USER14> No iOS product comes close to the complexity of a Microsoft Dynamics product either, nor are developers at Apple expected to develop and demo such complex products on pre-beta operating systems created by a different group.

<comment><USER13> You're right about apple developers not being expected to demo apps on pre- beta software. Because doing that makes your software look shitty.

Don't do that. Or script out the demo really carefully.

PR exists to make the products look good.

</comment></comment></comment></comment></comment><comment><USER15> Classic Microsoft :)</comment>


Show HN: Node.js Web CRUD Abstraction for Express and MongoDB - <AUTHOR> https://github.com/danielrohers/web-crud <comment><USER2> I built something similar because I was disappointed with what was already out there:

[https://github.com/lucybot/jammin](https://github.com/lucybot/jammin)

I came across another CRUD package recently that seemed to have a good amount of momentum, but can't seem to find it now...</comment>


Ask YC: graduate courses - <AUTHOR>

Which are the Computer science graduate courses mostly applied for by students.What does AI consist of?I wanted to know which ones i find interesting? are there any related to the specially the internet? <comment><USER2> Have you picked a general focus of what you want to learn? It seems to me that it's less important which specific technologies you take classes in (for the most part) than determining which level you you like to work on. I think of it similar to programming languages: some people prefer "high-level" work, like application / UI design, or multimedia or image processing. "Low level" courses are going to be more about systems design, working with distributed / embedded systems, etc. It gets easier to choose once you've made that distinction.

You're asking about grad courses, so which CS classes have you already taken?

</comment><comment><USER3> I have taken an undergraduate course called "Introduction to AI", and it so far deals with topics such as search, knowledge representation, game playing and so on...kind of a overview of most of the topics the prof said. At my university(San Jose State Uni), about 40 students have taken the xml and web intelligence course, which seems to be towards data mining and ontology. Also keep an eye out for vague topics, and go and speak to the prof and find out what he intends to cover during that semester.</comment>


The Importance of Whimsy in Learning to Program - <AUTHOR> http://www.natescottwest.com/blog/2013/09/21/the-importance-of-whimsy-in-learning-to-program/ <comment><USER2> This is something we've been thinking a lot about while working on the Khan Academy programming curriculum. We want the lessons and challenges to be fun, and to actually product something that the user can identify with (very often, an animal or food :-), but we also don't want to sacrifice teaching the concept in a clear way. For example, today we debated how to do our intro to loops tutorial, and we found that the clearest example wasn't nearly as fun as other possible ones - but it _was_ the most clear, and for something like loops, we want to be really really clear when the student is first wrapping their head around it. We've written up some of our teaching thoughts here, but I'm sure we'll keep evolving them as we learn from our learners: [http://cs- blog.khanacademy.org/2013/08/our-design-guidelines...](http://cs- blog.khanacademy.org/2013/08/our-design-guidelines-for-teaching.html)

Thanks for sharing your experience!

<comment><AUTHOR> Thanks for commenting. I would definitely say clarity comes before whimsy. That was part of my frustration back in college was the complete lack of clarity. Recursion was taught in about five minutes like this: "A recursive function is a function that calls itself until it reaches a terminating condition..." and then it was never explained again. No one got the recursion questions right on the end of unit quiz except the kids who had been programming since they were young. It wasn't until about 5 years later that I finally wrapped my head around recursion myself.

I really appreciate your comment. Education is really important to me and Kahn Academy has been a huge inspiration to me.

<comment><USER3> I understand and agree with your point, but not so much with your example. Recursion strikes me as a concept that is simple to explain (and the definition you gave is actually quite good) and hard to master, as in it really sets in when you practice it enough. I think the fault in how you were taught is not in the lack of clarity but that you should have been given a shitload of exercises on the topic.

<comment><AUTHOR> Yeah fair enough. I wasn't really critiquing the explanation so much as that was the end of it. They also made us hand write assignments and quizzes thinking it would somehow keep us from cheating. It's been several years now so I wouldn't be able to accurately remember but I _feel_ like most of what we did with recursion from that point on was on paper and we were pretty much left to our own devices to figure out recursion...

</comment></comment></comment></comment><comment><USER4> Personally I can't stand "whimsical" tutorials to programming. Most of the time the author's attempts at humor just make me cringe. why's Ruby book is probably the worst offender. Couldn't make it past the first chapter.

<comment><USER5> This. And whimsical error pages, documentation, etc, are just showing the lack of writing skills behind. Google is full of those, and most of the time the allusion cannot be understood by those who are not sharing the same culture. That's utterly annoying. Did SICP writers feel the need to embellish their prose with eye winks?

<comment><USER6> _Did SICP writers feel the need to embellish their prose with eye winks?_

Yes? [http://en.wikipedia.org/wiki/Structure_and_Interpretation_of...](http://en.wikipedia.org/wiki/Structure_and_Interpretation_of_Computer_Programs#Characters)

<comment><USER5> Well, maybe my understanding of "whimsical" is wrong but it do not feel the same way to me. "Alyssa P. Hacker" is a poor pun that do not try to look clever.

</comment></comment></comment></comment><comment><USER7> Two such whimsical books are Learn You A Haskell For Great Good and Learn You Some Erlang For Great Good.

[http://learnyouahaskell.com/](http://learnyouahaskell.com/)

[http://learnyousomeerlang.com/](http://learnyousomeerlang.com/)

For example, one of my favorite chapters in there is about distributed programming. It is told with an example of 2 camps of survivors of zombie apocalypse trying communicate with each other.

[http://learnyousomeerlang.com/distribunomicon#alone-in- the-d...](http://learnyousomeerlang.com/distribunomicon#alone-in-the-dark)

You can tell Fred's (author) passion and enthusiasm from his style of writing.

<comment><AUTHOR> I've worked through some of it! That's exactly the kind of stuff I'm talking about.

My Erlang learning has been a little spotty so far but I'm going to Erlang Camp in Nashville next month to fill in some holes. I've been playing a lot with Elixir and that's been helping too.

</comment></comment><comment><USER8> I'm on board with this, but my background in learning to code was a little different. My Java instructor (first formal programming class, but not first language) took the approach that teaching to code should imitate real things. So, our first few programs were around modeling real things in the world. We wrote a program to figure out why 7 was the most common number in gambling by rolling two virtual dice several thousand times and plotting the results. We explored the Birthday Paradox by randomly generating numbers between 1 and 365 until we hit a duplicate, and repeated that several times to prove the range. It was a great approach, and one that stuck with me.

<comment><AUTHOR> That's awesome. If I had had a similar experience I probably would have been all in much earlier in my life.

</comment></comment><comment><USER9> use C++ to teach programming should be considered a crime. You simply don't give people who just got their driver license a truck to drive, not only will it suck out all the fun but also likely get the person killed in the process.

<comment><USER10> Oh, pish posh. Lots of people started with C++ and they're just fine. Sure, we had our share of segfaults and memory leaks, but it's better to learn what it is and how to prevent it early on rather than hide from it forever.

<comment><USER11> True, but starting from C makes more sense. C++ would be fine as a second language.

<comment><USER10> Actually, I agree with that.

</comment></comment></comment></comment><comment><USER12> Yeah, I think the short lesson here is that you really have to build something to learn to code, otherwise it's just not engaging. Not until you've built that first thing. Then it's like crack.

<comment><USER13> I've always been told this with mathematics. You won't really "get" it until you've done enough exercises, especially the more abstract you get (I'm looking at you, Category Theory proofs.) I don't know why it took me this long to apply the same principle to learning new programming languages. I always thought, well if I just start on this monolithic hobby project, I'll learn the language after having read xyz. Well, turns out, it's a lot more entertaining and faster for me to just blow through a bunch of medium-sized throw-away examples for a while first. That monolithic hobby project comes along much easier with less of a "I give up rate" afterwards, for me anyway..

<comment><AUTHOR> Absolutely. I kinda wish I had written more in this post about context... I had a similar frustration with math even though we did many, many more exercises... Some kind of practical real world context really helps.

If you just naturally love math and think that way you can often see the context yourself anyway (or at least I did) but your average word problem at school isn't much of a real world context. When the hell will I sit around with my friends and say "Hey Jennifer, lets get that volume of beer in that cup. That sounds like a good time".

</comment></comment></comment><comment><USER14> "...just think what naming an XML parser "Nikogiri" instead of "XML Parser" could do? Imagine if the C++ exercise above had just been FizzBang. That would have been tons more engaging." Tons more cringe-worthy, more like. We're not writing children's books here. The times I've enjoyed programming have been when I've worked with languages/libraries/tools that are intuitive/reliable/powerful and allow me to get shit done with minimum distraction by the irrelevant.

For instance, would python's "requests" library be more engaging if it was called ChittyChittyBangBang or YourMommaSoFat something else equally infantile? For me it would be _less_ engaging. Names like this can also make people take a piece of software less seriously than they should, and harder to find because they are less descriptive.

<comment><AUTHOR> I think that's a fair point. Guerrilla pretty much said what I would say... most of my production code just uses plain Jane clear names like "user" or a variable named "name_array".

The bigger message is to communicate that programming is fun to people who want to learn. I think you're average working programmer out there probably is... but my "educational" experience was not that way. It wasn't really about using whimsical names either, it was because it was taught so passionless and half-assed. I really am just saying this works for me and I see a lot of kids coming into Ruby and to Rails really getting a kick out of the small stuff... It's passion and it's details that are important... whimsy is optional.

</comment></comment><comment><USER15> There is a movement to "contextualize" introductory programming courses (and other CS courses) by teaching core concepts in the context of a problem domain that is meaningful for the students. Media computation is one such effort: [http://coweb.cc.gatech.edu/mediaComp- teach](http://coweb.cc.gatech.edu/mediaComp-teach)

<comment><USER16> That ties in a bit with Seymour Papert's idea of teaching programming as a medium of expression. One part is having a meaningful domain, though an equally important second part is encouraging exploration and tinkering, rather than plowing through rote exercises.

Here's a passage from an old journal article I've long liked: [http://www.kmjn.org/snippets/papert85_logovisions.html](http://www.kmjn.org/snippets/papert85_logovisions.html)

</comment></comment><comment><USER17> Thanks for this. I've had a similar experience with learning how to program, having taken courses and doing examples which have had no clear purposes.

I'm 22 now and finally feel like I'm headed in the right direction with the help of BlueJ and a book called "Objects First with Java". It may not be 'whimsy', but I appreciate the fact that it helps me visualize the concepts of OOP.

I recognize the feeling of insatiability, as I keep wanting to learn more and more now, all thanks to brilliant resources.

<comment><AUTHOR> Yeah... I may go through at some point and refactor this post some. I personally get a kick out of funny names and goofy stuffy but several people have made the point that it can be distracting to some people. The key things are just passion, clarity, and context. I experienced none of those things back in school... truly, not just from my programming classed but from 90% of all my classes. I can probably name all the good teachers I've had from grade school through university on one hand.

</comment></comment><comment><USER18> Great article - but please spellcheck. There are typos every other sentences, it makes the article quite painful to read- which is a shame because the content is interesting!

<comment><AUTHOR> Thanks for the feed back... I really am a terrible spelling. I at least ran through a spell check and corrected those errors real quick. There's two errors where there's no space between a word where markdown is parsing it that way. Might just un-italicize those words later. If you notice any grammar mistakes that are annoying please feel free to email me and I'll fix them.

<comment><AUTHOR> Lol. After reading my own comment I think I'm terrible at my native language, too. I need to stop writing things before I've had my morning coffee.

</comment></comment></comment><comment><USER19> I find it absolutely frightening how much incompetent instruction there exists for teaching people skills like programming - with regards to the author's experiences, in particular. I'm glad that he finally found something that worked for him, but I'm left wondering how many other people will have had that caliber of instruction as their first (or only) exposure to the field.

<comment><AUTHOR> Far far too many

</comment></comment><comment><USER20> The writing aspect of this is all over the place and really messy, but I liked his story and felt a strong degree of empathy with it—especially the part about false starts and bad computer science education.

<comment><AUTHOR> Thanks for the feedback. I'm definitely not the best writer out there but would like to be... I REALLY should have ran this through a spell checker and felt stupid when I finally did. If you have any more detailed critiques and feel strongly enough about them to share please feel free to email me.

</comment></comment><comment><AUTHOR> I would just like to thank dalanmiller for making a pull request to my fork of octopress correcting several grammar and spelling mistakes. That was a really cool thing to do and I appreciate it.

</comment><comment><AUTHOR> Yes! Absolutely!</comment>


Massive child porn site is hiding in plain sight - <AUTHOR> https://sijmen.ruwhof.net/weblog/1782-massive-child-porn-site-is-hiding-in-plain-sight-and-the-owners-behind-it <comment><USER2> So, in an effort to talk about controversial subjects in a substantive way, this seems like a pretty good litmus test to figure out whether I fit in here. I've been deciding whether to stay or leave. Here's a topic.

There are a few subreddits on /r/all which you can't help but notice are filled with partly, shall we say, not strictly legal porn. And I didn't go out of my way to find these. Reddit lobbed them at me because that's what /r/all does, and if I want to see /r/all (and not /r/popular, which filters out various subreddits that happen not to fit their "popularity" criteria) then that's what I get.

I really don't want to provide links for obvious reasons. I thought about it. But that seems stretching this. Suffice to say, there exists some integer N where N is less than 18, despite claims to the contrary.

What should be done, if anything? These are consensual pictures, posted by young adults who understand the implications of what they're doing. They do not need protection.

The other way to look at it is that they're kids who really don't know what they're getting themselves into.

I don't know how to feel. So, there you go.

<comment><USER3> It's…a hard problem. I think it's normal and natural for young people to explore their bodies & sexuality and share that experience with each other. It's fraught on all sides with problems, though—when it gets shared with the _world_ , either by choice or by betrayal; when the people involved are very young or even prepubescent; when adults use their power and maturity to exploit them; and so on.

I started having sex when I was 14, after waiting for a long time with the same partner, and I feel like I personally was mature enough to handle it responsibly. That doesn't mean all 14-year-olds should be doing that. And the concept of consent here, doing normal activities like having sex and sharing images of yourself, is murky—I did things that were _illegal_ , but (I feel) neither wrong nor harmful.

Maybe the law just needs to be more adaptable somehow. But I feel like there's always going to be tension between expressing yourself and being protected from exploitation.

<comment><USER2> Apparently in Germany the age of consent is 14, and if someone over 21 interacts with someone near 14, a hearing can be convened to determine whether this was justified.

I heard this secondhand on Reddit, so I have no idea whether it's true, effective, or what the implications would be. But it seemed like a sensible and tidy system, if one existed. (EDIT: indeed, [https://en.wikipedia.org/wiki/Ages_of_consent_in_Europe#Germ...](https://en.wikipedia.org/wiki/Ages_of_consent_in_Europe#Germany))

I was similarly active at around 14, and it didn't really affect me much. But on the other hand, that's only a few years after it's even possible, so it's hard to grok the gravity of it. Especially at that age.

You're right – it's simply hard to figure out how much protection, and where, should be applied.

<comment><USER4> > I heard this secondhand on Reddit, so I have no idea whether it's true, > effective, or what the implications would be.

as a German, yes this is correct. Additionally: as long as both involved are >14, the parent(s) have to file a complaint, which is the reason why these cases are very rare - even for e.g. 13/15 combination (which would be illegal) I don't know any case without having to resort to Google.

Both courts and the general public treat the entire matter responsibly, although the latter has shifted a bit, if one involved party is a refugee - that sends the German alt-right into a frenzy every time there is any hint of suspicion. But still, it's far, far away from what hits HN/Reddit every couple of months from the US.

</comment></comment></comment></comment><comment><USER5> Is it naive to be somewhat uncomfortable with the doxxing of the sites owners?

It certainly appears that they are aware of/complicit with what is going on, but there's also a possibility that some of those folks aren't actually involved, and that someone else attached their emails in an attempt to damage their reputation. That second option is admittedly unlikely, but law enforcement agencies have the resources and access to determine who really is involved and to what extent, and to prosecute accordingly. The court of public opinion is rarely this nuanced.

Otherwise this looks like solid research. I'm surprised that it didn't appear that the author had reached out to Google to have the site de-indexed.

</comment><comment><USER6> It's uncomfortable to see such posts, wonder if they belong here and should be discussed. My knee jerk reaction on seeing the headline was that this didn't belong here. After skimming the article and getting a sense of the significant effort put in by the author, I've changed my mind. The people who're already into such things most likely have the inclination, time and knowledge to get what they're looking for — with or without this article. Of course, there may be cases where such a post may kindle someone to get into such things, but the benefits of making this information available widely, IMO, far outweigh such risks.

I usually keep telling people not to share photos online, and especially not of their (or others') kids. Most people don't know or understand who can see what they're sharing and how things could possibly leak out. This investigative article is a tool for me to reinforce this message in my circles. For that, I thank the author.

</comment><comment><USER4> Interesting how common the pattern of "reusing identities" pops up in investigations... this was the same stuff that e.g. broke the opsec of Silk Road.

Re-using email addresses for a domain with ... beyond questionable material and for e.g. a real-name Facebook account just stinks of incompetence.

</comment><comment><USER7> Fantastic write up. If the author is here, how did you keep track of this sort of graph-based information while working on this? Did you just keep a notepad?

Despite this write up being extremely depressing I had a laugh at the following line from the article:

> Interpol didn't want to comment on the site and Europol says they don't work > with the Russians.

Aaah politics.

</comment><comment><USER8> Hopefully the FBI already has their hooks in this, and uses it to work up the chain. Along with incredibly graphic violence, this has been the darkest part of the internet since day 1.

</comment><comment><USER9> I don't see anything weird when I search for those keywords (from Poland, in English).

<comment> xiao-wei Same here (searching with /ncr): [https://i.imgur.com/V0E3uGx.jpg](https://i.imgur.com/V0E3uGx.jpg)

Maybe Google already deindexed the site? Or maybe OP's results are based on his search history?

<comment><USER4> For me, with personalized account, and query "img src" against Google DE: top3 for the TLD after html.com and selfhtml, and top8 for a t.co link to the site which I did not dare click.

For what its worth, I have never tried to interact with CP in any way, or have heard of this site before today, so I'd assume Google has no reason to up-rank this site for me based on browser history.

</comment></comment></comment><comment><USER10> That this thread was flagged demonstrates our knee-jerk bias on such subjects.</comment>


What is the most advanced computer program? - <AUTHOR> https://www.quora.com/What-is-the-most-advanced-computer-program/answer/Joey-Kim-13?srid=uBgm&share=1 <comment><USER2>
        i  = 0x5f3759df - ( i >> 1 ); // what the fuck?

Indeed. I hope there's some omitted documentation for this. Does anybody know how this works?

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

<comment><USER2> Thanks :)</comment></comment></comment>


Heroku is partially down (my site unresponsive) - <AUTHOR> http://status.heroku.com/incident/139

<comment><USER2> Amazon is having problems, it's impacting Heroku and many others.

<comment><USER3> Like Reddit.

</comment></comment><comment><AUTHOR> NewRelic is also having trouble: [http://rpmstatus.newrelic.com/2011/02/17/having-trouble- with...](http://rpmstatus.newrelic.com/2011/02/17/having-trouble-with-a- database/)

Not sure if these things are related.

<comment><USER4> Hosted with AWS? Who is having problems in the northeast.

<comment><USER5> I had a few outages with 2 AWS EC2 instances, (one small, one micro) both in eastern zones today.

</comment></comment></comment><comment><USER6> <http://status.aws.amazon.com/>

</comment><comment><USER7> Okay, geolookup on Heroku's proxy IP says seattle, but EC2 doesn't have a region there! Is Heroku running their own data center there? Curious...

<comment><USER8> proxy.heroku.com -> 22.214.171.124

NetRange: 184.108.40.206 - 126.96.36.199 CIDR: 184.108.40.206/17 OriginAS: NetName: AMAZON-EC2-4

(from whatismyip.com)

</comment></comment><comment><USER9> I removed New Relic temporarily and redeployed, and Heroku is working for one of my sites now (also not working for another site though).

<comment><USER10> That's interesting. Installing New Relic makes your site dependent on New Relic's availability? That's kinda scary...

Of course its also possible that you just got lucky and Heroku came back up for you when you redeployed. Could be a coincidence.

<comment><USER11> We had the same issue at the Seesmic Web launch 2 years ago and uninstalling new relic fixed the issue.

But the guys at New Relic helped us and fixed the issue, according to them it should not happen anymore.

<comment><USER12> The New Relic agent should never have an affect on whether or not your application runs. If you think this is happening, please email us at firstname.lastname@example.com so we can help figure out what is going on.

</comment></comment></comment></comment><comment><USER13> I saw this blip as well. Spreedly was telling me it couldn't talk to my server for around 17 minutes. 8:04pm-8:21pm PST

</comment><comment><AUTHOR> Supposedly fixed now (see OP).</comment>


Ask HN: [Advice] How to start learning about Computer Science/Engineering? - <AUTHOR> I'm dev with 2 years of exp. I know some programming languages (java, javascript, python & go) but only concern is most of the time i use APIs created by someone else (usually open sourced solution)<p>I'm not CS student but i want to go in depth to learn and create something new. Any suggestions where do i start and what kind of prerequisites i should be having ? <comment><USER2> Watch conference presentations/youtube about cool tech.

Learn (read: Google) about and experiment with what interests you.

Use your network (go to meetups if you don't have one) to find intersection between interesting tech, and roles/opportunities in the marketplace. Then double-down on those (learning, OSS contrib, etc) so you can become more appealing to employers.</comment>


Ask HN: What are your experiences with recruiters? - <AUTHOR> Hello HN,
I'm located in Germany. Every other day, I receive an email or message from a random recruiter, who wants to hire for some client. In most cases, they're using "spray and pray" because they require skills I don't have, nor want to learn.
What's the deal outside of Germany? Is this a global "problem", or are we living in a bubble?
(Dear Recruiters: I appreciate your work! You guys rock, and I love to talk to you. At least if you're good at your job, and treat us as humans — not resources.) <comment><USER2> The only people I hear complaining about that are engineers with technical blogs and I always wonder if they are just trying to talk themselves up.

</comment><comment><USER3> Because of their tactics, most of the contacts you will get from recruiters are the useless "spray and pray" types.

Sometimes there's a gem in there, though. Good recruiters can make a job search (or hiring for a position) much less arduous.</comment>


The 'hidden' cost of using ZFS for your home NAS - <AUTHOR> http://louwrentius.com/the-hidden-cost-of-using-zfs-for-your-home-nas.html <comment><USER2> The 'hidden' cost of traditional RAID for your home NAS:

I've learned the hard way that the 'R' in traditional RAID truly does stand only for "redundant" and not "reliable". Reliability in traditional RAID is predicated an complete, catastrophic failure of a drive such that it is either working wholly and completely or failing wholly and completely.

In a traditional RAID, for any failure mode in which a drive or its controller starts to report bad data before total failure, the bad data is propagated like a virus to the other drives. The corruption returned by a failing drive is lovingly and redundantly replicated to the other drives in the RAID.

This is the advantage of ZFS (or BTRFS). Blocks of data are checksummed and verified and corruption isolated and repaired. Yay for reliable data.

<comment><USER3> I'm about to either buy a home NAS or build my own with an atom Mini ITX. I plan to expand my array in the future. So is there any configuration that gives me the best of both worlds, ie the expandability of traditional RAID with checksums to prevent replicated errors?

<comment><USER4> BTRFS allows you to add, remove drives, and change RAID levels _on a mounted filesystem_ , while able to use differently sized drives efficiently. That alone wins me over. Some people still say BTRFS isn't ready for production, but I've had fewer problems with it than with ZFS (YMMV). Still, I don't care much as I have multiple backups.

<comment><USER5> I decided to try BTRFS on my NAS because it didn't require rebuilding a kernel. The ability to add disks to an array and have it rebalance made it very appealing.

Unfortunately, the three-drive filesystem lasted two weeks before it became unmountable. The only thing that let me mount it was finally running btrfsck. I was left with 57 unrecoverable errors, and lots of lost data.

I would not recommend running BTRFS in RAID5 or RAID6 just yet. Stick with mirroring, if you want to use it, and rebalance to RAID5/6 later on when it's more stable.

<comment><USER6> Which kernel, and did you file a bug report?

e: To anyone not up on btrfs, its features are closely tied to the kernel version it's used with. For example, raid56 scrub and device replace, and recovery and rebuild code were not available prior to kernel 3.19.

I also believe the only way to use 5/6 modes before they were stable was to explicitly compile with them enabled. It wasn't just something you could accidentally do.

<comment><USER5> It was 4.2.5-1-ARCH, and I didn't file a bug report, no.

I didn't have much data to submit. No kernel panics, no useful error messages, nothing beyond it saying it wouldn't mount. One could read the tea leaves from the filesystem as it sat, but such data spelunking could take a while on an 8TB partition, and I wanted to get the disks back into use.

I didn't notice the corruption until after I had unmounted it, so scrubbing it wasn't an option.

</comment></comment></comment></comment></comment></comment><comment><USER7> That's not a hidden cost. That's what you'd normally expect with any traditional RAID. However like many modern solutions, ZFS does have a few workarounds:

       MULTIPLE ARRAYS PER TANK

If you have space in your storage servers housing, then you can buy multiple disks at a time as a separate array (eg 3 disk raidz1) and add them to your existing "tank" (ie storage pool).

       AUTOEXPANDING INTO LARGER DISKS

If you have _autoexpand=on_ set on your tank then you can upgrade the capacity of each disk in a raidz, one disk at a time. The caveat here is that your array doesn't increase in capacity until every disk has been upgraded, but it does still allow you to start the upgrade process incrementally.

       ALTERNATIVE SOLUTIONS

However, if one needs the support of upgrading their array, increasing the capacity with each new disk added, then ZFS is definitely the wrong choice. Any traditional RAID array would be ill suited for this. Instead I would recommend unRAID or similar (I think Windows might have something built in, but I'm a UNIX guy so couldn't comment there).

</comment><comment><USER8> > Other software RAID solutions like Linux MDADM lets you grow an existing > RAID array with one disk at a time.

His issue isn't with ZFS, it's that most parity raid (raidz, raidz2, raid5, raid6, etc) doesn't support safely rebalancing an array to a different number of disks.

With mirrors, the things he describes aren't an issue, especially in a home server. You can start with one disk, mirror it when you're ready; then add additional vdevs of mirrored pairs extending your pool as necessary. Or upgrade two disks to grow a vdev.

[http://jrs-s.net/2015/02/06/zfs-you-should-use-mirror- vdevs-...](http://jrs-s.net/2015/02/06/zfs-you-should-use-mirror-vdevs-not- raidz/)

<comment><USER9> Linux mdadm supports re-striping raid5 devices in place. I've done it, it's fun. If you're raid doesn't support that, it's deficient.

<comment><USER10> > _If you 're raid doesn't support that, it's deficient._

Nowadays, RAID5 is deficient.

<comment><USER9> That's another topic entirely. I'm just saying if you're going to support it, support it correctly.

</comment></comment></comment></comment><comment><USER11> Five or six drives for a home NAS? This, IMO, is madness.

RAID-1 a couple of drives, and _take backups_. If the worst happens, you can restore offline from your backups. If you seriously need 100% uptime at home, in the face of multiple drive failures, you are doing something badly wrong. Or, at least, doing something far beyond 'home use'...

<comment><USER9> Not in the slightest. I'd rather have some redundancy up front than try to restore a bunch of junk from backups.

Backups are important, but not ever having to use them is even better.

Not only that, but having RAID or mirror sets gives you flexibility in ways that you might not think about up front. For instance, I just replaced some old 750GB disks with new 5TB disks. I added the new 5TBs to the the mirror set and let it bring all the data across automatically. When it was done, I dropped the 750s out and resized the raid set to use the whole 5TB (I told it it was already clean so it didn't have to sync up a bunch of unused space). Then, finally, I resized the filesystem that was mounted on that mirror set. This was all done live, with data actively being read and written to while all this volume manipulation stuff was happening.

 _That_ is why you use RAID at home (and lvm, too).

<comment><USER12> RAID is not a replacement for backups; they do different things.

RAID preserves performance and/or uptime in the face of hardware failures. It does not protect against data corruption or deletion. It will happily sync those across all your disks.

Backups protect against any data loss: hardware, software, even intentional. The key feature of a backup is that it is insulated from live data operations (including RAID sync).

<comment><USER9> I never said it was a replacement. I wholeheartedly agree that backups are indispensable, but when dealing with drive failure, _I 'd_ rather just swap out a drive and not have to deal with restoring from backups. I find backups are good for fine grained laser focused restores—trying to restore an entire drive is either slow, or error prone, especially if one deals with hard links a lot.

</comment></comment></comment></comment><comment><USER13> The BSD now podcast [http://www.bsdnow.tv/episodes/2015_01_06-zfs_in_the_trenches](http://www.bsdnow.tv/episodes/2015_01_06-zfs_in_the_trenches) talks about this article and gives some solid recommendations on how to do your setup. It helps that one of the hosts co-wrote a book on ZFS.

<comment><USER10> And in the most recent episode, #123, this specific article was addressed (starting at about 11:55):

[https://youtu.be/B_OEUfOmU8w?t=11m55s](https://youtu.be/B_OEUfOmU8w?t=11m55s)

<comment><USER7> You're just reiterating what the previous comment said

</comment></comment></comment><comment><USER14> Sorry, but, no.

If you've gone to the effort of getting a massive raid like that for home use, you need a backup.

If you don't have a backup, stop reading, you're an arse.

Run a full backup, check restoration.

Blast away your NAS (its ZFS, relies on free space. The fuller it gets the slower it gets (unless you have SSDs or lots of write cache)) It's probably due and upgrade, (OS/XFS)

re-arrange your array, you're changing the way you use it, so you need to do it.

Restore data back over the top (with compression...)

as for "it costs money" well thats why you chose zfs, for redundancy....

<comment><USER15> It depends what you're doing really. I run a 5 disk ZFS cluster to host media files. I'd rather not deal with failure very often, but when it does happen and I lose a whole bunch of media, I can download it again.

The second I elect to host anything even remotly important on it, it'll be backed up, but until then there's no need for me to pay to host that elsewhere.

Professionals who think they don't need backup's because they have redundancy do need a slap though.

<comment><USER16> For that use case ZFS seems overkill.

<comment><USER15> Possibly, but what's the problem? It's pretty much a "just works" file system where you can lose 1-2 disks where blocks are continuously checksummed and scrubbed to ensure consistency.

What exactly would you rather be using?

</comment></comment></comment></comment><comment><USER17> In case anybody's still reading this, I have a couple of use-case questions.

I'm planning on setting up my first volume pool using 4 5TB Seagate ECs. I can't get any more than four to begin with.

I was intending on using mirrored vdevs, as I'd heard that was basically the easiest way to get started. This is entirely for personal use, and I don't need "enterprise" read/write rates (the hardware I'll be starting with certainly won't manage that), and it won't be the end of the world for (very very rare) resilvers to take all night.

Are there any advantages to _not_ using mirroring, ie using one of the RAIDZ variants? I've already accepted the idea of having to buy new disks two at a time so I can spin up a new vdev with them.

<comment><USER7> The biggest advantage is storage space. You lose more potential storage space with mirroring since it's a 1:1, whereas as raidz1 across 4 drives would give you much more storage space but with the caveat that you can only lose 1 drive at a time before your entire pool is lost.

<comment><USER17> Hmm. 15TB definitely sounds nicer than 10.... :D :D

I fully intend to buy disks with widely spaced apart manufacturing dates, so theoretically this should be manageable.

Now I get why 8 disks is recommended... you can make a mirrored pair of 4-disk raidz1s, you get >50% storage efficiency, and you can lose any two disks before it dies.

</comment></comment></comment><comment><USER18> I know everyone is talking about btrfs and zfs, but I would just like to give a shoutout to DFLYBSD and HAMMER2, which is also doing great work in this regard (among other things)

<comment><USER19> HAMMER2 has been in the works since 2012 and still isn't considered something you should put any data on that you care about. No offense to Matthew, and I applaud his hard work, but HAMMER2 isn't being mentioned because it isn't even part of the conversation. At this point we can't even be sure it will ever make it to a production ready state.

<comment><USER18> You are correct about Hammer 2, but dont forget about Hammer 1.

</comment></comment></comment><comment><USER20> My experience with ZFS on my home NAS: started with 6 2TB greens, 1 boot, 5 raidz1, got 5 3TB greens in another raidz1. One of each failed, replaced. Recently got 6 8TB SMR drives in a raidz2.

Never used ECC ram, too expensive. No problem with LSI raid cards, or SAS backplane. Most important advice: People aren't kidding when they say your zpool will slow down when it's almost full.

Online resizing of md arrays isn't reliable, my friend lost terabytes. ZFS is 10 years old, well tested.

</comment><comment><USER21> In the article, adding a vdev of a raid-1 pair of disks would "break" raidz2 redundancy of the other vdevs. Why?

Is it best practice that all vdevs in a zpool use the same RAID level?

<comment><USER22> To answer your second question, I think the answer is generally yes, because loss of _any_ vdev in a pool means the entire pool is lost.

For example, if you initially created the pool with a single raidz2 vdev, probably the only way it makes sense to add a second raidz1 vdev is if you later changed your mind about how important your data is.

</comment></comment><comment><USER23> That's why I like Synology for a home NAS: you can just add/replace drives with a larger one any time you like, and the Synology box sorts it out.

</comment><comment><USER24> What are the cheapest drives we can use for ZFS NAS for occasional media access?

Can we use the absolute cheapest Western Digital Green drives, with limited lifespans? Does ZFS spin down drives when not in use?

Actually, how long do the cheapest drives last when spinning 24x7?

I ask because Best Buy has 5TB Western Digital drives for $110 today: [http://www.bestbuy.com/site/wd-my-book-5tb-external- usb-3-0-...](http://www.bestbuy.com/site/wd-my-book-5tb-external-usb-3-0-hard- drive-black/4222407.p)

But these consumer drives never list reliability figures, unlike data center drives.

<comment><USER25> Greens would work, but are limited to 5400RPM so your data transfer rate will take a hit with that.

Reds are WD's "NAS" drives, with some advanced features, but the Segate ST2000DM001/ST3000DM001 have worked very well for me with multiple years of almost constant data access.

Sidenote: the upgrade from 4x2TB to 4x3TB was extremely simple, I just failed my drives over one at a time, so as long as you do everything at once you can expand everything really easily with ZFS.

<comment><USER26> The seagates worked well for me for a long time when they were directly attached to SATA ports, until I got a chassis with a SAS backplane. Their firmware had some bugs which would stall all transfers on the whole backplane (not just the one disk) for about 30 seconds when there was a lot of activity.

I switched to WD REDs after that, haven't had any issues since.

<comment><USER25> Really? That's interesting (and shitty!). Thanks for the heads up!

</comment></comment></comment></comment><comment><USER27> ITT: people who've never done an online resize

</comment><comment><USER28> With the wide availability of cheap backup services like backblaze, this nas building nonsense is a complete waste of time.

I have 3-4 direct attach usb and FireWire disks. One is a working disk, one backup, the rest for various things.

If one of the working disks fails, I have a local backup. If they all fail, call backblaze.

In all cases, I avoid wasting time and money setting up ersatz infrastructure that in reality is less reliable and more expensive than the simple solution.

<comment><USER29> > With the wide availability of cheap backup services like backblaze, this nas > building nonsense is a complete waste of time.

My home upload speed is 3mbps.

I make weekly image backups on top of my increment file backups. The images are ~800GB and 200GB. Additionally, I have a ~1TB media collection.

Uploading the images to Backblaze weekly is clearly unfeasible. Restoring from old images in the event of a failure would be extremely time consuming.

Therefore, I have a 14 TB NAS that should last me a long, long while and also serves as a Plex media server. To lose data I really care about requires that four drives / two computers fail or my house burns down. I am willing to accept that risk.

<comment><USER17> > I make weekly image backups on top of my increment file backups. The images > are ~800GB and 200GB.

Yeow. This needs a good helping of ZFS snapshots!

<comment><USER29> The images are Windows Backup vhdx's, so I'm not sure that's possible. It isn't really worth my time to investigate - it happens automatically on a schedule and over a gigabit LAN it goes fast enough and neither the performance of the computer nor the NAS are noticeably impacted.

In an ideal world, Windows would just use ZFS, but hey, you can't have everything. ;)</comment></comment></comment></comment>


Interactive: What Is Space? - <AUTHOR> https://www.quantamagazine.org/20150430-space-time-interactive/

<comment><USER2> A bit vague and speculative.

My suspicion has been that maybe _quantum entanglement_ and the "spooky action at a distance" of the Einstein, Podolsky, Rosen (EPR) _paradox_ might be a clue to better understanding of _space_. But now I don't have the time, background in quantum mechanics or relativity, or, likely, the smarts even to try to push that through to a result.

Back to the startup!</comment>


Finding UI crashes by fuzzing input events with american fuzzy lop - <AUTHOR> http://caolanm.blogspot.com/2015/10/finding-ui-crashes-by-fuzzing-input.html <comment><USER2> For those of you writing Android apps, this is essentially what the monkey[1] tool is for.

[1]: [http://developer.android.com/tools/help/monkey.html](http://developer.android.com/tools/help/monkey.html)

<comment><USER3> The difference here is that AFL is not just banging on the keyboard at random --it's doing a guided search to find inputs that change the program state in interesting ways. This is more likely to find bugs in a finite amount of time.

</comment></comment><comment><USER4> This article kind of makes me wonder if there's much sense into finding (and fixing) bugs in the high level parts of a program (where no other code depends on) if it normally doesn't occur.

<comment><USER5> Fixing these kinds of bugs also improve developer productivity in my experience.

Code that can trigger crashes like this often has problems with ownership and/or concurrent access. At least I often get stuck on such code when doing modifications, asking myself how on earth they guard against null ptr derefs etc. In many cases that sneaking suspicion is founded and there really are bugs lurking in the code I'm supposed to extend in some way.

<comment><USER6> Yeah, it's a great way to find smelly bits of code.

</comment></comment></comment><comment><USER7> After the last AFL article I ran it on a side project with a good input test suite where I was not the original author. Really easy to integrate, and I was impressed with the bugs it found. Running the generated input through valgrind made fixing problems really simple.

Add in the clang static analyzer and there are a lot of really nice tools for reasoning about memory issues.

</comment><comment><USER8> I would love to have a general purpose Qt input event fuzzing library.

</comment><comment><USER9> Cool, would this also work for testing websites with phantomjs?

<comment><USER10> tools like metasploit and arachni scanner are designed for that task

</comment></comment><comment><USER11> Fuzzy Dunlop?</comment>


blog.pmarca.com: You have to love this industry - <AUTHOR> http://blog.pmarca.com/2007/10/you-have-to-lov.html <comment><USER2> Bad mouthing a market you're about to buy into isn't so dumb. If he were super enthusiastic about Facebook in the first discussion, Microsoft might have had to pay more to get the deal.

"It's just a fad" == "I can walk away from this deal" -- one of the best negotiating positions possible.

</comment><comment><USER3> The funny thing is that, for once, most people probably agree with Balmer's original statement.

I don't see how Facebook could not be a fad. Unlike Google or even Microsoft, they aren't solving any real technology problems. They are providing a service that is essentially a limited version of the internet at large. I'm not saying they won't be around at all in five years. Just that the noobs will eventually tire of poking each other and paying to send each other icons.

</comment><comment><USER4> No kidding.

I'm almost wondering if Microsoft's move was less about Facebook and more about upping Google.

<comment><USER5> Maybe Steve and Mark are both Harvard drop-outs, and the Google founders aren't? Steve lost one hacker (in Bill leaving the company) so now he's going for the next-in-kin?

<comment><USER6> Just a clarification...Steve graduated.</comment></comment></comment>


Ask HN: What metrics/data should be tracked for an ecommerce site? - <AUTHOR>

A comprehensive list would be great, especially during this time of year, when merchants are trying to make the most out of the holiday season. <comment><USER2> I built a pretty expansive ecommerce platform. This is what it included (kind of categorized):

Orders, revenue, average order, average revenue

Top search engine search terms, top referring search engines, conversion rates of search phrases

Top pages, top referrers, top user agents, total visits, visit duration

Top products ordered by quantity and revenue

New customers, first time buyers, total number of registered users

Top in-site search terms, conversions of those terms

Visits to order, cart views to order, checkout initiations to orders

I didn't include this overtly, though it can be done by putting two reports together -- Top customers by total expenditure and by order frequency</comment>


7-inch MeMO Pad From Asus Delivers Jelly Bean Experience for Peanuts - <AUTHOR> http://www.maximumpc.com/article/news/7-inch_memo_pad_asus_delivers_jelly_bean_experience_peanuts2013

<comment><USER2> Wonder what the build quality will be like...

</comment><comment><USER3> THat's very cheap!</comment>


Why You Probably Work for a Giant Company, in 20 Charts - <AUTHOR> http://www.wsj.com/graphics/big-companies-get-bigger/?utm_content=buffer77d5d&utm_medium=social&utm_source=facebook.com&utm_campaign=buffer <comment><USER2> You cannot view this article without subscribing. Using the "web" link while browsing incognito doesn't help.</comment>