Python 3 Is Winning Library Developer Support - <AUTHOR> https://blogs.msdn.microsoft.com/pythonengineering/2016/03/08/python-3-is-winning/ <comment><USER2> Windows could be the first platform to ship Python3 without having ever shipped python2. Total clean slate, perfect opportunity, they could sell it as MS "aligning with the cloud" and offer something special -- if I could start and provision a Windows cloud instance from any python3 repl without having to bother with devops tool (Vagrant, Packer, Ansible and whatnot), I would switch tomorrow.

<comment><USER3> Better handling of Unicode is inevitably how Python3 kills Python2. Also it's a good reason to have not supported Python2.

Aside from Unicode, I don't like some of the other changes. The overkill on the "one obvious way" bugs me in particular, e.g. the removal of reduce as a core function.

The existence of "one obvious way" isn't set in stone. It depends on context, and it's like the language developers didn't realize that when making their decision.

<comment><USER4> Moving reduce into functools was more than justified: almost nobody liked it, most people disliked it and if you really want to use if for whatever reason an import is hardly difficult. The decision was made _because_ of the context, not in disregard to it.

<comment><USER5> Who disliked it? I used it all the time. Was there any survey or similar?

<comment><USER6> Guido disliked it. And he's the BDFL.

<comment><USER4> That's not quite a fair reduction; if it was just down to Guido map would be displaced too, or even gone.

</comment></comment></comment></comment></comment></comment><comment><USER7> It still blows my mind how badly the Python and Perl developers misunderstood their languages' roles. Many developers viewed them as Unix infrastructure like C, sed, and awk: a stable foundation upon which to build long-lasting programs. But the core devs got bored and decided to either break most things for very minor improvements (Python), or break everything to provide all things to all people (Perl).

The Perl folks eventually admitted that version 6 was a separate language; we'll see how that turns out. The Python ones can't make the same move, since version 3 offers no major benefits/changes over version 2, so they simply have to continue the beatings until... everyone moves to version 3. What a colossal waste of time!

<comment><USER8> > But the core devs got bored and decided to either break most things for very > minor improvements

I think asyncio in python3.4 and async/await keywords in python3.5 is a gamechanger. It's hardly a minor improvement

<comment><USER9> Well 1) it took us 5 years to get those features, 3.0 just broke shit and ran slowly for no discernible benefit to the end user.

And 2) I know of no reason those features couldn't be implemented in Python2 other than "we don't want to, because otherwise few people will _ever_ upgrade to 3"

<comment><USER10> Was upgrading even recommended before 3.3?

<comment><USER9> That doesn't actually help the "py3k was a good idea" argument. 3.3 came out 4 years after 3.0. 4 years to become a reasonable choice is kind of pathetic, especially given the fact that python2 was put into bugfix-only mode 2 years after the 3.0 release

</comment></comment></comment></comment></comment><comment><USER11> Is anybody surprised by this? Everybody knew the transition was going to take a long time, and that it would be a gradual process. It may be that it's actually been even slower and more gradual than people expected, but by and large everything seems to be proceeding nicely.

<comment><USER12> I don't think anyone expected a lengthy transition at the onset of the version 3 release. It's taken a long time and the 2.X releases that have come along since have helped make the transition easier by showing developers some of the benefits from version 3 releases.

<comment><USER13> I was on the "Python 3000" mailing list while it was being planned, and the prevailing attitude seemed to be "it'll probably take 5 years before the community moves to Python 3". (That's paraphrased and not a direct quote, though I saw people say that sort of thing almost word for word a few times.)

This was optimistic, but at least we see that the community is indeed gradually moving to Python 3, even if it's taking a few more years.

<comment><AUTHOR> Technically the goal was a majority of new projects started using Python 3 in 5 years. Regardless, everyone knew it would take several years to reach a point like this.

<comment><USER14> I switched from Perl to Python at version 3.4, and while it might be popular for people already invested in Python 2 to downplay the syntactic improvements, they were a big deal in convincing me to switch to Python as my go-to infrastructure language.

</comment></comment></comment></comment></comment><comment><USER15> Ubuntu 16.04 LTS is planned to have only python3 installed by default

<comment> iso-8859-1 here is the bug [https://blueprints.launchpad.net/ubuntu/+spec/foundations-x-...](https://blueprints.launchpad.net/ubuntu/+spec/foundations- x-python3-only)

</comment></comment><comment><USER16> Well, I'd be happier if Pypy 3 were faster. As it is, I can get pretty decent speedups with 4.0 (2.7.x) but not for python3 code in my use cases...

<comment><USER17> If Python Software Foundation would create a serious initiative to double (or more) the speed of cPython, specifically for Python 3.5+, I'd donate at least $100, and I'm sure there are a vast many other individuals (and companies) that would donate as well. In the meantime, my Python-related donations go to Django.

I think that speed can't be treated like a niche feature (e.g., via PyPy, Cython, etc.) any longer; not with tools like Go out there.

<comment><USER18> I wonder why Dropbox is focusing Pyston ([https://github.com/dropbox/pyston](https://github.com/dropbox/pyston)) only on 2.7 atm. With PyPy supporting 2.7 very well, it'd seem a greater benefit to the community to target 3.

That said, I'm sure there are specific things Dropbox needs to solve for 2.7 which PyPy doesn't do.

<comment><USER19> Pyston has a goal of full C-API compatibility, unlike PyPy. Dropbox are almost certainly not trying to create the greatest benefit for the community, but rather the greatest benefit for themselves, and they have huge amounts of Python 2 code in production. As such, Python 2.7 with full C-API compatibility makes sense for them to focus on.

<comment><USER17> Nothing wrong with self interest, especially when it directly benefits the community in any way, big or small.

</comment></comment></comment></comment></comment><comment><USER20> Interesting. Whilst it is slightly embarrassing how long it's taken, recently I feel that Python 3 conversion is gaining critical mass, and I now hope / expect these adoption lines to go non-linear in the coming year or so...

</comment><comment><USER21> Who is this Microsoft? Loving this new community involvement.

</comment><comment><USER22> The 360 angle: [http://py3readiness.org/](http://py3readiness.org/)

<comment><USER23> fabric is that lone holdout that went against all conventional wisdom and decided on a complete rewrite when a small few simple changes would have been enough. fabric's developer has made promises over the last few years for their rewrite to be beta ready and it's nowhere yet.

I say that with all the appreciation in the world for the work that went into original fabric, which is a wonderful tool. Criticism may be harsh but it's not inaccurate. What's amazing is that the forks to bring fabric to python3 haven't really caught on and I think that's partly because fabric is something you do not use inside your application. It's used in deploy and configuration scripts. It being python 2 hasn't been a problem for most people since most distros and platforms ship with python 2 support. It's just that the people who want to stop writing python 2 for everything including their deploy scripts who are the most vocal and it's not a big enough group.

The fabric dev basically has until platforms start to abandon python 2, and who knows when that will be, so maybe they have forever for their great rewrite.

<comment><USER24> Fabric is superseded by Invoke ([https://github.com/pyinvoke/invoke](https://github.com/pyinvoke/invoke)), from the same developer. So other than that . . .

<comment><USER23> > Warning...While fully usable, Invoke is still pre-1.0 software and has no > backwards compatibility guarantees until the 1.0 release occurs! Please make > sure to read the changelog carefully anytime you upgrade!

And if I recall, it's only half of fabric's feature set.

</comment></comment></comment></comment><comment><USER25> To add to this article, here is the Python 3 Wall of Superpowers. It is a list of the most popular packages on PyPI, and shows if they support Python 3.

[https://python3wos.appspot.com/](https://python3wos.appspot.com/)

</comment><comment><USER26> meh, there isn't (still) any reason to really jump onboard python 3, 2.7 is _good enough_ for me

the only real selling point is that strings are unicode by default. Unless I'm missing something python 3 just doesn't really seem to be worth the effort, yet.

Can someone enlighten me?

<comment><USER27> A lot of people still program in Fortran 77.

There's no reason you can't be part of the equivalent population for Python.

<comment><USER28> _A lot of people still program in Fortran 77_

Very few people still program in 77 and only if they really have to. Everybody who has a choice has moved on to at least Fortran 90 and you won't find anybody seriously arguing that Fortran 90 isn't a massive improvement over 77.

<comment><USER27> They weren't saying that in 1993. At least, not as I recall from the time. It took a while for that consensus to build.

I believe that many of not most Python 3.5 users consider it a massive improvement over Python 2.7. My examples come from the core developers, so is highly suspect to bias.

<comment><USER28> I recently decided to make an effort and use python 3.5 for a couple of new projects and I've so far found zero things that I consider a practical improvement over doing the same thing in 2.7. Now it's obviously not worse than 2.7, but saying that the new thing is just not worse than the old thing is hardly a great selling point.

<comment><USER29> Oh come on. The language level async support in 3.5 is reason enough to switch imo, not to mention type hinting.

<comment><USER28> Language level async will probably be a reason to switch once there is a bit more support for it and I have a project that really needs it. Same with type hinting, once the tools and libraries are there it might be useful. But as of today and the work I do (mainly data analysis and modelling making heavy use of numpy/scipy and friends) I have yet to find anything in 3.5 that in itself would be a reason for me to switch.

</comment></comment></comment></comment></comment></comment></comment><comment><USER30> It will have taken 8 years for Python3 supporting __uploads __to have outpaced Python2. If that 's not lack of enthusiasm, I don't know what is. This is really a pitiful display.

It's not a surprise though. This all stems back to the original reasons why Python3 was a bad idea. Some things to keep in mind regarding Python2/3.

\- Python3 is pure technical churn, nothing there is true technical innovation. They simply mixed the pot to their liking. Unicode is supported in Python2.

\- It is slower than Python2 for most people. Though there are crafty arguments out there that it's a wash. It's really not.

\- CPython3 was adopted to benefit the core development team, to make it easier to maintain. Not the community on the whole. The community has paid the price by doing a lot of unnecessary ports.

\- CPython3 was deliberately created to not support Python2 code even though modern VMs can easily support this. The CLR is a great example. They did it this way for their good, not for the community.

\- In most things in life, you'd always want to be using the latest supported version. That isn't the case here. It may still effectively "fail" with a permanent split. This migration is not even close to being completely in the books and won't be for another 10 to 20 years. So why punish yourself moving before it's in your best interests. The syntactic differences are so slight, it's extremely easy to switch to Python3 if it ever truly reaches Python's momentum (this article does not convey momentum holistically, that includes package downloads and the majority of employers using 3).

\- Related to the bullet above, almost all job opportunities are still Python2.

\- The ecosystem can't keep up, PyPy is still only production-ready on Python2. Python 3.2 support is essentially experimental by comparison.

\- Many changes and additions are being made and they aren't being vetted by the larger community. No significant userbase for Python3 has created this situation. Mistakes are being made and no one is around to speak up because the core devs don't care.

\- Python3 is feature-soup. There is now a new 4th and possibly 5th string formatting method in 3.6 incoming. Really jumped the shark on that one. See Mark Lutz's great insight on this topic and more.[0]

\- Downloads are still dramatically in Python2's favor, to this day. Judging from downloads, there's a ~10% community userate of Python3.

\- The bullet above means that the Python3 packages you do use are far less vetted and tested than the Python2 equivalent.

\- CPython3 was slopped together. The initial 3.0 release was mostly pure Python in effort to get it out the door. Many parts of the standard library that are written in C are slower than the modules used in the CPython 2.7 counterpart, to this day. It was not and is not being tested. The users are not there to test it either.

\- Community trust has been broken, I'm not sure anyone really believes another big break isn't incoming regardless of statements to the contrary. The core dev team is going to do what they want and you're going to like it, period.

\- Python3 zealots have done a lot of harm by not accepting valid criticism, and aggressively attacking those who do what is in their best interests (which we should all do, this should not just apply to the CPython core devs), and continue using Python2 all these years. Watch for downvotes instead of countering my points.

\- The 2020 date is a just a big political stunt and scare tactic. Code will continue working after 2020. As noted, it works better in CPython2 and PyPy today, and likely will in 2021 as well.

\- Python3 lives off of and is pushed by PSF propaganda. No way around it as there is no innovation involved. Which is what should determine if new technologies are adopted or not.

\- Usually when people make mistakes, such as Python3's existence, or the inability to mix Python2 and 3 code in the same VM- they go back and fix them. That has not happened with CPython3.

\- Even back in 2014 projects such as Pyston from GvR's employer (Dropbox), were Python(2)-only. It's still Python2 today, which says it all.

All that said about this trainwreck, I'm in favor of getting back to a single major version of Python for the community. I'm using 3.5 for a single project myself but I will still plainly state the truth about the Python3 transition. It was a bad idea, for all the wrong reasons to benefit a rogue band of developers who believe since you aren't paying them- you as a community do not matter and should shutup and get to porting.

I love Python but will eagerly embrace Pythonic language alternatives as more are released. In particular, I'd love to see a Pythonic Erlang variety similar to Elixir. Or better yet, just a concise, minimum featured version of Python without all the extra. Picking 1 string formatting method would suffice, the basics but done well, stable in feature-set like Go and compiled. Something similar to a Pythonic Lua would suit me and would be the ideal case for a Python-reboot. Making it a subset of Python2 would make a lot of sense.

Lesson learned and bottom line is that we should overthrow all BDFLs.

[0][http://learning-python.com/books/python- changes-2014-plus.ht...](http://learning-python.com/books/python- changes-2014-plus.html)

<comment><USER31> Would you consider putting your ideas for Python in my Python 4 project on github? [https://github.com/rjurney/python4](https://github.com/rjurney/python4)

<comment><USER30> \- Call it PythonCore instead of Python4. Avoids any possible trademark issues if it does take off, and the semblance between "four" and "core" rings nicely.

\- PythonCore should be just what we the people need, rather than feature soup with community promise of compatibility like Go. Python2 subset, removing some extraneous features and removing the std lib.

\- One could start with CPython 2.7.11 and disable all the keyword features that weren't wanted or strictly needed. I would go about this by asking the guys behind PyCoders Weekly would send out a survey asking Python developers a series of questions on what to keep. Combined with surveying a few recognized Python experts (not Guido). I think at this point in Python history, we know what we definitely do and do not need.

\- As well, ditching the standard library and putting it all as strictly package imports. Forcing it all to compete with other solutions on equal footing but still being there for reference. That would be the basis of the new 'PythonCore' and give people something they could rely on as a stable, unchanging featureset for years. New features would be imported, extremely rarely added to the core.

\- This would be declared as a continuation of Python2. Though clearly not supporting all existing code, it may require little more than changing your string formatting in the end.

\- After this, two main efforts would be involved. Initially ditching the CPython 2.7.11 base implementation for a compiled alternative. Nuitka would be an interesting solution to look really hard at, PythonCore may be the language that Nuitka has been waiting for to really shine. This shouldn't take long to get up and running considering Nuitka is already working and should compile a strict Python2 subset just as well as it does the entire language today.

\- The second and I think most important, and time consuming effort would be in duplicating the success of NPM for PythonCore. This would make or break it.

\- You could do the same for a Python3 subset but I think what many, many folks (and businesses) want is some option to continue on Python2. This would be a way forward that could be supported relatively easily as the supported core would always remain small. But it still retains the POSIX oriented nature that we all love about Python rather than the Microsoft/JVM/CLR unicode by default decision with Python3. I like many Python2 users, stick to retro OSes without a text / binary distinction. If it was good enough for Kernigan and Richie, it was good enough for Joe Ossanna, it was good enough for Robert Pike. Well, it's good enough for me.

\- In sum, influences would be Lua, Nuitka, CPython2.7, NPM.

</comment></comment></comment><comment><USER32> Plots using second since epoch as the x axis... nope. (I mean, if I do it then it is for internal plots only and still I am feeling lazy.)

</comment><comment><USER33> I really like the showing-his-work, via ipython/jupyter notebooks. Unfortunately it's behind an azureml login so it can't be directly linked.

<comment><USER34> If you want to link to the Jupyter Notebook, you should be able to share the notebook in the gallery. [http://aka.ms/py3winningnb](http://aka.ms/py3winningnb) or, if you want a less nice url, [https://gallery.cortanaanalytics.com/Notebook/95a0e835f88b43...](https://gallery.cortanaanalytics.com/Notebook/95a0e835f88b439ab0537c7b8e6daac5)

</comment></comment><comment><USER35> I program in python 2 because that's where /usr/bin/python takes me to. ;-)

<comment><USER36> Believe it or not, you don't even have to change your workflow to try out python 3. If you're on a Red Hat/Ubuntu-based system just add a '3' to everything (python3, pip3, pdb3, etc)

edit: added relevant platforms

<comment><USER35> I've been bitten by Poe's Law[1], despite the winky. Blast!

Edit: Really though, it's a problem of apathy. I'm supposed to _care_ about python 3? Why? When I type "python" on the command line (and everyone else that doesn't care, which is most every "filthy casual", right?), I--and everyone else with a default install of Ubuntu and CentOS/RedHat--gets python 2. Fix that, and overnight you'll have massive python 3 uptake.

In fact, you're suggesting I set myself up to be stuck with the problem Maven is in, which is that everyone has an "m2" repository even though they're onto Maven 3. I'm supposed to hardcode "3" into everything? C'mon.

[1] [https://en.wikipedia.org/wiki/Poe's_law](https://en.wikipedia.org/wiki/Poe's_law)

<comment><AUTHOR> I believe both Ubuntu and Fedora have/are dropping Python 2 from the default install this year.

</comment></comment></comment></comment><comment><USER37> Sadly I'm stuck using Python 2.7 until Amazon Lambda supports Python 3.

<comment><USER38> Yes, just found this out today. Rather annoying! I've logged a ticket about it for what it's worth ... even cited this article.

</comment></comment><comment><USER39> Python 3 : Python 2 :: IPv6 : IPv4

<comment><USER40> IPv6 came out 10 years before PY3, though I have more hope for PY3.

</comment></comment><comment><USER41> And No love for Ruby. Sigh

/Rant

</comment><comment><USER42> FTA: "In 3 months, Python 3 will be better supported than Python 2."

This just seems to validate my choice to stick with Python 2 up until now.

<comment><USER5> If you're an application developer rather than a library developer then yeah that may well have been the correct decision. But if you intend to maintain your application for more than 3 months then it's time to switch to Python 3 now.

<comment><USER42> _" But if you intend to maintain your application for more than 3 months then it's time to switch to Python 3 now."_

No disagreement there. But I'm surprised at the downvotes I've received.

</comment></comment></comment><comment><USER31> I recently started Python 4, which will be backwards compatible with 2.7. Submit your ideas as issues today!

[https://github.com/rjurney/python4](https://github.com/rjurney/python4)

<comment><USER43> Beware that Python is a trademarked name.

I honestly can't tell if you are joking or think that using "Python 4" as the name of such a thing is a good idea (no way will the Python Software Foundation let you use their trademark, so if you are serious, you are just setting yourself up for hassles).

<comment><USER31> Thanks for the feedback, I'll look into it.

I think Python 4 is a good name because most Python users feel that Python 3 was a misstep, and never plan to move to Python 3.

<comment><USER40> Yeah, "Python 4" sounds _less_ compatible with 2.7, not _more_ compatible. I like the "TwentyEight" name, or how about "Two4Evr". :)</comment></comment></comment></comment>


Google Field Trip deconstructed - <AUTHOR> http://www.theatlantic.com/technology/archive/2012/10/after-google-glass-the-content-of-our-augmented-reality-future/264059/#

<comment><AUTHOR> I work on this team - any questions would be gladly answered.</comment>


The Secret to Making People Want What You Got - <AUTHOR> https://medium.com/editors-picks/8584fd74c5bd

<comment><USER2> What am I missing? I'm not really seeing a difference between Mailbox/Tempo's scarcity vs. that of Facebook. How is the technical limitation of "load testing" any different than Zuck telling people he wanted to maintain a certain level of service? Isn't the message "this tool is only for Harvard kids" just as snooty and likely a turnoff to potential users?</comment>


In defense of Davos, or at least its cosmopolitanism - <AUTHOR> http://marginalrevolution.com/marginalrevolution/2016/07/in-defense-of-davos.html <comment><USER2> >I suspect either the elites or the explorers of today are better when it comes to understanding differing perspectives of gender, neurology, sexuality, race, age (should you beat your kids?), and a variety of other dimensions

Sorry, but I don't find this to be compelling. "Elites of today" are also terrible long-term planners when you compare to most human history.

If your innovation helps one generation and destroys all others, you're not that prominent or benevolent.

</comment><comment><USER3> If Davos vanished, would anything change? Help me understand how to see it as more than elitist, pseudointellectual BS.

<comment><USER4> It would be okay I guess, we would still have Bilderberg meetings.

</comment></comment><comment><USER5> _> It seems unfair to compare Davos sessions to some rather robust, historically important, top-of-the-line explorers. Virtually all sessions are boring, including or maybe even especially in the 19th or early 20th centuries._

So is his argument that _Davos is unimportant_ or is he waffling?

</comment><comment><USER6> The endless quest for self-importance continues I see.</comment>


Porting an OpenGL application to the web - <AUTHOR> http://ehsanakhgari.org/blog/2012-01-25/porting-opengl-application-web

<comment><USER2> I got around 60fps, very good considering I get the same from kivy.

Interesting concept, now if we could port SDL somehow...

</comment><comment><USER3> I get an antivurus warning on the demo page:

HTML/Crypted.Gen</comment>


How a Liberian "newspaper" reaches thousands, with just one copy - <AUTHOR> http://www.monocle.com/sections/culture/Web-Articles/The-Daily-Talk/

<comment><USER2> The aspect I found most interesting - and this was mentioned in passing only - was that there was a second system for displaying what the issues of the day were in a quick fashion. When there was mention of the international community, the UN helmet went up on the roof. When there was something about fuel prices, a bottle of (what was meant to look like) fuel was up there.

The cleverness, I think, lies in how dead-simple symbols that people already associate were used. Doesn't matter if you've just come to Monrovia and don't know what the Daily Talk is - if you saw a UN helmet on the building, you'd think that there was something associated with the UN going on there. If that interested you, you'd walk over and see what it was (in this case, the news) - if not, you'd continue on your way. It almost reminds me of the home-screen notifications on BlackBerrys/iPhones - a simple sentinel indicating the presence of more related information - but much better executed, since the vocabulary used isn't platform-specific (i.e. the Daily Talk didn't make up its own signals to use, they used ones that people already associated).

</comment><comment><USER3> An interesting, related, thing I saw while I lived in China:

<http://www.flickr.com/photos/fortes/215857055/>

<http://www.flickr.com/photos/fortes/215856981/>

Many bus stops and other public areas put a daily newspaper up on display, and people stop and read it.

<comment><USER4> In former Soviet Union, they did the same thing, put newspapers on displays.

Not sure if they still do the same in Russia these days.

</comment></comment><comment><USER5> That could be an interesting business model.

Just mount a big screen on a building and an internet connection so that they can get updated around the clock and then post a few video ads there and there.

<comment><USER2> That's been around for a while - think of the video billboards of Times Square, or any of the ones that inhabit the financial districts of major (Western) cities.

The problems come, I would guess, from a very high start-up cost. Not only do you need the side of a building in a busy location where people can stand, but you need a big-ass screen that is readable and reliable. You may also have trouble with determining advertising numbers - you don't even have the "subscriber base" numbers that print media has; all you've got is the average number of people that walk by, times some small fraction who, on average, watch the thing.

</comment></comment><comment><USER6> Odd - doesn't that guy have Tux on a shirt?

<comment><USER7> Saw that too. It's at 3:03. Anybody has an idea what's written around Tux?</comment></comment>


The myth of the "UX designer" - <AUTHOR> http://elliotnash.me/the-myth-of-the-ux-designer

<comment><USER2> "UX designer" is a bit of an ambiguous phrase, and it gets the correct amount of sarcastic scorn for being a buzzword.

But I think it means something more important: as you say, good UX requires a recognition that _everything_ that goes into your application contributes to the experience. Software design, copy, marketing, UI, etc. etc. Everything. We all know this and understand this.

What UX is, then, is _software quality systems engineering_. "Everything that goes into the experience" is no longer simply visual design or UI components, but a complex web of inputs and influences to manage in order to ensure quality. A good UI designer has one piece of that puzzle and ensures the visuals and interactions are spot on, but a good UX designer takes all that and more into account and extends their influence to many other areas outside the visual. It's not their job to do all the work, but it is their job to manage the systems in place to ensure the experience is high quality.

Software is getting more complex and more interesting. The "UX designer" moniker is just a response to that; a recognition that UI designers are becoming more holistic and with wider reach. They are becoming quality management systems engineers. This requires more than just UI design, though most UI designers probably naturally have the skills and knowledge to make it happen.

It's a positive development IMHO. You may not like the broad nebulous term UX, but I think if we think of it more as systems design, maybe we can start to pin it down and make it a useful job title.

<comment><USER3> I see strong parallels between UX designer and game designer. It was not until more recently that it has become generally accepted that everything from time killing mobile games to enterprise software demands good UX. Decades ago game designers figured out that a good UX meant a larger player base and ultimately more sales -- rather than contracts and inescapable legacy lock ins.

UX is about creating a clear, intuitive experience for the user (the front and back end work that makes that possible.) This is done through consistency of patterns, both unique to the application and drawn on existing and historical work (also makes for a good argument against software patents, but that is another issue.) At the very least, this requires some one or a group of people to create an agreed upon design document from the start.

Steve Jobs view of the liberal arts goes a long way in explaining UX. Everything matters. That hardly means every single team member should be an omniscient visionary with hundreds of niche interests.

</comment></comment><comment><USER4> Reading this made me wonder if the author really has a good understanding of what's going on in the UX field. Maybe he's run into a few people calling themselves UX designers and then generalizing from a small sample into the entire field? I don't know. Here's some things that I wish everyone understood:

1\. UX designers aren't solely in charge of the user experience - Yes, UX designers have been saying that from day one. UX is about breaking down organizational barriers and facilitating collaboration across disciplines. That's fundamental to the concept, because looking at a product from a user's perspective, you don't see organizational divisions, internal politics, fiefdoms dominated by specific disciplines and so on. Users experience a product in a holistic way, but organizations are fragmented into specializations. Poor UX is often the result of organizations optimizing for the efficiency of division of labor without understanding the tradeoff for the end user. That's a fundamental mismatch that UX tries to remedy.

2\. UX designers didn't take ownership away from anyone. When the discipline was first emerging, very few people cared. Over the last 15 years, the trend has been UX designers saying things like "How do I get my developers to care about the user's experience?" Now UX is starting to become strategically important, and (some, not all) developers realize that they're getting left behind. That's not UX designers doing it to you, that's a self-inflicted wound. I started as a developer 10 years ago, but quickly realized that UX was the future, and made the switch. UX designers have been banging the drum for 15 years trying to get everyone working together. A lot of developers are only now starting to wake up and realize they need to be involved, but find themselves at a 10-15 year disadvantage. Others stepped up and took ownership over something that no one else cared about and today they have experience, knowledge, skills and a track record in a strategically important area. Sorry about that. We tried to tell you.

3\. Elliot comes off pretty naive when he talks about iteration. That's a pretty new idea in software, which has historically been dominated by a requirements-oriented traditional engineering mindset. As a result, some developers talk about iteration like they invented it, but other product design disciplines - architecture, graphic design, film, fashion, industrial design - have been doing iteration for many decades, probably even centuries. You know how designers talk about mockups? Here's the wikipedia definition of a mockup: [http://en.wikipedia.org/wiki/Mockup](http://en.wikipedia.org/wiki/Mockup)

> "In manufacturing and design, a mockup, or mock-up, is a scale or full-size > model of a design or device, used for teaching, demonstration, design > evaluation, promotion, and other purposes. A mockup is a prototype if it > provides at least part of the functionality of a system and enables testing > of a design. Mock-ups are used by designers mainly to acquire feedback from > users."

4\. There are still many large barriers to developers participating in the UX process, but the important ones aren't about job titles. Here are some things developers need to deal with when getting involved in UX:

\- Lack of career incentives - when you interview for your next job, are you going to be asked any questions about the UX of what you worked on? Is your performance at your current job evaluated in terms of your impact on UX? Do you hold yourself personally accountable for poor UX? If not, then like the chicken and pig fable, you're involved but not committed. It's one thing to say that everyone is responsible for a good UX. It's another to actually hold people (or yourself) responsible.

\- Lack of empathy - you're building a product for someone else to use. If you privilege your own preferences and way of working, if you lack the flexibility to adopt the mindset of someone who is very different from you, you won't succeed in UX. You're probably very smart. Don't let that get in the way of empathizing with people who you think are beneath you.

\- Lack of skills - you don't need visual design skills to contribute to UX. At a strategic level, UX is about understanding people: what they need and want, what motivates them, what's important to them. The best UX designers are insightful observers of human nature.

\- Over-specialization - for some people, their whole lives revolve around their job. Good UX designers are relentlessly curious about a wide range of topics and activities. They don't accept artificial divisions of labor at work, and definitely don't let them carry over into their personal lives. Remember the saying: nothing human is alien to me.

<comment><AUTHOR> I have a feeling you over analyzed what I wrote. I wasn't saying UX isn't important - my job title is literally a UX engineer. The company I work with prides itself on the user experience coming first. So while it may be something I defend first, its something on everyone's mind - and when it isn't it can become a problem.

Steve Jobs for example cared about every little detail that impacted the user experience. He also wanted everyone in his company to care in the same way.

My point is just that while UX designers may be leading the charge, they largely need to get off any "high horse" they're on, and understand an entire team is responsible for a good experience, even if they are the driving force.

<comment><USER4> Getting whole teams involved in the process has been standard practice for UX designers for over a decade. For the most part, the problem has been getting non-UX folks to care at all.

What you describe sounds like a scenario where everyone wants to participate, but for some reason the UX designer refuses to collaborate? I've never heard of that happening, and it runs counter to my personal experience and pretty much every UX designer I've ever talked to, so my gut feeling is that you're reacting to a unique situation.

</comment></comment></comment><comment><USER5> I don't care much about the terms, but my general test is this: would this person be useful on a small team?

A software "architect" who can't be a developer wouldn't be useful on a small team. A "UX" designer who can't create mock ups, wireframes, or actual code (certainly CSS/HTML, let's hope for javascript) wouldn't be useful on a small team.

I have trouble believing that people who wouldn't be useful on a small team would be useful on a large team.

<comment><USER6> JavaScript, Objective-C, Java. Basically anything related to the platform.

An iOS developer who can design and knows how to blend colours and make smaller icons will basically outdo every UI/UX/YADAYADA designer everywhere.

Not to be confused with a graphic designer. That shit is actually difficult.

</comment></comment><comment><USER7> UX is quite simply put _" the elimination of frustration"_

 _Do you know who is responsible for creating a good user experience?EVERYONE ON YOUR TEAM. EVERYONE._

I understand the sentiment that the OP is trying to bring, but this statement is akin to stating something like "everyone is responsible for the commercial success of the business".

The role of a UX designer (or perhaps a UX Lead in this case) is to take on the responsibility of ensuring that frustrations of the customer are eliminating by all means possible. The problem is that not everyone in your organization - no matter how big or small - has the time to be able to empathize with your customers. So it's slightly disingenuous to assume that everyone bear that responsibility. It's the UX Lead/Designer's responsible to engage with the customer and feed that back in a meaningful way to the people responsible for actually cutting the code that renders the experience.

<comment><AUTHOR> I agree and disagree, only in the sense that - everything impacts a user's experience. The entire team should have that on their mind to a varying degree.

</comment></comment><comment><USER8> Another problem with people conflating "UX Designer" with "UI Designer" is that if you put "UX" in a job title hoping to get "UI" folks, you will get the wrong people. I have seen this first-hand now with two companies: the job title was set by someone who didn't really understand the difference and instead of getting qualified visual/interface designers applying for the role we got people who draw boxes and arrows, extremely low-fidelity wireframes, and user researchers. Not people who cranked hard on the actual product, but people who did a lot of "meta" work that only affected the product in passing.

In larger companies there may be a need for "UX" designers like that, but at small companies when people all need to wear multiple hats, you don't just want a wireframer or flow diagrammer... you want a designer who can think about the overall experience, then design it, then create the actual pixels, then hopefully write some front-end code as well. I have yet to meet anyone who considers themselves a "UX Designer" to be able to do any of that.

<comment><USER9> You mean, you got real designers when what you really wanted were production art technicians? Sounds even worse than that: you got interaction designers when you might have been happy with visual designers.

Most good designers don't have time to write code, but some bad/mediocre ones are ok at with it as they are less specialized. It's rare that designers would even have time to write code even if they could or wanted to; usually developers are blocked on them, not vice versa.

So what you want is an interaction+visual designer who can also do production and on top of that can write code. And you probably want them also to be good. Your company is screwed.

<comment><USER10> The best designers I have worked with write code or wrote code at one point in their career. It is difficult working in a medium you do not understand.

<comment><USER9> The worst designers I've worked with were the ones who knew how to write code and picked up illustrator by playing with CS...hey look I can draw! Really, the training and practice that goes into a good designer is huge, if they also learn writing code, something has to give. Visual designers are much more difficult in this regard than interaction designers, who are often just former programmers anyways (though the best ones I've worked with schooled as...architects).

<comment><USER2> "if they also learn writing code, something has to give"

Disagree. This is a false limit, and a false criticism rooted in ignorance and lack of experience. I don't know what else to say other than as a designer with a CS degree, I actually take offense to this statement. I know how much greater value I offer and would like other designers and programmers I work with to reach similar levels of integrated skill.

Specialization is for the industrial revolution—the technological age requires expert polymaths.

<comment><USER9> If it wasn't clear, CS in my previous post meant adobe creative studio, not computer science. I just realized these acronyms clash.

Designer have lots of skills, so much that even they have to specialize often along additional axises that might not even be obvious to us (motion or color design as a specialization of visual). We are happy to just get one who has promising design skills, and most of the designer+programmers I've interviewed just don't even come close, sorry.

How many programmers can draw? Is it a hiring requirement?

</comment></comment></comment></comment></comment></comment><comment><USER10> Well put. The user experience is everyone's responsibility. I've seen a number of teams that let the 'UX Specialist' dictate the entire UI. Usually research that does not account for cognitive bias is done in place of testing. Effectively you are basing the entire UI on the opinion of one person. That is always a bad idea.

<comment><USER9> Or a great idea, depending on the person. Design by committee, however, is almost always wrong.

</comment></comment><comment><USER11> News flash: titles are useless. what does a "CEO" do at a five person startup. You can call them anything you want, but someone needs to be responsible for owning a design process.

</comment><comment><USER12> I like this explanation. Often you read articles about self proclaimed UX experts talking about their research and thinking about the product is what makes a product have a good UX.

Nope, its the iterative process. Good UX people, Good developers, and short iterative cycles. Not just market research. A good UX guy listens to the developer too.

</comment><comment><USER13> Bah. Mere semantics. Stop quibbling.

We don't need any more articles like these.

<comment><USER14> If you aren't going to quibble over semantics, what are you going to quibble over? Syntax?

<comment><USER15> He said "Stop quibbling" meaning do not quibble(Argue or raise objections about a trivial matter). Not over semantics, not over syntax. Have meaningful debate and discussion.</comment></comment></comment>


Interview with Mohammad Yunus (micro-entrepreneurs) - <AUTHOR> http://edition.cnn.com/2007/WORLD/asiapcf/11/05/talkasia.yunus/index.html?iref=newssearch <comment><USER2> honestly this guy sort of bothers me, since when is being a banker + charging interest such a freckin noble thing.

I have no doubt his program has helped many people and don't mean the chap any disrespect, but they are making money off this, so I tend to not place him in the saint category that the media does.

<comment><USER3> >since when is being a banker + charging interest such a freckin noble thing.

When you're providing an important service to people that no one else is interested in serving.

kiva.org doesn't charge interest, has this guy done micro-credit on a much larger scale than them to earn the Nobel?</comment></comment>


MRI disabled every iOS device in facility - <AUTHOR> https://www.reddit.com/r/sysadmin/comments/9mk2o7/mri_disabled_every_ios_device_in_facility/ <comment><USER2> A possible explanation:

User1:"Were there any iPhones older than iPhone X? iPhone X and Apple watch both have QI inductive wireless charging, so could they have received over voltage?"

User2:"that's.....not the dumbest thing i've ever heard.

if the devices don't have some sort of voltage protection, a rapidly collapsing magnetic field would induce meaningful (albeit brief) amounts of voltage and current."

User3:"Exactly this. Radiology resident here. Had our magnet quench multiple times and fry all of the newer Apple models in the department while my older gen was totally fine."

<comment><USER3> Some TV's/laptops were also affected, apparently. I think it's just coincidence that most devices nearby were Apple ones.

<comment><USER4> Confirmed - [https://www.reddit.com/r/sysadmin/comments/9mk2o7/mri_disabl...](https://www.reddit.com/r/sysadmin/comments/9mk2o7/mri_disabled_every_ios_device_in_facility/e7flsi3/)

</comment></comment></comment><comment><USER5> Which gets me wondering: when installing MRIs, do they perform test runs at lower powers and try to detect such leak, maybe with some kind of handheld detector?</comment>


Etcd 0.3.0 – Improved Cluster Discovery, API Enhancements and Windows Support - <AUTHOR> https://coreos.com/blog/etcd-0.3.0-released/

<comment><USER2> The discovery mechanism looks clumsy to me.

There's no way we'd rely on a public discovery service, for example. If we're going to hardcode configuration information - such as the URL of a discovery service that may or may not be up or reachable, we might as well hardcode the addresses of a few peers.

And running a second etcd cluster to bring up the main one seems pointless. Either it's turtles all the way down, or you then need to hardcode config information for the second cluster, in which case it serves little purpose.

I'd rather have a mechanism where each peer takes a list of possible peers and tries to connect, with a method for deciding when there is quorum to elect an initial leader and start allowing writes (that's easy enough by introducing a config option to decide if a peer is "blessed" to be part of the initial leadership election, and how many blessed peers must be connected to have quorum - just needs to be enough to form a majority of blessed peers to prevent more than one subset from electing a leader before they manage to connect)

Am I missing something?

<comment><USER3> This is why top-down, single-source of truth is mostly the best way for core infrastructure. No pun intended. It's important for some parts to not be infinitely reconfigurable or dynamic because it would create chaos and service dependency deadlock/DoS. Most people not running bare metal don't know the lessons of how and why things underneath are they way they are and the sensible limits what's possible.

It's also more secure because if it's possible to dictate all of the service details, it's much easier to run a lean and locked-down infrastructure.

CoreOS by itself looks great. More JEOS distros need to happen. Trying to bundle more unproven things just looks marketing led the product.

<comment><USER4> _This is why top-down, single-source of truth is mostly the best way for core infrastructure._

What happens when your single source of truth goes down?

etcd attempts to provide a source of truth by using the Raft[1] consensus algorithm to determine that "truth" in an environment when relying on merely one place is too risky.

Th Raft and Paxos[2] (as used in Zookeeper & Google Chubby) algorithms give _guarantees_ for consensus in an environment with unreliable hardware. That is better than a _single_ source of truth where you get nothing when that source disappears.

[1] [http://raftconsensus.github.io/](http://raftconsensus.github.io/)

[2] [http://en.wikipedia.org/wiki/Paxos_(computer_science)](http://en.wikipedia.org/wiki/Paxos_\(computer_science\))

</comment></comment></comment><comment><USER4> Discovery looks interesting. Can it be used for a client to discover a cluster?

I've been digging into Docker link containers a bit.

I'm not entirely comfortable with how they work,and I'm not really sure why. The only thing I can put my finger on is that I feel like discovery is a separate concern to deployment. But at the same time they are so closely linked o can understand why Docker needs to tackle it.

Is there a way etcd can work better with Docker links? Maybe it could automatically read/write Docker published ENV variables or something? Though I don't think that will quite work across physical machines without some additional work.

<comment><USER5> > Discovery looks interesting. Can it be used for a client to discover a > cluster?

It certainly could be extended for that. We haven't done anything with discovery to help with that process yet though.

> Is there a way etcd can work better with Docker links?

There is a lot of room to explore here. Including:

\- Automatically registering exposed ports from running containers into etcd for service discovery.

\- Using information in etcd to manage a smart proxy that would proxy requests. This would be the "Link via an Ambassador" but etcd would help coordinate.

Both of these would be good things to build and see how they work and feel in practice.

There are also some interesting alternatives to doing the links thing such as using some network namespace tricks to avoid passing metadata around via environment variables and simply expose services directly into a container: [https://coreos.com/blog/Jumpers-and-the-software-defined- loc...](https://coreos.com/blog/Jumpers-and-the-software-defined-localhost/)

<comment><USER4> > Discovery looks interesting. Can it be used for a client to discover a > cluster? >> It certainly could be extended for that. We haven't done > anything with discovery to help with that process yet though.

So what is the current best practice for etcd discovery? Environment variable? mDNS might be nice, too (Though I guess mDNS is kinda, almost an alternative for a subset of what etcd does). [http://blogs.gnome.org/danni/2014/02/02/a-libnss-plugin- for-...](http://blogs.gnome.org/danni/2014/02/02/a-libnss-plugin-for-docker/) looks interesting too.

I read the Jumper post thing when it was HN. I need to think about that some more.

</comment></comment></comment><comment><USER6> I'm curious to know more about the garbage collection of stale peers.

\- AFAIK, etcd is built on RAFT, which relies on a 'joint majority' method of transitioning cluster membership. Are there any issues forming agreement on what the new membership should be when it's unclear what nodes are still supposed to be part of the cluster? \- In the land of ZooKeeper, cluster configurations are typically very very stable, so tracking membership takes very little information. Is etcd targeted to more dynamic environments where the garbage generated by entering and leaving nodes is significant?

<comment><USER5> etcd isn't designed for significantly dynamic environments but we certainly want to make it easy for people to add and remove machines at runtime. We have basic support for runtime cluster configuration but are building out a more complete API. The current proposal that is being built can be found over here: [http://thread.gmane.org/gmane.comp.distributed.etcd/168](http://thread.gmane.org/gmane.comp.distributed.etcd/168)

As you point out there is no magic garbage collection of stale peers. You have to explicitly delete nodes that you don't expect to be participating any longer.

</comment></comment><comment><USER7> Has anyone checked out serf [http://www.serfdom.io/](http://www.serfdom.io/) if yes what are the pros and cons of etcd and serf?

</comment><comment><USER8> Especially Windows support is cool news. I am following etcd project, it's serious and can change server configuration world. Thanks Alex!

</comment><comment><USER9> Congratz guys, this is a big improvement from 0.2.0. Keep up good work!

</comment><comment><USER3> This is a pure marketing story pushing a bad solution.

Hiera, a simple hierarchal property distribution system using a backend of Zookeeper plus puppet or chef is far superior. Etcd is the PHP of configuration management.

<comment><USER10> Wow. I know neither etcd or Hiera. But please provide some arguments against etcd if you think it is bad, rather than just bashing it.

It would be interesting to know the cons and pros of both solutions.

<comment><USER3> I'm bashing it because it oversimplifies the problem and claims to be a solution that doesn't address the irreducibility of the problem.

It's great for a host file but scp can do that.

It doesn't coordinate the transition of services to other states. Puppet does an incredible amount of work (dependency satisfaction) to get things where you want them to be. Configuration management is as much management order of operations as well as what files should contain what. There's not much separating the two because you have to usually change them between states. Chef does this to, but in a simpler way.

Cfengine was a past attempt, but is really complicated double work of what runs on a server and what runs on a managed node.

<comment><USER4> I'm not sure what problem you think etcd is attempting to solve, but if your solution involvs Puppet or Chef then it isn't surprising you find etcd isn't sufficient for your purposes.

etcd is a highly available configuration store. That's all. It's designed for applications to use to store configuration, so they can be started & stopped without relying on file based storage. Generally speaking these applications have to be coded to use etcd (which is completely different to Chef/Puppet, which are Ops tools). Sure, you could do something to write etcd values to a file, and then have them used by any program, but that misses the point.

Your criticisms are so completely irrelevant they aren't even wrong.

<comment><USER11> No bashing against etcd from me, but can you point me to a reason why a regular database wouldn't work for this type of thing?

High availability, throughput and data storage seem to fit into what a database is made for.

<comment><USER2> You'd think so, but most RDBMS's are a lot of work to set up in a way that provides the kind of consistency guarantees and availability that a configuration store like this does.

E.g. take Postgres. You can't connect to the slaves and write, so your client will need to know how to identify which server is currently the master. And if the master fails, you need to implement a leadership election method, promote the chosen slave, and resync your other slaves from the new master.

Before you know it you've reimplemented the configuration store with a different data storage mechanism. There's very little intersection between the typical RDBMS and a configuration store like this.

<comment><USER11> Well, even with your point there are a couple reasons why I could imagine databases making sense here.

One is that you might already have people used to deal with them in a highly available manner in your team. HA with Postgres is not exactly an area of research anymore. Most people already using Postgres in their stack know about tools like pgbouncer.

Another one is that there are other databases, like Riak, that can talk http and have those problems solved.

I am here more trying to understand the features that would make one pick etcd over an higly available database. Thanks for taking the time to explain.

<comment><USER4> They solve different problems.

In CAP theorem[1] terms, etcd provides Consistency and Partition-Tolerance, while databases generally provide Consistency and Availability.

That's important, because it shows the kind of problem each is trying to solve.

[1] [http://en.wikipedia.org/wiki/CAP_theorem](http://en.wikipedia.org/wiki/CAP_theorem)

<comment><USER11> Great, that's exactly the answer I was looking for. Now everything makes sense.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> I can't figure out what etcd is. Any help?

<comment><USER13> It is a distributed configuration management clustering product like zookeeper. It simplifies the creation and sharing of mostly configuration data in clustered or distributed systems.

<comment><USER12> I don't know what that means or what zookeeper is... Can you explain the problem it solves?

<comment><USER3> Zookeeper is a very specialized distributed filesystem for saving and delivering important details for very large systems. Getting concurrent distributed systems like this right is the equivalent of summited Mount Everest starting by walking from Paris. It was mostly developed at Yahoo and spun off as an Apache project under Hadoop and commercialized by Cloudera. Netflix uses ZK for example.

<comment><USER14> so you are basically saying that you don't trust the people who designed etcd.</comment></comment></comment></comment></comment>


An Open Source Release of the Freedom U540-C000's Bootloader - <AUTHOR> https://www.sifive.com/blog/2018/09/06/an-open-source-release-of-the-freedom-u540-c000s-bootloader/ <comment><AUTHOR> Notice that this is really a cool development about something that SiFive was criticized for.

It was picked up for example here: [https://www.phoronix.com/scan.php?page=news_item&px=RISC- V-N...](https://www.phoronix.com/scan.php?page=news_item&px=RISC-V-Not-All- Open-Yet)

> All this said, note that the HiFive is no more open, today, than your > average ARM SOC; and it is much less open than, e.g., Power. I realize there > was a lot of hope in the early days that RISC-V implied "openness" but as we > can see that is not so. There's blobs in HiFive.

> Open instruction sets do not necessarily result in open implementations. An > open implementation of RISC-V will require a commitment on the part of a > company to opening it up at all levels, not just the instruction set.

> by Ron Minnich (Google, Coreboot)

Its fantastic to see that they are really pushing in that direct. Specially that they try to go as deep as possible form there.

Establish a new standard people strive for, open hardware and firmware.

There are many blobs left but having a platform that starts out pretty open will allow lots more development on the missing pieces.

Edit: I think Ron is now happy [https://github.com/sifive/freedom-u540-c000-bootloader/pull/...](https://github.com/sifive/freedom-u540-c000-bootloader/pull/2)

</comment><comment><USER2> > the first person to submit a pull request that can exactly reproduce that > ROM will get a HiFive Unleashed board!

That's a fun challenge and a nice reward.

</comment><comment> the-dude Title deserves mention of RISC-V board.

<comment><AUTHOR> I did when I submitted it but its not there anymore.

Edit: To any admin I think it was necessary context to understand the title and I think it should be added back.</comment></comment>


StatusNet raises $$$ - <AUTHOR> http://status.net/2010/08/03/statusnet-raises-new-round-of-investment-led-by-firstmark-capital

<comment><USER2> Best of luck to them. I love their software and use it myself (via identi.ca), but I hope they have bigger plans than selling Twitter to companies if they're planning on recouping much of that venture funding.

</comment><comment><USER3> Hopefully they are spending the money on more than just PR newswires.</comment>


Ask HN: Mario AI, Google AI like contests ? - <AUTHOR>

I get know about contests like http://julian.togelius.com/mariocompetition2009/ and http://csclub.uwaterloo.ca/contest/ only after the winners are announced.<p>Can anyone point me to an upcoming contest of a similar kind ? <comment><USER2> There's a Starcraft AI competition at a conference in Palo Alto this fall, which is probably the hardest in this category of competitions (playing a full Starcraft game well is pretty nontrivial), though there are also three categories for restricted versions of the game: <http://eis.ucsc.edu/StarCraftAICompetition>

</comment><comment><AUTHOR> Links .. <http://julian.togelius.com/mariocompetition2009/> <http://csclub.uwaterloo.ca/contest/>

</comment><comment><USER3> The new Mario AI contest is at <http://www.marioai.org></comment>


Typing Free Captcha - <AUTHOR> http://www.minteye.com/Products.aspx

<comment><AUTHOR> Just to be fair - it is less friction than a typing captcha. I still think the security of it is pretty weak. Possible vulnerabilities include:

* Moving the slider bit by bit and OCRing will solve 90% of the images I've seen.

* If the image selection is small you could just build a DB of all slider positions and just teach it how it is supposed to look once.

* It's not only easier for the users. It is also easier for captcha solvers in India, China, etc. This will improve their productivity immensely and free up their other hand.

<comment> angry-hacker \+ There are only 29 different variations, so bots can easily just try each one of them...

<comment><USER2> They don't even have to do that; a 1/29th chance of success is plenty for the scammers.

This is Yet Another Complete Crap CAPTCHA. It isn't solving the problem of prevent real spammers from sending you real spam, it's solving the problem of looking enough like a CAPTCHA to think you're getting somewhere. Or in this case, selling you something.

Also, at least the spiral one I got is flat-out solvable; run "find edges", run a search for the characteristic slope relationship of the lines at various points in the images... would probably take a decent computer vision student about four hours, tops. That hardly even qualifies as trying.

</comment></comment></comment><comment><USER3> Hm, I think an easy way to circumvent this style of captcha with a small amount of work would be to just send every iteration to Google as a reverse image search and pick the iteration with the most results.

For example:

\- Distorted image: <http://goo.gl/w2ykx> (bad results, not human)

\- Non-distorted image: <http://goo.gl/R3WnQ> This is the "perfect" choice and also returns a good amount of search results.

\- Slightly distorted image: <http://goo.gl/G0xQN> This results in a "human" choice on the picker and picks up a fair number of search-results.

I imagine 15-20 searches per captcha, but if you just pick the best per set you're probably going to end up with adequate results in circumventing the system.

</comment><comment><USER4> Neat and I really like to see innovation in this area.

Although I think because outsourcing captcha to humans is so cheap, methods like this are not going to win in the long run.

I think a more sustainable strategy is to make it more and more expensive for those who want to solve captchas in large volumes.

Things like solving a cryptographic challenge using the computing power of your machine.

i.e. making it cheap/easy enough for legitimate users who may need to submit the form once a month but such that it becomes too expensive for those who want to exploit it and solve 100 of them in 5 minutes.

</comment><comment><USER5> One of the biggest issues with standard captcha's is their lack of accessibility, especially for blind or low-vision users. Some provide an audio alternative but they're generally worse than the visual version.

It's good to see some innovation in captchas but I don't see how this particular idea can overcome this hurdle.

<comment><USER6> The audio alternative for this one is a voice that says, 'Move the slider right' or 'Move the slider left' and 'using the arrow keys'. The problem is that it would be _easy_ to use a machine to process that. Especially since the correct location makes the voice say something completely different from 'move the slider'

</comment></comment><comment><USER7> Isn't the real purpose of this widget not to deflect bot-spam, but to force user to pay attention to an advertisement? While the system would be ineffective against a modestly intelligent spambot author, it's an excellent way for site owners to prove to advertisers that users have seen an advertisement.

</comment><comment><USER8> I like this, but I think there needs to be some additional security placed on it. It's pretty easy to make a computer tell you when an image is a perfectly straight advertisement and when it's a jumbled mess (or at least with enough accuracy to beat this captcha pretty frequently). You have to make the final image still only human readable. One way I can think of is to have the slider "twist" two images into each other, and there are two spots on the slider which reveal a clean image (one spot for each image). Text above the field says something like "Slide until you see the __________ image" and that way there would be additional human verification.

Just thinking out loud.

</comment><comment><USER9> Can someone explain this to me please? It seems as though it's touting itself as a CAPTCHA for site owners, but as an interactive ad block for advertisers?

I can't really work out how this works on a site? Is the idea that I use this type of CAPTCHA for 'human' sign ups, and at the same time, an advertiser gets a hit? Almost as in, to sign up, you need to see this ad?

Either way, it's interesting: I also like the secondary result of "you don't get free impressions". ie. you only pay if they click or 'solve', but at the same time, they can't see the ad, remember the name and look for it elsewhere without essentially triggering the payment if that makes sense.

</comment><comment><USER10> I don't understand how this could possibly work. The original images all appear to have lots of straight lines. I'm no expert in computer vision, but surely "does this image contain straight lines?" is a relatively easy operation to automate. Maximize that and you have a solution.

Even ignoring that, there appear to be only 30 distinct positions on the slider. Random guessing will net you a 3% success rate with no smarts whatsoever.

It's relatively easy to make a captcha that stands up to existing bots on when not widely deployed. For ages, I had a "captcha" on my blog that consisted of a single text field labeled, "Enter the word 'elbow'". The word didn't even change, it was hardcoded to "elbow". It kept spam away for _years_ , because it wasn't worth anybody's time to fix their software to work with my little blog.

It really doesn't appear to me that much thought went into this thing as far as making it hard to automate solutions. Maybe I'm horribly wrong, but it looks like a gimmick, where they made something that _looks_ hard to the naive due to being different.

<comment><USER11> Well, you're comparing apples to oranges. You're comparing a hand coded attack against a specific captcha (a guess at the position/vertical lines) to no one making the attempt at all.

Attacking your site, with minimal effort, would have yielded a 100% success rate. Attacking this site with a guess would have yielded a 3% rate. Some of the best captchas have been attacked with success rates in the high double digits: [http://en.wikipedia.org/wiki/CAPTCHA#Computer_character_reco...](http://en.wikipedia.org/wiki/CAPTCHA#Computer_character_recognition)

So 3% doesn't look too bad after all.

I do, by the way, agree with you that the vertical lines attack would work really well.

<comment><USER12> What do you mean by 'some of the best'? If a CAPTCHA can be solved or guessed in an automated fashion then attackers can just throw more (likely compromised) machines at the problem at little cost. 3% is awful.

<http://bitland.net/captcha.pdf>

<comment><USER11> In your link, their first attempt at breaking reCaptcha seemed to yield a 17.5% success rate. I was referencing wikipedia, which stated a 60% success rate against Microsoft's captcha and a 30% success rate against Google's catpcha: [http://en.wikipedia.org/wiki/Captcha#Computer_character_reco...](http://en.wikipedia.org/wiki/Captcha#Computer_character_recognition)

Those papers may be a few years old and the state of the art may be different. But after an initial look I'm missing the reason that, compared to these captchas, you think that "3% is awful."

>If a CAPTCHA can be solved or guessed in an automated fashion then attackers can just throw more (likely compromised) machines at the problem at little cost.

I'm not ready to buy this. I would think _every_ captcha is going to have some failure rate, even if it is extremely low. If attacks were absolutely free, then it wouldn't matter what the attack success rate was. Computers are fast, but not infinitely fast. Bandwidth is cheap, but not infinitesimally cheap.

<comment><USER12> CAPTCHA comes from "Completely Automated Public Turing test to tell Computers and Humans Apart". These tests don't fulfill that requirement.

Random guessing gives you 3%, which is worse than random guessing on either the MSFT or reCAPTCHA.

This is far worse though. A simple loop over the 30 positions, running the output through an OCR engine would give you nearly 100%.

FWIW, I wrote the paper and AFAIK was the first person to break reCAPTCHA. I worked on the original MSFT Passport/Hotmail CAPTCHA system and improved MySpace's CAPTCHA which took spammer registrations from ~1,000,000/day (automated) to a few thousand (manual) in late 2007.

</comment></comment></comment></comment></comment><comment><USER13> While this is interesting, it looks simple to beat in the current iteration. The distort operation blurs the image, so the original is easy to pick out by simply determining the relative constrast of all the images.

This could be fixed by applying a similar blur operation to the original, but I'm pretty sure something else could be found. The only advantage (security- wise) this would have over the OCR-CAPTCHA approach is its relative novelty - should this approach become popular, many new ways to beat it would come up, and we would be in an arms-race like with standard CAPTCHAs.

<comment><USER14> It actually looks easier than this. There appears to be only 30 possible values for the slider. Send a random number between 0-29 and you have a 1 in 30 chance of being right.

In reality you can probably remove the extreme values as it is unlikely to be 0-2 or 27-29, so you have a 1 in 24 chance. Those are pretty decent odds if you compare them to a regular 6 letter CAPTCHA where a random guess would have a 1 in 26^6 chance of being correct.

<comment><USER15> It looks like it allows a bit of leeway too - you can submit two stops either side of the 'correct' value and still be allowed through. So that's a 1 in 6 (5 in 30) chance of a random guess being allowed.

</comment></comment></comment><comment><USER16> This seems very sluggish in my browser (Firefox 17.0.1). There's about half a second of lag, which is far too long.

It also took me a while to realise that I had to drag the handle instead of just being able to click in the bar where I wanted it and slide from there, although this is presumably easy to fix.

</comment><comment><USER17> I found the experience to be rather annoying, actually. While my eyes aren't great, my clicking/sliding fine tuning is even worse. I understand the issues involved, but I prefer to not have something dependent on dexterity. Otherwise, just have a video game as the captcha and be done with it.

</comment><comment><USER18> Doesn't work with mobile Firefox, at least not on my tablet. Would be a dealbreaker for me, obviously.

</comment><comment><USER19> The are 30 images so there is a 3.3% success rate using a random pick approach. Which is enough.</comment>


Google Chrome OS is 7 years too late - <AUTHOR> http://www.baekdal.com/articles/technology/google-chrome-os/ <comment><USER2> I'd suggest the author's (mis)conceptions about the limits of browser based apps is 7 years out of date. It's not even an explicit argument, it's just an unspoken assumption that web apps aren't the real thing. Actually, maybe it is explicitly stated: _"But the browser, being a viewer of HTML5+CSS+JavaScript is not capable of 'blowing you away', so we have to move beyond it."_

But, every negative point he raises about web apps (which aren't many or particularly fundamental) is being worked on feverishly by Google (and Apple, and others).

But even if you take his argument seriously, he's only saying that rich-client will be thin, platform-specific wrappers round the APIs of what are fundamentally cross-platform web apps. Hardly a resounding victory.

</comment><comment><USER3> Yet another otherwise-insightful essay on ChromeOS that completely ignores the existence of Google Native Client -- rich native applications that are integral to the web. ChromeOS doesn't ship without it.

<comment><USER2> I've not looked into NaCl much but maybe someone can answer me this: running "real" code in a browser but sandboxed for security? Isn't that Java? This seems particularly key when they're talking about running Chrome OS on ARM.

<comment><USER3> Code compiled for NaCL is in a word-aligned subset of machine code that can be quickly verified before execution and can only generate interrupts to the NaCL host (no syscalls). It's currently i386, but x86_64 and several ARM variants are being worked on, hopefully with fat binaries.

The only security hole is timing attacks, because there's no latency hits or blown caches from having a runtime or GC or even any preconceived notions about what your language looks like.</comment></comment></comment>


New logo for Firefox - <AUTHOR> https://www.underconsideration.com/brandnew/archives/new_logo_for_firefox.php <comment><AUTHOR> Also more info here: [http://design.firefox.com/photon/visuals/product- identity-as...](http://design.firefox.com/photon/visuals/product-identity- assets.html)</comment>


Drug Decriminalization Has Failed? - <AUTHOR> http://www.cato.org/pub_display.php?pub_id=13612 <comment><USER2> The problem is that legalization (like alcohol) is different from decriminalization (like pot in the Netherlands) in both the effect on use and the effect on crime. Too often authors like this one will pick and choose the best or worst attributes of each to match their conclusion.

This article cites the small or negative impact on use that decriminalization has had in Portugal and then jumps straight into how legalization (e.g. after Prohibition ended) has resulted in a drop in crime.

But there is no reason to suspect that full legalization wouldn't result in a situation similar to what we have currently with alcohol. That is to say pervasive use and abuse, lavish marketing campaigns, and really awful effects on public health and safety. Not to mention regulatory capture by the industry, where even modest policy changes (like raising the federal tax on alcohol) are pretty much a non-starter.

Likewise, there is little reason to suspect that decriminalization (of use and possession of small amounts) would do much to reduce drug-related crime, both by dealers and by those users who don't have a rock band or trust fund to support their habit. And you can't really tax a substance that is not legal to sell. And it does nothing to improve the safety or purity of street drugs. Basically all it does is put fewer non-violent users behind bars.

That might be worth it, but don't keep bringing up the benefits of legalization when you're arguing for decriminalization.

</comment><comment><USER3> Definitely one of Ron Paul's least popular positions among the socially conservative Tea Party-style libertarians. I agree with Paul. Prohibition causes more problems than those it is supposed to prevent.

Despite being illegal, drugs are not hard to get and it is likely that we've already hit equilibrium drug usage. Therefore, drug usage levels should remain the same after legalisation.</comment>


The death of Queen Elizabeth will be most disruptive event in Britain in 70 yrs - <AUTHOR> http://uk.businessinsider.com/what-happens-when-queen-elizabeth-ii-dies-2015-3 <comment><USER2> As an Englishman, let me tell you from my point of view - this is utter bollocks.

The TV schedule will be completely fucked, sombre music will be played instead and the newspapers will be a nightmare. Most people however will not give a toss and will go about their day.

It's like when Diana died and a large amount of the mourners were crazy old ladies or american tourists. It does annoy me when the rest of the world thinks we're all worried about the queen dying.

<comment><USER3> > It's like when Diana died and a large amount of the mourners were crazy old > ladies or american tourists.

there was mass hysteria. don't deny it.

<comment><USER2> Mass hysteria in the media, nowhere else.

I'd been to a nightclub that night and unfortunately didn't pull a girl - so I came back home and listened to the radio.

It alternated between Diana is dead, no she's alive, lizards did it, no she's dead again, etc etc.

The next morning all the TV stations were playing the sombre music and I was bored so I went to the local park in Cheltenham (Sandford Park). I was walking along and I saw a girl who looked a bit pissed off. I had nothing to lose, so I asked if she was missing the TV or missed Diana? She said it was the former, so we decided to go the pub. We had a pretty good night.

There was no mass hysteria unless you lived in an old peoples home or were in media and had to rewrite your playlists.

<comment><USER3> Several million people visited London to leave flowers and stuffed toys.

There were an estimated 60 million flowers - 10 to 15 tons, and they took 6 weeks to clear withthe help of volunteers.

[http://edition.cnn.com/WORLD/9709/11/diana.flowers/](http://edition.cnn.com/WORLD/9709/11/diana.flowers/)

Here's a video of the flowers: [https://m.youtube.com/watch?v=1H1ToOAAsNg](https://m.youtube.com/watch?v=1H1ToOAAsNg)

Just because you didn't see it doesn't mean it didn't exist.

Edit: and you're not going to see it in Sandford Park. The pump room gardens was a lot more sombre. ;-)

</comment></comment></comment></comment><comment><USER4> > The stock markets and banks will close for an indefinite period.

Whatever happens, it will not be _that_. The London Stock Exchange is one of the largest in the world, and it isn't going to close for an "indefinite period" for anything short of a full-scale military engagement. And retail banks have a social responsibility to remain open apart from an occasional holiday (e.g. the funeral day).

</comment><comment><USER5> Brit here... What the fuck? The BBC will cancel comedies with particular references, but not all. I don't remotely believe the London stock exchange will shut down. It took me quite a while to work out if this was a joke!

Even if everything in this article were true the headline would still be complete nonsense!

<comment><USER6> It's Business Insider, the K-Mart of news. Not sure what the British equivalent is...

</comment></comment><comment><USER7> Wait. Hold on, this _isn 't_ The Onion? Reads like it!

(ie The vast majority of claims in that article are nonsensical)</comment>


Human mind excels at quantum-physics computer game - <AUTHOR> http://www.nature.com/news/human-mind-excels-at-quantum-physics-computer-game-1.19725 <comment><USER2> The science-fiction author Greg Egan is probably stoked... Check out his "Border Guards" short story. It had a quantum sport reminicent of this.

</comment><comment><USER3> Wait until they try American fuzzy lop :p

Then they'll find the stack trace of a universe crash when someone wiggles the konami code

</comment><comment><USER4> Nice to see this resubmitted after I submitted it a few days ago but it got no traction. One of the authors is a friend of mine - it's an intriguing piece of work.

<comment><AUTHOR> I call it HN-roulette. As a side note, I am also friends with one of the authors (Jacob). And as a self-ad - I am also developing a quantum game ([https://github.com/stared/quantum-game](https://github.com/stared/quantum- game), albeit with a different goal, and based on a different subset of quantum mechanics).</comment></comment>


Why Home Automation Needs a Real-Time Service Provider - <AUTHOR> http://www.pubnub.com/blog/why-home-automation-needs-a-real-time-service-provider/

<comment><USER2> Quote : "Using a real-time service provider rather than a custom, in-house built real-time solution has numerous advantages ..."

Not really -- it has no advantages at all, and many drawbacks. All one needs is a reliable way to communicate with the house from a remote location, and that already exists in several forms.

This article tries to make a third-party at-cost "service provider" seem like a natural addition to a home automation system. _It 's nothing of the kind_. It's like proposing that a third party should charge you to listen in on your phone conversations and suggest the perfect _bon mot_ while you talk.</comment>


Where Mud Is Archaeological Gold, Russian History Grew on Trees - <AUTHOR> http://mobile.nytimes.com/2014/10/19/world/europe/where-mud-is-archaeological-gold-russian-history-grew-on-trees.html

<comment><USER2> [https://hn.algolia.com/?q=mud+archaeological+gold#!/story/fo...](https://hn.algolia.com/?q=mud+archaeological+gold#!/story/forever/0/mud%20archaeological%20gold)</comment>


The planet needs China to curb its appetite for meat - <AUTHOR> https://www.economist.com/china/2019/10/17/the-planet-needs-china-to-curb-its-appetite-for-meat <comment><USER2> I hit the pay wall, but the introduction of it has two unfounded premises:

\- Eating meat is bad for the planet

\- Eating meat has a direct causation of negative health outcomes

If China were too gluttonous on meat for current supply, then wouldn't that just cause prices to go up, and supply to go up too? Perhaps government central planners and those who support them at the Economist need to learn basic micro-economics.

<comment><USER3> The environmental costs of meat are negative externalities not included in the sticker price.

<comment><USER4> "negative externalities" without rigorous proof of such, are the technocrat's go-to justification for arbitrary control of anyone's behavior.

</comment></comment></comment><comment><USER5> I don't think this article is really fair or complete enough, because we in the western world started a lot of the practice that meat is what wealthy people get, and we sure eat a lot of meat here, and did a lot of the industrial planning to make mass production possible.

I love a burger myself, but for the health of the planet all societies should be eating less meat, reducing its use.

</comment><comment><USER6> Hit the paywall, but a country with a massive population that is helping many of them are leveling up and leaving poverty how can you prevent them to stop eating meat? Is easy to say from a nice office in NY but hard to explain to a farmer</comment>


Nuclear monitoring mysteriously quiet after Russian missile facility explosion - <AUTHOR> https://www.cnn.com/2019/08/19/politics/nuclear-monitoring-stations-russian-missile-facility/index.html <comment><USER2> No need to worry, at most it'd be the equivalent of having a chest X-ray.

<comment><USER3> Not good, but not terrible.</comment></comment>