JSON Template - <AUTHOR> http://json-template.googlecode.com/svn/trunk/doc/Introducing-JSON-Template.html

<comment><USER2> Separating presentation and data in applications an accepted design practice, but somehow it is not as common in-browser apps as it is on the server side.

Here's an architecture of a dynamic web app that works well for me:

\- an app server exposes JSON and no HTML. (eg django or rails)

\- html/css/js is completely static (eg. on S3/CDN) and defines UI as a set of HTML templates.

\- once html/js is loaded in the browser, the browser makes an AJAX call to the server to get the JSON data

\- in-browser JS expands a template, the data is rendered out

In this architecture, <http://code.google.com/p/google-jstemplate/> is key. Check it out.

<comment><USER3> Clean, but what are you supposed to do with user agents which do not support JavaScript? Server-side templates still let you customize the page in that case.

<comment><USER2> Right, in this case client-side templating just moves to the server.

When JS processing isn't available on the client side, this same stack is moved to the server side. This way the same logical separation between UI and data is maintained.

</comment></comment></comment><comment><USER4> > Motivation... they reinvent things like for loops, if statements, and > expressions poorly

and how is incredibly ugly looping and conditional syntax the solution?

> {.repeated section @}, {.or}

</comment><comment><USER5> This reminds me of Microsoft's first attempt at web scripting, before ASP. Can't remember what it was called, but for each final HTML page it had a template file and a database query file.

It turned out to be just too hard to do anything useful with it.

</comment><comment><USER6> Why does it need separate constructs for {.section} and {.repeated section}? You could take the absence of a key to signify "hide this section", its presence to signify "show it once, with these values", and its presence as an array to signifiy "show it multiple times, one per element". That's the way google-ctemplate works, and it seems to work quite well.

(BTW, I had no idea Google's templating library was an open-source project. Kinda fun to see that the stuff I work with daily isn't a proprietary walled garden after all. And some trivia for those who don't routinely Google project owners: it's written and maintained by Google's employee #1.)

</comment><comment><USER7> _Every successful website needs an API_

I, for one, am really looking forward to news.YC's API...

<comment><USER8> It has an API. It's called Hpricot/BeautifulSoup and duct tape.

</comment></comment><comment><USER9> I made a light version of haml for javascript called baconl. It doesn't support embedded code, but I have found that it is not needed when used with most javascript frameworks.

<http://code.cohitre.com/baconl/>

</comment><comment><USER10> Cool project. Much like Ruby, Python seems easy to match to JSON.

Also, check out JsonML : <http://jsonml.org/> . The focus lies more on the client side templating (where it's all JS anyway), but it has additional goodies like XML-to-JsonML XSLT transformation.</comment>


A hundred million cars run curl - <AUTHOR> https://daniel.haxx.se/blog/2018/08/12/a-hundred-million-cars-run-curl/ <comment><USER2> A hundred million cars run curl yet Daniel Stenberg is unable to get a visa for the US.

[https://daniel.haxx.se/us-visa.html](https://daniel.haxx.se/us-visa.html)

<comment><USER3> He doesn't need a visa, he's a Swede and covered by Visa Waiver Program.

He applied for an ESTA and was denied, but you only need an ESTA to come to USA by air/sea.

From what it seems, DS had an approved ESTA, didn't check its status before leaving for another US trip and found out at check-in that it was cancelled.

DS could still try coming by land via Canada (or Mexico). Not sure if there are any cases out there of ESTA denials that were non-issues at a land crossing though...

At least any denial is face to face and may offer some relevant information. Future Mozilla All Hands, if in Canada, should be within a 1-2 hour drive of USA.

<comment><USER4> Do you think this kind of behavior from our government will continue to keep the US in the epicenter of tech innovation?

<comment><USER3> I'm not USian... but no.

DS should apply for a Canadian ETA (equivalent of ESTA) just to see if he gets approved. The two governments share a lot of info...

The EU is working on its own "it's not a visa, but it's basically a visa" system for visa-exempt people to fly there.

</comment></comment></comment></comment><comment><USER5> I thought it was more people complaining that they "have toyota corola". [https://daniel.haxx.se/blog/2016/11/14/i-have-toyota- corola/](https://daniel.haxx.se/blog/2016/11/14/i-have-toyota-corola/)

<comment><USER6> that is so interesting : developer puts email addr in license.txt; normal end user finds the only email addr in the whole UI and emails tech support request.

<comment><USER7> Well, the tech support requests are likely better than the hacking accusations he gets.[1]

1: [https://daniel.haxx.se/blog/2016/01/19/subject-urgent- warnin...](https://daniel.haxx.se/blog/2016/01/19/subject-urgent-warning/)

<comment><USER8> Seems like _haxx_ domain is not great for interfacing with non technical people. I would even bet it could also be the case if he uses _haxx_ email domain for US visa, he is not getting one...

<comment><USER9> Likely a combination of that and a quick search of his email matches malware source code since they'll likely have curl.h in there.

</comment></comment></comment></comment></comment><comment><USER10> That just reminds me of the time I tried (and finally succeeded) in using curl at a BigCorp around 2004. I had to convince layers of non-technical management that this tiny, elegant, free, simple solution was better than an expensive and unwieldy commercial alternative. I finally wore them down and I wouldn't be surprised if the curl solution is still quietly working away at thousands of their locations.

</comment><comment><USER11> If you've ever had to Google information about using libcurl you've most probably noticed how so many people ask questions and get answers by Daniel himself.

These answers are always very helpful and polite, doesn't matter if the question is smart or stupid.

Daniel seems a very nice person just as he's a great programmer, and I think curl success is due to its quality as much as it's due to how Daniel cares about it's users.

</comment><comment><USER12> Not sure if this is good thing? I know as the dev you are excited about it. But if I can gain access to the hardware using curl in my car, then I can download anything I want to my car.

<comment><USER13> That is good, if it is your car.

With power comes responsibility, of course.

<comment><USER12> >With power comes responsibility, of course.

Fair enough.

>That is good, if it is YOUR car. (emphasis added)

This my concern, if I can download anything I want to MY car, how hard/easy would it be for me to do it someone else's car?

<comment><USER14> thats more a "how did you get access to my car" issue though, and not neccessarily a curl issue.

If you are in a position where you can execute something on an appliance, all bets are off

</comment></comment></comment></comment><comment><USER15> 100 million cars can connect to the Internet?

<comment><USER16> Probably. Cars today are more connected - most of them have modems since the 2G wireless era (a lot of times you are probably unaware it's there.)

<comment><USER17> >most of them have modems

Any source on this? Sounds interesting. There's only so many reasonable places you could put an antenna, given that vehicles are mostly metallic. So, if so many cars are have cell modems, they should be easy to find.

I'm aware of OnStar, but that certainly doesn't cover "most" cars. GM has less than 20% of the US market [0].

[0] [https://www.statista.com/statistics/239607/vehicle-sales- mar...](https://www.statista.com/statistics/239607/vehicle-sales-market-share- of-general-motors-in-the-united-states/)

<comment><USER16> > Any source on this?

I have an engineer friend who works on the 2/3G modems for a German automotive brand. He told me anecdotally many years ago. And the public generally learned from the security breaches and vulnerability exposures. Here is one:

[https://www.bleepingcomputer.com/news/security/security- flaw...](https://www.bleepingcomputer.com/news/security/security-flaws-found- in-2g-modems-used-by-bmw-ford-infiniti-and-nissan-cars/)

As you can see in the article above, by "most" I meant pretty much everybody. Just like gorilla glass are standard for smartphones, car connectivity is a standard feature on modern cars, and it doesn't cost much to the manufacturers to add that on - given the upstream auto suppliers producing these TCUs (telematics control unit) in a massive scale, which is also why all these car brands were affected (sourced from the same supplier.) And they can up-sell connectivity based subscription features with higher profit margin.

<comment><USER18> Surely the manufacturer still has to pay for cell service for that modem. That's typically billed on a per GB and per line basis.

Would the manufacturer want to be paying a few dollars per car per month just in the hope the user might upgrade to OnStar later?

<comment><USER16> It's usually a wholesale deal like what those MVNO are getting for the initial period of a new car and then car owners pay for the full service price later. The Big three wireless carriers want those IoT contacts as much as the automotive manufacturers, since those are also counted as subscribers and generating recurring revenues.

</comment></comment></comment></comment></comment></comment><comment><USER16> The other day I was working to build a minimal docker image with a command line tool to interact with http protocol to download a SDK. Other than curl and wget, are there any other commonly used *nix tools for that purpose?

<comment><USER19> FreeBSD has fetch.

[https://www.freebsd.org/cgi/man.cgi?fetch(1)](https://www.freebsd.org/cgi/man.cgi?fetch\(1\))

</comment></comment><comment><USER20> Does it mean actual CLI curl client or libcurl library?

<comment><USER21> He didn't say, but I have to assume libcurl since my Android-based head unit doesn't offer me a terminal emulator with curl, but does make HTTP calls.

</comment></comment><comment><USER22> What do they use it for generally? Downloading updates?

<comment><USER23> currently: entertainment systems (audio streams, weather forecasts, traffic/route planning navigation, etc.)

Eventually: spying on the passengers and turning the operator's behavior profile into an alternate revenue stream.

<comment><USER24> > spying on the passengers

I'm not familiar with this functionality of curl. Is there some undocumented flag for that?

</comment></comment></comment><comment><USER25> Hey, I use curl too in my apps!

Programming level: tesla</comment>


New solar power plant is first in UK built without Government subsidy - <AUTHOR> http://www.independent.co.uk/environment/solar-power-plant-uk-opens-built-without-government-subsidy-renewable-energy-britain-a7967736.html <comment><USER2> This is good. Hopefully we'll see further R&D and improvements in energy storage technologies as well to support increased renewable energy generation.</comment>


What I learned from screwing up my first ebook launch - <AUTHOR> http://www.slash7.com/articles/2009/5/29/10-things-i-ve-learned-from-my-first-ebook-launch

<comment><USER2> Isn't the price a little high? You are a first time author, and its not even printed, wouldn't it have made more sense to start the first book at something cheap like $9.99? What made you pick your price point?

<comment><AUTHOR> Well, I'm not really a first-time author. I have 450 pages of a JavaScript book I wrote for O'Reilly, just sitting on my hard drive. But (long story short) they are blowhards so I canceled on them.

Furthermore, I'm pretty famous for my teaching skillz. My blog has 7000 readers. My Scriptaculous cheat sheet, for example, has been downloaded about 500k times.

I can't tell you how many big important people in the Rails community have come up to me and told me that they have my ActiveRecord cheat sheet hanging in their cube. (Or did.)

I gave a 3-hour tutorial at OSCON on JavaScript and I've given normal-length talks on Prototype there as well.

And my coauthor, my husband, wrote the Script.aculo.us framework and is one of the top 10 people in the world for this very topic.

Why would I charge $10 for a 150 page book? :)

Plus the DOM Monster tool, which will save our customers hours of work.

Many geeks undercharge because they don't know what creates value. I do know what creates value, and I do it - I write so anyone can understand, I make people laugh, I format the book in a beautiful and screen-friendly way, I make excellent diagrams, and I am incredibly picky about quality.

All those things, and the content is in-depth and detailed to a degree you cannot find anywhere else.

I don't undercharge. :) I could have easily charged more.

And what I'm really interested in, a few steps down the line, is teaching others to do this. I think that the stranglehold book publishers have is an illusory one. I think that there are tons of people right here on HN who could make good money _and_ help people, rather than dreaming of writing a paper book where they get 10% of the discounted price at Amazon.

<comment><USER3> It's safe to ignore anyone complaining on the topic of price. Those of us that spend thousands of dollars every year to keep our education up for our section of the technical playground aren't going to hesitate at paying $30 for good information. I'm confident you've put at least $30 of value into every book, if not thousands more.

My first ebook on software design sold for $97 starting in 2001 and that's when nobody had even heard of ebooks. I made six-figures several times over with the product.

Amy, I would suggest spending more time on the sales page. I don't think it's driving home just how valuable the book can be. Put yourself in my shoes as a developer and hear all the silly questions I'm asking about the book and the problems I'm having with my code in which your book will help out.

For sure, you shouldn't have your bios hanging out on the side of the page. Drop them in the middle and really allow yourselves to shine.

I'm not even sure if the best angle to spin the guide is as a "is your app slow?" type of book. Some of us want to produce high-quality code and want to see useful techniques for improvements across the board. "Supercharge your Javascript" resonates more strongly with me than "Do you fall asleep waiting while your apps are running?"

Feel free to ping me if you'd like some additional advice. For sure, add a box to the webpage for folks to sign up for updates. Get a cheap account at aweber.com. Regularly mail updates out about the guide. Often, it takes 7-10 impressions of a product to make the sale. And once you have thousands of folks on your list, selling the second guide you write will be much easier!

<comment><AUTHOR> Hiya, bprater.

Thanks for... actually, anything I try here sounds silly - support, sharing, etc., etc. But, in any case, thanks.

Re: the sales page, you're right. This is the beta sales page. When I ship the final version (next weekish), the sales page will change. I didn't think it made sense to work on the sales page again before the book was done. :)

I'm always looking for more advice so I will definitely ping you.

Nice to see another geek doing this stuff, not just sleazy "I make $102,221.392 repeating on Google Adsense every picosecond!" people. :)

</comment></comment></comment></comment><comment><USER2> You should also offer a printed version for those people who want a hardbound copy.

Something like: <http://www.cafepress.com/cp/info/sell/books.aspx>

So if you end up with 150 pages in the book, it'll just be something like 11 bucks extra. And most people prefer to have technical manuals in paper format. + You can charge a little bit more for the printed version, to make the ebook that much more appealing

<comment><AUTHOR> Well, let's see...

Only one person has asked for it.

The actual price for printing the beta was $24. (I told him to go ahead and get his own printed copy.)

That would double the sales paths I have to worry about, collect email addresses from, etc.

It's really a non-starter to me. I have made the ebook screen-friendly and it's got a great interactive Table of Contents.

I don't think there's a reason to sell a printed copy when you could easily print it out and have Kinko's bind it for like $8.

<comment><USER4> My experience (creating PDF ebooks at gmathacks.com) has been similar. I probably get an email every 2-3 months asking about a printed copy. I have a standard response re: benefits of the PDF & one's ability to create their own print copy, and nearly all of the inquiries result in the sale of an ebook.

I'm probably losing a handful of customers who don't email me in the first place, but that's an ok tradeoff for me in that it spares me the hassle of setting up a print-on-demand deal and (I irrationally fear this) inevitable customer service issues that arise from having to physically ship stuff (even it's a turnkey operation and somebody else is doing the shipping).

<comment><AUTHOR> Cool!

Plus - if you get it bound @ Kinko's, you can get spiral bound. And spiral bound is vastly superior for reference books. :)

</comment></comment></comment></comment><comment><USER5> I would give some free excerpts. Maybe even a free chapter. If the content is really good, this process will happen in the customer's mind:

1\. Wow!

2\. My mind is blown!

3\. This content is top notch, and I can't wait to get my hands on the rest of it.

<comment><USER6> Agreed, and it's not limited to books either. My startup's (<http://ThinkCode.TV>) aim will be selling high-quality programming screencasts. We immediately decided that the first episode of each course should be free.

</comment></comment><comment><USER7> I have found "The Pragmatic Bookstore" handling of the beta review process for Stuart Halloway's book on "Programming Clojure" simply excellent. Of the listed points in this article:

1\. People are absolutely willing to buy beta books.

[Clojure's beta book was near completion content-wise, and very readable and usable in everyday learning of clojure.]

4\. ... do not lay out the beta version beautifully in InDesign ...

[They were clearly typesetting in LaTeX.]

5\. Have an update plan in advance.

[The update plan was announced from the beginning and worked really well via email notifications.

6\. It's never a good idea to publicly promise to ship on X date ...

[They never had a final date. They even waited for Clojure to stabilize to 1.0.]

7\. The types of folks who buy beta books are very involved, and will send you all kinds of helpful emails about typos, errors, or suggestions...

[My impression is that Stuart got even overwhelmed.]

And to top it, beta reviewers not only got the ebook; they were promised a free printed book. Hats off.

</comment><comment><AUTHOR> I'm happy to see all these content-creating people come out of the woodwork!

<comment><USER8> if you don't mind me asking, how do you enforce the site licenses? Is there a setting in creating a pdf that only allows you to make 100 copies or do you lock the pdf and issues 100 unique copies?

Any answer would be greatly appreciated. :)

<comment><AUTHOR> The honor system.

We talk in the beginning of the book about how buying the correct license is supporting us creating more awesome stuff, including the upcoming Scriptaculous 2.0.

If people are going to pirate, they're going to pirate. Nothing is going to stop them. Except maybe LOOOOOOVE. :)

</comment></comment></comment><comment><USER9> Mmmmkay. . . I see that script.alicio.us _is_ one of the projects I'm promoting in forum number 11 at oss.zentu.net.

Sorry about our old flamewar regarding your previous issues with google ebooks. However, since I am promoting the script.alicio.us project (read: talking numbers on pi day) in a useful way that I am sure somehow contributes to your potential millions as a published author, please forgive me for defending one of the potential sources of revenue from my sites.

I don't like attention as much as some people do, but sometimes a gal has gotta defend her work. :)

indie

<comment><AUTHOR> You're joking, right? Defend your work? One of your sources of revenue? I've never heard of your work, much less said anything about it. Ever.

As I recall, you blamed Google shafting me on my "syntactically sketchy" JavaScript code samples. In a PDF. You said that must have _conflicted_ with the Checkout engine.

That was the weirdest comment I think I've ever gotten on HN.</comment></comment>


Product Owner increasing software quality - <AUTHOR> http://www.agilemanic.com/scrum/product-owner/product-owner-increasing-software-quality/

<comment><USER2> >There is something left to do? It takes five minutes? That means the story isn't done? Yes? Story declined!

It's true, so many many times those 5 minutes expanded into hours...

<comment><AUTHOR> Exactly! But o be clear I have to add, that doesn't mean the story won't be finished. It's just supposed to show the team the consequences and what it means, whether something is done or not.</comment></comment>


Hacker News currently not accessible in China - <AUTHOR> http://www.blockedinchina.net/?siteurl=news.ycombinator.com

<comment><USER2> Seems okay to me</comment>


Memory efficient Ubuntu VMs - <AUTHOR> https://coderwall.com/p/a56j3w

<comment><USER2> How much ram do you win, blacklisting those modules ?

All the kernel modules of my desktop sum a few KB. Only in 1 system I see "nvidia" is a big module, but it doesn't use to be loaded in virtual machines.

About the blacklisting method... I use to never touch the distribution files inside /etc/modprobe.d (to ease upgrades, differences across hosts, etc).

I think it could be better to use something like /etc/modprobe.d/local.conf or hostname.conf

And note, that the "blacklist" directive, by side effects, may avoid module autoloading at boot time, but the real way to disable a module (forever) is to use this instead of "blacklist":

        install modname /bin/true

For more information, see blacklist in: man 5 modprobe.d

I did expect to see more tips about "userspace" configurations, where it's more easy to win MB instead of KB.

At kernel level... after change the kernel for one more light, and tune which modules are loaded... if we go for details... still you could see which params are available for loaded modules (some params may affect ram usage) and which sysctl values we can tune in the kernel (buffers, limits, etc) to affect ram usage.

</comment><comment><USER3> Modules are loaded as they are needed. I think it's cleaner to configure your VM to _not_ have a sound card, rather than blacklisting all those snd* modules.

</comment><comment><USER4> It would be really good to see a comparison between this, and re-using the Ubuntu Cloud images, which also provide easier initialization.

[http://ubuntu-smoser.blogspot.co.uk/2013/02/using-ubuntu- clo...](http://ubuntu-smoser.blogspot.co.uk/2013/02/using-ubuntu-cloud-images- without-cloud.html)

<comment><AUTHOR> Great idea! I personally haven't had any experience with the cloud images so far but now that I looked at them I really like your idea. +1

</comment></comment><comment><USER5> Wouldnt removing modules affect performance because some modules might be loaded for performance or memory purposes. Can there be adverse effects as well of doing this. If lightweight is only need, why not use the lightweight distributions like Tinycore linux.

<comment><AUTHOR> I personally haven't had significant performance regressions. I tend to disable only the modules that I am sure are not going to be necessary.

Also, Tinycore linux might be great but I would like to use Ubuntu for convenience and keep my existing additional scripts and provisioning profiles compatible.

I'll have a look at Tinycore Linux though, thanks for mentioning.

</comment></comment><comment><USER6> I tend to use base debian for VMs. It's much smaller than base Ubuntu from both a kernel and userspace perspective.

<comment><AUTHOR> I use Ubuntu for convenience and because that's the distro that I am the most familiar with. I know that Ubuntu is a Debian derivative but I tend to use Ubuntu because of the wide range of community resources.

</comment></comment><comment><USER7> Great tips! Thanks! :)</comment>


How Apple lost its way: Steve Jobs' love of simplicity is gone - <AUTHOR> https://www.theguardian.com/technology/2016/jun/02/ken-segall-apple-steve-jobs-simplicity?CMP=fb_gu <comment><USER2> What a terrible article. This article has no substance to it at all. The author rehashes the line about how Apple is doomed b/c Steve Jobs is irreplaceable. It's more nonsense from there.

Simplicity in product lines: "Apple now sells three different iPhones, four different iPads and three different MacBooks." This is "endless choices"? Is the argument here really that Apple Watch has too many band options, and this constitutes a violation of simplicity in product lines?

Simplicity in software: literally the only argument the author provides here is Apple Music. There is actually a case to be made here, but the author doesn't make it (iTunes has been a disaster for years).

Simplicity in product naming: Apple is retiring iThings in favor of Apple Things, and consumers understand far too well that "S" releases are off- year/internal changes only. If customers understand something as esoteric as that, how is the product naming too complex?

Simplicity in marketing: The author's argument here is just that the internal Apple marketing process is more complex, because Steve Jobs doesn't just keep it between himself and the ad agency anymore.

Even if you took this seriously, is there any PC hardware company with product lines/software/naming/marketing as simple as Apple's?

</comment><comment><USER3> "Apple's ability to make software solid and simple has come under attack"

I don't actually recall Apple's software being any better or worse than the competition after OS 6. The fact is that ALL software, including Apple's is confusing and hard to use. You just have to watch normal people trying to use computers and phones to understand that. It's not at all surprising that Apple have simply reverted to the mean. But this isn't a new thing. iTunes has been a constant bafflement since its release - and so has pretty much all complex Apple software.

<comment><USER4> > iTunes has been a constant bafflement since its release

My memory must be suffering because I recall the first versions of iTunes being _extremely_ simple. It was a list of music, and you could play said music. You stuck in a CD, and it would rip it for you. Very little else else.

Then they bolted on: a music store, iPod sync, podcasts, video player, library sharing, social network, iPhone + app management... etc etc etc.

<comment><USER5> I wonder if all that happened because it is Apple's beachhead in the Windows ecosystem. We may be observing the same with how Google chrome has gotten more and functionality added over time.

</comment></comment></comment><comment><USER6> I still remember my iPhone 3G. The settings "app" was so simple that I couldn't imagine a smart phone would be so "perfectly" configured, without any user modifications.

Nowadays it's different. I have my Apple Watch for one year already and I haven't clicked / tapped everywhere yet. I barely use some of the features ( as Mail, Music, World Clock and many others ) and I definitely do not feel satisfied because of that.

The author has a good point saying that Apple is moving out of simplicity. There is a new market gap that IMHO, is increasing and soon I hope a company with money and bold vision will become for that market, what Tesla is for the auto-industry.

<comment><USER5> Well back then the iPhone was more a featurephone with a fancy UI than a smartphone.

</comment></comment><comment><USER7> The arguments are a bit rubbish eg

>With the current models consisting of iPhone 6S, iPhone 6S Plus and SE, Apple's naming scheme is becoming noticeably less simple.

That started with the 3GS many years before Steve left.

The simplicity thing lives on in Jony Ives. He might even be overdoing it with things like only one port on the Macbook.

<comment><USER8> It's a bit different though, isn't it? The 3GS was a successor. The current models share the same space.

2009: iPhone 3GS

2016: iPhone — 6S, 6S Plus, SE

<comment><USER9> 2009 was iPhone 3GS and 3G at least; they may even have still sold the original at that point. Three different models for the biggest-ever consumer electronics product doesn't seem too crazy.

<comment><USER10> Especially when you compare them to Samsung's plethora of devices.

<comment><USER11> I wish Samsung would coalesce their phone options to 3-4 devices, would be a lot easier... Same for most others.

That said, I would still love a mid-range desktop option from Apple... with actual user-upgradable hardware.

<comment><USER5> With Samsung it seems to be a Korean corporate culture problem. Something about being involved with a shipped product being a way to score social points and work towards a promotion.

That said, all those devices leads to them being willing to try things. Like for example that model with a pico projector.

</comment></comment></comment></comment></comment></comment><comment><USER12> Out of all the execs we've seen since, the one that seemed to come the closest to Jobs in force of will and design sensibility was Scott Forstall (now gone, of course). We may not like skeumorphism now but the original iOS design was an impressive achievement.

<comment><USER13> Agreed. Apple maps was a huge screw up and if he was responsible it makes sense why things were handled that way.

Still, iOS and Mac OS X are both so bland and ugly that it's a terrible homage to the legacy of Jobs and his focus on tying tech to the lives of people.

Todd; Apple user interfaces look like Google and Microsoft these days. Not like those are something you should aspire to have your product look like.

<comment><USER14> > Agreed. Apple maps was a huge screw up and if he was responsible it makes > sense why things were handled that way.

Given its continued screw up, I find it hard to blame him.

I do wonder if he'll ever do any OS related things from here on out. It would be interesting to see him guiding a Linux (well I would prefer BSD) distro.

</comment></comment></comment><comment><USER15> I'd overlook 99% of this if Apple gave a shit about the pro market instead of obsessing over phone sales. The software is on life support or dead (Aperture) and the hardware well behind the competition. OS X relies on a file system nearly twenty years old…

Edit: Used to be that iOS devices drew people into the Mac ecosystem, where the Mac HW and SW was suitable for doing real work. These days, I get the feeling that Apple expects everyone to stay on iOS devices and begrudgingly sells Macs as iOS development and personal productivity machines. People with serious work to do should look elsewhere.

<comment><USER5> I suspect you can pin the start of when they discontinued (in classic Apple fashion) the Xserve line. And being finalized with the into of the "trashcan" Mac Pro.

Then again, Apple have for nearly a decade now being selling their stuff as "lifestyle" devices, so one should not really be surprised.

</comment></comment><comment><USER16> A leader is only as good as his people. And this is yet another article doing disservice to all the people working at Apple. Steve might have given the direction but he was hardly responsible for every idea that came out of Apple. The logic goes like - if something good happened, it was steve's genius. If something bad happened, it was despite his genius. For the last 4 years, Tim has been managing the company and growing it incredibly well.

Next what sundar is personally responsible for the really silly notes app that came out recently (I even forgot it's name)?

<comment><USER17> Apples problem is not the lack of ideas or talent, but the lack of an ability to prioritize which ones to focus on.

That was Steves talent, thats what they are lacking today.

<comment><USER16> I don't doubt that. I am sure priorities can be set by one man. But the article talks about he is the main driver for simplicity in the products. Which is an design/engineering outcome. I think the simplicity of apple products is the work of lots of people and not one man.

<comment><USER17> He was the main recognizer of it's value to build products which were easy to sell.

It's hard to find many other CEO's who were so articulate as to why they believed what they did would work and turned out to be right.

He was wrong about many things too, but if it wasn't for him apples wouldn't have made the product choices they did despite what everyone else was doing.

</comment></comment></comment></comment><comment><USER18> It's time for a new form factor to shake up the industry. Mobile devices are getting far too bulky.

See Cicret's wristband.[1] This is a revolutionary concept. The video is fake. But there are people plugging away to make it real.

They're going to have the battery life problem from hell, projecting that image in daylight. As it gets closer to reality, it's getting bulkier. But they claim they need to raise $500K, and are 94% of the way there.

This might be the next Pebble. Or the next uBeam. It may be a hoax. But it's a good concept.

[1] [https://www.youtube.com/watch?v=9J7GpVQCfms](https://www.youtube.com/watch?v=9J7GpVQCfms) [2] [https://cicret.com](https://cicret.com)

<comment><USER19> This looks like it enables even more complex UI interactions, even if the device looks simpler. Also, this is going to suck on those with darker skin.

<comment><USER18> It might work better on darker skin. You need more projector power, but you get better contrast.

</comment></comment></comment><comment><USER18> Apple, like Rolex, may not need a Next Big Thing. Rolex still sells their 1950s Rolex Submariner. It costs over 10x as much in constant dollars now, since it's a status symbol rather than a useful tool for divers.

<comment><USER20> How do companies in the status symbol business disrupt each other ? There must have been some such cases.

<comment><USER18> Happens occasionally in the fashion industry. Coco Chanel invented sportswear. Mary Quant invented the miniskirt.

</comment></comment></comment><comment><USER21> I should save this article for when AAPL posts another record quarter.

<comment><USER22> It's kind of like when you're trash talking in sports and the other team just stands there and points to the scoreboard with a 100 point lead.

 _Posted from a 2015 Mac Book Pro_

<comment><USER23> Their recent OSX releases have been terrible.

Mavericks and even Yosemite caused my 2012 Mac Book Pros to crash randomly. And then stall on restart. If Apple has 100 pts on the board, they don't deserve them.

<comment><USER24> File a bug!

[http://bugreporter.apple.com](http://bugreporter.apple.com)

</comment></comment></comment></comment><comment><USER25> I see confirmation bias in this post. The author ignores product lines under Steve Job's tenure such as the iMac line.

The iMac G3 celebrated 13 various configurations for example.

</comment><comment><USER26> How much of Apple was Steve Jobs's love of simplicity and iron will not to release half-baked products, and how much was the ability to build things in ways inaccessible to other manufacturers? To say it is all simplicity is like finding Intel's advantages all in the chip designs and none in the fabs.

</comment><comment><USER27> I swear news organizations have this type of article in their back pocket whenever they need a boost in traffic. "Apple is going out of business" seems to be something I see from multiple different organizations every few months. And I have yet to see an article with any interesting commentary.

</comment><comment><USER28> The narrative has turned sharply against Apple

<comment><USER29> Nope. The guardian had been posting anti-Apple pieces for years, as have large sections of the tech press.

<comment><USER28> Meanwhile, most Apple services are down.

[http://www.forbes.com/sites/gordonkelly/2016/06/02/apple- con...](http://www.forbes.com/sites/gordonkelly/2016/06/02/apple-confirms-app- store-itunes-icloud-services-all-down/#6c53dc293d97)

<comment><USER29> If you think that is something to do with Steve Jobs being gone, you are forgetting how much worse their services were during his tenure.

</comment></comment></comment></comment><comment><USER30> I'm an Apple fan (having converted with the 2010 Macbook Air and the iPhone 4) and I am really frustrated by Apple's products these days:

\- I honestly don't think the Watch is anything more than a niche product because there's really no compelling use case for it. Having another device to charge just to have a notification screen seems like a lot to pay $500+ for;

\- Force Touch is (IMHO) a disaster. Steve Jobs' Apple steadfastly refused to have more than one button on the Mac mouse. I think this is a rare case where Jobs was proven wrong as the right click is just too useful. But Force Touch adds weight to the phone and cost and doesn't have a compelling use. What's worse is that there is zero discoverability.

I honestly wouldn't be surprised if the iPhone 7 drops this feature after the 5SE didn't have it and that would be quite an admission of failure.

\- I'm constantly frustrated by Apple's apparent distaste for the Macbook Air line. When the 12" Macbook came out I thought this was the end of the line for the Air and that makes me sad as, to me, the Macbook is too much of a compromise (horrible keyboard, no feedback on the trackpad, too low power CPU, only one port which is also for power). The Macbook proved they could release an Air with a retina display if they wanted to. They clearly don't want to.

I honestly don't get Apple's hate for the Macbook Air.

\- Steve Jobs famously called touch displays on laptops terrible from an ergonomic point of view. I agreed then and nothing has changed my mind. Every time I try one of these devices (eg iPad Pro with a keyboard), I wonder why anyone would want to lift their hand from the keyboard to touch something on the screen. The 13" iPad Pro has other things going for it but I just don't see an iPad as ever being a replacement for a laptop for most people. And I say this who has owned 5 iPads (including the latest 9.7" iPad Pro).

\- I kept my iPhone 5 for 3 years because I hated the larger phones. I finally relented and bought the 6S under protest. Apple finally relented and released the 5SE, which I take as correcting a mistake. Some people may want larger phones. It's fine to have those. But many people don't. I expect the 5SE form factor to be a big seller for Apple.

Tim Cook seems to be a great logistics man and I think was largely responsible for building the supply chain that could build 200M+ devices a year. This includes innovations in how Apple used their cash hoard as vendor finance to get exclusive supply for awhile and cut their costs in the long term.

But Cook just isn't the visionary that Jobs was (who is?) and Apple's much vaunted simplicity does seem to have at least partially fallen by the wayside.

<comment><USER31> I don't like Force Touch on my MacBook Pro. I loved being able to lightly tap on the touchpad instead of having to click. I don't get why this was worth having more levels of gradation in fast-forwarding through videos.

<comment><USER32> Just in case you weren't aware: you can turn off Force Touch and turn on "Tap to click" in System Preferences > Trackpad.</comment></comment></comment>


Irish Data Protection Commissioner rules that ISP cannot do "3 strikes" - <AUTHOR> http://businessetc.thejournal.ie/massive-blow-to-music-industry-as-eircom-anti-piracy-measures-rejected-307584-Dec2011/

<comment><USER2> After this:

[http://www.wired.com/threatlevel/2011/06/internet-a-human- ri...](http://www.wired.com/threatlevel/2011/06/internet-a-human-right/)

How can they continue to say that "not allowing disconnection" is a "massive blow" to the music industry? That's almost like saying abolishing slavery is a massive blow to some industry's labor force.

Are they trying to say their profits are more important than a _Human Right_?

That's mainly a rhetorical question. I realize that's how they actually think, and they couldn't care less about freedom of speech or some other silly human right, if they think they have an impact on their revenues. This is why they and their supporters in Congress want to pass SOPA/PIPA regardless of how many experts we bring to speak against it.

<comment><USER3> The UN report declared that _taking away all access to the Internet over claims of copyright infringement_ was too large of a punishment for the crime. And one of the U.N.'s human rights is a functional justice system (or something like that).

By the logic that says that UN is saying that the Internet is a human right, theft is a human right because I say that the death penalty for stealing $1 worth of stuff is too large of a punishment.

<comment><USER4> Punishment for the crime? What crime? Under this system there is no actual determination that a crime has been committed. That can only be done via due process of the legal system, not by a copyright holder making an assertion to an ISP. Is it really a good idea to be able to punish somebody because two corporations agree that he should be punished? And the punishment could be severe -- if you're a self-employed software developer, depriving you of internet access could cost you your livelihood.

<comment><USER3> "The punishment doesn't fit the crime" is a turn of phrase.

If I see a parent kick a child because the child was annoying the parent and say, "the punishment doesn't fit the crime," is your first reaction, "BUT THAT CHILD WASN'T CONVICTED IN A COURT OF LAW! DON'T CALL IT A CRIME! RETRACT THAT STATEMENT IMMEDIATELY! PARSE ERROR!"

Also, you seem to be mistaking that I agree with 3-strikes laws due to my comment. The point of my comment was that the parroting of "The UN thinks the Internet is a human right," is wrong. If the UN really thought that the Internet was a human right, then every country that didn't supply free Internet to its citizens would be guilty of 'human rights violations.'

<comment><USER5> the RIAA is not my parent, nor a court of law, due process exists for a reason.

<comment><USER3> Yes, of course. Because in all of my comments, I was advocating the MPAA/RIAA position. </sarcasm>

</comment></comment></comment></comment></comment></comment><comment><USER6> Great news for our privacy in Ireland. Although I can't seem to find anybody else reporting on this.

For those who are interested, Eircom is also the Irish ISP which continues to enforce a complete ban on any of its customers accessing The Pirate Bay due to an out-of-court settlement with the Irish music industry[1] - despite there being no law requiring them to do so.

Subsequently, Eircom then launched their own (as expected, below par) music streaming service the following year.[2]

[1] [http://torrentfreak.com/eircom-agrees-to-block-pirate-bay- ac...](http://torrentfreak.com/eircom-agrees-to-block-pirate-bay- access-090820/)

[2] <http://eircommusichub.ie>

<comment><USER7> [http://www.irishtimes.com/newspaper/frontpage/2011/1219/1224...](http://www.irishtimes.com/newspaper/frontpage/2011/1219/1224309259318.html)

Sopat?

</comment></comment><comment><USER8> Bully told he cannot continue punching classmates in the face, this is a great blow against bullies everywhere traumatizing classmates. No, an epic blow would be punishing corporations for trying to use their money and might to extinguish basic human rights.</comment>


"CPUs are optimized for video games" - <AUTHOR> https://moderncrypto.org/mail-archive/noise/2016/000699.html <comment><USER2> This may be an unpopular opinion, but I find it completely fine and reasonable that CPUs are optimized for games and weakly optimized for crypto, because games are what people want.

Sometimes I can't help but wonder how the world where there is no need to spend endless billions on "cybersecurity", "infosec" would look like. Perhaps these billions would be used to create more value for the people. I find it insane that so much money and manpower is spent on scrambling the data to "secure" it from vandal-ish script kiddies (sometimes hired by governments), there is definitely something unhealthy about it.

<comment><USER3> People spend a lot of money on physical security as well. They put locks on their homes and cars, install safes in banks, drive money around in armored cars, hire armed guards for events, and pay for a police force in every municipality. The simple fact is that if your money is easy to get, someone will eventually take it without your permission. That is reality, but calling it "unhealthy" implies that the current state of things is somehow wrong. I agree with that premise, but it carries with it a lot of philosophical implications.

<comment><USER4> > That is reality, but calling it "unhealthy" implies that the current state > of things is somehow wrong.

I don't spend a lot of money on physical security. I leave my car and front door unlocked usually, and don't bother with security systems.

If you find yourself having to lock and bolt everything under the sun lest it get damaged/stolen, then yes, I think it is an indication that the current state of things is wrong. There is something wrong with the economy/community/etc. in your area.

I realize that "the internet" doesn't really have boundaries like physical communities do, but I too wish for a world where security was not an endless abyss sucking money into it and requiring security updates until the end of time. In other words - a world where you could leave the front door unlocked online without having to worry about malicious actors. It will never happen, of course (at least not until the Second Coming ;)

<comment><USER5> Wow, what country do you live I that you feel comfortable keeping you door and car unlocked? I've lived I the US and Germany and wouldn't have felt comfortable doing that in either place.

<comment><USER6> Countries are not granular enough to use for this sort of thing. I've lived in several places in the US where unlocked doors were the norm, and then in several places where it would be a bad idea if you want to keep your things.

</comment></comment></comment></comment></comment><comment><USER7> Games are also representative of the apps that actually squeeze the performance out of CPUs. When you look at most desktop apps and Web servers, you see enormous wastes of CPU cycles. This is because development velocity, ease of development, and language ecosystems (Ruby on Rails, node.js, PHP, etc.) take priority over using the hardware efficiently in those domains. I don't think this is necessarily a huge problem; however, it does mean that CPU vendors are disincentivized to optimize for e.g. your startup's Ruby on Rails app, since the problem (if there is one) is that Ruby isn't using the functionality that already exists, not that the hardware doesn't have the right functionality available.

<comment><USER8> Interestingly, the one thing that typical web frameworks _do_ do very frequently is copy, concatenate, and compare strings. And savvy platform developers will optimize that heavily. I remember poking around in Google's codebase and finding replacements for memcmp/memcpy/STL + string utilities that were all nicely vectorized, comparing/copying the bulk of the string with SIMD instructions and then using a Duff's Device-like technique to handle the residual. (Written by Jeff Dean, go figure.)

No idea whether mainstream platforms like Ruby or Python do this...it wouldn't surprise me if there's relatively low hanging fruit for speeding up almost every webapp on the planet.

<comment><USER9> Why is this even a thing? Copying and the like is such a common operation. Why don't chip providers offer a single instruction that gets decoded to the absolute fastest way the chip can do? That'd even allow them to, maybe, do some behind-the-scenes optimization, bypassing caches or something. It's painful that such a common operation needs highly specialized code. I know you can just REP an operation but apparently CPUs don't optimize this the same way.

This is too obvious an issue, so there must be a solid reason. What is it?

<comment><USER10> This seems like something that compilers should do and CPU instruction sets should not.

<comment><USER9> Why? It's a common op that requires internal knowledge of every microarchitecture, isn't it? Seems like something that should be totally offloaded to the CPU so you're guaranteed best performance.

<comment><USER11> The message you were referring to was talking about code for copying strings. If you wanted an instruction to copy lots of strings, the CPU would need to know what a character is (which could be 7 bits, 8 bits, 16 or 32), what a string is, how it's terminated, what ascii and unicode is, be able to allow new character encoding standards etc etc. Then you would need other instructions for other high level datatypes. That's not what CPUs do, because you're limited by how much more logic/latency you can add to an architecture, how many distinct instructions you can implement with the bits available per instruction, how many addressing modes you want etc.

So instead, this information/knowledge about high level data types is encapsulated by standard libraries and then the compiler below that. Most CPUs have single instructions to copy a chunk of data from somewhere to somewhere else and a nice basic way to repeat this process efficiently, and it's up to the compiler to use this.

</comment></comment></comment></comment></comment></comment><comment><USER12> As a gamedev I found that... weird.

A CPU for games would have very fast cores, larger cache, faster (less latency) branch prediction, fast apu and double floating point.

Few games care about multicore, many "rules" are completely serial, and more cores doesn't help.

Also, gigantic simd is nice, but most games never use it, unless it is ancient, because compatibility with old machines is important to have wide market.

And again, many cpu demanding games are running serial algorithms with serial data, matrix are usually only essential to stuff that the gpu is doing anyway.

To me, cpus are instead are optimized for intel biggest clients (server and office machines)

<comment><USER13> I disagree. As a gamedev writing game logic you are right.

But as an engine programmer, I agree with the linked author. I'll take your points one at a time.

Most engines are multi-core, but we do different things on each core (and this is where Intel's hyper-threading, where portions are shared between the virtual cores, for cheaper than entire new cores, is a solid win). Typically a game will have at least a game logic thread (what you are used to programming on) and a "system" thread which is responsible for getting input out of the OS and pushing the rendering commands to the card along with some other things. Then we typically have a pool of threads (n - 1; n is the number logical core of the machine; -2 for the two main threads, +1 to saturate) which pull work off of an asynchronous task list: load files from disk, wait for servers to get back to us, render UI, path-finding, AI decisions, physics and rendering optimization/pre-processing, etc.

AAA game studios will use up to 4 core threads by carefully orchestrating data between physics, networking, game logic, systems, and rendering tasks (e.g. thread A may do some networking (33%), and then do rendering (66%), thread B might do scene traversal (66%), and then input (33%), see the 33% overlap?), they also do this to better optimize for consoles. But then they have better control of their game devs and can break game logic into different sections to be better parallelized, where as consumer game engines have to maintain the single thread perception.

SIMD is used everywhere, physics uses it, rendering uses it, UI drawing can use it, AI algorithms can use it. Many engines (your physics or rendering library included) will compile the same function 3 or 4 different ways so that we can use the latest available on load. It's not great for game logic because it's expensive to load into and out of, but for some key stuff it's amazing for performance.

That stuff the GPU is doing eats up a whole core or more of CPU time. So what if we are generally running serial algorithms, we need to run 6 different serial algorithms at once, that's what the general purpose CPUs were built for.

This is all the stuff you don't often have to deal with coddled by your game engine. The same way that webdevs don't have to worry about how the web browser is optimizing their web pages.

<comment><USER14> Glad somebody wrote this. I agree 100% (well... probably more like 90% -- but mostly nits that aren't worth getting into).

<comment><USER13> To be fair I'm more of a hobbyist - who writes game-engine-esque code (I never said what kind of engine programmer I am did I) for my day job (pays better) - that just builds game engines for fun (like the last 10 years now... but no games). So some details are likely wrong, I'm kinda super curious as to your nits.

<comment><USER15> Sounds like what I did for the past 10 years before joining the gamedev world about 3 years ago. It is cool to work on your own tech and to learn a lot of different things, but it's also scary how much can get done with a whole team working at it.

</comment></comment></comment></comment></comment><comment><USER16> The real quote would have been:

> Do CPU designers spend area on niche operations such as _binary-field_ > multiplication? Sometimes, yes, but not much area. Given how CPUs are > actually used, CPU designers see vastly more benefit to spending area on, > e.g., vectorized floating-point multipliers.

So, CPUs are not "optimized for video games", they are optimized for "vectorized floating-point multipliers". Something video game (and many others) benefits from.

<comment><USER17> Why are they optimized for vectorized floating-point multipliers? Does the CEO of Intel just tell all the engineers to do this because he likes multiplication?

<comment><USER18> They are optimized for that because a lot of algorithms can make use of them, from quicksort/mergesort through image rendering and encryption. It is an easy optimization from a hardware perspective -- simple repetitive hardware structure. This is why GPUs are so powerful and games are not the only thing that benefits from this type of optimization. Matrix multiplication is also used in signal processing. The CEO asked, how can we optimize the use of our hardware for the most benefit? And SIMD with wide pipes is at the top of the list. Most of the post is about all the new algorithms that can take advantage of the hardware push. The hardware push is there because it is an easy use of hardware resources.

This is also an optimization that compilers can readily take advantage of on a small scale (similar to pipelining) so the combination of benefit + ability to use + simplicity/low resource use makes it an inevitability.

<comment><USER19> A sort that uses vectorized floating point multiplication?

<comment><USER20> From 2008: [http://www.vldb.org/pvldb/1/1454171.pdf](http://www.vldb.org/pvldb/1/1454171.pdf)

Also: [http://researcher.watson.ibm.com/researcher/files/jp- INOUEHR...](http://researcher.watson.ibm.com/researcher/files/jp- INOUEHRS/PACT2007-SIMDsort.pdf) and [https://github.com/NumScale/boost.simd](https://github.com/NumScale/boost.simd)

</comment></comment></comment></comment></comment><comment><USER21> TL;DR To please the gaming market, CPUs develop large SIMD operations. ChaCha uses SIMD so it gets faster. AES needs array lookups (for its S-Box) and gets stuck.

</comment><comment><USER22> Maybe a better headline would be something like "How software crypto can be as fast as hardware crypto". I was curious about this after the WireGuard announcement so thanks to DJB for the explanation.

</comment><comment><USER23> Not really. Just look through the feature lists of some newer processors:

AES encryption support: [https://en.wikipedia.org/wiki/AES_instruction_set](https://en.wikipedia.org/wiki/AES_instruction_set)

Hardware video encoding/decoding support (I presume for phones): [https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video](https://en.wikipedia.org/wiki/Intel_Quick_Sync_Video)

It's more that it's relatively easy to make some instruction useful to a variety of video game problems, but difficult to do the same for encryption or compression. You tend to end up with hardware support for specific standards.

<comment><USER24> Did you read the post? This is specifically addressed. The AES hardware support requires a bunch of die area specifically for that purpose and still isn't that performant. Smaller-area CPUs don't spend the area and perform abysmally on AES, and even in CPUs that do include AES-NI, Chacha achieves comparable performance for the same security margin without any custom hardware support, just using the general vector instructions added to improve game performance. DJB expects that because vector math continues to improve while AES hardware does not, Chacha will soon outperform AES even on devices with hardware support.

<comment><USER23> Thank you for pointlessly regurgitating much of his post?

The fact that Intel put an encryption feature in their chip, which does indeed make that algorithm faster, would tend to indicate they wanted faster encryption wouldn't it? That some other algorithm could be faster still isn't really contradicting that.

<comment><USER25> I'd wager that the goal wasn't so much speed (which is very rarely the issue) but security. It was way too hard to program a constant time AES implementation without AES-NI.

</comment></comment></comment></comment><comment><USER26> One important aspect DJB ignores is power efficiency. ChaCha achieves its high speed by using the CPU's vector units, which consume huge amounts of power when running at peak load. Dedicated AES-GCM hardware can achieve the same performance at a fraction of the power consumption, which is an important consideration for both mobile and datacenter applications.

Gamers generally don't care about power consumption. When you've spent $1000 on the hardware an extra dollar or two on your electricity bill is no big deal.

<comment><USER27> > CPU's vector units consume huge amounts of power when running at peak load. > Dedicated AES-GCM hardware can achieve the same performance at a fraction of > the power consumption

Citation needed. Where did you get that idea? Please show how djb's vector code spends more power vs the built-in AES "dedicated hardware" instruction when, as he measures:

"* Both ciphers are ~1.7 cycles/byte on Westmere (introduced 2010).

* Both ciphers are ~1.5 cycles/byte on Ivy Bridge (introduced 2012).

* Both ciphers are ~0.8 cycles/byte on Skylake (introduced 2015)."

"even though AES-192 has "hardware support", a smaller key, a smaller block size, and smaller data limits" (his code is 256 bits and 12 rounds).

<comment><USER22> AVX is so hot that Intel CPUs may have to clock down ~200 MHz when executing heavy AVX code to stay within their power/thermal limits. I have no idea if this hits DJB's code in reality.

[http://www.intel.com/content/dam/www/public/us/en/documents/...](http://www.intel.com/content/dam/www/public/us/en/documents/white- papers/performance-xeon-e5-v3-advanced-vector-extensions-paper.pdf)

<comment><USER27> Thanks for the link, I can only find "when the processor detect AVX instruction additional voltage is applied, the processor can run hotter which can require the frequency to be reduced" but I don't see anywhere mentioned that the base frequency is 200 MHz. If you mean 200 MHz lower than TDP marked frequency, but processing twice as much data, it doesn't sound so bad, it's still 1.7 times more power efficient than the shorter instructions spending twice as much time at the marked TDP frequency. And I'd be surprised that AES is magically not needing serious processing too. Otherwise it would be already implemented to be much faster than it is now.

<comment><USER28> It really depends on your instruction mix. If only one in twenty instruction uses AVX, the rest of your instructions are running slower due to the lower clock and they aren't getting double the throughput. On top of that it could be some other thread using AVX, clocking down the entire core and harming the given thread that isn't using AVX.

Intel has done a lot of things to try to balance this. One of those things is they don't even bother turning half the vector unit on unless you use it a lot. If you seldom issue an op with 512-bit operands, the CPU will actually dispatch them as multiple 256-bit operations, in which case you won't incur the drop in clock, but you also don't get the supposed benefit of double throughput. Furthermore the performance may be much worse if the CPU decides to turn up the remaining vector bits, because the clock drops dramatically while those units are charging up.

So you can see that for someone trying to wring out every last bit of performance on a recent Intel CPU using all the advertised vector capabilities, optimization can become quite complicated.

</comment></comment></comment></comment></comment><comment><USER29> I thought modern video games are predominantly limited by GPU performance? Maybe the argument is that while usually CPU performance isn't the most important part of the equation, video _gamers_ base their purchasing decision on misguided benchmarks that expose it.

The big CPU hog and prime candidates for these vector operations nowadays seems to be video encoding.

<comment><USER30> It depends on the game. Physics-heavy games for example, like Kerbal Space Program or Besiege, are usually CPU-limited.

<comment><USER29> Those are both built with Unity though, right? Where the game is basically C#. Are the actual physics even done vectorized?

<comment><USER31> No part of a Unity game runs in a .NET VM or any other VM. They chose C# as the scripting language because C# is one of the most popular programming languages, it's extremely popular in the non-game dev development community, and it's probably the only non-Web language that most code academies teach for traditional development maybe other than Java.

It's syntax is also pretty close to C and C++ which means developers with game dev background will feel at home as most game development is done in C++.

Unreal Engine uses Unreal Script which is now pretty much C++ but it is also not compiled directly (although with Unreal Engine 4 and onwards it's much closer to direct compile than any other scripting language).

Unity engine has it's own interpreter which then builds highly optimized C++ code and compiles it when you build the game.

Unity Engine is a pretty decent engine with kickass performance when optimized, without fine optimization any general purpose engine including Unreal 4 acts like utter crap. I'm alpha/beta testing a few UE4 games atm and you can see just how bad performance can get even on a solid defacto industry standard like UE4 like when dynamic shadows tank a GTX Titan X (Maxwell) SLI setup to below 20 fps any time there are light sources that are not properly fenced and culled - e.g. explosions.

<comment><USER32> Your last paragraph ticks me off so much about the current non-sequetor "industry standard". Most recent example I can give is that doesn't really care is EDF 4.1. It takes carpet bombing an entire city to make its FPS dip with hundreds if not thousands of gaint incest gibs (and four players) being flung across the map.

Do they really need a bazillion shaders and dynamic shadows on everything?

<comment><USER31> Unreal Engine is an industry standard when it comes to commercial general purpose engines.

There are more unreal engine titles for any given version than any other engine on the market on PC's and consoles.

On mobile unity is probably bigger atm.

</comment></comment></comment></comment></comment></comment><comment><USER33> Of course. Gamers are the biggest consumers of new, top of the line PC hardware.

<comment><USER34> I doubt gamers are outspending datacenters and owners of private clusters.

<comment><USER35> Server hardware is mostly a separate market from PC hardware, since there are different things to optimize for.

<comment><USER36> Yet Intel sells essentially the same microarchitecture to both

<comment><USER37> ...at enormously different price/flop, basically because it restricts RAM size and disables ECC in the Core chips. It's why we need AMD's Zen to be competitive again, so that this price gouging ends. Same for Tesla/Geforce at Nvidia.

</comment></comment></comment></comment></comment><comment><USER38> And because CPUs are optimized for both gamers and Windows, the world has access to lots of cheap, powerful hardware. I'm not a Microsoft fan, but I'm very appreciative to them for making this ecosystem possible.

In fact, games have always driven the modern computer industry. Even Unix started because of a game ([http://www.unix.org/what_is_unix/history_timeline.html](http://www.unix.org/what_is_unix/history_timeline.html)).

</comment><comment><USER39> Wonder how a POWER8 CPU would handle it or if it is optimized differently. It obviously is not geared for the gaming market.

<comment><USER40> Not sure about Power8 as I wasn't able to find anything conclusive. But if you believe Oracle's marketing efforts, the SPARC chips do much better than Power8 and Intel on that front.

[https://blogs.oracle.com/BestPerf/entry/20151025_aes_t7_2](https://blogs.oracle.com/BestPerf/entry/20151025_aes_t7_2)

<comment><USER41> SPARC chips are much more optimized for a certain intended set of workloads than x86 or POWER are so that's not surprising.

</comment></comment></comment><comment><USER42> Isn't this exactly why HSM's exist - to provide optimised hardware crypto functionality?

Honestly I would treat this the same as eg Ethernet - high end cards have hardware offload capabilities that the software stack can utilise to get better performance.

</comment><comment><USER43> I really find it hard to believe that people for whom such an interest in security at the CPU level would buy "retail" processors like you and me have access to. I am no expert in the field but it just seems weird that there isn't a market for and producer of specialized processors that are more militarized or something. Why does everyone have access to the same Intel chips? I doubt that's actually the case. Am I wrong?

<comment><USER7> > I really find it hard to believe that people for whom such an interest in > security at the CPU level would buy "retail" processors like you and me have > access to.

DJB's interest here is specifically in creating algorithms that work well on general-purpose popular CPUs.

</comment></comment><comment><USER44> ARMA III could be the good example of CPU bottleneck. Or maybe it is badly optimized... Then we hit the hot topic of multicore vs singlecore performance.

<comment><USER45> with the latest update, ARMA III seems to have a massive FPS boost. So it was definitely not optimized earlier.

<comment><USER46> I seem to perpetualy hear that with ARMA games.

</comment></comment></comment><comment><USER47> The form-factor for laptop screens are built for media consumption, even though the square form-factor is superior for productivity (I found an old Sony Vaio and the screen form-factor felt very pleasant). Seems the general consumption of media has dominated CPU design _in addition to_ everything else in our computers.

<comment><USER48> Well the wider screen format allows for a keyboard with a numpad now, without getting a massive "lip" below the keyboard.

</comment></comment><comment><USER49> Perhaps that was true in the mid 90s, but today Intel optimizes x86_64 for its highest margin core business: server/datacenter workloads. Any resulting benefit to desktop PC gaming is appreciated, but it's a side effect rather than a primary design goal.

</comment><comment><USER50> No, Intel CPUs are optimized to simulate CPUs

Some stories from back around 2000 when designing CPUs at Intel. Some people did bemoan the fact the few software actually needed the performance in the processors we were building. One of the benchmarks where the performance is actually needed was ripping DVDs. That lead to the unofficial saying "The future of CPU performance is in copyright infringement." (Not seriously, mind you)

However, here is a case where the CPUs were actually modified to improve one certain program.

From: [https://www.cs.rice.edu/~vardi/comp607/bentley.pdf](https://www.cs.rice.edu/~vardi/comp607/bentley.pdf) (section 2.3)

"We ran these simulation models on either interactive workstations or compute servers – initially, these were legacy IBM RS6Ks running AIX, but over the course of the project we transitioned to using mostly Pentium® III based systems running Linux. The full-chip model ran at speeds ranging from 05-0.6 Hz on the oldest RS6K machines to 3-5 Hz on the Pentium® III based systems (we have recently started to deploy Pentium® 4 based systems into our computing pool and are seeing full-chip SRTL model simulation speeds of around 15 Hz on these machines)"

You can see that the P6-based processors (PIII) were a lot faster than the RS6K's and the Wmt version (P4) was faster still? That program is csim and it is a program that does a really dumb translation of the SRTL model of the chip (think verilog) to C code that then gets compiled with GCC. (the Intel compiler choked) That code was huge and it had loops with 2M basic blocks. It totally didn't fit in any instruction cache for processors. Most processors assume they are running from the instruction cache and stall when reading from memory. Since running csim is one of the testcases we used when evaluating performance the frontend was designed to execute directly from memory. The frontend would pipeline cacheline fetches from memory which the decoders would unpack in parallel. It could execute at the memory read bandwidth. This was improved more on Wmt. This behavior probably helps some other read programs now, but at the time this was the only case we saw where it really mattered.

The end of the section is unrelated but fun:

"By tapeout we were averaging 5-6 billion cycles per week and had accumulated over 200 billion (to be precise, 2.384 * 1011) SRTL simulation cycles of all types. This may sound like a lot, but to put it into perspective, it is roughly equivalent to 2 minutes on a single 1 GHz CPU!"

Games were important but at the time most of the performance came from the graphics card. In recent years Intel has improved the on-chip graphics and offloaded some of the 3d work to the processor using these vector extensions. That is to reclaim the money going to the graphic card companies.

</comment><comment><USER51> tl;dr: AES uses branches and is not optimized for vectorization. Other (newer) algorithms are designed with branchless vectorization in mind, which makes specialized hardware instructions unnecessary.

</comment><comment><USER44> And what if games are better (or worse) optimised for certain type of hardware? So that way, you spend on new Intel CPU every 3 years. So the point is, what if some games are badly optimisied and run bad on certain hardware on purpose. Maybe it sounds like a conspiracy theory. But look, CPUs are stalling, Intel wants to sell it's things every year, what if they come to developers and say "Look make your game run 10% better on our latest hardware and we give you money"?

<comment><USER52> [citation needed]

</comment></comment><comment><USER53> Off-topic: That's a great favicon</comment>


Teenager's jailing brings a call to fix sex offender registries - <AUTHOR> http://www.nytimes.com/2015/07/05/us/teenagers-jailing-brings-a-call-to-fix-sex-offender-registries.html?hp&action=click&pgtype=Homepage&module=second-column-region&region=top-news&WT.nav=top-news&_r=0 <comment><USER2> Yes, he can be a welder, or a truck driver. I can not think of better occupations for someone who was previously studying computer science.

/s

The sex offender registry is, well, offending. It negates the concept of serving a sentence - it's a life sentence whose impacts are ridiculously out of scale with the original offense. "Sorry, you peed on a statue. Enjoy being on the list for the rest of your life!"

It's sad that the advice most often given to those looking to move on with their lives is to move out of country.

<comment><USER3> _" It's sad that the advice most often given to those looking to move on with their lives is to move out of country."_

I wonder if that's the entire purpose of the registry?

</comment></comment><comment><USER4> Aside from the multiple levels of stupidity involved with these registries, it's (sadly not really) amazing to me that the judge and prosecutor in this case essentially admit that they feel good about ruining this young man's entire life simply because they personally believe it's icky and immoral for people to have casual sex.

(And they're using _apps_! On them smartphones! On the _sin_ ternet!)

Ridiculous.

</comment><comment><USER5> > _His probation will also require him to stay off the Internet, though he > needs it to study computer science._

Imagine a probation condition that forbade you from using a telephone. Or from reading newspapers, or watching television, or using a debit/credit card.

</comment><comment><USER6> More people have to become aware of the fact that being on the "sex offender" registry most likely means you urinated in public or some such other small offense. How are we safer from actual predators by doing that?

</comment><comment><USER6> I wounder if anyone has given thought to how this will affect the poor girl. She knows she's been the cause of this poor guys life being messed up. Well, the idiots in the prosecutors office and the judge are the actual cause, but she must feel some guilt.

What a shame, her first sexual experience at a young age gets mixed up with feelings of guilt and shame.

</comment><comment><USER7> You hate to say it, and it's not a solution to the general problem, but perhaps the best outcome for this particular case is for the girl and her mother to accept that the system is broken and realize the kid has been punished enough. Then lie. "No, I was lying before. All we did was sit down and talk in the park while having milk and cookies".

</comment><comment><USER8> Cruel and unusual punishment plain and simple. It disgusts me that we're this vindictive a society; that's all this is - vindictiveness because who's going to stand up for sex offenders when our -children- are at stake.</comment>


Audio: Random act of kindness in Atlanta Airport. More hackers should do this. - <AUTHOR> https://soundcloud.com/jonathan-block-1/random-act-of-kindness

<comment><USER2> Jon: would you please make this not auto-play? Thanks.</comment>


Looking For Nothing In Gwalior (2019) - happy-go-lucky https://kevinstandagephotography.wordpress.com/2019/04/05/looking-for-nothing-in-gwalior-oldest-zero-chaturbhuj-temple/ <comment><AUTHOR> Sidenote: There are many , many more interesting temples, monuments in India. India is not just Taj Mahal. A lot of the historical temples were destroyed though so you will only see the ruins which are poorly maintained.

My recommendations:

1\. Any temples in South India like the ones in the city of Mahabalipuram 2\. Ajanta & Ellora caves in Maharashtra 3\. Ruins of Hampi in state of Karnataka

If you are feeling adventurous post Covid-19 in the future, check the crowds at a Temple like Tirupati (rumors has it that it has one of the largest Gold vaults in the world, cannot attest to it personally but i know it is the richest temple in India)

<comment><USER2> > check the crowds at a Temple like Tirupati

Why? Unless one is a devotee, the hours of queing up and jostling with crowds really don't payoff. Also, non-Hindus are required to sign an affadavit declaring their faith in the presiding deity before entering the temple.

I second your other recomendations.

<comment><USER3> >Why? Unless one is a devotee, the hours of queing up and jostling with crowds really don't payoff. Also, non-Hindus are required to sign an affadavit declaring their faith in the presiding deity before entering the temple.

I am not a particularly religious person but I went to Tirupati anyways. I enjoyed my visit there. I found the temple to be magnificent. I would recommend people visit it.

</comment></comment></comment><comment><USER4> Couldn't restrain myself about bragging about my own hometown temple, Sri Varadharaja Perumal temple in Vishnu Kanchi(Little Kanchipuram). One of the engineering marvels that has always captivated me is this chain carved out of Granite!. [https://www.flickr.com/photos/anupartha/12611096324](https://www.flickr.com/photos/anupartha/12611096324) And this temple is a treasure trove of such sculptures and other architectural/engineering marvels.

<comment><USER5> That chain is stunning. It seems this is a way for craftsmen to show off across cultures. Here it is in Chinese jade:

[https://www.jncohen.net/Chinese-Jade/Chain- vases.htm](https://www.jncohen.net/Chinese-Jade/Chain-vases.htm)

And American timber:

[https://www.instructables.com/id/Three-Ways-to-Make-a- Wooden...](https://www.instructables.com/id/Three-Ways-to-Make-a-Wooden- Chain/)

</comment></comment><comment><USER6> The observation that the author made about the _philosophical_ development of the idea of nothingness (shunyata) leading to the development of the zero (shunya) is very key. You can't have the latter without the former.

In Indic thought, it is common to talk about a set of items and then the null set - 1 pen, 2 pens, 3 pens and then no-pens or the absence of pens. This notion of the absence of something can be roughly translated as shunyata. Symbolically and cardinally that idea got translated to zero.

</comment><comment><USER7> Is it a fair analogy to say that zero is to numbers as vowels are to alphabets?

My understanding is the consonants came first, vowels later, as (Western writing anyway) transitioned from pictograms to alphabets.

<comment><USER8> Not really. In the case of vowels, spoken language always had sounds in those places; the innovation lay only in writing them down, rather than leaving them implicit. In the case of zero, the innovation lay in the concept itself.</comment></comment>


Challenge HN: Support Open Source Software - <AUTHOR> I don't think any of our startups would exist without open source software.  We use free operating systems, compilers, scripting languages, databases, web servers, content management systems... where would your startup be if you had to pay for all of these?  I think those of us with successful startups owe it to those who came before us to help out those who come after us.<p>Stripe supports open source software by running an open source retreat.  Tarsnap doesn't have unicorn-scale resources, but sponsors FreeBSD developer summits and the FreeBSD Foundation.  How does your startup contribute back? <comment><USER2> _How does your startup contribute back?_

Everything we do[1][2] at Fogbeam Labs is Open Source. And I mean, really, truly Open Source, not "faux-pen source". Our code is on GitHub, most everything is Apache ALv2 licensed, the issue tracker is public, and we use open mailing lists / IRC for project communication.

We try to avoid the "throw it over the wall" style of development in that sense. The biggest wart with our approach right now is that we don't have a lot of community collaborators who aren't part of Fogbeam, so there's not a lot of discussion with "the community". But that's because we haven't grown much of a community yet to discuss with.

We are also open to receiving pull requests / patches and don't ask for a CLA or any copyright assignment. The only expectation is that any contributions are licensed under the Apache ALv2 or corresponding license (which will always be a mainstream, OSI approved OSS license, not some weird license we make up ourselves).

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

[2]: [https://github.com/fogbeam](https://github.com/fogbeam)</comment>


Sales Emails from Great Companies - <AUTHOR> http://www.goodsalesemails.com <comment><USER2> What is so great about these? just reading the first few words makes me want to delete it. Also just because they are great companies doesnt mean their sales emails are the reason why. You might be copying a dud.

<comment><USER3> This.

I'm probably an old dude. Most of these seem cringy and unprofessional. If I get a professional email with a picture of a dog, as much as I love dogs, I immediately delete it.

This culture of mixing the professional and personal, of destroying all boundaries between your work persona and your other personas, is killing the work environment.

</comment></comment><comment><USER4> It's interesting, reading the first line of each one of these emails triggers a kneejerk reaction in me of wanting to instantly dispose of and delete this message. Even just reading them on this page! It's a psychological thing, I guess my internal spam filter gets triggered.

</comment><comment><USER5> Best of them all,

Hi, we recently touched base ....

no you didn't you sent me a spam email the day before.

or this one

I'm looking to connect with whoever is in charge of storage, backups and recovery. Are you the right person?

Please reply and let me know or feel free to forward this email thread to your colleague.

no, I don't think I will.

</comment><comment><USER6> Less interesting when you call it what it is: spam.

</comment><comment><USER7> Every time this site is shared, there's no discussion. [https://news.ycombinator.com/from?site=goodsalesemails.com](https://news.ycombinator.com/from?site=goodsalesemails.com)

<comment><USER8> There's not much to spur discussion.

This is a nice looking site, and the idea of collecting the mails different companies use in one place sounds good on paper. Unfortunately, what they ended up with is two dozen copies of the same mail:

"Hi __. I'm __ from __, we do __. When do you have time to schedule a chat?".

There's not much to be learned from seeing it repeatedly with different logos on top.</comment></comment>


Seeking feedback on a new site idea: HowIUse.it - <AUTHOR> http://jaxn.org/article/how-i-use-it

<comment><AUTHOR> I would have posted it as an "Ask NH:" post, but I had already posted about it.

The short of it is a site for sharing HOW to use software / services. Similar to <http://iusethis.com> but for people to share the ways that actually integrate these services / tools into their workflow / lives.

I also think it would be a great place for developers to share how they intend for their product to be used. Other people can comment and provide feedback.</comment>


Playing Atari with Deep Reinforcement Learning - <AUTHOR> http://arxiv.org/abs/1312.5602

<comment><USER2> A former coworker did his master's thesis on playing Atari games using RL. Here's a video of it learning to play Freeway: [http://www.youtube.com/watch?v=44CilPmlimQ](http://www.youtube.com/watch?v=44CilPmlimQ)</comment>


Ask N.YC: Are there alternatives to Braintree's remote credit card storage? - <AUTHOR>

I am building an app that requires recurring billing at somewhat unpredictable intervals. So, I need to find a service that securely stores credit card data.<p>Braintree offers such a service, but they require $100k per month volume. Do any of you know of an alternative? <comment><USER2> Many merchant service gateway providers offer recurring billing services and APIs. I haven't used it yet, but I'm pretty sure Authorize.net has this capability (I remember getting mail about it a few years ago). I'm not endorsing Authorize.net, but I suspect you can find many merchant gateways that offer this kind of thing.

</comment><comment><USER3> This service for subscription payment processing launched recently. I haven't tried it, but it looks interesting -- especially if one wants to get their subscription app out the door quickly.

<http://www.zuora.com/products/zpayments/index.html></comment>


jwz's resignation letter from Netscape & Mozilla - <AUTHOR> http://www.jwz.org/gruntle/nomo.html <comment><USER2> It's a strange feeling looking back at articles from the late 90s. It really makes me wonder what we'll think when we look back at today's tech news in another 8 years.

+1 for the reference to "javagator" - first time I've heard of it.

</comment><comment><USER3> A must read for people at Sun working on Solaris. Particularly:

"Open source does work, but it is most definitely not a panacea. If there's a cautionary tale here, it is that you can't take a dying project, sprinkle it with the magic pixie dust of ``open source,'' and have everything magically work out. Software is hard. The issues aren't that simple."

Although Solaris does work. Their problems are others, and yet, the situation is not at all that different from the browser wars.

<comment><USER4> Solaris is a great OS with a lot of great stuff crammed into it. Unfortunately, it no longer has the momentum. All the junior administrators and developers got their start with Linux nowadays. There are all sorts of shoddy bits within Linux, but at the end of the day, why try to jump from a moving train if you don't have to?

RIP Solaris... hopefully all of the wonderful parts will end up in Linux anyways.</comment></comment>