Avoid 100vh on Mobile Web - <AUTHOR> https://chanind.github.io/javascript/2019/09/28/avoid-100vh-on-mobile-web.html <comment><USER2> I recently had to deal with this issue, you'd think this had to be solved by now.

So as suggested on SO: [https://stackoverflow.com/a/55003985](https://stackoverflow.com/a/55003985),

        min-height: -webkit-fill-available;

works exactly as intended in Safari (mobile and desktop), but unfortunately breaks in desktop Chrome for me, so I ended up putting it in a media query for mobile only.

</comment><comment><USER3> Here is an article from 2015 about the same problem but with more context and examples:

[https://nicolas-hoizey.com/2015/02/viewport-height-is- taller...](https://nicolas-hoizey.com/2015/02/viewport-height-is-taller-than- the-visible-part-of-the-document-in-some-mobile-browsers.html)

</comment><comment><USER4> The reason they do it is to avoid the redraw when hiding/showing the address bar. If you use JavaScript you get that performance issue. Having been bit by this issue, I think chrome and Safari made the wrong decision. We worked around it with JavaScript, which I'm sure performs worse and was a pain to implement.

<comment><USER5> they made the right decision imo. vh units can be used for font-size. if you set font-size: 5vh; (5% of height) then as they shrank the browser chrome/address bar the size of the entire page and all word wrapping etc would change. that would be bad user experience. that's just one example of the unintended consequences of the mobile UI dynamically changing size under normal use.

</comment></comment><comment><USER6> An easy solution is to add a height transition:

        .full-height {
            min-height: 100vh;
            transition: height 1000s steps(1);
        }

This will let you maintain the initial height with the address bar excluded, and won't let it change when the bar disappears. Steps timing function is to avoid costly layout calculations.

<comment><USER7> Wouldn't this change after 16m 40s?

<comment><USER8> Yes, that is true.

Increase to hours, days, or years as you feel appropriate for your audience. Unless the visitors spend days looking at the screen, they won't notice.

</comment></comment></comment><comment><USER9> This kind of exemplifies the problem with web development in general. 100vh would have been so intuitive if it worked correctly. This is why a lot of web devs hate CSS. One needs to remember so many hacks to get the webapps behave correctly! It's one of the reasons bloated frameworks like bootstrap become popular and all users pay the price.

</comment><comment><USER10> You can fall back to the oldskool way of setting the height of the parent nodes to 100%:

      html, body, .full-height {
        height:100%
      }

I guess this is exactly the thing the viewport units were designed to overcome, but at least it's a pure css solution.

<comment><USER11> If you have a site that's N screens high and you want to set the height of a div (i.e. an image) so it covers the whole landing area (what the user sees when the site loads) then this code won't help. You have to use _vh_

<comment> dao- Or you use position:fixed?

<comment><USER11> And set the height to what? Using percentages means 100% relative to the parent. What if the whole site is the parent and that site is 3 screens high? I haven't found the way to make it work without relying on _vh_ or JavaScript.

<comment><USER12> Set top: 0; bottom: 0

<comment><USER11> Maybe we are talking about 2 different things. I want to stretch the image to the bottom of the visible area not to the bottom of the site. If the height of the parent is 100% and that parent is the site itself and it's 5000px high (because the rest of the content made it that high) then setting the bottom to 0px will stretch the image's height to 5000px.

<comment><USER13> > you want to set the height of a div (i.e. an image) so it covers the whole > landing area (what the user sees when the site loads)

I believe "what the user sees when the site loads" is often referred to as "above-the-fold". "Landing area" may be interpreted to mean the whole landing page. Perhaps repliers were confused by the phrasing.

<comment><USER11> Bingo! Above the fold is the more common term. I usually call it "landing area" and the whole thing I call "landing page". Naming is important :)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Does this apply to all browsers on mobile?

Because I've never experienced this in Firefox on android

<comment><AUTHOR> Firefox on Android works properly iirc, but sadly most users don't use it.

<comment><USER15> My proposal is to not fix anything and let people see that the other browsers are worse.

</comment></comment></comment><comment><USER16> Per [1] it sounds like it should be usable with "position: fixed". Though I can't test it right now.

There's some interesting (hopefully not outdated) discussion in the Chromium bug here [2][3] which helps explain why things the way they are (balancing several competing constraints).

[1] [https://developers.google.com/web/updates/2016/12/url-bar- re...](https://developers.google.com/web/updates/2016/12/url-bar-resizing) [2] [https://bugs.chromium.org/p/chromium/issues/detail?id=428132](https://bugs.chromium.org/p/chromium/issues/detail?id=428132) [3] [https://github.com/bokand/URLBarSizing](https://github.com/bokand/URLBarSizing)

</comment><comment><USER17> Using JS over CSS for sizing elements rarely is a 'better solution', mostly because of flashes of unstyled content - _especially_ on mobile where it might take longer for the JS to fully initialise.

Like other comments on here say, just use height: 100% instead.

</comment><comment><USER11> And no way to test it with the address bar visible in the Chrome emulator. So it's all nice and dandy until you actually load the site on a mobile device.

</comment><comment><USER18> Mobile html dev feels like it's taken a step back lately. With vh not being the true viewport height and with user-scalable no longer being respected, it's become very difficult to build advanced apps for the mobile web. A lot of it feels like reactionary changes due to abuse by devs of these features which lead to bad UX, but it comes at the expense of allowing richer apps.

</comment><comment><USER19> There's a better solution for 100vh on mobile by csstricks - [https://css- tricks.com/the-trick-to-viewport-units-on-mobile...](https://css- tricks.com/the-trick-to-viewport-units-on-mobile/)

</comment><comment><USER20> I recommend just avoiding viewport units altogether; this isn't the only problem with them. The fact that they _include_ scrollbars on the document element means that 100vw and 100vh are just _never_ what you desire, if scrolling can occur.

<comment><USER21> > The fact that they include scrollbars on the document element

What do you mean by that? Do you mean that the surface taken by scrollbars is not removed from the viewport?

That would make sense on mobile devices as scrollbars are generally transient overlays, or when e.g. OSX is set up in that configuration (there's a system setting so native scrollbars can be either a transient overlay or a reserved area).

<comment><USER22> > the surface taken by scrollbars is not removed from the viewport?

Yes.

Which means that if your element's width is 100vw and the page height is larger than the viewport height so that it shows a vertical scrollbar, then suddenly you get a horizontal scrollbar as well.

People who build sites on Macs make this mistake all the time, because on MacOS browsers hide their scrollbars by default, and developers do not immediately see the consequences of this CSS rule. When you view these pages on Linux or Windows machines (or if you tell MacOS not to hide scrollbars), then you see the annoying horizontal scrollbar.

<comment><USER21> > Which means that if your element's width is 100vw and the page height is > larger than the viewport height so that it shows a vertical scrollbar, then > suddenly you get a horizontal scrollbar as well.

Oh wow that's insane.

edit: apparently the "useful" behaviour used to be opted-in using overflow: scroll, but only firefox implemented that, they asked if it was really useful (when nobody else cared) and… it was dropped from the spec.

</comment></comment></comment></comment><comment><USER5> use the correct feature for your use case. for a dynamic background behind a scrolling page use 100vh if the size depends on the height otherwise the background will do this strange shrink and grow thing as the UI changes size

</comment><comment><USER23> This issue has been reported at least 4 years ago to Webkit: [https://bugs.webkit.org/show_bug.cgi?id=141832](https://bugs.webkit.org/show_bug.cgi?id=141832)

</comment><comment><USER24> I've always used 100vh (or just over) to ensure my footer is always at the bottom of the page. I assume this is fine still?

<comment><USER25> Use the flexbox solution instead: [https://news.ycombinator.com/item?id=21110985](https://news.ycombinator.com/item?id=21110985)

<comment><USER24> Still uses min-height: 100vh;

</comment></comment></comment><comment><USER26> As one of the comments below the post mentions, `html, body {height: 100%}` should work just fine.

</comment><comment><USER27> stackoverflow discussion and more Infos on this: [https://stackoverflow.com/q/37112218/1216595](https://stackoverflow.com/q/37112218/1216595)

</comment><comment><USER28> I just wish browsers would follow standards instead of having half dozen frail workarounds that have to be reworked at each drop of new browser versions</comment>


Where to find the nation's most frequent ideal weather - <AUTHOR> https://www.washingtonpost.com/news/capital-weather-gang/wp/2018/08/07/the-united-states-of-nice-days-heres-where-and-when-to-find-the-nations-most-frequent-ideal-weather <comment><USER2> Odd that Long Beach (210 "nice days" a year, and their winner) is so much better than Los Angeles (182, second place) and Sand Diego (178, third place).</comment>


AI Startup Says It Has Defeated Captchas - Larx-3 http://www.technologyreview.com/news/520581/ai-startup-says-it-has-defeated-captchas/ <comment><AUTHOR> From the article:

        "Captcha" stands for "completely automated
        Turing test to tell computers and humans apart."

No it doesn't - where's the word that starts with "P"?

According to Wikipedia "CAPTCHA" is an acronym for "Completely Automated Public Turing test to tell Computers and Humans Apart" (and is apparently a trademark of Carnegie Mellon University, which I didn't know.) Even that's a really bad backronym.

Google's reCAPTCHA page[0] says the same thing, and even attributes it:

        The term CAPTCHA (for Completely Automated Public Turing Test
        To Tell Computers and Humans Apart) was coined in 2000 by Luis
        von Ahn, Manuel Blum, Nicholas Hopper and John Langford of
        Carnegie Mellon University.

That should then be CAPTTTTCAHA. Doesn't quite have the same ring to it.

Given the term CAPTCHA it seems that a "better" (by some definition) backronym would be:

        Completely Automated Process to Tell Computers and Humans Apart.

At least with that one only the particles "to" and "and" are left out of the abbreviation.

More on topic though, I long for the day when off-the-shelf systems that even script-kiddies can use are able to break CAPTCHAs with ease - that's when they'll finally die. TicketMaster gave up on using the standard CAPTCHAs earlier this year[1], and I'd love to see something better replace it.

[0] [http://www.google.com/recaptcha/captcha](http://www.google.com/recaptcha/captcha)

[1] [http://www.bbc.co.uk/news/technology-21260007](http://www.bbc.co.uk/news/technology-21260007)

<comment><USER2> > I'd love to see something better replace it.

So long as the "better" solution is something OTHER than "Please log in to your Facebook account."

</comment></comment><comment><USER3> This is cool, but there's no indication from the article that it's novel, or that it's better than existing methods.

The article linked to 28 other different systems that have claimed to beat / demonstrated beating captchas at some point: [http://www.karlgroves.com/2013/02/09/list-of-resources- break...](http://www.karlgroves.com/2013/02/09/list-of-resources-breaking- captcha/).

Without a performance comparison to existing methodologies on a benchmark dataset and precise details on the models, this is a neat marketing demo and nothing more.

</comment><comment><USER4> They literally have a better hit rate than I do when it comes to captchas.

<comment><USER5> My first thought was that I'd love to run this myself. Not to spam, but to be able to skip Captchas.

That's a really sad thought.

<comment><USER6> Yeah totally. I swear there's been captchas that were unsolvable (to my eye) lol.

</comment></comment></comment><comment><USER7> > or let you know how many calories you're about to eat by looking at your > lunch.

I have previously told some people that this is the holy grail of dieting apps. The difference in ease of use between entering all of the items in your meal, one by one, and just taking a photo, would be a game changer. Of course, this is just a throwaway example in the article so they probably haven't done any of the work that would be required to make this a reality (aside from the vision processing, of course). I think it could be done with thousands of human raters estimating for you instead of a machine learning system, but I was skeptical of whether it could be profitable enough to justify it as a startup on a risk/reward basis. One day, maybe we'll see it though.

<comment><USER8> The hard part about this problem is getting the scale and thus volume of the objects right. How big is that bowl holding your cereal?

<comment><USER9> And is that Coke or Diet Coke?

<comment><USER10> And have you "hidden" a dash of syrup or 100g of nuts under the milk.

But it'd be useful for rough estimates for things like restaurant meals, with the aid of a menu.

</comment></comment></comment></comment><comment><USER11> Computers can simulate everything from visual character recognition to mouse movements and everything else we do online.

My prediction is that Google will one day enter the "Bot Recognition Market". They've got so much data on everyone and their browsing habits from Gmail, to Adsense, to Search results, to Google Analytics. Their cookies, browser, javascript, and ads follow you around all over the internet. They're the only company capable of putting all that data together and returning via API: "This user is a real person, we've analyzed 3 years of data from them, go ahead and let them sign up"

Or returning: "User is a bot, their IP has no purchases, no google account, no search requests, no adsense impressions, etc..."

<comment><USER12> The part about Google offering a sort of vetting service sounds quite plausible, in a "Oh, shit" kind of way. For those of us that try to be anonymous we could have further encumbrance dealing with not being "Google Verified™".

</comment></comment><comment><USER13> CAPTCHA's did nothing to prevent spam for us.

However simply disabling users < 3 posts being allowed to post hyperlinks got rid of 99% of spam.

We initially allowed plain text links but spammers seemed happy to just post them.

Spammers want to post hyperlinks, without that ability they can't do anything.

<comment><USER14> Just an idea:

Make links remain as plain text (so they are plain text as far as google is concerned)

then use javascript to turn them into clickable links when the user mouse is over or near the link so the user can still click on them.

<comment><USER13> Spammers still relentlessly spammed us when we turned them into plain text links. Removing the ability to post plain text links was the only thing that stopped them.

No idea why they seemed happy to post plaintext links but there you go!

</comment></comment></comment><comment><USER15> Here's a video demonstration: [https://vimeo.com/77431982](https://vimeo.com/77431982).

Apart from one blip (scepticism vs sccpticism) it outperforms me.

</comment><comment><USER11> As far as I know bots, even advanced ones, have an extremely hard time with dotted fonts. Just change the Captchas to use some really dotted or unique fonts where the letters are made up of smaller elements that don't connect. You can extend the life of Captchas for a few more years.

[http://fontspace.com/malwin-b%C3%A9la-h%C3%BCrkey/merkur](http://fontspace.com/malwin-b%C3%A9la-h%C3%BCrkey/merkur)

[http://fontspace.com/honey-and- death/dotline/8617.charmap](http://fontspace.com/honey-and- death/dotline/8617.charmap)

[http://fontspace.com/bythebutterfly/bubble- bath](http://fontspace.com/bythebutterfly/bubble-bath)

[http://fontspace.com/jecko-development/jd-lcd- rounded](http://fontspace.com/jecko-development/jd-lcd-rounded)

Eventually, the spammers will make a bot to analyze the distance between dots, group them into letters, and the race will be on to use other methods. I see this as a never ending virus/immunity battle. We're pretty much at the end of Captchas. Other methods like mouse movement, surfing time, scrolling, etc... can all be mimiced as well. Computers can or will be able to simulate humans very well, even our imperfections.

<comment><USER16> You might find these examples from LeNet interesting. They are examples of unusual styles of digits that the system correctly recognized, made of dashed lines, bubbles, and dots. Granted this system only recognized digits, but it's not exactly a stretch to jump to the character set typical of Captchas.

[http://yann.lecun.com/exdb/lenet/weirdos.html](http://yann.lecun.com/exdb/lenet/weirdos.html)

</comment></comment><comment><USER17> This was literally a homework assignment in a security course I took during undergrad so excuse me if I'm not impressed. Also, from the comments it's clear that the benefits of Captchas are being overlooked. Google purchased ReCaptcha some time ago and uses it to solve difficult OCR problems by using human input. In Recaptcha you'll notice that there are always two words, and one tends to be easier than the other. The one that is easier has a known result and is used for security, the other one is unknown and Google will use people's guesses to find its true result. Even if this startup was to consistently solve the hardest Captchas on the internet, it would actually be a good thing because we would have better OCR. Realistically this won't happen and ReCaptcha will just use harder images all the time if it needs to.

</comment><comment><USER18> Good, Captchas should have stopped being a spam prevention measure years ago.

<comment><USER19> Do you have an alternative to suggest?

<comment><USER20> We use honeypot field and timegate trap on our site forms - so far very successfully.

<comment><USER21> I know what a honeypot (fake field that only bots fill out) but what's a timegate trap? Googling didn't bring up anything relevant.

Does it check how long it took the user/bot to fill up the form and dismisses it if it was too fast?

<comment><USER14> yes as far as I know you got it right, you somehow keep track of when the form was presented to the user and compare that with the current time when a response comes in

</comment></comment></comment></comment></comment><comment><USER22> "It's a textbook example of AI hype of the worst kind

Hype is dangerous to AI. Hype killed AI four times in the last five decades. AI Hype must be stopped."

Yann LeCun, [https://plus.google.com/104362980539466846301/posts/Qwj9EEkU...](https://plus.google.com/104362980539466846301/posts/Qwj9EEkUJXY)

</comment><comment><USER23> Advances in storage and compute have led to a disturbing fetishization of machine learning.

While the modern Machine Learning Movement makes sense in a historical context and is a reasonable reaction to the disappointing returns from symbolic inference during the early days of AI research, it is terrifying that the research community is satisfied to rely on big data and statistical methods to carry us forward.

Few among us recognize the need to prioritize the study of the human brain. Even fewer are placing their bets on intelligent computer systems seeded with neurologically-inspired designs.

Vicarious gets it.

How long before others see the writing on the wall?

Now is the time to stop reacting. Now is the time to consider the field in a broad context and develop a balanced, holistic approach.

Consider this a wake-up call.

[http://blog.perfmode.com/the-noml-movement/](http://blog.perfmode.com/the- noml-movement/)

<comment><USER24> I'm not sure I understand. "Few among us recognize the need to prioritize the study of the human brain", a great deal of the state of the art machine learning results are based on deep learning, which are algorithms that are "neurologically inspired" as you would put it. You seem to have a problem with big data and statistical methods, but one of the main deep learning algorithms, RBMs, _are_ statistical methods.

Also, could you expand on what a "balanced, holistic approach" to machine learning is?

<comment><USER23> "Even though an amplifier and a computer are both made of transistors, they have almost nothing else in common. In the same way, a real brain and a three- row neural network are built with neurons, but have almost nothing else in common." \-- Jeff Hawkins (On Intelligence)

One example is that most NNs neglect the time domain.

A balanced approach recognizes the importance of learning from data, but does not _rely_ on big data. A holistic approach entails a close examination of biological learning systems.

<comment><USER25> As a counterpoint, nearly all human technical advances (flight, propulsion, energy, computation) did not entail examination of biological systems. And ANNs in particular share a host of problems with statistical techniques: black-boxish behavior with lack of human-accessible state introspection and poor tractability.

<comment><USER26> _black-boxish behavior with lack of human-accessible state introspection and poor tractability._

I have a philosophical question in response to this. Is it even possible to have _intelligence_ without it being a black box? Are people willing to call something intelligent if they completely understand how it works?

<comment><USER25> Well my point was rather practical than philosophical: if you take a human at say classification task, they'd be able to explain why they identify bicycle as bicycle and not, say, bulldozer. You can't readily have this with ANNs; all you have is a bunch of weight coefficients and feedback loops.

<comment><USER26> _if you take a human at say classification task, they 'd be able to explain why they identify bicycle as bicycle and not, say, bulldozer._

I don't think this is such an easy task. In the professional world of scientific taxonomy there are many problems with classification. The problem seems to stem from the tension between intensional and extensional definitions.

<comment><USER25> Yes but you still are able to verbalize these problems, quite unlike when you stuck with a misfiring ANN. In symbolic approaches, e.g. inference engines, you have comparable explanatory facilities.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> Video of the system in action submitted here:

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

</comment><comment><USER27> So they have invented the world's best OCR software?

<comment><USER10> Not really, unless your corpus consists mainly of hopelessly distorted characters.

They state a captcha solving rate of around 90%.

For OCR to be cost-competitive, you typically need it to be correct on about 98% of characters or more; below that and it is typically cheaper to have a human typing in the text than to have a human correct OCR'd text.

Modern OCR engines typically do better than 99% on text that isn't really badly damaged (my MSc. dissertation was on error correction in OCR, and as part of that I tested some engines with pages that had been crumpled, intentionally damaged with sand and liquids, and even then many of the engines managed more than 99%).

<comment><USER28> hi, would it be possible to see your dissertation somewhere? thx

</comment></comment></comment><comment><USER29> It'd be interesting to know more about this approach. In particular:

> One big difference in Vicarious's approach, says cofounder Dileep George, is > that its system can be trained with moving images rather than only static > ones.

Does this imply they teach it how the shapes of numbers change, for easier detection?

<comment><USER30> It generally means you teach it to recognize 3d shapes (a 2d image that moves = a 3d image, more or less. Yes there's a good reason why you might want to call it 2.5d, but the easy way to model a 2.5d object is in 3d). Think of it as the difference between recognizing 2 points and recognizing a Feynman diagram.

This is one of the things people don't often realize you can do with algorithms. You don't need to look at the world the way it actually really exists, and there may be very good reasons not to. Training algorithms to actually recognize moving images is incredibly hard, because it requires things like memory, fade-outs, recurrent networks, all that very advanced stuff. Obviously time exists as a continuum in the "real" world. But that's bloody inconvenient. So just look at big "quanta" of time, collecting all data points during the quantum, analyse it, then shift the quanta/window ahead 0.1s and do the exercise again. This is so much easier you wouldn't believe it.

Teaching an algorithm to recognize, say, a car collision, given 100 frames. It doesn't require any change to the algorithm (just a change in training data). And obviously your backend system needs to be aware that, over time, the "isColliding" output will look like ......1.....11.....1111...122.214.171.124.11..11...11.11...11...1.....1...1...... when a collision occurs and this of course doesn't mean you've had 20 collisions.

It does mean a bigger network, slower training, and more resources needed. But not as much as you'd think. Keep in mind that a "temporal" network will need more hidden layers. Also please consider building "redundant" networks for temporal data. When people ask why, I have no better answer than that it's the same technique our brain uses, so frankly if it's good enough for God, it's good enough for me.

Doing the temporal thing means you're back to using trivially simple algorithms, running on more data.

Cracking captcha's is not very impressive. I've done it as a weekend project, and exceeding "average" human captcha'ing ability is easy. I actually got it to the point where my algorithm was slightly better at captcha's than me, where I was allowed to take 2 minutes for difficult captchas. If I wasn't allowed to take more than 10 seconds, my algorithm easily beat me by over 10% (my captcha performance, when measured, shockingly is only ~83%). I didn't cheat : I used an external site's captchas (from dns.be).

The algorithm used was dead simple backpropagation.

<comment><USER31> > Cracking captcha's is not very impressive. I've done it as a weekend > project, and exceeding "average" human captcha'ing ability is easy

If it's so easy, could you share it on github?

</comment></comment></comment><comment><USER32> I've Used a toolkit like 3 years ago that completely beat the captchas. Recaptchas are harder though. Which did they beat?

<comment><USER33> Both Captcha and Recaptcha failed terribly on a forum that I run. I run a photography forum and what worked great for me was asking the user signing up to answer a pretty simple question related to this fairly specific (large format) kind of photography. I get no spammers or spambots at all now.

Turning on recaptcha only briefly to test resulted in a mass of spammers.

<comment><USER32> This is because you can pay to have humans resolve captchas. It is really sad, but worth it I guess to the spammers....

</comment></comment></comment><comment><USER34> Spam = Problem -> Captcha = Solution -> Captcha Solver = Another Problem. Sigh.

<comment><USER35> Well if you read the article you'll see that it's only a technology demo, they're not releasing it as a product and their goal is not this but computer vision /brain mimicking in general.

Even CAPTCHA inventor Luis von Ahn has talked about CAPTCHAs being a practical way of generating test data for computer vision systems.

</comment></comment><comment><USER36> I wonder how it does on reCAPTCHA

<comment><USER37> Probably better than me anyway: I usually refresh the reCaptcha image at least 10 times before I get one that 1) I _might_ decypher and 2) won't take 15 letters to input

</comment></comment><comment><USER38> What if we will reach a time when robots have sex better than people... then what will happen?

<comment><USER39> The world will keep spinning?

I think the assumption you're making is that humans only have sex because it feels good, and not for the explicit purpose or the creation of life. If people want children, they'll procreate regardless, even if it doesn't feel as good as robot sex.

</comment></comment><comment><USER40> Not surprised. Not to be cavalier or anything, but I mean, even I was about to start a side-project to solve those things.

<comment><USER41> Awesome! It would be amazing if you open sourced your own solutions for it so we could learn from you- I find the topic fascinating! :-)

<comment><USER42> Shameless plug [http://www.boyter.org/decoding- captchas/](http://www.boyter.org/decoding-captchas/) I wrote this a few years ago. Has full source code too.</comment></comment></comment>


Tell YC: Thanks for Startup School - <AUTHOR>

I'm not asking anything, I'm telling.
I just wanted to say thanks for organizing this event. Coming from outside the valley, it's a little harder to get access to learn from such high-profile people.
I had a wonderful time connecting with different people and hearing their stories and startups. Good luck to everyone I talked to that have YC interviews!
Thanks again YCombinator and everyone who made it possible. I had a great time and learned a lot. <comment><USER2> Great to see such a diverse mix of people - I met fellow Brits, people from across the US and even someone who traveled over from New Zealand.

The line up was top-notch, and between Greg McAdoo's and Sam Altman's fundraising demystification, DHH's evangelism of charging users, PG's preaching about being good, and the opinionated snoring dude with the hat, it was both an inspirational and entertaining day.

<comment><USER3> the hat dude had some serious ego problems...

<comment><USER4> Watch out, we'll all be working for the hat guy some day.

</comment></comment></comment><comment><USER5> The first one literally changed my life.

I quit my job, found a co-founder and moved to California. It hasn't all been easy since then but it has all been worthwhile :D

</comment><comment><USER6> Thank you YC! And thank you everyone I met there! You were all great! So much talent and potential in one room was very humbling.

Great speakers and great topics. I learned a lot, met a lot of folks, and had fun. Thanks again!

</comment><comment><USER7> The event was awesome as usual! Ran out of pizza pretty quickly but it happens... I personally don't know anybody who had pizza. Rule of thumb is generally 2-3 slices per person.

</comment><comment><USER8> It was well worth my plane ride up. Much thanks for all the hard work you put into it. I didn't meet many news.yc'ers, but perhaps you saw me, my name is the same as my nick here. Anyways, all the talks were great, each speaker added their own flavor, and sitting amongst people who were like minded and driven entrepreneurs was pretty great. The pizza was really good, too. Thanks again YC.

</comment><comment><USER9> It was beyond my wildest expectations (and that doesn't happen often). I got to put faces to the many names I've met here - it was great meeting all you guys!

I finally met kirubakaran, alaskamiller, iamelgringo, dfranke, dcurtis, Xichekolas, rms, and a whole bunch of lurkers. (Sorry if I missed anyone). Hanging out with you guys was very cool and inspirational.

I only wished I could have finally met nickb. Every time someone said they saw him, he went around the corner just before I got there.

The area and the facilities were top notch and our hosts were especially gracious - thank you pg, Jessica, and Trevor!

Every speaker was exceptional. Thanks to all of you!

It might be a good idea to start thinking about how to measure the effect of these kinds of programs by examining those of us who don't go through the formal yc program. I certainly intend to do my part to positively effect that metric.

Now back to the diaspora with my newfound energy and plans.

</comment><comment><USER10> Thanks for putting it together YC team. It really was a great experience. Thanks for all the hard work and effort in setting everything up and in lining up such a great set of speakers.

</comment><comment><USER11> Thanks from me too! It was a great experience; entertaining, inspiring, and educational.

I did hear a few people saying they wished they had learned more. If any of you read this, I'm curious what you would have like to have seen/heard?

</comment><comment><USER12> Thanks for an awesome day. I would never had imagined that it would be possible to listen to so many great speakers and thinkers together. It was very inspiring and was one of those days that changed the way I look at my life and career.

</comment><comment><USER13> Great event. Worth the plane ticket and hotel. Mix it up next year with a different slate of speakers and topics, and I'll be back.

</comment><comment><USER14> Thank you Jessica and Paul for organizing this!

</comment><comment><USER15> Actually, thanks to all of you for posting the speakers' videos. DHH alone was well worth it.

</comment><comment><USER16> Indeed! Startup School keeps getting better every year.

Jessica, PG, and crew -- thanks!

<comment><USER5> This one was great but I missed seeing the YC founders talk.

</comment></comment><comment><USER17> +1.. Thanks to all from YC and anyone involved in planning and coordinating the event.

</comment><comment><USER18> Yeah woot it was awesome thank you</comment>


HackerNews in your IDE. Be a good worker - <AUTHOR> https://github.com/huytd/clinews <comment><USER2> There's a similar emacs mode too: [https://github.com/clarete/hackernews.el](https://github.com/clarete/hackernews.el)

The more CLI tools the better!</comment>


What is a HackerSpace? How do I get into one? - <AUTHOR> http://mobizoic.com/what-are-hackerspaces-and-how-do-you-join-one/

<comment><USER2> "… usually through a door, though it may vary by space."

But in all seriousness… awesomesaucenness if you want to start one of your own:

Hackerspace Design Patterns: [http://jaromil.dyne.org/journal/documents/Hacker-Space- Desig...](http://jaromil.dyne.org/journal/documents/Hacker-Space-Design- Patterns.pdf)

or here:

<http://hackerspaces.org/wiki/Design_Patterns>

and if you're in Vancouver: stop by <http://vancouver.hackspace.ca> sometime

xoxo!

<comment><AUTHOR> Will do! Actually looking to help a few people to atart hackerspaces in russia.

</comment></comment><comment><USER3> Droplabs is a downtown Los Angeles free hackerspace / coworking space where anyone who works off a laptop is free to use the space and get work done. Extras like high speed wifi, 2nd monitor or drinks cost money. The people are mostly developers, Drupal and iOS, working on projects. But lots of different tech types show up. There's 3 companies operating out of the space. www.droplabs.net

<comment><AUTHOR> thanks! I will pass it on to my friends.

</comment></comment><comment><USER4> A hackerspace is a place where people hack on things including space, Origami, microprocessors, 3d printers, ect...

Here is a video of the space <https://www.youtube.com/watch?v=KgVxIblE_LU>

<comment><AUTHOR> nice! will add it to my post

</comment></comment><comment><USER5> Alpha One Labs in New York <http://alphaonelabs.com> is currently accepting new members. Join us every Tuesday from 7-10pm for an awesome round table discussion.

<comment><AUTHOR> nice!</comment></comment>


SeatGeek Secures A Deal With The Wall Street Journal And $550k In Funding - <AUTHOR> http://techcrunch.com/2010/10/13/seatgeek-wsj-funding/

<comment><USER2> Congrats guys. First Yahoo Sports, now WSJ.. these partnerships are huge.

</comment><comment><USER3> more searching and tickets</comment>


Computers Are Not Designed for Productivity - <AUTHOR> http://app.getflowmeter.com/blog/productivity.html <comment><USER2> I have a Linux laptop on which I run a tiling window manager (in my case, Xmonad), and nothing else. No system tray, no quick launch bar, nothing.

(if you're not familiar with tiling window managers, they're window managers in which windows are arranged automatically to a) fully occupy the screen and b) never overlap. They're extremely customizable, but typically you'll have a vertical half of your screen with a main app, and the other half with all the other apps "stacked", with keyboard shortcuts to toggle between them and adjust various parameters (e.g. split orientation). You typically also get virtual desktops. The whole thing is fully keyboard driven (on my Xmonad, cmd + shift + enter opens a new terminal, and cmd + shift + c kills the currently selected window), and once you get used to it it's a usability dream).

On it, I have 2 graphical applications installed: a terminal emulator, because that's where I do all my work (and can launch other minor applications, such as a PDF viewer, if needed), and surf, a tab-less/control-less/URL field-less browser that you launch by typing `surf <url>`.

People make fun of me for this weird archaic setup, but it's the most productive machine I've ever used. Tiling window managers don't get in the way, and make it painful obvious when you have non work stuff open. surf forces me to not fuck around with 15000 irrelevant tabs open. It sounds like it would be a terribly crippled experience, but in practice it does not impede my workflow at all - it keeps me focused. It's gotten to the point that when I hear colleagues who complain about all their open tabs and how screwed they would be if their Chrome crashes, I feel like they come from another planet.

I don't like the whole "have some discipline" argument. Humans are notoriously bad at discipline- environment plays as much of a role as self control (try surrounding the most hardcore fitness nut by candy 24/7 and see how long they last). The point of our tools is that they should enable us to be who we want to be.

<comment><USER3> Anyone have any suggestions for how to get a similar setup on OSX?

<comment><USER4> The built-in multiple desktop support (ctrl+arrow left/right to switch) plus Spectacle[1] (free, open-source) will get you most of the way there. There's no good way to get rid of window title bars that I'm aware of, though having them there does mean you can switch seamlessly between normal OSX window management and sort-of tiling management via Spectacle.

Spectacle's default keybindings conflict with (override) Chrome's primary next-tab/previous-tab keys, but there's an alternate command+shift+[ or ] binding for those actions in Chrome.

[1] [http://spectacleapp.com/](http://spectacleapp.com/)

<comment><USER5> "SizeUp" is very similar.

[https://www.irradiatedsoftware.com/store/index.php?app=SizeU...](https://www.irradiatedsoftware.com/store/index.php?app=SizeUp)

</comment></comment></comment></comment><comment><USER6> The author may be on to something with the line _" A popup notification that runs without concern for what the user is doing is hostile behavior. Notice how there's no API in any OS for "is now a good time to interrupt the user?". Maybe there should be."_

Notifications could be deferred while the user is actively typing. When the user goes idle, deferred notifications can be displayed. This becomes more important as more "push" features are crammed into browsers and apps.

<comment><USER7> I'd like to point out that even if a user goes idle, it might still be a bad time to display notifications. What if a developer is working on a hard problem, and pauses for a while to think about the problem, maybe doodle on a whiteboard/paper, etc.? This could actually be the most damaging time to display a distraction to the developer. The solution to this kind of problem would likely need to be slightly different, possibly including simple mechanics such as "Don't bother me during x time" or "Don't bother me for an hour" to give someone that time they need to just focus/think about something for a block of time.

<comment><USER8> There are already problems with the assumption (user idle=nothing important happens).

Namely I'm trying to watch a movie and screen goes black after 30 minutes (yes I know how to configure this, just an example).

<comment><USER9> That's an interesting example, because there is an API for movie-playing programs to disable the screensaver while they're playing.

</comment></comment></comment></comment><comment><USER3> I've come to similar realizations during my programming career, and realized the value of simple mindfulness in all tasks, especially while communicating to those around you. I've found simple mindfulness to be like a superpower in our age of constant notifications and hundreds of tabs. I even try to force myself to be mindful while checking my email by dealing with a single email at a time (thanks to Mailbox app), and consciously delegating emails and tasks to a particular time if I'm unable to deal with it immediately. In my experience, multitasking is a sleep depriving, mentally taxing, stress inducing, debilitating activity which only reduces quality of life from every conceivable angle, and hurts productivity in general.

It all boils down to one thing: have a single conscious intention when doing something. This takes practice, but eventually you can do it for anything and everything. I've found this can even make routines like brushing your teeth very enjoyable and meaningful (see here: [http://www.fastcompany.com/3036363/how-to-be-a-success-at- ev...](http://www.fastcompany.com/3036363/how-to-be-a-success-at- everything/meditation-techniques-for-people-who-hate-meditation))

Also, there is a clear rebounding shift towards desktop computers being serious work tools, as opposed to consumption devices, which is what mobiles and tablets are for. This is undoubtedly a trend that is already happening, and I think that OS and software designers need to respect that. It is an unfair, deadly sabotage to mobilify desktops while upsetting the highly focused workflows of programmers, graphic designers, architects, writers, business managers, video editors, students and academic researchers just to pander to a generation of ADHD social network addicts (I'm looking at you Windows 8).

As for people arguing that you simply need self-control and discipline, they are kidding themselves. Focus and concentration are extremely delicate things to create and preserve, and it is a designers responsibility to make products easier for their intended purpose, not simply demand "self control" from their users.

<comment><USER10> I don't think the problem is OS design. Across his armful of assorted arguments, the poster made an argument that tiling managers suck, as well as some other things. That aside, I don't think it's the OS that is the problem, but rather that the computer is a gateway to many possibilities.

Your OS, and the apps on your computer, can be designed with focus and cognitive ease in mind, but it does not change the fact that a few actions away is a Stargate to another world. So, aside from a few grab-bag complaints (though legitimate) about operating systems, programmers and designers have little more to do. Apps are only going to get better designed, and minimalism and cleanliness have come to characterize modern app design.

<comment><USER11> Reading your comment I couldn't help but notice the juxtaposition of

>I don't think the problem is OS design.

>a few actions away is a Stargate to another world.

Maybe we should design the OS so that "the stargate" is a whole lot of actions away.

<comment><USER10> I don't think the user would take kindly to obstructions to their browsing / app experience...

"Why does it take an extra unnecessary step to launch an app!? You're telling me this is for my own psychological good?!"

I suppose this goes to classical arguments about the role of government in banning drugs or mandating seat belts. The state doesn't think you are responsible enough, so they create an external structure (fines / criminal penalty) to make you do good for yourself.

Others would say that a sad restriction has been placed upon them because the rest of the population cannot regulate themselves to the satisfaction of the state. It can also be argued that now people rely on external pressure or structure to behave well rather than setting up their own internal structure.

<comment><USER12> Who said anything about _mandating_?

I know I periodically drop

        0.0.0.0 news.ycombinator.com
        0.0.0.0 reddit.com

in my /etc/hosts file.

I also added a "don't let me switch from this window until I ask to be able to switch from this window" setting in my WM.

It doesn't have to be imposed externally to be helpful.

</comment></comment></comment></comment></comment><comment><USER13> I have a separate local user account on my computer for work. When I start work in the morning, I switch to the work user and all of my personal stuff goes away. When I'm done with work at night, I switch back, all my personal stuff comes back and work goes away. It's almost like having a separate computer.

People often look at me like I'm crazy when I tell them this. I haven't quite figured out why.

If I need to look up some personal thing in the middle of the day, I reach for my phone. If I find I've been reaching for my phone too much that day, I get up and put it on the other side of the room. Now every would-be distraction requires me to physically move my entire body.

<comment><USER14> For me it involves like 10 keystrokes.

Ctrl+Shift+N -> "new" -> select auto complete to hacker news -> enter.

This place can suck my whole day away, and because I'm a web developer and work in the browser constantly, there's no easy way to dodge it.

I can do things like blocking dns lookups or browser extensions but then I outsmart myself.

</comment></comment><comment><USER15> Yes, but can you google with the typewriter? If you couldn't, how much work can you get done? Not many people can work today without google, because with google, we get access to documentations, API docs, and what not. Without your computer, can you communicate faster? collaborate faster? Some folks use slack, hipchat, IRC, lync, whatever.

Are you going to code on your typewriter? I wrote code without a computer when I got into computing because I didn't have the money to buy one, I would write basic C code on paper. What a mess. Computers make us productivity, but you the user must decide on your work flow.

Computers are general problem solving machines, if you want to play game and watch cat pics all day, then it's your choice. If you want to work then you can. The guy on typewriter outside might do no work, instead he might stare at hot chicks or count cars or strike up a conversation with someone that comes along.

Productivity is not just a function of tool but also a function of self, and self control. I saw someone that mentioned self control and got downvoted, but they are correct. It's mostly about how productive you decide to become, there is no shortcut. If you are not motivated, and you are locked up in a room with nothing but a typewriter, you will not write tons of book. You will just sleep and cry and beg them to let you out of that room, you might even smash the typewriter. Someone like me, I might have more fun taking it apart and trying to put it together, anything but write a book.

</comment><comment><USER16> Computers are designed for open-ended productivity, where the assumption by the computer operating system designers is that they don't really know what users want to do, but will give them the option anyway.

Computers don't do anything without computer Programmers. It is the user which makes things 'productive', where 'productive' is entirely up to the users' free will to decide to use the computer to do something.

A full-screen app at the checkout window is quite productive. This is still a computer. Its just that the Programmer has done the job of making the user attracted to the device, for the purposes of doing some job. Its the same with massive open-ended cornucopia-style operating systems that give you all the power in the world, and a bundled card game.

Either way, no matter what, its the user which makes productivity occur.

<comment><USER3> I agree that computers are designed for open-ended productivity, but multitasking is simply dead-ended productivity. Because of the way our brains work, it serves no purpose at all, and stifles any kind of serious work. Unless your purpose _is_ to mindlessly surf through a cesspool of information.

<comment><USER16> I don't think I agree that multitasking itself is a dead-end productivity sink. Its necessary, sometimes, to put tasks in the background and let them complete .. where this goes wrong is when its used as a reason to ignore other tasks. That, again, is up to the user.

</comment></comment></comment><comment><USER17> I think the title is slightly hyperbolic. A linux distro gives you almost unlimited possibilities to be productive.

Most of the issues can be solved with:

      - A tiling window manager such as xmonad.
      - Using virtual desktops/separate windows in addition to tabs
      - Discipline.

Hell, have a "work" user and a "fun" user and completely switch profiles. The tools are available. It takes some minor out-of-the-box thinking and discipline.

<comment><USER12> In ratpoison, I have found the following useful for my work flow (terminal window per context with screen inside) - it probably wouldn't be for everyone:

        alias lock definekey top C-f readkey locked
        alias unlock definekey top C-f readkey root
        bind grave lock
        newkmap locked
        definekey locked f meta
        definekey locked a time
        definekey locked grave unlock
        definekey locked backslash readkey music

</comment></comment><comment><USER18> This article pigeonholes you into the idea that long term focus on a single task is the only form of productivity.

Not all jobs are the same. When I'm writing, I block everything out but the writing prompt, occasionally backing out to open up character/location/backstory notes. When I'm writing a bash or python script, I do much the same. Full screen my terminal, open up vi, and don't leave it until I'm done or have other matters to attend to. And the same with when I'm learning something - I have my study materials, and that's it. (Though, I'm weird and still prefer physical books for learning stuff, so I might not have a computer near me at all, despite "pleasure" reading being almost 100% done on my kindle)

But most of the time I'm on the job, I am not sitting there with singular focus on one window. I'm not a professional author or developer. Multitasking - whether or not humans are good at it - makes up a huge portion of my day to day time. I have the general projects I have to work on, but I'm also an escalation point - I have to keep an eye on IRC and see if anyone needs me, or has questions about anything. I have to keep my eye on my email for similar reasons. I have to be signed in to our other office communication systems that other departments use in case they need to get ahold of me, or connect me with a customer. etc etc etc. For me, being productive much of the time precisely means I need to be bouncing my focus all over the place and be juggling multiple things at once.

I get the overall point, and agree with it for many cases, but there are plenty of jobs out there where having a lot of different information feeds presented to you at once is part of how you attain productivity.

</comment><comment><USER10> I would argue that computers are extremely productive, but that they are also multi-functional, and that it would be very sad to remove all the other interesting functionality from a computer until you had the ultimate focus machine.

I do resonate with the idea that some people have a bad interaction with current computers. Just like some people may have biologies that will interact badly, _despite a general array of interventions or strategies_ , in the face of easily accessible drugs like alcohol and cigarettes.

But it would be a shame to remove bars and liquor just because some people cannot control themselves. Some humans will always be led off the summit due to their unseated spirits, but let us not flatten mountains for their sake.

Hopefully there will be an elegant software solution that satisfies everyone ("Google / Siri, focus mode on!"; "Okay, I have suspended distractions until I see evidence that your job is done."), but until then, computers are designed as an open invitation to another world, but maybe you only wanted spreadsheets.

</comment><comment><USER19> Hence why personal email happens on my phone, and work email happens in outlook (running background). Both notify me when I get mail, so "checking my email" is a meaningless action.

Of course, this only works out well when you can prune down the number of emails you get. Unsubscribe from everything you can.

</comment><comment><USER20> One thing this piece highlights for me is the importance of _really learning_ the language you're coding in or the system you're operating. Many take the very practical approach of learning what is needed and no more, using google, SO, and API docs in a web browser to shore up what is missing.

Unfortunately, searching for and then reading something written by a new stranger every 5 minutes is a severe disruption to a focused workflow.

For me, this means learning advanced language features ahead of time (light bedtime reading by Josh Bloch, for example) and keeping a browser open with nothing open except a local copy of the API docs. Another example would be finding one good (physical) book to use as a language reference and keeping it next to the computer.

<comment><USER21> I often wonder how much of the so called 10x effect comes down to fluency.

</comment></comment><comment><USER22> For people on OS X who want to give tiling window managers a try but don't want to switch to Linux/Xmonad: I've been using Amethyst[1] and throughly enjoying it.

It's pretty clearly still early on in its development, but I've been enjoying pretty substantial productivity gains from using it.

[1] [https://github.com/ianyh/Amethyst](https://github.com/ianyh/Amethyst)

</comment><comment><USER23> Eh, Microsoft tried doing the "one thing at a time" approach in Windows 8. It didn't seem to work out for them. One can argue that it was partially due to trying to sandbox their entire software ecosystem at the same time, but in my experience, it was just too jarring when you did actually need to switch tasks or use reference material.

</comment><comment><USER12> _' Notice how there's no API in any OS for "is now a good time to interrupt the user?"'_

PROMPT_COMMAND isn't _exactly_ this, but it can be useful in a similar way.

</comment><comment><USER24> This is great. I love that the author specifically pisses on the ridicule the typewriter guy received, and the attitude engendered by it.

</comment><comment><USER25> Some were, see Canon Cat. Jeff Raskin knew what was up.

Plan9 is built around being productive.

but "it hasn't even got a web browser" won the argument

</comment><comment><USER26> Or, you could exercise some self control.

<comment><USER27> I think the way people focus on 'self control' is interesting - it's always presented as a choice, or a flaw in a person if they don't have it. But is this really the case? I'm not convinced my conscious desires are necessarily powerful enough to overwhelm procedures in my brain that have developed by other means.

Of course there are probably plenty of people for whom being told this kind of thing is itself a stimulus that can help to modify their behaviour, but I worry there's another class of people (or even just people in specific contexts) to whom being told to exercise self control is not much different to telling someone with depression to cheer up. Potentially well meaning, but fundamentally the wrong way to approach things.

(To relate to this specific article, I don't see why it shouldn't be a very reasonable point that popular window managers etc may really not be optimised for productivity - not necessarily for you, but for some significant number of people. It's easy to say 'oh they can just change it then', but maybe most of them will never think about it or even realise it's possible unless the issue becomes publicised more widely.)

<comment><USER2> It's all about environment. I don't know about you, but in college I quickly noticed that if I hung out with the hard workers I would get great grades and do all my work on time, and if I hung out with slackers I would just play video games all day.

Put the unfittest, unhealthiest person you know in a house with crazy healthy and fit people for a few months, and you'll notice drastic changes in their habits and behaviors. The opposite is true - put a healthy person in a house where their roommates eat pizzas and watch TV all the time, and they'll quickly get to their level.

On one hand it's depressing (if all your friends and family follow the same patterns you'll have a hard time breaking out of it), but on the other hand it's empowering: you can modify your environment to encourage healthier habits (if all you have in your fridge is healthy food, you won't be snacking on Cheesy Poofs when you're hungry at 4pm).

<comment><USER28> The sad part is when you have to get a whole new set of friends, even though you like them, to become the person you want to be.

</comment></comment></comment></comment><comment><USER29> Random nit for author: at the end in your list you are missing the actual link.

>> get a productivity tracking tool [link]

<comment><USER30> It's not supposed to be a real link. It triggers a JavaScript modal with a signup form. :-/

</comment></comment><comment><USER31> PCs are great for doing and solving a wide variety of stuff in the modern age. But we are at a point where people who care about usability should start to care more about _limiting_ the utility and convenience of a computer. (Of course the user should decide what should be limited, not some other entity.)

We have managed to come far with regards to assisting people with modern computers. Now computers need to start assisting people more when it comes to discipline and focus. I think unassisted self-discipline is impractical. It might have worked in the past, but not in the Information Age. We aren't lazy and undisciplined if we allow ourselves to rely on the computer for helping us stay focused, like blocking certain websites during work hours - we are simply saving ourselves the energy that we would otherwise have to expend in order to resist all the temptation that a vanilla modern computer throws at us. An expense that a typewriter of yore never had to even worry about. Do we let the computers control us, or do we let the computer help us control ourselves?

You can't control the fact that grocery stores sell candy and sweets at the checkout, but you can control the focus and discipline that your personal computer affords you.

</comment><comment><USER31> Somewhat related: are downloading and storing webpages practical nowadays? The Web is obviously invaluable, but even in this day and age the infrastructure isn't perfectly reliable from the perspective of an end user. And there is a sea of irrelevant information that you can get sucked into.

I was wondering if it would be possible to download (and update at regular intervals) websites which I can then use in my browser even when I'm offline. Something like downloading Wikipedia and perhaps all of Stackoverflow. If that works, I could get a lot of useful information even if I'm working in a location with no Internet/bad Internet connection. Or maybe I'm even sitting in my cubicle and purposely disconnect the Internet to stay more focused! (The problem then would be that I've grown too accustomed to streaming music through Spotify...)</comment>


A service that generates audio versions of articles,built by a 17-year-old - <AUTHOR> https://oyestartups.com/interviews/blogcast <comment><USER2> An earlier discussion: [https://news.ycombinator.com/item?id=19454863](https://news.ycombinator.com/item?id=19454863)

A pretty sensationalistic title, especially when you take into the consideration that this is a "product" that plugs directly into the Google Speech API.</comment>


CCPA 2.0: California Privacy Rights and Enforcement Act (Cprea) - <AUTHOR> https://www.dataprivacymonitor.com/ccpa/just-when-you-thought-it-was-safe-to-go-back-into-the-water-ccpa-2-the-sequel/ <comment><USER2> I say this as someone who's had to do a ton of work to comply with this sort of stuff, and as a California citizen: good. It's going to turn into extra work for me, but I don't care in the least bit. Thank goodness someone's taking a stance.

I'm just _waiting_ until January 1st to get at a company that outright refuses to expunge me from their systems after a major breach.</comment>


List of inventors killed by their own inventions - <AUTHOR> http://en.m.wikipedia.org/wiki/List_of_inventors_killed_by_their_own_inventions

<comment><USER2> Inventing can be dangerous work! Those who push the limits can change the world if things work out - but sometimes things don't, in the worst of ways...</comment>


Buy Local, Act Evil - <AUTHOR> http://www.slate.com/id/2237674/ <comment><USER2> Makes more sense than you realize. I went to a very liberal college (Berkeley) and sometimes it was hard to believe the sense of entitlement among the students.

This was most pronounced in pedestrians: they ignore traffic lights and j-walk at will. If you ever spoke to them about it, they would give you something along the lines of "I am an earth-saving pedestrian, you are an environment- killing driver of a gas guzzler- ergo I _always_ have the right of way.

Not everyone was like that, but a good percentage of people were.

<comment><USER3> You should have pointed out to them that fuel efficiency and pollution from automobile engines are worsened by having to decelerate/accelerate. In other words, if you force someone in a car to slow down (or, heaven forbid, stop) you're tangibly increasing the amount of damage being done to the environment.

<comment><USER4> To which the pedestrian may counter, That is true but I am also disincentivizing drivers from driving in the future. My walking inconveniences their driving. Over time, my community of insubordinate pedestrians may significantly reduce the incentive to drive. It's uncool to drive in Portland Oregon because pedestrians and bicyclists have challenged and won over motorists.

</comment></comment></comment><comment><USER5> A thought, perhaps this like exercise? If you workout for an hour, you'll generally get tired and need to rest. However, if you work out everyday for a week, you'll get stronger and be able to workout longer and harder.

Suppose moral fiber works this way? At first, as you work on your behavior, you can only do so much and simple sacrifices seem like a huge burden. As you continue, you conscience becomes stronger and doing 'the right thing' becomes more the norm and former behavior seems more extreme.

\---

Also possible, that 'virtuous consumption' is pursued for social status and not virtue, and so people who engage in it for this reason are entitled jerks as a matter of course.

<comment><USER3> It's worth noting that studies have shown that applying "willpower" works exactly that way. Specifically, making conscious decisions to override subconscious impulses depletes cognitive resources in a measurable way, with some evidence that doing so repeatedly increases the amount of willpower reserves in the long-term.

As an aside, I wouldn't assume that people are "entitled jerks" as such--even if it's all just social status signalling, they're almost certainly not consciously aware of it.

<comment><USER5> I think we might have different understandings of what makes one an 'entitled jerk.' Aristotle believed that people who did wrong but believed that what they were doing was right, were ethically worse than those that knew what they were doing was wrong. He argued that to confuse vice for virtue signaled more fundamental problems than simply the inclination to give into temptation. With this understanding, not being aware that you are an 'entitled jerk' simply makes you _more_ of a jerk.

Note that I'm _not_ implying that every who buys organic produce is an 'entitled jerk.' People and their motives have to be judged on an individual basis.

<comment><USER3> I think you, like Aristotle, wildly overestimate conscious awareness.

I'm not talking about doing wrong and believing it to be right, or even doing something without realizing it was wrong. I'm talking about _just doing something_ without consciously knowing _why you did it at all_. The primary role of the conscious mind is not to make choices, but to rationalize after the fact the actions undertaken at the (largely amoral) subconscious's command. Expecting someone to always know why they made a decision is an _impossibly_ high standard.

The general inability to correctly interpret one's own motivations is discussed here: <http://en.wikipedia.org/wiki/Introspection_illusion> Note that this is not a cognitive defect, but the _standard state of affairs_. See also <http://en.wikipedia.org/wiki/Confabulation> and <http://en.wikipedia.org/wiki/Anosognosia> for when it goes more wrong than normal. A few examples:

Implicit Association Tests may be more accurate than conscious introspection in identifying prejudice. <http://en.wikipedia.org/wiki/Implicit_Association_Test>

Grandmothers are hard-wired to be biased against some grandchildren vs. others. <http://news.ycombinator.com/item?id=941739>

More directly relevant to this article, skim some of the posts on social signalling at <http://www.overcomingbias.com/tag/signaling> and realize that, while the author uses intentional language of decisions and preferences, most of what he's talking about are the sort of choices heavily subject to conscious delusion.

To summarize, accurate knowledge of one's own decision-making process is the exception, not the rule, and if questioned people are more likely to provide an ad-hoc rationalization based on inaccurate self-perception than anything resembling the actual reasons, and believe whole-heartedly that the rationalization is correct. To summarize the summary, nobody's generally aware of why they're doing whatever it is they're doing. To summarize the summary of the summary, being a person is a problem. [0]

[0] With apologies to D. Adams.

<comment><USER5> I have no idea what the any of that has to do with the discussion at hand. My point is that it's what you do and how you behave that makes you an entitled jerk or not, not whether you have introspection or not.

<comment><USER3> My point is that you're calling people jerks for something they probably have very little control over and are helplessly unaware of. If you're walking behind someone with a broken leg, do you complain that they should be walking faster?

Perhaps you don't intend the term "jerk" to carry overtones of moral responsibility or social judgement, but that's a fairly common connotation.

<comment><USER5> You're implying nobody has any real control over what their actions and thereby assigning killers and rocks about the same level moral culpability. This may be rational if you accept a mechanist understanding of human behavior (as you explicated in your previous post) but if that's the case, it becomes ridiculous to argue about 'morality' in general. Moral judgment becomes just a tool to modify undesirable behavior and indignation in this case is perfectly 'justified.'

Put another way, yelling at a cripple is not likely to give them their health back, but guilting an insensitive 'jerk' will (likely) cause them to change their behavior to something more socially acceptable.

<comment><USER3> _You're implying nobody has any real control over what their actions and thereby assigning killers and rocks about the same level moral culpability._

No, I'm just saying that the default state is to have neither control nor awareness of decision-making. Actual conscious decision-making is possible with effort and, to the extent that morality is a well-defined concept, it applies only to conscious minds.

 _guilting an insensitive 'jerk' will (likely) cause them to change their behavior to something more socially acceptable._

Not necessarily, if their reasons for behaving that way are unknown to them. More likely their mind will confabulate something sensible-sounding that fits their pre-existing world-view and (unless they already hold a positive disposition toward you) they'll just write _you_ off as being a jerk, after all, you're attacking them for something they had a perfectly valid reason to do... they think.

<comment><USER5> _No, I'm just saying that the default state is to have neither control nor awareness of decision-making. Actual conscious decision-making is possible with effort and, to the extent that morality is a well-defined concept, it applies only to conscious minds._

In which case they are culpable for not forming good habits (and we are back at Aristotle.) You're not going to get very far telling me that people are not responsible for acting like jerks because either you deny human moral choice altogether, or at some level they are.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6>
        But new research by Nina Mazar and Chen-Bo Zhong at the
        University of Toronto levels an even graver charge: that
        virtuous shopping can actually lead to immoral behavior.
        In their study (described in a paper now in press at
        Psychological Science), subjects who made simulated
        eco-friendly purchases ended up less likely to exhibit
        altruism in a laboratory game and more likely to cheat
        and steal.

The conclusion the story draws from the study is really more of a correlation than a causation. It's just as possible that the people who buy virtuously are the type of people who cheat and are stingy rather than buying virtuously causing the "evil" behaviour. The linked study actually doesn't seem to imply causation so Slate is obviously spicing up the story a little.

<comment><USER7> It was random assignment/controlled:

> In an experiment, participants were randomly assigned to select items they > wanted to buy in one of two online stores. One store sold predominantly > green products, the other mostly conventional items.

That said, interesting point by you. I'd guess the causation can run both ways - doing superficial good gives you the moral license they were talking about, but also maybe bad people want to compensate and wash their sins away with some public good behavior.

</comment></comment><comment><USER8> I tend to think that a lot of human activity comes down to seeking status and exercising status. "Buy local" is seeking status and "act evil" is exercising status. I'm sure it's more complicated that than, but I think this is a good framework for getting a rough draft of understanding the behavior.

</comment><comment><USER9> Makes perfect sense, really, if evil is just the most _local_ scope of self- interest…</comment>


A curated list of awesome .NET Performance resources - <AUTHOR> https://github.com/adamsitnik/awesome-dot-net-performance <comment><USER2> Usually, when .net is really slow, the cause has been that I'm using a Microsoft library 'wrong'. The solution has been to learn how that library works internally, and work around it, rather than runtime level optimizations.

Although this is all good stuff to know, if you are here trying to fix your applications performance problem, this is probably the wrong tree to bark up.

<comment><USER3> Are you talking about things like using List<T>.Contains() instead of HashSet<T>.Contains()? I've been doing .net for some time, and your comment is not consistent with my experience.

<comment><USER4> Programming is a very varied field. Sometimes people forget that their coding experience can be totally different than anothers.

Consider someone trying to do a 3D game in C# vs a web application back end. The kind of performance pitfalls they run into will have no similarity.

<comment><USER3> That's totally true. For instance, I (almost) never think about garbage collection. For some kinds of development, I suppose not accounting for it can cause a complete failure.

</comment></comment></comment></comment><comment><USER5> If you're looking to improve performance, the best thing you can do is learn how to use Apache JMeter. Run it locally against your solution, with VS running the performance profiler (which is under the Debug menu). This will give you a nice click through graphical break down showing you which parts of your code are taking the longest.

<comment><USER5> The other half of this is looking sql performance. Not being a DBA I'm less proficient in this area and can't recommend a good tool :(

<comment><USER6> MS SQL Server for instance comes with its own profiler. You can look for slow queries, then try to understand why by getting the query execution plan. You can alternatively also look for queries with a high standard deviation, which can hint of queries that get slower as there are more rows associated with a user.

Once you have the execution plan, you can either optimize the query, optimize the schema (add indices), or simply optimize the application (e.g: narrow the scope of the query, reduce call count). That however, won't allow you to horizontally scale.

The only realistic way to horizontally scale is sharding. Replication will slow down your writes as more machines are added and that simply does not scale. Using the same database for everything and everyone is a lousy way to go. Eventually you will need to keep things on different machines at some point.

Then, don't put large blobs into a database and store just the blob IDs in your database. Use another data store for that. Analytics, logging, etc doesn't belong into an OLTP database. Use another database for that not your OLTP one.

<comment><USER5> I tried analyzing execution plans for a fairly large stored procedure. I only needed to do it a few times. Everytime resulting in the DBA informing me that they've already analyzed that before and it was understandable why I couldn't make any real headway.

Side note I found a free pdf for analyzing execution plans in this stackoverflow answer (toward the bottom): [http://stackoverflow.com/a/7359705/834579](http://stackoverflow.com/a/7359705/834579)

Would you consider logging user actions, for reporting in website, as something that should be stored else where? In one case I can think of the table had about 7 million records, but nobody seemed concerned about it.

<comment><USER6> If it's just a log then you can "merge on write" (nosql) instead of "merge on read" (join),

</comment></comment></comment></comment></comment><comment><USER7> I had a quick look at that page but it mostly seems to refer to 'general' resources. I somewhat expected a guide to something breaking like hiphop was for PHP. Or maybe a CLR-machine-bridge or something.

<comment><USER8> On a only tangentially related note, I was surprised at just how little the big data/machine learning/data science fields intersect with the .NET ecosystem.

<comment><USER9> I don't know how many .NET developers do what I do, but I think a lot of us are doing Enterprise development, typically working with huge databases that have been around for decades. My company does a lot of work with DB2 on IBMi servers, replacing old green-screen applications with new WPF and web applications. It's not the big data you're taking about, but it's the old- school version of big data.

<comment><USER10> From what I hear around, most of the big data consulting shops are actually using less data than " old-school version of big data.".</comment></comment></comment></comment>


ZeppelinOS, a platform for smart contract applications in Ethereum - <AUTHOR> https://blog.zeppelinos.org/announcing-the-launch-of-zeppelinos/ <comment><USER2> The whitepaper is probably the most HN-friendly overview of what ZeppelinOS is:

[https://docs.zeppelinos.org/docs/whitepaper.html](https://docs.zeppelinos.org/docs/whitepaper.html)

As an aside, it's somewhat ridiculous how every blockchain-anything project feels the need to have a Serious And Highly Credible CS Whitepaper — and the way to achieve this is to typeset your marketing talk in Computer Modern and add a list of pointless references at the end. (The ZeppelinOS whitepaper has nine references of which two point to Zeppelin itself and three are links to heroku.com, ifttt.com and ethereum.org, just in case your Google is out of order.)

Computer Modern is not a good font by any measure, but it seems to have amazing signalling powers even surpassing Comic Sans.

<comment><USER3> Blame the investors. They have a list of things they look for, chief among them being "the whitepaper"

<comment><USER2> It does appear to be a cargo cult. Blockchain investors want to see something that looks like the Bitcoin whitepaper, even though they can't understand a word and the mock-scientific format doesn't make a lot of sense for products being proposed by businesses.

I guess fools and their money will be eventually parted, whether it's through ICOs, Bitcoin price manipulation, or whatever is the scam _du jour_ in cryptocurrency-land.

</comment></comment></comment><comment><USER4> It seems to be mostly an excuse for yet another initial coin offering.

This is another scheme for changing contracts retroactively to "fix bugs". Who can make changes is regulated by what seems to be a proof of stake system. What a contract is for change purposes is ill-defined. The authors seem to think of a contract as a standard form, and changing that standard form changes it for all existing users of that form. A real contract is a text plus the agreement of the parties. That doesn't seem to have been thought through.

There's a lot of "trust us" stuff in there. See 5.5, "Trusted Oracles", and 6.4, "Marketplace Curation". There's a bigger problem - this is supposed to be for contracts in Etherium, but control rests with the holders of the proposed "ZED" tokens.

</comment><comment><AUTHOR> If you want to know more details, you can watch the video from ETHBuenosAires: [https://news.ycombinator.com/item?id=17241136](https://news.ycombinator.com/item?id=17241136)

</comment><comment><USER5> A platform for making things on a platform made for creating platforms.

I'm sure (semi-sarcastically) that you'll surely make a lot of money.

<comment><USER6> They launch "ZEP token" and have a white paper. They will surely be a success.

</comment></comment><comment><USER7> Why is this here? Why does it contain a picture of seventeen people standing in the dark? What are any of us supposed to do with this information?

<comment><USER8> Impressive you counted how many in the dark. There is also a total of 1 person in the light. He is probably making an announcement. It's a announcement post.

<comment><USER7> They're so far down the hype hole that they've completely failed to make a business case for their product. This isn't an announcement of anything at all, as far as I can tell, especially since all their stuff 'went live' at some indeterminate point in the past.

I repeat: what are we supposed to do with this information? Does anybody know?

<comment><USER9> "Today we're excited to announce the first mainnet release of ZeppelinOS" ...sounds like the contract just went live on mainnet

This is a library that allows "smart contracts that can be easily upgraded over time." If this is applicable to you, what's difficult to understand?

If this is NOT applicable to you, why do you care? Do you criticize other software libraries that you don't understand, when they're unrelated to blockchain technology?

</comment></comment></comment></comment><comment><USER10> Zeppelin is actually one of the more popular libraries; many contracts use their SafeMath and Token libs. It may seem abstract to people unfamiliar with the space but their libraries are indeed useful, they are basically the recommended stdlib for Solidity. The need for a token still isn't clear though.

</comment><comment><USER11> Is it recommended to editorialized the titles in HN? I posted this same URL a few hours earlier: [https://news.ycombinator.com/item?id=17162884](https://news.ycombinator.com/item?id=17162884) but it didn't work audience-wise.

BTW, it is interesting to read the third party smart contract audit since Open Zeppelin are one of the top auditors: [https://medium.com/nomic-labs- blog/zeppelinos-smart-contract...](https://medium.com/nomic-labs- blog/zeppelinos-smart-contracts-audit-dc772cfae224)

</comment><comment><USER12> A pity it's not actually a system for operating Zeppelins.

Maybe they should team up with UrbanAirship.com and build real urban airships:

[https://en.wikipedia.org/wiki/File:Santos- Dumont_flight_arou...](https://en.wikipedia.org/wiki/File:Santos- Dumont_flight_around_the_Eiffel_Tower.jpg)</comment>