Mike Daisey responds - <AUTHOR> http://mikedaisey.blogspot.com.au/2012/03/reports-of-my-death-have-been-greatly.html

<comment><USER2> _"I apologized in this week's episode to anyone who felt betrayed. I stand by that apology. But understand that if you felt something that connected you with where your devices come from—that is not a lie. That is art."_

I have problems with someone re-iterating the sincerity of their apology followed by "but". Standing by an apology means not machine-gunning it with caveats seconds later.

 _"I told Ira that story should always be subordinate to the truth, and I still believe that. Sometimes I fall short of that goal, but I will never stop trying to achieve it."_

The indignation in this statement is toxic. Dishonesty - fabricating facts and then dissembling to cover it up - is not an oopsie that we try and avoid. Trust is a cornerstone of civilization and more so for anyone in a journalist- activist function. Having a position doesn't entitle you to make up facts. Having an audience that should fact-check aggressively doesn't mean you get to actively challenge this faculty.

You assumed we, the audience, were too dumb to get the meaning from the actual facts and so juiced it up in accordance with how much brighter than us you _know_ yourself to be. Now you're playing the victim.

You asked people to open their eyes and think critically. Sorry we didn't stay on the hamster wheel as we were supposed to.

<comment><USER3> After lieing the way he did he finishes by talking about honesty? Seriously? I wonder how much he made off of this whole debacle, I doubt that he did it for free out of the kindness of his heart and to bring these "terrible things to light". I have the same issue with Michael Moore and "Sicko" what he showed about the Cuban healthcare system was a lie/fabrication I know because my wife lived there until 2005 when she was granted her American residency. Always look for the agenda before you believe something like this, trust but verify.

</comment></comment><comment><USER4> One of the unfortunate aspects of this episode is that, as Daisey says, the problems he discusses are mostly real. __He didn't have to lie __.

For example, he could have talked about the N-Hexane poisoning without lying. He could have cited news reports, or traveled to interview people, or done it over the phone, or even gotten the info from secondhand interviews. He could have said "imagine a man who..." and proceeded to paint a painful picture based on the facts that were already public.

But he didn't. He chose to pretend he had met these people. He would say that made the story more emotionally impactful, and maybe that's true. But it also poisoned it. It was a very condescending move to pull on his audiences; there is neither artistic nor factual integrity in it.

If he had stuck to the facts, he would still have had a great performance. Too bad.

<comment><USER5> I felt the same. Having listened to yesterday's This American Life retracting the prior show, it seemed that he completely fabricated the story of the 12 and 13 year-olds. Even according to his story, which doesn't make sense, he met an English-speaking 13 year old and simply _assumed_ that her friend was 12.

Everything else appeared to be merely stretching the truth, retelling factual events as if they were witnessed first hand, and other things for which I'd be willing to grant some artistic license, provided it were told with a disclaimer.

<comment><USER6> He _said_ he met a 13 y/o but the translator said he didn't.

I can't believe that he met a 13 y/o factory worker who spoken English.

I wish people would stop excusing his bullshit. This goes way beyond 'stretching'.

<comment><USER5> Uh. I think I clearly delineated between what seems to be a blatant lie (meeting a 12 year old) versus artistic license or stretching the truth, which is what much of the rest of it was.

If you listen to the latest TAL you'll hear what I mean. It's _conceivable_ (though very unlikely) that he met a 13 year old -- while the interpreter was distracted -- who spoke enough English to say she was 13. However, when Ira asks him directly whether the supposed 13 year old said her friend was 12, or if he just assumed (i.e. fabricated) that she was, he has no answer. It's the one place where he has absolutely nowhere to go: he can't claim artistic license with retelling of factual news reports, and he can't claim the interpreter simply wasn't listening at the time, he simply talked himself into a corner.

</comment></comment></comment></comment><comment><USER7> News flash bud, when you lie to your audience you lose all credibility. This isn't new. "I didn't lie MUCH! There is some truth in there!" is great but your brand has been tarnished in a major way. The fact that you're sitting there acting like Ira Glass is the asshole for drawing attention to the fact you put his reputation on the line -- NPR's reputation -- that you lied to millions of people, tells me you live in a fantasy world.

Hope this dude goes down in flames forever. No character trait I hate more in the world than people who have convinced themselves that it's ok to lie.

<comment><USER8> Your first stament is wrong. Theater requires you lie to your audience. For example, there are two movies coming out about Abraham Lincoln this year:

<http://www.imdb.com/title/tt0443272/> <http://www.imdb.com/title/tt1611224/>

Clearly one of these is an outright fabrication of the events of Lincoln's life.

In the other Steven Spielberg is going to produce a film that is 100% fabricated and yet people are going to gush about the truth of Abe Lincoln that it captures. The sets will be fake. Most of the dialogue will be made up and dramaticized. No one will question this. No one will care.

Mike's issue was that he wanted to do more and he shouldn't have. He should have stayed off of NPR, out of print, and off the talk shows.

I still think that his show is closer to "Lincoln: The sixteenth President of the United States guides the North to victory during the Civil War" than "Abraham Lincoln - Vampire Hunter: Abraham Lincoln, the 16th President of the United States, discovers vampires are planning to take over the United States. He makes it his mission to eliminate them."

</comment></comment><comment><USER9> > _He's a storyteller within the context of radio journalism, and I am a > storyteller in the theater._

This comment is pretty offensive. Journalists do tell stories, but they make sure those stories are true, verified, factual.

> _Given the tenor of the condemnation, you would think I had concocted an > elaborate, fanciful universe filled with furnaces in which babies are burned > to make iPhone components, or that I never went to China, never stood > outside the gates of Foxconn, never pretended to be a businessman to get > inside of factories, never spoke to any workers._

But now people will assume that the facts about abusive conditions at developing nation factories (not just China) are created by people like Daisey; that they're on a par with 'babies burning to make iPhones'.

Using babies to make his point is particularly unfortunate because there are suspicions that some factories force women to have abortions. Obviously abortion is so political and polarised it's impossible to find any credible data. Most people agree that forced abortions (whether from the state but especially from employers) are not acceptable. Here's one newspaper article, which doesn't mention factories.

([http://www.washingtontimes.com/news/2010/jun/2/women- forced-...](http://www.washingtontimes.com/news/2010/jun/2/women-forced-abort- under-chinas-one-child-policy/))

In general, life for poor people in China sucks. That doesn't mean we should accept abuse in factories to produce luxury goods for rich people.

<comment><USER10> _"Journalists do tell stories, but they make sure those stories are true, verified, factual."_

Some of them do. Sadly, it's somewhat of a dying art. The retraction episode of This American Life might be the apex of such activity in traditional journalism for all we know. Most other news outlets fall far short of that standard.

<comment><USER11> So, I'm a software developer that joined an investigative journalism non- profit 6 months ago.

There is awesome investigative journalism going on. We even hold two conferences a year about it, one focused on investigative stuff specifically (<http://ire.org/conferences/ire-2012/> ), and one focusing on news technology (<http://ire.org/conferences/nicar-2012/> ).

I certainly can't claim that investigative reporting (or any reporting really) is doing as well as it has in the past, given the massive attrition in the news industry, but there are a lot of reporters out there who are fighting the good fight.

We even put out a newsletter of investigative stories: <http://ire.org/blog/extra-extra/>

Edit: don't forget ProPublica's awesome #muckreads blog (<http://projects.propublica.org/muckreads/> ).

</comment></comment></comment><comment><USER12> This is a really well written response by Mike, but frankly I'm not convinced. Not in the least. And to accuse Ira Glass of unfair editing (with the dead silences and all) really takes the cake. I think Ira gave Mike every opportunity to come clean, and he didn't. Only when directly confronted with facts contrary to the story did he shift his position, and then only so slightly as to keep his main story intact.

As far as I can tell Mike is only sorry he got caught.

</comment><comment><USER13> This is well stated, but it's the same old "the end justifies the means" reasoning that's long been a comfort to many liars, cheats and thieves.

Yes, Chinese labor sucks compared to a fat American lifestyle, but hyperbole and outright fabrication has now trivialized that issue. A good reporter does not insert themselves into the story if they're serious about the subject matter.

</comment><comment><USER14> What is fundamentally flawed with the state of journalism is not what Mike Daisey does. He's an actor who created a one man show.

What is flawed is that journalists continue to mistake his one man show for investigative reporting. The extent to which it is occurring borders on the deliberate.

Rob Schmitz's investigation is the journalistic equivalent to revealing that Julius Caesar could not have said:

      Forget not, in your speed, Antonius,
      To touch Calpurnia; for our elders say,
      The barren, touched in this holy chase,
      Shake off their sterile curse.

because he did not speak Elizabethan English.

Schmitz should be able to distinguish between a news report and entertainment. He should be able to provide context for the large themes in Daisey's performance given that they coincide with his own journalistic reports for Marketplace. He could have done actual journalism, instead he conflated theater with journalism and then revealed it as theater while pretending to conduct journalism.

[http://www.marketplace.org/topics/business/apple- economy/app...](http://www.marketplace.org/topics/business/apple- economy/app..).

[http://www.marketplace.org/topics/tech/apple- economy/china-c...](http://www.marketplace.org/topics/tech/apple- economy/china-c..).

Ira Glass from the transcript of the original This American Life piece:

      When I saw Mike Daisey perform this story on stage,
      when I left the theater I had a lot of questions.
      I mean, he's not a reporter, and I wondered,
      did he get it right?

The journalistic failings fall on journalists. Mr. Glass knew Daisey wasn't a reporter all along.

[http://www.thisamericanlife.org/radio- archives/episode/454/t...](http://www.thisamericanlife.org/radio- archives/episode/454/t..).

</comment><comment><USER15> I saw this tweet yesterday after listening to the TAL program. He says his work should be treated differently because it's theater, and yet the program notes seen here state:

"THIS IS A WORK OF NONFICTION."

[https://twitter.com/#!/afgld/status/181439210643931136/photo...](https://twitter.com/#!/afgld/status/181439210643931136/photo/1)

Daisey doesn't understand that, "I'm sorry. I lied. Please forgive me," would have went a lot further than what he's doing now.

</comment><comment><USER16> "... and finishing the episode with audio pulled out of context from my performance was masterful."

As apologies go, a raised middle finger on the way out the door would convey the same sentiment less disingenously.

</comment><comment><USER17> My monologue was a fabrication, but they _edited_ me!

</comment><comment><USER8> Was Jean Valjean really at the barricade?

I've been following Mike Daisey for a few years. He's really good at what he does and he's really open with his fan base. You can find a number of his monologues here: [http://itunes.apple.com/us/artist/mike- daisey/id2085588?mt=1...](http://itunes.apple.com/us/artist/mike- daisey/id2085588?mt=11) (I particularly liked the Nicola Tesla Monologue)

Notice that he has one called 'All Stories Are Fiction'.

I think Mike got caught up in a multi-media world when he's a one media kind of guy. That media is theater. It is a world where people pay lots of money to watch other people try as hard as they can to convince the viewers that they are in the streets of Paris and there is a might battle being waged. In the end the audience feels something. And that is the goal.

The problem is that Mike let this 'feel something' get ahead of the burden that the programs he was appearing on are under.

If Mike Daisey comes to your town and you don't go because of this, you're being petty and missing a great show.

That being so, he should get away from journalism because people that produce that content have no room for theater.*

*of course there is fox news.

<comment><USER18> > If Mike Daisey comes to your town and you don't go because of this, you're > being petty

"If you don't give money to someone because of their past of intellectual dishonesty, you're being petty" doesn't have the same ring to it, does it?

<comment><USER8> That is the whole point. He was not attempting to be intellectually honest. There is no room for intellect in the theater. If you walk into Les Mis and use your intellect, the second you see that turntable in a prison camp you're going to yell, 'thats bulls __*' and storm out.

I should have said if you don't go hear someone tell a story because of their past storytelling, you're being petty.

<comment><USER6> He wrote an op-ed at the NYT. You can't seriously claim he was just telling a story and should be allowed flexibility with the truth.

<comment><USER8> He shouldn't have done that. His show belongs in the theater. It is a great piece of theater that pushes people to think about where their crap comes from. The things he talks about happened and do exist as themes in globalization.

I think he got caught up in the fact that he started having an effect(and one that was needed) and didn't know how to operate in that environment.

<comment><USER6> Should he have been on MSNBC or any of the talk shows he has been on in the past 2 months?

Please stop making excuses for this piece of shit.

<comment><USER8> He should not have been on those shows unless he was talking about his play.

<comment><USER18> OK, so now remind me why I'm "being petty" if I don't give him money because of this.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> _"Especially galling is how many are gleefully eager to dance on my grave expressly so they can return to ignoring everything about the circumstances under which their devices are made. Given the tone, you would think I had fabulated an elaborate hoax, filled with astonishing horrors that no one had ever seen before."_

I think that's a really important, fair point. Whatever this guy lied about with regard to his personal experiences in China, those things are minor compared to the _truth_ of the situation. I really wish he hadn't done that. He didn't need to lie -- the story is so fundamentally awful that it stands without the minor things he fabricated. But now people are dismissing the whole message.

The dramatic indignation in the other comments in this thread is predictable, unenlightening, and unhelpful -- far more heat than light. The most dangerous thing about this controversy is that people will take knee-jerk reactions to Daisey as an indication that nothing is wrong with the world of electronics. And that's a tragedy, in the most traditional sense of the word.

<comment><USER20> Therein lies the great irony. By partaking in intellectual dishonesty, Mike Daisey has created an unnecessary sideshow that is stealing away the spotlight from the real issue.

I'm bothered, in part, by the fact that Apple is the target in all these attacks. There are some very large questions on the table here, and Apple is but one player. Arguably, they're putting the most effort in to trying to improve. Where's the outrage for Samsung? For HTC? For Dell?

How about western consumers? Even those of us who are aware of the issues, yet somehow find a way to resolve spending $499 on our latest 9.7 inches of retina exploitation? Even further, what happens to the world economy without $300/month labor by the millions?

I guess a narrative needs a villain. I just hope that everyone maintains some sense of perspective. We're not talking about the practices of one corporation here. We're talking about a major component of consumerist culture. That's the conversation, and it's being ignored at every turn.

<comment><USER19> Absolutely agreed. Daisey lied about some relatively minor stuff (in the big picture), so the attack is against Mike Daisey.

The straw man is dead. Long live the straw man.

</comment></comment></comment><comment><USER21> "There is nothing in this controversy that contests the facts in my work about the nature of Chinese manufacturing."

Nice bit of misdirection there.

</comment><comment><USER22> <satire> It wasn't the truth, but hey at least it was truthy.

That's enough nowadays, isn't it?</satire>

</comment><comment><USER23> I haven't really followed this whole story, but I live a few blocks away from Foxconn's factory in Shenzhen and I know a few people who work there. I'd be willing to do some light investigative work in my free time for the HN community if there's interest.

</comment><comment><USER24> "Felt betrayed" should be changed to "was betrayed", then it would be a true apology. Otherwise, it is just a sort of blaming the victim.

</comment><comment><USER25> Standing behind the lie is easier than admitting the truth.

Dude got caught. The Dateline piece confirmed your untruths. Man up!

</comment><comment><USER26> What I found interesting in the This American Life episode over the weekend is that Mike Daisey claimed that the reason why he didn't retract his story before is that he was afraid that it would undo all the 'good it had done' in spreading 'the truth'. At the same time, he suggested that it was he felt it was his best work yet. I suspect that he really feared the disintegration of 'his best work' when the lies were uncovered, and his supposed fear of un- doing the 'good' his story has done was really just another layer of justification. There are certain personality types that will justify anything questionable that they do - and those justifications are often complex with many layers.

</comment><comment><USER27> The popularization of PR-speak in North America is unfortunate.

</comment><comment><USER28> Jesus. How did this guy ever get a job as a radio journalist?

<comment><USER29> I think he claims to be a performer that "weaves autobiography, gonzo journalism, and unscripted performance to tell hilarious and heartbreaking stories"

It's convenient, I suppose. When his journalism falls short, he calls himself a performer. When his stories are incredulous, he calls himself a journalist.

</comment></comment><comment><USER30> tldr: I lied, but what I lied about is actually true, so there ... btw I'm kinda sorry I lied.

what a guy.

</comment><comment><USER31> I assumed everyone understood that the monologue was part fabrication. It fit together so well that it couldn't have happened as it was told. Frankly i'm surprised at the outrage. I thought it was masterful storytelling that pointed out a genuine problem. I don't care if it's not 100% factual.

<comment><USER32> The story wasn't just "not 100% factual," it was substantively misleading.

For example: A huge part of the story was about 12 and 13 year old kids that Daisy met at the factory gates. He says he saw lots of them, and he suggests that this is the norm. Other reports suggest this is very rare.

The story isn't true using the conventional definition of true... and it isn't true even using Daisy's theatrical definition of true.</comment></comment>


New SEC Rules Make General Soliciations Useless. (actual title sensationalistic) - <AUTHOR> http://www.angelcapitalassociation.org/blog/new-sec-rules-could-kill-angel-investing/

<comment><AUTHOR> The blog post's actual title is "New SEC Rules Could Kill Angel Investing". But this is not really the case.

The appropriate title for this blog post: "New SEC Rules Make General Solicitation mostly worthless. Carry on with Private Offerings as if it didn't exist."

Smart startup companies raising money will be wise to determine whether or not they want to do a general solicitation given all the limitations ($1M total, disclosure and safe harbor rules) and the access to savvy investors who won't want to provide disclosure among other issues. I see only certain types of companies (the ones who don't have sufficient angel investor connections or capabiltiies) going the general solicitation route. Those who are savvy or have the connections will just stick with private offerings and not bother.

Fred Wilson discusses this more at length here: [http://www.avc.com/a_vc/2013/08/some-thoughts-on-the-secs- ru...](http://www.avc.com/a_vc/2013/08/some-thoughts-on-the-secs-rulemaking- on-general-solicitation.html)</comment>


Non-intuitive hack to reference check hires quickly - <AUTHOR> http://www.wikihow.com/Reference-Check-for-Employment

<comment><USER2> These are good (albeit mostly intuitive) reference checking tips. What amazes is me is how rarely anyone bothers to check references. I've been listed as a reference many times, but estimate I've been called much less than 10% of the time. That's probably because it's a pain to do this, and many companies won't give you helpful responses (and it may be that no one cares what I think), but all this suggests to me that the most important reference checking tip is to do it.

<comment><AUTHOR> True on the best hack being to actually DO referencing.

That said, I thought the non-intuitive hack here was the trick about contacting the references and asking them to call you back as a sign of their view on the quality of the potential hire.</comment></comment>


Introduction to R Programming - <AUTHOR> https://cecilialee.github.io/blog/2017/12/05/intro-to-r-programming.html <comment><USER2> One really underappreciated aspect of R is that it's a lisp at heart. This enables the user (and enterprising package writer) to build really clean abstractions for the task at hand.

The tidyverse suite of Hadley Wickham is a great example of this, notably with the pipe operator %>% (similar to |> in F#) which is not part of the base language and yet could be very easily implemented. Julia's macros probably enables the same type of implementation, but I don't see how one would achieve it as easily in Python for example. Non-standard evaluation is another example of R's lispiness in action [0].

Also, consider how easy it is to walk R's S-exp. Expressions in R can only be one of four things: an atomic value, a name, a call or a pairlist. Wickham's Advanced R has a great intro on this [1].

I believe Wickham's amazing work with tidyverse (which really changes the way you code in R) is just the beginning of a rediscovery of R's inner lisp power, a kind of "R: the good parts" moment.

[0] [http://adv-r.had.co.nz/Computing-on-the- language.html](http://adv-r.had.co.nz/Computing-on-the-language.html)

[1] [http://adv-r.had.co.nz/Expressions.html](http://adv-r.had.co.nz/Expressions.html)

<comment><USER3> Anyone with a programming background getting into R should absolutely go read _Advanced R_. I've been using R off and on for a while now but Advanced R was a real revelation. All of R's weird behavior finally made sense.

Edit: Also there is a 2nd edition in the works: (confusingly hosted at the same subdomain of a different version of Hadley Wickham's website. [https://adv-r.hadley.nz/](https://adv-r.hadley.nz/)

<comment><USER4> The subdomain confusion will get resolved once the 2nd ed is a bit more mature so I can just redirect the 1st ed.

</comment></comment></comment><comment><USER5> I have seen HN crowd hating R very similar to hating js. While I'm not getting into those details, I'd like to list a few reasons why I like R:

\- RStudio is simply great. I know Python has got Jupyter notebook but RStudio makes a good IDE for anyone (even beginners).

\- Python is great because it's easier for beginners to start doing magick without getting frustrated hence a good beginners language and it is more appropriate for R because anyone who wants to begin with Data Analytics, R is a lot easier - without trying to figure out how to install a new package, load a new package, make a plot or anything of that matter. Hence the fall out rate would be less.

\- Tidyverse. Without denial, it's a better Universe than Marvel's cinematic universe. Not a single day in my job goes without using dplyr.

\- While I've quoted tidyverse in general, ggplot2 - embracing the grammar of graphics has set a very nice standard for visualization libraries which matplotlib (the goto library of Python doesn't offer much)

\- Pandas is nothing but a library built on Numpy to offer R like data wrangling functions hence I'd like to consider dplyr and R's inbuilt data manipulation functions superior.

There is no doubt that Python has its own advantages with single library scikit-learn and webservices, R is no way to be hated.

Even millenial companies have found interest in R [https://medium.com/airbnb- engineering/using-r-packages-and-e...](https://medium.com/airbnb- engineering/using-r-packages-and-education-to-scale-data-science-at- airbnb-906faa58e12d)

Edit:

Missed _RShiny_ to simply create a web app (unlike in Python starting a Flask server and then writing stuff on top of it)

<comment><USER6> I don't understand the Jupyter hype. Sure it's clever that it runs in a browser but it's less capable than the MathCAD I remember using in the 90s.

<comment> cup-of-tea Indeed. I used Maple for the same thing.

I think the hype is due to the fact that the literate programming thing is a good idea but many people haven't seen it before and there aren't many tools for doing it. I just wish I could use a proper editor with Jupyter. Editing in the browser is horrible.

<comment><USER7> I believe emacs org can be used for this kind of notebook developement, however it looked like a configuration nightmare so I still haven't dived into it.

<comment> cup-of-tea It's actually pretty easy to set up for general use. I do know and use emacs lisp, but I've not really used any at all for org-mode.

It does support "sessions" which allow persistence across the code throughout the document (you could even have multiple sessions), but the wat it's done for Python is quite hacky. It uses an interactive Python shell so you have to write code as if you're using the shell (double returns etc.) There is a better way using ob-ipython, but after spending a long time getting it to work at all I found it not good enough. Using Jupyter kernels is the way to go, I think, but it would be a lot of work to get it working well with org-mode.

</comment></comment></comment></comment></comment><comment><USER8> I know many people think otherwise, but I hate R for many reasons. Here are some of them:

\- You can use '=' and '<-' to assign values to variables and both do the same, except in a few edge-cases where you now spend one week finding the error

\- It confuses and mixes functional programming and oop not only per entity but also between the usage of them. Want to get a value of entity X? use x.getValue(). Want to get a value of entity Y? Use Y.getValue(y).

\- The ide crashes once an hour and does not detect file-changes which forces you to restart it manually.

\- People say R is the best and optimized for data-analytics which is simply not true. It's a marketing-lie spread by the creators. There is no data- analytics-task that you cannot do with the same ease in other programming languages.

Disclaimer: My big-data-profs enforced me to use R even for tasks where R should not be used.

<comment><USER9> I complain about this every time a post on R programming comes up here, but my favorite thing to hate (our of many) about R is that there's no way to find out what the directory of the current script is. Imagine someone would want to use relative paths to their data files so that they could version control their scripts and run them unmodified on different machines! We wouldn't want to enable such abominations now would we!

<comment><USER10> rstudioapi::getActiveDocumentContext()$path

I believe thats is what you are looking for.

<comment><USER9> Yes, and now I want to also make it work when not invoked from RStudio; and for various R version. So now I find myself wrapping all these options into a function, which I have to copy for every 10 line script. So then I make a package for it; or use the functions in someone else's package and add a dependency which I'm not sure will still work a year from now.

Or I could just use a sane language and go home in time for dinner.

(I mean I know about all the solutions and non-solutions; I've looked into this at least a dozen times over the last 5+ years. My point is that this shouldn't have been an issue in the first place.)

<comment><USER10> You are absolutely right, but then either you first post was missworded or I missunderstood the issue (most likely the latter), as there is a way to know the directory of the script.

100% agree with R is not a sane language.

<comment><USER9> Ah yes now I see - I said 'there's no way to find the current script' which isn't true. So that's probably what the others in this thread are also objecting against :) I guess what I meant was 'there's no same way' or 'look at how hard it is to do this tiny thingy which anyone with a programming background would find so basic, they wouldn't even consider it might not exist'. So yeah, I did screw up on making my point there.

</comment></comment></comment></comment></comment></comment><comment><USER11> A few weeks ago I had to do some data transformation (just a few thousand lines of data). Because I have some history with Excel I startet LibreOffice and wrote some formulas. After a few days I reached the point when LibreOffice required one and a half hours to recalculate the formulas.

That was the moment when I asked a friend of my who has some R experience to help me with the basics (yes the syntax is kinda weird at the beginning). After 4 hours of learning by doing we had the same result as what I had reached in a few days of work with LibreOffice and it calculated everything in about 17 seconds. Yes, this time I knew exactly what I wanted and R can do much more efficient transformations than you could ever do with a spreadsheet calculator. Nevertheless I was quite happy with the result.

As I am normally use to code with vim and tmux I use R just like a (bash)-script with the following shebang:

      #!/usr/bin/env Rscript

That way I can throw it into a _watch myScript.R_ while I write it in vim in a different tmux pane. That might have some disadvantages compared to RStudio (e.g. can't view graphics in a terminal), but as it fits very nicely into my normal workflow and performs very well, I am very happy with that solution.

<comment><USER12> Have you tried Nvim-R?

I love it.

You can send a line to the R console using <space>. I've assigned loads of keyboard shortcuts beginning with your local leader that will do things like str(), levels(), head(), tail(), sum() on the object under the cursor.

It works fine with plotting figures, and I think you can set it up with tmux, though I use vim's buffers.

Haven't seen any disadvantages to compared to Rstudio yet. I guess you could even do :!git add ... from vim.

[1] [https://github.com/jalvesaq/Nvim-R](https://github.com/jalvesaq/Nvim-R)

<comment><USER13> Just to settle the Vim vs Emacs debate in the context of R, I refer you to R FAQ 6.2: [https://cran.r-project.org/doc/FAQ/R-FAQ.html#Should-I- run-R...](https://cran.r-project.org/doc/FAQ/R-FAQ.html#Should-I-run-R-from- within-Emacs_003f)

</comment></comment></comment><comment><USER14> The book "R for Data Science" by Garrett Grolemund and Hadley Wickham (O'Reilly, 2017) [1] provides a comprehensive introduction to modern R and a set of packages known as the tidyverse. Highly recommended.

[1] [http://r4ds.had.co.nz/](http://r4ds.had.co.nz/)

<comment><USER15> Hadley Wickham also has an Advanced R book [0] which has some of the functional programming concepts that you can use in R

[0]: [http://adv-r.had.co.nz/](http://adv-r.had.co.nz/)

<comment><USER14> I can't believe you start counting at 0 ;)

<comment><USER15> It's a common theme on HN, I copied it from other comments when I first started commenting here

<comment><USER16> It's also a common theme of those complaining about R that it starts with 1 rather than 0 like a "real" programming language: [https://stackoverflow.com/questions/3135325/why-do-vector- in...](https://stackoverflow.com/questions/3135325/why-do-vector-indices-in-r- start-with-1-instead-of-0). Now that you've outed yourself as an insidious traitor, Hadley will be by shortly to take back your copy of the book. At least, that's how I read the smiley.

<comment><USER15> Ah, thank you for the explanation. You'll probably get done for being a snitch.

</comment></comment></comment></comment></comment></comment><comment><USER17> To save others some of the head-banging sessions I've had with R:

R has an integer division operator, %/%. R gives you the ability to define your own infix operators, as long as you give them symbols that start and end with %. Here's the kicker--all such operators have a higher precedence than multiply and divide, which can lead to unexpected results.

R as a programming language can be frustrating. It has scalar values; you just can't store one in a variable (it becomes a vector of length one). Some functions and operators will work with vectors of arbitrary length... but some require a vector of length one.

(Speaking of which, binary operations on vectors are done by adding corresponding elements, BUT if one operand runs out first, it will start picking them off from the beginning again, with a warning if the length of the longer one isn't a multiple of the length of the shorter one. This may be surprising.)

The wonky list notation takes time to get used to: foo[1] gives you a sublist; chances are you want foo[[1]].

Deciding which of the *apply() functions you want can be a pain. What passes for lambda expressions in R is clunky.

m:n gives you a vector of m, m + 1, ..., n... unless M > n, in which case it assumes you want m, m - 1, ..., n, so 1:0 won't give you an empty vector. This makes for clumsy special case code.

<comment><USER18> > What passes for lambda expressions in R is clunky.

Is that really the case, though? It seems like `function (args) body` is about as simple as it gets, and just as simple as in many other languages.

</comment></comment><comment><USER19> Man I dislike R for its syntax. It does a terrible disservice to people who start coding in R and then think that they "know programming" while they have missed most of the basic programming paradigms any "normal" programming language has.

I think R has a lot of similar ideology as PHP and well everyone has their own opinion about PHP.

Also I found the tutorial seriously lacking I mean no data.frames, matrices, vectors, tables or factors? How to iterate over data.frame might be the biggest thing a beginner needs to know before shooting themselves in the head. apply, lapply, sapply or vapply - which one do I need? Well IMO apply is the best one to start with as it's the basis of them all. sapply is almost the same but it just transforms the result into a vector or matrix.

<comment><USER20> Agree. It's amazing how such an ugly and inconsistent language can have so many great packages.

<comment><AUTHOR> The inconsistency is something that's quite annoying though.

</comment></comment></comment><comment><USER21> I'll probably get downvoted for this, but let me tell you - Please don't use R in production. Please don't use R for any serious work.

Over the years, I've come to learn to appreciate the fact that languages are just tools. You simply use the right tool for the job. If you let your personal bias, love/hate get in the way, it will cause you a lot of pain in the long run. In the same token, R is one of the most fucked up languages to work with if you use it simply because you _assume_ it's good for all analytics-related projects. It's not.

In one of my previous companies, we had a hipster, always used everything that's on trend. Against all advice, he decided to use R for many of our internal and client facing projects.

For what would have taken a week if Rails were used, he'd write everything in R Shiny. Yes, he used a statistical programming language to write a web application and serve APIs(!). Performance was terrible. There were lot of break downs. Development prolonged, even his own team members lost morale. I unfortunately had the ill luck of having to maintain some of his codebases and those days were the worst in my life. Worse yet, he didn't have a formal software engineering background, so he loved the idea that you are able to code everything inside of this blackbox called R Studio. Fuck tests, there were no tests written because he didn't understand the importance of tests. The projects he worked on lasted for nearly 1.5 years without completion. Almost every project had an instance on the cloud running an R server and it also costed a LOT simply because it was eating a lot of memory. Even our Ruby projects didn't consume as much.

Eventually most of the projects failed, we lost lot of customers. Many team members quit. All because of one singular mistake of choosing a language that's not right for the job. Eventually, one of our competitors came up with a working prototype in production using Python, Flask and with much better analytic capability at scale in less than 3 months. Python can do a LOT that R can do and cannot do and the code is much, much easier to read.

For example, string concatination:

Python:

        hello + world

R:

       paste("hello","world",sep="")

If you're really interested in data science and/or analytics, I sincerely urge you to start with Python and Pandas together rather than R. It is much, much performant, easier to reason, and much, much easier to maintain and scale. Please consider this as heartfelt advice based on my mistakes rather than a rant. Thank you.

<comment><USER22> But if you know R, you can change the behavior of operators.

        > oldPlus <- `+`
        > `+` <- function(e1, e2) {
        +     if (is.character(e1) && is.character(e2))
        +       paste(e1,e2,sep="")
        +     else
        +       oldPlus(e1,e2)
        + }
        > "hello" + "world"
        [1] "helloworld"

</comment></comment><comment><USER18> I have started really enjoying R (with tidyverse) because it allows me to present complicated topics in a very simple manner. I can easily embed short R snippets and LaTeX equations in an Emacs Org mode document, and then export it as a very nice-looking easy-to-read HTML or PDF document with basically no effort other than coming up with the text itself.

It is incredibly liberating.

<comment><USER23> I'm working on my data science degree, and this is my method as well, though I'll admit I don't know much R yet so I'm using it very simply. I'll usually have a mix of python, R, octave, etc snippets.

I really love emacs org-mode.

</comment></comment><comment><USER24> As the other comments on this submission imply, if you're learning R _from scratch_ , _start_ with tidyverse.

You can use base R, but when people talk about how much they hate R, it's usually because of base R, not tools like dplyr/ggplot2. (I had learned R and used it in college, and _nearly quit R entirely_ until dplyr was released)

And over the last summer, I started using forcats/lubridate, and I am kicking myself for wasting my time not using them sooner and using ugly hacks for the appropriate functionality instead.

</comment><comment><USER25> R can be an annoying programming language, but for some reason I've found it easier to use for prototyping than even Python. I think it's because I can sloppily copy and paste between notepad and repl without much issue, whereas in Python I have to be concerned about the whitespace and things are a bit more verbose. I also get more out of the graphing capability of R, but that's probably because I don't understand Python's graphing well enough. Be that as it may, R just seems to have what I need to get things done as sloppily as I need. My workflow tends to be a combination of Python or Java spitting out numbers, and then using R to analyze and graph those numbers, all glued together with Bash scripts.

</comment><comment><USER26> > For someone like me, who has only had some programming experience in Python, > the syntax of R feels alienating initially. However, I believe it's just a > matter of time before adapting to the unique logicality of a new language.

I preferred R to Python right from the start. However, R is anything but logical, and its syntax is the least of its problems.

> And indeed, the grammar of R flows more naturally to me after having to > practice for a while, and I began to grasp its kind of remarkable beauty, > that has captivated the heart of countless statisticians throughout the > years.

Wow, statisticians care about beauty? This is a shocking scientific discovery! (In the social sciences, but don't let this detract from your achievement.) What data do you use to support your theory?

</comment><comment><USER27> I use R (or want to use it) whenever I find myself using excel or google- spreadsheet. If I was more fluent in R I would use it many more times. I found that using it instead of standard spreadsheet was much more robust. Spreadsheet have their role, however R is an amazing tool to have in your programming toolset.

</comment><comment><USER28> It's clear there are a lot of strong opinions about R!

One kind of obscure problem I run in to is R's embrace of a global namespace. Package developers sometimes assume people are using this namespace, and access it via the globalEnv() function. This means that to use the package anywhere else, you basically have to patch their code.

(in contrast, I don't even think about problems like this occurring in python packages. Worst case scenario, can just use a subprocess )

</comment><comment><USER29> R is great, haters gonna hate, but when you want to prototype a model, nothing flows like R + tidyverse + RStudio.

</comment><comment><USER30> YAFL, yet another "fine" language.

</comment><comment><USER31> The biggest problem with R: it is too slow.

</comment><comment><USER32> R is free programming - see the R site above for the terms of utilization. It keeps running on a wide assortment of stages including UNIX, Windows and MacOS.

</comment><comment><USER33> There's no reason to use R unless you are unable to learn.

<comment><USER34> That's silly. If you're doing research using new statistical methods, they're almost certainly available on R first. And ggplot2 remains the best plotting library I've ever seen.</comment></comment>


Ask HN: Which email software do you use on Linux? - <AUTHOR> I have been happily using Thunderbird for years now. But for some reason it get's slower and slower to start it. Even though all my email accounts are IMAP. And I set it up to not query them on startup. So startup should be immediately. But it takes 8 seconds.
So I am playing with the idea to switch.
What do you guys use? <comment><USER2> I keep trying them all - and I keep hating my answer. I've been trying to like Evolution since 2000, this year I've tried all the flavours of mutt/neomutt and combinations of things like offlineimap. I've tried KMail, Geary, Outlook in Wine.... It's just Thunderbird.

Thunderbird is the only thing that works. It's not awesome, but it can keep up with my 5 email accounts that get checked in parallel.

</comment><comment><USER3> Claws Mail [1]. I used it since when it was called Sylpheed (later Sylpheed Claws), and wouldn't swap it with anything else. Features aside, it's rock solid, small and fast, truly fast: I can search my entire mail db since like 1997 and find an indexed word in a sender/recipient/subject in a fraction of second, or a word in the body in more time.

[1] [https://www.claws-mail.org/](https://www.claws-mail.org/)

The site hasn't been upgraded for a while and looks dated, but the software itself is very actively maintained. Currently using 3.17.4, which was released at the end of July. There is also a port to Windows, which I used in a place where Outlook was having problems, after importing all its data (through an FOSS utility called "readpst"). The operator dropped his jaw looking at the difference in speed as apparently long searches in the message base were among his duties.

<comment><USER4> I advise you to load plugins provided by claws mail such as the PGP related ones, vCalendar, SpamAssassin and obviously the Notification plugin.

</comment></comment><comment><USER5> The _least worst_ choice, for me, is Gmail on a web browser. Switched over from Thunderbird and prior to that Evolution after many years of using both.

Don't misunderstand. I do NOT want to use Gmail, and there are a lot of things about it that fall short... but nothing else has given me such pain-free integration with calendar, contact, and office apps, on my desktop, my laptop, and my phone.

I'm also keeping an eye on ownCloud, which seems to be on its way to become a viable alternative.

<comment><USER6> If you think GMail is pain free you'd be even more pleased with Fastmail. I simply cannot self host my mail/contacts/calendar because nothing that exists -- free or not -- can compete with the usability and available power user features of Fastmail.

<comment><USER5> Thanks, I'll take a look. FYI, I used Fastmail many years ago (back when Jeremy Howard ran it, well before its sale to Opera), but haven't taken a look at it recently.

<comment><USER7> Fastmail is no longer owned by Opera, it was spun off in 2013.

<comment><USER6> Bought back by the original team, if I recall correctly

</comment></comment></comment></comment></comment><comment><USER8> I used mutt for years, but then wrote an alternative with integrated lua scripting:

* [https://lumail.org/](https://lumail.org/)

* [https://github.com/lumail/lumail/](https://github.com/lumail/lumail/)

Since large parts of it are configured in Lua it suits my needs perfectly. Recently I've been considering a third and final rewrite of a console-based mail-client. But I find it hard to be too enthusiastic..

</comment><comment><USER9> I've been using mu4e and thoroughly enjoying it. The HTML support is a bit wonky (or perhaps more accurately, HTML emails themselves are usually wonky), but most of the HTML mail I get is trash anyway. Combined with org-mode, I find it pretty slick.

<comment><USER10> I considered mu4e, are you concerned with security at all? I feel like an email client would be risky in emacs for some reason

<comment><USER11> My biggest concern would be image files getting parsed by native libs. There's also some version or hack of mu4e that uses the gnus rendering engine, that I've turned on, and I can't remember the default rendering engine's behavior (maybe it just does text?), but I'd turn off image rendering and then feel comfortable.

</comment></comment></comment><comment><USER12> IMNSHO, it gets slower because your inboxes get bigger. I moved ooold mail to "archive-20xx" folders, and it gets snappier again. Perhaps do the cleanup- compact dance, too?

(So far, I haven't found anything that I would like more - even though TB does have its share of bugs, warts, and UX issues. Opera's mail client was great while it lasted.)

<comment><AUTHOR>
        it gets slower because your inboxes get bigger

I am pretty much an inbox-zero person. None of my inboxes have more then 5 messages in them.

Or do you mean folders in general, like "sent" and "trash" etc?

<comment><USER12> Hmm, no, I meant in-box specifically, as I have encountered that previously. But your suggestion could be applicable, yes.

</comment></comment></comment><comment><USER13> Emacs is the answer; what was the question again?

It's nothing specifically to do with the Kernel pr operating system. I use Gnus after starting with RMAIL on SunOS and using VM for some time. I often use it in tty mode, typically with emacsclient. It would work OK with relatively recent Exchange IMAP at work if it wasn't for the VPN required to access it. Gnus is obviously good for mail lists via Gmane's NNTP.

<comment><USER14> At what point does emacs cease to be a text editor and become an entire operating system in a terminal or X11?

<comment><USER15> Emacs is not an operating system. It is a high bandwidth peripheral that connects your brain to the operating system using lisp.

</comment></comment></comment><comment><USER16> Neomutt is good but it can be a pain to configure without a script. I recommend people who want to use Neomutt for the first time use this wizard [https://github.com/LukeSmithxyz/mutt- wizard](https://github.com/LukeSmithxyz/mutt-wizard)

<comment><USER17> I justed started using mutt configured using this wizard since I have to use exchage/outlook for work which still has a really buggy web UI. So far it's working a lot better than when I've previously tried to manually set up mutt.

</comment></comment><comment><USER18> [https://wiki.gnome.org/Apps/Geary](https://wiki.gnome.org/Apps/Geary)

Thunderbird, Evolution and another clients UI looks like designed 10-15 years ago.

<comment><USER19> Yes, and that's good? UI designed 10-15 years ago is actual usable desktop UI back when desktop was the number one way to do personal computing.

Or what exactly is bad with e.g. Thunderbird's UI? As far as I'm concerned, I'd be happy if it stayed that way for 30 more years.

<comment><USER20> Geary reminds me of the reddit redesign or some other UI that Apple or Google would create. Information density and convenience where obviously sacrificed for someones idea of aesthetic.

They removed button labels for no apparent reason other than to confuse you with duplicate icons as far as I can see in the screenshot. Looks like it takes at least 2 clicks to sort emails. I'd bet that probably the most annoying thing though is the lack of features and options.

It looks really nice though and if it fits your needs, I'm sure it's great. But those of us who like desktop software and not things like Gmail probably won't.

</comment></comment></comment><comment><USER21> Evolution because with the evolution-ews package it can talk to exchange via exchange web services, it's reliable unlike the IMAP access to exchange that our external IT provider messes up constantly somehow.

</comment><comment><USER22> I use Thunderbird with 10 imap-accounts. Takes about 3s to start, with one mail account being checked on initialization.

I've pondered a move to mutt, but it's a bit of a pain to configure to "get it right" to fit my workflow and nitpicks.

</comment><comment><USER23> I use Claws Mail, and have been using it for 10 years. It is fast and can handle a lot of email. It has many options and integraes nicely into the XFCE desktop. It is a fork of Sylpheed, and I assume the two have diverted quite a bit.

</comment><comment><USER24> What's it really worth?

      8 sec/load / 3600 sec/hour = 0.002 hours/load

If switching takes one hour [1]. Assuming you wait for Thunderbird to start 500 times, there's roughly equal time cost. Restarting Linux once a week at 50 work weeks per year amortizes one hour of switching cost out over ten years. [2] Ten hours spent switching puts the break even well into the twenty-second century. Automating Thunderbird initialization via your boot, session or login scripts is likely to take less time and produce fewer bugs/glitches/incompatibilities than switching email applications. Manual startup will always require more of a users time than automation. [3] [4]

[1]: It won't because monitoring this thread and investigating alternatives and setting up the new software will take several hours.

[2]: Of course some people restart their OS more frequently. That more strongly suggests integrating email startup into a boot/session/login script.

[3]: Personally, I find automation is often more satisfying than switching from one manual process to another manual process. In part because the problem just gets done. But that's me.

<comment><AUTHOR> If switching takes one hour, then ROI will be positive after less then two months. I start Thunderbird about 10 times per day. After two months that is:

        8s * 10times * 30days * 2months
        = 4800 seconds
        = 1.3 hours.

<comment><USER24> Curious about the causes of frequent restarts.

<comment><AUTHOR> I open applications only when I use them. And close them afterwards. I also turn off my machine when I don't use it.

<comment><USER24> Thanks for the explanation. I use a similar method: putting applications on their own 'virtual desktop' to create a similar experience. I run Thunderbird in it's own visual workspace and only see my mail when I deliberately switch to that workspace...and I've turned off all Thunderbird's notifications. It works for me because my machine is not resource constrained to a point leaving most applications running is likely to slow other workloads.

"Virtual Desktops" lets me handle _my_ issues with application clutter the same way for every application...social media like HN get their own visual workspaces too. I use the tiling window manager Xmonad. After the learning curve it became easier to use than my distro's (Ubuntu) virtual desktops interface.

Of course all that required _changing the way I work_. Then again, I guess switching applications would require changing the way I work too.

Good luck.

</comment></comment></comment></comment></comment><comment><USER25> Used to use neomutt on Debian. Still use it on OpenBSD. Have it set up to convert weird file formats to text automatically which ends up covering most of the stuff I get. Few emails actually need docx, html, etc formating so it is not much of a bother to just save any that do and use the appropriate program. Much more convenient than having to deal with random spawned programs for everything.

<comment><USER14> Could you share you for files and/or setup. I used neomutt on Debian but am not pleased with the friction html mails cause me.

<comment><USER25> Contents of my .mailcap file:

        image/*;                sxiv %s
        application/pdf;        xpdf %s
        text/html;              lynx %s; description=HTML Text; nametemplate=%s.html
        video/mp4;              mplayer %s
        audio/x-wav;            mplayer %s
        application/vnd.openxmlformats-officedocument.wordprocessingml.document; docx2txt <%s|fold -s|less
        application/vnd.oasis.opendocument.text; odt2txt %s|less
        audio/mpeg;            mplayer %s

There is a key macro you can do to spawn something like a firefox session instead of lynx but I have not had to bother yet.

</comment></comment></comment><comment><USER26> Mail spring is great. Easily handles multiple emails and in addition to traditional imap will user the google api integration for your google mail accounts. You can mix and match account types with one view into all your mail. Or filter your views easily. The click and open tracking can be turned off so it is optional and is not even available in the free version.

</comment><comment><USER27> I use a modified nodejs-imapnotify to watch for incoming mail using IMAP IDLE and automatically run mbsync[1] to sync it to my maildirs in ~/mail/. Then, I use mu4e to view them and compose mail.

I've been wanting to try out nmh[2] for a more CLI experience, but the book[3] seems kind of big and daunting.

[1] [http://isync.sourceforge.net/](http://isync.sourceforge.net/)

[2] [https://www.nongnu.org/nmh/](https://www.nongnu.org/nmh/)

[3] [https://rand-mh.sourceforge.io/book/](https://rand- mh.sourceforge.io/book/)

</comment><comment><USER28> I moved from Mailspring to Thunderbird because it was possible to integrate message filters with desktop notifications (via FiltaQuilla, which hasn't been updated to T68 yet), so I was getting notifications only when message was coming from certain email addresses or had certain keywords. Then I just got used to this program. To my eye, Thunderbird got a lot better in the last few months - faster startup (though still a bit slow, but I'm restarting it maybe once a week), better responsiveness, no "action interrupted" popup when using it while a folder is compacting. Search is still meh, though.

</comment><comment><USER29> I use Claws Mail. It can handle loads of mail with a multigygabyte inbox, it's fast and very stable. Recommended.

</comment><comment><USER30> I use Rainloop web-mail ([https://www.rainloop.net/](https://www.rainloop.net/)) on a remote machine.

Integrates seamlessly great into all of my environments.

<comment><USER31> > I use Rainloop web-mail > ([https://www.rainloop.net/](https://www.rainloop.net/)) on a remote > machine.

> Integrates seamlessly great into all of my environments.

How have you set this up? I looked at this solution briefly and toyed with the idea of writing a dockerfile at the very least. Also, are you on the community version?

</comment></comment><comment><USER32> Mutt is good enough for what I need. I'm on OpenBSD, not Linux, but the recommendation still applies.

</comment><comment><USER33> I use sylpheed; so far it loads like a bullet with 3 IMAP email accounts.

</comment><comment><USER34> We have Thunderbird on all our machines; three different operating systems, but a majority are Linux Mint. Startup on Linux is 3s to 6s depending on the machine. All machines have mulitple accounts, from two to six, some use IMAP4 and some use POP3.

At various times we've tested other clients, but Thunderbird is the only one that has all the features we want. These include complex filtering, calendaring (external and our own iCal server) and productivity add-ons.

At the end of every year we archive all mail that's more than a year old into a new Thunderbird profile, so there's now a list of historic profiles for some accounts going back twelve years. That does make searches for specific messages a hassle, but these are thankfully rare, and it means the current profile is relatively trivial for backups and history is available to all machines via our local server.

</comment><comment> blaser-waffle Thnderbird with Enigmail. Though I gather there may be some implementation weaknesses with engimail but, as of right now, I'm not doing anything where I'm too concerned about key or message integrity. If that changes I'll probably revoke the key and move to something else.

</comment><comment><USER35> Thunderbird works quickly for me even with multiple IMAP accounts, much faster than any webmail solution.

Try compacting your folders:

[https://support.mozilla.org/en-US/kb/compacting- folders](https://support.mozilla.org/en-US/kb/compacting-folders)

</comment><comment><USER36> I use Gnus in Emacs and fall back to the Gmail web client for a few things.

[https://www.gnu.org/software/emacs/manual/html_node/gnus/](https://www.gnu.org/software/emacs/manual/html_node/gnus/)

</comment><comment><USER37> Just use anything command line, I personally stick to Mutt.

Check it out or neomutt or even Alpine if your taste suits that.

</comment><comment><USER38> I switched from Thunderbird to just the Gmail web interface. TB was too slow (esp switching between tabs), and like most open-source email clients, just couldn't manage Gmail's labels elegantly (e.g. search should only search "All Mail"). Also seemed to use 30+ % CPU all the time (on a laptop, so power impact not acceptable). I gave it a go over a few weeks but just went to having Chrome open all the time in one workspace with Gmail and Calendar.

<comment><USER39> It's a shame but I've done the same.

Went from pine/mutt because HTML is annoying and HTML is everywhere. Then from TB to pure Gmail because labels are weird, general slowness, etc.

I know Gmail is a slow-ish SPA but.. whatever. Properly formatted plain text emails are not appreciated as they used to. I guess I caved in.

</comment></comment><comment><USER40> I have a couple of years of archive, but Thunderbird starts in about 2 seconds for me. Do you have an SSD? If not, you should invest in one.

</comment><comment><USER10> What do you all use for Office365? I tried the thunderbird o365 plugin but it failed to send and was requesting 2fa every time I restarted

<comment><USER41> Oooh, I'd be curious to hear people's opinions here. I'm on GSuite (using a combo of gmail via web browser and Thunderbird on local desktop), but really wanting to go elsewhere like Fastmail...But fastmail is just a tad too pricey for me and my family (when adding in all family members)...So I was considering to go to office365 - that is, add on the plan which includes email/exchange online, whatever its called now. This is not ideal, but because i'm already paying an annual subscription for my family to use the office 365 stack (word, excel, and especially the tons of storage on onedrive)...i'm begrudgingly likely going to use their email product. But, what do people use for office 365 mail on linux?

<comment><USER10> fwiw, I don't think they use standard IMAP which I've found limiting.

I don't particularly like the product and have spent a considerable amount of time avoiding it where I can, but I don't make the decisions around it.

The best solution I've found has been outlook in a windows vm

</comment></comment></comment><comment><USER42> mutt + offlineimap with EDITOR=emacsclient, but also gmail

At work I also use mutt instead of outlook for some tasks, as outlook is very poor.

</comment><comment><USER43> Is there an e-mail app out there that integrates nicely with Google Calendar and looks nice as well?

<comment><USER44> Thunderbird does integrate with GC, however, the quality is arguable. For my use case is good enough, however, for wide adoption, YMMV depending on the expectations.

</comment></comment><comment><USER45> I just login to my email service provider on a browser to check my email. During work I keep a tab open and it gives me alert when emails come in.

Are there any advantages that email clients such as thunderbird can offer me?

<comment><USER31> > I just login to my email service provider on a browser to check my email. > During work I keep a tab open and it gives me alert when emails come in.

> Are there any advantages that email clients such as thunderbird can offer > me?

Offline access/search is a big one.

</comment></comment><comment><USER46> I used to use Thunderbird on my work laptops, but currently it's been easier to just use Rambox to wrap the Gmail web interface.

At home I typically use Claws or Alpine.

</comment><comment><USER47> After a long while I started reusing KMail (I'm using KDE on Debian boxes mostly) I would recommend it in a heartbeat if you are already using KDE.

<comment><USER48> I had to stop using KMail years ago because its IMAP support was thoroughly broken. Has that been fixed?

<comment><USER47> Me too actually. But things have changed.

</comment></comment></comment><comment><USER49> Mailpile (it's open source) - [https://www.mailpile.is/](https://www.mailpile.is/)

</comment><comment><USER50> I use mu4e + offlineimap with emacs. I highly recommend taking the 1-2 hours to set it up if you're an emacs user. Well worth it.

</comment><comment><USER51> If you like CLI MUAs, give [https://aerc-mail.org/](https://aerc-mail.org/) a look..

</comment><comment><USER48> I use Thunderbird on both Linux and Windows. I'm very happy with it, but I haven't experienced the symptoms you describe.

</comment><comment><USER52> I used to use alpine, but after it was abandoned I realized the only place I could find the source was on my personal laptop.

I've since switched to mutt.

</comment><comment><USER53> Evolution because it works with Exchange and integrates with Gnome notifications. Not a very modern UI, though.

</comment><comment><USER54> I use Mailspring mostly for aesthetic reasons.

<comment><USER55> _" Activity tracking is built into Mailspring so you get notified as soon as contacts read your messages and can follow up appropriately."_

 _" How contacts engage with your content gives you insight into what's working and what's not. Mailspring can notify you when your links are clicked so you know what's generating interest."_

That's something I would actively avoid or circumvent if I discovered it. Do you tell people who you email about this, or hope they don't notice (or care)?

<comment><USER54> I disabled that feature entirely.

</comment></comment></comment><comment><USER56> Mailspring. Excellent, except it doesn't have Outlook Calendar integration.

</comment><comment><USER57> evolution is very usable imo, geary looks nicer but tends to crash more. mailmate for mac!

<comment><USER58> Evolution doesn't seem to have rules that move messages automatically unless I've overlooked it. Other than that I like it.

</comment></comment><comment><USER59> My browser. And if I want to do multiple emails, Gmail on my phone unfortunately

</comment><comment><USER60> KMail. Startup is immediate even with > 200K mails in multiple accounts.

<comment><USER61> Same here. The fastest and the most feature packed.

</comment></comment><comment><USER62> thunderbird is good if you don't have to search through your past messages, is slow and often get a lot of false positive. never experienced a slow start though, sorry.

</comment><comment><USER63> Still using thunderbird. And this guy eats lots of memory!!!

</comment><comment><USER64> Any browser!

<comment><USER65> True at this point I find clients not offering much more than what I get from a browser.

But as far as clients go, Thunderbird works pretty well for me.

</comment></comment><comment><USER66> You can use Claws Mail

</comment><comment><USER67> evolution since it supports exchange

</comment><comment><USER68> Gmail</comment>


Why client-side verification is bad - <AUTHOR> http://blog.dryft.net/2011/07/why-client-side-verification-is-bad.html

<comment><USER2> Sure, we can all poke fun at them for being stupid programmers. Multi-billion dollar company and they don't even know how to do server-side verification? LOL, we're so much better than they are!

But think about it for a moment. Assuming the ideal product would have both client + server verification, it's clearly less work to only do client-side verification. The product can be released quicker.

Maybe they _intentionally_ forgo the server-side verification code until they _actually get cheaters_. Then they implement it before it begins to hurt their bottom line.

Because what if the game was an utter failure, and never got any users? How glad would you be that you spent all that time writing the server checks for every game action?

<comment><USER3> Yes absolutely. Programmers/devs often get way too wrapped in doing everything _right_. But doing it right takes time and money. Commercially it makes sense to get away with the bare minimum. The holes will only be an issue if the product actually takes off.

</comment></comment><comment><USER4> This attitude throws the baby out with the bathwater.

Client-side verification is Good, it saves bandwidth and reduces annoyance to the user. Client-side verification without also checking on the server is bad.

Given the example of a word game to be played on a phone. I would argue that client-side verification of valid words is vital.

<comment><AUTHOR> The title should probably read "Why relying only on client-side verification is bad". I don't think the author is suggesting that doing client-side verification is a bad thing in itself.

<comment><USER4> That's probably what's in the authors mind, but not what's in the article. The author is not just suggesting that client side verification is bad in itself, but stating that position quite precisely.

"Why client-side verification is bad.."

(rather than the title you suggest)

"to my surprise discovered that it did client-side verification of the words"

(rather than "...that it didn't do server side verification")

However, in support of your position; in his opening paragraph, he does say "you can't rely on it to do authentication", rather than "you shouldn't use it to do authentication".

<comment><AUTHOR> Author's comment on his site:

"It's not wrong to use client-side methods to do initial validation, but it's wrong to _trust_ that validation on the server side."

<comment><USER4> The comment you cite (which is new since my comment above) confirms my point that it might be what he thinks, but not what he says. The comment continues:

"I probably wasn't very clear on my feelings though."

</comment></comment></comment></comment></comment><comment><USER5> There was a competition for university students in the UK a few months ago from some investment company, trying to raise interest for post-grad careers with them, basically a several-stage speed test, top five speeds at the end of the time period would get to choose a prize, iPhone, cash, few other things.

A friend of mine (a student) asked me if it was possible to create macros in a browser to help go faster, and since I was bored and lack morals in this area... just took a look through the JS, and fifteen minutes later and an injection for him to paste into the URL bar and skip through each stage, making the game think he had completed it, as fast or slow as he wanted. So he got a free iPhone.

</comment><comment><USER6> (thinking more about web pages than apps here)

are there any frameworks that let you re-use the same verification code on both client and server? i'm imagining some way to decouple the validation from the presentation and then run the validation part on both sides - i don't see why this wouldn't be possible with something like Node.js.

related, i guess that some frameworks (particularly ajax) support duplicating validation on client and server by automatically generating (different) client (javascript) and server-side code (python/ruby/java/...) from simple specifications (eg regexps). does anyone have good experiences with any of these?

<comment><USER7> Well it's not a framework but asp.net mvc can actually do pretty much exactly this with data annotations.

<http://www.asp.net/mvc/tutorials/mvc-music-store-part-6>

</comment></comment><comment><USER8> Client side validation is good for speed, however should not be trusted when sent to server. Server side validation is for validating such information to prevent issues. eg SQL injections.

<comment><USER9> But you can't trust client-side validation, unless you run the client in a DRM container (client then can just sign the request and you can assume that it executed in a secure memory, unaltered).

<comment><USER10> Is that not exactly what he wrote?

<comment><USER9> It seems I got it mixed up with a different comment. My apologies.

</comment></comment></comment></comment><comment><USER11> Words with friends really needs both, without client side it would be tedious for attempting a word, of course this could also cut down on people trying their letters just about every way they can until they get a word.

</comment><comment><USER12> This is obvious, isn't it?! Everything the user has access to can be manipulated.

<comment><USER13> You'd be surprised how many applications and web sites still rely solely on client-side validation, even these days. Either don't think at all about threat scenarios ,or they trust their "Do not reverse engineer" EULA to protect them :-)

<comment><USER12> wow, I suppose we shouldn't begin to talk about sql sanitation...

</comment></comment></comment><comment><USER14> Sorry, what? Client-side verification is categorically not bad. It's when you don't combine it with a round-trip to server-side verification that you have problems.

</comment><comment><USER15> Client side verification is good to prevent unnecessary hits on the server when the input is incorrect/incomplete , its not.. in any way.. a real input validation.

</comment><comment><USER16> "It wasn't very hard to circumvent this, resulting in a version which accepts moves like the above one.."

I'm more curious as to how you go about circumventing this. I would imagine that it probably IS very hard.

</comment><comment><USER17> Surely this is just common sense at this point?

</comment><comment><USER18> Validation client side is just a way to make user interaction faster. Nothing more, but quite useful, indeed.

</comment><comment><USER19> Wanted to comment on the article but all I could think about was "READ THAT EMAIL IN YOUR STATUS BAR"

</comment><comment><USER20> Does HN use client side verification for votes? Otherwise how did this get here?

</comment><comment><USER10> Not bad, _insufficient_.

</comment><comment><USER21> it is very annoying to have to duplicate validation logic though.

</comment><comment><USER22> Fundamental truth = no code should ever trust its input. Break this rule never. If you have optimization problems, then don't worry because they're better than security problems and the hardware will likely solve it for you by the time you release. Trust relationships between bits of any codebase mean 'not loose coupled' = fundamental design flaw for simple, maintainable and secure code. Unix design philosophy: "do one thing and do it well" (and that means checking all your input religiously for every function)</comment>


Show HN: Create your own beautiful online store - <AUTHOR> http://fikstores.com/

<comment><AUTHOR> Hi Everyone,

We are about to launch an online store SaaS, where stores are built on WordPress. All the administration of products and site is based on the blogging platform, and all orders and payments are handled through a Symfony backend.

Would love to receive feedback.

Thanks,

Bill

</comment><comment><USER2> Congratulations on the launch.

However, the name (sound wise) has unfortunate connotations in the German language, just as FYI:

[http://en.m.wiktionary.org/wiki/ficken](http://en.m.wiktionary.org/wiki/ficken)

<comment><AUTHOR> Thanks, On the name, just to clarify the origin, we were inspired by a swedish word:

[http://en.wikipedia.org/wiki/Fika_(coffee_break)](http://en.wikipedia.org/wiki/Fika_\(coffee_break\))</comment></comment>


Review my startup idea - <AUTHOR>

I've been an officer in a club at my university for about a year now and I've noticed potential for a startup in this niche. There are quite a few repetitive processes that are quite tedious and time consuming. Keeping track of members seems to be a time consuming aspect of running the club, and I'd like to build a web app where officers can keep track of their members. A club will sign up for the site, and be able to login and add their members including their .edu email, major, and year. Ideally members would be able to pay their registration fee's through this site and become a member for the club so that they are automatically populated in the member list. Then members can check in to meetings and events through this site which will allow the chapters to track the members participation within the club.
They'll have an option to receive notifications. Officers will be able to create an event, and then the members will receive the information for that event automatically, the day of or the day before, whichever works best. ...I'm not sure about this feature though because this can already be done through facebook.
Do you think clubs would like to use something like this? If you think they would, do you think they would they be willing to pay a small fee for the service (I'm thinking about $5 a month or $50 a year, but I would have to reach out to clubs to see what they think is a reasonable amount)? I am also thinking about taking a small percentage of the club's membership fee as another source of revenue (maybe 5% per member that signs up through the site).
I plan on validating the idea by reaching out to all of the clubs at my university asking them about the idea and see if any of them will commit to the service before I build it.
Your feedback is greatly appreciated. <comment><USER3> Interesting Idea and Niche

Some questions come to mind.

1\. College Students want to spend money on beer not on tools, even if it saves them time. What about using a free tool like <http://mailchimp.com/> (free upto 2,000 members!) Plus you can email/notify and schedule them, so maybe you just want a better process.

2\. Signups - with ipads/kindle fire being so cheap it would seam a simple webpage for signup and pass along to next person. You could just set it up out front and force people to put in Name, Email, Major, Graduation Year - <USER2> and easy.

3\. Community - With Meetup.com the value is in the tools, but more that it's one place you can go and get all the news/meetings/invites. What if you took over the "campus" (think facebook style) and got them to use your platform for setting up meetings/email students/etc. Now you have 1 platform and would be easier to go to a big company (linkedin?) saying hey we have all these students on the site and about to graduate - want to market to them?

Just some thoughts. Good Luck!

<comment><AUTHOR> 1\. Yea I agree, but this won't be their personal money that they'll be spending. Typically university clubs receive funding from sponsors which the club uses for its activities.

2\. Yes, that works and it's what we currently do, but after they sign up, the officers (at least in my club) use that info for other things, and they have to go through it manually if they're not experienced with macros.

3\. That's a great idea. I think the simple member list would be my minimum viable product, and then I could continue to bring in features such as the ones you listed.

Thanks I appreciate the feedback.</comment></comment>


Revealed: Facebook exposed identities of moderators to suspected terrorists - <AUTHOR> https://www.theguardian.com/technology/2017/jun/16/facebook-moderators-identity-exposed-terrorist-groups <comment><AUTHOR> This appears to be a prime example where moderators should _not_ use their real identity.

Surely FB can provide an exception to the rule to protect its own employees in high risk activities.

Related Twitter discussion: [https://twitter.com/josephfcox/status/875626936612999168](https://twitter.com/josephfcox/status/875626936612999168)</comment>


Ask HN: What is your Evernote setup? - <AUTHOR>

I was wondering how you personally organize and sort your notes on evernote?
I have 2 Notebooks titled Sorted / Unsorted
Whenever I clip or save an article on the web it goes to unsorted by default.
After reading I then drag the article to the sorted notebook and then to the appropriate tags. <comment><USER2> I use it for everything. My notebooks look something like this Receipts (fwd via email receipts/tickets/confirmations), GTD (todos, to read, to buy, etc.), Code (html/js/css/code articles), Pulse News (my Pulse saved stories <http://pulse.me>), Work (all work related notes), Design (pretty images, design, icons).

New fullscreen mode on OSX makes evernote a joy to use.

Hope this helps!</comment>


Is the Linux Desktop Dead? – GUADEC 2019 [video] - <AUTHOR> https://guadec.ubicast.tv/permalink/v125d0af6044fmc08q4k/ <comment><USER2> Personally, 2019 was finally the year of the Linux Desktop for me. Proton from Valve has totally changed everything for me. It runs AAA titles such as The Witcher 3, Grand Theft Auto V and even Final Fantasy XIV (with a little tweaking) out of the box at 60 FPS! That was my final holdout and it freed me up to just run Manjaro outright :)

<comment><USER3> Although I've been running Linux on my desktop for a long time, I indeed also kept a Windows install around. I've tried (and succeeded) in using Wine over the years, but it can be tricky to setup, and known good setups from e.g. 2004 at some point stopped working and I kind of gave up on it.

Proton changed all that: zero config compatibility for many of my Windows games, even demanding ones like you mention. Simply fantastic. December 31 2018 I removed my Windows partition so in that sense, also for me 2019 is the year of the Linux Desktop.

<comment><USER4> While everyone around me is rejoicing, I am somewhat sad that a single commercial entity managed to do in a year what the whole FOSS community could not do in twenty.

They were standing on the shoulders of giants (Wine), which is like 90% of the work, but it seems you still need to involve commercial interests to put the necessary polish to make the product really useful.

<comment><USER3> An important ingredient to Proton in DXVK, which was a new project and the author of which was quickly funded by Valve as it greatly improved performance, especially AAA+++ titles. Secondly, Valve funds Crossover, the commercial entity already responsible for large parts of Wine. The heart of Proton is thus free and libre software.

What sets Proton apart from alternatives like Lutris, which also configure Wine, DXVK, and other components, for you, is that it is zero conf, integrated in a tool (Steam) you probably are already using if you play games. Personally, Proton is the only tool where the autoconfiguration actually always works.

</comment></comment></comment></comment><comment><USER5> Maybe the desktop hasn't moved because it's at its peak? My kitchen knife hasn't seen much innovation either, works well though.

Then again, maybe I'm just a grumpy unimaginative old man.

<comment><USER6> Well this grumpy old man switched away from gnome when they went 3.0. I'd say I don't know anyone who stayed. Some of us went to xfce and others tried out mint which ships something more like 2.

</comment></comment><comment><USER3> Perhaps the Gnome desktop. As a big fan of the 2 series I don't know what the goal was with the 3 series. More dumbed down than mobile OSes... I took refuge with the KDE project, which, with Plasma 5, really got into its own, but Mate is a good alternative as well.

Gnome, I know it's the default on most distros, but I can only imagine that is because of inertia. Who ordered what Gnome 3 offers?

</comment><comment><USER7> > Is the Linux Desktop Dead?

No, but maybe Gnome is dying?

But more seriously, this is a silly question for two reasons:

1\. There's no such thing as 'The Linux Desktop' unless you create a strong tie-in between the kernel and the desktop environment. IIANM Gnome is kind of doing that through systemd, although I might be wrong. Anyway, other than that, it's "X- and Wayland-based desktops" 2\. Are there libre, non-X, non- Wayland desktops which are doing better than KDE, Gnome, XFCE, Mate, Cinnamon and the rest? ... I don't think so. Maybe on mobiles.

> Isn't there potential to update the desktop into the 2020 version of itself?

(shrug) Whatever...

> And isn't it possible for GNOME to be the organization that does that?

Sounds like they want to remove even _more_ of the UI, so that in their dialogs and windows you really can't configure anything at all. Welcome to the 2020 version of lameness.

</comment><comment><USER8> I would say so. You can't even launch a vanilla Linux instance on AWS and connect directly to its desktop, at least without going through lots of hoops.

I blame the KDE vs Gnome fragmentation, and over-customisation.

<comment><USER9> There's a ton of fragmentation on Windows. There are many more toolkits and paradigm's on that platform.

And regarding fragmentation, GTK+ vs. Qt has never been the main issue. It's been different distributions and the fact that app creators cannot ship apps easily to all distro's themselves.

But, I believe, the main issue behind Linux Desktop has always been lack of corporate interest. There was some in early 2000's but never anything serious.

Windows and Mac "are" ecosystems due to financial motivations.

</comment></comment><comment><USER10> Meta: perhaps this should have the [video] tag, since it's a talk. I didn't see a transcript available.

</comment><comment><USER8> Allowing pluggable third party DRM, made a lot of content inaccessible on Linux too.

</comment><comment><USER11> it's dead? maybe I live in a bubble but it seems to be more alive than ever for me and my peers...</comment>


List of free software testing and verification resources - <AUTHOR> https://github.com/ligurio/awesome-software-quality <comment><USER2> I think testing is part of quality, but it can't be the whole thing.

In every other field, the model of "have a dysfunctional process, test every output piece, throw out or rework 5-30% of the pieces" is discredited. General Motors could get away with it before they got Japanese competition, but not after.

Post Deming we know the way you get quality is build it into your process. Formal methods are part of that (hopefully will be a bigger on in the future) but there is a lot you can do to build quality in from day one.

Software is different in certain ways, but it is the same more than people think. There is a contradiction between "trying to do something fast and cheap" and quality, but not a contradiction between "completing the project economically" and quality -- look at your own experience and you will see that screwing up is very expensive.</comment>


Couple getting married, creates registry for funding for their startup  - <AUTHOR> http://www.aboomba.com/wedding/ Jefft Bar already got AWS hosting for them <comment><USER2> If you check the comments, Amazon Web Services fulfilled their wish for a week in the cloud. Cheap and makes for good publicity.

</comment><comment><USER3> This page seems to portray a very cost-inflated idea of what a startup is.

</comment><comment><USER4> "Feed a hungry VC lunch: $291"

What kind of VC expects you to buy them a $291 lunch? If I were a VC I certainly wouldn't invest in any company that thought buying me lunch was a good use of their funds.

</comment><comment><USER5> So, it's common for people to make a list of wedding gifts they'd like to receive, and these guys are asking people to help fund their startup instead? Do I have that right?

If so, is it common for people to spend over $100 on a wedding present for another couple? $420?

<comment><USER3> Traditionally, a married couple would need to furnish their new home after moving in together. Modern couples cohabitate before getting married and already have all this stuff, but wedding gift registries are still used to get "better" stuff.

As explained in sister comments, much of this stuff will be expensive, impractical things they don't actually use very often if at all, but will provide an expensive and symbolic keepsake that satisfies people's mammalian hoarding instincts until making for an awkward asset-division discussion during the probable divorce or, less probably, will probably either be inherited or bring in some moderate amount of money at the longest-lived partner's estate sale. (You can look at it more romantically than this, but I'm in an existential mood.)

More practically, a gift registry prevents a couple from getting ten unique waffle makers when they only need one.

<comment><USER6> > Modern couples cohabitate before getting married

 _some_ modern couples cohabitate before getting married

</comment></comment></comment><comment><USER7> >Give an accountant some love for an hour, a.k.a. avoid "making friends" with the IRS >Price: $420.00

Do accountants really make $420/hour? I'm in the wrong field...

<comment><USER3> Per billable hour, for a good tax accountant, probably. Per working hour for an average accountant, I doubt it. It's not impossible for a good programmer to make $420 per billable hour (or whatever the equivalent is in "real" hours).

<comment><USER7> $420 * 8 * 5 * 50 = $840,000. Where can a good programmer get paid that?

<comment><USER3> _Billable_ hours for an accountant or lawyer are usually around 1800/yr. (The job also requires non-billable hours.) That's 420*1800 = $756,000, assuming the accountant themselves takes home the whole fee. But they don't, just as a programmer doesn't take home every dollar of value they bring into the company. If they take home roughly 2/3 of it (generous, probably unrealistic) that's $500k. So how does a programmer get $500k per year?

One way is to perpetually earn $500k on a 5% rate of return from $10,000,000. That's 33% equity in a startup that's acquired for $30,000,000--probably more rare than a tax accountant.

A programmer doing consulting work might make around $420 per billable hour, but probably as a peak rate and not sustainably.

You could combine income streams: a high paying software job (that's $100,000-$200,000/yr at the top levels) plus consulting (another $100,000+ worth of contracts in a given year is doable for some) plus some equity as a founder or early employee ($100,000 as 5% return on $2,000,000 in wealth) could get you there. It's not as convenient as putting in hours at an accounting firm, but a lot of good programmers fall into it anyway.

<comment><USER8> As a consulting programmer, I can imagine you might get paid $420/hr in a few rare cases:

1\. You built something really complex and a very rich client needs emergency help with it.

2\. You are extraordinarily famous and a very rich client feels they must have you.

3\. You are convincingly misrepresenting yourself as a team of 7 hardworking people.

4\. You have an unusually efficient way of doing something, so you can win fixed-cost-for-deliverables contracts and execute them in fewer hours.

As for what a mortal working as a consultant can normally achieve, $420/h is more than twice what I would consider a very good rate. Only under very unusual circumstances can I imagine a programmer billing at this rate, even on a large corporate client.

Well, maybe if you were working for a bank...

<comment><USER9> I make almost exactly $420 an hour when I teach training classes.

Of course, there is much work that went into developing those classes that I get no hourly wage for at all. So I think of it in terms of, "I need to teach x courses a year" rather than $x/hour.

But technically, that is what the client pays.

</comment></comment></comment></comment></comment></comment><comment><USER10> Apparently feeding an engineer for a day costs $273. Imagine Google's profits if they didn't have the cafeteria.

<comment><USER11> If you read carefully, this is the annual salary divided by 365 days

</comment></comment><comment><USER12> Have been noticing an reasonable number of articles or advice from executives that emphasize not mixing family and business. Perhaps they didn't get the memo.

</comment><comment><USER13> Would be interesting to see the breakdown of donators -- wedding attendees vs. non-attendees.

</comment><comment><USER14> Emily Post is rolling over in her grave... but good luck to them, anyway.

</comment><comment><USER15> This was cute for about 7 seconds. After that it was just annoying.

OTOH, if they can get people to fund their startup with donations, more power to them. Then I'd say something like, "Gee I wish I would have thought of that."

</comment><comment><USER16> pathetic</comment>


Comparing Hosted Database Performance - <AUTHOR> https://www.compose.io/articles/write-stuff-measuring-database-performance/ <comment><USER2> This looks interesting, and I'd like to read the article more, but the graphs are so eye-drawing and completely unreadable that I'm unable to make sense of them. Please make your x/y readable (font roughly 200% larger...) and actually label which line is which.

Also to provide some article-related input, in some NoSQL style databases latency makes a very surprising difference in speed. Redis is especially affected. When network latency is introduced on even the 50ms level GET/SET operations drop to double digit (vs. 15k+/s in normal operation even on small servers)

<comment><AUTHOR> Sorry about that. The y-axis in all the charts is the time in milliseconds and the x-axis is the number of tests.

The point of this is to draw attention to the general shape of the behavior. E.g. spikes, latency, increase/decrease over time. The actual timings don't seem that useful to me, since the tests are just built to strain some part of the infrastructure.

The NoSQL point is interesting. I haven't used Redis but I've seen that the behavior you're describing in Hazelcast, which is the same type of system. It would be interesting to do these types of tests while adding additional servers to that type of system.

<comment><USER3> OK. But which line is which? Which database is the orange line? Which database is the blue?</comment></comment></comment>


Keep Your New Years Resolutions Using an iPhone App - <AUTHOR> http://thinklegend.com/commit/

<comment><AUTHOR> The app (Commit) is based on this well known LifeHacker article: [http://lifehacker.com/281626/jerry-seinfelds-productivity- se...](http://lifehacker.com/281626/jerry-seinfelds-productivity-secret)

Here is the direct link to the App Store: [http://itunes.apple.com/us/app/commit/id473527073?ls=1&m...](http://itunes.apple.com/us/app/commit/id473527073?ls=1&mt=8)

</comment><comment><USER2> There have been plenty of mentions of Jerry Seinfeld's 'secret' to productivity. Any method that you stick with can work, and Commit is a fun way to track your progress. Love the design Nathan - so elegant and intuitive!

</comment><comment><USER3> Installed the app today and I love it so far. The interface is so beautiful and simple. Great work, Nathan!

</comment><comment><USER4> Can you recommend something like this for android?

<comment><AUTHOR> I don't know of anything. But I'm sure someone can make it.

<comment><AUTHOR> If someone is interested in helping with the port I will lend all my graphics and design ideas.</comment></comment></comment>


Continuous Delivery for Containerized Applications: Trials and Tribulations - <AUTHOR> http://www.slideshare.net/opencredo/oreilly-2016-continuous-delivery-with-containers-the-trials-and-tribulations-by-daniel-bryant <comment><AUTHOR> I (try to) do CD as part of my day job and found this slide-deck and video helpful in that it is from a practitioner, Daniel Bryant, that is working with Java applications. A key insight is that "container images become the build pipeline 'single binary'"

Slideshare: [http://www.slideshare.net/opencredo/oreilly-2016-continuous-...](http://www.slideshare.net/opencredo/oreilly-2016-continuous- delivery-with-containers-the-trials-and-tribulations-by-daniel-bryant)

Youtube: [https://youtu.be/xfTAcNzV5EY](https://youtu.be/xfTAcNzV5EY)</comment>