Python in the Windows 10 May update - <AUTHOR> https://devblogs.microsoft.com/python/python-in-the-windows-10-may-2019-update/ <comment><USER2> A lot of people are mentioning Apple removing scripting languages at the same time as Windows is adding it. The stub is nice for learners. But ultimately I like Apple's decision to remove them. You should not be relying on system installed interpreters, because you end up with an ancient, unmaintained version. And you are co-mingling all your dependencies with whatever else is installed. Everyone should be using virtualenv. And it should be easier to use virtualenv.

<comment><USER3> It depends on who you're talking about. There is an attitude of, "if you can't install a virtualenv as step 1 in learning how to do python, you don't deserve to learn python". Not, I would hope, consciously thought of in that way, but that's the practical affect.

I use virtualenv. When I was first learning to program, and I believe python is a better choice for a first language than PHP or Javascript, it would have been a substantial obstacle to have to do the virtualenv route first. Yeah, it's easy if you've done it and know how to figure out what the problem is if something goes wrong. It's an obstacle if you're just starting out, and I think keeping the on-ramp simple is very important for the long-term health of a language community.

Which suggests that, because python's on-ramp just got easier, it's long-term prospects just got better.

<comment><USER4> If you're just learning, you don't need to mess around with virtualenvs; you can install Python via the official Windows installer and install packages globally. I don't feel like installing something is a very big initial hurdle to overcome, as opposed to having it be pre-installed (but potentially very outdated in the future).

<comment><USER5> On the contrary, installing something is the biggest hurdle after perhaps coming up with the idea that there's something here to be learned at all. And sometimes it's part of the latter.

</comment></comment></comment></comment><comment><USER6> In the past when I needed a calculator on someone's Mac, I just started Python in a terminal and typed in expressions to be evaluated. It was nice to be able to find it on any Mac and it's much nicer to type into Python's REPL than clicking on a calculator's GUI buttons. Now, Windows machines will have Python and Macs may not.

On Macs and Linux I can still use the bc command instead (it's an old Unix command) but it's far less handy than Python. See the bc man page.

There's also dc, the even less used, reverse Polish notation calculator. It is a standard Unix command that predates bc.

Interestingly, the dc "language" is older than C, Awk, Perl, or any other programming language still found on Unix systems. It is implemented in C's predecessor, the language B.

You can tell that bc and dc are early Unix commands from their names, many of the oldest Unix commands are just two characters long.

<comment><USER7> Wait, how do they build dc? Is there a B compiler for 64-bit systems?

<comment><USER8> Assuming it's OpenBSD or GNU dc, it appears to be written in C.

</comment></comment></comment><comment><USER9> This is great for learners looking to write their first few lines of code. No more wondering which Python version to install, or having to check the box to have Python added to your path.

Now we just need a better bundled IDE. Idle is a horrible first editor, but the added burden of installing a better IDE means it's the one most often used by beginners.

<comment><USER10> I've been using Visual Studio Code for my Python development lately, it seems like it would be a sensible choice to bundle (or install on demand) with Windows.

<comment><USER9> VS Code has too steep a learning curve for someone who has never even written Hello World!

Learning to code is hard enough, without having to learn a new software UI, especially if all you've ever done on a computer is browse Facebook and write Word documents.

If you want a great example of a beginner's/child's first IDE, have a look at SonicPi

<comment><USER11> I remember in college being thrown into Visual Studio. I got things to work basically from a checklist. For the longest time includes and building/linking were mysteries done in the background. I feel like a lot of people were "programming by coincidence."

I think I still hold a grudge and prefer the command line to compile (which is its own mess).

</comment></comment></comment></comment><comment><USER12> It looks like this update breaks already-installed Python execution if its position in the PATH environment variable is after the WindowsApps folder. [1]

[1] [https://devblogs.microsoft.com/python/python-in-the- windows-...](https://devblogs.microsoft.com/python/python-in-the- windows-10-may-2019-update/#comments-35)

<comment><USER13> That is how PATH works. An installer would have to be doing something seriously wonky to get that wrong.

<comment><USER12> They could have used another mechanism than PATH.

<comment><USER14> bash does exactly that - it has command_not_found_handle function and distributions define it, so they can offer package installation for any command not found.

</comment></comment></comment></comment><comment><USER15> It's interesting seeing this the same week Apple announces it's cutting out of the box Python.

<comment><USER16> Note that the latest version to ship with mac OS was 2.7, so it didn't exactly ship with well-maintained support

<comment><USER17> This statement is misleading. Apple kept up with the 2.x versions, the same as almost every linux distro. Only recently have the linux distros started to move on to Python 3.x. And most of them still include Python 2.x (specifically 2.7) as the default `python`, and have added Python 3.x as `python3`.

It is not correct to say that Apple did not maintain support for it.

<comment><USER18> Current macOS system Python is 2.7.10 (Mojave 10.14.5).

Upstream Python is 2.7.15.

<comment><USER19> ... and 2.7.10 is from May 2015 - 4 years ago

</comment></comment></comment></comment></comment><comment><USER20> sort of a selective use case here, but im an automotive mechanic that started learning python to track engine firmware, mileages, and tools at work. I always did this on a raspberry pi, partly because it makes doing computer stuff a bit more approachable than the ole black and beige dell laptop. We have windows desktops for the office area, but I never once considered using them for this.

Do people develop python in Windows? is there any distinct advantage? example: the pi costs $30 and a used keyboard/monitor from a pawn shop, but anything with windows is way more expensive.

<comment><USER21> I'm a little confused by your first question. I'm going to guess you're mostly used to interacting with Windows to browse the web, use Office, or other software specific to your business. In that case, yes, that same computer can be used to program python and people do it all the time. A computer is a computer.

Yes there are some advantages, but those aren't Windows specific. The advantages also apply to traditional desktops/laptops running MacOS or Linux. There are tools written for those platforms that won't be available on the pi, although the raspberry pi ecosystem is rich enough that that won't matter much. There's also the specs of the machine. A beefier machine can power multiple monitors that can let you see more code at a time. That's just surface level. We can chat more if you're interested.

Having said that, sounds like what you have right now is working for you. There's no need to switch to something else if you're making progress. It's pretty cool that you got started this way. I wasn't aware that python is used by car mechanics.

</comment></comment><comment><USER22> Just tried it. Looks like the latest Windows update installs a stub that sends the Windows app-store to the Python installer page if you type "Python" from the command line.

FWIW, the publisher for the MS app-store Python is "Python Software Foundation" and it, far as I can tell, is just ordinary Python and not some MS-only weirdness. It adds start menu links to the Python REPL and the IDLE tool.

<comment><USER23> you didn't read the article

<comment><USER22> Yes I did. I just wanted to relate my personal experience with it. Sometimes I'll see an article about something new just to discover that it's actually for an update that's a couple of weeks away. In this case, I just wanted to verify that it's working as advertised.

</comment></comment></comment><comment><USER24> Looking at the bigger trend, it feels like recently MS is doing everything it can to engage developers. imo Apple is doing the opposite with bad keyboards and the continued refusal to give developers a reasonably priced, expandable box like the ancient G models or the old cheese grater product line.

</comment><comment><USER25> It's interesting that as Apple start considering not bundling scripting languages[1], Microsoft start doing so.

Both sides may have wildly different reasons for making these changes, but the net result seems quite indicative right now.

[1] [https://developer.apple.com/documentation/macos_release_note...](https://developer.apple.com/documentation/macos_release_notes/macos_10_15_beta_release_notes#3318248)

<comment><USER26> You know, when Ballmer chanted "Developer, developers, developers" back in the day, people made fun of him for years.

But really, that's where that ship is heading now, and it's paying off.

</comment></comment><comment><USER27> While I don't like the "let's teach everyone to become coders!" thing that some companies seem to be pressing, I think this is a great addition for dabblers, or for people who are on their parents computer and want to do something quick without installing a bunch of junk. I really like this.

Edit: Oh, I see it's from the store. Well, that doesn't help anything at all.

<comment><USER28> When I was 11 years old I was looking at a bit of code in a magazine and, being curious to know what it did, I booted up my parents' old IBM PC. I typed GWBASIC.EXE into the command line and I was astounded that it worked.

Maybe that isn't so relevant now that it's easy to find and install software but my journey with programming began that day when I was magically dumped into that BASIC interpreter.

<comment><USER29> The first coding I ever did was along the same lines, carefully copying dozens of lines of BASIC into a Commodore 64 - I still recall the feeling of wonder that it actually worked!

</comment></comment></comment><comment><USER30> The worst thing about Python on Unix is that there is always a system Python you get when you type "python" \-- it might have been up to date once, but it will be out of date someday, if only because updating it would break other system dependencies.

Thus when you give a coworker instructions how to run something, they wind up using the wrong Python and will waste hours of their own time and your time wondering why it doesn't work. Or maybe they'll get confused about pip vs pip3 or ...

I've found it's a lot easier to get it right on Windows since there is no system Python for people to get confused about.

Java's xenophobia, its insistence on "100% Pure Java" and the various squabbles that Sun and Oracle have had with other platform companies has actually made Java more reliable across different platforms since people expect to have to manage their Java version and don't have a sense of entitlement that they should just type "python" and have it work.

<comment><USER31> Red Hat ditched the user-accessible default system Python in RHEL 8, but offers ways to have several versions of Python available and ways for sysadmins to configure the target of /usr/bin/python.

Anyway, we're finally near the end of supported environments caring about Python 2, so the difference between pip and pip3 will stop causing most of us problems soon... (Yeah, I know some people will use Python 2 beyond EOL, but at this point that's their task and the task of whomever they pay for assistance, not everyone else's.)

<comment><USER32> > I know some people will use Python 2 beyond EOL, but at this point that's > their task and the task of whomever they pay for assistance, not everyone > else's

Virtually every common OS (i.e. Windows, iOS, and Linux) provides Python 2.7 by calling `python`, and Python 3.x by calling `python3` so it's more than "some people" using Python beyond EOL -- it's two languages being used simultaneously.

This is what most languages do when they make a breaking upgrade, e.g. Perl 5.x and Perl 6, or Apache Groovy (which ships two compilers in its Groovy 2 download bundle, i.e. the Groovy 1 compliant one used by Gradle and Jenkins etc, and the later 2012 one with the invoke-dynamic capabilities added. Two weeks ago, the Groovy project managers announced that Groovy 3 would keep on doing this, putting the rewritten parser into the compiler which no-one uses, and keeping the main compiler at Groovy 1 capabilities.)

<comment><USER31> For all of those common OSes, either Python 2 is no longer installed by default or a plan to do that in the near future has been announced. Many of those are preparing no longer to offer Python 2 at all, though few have already dropped it. I don't think RHEL 9, Debian 11, Ubuntu 20.04 LTS, Windows's new Python stub after the EOL date passes, or 1-2 major versions of macOS in the future will offer it.

Yes, OS vendors will temporarily offer some transition past EOL for the versions they ship. But only temporarily, and only in limited form.

</comment></comment></comment></comment><comment><USER33> > every install of Windows will include python and python3 commands that take > you directly to the Python store page.

Does that mean its not actually pre-installed but just super easy to install?

<comment><USER34> That's pretty much what this means.

</comment></comment><comment><USER35> Microsoft also provides CNTK and CNTK-GPU[1], which can be used as a backend for Keras. That could make life easier to kick off with machine learning by providing correct libraries for GPU. If you ever tried to install not-the- latest Tensorflow for the oldster graphics card you may know what I'm talking about, all that wading through a variety of lib versions. Nah, good news anyways.

[1] [https://docs.microsoft.com/en-us/cognitive-toolkit/setup- win...](https://docs.microsoft.com/en-us/cognitive-toolkit/setup-windows- python?tabs=cntkpy26)

</comment><comment><USER36> If they wanted Python on Windows, why didn't they just include it like they include every other command? It's miniscule in size to have Python stored on every Windows computer compared to the size of Windows. Why go through the "Windows Store" to get it?

I hate all these stores. They are the ultimate gatekeepers and give big companies huge amounts of power and control.

</comment><comment><USER37> I am still waking up but when I read the title, I thought it was about Python self updating itself.

Glad to see some love from Microsoft for Python

</comment><comment><USER38> Oh lord dat Terminal, it makes my retina bleed. Please hurry with that new shiny goodness [0].

[0] [https://www.theverge.com/2019/5/6/18527870/microsoft- windows...](https://www.theverge.com/2019/5/6/18527870/microsoft-windows- terminal-command-line-tool)

</comment><comment><USER39> There are a lot of comments talking about how you should not rely on the built in version of python or whatever instead installing it yourself, but it is really nice being able to pass people scripts that you know will work with the stock operating system with no additional installs.

</comment><comment><USER40> As a side note: I really enjoy how the imagery at the top shows the rating for Python is E (for everybody). Do all apps receive this type of rating? Who got to test this and decide it was E? I always assumed the ESRB rating system was only attached to video games.

<comment><USER41> Quick, someone grep the standard library code, we can at least get some mild profanity and improve that rating!

</comment></comment><comment><USER42> Oh god, here we go. So now there's yet another way for multiple Python installs to clash.

</comment><comment><USER43> Why is there windows python Team and what do they do. Python is 1 of N slow scripting languages that has sod all to do with Windows. This is not a language that should be treated differently to a dozen others.

</comment><comment><USER44> I like that Microsoft is moving more of its stuff to their store in a way that encourages people to use it. The desktop is becoming a powerful tool for getting work done, and I think this is a great move.

</comment><comment><USER45> Figured this out by accident yesterday - a pleasant surprise. Didn't realize it was a result of the new feature. Nice work.

</comment><comment><USER46> Is this going to freeze everyone at Python 3.7 in the same way that CPython had been stuck on C89 basically forever because Microsoft refuses to fully support C99:

[https://www.mail-archive.com/python- email@example.com/msg92514....](https://www.mail-archive.com/python- firstname.lastname@example.com/msg92514.html)

<comment><USER47> Not only Python is not installed (the command is a stub), but linux distributions have been shipping Python forever, and it never froze anybody. It's a matter of how you support upgrading, now what you provide out of the box.

<comment><USER46> >It's a matter of how you support upgrading, now what you provide out of the box.

Absolutely!

</comment></comment></comment><comment><USER48> The title is inaccurate, if you write "python" in a Terminal and you don't have Python installed, the Windows Store will launch and show you the Python app/installer from the store.

There will be no Python already installed or included with Windows 10.

<comment><USER49> It seems they made it for newbies:

 _Once you discover that you need to get Python, you are quickly faced with many choices. Will you download an installer from python.org? Or perhaps a distribution such as Anaconda? The Visual Studio installer is also an option. And which version? How will you access it after it's been installed? You quickly find more answers than you need, and depending on your situation, any of them might be correct._

 _We spent time figuring out why someone would hit the error above and what help they need. If you're already a Python expert with complex needs, you probably know how to install and use it. It's much more likely that someone will hit this problem the first time they are trying to use Python. Many of the teachers we spoke to confirmed this hypothesis – students encounter this far more often than experienced developers._

 _So we made things easier._

 _First, we helped the community release their distribution of Python to the Microsoft Store. This version of Python is fully maintained by the community, installs easily on Windows 10, and automatically makes common commands such as python, pip and idle available (as well as equivalents with version numbers python3 and python3.7, for all the commands, just like on Linux)._

<comment><USER50> This is weird because "making it easier" seems a bit like screwing over people who want more control and specifics. MS is relatively new at packaging open source and doesn't seem to have much experience in the phenomenon of official packages being not what you want.

<comment><USER51> I think this is wonderful for people who are interested in learning programming. Right now one of the biggest hurdles to learning programming is just getting the damn environment set up. Why does it have to be so hard? How many people never learn to program because they can't get "hello world" to print out?

This could make it extremely easy. "What programming language should I use?" "Learn Python." "How do I install it?" "Through the Windows installer." Boom, done. They're off to the races.

People who want control and specifics are advanced enough to figure out how to get that themselves.

<comment><USER52> I very much agree and love how the programming language AutoIt does it. When I was starting out, both C and Java took several frustrating hours to set up (don't get me started on requiring environment variables to be manually changed). However, after a basic installation, AutoIt gives its au3 files a right-click context menu option to compile to an exe. It also gives you a shortcut to a help file that contains basic examples, a complete list of language concepts, and a complete list of all first party functions and a page on every single one complete with an example of how to use it.

</comment></comment></comment></comment></comment><comment><USER49> Maybe it's better to link to the original Microsoft blog announcement?

[https://devblogs.microsoft.com/python/python-in-the- windows-...](https://devblogs.microsoft.com/python/python-in-the- windows-10-may-2019-update/)

<comment><USER13> Indeed. The blog link gives much more detail and context then the guide.

</comment></comment><comment><USER53> Deceptive title.

</comment><comment><USER54> But, how dare Microsoft know people go looking for Python... those damned metrics are all evil, evil I say!

<comment><USER26> My favorite part about people raging about telemetrics is that for many of them, their primary computer usage is using Facebook and Google services.

Somehow, MS missed out on spreading a PSA that _any website and web app is 100% telemetrics_ because that's literally what a web app is (telemetrics with feedback!).

</comment></comment><comment> nevi-me Can we please have "Stability in the Windows 10 May Update". It's nice that Microsoft's giving us free updates, but Python support, a new terminal, and all the other things would be more appreciated if our machines remained reliable while before the features.

</comment><comment><USER55> Based on experience, I'd rather install my own Python environment than rely on Microsoft's suggestion of what I should install. This is Microsoft folks - there is >always< a catch.

</comment><comment><USER55> Microsoft wants to spoon-feed beginner Python programmers their way, via their 'community'. It really is unnecessary. In time, this will lead to classic Microsoft lock-in or dependency. I've seen this happen time and time again. As much as I've been a big fan of Microsoft dev tooling since the mid 90's, I think Microsoft and other vendor's newly-found open-source and Linux evangelism will, in the long-run, be a disservice to those communities.

</comment><comment><USER56> Surprise they do. Other than basic (and no longer after bill gate is gone) the only programming language is dos command :-(.

Well seem they did not. Otherwise python will be universal. Anyway need pip etc. And also better to use conda. And easier integration with os. As none, probably not that useful. But better than none.

<comment><USER50> Cscript.exe lets you run js from the command line.</comment></comment>


GSchool - <AUTHOR> http://www.gschool.it/ <comment><USER2> Wow, $20,000 for something you can arguably teach yourself. Hungry Academy must have been a huge success.</comment>


Published my first novel, Blue Screen, how a young Linux hacker saves the world - <AUTHOR> https://www.amazon.com/dp/B084GHLYSX <comment><AUTHOR> The eBook is free from another day or so, paperback is $9.95 but I am happy to share a link the to epub/pdf if anyone is interested.

Blurb is: A young computer hacker is in a battle of wits against the greatest AI ever created with the fate of the world in the balance.

</comment><comment><USER2> Read the first couple of chapters. Not bad, flows well. Maybe being a little more descriptive wouldn't hurt. Thanks.

<comment><AUTHOR> Thanks so much! I'm dying for feedback, chapter 15 is where it deep :)

</comment></comment><comment><USER3> However it turns out, well done for completing it.

</comment><comment><USER4> Nice

</comment><comment><USER5> Nice</comment>


Show HN: Create instantly shareable native app with a single JSON markup - <AUTHOR> http://www.jasonclient.org? <comment><AUTHOR> Hi HN, I've worked on several apps in the past couple of years, and found that it takes too much effort going from having an idea to building an app and having the world use it. Also most cool ideas will never turn into an app because building an app is not a simple 5 minute thing.

I wanted a way to have an idea, turn it into a fully functional native app, and share it with the world, all in the next 5 minutes, as quick and easy as writing a blog post. That's why I built Jason.

Basically Jason lets you build a native interface to display and interact with any data format (csv, rss, html, json), any website, any API in any way you want, simply by writing a JSON markup and loading it. There's no need for compiling, building, deploying, or anything like that.

It's like a browser but instead of turning HTML into a web page, Jason turns your JSON into a native app. Everything from defining elements to styling to executing actions is described in a single JSON markup.

Please let me know what you think, or ask any questions. Thanks!

<comment><USER2> Neat! I found the name slightly confusing, though. Do you have any concerns about JSON being pronounced the same as "Jason"[1], thus making some conversations slightly confusing?

[1]: [https://www.quora.com/How-do-you-pronounce- JSON](https://www.quora.com/How-do-you-pronounce-JSON)

<comment><AUTHOR> Thanks for pointing out. The naming was intentional, but yes you're right it can be confusing sometimes. But I really like the name as it personifies the term. I'll think about it if this becomes a serious problem

</comment></comment></comment><comment><USER3> Very cool. I wrote a similar framework while I was working at a previous company that translates XML into iOS views. From my experience, this might not take off for regular native-app building, but it's invaluable in usecases where there is a base application and a high amount of configuration between various enterprise clients. Good luck!

<comment><AUTHOR> Thanks! Can you share why you think it may not be for regular native-app building? Would love to hear your experience, would be extremely helpful for making decisions.

</comment></comment><comment><USER4> Kudos for this, especially for generalizing from real apps. But I have criticisms.

Declarative approaches are appealing, but lack sufficient flexibility for general use. BTW arguably, browsers are native apps configured by html/css/js.

Html templates in json is unnecessarily confusing. It's unfamiliar and untooled.

Unfortunately, json paths are inadequate for api's in general. They can't extract data from within text, combine, compute, nor use complex sequential api queries to get the data you need. You could add all this, but coding in a data format is awful, compared with a designed syntax like javascript.

Still, it is appealing to have just "one json". Maybe people can live with html in json for that. If you also design the backend (or it's an isomorphic frontend to an existing api), data extraction by path should be OK.

<comment><AUTHOR> Thanks, can you tell me a specific use case example you think would be hard to implement this way? Hopefully I already have implemented it.

<comment><USER4> I wouldn't say they're that hard, just awkward for the user. I'm not sure which part you mean, so I'll answer for both.

html templates in json: people accustomed to html have an extra layer between them and the result. It doesn't look like the result, making it that little bit more awkward to use. Tools don't know the json version of the html (e.g. editors with syntax highlighting; previewing the result; authoring tools).

Examples of extracting data: getting part of a date from a date string (or, eg date from date-time string). Also, first name out of a fullname string. Probably solve this class just with a regexp substitute function.

'Joins' are pretty common, where you get data from one part of an api (eg ID of a person), then use this to lookup other data. This could all be in a single json; or require different api calls - even between different api's.

Look, these features aren't hard to implement - and I wouldn't be surprised if you had them already. You could always accrete features as you go, like PHP did - ugly yet useful.

But my objection is that representing code in a data format (json) is very awkward to use. The worst examples are in XML (eg XSLT, ant java build system), but also applies to json.

If you can make it simple enough, for common cases, it's probably workable.

BTW have you seen jq? Gives a taste for features that end up being needed for handling json. And you could possibly just embed it, for arbitrary json processing... [https://stedolan.github.io/jq/](https://stedolan.github.io/jq/)

BTW1 the role of this is not that different from early PHP - I wonder if embedding code in the template would work here too?

BTW2 Android already specifies UI's declaratively with a data format (XML), though it doesn't read api's etc, and it's IMHO awful to use.

<comment><AUTHOR> I think you're looking for this [http://www.jasonclient.org/doc/#template- reference](http://www.jasonclient.org/doc/#template-reference)

you can use javascript expressions inside templates so everything you mentioned is possible using javascript.

Here's an example of javascript usage inside a template [http://www.jasonbase.com/things/xLZ/edit](http://www.jasonbase.com/things/xLZ/edit)

Here's an example usage of a template that iterates through a data fetched from network request [http://www.jasonbase.com/things/a8b/edit](http://www.jasonbase.com/things/a8b/edit)

Just to be clear, this is not HTML and has nothing to do with WebView. The JSON is used to directly manipulate native elements like UIStackView, UITableView, etc. and that's the whole point. Hope this makes sense...

<comment><USER4> Thanks for the clarification - I knew that, but somehow forgot. Probably because they look similar, following similar function (i.e. layout).

Yes, escape to javascript addresses my concerns.

Good!

</comment></comment></comment></comment></comment><comment><USER5> This is awesome. I've been dabbling in a similar concept using CouchDB. Have you thought about using something like CouchDB to enable easy master-master replication of data between users? Also, is any part of this open source? Thanks!

<comment><AUTHOR> Can you elaborate on what you mean by master-master replication between users?

As for open source it's not open source at the moment but it's one of the options I'm considering. I just wanted to get it in front of more people as quickly as possible so I can make better decisions based on reaction. If you're interested in how this will progress, please join the slack channel to stay in touch [http://textethan.us8.list- manage.com/subscribe?u=54e23b3fe61...](http://textethan.us8.list- manage.com/subscribe?u=54e23b3fe61843c19c384fc05&id=c6e08abd5c) or you can also follow me www.twitter.com/gliechtenstein to hear about it.

<comment><USER5> Sorry, I'm getting a bit too buzz wordy. What I meant was that CouchDB is unique in that it can be run as a peer-to-peer database. Master-Master is when a database can have two authoritative sets. Compare that to Master-Slave where one server is the authority and the other is just a redundant set.

CouchDB is a JSON document store so it could easily store these JSON apps. CouchDB has an embedded Javascript runtime that enables you to execute arbitrary Javascript on the server to perform queries (map/reduce) or perform transforms on JSON. For example, I can write a SHOW function that can take one of your JSON apps and invert all the colors. There's a lot of interesting use cases for this type of set up. I would love to explain more to you if you're open to these kinds of ideas.

<comment><AUTHOR> Wow i haven't used couchdb before but that sounds really cool. By the way Jason has a way to dynamically run actions on the frontend side (for example to change colors [http://www.jasonbase.com/things/xLZ/edit](http://www.jasonbase.com/things/xLZ/edit)) but I think there may be something really interesting there if you can also integrate with backend, I'm interested :)

<comment><USER5> I subscribed to your slack channel. I'll hit you up in a bit!

</comment></comment></comment></comment></comment><comment><USER6> Very cool! What lead you down this path? This is not too far from creating a client using the web view container and letting users specify urls to their "apps" with perhaps certain JS hooks or CSS classes being required of apps to be rendered/used correctly in your client. Take one step further and you could just build a browser and user apps are any valid url with no restrictions. You can see where am I going. Just wondering about what led you to your idea?

<comment><AUTHOR> I just commented below to another question that may answer your question [https://news.ycombinator.com/item?id=11884901](https://news.ycombinator.com/item?id=11884901)

I think HTML/JS/CSS have become too powerful which is a good thing, at least on desktops. But when we bring that power onto more specialized devices such as our smartphones it works as weakness instead of strength. For example, people may love super rich interactive websites on desktop but it becomes pretty much useless on our phones, which have small screen. But browsers still need to ship with these features because that's what they're supposed to do-- follow the web standards.

I am actually working on a blog post to talk about this in more detail, probably will publish in next couple of days. Please follow me on www.twitter.com/gliechtenstein if you are interested.

As for how this was conceived, I've been working on quite a few apps last couple of years, some I released some I didn't. One of the apps I'm working on is [http://www.textethan.com](http://www.textethan.com) and I got frustrated how I have to rebuild everything whenever I had something to change, so I built everything into a markup. Then when I looked at the end result I saw something that can be potentially very powerful so I decided to extract it out into its own app. Hope this answers the question :)

<comment><USER7> I understand your complaint but I disagree with your solution. As much as I hate working in html and js I don't think fragmenting the web like is the right solution. My ideals are much more aligned with something like Google's Accelerate Mobile Pages.

I'd be a lot more interested in a project that uses AMP html to build a native app over a custom json spec.

</comment></comment></comment><comment><USER8> This is pretty cool, I'd love to see a way to save an app to your homescreen somehow (although, I'm not sure how iOS would let that happen) or perhaps a way to produce a pre-bundled jason+app—would that go against your objectives?

<comment><USER9> See the Workflows app. Would the way they do it in that app work?

</comment></comment><comment><USER10> Looks neat but what about security? Can the json be configured in a way that compromises the data stored on the device. Aren't you basically allowing Jason agent to run any custom code?

<comment><AUTHOR> Each page is sandboxed and it displays an intro page describing which device features the next page will access when you run it for the first time (or when there's a code change even if you had it favorited earlier). Also you can look at the raw JSON to see what's inside before opening. But yes I think security is important and will be one of my top priorities going forward.

</comment></comment><comment><USER11> Cool, you made Ext.js

<comment><AUTHOR> It doesn't compile or build and there's no deployment because it loads like a web browser and renders the app instantly. It's not javascript. Finally it's not even based on webkit. It's all based on UIStackViews/UITableViews/UILael/UIImage/etc. You're basically remote controlling native elements and calling native functions just by scripting in JSON. So I guess it's not really Ext.js

</comment></comment><comment><USER12> I thought dynamic loading of functionality like this was against the App Store rules? Or did they ease up on that particular limit over the years?

<comment><USER13> Loading JavaScript (of which JSON is a subset, of course) has been explicitly permitted for a long time now, as long as it's downloaded and interpreted by the built-in WebKit engine.

Phonegap/Cordova has a developer app that works similarly, allowing you to hot-load code updates without forcing you to reinstall the entire app.

<comment><AUTHOR> You're right, to be clear, in case of Jason it's not even "downloading code" because all the native code is already there on the app itself. Instead what gets downloaded is a flat JSON text, which then gets interpreted into calling the APIs available on Jason.

Thanks for bringing up Phonegap/Cordova so I can describe the difference. In case of Jason it directly accesses native elements like UIStackView, UITableView, UILabel, UIImage, etc. because I manually built everything from parser to renderer to do exactly that. You are basically remote controlling these native elements and calling native functions by scripting with JSON instead of writing objective-c code.

I feel like a lot of people on this thread thinks it's based on webkit, which is understandable since a lot of people claim to be native when they're just a native wrapper for HTML5. I think I need to clarify this point in future pitch.

<comment><USER13> Yes, that would be worth some clarification. I made that assumption myself. It's my fault for not having read carefully, of course, but if I did it, others probably will too. :-)

</comment></comment></comment></comment><comment><USER14> Really cool, how is it unique in terms of what it can do, compared to a regular web browser?

<comment><AUTHOR> 1\. It's native. Doesn't matter how you package a website, it still uses an HTML/JS/CSS engine to let you interact with it. Jason lets you effectively build a native app without actually building an app. The JSON markup is just an instruction to remote control native elements and native functions directly.

2\. it's JSON based, it's meant for interacting with APIs, not a website. Websites don't work well because html/js/css have evolved to become something of monstrosity--which is both good and bad.

3\. It assumes session. It assumes that you will be the sole user of the app, which browsers can't do for many reasons. So it has authentication/key management system built in.

4\. More coming soon: This is just a first version, I intentionally cut down on many features I could have implemented because I wanted to see what people think first. I have a couple of production apps from which I extracted Jason. For an example check out www.ethan.fm It's running on Jason.

<comment><USER15> By native, do you mean uses native elements, or simply loads things in a webview? I don't know how many people consider that truly native if that's the case.

<comment><AUTHOR> It's completely native and does not even touch any webview. Here's a related answer I posted elsewhere on this thread [https://news.ycombinator.com/item?id=11888516](https://news.ycombinator.com/item?id=11888516)

</comment></comment></comment></comment><comment><USER16> Reminds me of Coldfusion (XML as programming language)

</comment><comment><USER17> Is there an Android version too?

<comment><AUTHOR> I've started out with iOS as a minimum viable product but my goal is to expand to all kinds of other platforms, and android is of course the top priority, I made all design decisions assuming that I will build an android version.

If you are interested in staying in the loop about the android version please follow me on twitter www.twitter.com/gliechtenstein (I didn't get a chance to set up any mailing list or anything yet) Thanks!

</comment></comment><comment><USER18> Awesome, would love an Android version.

<comment><AUTHOR> Great to hear! I honestly wanted to get the first version out there as soon as possible because you never know if people would want something like this, I know now!

<comment><USER19> Isn't your Slack channel link going to a Mailchimp list subscribe form?</comment></comment></comment>


The Chairless Chair, an invisible chair that you can wear - <AUTHOR> http://www.cnn.com/2014/08/20/tech/innovation/the-chairless-chair/index.html?hpt=hp_c4 <comment><USER2> A few hundred years late, and a bit on the expensive side compared to its competition:

[https://www.google.com/search?q=strap+on+milking+stool&tbm=i...](https://www.google.com/search?q=strap+on+milking+stool&tbm=isch)

I built one of these for backpacking trips for a little less than $5 for a wooden disk, a couple plumbing bits and a clip belt. Silly looking when you're walking around with it, but infinitely better than sitting on a wet log next to the campfire.

<comment><USER3> There's some NSFW content in that first page of search results...

<comment><USER4> Only if you have safe search turned off.

<comment><USER3> I didn't _turn_ it off, but that's the default if you block cookies.

</comment></comment></comment></comment><comment><USER5> This appears to be something that's solved with the Asian Squat. It's not fashionable in the West to do this so we don't build up the right flexibility and tendon strength to do it comfortably. But if you can train yourself to do it, you can do it for hours. It's basically human's default "sitting" position.

[http://www.mykoreanhusband.com/asian- squatting/](http://www.mykoreanhusband.com/asian-squatting/)

<comment><USER6> Whoah. I'm not asian, far from it (though I did spend 12 months in Busan, South Korea when I was 16) and I "sit" like that. I find it extremely comfortable; whenever my legs are feeling sore from standing or walking around, that's the position I will rest in. Didn't realise it was a thing, or tied to a culture! Neat.

<comment><USER7> It's tied to a culture because if you don't ever use that position, then for many adults it's extremely uncomfortable or even impossible to achieve, as the lower calf tendons don't allow you to squat with your feet flat on the ground, but only while balancing on the balls of your feet - which is not that comfortable for long 'sitting'.

For cultures that habitually use squat toilets, everyone can hold that position; but for other cultures many people can't.

<comment><USER8> But why not? I tried weightlifting, and that's the position you do squats in, but I found that I can only do it with > 50 kg on my back. That's very weird.

</comment></comment></comment></comment><comment><USER9> My buddy has been pitching the idea of "chair pants" to me for a decade at least. Glad to see someone finally executed on this. :)

<comment><USER10> Now we just need those keyboard pants. you know, with half a keyboard on each thigh.

<comment><USER11> Keyboard pants exist!

[http://www.nieuweheren.com/products/beauty-and-the- geek/](http://www.nieuweheren.com/products/beauty-and-the-geek/)

<comment><USER12> It's too bad they didn't split up the keyboard. Putting your fingers on the home keys looks like it would basically put your right hand over your crotch.

<comment><USER10> I had one of those old split Apple ergo keyboards back in the day and when trying to use it on my lap one day this occurred to me but I thought it too ridiculous. Also there were no wireless keyboards that weren't terrible.

But hey, you know with the right cargo style pants you could just conceal the halves and...

</comment></comment></comment></comment></comment><comment><USER13> Sure playing fast and loose with "invisible", aren't we CNN?

<comment><USER14> Clearly, invisible only means able to be hidden by cloth.

</comment></comment><comment><USER15> It's gotta suck or be vaporware, given that no single video exists on the entirety of the internet of the device in action... only cheesy renderings and stills.

</comment><comment><USER16> Interesting concept. I used to carry a 'nada chair'[1] in my backpack when hiking, I suspect this is much heavier though. I could totally see it as a huge win for folks who had to stand while customers were around (think the guy selling food from a cart on the street). If you motorized it so that it helped older people stand up then it could be a double win for them.

[1] [http://www.gingerbreadshows.com/nadachair/](http://www.gingerbreadshows.com/nadachair/)

<comment><USER17> Also found at: [http://www.nadachair.com/](http://www.nadachair.com/) Reasonably comfortable, too.

</comment></comment><comment><USER18> I expected the worst from the headline but this is actually pretty neat. Seems like it could improve safety as well in production environments where workbenches or sit stools could present a trip hazard (eg if you're manhandling large objects that obstruct your view of the ground).

</comment><comment><USER19> found a 2008 article on similar honda 'legs' [http://www.wired.com/2008/11/honda- announces/](http://www.wired.com/2008/11/honda-announces/)

</comment><comment><USER20> This sounds really useful. If it's less than 100$, I could see it selling very well outside of a convention.

If a future iteration is cheap, light and can be worn below clothes, I could really see this catching on.

</comment><comment><USER21> Awesome invention. If they can make it even less intrusive people might start wearing it in daily life. Not sure how to feel about the "Chairolution" slogan, though.

</comment><comment><USER22> It looks really uncomfortable to me.

Straps holding it in place, only two pads beneath your butt and no back support.

Maybe in a two minute demonstration it's ok, but wear it all day and I bet it will feel like a jail.

As for the assembly worker video example, it doesn't seem like a well-thought use case.

Why not use a stool? Cheaper and might have some back support.

Also, off the top of my head:

What happens if you forget and lean backwards, even a bit ?

How much time does it take to put it on and take it off?

How easy is it to put it on in a slightly incorrect manner and twist and break your leg?

<comment><USER23> > Why not use a stool? Cheaper and might have some back support.

Look at what the guy is doing. A stool will probably only cover 30% (if that) of his work.

> What happens if you forget and lean backwards, even a bit ?

What happens if you are on a stool without a back and lean backwards?

> How much time does it take to put it on and take it off?

It sounds like you only put it on once per day and just leave it on disabled without significantly impacting your movement.

<comment><USER24> If you lean back on a stool you will kick your legs out to cancel the momentum. It's an unconscious reflex. Can't do that if your legs are strapped down though.

</comment></comment></comment><comment><USER25> We've come full circle--from a standing job to a desk job to a standing desk job to a standing job where you can sit on your pants.

</comment><comment><USER26> This seems to be a stepping stone to widespread fully powered exoskeletons. I could imagine the next version of this supporting lifting capability.

</comment><comment><USER27> I remember when I was singing in the Juilliard pre college chorus as a kid, we had to stabd for hours on end in a concert. I wanted to make pants that go above the knees and lock into place, so they support me standing. So I wanted to build a low tech version of this when I was a kid :)

</comment><comment><USER28> I bet pregnant women would like a version of this which supported their body weight sporadically throughout the day, especially in the late third trimester.

Hell, I want one to help me do the dishes. There's somewhere a stool wouldn't make much sense.

</comment><comment><USER29> The name reminds me of this SNL sketch: [https://screen.yahoo.com/art-dealers- susan-greg-meet-0000008...](https://screen.yahoo.com/art-dealers-susan-greg- meet-000000810.html)

<comment><USER30> Guessing that a lot of people are going to read the name as no-one.

</comment></comment><comment><USER31> Question, if standing desks are so great then why is standing at work considered bad? Only reason I can come up with is that with the desk you can set its height

</comment><comment><USER32> Invisible chairs have been around for a long long time: [http://i.imgur.com/tIIBKCY.jpg](http://i.imgur.com/tIIBKCY.jpg)

<comment><USER33> You are correct sir. And as an added benefit, it keeps you nice and limber.

</comment></comment><comment> m-app These guys are definitely streets behind:

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

</comment><comment><USER34> This would perfect with my standing desk!

</comment><comment><USER35> I think it can be even more invisible.. www.youtube.com/watch?v=DkmkGFHTjRg

</comment><comment><USER36> A tiny step closer to mass-market robotic exoskeletons.

</comment><comment><USER37> seems like it would hurt.

</comment><comment><USER38> Last slide suggests that RyanAir would love it.

</comment><comment><USER39> Sitting is the new smoking. This thing is like the e-cig of chairs...

<comment><USER14> I don't understand this analogy. Care to explain?

<comment><USER18> Sitting too much can cause health problems (not because of the sitting itself but the lack of exercise that often accompanies sit-down jobs). It's been fashionable to say 'sitting is killing people' and suchlike in the popular media.

<comment><USER40> Spending too much time sitting down is believed to increase mortality even if you exercise regularly.

E.g. [http://www.health.harvard.edu/blog/too-much-sitting- linked-t...](http://www.health.harvard.edu/blog/too-much-sitting-linked-to-an- early-death-201401297004):

"Even if you are doing the recommended amount of moderate to vigorous exercise, you will still have a higher risk of mortality if you're spending too many hours sitting," says Dr. JoAnn Manson, one of the study's authors, and chief of preventive medicine at Harvard-affiliated Brigham and Women's Hospital.

<comment><USER41> What is "too much"? So what should we do? In school, we studied in class by sitting on the school chair. That habit continue in campus. Also, some worker are forced to do their job by sitting (e.g. taxi driver, pilot).

Btw, The article said that 8+ hours and it applies to woman.</comment></comment></comment></comment></comment>


Python as an extension language: Not all beer and sunshine - <AUTHOR> http://www.sublimetext.com/blog/articles/extending-with-python <comment><USER2> Skittles.</comment>


Show HN: Anvil – From repo to live demo in seconds: simple web app sharing - <AUTHOR> https://demo.anvilapp.io/

<comment><USER2> Interesting, but explain to me how your product is going to get me more than just using this: pagekite.net. I've used it to share features with my collaborators quite often (and especially with my UI/UX designer, quality- assurance people, etc. for front-end work) to make sure that I'm going in the right direction as I work. It essentially allows me to forward external traffic to my localhost, on which a dev server is running the code from my branch. No dockerfiles, no branches.

<comment><AUTHOR> It's cool that you use something to share your progress. However, forwarding traffic to localhost means it's only live when your computer is running, it's prone to network issues, and it's limited to serving at your computer's speeds.

We're looking to make Dockerfile creation a lot less of a hassle, probably with a Dockerfile generator tool. We're also looking to add ways for gathering feedback to make this a stronger collaboration tool.

<comment><USER2> Okay, so it sounds like a pretty smart application of Docker containers, then. I like it.

</comment></comment></comment><comment><USER3> Interesting. How is this better than just sharing the Dockerfile directly? Or just having a free instance hosted on Heroku? It's not too hard to load a container. As an example [https://github.com/discourse/discourse_docker](https://github.com/discourse/discourse_docker) makes it pretty straight forward to host discourse.

<comment><AUTHOR> Yeah, Docker makes it pretty easy to launch containers but we're aiming for this to be used as a quicker way to share early iterations and not as a way to host apps indefinitely. As an example, someone could attach an Anvil link to a pull request on GitHub to demo their updates so people could see changes without needing to download, build, and serve the code. You can use Heroku servers, but there would be some deployment work on your end for sharing multiple variants of multiple demos simultaneously.

Assembly (the place to crowd create a startup) wrote this blog post ([http://blog.assembly.com/tools](http://blog.assembly.com/tools)) where they share a lot of the tools they use for sharing product updates with each other. Anvil requires no work on the user's part to create a walkthrough, and allows whoever they send their branch to to be able to interact with the demo for themselves.

Do you think it would be convenient to use Anvil when sharing your updates?

</comment></comment><comment><USER4> This is awesome. Many times I have looked at an open source project and wanted to look around but didn't want to take the time to download, setup, etc. This looks awesome!

<comment><AUTHOR> Thanks! We're currently adding a way to detect web app stacks and build Dockerfiles for users so it's easier to use. We're also thinking of adding a way to build feature branches whenever there's a pull request so you can see the branch live before accepting the request.

Do you have any feedback on things that we should add or change?

</comment></comment><comment><USER5> It's Docker-based? cool.

<comment><AUTHOR> Yup! We use Dockerfiles to set up the environment for the web app. We're also working on a Dockerfile generator to make this process automatic.</comment></comment>


Resources for understanding pointers? - <AUTHOR>

I'm looking for any resources that will introduce pointers to me (in C), preferably with many examples, and in increasing difficulty.<p>I have experience with Java + Python <comment><USER2> If I ever get confused, I'd check one of these two:

the Spiral Rule: [http://c-faq.com/decl/spiral.anderson.html](http://c-faq.com/decl/spiral.anderson.html)

the ksplice test: [https://blogs.oracle.com/ksplice/entry/the_ksplice_pointer_c...](https://blogs.oracle.com/ksplice/entry/the_ksplice_pointer_challenge)</comment>


What makes healthcare so expensive (Infographic) - <AUTHOR> http://healthland.time.com/2013/02/20/what-makes-health-care-so-expensive/

<comment><USER2> This is particularly frustrating to see as I'm jumping through hoops to get myself health insurance while running my own startup.</comment>


Prolog: Under the Hood - <AUTHOR> http://www.amzi.com/articles/prolog_under_the_hood.htm

<comment><USER2> I think there's a keming issue in the first code listing. But in reverse.</comment>


The Most Innovative Employees at Google Aren't grads with Perfect SATs - <AUTHOR> http://blog.idonethis.com/post/50579439215/the-most-innovative-employees-at-google-arent

<comment><USER2> I am quite familiar with the current engineering hiring practices at Google, and what the story claims is completely different than what I've heard from actual engineers who perform the interviews.

The process is highly technical and if anyone marks you as a "B", you are unlikely to be hired.

<comment><USER3> I don't this contradicts the article, as I'd fully agree with both the article _and_ you. The article just says that SAT scores and GPAs don't matter so much -- technical chops still do.

<comment><USER4> I'd say getting a high SAT score and GPA requires pretty much the same skill set as technical code-on-the-whiteboard interviews. Actually, technical interviews are even more narrow, and probably weed out very many highly creative, motivated people that "have a mission".

<comment><USER5> The top students often dont't have an overly high GPA because they take a difficult courslanded for them and go beyond there classes and end up prioritizing more than just a 4.0. Also I find highly technical interviews have limited value beyond a simple pass\fail because the poorly represent an actual working environment.

If you really want the best have them walk you through a project they are proud of. It takes a lot more effort and you need to let go of the ego boost of knowing all the answers as you go over the same problems with everyone. However, you can dig a lot further into how they think.

PS: It's important to reolise Google is way to large to be all that picky though. Lucky the vast majority of Google projects are not really that difficult or important. But, if you need the 'best' there are people out there that will blow your mind.

</comment></comment></comment></comment><comment><USER6> This post is really light on the references and methodology, but I'll take it at face value.

I think it's great that they've let go of this obsession for Ivies.

But what they don't even talk about in this post is how the Ivy-only policy poisoned their company culture. To quote a friend from mine from a top startup: "All the assholes at my company come from Google."

<comment><USER7> _To quote a friend from mine from a top startup: "All the assholes at my company come from Google."_

My personal experience is that the engineers at Google are really decent, capable people. I miss that crowd, actually. They were pretty solid. It's the rest of the company (including tech management) that's fucked up.

When you have a company that believes engineering is for smart people and everything else (people management, product direction) is Dumb People Work, well... who ends up fulfilling those (actually important) duties? Exactly.

However, my only gripe with Google engineers is that they tend to be closed- minded about "weird" programming languages like Haskell and Clojure.

<comment><USER6> Yea, to be fair, I think she was referencing mostly middle management and upper management folks, not engineers.

</comment></comment></comment><comment><USER8> I think that article is a bit content free, the real gold is in the article it links to by the NY Times [http://www.nytimes.com/2013/04/21/technology/big- data-trying...](http://www.nytimes.com/2013/04/21/technology/big-data-trying- to-build-better-workers.html?pagewanted=all&_r=2&);

</comment><comment><USER9> It took analytics to show that people born into an elite status may not always be better employees than people who've had to work twice as hard to balance self-development and making ends meet?

</comment><comment><USER10> I wonder about sampling bias. If Google has a preference towards MIT/Stanford with perfect SATs, then wouldn't the employees that don't meet that profile have to be a little bit more distinguished to begin with?

</comment><comment><USER11> What is this blog post based on?

<comment><USER12> Begging the question.

</comment></comment><comment><USER13> Imagine that creativity doesn't necessarily come from spending a few grand on test prep classes.

</comment><comment><USER14> I have always considered SAT scores to be highly correlated with how good of parents you have.

</comment><comment><USER15> So how do you determine, during an interview, if the candidate has a strong sense of mission about their work and also feel that they have much personal autonomy? Perhaps the second piece happens after they're hired when you give them the autonomy, but it seems like a strong sense of mission isn't enough -- they need to be able to execute on it either through their own actions or by influencing others. And, of course, you need to find some whose mission aligns with the needs of your company.

<comment><USER16> Can any developer feel a strong sense of mission about a project when the project isn't their child? Personally, I don't think I can. If it's not my child project, then to me it's just a 9 to 5 job. At least I've decided it will be since last year, since any extra work I put in wasn't noticed / rewarded.

So I'd say autonomy is great, but will probably only give great results if the project itself is a pet project by the developer.

</comment></comment><comment><USER17> I'd estimate that a greater percentage of HN readers than Google employees have perfect SATs.

<comment><USER18> I have been trying to use probability in real life occurrence like this whenever I can, so let's get started back of the envelop style

according to this site <http://research.collegeboard.org/content/sat-data- tables>

Roughly 1.53 million students take up SAT every year and of which 10k students get perfect SAT score in Math (let's just focus on math for now)

so that's 0.67% (rounded) people getting a perfect score out of the total.

According to this data set, [http://blog.rjmetrics.com/surprising-hacker-news- data-analys...](http://blog.rjmetrics.com/surprising-hacker-news-data- analysis/)

It says there are roughly 31k active users on HN, considering that I have personally seen many google employee's responding to a query/commenting on HN, let's assume a higher number of 2.5k.

so, 2.5k * 0.0067 which is about 17 people, so there are 17 active google employees on HN which have perfect SAT score in Math.

So that was my attempt, can someone provide a better probabilistic model? (maybe I will learn something new and exciting)

<comment><USER19> I think it'd be a fair assumption that the percentage of Google employees with a perfect SAT score is higher than the national average. Just like the percentage of students at MIT with perfect SAT scores is higher than the national average.

Google employees aren't representative of the entire population.

</comment></comment></comment><comment><USER7> This is nonsense.

 _"All people decisions at Google are based on data and analytics," according to Kathryn Dekas, a manager in Google's "people analytics" team._

Calibration scores are not fucking data, not any more than bathroom graffiti contains reliable information. Data-driven my ass.

(She may have been only talking about hiring, but she said "all people decisions", and that's incorrect.)

 _Google discovered that its most innovative workers "are those who have a strong sense of mission about their work and who also feel that they have much personal autonomy."_

Bullshit. Take that attitude to work at a place like Google and you'll be on a PIP as soon as your boss catches wind that you have ambitions other than serving his specific career goals. Google hasn't valued "personal autonomy" since I was in high school.

<comment><USER20> Michael, I don't mean to be disrespectful -- I've enjoyed your comments a lot on HN, and find them to be incredibly insightful -- but I feel like you're beating a dead horse with your Google vitriol.

<comment><USER7> My work isn't done yet. Our industry is still hellish and there are trillions of dollars of value to be added to society by fixing it.

Programmer Autonomy is a $1 Trillion Issue: [http://michaelochurch.wordpress.com/2012/11/25/programmer- au...](http://michaelochurch.wordpress.com/2012/11/25/programmer-autonomy- is-a-1-trillion-issue/)

The cultural war on closed allocation is the only trillion-dollar problem in the world that I have any power whatsoever to influence (not much, but I have a voice). Attacking Google-- exposing its closed allocation as a catastrophe that destroyed what could have been an amazing company-- is part of the campaign.

How to structure a software workplace properly is _the_ only trillion-dollar issue on which I'm a world-class expert, and probably the only such one in my life. So yes, I do tend to be a bit overfocused on that problem domain.

<comment><USER21> _I'm a world-class expert_

What is the evidence that you are a world-class expert on that or on any other issue?

<comment><USER7> Let's start with the fact that open allocation (not a concept I invented, but one that I've advocated with extreme vigor and, to a large degree, popularized; and I did come up with the term "open allocation") is in force or under active exploration at pretty much every company where the talented engineers want to work, and that closed-allocation companies fall into mediocrity and develop retention problems through a process that I've discovered and documented with extreme precision, including on my blog.

I'm sure there are a couple people who know more than I do-- perhaps the CEO of Valve and that company's chief economist-- but it's pretty obvious that I'm on the short list right now. When it comes to setting up the culture for a technology company, I'm one of the few people who actually knows how to do it right.

<comment><USER22> Is the best culture for a startup one of hubris and poor emotional intelligence?</comment></comment></comment></comment></comment></comment>


Asking Gender in Surveys – doing it right - <AUTHOR> https://www.schoenitzer.de/blog/2019/Gender%20in%20Surveys.html <comment><USER2> Also, make sure to ask for a second and third nationality, because quite a few people have several passports, especially in Europe. Don't forget to add Statelessness as an option. Also, it may be difficult to decide if certain countries should be included in the list, as they are not widely recognized, such as Palestine and Catalonia. Therefore make sure add an "other(s)" field. Make sure this field allows several entries.

</comment><comment><USER3> Easy fix: ask for sex instead of gender. 3 options: male, female, won't state. Genuine intersex people are incredibly rare and have faced this choice many times before and will just choose the one they feel comfortable with; it won't actually affect your stats too much.</comment>


AMD 16-Core ThreadRipper Enthusiast CPUs to Reportedly Utilize 4094 Pin Socket - <AUTHOR> http://hothardware.com/news/amd-16-core-threadripper-cpus-to-utilize-4094-pin-socket <comment><USER2> Finally it looks like the desktop CPU market could become interesting and competitive again. Intel being pushed to release a new top of the line core i9 processor?! I cannot remember anything like this since the amd64 days more than 10 years ago.

Would love to play with one of these setups..

<comment><USER3> The i9 isn't new. Its a rebranded Skylake-X/KabyLake-X chip. This has been on their roadmap for over a year [1]; they just changed the name to trick consumers into thinking its something new.

The hype between here and reddit about i9 is astounding to me. You've been able to get an i7 in a 10 core variant for a year now [2]. Need 6 cores? Take a time machine back to Q3'11 and pick up an i7 3930k [3]. And if you needed twelve cores, you could buy Xeon [4]! Heck, go crazy, get 22 [5]!

The only difference is likely price; hopefully the i9 is cheaper.

Fundamentally, why you should not be excited about these things: They'll use the enthusiast motherboard socket/chipset, not the consumer socket. And they'll have a 140W TDP, whereas Ryzen has 95W max. These two things are what makes Ryzen so amazing. If you ignore these two things, then you might as well by Xeon; Intel has lead in that category for years and continues to.

[1] [http://wccftech.com/intel-skylake-x-kaby-lake- x-q2-2017-road...](http://wccftech.com/intel-skylake-x-kaby-lake- x-q2-2017-roadmap-leak/)

[2] [http://ark.intel.com/products/94456/Intel- Core-i7-6950X-Proc...](http://ark.intel.com/products/94456/Intel- Core-i7-6950X-Processor-Extreme-Edition-25M-Cache-up-to-3_50-GHz)

[3] [http://ark.intel.com/products/63697/Intel- Core-i7-3930K-Proc...](http://ark.intel.com/products/63697/Intel- Core-i7-3930K-Processor-12M-Cache-up-to-3_80-GHz)

[4] [http://ark.intel.com/products/91767/Intel-Xeon- Processor-E5-...](http://ark.intel.com/products/91767/Intel-Xeon- Processor-E5-2650-v4-30M-Cache-2_20-GHz)

[5] [http://ark.intel.com/products/93805/Intel-Xeon- Processor-E5-...](http://ark.intel.com/products/93805/Intel-Xeon- Processor-E5-4669-v4-55M-Cache-2_20-GHz)

<comment><USER4> The problem is of course the fact that 6+ i7 chips don't actually fit the consumer motherboards, but you need to go to the server segment where MBs are significantly more expensive and lack a whole slew of additional features nice for desktop machines.

<comment><USER5> >server segment where MBs are significantly more expensive

False-ish

Single socket server boards are on par with home motherboards. They only become expensive when you start wanting 2+ NIC's and A LOT of sockets. But then yes your feature thing is mostly true.

> and lack a whole slew of additional features nice for desktop machines.

False-ish

Intel's server socket (for non E7's) is 2011v3 which is also their enthusiast socket. I dropped a XEON E5v4 2030 into a 2011v3 ""ethusiast board"" and it worked without a problem.

Sure my enthusiast board doesn't support ECC RAM, and I can't over clock a XEON. But a 2011v3 board in and of itself is only ~50-60 more then an EXTREME low end <$100 stock standard home user motherboard.

You get what you pay for if you want a dirt cheap board to drop a server class CPU into you can find it.

<comment><USER6> You don't need to go to a server board for ECC - a lot of the X99 boards actually do support it. Not all of them (EVGA doesn't, a lot of Gigabyte boards don't) but a lot do (Asrock usually does).

And you can find motherboards in pretty much any price range except the barest of dirt cheap. There are motherboards like the GA-X99-SLI that regularly hit $125 or lower. Cheapest thing on Newegg right now is a $150 Asrock board that supports ECC.

The only price range that you "can't get" for X99 is the under-$100 price range, i.e. the super-shitty low-end chipsets. And you actually can get it if you are willing to take an open-box item. I paid $60 after tax for my last X99 board.

Also realize that most of the people who are bitching up a storm about X99's $150 motherboards likely turned around and paid $250 for an X370 board when Ryzen launched. I mean, you gotta get one of the nice ones with the external clockgen so you can get your $300 Samsung B-die memory kit to run stable, right? (but that's totally different! /s)

<comment><USER7> Problem is that you cannot have both via current (from 2011+ on) Intel route: high clock speed on the CPU(achieved by OC) AND ECC.

You want ECC you have to get Xeons.

You want OC you have to get regular mainstream K chips or enthusiast -E chips without ECC support.

I think the last chipset which let you OC Xeons and still use ECC was X58 on 1366 socket.

Disclaimer: I am not counting tiny BCLK OC available on Xeons.

<comment><USER5> Because ECC and OC are targeted at different audiences. If you want both... you don't understand one or the other.

ECC is to guarantee system stability. Solving rare event that become regular once you have hundreds of boxes running.

OC INCREASES system instability. You put more power into a chip, increasing the probability of incorrect or malformed answers.

Now both these scenarios are rare, especially for single box home enthusiasts. Generally if you have a stable OC you won't hit garbled instruction results. Likewise you may almost never have an error that ECC would present.

\---

Having OC and ECC basically says, "I want to solve one extremely rare error while opening myself up to another!" This is an idiotically unsound decision.

<comment><USER8> ECC can help you ensure that your OC is still stable. And these chips are optimized for power use in servers. There is often a lot of room for stable overclocking.

You're also not guaranteed perfect operation inside the CPU without an overclock, so if it's idiotic to combine OC and ECC, it's idiotic to use ECC at all.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> ThreadRipper is the perfect name for a 16cores/32 threads CPU

</comment><comment> m-j-fox I wonder why it needs so many pins? It only has 4 DDR channels, which is going to be a bottleneck keeping those cores fed. 8 channels would be more appropriate for 16 cores and it would explain why so many pins.

<comment><USER10> The Naples chips also have 4094 pins and do have 8 channels as well as support for 2+ CPUs per board. Maybe these Threadripper chips are Naples chips where memory controllers or interprocessor communication controllers failed QA?

<comment><USER11> > Maybe these Threadripper chips are Naples chips where memory controllers or > interprocessor communication controllers failed QA?

I'd be highly surprised if they were anything else.

</comment></comment></comment><comment><USER12> Can't wait! Postponed my Ryzen purchase as rumors started to surface about June launch of 16c version - this could allow running 4x GTX 1080 for ML and provide significant boost for movie rendering.

<comment><USER13> I don't blame you, I was going to hold off, then realized since I'm all mITX from here on out that I'd just build now. None of this stuff is going to be 65W TDP (at least the 8-core or more parts) so the 1700 will continue to make a lot of sense for those moving to mini-ITX.

<comment><USER14> These are going to be 150W+ for sure, heat be damned when you need performance.

</comment></comment></comment><comment><USER15> AMD was sooo close to having a perfect 4096 socket. SO CLOSE!

But, alas, it was not meant to be.

<comment><USER16> Missing corner pins means you won't accidentally insert it the wrong way.

<comment><USER15> What about a socket that is like USB-C, there is no wrong way to insert it.

Though I imagine such a socket would be an insane task to complete and have numerous problems with latency and speed.

<comment><USER17> Engineering a socket like that has to be a low priority. It's not as though people are reseating their CPUs every day, and generally speaking, the people that do it can handle aligning it properly.

<comment><USER18> I helped a friend build a computer back in school and when he got the parts in the mail he hurriedly started building (against my advice to wait until I got there) he put the CPU in the wrong way and bent some of the pins. So it does happen more than you would think.

<comment><USER17> I'm not even mad. It's hard to jam them in the wrong way nowadays! What socket was this?

</comment></comment></comment></comment></comment></comment><comment><USER19> Well damn this looks like it might be in the right spot for what I'm after. It'll depend on price-point to be exact but I've got a semi-server semi-gaming setup that I want to upgrade from an older i5 and have been waiting to see Naples and early adopter stuff get hammered out. 16 cores is a great spot for me to give a few to a gaming VM, while still being able to have plenty left over for running build/smoke VMs and other random projects like testing syzkaller to check that I'm not doing something inherently stupid with a sandbox I work on. Can't wait to see more about this.

<comment><USER20> For Intel's Xeon processors, the more cores you have the lower the frequency you get. Quad core might give you an extra gigahertz, which might be of more value to games than 12+ cores.

<comment><USER21> True for old games, but for them the single core performance is enough (except maybe supreme commander with 5'000 units on the field). Looking forward with DX12 and Vulcan more cores seems to be more future proof.

Plus shouldn't XFR (or Turbo Boost Max Technology 3.0 Frequency for Intel) somewhat alleviate that particular issue?

</comment></comment></comment><comment><USER22> AMD is a great company and I wish them every bit of success and luck with this but I can't help but thinking that fighting two formidable competitors on their home turf (Intel and NVIDIA) is a bit much. Just one of those would be a battle.

</comment><comment><USER23> It's like cheapish g34 quad setups all over again. Looking forward to benchmarks.

</comment><comment><USER24> Who would they be marketing such a thing to? 8-core Ryzen seems like enough for most people and any more cores will probably have to be down-clocked for thermal reasons.

I thought for the high end they'd go to something like the EHP concept from a couple years ago - put a CPU, GPU, and HBM2 all on a single substrate and market that thing. Call it BraZen because it would be. Give me that in the case from their project quantum...

<comment><USER6> Workstation users. CAD, raytracing, and video editing people need as much CPU horsepower as they can get, and quad-channel RAM is pretty nice too.

("preview" rendering is done with GPU acceleration - but final encodes are still done on CPU for quality reasons)

Small-business servers, databases, that kind of stuff too.

We'll see where they go with this - but I would caution enthusiasts to tamp down their expectations a little bit because this is not necessarily going to be an ideal product for gaming. I would not be surprised to see lower clocks to keep TDP under control, and some fairly high price tags to go along with these chips.

I'm imagining this as being more of a competitor to the high-end Xeons, with 3.5 GHz boost clocks and 3 GHz base clocks and a $2000 price tag. It would still be a screaming great deal at that price.

In comparison Intel wants $1700+ for most of the high-core-count Xeons, and you're getting fewer cores and lower clocks.

<comment><USER24> I hear you. I'm a raytracing guy and I look forward to Ryzen and would love to try Naples. But this intermediate thing sounds like a 3rd platform squarely between those. It even has 16 cores rather than 8 or 32, so if the core count doubled or halved it would be very much be competing with one of the other market segments processor.

<comment><USER12> It seems 16c will be clocked at 3.1-3.6GHz, whereas Naples significantly lower (which is OK for servers). I'd go with 16c for sure for movie rendering (ehm, if only ReelSteady could do a multicore image stabilization rendering...?)

</comment></comment></comment></comment><comment><USER25> How much of a performance hit would be expected for single threaded performance with the new 16-core processors?

<comment><USER26> Top-end Ryzen chips have a TDP of 95W. (Edit: AM4 socket is rated at >140W TDP.) The new sockets are designed for 180W and up, so they will probably run at the same clock frequencies. That means no hit for single-thread performance.

<comment><USER27> 180W!? That thing is a monster.

<comment><USER28> Cores come at a power cost. This is why Intel has been hesitant to move to consumer 8 or 16 core CPUs. There's a lot of pushback on using this much power and serious environmental concerns. Intel's engineering has been focused on power savings, so they've actually been going the opposite way for years now on the consumer end.

This is also why you won't been seeing these 16c chips on non-specialist Dells and HPs. They'll be high-end workstations and servers only. Joe Consumer or Joe Officeworker doesn't need 16 cores.

6-8c comes in at a more modest power profile, so we'll probably see the industry standardize on 6-8c for a while. I think Intel is now forced to move toward 6-8c now, which may be questionable move for most consumer loads, but if everyone stays under 100w for consumer CPUs I think it'll be okay. I don't want the performance race to be driven by AMD's ideas that burning 200+w for a CPU is reasonable. Outside of specialist applications, its not.

<comment><USER29> The main reason they've been doing that is because it's been much easier to lower power consumption per core than increase performance per core. This way they could still claim "significant improvements" year over year.

It's also a way better strategy to make "better server chips", because it means you can add more cores.

<comment><USER28> That's assuming there's no trivial single-core advancements possible at this fab size, which there might not be. The run up to Ryzen had a lot of AMD types cheering about "lazy" intel getting beat but Ryzen's per core performance is on par with a 2600k from 2011 and is consistently edged out by a 7700k at the same, or below, pricing.

Also Intel's gains have been modest, but very real outside of power savings. CPU passmark benchmark:

2600k (2011) : 8484

7700k (2016): 12196

Both are 4 cores so its a one-to-one comparison. A ~30% increase per core is pretty impressive this late in the Moore's law game. If it wasn't then we'd see Ryzen doing much better per core, but its not. My workloads cannot make effective use of 8 cores so its academic that I can buy a 8c chip now. It would literally be downgrade from my intel for me.

</comment></comment></comment></comment></comment></comment><comment><USER30> I break out in cold sweat when I think about routing a 4094 pin socket. How does anyone layout a motherboard for this in a reasonable time frame?

<comment><USER31> Presumably there must be a lot of computer assistance?

<comment><USER32> Not really, autorouting is generally extremely bad. Especially for applications with such high performance criteria. On the plus side the work only has to be done once since later motherboards are mostly just iterations on a previous design.

<comment><USER33> The latest high-end PCB tools actually provide useful autorouting features, because they have figured out that if you combine human ability to solve the difficult pattern-recognition and planning problems, you can have a computer solve the details.

For example, Xpedition's sketch routing feature: [https://www.youtube.com/watch?v=fIi13gI9xEA](https://www.youtube.com/watch?v=fIi13gI9xEA)

Routing 4094 signals sounds daunting, but it is a bit less daunting when you realize that a good fraction of them are power/ground (and route directly to planes), and the rest of them are mostly logically organized into buses/groups that can be routed together.

<comment><USER14> Yeah, a good portion of those pins will be wired directly to the power regulator components that are next to the socket, and a good chunk more break out neatly into channels for memory and PCI-e.

Seems like it's almost boring these days since everything's encapsulated in a layer of abstraction. A lot of the more complicated wiring is in breaking out PCI-e channels into things like ethernet, audio, and other miscellaneous ports that involve good chunks of analog circuitry.

</comment></comment></comment></comment></comment><comment><USER34> I would have put two more pins and made it an integer power of two. And it would have looked nice on the bottom! (64 x 64)

<comment><USER35> They usually take a pin or two out from square-matrix pinouts to create sufficient asymmetry to prevent you from inserting the chip rotated 90 degrees.</comment></comment>


Achieving Peak Pasture - <AUTHOR> https://thebreakthrough.org/issues/food/livestock-revolution <comment><USER2> This article describes advances in a fundamentally broken system.

There is another way, and you get to keep the beef:

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

[https://joyce-farms.com/pages/regenerative-agriculture](https://joyce- farms.com/pages/regenerative-agriculture)

</comment><comment><USER3> At the risk of sounding like a cynic, a lot of that animal intensification on existing pasture uses supplemental feeding with crops that the growing thereof also have a deleterious effect on biodiversity - corn-fed beef, or even worse, dairy cattle being fed palm kernel grown using slash and burn agriculture in rainforest regions.

Not to mention the faecal and nitrate pollution of aquifers and rivers due to higher animal numbers in a smaller area.

With regards to GHG gas emission, one of the biggest issues with ruminants is methane - but a new approach (patented by scientists from Australia's CSIRO) looks very promising: [https://www.stuff.co.nz/environment/climate- news/116683942/g...](https://www.stuff.co.nz/environment/climate- news/116683942/government-supports-seaweed-project-to-reduce-cattle-methane- emissions)

</comment><comment><USER4> I think we need pasture... some interesting perspectives in this piece. I think we should probably stay focused on nourishment, as a society. Not the opposite, but thank you for sharing this propaganda.</comment>


Show HN: Europa – An Open Source Multi-Cloud Container Registry - <AUTHOR> https://www.distelli.com/europa <comment><AUTHOR> I'm the founder at Distelli and we just released a new container registry. I'm happy to answer any questions.

ps: Its multi-cloud because it connects to other registries and pulls / pushes images to them keeping everything in sync.</comment>


What's in the Rest of the Top-Secret NSA PowerPoint Deck? - <AUTHOR> http://www.wired.com/threatlevel/2013/06/snowden-powerpoint/

<comment><USER2> It is likely that there are some data that would be very sensitive at a global level. Maybe something like, direct access to Chinese, Russian, and European highly classified documentation. We could infer that it exists to some extent, but revealing it from the horse's mouth would probably have very bad consequences.

</comment><comment><USER3> He wanted the whole thing released.</comment>


Give your Commodore 64 new life with an SD card reader - <AUTHOR> http://stevehanov.ca/blog/index.php?id=133 <comment><USER2> I have one of these devices, also got it from Jim Brain; worked wonderfully, until I sucked the (way too long) power cord into the vacuum one day when I didn't notice it was hanging down off the desk. Still need to figure out how to put it all back together. In the meantime, I just use my C64 with MSSIAH as a MIDI synthesizer...still need to install the SID2SID so I get six channel stereo sound.

Old machines have so much character and charm. I find myself browsing old- computers.com pretty regularly, and if I don't stop myself, I go searching eBay for the more interesting ones.

</comment><comment><USER3> The 1541 Ultimate SD Card drive is worth checking out:

<http://www.1541ultimate.net/content/index.php>

It is emulating a complete 1541 floppy drive and should have pretty good compatibility with demos.

</comment><comment><USER4> Did he say "Just Bing it"??

</comment><comment><USER5> someone has to make a tape drive emulator for it, no fun in looking for workable games on a SD card :)</comment>


Ask HN: which kind of PDFs you generates? - <AUTHOR>

What are the most common use cases for generating a PDF? <comment><USER2> Graphics - working in Liunx the best way to get "what you print is what you see" is to create a PDF and then print it with scaling off. Programs such as LibreOffice and Inkscape printer drivers have not been all that reliable to print properly, but export to PDF and print overcomes that.

Web Reporting - for web apps creating address label sheets with formatting that "just works" also is best route via PDF. Secondly is using tools such as PHP's FPDF/FPDI you can use PHP to programmatically fill out PDF forms, used that a lot for report forms like the DE542.

The main benefit of PDFs is that the PDF document accurately represents what you create across platforms (by including fonts, etc.) So it is very important for presentation documents, reports, and press-ready publication.

</comment><comment><USER3> Visualizations, e.g. I have a script that composes a huge image from road traffic video which you can see at different scales. In raster it would be something like 200 MPx for desired level of detail, whereas in PDF you can freely mix raster and vector graphics in portable way.

Also, scanned document compression, using Mixed Raster Content technology.

</comment><comment><USER4> All our client deliverables are PDFs, generated from a JRuby Rails app (I haven't had a lot of luck with Prawn).

</comment><comment><USER5> Scientific papers, other papers, letters, other texts, documentation, homework…

Could you maybe be more specific?

</comment><comment><USER6> I generate a PDF when I want to print something out.</comment>