Pell – A simple and small rich-text editor for the web - <AUTHOR> https://github.com/jaredreich/pell <comment><USER2> Nonsense, I've written a much smaller one: `function tinyEditor(element) { element.contentEditable = true }`

That, plus a few crude buttons, is all this does. As several other comments point out, there's good reasons why real WYSIWYG packages are bigger—the user experience of working with a plain contentEditable element is still terrible, the output HTML still a complete mess. If you don't care much about that, you don't need an editor component, since setting an attribute and wiring up some buttons to call `execCommand` is easy enough to do from scratch.

Disclaimer: I work on one of those 'bloated' editors, [http://prosemirror.net](http://prosemirror.net) , and find it a little annoying when someone implies their crude afternoon hack is somehow equivalent and we're crazy for putting in all that effort.

<comment><USER3> The last thing I want for notable developers of high quality WYSIWYG editors is to get upset. Take this with a grain of salt. Continue doing the great things you do with ProseMirror and your other valuable open source contributions. But don't get upset. Try getting inspired, to move with the times, to trust browsers more, to make YOUR projects smaller, lighter, and easier to use.

P.S. Just because something is small, doesn't mean it's a crude afternoon hack :)

<comment><USER4> > The last thing I want for notable developers of high quality WYSIWYG editors > is to get upset.

While I'm certain you have good intentions, the size comparison chart at the top of the README is a bit misleading. It would be fair to list out the trade- offs on going ahead with ContentEditable so that users can know what they are getting if they choose Pell.

To clarify, Pell looks awesome and I don't intend to diss on your project or your hard work, just that the way the project's README is laid out I feel @marijn's response is not totally unwarranted.

</comment></comment></comment><comment><USER5> As a person who used to work for a company developing one of the more popular in-browser text editors I can tell you that all that "bloat" is there so that you'll get consistent results across browsers.

Unfortunately there's no way around this short of not using contenteditable - which is even worse sometimes.

Most editors feature customized builds which let you reduce the footprint of the editor. If you're looking for quick gains first and foremost disable support for pasting from other applications, e.g. MS Word. It's always a major feature.

<comment><USER6> sometimes, you can be sure of the browser / rendering engine ahead of time, and you don't _need_ all that "bloat".

For instance, react-native, electron or windows store apps.

<comment><USER5> In these cases you'd have to freeze the version of every layer beneath the editor(browser/env, OS and so on), otherwise any regression in these layers is going to break your app.

But if you decide to freeze you run the risk of exposing your users to security issues.

<comment><USER7> I doubt this? contenteditable is pretty stable in Chrome/WebKit.

<comment><USER5> I don't know - you tell me.

Anyway we had our share of trouble with a customer due to an exotic rendering issue that occurred in two consecutive versions of Chrome and then disappeared, so yeah.

<comment><USER7> Sure, but that happens. We hit an insane performance problem related to Chrome and some weird combination of CSS that disappeared in a similar number of versions.

I'd say it's the exception and not the rule, though.

</comment></comment></comment></comment></comment></comment><comment><USER8> This is cool :)

That said (and not to take thunder away from your page), this is possible because the HTML spec itself allows for any element to be made into a "WYSIWYG" editor by adding the "contenteditable" attribute.

What most other larger editors are doing is working around some of the horrendous non-standardized versions of execCommand which varies across browsers.

Ideally a web standards body should come out with a <input type="richtext"> element, which is controlled through a sane API, and the spec spelled out to support everything by default. And get rid of the bane that is rich text editing on the web.

<comment><USER9> Wouldn't it make more sense to just add a standard API to invoke an external editor instead of yet again reinventing the wheel? It might be more interesting to standardize a certain type of rich text markup that could then be produced and consumed by a variety of software, both online and off.

There are web extensions that let you do that but it's often a bit clumsy I found, so I just tend to edit my text in Emacs and then copy/paste it in the box.

Regular <textarea> editing on the web is not generally a pleasant experience (I just had to grab my mouse to extend the comment area so that I can actually see what I'm typing) but rich text "WISIWIG" editors are even worse because the edition shortcuts always intersect somewhat with the regular browser shortcuts (sometimes in fun and interesting ways), they're slow and generally simply not up to par with stand alone editors.

Why does everything need to be in the browser? It's a complete anti-pattern as far as I'm concerned. Emacs is often mocked as the "emacs OS" because of how extensible it is but generally this is done by calling external programs, not reimplementing everything in elisp from scratch.

<comment><USER10> 98% of the difficulty in implementing a rich text editor is already present in every browser, its hard to call it wheel reinvention at that point. Drawing a caret and responding to key presses by mutating the dom is about the only thing left

<comment><USER9> IMO actually displaying text is not the big challenge in a text editor.

The tricky part is the user interface, text transformation (sed, query-and- replace, pipe through external programs...), text parsing (for syntax highlighting and code folding for instance) and invoking external applications, for instance to compile code or post-process your document. Web browsers are not particularly good at any of these things since they're not needed to purely "browse" the web.

If you want performance while handling big files you also need to optimize the way you stream data from the disk, something browsers are terrible at. Is there any web-technology-based editor that handles big files decently? Last time I've seen a benchmark it was pretty abysmal. Not that Emacs is great at it (it was pretty bad for a long time actually, especially pre-64bit computers) but it still was orders of magnitude faster than Atom for instance: [https://github.com/jhallen/joes- sandbox/tree/master/editor-p...](https://github.com/jhallen/joes- sandbox/tree/master/editor-perf)

<comment><USER10> Accurately rendering text in an WYSIWYG HTML editor has equivalent difficulty to implementing the engine used in the web browser that will eventually be used to render that HTML, otherwise it can never truly be WYSIWYG

<comment><USER9> That's fair, I'm obviously biased by my general loathing of WYSIWYG editors but clearly I'm in the minority here. I guess when I think about text editors I think mainly of code editors.

<comment><USER6> I bet you like your syntax highlighted though

</comment></comment></comment></comment></comment></comment></comment><comment><USER3> Hi everyone, author of pell.js here, thanks for all the positive AND critical feedback. Hey, this is Hacker News, how boring would it be if everyone's comment was just "Cool" or "Good job"? I love hearing the gripes and individualized complaints of smart people that have worked on similar (and much larger) projects.

I'd like to mention a few things about pell.js and it's goals:

\- It was not made to be the most full-featured editor out there

\- It was not made to fight with or worry about browser inconsistencies (browsers are converging, quickly too)

\- It was made to demonstrate the underlying simplicity of something that looks like magic to most beginner developers (including myself) and to teach people how to use `contentEditable` and `execCommand` via a tiny, extremely readable codebase

\- It was made for people who need just a basic WYSIWYG editor in their app/site/whatever and who care about bundle size (PWA's anyone?)

Over time, many of the inconsistencies and issues will get fixed or implemented in pell, but the goal of remaining tiny yet functional will always remain paramount.

<comment><USER11> Don't expect the browser vendors to fix contentEditable or inconsistencies for you, this has been the struggle of WYSIWYG editors for as long as they have existed and it really hasn't gotten a whole lot better. You will quickly find out that by the time your getting close to fix those inconsistencies, 4-6 years have passed and your right up there with the rest of the editors in terms of size and complexity.

PS: Also working on one of those bloaty editors.

<comment><USER3> I will most definitely expect browser vendors to perform these fixes. I think you've fallen behind on what's taking place in the browser world right now, a huge percentage of users are on evergreen webkit browsers (and increasing rapidly). The next 4-6 years of web will NOT look like the last 4-6 years of web. And this doesn't even account for bundled browser implementations (electron, etc.)

<comment><USER2> And those evergreen browsers are still doing terrible things when it comes to contentEditable, and they don't really have a lot of choice, because it's an underspecified poorly conceptualized idea that really doesn't leave them much room to things right. There's some work happening on the W3C editing taskforce to improve the concepts involved, but that's also moving at a glacial pace, and having to struggle with browser vendors at every steps.

So again, don't suggest we (editor implementors) are clueless or behind the times. We happen to have spent quite a bit of time on this stuff. We know it.

<comment><USER3> Again, you are getting offended. Not once did I suggest editor implementors are clueless. They're likely some of the best and sharpest developers out there. Please, as I mentioned earlier, take this project with a grain of salt.

By "fallen behind" I meant still making the assumption that many users are still using outdated browsers. This is not the case anymore, especially in the last year. And because of this fact, many WYSIWYG editors might be implementing a lot of cross-platform bloat that just isn't necessary any more. Rather than raging, perhaps browse through the ProseMirror source and see what you can remove as "obsolete" code.

<comment><USER2> ProseMirror was started 2 years ago, initially only targeted evergreen browser, and has recently grudgingly added support for IE11 because customers asked for it. But yeah, I guess for some parts of some of the older projects this may apply.

</comment></comment></comment></comment></comment></comment><comment><USER12> It's great that it's small, but it suffers from the same horrible interactions that most other web editors also suffer from.

Try quoting the last paragraph in the editor. It's now impossible to ever escape from the quote. All new text at the bottom stays "quoted".

From a cursory test of the editor, it suffers from basically all the issues that contenteditable suffers from.

The reason other editors are so big is because the take editing behaviour into account.

<comment><USER13> Works for me in Chrome 60. Just return twice, like a normal editor.

<comment> c-smile Try to insert text between two tables:
...

...
 ...

That's the same problem.

At the moment caret positions in browsers are limited only by char-positions. There are no carets in between box blocks.

Yet consider my question on SO : [https://ux.stackexchange.com/questions/72309/caret- positioni...](https://ux.stackexchange.com/questions/72309/caret-positioning- in-html-richtext-wysiwyg-editor)

</comment></comment></comment><comment><USER14> Also the editor that will output the most inconsistent HTML across browsers. There's a reason all those other editors try and fix contenteditable (and are therefore > 1k), for more info see [https://medium.engineering/why- contenteditable-is-terrible-1...](https://medium.engineering/why- contenteditable-is-terrible-122d8a40e480)

</comment><comment><USER15> Every time I see a new WYSIWYG text editor, I wonder: do people really need to set single words in bold, italic, underline, and strike-through?

I feel like this is a leftover of the old times, back when first WYSIWYG editors appeared and these capabilities were impressive. I think these days what one needs is not bold/italic, but facilities for editing structure, inserting links, and positioning images, all according to a style template.

<comment><USER6> Depends on your use-case I suppose. That's why most of these editors are customisable. When writing posts on SO, I've used bold, italic, and strike- through in the same post.

In every day usage, bold/underline/strike may be superfluous, but I would argue that italics are _essential_. Without at least the ability to emphasise a word in some way, your only option is uppercase.

</comment></comment><comment><USER16> I'm surprised to see no mention of the Trix editor here amongst the comments about how contentEditable is the root of all evil. Trix has a nice solution, from their readme:

      Trix sidesteps these inconsistencies by
      treating contenteditable as an I/O devi-
      ice: when input makes its way to the ed-
      itor, Trix converts that input into an
      editing operation on its internal docum-
      ent model, then re-renders that document
      back into the editor. This gives Trix
      complete control over what happens after
      every keystroke, and avoids the need to
      use execCommand at all.

Trix is from basecamp, and has a super healthy plugin/extension ecosystem - [https://github.com/basecamp/trix](https://github.com/basecamp/trix)

Full disclosure: not affiliated at all, but the rare times I need a WYSIWYG editor I tend to look for Trix and be very pleased.

<comment><USER17> I've been using Mobiledoc lately which also follows this model, and it feels like the right way to go for me. Fighting against contenteditable is a never- ending uphill battle.

</comment></comment><comment><USER18> This is still relevant: [https://www.joelonsoftware.com/2003/08/01/rick- chapman-is-in...](https://www.joelonsoftware.com/2003/08/01/rick-chapman-is- in-search-of-stupidity/)

> When Pepsi-pusher John Sculley was developing the Apple Newton, he didn't > know something that every computer science major in the country knows: > handwriting recognition is not possible. This was at the same time that Bill > Gates was hauling programmers into meetings begging them to create a single > rich text edit control that could be reused in all their products. Put Jim > Manzi (the suit who let the MBAs take over Lotus) in that meeting and he > would be staring blankly. "What's a rich text edit control?" It never would > have occurred to him to take technological leadership because he didn't grok > the technology; in fact, the very use of the word grok in that sentence > would probably throw him off.

My point: Microsoft has identified and satisfied this need 20 years ago. Although I'm a big supporter of the Open Web and open systems in general, sometimes I do long for a bit of dictatorship to get things done. But then I come to my senses :p

</comment><comment><USER19> TL;DR that is data:text/html,
 with buttons

</comment><comment><USER20> As another alternative, I used SimpleMDE ([https://simplemde.com/](https://simplemde.com/)) for IPFessay ([https://gitlab.com/stavros/IPFessay](https://gitlab.com/stavros/IPFessay)), and, while not this light, it's pretty good and featureful. It doesn't expose all the features I'd like it to expose, but I'm quite satisfied by it.

<comment><USER6> SimpleMDE looks great!

</comment></comment><comment><USER21> 1k does sound quite appealing. But: most of the time a WYSIWYG editor is called is when in 'admin pages' where little to nobody gives a shit about page load time. It's more about CRUD performing as expected.

<comment><USER22> >where little to nobody gives a shit about page load time.

If it has an end user that is not yourself, I can guarantee you they do care - even if it's not a conscious realisation.

<comment><USER23> Depends on your target audience.

If it's 10 internal admin users on desktops, the only time they're going to have to redownload the bundled js is when there's a change.

And if you're sensible you'll have multiple bundles, one of which will be a bundle of rarely updated external libraries, including that editor. So once every couple of months they have to wait an extra second or two for a page to load.

Some of the internal apps I've written for clients have a core bundle that almost never changes and then a js file almost per page (which each append a hash of their contents to the URL to ensure efficient cache busting, managed with an in memory cache of the hashes).

</comment></comment></comment><comment><USER24> I am impressed by both the size and the features and no dependencies. Kinda like a gui linux under 20 MB. People need to do such similar things instead of a huge bloated single page web app with features that nobody want.

Great project.

<comment><USER25> Sorry but it's just using the standard _contenteditable_ attribute, which works terribly, see [https://medium.engineering/why-contenteditable-is- terrible-1...](https://medium.engineering/why-contenteditable-is- terrible-122d8a40e480)

</comment></comment><comment><USER26> I actually started a simple WYSIWYG editor that doesn't use contentEditable but instead a tiny subset of HTML and some virtual DOM like technology. Thanks for this post. It makes me want to work more on it!

<comment><USER6> I would be very interested in seeing that!

</comment></comment><comment><USER27> Copy & Pasting needs some work. Usually the biggest hurdle is people pasting content from other pages and the editor can't sanitize it properly. This doesn't appear to do any cleaning, which in practice never works because regular people do not know how to use the plain pasting mechanism (Ctrl+Shift+V instead of Ctrl+V).

</comment><comment><USER28> Side note - a list of other rich/html editors available today: [https://gist.github.com/manigandham/65543a0bc2bf7006a487](https://gist.github.com/manigandham/65543a0bc2bf7006a487)

</comment><comment><USER29> I have always wanted a rich text editor where you could see the markdown as well as the formatting it produces at the same time (and in the same edit pane... ie not realtime rendering in a pane above).

That is if you typed:

        **blah**

It would show blah and still show the asterisk but in bold (apologies for using code format but HN will strip the asterisks).

There are of course some editor plugins, and IDEs that do this but I haven't seen one on the web.

EDIT Oh apparently there is stackedit (I hadn't googled in awhile).

<comment><USER6> And simpleMDE, mentioned on this thread

</comment></comment><comment><USER30> Appears to fail my semantics test right off the bat. Type "Line one\nLine two" results in:

        Line one

Line two

<comment><USER31> Since it uses contenteditable, the result depends on your browser.

Firefox gives me

       Line one

       Line two

<comment><USER30> Yeah, I'm not convinced contenteditable is ready for primetime. In my experience, pairing it with some javascript that cleans up the poor markup is necessary.

</comment></comment></comment><comment><USER32> What I really wish for is not a way to make textarea WYSIWYG, but a much lighter way to add bold/italic/underline to text inputs, in such a way that I can load lots of these in a single page. It sounds like I have a very niche need, since I haven't found anything like this

</comment><comment><USER33> What I really want is a WYSIWYG/M editor which saves/reads from markdown. I suspect that one or more of the various editors out there _can_ do it, but it seems that all I can find are editors that will substitute the wysiwyg part for MD rather than the HTML part.

<comment><USER3> Interesting. Filed an issue to track this idea: [https://github.com/jaredreich/pell/issues/33](https://github.com/jaredreich/pell/issues/33)

</comment></comment><comment><USER34> A tangent: does anyone have recommendations on a WYSIWYG editor that allows easy math notation?

</comment><comment><USER35> Fantastic, I was in fact wondering why other editors were so big. I love it!

<comment><USER36> I recommend reading the comments here on _why_ other editors are bigger.

</comment></comment><comment><USER37> Change the name. Cardinal George Pell is hopefully going to jail soon

</comment><comment><USER38> You can't pell at that lutt. It's crenned with glauds.

</comment><comment><USER39> Looks great, less bloat on the Internet is what we all need.

</comment><comment><USER40> That min file could easily be minimised further....

</comment><comment><USER41> Um, the simplest is a textbox and a send button.

</comment><comment><USER42> Just for the fun of it, I dove in and manually minified the code further, without changing any semantics at all. With the following, I got it down from 2878 bytes to 2010 bytes which is a 30% saving:

      !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.pell={})}(this,function(e){"use strict";var t,n=Object,i=document,o=prompt,r="pell-",a="button",u="className",l="appendChild",d="createElement",c="insert",s="rderedList",f="Horizontal",p="formatBlock",m="Enter the ",b=n.assign||function(e,i,o,r){for(i=arguments,t=1;t<i.length;t++)for(r in o=i[t])n.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r]);return e},g=function(e,t,n){return{icon:e,title:t,result:n}},h=function(e,t){return i.execCommand.bind(i,e,!1,t)},k=function(e){return/^https?:\/\//.test(e)?e:"http://"+e},L={bold:g("B","Bold",h("bold")),italic:g("I","Italic",h("italic")),underline:g("U","Underline",h("underline")),strikethrough:g("<s>S</s>","Strike-through",h("strikeThrough")),heading1:g("H1","Heading 1",h(p,"
")),heading2:g("H2","Heading 2",h(p,"
")),paragraph:g("¶","Paragraph",h(p,"
")),quote:g("" "","Quote",h(p,"
")),olist:g("#","Ordered List",h(c+"O"+s)),ulist:g("•","Unordered List",h(c+"Uno"+s)),code:g("</>","Code",h(p,"
")),line:g("―",f+" Line",h(c+f+"Rule","
")),link:g("","Link",function(){(t=o(m+"link URL"))&&h("createLink",k(t))}),image:g("","Image",function(){(t=o(m+"image URL"))&&h(c+"Image",k(t))}),undo:g("↺","Undo",h("undo")),redo:g("↻","Redo",h("redo"))};e["default"]={init:e.init=function(e){var o=e.classes,c=e.actions,s=i.getElementById(e.root),f=i[d]("div"),p=i[d]("div");p.contentEditable=!0,f[u]=o.actionbar||r+"actionbar",p[u]=o.editor||r+"editor",p.oninput=function(t){return e.onChange&&e.onChange(t.target.innerHTML)},s[l](f),s[l](p),(c?c.map(function(e){return"string"==typeof e?L[e]:b({},L[e.name],e)}):n.keys(L).map(function(e){return L[e]})).forEach(function(e){t=i[d](a),t[u]=o.button||r+a,t.innerHTML=e.icon,t.title=e.title,t.onclick=e.result,f[l](t)})}},n.defineProperty(e,"__esModule",{value:!0})})

However, when you consider gzipping, this represents savings of roughly 12–16 bytes (it depends a little on whether the files are noeol and whether you avoid file metadata going in the gzip stream—pro tip, make your gzipped files smaller with `gzip < x > x.gz` instead of `gzip x`). Quite a few of the latter "save another one or two bytes" tricks that I employed not only increase runtime trivially (e.g. concatenating two string literals instead of using one string literal), but they also increased gzip size by four or more bytes. (The tricks for the strings "Enter the ", "Horizontal", "rderedList" and "insert" had saved seven bytes ungzipped at the cost of about 21 bytes gzipped, and "pell-" and "button" had saved one byte at the cost of eleven gzipped.) The lesson there is—gzip is pretty good, and deduplication is normally a waste of time in tiny files! I was hoping to get it under 2048 bytes raw and 1024 bytes gzipped; I achieved 2048 bytes raw, but after undoing some of the silly tricks gzipped is still 60 bytes off.

Of course, if you decide to abandon AMD/CommonJS support, you can quickly whip 210 bytes (100 gzipped) off, but that's a change in semantics so I can't count that despite it getting it under 1000 bytes.

<comment><USER42> And the really fun thing? Just write the HTML that it would have written directly, and the result is also under 2KB, this time ~585 bytes gzipped, and with _the same functionality_ (though as written here `onChange` is kind of a global now). It looks like this (with line breaks added):

<button class=pell-button title=Bold onclick="document.execCommand('bold',!1)">B</button
      ><button class=pell-button title=Italic onclick="document.execCommand('italic',!1)">I</button
      ><button class=pell-button title=Underline onclick="document.execCommand('underline',!1)">U</button
      ><button class=pell-button title=Strike-through onclick="document.execCommand('strikeThrough',!1)"><s>S</s></button
      ><button class=pell-button title="Heading 1" onclick="document.execCommand('formatBlock',!1,'
')">H1</button
      ><button class=pell-button title="Heading 2" onclick="document.execCommand('formatBlock',!1,'
')">H2</button
      ><button class=pell-button title=Paragraph onclick="document.execCommand('formatBlock',!1,'
')">¶</button
      ><button class=pell-button title=Quote onclick="document.execCommand('formatBlock',!1,'
')">" "</button
      ><button class=pell-button title="Ordered List" onclick="document.execCommand('insertOrderedList',!1)">#</button
      ><button class=pell-button title="Unordered List" onclick="document.execCommand('insertUnorderedList',!1)">•</button
      ><button class=pell-button title=Code onclick="document.execCommand('formatBlock',!1,'
')"></></button
      ><button class=pell-button title="Horizontal Line" onclick="document.execCommand('insertHorizontalRule',!1,'
')">―</button
      ><button class=pell-button title=Link onclick="var s=prompt('Enter the link URL');s&&document.execCommand('createLink',!1,/^https?:\/\//.test(s)?s:'http://'+s)"></button
      ><button class=pell-button title=Image onclick="var s=prompt('Enter the image URL'));s&&document.execCommand('insertImage',!1,/^https?:\/\//.test(s)?s:'http://'+s)"></button
      ><button class=pell-button title=Undo onclick="document.execCommand('undo',!1)">↺</button
      ><button class=pell-button title=Redo onclick="document.execCommand('redo',!1)">↻</button
      >

</comment></comment>


Another U.S.-Wide Housing Slump Is Coming - <AUTHOR> https://www.bloomberg.com/opinion/articles/2020-04-10/coronavirus-fallout-u-s-housing-prices-will-tumble <comment><USER2> Interesting that "housing is still overvalued" \-- I'm not entirely sure that it's drastically priced out of line with history. The price per square foot of the average American home, when adjusted for inflation, is almost exactly the same as in 1978 -- right around $130. What's changed is houses have gotten bigger (1600 sqft vs 2400). [1]

Now there are pools where arbitrary supply constraints have created massive price increases above inflation (SF, NY) but those markets are historically the ones least affected by a downturn anyways. With that in mind, it's clear that in SF and NY the price of housing is tied to the economic productivity of the area, and frankly, the chances big tech is going to cut pay is below zero.

The dot-com bubble only took 10% off the average house price in SF. The 2008 _mortage crisis_ took 27% over the entire time period -- which was followed by an 88% increase. [2]

[1] [https://www.supermoney.com/inflation-adjusted-home- prices/](https://www.supermoney.com/inflation-adjusted-home-prices/)

[2] [https://www.bayareamarketreports.com/trend/3-recessions-2-bu...](https://www.bayareamarketreports.com/trend/3-recessions-2-bubbles- and-a-baby)

<comment><USER3> Yeah it's insane these simply facts are completely devoid of any discussion.

Inflation as we talk about it colloquially is supposed to measure price changes of the same thing. Like an apple. What actually happens in most discussions is that we measure wildly different things and then say 'look, prices changed'.

Not just have homes gotten bigger, the heating and cooling is better, they're safer, they're equipped with more amenities etc. My grandparents didn't have a shower, but went to the communal bathhouse once a week. My parents didn't have central heating in one of their homes.

I see the same discussion in healthcare. Life expectancy in many western countries grew by 20-30 years since the second world war, which is a radically improved outcome which proxies health throughout life, yet we are shocked this outcome is much more expensive than before.

College is trickier, there's tons of inflation there and you can wonder if education really improved. By some measures, it worsened, by some it's much better. What's clear however is that educational attainment has never been higher.

That's not to say there's no inflation in any of these areas. But rather that it's much more nuanced if corrected for some values.

<comment><USER4> _I see the same discussion in healthcare. Life expectancy in many western countries grew by 20-30 years since the second world war, which is a radically improved outcome which proxies health throughout life, yet we are shocked this outcome is much more expensive than before._

There's been more than 300% increase in the last thirty years. How much better off are we health wise than 1990? 1945, sure, but 1990?

<comment><USER5> What you are arguing against is a classic smoke and mirrors job where two unrelated things are linked together. If you look outside the US you see similar huge gains in life expectancy. Which are 95% due to basic public health measures.

Seriously:

Life expectancy Cuba: 79.18 years.

Life expectancy US: 79.11

<comment><USER6> Only those that never lived under communism would believe those numbers. Same as the information on the coronavirus from China.

[https://www.econlib.org/about-that-cuban-life- expectancy/](https://www.econlib.org/about-that-cuban-life-expectancy/)

<comment><USER2> Sure if you just pretend, anything's possible!

Your article begins with: "Wealth and health are correlated because greater wealth can buy better health care."

Wealth is not the only way to obtain good health outcomes, Cuba has a ton of doctors and they don't get paid massive, overwhelming salaries. Just because they don't get paid outsized amounts doesn't mean they're bad at their jobs.

Based on all the OECD charts, there's very much a point of diminishing returns re: spending on healthcare and outcomes -- and very much so re: life expectancy. [1] It's pretty clear that spending 8X as much money didn't make people live 8X longer.

[1] [https://ourworldindata.org/the-link-between-life- expectancy-...](https://ourworldindata.org/the-link-between-life-expectancy- and-health-spending-us-focus)

<comment><USER6> I lived in the most prosperous communist country and I know for a fact that the numbers reported are lies. You are free to believe whatever you want since you haven't established the need for skepticism in this sphere. But when lied to often enough, folks like me KNOW were being lied to. Cuban healthcare is that perfect lie the ignorant fall for.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I know this is going to happen because my apartment's management company gave everyone the chance to renew now for an additional 12 months for the same rent as previous, while also fear mongering that this offer was only available for 1 month.

I immediately knew that within the next few months rent would drop a ton, because this management company had never given a single shit about us previously, and I'm sure they're only offering this to lock in another year for everyone.

</comment><comment><USER4> Housing is a universal _cost_. When prices come down human flourishing goes up. How did we get to a place where governments across the west desperately manipulate markets to increase the cost of a basic necessity? How perverse!

<comment><USER2> I agree with part of your premise -- artificial supply constraints caused by NIMBY-ism precludes building up in highest-demand metros which causes prices to go up.

On the other hand, "human flourishing" is unlikely tied to real estate. Real estate is an investment vehicle, and one that is pretty broadly indexed to inflation on average in the US. It's often the case that renting somewhere cheaper will leave you economically advantaged as compared to ownership. I'd suggest playing with the variables on the New York Times rent vs. buy calculator from a few years back [1]. Owning is by no means a "clear win" but rather part of the American wealth-building narrative.

[1] [https://www.nytimes.com/interactive/2014/upshot/buy-rent- cal...](https://www.nytimes.com/interactive/2014/upshot/buy-rent- calculator.html)

<comment><USER8> I guess the OP means that humans are less able to function if they have to pay out a large proportion of their salary in rent, which is basically true for people living in cities near to jobs. It becomes a constant source of anxiety, and could mean that any break from work threatens to make them homeless. So it's probably fair to say that humans don't "flourish" if house prices (and therefore rent or mortgage payments) are very high in the specific places where jobs are located.

<comment><USER2> > I guess the OP means that humans are less able to function if they have to > pay out a large proportion of their salary in rent, which is basically true > for people living in cities near to jobs.

I hear you but owning isn't a solution to that for most people. When you take into account the interest on a 30-year fixed-rate mortgage, HOAs, property taxes, homeowners insurance and 1% per year in repairs/upgrades, and periodic remodels. As a renter you're on the hook for none of that.

A 1-bedroom 700sqft apartment in downtown SF rents for ~$3750 in my building.

It's worth about $840K. You're out:

\- The opportunity cost on a $168,000 investment.

\- $2080/month in interest.

\- $870.00/month in HOA fees.

\- $83.33/month in homeowners insurance.

\- $1260/month in property taxes.

\- $700/month saved up towards your 1%/year repair bill.

That means you're paying $4700 per month in what amounts to rent, and you're setting aside $1000 per month in principal saved in the first year. Once you deduct those from the salary you need to afford it in the first place, we're talking right around what rent would be.

In general, especially in these areas, not only are your PITI payments really, really high -- rent tracks all-in expenses. Basically the cost of renting an apartment is approximately what the non-recoupables would be owning, for much of the first decade of ownership.

<comment><USER9> Not that I disagree with your point, but to finish the conclusion: in the rent scenario you save $12k a year, or about 1.4% of the purchase price.

As the return on investing that $12k will be so low (in dollar terms), it is perfectly rational to own if you believe the condo will increase in value by even a little more than 1.4% per year. And as our government goes out of its way to prop prices up, that seems like a safe assumption over the long term.

<comment><USER4> I don't think you are taking into account leverage and the cost of it.

That's the major difference between stocks and homes. In the first case the government sharply limits private lending, in the second it has nationalized the industry and subsidizes it significantly.

</comment></comment></comment></comment></comment></comment><comment><USER10> a housing slump may be coming but then so are pay cuts. in fact they're already here for many people. prices are also falling for energy and lots of other commodities as aggregate demand collapses.

all of this amounts to textbook deflation. those with debts to service (mortgage, auto, student) are going to be feeling a lot of pain in this environment. good news is gov't just needs to print money to bring nominal prices up.

bad news is there's no free lunch for young people hoping to buy homes. imo wages are largely going to move in unison with home prices.

</comment><comment><USER11> US national debt [0] is at wartime levels and I believe US private debt is also at or approaching all time highs relative to income. At a guess, any surprise of any sort away from best-case is going to cause a crisis in debt- exposed markets.

The coronavirus is one of many of paths to an ugly slump. The level of debt is a story in itself; it is a creeping horror that comes to a head suddenly at difficult moments. Somebody is expecting money to come to them that is not going to.

[0] [https://en.wikipedia.org/wiki/National_debt_of_the_United_St...](https://en.wikipedia.org/wiki/National_debt_of_the_United_States)

<comment><USER3> People keep talking about debt as if all debt is made equal. It's not.

It's a bit like someone talking about his salary as an amount, without specifying whether it's per hour, per year, per minute, in a world where the unit of time is constantly changing. That'd be completely meaningless.

Fact is that interest rates reached levels between 10-20% in the post-war era. Today they've reached 0-3%. Higher debt levels aren't necessarily a problem if interest rates drop meaning debt servicing is low, and inflation mitigates rising nominal debt levels meaning debt in real terms stays low.

I'm not saying that debt is not a problem at all, but that it's completely taken out of context by looking at nominal debt figures rising. Even if you express debt as a percentage of GDP, you're still missing interest. Debt servicing as a percentage of GDP isn't at particularly high levels.

Second, we must consider what the alternative is: less debt the past decade, or decades, would've likely meant we'd see a deflationary cycle, inhibited investments, research, development and growth. As long as there's a bail-out for the 'reasonably' losers of systemic crises (which is not trivial, but mostly feasible and which we're seeing now), the use of debt the past few decades has probably been a net benefit.

</comment></comment><comment><USER12> This article ignores stimuluses, printing money, and inflation.

</comment><comment><USER13> i hope so. millennials might finally be able to own

<comment><USER14> While homeownership of millennials is lower than that of their parents' generation at the same age in the US, it is far from being zero. Most results I've seen point it at 32-37% compared to the parents' generation at the same age in the US at 42-47%.

It's not a small gap (with various factors leading to it), but it's not like millennials don't own anything or previous generations even owned mostly at that age. (But the data is not the most recent, so actually previous generations might have had more than 50% ownership at that age in the US)

<comment><USER15> The key issue is the rural-urban gap, and it's not just only in the US (although it's the most extreme there). In Germany, if you live in the more... remote parts that don't have much in terms of jobs or public transportation, you can live for cheap or continue living in your parents' house. No biggie.

But getting started with ownership in urban areas? Next to impossible without financial assistance from parents. 500k minimum for a 3 room/60 m2 is the ultimate lowest of the low you'll get in Munich. 10% downpayment is 50k plus closing costs of 35k (17k taxes, 17k realtor) which means prospective owners have to save _at least_ 85k (and better 100k to account for moving costs, furniture, repairs)... which means that if you want to own an apartment at 35 you have to save 10k a year beginning with 25 - and no one I know here in my age group can put aside 900€ a month, not with regular rents gobbling up 50% or more of your paycheck!

And... even with 1% interest rate you'll end up with 1.100€ mortgage payment _at least_ plus hundreds of euros a month in HOA fees (if applicable, usually only in condos/bigger private developments), insurances (fire, weather, ...), some emergency fund for issues such as heating or renovations), that is next to unaffordable.

<comment><USER14> While I agree in general, I don't think it's as easy as urban-rural. Germany has some cities with extreme housing prices, notably Munich, but the discrepancy is big within the group of larger cities as well.

I can't say much about my friend group, as we don't talk about buying houses often. The few I talked to have an even split between the ones that want to buy (or just did) and the ones that don't even want to, even though we're in an income segment where it would be affordable.

I was surprised to find that home-owner rates in Germany have been quite low compared to other countries, but I couldn't find data before 2005 (it was 51-55% overall). It's really interesting to look into these kinds of things!</comment></comment></comment></comment>


Not all downloads are born equal – iOS - <AUTHOR> http://williamboles.me/not-all-downloads-are-born-equal/ <comment><USER2> Hi, the title is kind of misleading. It sounds like you're about to talk about the quality of "user downloads" in the iTunes app store, not how to write code to download files. Just my 2 cents, cheers!

<comment><AUTHOR> Ah, that's a good point. I didn't think about it that way

</comment></comment><comment><AUTHOR> Ah, that's a good point. I didn't think about it that way</comment>


AOC Is Making C-Span Fun - <AUTHOR> https://jacobinmag.com/2019/02/c-span-aoc-ocasio-cortez-hearings/ <comment><USER2> There are so many talented, brilliant, and well-spoken women in the world. Imagine what one of them could do in this role.</comment>


Ask HN: Why Password fields aren't disabled without HTTPS? - <AUTHOR>

<comment><USER2> I guess the password-type INPUT element was part of the early HTML spec prior to the invention of HTTPS.

Also, good luck getting people to use your browser when you break basic authentication for websites that allow unsecured logins.</comment>


Input on turning a side-project into a job - <AUTHOR> Hey, I am Leif.
In my spare time I have created a new cloud platform. The idea is to make cloud computing more approachable, to the point where everyone can use it.
From the user side the system is essentially a cloud OS with a web interface, where performing massive operations such as simulations and big-data analysis is just as easy as using a regular desktop application. The system manages the resources automatically, without the user needing to know about what happens in the background.
https://www.youtube.com/watch?v=gg4Loeuu0pM
This is how the platform looked a few months ago, since then I have been working on a package manager and a new system to handle ES6 imports / exports to replace our current linking system.
Last summer I told a friend about the system, there was an instant connection, and we decided to start a company together. He was the perfect counterpart to my engineering background, while I developed the platform, he was the human side of the company.
With no money and no connections, funding the newborn enterprise was not a simple ordeal, what we did was working regular tech jobs during the day, and creating our platform during the night. We managed to get into a local startup program, leading to a deal where we got more money than we had ever seen in the form of AWS credits.
Fast-forward 6 months, and here we are. What we realized is that what we really are passionate about is the technology. So in this moment of self-discovery we figured out what we really want in life is to be full-time developers on this platform.
And this is where we need advice, our optimal situation would be for a larger company to buy us out and then hire us as developers, but we also want to open-source the platform.
What we are looking for is for someone who has been in similar shoes to share experience or advice regarding the situation. We are deeply grateful for any input on the topic. <comment><USER2> Is anyone using what you created? You didnt mention users or any human interest in what youre building

<comment><AUTHOR> A few months ago we had alpha testers for ui-testing, but right now the system is not released.

<comment><USER2> get users

<comment><AUTHOR> Usually boils down to that yeah.

But with users comes problems that we currently don't have the money or time to deal with. After the workday is complete, we have on average 2-3 hours to work on the platform. If we did this under the cape of a "big-brother", we would have more time and resources to deal with issues that we currently can't, such as marketing, legal and economic issues. And would be able to dedicate the entire day to get the system ready to go public.

If we could dedicate the entire day to development of the system, we could release in a matter of weeks. At the current rate we are lucky if we can get the system online by early-spring, but considering that this is not a traditional social b2c startup, that might be fine.

<comment><USER3> Find users that understand the limitations and find value in the product. That also means that what you work on will be what the users _actually_ want rather than what they _might_ want or what is fun to work on.

A good filter for what users find valuable is that they will pay for it.

<comment><AUTHOR> That makes a lot of sense, thanks!

Do you have any opinion if we should open-source the project?

<comment><USER3> 1\. What's the business model that uses open source?

2\. Yes, I have an opinion. Fooling around with open sourcing the project is easier than shipping something useful and finding users and engaging with them. Until a significant fraction of people care about the project, nobody cares whether it's open source.

3\. Open sourcing a project is not a road to free labor. Building a community of users is a potential way to garner useful pull requests. But a community of users comes first.

4\. Generally, my impression is that building a community of open source users is harder than finding customers for a business.

Good luck.

<comment><AUTHOR> Alright, thanks! We will hold off on the open-source idea for now.</comment></comment></comment></comment></comment></comment></comment></comment>


You had me at, "Would you like a grande latte?" - <AUTHOR> http://successfulworkplace.com/2011/12/18/you-had-me-at-would-you-like-a-grande-latte-bigdata-personalization/ <comment><USER2> _"This story is likely to become something we all see happening at an increasing pace as more enterprises move toward better tracking of customer trends, improved availability of key data, and strategic use of mobile devices."_

This guy hasn't set foot in a casino recently. Listen to an interview with the CEO of Harrah's and what they're doing with customer tracking data. Casinos have tracked players for ages, but the data mining is advancing here too:

[http://www.npr.org/blogs/money/2011/11/15/142366953/the- tues...](http://www.npr.org/blogs/money/2011/11/15/142366953/the-tuesday- podcast-from-harvard-economist-to-casino-ceo)

</comment><comment><USER3> I wonder how he would have felt if the manager congratulated his wife on their new baby.</comment>


Don't Charge Your Phone This Way - <AUTHOR> https://www.nytimes.com/2019/11/18/technology/personaltech/usb-warning-juice-jacking.html <comment><USER2> Non-clickbait title: Don't Charge Your Phone With Public Cables or Ports.

</comment><comment><USER3> Title violates HN clickbait guidelines? ("this way")

</comment><comment><USER4> Always distrusted public chargers and USB ports from the day they started becoming common. One way you can address this is by buying a power-only USB cable, with the data lines cut. Unless there's any form of communication possible on the power lines in a USB cable (some diagnostic thing, etc) that can help protect you.

<comment><USER5> The downside to that is you lose a lot of the newer fast charge features. USB-C power delivery specifically requires communication between the charger and the device to determine what voltage the charger will provide.

<comment><USER6> There are "USB Condoms" (I'm fond of the PortaPow, no association just a happy user, I give them away like candy to anyone who will take one) where one end negotiates with the USB source and the other end is for your device; you still can get max power but there is no data connection.

[https://portablepowersupplies.co.uk/home/portapow-data- block...](https://portablepowersupplies.co.uk/home/portapow-data-blocker-usb- adaptor)

<comment><USER5> That's just USB-A which only does one voltage at different current limits. USB-C has a whole negotiation back and forth about available (charger) and desired (device) voltages. You could possibly have a device pass just those messages back and forth I guess but that's definitely not the device you linked.

<comment><USER6> Sorry, I don't have any USB-C devices, and the OP at top of thread only said USB (not USB-C).

</comment></comment></comment></comment></comment><comment><USER7> When USB power jacks started appearing everywhere, I figured it was just a gimmicky branding thing. Why wouldn't I just use my known AC adapter in a standard receptacle, and be sure that my phone was getting the same power it always charged with. It's very unlikely that building power would be miswired to put say 277V or 460V on a common receptacle, whereas low voltage DC being crappy seemed quite likely. I certainly wouldn't want to screw up my several hundred dollar device, from a basically unaccountable charger, for the savings was taking one thing out of my bag instead of two.

But this is just not the way most people see the world, which is apparently "if it fits, I sticks". I just don't get it - for all of the general conservatism to resist actual change, why is everyone so quick to engage in new behavior that offers _no_ gain?

<comment><USER8> _why is everyone so quick to engage in new behavior that offers no gain?_

Phone charges up. Sure seems like a gain.

<comment><USER7> The phone also charges with your AC charger though, and likely faster. Your gain is merely having to get just a cable out, instead of cable + AC adapter.

And if you're worried about a shortage of outlets, the savvy traveler thing to do is carry a multi-outlet tap and facilitate sharing, which also works at 120/240 and not 5V.

<comment><USER8> Some places don't provide a power socket I can plug an adapter into. Just the USB socket. Sometimes I'm carrying a phone and a slim cable I don't mind putting in my pocket, but I really don't want to put an AC adapter in my pocket and carry that around with me. Sometimes the AC adapter is in my checked luggage rather than in my pocket. Sometimes my AC adapter is made for a different kind of socket and I don't have a travel adapter for it. Sometimes I don't have a cable or an adapter, but someone lets me use their cable for five minutes. There are a lot more combinations in life than carrying a bag with an AC adapter inside that fits the local plug shape.

 _And if you 're worried about a shortage of outlets the savvy traveler thing to do is carry a multi-outlet tap and facilitate sharing_

Carry MORE things? I'm not worried about a shortage of outlets; I just use the USB slot.

<comment><USER7> I guess you've never experienced a watering hole of people at the only power outlet around? And aren't foreseeing being somewhere without USB jacks but with regular receptacles?

There is a whole bunch of path-dependence in what you've said. I formed my approach a decade ago, primarily in the context of traveling, and haven't seen a benefit to revisiting it.

But surely by the time one is talking about buying special cables with no data lines, but still needing to do power negotiation somehow, maybe it's time to question some recent assumptions!

</comment></comment></comment></comment></comment><comment><USER9> Time to start selling power-only USB cables with a transparent sheath and two visible copper wires. They don't need to be shielded, of course.

</comment><comment><USER10> TL;DR - don't connect your phone to public USB ports because it could install malware to your phone.

The way this article is written and not having any serious information about "juice jacking" makes it really bad.

</comment><comment><USER11> How about a TLDR since it's nytimes?

Also, what a trash headline. But it is the nytimes, and they've taken a huge fall.

"don't do this specific thing" (click to find out!)

"this one weird trick you must do" (click to find out!)

"you won't believe how annoying this headline type is!" (click me)

</comment><comment><USER12> I always found it helpful to bring a portable charger wherever I go. Very affordable these days. The RavPower one I have is good for like 5-8 full iphone charges.</comment>


Http://www.Google.com/sorry - <AUTHOR> http://www.google.com/sorry <comment><AUTHOR> Has anyone else been getting redirected to this page after doing a search via the Chrome address bar?

<comment><USER2> It does nothing but ask for captchas over and over?

<comment><USER3> Without the 'back link', it cannot redirect you to your original search. Your 'from location' is google.com/sorry, so, once you pass the test, it sends you back to google.com/sorry instead of back to your previous activity which triggered the Captcha.

<comment><USER2> Wouldn't my referrer point back to this HN page?

<comment><USER4> If you're coming from an HTTPS page (which I think HN forces) to an HTTP page, the referer is not sent. It is only sent for HTTP->HTTP and HTTPS->HTTPS (even cross-domain, despite the info that leaks out)

[http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15...](http://www.w3.org/Protocols/rfc2616/rfc2616-sec15.html#sec15.1.3)

</comment></comment></comment></comment></comment><comment><USER5> This seems to happen sporadically in the morning at my company and I speculate that it's due to a large number of employees who are querying Google at the same time from the network's IP. Google sees this as bot-like behavior and shows the capthca.</comment>


Cruise Automation: San Francisco Maneuvers - <AUTHOR> https://www.youtube.com/watch?v=cJQLEETP98U&feature=youtu.be <comment><USER2> It's nice that they coded human-like workarounds to illegal stops (at the expense of doing illegal maneuvers of its own), but it's disturbing that every time it does so, it inexplicably stops for a moment (as if to ponder what it has done), sometimes abruptly, before proceeding.</comment>


How to get your logos removed from LogoGarden.com - <AUTHOR> http://www.prejeancreative.com/pc_blog/2011/08/18/how-to-get-your-logos-removed-from-logogarden-com/ <comment><USER2> I didn't know what LogoGarden.com was when I read the article. This page: <http://www.logogarden.com/our-story.php> on their site explains it succinctly:

He provided high quality logo design using logo symbols initially developed for large clients, but which these clients had not selected. By modifying color, lettering style and layout, John found he could provide entrepreneurs with outstanding results at unprecedented speed. John's process — analyzed, automated on the Web and expanded to include thousands of logo design symbols ...

Blech. Good that someone found a way to get the stolen logos removed. With enough of these requests, LogoGarden.com should be hearing from their hosting company soon.

</comment><comment><AUTHOR> Scum bags. LogoGarden.com harvests logos from pros</comment>


IPhone Web App Performance Tip - Use Inline Images - <AUTHOR> http://waynepan.com/2008/08/26/iphone-web-app-performance-tip-use-inline-images/

<comment><USER2> One thing to remember is Base64 encoding is less efficient than the raw binary. Also, all modern web servers and browsers support reusing TCP connections for multiple HTTP requests (though there is still the extra latency for each actual request, just not the TCP connection sequence, etc)

I'd be interested to see actual benchmarks, rather than this "trust me, it works" thing.

<comment><USER3> The Base64 issue should be relatively minor as long as you're gzip-encoding everything your server sends. (the iPhone supports that, right?) Each base64 byte only has 6 bits of entropy so it'll compress well. I'd be more worried about maintaining efficient caching with this technique.

<comment><USER2> Good point. I did a quick test with a 190K PNG. Base64 encoded then gzipped it was almost exactly the same size as the original gzipped.

</comment></comment></comment><comment><USER4> First point: MUCH thanks to the author for this tip. The working examples definitely showed the difference on my iPhone on edge.

Second point: who in the hell cares how the word "iPhone" is capitalized? Really, is the most pertinent comment you can contribute about being a f*cking grammar Nazi?

On a fun note, the iPhone makes sure you cap the "P" automatically. It doesn't care about the caps on microsoft.

</comment><comment><USER5> Can we please, _please_ start referring to the iPhone as it's actually called... _i_Phone, not Iphone or IPhone or I-Phone. Lowercase i, uppercase Phone.

iPhone.

I'm starting to think that News.YC does this automagically... someone help a brother out here.

<comment><AUTHOR> YC News does it automatically. I cut and paste the title from my blog (where I have it and will always spell it iPhone).

<comment><USER6> Apparently we need some magic from here: <http://daringfireball.net/2008/05/title_case>

Specifically: _The script assumes that words with capitalized letters other than the first character are already correctly capitalized. This means it will leave a word like "iTunes" alone, rather than mangling it into "ITunes" or, worse, "Itunes"._</comment></comment></comment>


Keeping Provisioning and Deployment Simple - <AUTHOR> https://www.protoapi.net/blog/1/ <comment><USER2> I believe it would be much better article if it got displayed at all instead of giving a blank page.

<comment><AUTHOR> What browser and OS?

<comment><USER2> Firefox on Linux.

<comment><AUTHOR> Does it work now? I have modified my nginx ssl config, but I haven't got any devices with the same issue you had.

<comment><USER2> Yes, it does.

<comment><AUTHOR> Thanks for your help</comment></comment></comment></comment></comment></comment>


Microsoft's $2.5bn question: what if it doesn't release Office for the iPad? - <AUTHOR> http://www.theguardian.com/technology/2014/mar/14/microsoft-office-ipad <comment><USER2> I imagine the strategy is that if you want Office on a tablet, you need to buy a Surface. Apparently it's not reason enough.

<comment><USER3> People don't buy whole devices for an app. Or at least not most people.

<comment><USER4> What reasons do you believe people are buying devices for it not the applications on them?

If you are putting the emphasis on __app __then I would point out that Office is used by almost as many people as Facebook, so an app is a bit of an over simplification.

</comment></comment></comment><comment><USER5> I stopped installing office on my PCs about 10 years ago, for the first few years replaced with OpenOffice/LibreOffice and more recently things like wikis and confluence and google docs. Its amazing how little it really matters. Most of the stuff I get sent by MS Office users I can interop with. But every parent in the country still thinks their kids need Office installed to do their homework.

Occasionally you get people who have gone really over the top on the Word or Powerpoint template so that the thing is totally unreadable on any non-MS platform. I was thinking we need a campaign really - "Keep your document formatting simple" \-- no one is impressed with logos in footers or really complicated tables within word or clever animations on powerpoint anymore ... if everyone stuck to the 80% of features that interop well we'd be much better off.

<comment><USER6> "logos in footers" is now an advanced, "over-the-top" piece of formatting?

<comment><USER5> Yes. Twenty years ago when adding logos to a page layout was a minor technical challenge, you could show some professionalism by sticking your logo everywhere. It made it look expensive. These days it just makes it look like you're a Word Noob.

</comment></comment></comment><comment><USER7> Because it's an awful productivity device?

It has no usable filesystem, poor integration between applications, awful input device support, a tiny screen and is impractical for office work.

Yes I do own one for reference.

<comment><USER8> Have you tried one with a good bluetooth keyboard/enclosure?

I was surprised with how much of a difference it makes. I got an iPad3 at launch, and never bothered with a keyboard cover. It was, like you said, an awful productivity device. I got a keyboard cover with my iPad Air, and it made a night & day difference in terms of productivity.

<comment><USER9> How does that help remedy the other four problems he mentioned, especially the ones totally independent of input devices, though?

<comment><USER10> It doesn't, and you know that.

</comment></comment></comment></comment><comment><USER11> What if someone released a "limited virtual machine" that included WINE running inside an emulator but only allowed you to install Office on it? Emulation performance concerns aside, it's actually possible to capture all the keystrokes coming from a bluetooth keyboard on iOS. (And get it in the store if you're sneaky enough.) It should be possible to do this. (I also have a scheme for dealing with the mouse UI.)

<comment><USER12> I'm not sure an iPad would have enough computing power to run VM + QEMU + Wine + Office.

<comment><USER11> You can leave off the VM, as it's redundant to QEMU. Also, there are emulation strategies that rewrite the machine language to the native ISA instead of interpreting. One of those that cached the translated code would be more appropriate than QEMU emulation. WINE Is Not an Emulator, it's more of a library.

It would be hard, but it would be doable.

EDIT: New iPads are supposed to be equivalent to a low end dual core laptop from a few years ago.

</comment></comment></comment><comment><USER13> office for ipad will cannibalize windows sales. unless the question is if microsoft is willing to sacrifice revenue from windows to earn more from office.

and if they release office for ipad how long after will they release it for android ?

<comment> mark-r Even if they were successful, it's unlikely that they'd earn more from Office by being on the iPad. It's not going to sustain the prices that Microsoft is used to. This is their dilemma, they simply can't win no matter which way they go.</comment></comment>


Justin in undies in NYC live for the next hour - <AUTHOR> http://www.justin.tv

<comment><USER2> And this headline was suppose to entice us to go to the site....?

</comment><comment><USER3> Can you say "freakshow"?

It seems inevitable that Justin porn is next...

</comment><comment><AUTHOR> If it's over, here's an archive link:

<http://www.justin.tv/justin/9086>

</comment><comment><USER4> so hot right now. total boner;P</comment>


Does Learning Computer Science help anything else? - <AUTHOR> http://blogs.msdn.com/b/alfredth/archive/2010/11/25/does-learning-computer-science-help-anything-else.aspx <comment><USER2> The author seems to concentrate on the link between computer science and software/development, but I do think that CS helps in a couple non-tech areas as well. The ones I can think off the top of my head are being able to break large problems down to their component processes, being able to foresee the effects manipulating those processes can have, and being able to effectively communicate with others (both technical and non-technical) about your work. Those characteristics and thought models aren't unique to CS, but play a key role in the science and engineering fields in general. A field that requires the application of mathematics and logic will tend to produce or attract people that value rational and procedural thought.

<comment><USER3> > The ones I can think off the top of my head are being able to break large > problems down to their component processes, being able to foresee the > effects manipulating those processes can have, and being able to effectively > communicate with others (both technical and non-technical) about your work.

I have an education in CS, but I haven't actively developed software myself for quite a while. However, I've found that this particular point is very true. I find myself working with people, quite smart people, from very different educational backgrounds quite often. The ability to break a problem down the way that C.S. teaches is something that seems like magic to them. In at least two cases, I've been able to make some nice consulting fees simply walking people through this process which seems completely obvious to me.

On a higher level, I wonder how many regular old life problems, like deciding which car to purchase, or allocating employee resources, ones that seen absurdly obvious to people with a similar education/training background, completely stymie folks who haven't had this education. Experience with some of my friends who seem to habitually make absolutely terrible life decisions and one my few advisory consulting gigs tells me it's actually a bigger problem than most people thing.

</comment></comment><comment><USER4> tl;dr

Scanned until I stumbled upon this unsubstantiated tid-bit

 _For example the theory that learning Latin helps learn English turns out to be pretty much a myth._

I can only imagine that study was conducted by people who never learned even a little Latin, or were able to completely suppress their own experience for the sake of _science_.

EDIT: That is to say from my own experience, and pretty much all experiences I have discussed with others or read about, learning any other language really improves your technical grasp of your native language. Latin has its own peculiarities which make it a gateway to technical natural language understanding.

<comment><USER5> It was certainly my experience that learning Latin in high school helped me learn English better for all of the above reasons, plus so much of English is from French, a Romance language. Heck, just knowing a word is probably Anglo- Saxon in derivation because it's not Latinate has been useful.

</comment></comment><comment><USER6> Thinking in meta levels.

<comment><USER7> Managing complexity.

Grokking of side effects of decisions.

</comment></comment><comment><USER8> While I think there are tons of areas computer science applies to, I think this article is a little ridiculous. It's main point is that people who study computer science know how to us Google for answers to computer problems.

This XKCD flowchart sums up a lot of what the article says are advantages to a computer science education.

<http://xkcd.com/627/>

Granted, CS students get really good at using Google and reading manuals and things because of the virtually endless supply of new libraries/plugins/APIs and other tools that are used.

</comment><comment><USER9> It also helps proving theorems and applying math to areas mathematicians themselves thought to be purely theoretical (aka: hacking math).

</comment><comment><USER10> I think it does, but only on a certain level - that is providing you with the basics on understanding and becoming more passionate with it.

Becoming proficient with computers, whether it is a hobby or a professional career is another thing which in all honesty, is not taught in the classrooms but learned in the real world.

</comment><comment><USER11> It must help you remember where you put things. And in dealing with abstractions.</comment>


Ask HN: Should someone seek a normal career? - <AUTHOR> <comment><USER2> No, you have one life. You don't want your goal in life to be living in 60m2, because space is at an overpriced premium, in a block listening to your neighbors footsteps.

Having lived both lives, I can tell you with certainty that having a loan you will never be able to pay back is just not worth it even if the cities pay you better.

If you are in your 20s you could join startups and hope for a decent exit. Otherwise, I wouldn't even bother. If you have the skills to work remotely - absolutely try hard to do that. It doesn't matter if you get paid half the normal rate. That half rate is still a 3-story house somewhere. Doesn't have to be in the bush. :)

Longterm-speaking you could buy a house in a city, live in it until you have the experience needed to work remotely, then sell.

<comment><USER3> Dunno how it is in the States, but here in Poland, the towns where you can buy a cheap-ish house are in general terribly boring, have small-minded people in them, have little public transport, and are often ugly and filled with smog in the winter. Big cities are not like that, but then houses there are expensive. So, I think I'm actually leaning towards living in a flat in a well-maintained big city, where there are multiple good places to eat out and the people on the streets don't make me feel sorry for them, vs living in a house in a drab small town.

</comment></comment><comment><USER4> Depends on your circumstances, values, and goals.

</comment><comment><USER5> What do you mean by "normal"?</comment>


Show HN: JavaScript in 14 minutes - <AUTHOR> https://jgthms.com/javascript-in-14-minutes/ <comment><USER2> This is great work. I've translate it to Japanese. [https://github.com/HiroshiOkada/javascript- in-14-minutes](https://github.com/HiroshiOkada/javascript-in-14-minutes)

</comment><comment><USER3> Nice to see a reference to Bulma. Bulma is basically what was needed to get me to code sites by hand again, after being troubled by the lack of a) design<\-->css-template-code round-trip and b) offline support, in Webflow.

</comment><comment><USER4> How do you progress beyond testing out "alert" on your console? I've tried this on both Firefox and Safari on Mac OS and I don't get anything beyond checking out the console. ???

</comment><comment><USER5> really well designed!</comment>


Why was the post about meritocracy being a myth in SV flagged? - <AUTHOR>

Can someone please explain to me why the post to this blog entry was "flagged"?
https://medium.com/diversify-tech/i-m-a-white-guy-in-silicon-valley-and-i-m-done-buying-the-meritocracy-myth-2cc0ef9f9b60
https://news.ycombinator.com/item?id=10155295 <comment><USER2> Probably because someone read the headline or url and did a Mr Horse (No Sir. I don't like it.)

<comment><USER3> _did a Mr Horse_

Well, that brightened my day :)</comment></comment>


Create a Zettelkasten for Your Notes to Improve Thinking and Writing (2013) - <AUTHOR> http://zettelkasten.de/posts/zettelkasten-improves-thinking-writing/ <comment><USER2> This is interesting idea, but I wish their book was written in English

<comment><USER2> For future googlers, this seems like the good intro to zettelkasten [https://strengejacke.files.wordpress.com/2015/10/introductio...](https://strengejacke.files.wordpress.com/2015/10/introduction- into-luhmanns-zettelkasten-thinking.pdf)</comment></comment>


Zuckerberg Loses $7B as Firms Boycott Facebook Ads - <AUTHOR> https://www.bloomberg.com/news/articles/2020-06-27/mark-zuckerberg-loses-7-billion-as-companies-drop-facebook-ads <comment><USER2> I mean sure they are down entirely in line with the rest of the market but whatever sells the clicks

<comment><USER3> FB is down significantly more this week than the market FB: -9.42% GOOG: -5.65% SPY: -2.56%.

But I agree the headline is asserting a causal relationship without sufficient evidence.

<comment><USER4> Doesn't "as" stand for a temporal relation: [https://www.google.com/search?q=define+as](https://www.google.com/search?q=define+as)

"Because" would be casual, in my book.

</comment></comment></comment><comment><USER5> Considering how thoroughly Facebook has locked up the market, I can't imagine they will stay away for long.

</comment><comment><USER6> Reddit trying to start an IPO right now in the midst of multiple large advertisers boycotting social media advertising. Lol I don't even know who would want advertising on that toxic website.</comment>


Could a morbidly obese goalie shut out an NHL team? - <AUTHOR> http://online.wsj.com/article/SB119143109983647814.html

<comment><USER2> I just ordered an industrial-size vat of Crisco. See your future, be your future.

Traditionally it was "the fat kid" who played goal, since anybody who could skate would rather put the puck in the net than get whaled in the nords.

I believe this changed when modern netminders brought more skill, athleticism, and even dignity (really) to the position. Plus, people love all the cool- looking gear.

</comment><comment><USER3> I played hockey for 22 years. The beautiful thing about it is that fighting is the great equalizer. There are unwritten rules that you must follow to avoid getting stomped by a toothless caveman. For example, if you shadow their star player, you will get dropped. If you are a 2000 lb goalie, you will get drawn into a fight and at least thrown out and at worst hurt. Allowing a little fighting makes the game better b/c the rules don't have to be so explicit. One goon willing to drop his gloves is a more effective way of toning down the dirty side-play than 10 more refs.

<comment><USER4> This is a point that I wish the article had chosen to make: if someone figures out how to bend the rules to gain an immense advantage and unbalance the game, all that happens is that the rules get changed. It's not as if the size of a hockey goal is determined by the laws of physics.

And, indeed, unwritten rules are handy because they can be changed on the fly as necessary.

</comment></comment><comment><USER5> Being Canadian, we had this discussion many times.

You just couldn't get a goalie who was big enough to fill the entire net, so the increased goalie size would limit his mobility and make him worse.

It is nice having a 6'8" defenseman who has a longer stick than normally allowed though.

</comment><comment><USER6> Hey, why not an Siamese quadruplet? I might actually watch, then, or at least take a gander.

<comment><USER7> But those are four people, already :)

</comment></comment><comment><USER8> That was a hilarious article...not exactly typical WSJ fare...

</comment><comment><USER9> Haha, this is something I've been wondering for a long time.

</comment><comment><USER10> Nice hack.</comment>


uilang – a minimal, UI-focused programming language for web designers - <AUTHOR> http://uilang.com/

<comment><AUTHOR> Benjamin De Cock (creator) wrote a post on Medium about the philosophy behind uilang: [https://medium.com/@bdc/the-educational-side-of- uilang-92d39...](https://medium.com/@bdc/the-educational-side-of- uilang-92d39da94c13)

EDIT: This thread should probably merged into @benjamindc's own submission here on HN: [https://news.ycombinator.com/item?id=8256416](https://news.ycombinator.com/item?id=8256416)

</comment><comment><USER2> I don't know about that almost natural-language DSL.</comment>


Ask HN: My CTO just left me 2 angry voicemails... - <AUTHOR> I recently joined a startup in San Francisco about 3 months ago.  We launched our product and it has been a great success (many customers, a lot of buzz, tons of traffic).
Before the launch, I was working until midnight everyday, 6 days a week.  After the launch, my CTO was so happy with the work I did that the founders tripled my stock.
Today, I screwed up and left my phone at home while I went out for dinner.  We had some work that needed to be done, but I thought it wasn't due until the morning (miscommunication on my part).  When I got home, I had a couple of missed calls and two really angry voicemails.
My CTO told me he had expected me to finish my work earlier and that I was irresponsible.  He pretty much yelled at me and had a few cuss words to throw in.
I called him back and apologized.  (wtf?  Why'd I do that?)
I can't believe how intense startups are.
Since I've been here there have been 2 people that were fired.  I'm actually scared that I'll be fired when I walk in tomorrow morning.  But at the same time, I don't need this job.  I have enough savings to cover rent and living expenses until I find a new one.
I can't sleep right now, I've talked to my wife and she thinks I should quit.  What do you guys think?  Are startups ALWAYS this intense?  Are the successful guys the ones who stick through it no matter what?
Thanks - Anonymous <comment><USER2> No, startups are not "ALWAYS" anything; there is a wide variety of people involved in startups. Startup founders, often very successful ones, can be polite and generous people. Most people do have flaws of some sort, and sometimes there will be people who have flaws that are distinctly incompatible with your own flaws.

If you aren't comfortable with the working environment, you _should_ quit; the world is too wide and life too short to do otherwise. You might prefer to line something else up first, if you're unsure of your prospects or don't have sizable savings.

It may just be that you're taking it too seriously. If you have owned up to your mistake, done what you can to reduce its impact to the rest of the team, and apologized, you should let yourself move on. If your boss doesn't see it that way, he's an asshole, and probably isn't worth working for.

Also, if he's being such an asshole that he's chasing off and firing people at an alarming rate, the finances of the company may be dramatically worse than you are aware of and he's deluding himself and others into thinking he's being proactive, when really he's just unable to admit that his company is going down the toilet and he should own up to those problems. Actually, I can't think of any instance where a founder was being truly a dick where it didn't boil down to things going really badly and the founder not knowing how to cope with the failure. (I'm sure there have been many...people are sometimes just dicks. But, I can't think of any examples right now, but I can think of several examples of poor financial situation leading to emotional falling outs among founders and employees.)

</comment><comment><USER3> I was in the Army for four years, and when I finally got out I promised myself three things:

1) I would never run again unless I was being chased by something that could kill me.

2) I would never again train to kill another person.

3) No man would ever, ever, yell at me. Ever.

To this day, #3 has been the best thing I've ever decided.

</comment><comment><USER4> Anyone who would fire you for this is not worth working for.

</comment><comment><USER5> Your post reads to me like your trying to convince yourself to quit.

I wouldnt want to say either way; except to point out that if your working that hard for a company (startup or not) it's got to be one you really connect with. As soon as it starts to become a chore it's pointless.

So you screwed up: if the CTO is blowing his top that quickly (assuming it wasn't mission critical updates etc) then to me that smells instantly like he is either stressed (in which case you might like to sit down with him and ask outright if there is issues and whether you can help) or looking for an excuse to fire you.

</comment><comment><USER6> Sorry, I hate to be that guy, but....wtf?

 _Today, I screwed up and left my phone at home while I went out for dinner. We had some work that needed to be done, but I thought it wasn't due until the morning (miscommunication on my part). When I got home, I had a couple of missed calls and two really angry voicemails.

My CTO told me he had expected me to finish my work earlier and that I was irresponsible. He pretty much yelled at me and had a few cuss words to throw in._

You were in a high pressure situation, you fucked up, and you got _"pretty much"_ yelled at. What did you expect? A pat on the back? The CTO was factually correct: you were irresponsible.

Put yourself in his shoes: work that needed to be done wasn't done at the time it should have been (due to your mistake), and he had no way to get in touch with you (due to your leaving your mobile at home while you went out for dinner.)

Believe it or not, what you do matters. If you fuck up, there are going to be consequences for the company, and the people who have their lives invested in the company aren't going to be particularly happy about it.

In conclusion, I'd say: your instinct was absolutely correct when you called him back to apologize. You fucked up, you got yelled at. Sharpen up, and try not to do it again.

<comment><USER7> _Put yourself in his shoes: work that needed to be done wasn't done at the time it should have been (due to your mistake), and he had no way to get in touch with you (due to your leaving your mobile at home while you went out for dinner.)_

And at point, most of us who manage people _and have some self control_ would realize that yelling and cussing on a phone message would do nothing to resolve the problem quicker, and start thinking about how to fix the problem with the resources available at the time.

There is always plenty of time after the disaster/problem/inconvenience is averted, when the pressure is reduced, to address the mistakes an employee made.

</comment></comment><comment><USER8> It's hard to get a complete picture of the situation from this little vignette, but your wife might be on to something.

There's a difference between "intense" and "toxic". Firing 2 people in 3 months may be a sign of a toxic environment. Leaving _two_ yelling, swearing voice-mails may be another. It's OK to be upset about missed deadlines or unmet responsibilities. It's not really OK to yell and curse at your staff because of it. Part of being a professional (part of being an adult for that matter) is being able to act in a manner that is different than how you feel. Verbally abusing the people you work with isn't "intense", it's at best rude, and shouldn't be accepted as par for the course.

I'm not saying the CTO is necessarily a bad guy because of this. We all lose control of our emotions at times. But let's be clear, this really isn't acceptable workplace behavior, startup or not. If it happens often, I'd take that as a very bad sign.

And this is more than a question of a toxic work environment (although frankly that may be reason enough to quit). It's really a matter of the success of the business. If the founders/management team aren't able to act professionally with their staff, how will they handle disappointment with investors, clients, partners? It is likely that if this is a problem it will manifest itself in more places than staff relationships.

(BTW, Do you have "stock" or "stock options"? Has your stock vested? If options, how likely are they to turn into anything real? If you've got a real stake in the business, that's great, but otherwise working 14+ hour days 6 days a week on a regular basis might also be a bad sign. I've witnessed this more than once with people I know: the founders don't offer early, key employees any significant stake in the business but still expect them to have 18-hours-a-day, 6-days-a-week dedication and drive because, you know, "it's a startup". Founders: If you're not giving your staff a vested interest in the business, don't expect them to be as engaged as you are. It's just not rational)

<comment><USER9> There is also the other side of the story. Read a few stories on Steve Jobs (just google) and how he behaves with Apple Engineers and Designers (hint: worse than what one guesses) and how they ultimately turn that in into profit (better product).

<comment><USER8> I hope you're not asserting that Apple makes a better product _because_ Steve Jobs is a jerk to his staff. I'm a strong believer (based on experience) that you'll get more out of people if you treat them with respect. Have high standards, yes, but don't be a jerk.

</comment></comment></comment><comment><USER10> Startups that have recently launched and are dependent on a single product for income are going to be very intense around deadlines. If you're currently the sole / lead dev I doubt you have much to worry about. You are worth more to them than running a few hours late.

Let your cto cool off and theres no harm, then no foul.

If it's a good, popular, product then it is worth sticking with it, but of course your health should come first. Burn out over a job you don't need is not a good idea. Just try to balance things, set sensible deadlines etc so 13hr days are a rarity not the norm.

Edited for conciseness

</comment><comment><USER11> Is your stock solid ? In other words has it vested ?

If it is walk. If it isn't you'll have to wonder if they don't fire you whether or not the chances of you sitting it out until your stock does vest are > 50%.

It sounds like your CTO is not made of start-up material, and ought to be replaced, but then again we only have your side of the story so that's with the caveat that the other side might have a completely different one.

People skills are asset #1 in a start-up and your CTO is displaying none of it or is stressed out to the point of breaking.

It definitely sounds like a company with a very sick culture.

</comment><comment><USER12> whats the big deal? you messed up and the CTO was pissed. we all make mistakes.</comment>


Why my Nexus is fantastic and why my next phone won't be a Nexus - <AUTHOR> http://softwareas.com/why-my-nexus-is-fantastic-and-why-my-next-phone-wont-be-a-nexus <comment><USER2> I like my Nexus. I do not tether often, so battery life is not the most important criticism of this phone. But I find it too big. And I find the Google Now feature quite creepy - at the end of each month it shows me how much kilometres I walked and how much I rode on the bicycle.

Nice, but I would like to know that this data is not stored at Google. As well the fact that the phone apparently listens all the time - scares me as well.

I think next time I will go with a Blackphone or a Geeksphone with FFOS on it.

<comment><USER3> > And I find the Google Now feature quite creepy - at the end of each month it > shows me how much kilometres I walked and how much I rode on the bicycle.

Yep, that's pretty creepy. But you can get the voice search feature without enabling Google Now. Voice search was the only reason I looked into Google Now at all, and I quickly realized I could have one without the other.

</comment></comment><comment><USER3> Quote: "So why will my next phone not be a Nexus? One word: tethering. Many people claim they can make a day without charging their phone."

But the phone under discussion is running KitKat, which supports Mobile Hotspot. Mobile Hotspot allows a kind of wireless "tethering" without requiring a USB cable that would interrupt charging. I've tested it and it works. Also, a local wireless solution doesn't interfere with transaction speed at cell-phone data rates.

Problem solved.</comment>


Yelp casually exploits coronavirus with charity scam - <AUTHOR> https://www.youtube.com/watch?v=_tIYrjBEczE <comment><USER2> I like Rossmann, but I should have focused on staying on target here. He starts with the info about the shitty fundraiser scheme. But then drifts into a talking about them not removing fake negative reviews of his business. Though the second part is a valid complaint, just seems you shouldn't use this coverage to talk about your personal issues with them.

For the record, Yelp has been a scummy dumpster fire for years, they try this shake down shit with so many small businesses here.

<comment><AUTHOR> Whilst you may view them as personal issues - they are experience and not unique to him.

Yes, does seem many are aware of Yelp being scummy (nice way of putting it), but only those who are more technically aware to see thru their scummy bully tactics, tactics that hurt and can destroy a business. Many who are not technically minded and they equally suffer at their hands without knowing why as many users out there are not technically aware and with that will blindly trust those reviews and Yelp and those users are the majority.

Now they are abusing a pandemic to be even more scummy, they need to be held to account and shown to those common users what they are about and stopped.

I just want to see fairness and with that, really want to see the word put out so those lessers users start to see the truth as we all know, they have been allowed thru whatever reason to carry on doing this and are not improving, indeed - getting worse.</comment></comment>