Ask HN: What's the best aha moment you've had? - <AUTHOR> <comment><USER2> Few years ago, I started getting a package almost everyday from my recently deceased Uncle's 82 year old wife. It was anything from small things like old photos and key chains, to larger items like a traditional India "Thali" meal plate made of silver, an Ivory (from a real elephant :( and more.

Turns out she was clearing out the late Uncle's garage and stuff all around the house, and returning gifts from my family back to us, and doing the same with others (friends and relatives who had sent my uncle stuff). Mind you, he wasn't a hoarder. It was just things people gave him over the (many) years and he kept them because of the emotional element (friend, family) attached to such things.

Old and frail herself, I remember my Aunty spent a good few months -- almost a year -- shedding the baggage. The postage alone must've cost her a few 1000 $s. Not to mention packing, taking stuff to Good Will etc. It reminded me of the quote from Fight Club - "The things that you own end up owning you.".

On that day, a young 16 year old me decided to never store or keep anything with me and become a minimalist, even if it was an "emotional" thing. Because I don't want me or my surviving family to have to go through something like this ever! I also don't buy any gifts for anyone, and instead give cash whenever I am obligated to give a present or gift (think weddings, birthdays etc)

<comment><USER3> I understand, I really do, but consider that in the sadness and duty of clearing things out, she held memories in her hands. Some would have been treasured. She would have smiled more than once.

That she spent so long doing this also suggests it may have been cathartic for her.

That said, I keep very, very little myself, but for different reasons (I simply don't need anywhere near the stuff I have and tend to clean ruthlessly every now and again).

I will also suggest that gifts given years ago have far less value now.

</comment></comment><comment><USER4> When I lived in Sweden, I noticed a lot of the 2nd generation immigrants from the middle east behaved very similarly to black and latino people I knew from back home in the US. Very different styles, petty crime, boisterous behavior that stood out in a crowd, etc.

I wondered why it was so similar, even though all the cultures involved were completely different. The other thing that puzzled me was that Sweden has a nearly infinitely superior social safety net to the US. So why, despite free education, job training, and plenty of resources to get a foothold, did these people lash out like many minorities in the US?

My aha moment was that it just had to do with being a minority culture. That's all it is. When a group's culture norms and values are not accepted/tolerated by the majority, the minority group has a hard time being a part of society. Even in a peaceful, tolerant place like Sweden.

It helped me open my own eyes as a white man, and now I can see this sort of thing playing out all around me. It's also universal, no matter when you go to in the world.

There is one major and rather sad exception though: when a white person or group is the minority in a place, it is not likely they will experience the same effects. Whiteness, and white culture seems to be universally desired (at least from my limited experience).

</comment><comment><USER5> There is only one currency: time.

You can trade this for everything else - the exchange rate is up to you.

<comment><USER6> This is one of my "aha" moments as well. I was working on a development project for free. I hated it even though I had interest in the project itself. I didn't realize until a long time after that I felt as though my work had no value. I communicated this and suddenly I was making $75/hr.

My takeaway was: Everyone's time is worth something.

</comment></comment><comment><USER7> In an astronomy class, our professor gave us the formula for Escape Velocity. It's typically used to calculate how fast a rocket must go to get out of the gravitational pull of the planet. It's a simple formula that takes into account the mass of both objects, and their distance.

As you make the mass of the larger object greater and greater, it becomes clear that eventually the escape velocity can be _greater than the speed of light_.

That's all a black hole is: A gravity well strong enough that even light itself cannot escape.

I knew this already to some extent, but the simplicity of the math really stunned me.

<comment><USER5> this one always bugged me a little

a rocket takes off. let's say it's going upwards at 1 m/s at some short time after takeoff. why can't it then reduce (not to zero) acceleration such that it stays going upwards at 1 m/s all the way out of the gravity well? don't aim for escape velocity, keep the velocity at exactly 1 m/s until you're out.

yes, I know - Tsiolkovsky, reaction mass, delta-v etc etc clearly that's wildly impractical

but MUST the rocket achieve its 'escape velocity' in order to escape? why can't we have a casual stroll out of the gravity well?

escape velocity applies for an unpowered vehicle, right? throw a rock, it's gotta be going at least at the escape velocity or it won't escape. but throw a rock that's propelling upwards itself all the way out ...

if I want to climb stairs, I propel myself gradually on every step, I don't require that I launch myself off step 1 with the speed to get me to the top.

what am I missing here?

<comment><USER8> "a rocket takes off. let's say it's going upwards at 1 m/s at some short time after takeoff. why can't it then reduce (not to zero) acceleration such that it stays going upwards at 1 m/s all the way out of the gravity well? don't aim for escape velocity, keep the velocity at exactly 1 m/s until you're out." <\-- that will totally work, but isn't escape velocity.

Escape velocity is essentially the velocity an object must start out with to move towards an asymptotically infinite distance from the gravity well without additional thrust. That last bit is what makes it escape velocity. The gravity well will slow the object to near zero velocity but the object's distance will eventually overcome the gravity before it reaches zero or negative velocity.

Your example of moving at a constant speed of 1 m/s is only achievable with constant thrust to cancel gravity, thereby stopping the object from slowing during its ascent. If the object has achieved its escape velocity, no additional thrust is needed. One is not better than the other, it's just a matter of what is more practical in terms of fuel or travel time.

<comment><USER5> yes - my question is whether escape velocity is necessary to leave a gravity well.

and if it's not, taking that to its logical conclusion - why do we NEED to go faster than the speed of light to escape from inside the schwarzschild radius of a black hole? can't we leave under constant thrust at 1 m/s?

<comment><USER3> There are a few things to tease apart in this. First, maintaining a constant speed of 1 m/s requires constant application of force to overcome the forces working against you. On a road surface, these are air resistance, rolling resistance, etc. It takes very little force to oppose these at this speed (wind resistance increases with the square of speed, so the faster you go, the more force you need to keep going that fast, which is why gas mileage drops as you move above your engine's optimum operating range).

Heading up from Earth, you are facing a deceleration of 9.8 m/s/s, so you need to apply enough force to counter that. The amount of force depends on payload, e.g., a little plastic drone don't need so much, a Saturn V carrying something to high orbit needs a whole lot.

Escape velocity is the velocity at which _no further thrust is required_. That's the key point: The object is travelling away from the well _so fast_ that it is already going fast enough to overcome all of the rest of the gravitational drag it will experience until it hits micro/zero-G.

Rockets need constant thrust (constant force and acceleration) to overcome the constant force and acceleration of gravity).

If you accelerated a human being to escape velocity at the surface of the Earth, you would concuss them to death (and likely organ damage them to death).

A photon starts life at _C_ , whatever C is in its current medium.

<comment><USER5> Understood - I appreciate why light, or any unaccelerated object, cannot leave a black hole.

But does that same restriction prevent a rocket which wants to coast at 1m/s - under constant acceleration - from the surface to infinity?

I.e.: is the schwartzchild radius only a point of no return to light, not rockets?

And if not a hard limit to rockets - oh, I guess that's fun to know :-)

(Yes clearly utterly impractical - trying to understand if there's any fundamental reasons at play here)

<comment><USER9> Yes, the fundamental reason is conservation of energy. If there is not enough energy stored in the rocket's fuel to escape the gravity well, it doesn't matter whether you expend it all at once (and fail to reach escape velocity) or expend it over time as in your example. "Escaping the gravity well" from any point takes a well-defined amount of energy (which we call "gravitational potential energy") so your fuel use strategy won't help you in the end.

<comment><USER8> Yep. Along similar lines of thought, there's the issue that the equations and laws governing classical mechanics fall apart in such settings.

Even so, assuming that we can apply classical thought to the problem: the simplest roadblock to rockets escaping from a black hole is that their change in mass per time unit multiplied by their velocity must at least partially exceed the gravitational pull.

Either you utilize ungodly amounts of fuel per second or you already have a crazy-high velocity or some combination of both. The math just makes it infeasible. There's limits on mass you can have and eject, and limits on attainable speed.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> When I was 13 years old I figured out that people of other faiths believe in their Gods just as fervently as my devout and conservative family believed in theirs.

Since truth isn't determined by where you happen to be born, it seemed unlikely that my family's God was the one true God while all the others were false.

That's the "aha" moment that changed the course of my life.

Well, that and learning Bayes' theorem.

<comment><USER5> "Do you believe in God?"

"I believe in one fewer than you"

</comment></comment><comment><USER11> When writing SQL you are describing the result you want, not the way to achieve it.

It helped me understand functional programming too.

</comment><comment><USER12> One of my childhood memories was finding a piece of yellow plastic broken off of some toy that had lots of colorful little symbols and ornaments printed on it. It lay buried in grass for a few years at that point and it went almost white, bleached by the sun. I stood a while, pondered and remembered the toy as I had remembered it further in the past. Fast forward to my late 20s. I started, not too systematically, learning quantum mechanics because I always felt that, although regarded as an intimidating topic, it is probably a thing that is, given a bit of time, not too complicated to understand and involves just as much forgetting established ideas as it involves understanding new ones. And THAT I have on lock down, you hand me ideas no matter how complicated and I will forget the shit out of them so hard it's gonna make your head spin, tremendous. So when learning about entropy and information conservation it struck me: Every time a photon tickled my child self and told me about the way atoms of my toy were arranged, black ones here, yellow ones there, my god even some god damned green ones, that information was not handed to me for free. It was taken from my toy and not only when I saw it but for as long as it lay there enjoying the sun, it sent its information out to everyone passing by, even back into the sky, while putting on its new dress which was designed with a die and tailored by nuclear fusion. Some of it will have waved pluto good bye before the real journey began. Year in, year out. And, finally, it showed. Patterns grew less strong. Distinctions between different regions of the plastic died off. And the information from all the times I saw my toy was, as exclusively as anything, mine. Noone else ever laid hands on these particular bits. They are with me, still, because they tipped a few neurons of mine into a state stable enough to last a few decades. They are slowly leaking, for instance into your brain right now, but I am sure I will not run out until I turn senile.

TL;DR quantum mechanics made me realise that all my toys were doomed but that I managed to secure some of their essence

</comment><comment><USER13> Figuring out it's never worth it to work more then 40 hours a week at a job where I'm making someone else money.

</comment><comment><USER14> When i was something between 11 and 14: I was going to an eletronic store with my father to buy a cd player for me (i was looking forward to it) and my sisters where watching tv while they were already over there time budget.

I didn't want that (not sure what english word would fit here) and pulled out the cable and the plug broke. My father was annoyed/angry and i was crying because we nearly didn't drive to that electronic store.

I realized two things: 1\. enviousness/distrust/jealousy is stupid 2\. me being angry/crying about a situation i can't change doesn't change that situation

I got less emotional/more rational after this event.

I also think that this was one key point to become a nihilist.

</comment><comment> bjelkeman-again At age 14, I realised if I have to be in school, I could just as well listen to what was said. This resulted in learning a bunch of useful stuff.

<comment><USER15> Thank you for saying this. Currently studying CS and planning to study further because in a way I have to.

I should get off HN.

</comment></comment><comment><USER16> The satisfaction of proving someone wrong is not worth the effort.

<comment><USER17> Unless you're doing it professionally.

<comment><USER16> Still, perhaps why I was never attracted to Law.

</comment></comment></comment><comment><USER18> starting a business is all about building a sales funnel.

<comment><USER19> Business newbie here. How relevant is that to B2C? If my saas-like product is simple and relatively cheap, is it worth spending so much effort into sales instead of, say, marketing? Got any interesting resources?

I can't get my head around how sales could work efficiently with B2Cs in general.

<comment> bjelkeman-again Marketing leads to sales. If your marketing doesn't convert viewers of your marketing effort to buyers then you have nothing.

For consumer products, look at how competitors do it. What looks like it is successful? Try it. Put proper metrics and A/B testing on everything you try.

</comment></comment></comment><comment><USER20> love is about appreciation, not possession.

<comment><USER21> This one hits home right now.

</comment></comment><comment><USER22> Most things people tell you that are important are not (at all) important. Realizing that removed all stress and since then everything has become easier business wise as well.

</comment><comment><USER23> Amiga 500 at age 14ish. Simple as that :). Done & done.

</comment><comment><USER24> Recently, I realized that instead of putting the pressure to launch a website specifically, I could launch products within the website instead. This got me to start writing, sharing, and getting feedback immediately, and has made me feel much more comfortable that I'm building something people will actually use.

</comment><comment><USER25> Money is a medium for trading value. Everything in business comes down to creating value, and then exchanging it for money.

If you set up a system that generates more value than it costs, you have a business. The difference between how much it makes vs how much it costs is your profit.

</comment><comment><USER26> When I was in high school and realized for the first time that the 6502 assembler mnemonic LDA was the same as the number 169, thus bridging assembler source code with its machine code representation.

</comment><comment><USER27> It was when I learned that the genetic code actually resides in the set of tRNA-synthatase enzymes that couple the appropriate amino acid to appropriate tRNA.

</comment><comment><USER28> Finally getting the combo of recursion and pattern matching in Elixir, and other functional languages I supoose. Almost fell off my chair.

<comment><USER29> Reminds me of succeeding for the first time to implement "reverse :: [a] -> [a]" in Haskell using tail recursion. <3

</comment></comment><comment><USER30> One day at age 4 I, for some reason, was cranky. I went with my dad to a kiosk close to our home where this big smily overweight owner always gave a little something as a snack when I came.

This time I got nothing and I asked my dad why after we came out. He said "I dont know, but you seamed really cranky." and I realised that my attitude affects the attitude of others.

</comment><comment><USER31> In E&M class, seeing Maxwell's equations be manipulated into the wave equations that predict a propagating EM wave.

</comment><comment><USER32> That money != wealth.

Even if you give everyone 1 million dollars, NOT everyone will become rich (wealthy) because eventually this money would flow from your hands to the hands of someone that creates value. And you'd end up with the same poor/rich social strata, but now with high inflation.

Wealth is value creation. Money is just a medium.

</comment><comment><USER33> around 2012 when I finally decided to start a side project to try to contribute something to the world.

</comment><comment><USER34> How much luck and who you know plays in determining the success of a business.

<comment> bjelkeman-again I certianly have been lucky. And our team knows a lot of people, it helps enormously. But I have also realised without hard work and a willingness to learn, the luck and know-who, would have been completely wasted.

<comment><USER35> I have been thinking about this exact thing a lot lately.

Luck + [hard work|skills|knowledge]

You could be lucky and then not know what you are doing and fail.

You can know a ton and just not be in the right place.

It is that magic elusive combo.

I tell my kids you can only control one side of that equation. Learn as much as you can.

</comment></comment></comment><comment><USER36> At about age 20 I realized that the epicureans were right. Sorting the important from the less important became much easier.

</comment><comment><USER37> Must be system dynamics for me. When I first learned of the math and the idea of modelling the world like that, it explained _a lot_.

</comment><comment><USER38> Not the biggest aha. But when I figured out how VLQ encoding works in a source map, I did a hoora!

</comment><comment><USER39> I always get my best "aha"s when I've found the source of an OOM in Java.

</comment><comment><USER40> Being ~5 years old, after tearing down a roly-poly toy to see how it works.

</comment><comment><USER41> Understanding Godel, and that God set it up this way.

I laughed hysterically.

<comment> greatest-ape On the same note, reading Wittgenstein and realizing there is not a single system of logic underpinning reality, but a hodgepodge of different systems that may or may not have to do with each other.

<comment><USER41> Note that Wittgenstein thought that you could not use language to get between language and the world, and never accepted Godel's results. It's possible he never understood them, perhaps due to the cognitive dissonance.

I enjoy Wittgenstein, but I think Godel is a far more important figure.</comment></comment></comment>


A tale about requesting Chicago's Mayor's Office's phone records - <AUTHOR> https://mchap.io/./a-tale-about-requesting-chicagos-mayors-offices-phone-records.html <comment><USER2> Siam Rice is a decent Thai place around the corner from the Mayors office (and many city/county offices). It's reasonably priced & fast. That's a rare combo around there.

I got nothing on the 4 hour hotel.</comment>


On the Forgetting of College Academics: At "Ebbinghaus Speed"? [pdf] - <AUTHOR> http://cbmm.mit.edu/sites/default/files/publications/CBMM%20Memo%20068-On%20Forgetting%20-%20June%2018th%202017%20v2.pdf <comment><USER2> As a memory researcher, I'm a bit puzzled by their criticism that for different learning approaches, few studies qualified for studying long term memory (where long term is defined as 2 years).

If there is a difference in retention between two groups at 1 week or 1 month, then I would be very surprised if it reversed upon testing 2 years later.

Moreover, I'm not sure what the theoretical justification would be for extending the test period from say 1 month to 2 years (not to mention how low reliability probably is at 2 years).

<comment><USER3> Since their concern is about retention of course degree material, which _ostensibly_ we're spending 4 years and many thousands of dollars learning because it'll be so useful in our careers, the long-term forgetting curve may look different if career demands create repeated rehearsals of learned material. You might forget a bunch of material from your compilers course, but the rest of it becomes periodically useful in your web dev career and the total loss flattens out. Then testing you on the trivia shortly after your compilers course will paint a misleadingly pessimistic picture. This is why they spend all that space wondering about how rehearsal affects connected concepts - how specifically do any of these concepts have to be rehearsed before it counts as a refresh for the spacing effect? Do even vaguely related career demands suffice to draw on and preserve other course material?</comment></comment>


DHS: Multiple US gov domains hit in serious DNS hijacking wave - <AUTHOR> https://arstechnica.com/information-technology/2019/01/multiple-us-gov-domains-hit-in-serious-dns-hijacking-wave-dhs-warns/ <comment><USER2> I would be more surprised if there were no attacks. It's like the bank letting everyone know the security guards aren't coming in on money transfer day.</comment>


Email made me miserable, so I decided to build my own email app from scratch - <AUTHOR> http://www.slate.com/articles/technology/technology/2015/02/email_overload_building_my_own_email_app_to_reach_inbox_zero.html?wpsrc=sp_all_native_by-section <comment><USER2> "Maybe the dream of an email-free future isn't dead; maybe it just means a future in which email is merely a sliver of our communication rather than the whole pie."

Email is victim of its own success, like cars & highways in America.

Highways are not bad per se, they were and are an incredible revolution. But too much of them means the value we collectively subtract constantly diminish. We need alternatives: walkable neighborhoods, bike lanes, tramways, trains, bus, etc.

It's the same with email, we need alternatives. Chat services like Slack & HipChat are good examples for internal communication.

Email's decentralized nature and ubiquity mean it's the perfect tool for external communication. I don't see why this would change.

<comment><USER2> Last week I did a visualization of all email clients in time from '79 to now ([http://email-apps-timeline.missiveapp.com](http://email-apps- timeline.missiveapp.com)). It shows that there is a lot happening in the email space right now, even if the technical barrier to entry, as the author implies, is so high.

<comment><USER3> Great chart! Some of those new email clients look great. I wonder if any of them will become solid and popular enough.

<comment><USER4> I am still waiting for the application that kills email and the need for clients..

<comment><USER5> Given that the set of folks that are interested in and capable of making _widely used_ end-user communcations software, and the set of people who are _not_ interested in making walled gardens appears to have no overlap, you're going to be waiting for approximately forever. :(

<comment><USER4> ONE DAY MY TIME WILL COME!

<comment><USER5> :)

Just as long as part of your glorious future is a fully open and Libre protocol, federated servers, and -at a minimum- feature parity with email I'm 100% okay with it. :D

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> The most remarkable thing about this article to me was that a journalist with moderate programming ability was able to build an email client. I think as coding becomes more accessible we'll start to see truly novel approaches and applications. People say C succeeded because of UNIX, and JavaScript succeeded because of the web. I'd guess the next language will succeed because it makes true software development fully accessible to people who haven't spent years learning how to do it.

<comment><USER7> Reading his background ([http://cperryk.com/](http://cperryk.com/)) it says "I built my first website as an 11-year-old." "I earned my first dollars building websites for family friends and fellow students' parents." So he may be a bit more experienced than the impression he gives in the article.

</comment></comment><comment><AUTHOR> Chris Kirk, the author of this piece, interviewed me briefly. I have to admit that when he told me he was writing his own email client for the story, he became my tech journalism hero.

<comment><USER8> It does sound pretty impressive; I've written a (console-based) mail-client, and between fighting with different approaches to UI, scripting, and MIME issues, I've a lot of respect for somebody tackling the problem.

</comment></comment><comment><USER9> Am I the only person in the world who thinks email works pretty well? Maybe I just get less mail than many people, but I just delete (or mark "read" and ignore) most of the marketing ham mails I get. I read and respond to the actually-important messages I get for work or from personal contacts. Actual spam is pretty well filtered.

I vastly prefer email to Facebook messages, or Slack notifications, or any of the other purported "solutions" to communication.

Why do people hate email so much?

<comment><USER10> As the author explains in the first few paragraphs, he was basically fine with email until he was thrust into a job with a much higher email volume. That's been the story I've heard from most people who hate email.

<comment><USER11> Exactly, the problem isn't email, it's the level of communications you believe you are expected to maintain. Maybe you are expected to maintain this level, in which case you have a problem that no level of email-client fixes will solve.

</comment></comment></comment><comment><USER12> I find very interesting how the author describes some of the shortcomings of IMAP. The article seems like a nice starting point for requirements to create a new email protocol.

Like the author, for years i've been bothered by email, but as someone who has been maintaining mail servers for 20+ years my biggest issue is the server side of things.

SMTP, POP and IMAP have served their purpose way beyond their original scope. I think going to the drawing board and coming up with a replacement is long overdue.

<comment><USER13> I started typing out the requirements[0] I'd want as a user. It's only a start and doesn't have any implementation, but any discussion would be appreciated!

I wanted to focus initial on the things I hated as a receiver: spam filters (too many false-positives that don't correct when I report them as such), dropped messages (I cannot get messages from [http://www.eternal- september.org/](http://www.eternal-september.org/) on gmail because of reasons only $DIETY could extract from google.), lack of encryption and authentication.

[0]: [https://github.com/jimktrains/email_ng](https://github.com/jimktrains/email_ng)

(For IRC just use the same channel i registered for discussion on a new http (freenode @ #http_ng) ([https://github.com/jimktrains/http_ng](https://github.com/jimktrains/http_ng))

<comment><USER5> > ...lack of encryption and authentication.

PGP (or the MSFT-specific equivalent) handles this. [0] I know that people love to pile hate on the UX of PGP, but Engimail has worked perfectly fine for me for _ages_.

[0] Yes, I know that PGP doesn't -and can't- encrypt addressing information. We _could_ address a big chunk of that by creating informal groups of sysadmins who configure their email servers to _only_ speak over TLS-encrypted channels to other servers and clients.

<comment><USER13> Yes, but I can't even get technical friends to use PGP:-\

I'm proposing it be tied more tightly into the protocol. Some of which is so that there is infrastructure to "vouch" for a sender address (for a period of time) so that they can send you things that would bypass spam checks. (Think password resets, or account notices from a bank).

</comment></comment></comment></comment><comment><USER14> I've always thought an effective if brutal strategy might be the one that won't even deliver your email to you if you're not at Inbox Zero, and then it delivers a day at a time so you might end up days or weeks behind. And maybe it would give you clues, like, "you have 47 additional emails waiting from this sender", so if they're spammy, you could just unsubscribe right there and it would delete them upstream without you even having to look at them.

<comment><USER15> do people really have this problem? I never remember being bombarded by a single source (be it a person or a service), email becomes a burden because there are many sources and the level of urgency is alternating even for the same source through time

<comment><USER16> Yeah I manage that by treating all mail as low priority and every chat as high priority. People chatting for spam or to bring attention to a low priority inbox gets told to send an email. This way I'm sure not to miss critical messages without relying on pepople self tagging

</comment></comment></comment><comment><USER17> A few years ago I wrote a webmail client to access my mail on the server host. I had developed a web server (in Scheme no less) that was/is running (now on a VPS) and at the time it seemed only natural to extend it with webmail functionality.

The effort was successful (for some definition of success), though it proved a to be a daunting task. It taught me a lot about email, that it's riddled with arcane protocols and dark corners, these "features" pretty much without consistency or order. On top of that there was constructing the UI needed to actually use the thing.

Would I do it again if starting from scratch? I don't think so, it sure seems the hard way to go about it. No doubt I could recommend it as a great learning exercise, but for creating a product I don't think it's the pragmatic way to go.

I've considered publicly sharing my project, but not before refactoring some prodigiously opaque, obscure and convoluted parts, and who knows when I'll have the time (or courage) to tackle it.

Email remains at once a great wonder and horror, yet for all that email continues to be widely used, and remains essential to most everyone. I still use my email client most every day, despite its warts. I guess it's proven its worth after all.

</comment><comment><USER18> Why use email as a to-do list, when it's obviously so poorly suited for the role? Why not use email for things email's good at, and use one of the wide variety of to-do list tools for task tracking?

When you need to refer to an email from a to-do item, there's ways to do that; some clients support direct hyperlinks, and others can be dealt with by just including the date/time and sender or subject of the email in the to-do item's notes, so that you have the information you need to quickly find the message via search. You can also include excerpts from email, or even whole messages, directly via copy-and-paste; after all, it's not as though they are going to change once received, so there's no sync problem to manage.

Granted, this might seem like being more effort than just mapping task list semantics onto email. But the article under discussion here chronicles its author's essentially having reinvented every task abstraction all the way up to the project, solely in order to overcome the inherent drawbacks of trying to use email as a task list. It seems impossible that this could be easier than just finding a task list tool that has the features you need, and learning to use it alongside your preferred email client.

<comment><USER19> > Why use email as a to-do list, when it's obviously so poorly suited for the > role? Why not use email for things email's good at, and use one of the wide > variety of to-do list tools for task tracking?

I've no idea. Some mail clients even give you one-click ways to directly turn emails into todo tasks (ex.: Thunderbird with Lightning, and I think Outlook as well).

<comment><USER20> Because email is a tool you already have.

"Go get a proper application for that" entails a lot of work, including things that can be cognitively difficult like sifting through the giant sloshing sea of half-finished code that is the Internet to pull out a few good candidates. So it's not hard to understand why using a tool you already have (and already understand) would be more appealing.

<comment><USER18> I suppose it doesn't have to be a proper application; I've seen people manage to-do items in Windows Notepad and it seemed to work for them, God knows how. I tend to think in terms of task list management tools because I've gone to the trouble of setting up a CalDAV server and integrating all my computers and devices with it, but the general point could (and, as you point out, really should) be less "you need to go find an app" and more "try thinking about to- do lists in _any_ terms other than email, because anything else will probably be less painful".

</comment></comment></comment></comment><comment><USER21> The repo is here [https://github.com/cperryk/slatemail](https://github.com/cperryk/slatemail) I've no idea how to run the app. It seems to be a graphical node.js application.

<comment><USER22> Hey guys — I'm Chris Kirk, the author. It's an nw.js application (formerly known as node-webkit). Nw.js is basically a framework for building native desktop clients with Node.

Unfortunately I haven't been able to give the client much attention since writing this article. Slate was amazing for giving me a month to work on it and report on that experience, but it's not in the email business. I come back to SlateMail from time to time, but right now the app is not exactly in a usable state. Nylas N1 ([https://github.com/nylas/N1](https://github.com/nylas/N1)) is similar -- an extensible email client based on Web technology. Nylas has a whole team of people on it, and it's in active development. So if SlateMail interests you, I recommend you check Nylas N1 out!

<comment><USER23> Thanks for the kind words about N1! I'm one of the Nylas co-founders. :)

I'd love to get your take on N1, especially given that you've dug so much into email the past few weeks! Shoot me a note? email@example.com

Edit: Just saw this article was actually written in February :P

</comment></comment></comment><comment><USER24> May be the author is a bad programmer — but undeniably, he's a great tech journalist.

<comment><USER25> Hah, very true. Though, we all start off as bad programmers =P

</comment></comment><comment><USER26> He dwells too much upon the age and cruft of email, but this article reads more like a layman learning for the first time about Hofstadter's law, general programming project mis-scoping, and dealing with technical debt he himself created... which is kinda cool to hear about from "the outside".

<comment><AUTHOR> To be fair to him, though, pretty much every programmer I know since I've been working on ([http://inky.com](http://inky.com)) has asked me why it's hard. Email is partly hard because of the historical cruft, but there are genuinely difficult design/abstraction challenges with email as well, and even experienced developers tend to mis-predict how hard it is to make a "real" mail client.

The one exception to this was Carl de Marcken, one of my co-founders at ITA Software, and chief scientist there. He predicted -- correctly -- that it would take us 4+ years to get to an MVP.

<comment><USER2> I agree, at Missive ([https://missiveapp.com](https://missiveapp.com)) it took way longer than we originally thought to get to MVP, ~around 1.75 year (and we only support Gmail/Google app for the moment)

<comment><AUTHOR> Wait until you get to IMAP and Exchange -- you'll learn that you're only 5% done. :(

<comment><USER27> What are some of the most surprising complexities?

<comment><AUTHOR> There are at least 75 nontrivial problems, each of which is worth of its own startup-amount-of-effort. A few random examples:

\- sanitizing HTML email: you must eliminate XSS while preserving the appearance; this requires real HTML and CSS parsing; we do this on the end user's phone at MB/sec rates, which is not easy

\- conversation threading: any email in a conversation that's been sent with Outlook will have stripped the standard threading headers and added the proprietary Thread-Index header, so in practice you _must_ rely on heuristics

\- properly mapping the IMAP/Exchange/POP "database" onto UI views is immensely complex in a real client, and requires exactly the right set of abstractions (which are very subtle)

\- it is a vast understatement to stay that the IMAP protocol is a mess; it is also plagued by some really bad design choices (such as relying on message sequence numbers which vary _by connection_ rather than exclusively using UIDs, which don't).

\- instant full text search over a million message inbox is hard, but this is a real-world use case

\- converting arbitrary MIME emails to HTML for rendering purposes is a huge rathole

\- making offline mode really work (supporting search and modification of cached mails) is complicated, and most clients punt on it (because they are implemented server-side and therefore require a network connection for anything to work)

\- implementing everything server side is (relatively) easier, but requires you to scale bandwidth per user and mailbox, which is expensive; on the other hand, doing everything client-side like Inky does is much harder because you've got tremendous variation among hardware platforms and operating systems, and it's a really heavyweight app

In general, an email client subsumes many other highly nontrivial subproblems, somewhat like a browser does. Just doing the security-related stuff alone properly -- TLS, certs, revocation, encrypted email -- is really labor- intensive.

<comment><USER28> I think sanitizing email is a solved problem with this:

[https://github.com/cure53/DOMPurify](https://github.com/cure53/DOMPurify)

I'm not the author but I've used it in the past. According to the readme it is what Fastmail uses.

<comment><AUTHOR> Probably not fast enough for us, but it is a very nice library. (We use libxml2.)

The reference we test against, by the way, is Mike Cardwell's excellent Email Privacy Tester:

      https://emailprivacytester.com/

Try it on your own mail client!

<comment><USER29> We have no speed problems using this in production at FastMail (we're kind of known for our speed in fact…). We use it at render time, both on desktop and mobile.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> Perhaps Email serves its purpose perfectly: send/receive messages. For everything else, we could either extended it via plugins or create different tools SMS/Chat apps/etc...

<comment><USER31> This.

Email is pluggable, on client and on server side. The basic idea of email is done and finished; everything that extends it should be a plugin.

</comment></comment><comment><USER32> keeping up with email became a snap for me once I discovered mutt and procmail. This post definitely falls under "reinventing the wheel", but I can't say that's a bad thing. Unfortunately, most people's workflow is so different, that having one email workflow/interface just won't cut it, and sometimes it takes a custom solution.

<comment><USER31> Why procmail, why not Sieve on the server side?

<comment><USER33> Which mail providers provide Sieve support ? I see Fastmail does, but Gmail doesn't.

<comment><USER34> _> Which mail providers provide Sieve support ?_

Nobody really does, which I find extremely frustrating since sieve is supposed to be the Internet standard for mail filtering.

Fastmail sort of does, in that they use sieve rules; but last time I looked, they didn't have a managesieve interface, which means I can't just upload the sieve rules I have spent a lot of time creating on my home email server. I have to create them from scratch using Fastmail's rather clunky (IMO) interface.

As far as I can tell, no other email provider uses sieve at all.

<comment><USER35> They do allow you to provide Sieve scripts as text, but you do have to use the Web interface to upload them, under Advanced → Rules, so changes aren't readily automatable AFAIK. Unfortunately, I don't remember exactly where the enable button is for people who aren't using it already, since I'm already using it.

<comment><USER34> _> They do allow you to provide Sieve scripts as text, but you do have to use the Web interface to upload them, under Advanced → Rules, so changes aren't readily automatable AFAIK._

Not only that, but I can't upload them using my email client, which has managesieve support already built in.

</comment></comment></comment></comment></comment></comment><comment><USER36> Liked the article but it produced a weird dissonance in me. On the one hand I totally empathized with his frustration/excitement at building a cool bit of software for himself. On the other hand I've never had problems managing my email inbox, mainly because I don't get that much relevant email.

In particular, since the Gmail tab redesign I've not had an issue keeping my Inbox unread count at 0(though with my Promotions/Updates/Forums tab unread count in the who-knows-how-manies). I guess this confirms his point about email protocols being dinosaurs, since the way Gmail implements its tabs is tied into their client implementations and doesn't work in other email clients.

The overall impression I ended up with was that Slate is simply using email for workflows it was never meant to support and is not very good at supporting. Email chains are not a good way to do project management/planning. It's good that they've started using Slack for chat-like communication. They should adopt some sort of project management app to manage projects. If you've got a user that's used to Gmail, they can learn Trello, for instance, in about an hour.

I tend to think about 3 levels of communication: chatting(text, audio, video); email; project related. Each level requiring additional structure and being a bit more cumbersome to use than the last when writing, but easier to use when reading/searching for information.

In that sense it makes sense to use 3 (sets of) tools for 3 different types of communication. The main downside is that it's somewhat complicated to transfer a conversation from one channel to another. However doing all 3 in one application leads to the risk of making a simple use case too complicated or a complicated use case impossible.

The ideal integrated communication app would need to provide IRC-like chat power, Hangouts/Skype like chat simplicity(+audio/video support), Gmail like email usability and auto filtering, and more than Trello-like project management/collaboration tools(for instance, having Google Doc-style shared documents properly integrated into it). All usable in interfaces designed for the particular level of communication you are engaging it at the time, but allowing you to move 'threads' of conversation up or down the hierarchy easily. I've not encountered anything that does this right. Heck just being able to properly integrate Gmail, hangouts chats and google docs/google doc comments between each other isn't possible and all those are made by the same company.

</comment><comment><USER37> Having built several in multiple languages, I'd recommend for anyone to build their own email client.

It's quite easy to get the basics up and running but quickly becomes tricky getting all of the messages to display consistently. Then you can add embedded images and attachments to the mix. The list goes on and on. But, you really will learn a lot about protocols, parsing text & binary data, working with legacy formats and just all kinds of interesting stuff. Even if you don't wind up with an amazing client, it's still a lot of fun!

<comment><USER8> I'd second that. The basics are easy, but there will be constant niggles relating to RFC2047 header-parsing, MIME-issues, and issues relating to handling some crazy mails that people will send.

I've written my mail-clients in C++, but I suspect Perl, Python, or Ruby, would be fast enough with the massive caveat that you need to have decent libraries/interfaces for the low-level parts.

</comment></comment><comment><USER38> The most salient point he makes is when he says there's a difference in what email was designed and how we use it today. And it sounds like Slate needs better tools.

Do you even Confluence / JIRA (or insert your preference here)? If you'd stop trying to use email as the one tool for everything, you'd stop (or significantly reduce) the times you run into it's supposed shortcomings.

<comment><USER39> the problem with a lot of those tools is that they use email as a notification system. When they should run something more like the notification system for iOS or android. (you have seventeen new notices from jira in 3 issues).

You look at it once, then it is gone and you go to the site to check it out.

</comment></comment><comment><USER40> Isn't Nylas ([https://www.nylas.com](https://www.nylas.com)) supposed to fix this problem?

<comment><USER41> It's hard to say. That web site is so buzzword-driven and content-free that after reading a couple of the pages I still have literally no idea what it does or why I might need it.

<comment><USER23> Hey-- I work at Nylas.

Would love any feedback you have for the site! There's a bit more info on our "Features" page: [https://nylas.com/features/](https://nylas.com/features/) In particular:

> Nylas brings email into the 21st century with modern tools, RESTful > developer APIs, and open source code. Integrating with Gmail or Exchange now > takes minutes instead of months. Nylas is the easiest way to build an email > app.

Pretty much this means we talk IMAP/SMTP/ActiveSync/MIME so your app doesn't have to. Plus there are some nice new features, like a transactional "delta" endpoint and webhooks, which makes writing mail processing code a breeze.

If you're a developer, the easiest place to dig in might be our docs: [https://nylas.com/docs/platform](https://nylas.com/docs/platform) or the open source sync engine: [https://github.com/nylas/sync- engine](https://github.com/nylas/sync-engine)

We also shipped a new desktop email app this fall, which started as a fork of Atom. You can see that code here: [https://github.com/nylas/n1](https://github.com/nylas/n1) Our website is sorely in need of a refresh, but right now our team is busy scaling and fixing bugs like crazy. (Relatedly, if any designers are looking for a job... feel free to email email@example.com !)

<comment><USER41> _Pretty much this means we talk IMAP /SMTP/ActiveSync/MIME so your app doesn't have to._

My first suggestion would be to try putting things like that statement front and centre, and then ruthlessly dump about 90% of the distractions you currently have. That one sentence told me more about what your system _actually does_ than the home page, features page, and a few other areas I scanned combined. Following it with more specific information about how your system can be used and what concrete benefits it offers over what I'm probably doing instead today seems like a good idea.

From the pages I read before, I get that you have a tool that wants to be developer-friendly and fully buzzword-compliant. Of course, so does every other online service whose web site I visit. Unfortunately, aside from being something about e-mail, contacts and calendars, there is _literally nothing_ on the pages I saw that tells me what your particular service is for or why I might want it, which is kind of a dead end.

Another point you might like to consider is that your docs repeatedly talk about things like integrating with some e-mail related service. However, "integration" is an empty word here. The back end code for various projects I work with already sends transactional mails via some service provider's mail servers just fine with the usual one-liners. It probably already integrates just fine with some well-known mailing list management services for larger- scale communications, too, again with close to one-liners. So we come back to what does the integration your service offers _actually do_ with mail and calendars and contacts? Systematically process incoming mail? Manage a mailing list? Send lifecycle mails when someone new signs up? IMHO, something needs to say, very clearly and very early, what your USP is.

<comment><USER42> Completely agree, a bit frustrating guessing at lines like 'Nylas removes the pain of integrating your app with email ...'

</comment></comment></comment></comment></comment><comment><USER43> Another, much longer and more technical view of the complexities of email clients:

Why email is hard by Joshua Cranmer of Mozilla:

[http://quetzalcoatal.blogspot.com/2013/09/why-email-is- hard-...](http://quetzalcoatal.blogspot.com/2013/09/why-email-is-hard- part-1-architecture.html)

</comment><comment><USER44> I couldn't help thinking of Google Wave while reading this. There was one missing feature that made a handful of my friends and I stop using it: regular GMail in the same client.

If we didn't have to switch back and forth, Wave would have slowly grown to dominate most electronic conversations I had with friends and colleagues.

Sigh.

<comment><USER45> That's exactly why I actually liked Buzz... It was integrated with Gmail.

</comment></comment><comment><USER46> We are working on this same problem providing unlimited, disposable, email for all.

We are getting close to something similar to an alpha version, feel free to subscribe: mailroad.co/

<comment><USER47> The CSS negative margin you've applied to `.row` is causing your page to add vertical scrollbars. You should remove the padding from `.container-fluid` and apply margins to the inner elements to stop it. It looks naff.

<comment><USER48> Can you explain 'naff'?

I looked it up (I've never encountered it) and it seems to be a (British) verb.

<comment><USER49> [http://www.urbandictionary.com/define.php?term=naff](http://www.urbandictionary.com/define.php?term=naff)

</comment></comment></comment></comment><comment><USER50> Aren't there already email solutions out there that treat email as a to-do list, divide it into discrete projects and so on? I believe there should be some, based on Allen's GTD method, if nothing else. ([https://en.wikipedia.org/wiki/Getting_Things_Done](https://en.wikipedia.org/wiki/Getting_Things_Done))

</comment><comment><USER51> This is an interesting read, when I saw a few of the comments here ask "how hard can it be?" I was reminded of this presentation by Rik Signes at YAPC::NA (2008)

Email Hates the Living

[https://www.youtube.com/watch?v=4s9IjkMAmns](https://www.youtube.com/watch?v=4s9IjkMAmns)

</comment><comment><USER52> > _I found the process frustrating, humbling, and strangely fun. I imagined I > was on CSI—but instead of a person, it was my app dead on the floor, and I > had to find out who killed it and how_

What a great way to think about bug-fixing!

</comment><comment><USER53> How is Slack different from IRC or using netcat on a LAN?

<comment><USER54> managed permissions, built in history (doesn't rely on you being connected to get a log of a conversation that happened when you were gone), great full text search, integrated rich content (posts, videos, images) which are also searchable in the same way, adding context to conversations, built-in system for notifying people, channels, and groups, with centralized options to tailor those notifications to yourself, a fully featured mobile application that synchronizes with the desktop app seamlessly.

Slack basically removes the requirement for you to have an IRC server, client, and a suite of IRC scripts and bots. It unifies the experience across the team, which, yes, does remove some levels of customization you would get from your personal IRC client, but in practice, it's been a highly productive work- chat tool.

I've basically replaced Dropbox as my source for important files, instead, putting them into a Slack channel. That way what ever made that file relevant is surrounded by the chat that necessitates the file.

It's not for everyone, and I don't think anyone would claim it should be, but if you work on a team, especially a distributed one, Slack brings a lot to the table "batteries included."

<comment><USER55> Yes, but what happens when Slack goes away?

<comment><USER54> We'll move to another tool.

Do you still have your IRC logs from 15 years ago? That's a loaded question. I know some people do, but most people don't and most people don't need them.

We put things all over the place that include "what ifs" – what about files in dropbox, or emails in gmail?

Everything includes some level of trust and some level of acceptance of ephemerality or potential loss.

Personally, everything in Slack is work related, not personal, so it can go away, just like I could get fired, or quit, and never have access to it again. If there's something I want to keep, I'll keep it somewhere I believe is safe and permanent, that's up to me, not Slack, or the tools I use.

I also have a reasonable expectation that Slack would provide some sort of export/dump of data, similar to what twitpic did, or any other business does when they sunset. This doesn't always happen, and it's not fair to assume it would, but I trust Slack because they've done a very good job at being responsive to their customers' needs thus far.

</comment></comment></comment></comment><comment><USER56> I still believe that multi-part e-mail conversations can be cleaned up with a few "diffs" and presented in a chat-like view.

</comment><comment><USER57> "When Gmail launched as a public beta in 2007" \- Wasn't it April 1, 2004?

</comment><comment><USER58> Discover Emacs with powerful Gnus.

<comment><USER59> I have stayed aways from Guns because I thought it was a newsreader, and I have no interest in Usenet. Is it a good email client too?

<comment><USER60> Short answer: Yes.

[http://gnus.org/manual/big-gnus.html#Getting- Mail](http://gnus.org/manual/big-gnus.html#Getting-Mail)

</comment></comment></comment><comment><USER61> Addspam;DR</comment>


Nokia is one of the most active Android contributors, and other surprises - <AUTHOR> http://carlodaffara.conecta.it/nokia-is-one-of-the-most-active-android-contributors-and-other-surprises/

<comment><USER2> Isn't that a slightly misleading title?

Seems like Android uses some code from projects that Nokia has contributed to, and those libraries are low level OS stuff also used in Meego etc. The title gives the impression Nokia contributed directly to Android.

</comment><comment><USER3> The study very strangely excluded the Linux kernel, but included other 3rd party open source components --- including dbus and the bluetooth stack, to which Nokia has made contributions.

If they had included the kernel, Nokia would have vanished into the noise. If they had not included any 3rd party external components, then Nokia wouldn't have shown up either. In other words, the statistics are they way they are only because of a very strange choice of what to count and what not to count. Did someone chose them just so they could make a sensationalistic headline and grab web hits? You decide...

</comment><comment><USER4> _(many tens of project – included, to my surprise, a full Quake source code…)_

anybody knows why there is Quake in Android? Some hidden easter-egg maybe(I don't have a android phone)?

</comment><comment><USER5> Definitely a funny find, but to say

> Nokia is one of the most active Android contributors,

when Nokia contributions are about 1% the size of the most active contributor (Google) (and they are far less than 1% of the total contributions) is a misdirection.

(And, as the article states, they aren't Nokia contributions to Android, but to open source in general, that ends up being used, among other places, in Android.)

</comment><comment><USER6> ~0.7% of the commits were from Nokia.

What shows this?

Android is Google. Google is Android. Google decides.

</comment><comment><USER7> Nokia was actively considering android for about 14 months so its not surprising that there would be code commits from Nokia.

Although, internal politics had its impact certainly the obstacle of getting Nokia mobile services such as Maps, etc on android was the final no vote of going with android.

<comment><USER8> That's not the reason why there is code written by Nokia employees in the Android source tree (as the article points out, by the way). The reason is that Nokia has become a significant contributor to the Linux kernel (e.g. UBIFS, drivers for TI SoCs, ...) and some Linux userspace projects (e.g. bluez and D-Bus) following the acquisition of Trolltech (Qt has a significant presence on Linux, obviously) and their Maemo and MeeGo Linux-based mobile operating system efforts. And a lot of that stuff is sitting in the Android source tree, and some of it is also in actual use in Android production system images.

OTOH I'm not aware of any Nokia contributions to the Android-exclusive parts of the Android source tree.</comment></comment>


Parsyncfp – a parallel rsync wrapper for large data transfers - <AUTHOR> http://moo.nac.uci.edu/~hjm/parsync/

<comment><USER2> Hey, it seems to be like a great idea! but do you position parsyncfp related to the new fpsync utiliy now embedded in the fpart package?

</comment><comment><USER3> it reminds me of Gitlab guy [https://about.gitlab.com/2015/03/09/moving-all- your-data/](https://about.gitlab.com/2015/03/09/moving-all-your-data/)

That kind of options paralleling rsync using batches of files is a really efficient solution IMO</comment>