Mobile Website Speed Testing Tool - <AUTHOR> http://testmysite.withgoogle.com <comment><USER2> Dark pattern pet peeve once you complete the test. The options are either:

      Yes, send me my report and occasional emails with helpful
      tips on how to improve my online presence. Google may send
      me recommendations for certain Google products and services
      and contact me with further help and tips based on my
      TestMySite results.

Or:

      No thanks, I don't want to get my detailed results.

What if I want to get my results, but not subscribe to your marketing drip campaign?

Screenshot: [https://www.dropbox.com/s/csm6j5u9hq5wubw/Screenshot%202017-...](https://www.dropbox.com/s/csm6j5u9hq5wubw/Screenshot%202017-01-10%2013.32.32.png?dl=0)

<comment><USER3> The quid pro quo bit seems pretty standard and reasonable, annoying but reasonable

<comment><USER4> Yes it is.

But then again, providing the user with a unique shareable URL would be much better for the user.

And, this is just my own opinion[1], obviously, but, providing the best user experience possible, whether designing a new Internet browser or a new tweak to the look of the homepage is very important. It is wise to take great care to ensure that services will ultimately serve the user, rather than the provider's internal goal or bottom line. When building new tools and applications, they should work so well you don't have to consider how they might have been designed differently.

[1] well not really mine... [https://www.google.com/about/company/philosophy/](https://www.google.com/about/company/philosophy/)

</comment></comment></comment><comment><USER5> I ran it on a tiny static 99.9% text-only site that finishes loading in 0.15s, a full 0.1s of which is a 1.5KB creative commons graphic, and google knocks 9 points off on mobile because I don't defer the 8ms request for 374 bytes of CSS? Seems arbitrary.

<comment><USER6> > 374 bytes of CSS

Put it <style> tags in the <head>. No reason to use an external file for so little. It's not worth the overhead.

<comment><USER7> What size cutoff would you use for the <style> tag? In other words, at what point is the tradeoff worth it?

<comment><USER8> I think its around 30kb.

[https://www.smashingmagazine.com/2015/08/understanding- criti...](https://www.smashingmagazine.com/2015/08/understanding-critical- css/)

</comment></comment></comment></comment><comment><USER9> The PageSpeed Insights[0] tool is better. Less scrolling to see results, actionable steps to fix issues and no scroll hijacking. Also seems to scan websites quicker.

[0] [https://developers.google.com/speed/pagespeed/insights/](https://developers.google.com/speed/pagespeed/insights/)

<comment><USER10> This is just a pretty version more focussed on consumers with little tech background.

<comment><USER9> PageSpeed Insights has a banner stating to use this new option, indicating it will become the only option in the future.

</comment></comment></comment><comment><USER11> I find testing using these types of tools better, as it gives a real world performance metric (actual load times) [https://tools.pingdom.com/#!/dJNbUe/www.instapainting.com](https://tools.pingdom.com/#!/dJNbUe/www.instapainting.com)

<comment><USER12> You should try [http://mobitest.akamai.com/m/index.cgi](http://mobitest.akamai.com/m/index.cgi) or [http://webpagetest.org](http://webpagetest.org) instead for accurate results.

</comment></comment><comment><USER13> Speaking to some of the Google developers and the head of mobile web performance - not even Google use their own tool as a measure / benchmark for performance. PageSpeed Insights is both broken and convoluted at best.

\- No support for HTTP/2 \-- This means that if you follow all the "right" approaches for performance with HTTP/2, you'll be slapped with a terrible PageSpeed score due to it not taking into account the effect of multi plexing connections. \- Has constant bugs around determining the flow of assets on the page and thinks that assets at the bottom become render blocking when they do not

Google tend to use a combination of their own tooling + WebPageTest.org (which is also theirs) to test performance issues.

This tool is mainly geared at the non-developer type, but it's unfortunately misleading and just wrong. It doesn't measure speed, it measures performance methodologies and whether they have been implemented or not (and old ones at that).

The more important metrics are time to paint, time to domcontentready. Using WebPageTest will get you what you want. I find it pretty offensive and misleading that Google is using such a tool and promoting it to users, because frankly it misses the entire point of performance.

Things like this: "Eliminate render-blocking JavaScript and CSS in above-the- fold content" when you're running an H/2 site with an appcache and pushing assets is just downright wrong.

It's sad that there's a general miscommunication within the company about performance. Ilya Gregorik and co say one thing, and the rest say another.

</comment><comment><USER14> "withgoogle.com" looks like a phishing domain. What's wrong with subdomains?

<comment><USER15> Different security requirements. I believe anything under google.com is subject to quite strict rules.

</comment></comment><comment><USER16> I don't understand. Why not simply use PageSpeed where it tells you exactly what to fix to improve each aspect?

[https://developers.google.com/speed/pagespeed/insights/](https://developers.google.com/speed/pagespeed/insights/)

<comment><USER17> They seem to be in the process of replacing PageSpeed.

First:

> PageSpeed Insights has moved the User Experience test for mobile pages into > the Mobile Friendly Test

And then a bigger launch about this fancier version.

<comment><USER16> Mobile Friendly(MF) is worse than PageSpeed Insights(PSI) in every possible (perceivable) way:

\- PSI is fast. MF is slow.

\- PSI is general (mobile and desktop). MF is, well, for mobile.

\- PSI just asks for the site, gives you results. MF checks if you're a robot, you check a site, and checks again you're not a robot if you want to use it again.

\- PSI gives you exactly what's wrong with your site, which rules were broken, and _how_ to fix them. Which lines to add to your CSS. _Where_ to add them (deferring loading CSS if you want to, adding JavaScript), and gives you a score for each thing, if you change stuff you can look at your score improve. It then orients you to resources for additional reading. MF is binary: good, not good. Doesn't give you info. Doesn't give you actionable info. Gives you basically nothing.

I don't see _any_ reason to use MF (or for it to even exist under its current form and non-features) and every reason to use PSI. Then again, every time I discover a Google product, after a few days I have the misfortune of seeing a red warning telling me it'll be discontinued. It's happened many times.

</comment></comment></comment><comment><USER18> Looks like a nice skin on top of the existing PageSpeed tools

</comment><comment><USER19> Meh, they make you sign up with email to see full results.

</comment><comment><USER20> If it provides the scores I'm assuming it also has detailed information on how those scores were calculated. Why not provide the detailed results right away instead of collecting emails. Every time I see "Get Something Free" or something similar my bullshit meter starts peaking right away.

</comment><comment><USER21> Neat, I had it report on itself..

      DESKTOP SPEED 96/100 GOOD
      MOBILE SPEED 94/100 GOOD
      MOBILE FRIENDLINESS 100/100 GOOD

<comment><USER22> [http://www.google.com/](http://www.google.com/) gets 100 out of 100 for everything.

<comment><USER23> hahahaha, it looks like they hit their own captcha! [http://i.imgur.com/cnPWqwz.png](http://i.imgur.com/cnPWqwz.png)

</comment></comment></comment><comment><USER24> [http://imgur.com/tRkHsPA](http://imgur.com/tRkHsPA) They seem to be using chrome 27.

</comment><comment><USER7> Just tried it out, now waiting for the reports.

It'd be nice if they let me sign in with my Google account, so I can generate multiple reports without having to repeatedly type in my email. It seems reasonable to assume that anyone that uses a tool like this would likely have multiple pages or sites they'd want to check, no?

</comment><comment><USER25> I tested reddit (which I hate using on mobile), and it got a Poor 63/100 for speed while high marks for mobile optimization. I guess it's a perfect representation of many SPAs out there. Fancy JS frameworks that are built for mobile, but it takes 10s+ to load if you're not on Wifi/4G.

</comment><comment><USER26> Ironically this site does not work correctly for me on my phone. On the latest stable safari and iOS version the field to enter your email to get the report is missing. No ad blockers enabled etc...

</comment><comment><USER27> They say that more people surf the web on mobile than on desktop.

Does anyone has some more data on this? What do they include in 'mobile', also tablets?

I surf on my phone a lot but I still surf on my notebook as well, actually the entire day at the office

<comment><USER28> Have you considered this might include China, India, etc., you know, outside the US? :)

[https://www.techinasia.com/china-mobile-internet-users- stati...](https://www.techinasia.com/china-mobile-internet-users-statistics- behavior)

</comment></comment><comment><USER28> Dear Google,

Stripping metadata from images is _not_ optimization. Please stop recommending this.

</comment><comment><USER29> That site uses my speakers on mobile chrome. Does anyone know why?

<comment><USER30> It plays a video, even though it has no sound your browser will show a speaker icon.

</comment></comment><comment><USER31> Hm... It doesn't return anything for my site. It runs the tests, says 100% done, then returns to the home-screen without an input field.

Anyone else?

<comment><USER17> I had to disable my adblocker for it to not do that.

<comment><USER31> Hmmm. didn't seem to work for me, but thanks

</comment></comment></comment><comment><USER32> When you test google.com with this, you get captchas as a preview.

And I guess the captcha page is what this tests then.

</comment><comment><USER33> "Eliminate render-blocking JavaScript and CSS in above-the-fold content"

What does this mean exactly?

<comment><USER34> This means any CSS or JS that delays ("blocks") rendering of "above-the-fold content" (content you see immediately - before scrolling) should be removed or made non-blocking.

<comment><USER33> ahh ok got it thanks</comment></comment></comment>


Lego Ideas (Kickstarter for Lego sets) - <AUTHOR> https://ideas.lego.com/

<comment><USER2> I really wish Lego made the parts, let us order whatever parts we need, and then show our creations on their site.

Not the other way around.

Maybe this is reflecting the state of our society - we just like to see a cool brand, buy pre-made things and follow the instructions.

But I tend to believe there's a master builder in all of us that Lego can unleash, if they have the guts (not so subtle Lego movie reference, check).

<comment><USER3> I think at one point they had plans to do this and anybody would have been able to create and sell sets. This would have been amazing. I think they have changed their mind since, years have past and they now use a kickstarterish system for electing user-created models that are made available to the mass market. Not quite as exciting, but still forward thinking.

Of course you can use their designer tool to create models and order them yourself, but it works with a limited range of parts.</comment></comment>


Boycott Docker - <AUTHOR> http://www.boycottdocker.org

<comment><USER2> A lot of the info here is straight-up wrong. The author is misinformed about so much that it's hard to take his/her argument seriously.

<comment><USER3> could you be more specific? what exactly is he misinformed about?

<comment><USER2> I'll pull out only one because I don't care much about making this argument:

> _OS running Docker becomes DockerOS. It is not UNIX-like OS. All you default > standard commands like ps, ls, find, netstat, sockstat, tail and similar are > useless here. You have to learn all that bunch of yet another new commands > with totally different behaviour._

Those commands work fine. You just have to connect to the Docker container in some cases. In others, the output is different, but what's what you want/expect.

The main issue with this site is not the factual inaccuracies, but that the author doesn't understand what Docker can/should be used for. It's not a drop- in replacement for VMs. It's not for people who can't use the latest kernel or their choice of OS. It's also not for non-Linux (production) machines.

I understand what Docker is and isn't, and I use it accordingly. Everyone should understand their tools and make a decision for themselves.

As a frontend container management, Docker is amazing. As a replacement for VMs, it's sometimes much better and sometimes much worse.

<comment><USER3> so, what is Docker then? I ask you since you understand.

<comment><USER2> As far as I've used it (which is just Docker, not the other tools in their ecosystem): it's a mostly-baked, not-very-secure way to reliably, repeatably deploy multiple code bases to a single host.

I use it for development, instead of Vagrant or something. Since Docker runs my existing setup scripts, I can still have a close-enough production server set up in a few minutes.

The holy grail is to be able to use Docker for production, but I'm just not there yet. I haven't done enough research into various security practices, and what I've seen so far is not reassuring.

It's still early in Docker's lifecycle, so I'm not worried about the parts that aren't 100% complete.

<comment><USER3> thanks for the answer!

</comment></comment></comment></comment></comment></comment><comment><USER4> You might want to add this blog post : [https://t37.net/is-docker-ready-for- production-feedbacks-of-...](https://t37.net/is-docker-ready-for-production- feedbacks-of-a-2-weeks-hands-on.html) to your see also section.</comment>


Michigan Just Passed the Most Permissive Self-Driving Car Laws in the Country - <AUTHOR> http://fortune.com/2016/12/09/michigan-self-driving-cars/ <comment><USER2> No shock there; cars in Michigan are like gambling in Nevada, or dairy in Wisconsin.

<comment><USER3> But self-driving cars ultimately means that _fewer_ vehicles will be sold, thereby working _against_ the interests of auto manufacturing/sales.

Of course, Michigan's share of auto manufacturing is constantly spiraling downward.

<comment><USER4> You missed the part of the laws where only car manufacturers can provide self- driving taxi services.</comment></comment></comment>


Steve Jobs: Android is a Stolen Product - Suraj-Sun http://hosted.ap.org/dynamic/stories/U/US_TEC_STEVE_JOBS_BOOK

<comment><AUTHOR> The story's link doesn't work for me.</comment>


Ask HN: I've got 3 months of long weekends.  What should I build? - <AUTHOR>

Hey, My wife and kids are taking an extended trip overseas.  I have organised to take 1 day a week of work so that I can spend some time on personal projects.  My current idea is to try building 3 small projects, spending a month on each and blogging the results.  Each project should:
* Be capable of producing a small, continuous income stream, with only minimal extra investment once it is complete.
* Be small enough to complete in a month of long weekends.
* Have some easily measured metric, that I can track, and use to iterate and improve my work (pageviews, downloads, purchases, etc)
* Require only a small upfront investment in cash.
As for my skills I have 10 years experience in software development, can design, write and take photos. The current projects I'm considering are:
1. 1 month of stock photography, uploaded to a site like http://www.istockphoto.com/
2. Creating themes for magento, or some other e-commerce  or CMS platform
3. I have an existing website that sells products over the net ( http://www.grafting-tool.com/ ), however it gets very few customers.  Spend a month trying to increase the pageviews and page rank.
4. Android application to allow people to sort through their photo collections on their phone.
5. A solution to link Google analytics conversion tracking with paypal buy now buttons.  I spent ages working on this on my own website and there is no easy off the shelf solution.
What are peoples suggestions and experiences with side projects?  Is there anything I should be looking at?  Or avoiding?
I hope to share my experiences with HN, so in just over a month, I will have my first success, or failure to report.
Edit: formatting. <comment><USER2> You need to figure out who will pay you money. To do that you need to go talk to clients. Thats the hard part. Ie figuring out the problem.

Implementation is straightforward because you already have a timeline for it. :) (Seriously!)

Steps: * choose your best 3 ideas

* create mockups for each

* find customers for them - linkedin, twitter, blogs, google, your fb friends.

* interview them and see if they will pay for a solution.

* select your strongest idea

* tweak it with feedback

* Implement a simple solution and iterate

Dont be surprised if by the end of the month youve just looped through all these steps!

<comment><AUTHOR> Hmmm, I think options 4 (android photo management app) and 5 (Paypal to google analytics integration) would be very well suited for that approach. Perhaps I should spend the 1st month on one of the other options, while trying to talk to potential customers for option 4 or 5 as a background task.

<comment><USER2> Focus on one. Focus on the one that will have immediate users. (You'll hate working on an app with no users.) And one that people will pay to use. (Because thats your goal.)

Best of luck.

</comment></comment></comment><comment><USER3> I vote for 3. You already have a product that you need to promote. However, boosting your page rank? Page rank is 4 and you're already number 1 in google for "grafting tool". Are you sure you have a pageview and pagerank problem?

Maybe you want to rank for gardening tools as well? Create some content on the website to increase your ranking for long tail keywords, and participate in gardening forums and communities would be a start (building backlinks at the same time).

<comment><AUTHOR> Thanks for the feedback! But are you sure your not just seeing me as number 1, with your own personal google goggles? When I search from a new browser, with no cookies I actually appear down the bottom of the 1st page. At least here in Australia. Where are you located?

As for PR 4 - wow! When did that happen. Last time I checked it was a big fat 0. Guess google has updated their index.

<comment><USER4> Showing up #1 for me too :)

Where in Australia are you based?

<comment><AUTHOR> Melbourne.

Well, this certainly makes me re-think my strategy. Here I was thinking I was getting no hits, because I was down the bottom of the search results, while it turns out I am #1 across most of the world!

Unfortunately pageviews and conversions are still terrible. I just need to figure out what to do about it.

<comment><USER4> There was a refresh in Pagerank a few days ago.

Maybe turn the front page into a longer form sales pitch? How many sales are you doing?

<comment><AUTHOR> At the moment: not many sales at all. My last one was 3 weeks ago to the day! However its very seasonal - during winter in the northern hemisphere, I will get 1 or 2 a week.

Thanks for the suggestion on the front page.

</comment></comment></comment></comment></comment></comment><comment><USER5> First two seem over populated.

Third seems like a solid idea if your research shows there is potential there

Fourth also seems solid, but gotta look at your competition (and why wouldn't a big player do that?)

Fifth seems like a for sure if it meets a need you have found to be unaddressed...

<comment><AUTHOR> For the 4th option (android application to sort photos on phone), last time I looked (about a month ago) unfortunately, there was nothing. Specifically I'm after something that allows me to keep my photo library on my main PC, in something like adobe lightroom, or picassa, then flag and tag photos on your mobile. There are plenty of photo apps out for android, but nothing to help your organise your primary photo library, if its stored on a PC.

</comment></comment><comment><USER6> The first 4 seem a little unoriginal (perhaps that doesn't mean non profitable!)

The last option seems generally different and you may have found a small little niche which is going to be you goal. I would just work on that for one month then reassess.

<comment><AUTHOR> Hmmmm, that seems like solid advice. I think google analytics to Paypal buy now button integration is something people would pay $20 to $30 for, if it was a simple .php file people could drop into their web server.

Some sort of hosted solution would possibly be easier for people to use, but then I would have to charge a subscription fee. But then, people using paypal buy now buttons are generally too tight to pay for a proper hosted shopping cart or hosted e-commerce platform (I should know :)

</comment></comment><comment><USER7> The fifth - isn't that a simple "onClick" event? Or are you doing something more interesting and complex?

<comment><AUTHOR> If only it was that simple! Last time I checked, there were several solutions to integrating buy now buttons with google analytics conversion tracking. Each one 'almost' works, but fails to track some percentage of conversions. The net is littered with posts from people trying to solve the problem.

The 'correct' solution, is that paypal can callback to a URL at your site with details of any completed transactions. You need to run a script at that URL, that will put HTTP request through to googles tracking servers, pretending to be the customer. The trick is matching up the information received back from paypal, with the customers browsing the site and spoofing the request to googles tracking servers.

I believe a consultant wrote a blog somewhere explaining how he implemented it for a client. When I looked it, it would take about 3 or 4 days of effort to code up a solution.

</comment></comment><comment><USER8> #1, 2 & 4

</comment><comment><USER9> I vote for 2.

If you are able to create an original theme that offers something new to designers and developers (who are the main customers of premium themes) you can make thousands of dollars in only a couple months. Study the themes with several sales to see what they have in common and incorporate those things into your own theme.

It's also a great opportunity to find customers looking for support and outsourcing.

<comment><AUTHOR> Really. This is very interesting - it definitely goes against the grain of what other commenter are saying. Don't you think the theme market is over saturated?</comment></comment>


Fast Ruby – A collection of common Ruby idioms - <AUTHOR> https://github.com/JuanitoFatas/fast-ruby <comment><USER2> I would advise against concluding anything with < 20% gain, the changes often impacts readability (the intention becomes less clear) and might as well be measurement errors or just be insignificant for any sort of real application. Not to mention, of course, these measurements are specific to a given system, implementation, etc.

<comment><USER3> Generally I agree with this thinking, but a number of the idioms in this repo (respond_to? rather than begin/rescue) do have a fairly significant perf benefit _and_ are easier to read. And some of the other lessons, like "don't use method_missing if you can define a method instead", are well worth considering as well.

<comment><USER4> A minor nitpick:

> And some of the other lessons, like "don't use method_missing if you can > define a method instead", are well worth considering as well.

I'd argue that this one also falls into the category of "simpler/more readable _and_ , incidentally, more performant".

When defining methods you get the correct behaviour of respond_to? for free, whereas when overriding method_missing, you also have to take care of defining a corresponding respond_to?.

The main reason for choosing def/define_method over method_missing (when possible) should be that it is generally simpler to do so.

<comment><USER3> Depends on which way you look at it, I think. Like, when building a DSL, I generally take my inputs and do the work up front to use define_method--but I know people who feel that it's simpler to just use method_missing and check against some bit of data here or there. The perf argument isn't going to change their minds overnight, obviously, but I think it helps to make sure you have _all_ the information.

</comment></comment></comment></comment><comment><USER5> Shouldn't _some_ of those items be opened as a ticket to Ruby 2.x and standard library to ask them for a faster implementation?

<comment><USER6> Yes a lot of these can be solved - JRuby+Truffle for example removes the overhead of at least parallel assignment vs normal assignment, define_method vs def, send vs normal send, Proc#call vs yield.

Some of the others though, such as Array#bsearch vs Array#find, are just algorithmic complexity and not the fault of the implementation.

</comment></comment><comment><USER7> Really nice project, and there's a lot to learn from it.

But I think if your choice is ruby then you are putting clean code above micro optimizations. And it often pays off.

<comment><USER8> Most examples aren't really about micro-optimizations. They're more about calling the appropriate method in the first place (count vs. size/length, gsub vs. sub/tr).

</comment></comment><comment><USER9> Choose readability over speed unless speed is a problem.

</comment><comment><USER10> I like to visualize code quality as a point on a triangle with corners labeled "readable", "extensible", and "performant." Most of what is considered "low- quality" code is biased towards one side of the triangle, and most code quality advice tends towards over-correcting that bias towards another corner of the triangle.

What I love about this presentation is that it's not _advice_ \-- it's a collection of tools for your perusal. Use at your own discretion. A lot of quote-unquote "high-quality" Ruby code I've seen is either biased towards readability, biased towards extensibility, or sitting somewhere on the edge between the two. So I really do think every Ruby developer should at least glance at this collection and be familiar with it.

</comment><comment><USER11> If you are writing Ruby you already decided you didn't care about speed.

Don't get me wrong, I think Ruby is a great language and I use it every day to get paid, but it is not a speed queen. Ruby's strengths lie in flexibility, fast iteration, readable code and permitting a functional style.

In most practical web applications the big bottlenecks will be either view rendering or database. Choosing to put any focus at all on performance of something like parallel vs serial assignment (unless you are doing something truly pathological) is a complete waste of time.

It will have no noticeable difference to the end user and distracts from the far more important job of making your code modular, extensible and readable.

If need your code to be fast and you are running Ruby, you already lost. Use Java or a compiled language instead.

</comment><comment><USER12> This is neat! I think the "why" section thats on some of them is the most valuable part, absorbing that "why" into your lizard brain can add up to huge changes in your natural style :)

</comment><comment><USER13> In situations where it's unlikely calling a method will result in a NoMethodError, i prefer rescuing the exception over checking if the method exists first. This will be faster when it does not result in a NoMethodError.

In the "Enumerable#select.last vs Enumerable#reverse.detect" benchmark it would be interesting to know what the result of Enumerable#reverse_each.detect would be.

</comment><comment><USER14> I'm surprised at the speed difference between parallel and sequential assignment styles. I prefer the sequential, so that's a nice bonus that it's also more performant.

<comment><USER15> Hi! Actually the speed difference between parallel and sequential assignment styles was not correct. Please read more details here: [https://github.com/JuanitoFatas/fast- ruby/pull/50](https://github.com/JuanitoFatas/fast-ruby/pull/50). Thank you.

</comment></comment><comment><USER16> Awesome comparisons. Extremely good to know. Would love Rubinius on Linux, and comma delimited or underscore delimited results. Maybe I'll run an post those that way.

</comment><comment><USER17> This is a great collection, but any listing of microbenchmarks needs a caveat.

Consider the first example, parallel assignment vs sequential assignment. As we can see by the results, parallel assignment is 2.25x slower, which seems like a monumental impact to performance, right? If all your application does is assign a few variables and exit, sure, but very few applications are this simplistic. In order to make a good judgement call on this optimization, you have to understand the impact within the context of your application:

What is the total execution time of your application?

What portion of that execution time is spent on assignment?

What portion of that execution time is spent on the extra allocation of an array due to parallel assignment?

At the bottom of the benchmark, we can see the iteration rate for each. Parallel assignment managed a rate of 2521708.9 iterations per second. We can work out the total execution time per iteration from this number:

Single iteration as a fraction of a second: 1/2521708.9

In decimal form: 0.000000396556478 s

Converted to milliseconds: 0.000397 ms

The same conversion for for parallel assignment gets us: 0.0001758783 ms.

In each iteration, we save 0.0002206782 ms.

Circling back to my list of questions, what is the total execution time of my application? If my app uses an I/O calls — and especially network I/O — it could be hundreds of ms. At this delta, it would take over 4,500 iterations of this optimization to achieve an improvement of 1 ms. If we're talking about an operation that occurs locally and is 100% in-memory, execution times may be <50 ms, at which point, you'd need around 2,250 iterations to get a 1 ms improvement.

At this point, I have to tattle on myself. This is an obtuse method of analysis. Microbenchmarks are hard, and at the i/s rate we're seeing here, there could be confounding factors that the author (and I) haven't accounted for. Things like garbage collection and object caching will have an impact at these time scales. Also, we have to ask whether our microbenchmark reflects reality? What real world application repeatedly assigns literals to variables millions of times per second? Extrapolating any meaningful decisions from the microbenchmarks alone is a fools errand.

The lesson is that microbenchmarks can only tell you so much. A comprehensive approach to optimization involves looking at the total run time and apportionment of time in an actual application. This process is called profiling, and the tools for profiling Ruby applications have improved in recent times.

Looking at the parallel vs sequential assignment difference, what you really want to know is whether parallel vs sequential assignment is impacting _your_ application, and to what degree. Profiling tools will tell you where your application spends its time, and where it's allocating memory. This tells you where to look. Microbenchmarks will tell you which idioms you pay a penalty for. The combination of the two allows you to make smart decisions.

If you have a a parallel assignment wrapped in a loop that will execute hundreds of thousands of times every time your application runs, this will show up during profiling. Moving to sequential optimization will likely pay dividends. Otherwise, the penalty paid for parallel assignment is probably minimal. Profiling is a good way to tell the difference.

</comment><comment><USER18> Good job. It would be nice if benchmarks could be arranged by the gains in ascending order.

</comment><comment><USER19> Is there a similar collection for other languages, like Python?

</comment><comment><USER20> Super interesting... thanks!

</comment><comment><USER21> Good read!</comment>


Ask HN: What will be the future of java? - <AUTHOR> I'm Java developer for many years , with the Latest things going on with Oracle and red hat and many other side story's going on with Java licensing.
I'm really don't know what will be the future in the Enterprise and others does Java will be valid still in about 10 years ?
What do you think ? <comment><USER2> If you've focused solely on Java, you might consider diversifying. It will help you look at Java in a new light and likely improve your skill with it, but also make your career more flexible.

Take a look at Go. It's a very different experience than Java, but still statically compiled. The Go experience is very minimalist compared to the rococo experience of Java.

Take a look at Ruby, Python and Javascript. These are dynamically typed languages that challenge many of the orthodoxies of Java, and yet are very successful.</comment>


Wireless Arduino Powered Chess - <AUTHOR> http://www.youtube.com/watch?v=dX37LFv8jWY

<comment><USER2> Imagine the potiental, using an iphone or android to connect users from around the world to a seemingly physical chess match. As a chess lover I think this is amazing</comment>


Apple iPad - <AUTHOR> http://www.apple.com/ipad/ <comment><USER2> I am surprised that many of the comments so far are the equivalent of "No wireless. Less space than a nomad. Lame."

I'm excited at the very distinct deviation this is taking from the keyboard/mouse/monitor paradigm in something other than a strictly portable device. I think the OS looks pretty damn good and I can't wait to try using one myself.

<comment><USER3> How can people be saying that it doesn't have wireless? It clearly has both Wifi, and 3G just like an iPhone.

<comment><USER2> [http://apple.slashdot.org/article.pl?sid=01/10/23/1816257...](http://apple.slashdot.org/article.pl?sid=01/10/23/1816257&tid=107)

<comment><USER4> To be fair, the original iPod _was_ pretty lame.

It worked fine, but it wasn't especially cheap and it _only_ worked with a relatively late model Mac. And in 2001, this meant something like 95% of computer owners wouldn't be able to put any music on it.

<comment><USER5> True, but I can still fit most of my music on a single original iPod, carry it around in my pocket, and use the cool wheely interface to navigate through it, which is loads more convenient than what everyone else did in 2001 (either listen to one CD all day, or carry around a binder filled with CD's on a long road trip, or carry the equivalent of one or two CD's around on a Rio).

</comment></comment></comment></comment></comment><comment><USER6> I wonder if the folks at Delicious Library are upset about Apple's new 'iBooks' app, that essentially looks the same as theirs.

[http://www.delicious- monster.com/images/librarypage/screensh...](http://www.delicious- monster.com/images/librarypage/screenshots/Delicious-Library.png)

[http://images.huffingtonpost.com/gen/136360/thumbs/s-IBOOKS-...](http://images.huffingtonpost.com/gen/136360/thumbs/s-IBOOKS- STORE-large.jpg)

<comment><USER7> <http://twitter.com/wilshipley/status/8289792566>

<http://twitter.com/wilshipley/status/8290423381>

<comment><USER8> Ugh. Very lame on his part. His company doesn't magically hold exclusive rights to a bookshelf with books on it. Thankfully he realized that iBooks and Delicious Library are completely different products.

<comment><USER9> Well, I think there is doing something, and then doing something very well. Delicious Library did the bookshelf thing very well, and the iBooks thing seems to do it very well in a similar way.

I'm not saying he has a legal bone to pick or anything, just that he is allowed a tweet or two to _hrmph_ about it.

<comment><USER8> Delicious Library is for cataloging your media and books. iBooks is iTunes but for purchasing books. Pretty different purposes.

</comment></comment></comment></comment></comment><comment><USER10> After seeing the iPad, I wonder if the JooJoo (CrunchPad) will even make it to the market.

<comment><USER11> If they can price it right (and don't lock it down), I think it'd be interesting as a low-priced/more-open alternative to iPad.

In effect, JooJoo could run the iPad success in sense it doesn't have to explain what it does - "it's like iPad, just <whatever>".

If iPad gets traction, I'm sure it'll provide an incentive for other companies to follow. JooJoo is perfectly positioned there because they (supposedly?) already have a working device.

<comment><USER12> According to the official JooJoo website (thejoojoo.com), the JooJoo is priced at...$499.

Uh-oh.

</comment></comment></comment><comment><USER13> This is the interesting page from there: <http://www.apple.com/ipad/specs/>

"1024-by-768-pixel resolution at 132 pixels per inch (ppi)" Sounds like a nice display.

<comment><USER14> And it's IPS!

<comment><USER15> The way Wikipedia describes IPS it has a better viewing angle but uses more power. Is this the gist of IPS or is there more?

<comment><USER14> +more accurate colors and no color shift with the viewing angle change. Pretty much the best type of LCD. Usually you find IPS in the best monitors, and I am not aware of any notebook with IPS screen.

<comment><USER16> While I will never buy a screen that isn't IPS for my computer, I question the necessity of it in this device. IPS makes a great marketing point and will make it look really shiny during demos, but I think it is the wrong tech for this device for day to day use. If I had to choose between colour accuracy and battery life, I'd much rather have the battery life. It's not like I'm going to be editing photos for print on the iPad.

<comment><USER14> My guess is that the viewing angle was a deciding factor there. While on notebook you can adjust the screen so it is at useable angle this is not an option for a tablet with no support. IPS matrix gets rid of that problem.

<comment><USER16> I don't know what kind of screen my IBM x41 has, but viewing angle has never been any sort of problem when using it in tablet mode.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I'm going to hold off my criticism until I spend more than 20-30 minutes with it and see how well it fits my ideas of what a device like this should be. Knowing Apple, their product design and eye for aesthetics, I wouldn't jump to conclusions based on specs and photos of it.

</comment><comment><USER18> I am underwhelmed. I think they might have missed the mark on this product or there are a lot of things they didn't discuss in their presentation today!

Multi-tasking? Flash?

<comment><USER19> How would you do multi-tasking, while promising ten hours of battery life?

<comment><USER20> Perhaps he values multi-tasking more than having ten hours of battery life.

<comment><USER21> I think the point is that the consumers Apple targets would value 10 hours battery life over multitasking. Engineering is all about trade offs, and if Apple were to deliver everything the geeks wanted (OSX, Flash, multitasking), then Apple would end up with an overpriced, slow, thick, hot, sluggish, power thirsty tablet that would only appeal to computer nerds.

</comment></comment></comment></comment><comment><USER22> No integrated notes/sketches/diagrams? An odd oversight for a form-factor so perfectly suited to it.

No mention of free-form annotation of documents/images? Another weird omission for a device seemingly _built_ to free people from the limitations of traditional mobile interaction.

An _iWork_ suite and kickstand/keyboard peripheral? That's positively _Microsft-ian_.

A tri-fold leather folio _kickstand_? Alright, now we've steered directly into _Sharper Image_ territory.

Seriously, what in the world just happened?

</comment><comment><USER23> I like it...but it's a USB client rather than a host. That's a hard pill for me to swallow. I suspect I'll be getting a competitor's model with somewhat inferior aesthetics and for maybe $100 less. I admire the product (and especially their pricing, which was a surprise) but it doesn't arouse real gear envy for me.

TBH I was hoping for haptic feedback and a webcam, or host connections that would allow it to work as a generic console for other devices - which would have driven the entry price to $800 or more, but felt really revolutionary. Apple will do well out of this, but the competition is coming up a lot closer than with the iPhone, where it was unarguably the best of its kind for a long time.

<comment><USER24> Has at least some USB host capabilities, as you can plug a camera into it.

</comment></comment><comment><USER25> The iPad will support the Apple Bluetooth Keyboard, as well as VGA output from the dock connector. This could be interesting.

<comment><USER26> I saw that it has bluetooth, but I haven't seen anything about it supporting the Bluetooth keyboard... source? (Or does the bluetooth keyboard work with the iphone now?)

<comment><USER25> <http://www.apple.com/ipad/design/> under the "Accessories" heading.

<comment><USER26> Okay, that is pretty nice.

</comment></comment></comment></comment><comment><USER27> Pure speculation, but I wonder if they got that $29.99 unlimited plan out of AT&T with no contract in exchange for keeping the iPhone exclusive...

<comment><USER28> Maybe, but not necessarily. Each new type of communication device threatens old revenue streams of Telcos. Broadband/skype threatens long distance, 3g threatens voice minute/SMS, but...

Overall, I think the total amount we spend on communication is going up like mad. 10 years ago a sophisticated 5 person household had a landline phone, a mobile phone and a dial up account or maybe a DSL. Today they have the phone, 5 mobiles(some of them expensive ones including lots of 3g acess), a home broadband connection (network) and now they're looking at adding some other device/plan package (Tablet, netbook, etc.).

As a rule, they don't really care that much about providing cheap additional services. They care about cannibalising other stuff. This isn't likely to replace anything. Apple is a good partner for avoiding skype-over-3G, tethering or some other antisocial behaviour.

</comment></comment><comment><USER27> Magical? Sure. Revolutionary? It's a giant iPod touch.

If this thing does sell, coupling it with 29.95/unlimited 3G on AT&T should do wonders for the network.

<comment><USER3> Yeah, ATT is already overloaded. Offering unlimited access so cheaply will bog it down even more. I hope AT&T will be beefing up their network over the next few months.

<comment><USER22> (relatively) no-one in America is going to choose to spend $130 more up-front just for the pleasure of being ill-served by AT&T's data network.

That whole 'service' is a non-option in the US. At least until the iPhone is available elsewhere and AT&T's network load lessens.

They've dragged their feet for 3 years to update the network for the wildly successful iPhone. I doubt the iPad will push them any faster.

<comment><USER3> I agree, but it really is unfortunate that AT&T can't get with it, because unlimited wireless access for $30 a month isn't a bad deal at all, unless of course, it is really slow and unreliable.

</comment></comment></comment></comment><comment><USER29> Call me naive but I think my productivity problem can be solved now. I'm thinking to get an iPad just for the email, HN and notes. That is, not check email on my _work_ computer but rather go to iPad whenever feeling the itch to check email/HN and etc. Not sure, but excited to try that idea ;)

<comment><USER30> If that's really your desire, you could have gotten a cheaper netbook a long time ago. On the other hand, if you happened to buy an iPad and wonder what to do with it, then your idea might come in handy.

<comment><USER29> Panache, my friend ;)

</comment></comment></comment><comment><USER31> I call it le iMerde.

The main point for me is how Apple did come up with a such low resolution (1024x768@132ppi) for a screen that you hold so close to your eyes? The technology is there for much higher density screens. I was expecting Apple to lead the way.

There is nothing that machine do better than any laptop out there (notebook, laptops, etc.) And it's the keypoint of the Steve keynote.

It's a luxury machine designed to spend (and possibly waste) time and money by being entertained and by buying more, more and more instant gratification items without having a direct control of your expenses.

Kudos to Apple to be the best player in this category but it's not a tool for people creating stuff.

<comment><USER32> I have to wonder if it is perhaps due to the resolution of the iPhone. As I understand it, most iPhone apps are hardcoded to the iPhone screen size, so if Apple wanted to reuse iPhone apps on the iPad, it would either need to use an itty-bitty screen or resize the display.

1024x768 is the smallest standard 4:3 resolution to fit a doubled iPhone screen, which is 320x480, doubled to 640x960. Hardware support for pixel doubling could be faster and use less power than scaling a textured 3D quad. But regardless of how the scaling is performed, an integer multiple will probably look better than scaling to an arbitrary size.

One undesirable artifact of doubling the iPhone screen on a 1024x768 screen is that it would have borders all around the edges. And this is precisely what we see on their demo page. <http://www.apple.com/ipad/app-store/>

<comment><USER33> The border does leave space for "out-of-band" touch areas, like the one to toggle scaling.

</comment></comment></comment><comment><USER34> I'm surprised at the lackluster 3G options. If I can't tether my iphone to this - and the existence of a 3g model, combined with notable omission of any talk of tethering certainly points to a resounding no - why would I have an iphone rather than a rooted nexus one or Pre, which I could tether via wifi?

If I were Google/Palm, I'd work hard to get official, viable 3G->WiFi AP tethering working by the time the iPad ships. Then advertise it far and wide.

I understand Apple/AT&T want the revenue from an additional data subscription, but the option of saving $130 up front + $30/mo. is a pretty strong case against going all Apple, at least for me.

</comment><comment><USER35> I find it really strange that they advertise 720p playback, but they didn't give it a 720p screen. I would expect the device to have a 1280x720 resolution display (like some netbooks) instead of a 1024x768. I'm not sure what their target user is, but I guess one who watches HD video isn't it. Still, it does look interesting.

</comment><comment><USER30> My feeling is that it is fairly non-essential. But the same holds for the iPod, and they sold loads of them. So it seems possible they might find buyers for the iPad, too. The price is OK.

I guess the real need it is filling will be "I really want to buy something right now, but I already own everything I need".

</comment><comment><USER36> With Skype and a Bluetooth headset, this will be cheaper than an iPhone!

<comment><USER37> This was my thought as well. Any one know about push?

<comment><USER33> Since the iPod Touch supports push (as long as it's on a data network), I would be shocked if they left it out of the iPad API.

<comment><USER37> Really? I use a Touch daily and Skype doesn't push. Of all applications, I think they would if they could.

</comment></comment></comment></comment><comment><USER38> This is going to do to netbooks what the iPod did to CD players.

<comment><USER39> Netbooks cost 50-60% less, so they're pretty safe.

<comment><USER40> Find me a CD player that costs $250.

<comment><USER41> [http://www.benzworld.org/forums/sale-trade-wanted- items/1436...](http://www.benzworld.org/forums/sale-trade-wanted- items/1436753-mercedes-benz-audio-10-dash-cd.html)

</comment></comment></comment></comment><comment><USER42> Am I the only one who was expecting a killer feature that they don't seem to have? The calendar looks like it'd work well, and iBook would be decent at the right price, but much of the rest is basically "like a big iPhone."

I was expecting them to dominate the textbook market with live-updates to etextbooks at an affordable price, annotations, social annotations, digital bookmarks, etc. If tertiary students are having to spring $100ish/book and buying x books/year, then blowing $500 on something to cart around campus might be an easier decision.

No real play at sketching or note taking either? Might not be as easy as it should be (always gave up on handwriting recognition with an old Dell handheld) but they could've included it I'm sure.

And after seeing a proof of concept of a multimedia version of Sports Illustrated, I was positive that Apple would take a crack at magazines and newspapers with an app-type store that handled subscriptions, editions, upgrades, premium/sealed sections, easy sales and links direct from magazines, etc.

The price is good and I actually could make use of this (replacing my iPhone for basically browsing the net at home on the couch or in bed, playing Freecell, etc) but I am very surprised that there's not more to it.

</comment><comment><USER43> lack of front facing/any camera mystifies me

<comment><USER4> Well, you'd look ridiculous trying to point the thing at someone to take a picture. And the truth is that hardly anyone really wants videochat.

<comment><USER44> In my experience, people want videochat to look at their grandchildren.

<comment><USER22> The question is: are there a lot of them itching to spend several hundred dollars to do that via a wireless picture-frame in their lap?

In my experience those people are reasonably well served by sitting down at a PC with a webcam.

<comment><USER45> You can of course see your grandchildren via the iPad if they've got a laptop or desktop camera, it's the person with the iPad that won't be seen.

</comment></comment></comment></comment></comment><comment><USER46> Last time I looked at an iPod touch, I said, "What is this? A computer for ants?!?! It has to be at least ... three times that size."

</comment><comment><USER47> Well. At least they didn't call this OS version 4.0.

Can't wait for WWDC '10 to see a new OS with a better interface (at least for the iPad).

<comment><USER47> And, I think they'll add background apps in the new OS. I think the hardware (on the iphone as well) is ready to handle the load.

<comment><USER48> Some jailbroken firmwares out there already support backgrounding.

<comment><USER47> Yeah, but a good number of people don't know how to jailbreak their devices or simply don't want to do it. So, I am talking from their perspective.

</comment></comment></comment></comment><comment><USER49> Was disappointed by lack of multitasking. Already ditched my iPhone for Android, and the difference is huge.

Is this going to be another thing with Apple like the single mouse button? Seems like they are really trying to stick to their guns. I mean, why would anyone want to use more than one app at a time right?

</comment><comment><USER5> If this thing can store and play arbitrary video files (to the limit of Quicktime's capabilities) and gets an app for Netflix streaming, I actually think it'll be extremely useful for me in that I can finally separate my entertainment machine from my work machine. It looks like it's only MPEG-4/H.264 friendly, but that may be enough if that becomes the standard. (Letting it somehow play DVD's--even with just a "DVD dock"--would be helpful as well, but I have a laptop fully capable of converting DVD's into H.264 anyhow.)

My suspicion is that next year's iPad will be the one to push the concept over the top for me. Though it's already compelling as an ebook reader and part time laptop replacement, one more iteration will seal the deal.

</comment><comment><USER50> I can't help but wonder if this thing is related to Amazon's wild success with the Kindle.

Jobs never saw a consumer market he didn't like. Certainly if I was given the option to go with the Kindle or an iPad, my choice would be clear - I want the device with more functionality. The Kindle DX is the same price as the iPad, with a slightly smaller screen.

Kindle killer? Time will tell.

Edit: At the Kindle DX price point the iPad does not provide 3G access though. And that's one of the biggest selling points for Amazon's device.

<comment><USER51> There are a few major differences, though. The Kindle battery lasts for something like a week of use with the wireless connection ON (Apple claims 10 hrs for iPad). The other big difference is e-ink; the display works well in bright sunlight, and is easier on the eyes than a backlit LCD at night.

The Kindle has proven to be far superior to smartphones and laptops for reading large amounts of text. The iPad will be more versatile, but i'm not sure that's as important, since laptops and iPhones are already pretty versatile.

</comment></comment><comment><USER52> I'd really like to see limited floating licenses for all the apps I bought on my iPhone, similar to the way DRM from the iTunes store works. You can authorize 1 iPhone and 1 iPad per purchased application. Maybe use Mobile Me to sync settings.

</comment><comment><USER53> I'm surprised there's no way to write on it, like an oversized Newton!

EDIT: Also, are there any new on support for arbitrary pdfs under iBooks? I have a gazillion articles for which the iPad would be perfect.

<comment><USER54> <http://tenonedesign.com/sketch.php>

No handwriting recognition though.

</comment></comment><comment><USER55> This is going to change the whole computer market forever.

Why would anyone (edit: a user who buys a below $1k machine) be inclined to purchase a netbook or even a 13" PC instead of this?

<comment><USER7> because we want an OS with extra functionality like background apps/etc? Especially the netbooks w/3g capability you can get subsidized.

Does this add options to the market? Yes. Is it a game changer? Not even close.

<comment><USER55> They are going to sell a lot of these. Game changer.

<comment><USER7> Maybe I'm crazy but gamechanger requires more than sales.

The iPhone was a game changer because it redifined the market and got more people interested in smartphones, changing the entire cell phone industry.

<comment><USER55> Totally right. Sales aren't the only factor. It can matter for developers targeting users, though again not the only factor.

In particular, as a developer, I'm excited about the opportunity to have solid multitouch on a bigger screen.

The first example that comes to mind is the fact that numerous games and other apps aren't possible on the iPhone/touch because the screen isn't big enough, such as two-player games on the same screen.

</comment></comment></comment></comment></comment><comment><USER56> iPad + Bespin. Is anyone else interested in this potentially tasty combo-meal?

The App Store may not allow language interpreters, but as long as Bespin plays well with Safari and JavaScript, Bespin is just another valid webapp. And with a $30 unlimited 3G plan, I can code wherever I want (ok, wherever AT&T lets me). And to be very generous, the lack of multitasking would reduce coding distractions.

I'm extremely looking forward to trying this out!

<comment><USER57> Count me in. I can't understand everyone complaining about the lack of open programming/standards/access on the iPad. It appears to be the ultimate html5 client. Adding a Bespin editor would make it a one click cloud coding dream (well, with an external keyboard so we can have a control key...)

</comment></comment><comment><USER58> On Apple and Flash: <http://news.ycombinator.com/item?id=1075440>

</comment><comment><USER59> No GPS???

<comment><USER60> According to the specs page (<http://www.apple.com/ipad/specs/>) there is A-GPS, but only on the 3G model.

</comment></comment><comment><USER61> I can see why the makers of the Modbook weren't exactly shaking in their boots, totally different target market for this thing.

</comment><comment><USER62> Its basically like a laptop, except that apple controls _everything_ that gets into it.

</comment><comment><USER63> i kind of think this summarizes my feelings about the ipad:

[http://www.theonion.com/content/news_briefs/frantic_steve_jo...](http://www.theonion.com/content/news_briefs/frantic_steve_jobs_stays_up)

</comment><comment><USER64> Swing and a miss.

</comment><comment><USER65> When will the LCARS interface be out for it?</comment>


Facebook's Bet on an Augmented Reality Future - <AUTHOR> https://www.forbes.com/sites/kathleenchaykowski/2018/03/08/inside-facebooks-bet-on-an-augmented-reality-future/#5575cacb4d56 <comment><USER2> AR / VR has been the biggest bust of all tech buzz words in the last decade. The hardware is currently too expensive and awkward for normal use, and the only thing that captured the public's imagination was Pokemon Go, which was ultimately a summer fad. Snapchat Spectacles was a flop.

I think AR will be a game changer, but honestly it's still a long ways out, maybe another decade even.

<comment><USER3> It was overhyped, as with any new technology, but hardware always gets cheaper and better fast. Not close to mainstream right now, it's still very early adopter mode. But prices of Rift/Vive have about halved in the last year, and headsets trending wireless. Many that do have those headsets though, swear by them.

<comment><USER4> _hardware always gets cheaper and better fast_

This is an article of faith taken for granted by software people, but keep in mind this had only been happening because of specific improvements to wafer process technology. It's not a guaranteed trend.

</comment></comment></comment><comment><USER5> A pair of glasses that shape your reality according to the desires of a marketing company. No thanks.

</comment><comment><USER6> so sure. oculus is cool.

i even know a few people working there; they're smart dudes.

but.

they're being managed by an organization whose ops group can't remember to renew certs and whose marketing group thinks it's cool to demo first person shooters at NRA events the day after a mass shooting where you play the part of a deranged mass shooter killing random people on a train platform.

as smart as the tech guys are, the organizational + business guys aren't really the sharpest tools in the drawer.

<comment><USER7> I'm sure you had a valuable point to make but the blatant inaccuracy in your comment distracts from any effectiveness your point may have had.

* It was a game killing random robots, not people.

* It wasn't an NRA event, it was CPAC where the NRA was one of many presenters.

* It was not the day after, it was a week after.

You could argue that these are minor errors, but that's not the point. You've already tarnished your credibility so it's hard to take anything else you retort with at face value.

It's unfortunate because I think you had a decent point about optics.

<comment><USER8> The "person" in "first person shooter" refers to the narrative perspective of the player (ie. first person, third person) and not the species that is being "shot at"

<comment><USER9> FWIW:

> where you play the part of a deranged mass shooter killing random _people_ > on a train platform

</comment></comment></comment></comment><comment><USER10> Augmented Reality and Virtual Reality have some really limited applications. There are maybe 5 or 6 silver bullet consumer ideas I can think of, but they're such prohibitively expensive concepts that I can't think of a way to bring these ideas to a wide audience to distribute costs, such that mass appeal gains realistic traction toward high adoption and growth potential.

In fact, these ideas might only make sense under circumstances where there is literally _nothing_ to do for really, _really_ long periods of time, waiting around in tight quarters until you're able to unbuckle and move freely. In other words during space travel.

I hope that's where this is going. Any other setting or context for application of such technologies doesn't make any normal amount of sense. And this fits, since space travel isn't exactly normal yet.

My intuition tells me Carmack and Zuckerburg have discussed this WRT rocket ships and outer space. And that combination of subject matter, legitimate credibility, intellect and wealth is the only thing that makes sense, to justify such a bet.

</comment><comment><USER11> _just about every technology giant is racing to build AR functionality into their products and ecosystems_

If there's anything that'll kill AR before it's really had a chance it's a million different APIs that aren't compatible with each other, leading to developers choosing to support different platforms and users not knowing which one is actually suitable for them.

<comment><USER12> Keep your eye on Unity. It's bridging that gap and becoming the go-to AR dev tool that supports most of the leading hardware platforms. Wouldn't be surprised to see Microsoft (or another big AR player) acquire it - I'm sure a lot of companies are eyeing it hard atm.

As for what could kill AR "before its had its chance" (AR has actually been around for a long, long time) - lack of wearable hardware. AR apps on phones/ipads/handheld devices are nice, and getting better all the time, but generally don't have the potential to increase productivity to the extent that hands free glasses/headset can. Wearable hardware needs to get more powerful, less intrusive, and have better/ubiquitous connection (more bandwidth than current cellular, potentially 5G could solve this issue).

</comment></comment><comment><USER13> _Now_ we're starting to get some clues for the real reason Facebook wants everyone to give it the facial biometric profile. AR is not the only reason, but it's probably up there with the main ones. I doubt security (the only reason they've given so far for collecting facial biometrics) is even in the top 5.

</comment><comment><USER14> So once everyone is walking around with cameras on their faces feeding data back to Facebook/Google/whoever 24/7 and running facial recognition on everyone in sight, how are those of us who object supposed to opt out of the privacy policies of those companies? "Just stop leaving your house"?

</comment><comment><USER15> They should launch some lightweight AR glasses for developers, extending laptops with virtual screens, basically like additional monitors for laptops over an USB-C dongle. They (FB) have already a good standing among web and mobile developers, why not try it with hardware too.

</comment><comment><USER16> Is it just me or is this entire article essentially just breathlessly raving about Facebook copying everything that Snapchat has done for years?

</comment><comment><USER17> I feel like the article doesn't hit upon the number one reason big companies like FB and Google are investing literally billions in mixed reality systems. That right now they are the most likely thing to evolve into what replaces smartphones.

<comment><USER18> Also contextual Augmented reality Ads could be a thing.

</comment></comment><comment><USER19> Hasn't anyone seen Black Mirror?</comment>


Chrome only browser left standing after day one of Pwn2Own - <AUTHOR> http://arstechnica.com/security/news/2009/03/chrome-is-the-only-browser-left-standing-in-pwn2own-contest.ars <comment><USER2> On the other hand, Chrome is the browser security researchers know the least about; it's not an apples-to-apples comparison, yet.

<comment><USER3> Comparing mobile browsers they ignored Opera - the most common mobile browser and the most secure.

<comment><USER4> Do you think it's more common than safari on iphone? Do you have any way to verify that?

<comment><USER5> Opera Mobile has significantly more installs than Mobile Safari, but Safari probably has greater market share in terms of mobile visits (because iPhone users use Safari quite a bit).

As for numbers, Opera says there are more than 120m installations of Opera Mobile:

<http://www.opera.com/mobile/>

They have another product, for less powerful phones (it does rendering via a proxy actually) that has 20 million users. Since the requests are all proxies, Opera knows how many people use this product:

<http://www.opera.com/mini/>

<comment><USER6> Safari Mobile is also on every ipod touch. giving it an even wider user base.

</comment></comment></comment></comment></comment><comment><USER7> >> "after day one"

Isn't this all a big theatre type thing anyway? Aren't exploits prepared well in advance anyway?

It'd be a more interesting competition if the competitors were given never before seen new versions of browsers, and asked to crack them on the spot.

<comment><USER8> Since the rules change (i.e. become easier) each day, the day number gives you some indication of the relative difficulty in performing the exploit, even though the exploits themselves are prepared in advance:

[http://cansecwest.com/post/2009-03-18-01:00:00.PWN2OWN_Final...](http://cansecwest.com/post/2009-03-18-01:00:00.PWN2OWN_Final_Rules)

</comment></comment><comment><USER9> "Windows, on the other hand, he claims is tougher because of its address randomization feature and other security measures. As for Chrome, he says that he has identified a security bug in Google's browser but has been unable to exploit it because the browser's sandboxing feature and the operating system's security"

Sounds like Chrome was saved by not having a version for the extremely vulnerable Mac. Security by obscurity is no security at all.

<comment><USER10> Isn't address randomization a form of security by obscurity?

</comment></comment><comment><USER11> Guessing this is a symptom of: Tiny market share Radically different approach to security (heavy sandboxing, multi-process)

We don't yet know if Chrome is actually more secure.

<comment><USER12> I'd bet that it is. I can't think of a fair way to adjudicate that, though.

</comment></comment><comment><USER13> As soon as all extensions are ported there is no reason not to use Chrome.</comment>


Web Chat Programmed in Python - <AUTHOR> http://jaded.zapto.org

<comment><AUTHOR> I need some feed back on the site</comment>


JavaScript protocol based polymorphism inspired by Clojure protocols - <AUTHOR> http://jeditoolkit.com/2012/03/21/protocol-based-polymorphism.html#post

<comment><USER2> If I'm not wrong, besides Clojure, the other languages that implements the same kind of interface are Golang and Scala.

<comment><USER3> Yeah, Go has a really great implementation of this.

I write a lot of Ruby, and it does feel awkward that Ruby wouldn't have this construct.</comment></comment>


Study shows US has slower LTE wireless than 60 other countries - <AUTHOR> https://uk.finance.yahoo.com/news/study-shows-us-slower-lte-wireless-60-countries-102305054.html <comment><USER2> Warning, this article on Android (Chrome) redirects to a fake Amazon page after ~10-15s read time which adivertises "you have won a free iPhone 7" and hijacks the "back" button.

I'm not surprised Yahoo went downhill when such crap passes through the ad quality controls.

</comment><comment><USER3> I'd say that's reasonable considering it's the fourth largest country in land area and its population is spread much more evenly than Canada or Russia. And despite this, the article says the availability ranking is #4.

<comment><USER4> I don't know about reasonable. I mean if they have the availability then this just means their networks are the problem.

The telecoms in the US should have much better networks, especially after stealing hundreds of billions of dollars from US taxpayers for promises that were never delivered.[0][1]

[0][https://www.ntia.doc.gov/legacy/broadbandgrants/comments/61B...](https://www.ntia.doc.gov/legacy/broadbandgrants/comments/61BF.pdf)

[1][https://www.amazon.com/Broadbandits-Inside-Billion- Telecom-H...](https://www.amazon.com/Broadbandits-Inside-Billion-Telecom- Heist/dp/0471660612)

<comment><USER5> This reminds me of the fact that it seems in Austin, the TWC/Charter merger seems to have done little to improve the speeds, despite a small price hike... Yet, it seems that the city is now covered in shiny brand new ford transit vans with Spectrum emblazoned over the sides. If they put 1/2 the effort into upgrading the network they seem to be putting into advertising and buying new vans then I wouldn't still be jealous of my coworkers with google fiber given that DOCSIS 3.1 is 4 years old and my modem is still locked at a fraction of the now ten year old DOCIS 3.0 speed.

</comment></comment></comment><comment><USER6> I live in Manhattan, on the Upper East Side, a fairly upscale neighborhood. I struggle to reach 12mbps with T-Mobile. There are sections of the NYC subway where I hit 40mbps. The vast difference in LTE quality even in such a dense market as New York City amazes me. You'd think the number of subscribers per square foot would mean there would be a tower on every block. Let's not talk about the lack of Fios...

</comment><comment><USER7> LTE follows "scout's honor" model of self-certification. You can get your mostly-3G backhaul to show LTE on customer's screens if you so please.</comment>


Documentary follows Pastafarians as they strain for recognition - <AUTHOR> https://www.theguardian.com/world/2019/sep/18/documentary-follows-pastafarians-strain-for-recognition <comment><USER2> There was a recent uproar in my country because a head teacher asked a young lady to either leave the premises of the school or remove her burka as it is against the law.

The head teacher was adamant about following the law against wearing any religious symbols because he believed they caused segregation and virtue signaling. The head teacher has held everyone accountable, from students to teachers for every law in the legislation and oddly enough, every student respected him regardless of their beliefs, religion or political alignment. Additionally, their school was the most ethnically and culturally diverse in the country.

Regardless of what the burka is classified as, a religious symbol, or head clothing, wearing it is against the law, despite that, his career was ruined due to the behavior of the lady and, the exploitation of the incident by certain actors looking divert attention or political gain.

Perhaps Pastafarianism could make a dent to the culture of outrage, political discord and virtue signaling. Perhaps we can start talking as the adults we are instead of not listening like the kids we try to "protect" and "look after".</comment>


The one true REST explanation - <AUTHOR> http://martinfowler.com/articles/richardsonMaturityModel.html <comment><USER2> I'm with him until he gets to "Hypermedia Controls", which strikes me as needless bureaucracy.

The 'link rel = "royalhope.nhs.uk/linkrels/slot/book"' element isn't really helping anything. Before you can consume that service, you need to know what "royalhope.nhs.uk/linkrels/slot/book" actually means, and if you already know that, then having it listed here in the response justs wastes space.

He's disguising a custom verb under a cloak of some sort of 'standardization' which isn't actually part of HTTP or any common web practice. The consumer of this service will need to know what all the verb URIs mean and precisely how to use them anyway, so listing them here doesn't provide any benefit and significantly complicates the communication.

In this way, the "Hypermedia Protocol" doesn't demonstrate any edge over old- school XML RPC.

Up until that point, I agreed with the article. Simple objects exposed using standard HTTP verbs is the way to go -- but I stop short of supporting random lists of verbs labeled with URIs as just more needless bureaucracy.

<comment><USER3> He states very explicitly that his examples weren't any kind of standard, as one doesn't truly exist at that level.

I think the point he was trying to get across, and really what a lot of people who are advocates for REST are trying to accomplish, is that in a fully realized model computers would be able to understand how to talk to each other to get information and update resource states without the need for human intervention.

Clearly we are a long way from that goal, but I think it's still something worth talking about.

<comment><USER4> Whilst the notion of "computers talking to each other without human intervention" sounds like a utopian ideal, I think his method is a recipe for disaster.

The domain of possible consequences of changing protocols and semantics on the fly is hugely complex. What about testing? Are we advocating that we change live systems without tests?

The author writes: "Level 3 introduces discoverability, providing a way of making a protocol more self-documenting."

I reply: The same way good design separates presentation, logic and data, it follows that good protocols separate data from documentation.

<comment><USER5> > possible consequences of changing protocols and semantics on the fly is > hugely complex

Except when you assume that you're reading the semantics from each and every response. It introduces some complexity to how clients need to accept responses. However, once that part is done the changing protocol and semantics should not disrupt the system.

And testing? That's not a very difficult component to test. Throw a few different 'schemas' at the HTTP client response module and then feel safe to drop that into your application. I believe you're imagining a system that is more highly coupled to the response schema. This approach is meant to remove that coupling entirely (well, except for a base uri :))

I agree that embedding <link />'s into the response is a violation of a separation of concerns. They should probably be separated in some way (HTTP headers?). However, there are precious few examples of this in the wild and we may see some creative ways to separate these (I just hope we don't go the way of XML to have a different resource to specify schema).

</comment></comment></comment></comment><comment><USER6> I find it hard to believe that he's built real systems that work.

Yes, "decomposing services into multiple components" works well when everything is living in the same address space, but if you want to build fast and reliable systems, minimizing round trips is important.

If I didn't have anything better to do and if I liked dealing with idiots, I'd hang my shingle as a high-priced consultant who helps "enterprises" dig their way out of the REST morass. Just last year I managed to speed up an application 100x by switching from REST to POX. In this case, the app was doing thousands of round trips for no good reason other than architectural purity.

In the real world, composite operations should be done, more or less, in transactions. For instance, in one user authentication system I've worked on, there are about ten database updates to create a new user. There really ought to be one "createUser" call that creates the user. You could probably get away with not having database transactions if you're talking to the database locally, but in a distributed app on the wider internet, you just can't expect to do ten communications in a row and have it work "reliably enough".

<comment><USER7> You find it hard to believe that _Martin Fowler_ has built real systems that work? He is a rather well known programmer, author, speaker, and Chief Scientist at ThoughtWorks.

<comment><USER6> I know who Martin Fowler is. I love his "Refactoring" book.

On the other hand, once you get famous, you can go around and get big $ telling people what they want to hear and you can lose your edge.

If this is representative of his work these days, he should preface it with something like "I'm not a doctor but I play one on TV"

<comment><USER8> > If this is representative of his work these days, he should preface it with > something like "I'm not a doctor but I play one on TV"

Really? That bad? Care to explain?

</comment></comment></comment></comment><comment><USER9> It's always seemed to me that the difficulty with hypermedia controls is not how to have your server expose them, which is straightforward enough, but how to have your client do something useful with them.

It basically means writing your client as a state-graph navigating agent, which makes it closer to AI-ish programming (not surprising, since the argument for REST has been that web services should be structured more like the human-browsable web) than the input -> output or interactive event-driven paradigms that most programmers are more conversant with.

Yet the books and online evangelism etc. for REST that I've seen don't really address this issue.

</comment><comment><USER10> This stuff isn't new, it just isn't widely adopted yet.

OpenSearch does stuff like this: [http://www.opensearch.org/Specifications/OpenSearch/1.1/Draf...](http://www.opensearch.org/Specifications/OpenSearch/1.1/Draft_4)

It describes an interface (Atom XML based) that further self-describes how it was called and what you can do to it (how to search within results, for example).

Simply applying that thinking to JSON based RESTful services gives you that question "What can I do with this?", and that makes building the API easier... for everything you serve describe what can be done with it and how you were called.

This then totally de-couples the request from the client, the client can send many queries and not care about them, and get back something that encapsulates the state of the request (search terms), the state of the result (search pagination) and the verbs for each entity (what you can do with it).

I never would've called this "Hypermedia Controls", I think that's confusing.

It's just having your interfaces describe themselves and be discoverable. Coupled with a WADL-style thing (but probably not WADL itself... perhaps JSON such as on the Freebase API: [http://code.google.com/p/google- refine/wiki/ReconciliationSe...](http://code.google.com/p/google- refine/wiki/ReconciliationServiceApi#Service_Metadata) ).

Perhaps we all just need a new catchphrase or buzzword though, just to get the wider industry onboard? I'd rather just say that your services should be discoverable, and that means within the results telling us what we can do, in addition to a top level thing to describe which services exist.

</comment><comment><USER11> Are there any good examples out there of services that implement that last level? I have seen and used the others but not discoverability.

<comment><USER12> Check out twilio's documentation on their REST API: [http://www.twilio.com/docs/api/2010-04-01/rest/response#hype...](http://www.twilio.com/docs/api/2010-04-01/rest/response#hypermedia)

Since their core product _is_ an API, they've done a really good job building in all the levels of REST discussed in the article, including discoverability.

</comment></comment><comment><USER13> This is one of the best (but simple) explanation of REST.

<comment><USER3> Although intended for a different audience, I enjoyed this one when I read it: <http://tomayko.com/writings/rest-to-my-wife>

</comment></comment><comment><USER14> nice writeup. caucho's "metaprotocol taxonomy" is great further reading, contrasting REST with other common patterns/protocols: <http://hessian.caucho.com/doc/metaprotocol-taxonomy.xtp>

</comment><comment><USER15> I don't know if he had intended to put the REST zealotry to rest, but Martin Fowler and Roy field seem to be on the same page when it comes to level 2 REST. I submitted this to HN a few weeks ago, I'm posting it here again:

<http://roy.gbiv.com/untangled/2009/it-is-okay-to-use-post>

I hope these 2 blog posts will just stop people from equating REST to full HTTP.

</comment><comment><USER16> curious: why is the initial resource used to get the list of slots /doctors/mjones/slots?date=20100104&status=open and not /slots?doctor=mjones&date=20100104&status=open?

if i am setting up future communications at /slots/1234, to me /slots?doctor=mjones&date=20100104&status=open makes more sense. would you typically just have both resources available at those locations?

<comment><USER17> Something like depends on the context of the whole application and how you want to organize it. The first way puts the emphasis on the /doctors/mjones/... If you have other actions related to doctors like /doctors/mjones/contact, this way can provide a more coherent organization. Plus you can extend it to something like /labs/questdiagnostic/mri/slots? So you can decouple the concept of 'slots' from doctor, allowing you to extend it to other types of appointments without having to alter slots. The parameters are the items that are also the most likely to vary. When making an appointment you will check multiple days, but you are much less likely to check multiple doctors. Plus the days are more temporal in nature while the list of doctors is going to stay the same for longer.

</comment></comment><comment><USER18> I kind of expected the XML to disappear in level 3. In its current form, this is a non-standard extension to HTTP.</comment>