Edward Snowden's Strangely Free Life as a Robot - <AUTHOR> http://nymag.com/daily/intelligencer/2016/06/edward-snowden-life-as-a-robot.html <comment><USER2> We have a robot similar to this at work. It's broken right now - maybe the battery is dead, maybe there's a software issue - and nobody's particularly interested in fixing it, because it never worked too well.

For one, on our model, there's zero peripheral vision. This makes it really hard to orient yourself in space - how far away is that wall? Did I scoot far enough past that doorway to swivel 90° to the right and go through it? Am I about to hit someone?

The same problem occurs when you're trying to talk to people. You can really only see two people who are standing in front of you. I'm not even sure if there's stereo sound - as there appears to be on the Snowbot, since he swivels towards people who are addressing him.

Other minor difficulties:

* it was difficult to park it into its charging station, which meant that sometimes it would just go comatose in a hallway.

* there's still a fair amount of lag, which makes it slightly annoying to have a conversation. Dialing someone over Skype/Hipchat/whatever-video is almost always the better option.

* sometimes you'd remote in, and be in an unfamiliar location because the robot wasn't returned to its parking spot. Since the whole point is to be able to access remote locations, we typically weren't familiar with the office layout, and would have to wander around aimlessly trying to get someone to help us get to where we needed to go.

<comment><USER3> The camera on the bot should switch to wide-angle / fisheye view when it moves, then switch to a regular lens for faces when it's still / just rotating in position.

The wide angle / fisheye view would provide a more typical FPS-like frame of reference, while the 20-35mm view makes faces appear realistic.

<comment><USER4> that was my first thought as well. the main problem seems like something a tiny piece of curved glass could solve. If it could get almost 180 degree FOV, you could pan in software on the client end.

</comment></comment></comment><comment><USER5> Much respect toward Snowden. Sacrificed his birthright as a US citizen to bring an injustice to light.

<comment><USER6> and his only reward was international celebrity

<comment><USER7> And a high chance that one day they'll lock him up and throw away the key, Chelsea Manning-style.

<comment><USER8> That's the problem with defecting to a country without the rule of law. You're always a bargaining chip.

As soon as there is a sufficiently high value trade on the table, Putin will put him on a plane to the United States, without a moment's hesitation.

<comment><USER9> What makes you believe things would be any different in a symmetric situation?

<comment><USER8> Once granted political asylum in the United States, it's virtually impossible to revoke. As much as pessimism is warranted, there are significant substantive differences between Russia and the United States.

<comment><USER9> Oh, there are absolutely substantive differences, I wasn't claiming there was not.

However I imagine politically useful dissident might well be kept in an ambiguous status, if the perceived use as a bargaining chip later was high enough.

Really I was just objecting to the idea that the US is somehow above such shenanigans because of some sort of philosophically deep commitment to the "rule of law". Neither proposition holds much weight on evidence of actual behavior. Which isn't at all to say I believe the US is equally likely to engage in such behavior as Russia, mind you.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> I know this question might sound silly but can FBI "arrest"/confiscate/disable the robot itself because it's aiding a fugitive? And the person/company that owns the robot, can they by charged with aiding a fugitive?

IANAL but would love to hear what some more informed have to say about this. The law is constantly catching up to technology....

<comment><USER11> It definitely raises interesting questions about mind-body duality. If a telepresence robot is a physical manifestation of Snowden's self, then it would seem to be fair game for the FBI to arrest it. If it isn't, then we have to ask how a sufficiently-advanced version of the robot would really differ from one's physical body.

To make the question meaningful, I suppose you'd have to stipulate that the robot is somehow irreplaceable. Meaning it's the only one of its kind that's capable of representing itself as the body of Ed Snowden, and that it's the only means at his disposal for interacting with the outside world.

On the other hand, it's no stretch at all to say that the company who provided the robot is liable under US law for aiding and abetting him, especially if Snowden has to use their servers to communicate with it. (Well, OK, it's a stretch, but it's a stretch that the US judicial system has had no qualms about making in the past.) Our Federal courtrooms aren't often mistaken for philosophy classrooms.

<comment><USER12> Getting very close to the argument: we should fine Boeing because their planes aided in 7/11\. The plane was a manifestation of the pilot.

It's not like those robots are only made for Snowden are they?

<comment><USER13> _> we should fine Boeing because their planes aided in 7/11_

Those gas station corn dogs are a crime against humanity but a fine seems excessive.

</comment></comment></comment></comment><comment><USER14> Tell me Mr Smith, how can you put me to prison if I don't have ... a body?

<comment><USER15> Good point - and also like arresting Ultron - "Don't mind me, Officer. While you arrest me, I'll just be downloading myself out of this robot and into another robot across the city."

<comment><USER16> Which is, of course, entirely absurd. Why would Ultron need to be "present" in only a single robot at a time, if not for the sake of plot?

<comment><USER17> Because even Ultron doesn't want to `git merge` those personalities, memories, and experiences back together.

<comment><USER16> Think on another level of abstraction. Mere humans are already perfectly capable of operating more than one remotely-controlled drone at a time.

</comment></comment></comment></comment></comment><comment><USER18> Snowden's making up to $1.25M/yr on speaking fees plus script consulting for Oliver Stone. Nice bump from gov't payscale. Though not enough to compensate for being under 24/7 FSB watch.

<comment><USER19> That's fascinating! Can you share some resources for me to learn more about the subject? I haven't seen any quotes for his speaking fees or script consulting revenues.

<comment><USER20> Well in the article linked they state the following: > He is scheduled to make more than 50 such appearances around the world this year, earning speaking fees that can reach more than $25,000 per appearance, though many speeches are pro bono.

<comment><USER21> "Earnings in a casino can reach more than $X per day".

How informative is such statement? Is the $25,000 based on the maximum fee that any speaker has earned? Is it the average fee? Is it the highest fee that Snowden or someone representing him has said he have earned?

<comment><USER18> > In 2013, $10,000 was considered a lower limit for speakers brokered by > speakers bureaus, $40,000 a regular fee for well-known authors, and famous > politicians were reported to charge about $100,000 and more.

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

<comment><USER21> Does Snowden use a speakers bureau? I suspect that if you sell speeches to highest bidder vs talk on specific conferences thats relevant to the subject you want to bring awareness, you are going to earn different amount of money. It the same way that civil rights lawyers has a different earning perspective than say a high profile defense lawyer or a company lawyer.

Is the $1.25M/yr in any way anchored to Snowden, or is it just speculation? Do Daniel Ellsberg also earn 1.25M/yr through speaker fees? The Wikipedia article about him fails to mention his vast riches.

</comment></comment></comment></comment></comment></comment><comment><USER22> We have 3 Beams at 2 offices. Everyone assumed the first one would be just a Silicon Valley start-up novelty, but they are surprisingly useful and personal for someone out of the office to have a presence. They can drive right up to your desk and it's like having a conversation with a live person.

<comment><USER23> I asked this elsewhere in this thread but...

Can I ask what problem this solves that something like skype/hipchat/whatever doesn't solve? I guess to me it just feels like a step backwards.

I'm not saying that these bots are bad, but I feel like there's a benefit that I'm not seeing.

<comment><USER22> Somehow the telecom connection (when it does not go completely down) is better. The voice from the machine to the people in the office is clearer, and the beam driver seems to pick things up with the microphone better (although) I have never been on that end to experience it.

It's totally at the discretion of the Beam driver get online drive over to your desk and start a conversation. Much more like having someone in the office. It also has a very personal feel talking to your colleague next to you. You have to experience it to understand. The full-scale Beam is a much nicer experience, we also have the cheaper model, which also works well.

</comment></comment></comment><comment><USER24> To add to the irony, "robot" comes from the Czech word "robotnik," meaning "slave."

[http://etymonline.com/index.php?search=robot](http://etymonline.com/index.php?search=robot)

<comment><USER25> 'Robotnik' is Russian and Polish for 'worker'. Etymologically [in Czech, Russian, Polish] it's closer to 'worker' and 'servant' than to 'slave'.

<comment><USER26> Well, the work was created by Karel Capek.

In Czech language `robota` means forced labor for your lord. Robotnik is just guy performing it, it is not used in other way in Czech language.

<comment><USER25> Forced labor as work for feudal [medieval taxation] not like forced labor of slaves.

</comment></comment></comment></comment><comment><USER27> Edward Snowden as a real life Max Headroom. We live in weird times.

</comment><comment><USER28> > He recently collaborated on a track with a French musician, delivering a > spoken-word monologue on surveillance over an electronic beat, and > recommended the title: "Exit."

A little bit off-topic, I was quite surprised when I clicked the link, to find that the unnamed "French musician" is, in fact, synthesizer _legend_ Jean- Michel Jarre. Why not mention his name? It kind of sounds like it's some random dude on youtube, but he's right up there with Kraftwerk and not even a _little_ obscure :)

On another note, I think it's funny how many similarities this music video has with the intro-theme of TV-series "Person of Interest" :) The imagery and especially the vocal effects on Snowden's voice in the second half :)

</comment><comment><USER29> Couldn't the government punish the people who are facilitating this? In their eyes this would be akin to carrying around a camera for a Russian spy, no?

</comment><comment><USER30> Weird, I remember running into (an earlier version of) one of these devices at a club in Hermosa Beach, CA around 1997.

I'm guessing that one was locally manned by someone nearby. It's possible that device did not have a videocam feed back either but that local person had LOS on the robot.

</comment><comment><USER31> Someone should crowdfund the development of an awesome new robot for Mr Snowden's use, and those with similar needs.

</comment><comment><USER32> Some say he still lives in the machines.

</comment><comment><USER33> Wheelie Boy is next!</comment>


Nobody understands debt - <AUTHOR> http://www.nytimes.com/2012/01/02/opinion/krugman-nobody-understands-debt.html?_r=2

<comment><USER2> _This is, however, a really bad analogy in at least two ways._

 _First, families have to pay back their debt. Governments don't — all they need to do is ensure that debt grows more slowly than their tax base. The debt from World War II was never repaid; it just became increasingly irrelevant as the U.S. economy grew, and with it the income subject to taxation._

Families got in debt trouble because they relied on their salaries (equivalent to government's tax base) increasing faster than their indebtedness. The problem was salary stagnation and layoffs broke this assumption. The government is at risk of the same thing happening: their tax base _has not_ been increasing due to the economy stagnating.

I see people over their heads in debt who added to their debt when they were in their 20s and 30s when their salary was increasing as a matter of course because times were good and because they were young and learning new skills. Unfortunately, they continued increasing their debt at the same rate but now their salaries stopped increasing.

 _Second — and this is the point almost nobody seems to get — an over-borrowed family owes money to someone else; U.S. debt is, to a large extent, money we owe to ourselves._

I own a chunk of U.S. debt and I will _NOT_ be happy if the U.S. government says "thank you for your donation."

<comment><USER3> To increase the tax base, the US economy needs to grow again (3% is the traditional "healthy" rate). To get it to grow again the government needs to spend money- infrastructure ( put people to work), education and the like. The danger we face is that for some reason we have forgotten economics 101 which tells us that governments need to spend their way out of a recession, that in the short term debt doesn't matter if you get the economy going again.</comment></comment>


Obfuscated C Code Contest 2006. Please explain sykes2.c - <AUTHOR> http://stackoverflow.com/questions/15393441/obfuscated-c-code-contest-2006-please-explain-sykes2-c

<comment><USER2> I was at university with Steve, the author of this program. A couple of years ago, when I wrote "The hacker, the architect and the superhero: three completely different ways to be an excellent programmer" [1] he was the one I wrote about as The Hacker. So it seems more than appropriate that his work is now on Hacker News.

[1] [http://reprog.wordpress.com/2010/03/21/the-hacker-the- archit...](http://reprog.wordpress.com/2010/03/21/the-hacker-the-architect- and-the-superhero-three-completely-different-ways-to-be-an-excellent- programmer/)

</comment><comment><USER3> It used to have an evil twin, the Underhanded C Contest [1] where the aim was to make an innocent program also do something evil in such a way that that it can be plausibly denied as accidental when the 'bug' is detected in a code review.

[1] <http://underhanded.xcott.com/>

<comment><USER4> "Used to have"? The underhanded C contest is back!

</comment></comment><comment><USER5> This is a really good explanation of my program, recommended.

<comment><USER6> do you happen to have a blog about this stuff? I'd love to read it

<comment><USER5> I have an ancient blog on my ancient website, not much about ioccc though - but you can at least find links to my previous entries here <http://stephensykes.com>

</comment></comment></comment><comment><USER7> What really irks me is that this question [1], asking word-for-word the same question for a different year entry, that was posted two days later was closed as "too localized" and has -10 points, while this one has +452.

Stackoverflow has serious problems.

[1] [http://stackoverflow.com/questions/15429479/obfuscated-c- cod...](http://stackoverflow.com/questions/15429479/obfuscated-c-code- contest-2012-please-explain-endoh2-c?rq=1)

<comment><USER8> It happens more and more often that a Google search for some problem sends me to a potentially useful Stsckoverflow question that has been closed for a ridiculous reason. At least, sometimes there are already answers or comments there that turn out being useful.

<comment><USER9> Taking a cue from reddit, it would be cool if someone started casualstackoverflow, with less strict moderation. Bonus points if closed questions can be imported.

</comment></comment></comment><comment><USER10> That reminded me a lot of my old signature from my days on Slashdot:

        main(O){10<putchar(4^--?77-(15&5128>>4*O):10)&&main(2+O);}

I enjoyed the extra mini-confusement from using a capital O as a variable name. :)

<comment><USER11> I can't even compile it on my mac and my C is too rusty, would you be kind enough to explain? =)

<comment><USER10> It's perfectly possible to run this on e.g. Ideone (<http://ideone.com>).

Essentially, it's a loop that unpacks my name and prints it, letter by letter, from the constant 5128. Four bits is being used per letter, and I tried to compress the number by subtracting an offset from the ASCII codes of each letter (that's the 77).

It's been ~14 years or something since I first wrote this, and I'm pretty sure I was inspired by an Obfuscated C contest entry then, too. :)

</comment></comment></comment><comment><USER12> I used to avidly reverse engineer the IOCCC entries when announced. It was a wonderful learning experience that teaches you quite a bit about C that you don't get from a mainstream book. Time well spent.

<comment><USER13> I enjoyed 'Expert C Programming: Deep C Secrets' for the same reason. Anyone know if there are other more modern books along similar lines?

<comment><USER14> Neither are recent, but the following are both good:

"Obfuscated C and Other Mysteries" by Don Libes

"C Companion" by Allen Holub

Don Libes' book actually uses Obfuscated C code entries as interesting instructional examples and Holub's book is a nice intermediate book between K&R and "Expert C Programming".

I never see Holub mentioned much by other C programmers but I think his books are awesome. He actually also has a really good compiler book called "Compiler Design in C" that showed how to build a C compiler from the ground up - with a lot of practical details I never really see in other books in that area. He even had a cool curses implementation to go along with it where you could watch the parsing occur visually, and wrote a curses-like library in assembly so you could run it all on DOS too. He used to write the C Chest columns for Dr Dobbs back in the day and the book "C Chest and Other C Treasures" contains a collection of those articles and other code that C programmers would find interesting. But that book is harder to find these days.

<comment><USER13> Thanks! I was thinking it would be great to have a new revision of one of these books that included material from C99 and newer.</comment></comment></comment></comment>


An old design of the Apple Online Store at apple.com - <AUTHOR> http://www.apple.com/r/store/livechat/

<comment><USER2> Good find.</comment>


Ridiculously detailed Carnegie Mellon machine learning parody of online scam ads - <AUTHOR> http://oneweirdkerneltrick.com/

<comment><USER2> Which would be more upsetting: that the author was so familiar with those pages s/he could make one by heart, or that the author had to do _research_ on those sites in order to find attributes that make it look so realistic?

But the submitter is right: that is ridiculously detailed.</comment>


Road-Tripping with the Amazon Nomads - <AUTHOR> https://www.theverge.com/2019/7/10/20687434/amazon-sellers-nomad-merchants-products-malls-walmart <comment><USER2> > "Anderson adopted the nomadic life partly out of necessity... He started > making jewelry — wedding bands and titanium plugs, like the Space Invaders > ones he's now wearing — but it wasn't enough to live on."

> "Today, he runs a warehouse, packing products for other Amazon sellers, and > spends half his time on the road chasing product."

Not to be too judgmental. But it's always sad to hear about a maker having to do something else out of necessity that is arguably less beneficial to society or themselves (not being able to user their talents to produce something).

What kind of jewellery would this guy have been able to offer if he wasn't schlepping product between retailers to make ends meet?

<comment><USER3> Making a living as an artist has always been difficult and rare. The desire to create and the existence of a market for what you want to create are largely uncorrelated things.

</comment></comment><comment><USER4> It was an interesting article detailing the intersection between what is essentially another gig-economy side of Amazon, America's insane consumeristic culture and the ebb and flow of American business.

</comment><comment><USER5> I feel that this represents a great strength and great weakness of the Amazon model. A huge network of independent sellers allows for an untouchable amount of variety and ultra fast movement in response to trends. This sort of grey market product sourcing model allows for value creation and low prices (these people are helping match excess goods with people who value them highly). But it would be impossible (with current methods) to control the sourcing provenance of these goods from such a vast network of suppliers at such low quantities. In some categories this can lead to the often discussed issues with counterfeits. Perhaps in the future a better method of the product authentication will allow the best of both worlds.

</comment><comment><USER6> Interesting, besides the booksellers or collectors, Amazon also creates these looking for other stuff. Somehow they reminds me those Mexican farmers along i95. While farmers always move for jobs almost always have a destination, these are truly nomads.

</comment><comment><USER7> A friend of mine was on the team that made the official Amazon app for scanning items and finding the profit margin for selling on Amazon. Small team in Toronto working with others in Seattle. We'd grab beers all the time and he was super passionate about the UX aspects of this project he was doing.

It's weird now to see a whole culture of people has developed as a result. What was a niche thing my buddy was working on is now a career for all these people.</comment>


Show HN: Create and share lists of your favourite records - <AUTHOR> As a music fan I love reading other people's lists of their favourite records of all time/of the year/etc.
But I find it a bit overwhelming to have to then go and search the record on a streaming service to assess whether it would be something I was interested in.
So I made this. You can quickly throw together a list of records and all the reader has to do is click on them to sample them :)
I've put together some 2016 year-end lists that were put together by major publications by way of example:
Metacritic Top 40 albums of the year: https://www.tapedeck.io/collections/2
Pitchfork's top 50 of 2016: https://www.tapedeck.io/collections/3
Gorilla vs Bear - Best Albums 2016 (some lesser known artists in here): https://www.tapedeck.io/collections/6
One for the metalheads... CoS top 10 metal albums of 2016: https://www.tapedeck.io/collections/5
I built it with some spare downtime I had over the holiday period. Nice and simple Rails application.
It's just a small project not a startup, but I would love your opinions on it. It's open-source too. GitHub repo: https://www.github.com/cjbutcher/tapedeck-2. <comment><AUTHOR> Some useful shortcuts:

r random collection.

c create a collection.

space stop music.

] next track.

[ previous track.</comment>


Security Flaw Links BitTorrent Users to Skype Accounts  - <AUTHOR> http://torrentfreak.com/security-flaw-links-bittorrent-users-to-skype-accounts-111020/

<comment><USER2> No; it links Skype Accounts to IPs, which then can be _correlated_ with BitTorrent swarm peers.

IPs are not people - this is a fundamental misunderstanding that both MPAA/RIAA lawyers, and, for a long time, misinformed courts liked to propagate, although it seems the tide is turning in this department. Nothing says an IP assigned to an account I owned was used by me, and nothing says the same person using a Skype account from any given IP is also the person who told BitTorrent to join a swarm from that IP.

This is a really obvious, but also relatively serious issue with the P2P nature of Skype, as that account -> IP correlation really is powerful - but I hate the way this article was written.

<comment><USER3> The core flaw seems to be that it allows remote, undetectable (via the Skype client, anyway) determination of the user's IP. And it works independently of the privacy settings. All you need to know is someone's skype ID and you can find them on the internet.

While you're right that the article is misleading, I think you're interpreting it in the wrong direction: this flaw is _much worse_ than the ability to track torrent downloads.

</comment></comment><comment><USER4> Summary: It's easy to find out the IP address of an arbitrary Skype user from their username, which can be found in the Skype global directory. This is done by calling the user, but without the UI notifying user. Nor able is the user able to block this and it can be done by someone not in your contact list. And it works even if the target user is off-line. So it's super easy to track someones movements.

<comment><USER5> Yes, you are not safe even if you are logged off from Skype!

PDF here:

<http://news.ycombinator.com/item?id=3137303>

"When the caller calls a Skype user who is currently off-line, the Skype application will still provide to the caller the user's most recent IP address, as long as the user was running Skype in the past 72 hours. For this reason, we are able to retrieve the IP address of a Skype user that used Skype within the past 72 hours" (!)

</comment></comment><comment><USER6> Sensationalist fear-mongering spread by a tabloid filesharing blog. If you want to take something from this, just make it "You can find out a person's IP if you know the Skype username and said person is online with Skype by making a hidden call (which Skype should probably prevent)". Skip this, move on.

<comment><USER4> Or has been online sometime during the last 72 hours.

But yes, not the best article.

</comment></comment><comment><USER7> "Scribd is down as of 19:45 PDT for maintenance."</comment>


Show HN: Python to C++14 transpiler - <AUTHOR> https://github.com/lukasmartinelli/py14 <comment><USER2> It is called a compiler even it outputs code in another language, transpiler is some neologism from JavaScript developers without a background in compiler design.

<comment><USER3> I'd defend the word 'transpiler' and I did my masters and PhD on language implementation, and that's where I work professionally now, so I'm not ignorant of compilers.

I think it implies a translation from one high level language to another (not that 'high level' is well defined either), with only desugaring and maybe type-checking - no real lowering or optimisations. That's a useful subset of compilers, so can have its own word I believe.

<comment><USER2> So for you a C compiler that follows the initial workflow is a transpiler?

Or an Eiffel implementation, as another example.

<comment><USER3> I think a transpiler is a compiler that does a high-level to high-level translation with only a few simple transformations and almost no optimisations and produces relatively readable output.

If a C or Eiffel compiler meets that definition then yes. I'd still call it a compiler, but I would also call it a transpiler.

If you're offended by the term transpiler because all transpilers are also compilers, then I don't know why you wouldn't also be offended by the term compiler because all compilers are also 'programs', so lets just call everything a 'program'.

<comment><USER2> Apparently I am the one wrong here, given the 1964 paper link provided by Ded7xSEoPKYNsDd.

Still the word sounds strange.

</comment></comment></comment></comment></comment><comment><USER4> Key sentence: "The goal is to showcase the power of C++14 templates and not to create a fully functional transpiler."

Viewed through that lens, this is a really novel and cool demonstration.

<comment><USER5> This seems to me to be very close to what Pythran [0] is doing (since 2011), except that Pythran includes some type inference and bridge with Python code.

So view through that lens I'm not really seeing the novelty right now?

[0]: [http://github.com/serge-sans-paille/pythran/](http://github.com/serge- sans-paille/pythran/)

<comment><USER6> There is also nuitka - [http://nuitka.net/](http://nuitka.net/)

</comment></comment></comment><comment><USER7> Should be noted that this only works on a "statically typeable" subset of Python where every variable has a de facto static type inferred at the first assignment. For instance, the following valid Python code would output invalid C++:

      var = []
      var = 2

<comment><USER8> Well, you could always begin another scope with each assignment.

        auto var = // this type can't be inferred because it's not used
        {
          auto var = 2;
        }

I'm too exhausted to think why this may not be applicable.

<comment><USER9> Python:

        x = 2
        if stringy: x = '2'
        print x+x # 4 or 22???

C++:

        int x = 2;
        if(stringy) string x = "2";
        print x+x; // 4 (string x is out of scope)

</comment></comment></comment><comment><USER10> There's a few similar process. Shedskin, Nuitka, Pythran, etc. They are all pretty cool projects, and worth looking into just to learn new techniques.

<comment><USER11> ... and unpython, spyke .... all very cool and with their own spin. What is a little worrisome is the rate at which these get abandoned and how many of them target some specific subset of Python. I particularly liked unpython's take.

</comment></comment><comment><USER12> Would someone be kind to explain how the transpiler/compiler knows that num of T1 generic(?) type can be used with the <= operator? Or that something the user themselves have to define?

Wouldn't be something like "T1 where T1 is Numeric"?

Thanks!

<comment><USER13> This is how C++ templates work. They are a form of polymorphism through how you use the object and not based on its type.

If you pass a type that cannot be used with the <= operator it will error in compile time.

Being able to do this is part of why C++ templates are much more powerful than Java/C# generics and why they enable a different (and alternative) form of polymorphism to inheritance and explicit interfaces.

<comment><USER12> I see. In e.g Swift, you'd have to define before hand that T1 could be used with <= while here I guess it adds in the method for "each" T1 that could be used with it.

I assume this just duplicates the method for each type at compile time instead of at runtime try to figure it out?

Damnit, now I wanna rewrite back to C++.

<comment><USER14> In C++ it just prints an error message and halts compilation if you try to use a type which doesn't support the semantics of the template function. It does not add functions which are not declared already.

</comment></comment></comment></comment><comment><USER15> Writing something like this for Python 2 is like throwing a urine filled water balloons at all the progressive developers working hard to get the Python community transitioned to Python 3.

Don't have enough reasons to stick with shitty old Python 2, well then here's another anchor for your boat!

Edit: The first pull request was for Python 3 support, hooray.

<comment><USER16> No need to phrase it so nastily.

<comment><USER17> You say nasty, I say colorful. No need to characterize it so prejudicially.</comment></comment></comment>


Ask HN: What do you do when you find someone doing the same thing as you? - <AUTHOR>

If you had been working on a startup for a few weeks, and were making significant progress, what would you do if you suddenly found someone doing nearly the same thing you were planning. This other company has funding (from big investors) and some traction (not huge though)?<p>That's my situation. I haven't incorporated or hired anyone or even taken money yet so I'm not in too deep yet. Do I soldier on? <comment><USER2> A lot of things factor into it.

Were you creating your solution because "nobody was doing it and you wanted to see someone do it"? Might make sense to back off. On the other hand, if it was because you see it as an area where you can come out with something novel, I'd stick with it. The truth is, the fact that someone else is doing something similar is a step towards validating your hypothesis that the service is needed.

If you're going to let the fact that they're in the same space as you keep you from pursuing your idea, consider your dedication to it, and whether you really want to invest what it'll take to get this off the ground. You're never going to be wholly original. The question is whether you can execute well on your idea.

If you're passionate about what you're building, I'd stick with it.

</comment><comment><USER3> How do you think your implementation compares to theirs? Competition can drive both of you to be better.

<comment><AUTHOR> It is eerily similar. I do have some differences but they aren't major.</comment></comment>


Life in the People's Republic of WeChat - <AUTHOR> http://www.bloomberg.com/news/articles/2016-06-09/life-in-the-people-s-republic-of-wechat <comment><USER2> > _We noticed that you 're using an ad blocker, which may adversely affect the > performance and content on Bloomberg.com. For the best experience, please > whitelist the site._

Your stock performance, maybe, but certainly not my browser's performance.

<comment><USER3> > which may adversely affect the performance [..] on Bloomberg.com

"If you notice your browser performing better than usual, and the site being more responsive, please try disabling your ad blocker to remedy the issue."

</comment></comment><comment><USER4> Yesterday I was on a voice chat with a friend in Shenzhen for FIVE hours without a hiccup. Imagine how much it would cost on AT&T.

Although it is already hard to picture a WeChat group of 500 members, I just learned that in China, the size of QQ group can have up to 2000 members!

Welcome to the People's Republic of Big Data. :-)

<comment><USER5> You mean, a phone call? I don't think those cost me much of anything on AT&T.

<comment><USER6> Perhaps I'm mistaken but it seems pretty clear that ontouchstart is implicitly referring to long distance charges which for an international call are I assume still expensive for a 5 hour call.

Although perhaps you can correct me on the cost assumption since it has been years since I made any such call via any other means than VOIP.

</comment></comment></comment><comment><USER7> Anyone know if there's been any sort of security audit for WeChat? I'm basically forced to use it and I'm sure the Chinese government must've put some kind of backdoor in it.

<comment><USER8> At my last job, about 2/3 of the company was in the US and 1/3 was in China. Members of the China IT and Developer teams were always trying to get the US teams to put WeChat on our phones so they could send us questions and we always refused. They thought it was because we did not want them to send us questions after hours, but someone finally told one of the China Developers, while they visiting a US office, that no American would put WeChat on their phone because Americans considered everything WeChat handled to be accessible by the Chinese government. We did not want our calls and messages to be spied on by the Chinese government. We would not even tell them that over the phone because Americans just assumed that the Chinese government listens in on all calls to China.

<comment><USER9> I think your concern was appropriate, but it reminds me of the corresponding view that many people have that communications software developed in the U.S. will inevitably have backdoors for the U.S. government. That view feels reasonable to them because they know the U.S. government is also extremely aggressive about surveillance capabilities.

I find it sad that we're in an environment where assuaging these concerns can be a complicated and difficult undertaking, and even trying to understand the landscape is a big challenge. Lots of people see it as risky to use technology developed in another country, and while some particular fears and theories are overblown, it's hard to dismiss the overall concern.

<comment><USER10> The US tries to keep its surveillance secret. Seems to me that this makes it unlikely that they'll backdoor apps, because random hackers might reverse engineer the apps and discover and publicize the backdoors. Instead, the US backdoors communications lines and data centers, or uses existing security holes to break into targets.

China doesn't keep its surveillance a secret. They don't go out of their way to publicize it, but they don't seem to care if people know it's there. A backdoor in an app would fit their style better.

</comment></comment></comment></comment><comment><USER11> A related blog entry by a WeChat dev. [http://dangrover.com/blog/2016/04/20/bots-wont-replace- apps....](http://dangrover.com/blog/2016/04/20/bots-wont-replace-apps.html)

</comment><comment><USER12> Wow, it seems life has changed quite a bit in China than what it was like when I was there (2002-2011). The author mentions that everything is using Wechat for e-payments and QR codes are every where. I wonder with such high rate of adoption and change, how secure every thing is.

<comment><USER13> 2001-present here. Yes, Wechat for e-payments and QR codes are everywhere. How secure are things? Not that dissimilar to the west, which it to say that even high profile companies make stupid mistakes all the time. (Late last year, one international Chinese business made it impossible for me to report an issue trivially exposing vast amounts of highly personal user data.) (PS. I didn't read the article, because Bloomberg's website is so screwed up.)

</comment></comment><comment><USER14> In Brazil, WhatsApp is an app like this. If WeChat is what WhatsApp may become, it looks Facebook will drag them down. WhatsApp have payments (that nobody use), but some of the features, I believe, Facebook would forbid, like enterprise accounts.

What's the antonym of synergy?

<comment><USER15> "Anergy"[0], in case you weren't asking a rhetorical question.

[0] [https://en.wiktionary.org/wiki/anergy#English](https://en.wiktionary.org/wiki/anergy#English)

<comment><USER14> It was rhetorical, but it was nice to know. Thanks!

</comment></comment></comment><comment><USER16> I don't want a chat app to be an operating system. I prefer to have things separated, since that makes them easier to manage(for me). I spent some time performing a penetration test against a service that would hook into WeChat, and found the security atrocious. I wouldn't touch anything related to WeChat so long as I can help it. Haha, this is sort of like the modern-day Emacs.

</comment><comment><USER17> Man, this site is heavy, I couldn't read this news anymore. Why heavy ads with autoplay on?

<comment><USER18> Viewed with JS disabled, dind't notice any lags.

<comment><USER19> Can confirm it actually works great with JS disabled (in Opera 12 no less) – much better than with JS enabled, actually. Really Bloomberg….

</comment></comment></comment><comment><USER20> I dunno what's wrong but the lady's voice in the video is highly annoying. The content was good though.

<comment><USER21> She had a little bit of vocal fry at the end of her sentences. That could be it

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

</comment></comment><comment><USER22> wechat has a weird issue? design decision? where chat histories aren't synced between devices. I'm pretty shocked it can be used to make payments and appointments yet has such a weird failing.</comment>


Transitioning from R to Python with Spyder - <AUTHOR> https://waterprogramming.wordpress.com/2018/01/22/transitioning-from-r-to-python-with-spyder/ <comment><USER2> Spyder is nice but when I used it a couple of years ago it still wasn't as polished as matlab (the language I was coming from). on the other hand pycharm is unbelievable polished and has exactly the only features the made matlab worthwhile: visual debugger with a console. in pycharm you can set a break point open up a console that has access to the current context (it's debug console under tools). out of the box you get tab completion in that console and you actually set ipython to be the interpreter for console and get all its good stuff.

</comment><comment><USER3> Interesting for me, in as much as I'm a python3 programmer transitioning to R/Shiny...

Python is better for doing the work but R/Shiny is better for showing it to people.</comment>


CSP and Transducers in JavaScript - <AUTHOR> http://phuu.net/2014/08/31/csp-and-transducers.html

<comment><USER2> Some gems in there

 _First, we have to realise that many array (or other collection) operations like map, filter and reverse can be defined in terms of a reduce._

...

 _To get at the reducing functions, we need to make map and filter more generic by extracting the pieces they have in common:_

 _\- Use of collection.reduce_

 _\- The 'seed' value is an empty array_

 _\- The concat operation performed on result and the input (transform-ed or not)_

...

 _Before we do that, we need a new function: identity. It simply returns whatever it is given:_

(Although there is a lot that may be obvious to the Haskell guys)</comment>


Revolution of Our Times: HK Protest Role-Playing Game Suspended from Google Play - <AUTHOR> https://www.hongkongfp.com/2019/10/10/revolution-times-hong-kong-protester-role-playing-game-suspended-google-play-store/ <comment><USER2> And next up is Google...</comment>


Math: Are negative numbers real things? - <AUTHOR> It seems to me that negative numbers are a convenient way to measure movement between finite systems, but may not be real universally.
For example, if money leaves my account (negative number) it doesn't disappear or go into a universal money vacuum somewhere, it just goes (positive number) to another account.  Same for body temperature, photon emission, or anything else in the universe - don't the laws of conservation mean that negative numbers are just measurements for movement between systems but there's never an real "subtraction" of anything anywhere anytime?
And if negative numbers really are contrived to help us deal with systems in isolation, then have we hamstrung our fundamental mathematics by treating them as real numbers instead of imaginary? <comment><USER2> They're quite as real as nonnegative numbers, which are also abstract things. It's ironic that in your last line you use the terms "real" and "imaginary", in their colloquial meanings, as these have long since been adopted and coopted to denote... the real and complex numbers respectively :) which, some of us contend, are no less real than the integers. Face it: groups abound in physics. A group has a binary operation such that for every element has a (unique) inverse element w.r.t. that operation. When the group is Abelian we write the operation as "+", and then the "additive" inverse of an element x is -x, also an element of the group. It's silly to claim that, for example, rotation through an angle $\theta > 0$ should be considered more "real" than rotation through $-\theta$. One is counterclockwise, the other, clockwise, by the same amount.

<comment><AUTHOR> I was actually using the terms "real" and "imaginary" non-colloquially to denote real and complex numbers (5, -1, pi, e, -1^-2, etc.).

It's true that nonnegative numbers are just abstract ideas that we come up with to represent quantity, but that's just it: quantity is a real thing. Is there such a thing as negative quantity? That's my question.

I like the reference to the contention of what we currently denote as imaginary numbers and how they should be compared as just as real as other numbers. This is the same issue I'm questioning but from the other side. I'm questioning if we should count negative numbers as real as opposed to understanding them as a set that is at least imaginary, if not complex or irrational.

I also like the point about a counterclockwise rotation being just as real as a clockwise rotation. This is where the non/negative sign is used to indicate a vector. As long as you have a point of reference, this is always ok because it's simply referring to what type of amount of whatever quantity/magnitude/etc we're dealing with.

But I believe this is different than what we often do with negative numbers when working through many of our problems that involve unitless numbers/constants or take an abstraction and apply it as a physical theory - in these cases the negative numbers were treated as separate and real when in fact they should have been directions, unit movement, or other information about actual physical quantities. This is where I'm wondering if we should treat negative numbers as a different set altogether.

<comment><USER2> Fine point: in the case of "negative" (clockwise) rotations, the negative sign applies only to a scalar (an angle), not a vector. Surely even negative money is a real thing too: debt, or anyway debit. (Granted, debt can be less real than a pile of cash: if you're owed you might never be repaid, if you owe you might default. But that's a case of reality not matching theory well :)

In physical applications, relative to a coordinate system negative numbers have perfectly intuitive meanings. A negative spatial coordinate simply indicates a point in one of the quadrants or octants other than the all- positive-coords one. A negative acceleration means something is slowing down.

I see no good purpose served by special-casing "negative" integers, and many needless ensuing headaches.

</comment></comment></comment><comment><USER3> I think you don't understand the difference between _amount_ of something and a _number_. Number is just an abstract concept, and it doesn't have any inherent properties like being "real" or "imaginary", whatever that means for you. On the other hand, amount can never be negative.

BTW, read a little more about number sets. There are such sets as "real numbers" and "imaginary numbers". I think you can find some material in mathematics textbooks for ground school and high school (probably not about imaginary numbers, though).

<comment><AUTHOR> The difference between the amount and a number is exactly what I'm afraid negative numbers misrepresent.

Real and imaginary number sets are the heart of the point (and I think my high school calc - if I can remember that many years ago - did include some work with imaginary numbers, certainly by early college work).

Since an amount can never be negative, then a negative number only makes sense to denote the movement of an amount from one system to another. If we say that negative numbers are real numbers, and especially if we use them as the same class as positive numbers when building blocks to formulate ideas and theories about physical properties and amounts, I'm wondering if there is a potential downside to our fundamental understanding of what our results actually mean.

One of the other replies points out the necessity of units paired with numbers, and I think this is correct. The problem I'm observing, and the heart of my question, is that we have many, many ideas/proofs/theorems in mathematics with unitless numbers (constants and so on, both positive and negative), and then we use the results of this work to jump back into the physical universe to "prove" something. Could there be a problem with our basic use of numbers when we do this?

</comment></comment><comment><USER4> If this bothers you, you probably won't be pleased to learn that the overwhelming majority of "real numbers" can't be written down or even computed (ok, in principle you can enumerate the digits of at least one such number, but "Becher and Figueira proved in 2002 that there is a computable absolutely normal number, however no digits of their number are known.") [1]

1: [https://en.wikipedia.org/wiki/Normal_number](https://en.wikipedia.org/wiki/Normal_number)

<comment><AUTHOR> This is very interesting - thanks for the reply and link. I'll dive into Becher and Figueria.

</comment></comment><comment><USER5> You are mixing up the mathematical universe with the physical (also known as real) universe.

For a mathematican 42 or -42 makes sense - there are no units necessary. The mathematical intepretation of a negative number is just being element of a set.

For a physicist 42 or -42 are pointless, because a unit is missing. The physical intepretation of a negative number is the quantified absence of a unit.

\- by the way: [https://xkcd.com/435/](https://xkcd.com/435/)

<comment><AUTHOR> Yes this is exactly right: "The physical intepretation of a negative number is the quantified absence of a unit." In the physical world, the absence of a unit just means the perspective doesn't include whatever it is that is intended to be observed, although that thing may exist elsewhere. In other words, a negative number may be an abstraction for quantifying that a unit has left an isolated system, but I'm not sure our current usage of numbers as abstractions captures this - it seems like we often use negative numbers (in any unit) to denote the actual subtraction of that unit universally as opposed to its transfer to another isolated system. (This could be where mathematicians can get into trouble compared to physicists as perhaps they don't have the same habit of observing units.)

<comment><USER5> Sometimes a subtraction of a unit absolutly legal and you are still in the same model or context. (Temperature loss)

Sometimes a subtraction of a unit is hidden-black-magic and you are switching between two models or contexts but still being in a meta-model or meta- context. (Debits and credits)

It just depends on your model or context how you interprete your value/unit relation, but this is a typical problem in applied physic, engineering or computer science :)</comment></comment></comment>


Explosion in Toronto - Twitter is Where the News Happens - <AUTHOR> http://www.trending.us/2008/08/10/twitter-is-the-where-the-news-happens/

<comment><USER2> "This is probably one of the biggest examples yet of how outdated and antiquated traditional news services are."

For a huge explosion, sure.

I'm not convinced the argument applies for anything more nuanced than "something go big boom".

<comment><USER3> Are traditional news services even good for anything nuanced any more? Seems to be evenly split between 'big boom' and 'big boob' nowadays.

</comment></comment><comment><USER4> "This is probably one of the biggest examples yet of how outdated and antiquated traditional news services are."

Let's see. I'm on Twitter, follow ~100 people, have not seen a single post about Toronto.

I read Google News main page, see stuff about explosion in Toronto.

Conclusion: Twitter works for breaking news if you are prescient enough to follow people who are going to be where news happens, when it happens, and you check it quite often.

<comment><USER5> Agreed. However, run some simple analytics on the entire Twitter message stream (the "fire hose" as they call it) looking for bursts of keywords from a large number of users, and you'll have a pretty good feed of breaking stories.

Summize/Twitter Search has "trending" keywords which is a good start, but I want a feed that automatically sends me breaking keywords.

<comment><USER4> Good point. Twitter as a whole may be a good place to data mine current events.

</comment></comment></comment><comment><USER6> "This is probably one of the biggest examples yet of how outdated and antiquated traditional news services are."

Completely absent from the tweets and videos: what exactly happened? Why? What was the outcome? Any loss of life?

You can take your 140-character instant uninformed man on the street reactions and keep 'em for all I'm concerned.

</comment><comment><USER7> I was on my way home when the explosion happened. I live about 12km away, but felt and heard it enough to comment to my friend that it seemed like a big explosion. About 5 minutes later I saw a helicopter heading in that direction, so I made a mental note to check on things in the morning.

Anyhow, to make a long story short, by the time I woke up (11-ish) the story was all over Google News. And it honestly never occurred to me to check Twitter. The first place I actually checked was blogTO.

So, maybe this demonstrates that the web has changed news, but I'm not sure it says anything about Twitter. Did anyone see stuff on Twitter before other sites?

<comment><USER8> The first place we checked was the radio. The first words we heard were "...if you are in the evacuation zone..." and thought oh-oh what evacuation zone is that? Full details didn't come soon enough so we went to the net: firefox search box "toronto evacuation zone", news results for, right-click a few links from recognized news sources (cbc,bbc,globeandmail)

</comment></comment><comment><USER9> Mainstream media is far from the best, but they tend to at least gloss over the cause of the explosions, whether people were hurt, and so on.

The commentary we got from what was posted went something like "Oh my god. Oh my god. Oh my god."

Twitter isn't really a competitor to the mainstream media, however what it may become -- if the mainstream media catches on -- is an early warning system of sorts. There are lots of eyes on it, and the news channels could possibly keep an eye on it to figure out where to send reporters.

<comment><USER10> bingo. 140 characters isn't a news service. But If you follow 100 people (frequent tweeters) in every city around the country/world, you _may_ get an early warning of something happening.

I think scoble had a post some time back - making the comparison between "news" and "noise". There is breaking news in the noise - the problem is filtering it out.

Anyone think there's potential in a breaking news stories site? There's probably a 30 minute window where twitter / fb / etc are really the only sources reporting... Enough to build a business model perhaps? (Maybe selling content / targeted adds at journalists)

</comment></comment><comment><USER8> The last thing I thought of was to go on twitter. :)

</comment><comment><USER11> Upmodded for the dose of reality provided by the blog post's comments...

</comment><comment><AUTHOR> @alex_c and @jamesbritt You have valid points, but I think in the wrong context. The magic here starts to happen when you are aggregating many disparate people's twits. Using the summize/twitter search for a particular term or region works very well. In this case, I caught on to what happened in Toronto a few hours ago from a twit I saw. As I looked deeper into it, none of the mainstream news channels were covering it, while there were dozens of twits about it. Some of them linked to several Youtube videos, one of which I included in the post.

I'm not the only one to notice the breaking news Twitter effect in general. Arrington and others have posted about it as well. I just find it disturbing that something that big happens and over 12 hours later, its doesn't even have a blip on the "mainstream" news. God forbid it was something more widespread than this accident. Instead, we get to watch more celebrity coverage, and then 3 hours of talking heads yammering about said-celebrity(s).</comment>


Microsoft introduces Universal Windows apps - chris-at http://wmpoweruser.com/microsoft-introduces-universal-windows-apps/ <comment><USER2> This is imho the best news ever from microsoft. Now I can target serverside, frontend, windows8 devices and windowsphone all with one language (javascript for me). Not bad at all

update: I have to add other news just announced. With winJS now we can target also xboxone, ios and android device And also the full framework is opensource under apache license

update2: winJS on github [https://github.com/winjs/winjs](https://github.com/winjs/winjs)

<comment><USER3> Couldn't you do this with javscript before and also get MacOS, Linux, and Android? Anything with a web-browser?

<comment><USER4> win8's js framework isn't just a browser with your code in it. They expose pretty much all of their API surface to JS with JS-friendly APIs and things like promises for async calls, so you're not stuck using dumbed-down apis or calling out to native code shims for things HTML5 can't do yet.

</comment></comment></comment><comment><USER5> The amazing thing is that you can potentially write all your code in C# and have backend/frontend logic for the web (ASP.NET), Windows, Windows Phone, and even iOS/Android (via Xamarin). Wow.

<comment><USER6> The amazing thing is that you can potentially write all your code in C and have backend/frontend logic for the web, Windows, Windows Phone, OSX, FreeBSD, OpenBSD, Tru64, VAX, Arduino, Linux Kernel, Windows Kernel, Mach, Hurd, and practically every processor or operating system ever built, and even iOS/Android (via Xamarin). Wow.

You can even link to and reuse that code from languages such as: C++, C#, Java, Ruby, Perl, Python, assembler, lua, scheme, lisp.

The future is gonna be so 1970.

<comment><USER7> C# is a much higher-level language than C, with a much richer set of libraries that can be relied upon to be everywhere. That's why it matters.

<comment><USER8> You can rely on C# being on all platforms by default? Linux and OS X? Really?

Last time I used Windows (several years ago), there were always apps that needed to download and install the latest version of the .NET runtime... - <AUTHOR> that still a thing?

<comment><USER9> int main(){ puts("Hello World"); }

This doesn't work in Windows. The standard entry point to Windows is "int CALLBACK WinMain( _In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow );"

C never really "ran" on Windows. C is built on top of abstractions to even run on Windows. A SegFault in standard C is supposed to be passed to a signal handler (in Linux/ OSX).

A SegFault in Win32 is passed to the SEH exception handler, to the __except{} statement in some function as the stack is unwound. (Oh yeah, __try{} and __except{} don't exist in "normal C", do they?)

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

The "OS Language" of Windows is C++ (through COM and COM+ interfaces). The "OS Language" of Linux and OSX is C.

The sooner you realize this, the easier programming on Windows is going to be. Windows never really supported C as a first class citizen. C code cannot easily call core Win32 libraries like DirectX. (It can, but it is significantly harder than just using the C++ COM interfaces)

C# works very closely with COM interfaces in Win32. And thus, C# is the second language of choice of Windows. The only reason C# hasn't overtaken C++ in everything seems to be politics.

Mind you, Microsoft fully supports C# Device Drivers. The lowest level hardware interactions in Windows can be done with C#.

<comment><USER10> I always thought that the whole WinMain() thing was an ugly mistake. The right way to do this would be to organise the libraries and startup code so that the simplest Windows GUI program was not 50 or 100 lines of boilerplate, but was instead something like;

      #include <windows.h>
      void main()
      {
        WinGuiInit();
        WinGuiMessageLoopRun();
      }

Or similar. Extra functions and parameters as required to setup custom icons, window classes, message handlers, whatever.

<comment><USER11> At least they provide the mainCRTStartup thing [1] so you can use main() in GUI executables. Regarding boilerplate, Win32 was designed as a very low level API, with MFC and other high level libraries to make things easier.

[1] [http://stackoverflow.com/questions/11785157/replacing- winmai...](http://stackoverflow.com/questions/11785157/replacing-winmain-with- main-function-in-win32-programs)

<comment><USER10> I didn't know about the mainCRTStartup thing, thanks. But it should have been the default - to me WinMain() is just a failure to understand what is best exposed and what is best encapsulated. My boilerplate reduction proposal is to provide a few helper functions to optionally avoid exposure to some of the pipework - just to make life a bit easier when starting out. MFC on the other hand is a massive new layer of compromises and other crud slapped over the top of the Win32 API - somehow managing to make it even more cryptic (YMMV). Also MFC postdated the Win32 API by a few years, so presumably wasn't considered as the first choice solution at the start. The first Petzold book was a C thing, MFC and C++ came later.

</comment></comment></comment></comment><comment><USER12> I'm still trying to figure out how/why this makes sense as a goal. Building an application that runs across multiple platforms in congruent spaces makes sense: iOS and Android and Windows Phone. When you move to running the same application across Laptop vs. Phone style platforms, even on modern hardware, you're looking at capabilities and resources that are radically different. I can see wanting to share certain common code, but a library system ala npm, bundler, cpan, etc., would handle that better than sharing a common code base/project. What am I missing?

<comment><USER13> The real key here is sharing business logic.

Microsoft apps are written using the MVVM (Model View, View-Model) framework. The idea here is that you would share almost all of your model code, and really only rewrite the view layer (XAML) per platform. You're also allowed to share the exact same views across platforms, but it's unlikely that will be a good experience for users, given the differences: screen sizes, input modalities, etc.

<comment><USER14> How is this really different from what exists today? You can write in C# for pretty much every MS platform already. If you're smart you're already writing your business logic with as little dependencies as possible on view specific logic so it's more testable, portable, etc.

<comment><USER13> Not sure if you have tried doing this. In practice, it's quite painful as you need to have a separate visual studio project file for each platform (phone vs tablet).

Further, the Phone implementation of WinRT is a subset of the tablet's, so sticking to the WinRT API alone isn't enough. Complicating matters further, the phone lets you actually use a Win32 subset which is not allowed on tablet.

This (appears to atleast) unify everything towards more of a write once, run on all windows platforms world.

</comment></comment></comment></comment><comment><USER15> Beware Apple, Google: Microsoft is starting to _get it_.

<comment><USER16> What about the internals? Is it still kind of a mess under the hood?

I heard they rebuilt the TCP/IP stack so it's not user land 32 bit driver anymore.

Any ideas if/when they'll modernize NTFS? Right now it's a race to the bottom to who has the worse FS, HFS+ or NTFS. WinFS or ZFS on OS X would be a godsend.

What about the registry? Any idea if they'll make that easier to manage for regular people? Am I still fucked if it corrupts?

What about sunsetting Win32? Or improving the driver model?

They're starting to get it on the UI side, but the reason why I use Mavericks as my personal machine and work on a LAMP stack has less to do with how useful or pretty the start menu is, and more to do with the godawful internals of Windows. Or have we just resigned ourselves to a crappy OS internally that we've all just gotten used to?

<comment><USER17> No it's rock solid underneath.

The TCP stack hasn't been a 32-bit driver since XP.

NTFS has been modernised already: [http://en.wikipedia.org/wiki/ReFS](http://en.wikipedia.org/wiki/ReFS)

The registry is fine - it's people pissing around in it that break it.

Win32 - haven't touched it for years. Driver model: not my problem.

Mavericks is a crime compared to windows 8.1. I use both, regularly. It's virtually impossible to use efficiently with a keyboard unless you have twisted mutilated hands to hit meta keys galore and half the apps don't actually survive more than 2 minutes without crashing.

<comment><USER18> All these points are fine but theres no reason to flat out lie about the quality of Mavericks....

1) Keyboard shortcuts are fine, if u use a OSX all day every day you will think Windows shortcuts are bad. That and you can edit pretty much every single shortcut in OSX if you are really that offended by them.

2) If your apps are crashing every 2mins (or even more than once a week...) your computer is f'd.

<comment><USER17> No they're horrible, inconsistent between apps and put emacs to shame.

It is fecked. Its a 2011 MBP with NVidia graphics. Total waste of money that was. Totally unreliable machine.

</comment></comment></comment></comment></comment><comment><USER19> I think the most significant part of this announcement is how they are dogfooding, Office for 'metro' and for the windows phone are using this Universal targeting.

<comment><USER20> They've been dogfooding for decades, that's a very core part of the developer culture at MS. (You can say many bad things about them, but they really do dogfooding all the time.)

<comment><USER21> Kind of... Still, they didn't use .NET, Windows Forms, WPF and countless data access layers in their core products (Office and Windows), which probably contributed to the fact most of these frameworks got obsoleted every few years.

</comment></comment></comment><comment><USER13> Interesting move in the right direction. I wonder if they'll take it further and let you write iOS and Android apps using Xamarin / Mono?

This would actually provide an easy path for developers to get into the Windows ecosystem while ignoring the whole market share issue. Combine first class integration with an awesome IDE (Visual Studio), and frankly way better tooling than Eclipse this would be a pretty compelling reason for me to use Xamarin, and by extension have a Windows run target for my app.

</comment><comment><USER19> This just in...Universal apps run on Xbox one.

<comment><USER22> This is interesting - Xbox one is their most interesting platform right now.

</comment></comment><comment><USER22> Looking at twitter it seems like XAML is getting a ton of love from MS. Go back 2 years and many were predicting that HTML was going to win the war on Windows; what gives/what's changed?

Disclosure: written more XAML than I'd care too.

<comment><USER23> What happened was that most third-party developers refused to use WinJS, and stuck with XAML:

[http://www.zdnet.com/windows-8-developers-are-shunning- winjs...](http://www.zdnet.com/windows-8-developers-are-shunning- winjs-7000025443/)

</comment></comment><comment><USER14> One thing I don't see mentioned, do universal apps support C++11? I can understand why it's not as easy to support native code across platforms (i.e. need to do some kind of fat binary thing), but think it's a little sad to see all the work done to support modern C++ app development kind of abandoned. Really annoying if you have to choose between an app being universal or written in modern C++.

<comment><USER9> Microsoft is one of the biggest supporters of C++11, and C++14 for that matter.

[http://msdn.microsoft.com/en- us/library/hh567368.aspx](http://msdn.microsoft.com/en- us/library/hh567368.aspx)

<comment><USER24> Well, they're certainly catching up, but they have a bit to go to before they match clang or gcc: [http://cpprocks.com/c1114-compiler-and-library- shootout/](http://cpprocks.com/c1114-compiler-and-library-shootout/)

</comment></comment></comment><comment><USER25> They need a funky catchphrase, how about :

"write once, run anywhere"

<comment><USER26> Think pure thoughts. :)

(for those who don't get the reference: [https://www.youtube.com/watch?v=bGX7N-CoaPo](https://www.youtube.com/watch?v=bGX7N-CoaPo))

<comment><USER27> I'm resisting saying Write once, debug everywhere. This sounds cool, but the road to this hell has been littered with many failures.

Dammit, there goes my resistance. Which apparently is futile. I'll show myself out.

If this does work its a cool things. Just microsoft needs to make c# and the .net framework open source and actually cross platform. Mono is a non starter for a lot of places.

</comment></comment></comment><comment><USER28> I am wondering whether they can make Windows Runtime's GUI avaliable for existing desktop appliacations. There are many professional applications needs a brand new API for user interface.

<comment><USER29> I believe they also had a segment about this for sideloaded apps.

</comment></comment><comment><USER30> Haven't looked at the APIs, but are the APIs going to scale between phone, tablet and 30" 4K monitors? It's relatively easy to make the same app to be adaptable between phone and tablet, or even laptop, but to make it look good on 30" 4K monitor is a completely different UX, if full screen. Or in high resolutions the apps run in windowed mode?

<comment><USER20> You can adapt any part of the app. I.e. you can simply migrate the app to be universal across devices, but if a specific part does not look good, then you can change the XAML/code behind for that part.

<comment><USER30> But do these "universal" apps still run full screen on 30" monitor? If so, then it's not a good UX. The benefit of a large high resolution monitor is to display lots of information at the same time, this frequently implies more than one app/window visible at the same time.

<comment><USER31> Yes, unless I am missing something. It's up to the developer (same as on Web w/ CSS Breakpoints) to accommodate the various 'breakpoints' or devices visually. To say it's poor UX is inaccurate, will there be plenty of unoptimized UI/UX full-screen apps? Sure, but the functionality itself is not poor UX.

</comment></comment></comment></comment><comment><USER32> This seems similar to Google's tablet/phone strategy taken to it's natural extreme. This makes me wonder if google will soon do something similar with the (currently separate) Chrome/Android ecosystem.

<comment><USER20> I don't think it will -- it's really hard for MS to provide the tooling for making universal apps more or less feasible, even if they all share most of the WinRT APIs. Integrating Chrome/Android will be much harder.

</comment></comment><comment><USER33> They really need to go both ways with their cross platform offerings.

I can use their technology to develop apps for other platforms, but I cannot use their technology to run those apps. That requires having the other platform.

It would be nice if I could not only develop cross platform apps for iOS, Android, and Windows Phone, but I could also run them on their Windows Phone platform. I would buy a windows phone if it could do that.

<comment><USER34> Why would they want to help you provide content for Android?

<comment><USER33> Because I would do it using their tools, so it would also be content for Windows Phone.

Given the current state, why would I bother making content for windows phone? Why use C# if it's a second class citizen on the majority platforms? Why even learn it if the only thing it's good for anymore is Web API?

Windows could be the universal platform but instead they are still functioning like it's something they could monopolize. Those days are over.

</comment></comment></comment><comment><USER35> Exciting! This is getting progressively closer to an ideal I call PAO (Personal Application Omnipresence [1]), wherein I use a single set of applications on all my devices. I am very happy to see progress in this direction, but there is still much more to be done in the future.

[1] [http://tiamat.tsotech.com/pao](http://tiamat.tsotech.com/pao)

<comment><USER36> Sounds like iWork.

</comment></comment><comment><USER37> Better description: [http://techcrunch.com/2014/04/02/microsoft-updates- visual-st...](http://techcrunch.com/2014/04/02/microsoft-updates-visual- studio-with-support-for-universal-projects-typescript-1-0-and-net-native-code- compilation/)

</comment><comment><USER38> I see this as equivalent to writing one application that targets both iPhone and iPad and even Android with one app targeting tablets and phones. The only really new thing is support for a single application but the design and UI work still needs to be addressed for each screen size.

</comment><comment><USER39> Some people here have mentioned this already but I am quite surprised with all the happiness and it's nice but... I have been writing apps on my Mac targetting asp.net, ios, android, wp8 and win8 with a lot of reuse and perfect frontends for two years. I love f#/c# and it works like a charm. Business wise it is nice that you have to pay only once but outside that what in god's name is so nice or special about this? I was hoping this would include a build system on Azure and a unified system using Xamarin all from VS. This is nothing at all. Wow I can target those 3 wp8 users from my win8 codebase app. Pfff. So it's just fanboys or almost nothing changes or I am missing some significant thing even though I am quite deep in this ecosystems for years now?

<comment><USER40> Agreed, it's been possible for years, especially with PCL libraries gaining significant traction last year. But these announcements and improvements have made things even easier than before. And to a certain extent have made what was once somewhat a "black art" to the layman C# devs now a official development track.

Not sure why you've been downvoted for stating facts. So I +1'd.

<comment><USER39> Probably because my tone and term 'fanboy'; I said it very carefully even as I am not anti MS or whatever; I use F#/C#/.NET every single day and like it. But apparently that was enough to trigger :) Thanks anyway; I was just surprised why suddenly whole HN seemed to hail in the new messiah... Easier is nice, but...

</comment></comment></comment><comment><USER41> So is this Silverlight but for WinRT apps instead of WPF apps?

</comment><comment><USER42> OK, and where is the code?

</comment><comment><USER43> They must live in quite a bubble if "universal" only includes Microsoft platforms.

<comment><USER44> I guess Google and Apple also live in a bubble? Not really sure what your point is. Is your expectation that Microsoft Universal apps also run on Android and Google? On Web browsers? Would you like them to use a different term?

<comment><USER45> Throwing around words like "universal" suggests a real cross-platform API, not "convergence of Windows with Windows Phone". Lots of people would like to see real cross-platform, not more vendor lockin.

</comment></comment></comment><comment><USER3> I'm shocked this didn't happen sooner. If you ever wanted to point to a problem with MS vision you can ask yourself why this didn't happen in 2005.

<comment> rkuykendall-com I think your underestimating the INSANE amount of vision and foresight that would be required to do this in 2005.

1\. The xbox 360 was released in 2005. This was essentially the first Microsoft console to run 'apps,' and those had to be architected specifically for the console.

2\. The iPhone was years away in 2005. Phones ran shitty little apps that had to be architected specifically for the phone.

3\. The iPad was years away. Microsoft tablets just ran XP. The idea of the iPad as a "bigger iPhone" was mocked to no end when it was announced. People thought they wanted OS X on a touchscreen. Microsoft would have thought the same thing.

4\. gMail has just been released. The idea of a true "web app" required remarkable vision and foresight by itself. Additionally, web apps had to be architected specifically for the browser (seeing a pattern?).

Even if Microsoft had seen 5 years into the future and predicted all these changes, the platform they would have created in 2005 wouldn't have had anything to run on.

<comment><USER46> The idea of a centralized "app store" was not new. People had been complaining about Windows not having Linux-like package management since the 90s.

Similarly, the idea of web apps taking over everything was not new. Microsoft was acutely aware of that, since that was Netscape's big idea (also Java was in theory the same threat - write once, run anywhere, make Windows unimportant). Again, all in the 90s. This is the most fundamental answer as to why MS didn't do this stuff before. Not because of a lack of foresight, but because their foresight was good enough to allow them to identify it as a threat to their monopoly.

Touch screen phones/tablets I agree were less obvious predictions, but even if MS did figure that out early on, it wouldn't have changed their motivation to fight back against Netscape and Java and similar technologies.

But now the tables have turned...

<comment><USER47> Microsoft had an application store in Windows XP. Remember "Find applications"? They had an online store of sorts that listed programs, but nobody bought anything on it because there didn't appear to be any vendors on it, and CD-ROMs were all the rage back then. App Stores have only really taken off as Internet speeds have sky-rocketed. That was not the case when XP was released; everyone was on dialup or barely slow ISDN if they were lucky.</comment></comment></comment></comment>


Ask HN: For a greenfield public API which to use: REST, GraphQL, other? Why? - <AUTHOR> Context: This product is building built with the idea in mind that other developers will build new and interesting things with the API exposed to them <comment><USER2> You can use Introspected REST ([https://introspected.rest](https://introspected.rest)) that allows you to fine-tune and balance between REST and GraphQL. No available libraries at the moment that can help you though so this could be a problem for your use case ;)

</comment><comment><USER3> Depends on your use case.

GraphQL is designed for the use case of a client talking over a thin long pipe that needs to talk to many APIs. As in, it's designed for API clients that are smartphones.

And there are patent licensing issues with GraphQL.

</comment><comment><USER4> Definitely GraphQL. Github, Shopify, Yelp and many more are now using GraphQL as their primary public API.

<comment><AUTHOR> Do you any any examples of a company having ONLY a graphQL API for public use?

</comment></comment><comment><USER5> It would help us answer the question if you told us more about your application.</comment>


Password reset - <AUTHOR>
 I cannot reset my password please <comment><USER2> Use the 'Contact' link on the bottom right of the page.</comment>


Java's URL.equals() Performs DNS Resolution - <AUTHOR> https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URL.html#equals(java.lang.Object) <comment><USER2> For context about the note at the end of the description, see: [https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4434494](https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4434494)</comment>


Goodbye to Painful Image Loads on Small Devices - <AUTHOR> http://zurb.com/article/1211/say-goodbye-to-painful-image-loads-on-sma

<comment><USER2> It's not a bad solution, but I don't think it's the best solution. Obviously, the thing that sticks out as being the most inefficient is that the small (or default) image is always loaded. This means that for tablets and desktop browsers there will be an extra image request that is never used. Not too bad, but on a page with a lot of images this could add up.

I haven't personally tried it yet, but it seems the best option out there at the moment is the Capturing polyfill by Mozilla ([https://hacks.mozilla.org/2013/03/capturing-improving- perfor...](https://hacks.mozilla.org/2013/03/capturing-improving-performance- of-the-adaptive-web/)).

Another thing I would suggest the team think of is not loading images by browser width only. If we're tying these libraries to the idea that they improve performance by optimizing which images are loaded - so that you only transfer the necessary amount of KB per page view - browser width is a bit removed from what you want. What you actually want to measure is the user's network speed (which can be done with libraries like Foresight.js : <https://github.com/adamdbradley/foresight.js>). Loading large images on a slow network isn't going to be good for performance. By using both browser size and network speed, you can optimize images for mobile devices over 3G or those connected to WiFi. Or desktops on broadband versus desktops on 56k modems.

<comment><USER3> Checking network speed is actually a great idea - we'll investigate this. The reason we use the img src (which as you noted means you might load two images) is twofold: so that if your image is the same aspect ratio, you'll get an immediate load of something before the better image comes in (without which you'll have a really nasty reflow). This also guarantees you'll get something that works if JS is disabled or unavailable.

Please submit pull requests or issues for ways we can make this better, we're all ears.

</comment></comment><comment><USER4> this solution does not work as domload is executed way too late and image replacement cause nasty reflow.

RWD images problem is much more complicated than this. you have to consider things like: \- dom reflow (img tag without width/heigh) \- requests (additional request to load default image) \- internet speed (you can use wifi on your phone, or 3g on laptop) \- choosing breakpoints

i wrote a blog post about this some time ago <http://gondo.webdesigners.sk/responsive-images/> apparently i'm not the first one thinking about using base tag. i've come across some old video (dont remember the link anymore) where it was refused because of "browser bug". unfortunately i never found out what bug is the guy referring to so i can just assume that it was already fixed.

</comment><comment><USER5> Their demo page fails to take into account pixel density, which is a shame since serving the right image to the right device is their entire justification.

Those images look awful on my Chromebook Pixel.

</comment><comment><USER6> This looks great! How do I specify a media query for different screen densities? For instance, if I wanted to serve a 2880px wide image to a 15" Retina MacBook Pro and a 1440px to a 'normal' computer?

<comment><USER3> There's a media query available (with prefixes, right now) for pixel density – a retina MBP reports it as 2 whereas a standard one reports it as 1. So you can have a media query for a pixel density >= 2, etc.

<comment><USER6> > with prefixes, right now

Right, which is what concerns me. So is this the expectation?

        <img src="small.jpg" data-interchange="[normal.jpg, (only screen)], [medium.jpg, only screen and (min--moz-device-pixel-ratio: 2),
            only screen and (-o-min-device-pixel-ratio: 2/1),
            only screen and (-webkit-min-device-pixel-ratio: 2),
            only screen and (min-device-pixel-ratio: 2),
            only screen and (max-width: 749px)]">

<comment><USER3> Lamentably, yes. I'd suspect the prefixes will drop off this year but we're sort of stuck with the browser adoption in this case.

</comment></comment></comment></comment><comment><USER7> How does this compare with existing solutions like: <http://adaptive- images.com/> ?

Obviously this is client side, does that make it better? Timing my page load around a set of loading images seems counter intuitive; there's lots of other stuff to worry about.

<comment><USER8> Looks like it doesn't require PhP, for one.

<comment><USER7> It also looks vastly less efficient, loading every image size in addition to the one needed.

The server side technique could be achieved in any language really, so it doesn't require PHP unless we use that library.

</comment></comment></comment><comment><USER9> Could someone explain to me why this is better/easier than just using CSS media queries myself?

Also:

> Whatever image you put inside the src of the image element will render by > default. Then, the Javascript will progressively load larger images based on > media queries that you pass into the data-interchange attribute.

So, for larger screens, there would be many requests for a single image? For example, if I drop a mobile-optimized image into the src and then view the page on a retina macbook, wouldn't this mean many image requests from the "mobile" version up through "full-size retina"?

<comment><USER10> _So, for larger screens, there would be many requests for a single image?_

The demo page doesn't seem to work that way. In fact, if you resize the window gradually, it won't load new images at all. You have to wait for a second after resizing for it to bother loading the new image.

<comment><USER9> I see! So maybe it decides which media-query it should be using and then makes the _one_ necessary request?

<comment><USER3> Correct.

</comment></comment></comment></comment><comment><USER11> How about only loading the best image once? Forcing the smallest image down the throat of everyone is wasteful and only benefits mobile.

</comment><comment><USER12> I'm a huge fan of Zurb and their work on Foundation, this looks like a good stopgap implementation. I just hope it isn't long until there is a standard implementation everyone can settle on, we don't want to end-up with <http://xkcd.com/927/>

<comment><USER13> I also am a huge fan of Zurb and Foundation but I'm not sure why this implementation is any better than picturefill. I still have to write a whole bunch of stuff I shouldn't have to write.

Markup for an image should not be several lines long.

<comment><USER12> I agree it shouldn't, this is why I call it a stopgap measure. Beyond the fact we both dislike extra markup I do find this solution cleaner than picturefill however, at least there are no extra divs inside the markup itself just a data attribute.

</comment></comment></comment><comment><USER14> I wouldn't mind having Interchange or this: [http://www.w3.org/html/wg/drafts/srcset/w3c-srcset/#adaptive...](http://www.w3.org/html/wg/drafts/srcset/w3c-srcset/#adaptive- images) as a standard

<comment><USER3> From what I've heard srcset is the likely eventual standard (as oppose to the picture element) but the timeline there is...long and murky.

<comment><USER13> Unfortunately the browser vendors get to make this up as they go along and they seem unwilling to take into consideration the many developers which are more in favor of the <picture> element because its so much easier to write.

Naturally, if/whenever it is implemented we'll all scuttle back to our keyboards and play with srcset .

</comment></comment></comment><comment><USER15> Does anyone know of a JS slideshow that leverages this? I would love to have the ability to load smaller images for a mobile device.

<comment><USER16> My guess is that it'll eventually make its way into Orbit, the slideshow from Zurb.

</comment></comment><comment><USER17> Is there an RSS feed of Zurb's blog? I can't seem to find it.

<comment><USER16> View the source, Luke:

<http://zurb.com/article/rss.rss>

or

<http://feeds.feedburner.com/zurb/blog>

<comment><USER17> Wow, I wonder why my extension didn't pick that up. Thanks.

edit: Ah, no meta tags.

</comment></comment></comment><comment><USER18> What if users want to zoom in on the picture ?

</comment><comment><USER19> I also ran across imgix.com a few days ago which is a CDN that does on the fly image resizing on GPUs.

Are there some examples on how you would integrate something like that here?

<comment><USER20> The two go together like peanut butter and jelly. As an imgix customer, I can tell you that the service is a godsend. It looks like you would just pass your imgix URLs into the data-interchange tag.

Or for bonus points, fork Interchange and have it pipe every image request through Imgix.

<comment><USER13> I just heard about this today... the pricing seems a little off kilter unless I'm understanding it incorrectly. How prohibitively expensive would this be for a SMB to implement?

The tech behind the service sounds fantastic, I'd love to be able to use them.

<comment><USER21> I don't have a lot of experience with imgix, but <http://filepicker.io> will resize your images on demand server side, and its all hosted in your S3 bucket/pretty reasonable pricing.

Example:

640x400 and formatted as a jpg

[https://www.filepicker.io/api/file/rHA62UiiQyCZdEyw6rgw/conv...](https://www.filepicker.io/api/file/rHA62UiiQyCZdEyw6rgw/convert?w=640&h=400&fit=crop&format=jpg)

200x200 and a png

[https://www.filepicker.io/api/file/rHA62UiiQyCZdEyw6rgw/conv...](https://www.filepicker.io/api/file/rHA62UiiQyCZdEyw6rgw/convert?w=200&h=200&fit=crop&format=png)</comment></comment></comment></comment>


Bootstrapping an Ultra Low Latency Trading Firm, Part 3 - <AUTHOR> http://veyronb.wordpress.com/2011/08/03/bootstrapping-an-ultra-low-latency-trading-firm-part-3/

<comment><USER2> The author seems to imply he reimplemented hash tables.

I was under the impression there was a fairly good number of high quality implementations of hashes tables in the wild and that it was a thoroughly studied subject.

"Not invented here" syndrome?

<comment><AUTHOR> For components not in the critical path, third party implementations are acceptable.

However, it is not surprising to see every piece in the critical path to be written in-house (feed handlers, for which there are many companies selling solutions) or rebuilt with heavy modifications (kernel).

I had intended to say hash function, but it was very late by the time I posted.

<comment><USER2> Looking forward to reading your next post then. We've worked a lot on fast data access and I wonder if you outperformed us.

<comment><AUTHOR> Do you have any latency numbers you could share? :)

<comment><USER2> We don't directly do HFT, we work with banks to help them do that well.

All the numbers I could give you is what our data engine (which is what we sell) gives on our test environment, I cannot share what our customers actually get once deployed and configured on their system.

Generally, they are happy. :)

We're going to post benchmarks soon as we're going out of stealth mode.

</comment></comment></comment></comment></comment><comment><USER3> Feels like a jumble of data. You should organize this somehow. The list of "high level" items seems pretty reasonable, but you left out historical data and backtesting.

<comment><AUTHOR> Neither are involved in the intraday production critical path. Maybe I should have explicitly used that phrase.

FYI: "Answer: For various reasons, (2) is the natural entry point ( _historical_ _data_ can be used in lieu of real data, strategy requires data, and building an _order_ _book_ _simulator_ can initially obviate the need for true exchange order entry), so let's start here."

</comment></comment><comment><USER4> Is interactive brokers actually fast enough? Or do you really need colocation? (for these types of strategy)

<comment><USER5> Max Dama wrote this regarding using IB to do low latency trading while a student but had interned at a HFT shop

<http://www.maxdama.com/?p=334>

The short of it is no :

Indicating there are 255 – 112 = 143 (!!!) hops and 124 milliseconds of latency. Obviously retail traders have no chance with HFT strategies.

But places like Lime are accessible to sophisticated traders and offer colo services

<http://limebrokerage.com/>

<comment><AUTHOR> I agree with the final conclusion, but this is a terrible way to measure system latency!

For starters, most exchanges block icmp packets, precluding a ping-based measurement.

Latency should be measured by actually going through their systems. For example, after sending a FIX message to IB, it's not known how well their FIX processor performs (at the very least, they have to do risk checks, so its not just cut-through).

<comment><USER5> I think the point is that if you're not co-located, network transit time from your servers to IB, not even including IB to exchange, is an insurmountable disadvantage.

</comment></comment></comment></comment><comment><USER6> Have always been curious about the details. Thanks for these posts</comment>


Ask HN: Feedback on HTML5 Mapping Library - <AUTHOR>

Hey Guys,
I'm just in the process of finishing off a new release of Tile5 (will finalize early in the new year) and would definitely appreciate some feedback on features and stuff people are really chasing in this space.  Here is a link to the sandbox that has the latest code for the library with a swag of demos:
http://sandbox.tile5.org/
The focus of this version (0.9.4) has very much been on fixing some things under the hood in the library that I knew I could do better.  Once this version is stable(ish) and released the next thing to do is roadmapping the way to a stable 1.0 release.
I probably would have asked for feedback earlier, but I really wanted to nail some of those gripes I had with the library before I felt comfortable doing so.
In terms of the things I am interested in the following are some questions I have:
- How important is it for people to be able to integrate "non-geospatially correct" maps.  I've done some work towards integrating images chopped by Zoomify, but there is still a little to do yet.
- I really would keep Tile5 as lightweight as possible, and as such would prefer just to support Mercator project rather than all the different projections that exist in spatial land.  Idea being if you want geospatially correct, then OpenLayers would be your best choice, but if you want a mix between geospatial and expressive mapping capabilities, Tile5 should get your vote.
There will definitely the occasional bug, and if you do find one then I'd appreciate reporting it at the github repo:
https://github.com/sidelab/tile5
Anyway, thanks heaps for taking a look and any feedback you have.
Cheers,
Damon. <comment><USER2> It looks cool and makes sense to use if you're looking at one of the _other_ map services, but it's not clear from your website why I wouldn't just use Google Maps - they seem to have many HTML5 features built-in.

I'm assuming there are valid reasons to use the other mapping services (i.e. OSM's Open Source License) and your framework, so perhaps you could make a chart showing feature comparison?

<comment><AUTHOR> Thanks David - we will definitely try and cover that somewhere on the site. I expect that in the majority of cases people who are comfortable with Google's terms that Google Maps would definitely be the right way to go - they've got a great team and build an awesome product.

Most of the interest I have had with Tile5 locally has been with GIS providers that build mapping systems that are for use within the confines of an organisation (i.e. not for public websites). In these cases you are required to purchase an Enterprise agreement for Maps and for some people this just isn't cost effective.

In these situations the fallback choice is either something like OpenLayers or a mapping vendors own mapping library. Most of those libraries lack the polish of the GMaps library.

Will definitely try and come up with some words that capture this for the tile5.org site.</comment></comment>