Intel's New Low: Commissioning Misleading Core I9-9900K Benchmarks [video] - <AUTHOR> https://www.youtube.com/watch?v=6bD9EgyKYkU <comment><USER2> I worked in HPC when NVIDIA started taking serious market share from Intel. My memory of Intel's performance comparisons were that they were often technically unsupportable once you scratched the surface.

In one case a third party who were demonstrating how much faster Intel Xeon Phi was for deep learning admitted that they were comparing highly-optimised code to unoptimised code in their results.

This doesn't surprise me at all.

<comment><USER3> I've been in the same boat and I completely agree. One thing that's unexpected to people is that getting decent performance out of a GPU is actually easier than CPUs - vectorization and multithreading is unified in the parallel programming model, cache optimizations are mostly not needed. These are the two biggest time sinks you have when optimizing for CPU, solved right there. What you instead have to care about is resource utilization per thread, and that is IMO way easier to reason about and optimize for.

<comment><USER4> Are there any good guides or tutorials? I've found GPUs difficult, in part because I don't really know where to start.

FWIW, I have an AMD GPU with ROCm. HIP it's a lot like CUDA, so NVidea-focused tutorials ought to be fine. With the caveat that I'd have to be aware of hardware differences.

<comment><USER5> The main issue IMO is thread-divergence. Because "threads" on a GPU are really SIMD-elements, things work very differently.

Lets use a simple example:

        for(int i=0; i<10000000; i++){
            if(someCondition)
                break;
            else
                doStuff();
        }

In a CPU case, the thread will break out of the loop early on "someCondition". But in the GPU case, it will only break out of the loop when "someCondition" holds for the entire SIMD-group.

GPUs execute roughly 32-threads with the same instruction pointer. Lets say thread#0 had "someCondition" to be true. Then thread#0 will be set to "disabled", but otherwise, it will have to wait for the 31-other threads to be done with the loop before continuing.

Even if 31-threads have hit "someCondition" and have broken out of the loop, the 32nd thread will keep executing the loop until it is done (and threads 0-through-30 will "execute with" the 32nd thread, but will throw away the results).

That's the key with SIMD. Threads are run in groups of ~32ish at a time, at the same time. All 32-threads must execute if statements together and loops together.

In most cases, an if/else statement will be executed by BOTH threads (but the results "thrown out" by the GPU engine, through execution masks)

</comment></comment></comment></comment><comment><USER6> In text form: [https://www.techspot.com/article/1722-misleading- core-i9-990...](https://www.techspot.com/article/1722-misleading- core-i9-9900k-benchmarks/)

<comment><USER7> This article says that Techspot has obtained the 9900 (without being bound by an NDA, as others are), and that Intel is releasing misleading results while other reviewers _are_ bound by an NDA, but that Techspot is not going to show their own benchmarks--which could refute the misleading results Intel has authorized for public release--out of a sense of "professionalism."

 _Actually_ , any "professional" journalism outfit would show the public the newsworthy results, not withhold this information from readers because of a desire not to piss off industry contacts.

<comment> m-p-3 The thing is you just need to piss off an industry contact once to be taken off of their list, essentially neutering themselves in the future and making them less competitive compared to other websites.

It's a sad state of affair, but that's the reality of it.

<comment><USER8> They were already neutered, they weren't given a part to review. the part they allegedly have was probably gotten through unofficial means, since it is highly unlikely intel would just give out parts to media outlets ahead of a launch without an NDA attached to it.

</comment></comment></comment></comment><comment><USER9> Also they seem to have tested AMD CPUs in "game mode" which disabled half of the cores (one of two CCXes)...

<comment><USER10> I like that the "Game mode" makes the AMD CPU's perform worse in game benchmarks...

<comment><USER11> The reviewers used Game Mode on a CPU without NUMA, so it was pointless and only meant to damage.

<comment><USER12> It can still help, if used in precisely the right circumstance. Not that this makes your statement any less true, I'm just being needlessly pedantic.

One amusing thing I've noticed is that, playing the _same_ game (Minecraft), Windows runs it ~25% faster in game mode than default NUMA.

In Linux the situation is reversed; it runs 10% faster with NUMA enabled, maybe because the Java garbage collector is NUMA-aware and I'm using enough memory that it's split across NUMA nodes anyway.

But either mode is faster in Linux than Windows.

</comment></comment></comment></comment><comment><USER13> Does Intel really think this approach is good for them? As a technical person, all I see is a company in trouble with products they need to lie about. This goes beyond market speak - it's deceptive.

<comment><USER14> The people who won't be fooled by this are likely the customers who are interested in the actual 10% difference for the high end and likely want this chip anyway.

<comment><USER5> I'm not sure about that.

At $499, the i9-9900k is almost competing against the 12-core Threadripper 2920x ($649, 12-core/24-threads, 4.4GHz clock, 60 PCIe lanes, quad-memory channels).

I think most people will find more use out of +4 cores (granted, on a NUMA platform) than higher clocks. Cores for compiling code, rendering, video editing, etc. etc.

Pretty much only gamers want +Clock speeds, and more and more games actually use all-cores these days (Doom, Battlefield, etc. etc.)

\</comment></comment></comment><comment>-----

That's the thing. The i9-9900k isn't even a "high end chip" anymore. Its at best, "highest of the mid-range" since the HEDT category (AMD Threadripper, or Intel-X) has been invented.

Once you start getting into 8-cores/16 threads, I start to worry about dual- memory channels and 16x PCIe lanes + 4GB/s DMI to the Southbridge. Its getting harder and harder to "feed the beast". A more balanced HEDT system (like Threadripper's quad-memory channels + 60PCIe lanes) just makes more sense.

<comment><USER15> > Pretty much only gamers want +Clock speeds

I wish. We use a commercial path-tracer that scales very well to many cores, GPUs and entire clusters when it's chewing away at a single fixed scene or animation.

But in interactive mode many scene modifications are bottlenecked on a single or few threads and locks until it gets back into the highly optimized rendering code paths. So a lot of work goes into quickly shutting down as many background threads as possible to benefit from high turbo-boost clocks on Xeon Gold processors so the user doesn't have to wait long and then ramp them back up when it's just rendering the fixed scene.

<comment><USER13> Agreed. Games aren't the only thing people do with lots of cores / HEDT. Give me a 128 core machine and I'll happily keep them busy all day with work. No need for a heater either.

</comment></comment></comment><comment><USER16> Preorders for the 9900K are 578$ USD.

For that you can get a Ryzen 2700X, a nice motherboard and a 256GB SSD. Performance delta shouldn't be more than 15% deficit for the Ryzen for a few specific games.

<comment><USER17> Keep seeing this 'delta' word. From context it is basically like 'difference'. But is there a delta between difference and delta?

<comment><USER14> Delta makes you sound smarter.

<comment><USER18> it is less typing, and less data. save the planet.

<comment><USER14> 'Δ' must be a sign of Greenpeace membership, then.

<comment><USER19> Only if you've memorized how to type it. If you have to Google it beforehand, it serves as cheap signaling at best and an environmental transgression at worst.

</comment></comment></comment></comment></comment></comment><comment><USER20> Decent summary:

> I don't have too much of an issue with Intel commissioning the report > itself, and the Principled Technologies report is very transparent as they > clearly state how they tested the games and configured the hardware. The > results and testing methods are heavily biased, but they haven't attempted > to hide their dodgy methods. You can dig into the specs and find all the > details, it's still dodgy but it's a paid report, so it's somewhat expected.

<comment><USER9> I disagree.

Vast majority of buyers and sadly huge chunk of tech press won't be able to tell looking at the settings if our how much was benchmark skewed in Intel's favor.

And it plenty skewed.

</comment></comment><comment><USER21> Further reason to never purchase Intel again.

<comment><USER22> yeah. I went Ryzen for my new laptop. 100% happy with it, and this kind of crap from Intel just solidifies my decision.

<comment><USER23> Which Laptop?

<comment><USER24> I got (off some sweet discounts that expired over the weekend) a Thinkpad E485 with 128GB M.2, 16GB RAM, and 2700U Ryzen, 1080p screen for $720 shipped.

</comment></comment></comment></comment><comment><USER25> I had had some hope that with a new CEO at the helm this behavior would stop.

<comment><USER8> There is no new CEO, only an interim/acting CEO.

</comment></comment><comment><USER26> Interesting follow-up : Interview w/ Principled Technologies on Intel Testing (9900K) - [https://youtu.be/qzshhrIj2EY](https://youtu.be/qzshhrIj2EY)

</comment><comment><USER27> intel is failing benchmarks, security vulns all around. Nvidia is failing to deliver price/perf they promised years ago. amd is the opposite of both and it's stock continues to dive. go figure.

<comment><USER28> > amd is the opposite of both and it's stock continues to dive. go figure.

AMDs share price is up almost 1400% in 2 years, what on earth are you on about?

<comment><USER23> It's currently on a bit of a slump after some financial firms lowered their targets of the stock price.

I have a feeling it'll make its way back up though.

<comment><USER28> I think when you outpace the general index by multiple factors over years a small pull back is not only expected, its healthy.</comment></comment></comment></comment>


DynamoDB Update – JSON, Expanded Free Tier, Flexible Scaling - <AUTHOR> http://aws.amazon.com/blogs/aws/dynamodb-update-json-and-more/

<comment><USER2> It's really great that the item size can now be up to 400KB.

However without corresponding increase of Read/Write Capacity, how practical/cost-effective is it to store objects of that size?

Afaics it seems capacity billing is still counted in 1KB chunks? :(

<comment><USER2> Similarly, shouldn't Query's limit be increased accordingly as well?

"If the total number of items meeting the query parameters exceeds the 1MB limit, the query stops and results are returned to the user with a LastEvaluatedKey to continue the query in a subsequent operation."

Having to request DynamoDB for every 2 items sounds impractical again.

</comment></comment><comment><USER3> Is there an approximate month or time for when adding/removing GSIs will be available? I'm really looking forward to that feature.</comment>


Introducing the Python Language Server - <AUTHOR> https://blogs.msdn.microsoft.com/pythonengineering/2018/07/18/introducing-the-python-language-server/ <comment><USER2> I wonder how it compares to Palantir's Python Language Server[1] that uses Jedi[2] for intellisense.

[1] [https://github.com/palantir/python-language- server](https://github.com/palantir/python-language-server)

[2] [https://github.com/davidhalter/jedi](https://github.com/davidhalter/jedi)

<comment><USER3> This was my question as well. Seems odd to start from scratch when this already exists. Unless the MS version is a fork of the Palantir one.

<comment><USER4> MS language server is not based on Jedi. It is based on Python Tools for Visual Studio. Core components were ported to .NET Core so it runs on all platforms. The core engine is not just for IntelliSense, it is capable of many more functions.

<comment><USER5> Where can we see what it's capable of? For now it seems very incapable to me. Much worse than intellij or jedi.

<comment><USER4> Please feel free to file issue on github if something is missing.

Visual Studio has full functionality but not all of it is exposed through the LS protocol just yet. Having full cross file code model helps with many things.

</comment></comment></comment></comment></comment><comment><USER6> we have gradually started moving away from Pycharm to vscode at my workplace and have really been happy.

This feature is super important if they want to build support for running and debugging python applications remotely... or in docker (which is something we want as well).

<comment><USER7> I'm curious as to why you'd want to move away from Pycharm?

<comment><USER8> Not parent but for me two main reasons would be : free, lighter / faster.

<comment><USER9> Though PyCharm is a Java application, in my experience it is very well behaved. Not the typical Java resource hog.

Contrast with VSCode, written in Electron. I will admit that VSCode is one of the better Electron apps in regards to keeping the UI snappy, but it still hogs literary GBs of RAM without even having any files open (CentOS desktop). It will consume a full CPU core just sitting there if it is not minimized, I'm told that this is to blink the cursor. VSCode is decent if it is the only app you have open, but it is just too resource intensive in real world computing.

<comment><USER6> actually your info is very very dated. this was an issue long ago. FYI - I'm based out of India and a lot of interns,etc here can only afford AMD laptops with 4 GB of RAM and HDD. we are not even close to macbook territory here.

We actually moved these kids to vscode first. And then we realized how good vscode's performance really was.

</comment></comment></comment></comment></comment><comment><USER10> Can I use their implementation with emacs-lsp or similar? I can't find a download link for their language server as a standalone install.

<comment><USER11> That's the idea behind the Language Server Protocol, and it seems they will later based on a sibling comment. I love that Microsoft helped to pioneer LSP (not Lumpy Space Princess) because there's too much of a duplicated effort done for other editors. I hope in the future they can team up with JetBrains and make the protocol even more awesome.

<comment><USER12> The protocol itself is open source: [https://github.com/Microsoft/language- server-protocol](https://github.com/Microsoft/language-server-protocol) . I'm sure the folks in charge of it would be happy to talk to PyCharm if they wanted to contribute.

</comment></comment></comment><comment><USER13> Has anyone here used Visual Studio for python? How does it compare to Pycharm?

<comment><USER14> Much faster and leaner than PyCharm. Its a lille involved to set up completions for third party libs which are not installed using pip compared to PyCharm.

Completions on par with PyCharm but there are a few better refactorings in PyCharm but nothing that would make me switch back to PyCharm.

<comment><USER15> What are "third party libs which are not installed using pip"? I install all my libs with pip.

<comment><USER16> Lots of commercial libraries aren't pip installable for example.

<comment><USER17> Can you give an example? I've never worked with anything that's not pip- installable. Even my web backends are packaged as versioned pip packages - that's why it seems weird.

<comment><USER16> All the various libraries used to interact with software from companies like Autodesk and ESRI are one example.

<comment><USER17> But it has nothing to do with the fact that they can't do proper packaging. Using their own, proprietarily-compiled interpreter is what keeps you using their products in a controlled fashion.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> Does anybody know if this is implemented in Python (I assume in a process run from the editor)? Or has it perhaps been implemented in JS/TS?

The reason I ask is because the Monaco code editor from VSCode can be used in the browser, and having Python Language Server implemented in JS means that any online editor using Monaco could potentially offer the same functionality from the browser itself without having to keep a connection to a backend server doing the lifting.

<comment><USER19> From the article:

"For performance, it runs with .NET Core on Windows, macOS and Linux, works with Python 2.5 through to Python 3.7 and supports the latest language features"

<comment><USER18> Thanks!

</comment></comment></comment><comment><USER20> Sourcegraph CTO here. This is great news and we're looking forward to incorporating this into Sourcegraph's existing Python support ([https://about.sourcegraph.com/](https://about.sourcegraph.com/)), so users get all the code intelligence improvements in their code reviews and code browsers. Thanks for open sourcing!

</comment><comment><USER21> This sounds awesome. Can anyone with more familiarity with how it works provide some idea of how much better this would work vs. Sublime Text plugins like djaneiro?

<comment><USER22> at some point there will be Sublime plugins which provide their functionality via language servers using LSP

there is some work towards it in projects, not sure how ready to use they are

[https://github.com/sourcegraph/sublime- lsp](https://github.com/sourcegraph/sublime-lsp) [https://lsp.readthedocs.io/en/latest/#sublime-lsp-plugin- doc...](https://lsp.readthedocs.io/en/latest/#sublime-lsp-plugin- documentation)

<comment><USER23> There's work in progress in a LSP fork at [https://github.com/Kronuz/SublimeCodeIntel](https://github.com/Kronuz/SublimeCodeIntel), it'll have more plugins later, it currently has a few working.

</comment></comment></comment><comment><USER24> This is awesome, tried installing Jedi with neovim on a raspberry pi and ridiculously slow. I wonder if this could fix it....

<comment><USER12> The language server currently only supports 64-bit Linux, so if you have that on your Pi then it should be faster.</comment></comment>


Ask HN: Companies with Excellent Engineering Cultures - <AUTHOR> What are some companies you have worked for (past or present) with excellent engineering cultures/engineering-first cultures? What made it excellent? <comment><USER2> JPL. (at least my section) had an excellent culture of inclusiveness and openness to new ideas and people.

</comment><comment><USER3> And in Sydney, Australia?</comment>


Backbone.js 0.5.0 Released (with pushState) - <AUTHOR> http://blog.documentcloud.org/blog/2011/07/code-release-backbone-js-0-5-0/

<comment><AUTHOR> I'd be curious to hear from anyone who thinks that this sort of parallel hashchange/pushState support is a _bad_ idea. It should prove to be controversial at the least.

* <http://www.documentcloud.org/public/#search/guantanamo>

* <http://www.documentcloud.org/public/search/guantanamo>

People who don't care much about Internet Explorer support often say to just use pushState, and let IE users endure full page refreshes ... but that's not really an acceptable way to build a responsive web app.

Hopefully, having the same structure for pushState and hash-based URLs, with transparent upgrades in both directions, is a sane way to bridge these sort of applications to the future.

<comment><USER2> > People who don't care much about Internet Explorer support often say to just > use pushState, and let IE users endure full page refreshes ... but that's > not really an acceptable way to build a responsive web app.

Why not? It's responsive for those with a modern browser (and may get the IE team to integrate the history API in IE10), and is less responsive for those with an older browser. That _can be_ an acceptable tradeoff.

<comment><AUTHOR> Sure -- it depends where you draw the line for "acceptable", and how much you care about the experience of your IE users. In any single-page web app of significant size, I'd argue that it's _never_ acceptable to do a full page refresh. Would you really want to go back to a GMail that refreshed when you clicked around between labels?

Regarding (2): hash-based URLs also work perfectly well for older browsers.

<comment><USER3> you're right, "acceptable" is subjective. but it doesn't seem unreasonable that if you are using an outdated version of a program, it will not perform optimally. to that end, managing both pushState and hashchange adds overhead and complexity. personally, i don't think enhancing old browsers is worth said overhead.

 _that said_ , if it was part of a framework i was using anyway, overhead and complexity are much less of an issue, so the question becomes "why not".

</comment></comment></comment></comment><comment><USER4> For those of you looking to use pushState in your apps, its also broken in iOS 4.2.x.

More information here:

[http://stackoverflow.com/questions/6161701/is-history-api- br...](http://stackoverflow.com/questions/6161701/is-history-api-broken-on- ios-location-bar-doesnt-update-on-pushstate)

</comment><comment><USER5> Right now I'm doing pushState manually and I have a bug that I can't figure out. popstate happens whenever history changes, including when the user types my URL in and hits enter. There doesn't appear to be a way to differentiate between hitting the back button and going to my URL directly. Which is a problem because if they type it in directly I want to render on the server, if they hit the back button I want to do xhr. What am I doing wrong?

As for Backbone, I really need to switch to this rather than manually handling click events and feeding jquery tmpl. Backbone seems to be a much better way to do it but there also appears to be a learning curve that I'm fighting against going through.

<comment><USER2> > Which is a problem because if they type it in directly I want to render on > the server

Why? What difference does the precise way they navigated to the URL make?

> if they hit the back button I want to do xhr.

Most back buttons have a popup menu which let users go to a completely arbitrary url they've already seen, they're not limited to the very last page. They can also hit the button several times to go back to the same page.

> What am I doing wrong?

You're adding arbitrary separations between two instances of the same event: your users going from your site to your site.

<comment><USER5> They are not arbitrary separations, they are very real. When a user navigates from the URL bar or from a link on another site the browser requests a specific location from my server. Since I'm already serving the browse HTML it makes sense to render my templates at the same time. It doesn't make sense to send only a generic template and then have the popstate trigger an XHR request for some JSON which gets rendered by a javascript template library. That's extra and unnecessary.

What are you suggesting? That I request the entire html doc at every popstate event?

<comment><USER2> > When a user navigates from the URL bar or from a link on another site the > browser requests a specific location from my server. Since I'm already > serving the browse HTML it makes sense to render my templates at the same > time. It doesn't make sense to send only a generic template and then have > the popstate trigger an XHR request for some JSON which gets rendered by a > javascript template library. That's extra and unnecessary.

Wait, I might have misunderstood something here: do you mean `popstate` is triggered when users _arrive on your site from an other one or from nowhere_? On initial loading? As in, it's triggered by navigation between different domains, not just in-domain navigation?

<comment><USER5> Correct.

<comment><USER2> Would you happen to be using Chrome?

edit: Try checking the `state` attribute of your event object, it should only be set (therefore truthy) for history entries created via pushState, urls being navigated will not have a state.

<comment><USER5> Yep. Chrome bug?

<comment><USER2> May be a chrome bug[0] or a spec bug/weirdness[1].

See edit, try checking for the state attribute on your event object to filter out spurious popstate events.

An other option would be to use a shim library (History.js) handling that kind of crap (and smoothing out implementation details issues) for you.

[0] [http://www.google.com/support/forum/p/Chrome/thread?tid=28ed...](http://www.google.com/support/forum/p/Chrome/thread?tid=28edce84cd40d581&hl=en) [1] [http://hacks.mozilla.org/2011/03/history-api-changes-in- fire...](http://hacks.mozilla.org/2011/03/history-api-changes-in-firefox-4/)

<comment><USER5> Yep, I was doing it wrong. You're supposed to pass a state object as the first parameter, I was passing null. So this fixes 2 things, prevents me from having to do XHR on initial page load AND I don't need to do an XHR on back/forward navigation either, I can just use the state object to store my data. Awesome!

<comment><USER2> Good to hear.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> I read somewhere that Backbone was being dropped for Spine.

<http://maccman.github.com/spine/>

Anyone else know anything about this?

<comment><AUTHOR> Hah, that might be what Spine would like you to think ;)

In all seriousness, Spine is Alex MacCaw's rewrite/re-imagining of Backbone for his O'Reilly book: <http://jswebapps.heroku.com/>

The broad strokes are roughly the same, but the internals work differently. I'd suggest you look at what both libraries have to offer, and pick whichever suits your fancy. The benefits accrued by your application should be similar in both cases.

Spine doesn't depend on Underscore.js, but also doesn't benefit from Underscore's rich collection functions. If you'd like to each, map, filter, find, reject, every, some, invoke, include, sortBy, without, or pluck over your models, try Backbone.

If Backbone looks too bewildering at first glance, Spine may be easier to start with: the documentation is certainly better geared for beginners.

</comment></comment><comment><USER7> I can now scrap my pushState fork :)

</comment><comment><USER8> Hey Jeremy! Thanks for releasing the new version!

</comment><comment><USER9> <http://stackoverflow.com/questions/6193858/pushstate-and-seo>

pushState's SEO issues.

<comment><USER10> Or you could use progressive JavaScript, AFAIK. Make your every link a first class citizen (with it's own view) and for supported browsers replace links' default action with content switching (without reloading) using JS requests.

Of course that's a bit harder since your views need to respond in a different manner to casual GETs and AJAX requests.

<comment><USER11> Which really should be trivial using most modern 3-Tier frameworks. They universally have a concept of "layout" vs "template" so in a pseudocode logic, all you need to do is tap into the render method and swap out an empty layout when responding to an XHR request.

<comment><USER10> Exactly, however one can argue the number of your test cases (and cache entries) doubles. Still I think it's an elegant solution.</comment></comment></comment></comment>


Scientology's Museum Blaming 9/11 and the Holocaust on Psychiatry - <AUTHOR> https://www.thedailybeast.com/inside-scientologys-secret-propaganda-museum-blaming-911-and-the-holocaust-on-psychiatry <comment><USER2> I mean there are a lot of problems in the world that might be solved with better mental healthcare</comment>


Ask HN: Startup Founder Required Reading - <AUTHOR> I've been asked to join a dizzying number of startups/companies for a specific role. By taking a job, I can help any of them, but I can't help all of them.
I believe this role has the potential to be productized. I'm tossing around the idea of doing a self funded startup. I'm solid on the tech and leadership side of things - today I am in a role that would translate to a high level engineering leadership role in most companies - and I have above average design/marketing skills.
I don't have any experience starting a company. I have questions that I'm not sure when to ask, and I have so little context I strongly suspect there are questions I should be asking that I'm not.
Things like:
* When should I seek legal council?
* How should I approach incorporating?
* What does the process of hiring employee number one look like?
Do folks have any good resources for this?
Submitting under another account for privacy. <comment><USER2> _The hard thing about hard things_ (Horowitz) has some good pointers, although not for your more practical questions (for which, btw, the answers will vary a lot based on context - e.g. sector, country, bootstrapping vs external funding, etc.)

</comment><comment><AUTHOR> Going to keep a running log of resources I find here:

* [https://www.indiehackers.com](https://www.indiehackers.com)</comment>


The Rise of "Risk Capital" Part 2 - <AUTHOR> http://steveblank.com/2009/10/29/the-secret-history-of-silicon-valley-12-the-rise-of-"risk-capital"-part-2/ <comment><USER2> Good insights on how a particular legal structure (the limited partnership) gave rise to the modern Silicon Valley venture industry, discussing how the key financial incentives (the "carry" in particular) and the key investment window (up to 10 years) are peculiarly tied to that structure. Somewhat technical but interesting, especially for Valley historical buffs.</comment>


Alexagate Is an Ultrasonic Slap to Your Amazon Alexa's Spying Ears - <AUTHOR> https://www.forbes.com/sites/curtissilver/2020/07/27/alexagate-is-an-ultrasonic-slap-to-your-amazon-alexas-spying-ears <comment><USER2> This may also be interesting:

[https://github.com/bjoernkarmann/project_alias](https://github.com/bjoernkarmann/project_alias)</comment>


Python for Android - <AUTHOR> http://python-for-android.readthedocs.org/ <comment><USER2> A bigger question on my mind has been why would a shop as smart as Google not have started out with a sane language like python in the first place instead of foisting this java idiocy on another generation of devs.

<comment><USER3> Java has a granular, stable and simple byte code, Python does not. Java is amenable to static analysis, mainline Python isn't. Dynamic typing means more runtime, burns more battery.

Java also allowed them to leverage a mature and highly optimized frontend. Back in 2008, Psyco/PyPy was there... but fairly wet. Until recently(?) the primary JIT back-end for PyPy was, in fact, still the JVM.

<comment><USER4> >"Until recently(?) the primary JIT back-end for PyPy was, in fact, still the JVM."

That's not true -- PyPy had an experimental JVM backend early-in, but the first and flagship backend has always been the RPython one.

<comment><USER5> Maybe he is thinking of Jython?

<comment><USER3> You're correct, I was muddling up the projects (I really don't use or have an interest in Python)

I thought RPython was only translated to C and compiled ahead-of-time.

<comment><USER4> You're right about that. To make a more correct analogy, I should have said that the main target has always been C, which RPython "transpiles" into. So the original and primary target has always been portable C, but there have also been experimental JVM, CLR, and JavaScript targets.

</comment></comment></comment></comment></comment></comment><comment><USER6> Compare this with the late PyS60, where you installed a little SIS on your phone, 2MB or so, and could then run simple Python scripts. Forwarding all incoming SMSs to another phone number was a six-liner or so.

I've never used it to build big apps, only toyed around with examples, but then again, it wasn't made for the big applications, rather for small ad-hoc scripts.

Kind of Eclipse plugins vs Emacs scripts.

</comment><comment><USER7> I don't use Android devices, so I wouldn't know, but is this the first instance of mobile Python on Android OS?

Jailbroken iPhones have had this capability for years...not to say iOS is better, just that I'd expected this would happen...sooner?

That said, the Python distro on iOS is only 2.6-ish, not even 2.7, and there's no 3.x release there. It's not very useful but I guess I did use it a lot for learning back then.

<comment><USER8> Python has been on Android for a long time. The first instances I know of is SL4A: [https://code.google.com/p/android- scripting/](https://code.google.com/p/android-scripting/)

Kivy for Android has been around awhile as well.

<comment><USER9> Kivy developers are the primary movers behind Python for Android. Typically we are using Cython so that a great deal of the application is actually running in C without the Python runtime eating up overhead. This leaves a budget of about a million function calls per second, or roughly 10,000 per frame, as most of the overhead in the UI thread is eaten up in expensive function stack frame in the event system, passing around events that call callbacks that call callbacks that call callbacks...

It remains to be seen if we can adopt a concurrent model for some aspects of the main application thread(s). Going concurrent almost surely means more Cython and more speed. I'm interested if anyone has any ideas about using CPython to reduce the cost of certain nearly-always-performed functions to grease the event system. Not that it's slow, but fast is always better =)

[http://kivy.org/#home](http://kivy.org/#home)

</comment></comment></comment><comment><USER10> This is really cool!

I'm interested in creating daemons that, for example, forwards SMSes to my email and records made voice calls. Is API good enough to do that?

<comment><USER4> Yes. Daemons are the one implementation where Python's longish start-up time on Android won't make any difference (we're talking a few seconds here, versus under a second for native Android apps, just to be clear). If anything you need is missing from the API, you can use Pyjynius to do easy Java interop.

Another options for this kind of app is SL4A. They have a very complete Android API, but it's a bit harder to hack and not as well documented.

If you want to package an APK, I think this project (Kivy's Python for Android) is probably a slightly better option. You can package APKs with SL4A, but it's a bit trickier. Python for Android even provides a virtual box image of Ubuntu (or Debian, I don't remember) for building APKs, with all the dependencies included, ready to go.

<comment><USER10> So I'm good to go. A pretty big challenge for me, but I will handle it at some weekend for sure! :)</comment></comment></comment>


Re-Imagining Doctor Reports - <AUTHOR> https://medium.com/@prahaladm/re-imagining-doctor-reports-fcde4292d42c <comment><USER2> In the US, Everyone knows doctor reports and electronic medical records and all are broken. This isn't a tech problem or a novel idea. Hospital administration and healthcare IT is one of the most fundamentally broken amd inefficiencies industries you can imagine. Regulatory capture, bureaucracy, inertia, established players like Epic with products that might not even be compatible between two installations of the same product. And thousands of startups with great new ideas that will definitely reduce doctors workload by making everything easier. No standardization. Updating prescriptions via a software service - wow. You'd have to get the doctors paid for that (it took a pandemic to make payers willing to consider it), make then allowed to do that in the first place (ask telemedicine how easy that is), protect from liability, be HIPAA compliant, integrate it with the rest of their systems... If you managed to fix all that and create fundamental, systemic change from the government to the hospital desk so your product could gain traction as a startup with a cool new doctor reporting tool, well, you'd go down in history as one of the greatest startups and most effective management teams in the history of capitalism.</comment>


China Switches over to Hydrogen Fuel Cells, and Toyota Delivers the Tech - <AUTHOR> https://www.thedrive.com/tech/28837/china-switches-over-to-hydrogen-fuel-cells-and-toyota-delivers-the-tech <comment><USER2> I guess they think they can have better safety practices than places like Norway and California. Having seen how things are done in China, I wish them good luck with that.

[https://electricrevs.com/2019/06/11/recent-explosions- shutdo...](https://electricrevs.com/2019/06/11/recent-explosions-shutdown- hydrogen-vehicle-refueling-in-norcal-and-norway/)

<comment><USER3> EVs have their own hazards.

[https://jalopnik.com/tesla-model-s-batteries-violently- explo...](https://jalopnik.com/tesla-model-s-batteries-violently-explode-in- fatal-cras-1788561054)

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

<comment><USER2> And then there are internal combustion engine vehicles which really take the cake for a long sad history of fires. Combustion is literally part of the name of the tech.</comment></comment></comment>


Will Webfonts open up new design opportunities? - <AUTHOR> http://www.webdragon.com.au/1676 Traditionally fonts on websites, especially for headings and article text, have been strictly limited to options like Arial, Verdana and Times New Roman. Overnight, Google announced its new Webfonts toolkit, which makes it easier than ever to include a whole variety of fonts within websites, in a way that is compatible with browsers as old as Internet Explorer 6. <comment><AUTHOR> There's certainly a lot of room for abuse, especially by designers who want to cram magazine formatting into web paradigms, but at least it's more accessible than techniques like Flash text replacement.

</comment><comment><USER2> I worry it will open up new design opportunities in the same way that the blink tag did...</comment>


Trachtenberg System for Rapid Mental Calculation - <AUTHOR> https://en.wikipedia.org/wiki/Trachtenberg_system <comment><USER2> I always thought this was a neat trick:

[http://www.archimedes- lab.org/Maths2_Multiplication.html](http://www.archimedes- lab.org/Maths2_Multiplication.html)

</comment><comment><USER3> This seems, at a high level, similar to the various mental arithmetic tricks/pnemonics from India, commonly known as "Vedic Mathematics". e.g. [https://www.quora.com/What-are-some-of-the-best-Vedic- math-t...](https://www.quora.com/What-are-some-of-the-best-Vedic-math-tricks)

</comment><comment><USER4> I came across this book in the 1960s and remember working through the different algorithms. The only one I remember now is multiplication by 11. More generally, I was not reluctant to do mental arithmetic in school, especially for approximations and sanity checks.

</comment><comment> yoz-y The multiplication by 3 seems quite more complicated than just multiplying digits by 3 and carrying over the rest.</comment>


Into the unknown: Object.observe and Object.freeze in JavaScript - <AUTHOR> http://new-bamboo.co.uk/blog/2014/01/21/experiments-with-javascript-es6

<comment><USER2> 'Local variable declarations are unobservable' \- I thought that local variables get added to the function object similar to the way global variables get added to the window object. In that case wouldn't you be able to observe the function in which the local var is being declared?</comment>


We have lived and worked in an Airstream for the last few years - <AUTHOR> http://live.watsonswander.com/

<comment><USER2> Thanks for submitting. Too bad it didn't take off.

(I'm the creator of linked page)</comment>


Who's hiring?  - <AUTHOR>

Anyone hiring? I am a developer from India and wishing to move to the US. <comment><USER2> Check back Feb 1 for the monthly "Who's hiring" threads.

For reference: [https://www.google.com/search?q=site%3A+new.ycombinator.com+...](https://www.google.com/search?q=site%3A+new.ycombinator.com+whos+hiring)</comment>


Ask HN: How do you compose and publish blog posts? - <AUTHOR> I wonder what is the state of the art toolchain for simple blogs? <comment><USER2> I use my own static blog generator [0] see [https://plurrrr.com](https://plurrrr.com) for the blog. I compose each post in a single text file in which each day consists of Markdown.

[0] [https://github.com/john-bokma/tumblelog](https://github.com/john- bokma/tumblelog)

</comment><comment><USER3> That is a good thought! I too have considered that, and I came across simple self-hosted blogs that allows you to add posts using simple markdown files. The whole process of uploading your blogpost's md file to publish takes just a shell command away (and this can be pre-saved to be copied). Here's my blog to illustrate this point, and all these posts are markdown files that can be edited and updated within matters of seconds. I hope this gives you a new perspective for your own blog if you are considering that! (:

[https://blog.phuaxueyong.com/](https://blog.phuaxueyong.com/)</comment>


Show HN: Noted, a note-taking web app inspired by Vim - <AUTHOR> http://noted.herokuapp.com/

<comment><USER2> God dammit, I've been working on a similar app, also called Noted, for the past seven months. <http://github.com/noted/noted>

My project also includes note-taking, but specifically for research projects with additional bibliography/citation tools.

<comment><AUTHOR> Haha, don't worry - I'm not attached to the name. Plus, your application looks far more like a full-fledged research tool than a "speedy, minimal outline" tool like my app is :)

<comment><USER3> you should add undo, u, to the app. Also, make dd work as delete instead of just d.

</comment></comment></comment><comment><AUTHOR> Here's a blog post with more information about its creation and development: <http://www.thomasboyt.com/2013/03/24/announcing-noted.html>

<comment><USER4> Can you say more about what frustrated you about Evernote and Notational Velocity?

</comment></comment><comment><USER5> Gah! I've been working on a similar project, <http://www.webnoted.com>

I guess the name (or portion of) is very common... I like your Dropbox integration.

</comment><comment><USER6> Looks and works a lot like <http://workflowy.com></comment>


After 15 years of development Linux finally reaches 0.8% market share - <AUTHOR> http://marketshare.hitslink.com/report.aspx?qprid=5&qpcustom=Linux <comment><USER2> I don't think this is an accurate picture...

From the site:

"About Our Market Share Statistics

We use a unique methodology for collecting this data. We collect data from the browsers of site visitors to our exclusive on demand network of small to medium enterprise live stats customers. The sample size for these sites is more than 40,000 urls. The information published is an aggregate of the data from this network of hosted website statistics. The site unique visitor and referral information is summarized on a monthly basis. "</comment>


Rare and diverse giant viruses unexpectedly found in a forest soil ecosystem - <AUTHOR> https://phys.org/news/2018-11-rare-diverse-giant-viruses-unexpectedly.html <comment><USER2> Apparently not so rare as was thought. I wonder if filtering my backyard soil with the same method would yield any giant viruses.

<comment><USER3> Virii _

<comment><USER4> Common parlance would disagree - see 'this data', 'a myriad of' etc

<comment><USER5> Virii isn't even correct Latin. If it were a regular second declension noun, the plural would be viri (one i), but it's not even that:

[https://en.wikipedia.org/wiki/Plural_form_of_words_ending_in...](https://en.wikipedia.org/wiki/Plural_form_of_words_ending_in_- us#Virus)</comment></comment></comment></comment>


Telegram Founder Pledges Millions to Fight Russian 'Political Censorship' - <AUTHOR> https://themoscowtimes.com/news/telegram-founder-pledges-millions-fight-russian-political-censorship-61197 <comment><USER2> P2P chat is not something new and not something hard to do and based on old concepts of decentrialization it can be done with dispersed "central" servers. Telegram decided that they will route their traffic over central servers due to the potential profit of spying on their users. It is hard to imagine that FSB doesnt have a team of reverses that dissected Telegram protocol and found backdoors, which are cryptographical but usable by founder. Now they are paying for that. We need p2p chat/voice software, that cant be censored by design, but that invalidates an option to monetize it. But at the end, it is always the choice how cool the smileys look, isnt it?

<comment><USER3> What are you talking about?

It's possible to build P2P software on desktop computers. How can you do that on mobile?

<comment><USER2> I am confused to your feedback. What is the difference?

<comment><USER3> Can't run background process

How do you design the P2P protocol?</comment></comment></comment></comment>


Create multi-platform desktop apps with HTML5, CSS3 and JavaScript - <AUTHOR> http://www.tidesdk.org/

<comment><USER2> I occasionally want to create something that's more data niche/intensive than makes sense for a website, but the thing I've never researched enough is how to build a desktop app that I can update as easily as a website.

Does anyone know if tidesdk has a story for that?

</comment><comment><USER3> I actually like that you can create apps from this for windows, mac and other OS

</comment><comment><USER4> What does tisdesdk offer over node-webkit other than an easier deployment?

<comment><USER3> cross platform functionality and new is always better is more easier.

your question has the answer

</comment></comment><comment><USER3> this is an amazing tool. I will use it for my android app.</comment>