Musings on Business and Tech

Is Swift Ready for Prime Time?

To long-time Objective-C developers – especially those with an interest in modern programming languages – Swift is a very welcome and exciting step forward. At the same time, it can be frustrating at times due to the (current) state of the developer tools.

This is from Duolingo’s thorough and fair assessment of the pros and cons of building a production app in Swift. I myself have been burned too many times by Swift in recent months (having to rewrite classes in Objective-C when things didn’t go as planned) to consider it production-ready. But I’m glad to see that Duolingo is having success with it.

January 15, 2015   No Comments

James Mickens on the sorry state of web technologies

People think that Web browsers are elegant computation platforms, and Web pages are light, fluffy things that you can edit in Notepad as you trade ironic comments with your friends in the coffee shop. Nothing could be further from the truth. A modern Web page is a catastrophe. It’s like a scene from one of those apocalyptic medieval paintings that depicts what would happen if Galactus arrived: people are tumbling into fiery crevasses and lamenting various lamentable things and hanging from playground equipment that would not pass OSHA safety checks. This kind of stuff is exactly what you’ll see if you look at the HTML, CSS, and JavaScript in a modern Web page. Of course, no human can truly “look” at this content, because a Web page is now like V’Ger from the first “Star Trek” movie, a piece of technology that we once understood but can no longer fathom, a thrashing leviathan of code and markup written by people so untrustworthy that they’re not even third parties, they’re fifth parties who weren’t even INVITED to the party, but who showed up anyways because the hippies got it right and free love or whatever.

Via Steve Laniel, this entertaining harangue against modern web development is a must-read for all web developers.


April 2, 2014   1 Comment

Where Does Bitcoin Get Its Value?

Update: Based on some helpful comments on /r/bitcoin, I edited my original post to clarify that Bitcoin derives its value, only in part, from the costs required to produce it. However, without that it would be valueless, even if there are other things that contribute to its value. Not sufficient, but necessary.

Some fellow engineers I work with have been mining and trading Bitcoin since well before the mainstream hype of the last few months, and in talking to them I’ve become increasingly interested in it as well. It is one of the more elegant technological ideas to come along in a long time, and its greater economic, sociological, and political implications are also fascinating to me.

But when I first heard about it, I was hesitant to treat it seriously based on one fundamental doubt: how could a bunch of numbers spit out by a computer have intrinsic value in the same way that gold can? I understood how Bitcoin could have extrinsic value, based on things like trust and hype, but if that were all it were based on, why would Bitcoin be worth more than any other arbitrary currency one could create out of thin air?

And then I spent some time learning exactly how Bitcoin mining works, and discovered that there is, in fact, intrinsic value to the currency. (Funny how ignorance can lead you to dismiss things like that!) In order for Bitcoins to be created, a computer must solve a difficult math problem by guessing a number by brute force. This requires a running computer (these days, a powerful computer specifically built for this type of math problem), which in turn requires electricity, which was probably made with a fossil fuel or nuclear generator. So, in a way, you could say that the value of Bitcoins is at least partially derived from the fuel used to create the energy needed to power the computers that mine them.

But, you ask, what happens as computers get more and more powerful and energy efficient? Shouldn’t Bitcoins get easier and easier to mine, dropping the amount of energy required to mine them, thereby decreasing their intrinsic value? Turns out that part of the ingenious and elegant design of Bitcoin prevents this from happening. The difficulty of the math problem that the mining machines have to solve changes dynamically over time. The system as a whole aims to stabilize the difficulty such that these math problems can only be solved roughly once every 10 minutes. If the computers start to solve the problems faster, the difficulty across the system is increased. If the computers start solving the problems slower, the difficulty is decreased.

To be sure, there are other factors that contribute to Bitcoin’s value other than trust and hype. It shares many common characteristics with gold: durability, divisibility, combinability, homogeneity, and scarcity. All of these things factor together, along with the sociological stuff, to give Bitcoin its total value. But if it were possible to mine Bitcoins without expending resources, I believe their value would fall to zero. (There is another stopgap against this built into the technology: the total number of Bitcoins is capped at 21 million, so even if down the road it were theoretically possible to mine Bitcoins for free, only up to 21 million total could be harvested. That hard cap also contributes to Bitcoin’s scarcity, and therefore its value.)

And so, it is this fixed degree of difficulty, inherent in every single Bitcoin that will ever be mined, that ensures that there will always be some level of effort required, and therefore some baseline value in the coins. Without this fixed difficulty, computers would be able to simply pluck Bitcoins out of thin air, and despite all the other valuable characteristics of the currency, it would in all likelihood be worth nothing.


December 14, 2013   6 Comments

Everything Sucks

July 29, 2013   4 Comments

Is the Apple Developer Site Up?

I was sick of having to click two times to answer this question, so I made this.

Stack: Flask + Heroku

July 24, 2013   No Comments

Massive Electronic Surveillance

ECHELON is a code word for an automated global interception system operated by the intelligence agencies of the United States, the United Kingdom, Canada, Australia, and New Zealand, and led by the National Security Agency (NSA). I’ve seen estimates that ECHELON intercepts as 3 billion communications every day, including phone calls, e-mail messages, Internet downloads, satellite transmissions, and so on. The system gathers all of these transmissions indiscriminately, then sorts and distills the information through artificial intelligence programs.

Bruce Schneier, Secrets and Lies,2004, 2nd ed.

July 15, 2013   No Comments

Why mobile web apps are slow

Drew Crawford, in a long but well-researched essay on mobile app performance:

Think about iPhone 4S web development as [an]…environment that runs at 1/50th the speed of its desktop counterpart.  Per the benchmarks, you incur a 10x performance penalty for being ARM, and another 5x performance penalty for being JavaScript. Now weigh the pros and cons of working in a non-JavaScript environment that is merely 10x slower than the desktop.

July 10, 2013   No Comments

Famous Last Tweets

About a year ago, my friend and colleague Michael McWatters tweeted, “Oh no, if I die at this moment, my last tweet will have been about Andrew Breitbart…must think of something else. Beauty, science, altruism!” I replied, “@mmcwatters That would be an interesting site to make: the last tweets of famous people.”

In the weeks and months that ensued, we made good on our promise and built the site, which Michael brilliantly named, “The Tweet Hereafter.”  As our lives become increasingly transparent on sites like Twitter and Facebook, we leave indelible marks on the Internet that can’t be erased once we die.

In March, 2012, conservative blowhard Andrew Breitbart famously sent an apologetic tweet less than an hour before he died of a heart attack. And now, a little less than a year later, beloved Olympian Oscar Pistorius has been arrested on suspicion of murdering his girlfriend Reeva Steenkamp, who just yesterday tweeted excitedly about her plans for Valentine’s Day.

We’ve been collecting tweets like this for over a year and have finally decided to publicize the site. The site is certainly morbid, sometimes interesting, quite often meaningless. But we hope it makes you think a little bit.

February 15, 2013   No Comments

We Need to Break More Rules

A recent episode of the Planet Money podcast profiled Thomas Peterffy, one of the first people to experiment and be successful with high-frequency trading. They told the story of how he was doing algorithmic trading before any of the stock exchanges supported electronic trading, and before NASDAQ even existed. So how did he do it? That’s the fascinating part.

He made his money building a system that was able to assign a fair market price to stock options. He then compared these values to what the options were actually trading for, and arbitraged the difference. Back in the late 1970s when he first started, he would print out the numbers and bring them to the trading floor in a huge binder. When the stock exchange banned him from bringing the binder, he stuffed the papers into every pocket his suit had.

Then Peterffy got himself a system called Quotron, a computerized service that delivered stock prices to brokers (it was a replacement for the widely-used ticker tape system). If he’d used the system the way it was intended, he would’ve read the quotes as they came in on the Quotron, manually input them into his algorithm, run the numbers, and cashed in. But that wouldn’t have been that much better than just using ticker tape, and the fact that he had a computerized system meant the data was in there somewhere, in digital form. If he could figure out how to retrieve it he could pipe it into his system and save a crucial, time-consuming step.

Nowadays if we wanted to do something similar, we might look into whether the Quotron had an API, and if it did we’d query that for the information. If it didn’t have an API, well, we might look for another system that did.

But Quotron had no such ability. So he did what any hacker worth his salt would do. He broke out his oscilloscope, cut the wires on the Quotron, reverse-engineered the data signal, and patched it into his system. And you think screen-scraping is hard?

When NASDAQ, the first all-electronic stock exchange, came online, he was faced with a similar system. Brokers could trade directly on the exchange via computer. This was no doubt a huge breakthrough, but there was still no way his system could make the trades automatically. So, again, he busted out his oscilloscope and patched his way into NASDAQ.

Eventually the folks at NASDAQ caught wind of this, visited him at his office, and reminded him that his terms of use dictated that trades must be made via keyboard input, not by splicing into the data feed. They gave him a week to comply with the terms. So what did Peterffy do? He built a robot to type the trades out on the keyboard. Of course he did. When the NASDAQ official returned a week later, all he could do was stand agape, in awe of what Peterffy had done.

We developers could learn from Peterffy. The ease of software engineering has made most of us too complacent. When Twitter’s API terms change, we complain about it for a few days, and then change our business models to suit the new rules. But the real innovation, the real interesting stuff, the way we’ll make $5.4 billion like Peterffy did, is by bending the rules and building systems that give us a leg up on the competition, or, better yet, improve people’s lives.

To be sure there are lots of hackers on the fringes of legality doing very interesting things, but the rest of us are somehow content to toe the line. We shouldn’t do anything that’s illegal, but we should get close. Innovation comes out of spurning the status quo, not complying with it. It’s time for people who know how to build things to bend the rules a little, and see what comes out the other side.

(The podcast was based on Peterffy’s story as told in the book Automate This: How Algorithms Came to Rule Our World.)

September 13, 2012   2 Comments

Google Maps Bookmarklet Lets You Map Any Address on a Page

How often have you been on a site where you see an address but no map, and maybe not even a link to a map? I find this very annoying, so I created a little bookmarklet that solves the problem. To you use it, just highlight an address on a page and click the bookmarklet. You’ll be taken directly to Google Maps for that address. Easy enough.

Here’s the bookmarklet. To install it, just drag it up to your bookmarks bar!

Map It

May 4, 2012   No Comments