Python programming is drowning in red tape - <AUTHOR> https://stefanoborini.com/python-programming-redtape-and-blacker/ <comment><USER2> I don't love black's formatting, but this article is just wrong.

1\. Black's formatting of function arguments does not break PEP8, because the closing parenthesis is one level of indentation back, breaking the continuation. (I don't even need to check linked threads. Dude is wrong and must have been told so. He doesn't want to listen, fine. Fork as he wishes, but it's not like I'm gonna use his fork over Łukasz Langa's just because he's tired arguing.)

2\. "Piles and piles of red tape": half are generic project or generic GitHub project stuff, optional of course (oh and black is there so that you _don't_ need editorconfig).

The Python specific stuff?

\- mypy? If you drank the koolaid and now dogmatically type check all your code whether warranted or not. Me? Still enjoying dynamic typing. (Don't get me wrong, I use mypy judiciously.)

\- nose, pytest, unittest, etc.? Sorry you have a choice!

\- Finally, I haven't even heard of bumpversion and setuptools_scm and I've been scraping by pushing out releases after releases. I guess you'll always find a way to pile on the red tapes if you're enamored with stupid tooling to begin with.

3\. Don't see any "My experience with forking black", only saw a few talking points, including useless ones like "Remove the 'for humans' garbage". Guess it's not written yet.

Btw, if a "massive" 3000 line module (lol) chokes up your editor, maybe it's time to get a better one.

<comment><USER3> _it's not like I'm gonna use his fork_

Probably shouldn't no, no use: the article is from february 3, meanwhile the fork [https://github.com/stefanoborini/black](https://github.com/stefanoborini/black) is 40 commits behind and 0 ahead. Meaning the OP didn't do any public work yet.

<comment><USER4> Wrong repo: [https://github.com/stefanoborini/blacker](https://github.com/stefanoborini/blacker)

<comment><USER3> Good find, I stand corrected.

</comment></comment></comment></comment><comment><USER5> Hard forking a project to make use of the hard work the maintainers put in to it, then writing a post doing nothing but insulting those maintainer's decisions / preferences, is not a good look. Neither is throwing temper tantrums in issue threads: [https://github.com/psf/black/issues/1178#issuecomment-565383...](https://github.com/psf/black/issues/1178#issuecomment-565383116)

Also if this developer wasn't so obsessed with bikeshedding, they could just edit the one bit of formatting code and republish. That way they could even rebase off of upstream if they wanted.

Personally, I much prefer black's indentation scheme. I also like spending as little time as possible agonizing over minutia like this.

<comment><USER2> > Reopen the issue right now or I am forking.

This is comic gold.

<comment><USER6> The Black maintainers have the patience of the saints; I would've just responded with a curt "ok, good" and locked the discussion at that point.

</comment></comment></comment><comment><USER7> As a long time Python fan, I find the current state of the language frustrating. Tools like black and poetry are nice, but are not part of the standard library. Yet they seem to be required by every popular project out there. (Also, black's formatting is quite ugly, as noted in this blog post)

Meanwhile, the language itself is increasingly baroque and complicated. Type- annotated, asyncio-enabled Python hardly resembles the easy-to-understand language I fell in love with back in 2006.

Perhaps this is just an "old man yells at cloud" moment...

<comment><USER8> > Type-annotated, asyncio-enabled Python hardly resembles the easy-to- > understand language I fell in love with back in 2006.

true.

i am all for types in general and for types annotations in python. but i have seen some heavily type-annotated python code lately and i don't think that's where we want to be.

we are starting to look like a heavily templatized cpp code.

<comment><USER9> Don't mix things, guy! \- asyncio it's one thing: From my point of view it's amazing... makes python be able to compete with nodejs or go.. (not so hard, if you work also on the browser)

\- mypy: that's another story, but it's also optional, use it if you want... (my opinion, like in typescript, if I want types I will do it with go or rust)

<comment><USER10> Good luck finding a pandas or scipy implementation for go or rust :-/

<comment><USER11> "BlackJack strives to be a full featured crate for general data processing.

Long term goal is to create a lightweight Pandas equivalent by and for the Rust community, but with slight differences in focus..."

[https://docs.rs/black-jack/0.1.0/blackjack/](https://docs.rs/black- jack/0.1.0/blackjack/)

EDIT: That one looks like it's not being worked on actively. Here's a reddit thread with more ideas. Weld looks interesting.

[https://www.reddit.com/r/rust/comments/apo66e/dataframes_wha...](https://www.reddit.com/r/rust/comments/apo66e/dataframes_what_do_you_need/)

[https://www.weld.rs/](https://www.weld.rs/)

And Arrow looks like a new project Wes McKinney is contributing to.

[http://arrow.apache.org/](http://arrow.apache.org/)

</comment></comment></comment></comment></comment><comment><USER12> > It was bikeshedding at its worst

It's ironic that discussions about formatting are taking up so much mindshare in the python community. For years all you'd hear was that whitespace significance was a sign of the lowliness of python. Meanwhile, tons of people were ignoring the bikeshedding and getting things done. Now it's one of the most widely used languages in existence.

The kinds of people that are focused on issues like formatting never seem to be focused on the things that actually matter - being productive and being able to get things done. That's what has always mattered about python, and what has always made it excellent.

<comment><USER13> I completely agree. Who cares if black is ugly? It's a standard which is easy to automate. Want a better standard? Make it. Until then black works.

<comment><USER14> > Beautiful is better than ugly.

<comment><USER15> Things in this industry are divided into those that get complained about and those that get forgotten.

</comment></comment></comment></comment><comment><USER16> > As I adventured in this petty task, it's worth nothing the amount of red > tape required to setup a python project today. You need:

I have never used most of those tools and I've been knee deep in Python for ~4 years. Go look at some of your favorite pypi libraries, chances are they are using a small fraction of those tools as well.

The author is making things overly complicated, but it's all self-inflicted. Just code and be happy.

<comment><USER17> Author didn't even take the time to look at what pre-commit does.

<comment><USER18> And acts as if their project won't work unless they add a code of conduct?

</comment></comment></comment><comment><USER19> Line length is such a hard problem to solve. I wish there was a way to be like don't allow more than 95% percent of my lines to be longer than X.

I run into this in Django a lot with my chained ORM queries. The usually tend to be like 10-15 chars to long. And in this case you have to line break on the parameters or on a '.' which is ugly as well.

While not related to Python, I feel like whenever I write JS code, especially Vue I have a terrible time with line length.

<comment><USER20> Yes

My personal preference regarding line lengths: 80 chars are not enough. And even pep8 says that "foolish consistency is the hobgoblin of little minds"

So try being under 80 chars but sometimes you can't. Also don't break a line that's like 85 chars if it will just make it more ugly

I'm glad Prospector by default doesn't enforce "the cult of 80 chars" dogma

<comment><USER21> God made the VT52 with 80 columns for a reason. ;-)

Now, seriously, that's a matter of taste. I like 80 because it allows me to have two files open side by side on my laptop with a readable font size. As we grow older, what's "readable" changes.

<comment><USER20> I keep hearing these arguments but to me they sound like a romantic attachment to the past. There's no intrinsic quality in using 80 columns besides historical legacy. But hey we can also keep using the size of body parts as measurement units as well, or we can evolve. :)

The 2 column use case is useful, but to be honest, rare. I just tested it here and I still need a big monitor and a "medium" font size for 2x80 to work (not too bad on the vision side, but not too great neither). But it is easy for that point to become moot ;)

<comment><USER22> _> I keep hearing these arguments but to me they sound like a romantic attachment to the past. _

If you think that "I like 80 because it allows me to have two files open side by side on my laptop with a readable font size." sounds like a romantic attachment to the past you should probably just read it over and over again until it doesn't.

<comment><USER20> Did you read the 2nd paragraph?

Just to be sure, I just tested on my notebook screen (13"): 2x80 doesn't fit with a comfortable font size for me, so maybe we should start using 70 chars?

<comment><USER21> On my 11 inch I use a single pane. On the 15" it works well when the laptop is on my lap, but less so when it's on the desk but, then, it has two larger monitors, one horizontal and one vertical, so I can still use the two-pane arrangement (typical use is program and test files side by side).

I cut my teeth on the Apple II+, with 40 columns. I agree that 40 columns would be silly, but keeping the text column narrow so that eyes don't need to move too much helps a lot. It's a readability trick used in print since ever. From my position, the horizontal screen spans about 60 degrees, which feels excessive. By the time my eyes marched from left margin to right margin, I already forgot what I was looking for.

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> Piles and piles of red tape specific to python, but the same theme seems to manifest itself in other mainstream programming ecosystems: .net and java, node and so on. This unfriendly affliction isn't tied to a specific programming language, any programming language could be abused in different ways and the same goes with the ecosystem. I think young ecosystems tend to be attractive just because there isn't too much noise. It's just like starting on a new project versus joining one, unless the existing project is very well organized and maintained and properly tradeoff balanced. This is an art too.

</comment><comment><USER24> "black can kick and scream and its proponent can say that the frowny face is all they need but they are wrong. They are wrong visually, and they are wrong according to pep8. End of story."

The "frowny face" is ): which in Python is all over the place, but hopefully you don't notice it, and if you do, you don't care.

I find it to be sufficient separation between the arguments and the code. It's too bad the author doesn't, but that doesn't change it for me or other devs that are comfortable with it.

This:

        def very_important_function(
            template: str,
            *variables,
            file: os.PathLike,
            engine: str,
            header: bool = True,
            debug: bool = False,
        ):
            """Applies `variables` to the `template` and writes to `file`."""
            with open(file, "w") as f:

is similar to this, which has caught on in React with Prettier:

        <select
          value={fruit}
          onChange={({target: {value}}) => setFruit(value)}
        >
          <option value="apple">Apple</option>
          <option value="orange">Orange</option>
          <option value="banana">Banana</option>
        </select>

The fact that people like it in multiple languages means it's definitely an uphill battle to go back to indenting it further.

<comment><USER25> The current project I'm working on is Python+Black for backend and React+Prettier for frontend and I've really enjoyed the consistency / not worrying about formatting.

</comment></comment><comment><USER26> The author starts by criticising a bike-shedding mentality and then goes on to make bike-shedding arguments. They complain about the non-pep8 compliance, show what pep8 would look like and then argue that there's a better way..

As another commenter pointed out: This is all self-inflicted.

Personally, I don't care how things are formatted, I just want it to be consistent.

<comment><USER27> > _They complain about the non-pep8 compliance, show what pep8 would look like > and then argue that there 's a better way.._

It did not suggest a "better" way, just the PEP-8 way.

It first complains about the non-PEP-8-compliance formatting, then shows a simpler PEP-8 example, and finally shows what will the initial code look like according to PEP-8.

</comment></comment><comment><USER28> 15 years ago I might've agreed with this. The current project I'm working on checks many of OP's boxes: Black, isort, flake8, mypy (although even with a strict configuration we've not had to use generic types yet), pre-commit linting hook, CI, Poetry (because Pipenv was too painful and screw pip's hatred for checksums) and pytest. And by the sound of it, OP would be more than happy to get rid of mandatory code reviews and near-100% code coverage. But the devs are happy, more importantly the client is _really_ happy, and after two years we're still moving fast, merging several features most days with minimal regressions.

Screw the old way. It sucked.

</comment><comment><USER29> I always wonder where are all these spoiled kids who have no deadlines and bike-shed ad-infinitum about the spaces around every single token live :-(

</comment><comment><USER30> I freelance in both python and C#, python used to get the job done in 200 lines vs C# at 500, now its 300|300 and the C# is easier to read

<comment><USER31> Line count can be a misleading way to measure C# length given there are so many braces on their own lines. But also, the thing is, if you're coding in like Visual Studio, you often don't even type so many of the characters -- the IDE does it for you. So I guess the question I would instead ask is: which one did you feel more productive in? (Including everything from IDE startup time to debugging.)

<comment><USER30> Yeah nothing beats Visual Studio. More productive in C# for most things, but cant beat python for data science/ML.

</comment></comment></comment><comment><USER32> Long-time python programmer: we could do a better job with bootstrapping projects. `create-react-app` and `create-probot-app` set up complete projects for ya. How great would it be to have a project skeleton with black + poetry + mypy with everything hooked together?

<comment><USER33> Do you know cookie cutter? [https://cookiecutter.readthedocs.io/en/1.7.0/](https://cookiecutter.readthedocs.io/en/1.7.0/) There are a lot of task specific templates that can be adjusted and open sourced if needed.

</comment></comment><comment><USER34> I use black by default across all our projects now and I'm all for it, but it does seem kind of ironic that whilst the main selling point of black is to take away these kind of code style discussions there seem to have been way more of them since black came to popularity :)

I do expect it'll just be fine once everyone's got used to it. Maybe its a consequence of a tool like this coming into existence on a language with such a long history already.

<comment><USER35> I don't think it increased the amount of discussions, just centralised it. Before it would happen between developers in the same repo, now it's all in the same place.

I think that a good thing. Formatting discussions are important (arguably), but it should be decoupled from a specific project.

</comment></comment><comment><USER36> Python runs the gamut. You can make small scripts that automate simple tasks and you can make huge websites that service millions of people a day. As projects get bigger, they can adopt tools to help them manage the complexity of the project.

These tools make complex projects simpler without complicating simple things. Personally, I wouldn't want to use Python on a large project without these tools.

</comment><comment><USER37> > a CODE_OF_CONDUCT, because we assume preemptively that you are a racist > homophobic asshole, and we have to cover our bases.

This one is a new personal pet peeve. I'm not a racist homophobe--I'm a good person. And though it doesn't give me any authority to speak on the matter, I'm bi and I've dated all sorts of people.

I don't like to be presumed to be an asshole (or presume that others may be), and I'm offended that we have to treat adults like this as part of a new social contract. Can't we just be good to one another? And when there are assholes, can't we handle everything on a case-by-case basis, as it arises?

By putting this into every single project, it feels like we're building an ivory tower that ignores the social progress we've made in the last century. It's disrespectful and patronizing to mature adults to presume how they might behave. I don't like to think of people as great ape descendants, but this kind of thing reminds me we're just animals, fighting and name calling. I don't like that. I don't like how it makes me feel. Software is an achievement of human intellect, and I don't like to be reminded of our flaws. Not in the root of every software project I want to grok or contribute to.

I'm not so close-minded to rule out changing my mind on this matter, but I'm perplexed and, as I admitted before, slightly annoyed. I really want to hear others' opinions on this.

I'm not trying to trivialize anyone's experiences. I missed whatever original conversations there were on this matter and I want to express both how I feel and that I want to know more.

edit: I'm going to be downvoted for even admitting this? That's why I debated even posting. I don't like operating like this.

<comment><USER38> > And when there are assholes, can't we handle everything on a case-by-case > basis, as it arises?

Don't interpret this comment as support or lack of support for codes of conduct (I honestly don't have an opinion about the topic). This is just an observation: there are multiple species of attention-seeking internet troll who want _very, very much_ for you to treat their absurd behavior "on a case by case basis."

> I'm going to be downvoted for even admitting this? That's why I debated even > posting. I don't like operating like this.

The mob is handling our comments on a case by case basis!

<comment><USER39> >This is just an observation: there are multiple species of attention-seeking internet troll who want very, very much for you to treat their absurd behavior "on a case by case basis."

In my experience the exact opposite is true. Most trolls want to argue the finer language of a CoC, and waste everyone's time in a pseudo-legal battle.

"Case-by-case" doesn't mean you have to spend a lot of time. It just means you're asking yourself "is this person being disruptive" as opposed to being compelled to argue technicalities in order to justify your actions as a moderator.

<comment><USER38> I'm talking beyond my expertise here - I've never been involved in a CoC argument, but I have witnessed a lot of trolling - but it seems to me like the same guy who would be happy to argue endlessly about the trouble he's caused and the punishment or censorship that's being meted out on a case by case basis would also be happy to argue endlessly about a code of conduct and its application. Just please pay attention to him!

I sort of suspect the same applies to the third parties who like to whinge about how moderation is being done.

> "Case-by-case" doesn't mean you have to spend a lot of time. It just means > you're asking yourself "is this person being disruptive" as opposed to being > compelled to argue technicalities in order to justify your actions as a > moderator.

Even I have seen the "you handled this one way last month, why are you treating this guy differently today?" arguments. I imagine if you're willing to discuss your decisions at all, you're going to be forced to argue technicalities, if you're infested by the kind of people who like to argue technicalities.

<comment><USER39> >I'm talking beyond my expertise here - I've never been involved in a CoC argument, but I have witnessed a lot of trolling

If by "argument" you mean "flame-war", then I suppose I'm right there with you. I've _seen_ many, but participated in zero.

Still, I think I've observed some regularities. One such regularity is that flame-wars and CoC-trolling almost always take place in communities that treat their CoCs as some sort of constitution, and believe these conflicts should be resolved in a simili-court-of-law.

This is why I continue to oppose CoCs on the grounds that they're ideological tools, in practice. In my estimation, the whole _point_ of pushing CoCs on open source projects is to get them to think in terms of legal process, at which point they can be harassed into behaving a certain way. This is all done on the false premise that internet communities should be run like first-world democracies.

>Even I have seen the "you handled this one way last month, why are you treating this guy differently today?" arguments.

>I imagine if you're willing to discuss your decisions at all, you're going to be forced to argue technicalities.

That's the brilliant thing - you're _not_ forced to argue technicalities. In fact, you're not forced to give _any_ explanation (though that's rarely the best policy, in practice). This isn't a court of law.

Anyway this is just ... like ... my opinion, man. Others can disagree with me and still be reasonable. As I said in another comment, I don't run any popular OSS communities, but if I do, I don't think I'll use a CoC. And I don't think that will prevent me from enforcing good behavior.

(P.S.: I've just reread this comment and it struck me as a bit abrasive and argumentative. I've made a few changes, but please be assured of my courteous intent!)

</comment></comment></comment></comment></comment><comment><USER40> Someone needs to chill. I've been working with Python projects for nearly 5 years and you only _ever_ use a subset of the tools. And let's face it, for the most part Python has needed some sort of formality in the project setup, as it's a free-for-all for how you can set up a project.

The other point is - the _need_ section for a project? Just seems unnecessarily snarky. Case in point:

> bumpversion, because I am too lazy to put a single file with a version > number, and sphinx is too hard to setup to fetch this version number.

Maybe the team kept forgetting to bump the version number and this removed some mental overhead?

No-one is stopping you getting out there and just coding. There's always an ecosystem surrounding a language, maybe just embrace just how huge and ubiquitous using Python has become, and get out there and write some code.

</comment><comment><USER41> Seriously, some people get annoyed over the most trivial of matters. Write your code, make sure it works well and then go outside for a bicycle ride.

</comment><comment><USER42> I'm a firm believer that good code should be consistent in its style, but that consistency should not prevent the programmer from communicating intent via subjective style choices.

I'm OK with following someone else's (be it an individual code owner or a team's) style rules even when I strongly disagree with them (my personal style opinions have even changed on occasion because of this).

I find code linting really useful (and even critical) to make the above two statements work well in practice.

Having said this, "black" makes me not care about the code I write. It makes me feel like I'm serving under a robotic dictator whose sole purpose is purging any trace of subjective readability in the name of consistency. This makes my code worse in ways well beyond style issues. It makes me want to abandon professional programming in python altogether.

Just to make it absolutely clear: I'm not talking about it's style choices, just how inflexible and inhuman it is. It's style choices would be another discussion.

And no, littering code with comments preventing it from reformatting specific sections of code isn't the solution.

<comment><USER25> I have had the opposite experience. Black has been liberating for me, in that I can just worry about writing the code / worrying about the actual business logic, and Black handles all the formatting for me.

I used to worry far too much about whether this style was more readable than that style, which in the end is less important than almost everything else, as long as one of them is actually readable. Now I am free.

No automatic system is going to be perfect. Black might have edge-cases where a different style would be more readable, but that is true for any formatter. Using an opinionated (non-configurable) one means that I spend 0 time on config (not a useful way to spend time imo) and that my code will be consistent with the code of many others.

</comment></comment><comment><USER43> In my experience, anything longer than 1500 lines chokes PyCharm. And I can't blame it, it's still the best Python editor. Everything else feels like writing in Notepad. It's the only tool that can actually helps you navigate/organise/autocomplate/whatever in large Python project, which is a must for this goddamn language.

</comment><comment><USER44> When I saw "red tape" and "PEP 8", I thought this article was going in a different direction...

But nope, the writer is instead vehemently defending PEP 8, which is a arbitrary standard that _no one is required to follow_. Who cares if <insert formatter> does <insert thing>, PEP 8 isn't the word of God.

</comment><comment><USER45> There's a flip side to this: all of these tools are strictly optional to execute Python code.

This means that I can write a one off script to achieve a thing once and the overhead is tiny compared to many languages. I can do it in almost any editor, likely with no toolchain setup at all.

Now, do I want that to be easier to edit in a large team? I'll introduce a formatter/linter. Do I want to publish it on PyPI? Then I'll introduce packaging tools. Do I want to test it? Then I'll introduce a testing tool. Do I want to test multiple language versions? Then a build matrix tool...

Yes, to set up a perfect, gold-plated, fully automated, open-source Python package takes a fair bit of effort, but you don't need it on day one. There are many open-source contributors who will happily propose introducing these things and add them for you!

</comment><comment><USER46> > setuptools_scm, because our versions must change at every new commit.

I don't get many of these points. For example, at the company I'm about to leave, we worked just fine both manually versioning as well as using tools like versioneer/setuptools_scm.

We made it easy to fire up new projects using a dual template/boilerplate repo strategy. Infrastructure like this is in a boilerplate repo and almost entirely setup for new projects from the start. New projects fork a template project and do a small number of basic steps (like naming the project, etc.). Both the template and project repos are update from the boilerplate Git repo as we make updates to the infrastructure--a simple Git remote setup.

</comment><comment><USER47> At the risk of flinging ad hominems, reading his history with the maintainers of black he comes across as quite demented. Even if he were right - which I don't think he is - I wouldn't use software maintained by someone that unstable.

</comment><comment><USER48> > a CODE_OF_CONDUCT, because we assume preemptively that you are a racist > homophobic asshole, and we have to cover our bases.

Really? What about laws? Do you think they exist because it is assumed that everybody is a rapist and a burglar?

<comment><USER49> Laws are enforced and mostly provide an institutional system to deal with redress (for victims) and safety (for society). ie., the judiciary, legislature and police force are the mechanism of the law and _why it exists_. It's not an activity in parliaments declaring their moral beliefs.

"Codes of Conduct" in this vein are just virtue signalling. They appease the martyr-type looking to publicly shame a community for fringe members.

Publicly stating your morality, I'd say, is a pretty good guide to identifying hypocrites who value praise for seeming moral above being moral.

This is evident to most people and to most people in history (see, eg., jesus about people praying in the street). Often being one of the first lessons in psychology taught to children.

The problem for social media is that the vast majority of people who realise this do not like/comment/subscribe. So you end up with toxic echo chambers of praise-seekers, while everyone else rolls their eyes.

<comment><USER48> What are you smoking?

Codes of conduct are enforced too. You can get kicked out of a conference or community if you don't stick to the rules. There may be some martyr-type people, but there are as well people with real experiences with harassment or discrimination.

</comment></comment></comment><comment><USER50> You know what I lack most in this entire discussion and github conversation/bug ? Basic boundaries.

If someone says "no thank you". You can maybe try to ask if there is any wiggle room, or good will possible. But if there isn't, then that's the end of it. Leave the other person in peace.

If you don't like it, then fork it (if allowed). Or get your needs met another way. But trying to enforce them on someone else is not very respectable.

And if someone continues to try and bother you into doing what you want. You say no one last time, and stop communicating.

</comment><comment><USER51> Honestly, this is one of the things I really appreciate about the development workflow at $dayjob. Our Python build process is fairly custom for what amounts to historical reasons, but when you create a new Python project, you get automated builds and tests on all the OSes you care about (through our central build and test farm), a way of declaring dependencies (that has nothing to do with pipenv/poetry/etc., but whatever), flake8 enabled by default easy toggles for mypy and black if you want them, a standard way of doing code reviews, a standard way of doing releases, etc. - simply because it's possible to assume shared infrastructure and shared defaults.

When you're writing open-source code, you don't have any shared infrastructure or defaults to assume, so you have to find some infrastructure (e.g. GitHub + Travis) and you have to basically include all the infrastructure configuration in your project, possibly through adding a bunch of dev-dependencies that set things up the way you want. It'd be interesting to think about how to abstract this further so you don't have to think about that many things.

Some possible inspirations:

\- [https://travis.debian.net/](https://travis.debian.net/) \- if you have a Debian package on GitHub, and you want automated tests, you just grab the .travis.yml file from here and a script written by someone else will set up builds and tests in Docker containers. It does rely on Debian having a standardized way of specifying build rules, dependencies, and tests and a standardized layout of packages, though. But most Python packages have a pretty standard layout, too, and you can imagine having things like isort/flake8/nose/etc. be installed only in CI and not explicitly listed in your code.

\- Rust, I think, makes this a little easier because there's a high-quality packaging system, test runner, formatter, and doc generator all in the standard Rust tools. While Rust-the-language has a standard library that's much emptier than, say, Python's, rustc comes with way more developer tools than Python does. That means that you don't need to install custom tools to handle most of this because it's assumed that people are using the standard ones. (This does, of course, rely on the tools actually being high-quality, and as a young language, Rust has an unfair advantage in watching Python and so many other languages try to figure out what works well and what doesn't. You'd have an easier time in Python if you stuck to distutils and easy_install, but on the other hand, you'd have to use distutils and easy_install.)

</comment><comment><USER52> I have felt like it is way to complicated to do certain things in python... primarily relating to building and packaging large scale code. But, for what I use it for (mostly scripting) it is wonderful. I use it locally, right from the IDE mostly. I almost never call things I make with it from the command line because they are usually single use or low use scripts. Things that I like enough to build into more usually get re-written in c++.

</comment><comment><USER53> This is actually useful, it's a detailed point-by-point example of how not to complain about (or suggest a contribution to) something (open-source or not).

</comment><comment><USER54> This guys starts criticizing the standard four-space handing-bracket indentation used in python, since he seems to prefer using 8-spaces in some cases so that his IDE can auto-fold code (even though it's more human- readable)

I'm sure for every language, some IDE has issues with the most popular code formatting style. Fix the IDE, not the language.

Sounds like an very opinionated rant, rather than anything objective/technical.

</comment><comment><USER55> I like the 80 character width limit and I like having structure. I tend to measure my resolution by how many python files I can open next to each other in vim.

But when methods take a lot of arguments I just use key word arguments. I know this is bad because it's less visible but as long as you document all the arguments I don't see the issue.

It looks good, it fits the code style which eases readability. It's pythonic.

</comment><comment><USER56> It's a shame that no one measures productivity by LOC anymore, otherwise with black I would be the most productive engineer ever. :)

</comment><comment><USER57> "So after arguing about this topic on the black issue reporting, seeing that people kept not reading what was the core of the issue"

...and shortly after ...

"It hurts my eyes to see it. They might have a justification but I don't care. "

That's where I stopped reading.

</comment><comment><USER58> Instead of re-formatting your code, have the editor automatically reformat visually for those that want such and such formatting. Kinda like editors that handle word wrap, they word wrap the lines without inserting new-lines in the source.

</comment><comment><USER59> I would appreciate it very much if Python would have a standard language formatter ala `go fmt` to end the bikeshedding.

I personally use black but I wouldn't mind other standards as long as I don't have to pick and choose anymore.

<comment><USER60> Do you want black to be the standard? If you share your code with others, that's how you're currently voting!

</comment></comment><comment><USER61> I remember using PyCharm and I believe it had a better formatter. On the other hand, I don't really like black. But, as the article said it's recommended by the Python guys.

</comment><comment><USER62> The gall of using full justify to complain about a formatting issue... big facepalm.

</comment><comment><USER63> I'm still using autopep8 and I'm fine with that.. why such a drama?

</comment><comment><USER64> All the "wait no" alternative tool suggestions are silly. There's a best tool.

For packaging a Python project, that tool is Poetry. Pipenv, virtualenv, setup.py, venv, setup.cfg, are _all_ outmoded.

<comment><USER65> Every two years I've looked at Python again and been told that the horrible mess I saw last time is obsolete, there's a good tool now that fixes all the problems. Every time it's just been an even bigger mess with one more tool on top.

<comment><USER66> [https://xkcd.com/927/](https://xkcd.com/927/)

A bit to the topic - what's wrong with good old:

      python -m venv env
      env/bin/pip install <whatever>

    ?

<comment><USER65> Its behaviour isn't reproducible unless you've frozen your dependencies, and once you've frozen them it becomes very difficult to upgrade any of them. And if your project is itself a library then freezing is basically not viable, so every developer is testing with a slightly different set of dependency versions.

This combines poorly with the fact that venvs are stateful and easy to get mixed up. If you accidentally run the pip install for project A in the terminal window for project B, then you have quite possibly permanently fucked up that venv - there's no reliable way to roll back to the previous state - and if you regenerate it from scratch then, per the previous point, you'll probably get different versions of your transitive dependencies. If your tests were previously passing and now fail - or, worse, were previously failing and now pass - then you're gonna have to abandon whatever you were previously doing for an unknown length of time and deal with this.

Beyond that, those two commands (already twice as many as I'd like) don't tell you anything about how to run unit tests or package up your application for distribution, so you've got a bunch more commands to memorise, which tend to vary between one project and another because how to do those things also changes every two years. And since venv and pip were only included in quite recent versions of Python, if you've got some projects that are using older versions too then you have to memorise a couple more sets of commands for that stuff as well. The whole thing's such a mess that it almost makes docker seem like a sensible idea.</comment></comment></comment></comment>


Google Building Water Recycling Plants for its Data Centers - <AUTHOR> http://www.datacenterknowledge.com/archives/2010/04/20/google-boosts-its-water-recycling-efforts/

<comment><USER2> Can someone shed some light on why the water needs to be released into the sewer systems at all? Instead of recycling someone else's water, why not turn the pipe around and recycle their own? Does it take too long to cool back down to a usable temperature or something?</comment>


Weekend Project Feedback? Text message recipe search - <AUTHOR> http://www.recipeboom.com/

<comment><USER3> I did a 'recipes by email' system years ago - this is similar - <USER2> potentially useful. I got the most enthusiastic response from the blind community who loved the 'text-only' aspect. My 'search by email' system got similar support from that community too.

Good luck.</comment>


Put a Propeller on It: The Golden Age of Tinkering - <AUTHOR> http://theappendix.net/blog/2014/2/put-a-propeller-on-it <comment><USER3> The problem with golden ages like this is that they commit suicide.

Alberto Santos-Dumont could get away with flying his personal dirigible to Maxim's because he was the only one doing so. There were no other aeronauts dashing off for espresso for him to crash into, or to crowd him out from being able to tie his flying machine to the horse hitch in front.

Which is great for the first person to do something. But if the "something" is sufficiently cool -- and I think we can all agree that having a personal blimp would be pretty cool even today, never mind 100 years ago -- other people look at it and think "man, I wish I were able to do that."

So they go off and build their _own_ flying machines, and before long there isn't one aeronaut trying to tie up in front of Maxim's, there's ten or a hundred or a thousand. And, inevitably, because the followers of the genius usually as bright as the genius is, they start crashing into each other or into things and people on the ground.

All of which creates demand for bring order to the chaos in the skies, both from people on the ground and the aeronauts themselves. (The people on the ground are tired of having daring aeronauts fall on their heads; the aeronauts are tired of having to argue every question of who has right of way when two dirigibles meet from first principles.) Which means regulation and licenses and safety requirements. Which closes out the backyard tinkerers.

It's all very sad, if you're a backyard tinkerer. The very thing that made what you were tinkering on so cool eventually makes it impossible for you to keep tinkering on it; you either have to scale up or shut down. But whaddayagonnado? Such is life.

</comment><comment><USER4> Yes. Here's Lawrence Sperry, inventor of the gyrocompass and the autopilot, landing his Sperry Messenger in front of the U.S. Capitol in 1922. (He needed about 600 feet of clear road to do that, for a 400 foot landing run.) Nobody panicked over this, even though this was after WWI and aerial bombing was known.

[https://en.wikipedia.org/wiki/File:Lawrence_Sperry_at_Capito...](https://en.wikipedia.org/wiki/File:Lawrence_Sperry_at_Capitol_steps.jpg)

<comment><AUTHOR> Seems that landing experimental aircraft on the Capitol steps was a thing. Senator Hiram Bingham landed both a blimp (1929) and this "autogyro" (1931) there too:

[https://uschs.files.wordpress.com/2012/05/bingham.jpg](https://uschs.files.wordpress.com/2012/05/bingham.jpg)

(Fun fact: Bingham was the partial inspiration for Indiana Jones).

<comment><USER5> as recent as 1957, while not Capitol Hill, pretty close though

[http://en.wikipedia.org/wiki/Ryan_X-13_Vertijet](http://en.wikipedia.org/wiki/Ryan_X-13_Vertijet) :

>On July 28-July 29, 1957, the X-13 was demonstrated in Washington, D.C. It crossed the Potomac River and landed at the Pentagon.

</comment></comment></comment><comment><USER5> golden age is created by people. By people who has at least some money, knowledge/skills and most importantly - passion. We have only one Musk, they had hundreds - that is the difference.

With respect to the new frontiers to explore our age isn't less exciting - <USER2> have access to DNA to tinker, cyborg-ing, fusion, space.</comment>


Andrew Hacker and the Case of the Missing Trigonometry Question - <AUTHOR> http://blogs.scientificamerican.com/roots-of-unity/andrew-hacker-and-the-case-of-the-missing-trigonometry-question/ <comment><USER2> Interesting case. IIRC in some test, the students are supposed to remember the angles of the 3-4-5 triangle. I think it was a test form Peru, but I'm not sure.

Perhaps the students have to study that for the test, but it was not an actual question of the test.

As a mathematician, I consider thirty-something, ninety, fifty-something a good enough answer, but the exact numbers are not very useful. (If you pay me 1 thousand dollars I can try to use the Taylor expansion of arctn to get the exact number with a few decimal places, and for 1 million dollars I can try to remember them.)</comment>


How Twitter increased conversion rate to 29% by adding 1 extra step. - <AUTHOR> http://www.lukew.com/ff/entry.asp?1128

<comment><USER2> Twitter did not increase conversion rate by 29% by adding "1 extra step".

Comparing the Before and After:

\- Before uses CAPTCHA, After does not.

\- Before uses green "arrowed" image buttons, After uses plain grey CSS buttons.

\- Before does not show users a progress bar, After does.

\- Before does not use floating field explanation screens, After does.

\- Before is set against a green background, After is set against blue.

I buy in that the extra step is helping, but attributing 29% to that single change is inaccurate.

The handful of points above properly tested against ~350,000 new signups a day certainly could have driven the majority of that impact.

<comment><USER3> I wouldn't be surprised if the missing captcha is entirely the reason

<comment><USER4> Honest question: is your opinion that the 29% is composed of automated bots who were blocked by the CAPTCHA before, or is it composed of people who just don't like CAPTCHAs?

<comment><USER5> ...or people who can't do CAPTCHAs. I regularly have to retry CAPTCHAs 3 or 4 times because they are utterly illegible. Sometimes I just give up and move on. Maybe I'll build a bot to help me solve CAPTCHAs!

<comment><USER6> Same. It's ridiculous that someone with 20-20 vision and good enough vocabulary to ace the verbal SAT fails roughly the first 3 or 4 tries at many CAPTCHAs these days. Some are just damn near impossible to decipher, and some I could have sworn I got right and checked multiple times b/f hitting submit, but failed anyway.

I'm so sick of them now that I only do the ones on really consequential websites, like ones handling my money. Any that I can just skip, I do.

Once or twice I've gotten a truly bizarre word I suspected doesn't even exist, and looked it up on dictionary.com to find it's not even in there. I don't bother expanding the search to the Oxford English dictionary for those, since I'm already annoyed with the wasted time.

It seems CAPTCHAs are one are where the tech is getting worse, not better.

</comment></comment></comment></comment></comment><comment><USER7> I was slightly confused by the graphic and though step 2 was the redesigned step 1. I thought it was clever to see what your friends are up to before you join.

Selecting hobbies and interests beforehand is good as well, since some people might not have social circles that use Twitter.

So I agree with the author in that if account creation was last, it would be the most interesting.

</comment><comment><USER8> That suggestion page has an awful lot of similarities to the new Digg sign-up process. Who's came first? I would have to imagine Twitter but I wasn't paying particularly close attention.</comment>


Ask HN: How do you recognise good business guys if you're a programmer? - <AUTHOR>

Inspired by the recent HN post of "How do you recognise good programmers if you're a business guy? -- http://news.ycombinator.com/item?id=515900", I wonder what light would the people here (presumably much more programmers than business guys) shed on how to find/recruit good business partner/key employees? <comment><USER2> I'm not a business guy but I've been around a lot of them.

Honesty and self-honesty are key. Curiosity too. They best business people tend to teach as they go... but the worst like to lecture as they go. So talkativeness is not always a good sign.

Greed in a business person is not fatal, but needs to be watched. Hunger is a better motivator than greed because it's self-limiting.

Business school is not always a good indicator -- I've met both idiots and geniuses who went to Sloan, LSE, EDHEC, etc.

Self-taught or self-made business folk tend to have smaller horizons. You find them a lot in businesses that are less risky, more limited, yet profitable -- eg contract software for government.

Scions of old successful (eg 4 generations) families can be very good as long as they are not too emotionally scarred. If they have something to prove, let them do it somewhere else.

People who have entrepreneurs (parents, aunts, etc) in the family tend to have more natural and secure approach to business overall. They've seen it done from birth.

One good negative indicator is being too "fancy". If a person seems to create complex deals just for the joy of it, run away. You want elegant power in business deals just as you want it in programming. Being too fancy is a sign of inexperience, but may also be a sign of greed or worse.

Another negative indicator: I've never seen a VC make an outstanding CEO.

</comment><comment><USER3> So, I'm a business guy and currently doing my Masters in Strategy and International Management, then I will go on to take my MBA in Singapore. So much about how I got to know a lot of business guys, so now how do you recognize good ones:

1\. There is a lot of arrogance among business people. They (probably as engineers) think that they know things, that others don't. If you meet someone with an arrogant attitude I would steer away from him. And even if it is only because it will e hard to work with them.

2\. Smart. Really good business people are truly smart, but how do you recognize a smart business guy? I have found, that people who have mastered their subject can explain it in very simple terms. They can teach people the reasons behind their decisions and why they are doing something the way they do. And most of the time that explanation (at least in business) will be very straight forward and seem like something that is obvious, but it wouldn't have occurred to many other people and it had to be spotted. it's almost like good business ideas, the best ones often are obvious and can be understood by almost anyone.

3\. Good business guys are curious. They are broadly interested and fascinated with a lot of stuff. In the article that spun off this thread the Blogger mentions curiosity and self teaching as important in a good programmer. And I would reiterate that point here. A good or even great business guy probably isn't into business because of business but because of other interests he wants to connect / advance. I for example study business because I am very interested in Technology (IT and classical engineering), Biology, Chemistry and Physics. My interest in business lead me to pick up that for my studies because it makes it possible for myself to later connect my areas of interest through my work. Am I a good business guy? I don't know, but I hope to be one day. But I have seen a lot of good business folk who shared that trait. They start learning about e.g. programming and they will probably never be as good as the experts in such a field but they will start to understand a field and can contribute a sense for business and the business perspective to the field.

4\. A good business guy understands the field he works in.

</comment><comment><USER4> A friend of mine is working on a startup, and she's non-technical (not retardedly non-technical...she used Linux on the desktop for many years, and has designed and built a number of very nice looking websites, but she's not a developer or an engineer by any stretch), so she'll be looking for an engineer. She asked me what she should be doing to insure she is able to attract a good technical co-founder.

Here's what I told her engineers look for:

Proof that they get shit done. This is the first thing you'd look for in an engineer for starting a company, and it's likewise the same thing you need in a business guy. The definition of what shit needs to get done is very different, but it's still the most important thing. So, what projects have they headed up and gotten done? "Business guys" need to wield the phone, email, project budget, underlings, teammates, etc. in order to make things happen. If they have excuses for why their team or their prior workplace was crappy and held them back, or whatever, they might not have the right attitude.

Be willing to do the stuff that hackers hate. This usually includes business development, accounting, taxes, legal, etc. A lot of talking to people and choosing vendors and service providers, and figuring out ways to get everything cheaply but in a timely manner.

Decisiveness is probably important in a business guy. Not recklessness...just the ability to make decisions in a reasonable time. They need to be a good and quick judge of character, since they'll be making most of the deals...and a bad partner early on can spell the end of your startup.

Likewise, they need to be honest and have character, themselves. There _are_ business guys who get ahead by screwing others, but you probably don't want to work with them (because they'll screw you, too), and unless they're _really_ good at it, in the end it will backfire. The tech industry is, perhaps surprisingly, polite. Competitors are friendly with each other, and very rarely bite each other in anything other than honest ways...because a competitor one day is a partner the next, and the more you grow and expand your offerings, the more this will happen. For startups, a competitor one day may be an acquirer tomorrow, as well. So, don't work with people whose primary competitive philosophy is "screw everybody else". Competing aggressively is obviously mandatory. But, if they'll say anything to make a sale, it's not good for the long term life and growth of your business.

Bring money or the connections to get money. This is crass, of course, and there are lots of other useful things a business guy can bring to the table, but bringing money to the table is an indicator of almost everything else you're looking for in a business guy (either that, or dumb luck). It's probably not possible to have good money from a good investor on the table without a prototype...but if they can arrange a meeting with an angel two weeks later to show off your early stage prototype and get the wheels turning on raising a round, you might have a winner.

Be easy to work with, and willing to learn. In the first few months, there's not much to do besides "make something people want", so they need to be able to be a contributing partner on that task. Design, maybe. Docs, maybe. Getting feedback from potential customers, definitely. Figuring out the data you need to build the right things for the right customers. This one is brute force Googling and making phone calls. Finding out the size of the opportunity (and whether other opportunities could be addressed with the same technology), making an honest assessment of the competition and figuring out their weaknesses, etc.</comment>


What are the most common myths or misconceptions about "The Cloud"? - <AUTHOR>

What are the most frequent misconceptions you come across that fall within the realm of cloud computing? What's the best way you've found to clear up a lay person's misunderstanding when it comes to this general topic? <comment><USER2> I often point out that The Cloud is insecure, in that anyone at the cloud provider who can access the server your information is on, has access to your confidential data.

For the life of me I cannot fathom why anyone trusts proprietary source code to repositories that are not run in-house.

<comment><USER3> Even if you are not using cloud you systems / network administrator can see any data including sensitive business document above their paygrade, but still a good sysadmin / netadmin won't do that because we have code of ethics : [https://lopsa.org/CodeOfEthics](https://lopsa.org/CodeOfEthics)

<comment><USER2> My understanding is that one of the advantages of Novell Netware was that it enables admins to do things like backups, without possessing the credentials to view the documents they were backing up.

If that was actually the case I don't know how it was implemented.

</comment></comment></comment><comment><USER3> some people still think that virtualization is cloud even though it's only a building block of cloud.</comment>


Competition in a crowded field? - <AUTHOR>

I've been working in financial services for 10 years as a developer. I've written almost the same risk management system "from the ground up" about 5 times for different companies. My current company has received offers to buy my program and is considering it, but I know if they did they would never really compensate me as I deserve. They would probably not be able to commercialize the program without me. So, I'm thinking of taking off on my own to do it again, but this time forming a company and licensing it. The scary thing is that it's a field crowded with some pretty big names and I'm afraid I'll have problems getting any traction at all. There is no system out there that does <i>all</i> of the things that ours does, but all the pieces are out there in one form or another so it'll also be hard to really differentiate myself from the crowd. Is this crazy? <comment><AUTHOR> come on guys. I really need some input on this.</comment>


Ask HN: Help create a new word: Solusify - <AUTHOR>

We've all done it.  One post on HackerNews and suddenly we begin to question everything we know about programming. You dive through benchmarks, bug lists, mailing lists, etc. and four hours later you realize you are on step 8 of a tutorial for some new framework you think will solve all your problems.
I humbly propose a new word specific to this issue:
Solusify (n.) The act of spending more time researching and learning new tools than actually using them in production or solving problems.
e.g."Stop solusifying your nomenclature and get back to solving real problems!" <comment><USER2> I'd prefer "ergaleíoskepsis" for this (from the greek "tool" and "gazing", and by analogy to the more common "oomphaloskepsis", navel-gazing.)

</comment><comment><USER3> Is it meant to be an amalgam of 'solution' and '-ify'?

Can you differentiate between other similar already in use terms like 'yak shaving' [http://en.wiktionary.org/wiki/yak_shaving](http://en.wiktionary.org/wiki/yak_shaving) or 'bikeshedding' [http://en.wiktionary.org/wiki/bikeshedding](http://en.wiktionary.org/wiki/bikeshedding) ?

<comment><USER4> Also, 'analysis paralysis' seems to be a related concept.

<comment><USER2> I would go farther and say that its not that analysis paralysis is a related concept, but that the concept here is a special case of analysis paralysis.

</comment></comment></comment><comment><USER5> Care to explain the etymology?

</comment><comment><USER6> @ChikkaChiChi

I hoped to find a tool that helps me creating "new words" for a potential start-up by putting up words relating to the business.

We all know how hard it is to find an available domain, but it's equally hard to come up with something short, but memorable too.

You see, not all of us look for stuff that they won't ever use.</comment>


The Tesla Bricking Story? It's Nonsense - <AUTHOR> http://techcrunch.com/2012/02/22/the-tesla-bricking-story-its-nonsense/

<comment><USER2> If anything, this confirms the other post. Making the parallel between standard automobiles and the Tesla makes some sense to me, as does comparing motorcycles to the Tesla. I feel like even given these comparisons, it does not seem acceptable that they can permanently brick in the way that they do. I can understand why the owners would feel upset.

<comment><USER3> Do you think it's acceptable that Ford will not honour their warranty if you don't change the oil in your car?

<comment><USER2> I think that it would have been reasonable for Ford to honor the warranty for cars in the Model T era. Fully electric vehicles have not been around long enough for it to be common knowledge that draining a battery is as serious an offensive as never changing the oil in your car. I understand the reasons that they aren't honoring the warranty. I think that Tesla could consider replacing the battery for the early adopters that got surprised by this and make it more clear to future consumers that bricking can happen.

</comment></comment></comment><comment><USER4> Where's the nonsense? This doesn't seem to debunk the claim that if the batteries go totally dead you are screwed, out a $40K battery pack.

> Tesla batteries can remain unplugged for weeks (or even months), without > reaching zero state of charge.

Maybe I'm trying to find a conspiracy here, but the batteries generally _aren't_ unplugged; they are connected to the car and it's drawing a small current. That drain from the mostly-idle Tesla's electronics are enough to flatten the battery faster than if it was truly unplugged.

<comment><USER5> That quote should be read as "tesla batteries can remain unplugged from a power source for weeks".

I agree this article doesn't debunk the other article.

I haven't read the Tesla documentation, but if "bricking" is real I'd expect some firm warnings about it. The other article said that those warnings were absent; it also claimed that the documents played down the risk.

</comment></comment><comment><USER6> The TC story doesn't seem to back up the headline "It's Nonsense," it just shifts the blame to the car owners.

<comment><USER7> Why is everyone complaining about a Techcrunch headline? It's Techcrunch^^

</comment></comment><comment><USER8> I don't get how the story remotely supports the headline. Nothing in Tesla's long-winded statement says the bricking story is not true.

</comment><comment><USER9> IMO, this is a huge problem for the future of electric cars. If you own one, you will always have to worry about this when going away for extended periods. When I had my honda insight, just leaving it un-driven for 2 weeks would seriously deplete the battery. I never killed the battery, but after the car had 130k miles, just leaving it garaged for a few days would noticeably deplete the charge. I'm afraid that electric cars will become the new disposable car at some point because no one wants to flip the bill for a new battery pack.

</comment><comment><USER10> I thought the story was a bit overblown when it was first posted, and still do, but I don't see how you can call out another article as "nonsense" without refuting a single factual claim it made.

"The Tesla Bricking Story? It's Overblown"... okay, yeah... but "Nonsense"? Prove it.

</comment><comment><USER11> And what about Tesla remotely tracking vehicles without the owner's knowing?

</comment><comment><USER12> I used to read techcrunch pretty often.. often enough to know that this "article" is damage control then anything.</comment>


Quantum Computing Through Quaternions (2008) [pdf] - <AUTHOR> http://www.ejtp.com/articles/ejtpv5i19p1.pdf <comment><USER2> I can't tell whether this has much substance. It doesn't seem to ease calculations in a classical simulation of a quantum system. Also not sure whether it adds any substantial understanding beyond the Bloch sphere view of a qubit, especially when you start extending to multi-qubit systems. Given the normalisation condition for a qubit amplitude, it is natural to define a qubit using three angles for which a quaternion is well suited ... And which is already captured by the Bloch sphere picture.

Another thing is that Pauli matrices which are unitary transforms of qubits represented in the conventional column vector form are themselves quaternion bases. So in essence what this is saying is that you can cover the space of qubits using exponents of Pauli matrices applied to eigenstates.

Don't think so? Happy to hear alternative views.

</comment><comment><USER3> Very interesting ... A friend (senior lecturer in astrophysics and mathematics) is looking for a collaborator for this application.

<comment><USER4> That's interesting. Do you have a page/contact? I am looking for projects in this area</comment></comment>


Show HN: Elph – Highly Scalable Blockchain Infrastructure for Ethereum - <AUTHOR> https://elph.com <comment><AUTHOR> Hey HN, co-founder of Elph here!

Excited to share what we've been working on.

Elph is highly scalable blockchain infrastructure for Ethereum. We're capable of handling over 5,000 transactions per second (vs. Ethereum's 15) at a fraction of the cost by using a MapReduce-like technique (lots of transactions that get executed on our chain that get submitted to Ethereum as a single transaction) that retains the trustless and security properties of Ethereum today. (For those in the blockchain space, this is done using concepts from Plasma.)

Happy to answer any questions!

<comment><USER2> for those who want to understand the business implications, what would be the most common use case of Elph?</comment></comment>


I love my Amazon Workspace - <AUTHOR> https://aws.amazon.com/blogs/aws/i-love-my-amazon-workspace/ <comment><USER2> Funny thing, I need to use an amazon workspace from time to time for my job. I've managed to keep 100% Linux (for my personal boxes) professionally and at home for a good long time now, but a specific (and thankfully rare) access requirement was solved by using a Windows Amazon workspace.

Guess what? No Linux workspaces client.

So now to gain network access to a particular resource (a web address), I run the Windows workspaces client under Wine under Linux, which gives me access to a properly virtualized Windows workspace, which gives me access to a web address that is hosted on Linux.

It would be a comic tragedy except that it was so damn easy to make it work, and it works very well.

<comment><USER3> It can be made to work under wine... or you can still use rdp.

<comment><USER4> The Workspaces FAQ appears to disagree, but I'd be interested in learning if one can indeed use RDP.

[https://aws.amazon.com/workspaces/faqs/#Clients_User_Experie...](https://aws.amazon.com/workspaces/faqs/#Clients_User_Experience)

"Q: Can I use any other client (e.g., an RDP client) with Amazon WorkSpaces?

No. The only supported clients for WorkSpaces are the free clients provided by AWS."

<comment><USER3> I did it.. So it does work :)

If you use public IP addresses, just use that.. or leapfrog rdp through an ssh tunnel or VPN on a linux instance on the same VPC.

Something like this, to tunnel through a linux instance:

      #!/bin/sh
      sshuttle -D -r ubuntu@linuxinstance-in-vpc 172.16.X.0/24
      xfreerdp +clipboard /rfx /smart-sizing:800 /d:CORP /u:demo /v:172.16.X.X

</comment></comment></comment></comment><comment><USER5> In science, it's common to run one week schools on various topics for graduate students and young postdocs. When software is involved, we spend a lot of time dealing with the students' installation issues. I tried the VM approach once, but the images are relatively large and when I tried it with VMWare, the registration process was still a bit cumbersome. This time I tried Amazon workspaces for about 30 students. Though I had some initial growing pains (be careful on permissions!) and they did (I think they were just scaling up when we ran it), I would use it again. It simplifies the Mac/PC issues that we had and makes it easy to share materials. We did have one student with a linux box and it's a shame that Amazon didn't (doesn't?) have a windows client, but overall I had a positive experience. I saw that someone mentioned that there is an Azure option that's similar? At the time, I saw that VMware also had an offering. Has anyone tried it?

*disclaimer these are my personal opinions, not my employer's

</comment><comment><USER6> Worked on Workspaces at AWS for about a year, on the software clients in particular. I think their product has potential but for the moment is limited by some underlying technology decisions made in the interest of a quicker go- to-market.

I would not be surprised if at some point soon their underlying tech became all first-party and we saw some significant improvement. There are plenty of resources throughout AWS that with some work could be composed into a better stack than the 3P pieces and protocols they use currently.

I don't think I've disclosed anything here that isn't already public knowledge, past my own wild speculation based on zero knowledge of internal workings since my departure. If anyone has any questions that I can answer without endangering myself to NDA issues, I'd be glad to answer about Workspaces.

I think it's a great product for those who benefit from it; I ended up leaving the team because while the technological challenges were interesting, I couldn't put myself in any potential users' shoes, and therefore really couldn't drum up much organic passion of my own.

<comment><USER7> Is there any possibility of insuring that Workspaces will be accessible to users of assistive technology? I use a WIndows PC because that's what has the best screen reader support, a quick google search didn't turn anything up about running a screen reader in the workspace and having it's sound piped back to the thin client.

<comment><USER8> coincidentally, that's what I was doing in march, and... surprisingly, it sort of worked.

client had JAWS, and the JAWS installer read itself to me while it was installing - I was rather impressed. Had to reboot, and it never came up after that - assuming it was related, but never figured it out.

The NVDA screen reader _did_ work, as well as the windows voice assistant thing itself. both would generate audio in the workspace, and I was hearing it over my el capitan local setup.

<comment><USER7> The Jaws problem may have been video card drivers. Jaws installs it's own video driver that I have found to not work under Virtualbox unless guest additions are installed. I could see there being something in the Amazon virtualization solution that could cause problems with the driver.

<comment><USER8> I wanted to dig in to a bit further, but the client just reset the whole thing and said "you don't get JAWS now". Project cancelled soon after that - unrelated to JAWS/workspace.

Don't have time now, but hopefully it will be resolved at some point. NVDA was 'good enough' for the testing I was doing, and it was pretty slick to know the audio was streaming and working without any extra configuration. Probably old hat for some folks, but I'd never experienced that before. :)

</comment></comment></comment></comment></comment><comment><USER9> I love that this idea never goes away (in my first real career job, I supported actual dumb terminals that we replaced with desktops). It never seems to take off either, but _it 's always just about to._ I don't mean to criticize! WorkSpaces sounds pretty great.

<comment><USER10> I've seen variations work quite well.

The first time was in a startup company. We hired a brilliant and unconventional sys admin who was somewhat reminiscent of the Gilfoyle character in "Silicon Valley". After being hired, he took a few weeks to analyze how the user groups worked. Then he disappeared into his work room for a few weeks, often working late into the night. When he finally reappeared, he had set us up so that our desktops were running apps from the Windows servers. (At the time, we used Windows 3.51 on the server with Novell ?Netware?.) I ran everything from Powerbuilder to an Oracle standalone instance to Word (or Wordperfect) from the server. When I needed additional tools, he was very cool about installing them.

The second time was at a training session at Sun Microsystems' Burlington, MA campus. My first day they handed me a key card. The card allowed me access to the building and rooms I was authorized for. I also needed it for access to workstations. I could go up to any workstation in the lobby and authorized rooms, insert it into a card reader, and instantly have my desktop appear in the state I left it in during my last session. It was a fully graphical desktop. Absolutely eye-opening experience working there for a few days. It spoiled me. I've been looking for that experience again, but haven't found it.

<comment><USER11> These workstations: [https://en.wikipedia.org/wiki/Sun_Ray](https://en.wikipedia.org/wiki/Sun_Ray) ?

<comment><USER12> They had those at my university. I loved them

</comment></comment></comment></comment><comment><USER13> OK, so Workspaces appeals to me (C# developer for a small company, no IT team, working from home) as redundancy - at present, if my laptop goes bang everything is backed up in "the cloud" (be that Azure, S3, somewhere) but it's the time getting everything restored like the multiple Visual Studio versions I need, the connectors for SSRS report designer etc. that I can see Workspaces working out for me (laptop goes bang, borrow my wifes one, connect to Workspace, carry on as if nothing happened until I can get a replacement)

However ... Workspaces looks like it needs an Enterprise AWS subscription ($15k/month?) so what alternatives are there for someone like me, where someone takes care of providing a Virtual Desktop, making sure it's running, backed up, connectable from anywhere (obviously with me responsible for ensuring off-site backup of any code/deliverables as I am at the moment) or is it best just to run up my own VPS with Win2k12 or similar and use that?

 __EDIT __Ignore that, I was getting a weird redirect where trying to subscribe to WorkSpaces was taking me to the Support Subscription page, and just would not let me subscribe to WorkSpaces, but it appears to have sorted itself out now

<comment><USER14> Not sure where you saw that you need an Enterprise AWS subscription. I didn't.

I tried Workspaces for a month and it was decent. There are a few things it does better than RDP (especially on OS X). I did, however, switch to running Windows Server 2012 R2 on Azure instead, though that was because it was effectively free thanks to BizSpark.

<comment><USER15> Any noticeable latency differences between RDP to Azure and AWS Workspaces? I've noticed that the modern.ie free instances, for example, do have a noticeable amount of lag.

<comment><USER14> I have almost no latency issues with RDP in Azure. I can watch a YouTube video with no major latency. Workspaces wasn't terrible in that regard but definitely not as smooth.

The Azure machine is a bit beefier than Workspaces, so that probably factors into it.

</comment></comment></comment></comment><comment><USER16> \- Q: What Operating System does a WorkSpace run?

\- WorkSpaces provide users with the Windows 7 Experience, provided by Windows Server 2008 R2.

Suits only a windows user - lets say you need a ubuntu machine; the EC2 m3.large similar to the "Performance" workspace bundle. The difference between AWS Workspace and AWS EC2 is huge ($48), while AWS Workspace will cost you $60, EC2 Machine with same configuration will cost you $108.

But the advantage with the EC2 machine - is you should be able to shutdown the machine when not in use, so a 50 Hour/Week will cost you only $39, that is $21 less than the AWS Workspace. So any AWS workspace single user who can use Linux Machine does not benefit from AWS Workspace.

<comment><USER17> Generally speaking the difference is in the client you connect to the system with. Most "VDI" solutions deal extremely well with latency/packet loss. A standard VNC connection... not so much. If you're just using a CLI it probably is a wash, but for a GUI there's a pretty big difference.

</comment></comment><comment><USER18> History truly does repeat itself. Shall we go over the shortcomings and problems with thin clients again?

 _Network problems mean you are screwed._ Even short of full on connectivity loss, if you're suffering congestion or packet loss for whatever reason, a thin client can quickly become unusable. Right now I work remotely a lot, from accessing remote git repositories to doing work on c9.io (which I love.) But if I do suffer network problems, I _can_ work locally. It's not a full on loss of productivity.

Yes network ubiquity, reliability and speed has never been better than it is today. But it is not 100%. Especially if you live in a rural area like I do.

 _Datacenter problems mean you 're screwed._ Datacenter suffer outages too. Even AWS. Again, with a traditional client you can cope with it. With a thin client you are totally hosed.

As with network issues, there are lots of datacenter problems that aren't full on outages. Hardware and otherwise.

 _Even Thin Clients suffer obsolescence._ One of the tried and true dreams of thin clients is that they don't go obsolete. Anyone who has been on this rodeo before knows that's just not true. Network connectivity gets better, display connectivity gets better, power usage improves, etc. And with today's desktop and laptop speeds improving at the snail pace they do, a thin client really isn't offering any bonus here. If you buy a good laptop or desktop today it's going to last you years and years. (The MacBook I'm typing on now is 4 years old and showing no signs of age.)

 _It is slower._ Despite this raving endorsement (totally unbiased I'm sure.) Thin clients that have to reach out across the network for every action are always going to be slower than a machine that doesn't. The network is always adding latency. Whether that bothers you or not largely depends on your own tolerances and what you are doing.

There's a reason thin clients always make a comeback and people are excited for a while and then realize "Oh wait I want a traditional machine again please." This cycle has happened so many times.

</comment><comment><USER3> I have to agree with this. It has been a real pleasure to use. I have managed about 50 workspaces... but there has been some annoying things:

      - inability to modify workspace t-shirt size
      - workspace features using AWS services but mostly hidden
      - lack of ability to re-brand the client (i did rewrap the installer with custom artwork but breaks on upgrades).
      - Linux client... still waiting. (but can run under wine)
      - not easy to use 2fa support
      - not easy to set default printer.. they are non-static
      - reboots are slow
      - no ability to declare exit IP location... UK people don't want to appear in Ireland (bad for google.com and credit card payments).. have to spin up a standalone proxy using a different provider (thanks digital ocean).
      - BYOL is great.. but inbuilt support for office365 would be better.
      - No Amazon Elastic File System yet in Ireland.. so have to run a separate fileserver for network drive.
      - Not been able to get vnc as a service working.. and can't use the windows UAC without it.
      - No ability to use custom templates on user provisioning emails.
      - Can't use human interaction device, such as dictate pedals for secretaries.
      - .. and some more.. these are the top of my head.

<comment><USER19>
      inability to modify workspace t-shirt size

What?

<comment><USER20> I _think_ it's a small/medium/large reference, but it's definitely an unconventional way to put it.

<comment><USER21> yes, common estimating method. My group at Lab 126 used it.

you're correct his usage is uncommon

<comment><USER3> Sorry, I've seen it used in a few environments now... felt like it was common nomenclature. Googling around seems to confirm.

<comment><USER21> I don't think you need to apologize. the nomenclature is common, but the usage was new to me. I like neologisms so I'm filing the numbers off your usage and stealing it :)

</comment></comment></comment></comment></comment></comment><comment><USER22> As long as your use cases are covered sufficiently and you're fine with cloud'ing your environment completely, I guess this can work.

But I much prefer being self-reliant and not at the whim of a company for things like my computing environment. This is why I run free/open source Unix variants and Linux and rely on applications whose config I can copy and reuse across machines. Add NixOS on top and you have yourself a one command setup on a new machine, if you desire so. If I don't own the environment myself and understand it, I cannot fix problems when they come up and they will, unfortunately.

</comment><comment><USER23> I checked out Amazon Workspace a few months to see if I could get rid of one of my laptops. Alas, my client's VPN caused issues. I opted for creating a vm and accessing it through the web via Guacamole. I can get to my machine from anywhere. [http://guacamole.incubator.apache.org/](http://guacamole.incubator.apache.org/)

</comment><comment><USER24> If you are interested in VDI without the complexity that comes with AWS check us out at [https://www.paperspace.com](https://www.paperspace.com) (YCW15)

a few key differences:

\- we can stream directly to a web browser without any plugins

\- you can fire up a new machine in just a few minutes

\- all of our machines have GPUs that make the experience feel great (we work with architects, engineers, and others that need a fluid desktop experience)

\- we are cheaper (starting at $15/month) and our pricing is predictable

[disclaimer: I'm one of the founders]

<comment><USER25> I'm interested in the concept of a VDI - and both [https://paperspace.io/](https://paperspace.io/) and [http://guacamole.incubator.apache.org/](http://guacamole.incubator.apache.org/) look interesting.

However... I frequently work with very, very, very limited and intermittent bandwidth (i.e. off of my mobile phone via railline), so unless Paperless can work offline, your statement/bullet, " _Untethered Agility_ " seem particularly deceptive!

<comment><USER24> Guacamole is a great project for using VNC/RDP protocols. We have developed our own protocol at Paperspace which we are constantly optimizing for sub- optimal conditions which can include low bandwidth and low-quality (i.e. lots of dropped packets). That said, we are primarily building for a world where access to high quality, fast internet is a reality.

As far as "untethered agility" goes, it was intended to speak to being free to access your computer from any device! Sorry for the confusion :)

<comment><USER25> It's awesome that you, "are constantly optimizing for sub-optimal conditions which can include low bandwidth and low-quality". Out of curiosity, is there a way to specify a maximum bandwidth? (e.g. my phone plan has a monthly cap, that can easily be exceeded and result in a nasty bill; can I specify that Paperspace not exceed a certain data transfer rate when I'm on that network?)

The irony of the "phone on a train limit" is that I have a phenomenal fiber line into my house. So I know how awesome, "high quality, fast internet" can be!

I was not confused about intent behind "untethered agility". My point was, I can use my laptop completely and genuinely untethered where ever I want for as long as my battery lasts. In other words, by default the only necessary tether is for power; and even then, I can go for almost an entire workday before I need that tether. Paperweight, as well as the other VDI options, _actually require a near constant network tether for operation_.

edit: typo fix

</comment></comment></comment></comment><comment><USER26> > One morning I sent the team an email with the provocative title "My > WorkSpace has Disappeared!" They read it in a panic, only to realize that I > had punked them, and that I was simply letting them know that I was able to > focus on my work, and not on my WorkSpace.

"Jokes on them I was only pretending!"

Do people actually do this in a corporate setting?

I'll assume that this is just fluff for the sake of being able to post an advertisement under the guise of a blog post.

<comment><USER27> I wrote the post and I can assure you that I actually did this. Our internal slogan is "Work Hard. Have Fun. Make History." I try my best to do all three.

This was not fluff, it was my actual story.

Also, this is a corporate blog and I am part of the marketing department.

<comment><USER26> Every workplace has their dynamics, and I don't know what your team is like. I didn't think you'd read that comment, but you did, and unfortunately it took your comment for me to realize the degree to which that comment is mean- spirited. I'm sorry for that, and it doesn't reflect well on me.

I do stand by what I'm saying there, though. One of my first bosses treated email as sacrosanct, and that rubbed off on me. His workflow was centred around his email queue, and email was the official ledger. If we talked about an idea, the first thing I did afterwards was put it into writing and email it. He had a newborn and was busy as hell, but he always got his job done.

With conversations that touch several separate groups, and with people who are responsible for a lot of different things, email becomes the common denominator. All it takes is one "URGENT!!!!" subject line to throw someone off-kilter. If that turns out to be a joke, you've interrupted them for nothing. And for very busy people, that can add up and be the difference between catching their bus home to see wife and child. It probably seems a bit melodramatic to liken it to directly taking away time spent with family, but I think it's a reasonable common courtesy to leave all jokes outside of the most formal form of written communication.

Not a big deal for a rare joke or an email that stays within a couple people, and that's what this sounds like. But the principle is something that I appreciate.

</comment></comment></comment><comment><USER28> Paperspace.io is pretty awesome. I've been using it for about a week now. The specs/ratio are much better over there.

<comment><USER29> Looks interesting - their demo shots show it running Windows 10, but the pricing shows Windows 7. Which does it run? Or some other OS?

</comment></comment><comment><USER30> As a software engineer that works across multiple platforms, I've used Amazon Workspaces as my primary Windows dev environment for the past 18 months. In general the experience is great- the input response and 2D graphics are superior to an RDP session. It's easy to forget you're working remotely. Another nice bonus is longer battery life relative to running a virtual machine on your laptop.

But the real limitation is the tiny C: partition. It's fixed at 60 GB, nearly half of which consumed by Windows and its gradual updates, which generally leaves you with insufficient space to install Visual Studio with the Xamarin tools.

The limitation has been noted in the AWS Developer forums, but unfortunately the 60 GB limitation seems hard-wired into the platform for now[1]. It's painful enough that I searched around for alternatives, but I couldn't find any direct competitors! I'd be 100% happy with this if I didn't have to run up against this 60 GB limit all the time. Just a heads-up for any engineers considering this for a Windows development environment.

[1] [https://forums.aws.amazon.com/thread.jspa?threadID=220618](https://forums.aws.amazon.com/thread.jspa?threadID=220618)

</comment><comment><USER8> Had to use workspaces on a client project a few months ago. There was some bizarre issue between El Capitan and the remote desktop which would send most of my keystrokes to the remote instance, even when the focus was not on the Workspace window.

I'd somewhat narrowed the behaviour to any 'messaging' system - slack, skype, messages and some others - if I switched to slack or responded to an osx 'messages' notice, my keystrokes would also be sent to the Workspace, and generally cause havoc. I'd leave an IDE open, switch to slack to talk to the client, come back, and all the code was replaced with our conversation.

There seemed to be reports of some similar behaviour with a windows client last year, and it was supposed to be 'fixed', but I never saw any reports of similar OSX behaviour.

</comment><comment><USER31> In a past job, I worked with a company who deployed thin clients at various locations around the country to rapidly expand their footprint with minimum upfront capital.

However, we constantly ran in to problems with this model of centralizing computing to a Terminal Server.

If the office doesn't have 100% stable and fast internet, your users will complain. Users are accustomed to lightening fast response from clicking/typing. Also, if the internet does go out, the entire office is offline and productivity halts until resolved.

We then investigated redundant internet links... But, there's a point where the monthly recurring cost no longer justifies this model.

As cool as this tech is, I don't think it will ever take off as the risk of lost productivity, and user frustration, is too high.

</comment><comment><USER32> But I like having my stuff on _my_ machine.

<comment><USER3> And Enterprises like it on /their/ machine. Which is the whole premise of VDI.

</comment></comment><comment><USER33> My organization does thin clients and I'm a big fan. It would be nice to have smaller quieter and more energy efficient ones, but I'm sure it was cheaper to keep what we have. I never have problems with software not being up to date or something going wrong. Just new problems like if there are network issues I can't do any work (was still a problem before moving to thin clients). I also like that I can just use my computer at home and log in and have everything set up like I'm at work.

<comment><USER34> We're glad it's working for you.

Sincerely,

NSA

<comment><USER35> Purely out of curiosity: why did people downvote this comment?

If someone who didn't downvote this wants to speculate, please let me know.

The downvoting is sometimes spot on, but sometimes it seems a little arbitrary.

IMHO, rboyd was just pointing out the potential privacy issues in a humorous way.

<comment><USER36> I didn't downvote, but I can think of a few reasons.

1) It doesn't add anything to the conversation. Yes the NSA watches everything in some way, saying so is redundant.

2) Presumably the connection is encrypted, so the NSA just sees a long lived connection between your and an Amazon data center.

3) Actively pulling data off of a privately owned server inside the US is a bit (but only a bit) of a stretch for what we know about what the NSA does.

</comment></comment></comment></comment><comment><USER37> Quite a convincing description! I can really dig the overview and description of transition and use case scenarios. Kind of makes me chuckle to see a Dummy Terminal return, I mean, cough, Zero Client. The more things change, right?

As a quite satisfied user of Amazon's StoryWriter program online I can really agree the ease of access and stability of the resource provides value. I've moved from CelTx at this point, and will probably even import to Amazon from that.

A friend is experimenting with Amazon's VideoDirect system as well, so I hope to hear about that experience. He did mention the need for Closed Captioning took some effort to find a suitable online tool (there are some good free ones) and the large file uploads for HD video isn't the most fun, but so far, so good.

For some reason, Amazon has targeted some of the creative sector in ways that Google and Facebook I don't think quite understand how to set up. Sure, both have some dominant platforms and tools (YouTube, "Artist Pages") but these new-ish developments by Amazon seem to be sticking the landing pretty often.

Gotta say though, I like seeing this admission:

> _I do still run PowerPoint locally, since you can never know what kind of > connectivity will be available at a conference or a corporate presentation._

Nice. Every little defense against Murphy's Law in presentation/performance is a wise move in my experience.

</comment><comment><USER38> Who are these people who have good enough internet connections for one reasonable Remote Desktop session, let alone dozens?

Outside of college I've never been in a building with that kind of bandwidth. At a tech company office, sure, but they don't need to outsource this kind of thing. Your average small to medium business in my hometown has 3Mbps at best.

<comment><USER39> Once you graduate away from cable, it's pretty cheap in a central business district or office park. I think we have 100meg circuits everywhere now.

<comment><USER40> Unless Charter owns the monopoly in your area.. $80/mo for 100/7 copper, or $450/mo for 100 symmetrical fiber.

<comment><USER39> There's no monopoly on commercial fiber in many places. Even at my home in a city, I could get commercial metro-ethernet service from 4-5 providers. You do have to pay for build-out costs.

When you're siting an office, it's definitely something to look at.

</comment></comment></comment></comment><comment><USER41> My bet is that if/when this kicks off a bit more the next move will be Amazon laptops (these being like Chromebooks).

<comment><USER42> I predict... Firebooks?

</comment></comment><comment><USER43> I dunno, as a dev you can just docker your environment and if your Macbook air dies, you buy a new one, and simply pull your images and your back to work in minutes.

Even setting up a mac from scratch for me only takes an hour, and I run an array of different web-apps.

An hour lost at worst once a year isn't worth much to me.

</comment><comment><USER44> I've been experimenting with something vaguely similar in the form of getting a ChromeBook and using a Nitrous VM for programming projects.

I initially used (and preferred) Koding, but their shift away from solo accounts made me switch. I find it very strange that they have such a good core product that they could simply focus their efforts there and instead so much of their effort seems aimed at building an integrated slack / hipchat / .. competitor. They could integrate with them and have much a better selling point.. I digress..

It's oddly unburdening to not have any projects on your laptop but at the same time have the ability to access them whenever from any machine. I firmly believe it's the future.

<comment><USER45> Same here: I have experimented with nitrous.io for programming and using a Chrome based editor that works with DropBox and Google Drive for editing my leanpub book project -- all on a Chromebook. The advantage is that this setup works on any laptop or PC I sit down in front of. My only complaint about nitrous.io is that their web IDE does not work on my iPad Pro with Apple keyboard.

</comment></comment><comment><USER46> I was running an AWS spot instance for 3D rendering/modeling for a while, using one of their GPU instances. It's my only Windows based workload, and I only do it occasionally, there aren't powerful enough laptop GPU's - so it was a decent option. The remote connection wasn't a problem, but it was a pain spinning the spot instance up and down.

In the end I just built a PC with a GTX970 at home instead which I use with Splashtop remotely now. I also setup a Belkin Wemo switch if I need to reboot it remotely.

</comment><comment><USER47> I've done something similar for years, all my files are mounted on my drive with sshfs. Whether I'm at home or work everything is available to me and when I'm done I log off my VPN and all my sensitive documents unmount and "disappear", what's left is just a few applications... Sublime, chrome etc... Works great.

</comment><comment><USER48> Has anyone used it to play games like Minecraft? Last time I tried it didn't work.

<comment><USER49> Anything that requires what's basically video is probably going to be subpar. I believe Windows Server 2012 has much better handling for things like playback but it's still not going to be great for gaming.

Minecraft also benefits quite a bit from a decent video card, something that's going to be absent from most remote desktop servers (though I think that's changing).

</comment></comment><comment><USER50> Is there something like Workspaces for consumers?

The homepage[1] makes it seem very enterprise heavy.

[1]- [https://aws.amazon.com/workspaces/](https://aws.amazon.com/workspaces/)

<comment><USER6> Definitely targeted at the enterprise, but it's entirely possible to provision and operate a single instance without any kind of enterprise-level agreement.

<comment><USER50> Was there any work done around OS X support or are there licensing issues there / not enough support from Enterprise?

<comment><USER6> OS X licensing for off-prem machines is a tricky thing, and the technology being used for streaming complicates it further, if I recall.

<comment><USER50> Thanks for answering! Other providers for OS X solutions are super dodgy / shutdown / involve time sharing (no imaging, you store everything into a personal Dropbox).

I ask about OS X support as the requirement for OS X to run Xcode kills a lot of iOS development workshops as the cost is to high / device availability is low.

Thanks again for taking the time to answer.

<comment><USER51> I don't believe there is anything like RDP built into OSX, so I don't forsee anything like this for apple any time soon.

<comment><USER52> Apple's included screen sharing tool is a Mac-specific solution. At MacStadium, we provide iRAAP server on our dedicated Mac servers for customers connecting from Windows computers; it allows for RDP access to the remote Mac.

</comment></comment></comment></comment></comment></comment></comment><comment><USER53> If I move my PC to the network room and instead use remote desktop (I'm on Windows almost all the time now), don't I get pretty much the same experience?

</comment><comment><USER54> I took a quick look, but it's not for me. It's Windows only, and tops at 2 vCPUs, 7.5 GB of RAM, and 100 GB of storage.

<comment><USER55> This is almost the exact VM spec I use in VMware Fusion.

</comment></comment><comment><USER56> I love the idea - but at the moment my tethered data costs (UK) would exceed the costs of the Workspace by some margin.

</comment><comment><USER57> I love the concept. Anybody knows if there are similar offerings from Azure or Google Cloud?

<comment><USER39> Azure has RemoteApp.

</comment></comment><comment><USER58> Am I just slow today or did they really overload the "AWS" acronym for this?

</comment><comment><USER59> Is this Amazon astroturfing on hackernews?</comment>