A man who takes a plane to work every day [video] - <AUTHOR> http://www.bbc.com/capital/story/20170712-the-man-who-takes-a-plane-to-work-every-day <comment><USER2> Keep in mind this is business as usual for the folks that work at the Nevada National Security Site including 'Area 51' & the Tonopah Test Range...

They have their own small 'airline' of 737s called "Janet" that runs shuttles in and out of McCarran and those sites several times a day:

Janet: [https://en.wikipedia.org/wiki/Janet_(airline)](https://en.wikipedia.org/wiki/Janet_\(airline\))

Janet 737 flight history: [https://www.flightradar24.com/data/aircraft/n319bd](https://www.flightradar24.com/data/aircraft/n319bd)

<comment><USER3> There's a mission in Flight Simulator X that has you flying a 737 from McCarran to Area 51. I never knew it was based on a real shuttle service.

</comment></comment><comment><USER4> Interesting comparison/contrast, linked from right in the middle of the article:

[http://www.bbc.com/capital/story/20170221-the-gruelling- six-...](http://www.bbc.com/capital/story/20170221-the-gruelling-six-hour- commute-of-beijings-workers)

* Six hours <-> six hours

* Try to use the downtime <-> try to use the downtime

* Go home just to sleep <-> go home just to sleep

</comment><comment><USER5> Getting home at 21:00 and he's up again at 05:00 so most of that time will be spent sleeping. What's the point?

<comment><USER6> Agree, he could just stay over near SF during weekdays and fly back home with family on weekend. Time better spent and more economical.

<comment><USER7> I don't even know where to start with this comment, only seeing your family on the weekends? Doesn't seem like much a life to me.

<comment><USER8> He's only going to really see them on the weekends either way with his current schedule. The commenter was suggesting that, given this, it'd be more economical to just stay in SF during the week.

However, the funny thing is that apartments in SF are so expensive that the $2300/month he's paying to fly on the small commuter jet is actually not that horrible of a deal compared to renting a small place in the city. So maybe he just enjoys the commute. I've flown on a private jet like this (Cessna Citation CJ2+ in my case) and it's definitely a fun experience.

</comment></comment></comment></comment><comment><USER9> "The"? In the 1990s I had an employee who commented by plane from Sonoma to Palo Alto every day. She and her husband "planepooled" together in a small prop plane.

It seemed weird to hear of it but her commute wasn't that big a deal, especially since their home and jobs were close to small airports.

<comment><USER10> That's a 2 hour commute at the best of times. I suspect that makes huge financial sense and they probably get there in 30 minutes.

<comment><USER11> The flight itself will take around 30-40 minutes depending on the plane and the winds, plus 30 minutes for pre-flight, run-up and parking at destination, plus whatever it takes to get to/from the airport.

<comment><USER9> Though when you planepool with your sweetie that's not lost time!

</comment></comment></comment></comment><comment><USER12> This guy's life would change radically with the 30min LA to SF Hyperloop.

<comment><USER13> that's really sad, it would still take me 1hr to get from east bay to svl (via private shared transit :))

</comment></comment><comment><USER14> > "The way I justify a six-hour commute is having the ability to have all the > things that I want," he explains.

I just don't see having the point in having "all the things that [you] want" if you don't have the time to enjoy them. Who has time to enjoy your money if you don't get home till 21:00?

I've actually known some people who live in one city and work in another (between Dallas and Austin), but they did it by renting a second apartment in the city where they work and living there during the week, only commuting home on the weekends, which they always did by car.

<comment><USER4> I would guess because he's in the middle of building his company and raising his kids, and doesn't plan to keep this arrangement forever.

<comment><USER15> I would also guess that he can actually afford a house for his children to grow up in down in Burbank.

I wonder if Motiv subsidies the Surf Air membership. Moving a company from LA to SF is expensive - maybe that was part of the price payed to keep the CTO.

I'd also point out that it possibly was not his decision to move the company.

<comment><USER4> He addresses this in the video: For whatever personal reasons, uprooting his family and moving them is just not an option right now.

</comment></comment></comment></comment><comment><USER16> Talk about carbon footprint...

I bet he feels great about that.

<comment><USER17> "And, while von Badinski is aware that his flight comes with a significant carbon footprint, the Bay Area leg of his journey is more environmentally friendly. He keeps a plug-in hybrid vehicle at Oakland airport for the drive into San Francisco."

Could anyone do the math?

<comment><USER18> Assuming a PC-12, about 79 gallons of jet fuel, one way. Seats for six, eight or nine people depending on the configuration. Let's say eight, so ten gallons of jet fuel per person per direction.

A gallon of jet fuel releases 20lbs of CO2, so 200lbs.

PC-12's are really efficient aircraft, both in terms of fuel usage, but also maintenance. Your average business jet costs 5-10 times more per hour to operate (not counting pilots)

<comment><USER19> How does this compare to, for instance, your average car running for an hour?

<comment><USER20> The average car will burn about three gallons of gasoline an hour cruising on the highway, so about 60lbs of CO2.

<comment><USER21> If you assume highway cruising to be 60mph, that's only 20mpg. That seems a low average for modern cars.

<comment><USER20> The average MPG of a new car is only about 25, and the average age of cars actually on the road is over a decade. And 60MPH is a slower highway cruising speed than I've seen anywhere outside of big cities or congested areas. 75+MPH is far more common.

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> I did a weekly commute BUR<->SJC for a year back in 2000-2001 (before 9/11). It was a PITA. Now I work from home. Life is too short.

</comment><comment><USER23> I fly weekly between Dallas and wherever the work is. I've been doing this for a year and absolutely love it.

I love airports. I love airport drama. I love flight. I love fighting to get through the mobs of people waiting to board. I love listening to the ATC while taxiing and looking up my route info and weather while doing so. I love FlyerTalk. I love it all.

Right now, there is no better feeling than the lift from a good takeoff.

I would fly more if I could. I'm not sure if I would get burnt out from flying every day. Especially on a single turboprop. Those are the lawnmowers of the skies and the wind loves pushing them around. (I also LOVE turbulence.)

The biggest reason why I love it: weekends with my fiancee are amazing, especially since I don't have to spend money during the week. Time together is more meaningful. (Note that we didn't have a long distance relationship; we lived together daily for three years before I started doing this crazy travelling business.)

</comment><comment><USER24> In the nineties, a distant uncle of mine (I'm from the poor side of the family haha) used to commute to central London each day by helicopter from his farm in Buckinghamshire. That's sensible (if the company is paying!). 6hours by plane each day... not so much o_O

</comment><comment><USER25> This man need to learn one word, and learn it well:

Move

That is, move closer to your work. Keep the other house if you will, he has enough money for two houses. But, move closer to your work. Alternatively, move your work closer to home. Your family will love you for it, especially as they won't have to explain why their husband/partner/father insists on having a carbon footprint big enough to show up as a thin line visible for future geologists.

</comment><comment><USER26> From what I was told by my friend who worked at Bombardier - the company would fly their Toronto-based employees (who needed to work at Montreal) everyday from Toronto to Montreal and then back at the end of day.

He had to fly 5 days a week MON-FRI. And this is about 10 years ago.

</comment><comment><USER27> I know of a few people that commute weekly (has a rental property) by plane live/work at HQ for the week and fly home on the weekends....I can't believe people _want_ to do things like this

</comment><comment><USER28> Some people love traveling. Their obsession can find all the excuses to travel. Not sure if his company funds the travel or he funds it himself.

</comment><comment><USER29> Must have been a slow news day at the bbc.

"business man flies in plane regularly"

<comment><USER30> "Main breaks social norm by taking abnormal mode of transport to work for a ludicrous amount of time each day".</comment></comment>


Google Beat Facebook for DeepMind, Creates Ethics Board - <AUTHOR> https://www.theinformation.com/Google-beat-Facebook-For-DeepMind-Creates-Ethics-Board <comment><USER2> "More than $500M"? That contradicts Re/code.</comment>


Visual Studio Code 1.30 Released - <AUTHOR> https://code.visualstudio.com/updates/v1_30 <comment><USER2> I badly want an intimate look under the sheets at how the vscode team does their development cycle. These updates are consistent and generally very high quality, and focused on a handful of features. I want to replicate it for my team. But I don't want buzzwords like "agile", I want to cut through all that and see the actual actions, behaviour, and tools that result in this kind of success.

<comment><USER3> Hi, I'm part of the VS Code team. We have a page on our wiki that describes in a fair amount of detail how we structure iterations: [https://github.com/Microsoft/vscode/wiki/Development- Process](https://github.com/Microsoft/vscode/wiki/Development-Process)

<comment><USER2> This is phenomenal. Thanks for sharing the link.

</comment></comment></comment><comment><USER4> The release notes page of Visual Studio Code is always so well detailed and nicely done.

</comment><comment><USER5> I very much enjoy vscode for local edits. Alas! Majority of my time is spent on remote machines. I'm yet to find a solutions better than ssh + vim. I desperately want to be able to use vscode on remote boxes (eg using whatever python interpreter and pytorch happens to be installed there)

Irony is that jupyter notebooks are a decent middle ground for my workflow since the editor is actually running on the server (although I'm not super in love with it since I have to refactor etc and missing out on what IDEs have to offer).

Vscode remote extension has been a joke unless I'm missing something big ... akin to Rsyncing files, making edits locally, and pushing it back out.

Nuclide (atom) seemed like it does what I want but I never got it to work in my vpc.

<comment><USER6> Give Emacs + Tramp a shot. It might be what you are looking for.

</comment></comment><comment><USER7> Whenever I see that Visual Studio Code update notifier... _happy time_

</comment><comment><USER8> I just wish there was a way to have a local display for VSCode, but have the actual program run behind an ssh session. Including shells etc.

(and perhaps a "keyboard only" guide to vscode)

(and perhaps since it's running javascript anyway a quick way to find and change running extensions, something like emacs has)

</comment><comment><USER9> Are there benchmarks VS Code vs Atom?

I'm using Sublime Text 3 but these two text editors have many more extensions/packages than ST3 and while I don't want to move to a slower text editor, the packages seem to good too pass up.

<comment> basil-rash On specifically startup time for large files (narrow use case, but thats what we got), there's this comment from user jakear from a while back on an Atom 1.28 thread [1]:

1.1GB file, 10M lines.

Code: ~10s, smooth scrolling, instant jumping.

Sublime: ~50s, smooth scrolling, instant jumping.

Atom: ~10s, smooth scrolling, very choppy jumping: ~5s loads per jump (also got some error messages about text too large for buffer)

1.0GB file, 40k lines.

Code: ~15s, scrolling somewhat choppy, quick jumping

Sublime: Application not responding after ~60s, waitied another 60s, no change. Same behavior each of the two times I attempted.

Atom: ~8s, smooth scroll, ~30s per jump, occasional "Editor is taking too long to load" messages.

Note: Atom enforces a maximum line length of ~500 chars before it wraps regardless of word wrap setting. This means the 8s load was only showing a couple lines worth of content. I find this restriction not acceptible for the long-line test case, but including anyways for completeness) Full "report": [https://pastebin.com/wUv8PSgp](https://pastebin.com/wUv8PSgp)

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

</comment></comment><comment><USER10> I see a lot of people using it.

As someone who does python, Go and js with jetbrains IDEs, would VSCode be better?

<comment><USER11> I've actually migrated to it from emacs for rust stuff - the RLS integration is really nice and it works well enough on both osx and linux.

I tried to use the git UI that it provides, but in the end preferred to manage my vcs from the terminal.

I'm reasonably happy with it - and I didn't think this was going to be the case when I first tried it out.

<comment><USER12> The GitLens extension is fairly well featured if you are still curious about improving your non-terminal git experience.

<comment><USER11> Thanks I'll check it out!

</comment></comment></comment></comment><comment><USER13> Now time to work on vscode 2, with a merge between vscode and atom.

<comment><USER14> Why is that necessary? I like the incremental approach they have been taking so far.

<comment><USER13> They need to merge them sometime, the have two overlapping products, both open source, and it does not make sense to keep them both.

<comment><USER15> Define overlapping.

</comment></comment></comment></comment><comment><USER16> I used to love VSCode, but over the past few months it has become unusably slow.

I'm talking freezes for multiple seconds while typing kind of slow. This is with less than 5 plugins. Vim has become my default editor now, and I only use VSCode if I want to move a lot of files around.

<comment><USER17> This isn't just something where you should go "oh, well, guess I'll switch". Please report such issues, and try to debug what is going on because it sounds like it might be a problem with your computer in general.

<comment><USER16> Why shouldn't I do that?

I don't work for Microsoft, I'm not locked in, and I'm just trying to get my own work done. I am equally productive with Vim, and it doesn't lag, so I switch over.

<comment><USER18> The very first thing you wrote was, "I used to love VSCode". That you used the phrase 'love' and it was your opening thought implies you were at least somewhat invested in VS Code and might attempt to find solutions before dropping it completely.

Not that it matters to anyone else what tools you use, just that is the impression from your initial post (to me at least).</comment></comment></comment></comment>


Python Certifications Are Now Live – FreeCodeCamp - <AUTHOR> https://www.freecodecamp.org/news/python-curriculum-is-live/ <comment><AUTHOR> freeCodeCamp's core curriculum now offers 10 verified certifications – including 4 Python-focused certifications.</comment>


Password Sharing with Organizations - <AUTHOR> https://blog.bitwarden.com/password-sharing-is-here-organizations-cf9e7a2098d2 <comment><USER2> I've never heard of this service before, is bitwarden widely used by people here?

I was looking at the FAQ[1] and on a small paragraph they manage to put 3 spelling mistakes. This might be unjustified but I'm less inclined to trust a product with this, even less one that manages sensitive secrets.

> Since your data is fully encrypted and/or hashed before ever leaving your > local device, _noone_ from the bitwarden team can ever see, read, or reverse > engineer to get to your real data. bitwarden servers only store _encypted_ > and hashed data. This is an important step that bitwarden takes to protect > you.

> You can read more about how your data is encrypted and _trasmitted_ here.

Many FAQ questions have at least one spelling mistake, and it's not the same every time, so it's not due to a foreign speaker's mistake. "trasmitted", "sensative data", etc.

[1] [https://help.bitwarden.com/security/can-bitwarden-see-my- pas...](https://help.bitwarden.com/security/can-bitwarden-see-my-passwords/)

<comment><USER3> Based on github it seems this service is developed by a single person[1]. So, the product seems to be really new.

[1] [https://github.com/kspearrin](https://github.com/kspearrin)

</comment></comment><comment><USER4> I'm a LastPass Premium subscriber, and I would be interested in trialling a move to BitWarden for myself and my family. However, the lack of a Safari plugin is a showstopper for me, and it seems that plans to develop one are on hold indefinitely.

A real shame, as BitWarden looks like a solid project.

<comment><USER5> Through the magic of open source, one could be made!

[https://github.com/bitwarden/browser](https://github.com/bitwarden/browser)

<comment><USER6> You still need an Apple developer account to sign and run an open source extension

</comment></comment></comment><comment><USER7> I've been using BitWarden for about 4 months now and really like it. It's not as full-featured as others, but it does the job and is OSS, and unlike 1password, the chrome plugin works on Ubuntu.

Also, I am not a .NET dev, but if you take a look at the code it's one of the cleaner projects I've seen.

<comment><USER8> It's a fun and infuriating past time of mine to check the now 38 page 1password feature request regarding adding Linux support from 2010.

[https://discussions.agilebits.com/discussion/2846/new- produc...](https://discussions.agilebits.com/discussion/2846/new-product- request-1password-for-linux/p31)

</comment></comment><comment><USER9> I've been digging into Self-Hosted password solutions lately, the most mature looking I've found was Pleasant Password Server. I haven't tested it yet, it's next on the List. Does anyone have experience with it?

[1] [http://www.pleasantsolutions.com/passwordserver/](http://www.pleasantsolutions.com/passwordserver/)

<comment><USER10> I've used it as an end-user in an enterprise with LDAP integration. It worked well in that situation and our sysadmin who set it up was happy with it as well.

At home where it's just me using the passwords across a couple of devices I just use KeePass with the database stored on dropbox.

</comment></comment><comment><USER11> Another crypto app misusing zero knowledge: "The answer is public/private key, or asymmetric encryption. All sharing in bitwarden follows the same zero- knowledge principles that we have always followed, protecting you and your data with end-to-end encryption."

</comment><comment><USER12> I use `pass` with git versioning. Encrypted with GPG. Does the same, doesn't it? Not that fancy but it works well.

<comment><USER13> Ultimately, all password managers are just data storage with encryption and convenience layered on top.

However, I think the main advantage many password managers bring is cross- platform compatibility, specifically all of:

\- Windows

\- Mac

\- Linux

\- Android

\- iOS

This can be a killer feature (or a blocker) for adoption, and would fall under "convenience" above.

<comment><USER14> I use pass on windows, mac, linux and android

</comment></comment></comment><comment><USER15> I would never share my password with any individual or a company for sure. I am using LastPass and its very good but one thing i don't like about this tool is, there is option to show your password who you wish to share your account. If you want to learn how to keep your password secure and make it difficult to decrypt, here is the solution - [http://gotowebsecurity.com/now-thats- password-security/](http://gotowebsecurity.com/now-thats-password-security/)

</comment><comment><USER16> I wrote a secret manager [1] that accomplishes this by lying on top of Keybase's virtual filesystem. To share a secret between _N_ people, I only need to create a new "session" between the private directories of each Keybase user.

[1]: [https://github.com/woodruffw/kbsecret](https://github.com/woodruffw/kbsecret)

</comment><comment><USER17> Just be aware, there are bugs in the interactions between extensions and sharing. For example, if you share a secret via the web vault then edit it (without syncing first) in an extension it becomes inaccessible. If you perform a sync after sharing, the secret isn't visible in the extension any more.

</comment><comment><USER18> Looks like an interesting project. Will take a look deeper in the next few days.

Though I have to say, I haven't trusted password managers which sync online since the beginning. Just doesn't feel right. And the various hacks over the past few years seem to validate that.

<comment><USER17> > Just doesn't feel right. ... various ... seem to ...

Could this sentiment be any less specific?

</comment></comment><comment><USER19> Or - if you absolutely must, at least share your passwords with open source technology: [https://www.justwatch.com/gopass/](https://www.justwatch.com/gopass/)

<comment><USER17> All of Bitwarden is open source. [https://github.com/bitwarden/](https://github.com/bitwarden/)

</comment></comment><comment><USER20> I find it quite misleading to call it "Free" if the free one is only for personal use or at least to not the Team/Organization option.

<comment><USER21> Indeed. Seems the HN title should match the site:

"Password Sharing with Organizations" or "Password Sharing with Organizations – bitwarden blog"

<comment><USER22> Thank you, we've updated the title from "Bitwarden, Free and Open Source Password Manager, Adds Password Sharing Features".</comment></comment></comment>


Ask HN: Is there a "Colors for Dummies?" - <AUTHOR> I've spent my life feeling stupid when it comes to colors.  I'm stumped by the subtle differences (e.g. taupe, beige, tan, sand) and choosing what matches and what clashes.  Is there a "Colors for Dummies" or "Learn Colors the Hard Way" meant for analytical people who don't have an intuitive grasp of color?<p>Note: I am not colorblind.  Just colordumb. <comment><USER2> My wife is an artist and she told me about the color wheel and the common kinds of color schemes

[http://www.tigercolor.com/color-lab/color-theory/color- theor...](http://www.tigercolor.com/color-lab/color-theory/color-theory- intro.htm)

the short of it is that you will get much better results with hsv than you will with rgb

<comment><AUTHOR> This is great! Thank you! (And your wife, too.)

</comment></comment><comment><USER3> The easiest way to pick good colors is to copy good colors that someone else picked. There are many resources on color theory, and they can help a person understand why some colors work together and what someone who knows what they are doing did. Itten's _Elements of Color_ is the only formal book on color in my library. It's useful, but there are lots of other things out there.

Color wheels are kind of cool and cheap: [http://www.alvinco.com/Shop/Products.aspx?GID=5993](http://www.alvinco.com/Shop/Products.aspx?GID=5993)

The Munsell system is a bit pricier: [http://munsell.com/color-products/color- communications-produ...](http://munsell.com/color-products/color- communications-products/munsell-books-and-sheets/)

Pantone is great for specifying print colors: [http://www.pantone.com/graphics/process- color?from=topNav](http://www.pantone.com/graphics/process-color?from=topNav)

On the other hand, one man's sand is another's off white. Naming colors is a whole 'nother ball game.

Good luck.

</comment><comment><USER4> Try playing around with Adobe Kuler [1] for a bit and explore some of themes you like on there. The color creator has some of the basic color rules like analogous, complementary, triadic, and so forth so you can experiment to get a feel for how they work.

[1] [https://color.adobe.com/create/color- wheel/](https://color.adobe.com/create/color-wheel/)

</comment><comment><USER5> I'm a self taught designer. I learned color through imitation. Copy someone who is good, do that enough, and you'll start to get a feel for what works. Theory only goes so far with something as subjective as "what looks good together" though theory can point you down the right path.

</comment><comment><USER6> tl;dr you want this SIGGRAPH color science vid: [https://www.youtube.com/watch?v=3i3s5KZt2fw](https://www.youtube.com/watch?v=3i3s5KZt2fw)

Forget color names. (e.g. taupe, beige, tan, sand). Color is a Science (RGB / HSV / CMYK / etc...) and those names mean nothing but arbitrary regions and are fundamentally useless except to business trying to sell their paints. Also they make me crazy, I hate them so much.

If you have some time research the compositing discipline of visual effects for movies.

Compositors are the people that layer together images from the lighters. Ummm... they make everything look real? Haha, I haven't had to explain compositing in laymen terms in a while. Sorry, here's a couple videos...

Here's a simple breakdown and explanation about the craft of compositing:

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

Here's the technical theory about color:

[https://www.youtube.com/watch?v=3i3s5KZt2fw](https://www.youtube.com/watch?v=3i3s5KZt2fw)

I apologize, I haven't watched this video myself, but it looks like the right stuff.

</comment><comment><USER7> I picked up Design for hackers[0] a few years ago. It goes over color/fonts and other design patterns. It's been pretty useful for projects I've done. It goes over when to use certain colors (ie, target uses red because you'll buy more.) and some color pallets that work well together. I got it because I didn't want to learn full color theory and whatnot, just the basics.

[0] [http://www.amazon.com/Design-Hackers-Reverse-Engineering- Bea...](http://www.amazon.com/Design-Hackers-Reverse-Engineering- Beauty/dp/1119998956)

</comment><comment><USER8> Perhaps I've never been especially bad at colors. But what ultimately improved my [single] color intuition the most is internalizing HSB (Hue/Saturation/Brightness). When I think of a color I think of an HSB coordinate.

Maybe it doesn't help much with composition but you have to start somewhere I guess.

</comment><comment><USER9> There was an article a few days ago here that mentioned [http://www.lolcolors.com/](http://www.lolcolors.com/)</comment>


Asana S-1 - <AUTHOR> https://www.sec.gov/Archives/edgar/data/1477720/000119312520228462/d855753ds1.htm <comment><USER2> Wow, this is a torrent of IPOs today. Investors / boards are wanting to get money out before things turn south I feel.

Aside from that, I'm surprised how much it costs Asana on engineering R&D, for essentially a ticket management system. How does a team grow to ~300+ developers ($89M R&D) to figure out how to attach PDFs and videos to tickets, and email people when there's a change in status? (ok yes I'm oversimplifying a bit, but not that much)

And (as with all such companies) how much they need to pour into Marketing/Sales to sell this thing. These above costs basically wipe out the gross profits by 2x.

<comment><USER3> > How does a team grow to ~300+ developers ($89M R&D) to figure out how to > attach PDFs and videos to tickets, and email people when there's a change in > status?

As with most of these companies, user-facing feature development is only a small part of the engineering workload.

I would assume the majority of those engineers are working on less visible tasks: Devops, build systems, infrastructure monitoring, security, backups and data integrity, internal tooling for customer support, billing and accounts management, and other critical but otherwise invisible tasks.

Duplicating the core 80% of Asana's features as a one-off product wouldn't be extraordinarily difficult. Scaling it into something that can operate as a business with hardened security, reliable data storage, consistent uptime, and reasonable internal tooling for customer service is where things get difficult.

That said, companies often go overboard with hiring in the run-up to IPOs or acquisitions. Excessive R&D spends can be fixed on the road to profitability. Restoring a company's reputation after a major data loss disaster or a security breach is much more difficult, so it's safer to err on the side of throwing too many engineers at polishing everything. If they can't scale revenues to match, expect the engineering workforce to be cut down significantly.

<comment><USER4> This makes a lot of sense. But in some ways it shows the downsides of the modern obsession with SaaS.

How many of those jobs would be required if Asana was simply sold in a shrink- wrapped box that you installed on your desktop or the downstairs server run by the corporate IT guy.

In some ways SaaS is a big win because it offloads all those tasks to a centrally hosted service. No IT guy or tower server in the corporate mail room required. OTOH not everyone has the same ops requirements. Not every customer needs 99.999% reliabilty. Or ultra-hardened HIPAA-compliant security. Or heck, even remote access outside the office LAN.

By delivering Asana as SaaS instead of shrink-wrapped software, it means the Asana hosting team has to deliver to insanely tight operational requirements to every single customer. If one customer requires 5-9s of uptime, then basically every customer requires it. That certainly explodes the cost-of- goods-sold beyond selling shrink-wrapped software.

<comment><USER5> If it was shrink wrapped software they would need a bigger sales team, a bigger support team, a bigger professional services team, etc. It's just trade offs.

<comment><USER6> And honestly its actually even more work in many ways, since you need to be able to work anywhere, not just in a well known environment.

<comment><USER7> In the age of VMs and containers I'm not sure it's still true.

<comment><USER8> I've been involved in debugging a bug in a software that occurred on Kubernetes cluster at the client site but couldn't be reproduced locally. Reproducing that is so much harder than a similar software installation. You have so many moving parts that it's pretty much impossible to create a test cluster with the same properties.

Also, with SaaS you can get access to log files, if it's installed on prem that can be heavily restricted by regulation.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> An article by Tom Tungz that relates SAAS co marketing budgets to to annuity grabs helps me contextualize this S1.

Asana's gross margin is ~85%!

Their net retention is tracking @ 120% in 2020.

So every $1.00 dollar of sales to a customer last year turned into $1.20 this year.

AKA negative churn.

Which explains the reason you see them spending $105m in sales & marketing to generate $142m in topline.

Obviously this runs its course eventually, but at that point you cool down your S&M & R&D engine and try to keep up with counting all the cash flows.

SAAS is just a remarkable business, absolute cash pigs.

(1) [https://tomtunguz.com/does-better-ndr-imply-greater- toleranc...](https://tomtunguz.com/does-better-ndr-imply-greater-tolerance- for-higher-cac/)

</comment><comment><USER10> Can someone in-tune to this world explain why Moskovitz purchases equity through a trust, in the form of convertible promissory notes? It seems like he isn't taking any compensation in stock or cash, but prefers to "invest" in the company's stock, through this trust and promissory-note scheme?

If you're confident that the company's eventually going to exit (obviously a big "if"), and you have the cash liquidity (which he obviously does, as one of the original co-founders of fb), is this essentially a method of getting compensation that isn't taxed as compensation? I'm trying to understand what the justification is for maintaining what looks like a fairly complicated transaction. It looks like they've done it a few times (2017, 2020 jan 2020 june). His entities also participated as investors in the Asana Series D and Series E rounds.

Not meaning to cast aspersions, just curious because I haven't seen these kinds of setups in S-1's before. But most S-1 companies don't have people with pre-ipo, >1bn net worth founder-CEOs, so it makes sense that this one might be a bit anomalous.

<comment><USER11> That's a fair question. I am not a lawyer or accountant or anything in that field, but I can try to answer anyway.

1) Often trusts and LLCs are used for liability protection and anonymity; you see this used by investors owning multiple residential real estate properties.

2) Your comment on tax is interesting; of course, capital gain in the US is taxed at 20% (plus your state), while income tax gets to roughly twice that. So, potentially, that could be a way to reduce how much taxes you will pay.

However, in relation to #2, I doubt that Moskovitz really cares to save 100k-200k a year in taxes. It's probably more about #1.

Again, this is my $0.02. Please correct me or improve my comment if you know the subject more than I do.

<comment><USER12> Trust tax brackets are steep enough that income tax and cap gains benefits are negligible. Anything that could be done in a trust w.r.t. cap gains could also be done as an individual, so there's no win there.

Inheritance tax benefits might be substantial though.

You're probably very right about the liability and anonymity aspects.

</comment></comment></comment><comment><USER13> I've found Asana to be a much, much nicer product to work with than Jira (at least as a developer, not sure about from the management side.) I genuinely wish them success and hope they're able to grow their marketshare.

<comment><USER14> Do you have up-to-date experience on both? I ask because, this year is my first time using Jira in 10 years. I was in big corp 10 years ago and we were on Jira and it was a disaster to have to use. UI was a mess and it constantly went down or went slow (big corp; self-hosted.). My current startup started using Jira Cloud recently and I found it to be much better than my past experience, and better than Asana.

I last used Asana at my last company, which I left 2 years ago. It was slow and a resource hog even on our pretty beefy work MacBook Pros. Compared to my current Jira Cloud experience in 2020, I much prefer Jira now.

<comment><USER13> This was about 2 years ago - at that time I found both Asana and Jira to be similarly slow, so kind of a wash in that regard. But it was corporate self- hosted Jira, so perhaps Jira Cloud is a smoother experience.

<comment> core-questions Jira self-hosted is actually often a lot faster than Jira Cloud, if you have decent gear to run it on. You run the database too, so it's a matter of how much cash you want to throw at it. Jira and Postgres on decent storage can be pretty quick, though of course it's still 100x slower than any normal 1990s desktop app.

</comment></comment></comment></comment><comment><USER15> Am I reading this correctly in that they had a net loss in 2019 of $50.1 (42.4 adjusted) million dollars, and then in 2020 a net loss of $118.6 (68.2 adjusted) million dollars? (bottom of page 58)

And that their plan is to just continue trying to upsell and acquire new customers?

Hmmmm

<comment><USER16> Yeah, what is going on at Asana?

R&D costs outpacing revenue in the year before IPO really surprises me (from ~54% to ~62%).

For comparison, Atlassian went from ~38% to ~36% in the year before IPO.

<comment><USER17> The thing that drives me absolutely bonkers with Asana (others do this as well) is that the freelancer has to upgrade their "free" account to roughly $70/month to get functionality like seeing a Timeline (think Gantt). Their pricing isn't clear that to upgrade to Premium (to get Timeline) says it's $10.99/month. It's not until you get to the next screen that it tells you it's 5x10.99/month because there is a five person minimum.

Almost none of these project management tools are built with full functionality for a freelancer who manages projects and people doing the tasks/projects, but doesn't need them to log into the project management tool.

<comment><USER18> Single-license freelancers are never the target audience. From my experience running a similar business, this is the hardest category of customers to deal with. Stuff like demanding very project-specific features for free overnight and cursing you when you explain how requests are prioritized from user numbers. Or demanding instructions on tangential topics (like how to troubleshoot some network issue their customer has) by claiming that it stops them from using the product.

I mean, there are nice guys as well, but statistically it's just not worth it.

<comment><USER3> Sadly, I can confirm this is true.

Most single-seat customers are fine, of course, but a very vocal minority can cause a lot of problems.

I believe it's due to the mindset shift. If a team or company decides to use a specific software, people are more likely to accept the decision and learn to work within the tool's features and limitations. The cost of switching tools is high, so they tend to stick around for a long time.

Single-user freelancers can change tools at any time, because they don't have to negotiate with anyone else. As such, they feel they have more leverage in threatening to cancel their subscription if the company doesn't cave to their demands.

Most of them don't realize that the company isn't making much, or any, money off of their single-seat license when they're consuming hours of customer support or social media engagement time every month. It's better to see the squeaky wheels just leave the platform.

For another data point: At scale, you get a lot of threats from people claiming they're going to Tweet about how bad your product is to their thousands of followers, or write a newsletter about how much they hate your product, unless you implement the specific feature they're demanding. These threats exclusively come from the single-seat users, because no company is dumb enough to try to extort another company with threats of tarnishing their reputation in public.

It's unfortunate, but it's true. It's vastly easier to just deal with enterprise customers or larger teams who have better things to do than tie up customer support time for every little complaint or suggestion (or demand)

<comment><USER19> this is super true

we also sell to both single users and to companies

single users will write things like

I will destroy your business

you have no idea how many followers I have

etc etc

A single user with 10,000 followers on Twitter thinks they should be treated like they are GM or GE or Ford

<comment><USER18> Fun fact. If you don't reply at all, and completely ghost them afterwards, no matter what they say, the chances of them carrying anything out gets close to zero.

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> According to the filing Asana has 1.2m paying users. Each user is worth maybe $1000. That puts Asana at 1.2bn.

The median forward revenue multiple for public enterprise SaaS companies is 10x, and with 2020 revenues of 150mn that results in a 3bn market cap.

A third data point is they raised 75M 16 months ago at a $900m post money valuation. With growth at 100% annually that puts their current valuation at 2.5bn or so.

Three different 30 second valuation strategies that result in the same ballpark numbers.

<comment><USER21> Their business plan is $30 a month, so I'm tempted to say each paying user is definitely not worth $1000.

Given their revenues of 142M and 1.2M paid users, that's an average a tad below $120 a year per user, which would actually be less than their cheapest plan. That doesn't add up, it smells of free trials counted as paid users.

<comment><USER20> Asana's pricing is per user per month - [https://asana.com/pricing](https://asana.com/pricing)

<comment><USER22> Many of those 1.2M users are on large corporate deals that are at a small fraction of list price. This is a common phenomenon in SaaS.

</comment></comment></comment></comment><comment><USER23> Based on a few of the comments on this thread, I wanted to point out that filing an S-1 is not something that you just do overnight. When companies decide to go public it's a lot of work usually involving multiple dedicated teams on the business side. It takes many months and can take over a year.

So while the timing here is interesting, nobody decided on Friday that many well-known tech firms would declare their intent to go public on Monday.

<comment> grey-area No, they decided that 6 months ago (or whatever the lead time is), but everyone decided at the same time, for fairly obvious reasons.

<comment><USER24> This is false. A lot of these companies started their IPO process earlier but then got delayed due to COVID. Not everything is as pessimistic as you're making it sound. It just happens to be before November (companies usually dont go public during election season) so this is the only viable window for companies to go public for the remainder of the year.

</comment></comment></comment><comment><USER25> In case anyone forgot, Asana was founded by Facebook co-founder Dustin Moskovitz.

<comment><USER26> And FB early employee Justin Rosenstein.

<comment><USER27> Who founded [https://www.oneproject.org/](https://www.oneproject.org/)

</comment></comment></comment><comment><USER28> In the "History" section (p.2) they state that

"We started Asana because our co-founders experienced firsthand the growing problem of work about work. While at Facebook, they saw the coordination challenges the company faced as it scaled. Instead of spending time on work that generated results, they were spending time in status meetings and long email threads trying to figure out who was responsible for what. They recognized the pain of work about work was universal to teams that need to coordinate their work effectively to achieve their objectives. Yet there were no products in the market that adequately addressed this pain. As a result of that frustration, they were inspired to create Asana to solve this problem for the world's teams."

I can only imagine that the complexity of the coordination inside Facebook continued to grow after Asana was created.

So is Facebook a client of Asana to solve this problem ? How does a company like Facebook handle the "coordination problem" ? Do they have one tool that solves all the issues or a myriad of project management tools ?

</comment><comment><USER29> I know Asana is prettier than MS planner but:

1\. Planner is bundled with 365

2\. Planner works with Azure AD SSO for free.

3\. Planner is 100% integrated with Teams.

This makes Asana an outside bet for me.

<comment><USER17> Except Planner has no timeline or Gantt charts, despite claiming most of last year, that Gantt charts where on their roadmap. I've found Planner to be nothing more than a glorified Kanban board, which is also something Trello does much better even on their Free Tier using your 1 powerup of a Gantt chart.

<comment><USER29> Trello does it much better for a small team in a non-enterprise setting. Having to manually add and remove users, and manage external sharing is a huge drag in any bigger environment

</comment></comment></comment><comment><USER30> 5 IPOs (S-1 filings) from Silicon Valley today:

\- Unity (San Francisco) \- Jfrog (Sunnyvale) \- Snowflake (San Mateo) \- SumoLogic (Redwood City) \- Asana (San Francisco)

<comment><USER31> Maybe even more just these 5 are on HN homepage...

<comment><USER32> You can get a rough idea of it by looking at submissions from the sec.gov domain: [https://news.ycombinator.com/from?site=sec.gov](https://news.ycombinator.com/from?site=sec.gov)

<comment><USER33> Hey thanks, this is a neat tip.

</comment></comment></comment></comment><comment><USER34> I've read a lot of comparisons between Asana and Jira, but I was curious if anyone can explain the difference between Asana and Basecamp? I don't have experience with either service.

</comment><comment> nv-vn This filing looks like it has a ton of red flags about the way Asana is running their company. As an example, one of the images tries to highlight Asana's timeline and their achievements [1]. One of the things they mention is opening an international office with ~100 employees and <11k customers. Based on their current figures of 75,000 paying customers and revenue of $142,606,000, you would expect a revenue of ~$19 million for 11k customers. Why is a company with 100 employees & <$19 million in revenue opening international offices? Likewise, why is the company spending 74% of revenue on sales and 63% on R&D? How are they managing to lose 83% of revenue? It seems like the company has 0 responsibility with how they spend their cash and beyond that, it's unclear whether they even have a path towards profitability if they're spending 75 cents on the dollar just to make a sale and throwing almost $100 million at R&D every year. Despite substantial revenue growth y/y (~70%), they've managed to outpace it by growing losses twice as fast at ~140%. It seems like the company has a pretty good product and a great gross margin as well as good revenue growth, but I don't see them becoming profitable with their current management -- it seems like the folks in charge right now have no clue how to run a successful business and will just throw money away as soon as they're given it.

[1] [https://www.sec.gov/Archives/edgar/data/1477720/000119312520...](https://www.sec.gov/Archives/edgar/data/1477720/000119312520228462/g855753g47s60.jpg)

Disclaimer: I'm not a professional investor and I'm not familiar with Asana's business

</comment><comment><USER35> As a non-American who knows little about the IPO process, is there a reason why there have been a flood of S-1 reports listed on HN over the past 24 hours?

<comment><USER36> It seems just coincidence.

The reason for coincidence might be cash-out for investors due to fear of covid-19? I do not know that.

</comment></comment><comment><USER37> ...is there a reason a ton of tech startups are dropping their IPOs today?

<comment><USER38> last chance to exit scam before the bubble pops

<comment><USER39> I _totally get_ the feeling behind this, but you can't blame market participants for taking actions that are rational, regardless if the overall market fundamentals are/seem to be irrational.

If the market is desperate for returns, and tech equities are one of the few remaining avenues for such returns, and you are the owner of those equities, what else would you expect to occur? "No no no, don't buy these valuable shares of my company, invest elsewhere!" No way, you're going to cash out as fast as possible before your gains evaporate when the market transitions.

<comment><USER40> Most undesirable actions by the powerful have a rational character. It's bizzare to me that this is so commonly used as a defense. It says to me that the problems are seen to be individuals, not systems of power.

Note: I'm not commenting on the specific case here, just this argument in general.

</comment></comment></comment></comment><comment><USER41> Makes sense they're going for the IPO at the start of the work from home era. Asana has been around awhile and my team always used it for remote team communication and project management. We never saw the need for apps like Slack or Basecamp because working with the tool is very similar to the Getting Things Done system (or Toodledo).

</comment><comment><USER42> What do they actually do (for 1m+ people)?

I'm looking around their site and blog (and the S-1) and read a lot of 'marketing-speak', but no simple one-liner about what they actually do and what value they bring.

Am I missing something obvious?

What comparative companies are they like? I saw someone mention Jira. Are they 'a Jira'?

<comment><USER43> They are an, arguably, prettier Jira.

<comment><USER42> Got it. Thanks.

More useable too, I'd hope.

</comment></comment></comment><comment><USER44> Good on them, but can Silicon Valley people stop conflating their corporate operating bloatware with Eastern Spiritual Terms?

Completing that outstanding customer ticket is not like the process of achieving englihtenment.

</comment><comment><USER45> > _Help humanity thrive by enabling the world 's teams to work together > effortlessly._

I have no idea what any of this means. It's grandiose and therefore, upsetting.

</comment><comment><USER46> Anyone else interested in filing to go public today?

</comment><comment><USER47> I bet half of their R&D is being spent to figure out how to do Kubernetes the right way.

</comment><comment><USER48> While better than Jira in UI, I haven't been able to like Asana as a product for some reason. In my previous company we moved away from Asana to Jira because it seemed PMs and higher management found Jira easier to work with.

</comment><comment><USER49> Dumb question - but with all these tech IPOs, how does one get in/invest at IPO time without buying on the open market?

<comment><USER50> Not a dumb question at all. The thing to keep in mind is that IPO stocks are allocated. There's a fixed amount of shares, and they are priced hoping for a "pop". So basically banks use IPO allocations (in hot companies) as a way to reward good customers. How important are you? Unless you are worth north of $100MM the answer is "not very."

The first step is to have a relationship with a private banker at a big bank/asset manager. You can tell her that you're interested in purchasing stock at IPO. Most big banks will have some allocation available.

Often the minimum ticket size is something like $100K--but there's no guarantee you'll get it. At some point before the IPO, your banker will tell you how much IPO stock was allocated to you. This will tell you how important you are to the bank. They might, maybe, throw you a bone and give you $10K of allocation.

You have to remember that IPOs are intended to be "free money." They are purposely underpriced. This isn't actually as nefarious as it sounds--the only people getting hurt by this is the issuing company, and not _really_. They want to have as good a relationship with the big bags of money as the issuing banks do. And there is _some_ risk involved, they don't always pop, etc etc.

An important detail is that, because the IPOs tend to be mis-priced, they also tend to be pretty _small_. A company going public at a 2B valuation might only be offering 100MM worth of stock. At a 30% pop, that's basically 30MM of "free money" to distribute across the entire planet, which is honestly not that much.

</comment></comment><comment><USER51> FOMO on full blast

</comment><comment><USER52> Mazal Tov! =)

</comment><comment><USER53> I'm not a fan of the product but at least this isn't a company built on labor exploitation or fucking up some existing ecosystem.

<comment><USER54> Guessing you don't use said labor exploiting services?

<comment><USER55> The only labor I exploit is my own.

<comment><USER56> my guess is that a detailed account of the consumer goods you have purchased - including possibly the device upon which you typed out and submitted this comment to this web property - would indicate otherwise

<comment><USER55> Maybe I should have have indicated that no other directly exploitative relationships exist.</comment></comment></comment></comment></comment>


How can I convince my boss that ANSI C is inadequate for our new project? - <AUTHOR> http://programmers.stackexchange.com/questions/164017/how-can-i-convince-my-boss-that-ansi-c-is-inadequate-for-our-new-project

<comment><USER2> It's not.

Let me summarise the task: Continuous measurement of custom hardware in real time with some trivial user interface.

There are two parts to this:

1) real time device I/O <\--- Really important.

2) user interface <\--- Irrelevant, will probably be replaced multiple times over the life of the project.

This is how the OP needs to pitch it to the boss.

(1) is critical and C is flat out the best language for real time I/O, and it's the best choice for making an easy-to-use DLL that can be loaded and used by any number of other systems (C#, python, etc.)

(2) is hard to do nicely in C, but we can have a very trivial very rubbish ANSI C user interface if that's what you want. However, we can do a much better job by calling the library from (1) from another target (eg. c#).

We can also repeat the process in (2) to build an alternative 'user interface' that is in fact a test harness / test suite for (1), increasing reliability (something that C once again, sucks at (testing that is)).

"Here I made a prototype in a language you didn't ask for! It's the ROZZXXEOR!!!111" is just about certain to generate a negative reaction.

<comment><USER3> It's running on windows, which makes the "real-time" argument void. And if you are recording anything your hardware better have a built in buffer and real time stamps already. It's not exactly like you are bit-banging things to a serial port...

However i agree that making the hardware interface in c would be the best option. But in most cases your hardware would already come with this and using P/Invoke to call it from C# is then piece of cake.

It's hard to give a definite answer since the OP doesn't specify if the application also has hardware output or just recording. And what are the time constants? Are we talking seconds or microseconds?

<comment><USER4> > It's running on windows, which makes the "real-time" argument void.

That is simply not true. You can set a windows process to use real-time priorities.

</comment></comment></comment><comment><USER5> You have completely failed to convince us that ANSI C was inadequate. C is an excellent language that seems adapted for the kind of tasks you have described. With the short description of the task (except the language requirement), I would also recommend C or go. I think the problem is that you were programming in C with your mind thinking in C#. I have a similar problem when I switch from Perl to C or java. You must learn to adapt to the language, and not learn to translate from your way of thinking toward the language of the day. The problem is not your boss or the C language, the problem is to open your mind toward different ways of thinking.

<comment><USER6> Yeah C is good for lots of things, but not great for developing a desktop UI in Windows, when compared to C# for example. You'd be going back to the dark ages of Windows SDK development if you want to do that part in C.

<comment><USER7> That's assuming that in 5 years from now Windows is going to be the popular UI platform. If much of the program is not about the UI, then C is a good choice, since whatever finger nail mounted laser projection display computer will become popular in the future, you'll have ANSI C projects ported to it quickly. C#, I'm not so sure.

</comment></comment></comment><comment><USER8> Well, C is never inadequate. Quite a few languages have their interpreters/jit-compilers written in C. C is portable. C will continue to be a major language and will not become some obscure legacy language. You can tell I am a fan boy, but I am a fan boy for a reason. That said, you do not seem to like C, and further you already have the program written. I think you would pitch this as your "pseudo-code" and show it to your customer. Let him or her know that you will be rewriting it and that this could take some time. If your customer is willing to wait, you now have two programs that you can benchmark to compare speed. You can compare development times in a real way, etc... quite an interesting little project once the "project" is finished.

<comment><USER9> If your speed of development is glacial because the language you are writing in is just a hop skip and a jump away from ASM, then the language you are writing in is inadequate.

<comment><USER10> If your speed of development is glacial in C, then perhaps its that the skills of your developers that are inadequate.

</comment></comment></comment><comment><USER9> Many of the responses there are for C in lieu of C#, which I disagree with. Unless you need the performance of C, you should always use a higher-level language, and C# is a beautiful and powerful language, and if you're any sort of C programmer, you can pick up C# relatively easily.

<comment><USER11> ANSI C is a near universally portable language, C# is not. His boss wants it written in C, and his boss is the customer. Of course, his boss is specifying global variable names, so said boss is a micromanager... A no-win situation here really...

<comment><USER9> I write C# for mono and I've never had a portability issue.

<comment><USER12> How do (or would) you deal with architectures that Mono doesn't currently support?

<comment><USER9> I probably wouldn't purchase those servers.

<comment><USER12> Ah, sounds like an excellent approach to "portability". Good luck with that, but be sure to let me know when you return to the real world.

</comment></comment></comment></comment></comment></comment><comment><USER13> Explain to your boss the cost/benefit of using a higher level language over c.

C's benefit historically has been performance. I think the case for performance is becoming less compelling for 2 reasons:

1) The performance gap is closing, thanks in particular to projects like cython that let you write python code that gets converted over and compiled as c++ that's often more performant than the c++ code that devs might write themselves.

2) In general, the cost of hardware continues to drop while the cost of developers goes up. C takes longer to write than eg Python--I don't care who you are, it does. And if you're the god programmer of C, you probably cost a lot.

So what would be the benefit of c for your boss really? It will cost more to develop, and the performance gains may not be as noticeable. It would quite possibly be bad business.

<comment><USER14> >The performance gap is closing, thanks in particular to projects like cython that let you write python code that gets converted over and compiled as c++ that's often more performant than the c++ code that devs might write themselves.

Well it's obvious you haven't done any systems programming.

>In general, the cost of hardware continues to drop while the cost of developers goes up. C takes longer to write than eg Python--I don't care who you are, it does. And if you're the god programmer of C, you probably cost a lot.

That's not what experiments have borne out, time-to-develop generally has a lot more to do with proficiency in the language of choice and in the problem domain than the language itself. I will say, however, that it _is_ generally slower to write things in C, but not so drastically that it merits abandonment.

>So what would be the benefit of c for your boss really?

A solution that would reliably fit within the real-time and maintainability requirements of the problem being solved, unlike a throughput-focused GC'd language like C#.

<comment><USER15> _Well it's obvious you haven't done any systems programming_

While it may be true in this case, this is the sort of insulting and dismissive argument that I don't like to see here.

<comment><USER16> I would take GP's comment over someone preaching on a subject that he has no direct experience with. Latter is far more damaging to the discussion. The insulting tone is well justified.

Having done my share of kernel development I can assure you that anyone who brings up a topic of rewriting Linux kernel in (even) C++ gets laughed out of the room. When someone starts suggesting that there are plausible alternatives to C for kernel development, it _is_ indeed a clear indication of no prior experience with the subject matter.

<comment><USER15> _The insulting tone is well justified._

No! No! A thousand times No!

You can make the exact same point in a way that doesn't smell of the condescending dick-waving and "laughing people out of the room" that debases the level of discourse. I think that HN can and should be a more civil community than Linux kernel programmers.

Here, let me take a stab at it:

"In my experience with systems and kernel development, there are some scenarios where working with a higher level language than C simply isn't possible. This sure looks like one of those scenarios to me. If the manager in this example is mandating that it be written in C, it could be that the manager knows this from painful experience."

<comment><USER16> You are missing the point. Condescending dick-waving is there to discourage original poster from making half-assed assertive comments in the future. I understand that you don't like it, but it _is_ the most efficient way to carry the point across.

> _Here, let me take a stab at it:_

Nope. Wishy-washy, excuse me this, excuse me that, I'm pretty certain to a degree that I might be right if you don't mind me saying. Not discouraging enough.

If you want another justification for the tone, let me tell you that I would've not hesitate to say the exact same thing in person, which is _the_ criteria for wording HN comments as per pg's original guidelines.

<comment><USER15> I get the point, but I still disagree with it.

Intentionally using an aggressive and insulting tone seems more harmful to the community than expressing the opinion that _there is a performance gap between C and higher-level languages, but that gap is narrowing_

How dangerous is that opinion, anyway? I mean, even if the opinion were demonstrably incorrect, is it so important to keep someone from daring to express it a second time?

<comment><USER14> There is real and legitimate compiler and JIT research, like PyPy, that could lead to reasonably efficient implementations for dynamic languages that can be expressed in RPython.

It is not, however, under any circumstances going to lead to code that's any faster than what an experienced C programmer can produce.

That's a "hard problem" in the mathematical sense is essentially impossible for reasons related to the halting problem and writing programs that can holistically analyze programs. For similar reasons, I find the type-fascism of the Haskell community amusing, although I find stronger type systems useful.

If aren't familiar with the implications and realities of systems programming and/or compiler implementation, stop making false statements about it.

Ask questions, read books, but don't toss out ridiculous bull-honkey like:

>thanks in particular to projects like cython that let you write python code that gets converted over and compiled as c++ that's often more performant than the c++ code that devs might write themselves.

I'm actually pretty familiar with Cython and have spent many man-hours optimizing Python code.

I'm a relatively terrible C++ and C programmer, but I can still produce code that profoundly outpaces Cython.

The only way to write C/C++ code slower than Cython is to use the wrong goddamn algorithm or data structure. (like std::list when you should be using std::vector)

Also, the protocol holds for me here too. I'd gladly say all of this to your face. Stop projecting manufactured confabulations about programming into the ether.

<comment><USER15> To be clear. I'm not the one who said anything about Cython or cross-compiling or anything. I hadn't even heard of Cython before and I don't have any strong opinions about it.

I don't doubt that you're right about all of the facts, that hand-rolled C will be faster than something cross-compiled unless the C coder did something profoundly wrong. I'm sure that lots of people are surprised and annoyed that all systems and kernel-level work is done with a language as out-of-fashion as C and ask stupid questions on other forums. You're right. The original poster was wrong. You win. Hooray!

But, here's the thing, _I don't care how right you are_ , I care that you're violating the #1 commenting guideline and the thing that I generally like about this community, which is "be civil". So, even if you're the sort of person who wouldn't be civil to my face, please be civil _here_.

If you can do that much for me, I'll gladly buy you a coffee or beer if you're ever in Seattle and you can be as rude as you like to my face. Fair?

<comment><USER14> Okay, I'll be nice.

You're using the community guidelines as a shield to hide behind while you de- emphasize the fact that you were completely wrong and feigning to compensate for your total lack of experience in the relevant subject.

Stop using the community guidelines a shield. Own up to the fact that you were more than merely ignorant, you were aggressively promulgating and infecting others with falsehoods borne from your ignorance which is a kind of behavior I can't even begin to fathom the reasons for.

This is where it starts. This is how the incorrect campfire knowledge starts. CompSci and software engineering are _rife_ with this plague and you are subject zero. CompSci is _notorious_ for being, get this, unscientific because of the amount of false folk knowledge that gets bandied about.

Our lack of rigor, from the point of a view of an experimentalist and also an engineer, is dishonorable and unnecessary.

Your behavior shames all professional programmers.

So, lesson learned. I'll honey up my criticisms. I'll find ways to communicate that are pleasant and convincing.

That doesn't change that you'll never be free of my contempt, even if I'm being nice.

Keep the beer and coffee, you want to do me a favor? Don't ever do that again.

<comment><USER15> You are confusing me with someone else. I wasn't the one who made the original claim.

<comment><USER14> Fair, but don't defend the propagation of things like that.

<comment><USER15> I promise I won't.

You seem to be a very talented writer. Have you ever considered using your powers for good instead of for evil?

:)

<comment><USER14> Only rarely:

<http://blog.bitemyapp.com/>

<http://bitemyapp.tumblr.com/>

I don't generally find myself with anything profoundly useful (to others) to say outside of any specific context.

If you have a topic/post suggestion, I'd love to hear it.

Thank you for the compliment, you're a very patient man.

<comment><USER17> Good read, gentlemen.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> "A few months ago, we started developing an app to control an in-house developed test equipment and record a set of measurements. It should have a simple UI, and would likely require threads due to the continuous recording that must take place. . . . Our boss . . . has mandated that we develop this application in ANSI C. . . . I actually tried that approach for a while. . . . After a few days, I scrapped the entire thing and started anew using C#. Our boss has already seen the program running and he likes the way it works, but he doesn't know that it's written in another language."

I'd have my resume up to date if I were you. Your technical arguments are irrelevant at this point -- you spent a significant amount of time deliberately ignoring the clear instructions of your manager and, apparently, not communicating with him. I would fire you on the spot regardless of the quality of your solution.

<comment><USER19> I'd have my resume up to date (and start shopping it around) if my manager was telling me the names of global variables I should be using.

<comment><USER18> That is a valid point. I would still certainly suggest having an open and honest discussion before spending company resources on something other than what was specified, though.

</comment></comment></comment><comment><USER20> You should stop thinking that c is inadequate and do two things:

1-Automate pointer creation so you don't spend time with them.

2-Automate string creation.

The good thing of programming is that you could automate anything. C# just automates it for you by default, but it is not god either.

In fact for platform independence is one of the worst languages to choose(and windows future looks no brighter than its past with iOS and android). You could use c inside Obj c, on c++, on python and java super easy.

It seems to me that "inadequade" is "I don't know enough about programming, and I only know one (proprietary) language, so I want to only use it"

<comment><USER21> It is one of the worst languages to choose for platform independence, is it? Strange. My application running on Windows (Desktop and Metro), OS X, Linux, iOS, Android, and the PS Vita seems not to have gotten the memo.

And as it happens, I used it not because I'm not able to write C or C++, but because doing so is a waste of effort better suited to doing other tasks.

<comment><USER16> I find it hard to believe that you can cross-compile C# code to all these platforms without creating heavy dependencies on 3rd party abstraction layers and/or toolsets (like Unity).

<comment><USER21> I don't really care what you believe. I do it with Mono and open-source libraries.

</comment></comment></comment></comment><comment><USER22> Interesting. The boss gives a very specific set of requirements, then the programmer disobeys this direct order, goes behind his back to do it differently and has essentially been lying to him or her for months.

It doesn't matter if it's the right or wrong technology choice, this is really an issue of 'work ethic'. Perhaps if the language was left unspecified, or it was a suggestion to use C rather than a requirement then it might be different, but this sounds like a rather blatant violation of trust based on a lack of respect.

I'd have no problems removing the programmer from the project, even if the software was awesome.

<comment><USER23> Yeah, I think this is an important point. If you don't agree with your bosses architectural decisions, you probably should have discussed those initially. If you feel like your boss wasn't listening to reason, does he have a boss? Simply going off and doing your own thing seems like a particularly bad idea, and I'm not sure I'd want someone on my team acting in the same manner.

</comment></comment><comment><USER24> Be afraid. Very afraid. Project managers can often appear like roadblocks to innovative solutions. In fact, I've lost arguments even when the benefits for a particular technical solution are obvious and accepted. But maintenance is a big factor for those people. Not meeting a requirement is bad for your future prospects. Deceiving others is potentially disastrous for you current ones.

What would be said if a future requirement, unknown to you, were for an ARM chipped portable controller for said instrumentation, as a student project.

Bad move.

</comment><comment><USER25> Rather than a language inadequacy issue, it is better to think of this as a resistance to 'change'. This is a much bigger and yet common problem in enterprises. Everyone would have their comfort zone and have found safety in sticking to it for years. So why change now?

There have been many studies on Change Management and certain strategies work in some situations better than the others. Most of them take a structured and step-wise process - e.g. Preparing for Change, Managing Change then Reinforcing Change.

It is certainly hard to master the skill of convincing others to take up change, but it is paid off many times over the years in numerous situations. So it is well worth trying.

</comment><comment><USER26> "he even gave us a list with the name of the global variables (sigh) he wants us to use." -> Your boss clearly doesn't trust his team. Get him to trust you (may or may not be possible), and everything else will follow.

<comment><USER15> This smells like a lost cause. I would consider looking at finding a manager with whom you are more...compatible.

<comment><USER27> I suspect that choice is going to be made for him, once the manager learns that his explicit instructions were ignored. :-)

<comment><USER15> I think so too. It makes me sad, because the whole thing could have been avoided with some better communication and leadership skills.

We programmers tend to look at all things as technology problems, even in the way the question was asked ("inadequate?" what?) when it's almost always an interpersonal problem.

</comment></comment></comment></comment><comment><USER28> How can I convince young programmers who read StackExchange and generally look to forums for "advice" that it is worth their time to learn ANSI C (e.g., because it performs better than their suggested alternatives, it is time- tested, more widely known among programmers, etc., etc.)?

</comment><comment><USER29> "ANSI C is inadequate" - No. It's perfectly adequate. I think you mean too low level.

</comment><comment><USER30> I only realized that C is much better than c++ after using c++ for 20 years.

</comment><comment><USER31> Everyone here has forgotten the main rule for choosing a language for projects. _You have to actually know the language._ The developer here very clearly doesn't know c all that well. That's all we need to know to know it's a bad choice. C is an especially bad language to use if you don't really know what you're doing.

If Linus Torvalds it's starting a new project, C is probably a good choice for almost anything. Why? Because he's an incredible C programmer. But we shouldn't confuse every developer with Linus Torvalds.

<comment><USER15> If that's the case, and C is the wrong choice for that developer but the right choice for the project, then it follows that the developer is the wrong one for the project.

I had that exact same thing happen to me once. There's no shame in it.

<comment><USER31> Totally true, but it doesn't appear that hiring another developer is in the works. So C# it is.

</comment></comment></comment><comment><USER32> One could of course write a wrapper function to create strings, like char* someString = makeAString("A String"); where makeAString takes a char* as input, allocates the memory it needs via malloc (I prefer calloc though as it is safer by setting the allocated memory to a default value, IMO), and returns a char* as output, thus saving lines of code whenever one wants to make a string. Probably stating the obvious I guess, but if one takes a few days to make some wrappers like that one saves time down the road. Were it my boss, I would say, OK, we can do it in C, but you need to give me time to make some wrappers that I need in order to get this done efficiently. Just a thought. :-)

</comment><comment><USER33> Part of the project is writing it in C, so you cannot and you should not.

Sorry for the bad tidings.

</comment><comment><USER11> Oh look! Not constructive.

</comment><comment><USER34> lolwat?</comment>


The Ecuadorian Library: Or Three Years After 'The Blast Shack' by Bruce Sterling - <AUTHOR> https://medium.com/geek-empire-1/a1ebd2b4a0e5 Back in distant, halcyon 2010, I was asked to write something about Wikileaks and its Cablegate scandal. So, I wrote a rather melancholy essay about how things seemed to me to be going — dreadfully, painfully, like some leaden and ancient Greek tragedy. ...I no longer feel that leaden discontent and those grave misgivings that I felt in 2010. The situation now is frankly exhilarating. It no longer has that look-and-feel of the Edgar Allen Poe House of Usher. This scene is straight outta Nikolai Gogol. <comment><USER2> How does this not have more upvotes?

<comment><USER3> I for one do not see this worth upvoting. Even if it has some good (even admirable) ideas, they are buried in a lot of noise. After reading the whole thing I find it resembling more to a writing exercise than to an article that wants to say something.

</comment></comment><comment><USER4> "And yet the three of them together, they look just amazing. They are fantastic figures, like the promise of otherworldly aid from a superhero comic. They are visibly stronger than they've ever been before. They have the initiative in a world afflicted with comprehensive helplessness.

And there's more coming. Lots, lots more."

Grand theater and great pic, Bruce. You and Vince Gillian I hope are writing the screenplay.

</comment><comment><USER5> Is this an accurate depiction of Russians?</comment>


Emokit: Python library for the Emotiv EPOC headset - <AUTHOR> http://github.com/daeken/Emokit

<comment><AUTHOR> Someone else already posted this: <http://news.ycombinator.com/item?id=1686144> but they deleted their submission for some reason.</comment>


The Internet Has Ruined Tattoos - <AUTHOR> http://www.racked.com/2017/4/18/15198696/internet-tattoos-pinterest-stick-poke-finger-tat <comment><USER2> > It's a minimalist or geometric black design, like mine, popularized by > Buzzfeed listicles like this one.

So, a 'list article' is a 'listicle' nowadays.

Wonder how'd they call a 'test article'…</comment>


The Vulnerable World Hypothesis - <AUTHOR> https://onlinelibrary.wiley.com/doi/full/10.1111/1758-5899.12718 <comment><USER2> Just by skipping over it I think the counter measures proposed are worse than the hypothetical dangers painted on the wall.

Overall I don't see the merits of the analysis. Super-stability through extensive surveillance seems self defeating at some point.</comment>


Free full video course on CSS3 - <AUTHOR> http://membership.thinkvitamin.com/library/css3

<comment><USER2> If I were you - I might switch all the free content to be at the top of the page. Initially when I clicked the link I immediately saw "sign up to access" on 6/7 of courses. Luckily I know how to use the scroll bar :) Just saying I fly though most of these links and sometimes don't even stop to scroll. HN is an awesome market for your team - it might even deserve it's own offer splash page or something.. ? Keep up the good work.

</comment><comment><USER3> what's next on HN? cheap rolex watches?

Stop link baiting telling it's free when it's not.

It puts away people that were interested in the product.

<comment><AUTHOR> You have to scroll down to see them. It wasn't obvious at first.

<comment><USER3> I still only see the intro as free

<comment><USER3> Duh, i can see it a little lower... was just being an idiot

<http://membership.thinkvitamin.com/library/css3#borders></comment></comment></comment></comment>


Found a breakthrough but don't know what to do - <AUTHOR> https://github.com/bittnkr/uniq <comment><USER2> Quick googling and analyzing the code of compare_exchange_weak shows that this (not really new) solution is in fact lock-free, but not wait-free.

[https://stackoverflow.com/questions/40756575/why-multi- produ...](https://stackoverflow.com/questions/40756575/why-multi-producer- queue-in-boost-atomic-usage-is-wait-free)</comment>


iOS 12 CarPlay Is Getting Google Maps and Waze - <AUTHOR> https://www.slashgear.com/ios-12-carplay-is-getting-google-maps-and-waze-04532829/ <comment><USER2> It's about time. In fact, if they would have announced this a month ago, I probably wouldn't have bought a pixel 2 recently since that was my major gripe with my old iphone 6s.</comment>


The dwarves of Auschwitz (2013) - <AUTHOR> http://www.theguardian.com/world/2013/mar/23/the-dwarves-of-auschwitz

<comment><USER2> It is refreshing to see an article willing to speak about conflicting survivor accounts. Whether it's the holocaust, 9/11, Rwanda, or the killing fields, there is a tendency to treat every account as sacrosanct. Conflicting stories then become ammo for those looking to deny and discredit events. But open discussion and even speculation can increase confidence in a narrative. Apparently conflicting accounts often dovetail into each other, but to get to that point you have to be willing to criticize.

</comment><comment><USER3> Anyone interested in the life of a dwarf at Auschwitz should read Primo Levi's excellent memoir, whose title has been translated both as "Survival in Auschwitz" and "If this is a man". Levi himself was not a dwarf, but he encountered one in the year he spent in Auschwitz, and the entire book is very well written. [http://appliedsciencefreelibraryguide.org/view.php?id=388132](http://appliedsciencefreelibraryguide.org/view.php?id=388132)

</comment><comment><USER4> I thought "dwarves" only meant the Tolkein race and you should otherwise use "dwarfs"?

Actually I didn't think we called people dwarfs either.

</comment><comment><USER5> I think there is a typo, it's Zyklon B, not Cyclone B.

<comment><USER6> Cyclone B is just the english translation for Zyklon B.

</comment></comment><comment><USER7> What a great read</comment>


Implementing a Debugger: The Fundamentals - <AUTHOR> http://backtrace.io/blog/blog/2016/08/11/debugger-internals/ <comment><USER2> Anecdote: Three weeks ago, I needed to debug what might have been a problem in a compiler. A small change to the packaging of some libraries had caused a test program to fail, and there was no obvious relation between the small change and the failure that was reported by the test.

Experimentation showed that I could make the problem appear or vanish depending on the presence or absence of a small amount of additional read-only data to the link step of the test program. But I couldn't add any code to the test to try to isolate the root source of the failure by printing intermediate values or "hey I got here!" messages -- it was a true Heisenbug that vanished if I got too close to it.

Long story short (if still possible): I ended up having to write a debugging tool that would drive the ptrace(2) API to fork and exec two binaries, let them run for a certain number of system calls, and then a certain number of breakpoint hits, and then single-step a certain number of instructions. Bisection on these three parameters allowed me to eventually find the point in execution where the PC registers of the two images first differed. Working backward from a trace found the conditional branch that first diverged, and then tracing register values helped nail down the address of a memory location whose load first yielded distinct values.

(And yeah, it turned out to be a compiler bug that had caused the right value to be stored into the wrong address much earlier in the execution.)

Anyway, thank goodness for ptrace(2). It's pretty easy to use and it's a very powerful tool.

<comment><USER3> You should give a shot to rr's chaos mode. [http://robert.ocallahan.org/2016/02/introducing-rr-chaos- mod...](http://robert.ocallahan.org/2016/02/introducing-rr-chaos-mode.html)

</comment></comment><comment><USER4> > if we had to fundamentally understand something in order to use it, we'd use > precious few things

But the world would be a better place.

<comment><USER5> A world where most people don't use debuggers?

<comment><USER4> No, a world where people understand them.</comment></comment></comment>


33-yo tech CEO killed in NYC - <AUTHOR> https://www.vice.com/en_us/article/jgxd9d/ceo-of-motorcycle-ride-sharing-company-found-dismembered-in-nyc-condo <comment><USER2> Discussion here: [https://news.ycombinator.com/item?id=23846654](https://news.ycombinator.com/item?id=23846654)</comment>


Me.Com Data Breach? - <AUTHOR> http://www.crunchgear.com/2010/11/23/breaking-me-com-data-breach/ <comment><USER2> s/Breaking News/Broken news/

One person had their me.com password stolen and another person on the internet had their iTunes password stolen.

But 6 ad displays per page view is 6 ad displays per page view. Good for you crunchgear.

End of story.

</comment><comment><USER3> > _Aha. Logging in with me.com doesn't work, but Mac.com does._

I'm guessing this is probably just a bug then - not a data breach.

</comment><comment><USER4> I mistyped my userid when logging into my bank today so the first thing I did was to write a blog post about how the bank had been compromised and everyone's accounts had been hijacked.</comment>