skysight-inc/HackerNews huggingface dataset:
Ask HN: What is the iMessage protocol?
Many developers now have iOS 5 running. Can one of you attach tcpdump/Wireshark appropriately and get some idea of what the iMessage protocol looks like?

Is it running something like XMPP underneath? Is it likely to be able to interoperate with other clients on non-iOS-devices?
Yes, but does Altair BASIC still work on the Pentium 4 and its trace cache? I'm afraid this trick may not have been any more future-proof than self-modifying code.

Still, nice.
I suppose these are JS performance tricks?

- Define g and s as parameter even though they're only given a value inside the function

- Pass document into the function instead of using it from global scope

- Insert a script tag in front of the other script tags on-the-fly using insertBefore, instead of simply doing <script async src="...">...</script>

Pretty interesting. Care to explain a bit?
Sometimes simple ideas aren't necessarily obvious. Think about the web, for example, in many ways it was simpler rather than more sophisticated than existing ideas about networked information. A perfect example is the "concertainer" or Hesco bastion, which is basically a scaled up sand bag and properly should have been invented and re-invented many times for the last several millenia, yet it's a recent invention.
Hi,

I dont know if this counts as interesting but I said I would post it anyway. We (http://www.youtipit.org) have a feature that allows people to tip Facebook members with bitcoins and the recipient can claim them at any time by registering with their Facebook account. Its just basic OpenAuth/Graph code but it works well all the same. The cool thing here is that you can reward someone (eg a friend, a band etc) without them even knowing about you or bitcoin. Unfortunately it does not work for Facebook pages... only profiles.

I too would be interested so see other interesting FB Graph uses, I bet there are some pretty cool ones out there.

(This is my first post to HN, take it easy on me :-)
The ironic thing about Google's +1, which is meant to get you more clicks on SERPs (as you'll see your friends +1's [1]), is that as Google now use site speed in their ranking algorithm [2]. adding the +1 button to your site would actually make it rank lower.

There's another performance review of +1 here [3], which compares it to the Facebook Like button. Steve Souders (who's written books on web performance) has detailed and compared a few other 3rd party JavaScript buttons and widgets here [4].

[1] http://adage.com/article/digital/google-adds-button-foray-so...

[2] http://googlewebmastercentral.blogspot.com/2010/04/using-sit...

[3] http://www.artzstudio.com/2011/06/googles-button-is-slow-and...

[4] http://stevesouders.com/p3pc/
You can try it on the latest Ubuntu - it works in a similar way. I haven't had any issues with it.
"If you want to say they have too much information on us, you didn't pick your target well (they care more about user privacy than most companies)."

Perhaps yes. I tend to think that Steve Jobs indeed has a service in mind. But it was easy to see yesterday that Steve may not be with us any more for long. Who comes next? Erich Schmidt? Or types like Marc Zuckerberg (surely not he himself)?

I certainly don't want my data in hands like this. Do you?
Do they perceive Facebook as being too aligned with Microsoft?
I think the example provided was valid but it's bad, unintuitive code. Sort of showboating.
Facebook and Apple have tried to negotiate something for a long time now and both have had a hard time coming to an agreement on working together so it's not that Apple doesn't want to integrate with Facebook but rather more than likely nothing has been hashed out on terms both sides could agree to.

As for what Apple stands to gain? I don't know for sure but it would be a good experiment for them to see how many people would use a social feature like twitter when integrated and how people socialize and leverage that data both for learning how to improve their own social elements as well as maybe strike a monetary deal later. Who knows. It's too difficult to speculate. For all we know, its just good UX that could draw in more love for Apple products.
I can only comment on the following two points:

- Define g and s as parameter even though they're only given a value inside the function

- Pass document into the function instead of using it from global scope

This is not necessarily true: javascript passed arguments by reference, and thus g and s are actually "given back" to the caller, who can then do different things with those objects.

d is not necessarily a document, but can be something different too: consider, for example, the contentWindow of an iframe.
Problems signing in to Skype for a small number of users - Heartbeat
Euruko 2011 was amazing, should we go big next year in Amsterdam?
I've never heard that before. I think Google gets the money. Verizon probably gets a cut just for the carrier billing option when used.

I just did a search and couldn't find anything saying Verizon gets the money for android app payments.

Also I can't think of a single Google Android app that has been discontinued and replaced with a web version. I think you're getting confused about google also offering mobile web versions for platforms they can't get their apps on. They've even said they'd like to offer a better maps app for iPhone but can't.
Failing to Use the Computing Lever
Thanks for that info.
Will try it as soon as I will get around Ubuntu box.
Facebook - the challenges of scale
It should be noted that the private owners of the airport must have an excellent PR firm to get NY Times to write a favorable article. In "The Submarine" essay PG mentioned that his firm never managed to get a NYT article.
Defining variables as parameters saves bytes (", x" vs "var x") but shouldn't increase performance. Passing document into the function saves writing "document" twice or doing a "var d = document".

Creating a new script tag with JS lets you get asynchronous script loading for older browsers that don't support the async attribute.

Some other ways to reduce bytes are outlined at https://github.com/jed/140bytes/wiki/Byte-saving-techniques
That's an interesting idea, first time I've heard of using NativeClient for that.
Check out SameerCLI on Youtipit
Why don't they just use flash? Hulu uses it without a problem. It's obviously secure enough. It's available on most computers, including Chrome (and Chrome OS). What's the fuss about?
O rly? Have you actually used it? I tried for months while using RubyMine. The IdeaVIM plugin was one of the reasons I was ultimately driven back to regular vim...the inconsistencies and bugs were pretty bad...to the extent that some things like undo would lose your changes completely (i.e., no redo). I really wanted to like RubyMine/IntelliJ/IdeaVIM, but the bugs were a deal killer. Coupled with the fact that many were known issues and there was no commitment to fix them and my choice to go back to vim was easy.

I should note that the vim support in netbeans and eclipse was just about flawless. It's a shame IntelliJ couldn't steal/adapt one of those projects to work within its IDE set.
It's the same concept, yes. And if the servers running the Authenticator at Google were hacked this system would likely be broken (but you'd also have much bigger problems)
obviously they've written a DRM system in Javascript :) j/k
I occasionally get to work with Natalia Allen of Design Futurist, and I know she's currently working on something similar to this in it's early stages.
Those servers in the SJ keynote -- they aren't storing your MP3's.
From the comments:

"As for your question, we pass in `document` that way to prevent unnecessary scope lookups. We could’ve used `var d = document` inside the IIFE, but that would trigger an additional scope lookup. For `'script'` it doesn’t matter; you could initialize that inside of the IIFE if you want."
Shipping software is the trivial part. Communication, leadership, connections, understanding how businesses work were not trivial for me since I've spent all of my life in a technical chair.
You're missing the point. Such "tricks" were essential to fit the required code into the necessary space. The same thing still happens (although rarely) when fitting required functionality into limited devices such as FPGAs and PICs.

You're not aiming for readable, maintainable code. You're trying to get the cheapest device, and then squeezing the essential into what little space you get. Such "tricks" as jumping into the middle of instructions are unavoidable.
Only provided that it's more profitable to provide consumers with clear information than to sell dangerous drugs.
1920x1080 spilt vertically = 960 = same size as the common 960 grid layout. With scrollbars and chrome, a 960 grid does not fit.
Logitech Driver Downloads - An Easy Way to End Device Hardships
Sometimes you may find that your Logitech devices aren’t working well even when there isn’t any noticeable problem with them. This happens when there is some unknown trouble with their drivers.
The point is that Apple isn't a monopolist. They like to inadvertently brag that they are, but they are not, thus any comparison with Microsoft's monopoly abuse is moot.
Building grand idea software is complicated with a high cost of entry.

However the next great thing will come from someone who started off as a static site than added PHP (or whatever), then added more then grew to a grand piece of software.

There is a market out there for that little static site, and with stamina that site will grow. You can't do that with aviation.

With software, with websites, you don't have to deliver the end product right away. You can grow into the space. Even facebook did that.
Skype crashes again
I'm not convinced it would actually work, but what the OP probably meant is that the pharma companies would pay the certification companies so they could put a "Certified by X" sticker on their packaging. The better X would certify, the more they could ask from the pharma company, so the market would reward proper certification.
Chorleywood: The bread that changed Britain
Solar highways (video)
using a throwaway account because i don't want to fall in trouble. The blog says that the number of engineers are a very few. What do you think is wrong here? There are some good engineers and there are many many bad engineers. so, it is possible that you had colleagues who were well respected but the majority of colleagues in Infosys TCS Wipro are not like that.

I worked in one of these companies and I will tell you what type of things happen.

# People insult each other in bulletin board. I am not kidding. This is true.

# Guys leave useless and flirtatious comments on blogs of girls in the internal blogs.

# You have to compulsorily stay 9.5 hours in office every day even if you have no work.

# In many projects there is no system of code review. how will the freshers learn from their mistakes without code review?

# File checkin is done not using client side tools but some crappy software created by internal IT team. The crappy software is interface between CVS and desktop. You have to reserve names for new files you have created one by one, then upload them one by one, upload each modified file one by one via a HTML GUI. It takes roughly 3 hours to checkin just 10 files.

I agree with the author that these companies have one of the worst culture.

I started my career here and after that I worked in 3 more different companies. All the three were better than these companies. At least I can check in code properly where I am now. At least I can disagree with other people in company bulletin board without fearing that someone will abuse me or insult me. Infosys TCS or Wipro is absolutely bad place to start your career if your aim is to learn good programming, learn good work culture and learn good knowledge from good colleagues.
The BBC has been writing similar articles recently http://news.ycombinator.com/item?id=2586983
iOS 5 has garbage collection. Here comes MacRuby/iOS?
It's a good point. My uni's Master's level security coursework was surprisingly very math heavy. A typical class started with about 60 people and ended with about 10 very exhausted students.

Folks without a strong math background, expecting to learn how to tweak file permissions or domain controllers or something were in for a rude surprise when we cracked open a textbook that consisted of mostly greek letters and pages of proofs and lemmas.

But having studied some hard maths in my undergrad, I walked away with a feeling I couldn't shake that much of it was form over function. We spent weeks showing proofs of very simple security circumstances "atomic changes to an access control list are provable secure" and then summed it up with "anything more complex than this, like nonatomic changes to an ACL are provably insecure".

And that was that. I came away very disappointed in the field as a whole, that instead of spending time pragmatically finding ways of improving security in an applied sense, we were spending an inordinate amount of time cranking through higher level maths that just showed the whole thing was hopeless in the end anyways.

Depressing.
I was responding to your comment while restating my point. Not arguing with your comment. :-)
Its a weak counterargument to Scheiner's. The ability to think logically (one example of which is writing proofs though I think writing good code requires it as much) is no protection against attacks you don't know exist. If we knew exactly how security systems could be broken then building an unbreakable protocol would just require thinking about how to satisfy a bunch of constraints (which mathematicians and computer scientists are trained to do). But, in addition to being resistant to known attacks, a new security protocol should be stress tested by trying to think of new attacks that could break it. Most university courses on security don't emphasize this way of thinking. That's all Scheiner is saying. This guy doesn't mention anywhere how a math degree trains you to do that.
Shimla – Paradise in India
After my daughter’s examinations got over, I decided we needed a break. My son’s music teacher is a very able lady and she often goes on these tours abroad and in India. I decided to plan an outing with her this summer.
Its in the hands of Microsoft now. So no surprise.
What do you think are the best replacements for skype?
Company i worked for in India sold very innovative products plus usual IT service. Because of products, Sales team cross sold IT services to product users and vice versa

An good example of utilising human resources and generating revenue when you dont have many clients using your IT services.
Taking the Path Less Traveled: Becoming Vegan
More memory capacity is just one of the use cases. Just to name one example, when doing string comparisons, you can use long integer comparisons under the hood. When using 8 byte longs instead of 4 byte longs, string comparisons are faster.
Refurbished iPad 
It’s very difficult to get a better refurbished iPad, but it doesn’t mean that you can’t get reasonable second-hand iPad from your friends and relatives or any other person who live in your surroundings and want to sell the iPad at minimum cost.
Right, Bill Broder, the Hermitage Capital guy has been speaking up recently as well. There is going to be economic forum in St. Petersburg in 2 weeks. It is typical to see an up tick in these types of articles before major public events in Russia.
It does title, keywords and location. What else does a casual photographer need?
He who refuses to do arithmetic is doomed to talk nonsense
Lack of Entrepreneurial Culture Seen as Europe’s Biggest Obstacle
compiling as 64-bit doubles the size of longs
and pointers

Obese longs and pointers, imagine the horror - but, no, that's not the reason.

The reason for why apps don't get compiled to 64-bits has more to do with the effort required to port said apps to 64-bits.

Truth is running 64-bits apps yields other advantages than access to more than 4GB of memory - a 64-bits app has access to the processor's 64-bits instruction set and some architectures allow access to more general purpose registers, memory-mapped files are easier to implement (MongoDB, last time I tried it, was unusable on 32-bits) and performance of applications such as encoders/decoders/encryption software is increased.

A 64-bits Flash would clearly benefit from the transition, even if you don't have more RAM.
Maybe they don't want to pay for the flash media server license? With HTML5 you can also target mobile a lot easier (though I'm sure a downloadable application would be better).
It seems appropriate for its environment. If you write code like that today, it wouldn't be.
So that's another platform that doesn't support Flash.

Flash feels like a dead end more and more.
Liked this line from the blog -

Some employees are busy figuring out ways to impress their female colleagues using the resources provided by the organization rather than learning and solving problems in a better way.

So these companies are atleast good for something. Giving their male employees opportunities to hone their flirting skills.
I suppose it would be asking too much to ask for some explanation of how Corley arrived at his "one in four" estimation? And when is a "hacker" a hacker, anyway?
I don't agree. It's not just about money. Both companies are more complex & emotional than that. Apple really cares about creating well-designed technology and Google really care about indexing the world's information.

It's in their DNAs.
Patting himself on the back? I thought he was being rather matter-of-fact. If Colin starts patting himself on the back, trust me, you'll know: http://news.ycombinator.com/item?id=35076
According to this:

http://adsense.blogspot.com/2010/05/adsense-revenue-share.ht...

it's 68%. Wow, I wasn't expecting google to pay out quite so much.

At those percentages it actually becomes possible. Depending on how profitable the sites and Google are at serving the content and the ads (respectively) it could work.
This is not necessarily true: javascript passed arguments by reference, and thus g and s are actually "given back" to the caller

Pass by reference doesn't work that way in JS;

function a(b) { b = 10; }
var foo;
a(foo);
alert(foo);

Won't display "10". It behaves like passing pointers, not mutable references such as the C++'s &.
Every arch I've worked with(ppc, sparc) 64bit binaries are almost universally slower than 32bit unless they use the bigger address space.

> Obese longs and pointers, imagine the horror

Take a break from javascript and look up how processor caches work, doubling the size of pointers increases cache pressure and can definitely make programs slower.

> allow access to more general purpose registers, memory-mapped files are easier to implement

I specifically mentioned more registers and a bigger address space. My question was whether this made a difference for web browsers.
there's no online component... your phone takes the current time (divided by some value), the secret key, and performs a cryptographic function on it, then the system you're logging into does the same thing and compares the results.

with secureid the secret key is fixed in the hardware (and RSA keep a copy of the key), whereas with Google authenticator you can generate and input the key yourself, so that Google never sees it.
Monday’s after the Unemployment Report are always interesting days.
You can edit the text... :)
I clicked around the site too, but I couldn't find how long they've been at it yet.
... and the first part is lifted from http://www.quora.com/Im-about-to-quit-my-job-to-learn-to-pro...
Good Web content examples and what makes them work
Web content can make or break a website – no matter how good the design is. Most designers know this from first-hand experience. So it wasn’t surprising when WDD visitors who read How to spot and avoid web copy that kills websites demanded a follow-up showcasing good web content.
True. I think this is one of the saddest things about our history - the fact that hardware limitations thwarted good explanatory coding styles for so long.
I've programmed some for OTP devices. Vasco primarily, but some RSA too. Normally, the OTP algorithm takes two args... a "shared secret" (each customer has a different secret) and the exact date/time. All the fobs and the back-end server know/share the secret.

On the fob thingy, one calculation occurs. The fob can be physical or virtual. So you may have a physical key fob or a virtual software fob for your blackberry, iPhone, Droid, etc. They even work with dumb phones over SMS. Either way, the same calculation occurs. Again, it looks something like this:

const unsigned int OTP ( const string& shared_secret, const time& time_of_day )
{
return OTP;
}

So when you push the button on the fob (or just look at it if it's the always on type), it returns an OTP. On the server, the exact same calculation occurs except that it calculates a range of OTPs (in case the time on the fob has drifted... and this does indeed occur). A minute or so worth of calculations. The fob's OTP must fall into the server's calculated range, if not, the OTP will fail and the fob will need to be recalibrated (resync its clock).

So, if this story is true, then the list of customer shared secrets was stolen and whoever has them now knows that company X uses secret Y on their fobs. It's hard to believe that RSA actually had a list matching company names to shared secrets unencrypted. I'm not sure I believe that.
This is exactly why anyone that says they are a web designer - yet does all their work in some 'pixel perfect' tool like Macromedia (or whatever the 'cool kids' use these days) is just deluding themselves.
Apple gets a social messaging backplane for essentially free while Google struggles with building their own. Strategically this puts them ahead of GOOG and AMZN and on better footing with Facebook.

Apple has previously tried to do a deal with Facebook to presumably implement similar features - those negotiations weren't fruitful, perhaps a stroke of good luck for both Twitter (#2 in the space) and Apple (Twitter less likely to be a competitive threat to Apple).

In some respects this is dangerous for Twitter too. If Apple users get used to these features and use them appreciably, Apple may move to re-implement on their own platform a la iMessage (a replacement for carrier SMS). The smart guys at Twitter probably have a pretty good understanding of how this commodifies some of their platform and how to manage that over the long term.

/r
Being able to present on stage has nothing to do with one's ability to perform as CEO of Apple. Forstall is in charge of iOS so it makes perfect sense that he talks about it. That has nothing to do with his ability to be the next CEO or the fact that he possibly took up the biggest amount of time on stage.

He could be a potential candidate, who knows, but it certainly isn't because he can talk on stage for 45 mins. It'd be because of his abilities (if any) to play the roles of a CEO. No offense but I never get the rational behind this type of thinking.
Apparently this sort of thing was relatively common. In the late 60's my aunt worked for MetLife as a programmer and would routinely hide data in execution code to save space. When she became pregnant they put her on 'leave' but refused to reinstate her after my cousin was born. Unfortunately for them only she knew about the hidden data and they were forced to hire her back as a consultant, for much more money, when things inevitably broke.
> you can use long integer comparisons under the hood

That's interesting. Does it make up for the increased size of pointers? Caches are under a lot of pressure these days.

AMD64 is a weird arch. Is it possible to use 64bit instructions with a 32bit address space?
Rapid pattern-recognition training helps students learn math subconsciously