Being on HackerNews, One week on - <AUTHOR> https://www.sharelatex.com/blog/posts/hacker_news_one_week_on.html <comment><USER2> 9000 visitors a day averages about 0.1 visitor per second.

Let's say that the peak is 100 times more frequent than the average, so that would be about 10 visitors/second.

Being a systems developer, and not a web programmer, I work on software that handles tens of thousands of requests/sec. I don't understand why around 10 visitors/second would be a difficulty with semi-modern hardware. How many requests does that translate to?

This is a genuine question, can anyone explain what is it that takes so much work in handling a web request?

<comment><USER3> Web servers used to serve just static pages. So when dynamic web applications were invented (e.g. CGI), they tried to slot in as transparently as possible. The web server would invoke a process, pass in the HTTP request, and get back the appropriate HTML to send to the client.

Languages like PHP follow the same model, and as a result, every single page request is processed independently. All the raw data is retrieved from the database, is processed appropriately for output (e.g. turning content into HTML), is run through a templating engine, and assembled with the right CSS and JS so it can be served. This is attractive from a rapid development point of view, because you can deploy changes instantly and can scale it out horizontally just by adding more servers, without any additional work.

However from an efficiency standpoint this sucks, and this is why the most common fix is to place a static HTML cache in front of it (e.g. Varnish) as well as opcode caches, object caches, etc. This only works if all your visitors see the exact same thing (e.g. a HackerNews discussion thread). If you use 'write through caching', then you can control the rate of updates independently of the amount of traffic you receive, and you can handle traffic pretty well.

If your pages are dynamic, you need a different approach. You'll want to cache all the static chunks of each page, and assemble them together with the dynamic parts on-demand. The extreme example is Facebook: everyone sees something different. The only way to scale this out is to parallelize everything, with your first tier of web machines making many simultaneous requests to a farm of servers behind them, delivering all the pieces within a relatively constant time.

The problem is that such a parallel architecture is both unnecessary for a small web app, as well as involves a leap in complexity and know-how that is undesirable for small teams. Hence, there is an increasing technological gap between what hobbyists/start-ups do, and what the giants are doing.

Edit: it's also important to realize that the web loves 'inefficient' dynamic languages not because they're dumb, but rather because development is very rapid, very experimental, involves designers, UX experts and marketers, and you don't want to be forced to make long-lasting decisions early in your development process.

</comment></comment><comment><USER4> I feel like this would be a common mistake when getting caught up in the moment of completing a dev project. You're so anxious to launch the site/app that load balancing factors could be overlooked. This seems like it could be really detrimental as you're pretty much canning your first impression when your backend crashes. Anyone up for sharing their horror stories of launching before their backend could handle the traffic? I feel like it could provide for some good insight in regards to patience and thought when it comes to launching.

</comment><comment><USER5> I love this traffic graph, looks very similar to past HN type analytic graphs ive seen.

I would say a big lesson people should learn from you and others is, use load balancers. At least if traffic spikes, you can add another server (provided you have an image sitting by waiting and your code doesnt mind being load balanced).

<comment><AUTHOR> Makes sense when you get a bit bigger, for me a load balancer would just about double my hosting costs at the moment. Probably the difference between a weekend project like ShareLaTeX and a startup of 4 people.

</comment></comment><comment><USER6> Collaborative typesetting is indeed cool, but the domain name promised far more excitement than it delivered.</comment>


Literate Vimrc - <AUTHOR> https://tylercipriani.com/blog/2017/06/14/literate-vimrc/ <comment><USER2> This is cool. It lets you write a file in Markdown that has codeblocks containing vimscript, which can then be used as your ~/.vimrc file. Especially in situations where you want to share your vim config, being able to explain things in detail is really helpful!</comment>


The Surprise and Wonder of Early Animation - <AUTHOR> https://www.newyorker.com/magazine/2019/12/30/the-surprise-and-wonder-of-early-animation <comment><USER2> Here's a fascinating video in which Walt Disney showcases how his multiplane camera worked: [https://youtube.com/watch?v=YdHTlUGN1zw](https://youtube.com/watch?v=YdHTlUGN1zw)

Truly incredible.

<comment><USER3> I recommend that video too!

The Walt Disney Family Museum in San Francisco has a multiplane camera you can see in person:

[https://www.google.com/search?q=walt+disney+family+museum+mu...](https://www.google.com/search?q=walt+disney+family+museum+multiplane+camera&tbm=isch)

and from the filming of Pinocchio:

[https://www.waltdisney.org/blog/machine-imagination-walt- dis...](https://www.waltdisney.org/blog/machine-imagination-walt-disneys- pinocchio-and-mulitplane-camera)

 _The scene opens on a foggy evening. The camera pushes through wisps of mist thick as smoke. A faint light is revealed, hanging over a doorway and dangling sign, "Red Lobster Inn." In the background lie ships at dock, hulking masses nearly shapeless in the fog. The disquieting camera dolly is broken by a seamless dissolve to inside the building, as Honest John jubilantly sings "An Actor's Life For Me." The camera continues to push forward through a veritable maze of architecture, woodwork, and cigar smoke. Finally, the image rests on Honest John, joined by Gideon and the evil Coachman, tucked away in a corner booth of the establishment._

All done frame by frame on the multiplane.</comment></comment>


Office 365 is being completely rewritten in JavaScript - <AUTHOR> https://twitter.com/thelarkinn/status/1006746626617008128?s=21 <comment><USER3> As a side note, Microsoft login echo system sucks big time in the context of office. You have no idea which URL to use to login to office 365. Between login/logout/timeout/other office apps/personal accounts/business accounts/forgot password workflows browser redirects to various URLs at least a dozen times. And you keep seeing new URLs I am wondering how less tech savvy people are coping with their authentication workflow.

Depending on how you are authenticating you will see URLs with various words in them.

loginlive office.com outlook.office.com office365 outlook.com account.live products.office.com login.microsoftonline.com

and this list goes on and on... I am wondering if they made an announcement that they are fixing their messy authentication workflow instead spending resources in rewriting office in JavaScript, that would have gotten this much attention on hacker news.

<comment><USER4> When you have multiple accounts it's even worse - especially if you've got a work account with domain authentication, a private one with 2-factor, a sub- account email under another...

I'm usually pretty savvy about typing information into a rando web form, but with windows logins it's a major chore to figure out what exactly I'm looking at.

I hope they staff up to meet the 18-month rewrite cycle for modern JS apps. I'll stick with my 2003 version on the desktop for now.

<comment><USER5> This reality bit me when my Skype account was rolled into Microsoft's Live/Outlook/something system. Both accounts had the same email address, and suddenly my Skype account was no longer accessible. I finally figured out how to delete the non-Skype account, but it was a major pain and I had to wait 60 days for it to finally go away.

</comment></comment></comment><comment><USER6> Hi there, original tweeter here. Just to clarify: no one said when this work would land, simply that we are working on it! Sorry to disappoint XD, but I guess blame the OP.

<comment><USER7> Does this mean that VBA will finally die?

Please tell me that VBA will finally die.

<comment><USER8> As much as I can imagine MS would love to kill VBA it would be a major loss of business if they did. Oil and Gas lives in the stuff and would probably even sue MS if VBA died. That said could it be getting a much needed fixup... probably. I suspect the same is true of COM plugins.

<comment><USER9> I rewrote a 3000 line VBA function into C# earlier this year for a Oil/Gas company. It was surprisingly easy. Sometimes tedious, but easy. It runs faster, it's easier to maintain and now they can slap whatever front-end they want on it.

Is it money, fear or gatekeeping that keeps these VBA programs untouchable?

<comment><USER10> Probably all three.

I used to be in the Medical Devices field. A couple years ago, I was told to add a feature to a massive VBA app hosted in Excel that we (S/W development) inherited from another department. It was hands down the worst code I have ever seen. _Everything_ was a global variable. I flat out told my boss that it barely worked, didn't come close to meeting the weakest of our development standards, and since it was used to disposition product (determine whether or not it was acceptable to be used on Patients) it was an FDA audit nightmare waiting to happen. I added the features, but made some pretty unpleasant commit comments since I didn't want to have my fingerprints all over it.

In all fairness, it was originally developed by a scientist with no SW dev training (I knew him well) for his own use, and just grew over the years as he was told to add more features to it. I have no idea how a company with that level of process strictness ever allowed this fiasco to happen.

[rant over]

I estimated the rewrite at 6-12 months. It was really not a very complex program and since we already had the Validation tests written and documented, we at least knew what tests its replacement would need to pass. The problem was all the stuff that we knew it was doing that wasn't in any of the tests. That would have been the majority of time spent to replace it.

Since I left, I heard ownership of it was transferred to Corporate IT and they were making it into a web app to run on their intranet. Heaven help those guys.

<comment><USER11> > Since I left, I heard ownership of it was transferred to Corporate IT and > they were making it into a web app to run on their intranet. Heaven help > those guys.

At my last job, I developed automated processes. Some software companies sell tools to automate clicks and keypresses. The idea is then to reuse that Excel macro no one understands inside a VM on a server, and adding a friendly webservice on top of it. Users of the web services don't know an actual screen is running and and an Excel file is being clicked for them.

</comment></comment></comment></comment></comment></comment><comment><USER12> I know the architecture too good, more than I need as I was leaving MS recently. This tweet is not likely to happen. Talking about desktop apps, this doesn't make any sense. Office apps have millions of lines in code and many years of lost knowledge between the classes. Just too many screens, checkboxes and features. A complete bloatware. Buy MS doesn't take any feature off the app- if you have 1B users, most likely that any minor feature cut will hurt some of them, hundred of thousand of them, and they are probably paying, not free riders. Any new office version only hides features, letting this small users group to get them back, never deleting lines of code. MS doesn't want to get billions fined as happend when they moved to docx/pptx/xlsx and didn't support backwards.

Talking about the online versions of office, it is a mess. For Word and PPT they tried to replicate the desktop to the web, rewriting the code, so their current online versions are already using (mostly) new code dedicated for the web. Saying that, they also have a huge number of legacy components and features that they need to support for backward compatibility.So for word and ppt this is a mix in code, not a total re-write. They also have a substantial subset of the features that appear only in their older desktop brothers. Even the PMs don't dare to dream on features parity between the versions.

Excel is a different world and a big-big elephant that won't likely be rewritten any years soon. Think of a code that is maintained over 30 years. Literally, developers are still maintaining code written in the 90s. Trying to bring Excel to the online world made MS create an architecture of html frontend which communicates with a dll session behind the scenes. As weird as it sounds, this dll lives as long as the browser has the spreadsheet opened. Think of it as MS raising VM for every excel file that is opened over the internet. While this is not very cost effective (saying the least) and not very performance friendly (hey ma! I made an understatement) this allowed them to move forward with Excel online very quickly by having a UI communicating with the bloatware dll that runs on the background in Azure. Summarizing Excel, it probably won't also be rewritten in js.

So this PM might be talking about the new apps - Teams or flow or something similar. Not the office cash cows. Personally I really hope he is talking about Skype which became a total garbage in the past versions.

 __ __Anyone from Google here? I 'm looking for a job :-) ping me (chengmau) in the blind app

<comment><USER13> The way I see it, even saying that this is the goal is bad news. It's basically an official admission that Microsoft intends to abandon the Desktop OS entirely. Windows 10's bullshit isn't just some bump in the road that would eventually be recognized as the bad idea that it is, it's a deliberate move to push people off of Windows Desktop and on to Windows tablets, smartphones, and a desktop web kiosk. Windows as a personal computing Desktop OS would be completely dead, and given the state of the alternatives that means that personal computing desktops are also dead. Everything will be a web kiosk or a console.

It's pretty much exactly the scenario of my nightmares.

<comment><USER14> > Windows as a personal computing Desktop OS would be completely dead, and > given the state of the alternatives that means that personal computing > desktops are also dead.

Maybe, or maybe it would open up an opportunity for more competition. Who knows? Maybe the year of the Linux desktop is still coming :)

<comment><USER13> Sure, if a comet takes out pretty much the entirety of the current Linux Desktop community at OverengineeringCon 2020 or something and some reasonable people take it over.

</comment></comment></comment></comment><comment><USER15> Why not C#? Seems a bit of a missed opportunity to feed some of the APIs undoubtedly created for this into the new .net core stuff. I guess i'll just keep dreaming of the day when i can reliably convert a docx into a pdf without using office interop.

<comment><USER16> Reading this thread, with all the Javascript talk, makes me feel like I should be scared of continuing to be a C# developer..

<comment><USER17> Office client never used .net or C# to begin with

<comment><USER18> Actually at one point they went very close to replace VBA with .net. It was called VSTA and meant to be a mini visual studio in office apps. I believe one of the office apps shipped with it in Office 2007, then they killed it.

<comment><USER19> VSTO, right?

<comment><USER18> Nope. VSTO actually shipped and is used to create office addins. VSTA was an embedded IDE.

</comment></comment></comment></comment></comment></comment><comment><USER20> Surprised they didn't opt for Typescript. Then again, it's a tweet - <USER2> forward to a longer blog post with technical details when they're willing to talk about it more.

<comment><USER21> Javascript can still mean that Typescript is used.

<comment><USER22> I'm willing to bet money that MS is actually using Typescript for almost all their Javascript.

<comment><USER23> I accept that bet! Let's discuss offline.

</comment></comment></comment></comment><comment><USER24> Office for Windows (WIN32) will be an Electron app? I have no words.

edit, since there seems to be some confusion: I am explicitly talking about the WIN32 variant, which he confirmed to be based on Electron.

<comment><USER25>
        "No they are not electron apps. They are compiled to native code.

        It's now finally one toolchain(#webpack)
        It's one codebase and it compiles to:

        Web
        Android
        IOS
        MacOS
        UWP
        WIN32 (only one that uses electron)
        7:52 AM · Jun 13, 2018"

[https://mobile.twitter.com/TheLarkInn/status/100676113439583...](https://mobile.twitter.com/TheLarkInn/status/1006761134395834368)

<comment><USER26> comment seems to be saying -- in modern windows (UWP) it'll be using native code, but microsoft is taking the easy path on win32. i guess some people are surprised that despite years of telling people that win32 is going away microsoft is finally making good. but I am not, I'm more excited than anything at another good sign that Microsoft is finally done with legacy windows.

<comment><USER27> > Microsoft is finally done with legacy windows.

It's kind of sad; all the good stuff I use is basically legacy Windows. None of what Microsoft has done since Windows 7 has appealed to me.

<comment><USER13> Yeah, it's all been less functional and slower. That's the future of computing now.

</comment></comment></comment></comment></comment><comment><USER28> I wonder how often NoScript maintainers just feel like throwing in the towel.

<comment><USER29> I often wish we could just fork off the modern web and redo things the right way.

<comment><USER30> If you figure out how to build a cross-platform application distribution mechanism that is better than the modern web, please do let us know!

<comment><USER29> I sure will.

The challenge here is social. The Web has fist-mover advantage. Also, I fear that doing it the right way would be equivalent to forcing standardization on a single operating system (or a family of systems).

<comment><USER31> "Doing it the right way" is a fictitious concept in software development.

You will have built a beautiful language/Web for today's needs, 10 years too late. And as the needs mutate you'll try to mutate with it, and that's how we get JavaScript.

</comment></comment></comment></comment></comment><comment><USER32> One Day Microsoft made VSCode and everyone loves them.

The Second day Microsoft decide to buy GitHub and everyone were flocking off to Gitlab, everyone hates them.

Now they are moving to the biblical end of computing era by making every Javascript.

May be they will even Open Source the Windows Kernel some day.

<comment><USER33> _Now they are moving to the biblical end of computing era by making every Javascript._ Does that means the apocalypse is upon us?

<comment><USER29> It's already here.

[https://www.npmjs.com/package/armageddon](https://www.npmjs.com/package/armageddon)

</comment></comment></comment><comment> amiga-workbench Are they trying to give hardware sales a nudge by writing everything as inefficiently as possible?

</comment><comment><USER34> The tweet that the OP is quoting/responding to is interesting:

[https://mobile.twitter.com/jdgarciauc3m/status/1005768121230...](https://mobile.twitter.com/jdgarciauc3m/status/1005768121230163969)

> _Tip of the day._

> _Scripting languages as first programming language for CS bachelors are > WRONG. You are not able to write an OS, a DBMS, or even an Office suite with > an scripting language._

I honestly thought this was a satire tweet. I guess I just don't associate even a CS bachelor's degree with writing that kind of software. I mean, it _can_ , but there are more theoretical tracks that don't involve writing a OS/DBMS.

<comment><USER35> I very much agree that this is a broken line of argumentation.

However, I find the opinion to be correct: Scripting languages might not be a good first programming language for a CS bachelor, where priority is deep learning of programming. I'd also argue that JavaScript would be a bad candidate, as it is a very "unclean" language, being a poor way to teach language/compiler theory.

As a first _practical_ programming language for a non-CS bachelor, scripting languages are fine. Without CS courses to support you, other approaches might be too difficult, while scripting languages often let you get (terrible) programs up and running (ish) while ignoring basically all CS aspects during the learning phase (only while you're not making anything big, though—the "high level" illusion breaks down fast as things grow).

(Also, yes, you can write a DBMS or an Office suite in a scripting language. I can't possibly comprehend _why_ you'd want to do something like that, but it's very much possible. Bringing OS's into things is cheating, as most compiled languages can't be used there either, and those that work often only work with a subset of the full language.)

<comment><USER36> You can't deeply learn programming in a language like assembly or even C. You don't have enough expressiveness to tackle large-scale problems (like office suites or DBs!) within the scope of what one person can work on in one semester; you'd be spending your time thinking about how to implement a hash table instead of how to _use_ one.

One of the nice things about so-called scripting languages is the breadth of library support. If you want to put together a GUI that displays some word- wrapped text, you can do that within the first hour of using the language, if you have some homework instructions you're following. At that point you can think about the interesting parts of writing a word processor, and not just how to put a window on screen (which tends to be more about docs and APIs and not about actual computer science). Also, importantly, at that point you've _successfully done something_ , which is pretty important for the learning process.

</comment></comment></comment><comment><USER37> Ugggh :( I miss my old Outlook 2013. Outlook 2016 is so slow it can't keep up wirh my typing. I thought it already was javascript. Guess it will be even slower still. Super! (not)

<comment><USER38> If I'm typing a sentence that I am very familiar with, I can get up to 95 WPM and Outlook 2016 has no problems keeping up.

Perhaps it's your computer and not Outlook.

<comment><USER13> A Commodore 64 can keep up with even the best human typists. How is it even remotely acceptable that any application running on a GHz+ multicore CPU can't?

</comment></comment></comment><comment><USER39> Let's all have a minute silence for all those software developers at Microsoft. Much evil has been inflicted on them in the past, ... and now this.

</comment><comment><USER40> Time to apply for a 20M dollar loan to buy a semi supercomputer in order to run skype, slack and office all together. Any remarks on cray supercomputers?

<comment><USER41> Err yeah, get your three phase power fitted now :)

</comment></comment><comment><USER42> I wonder, is it actually JS or they are using TypeScript? VSCode is written in TypeScript but it was mentioned there that it's JS, did somebody mixed things up?

<comment><USER43> Yeah, we can verify the validity of the statement since most of these project are open source. It's all Typescript, not JavaScript. according to the OP:

>> Those are one in the same thing (compiled) :-). But us TypeScript in majority at Microsoft in almost all the projects I've seen or been apart of.

Using the same logic, could we say that all windows is written in assembly ? When looking at JavaScript output of a Typescript program, it does really look like JavaScript is treated as assembly.

One almost never edits the JavaScript code when using Typescript, especially if the mapped ts files are available when debugging in F12.

</comment></comment><comment><USER18> Excel is already a dog in term of realculating large spreadsheets. I think we will need Intel's 28 cores at 5GHz monster!

<comment><USER44> If you use Excel for large spreadsheets you are probably not using the right tool.

<comment><USER45> Pandas is slow. Hadoop is slow. Spark is slow. R is slow. What else is there?

<comment><USER44> R is miles faster than Excel on large data tables.

</comment></comment></comment></comment><comment><USER46> Oh, just what Office needed: a rewrite that will almost certainly not even approach feature parity

<comment><USER38> Actually, I think the opposite is true. Instead of seeing new desktop versions without feature parity, we will finally see the iOS/Android/MacOS/Web versions of the Office Suite get feature parity with the Win32 versions because they will all be built from the same codebase.

I know that it's common for rewrites to not approach feature parity, but I think Microsoft is aware of how much people rely on Excel and Word and will make feature parity a high priority because of that.

<comment><USER46> I find it hard to believe they will ever duplicate all the edge cases. I mean in some cases it's literally impossible because IIRC VBA can actually hook into Win32 functions (I mean I guess you might argue that feature is a bad idea)

<comment><USER47> If VBA can hook into WIN32 functions, why do you think a VBA parser/interpreter written in JavaScript using a native module that exposes the same WIN32 functions couldn't do the same

<comment><USER46> I suppose that's true; I just imagined it was going to be sandboxed to be browser-compatible.

</comment></comment></comment></comment></comment><comment><USER48> It says that the the JavaScript is compiled to native code. That's not something you get from React Native today is it? Have they implemented a new native code compiler for JavaScript? I wonder what compiler technology it uses.

<comment><USER49> I was wondering that after reading more of the tweets; React native doesn't compile the JS to native, so not sure what they are using to do all of that? Bit worried about the far superior languages C# and F# if they are not even dogfooding anymore.

<comment><USER21> It is not a question of dogfooding, it is a question of re-use. Office also needs to run in the web browser (Sharepoint, OneDrive)

<comment><USER50> But C# can run on WebAssembly!

<comment><USER51> Which is fine if you don't need your app to run in IE. They probably do.

</comment></comment></comment></comment></comment><comment><USER52> I'll wait until it's done, released, and I have the opportunity to actually use it. Skype is already much worse than the original, so I really hope they don't go this way. I'm definitely not going to buy a 32GB notebook just to be able to use the most recent version of MS Office. (32 GB is nice BTW but a huge battery drain.)

</comment><comment><USER53> Most of the comments seems to say "it's a bad idea" , keep in mind Microsoft is now using React very intensively for most of their projects as well as angular (VSCode , Windows Server etc... )

Meaning it's not the language the real issue , it's what you do with it.

Also Junior at school are less and less trained with Java and C# but straight up with JS or PHP , so it will be much easier to integrate juniors on this re- written version of office rather the pile of legacy C++ / COM / C# bridges mess they have right now.

<comment><USER54> Mail is one of the key parts of the internet no offence you don't want someone straight out some boot camp of dubious provenance having any input into what language or the spec of a MUA or MTA.

Any new developers on this need to have experience working with email standards and a good knowledge of C++ / C not some fracking scripting language!

And as some one who used to do international interconnect I think I have some valid input here - this has shades of the amusing project spitfire fiasco in the late 80's.

<comment><USER55> This is literally the same argument of the tweet's first poster (to which the linked tweet is a reply). This is just simply not true. I know many people who make mail apps for some big big companies. They have CS degrees and would admit they suck at C++ (I wouldn't even mention C) but they are great at Python

<comment><USER54> I was talking about outlook and exchange not writing some trivial script to send a registration email here.

</comment></comment></comment></comment><comment><USER56> Other tweets in thread are interesting too:

      No they are not electron apps. They are compiled to native code.

      It's now finally one toolchain(#webpack)
      It's one codebase and it compiles to:

      Web
      Android
      IOS
      MacOS
      UWP
      WIN32 (only one that uses electron)

<comment><USER18> another tweet on that thread:

> _how is that even possible? there are tons of legacy features in there, COM > /OLE APIs, SDKs, plugin architecture, macro system, VBA interpreter, VBA > IDE, graphing components etc. Almost 30 years of development. No way MS is > going to rewrite all of that. (Maybe the "mobile" version)_

I think this is a strong indication that all these technologies are going away.

<comment><USER57> This would be suicide for Office. I struggle to believe that Microsoft is replacing the full Windows desktop version of Office with a version rewritten in JS. It makes no sense. Many, many, many businesses absolutely _rely_ on the features you're mentioning, and many others that would be a tremendous undertaking to re-implement. There has to be something that's not being communicated right here. Maybe they mean the "lite" versions of the programs.

<comment><USER48> I also think it's extremely unlikely MS is announcing an new native code compiler for JavaScript, something I'm not sure anyone knows how to do with reasonable performance, with a Tweet this casual.

<comment><USER51> Web Views with native API's. So not truly native compilation.

<comment><USER53> Has been said many many many times , it's not electron for Windows 10 , it's React Native .NET which bridges the built in Javascript VM with WPF. So it's not a web view for UWP, it's 100% native code.

<comment><USER48> > it's 100% native code

He's said it's not compiling the JavaScript to native code - it's running it in a normal JavaScript JIT. It's not 100% native code.

</comment></comment></comment></comment></comment></comment></comment><comment><USER58> Re: the original tweet

JavaScript is a real language now. It's powerful and performant and uses modern paradigms, in addition to its sheer relevance.

That said, I am glad I was taught using C++ in college. Not because I plan to ever write an OS or DBMS, but because it taught me valuable lessons about pointers, how memory is managed, how arrays and lists differ, and other computing fundamentals that still inform you when writing in higher-level languages, even if you don't have to deal with those concepts directly.

<comment><USER59> This is true, but people like the orginal tweeter often pretend that this learning order is somehow the only "real" way to do things. I don't see why it isn't equally as valid to learn high-level concepts first and then learn the gory details later. I'm confused why there seems to be such a large number of low-level people so stubbornly insisting their order is the right one.

<comment><USER60> From both my own experience and the experience of teaching people, those "gory details" are the nouns and verbs that compose higher-level abstractions. I haven't written C++ in anger in a decade, but it informs what I'm looking at when I'm reasoning through how V8 or the JVM is going to handle my code.

I've been required to teach people in the top-down manner that has left _knowing_ gaps and rendered them without the tools necessary to solve their problems. That's not to say somebody who eagerly learns on one's own may be fine. Of course they might, so long as they have a way to determine what they need to learn. But most people _don 't_ eagerly learn on their own, and so a prescriptive "start at the bottom and build up" provides the necessary knowledge and grounding despite themselves.

</comment></comment></comment><comment><USER61> From the tweet author:

>It is. But @typescriptlang is just a static type linter that compiles to JS.

Hell, any language is just an assembly runtime plus a grammar. TS is a language that happens to be compiled to Js, I bet in the future it will be wasm.

</comment><comment><USER62> As if they didn't learn their lesson with skype for business.

<comment><USER63> There's a Skype for Business written in JavaScript? I know there is Skype, but it doesn't talk to our Skype for Business (Lync) server.... I have to use Pidgin for that. (Linux)

<comment><USER64> Definitely not. Unless it's the godawful Mac client that doesn't work for most things, which is possible, since it's using UCWA under the covers.

The Skype for Business Windows client was barely reskinned from the Lync 2013 client. I think they are still only a couple dozen patch revisions apart on the version number.

<comment><USER63> That's what I thought. It's tough to use Linux in a Windows shop. I have most of it figured out, though.

It would just be nice to be able to join Skype/Lync meetings with Screen sharing.

</comment></comment></comment></comment><comment><USER65> Is this the "real" reason why they bought Github? They want to migrate their entire office products to use the ElectronJS. VisualCode and others were like the guinea pigs before going fully in with their office products. /end_speculation.

<comment><USER66> Not Electron. [https://twitter.com/TheLarkInn/status/1006761134395834368](https://twitter.com/TheLarkInn/status/1006761134395834368)

<comment><USER67> The tweet:

 _No they are not electron apps. They are compiled to native code._

 _It 's now finally one toolchain(#webpack)_

 _It 's one codebase and it compiles to:_

 _Web_

 _Android_

 _IOS_

 _MacOS_

 _UWP_

 _WIN32 (only one that uses electron)_

</comment></comment></comment><comment><USER68> More specifically React [https://developer.microsoft.com/en- us/fabric](https://developer.microsoft.com/en-us/fabric)

</comment><comment><USER69> Seriously? This is a bad idea, and I say that as a engineer who writes a lot of JavaScript.

<comment><USER70> They are using TypeScript for large scale projects.

<comment><USER71> Which is an even worse idea. In widespread practice, I regularly work with developers who can't even master JavaScript. To blithely toss another CoffeeScript in the mix is foolish if you ask me.

<comment> crooked-v You may want to actually learn what Typescript is before blithely making such comments.

<comment><USER71> Yeah, I know what Typescript is. It's another transpiled language. I don't care what the syntax looks like, the point is you've added a secondary level of knowledge required to operate in a codebase written in it, and most don't fluently know the first. Please tell me more about what I don't know.

<comment><USER72> Well, if you remove your assumptions about how incapable people are, TypeScript is the way to make large JS code bases maintainable. It doesn't even change any of the JS syntax, it just adds to it. It's the opposite of CoffeeScript in many ways.

</comment></comment></comment></comment></comment></comment><comment><USER73> >It's one codebase and it compiles to: Web Android IOS MacOS UWP WIN32 (only one that uses electron)

Ah yes, you can see here the strong love of Linux in Microsoft.

</comment><comment><USER45> Oh well, the kool-aid is strong. Next round of what Intel giveth, Microsoft taketh away...

Can somebody please design even worse language so that we can progress by reimplementing everything in it, keeping us occupied for the next 20 years?

<comment><USER74> How much more real world evidence does HN need to see before the "JS isn't a real language" meme is abandoned?

Pretty sure we're up to billions of real world value created by software written in Javascript. If you're still dismissive at this point, it's time to catch up. You've missed the boat.

<comment><USER35> It's a "real" language, it's just not a terribly good or fast one. It's works decently when its use is limited to what it was made for: manipulating web pages. For anything else, the "designed on the back of a used piece of toilet paper" starts to shine through.

And no, a JIT can't save you from this, it can only make things acceptable.

That it can create "real world value" is an extremely low bar, which is passed by any turing complete language. COBOL creates "real world value".

<comment><USER75> >it's just not a terribly good or fast one

From everything I've seen, its performance sits just below Java (4x slower, perhaps) on some standard algorithms or tasks, and significantly faster than languages like Ruby, Python, etc.. I never see hate for those languages like for JS, so I'll disregard that.

>not terribly good

This one never has made sense. What is it missing that makes you hate it so? I think it has rather robust asynchronous handling, 'everything is an object' has lots of nice implications when paired with functionality like Object.keys / .assign, ... So what are the issues you see that make it 'bad'?

<comment><USER35> > (4x slower, perhaps)

"4x" is a lot slower, and a lot of things are _much_ worse than this. You have to have deep knowledge of the VM (such as knowing how "hidden classes" work in V8) to be able to get JS close to Java.

> so I'll disregard that.

You shouldn't. Claiming a JIT'ed language is fast due to being faster than Python, an entirely interpreted language, is like saying a moped is a fast vehicle because it's faster than biking. Apples and oranges.

Being faster than PyPy, the JIT'ed Python implementation, is a more interesting thing, but this is still very far off "fast" languages.

> What is it missing that makes you hate it so?

Most language features, really. "Everything is an object and objects are hashmaps, EVEN ARRAYS" (terrible for performance, type safety), "array of int16" strings with totally broken unicode codepoint handling (ES2016 brought new ways to deal with codepoints, but the standard way is still broken), the "Number" type which is totally retarted, the terrible "prototype" system, the malice that is "this" and how any bare function expression had its own this context (arrow functions are a good workaround now), and god I could go on.

"Everything is an object" is only useful if you either actually need a hashmap (then use one!), or you have sloppy types.

JS, as a langauge, is not well designed. I'm not saying it had to be Haskell or Rust, but JS is far below average.

It _works_ , and does it job decently due to the _very_ hard work of JS engine implementors trying to make this crazy thing fast, but that's not the same as being _good_.

<comment><USER76> >Most language features, really.

Name a few.

>terrible "prototype" system

>malice that is "this"

It sounds like you are talking about ES5, not ES6+

<comment><USER45> Can you guarantee all ES6- code to disappear immediately? Or are you forced to dive deep into warts when you have to work on some older JS project?

<comment><USER77> Why does that impact whether or not it's a reasonable choice to use the language today? Old libraries I could understand, but old independent projects? How do they affect the current state of the language?

<comment><USER45> Isn't it obvious? You apply for a job, company that isn't a startup has code that is likely written with old JavaScript whose replacement is not economical, so even if you do everything new in ES7, you still have to wade through old ugly code, likely everyday.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER78> This is a joke right?

</comment><comment><USER79> That could lead to a possible "good" Linux version of Office 365? That would be Awesome imho. AAAnd hopefully they kill VBA and replace it with JavaScript :D. Like Building Forms with JS in Adobes Lifecycle Designer but in a good way.

<comment><USER80> That's a good thought. As bad as JS is, I'd still prefer it to VBA.

<comment><USER7> Having had to write both, professionally...

You've just never seen the monstrosity that is enterprise-level VBA.

Javascript is a godsend over VBA.

<comment><USER80> ^^ word. Been in the same boat..

</comment></comment></comment></comment><comment><USER41> This is good news for those of us who have to deal with VSTO, MSI packaging and all that cack. At last it might not feel like being buggered by a traffic cone repeatedly.

<comment><USER18> The ideal of an IT dept is to force all of their users to use only a locked down ipad. Of course they won't be able to achieve any work on them, and productivity will go down the drain, but that's not the problem of the IT department.

</comment></comment><comment><USER81> My hunch is probably there will be 2 versions maintained separately like visual studio and vs code. The version built in javascript will probably be free for personal usage, can have lesser features and probably fight for marketshare against google drive, libreoffice etc. I wouldn't be surprised if they even keep the source open. PR and market wise, this would be a great move.

<comment><USER38> This was kind of true with OneNote up until recently. There are currently two desktop versions. One that comes with Office and looks/feels like the rest of the Office suite, and one that is made with UWP and available for free from the Windows Store. That one looks/feels a lot like the Android/iOS OneNote app.

However, they've announced that they're EOLing the Office version, with bug fixes through 2020 and security updates through 2025, and are continuing forward with the UWP version.

Perhaps we will see a future where they EOL the other Office applications in favor of new versions that are more similar to the iOS/Android versions. The iPad versions of Excel and Word are already pretty good.

<comment><USER82> [https://www.thurrott.com/cloud/office-365/161295/microsoft-r...](https://www.thurrott.com/cloud/office-365/161295/microsoft- redesigning-office-user-interface)

<comment><USER38> Well that's disappointing. The simple ribbon in the new OneNote feels like such a step back from the ribbon UI in OneNote 2016.

It does say users will be able to enable the full ribbon UI still, so I suppose I will have to do that. Hopefully they don't deprecate that feature.

<comment><USER83> In the past the reasoning to replace the menu system with ribbons completely and not allowing to switch back is the understandable desire to not having to maintain and test two different UIs all the time. Two different ribbons may still work, as the ribbon already has information about "importance" or "prominence" of each item, but I fear eventually there'll be only one remaining in the future.

</comment></comment></comment></comment></comment><comment><USER84> Wouldn't mind comparing battery life of this against current office 365 on my Gen1 Surface Pro

Half the battery goes to edge alone on a good day

</comment><comment><USER85> FWIW, I personally like the direction Microsoft is going in. I look forward to seeing where this transformation leads.

<comment><USER18> The positive side of breaking compatibility with all legacy technologies (COM, VBA, XLL, etc) that currently force large companies to stick to MS Office is that it has the potential to reintroduce competition in the office-like software space. And in my opinion Office is the main reason why large enterprises stick to Windows. Most internal apps are moving to the web. If office backward compatibility goes away, then it's not clear that Windows is an obvious choice anymore.

And it is kind of consistent with Microsoft's new strategy to de-emphasize Windows.

<comment><USER86> Not sure if employees will enjoy the return to the days of time-sharing and remote X-Windows sessions though.

Which is the end result of Webification of our tools.

</comment></comment></comment><comment><USER87> For skype I'm curious how much will be written in JS, I'm assuming crypto won't be?

I could well be wrong but I thought with an interpreted language it would be very hard to protect against timing attacks?

Wouldn't a lot of the network communication also be utilising compiled libraries?

</comment><comment><USER88> Reminds me Gary Bernhardt's "The Birth and Death of JavaScript" talk.

</comment><comment><USER89> Why is this trend going on with using js in domains where it previously was not a component?

Is it to ease shipping new features? To make it easier for contributors once they make the application open source? Good PR?

<comment><USER90> _Why is this trend going on with using js in domains where it previously was not a component?_

Office products need to be on the web these days. Having a common code base between desktops, mobile and web makes that much easier and in that world JavaScript is the lowest common denominator.

</comment></comment><comment><USER91> I want to see a breakdown of resource usage (RAM, CPU, etc.) before I cry too loudly. Office 2016 is a beast, so here's hoping (but not holding my breath) that they'll improve on it.

</comment><comment><USER92> Is it now TypeScript or JavaScript? It's a huge difference...

</comment><comment><USER93> That explain why the Office windows are laggy as hell when being moved. It's like they're not processing window messages quickly enough or something.

</comment><comment><USER78> So of all the good, far more suitable languages they could use, we're getting it written the flaming pile of trash that is JavaScript? Why though?

<comment><USER94> because it is not a pile of trash. the programmer can be a pile of trash though.

<comment><USER95> > because it is not a pile of trash

For instance, see the `Set` implementation here <[https://developer.mozilla.org/en- US/docs/Web/JavaScript/Refe...](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/Set>) and note that it doesn't even has `union` and `intersection` in the standard library. You have to copy/paste some code and place somewhere to have a minimum usable `Set` implementation.

Pretty much a "pile of trash" in my opinion.

<comment><USER51> This thread is getting weird. Now we're arguing an entire language is trash because the Set type doesn't have native methods you want? Really?

<comment><USER95> It's just a tiny example of how silly this whole thing is. What's the point of having a committee to draft and design an language that can't even be bothered to have a working Set implementation? It simply doesn't make sense.

<comment><USER51> It's a pointless example that's trivial to fix. There are actual problems with Javascript. The examples you and many other detractors mention expose the actual problem: You have no idea _how_ to use the language because you don't use it. Instead you whine about some trivial things (At a method to the Set type... it would take minutes), or things you don't understand (prototypal inheritance).

<comment><USER95> It's not about adding a method or two, I showed one symptom of a much larger problem. Of course one can add a method, but then why bother with the default crippled implementation in the first place? I'd rather have nothing and go find a third party library than having a half-assed one that's almost useless.

> You have no idea how to use the language because you don't use it.

I do use it daily for more than 15 years.

</comment></comment></comment></comment></comment></comment></comment><comment><USER96> The Javascript is compiled to native code, apparently. Maybe there's a Typescript to Cpp transpiler that I haven't heard about?

<comment><USER90> [https://github.com/NectarJS/nectarjs](https://github.com/NectarJS/nectarjs)

Still not sure if it's just a 'cool hack' or an attempt at a serious product though.

</comment></comment><comment><USER97> The sky is falling

</comment><comment><USER49> Seems like a very strange move... But it's a tweet. Might not mean anything really.

<comment><USER18> My first thought was an April fool joke that got lost in a queue or as a result of a bad network connection...

</comment></comment><comment><USER98> Atwood's Law - "Any application that can be written in JavaScript, will eventually be written in JavaScript."

<comment><USER78> Can we skip to the bit where we start re-writing software that we re-wrote in JS in other, more appropriate languages? :P

<comment><USER91> Not yet. Let's wait a little longer, that way those of us who would do the writing will be more valuable.

</comment></comment></comment><comment><USER99> I hope to god they mean to say 'TypeScript'.

Otherwise, they'll never finish :)

</comment><comment><USER100> I am slightly surprised by the choice to use ECMAScript instead of WebAssembly.

<comment><USER101> You can't access DOM ATM. That's not to mention how large of an initial download it would require to put it on webasm. If they're gonna build only a thin client, JS is the best bet

</comment></comment><comment><USER102> Title is missing the word "in." Come on.

</comment><comment><USER103> anybody knows details like if they use typescript or vanilla or some framework

</comment><comment><USER104> No! Bad MS! Stop it!

</comment><comment><USER105> I for one welcome our new Libre Office overlords.

<comment><USER106> Does LibreOffice still look like a Windows 3.11 application?

<comment><USER105> Maybe if you had this theme installed:

[https://www.gnome-look.org/p/1079270/](https://www.gnome-look.org/p/1079270/)

Hey you know, with a different font and a slightly different colour scheme that wouldn't be far off the Metro look.

</comment></comment></comment><comment><USER107> download link anyone?

</comment><comment><USER108> I wonder how much of global warming is caused by inefficient code written in higher level languages requiring more powerful hardware to run. It might be infinitesimal but still non-zero.

<comment><USER6> Technically JavaScript is only ~7% slower then C++ to execute. But snipe away at that stats with real data.

<comment><USER29> Technically, maybe. In practice, each language has its culture, its ecosystem. Its set of tools to pick from. Is it reasonable to expect the JavaScript Office will really just bind directly to all the native APIs it was using before, thus incurring only 7% penalty (+/\- FFI)? Or is it more likely that it'll have web rendering shoved in everywhere, and then layers upon layers of off-the-shelf JS libraries, thus incuring more like 700% penalty in resource use?

</comment></comment></comment><comment><USER109> Brendan Eich is our generation's Thomas Midgley.

</comment><comment><USER110> Bye bye Office 365. [https://www.joelonsoftware.com/2000/04/06/things-you- should-...](https://www.joelonsoftware.com/2000/04/06/things-you-should-never- do-part-i/)</comment>


DIY Pixel Qi Kits - <AUTHOR> http://pixelqi.com/blog1/2010/03/07/diy-pixel-qi-kits/ <comment><USER2> Site seems to be dead (it showed up on Slashdot as well) but here's a Coral Cache version:

[http://pixelqi.com.nyud.net/blog1/2010/03/07/diy-pixel-qi- ki...](http://pixelqi.com.nyud.net/blog1/2010/03/07/diy-pixel-qi-kits/)

</comment><comment><USER3> I would love this for my tc1100 tablet.</comment>


Lighttable concept as VS plugin - <AUTHOR> http://www.wholetomato.com/defaultGoogle.asp

<comment><USER2> This doesn't really seem like Lighttable to me... but it does seem like a decent plugin.</comment>


The most powerful C/C++ source code analysis systems available today. - <AUTHOR> http://www.grammatech.com/products/codesonar/overview.html

<comment><AUTHOR> Are there any open-source alternative similar to these products?</comment>


Laziness led to extinction of Homo erectus - <AUTHOR> https://m.phys.org/news/2018-08-laziness-extinction-homo-erectus.html <comment><USER2> The 4 hour work week didn't work out so well for Homo Erectus. :-)</comment>


In Turkey, Keeping a Language of Whistles Alive - <AUTHOR> https://www.nytimes.com/2019/05/30/arts/in-turkey-keeping-alive-a-language-of-whistles.html <comment><USER2> There are many cultures around the world that have developed whistled languages, most likely independently.

[https://en.m.wikipedia.org/wiki/Whistled_language](https://en.m.wikipedia.org/wiki/Whistled_language)

<comment><USER3> Most (all) of them are not what I would call languages, it's more like what writing is to spoken language. It's an encoding.

</comment></comment><comment><USER4> Previous discussion: [https://news.ycombinator.com/item?id=20068381](https://news.ycombinator.com/item?id=20068381)

</comment><comment><USER5> looks like Turkey has amazing nature too.

<comment><USER6> I recently came up with an article that promoted an "innovative" park, buzzwords aside, it seems like a great project that is ongoing in Istambul, Turkey.

The Parkorman park looks amazing: [https://www.archdaily.com/868082/drors- parkorman-park-in-ist...](https://www.archdaily.com/868082/drors-parkorman- park-in-istanbul-will-let-visitors-trampoline-through-the-treetops)

</comment></comment><comment><USER5> In the article, you will probably see a girl wearing a tshirt that says 'too hot to handle'. This is also an indication that American culture penetrating Turkish veins on north Anatolia.

<comment><USER7> I really don't think this is 'American culture penetrating Turkish veins'. I mean, I'm sure there's plenty of American culture invading Europe and Asia all across the continent, but this isn't it. It's just a mass-market t-shirt that made its way to a young Turkish girl. These are sold en masse everywhere, including in used clothing stores.

<comment><USER8> > just a mass-market t-shirt

The very idea of a "market" which is a "mass-market" and a "t-shirt" as a clothing item, which then become together a "mass-market t-shirt" (meaning globalised production chains, exploitative corporate governance, fast fashion, conspicuous consumption, etc) is already in itself an example of permeating "American culture".

<comment><USER7> American culture isn't 'mass-market' though, mass-market clothes exist everywhere and so does exploitative governance, consumption, etc. The fact that some of that clothing makes it over to remote regions doesn't mean they're suddenly going to be permeated with 'American culture', they aren't cavemen discovering fire. It's just an item of clothing, albeit one that somehow found its way into their particular place of residence. Turkish bazaars are chock-full of these, maybe her dad went to one in a big city and brought this to her to wear. Does that mean she's somehow aware of capitalism, mass production, or American culture?

<comment><USER8> > Does that mean she's somehow aware of capitalism, mass production, or > American culture?

Yes.

You seem to disconnect in your thought the very fact that these production models _are_ American culture. The indigenous operation of markets before imperialism would basically use different production models and produce different goods.

The _very thing you 're describing_ is a consequence of American cultural hegemony.

Edit: Of course culture never occurs in a vacuum and transculturation goes both ways. Also I'm not denying advantages or affirming disadvantages of the current state of transculturation between cultures. I'm simply pointing out that we (US-influenced western etc etc) are so deeply into it that we don't even perceive it as "ours" and simply perceive it as "the way things are"</comment></comment></comment></comment></comment>


For when the new developer on your team breaks your git-flow rules - <AUTHOR> https://gitmonitor.com <comment><USER2> Clever idea! One hesitation would be granting access to private repos. Ideally, Github would integrate something like this natively.

</comment><comment><USER3> Site layout is broken on mobile (at least android chrome)

<comment><USER4> Same on iOS</comment></comment>


Pilot Rapid Prototyping with JavaScript and NodeJS Class - <AUTHOR> http://www.webapplog.com/pilot-rapid-prototyping-with-javascript-and-nodejs-class/

<comment><USER2> _Traditional Computer Science education sucks big time when it comes to modern agile technologies like Ruby on Rails, Django, NodeJS, and NoSQL databases._

I'm teaching myself Node right now and my degree is in Computer Engineering not CS but I'm pretty sure CS is more than flavor of the month languages/frameworks.

<comment><AUTHOR> Right, but what people are actually using on their work if they want to stay competitive and efficient? Ruby on Rails and JavaScript. Not theoretical concepts.

</comment></comment><comment><USER3> Nice!</comment>


Autocomplete.js - expanded functions for efficient selections - <AUTHOR> http://autocompletejs.com/ <comment><AUTHOR> Chris Oakman gave a talk to the houston.js group last month on his implementation of an industrial strength autocomplete.js library. Several groups at his company, PROS (<http://www.pros.com/>) were hitting the same limitations in the available autocomplete libraries, so Chris wrote a new library from scratch.

<http://oakmac.com/Introducing-AutoCompleteJS/slides.html>

</comment><comment><USER2> I wrote this component and if anyone has any questions or comments I'd be happy to answer them :)</comment>


Artificial intelligence steals money from banking customers - <AUTHOR> http://www.sciencemag.org/news/2016/04/artificial-intelligence-steals-money-banking-customers <comment><USER2> > Ott says he overwrote the program's coding with a Beta version of Candy > Crush IX he's been developing as a sideline.

Article posted on April 1st. Still, they had me going for a few minutes.</comment>


Ronald Wayne, the third co-founder of Apple - <AUTHOR> https://www.cbsnews.com/news/ronald-wayne-apples-third-co-founder-where-is-he-now/ <comment><USER2> For every founder who left a company early and lost out on millions there are _thousands_ of other founders who left a company early that went on to fail. Ronald Wayne's story is interesting but it's not advice. If you take anything from it that should be the lesson that he is an outlier, and in practically any other startup doing what he did would have been a very good idea.

</comment><comment><USER3> Just looking at the title and having known about the initial years of Apple is enough to know what this article may be about. Taking a quote that would be relevant here — Steve Jobs said in his famous Stanford commencement address of 2005 [1]:

"You can't connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future."

Looks like the trust wasn't there at that time. Without a time machine, such regrets are unproductive.

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

</comment><comment><USER4> Rumor has it his brother, Bruce, was fairly successful as well, though nobody seems to know what he actually does...

<comment><USER5> My god how dare you come here with your 'sense of humor'.

Please be more sensitive to those around you less abled.

<comment><USER6> It's not his fault. He looked at a blue LED after 8pm and now he can't fall asleep.

</comment></comment></comment><comment><USER7> He got his first Apple product (an iPad) given to him at a conference in 2011.

</comment><comment><USER8> Sorry, but who cares? A guy makes a bad financial call VERY early on in a company's lifetime because he has different priorities. Does anyone reading this not have their own story to tell about bad decisions that only hindsight could have prevented? Sure, in this case there's a lot more money at stake, but who's to say that if he had stayed, the company's history wouldn't have been written differently? Apple is where it is today because of Woz and Jobs initially, and then Jobs in the later years.

<comment><USER9> > A guy makes a bad financial call VERY early on in a company's lifetime > because he has different priorities.

It wasn't necessarily even a bad call at the time. Apple was originally founded as a partnership, and Mr. Wayne was worried that he would personally be on the hook for foolish debts incurred by Steve Jobs.

<comment><USER10> It seems to be really difficult for people to understand that a bad outcome doesn't necessarily imply a bad decision, nor does a good outcome imply a good decision.

<comment><USER11> _" It is possible to commit no mistakes and still lose. That is not a weakness. That is life."_

<comment><USER12> One of my favorite Picard quotes.

</comment></comment></comment></comment></comment><comment><USER13> Wayne held the original Apple company agreement, but sold it for $500. What was he thinking?

It is funny that this news article has the WRONG auction price. It was sold for $1.6 million, not $1.3 million.

[1] [http://www.sothebys.com/en/auctions/ecatalogue/2011/fine- boo...](http://www.sothebys.com/en/auctions/ecatalogue/2011/fine-books- manuscripts-n08811/lot.241.html)

<comment><USER14> Regarding the wrong auction price, I wonder if the $300K discrepancy was Sotheby's fee, so the article is trying to say that Wayne might have pocketed $1.3 million? (Or it could be sloppy journalism.)

I thought I noticed another error in the article where it said that Wayne "gave up his 10 percent of Apple for just $2,300", but Sotheby's scan of the amendment to the contract (the 4th page) says "Wozniak and Jobs agree to pay and deliver to Wayne, the sum of eight hundred dollars ($800)".

That part wasn't an error. The Sotheby's Catalogue Note at the same site says that Wayne "received another $1,500 when Apple found the funding they needed shortly thereafter", which would bring the total he received to $2,300.</comment></comment>


Millions of Americans can't afford food, rent and other basics, report finds - <AUTHOR> https://www.cbsnews.com/news/americans-food-rent-basic-expenses-coronavirus-crisis/ <comment><USER2> I suspect shutting down such broad swathes of the economy is unprecedented even in wartime. Nobody has any idea what we are toying with here or what happens next.

It wouldn't be surprising if everything worked out well, and it isn't unthinkable that this ushers in the worst decade of chaos and suffering in the last 200 years. The economy is the most complicated machine we have and nobody knows what it is doing right now.

<comment><USER3> I can't help but recall that the Great Depression and the resulting widespread poverty is considered by some historians to be one of the factors leading up WW2.

<comment><USER4> I would say the suffering, hyper-inflation and widespread poverty imposed on Germany by the allies after World War I was a stronger proximate cause for the rise of the Nazis and the war in Europe. A very depressing illustration of the proverb that you reap what you sow. WWI was a complex jostling for power of the kind that had always happened in Europe, but on a scale and devastation never before seen. If not sparked by the assassination of Archduke Ferdinand, it would have likely been sparked by something else. WWII, on the other hand, was probably entirely avoidable, if not for the Treaty of Versailles. At least in Europe.

<comment><USER5> Not sure about that. From what I understand, the German economy was recovering nicely and the Nazis were doing poorly in elections in the late 1920s. Then the Great Depression hit.

Nazi share of the vote in German federal elections from 1924 to the Nazi seizure of power in 1933:

      May 1924 -   6.5%
      Dec 1924 -   3.0%
      May 1928 -   2.6%
      Sep 1930 - 18.25%
      Jul 1932 - 37.27%
      Nov 1932 - 33.09%

<comment><USER6> unemploymemt in Weimar 1932 was 30%.

umemploymemt in the Reich in 1936 was 1%.

like some wise economist said "it's the economy, stupid."

i hear today US unemployment is 30+% and will hit 45% by July. i guess if America was ever going to repeat the steps from Weimar to Reich, that time is now.

what was Hitler's formula for his economic miracle? it was dead simple.

1\. default on the War Debt (owed to America)

2\. pour over 50% of GDP in the re-armament in preparation to go to War.

America is -$27 trillion in debt now. if we start ramping up the war machine to test drive the eagle against, oh, say, Chy-na, then start to worry about the new Weimar to Reich tramsition.

may you live in interesting times.

</comment></comment></comment></comment></comment><comment><USER7> Im sure someone on HN has explained this before, but why are the markets steady and rebounding when the actual state of the US economy is so dire??

I've been waiting on that promised $1200 check for 2 days shy of an entire month now, and every day that passes I see another bar or clothing store or furniture outlet with boards up on the windows.

<comment><USER8> If you know better than the market you should buy some puts!

<comment><USER9> This always seems a bit circular to me? If you participate, then you are in the market, and you become part of its efficiency. Ergo, you are correct.

</comment></comment></comment><comment> aaron-lebo Goes without saying, but it is shocking how quickly the world has changed. The easy take would be that a lot of people are finding out how the other half lives, without easy access to healthcare or using credit cards to pay bills, but the poorer are disproportionately affected.

The only positive, if there is one, is the ability to really consider how our societies operate, how dangerous apathy and incompetence are and for tech workers more specifically, to realize how much of an impact our work has.

The next time someone wants to act like they know what the future looks like, remind them to have some humility. Be safe yall. This too shall pass.

<comment><USER10> Sorry but I can't help but remark on the contradiction in your last paragraph... Nobody knows for sure what the future will look like, but don't worry, you know that this too shall pass and things will go back to normal.

Just reminding you to have some humility.

<comment><USER11> > you know that this too shall pass and things will go back to normal.

No, we don't. Who knows if this coronavirus will ever truly go away? What will the new "normal" be like when—if—things truly settle down. Surely our world will be forever marked by this event.

<comment><USER12> > Who knows if this coronavirus will ever truly go away?

Wait, what?

I keep hearing this notion floated around and I'm honestly very confused.

Are people under the impression that our lockdowns are going to eradicate this? Or are you using "going away" as a metaphor for "will recede to the background level of death from flu/etc that we have learned to tune out?"

It should be stunningly obvious that a highly infectious respiratory disease that is present in every country, originally came from animals and has shown the ability to infect other animals will _never be eradicated_. There's too many reservoirs, even if the totalitarian dream that everyone seems to want were a full reality.

If you meant the other sense, then it should be equally obvious that this will eventually _pass through the population_ and we will build immunity to it, at which point Covid-19 joins the friendly cast of characters such as the common cold coronaviruses, common cold rhinoviruses, adenoviruses, influenza, etc. In short, _a disease that kills people but not in numbers that we freak out about_. (And incidentally once the globe has been exposed to it it should be much less deadly than Influenza since new humans will be exposed to it as babies/young children and not as 80+ year old nursing home patients, and Covid simply does not kill young children in significant numbers)

What's that? Do I hear the "There's no evidence for immunity to covid-19" crowd in the distance? I'm getting a bit tired of that line, but if someone wants me to dismantle that argument (again) I am happy to.

<comment><USER13> > It should be stunningly obvious

> it should be equally obvious

Clearly it is not obvious, considering most people have never spent a significant amount of time thinking about how infectious diseases work.

> What's that? Do I hear the "There's no evidence for immunity to covid-19" > crowd in the distance? I'm getting a bit tired of that line, but if someone > wants me to dismantle that argument (again) I am happy to.

Why make a snarky, coy comment like this? If you have something to say about immunity then just say it. In fact the WHO are among those who make this claim[0], so "dismantle" away.

[0]: [https://www.who.int/news- room/commentaries/detail/immunity-p...](https://www.who.int/news- room/commentaries/detail/immunity-passports-in-the-context-of-covid-19)

<comment><USER12> "immunity" is a bit of an imprecise term. There's two major components:

(1) The presence of active circulating antibodies, which in sufficient concentrations should result in literal immunity in the sense of inability to catch the virus

Eventually those circulating antibodies will no longer be actively present, but you'll still have

(2) Memory B Cells which lie dormant, waiting for exposure to viral antigens at which point they ramp up antibody production like crazy.

So in the worst case scenario, immunity in the sense of inability to be infected disappears after X months, but any infection would be much milder and would clear much more quickly than normal with lower peak viral load.

Let's talk about "herd immunity" while we're at it since that's been branded as a "dirty word (phrase)". Herd immunity is just the logical consequence of individual immunity as applied to population-level dynamics. So people that don't "believe" in herd immunity are like people that don't believe in evolution, in that both logically follow from the ground truths.

\--

Nothing I've said there contradicts the WHO, but it's worth mentioning that at this point it seems inaccurate to say "there is no evidence" rather than to say "there is not overwhelming evidence", and they've sort of given themselves away with this line:

> People who assume that they are immune to a second infection because they > have received a positive test result may ignore public health advice

So, as always, they carefully shape statements to try to control behavior.

\--

Anyway, I'm actually not trying to argue against the WHO here, but rather the hordes of people who trot out the "we don't know if there even is immunity" to try to argue that "herd immunity" is a foolish/dangerous proposition when the truth is that it's how we deal with every non-containable pandemic. That is what I was getting at with my needlessly snarky and coy comment.

BTW, just to be clear, vaccines rely on the same principle. So those who point to the uncertainty as an argument "against" herd immunity (which again to me is like arguing "against evolution" since both herd immunity and evolution are logical consequences of some simple ground truths taken to their logical conclusions), are also arguing against hunkering down for 2.5 years while we develop a vaccine.

</comment></comment></comment></comment></comment></comment><comment><USER14> Can't afford food? Between food stamps and eating for $1.50/day (source- [https://efficiencyiseverything.com/eat-for-1-50-per-day- layo...](https://efficiencyiseverything.com/eat-for-1-50-per-day-layoffs- coronavirus-quarantine-food-shortages/)) I don't think the problem is the cost of food.

Rent, sure. Health insurance, sure. Food? Not the major expense, especially with food stamps.

<comment><USER15> A lot of people live in so-called "food deserts" [1]. That means they don't have access to fresh produce or bulk ingredients like milk, flour, eggs, beans, rice, pasta, or potatoes. Instead, they're stuck with convenience store food which is mostly junk food.

If they wanted to buy healthier food they'd have to travel a long way to reach a grocery store, a problem greatly exacerbated for those who do not own a car. It's not easy to carry home 10lbs of potatoes and 10lbs of beans by public transit, let alone on foot.

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

<comment><USER16> They define "food desert" as 10 mile distance. I don't know how many of those 23 mil. don't have any means of transportation, but most probably do, in which cases 10 mile is just 10-20 minutes of driving away.

<comment><USER15> From the Wikipedia article (emphasis mine):

>In 2010, the United States Department of Agriculture (USDA) reported that 23.5 million Americans live in "food deserts", meaning that they live _more than one mile from a supermarket in urban or suburban areas_ and more than 10 miles from a supermarket in rural areas.[6]</comment></comment></comment></comment>


Pixel Perfect Front End Development Matters - <AUTHOR> http://blog.teamtreehouse.com/pixel-perfect-front-end-development-matters

<comment><USER2> Finds a cheap person who starts working the next day, on twitter. Cheap, fast, good, pick two. No surprise at all.

OP sounds like the kind of client who wants a pixel perfect template and then tells you to "make it responsive" after you deliver it...</comment>


Scalable and resilient Django with Kubernetes - <AUTHOR> https://harishnarayanan.org/writing/kubernetes-django/ <comment><USER2> I'm really struggling to understand why most developers feel they need all this deployment complexity.

I've run django and other web deployments with simple shell scripts and occasionally some python to glue it together.

Most recently I'm running a django web server and some other custom stuff (a real time stateful server, database, nginx, etc).

A somewhat complex setup (or at least as complex as it needs to be), and I have no need of docker, kubernetes. If I want a new server, I just change a few parameters and run the script to deploy. It's straight forward and without magic.

The deployment flavor of the month before were DSLs like ansible, puppet, etc. Did these solve real problems? I found they added complexity without adding much. How is the new generation different?

Caveat: I'm not google, and I don't deploy huge server farms. There is a use case but the vast majority of us aren't that.

<comment><AUTHOR> I'm the author of the original piece.

I echo exactly what you say in a giant caveat way up top in the piece. :)

Most of the first half of the article beyond that point basically tries to motivate why you'd want to try this beyond just using a classical VM approach. But the basic idea is that it raises your level of abstraction from working with machines to working with your application components (on abstracted hardware).

<comment><USER3> There are a lot more advantages on abstracting the hardware from the app. First of all, you don't need one machine per service for scaling the app. All services run on the cluster, and you can add or remove machines, as needed. (On night you can reduce your cluster size, and grow it during the day).

But also, you can use the same cluster to run your preproduction enviroment, or use it for CI/CD. (Check deis) As an example, we have an small cluster with two machines and on it, there are:

\- the main app, \- the preprod environment, \- two more feature branches (that had to be reviewed) \- And also commercials can deploy playground environments to make demos and trials.

All are independent apps, sharing resources, on the cluster.

As a summary, on daily, we maintain 7 to 10 independent apps instances, and we do regular updates (as new revisions arrives). As an example, the trials or feature branches, are single pods (all included, db, redis, app and worker).

Kubernetes is not for deploying pet projects, but as soon as you start working on a real project is a must. You can manage complex deploys with a lot of services.. keeping the costs as lows as two n1-standard-1 machines. And as a plus on gke, you got monitoring, and logging aggregation.

<comment><USER4> I think the questions was "is this complexity necessary?"

If the same (deployment and upgrades for production, staging and testing environments, for any number of hosts) could be achieved with a small shell script - doesn't this mean that cluster thing isn't really useful?

I think a lot of "real" projects (smaller ones) work perfectly well without any complicated cluster management tools, and aren't really hindered by lack of what those offer.

</comment></comment></comment></comment><comment><USER5> The problem with these tutorials is they still tell you to run the database yourself to emphasize the 'component' or one solution fits all idea of kube/mesos.

However, in practice, if you're using AWS or GCloud this is usually a bad idea - just use the managed database solutions provided. They have things like backups, snapshots, restores, upgrades, HA, monitoring, and alerting baked in. These are non-trivial to do yourself.

<comment><AUTHOR> I'm the author of this piece, and I agree with you in general.

I am personally experimenting with this within the context of containers because I'm trying to construct something like Vitess[1] from first principles as an intellectual exercise.

[1] [https://github.com/youtube/vitess](https://github.com/youtube/vitess)

<comment><USER6> Thanks for the blog post, it was really informative, will definitely be sharing it at work.

<comment><AUTHOR> Thank you! And please let me know of ways I can improve it. I already have a couple of ideas that I've indicated in the conclusion, but more the merrier. :)

</comment></comment></comment></comment><comment><USER7> Putting the 'should we or shouldn't we' aside I'd just like to say thanks for putting together an article that goes all the way from a 'classic' setup to something running on a host.

I often find that posts like this are a bit too meta and in trying to write things in a general way they leave out some critical step which makes replicating their ideas difficult.

<comment><AUTHOR> OP here. That was the plan and I'm glad you appreciate it. :)

I wanted to start from something I assumed people knew, and tried to motivate why one might want to improve on that. Only then did I introduce the new solution.

A lot of tutorials I found jumped too quickly to the 'how' without spending enough time on the 'why' I should care.

</comment></comment><comment><USER8> Hey Harish, thanks for your talk at the March London Django Meetup.

I'm starting to play around with Google Container service as you suggested, having a good time.

<comment><AUTHOR> Welcome!

</comment></comment><comment><USER9> It's interesting that there seem to be two parallel and opposite trends in applications deployment going developing right now.

One is containerizations, where developers are responsible for maintaining fat application stacks that can easily be redeployed and moved around.

The other is towards serverlessness with things like [Django- Zappa]([https://github.com/Miserlou/django- zappa](https://github.com/Miserlou/django-zappa)), where scalability is handled automatically by cloud providers.

My bias is quite clear - deploying apps should be easy.</comment>


Youtube has increased maximum video time to 10 hours - <AUTHOR> http://www.youtube.com/watch?v=yLArBZISjio

<comment><USER2> orly? I've been enjoying 10 hour+ vids and more on YouTube for awhile now:

[http://m.youtube.com/#/watch?desktop_uri=http%3A%2F%2Fwww.yo...](http://m.youtube.com/#/watch?desktop_uri=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DwZZ7oFKsKzY&v=wZZ7oFKsKzY&gl=US)

[http://m.youtube.com/?rdm=4n549yphi#/watch?desktop_uri=http%...](http://m.youtube.com/?rdm=4n549yphi#/watch?desktop_uri=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DjI- kpVh6e1U&v=jI-kpVh6e1U&gl=US)

Also check the many long 4, 6, 10 hour vids in related vids

</comment><comment><USER3> Would be interesting to think about the practical uses of this. C-SPAN videos Congress/senate hearings? Court cases? Could be pretty important long-term.</comment>