Some other things you wanted to know about Bitcoin, but possibly did not know you wanted to know ... (this follows my now-infamous Bitcoin 101 post, read that first, if you dare :)

<prelude>

I had a little trouble* building Bitcoin Core, but finally emerged victorius with a working "full node". Please check out this readme if you're interested in building one yourself...

</prelude>

Onward to a few comments about Smart Contracts...

<post type=informational>

Remember that time you discovered a poem you really liked had a totally different meaning when translated into French? And you were like, "whoa, who knew poems could even be translated"?

Yeah.

Well that's how I feel about blockchain transaction scripts. I thought Bitcoin and the blockchain was cool, but I had no idea how cool. There's another whole layer of amazingness here.

And I think ... this amazingness opens up some interesting business possibilities. Even better, I think relatively few people have investigated this deeply and hence this leads to some *unexplored* interesting business opportunities.

Allow me to digress for a minute, to talk about the epochs of Bitcoin (so far).

Epoch 0, the formative phase, was in the mid-2000s, when "Satoshi Nakamoto"* and a relatively few other academics had long and deep conversations about the potential value of digital currencies and how computational difficulty could be substituted for trust. Their motivations were political (libertarian, anti-government) and philosophical and technical; they did not appear to consider deeply the business implications of their work. During this phase Bitcoin was simply a term bandied about in emails and message boards, and was ignored by most of the 6B Earthlings.

* Satoshi was not his real name, and it appears likely "he" was actually a "they", and that they were English, not Japanese

This changed in November 2008, when Satoshi published the landmark Bitcoin paper, signaling Epoch 1, the implementation phase. In early 2009 Satoshi coded a reference client in C++, it was installed on six servers, and poof!, the Bitcoin network was born. The reference client (now called Bitcoin Core) implemented a "full node", a wallet, and a user interface, and was posted as open source (on SourceForge, but since moved to GitHub), enabling anyone anywhere to run a Bitcoin node. Due to the mechanism of mining, wherein operators of Bitcoin nodes are rewarded for doing so, everyone everywhere did so, and the network grew rapidly.

Criminals soon realized that Bitcoin provided an anonymous and untraceable way to exchange value, and the cryptocurrency was adopted for every kind of vice, from sex to drug dealing to arms merchandizing. This created demand for the currency, driving up its value. (The first Bitcoin transaction was 10,000 BTC for one pizza, but the value grew steadily thereafter :)

Meanwhile, the underlying technology of Bitcoin, the blockchain and the 2m+1 trust model and so on, began to attract serious academic and technical interest. The mechanism was verified theoretically even as it was being validated empirically in the real world by people with real money at stake. And Bitcoin began to creep onto the radar of businesspeople and investors.

That led to Epoch 2, the bubble, from early 2013 through late 2014, in which Bitcoin and the blockchain was celebrated as the solution to every problem everywhere, mostly by people who had limited understanding of what it was and less grasp of why it was interesting. The shark jump was probably the sensational and incorrect public identification of Satoshi Nakamoto by Newsweek Magazine. Meanwhile Andreesen Horowitz raised a blockchain investment fund of $BIG and tons of little startups spawned, and Chinese investors built gigantic Bitcoin mines. Which brings us to...

Today. Epoch 3, the reality, in which Bitcoin the currency is reasonably well established (the $1,000BTC bubble has burst, begatting $250BTC) and used by quite a few everyday people in addition to criminals, and not just for experimentation, and in which blockchain the technology is being explored for all kinds of business purposes.

So that was fun.

To understand the potential business value of Bitcoin transaction Scripts, we have to think about why they exist. Those idealistic theorists in Epoch 0 wanted it to be possible for *every* kind of business interaction to be enabled without a central authority, and especially without reference to any government. They were thinking wide and long term, and carefully built in a cool mechanism to enable arbitrary transaction structures. Immediate transfer of value from one party to another is the simplest case, and 99.99% of all Bitcoin transactions do just that. But far more complicated cases are inherently supported.

During Epoch 1 the proposed Script structure was documented and carefully implemented in Bitcoin Core. The current Script documentation shows that some of the more complicated cases have been deprecated (quoting: "Some of the more complicated opcodes are disabled out of concern that the client might have a bug in their implementation"), and there are documented bugs (Opcode CHECKMULTSIG: "Due to a bug, one extra unused value is removed from the stack."). The overall result is a stable definition of transaction logic supported across the entire network.

As businesspeople began looking at Bitcoin blockchain and Epoch 2 inflated, the phrase "smart contracts" began appearing in value propositions. I'm convinced most of the time it was simply parroted around, because there are very few explanations of what this means, not even incorrect ones. (The Bitcoin wiki has a good explanation, but it’s a bit technical and easily skipped*.) Most of the businesses created during the Bitcoin frenzy ignored transaction logic; they focused on Bitcoin as a ledger, Bitcoin as a currency, Bitcoin mining, and second-order opportunities like blockchain infrastructure and mining hardware.

* On my first pass I looked at it, said “hmmm”, and moved on…

Now that we're in the reality phase, we should examine the purported "smart contracts" value proposition in more detail. What does this really mean?

Consider the general case of a contract, a business agreement between multiple parties in which there is value exchanged. Each party agrees to input certain value in order to get specified other value as output, based upon certain conditions. Either all the parties trust each other, based upon experience or reputation, or a mutually trusted additional party is used to conduct an escrow, during which the various conditions are verified. The idea of "smart contracts" is that a complicated series of conditions can be evaluated without trust or any additional party.

The Bitcoin transaction script mechanism enables each party to contribute value as input, verified via the public key / signature mechanism, and arbitrary combinations of conditions to be evaluated, specified via additional public key / signatures. The existence or absence of each condition can be verified separately. When all the conditions are met in the specified combinations, all the outputs are authorized to the specified Bitcoin addresses. The mechanism provides for a two phase execution, similar to an escrow, in which the first phase defines the contract, and the second phase executes the contract, with the phases separated in time. There can be more than two phases, as with progress payments or periodic satisfaction of conditions. The minimum and maximum time elapsed between phases can be specified, as well as the time intervals required for each condition to be evaluated.

Examples of smart contracts include:

An escrow for purchase of an asset, by one or more parties from one or more other parties, with verification of certain conditions

A loan, in which one or more parties are lent value by one or more other parties, with or without collateral, with payments to be made at defined intervals

A service contract, in which parties agree upon compensation for services rendered over time, in which value is released as services are provided

An exchange of value, such as a purchase of an asset, in which the amount of value is contingent upon conditions which are evaluated over time

To nail the point home, let me expand on the first example. Suppose you are buying a house. You’ve agreed upon a price. Now you want to execute a contract to buy the house. You open escrow, make a down payment, and a number of contingencies are identified – you need a title search*, house inspection, earthquake review, loan qualification**, etc. The disbursements of funds are identified, payment to the seller, commission to the agents, fees to various vendors, etc. When all the contingencies have been met, and after a predefined time interval, the transaction is executed; the funds are disbursed, you receive a refund of the amount left, and title is transferred to you. How could all this be done with a Smart Contact in the blockchain?

The contract is defined and recorded as a transaction.
a. As part of this transaction, you make a down payment.
b. The contract identifies all the contingencies.
c. The contract identifies the amount to be paid to the seller.

Each party responsible for evaluating a contingency executes a transaction which updates the contact. For example, the home inspector performs the inspection, and executes a transaction which signifies the house has passed inspection, and charges their fee. The lender approves the loan, and executes a transaction which records that the loan is approved, and charges their fee. Etc.

As a special case*, the title agency performs the title search, verifies ownership, and executes a transaction to say so, charging their fee. This is a special case because they are responsible for transferring title when the transaction is completed, which is [for the time being] an offline operation involving the government.

When all the contingencies have been met, execution of the contract is triggered, and the funds are disbursed to the respective parties. The seller is paid, the various vendors receive their fees, and you receive the residual amount. The title agent records the title in your name (including a lien for the lender**), and you own the property.

* Of course, this would be even cooler if title were recorded in the blockchain, but that’s not necessary for this scenario to work

** Of course, this would be even cooler if the loan were recorded and serviced in the blockchain, but that’s not necessary for this scenario to work

Now that we have a preliminary grasp of Smart Contracts (we have translated the poem we like), where is the potential business value (what does it mean in French)?

It can be seen that translation of desired business terms into corresponding Bitcoin transaction logic is complicated. Consider a business which exists to help individuals and other businesses craft Smart Contracts, in exchange for a fee. Such a business would have the same relationship to Smart Contracts as outside lawyers have to ordinary contracts. The Smart Contract Consultants (SCC, your [better] name here) would create, verify, evaluate, and contest Smart Contracts on behalf of the parties. SCC would become expert in the creation of such contracts, and could carve out a significant niche in the blockchain value chain (p.i.).

I have a bunch of follow-on thoughts to this, presently half-baked, and this is already a longish post, so let me stop the business thinking here and continue separately in future.

Let me close with a couple of technical observations.

First, the genius of the Bitcoin transaction Script mechanism is that it is an explicit part of the blockchain. As noted previously, anyone can embed anything in the blockchain, including entire contracts or hashes of externally stored contracts. That would give integrity to the *existence* of a contract, but not to the enforcement of the terms of the contract. By including the transaction terms in the transaction logic, the entire Bitcoin network cooperatively enforces the contact.

Second, I feel the weakest part of the transaction Script mechanism is the treatment of time. Each transaction in a multi-phase contract is fixed in time, embedded in the blockchain. At time A, when transaction TA is executed, the most it can say about time B when transaction TB is executed is that it must occur within a certain time period. It feels like conditional time should be possible, with more flexibility. Perhaps after more study I'll conclude the mechanism is actually more powerful than I thought. But additionally, this constraint opens the door to more need for SCC, to correctly structure the transaction sequence within this limitation.

A relatively quiet day-before-the-Fourth ... it's always a bit weird when Holidays fall *on* the weekend, right? Anyway if you've followed me and my blog for any time, you know there's only one thing for me to do tomorrow: race the annual Round the Island race at Westlake. The race is around the Island :) a task somewhat "complicated" by the presence of a low bridge under which one must either capsize or lower one's mast...

This pic shows my mighty steed, "It's the Water", with a special rig to lower the mast, approaching the bridge...

Google Earth turns ten! Wow. Interesting to remember that when Google first bought Keystone and then launched this incredible service, they were not yet "Google", just an upstart search engine with a funny name and some big ambitions. Google Earth remains entirely amazing, familiarity might hide it a bit, but how cool is it to pick anything on Earth - the pyramids, the North Pole, the Champs Elysees, or your girlfriend's house - and poof you can see it. Very cool.'

So have you been listening to Beats 1? Yeah, it's okay - I think the DJs are excellent - but then there's always a song I don't care for (usually rap or hip-hop) and then I change the channel. It's a good option but only one of many. (And with streaming services like Slacker, there are many... )

This image from a Beats 1 ad seems to capture the problem perfectly. Everyone does not listen to the same music, any more than they eat the same food or wear the same clothes. I predict this will end in failure.

Interesting note: no, Apple is not adding DRM to songs you already own. Except ... yes, they are, kind of ... the key phrase in this story is "iCloud is not a backup service". So if you're thinking, well, everything is copied to the cloud anyway, I can just delete my local copies, then you are going to get DRM if you ever try to download the music from the cloud. So keep your local copies!

Good morning all ... and welcome to the fifth of July! Did you have a nice Fourth?

We did ... celebrated by competing in the Westlake Yacht Club's annual Round the Island Race* - in which the competitors must capsize their boats or lower their masts or otherwise navigate underneath a low bridge - and then watched fireworks from the back yard. The technology of fireworks is amazing, isn't it? Just thing of all the technology that goes into making cool visuals in the sky :)

* sorry but no, I did not win this year, some early and critical boat failures kept me way back, although I did make it under the bridge in fine style...

Onward to the Fifth!

Among all the other cool things that are happening this weekend, yesterday saw the start of this year's Tour de France, in Utrecht, in the Netherlands. I watched the first stage last night and am planning to watch the second in a few minutes, also in the Netherlands, between Utrecht and Zelande. I am most definitely looking forward to this year's Tour, not only is it a most interesting route, but for the first time in a long time all the favorites are riding, and it will be a horse race among [at least] four strong riders (Alberto Contador, Chris Froome, Vincenzo Nibali, and Nairo Quintana).

Right now I've decided NOT to follow my previous practice of blogging about each of the stages. In a weird way this is a result of my blog's Flight feature, which shows my posts on the same day in each previous year. I've realized that old TDF posts are just not that interesting. So ... be it.

[Update: I did accumulate thoughts and pictures throughout the Tour, which was one of the greatest ever; please see my galactic summary post for a grand report!]

I just mentioned this year's Tour de France starts in the Netherlands; apropos, TechCrunch has A look at the World's High-Tech Startup Capital. "It may seem superficial to say so, but one of the biggest advantages Amsterdam has in the tech world is that it’s a place where people want to live — and can actually afford to, even on a startup budget. Local leaders recognize how attractive their city is, and they're not shy about selling it on those terms."

Having recovered from my diversion into Bitcoin, including figuring out how tobuild Bitcoin Core with Visual Studio, I am on to my next technical investigation, how to extract HD video from a Tivo, edit it, and encode as an MP4. Stay tuned :)

Detroit News documents the decimation of one city block. I'm unclear on why news media use the phrase "predatory subprime lenders". These are businesses which makes loans to "subprime borrowers", people who would not otherwise be able to purchase property because they don't have a sufficient down payment or cannot afford the monthly payments. So the interest rate is high, to compensate for the risk. With such loans often the borrower can't afford the payments, doesn't have much or any money invested as a down payment, and hence abandons the property. Then the lender has to foreclose. This doesn't seems surprising or "predatory".

PS the comments are most instructive. Many readers seem to feel racial preferences had something to do with lender decisions to foreclose. I'd like to see evidence of that - correlation does not imply causality.

You can read more about the mission on NASA's New Horizons mission website. Coolest thing I learned: after its five-month-long encounter with Pluto, New Horizons will go on to explore other non-planets in the Kuiper Belt, including two over a billion miles beyond Neptune. To give you an idea of the distance, it takes light 5 hours to travel from Earth to Pluto.

It's Sunday night, I have a big week ahead. So naturally I'm going to get a good night's sleep... Bssst! I'm going to blog.

From Fortune's CEO Daily: "Which number is larger: $350 billion? Or $3 trillion? The first is Greece's total debt. The second is wealth that has evaporated from the Chinese stock market in the last month. The difference suggests we are paying too much attention to the wrong thing."

The Shanghai and Shenzen exchanges continued their rout Tuesday, despite heroic efforts to stop them. IPOs have been shut down, short-selling has been banned, more than 700 shares - about a quarter of the market - have been suspended from trading, and, oh yes, a government-backed fund is buying billions of dollars worth of stock.

Yikes.

I will say, at least China are reaping what they've sown. Greece seem being spared the consequences of their actions, with dire result. VDH comments America, like Greece, may end with a lawless whimper. "All the German euros in the world will not save Greece if Greeks continue to dodge taxes, featherbed government, and see corruption as a business model."

Yosemite rock fall changes face of world-class climb. "A massive sheet of rock fell from the vertical face of Half Dome in Yosemite National Park, making one of the most popular routes attempted by climbers in North America even more challenging, park officials said Tuesday." Whoa.

Have you been tracking the soap opera at Reddit? It's pretty interesting, and we public probably only know 1/10th of the truth. Anyway Steve Huffman, the original founder, is back on the helm. Judging from this public Q&A, things are going to get better. At least he has a sense of why people use Reddit, and a desire to help them do it. And he knew enough about their system to know this was the right way to reach them...

The other day I was having coffee with a friend at Coffee Bean, our local caffeinery, and they had a Bluelist QR Code next to the register. I asked the Barrista about it, and she had no idea what it was or why it was there. Staff training, anyone?

So okay, I launch Red Laser and scan the QR code, and ... the value is 4071. That's it. No URL! Boy, this is going to be the most successful in-store program ever!

Totally agree: Pompous Apple is Pompous, regarding their new "if it's not an iPhone, it's not an iPhone", ads. Steve Jobs would never have run these.

Fast Company: Why the Apple Watch is flopping. "How did this happen? The answer may sound like heresy to those who canonize - or even merely admire - Apple's designers. What if the Apple Watch, for all its milled and woven metals, all its appearances on the catwalk, isn't actually all that well-designed? So far, the Apple Watch doesn't seem very useful, and it hasn't proven that fashionable." I don't think it is flopping in the sense of not selling well, but I do think it hasn't changed the world. Few of my friends wear them, and tellingly, few seem to know why they'd want one.

Parenthetically, I've been wearing my 40-year-old pre-TAG-Heuer a lot more often. Sort of an anti-Apple Watch statement, I guess. And I'm still proud of my Pebble Steel...

Recently a contemporary (50ish) friend shared his thoughts on finding a job as a software developer today:

There are fewer fulltime positions now, and more contractor / parttime positions

It's harder and harder for experienced engineers to find work

A lot of the work out there is maintenance of old systems, not new development

I was thinking about this, and here are my thoughts...

<braindump>

A couple of huge things have happened in software, the cloud / web thing, and mobile. Most new development being undertaken today involves one or both.

The predominant language used for cloud / web things is JavaScript. A lot of the code is client side, all JavaScript, and the server side stuff has drifted around from Perl to Java to C# to PHP to JavaScript. On clients the main chunk of knowledge needed (besides JavaScript itself) is JQuery. This started as an attempt to create a cross-browser-independent way to do stuff (Microsoft IE being quite different from everything else), but evolved into a whole platform for client-side development. It is unwieldy but it's there, and to work in that world you have to get to know it. On the server side there's such a mishmash. There are two platforms, Windows and Linux, and they don't mix well, with separate development tools and frameworks. About the only thing you can say is all the current languages are "curly-brace" derivatives of C: Java, C#, PHP, etc.

All that said ... the big new thing is mobile. There are two platforms that matter, IOS / ObjectiveC and Android / Java. If I were trying to get a job as a software engineer today - building new stuff, not forensic debugging of 10-year-old still-working systems - I would be an app developer. And on the Internet, nobody knows you're a dog, or a 50+-year old engineer. I think with a mobile skillset anyone would be in demand.

So, how do you climb that learning curve? Well, the first thing is you have to get a Mac and learn OS X, enough to be a user. Hardly anyone develops *for* OS X, but just about everyone develops *on* OS X. I have installed OS X in a VM on my PC laptop, but I'm weird. Everyone just gets a Mac laptop.

Next, I would recommend learning IOS / ObjectiveC first. Android / Java is similar enough to be analogous, but it is a bit clunkier and has more variations. The development platform is XCode, from Apple. You join their developer program for $100/year and then download and install it. The first step in the learning curve is learning ObjectiveC. (Apple now have a new language called Swift, but it hasn't gained traction and ... I would not start there.) ObjectiveC is a mashup of C and Smalltalk. To learn it, I suggest reading the Big Nerd Ranch guide to Objective C. Yeah, that's what it's called, and it's a great hands-on learn-as-you-go guide. For an experienced engineer, I don't think this is going to be a huge curve. And it's a valuable skillset; ObjectiveC is used for IOS *and* OS X. It's also a step to learning C# or Java since they are quite similar.

After that, to learn developing for IOS you have to learn the intricacies of Cocoa. This is Apple's runtime library. It does a lot of the work for you, but it also hides a lot of the detail so it's a bit tough to get your arms around. The XCode environment is highly integrated with Cocoa, the seam between development and deployment is wiggly. (Think of it like [early-pre-.NET] VB on Windows.) To climb the curve, I suggest reading the Big Nerd Guide to IOS*. It helped me get through the initial "what the heck is going on here" to creating "Hello, World" apps for IOS. There is a lot beyond that but it sure is satisfying to be able to code apps that actually run on your phone.

* The Big Nerd Ranch guides are Kindle-able. I suggest having the book open in one window and XCode open in another, and toggling back and forth.

Building crap for phones is all very exciting, and a lot of cool apps are client-side-only, but many real applications need a server component. It turns out the same kinds of interfaces you build for web-client-to-server apps are also used for mobile-client-to-server apps. On the server, you create simple stateless APIs (the cool kids call this REST) which do all the real work for mobile clients (like database access). In some applications you even have both web and mobile clients, using the same APIs. Once you've learned coding mobile apps, you're probably going to want to learn more about the tech on REST servers, too. That's a subject for another post.

Anyway ...

I were an engineer looking for work in 2015, I would start teaching myself to build IOS apps. I'd get a Mac, get comfortable using OS X, learn to use XCode, learn ObjectiveC, and learn Cocoa. That's the biggest world in software development at the moment, and it isn't going away.

</braindump>

So what do *you* think? Please let me know if you have comments or suggestions!

NASA celebrates 50 years of planetary awesomeness. On July 14, 2015, New Horizons will take the first close-up pictures of Pluto, exactly 50 years to the day after Mariner 4 flew by Mars and took the first close-up pictures ever of another planet. Wow...

MG Siegler links Dennis Overbye: The inventory of major planets - whether you count Pluto as one of those or not - is about to be done. None of us alive today will see a new planet up close for the first time again. In some sense, this is, as Alan Stern, the leader of the New Horizons mission, says, "he last picture show."

It’s hard to write these words and know what they might feel like 50 years from now. I never dreamed, when Apollo astronauts left the moon in 1972, that there might come a day when there was nobody still alive who had been to the moon. But now it seems that could come to pass. How heartbreaking is that?

You could say that we have reached the sea, the very icy and black sea between us and the stars. Whether we will ever cross that sea nobody can say.

I can say, we shall cross it. Probably sooner than anyone can imagine. Life will find a way.

PS there are 182 known moons in the solar system, some nearly as large as Mars (Ganymede and Titan), with a wide variety of interesting characteristics. And literally thousands of asteroids, dwarf planets, comets, and other space dwellers. So I don't think it's even the last picture show.

"Darren Millar, the Shadow Minister for Health and Social Services in Wales, posed three questions to Welsh economy, science and transport minister Edwina Hart about recent UFO sightings and funding research into the phenomena. A Welsh government spokesperson responded in Klingon:

Jang vIDa je due luq. 'ach ghotvam'e' QI'yaH devolve qaS.

Translation: "The minister will reply in due course. However this is a non-devolved matter."

So I spent the last week / weekend sailing in the 2015 C-15 Nationals, an event I first sailed in way back in 1978. Whew. We didn't win, and although I almost killed my crew (longtime friend and fellow sailor Don, who is always the center of good stories) we did have some good moments too (best one, port tacking the entire fleet with the right side favored). It was so much fun, we might even do it again ... in another 35 years.

Onward!

What can I say about the Iran deal that hasn't been said elsewhere by others already? It's a horrible deal, truly Munich for our time. (This refers to the Munich agreement made by Prime Minister of the UK Nevil Chamberlain with Hitler's Germany, an appeasement which didn't work, and led directly to WWII.) We know it will enable Iran to develop nuclear weapons, and we can only hope it doesn't lead directly to WWIII.

Brings to mind the remark by Albert Einstein, that he didn't know what weapons would be used in WWIII, but he thought WWIV might be fought with sticks and stones. Sigh.

The worst part is I'm entirely unclear on what the US gains from this deal. It seems the only benefit is that President Obama can claim to have made a deal with Iran, and that's of no use to anyone.

Interesting: PayPal shares pop 8.3% after split from eBay. The acquisition of PayPal by eBay made sense at the time - the dot-bomb explosion made access to capital for PayPal very difficult - but now it's good that they're separate. PayPal can resume its original vision of becoming "the new world currency" :)

So, what programming language should you learn? I gave my answer a few days ago, ObjectiveC. The assumptive answer from this survey is Python, but I'm not so sure... I haven't seen it used for "real stuff" too often. The other "real" answer would be JavaScript, which is used for everything these days.

Here's a public service announcement: how to reenable Windows weather gadgets. Why, you may ask, should this be a subject for a blog post? Well because 1) Windows weather gadgets are nice and useful, and 2) Microsoft, in their infinite wisdom, recently disabled them. Permanently. Sigh.

Edit "C:\Users\USERNAME\AppData\Local\Microsoft\Windows Sidebar\Settings.ini". You will see a section for each weather gadget with a WeatherLocation and a WeatherLocationCode. You can change Weather Location to any text you like. To set WeatherLocationCode, visit: https://weather.codes/search/. The codes are eight characters, something like "USCA1228" (Westlake Village, California) or ""MAXX0002" (Antananarivo, Madagascar).

Just to clarify, I am not a global warming denier, I'm more of a global warming doubter. There's probably a warming effect caused by release of greenhouse gases into the atmosphere, but I don't think the end is nigh. Furthermore I don't think most global warming activity has anything to do with genuine concern, it's all politics.

Meanwhile, in real science news, NASA's Kepler discovers bigger, older cousin to Earth. "The newly discovered Kepler-452b is the smallest planet to date discovered orbiting in the habitable zone - the area around a star where liquid water could pool on the surface of an orbiting planet - of a G2-type star, like our sun." And it's merely 1,400 light years away ... a perfect vacation opportunity.

This year I restrained myself from posting about the Tour every day, but of course, I watched each stage with great interest. And it was an exceptionally interesting Tour, with a great route featuring lots of interesting stages. For the first time in many years all of the best stage racers in the world were present: 2012 champion Alberto Contador, 2013 champion Chris Froome, defending champion Vincenzo Nibali, and 2013 runner up Nairo Quintana. And there were lots of promising dark horses too, like American Tejay Van Garderen and Alejandro Valverde, as well as a slew of great French hopes like last year's runner up JC Peraud and Thibaut Pinot.

I've made one giant review post here, briefly recapping each of the tour stages. To enhance my enjoyment, I created Google Earth flybys of each stage - I've posted them here - and downloaded and edited each of the stages as broadcast on NBCsn - I've posted links to the torrents.

It ended up being the best Tour ever - certainly since I became a cycling fan - with great racing by amazing riders on a beautiful course. It seemed each day had an interesting storyline, whether it was the sprinters - Andrew Greipel vs Mark Cavendish vs Peter Sagan - or the potential breakaway winners - or the green jersey competition - or the huge GC battle. And mercifully there were no doping controversies ... yay. There was talk of doping when there were great performances, but no actual doping. Maybe even the talk will end soon... Onward!

So it begins ... stage 1, the Grand Depart. This year it took place in Utrecht, in the Netherlands, and it was a short individual time trial, just a bit longer than a prologue. The huge Dutch crowds watched Australian Rohan Dennis powered to an impressive victory, recording the fastest average time ever in a Tour de France time trial. Favorites Tony Martin and Fabian Cancellara were close behind to get 2nd and 3rd. The local favorite Tom Dumoulin finished a strong fourth, but the crowd and indeed the country was rooting for him to win.

Among the major GC favorites, defending champion Vincenzo Nibali (Astana) was the big winner, 43 seconds down on Dennis but seven seconds ahead of Chris Froome (Sky), 15 seconds ahead of Alberto Contador (Tinkoff-Saxo), and 18 seconds ahead of Nairo Quintana (Movistar). American Tejay van Garderen (BMC Racing) put in a solid performance, finishing one second faster than Nibali.

Stage 2 presented an interesting early challenge to the peloton; pan-flat, but with the prospect of wind and weather causing echelons along the Dutch seacoast, with a finish along Zeeland's Delta Project, a huge series of dams and artificial islands which hold the sea back.

The weather came in, but the wind did not, and in the end the result was a field sprint, with Andre Greipel triumphing. Fabian Cancellara finished third to take the yellow jersey. Mark Cavendish finished a disappointing fourth, especially so since his teammate Tony Martin stood to take yellow if Cancellera didn't win a time bonus.

Meanwhile, back in the field, the big news was a split in the field following a crash, which left Movistar and Astana nearly a minute and a half behind the peloton, costing favorites Vincenzo Nibali, Nairo Quintana, and Alejandro Valverde critical time relative to Alberto Contador, Chris Froome, and Tejay Van Garderen. The old adage that you can't win the Tour in the first week, but you can lose it, was definitely proved once again. Also caught out was Rohan Dennis, wearing yellow; his BMC team opted to press ahead for Van Garderen, abandoning Dennis and allowing Cancellara to take yellow. This was the sixth time in his long and storied career that Cancellara found himself wearing the leaders jersey early in the Tour.

Stage 3 was a flat stage in Belgium, but as all good Belgian stages with a killer little kick up at the end, the Mur de Hoy famous for being the finish of the Liege-Baston-Liege race.

As it turned out, the climb at the end was the least of the peloton's problems; a huge crash midway through the race took out several riders, injured yellow-jersey wearer Fabian Cancellara (who would drop out of the race after managing to finish), and forced an unprecedented neutralization of the entire race for 20 minutes at the bottom of the penultimate hill.

Once the race resumed the attacks were thick and furious. Joachim Rodriguez led the charge up the final hill, a perfect finish for him. Among the GC contenders Chris Froome led the way, finishing second on the stage and taking a little time from everyone else, as well as the yellow jersey away from Tony Martin, who sat second for the third consecutive day by only one second.

The best news of the day is that despite the horrific crash and the loss of Cancellara, the main contenders remained unscathed.

Since the Tour found itself in Belgium, what better than a stage with cobblestones, a la Paris-Roubaix? And indeed stage 4 delivered, with seven sections of pavé. Unlike last year there was little rain and few crashes, but it was a flat-out blast through the countryside, with clouds of dust everywhere and desperate chasing across gaps.

There was considerable GC action with Vincenzo Nibali pressing attacks in the late going, but in the end all the GC contenders finished safely together. The main effect was a general soreness in everyone's legs.

There's an ongoing debate about whether cobbles belong in the Tour, and I'm firmly in the "yes they do" camp. It's a true test of bike riding, a major part of the sport, and it makes for great spectating. I hope they include a stage with pavé every year.

And so finally the Tour found itself in France, and there was a flat stage which ended in a field sprint, and it was good.

The stage rode through the parts of Northern France where huge battles took place during World War I, and many of the graveyards and memorials were visited or ridden by, as various commemorative events took place.

Andre Greipel blasted to his second stage victory, increasing his tenuous lead over Peter Sagan in the green jersey points competition. The GC contenders called a truce for the day, recovering from a hard series of opening stages, and getting ready for more to come.

Stage 6 of the 2105 Tour was mostly flat, through rolling countryside and along the Breton shore, ending with a steep final ascent into Le Havre which promised to break up a field sprint.

Etixx-Quickstep's Zdenek Stybar survived last-minute crashes amid the final attacks to bring home the victory, while his teammate Tony Martin crashed heavily, finishing the stage but later dropping out of the Tour.

The day's feel-good story game via Eritrean Daniel Teklehaimenot, riding for first-time Tour invitees MTN-Qhubeka, who rode in the break all day scooping up mountain points to end the day as King of the Mountains, the first black African to wear a leaders jersey in a grand tour.

The GC contenders had another quiet day and there were no changes in the overall classifications.

Another flat transition stage, and another bunch sprint; but this time a different winner, Mark Cavendish broke his dry spell and came out on top. This was just about his last chance until Paris, as the remainder of the "flat" stages in this year's Tour are pretty bumpy and/or have uphill finishes.

The remainder of the peloton relaxed and followed, with no changes on GC. The green jersey remained on Andre Greipel's shoulders, with Peter Sagan lurking close behind and a good battle on that front looming.

Today's stage 8 was one of those lumpy stages you figure might go to a breakaway,especially because of a stinger at the end, the steep Mûr de Bretagne. But the field came together and then Alexis Vuillermoz attacked to take the win, barely holding off a hard-charging Dan Martin. It was the first French victory of the Tour.

Once again there was little GC racing, although Peter Sagan moved up into second with another close finish, this time fourth. Peter now sits second in both the yellow and green jersey competitions, how often do you see that? The final climb was steep enough to shed the pure sprinters, but a little too steep to enable Sagan to push through. His ongoing stage win drought is now becoming a side story to the tour, that's how well he's racing in every stage.

Man of the teams took the stage off, resting up for the pivotal long team time trial tomorrow.

The relatively long and bumpy team time trial of stage 9 was predicted to be crucial for the overall GC battle, and in the event it was pretty exciting, although it produced few changes overall.

Team BMC had hopes of repeating their recent victory in the Criterium du Dauphine, and putting Tejay Van Garderen in yellow. As it turned out they did win, but barely, and didn't quite gain enough time on Team Sky to dislodge Chris Froome from yellow.

A key surprise was the relatively strong performance of Team Movistar, which kept Nairo Quintana and Alejandro Valverde in the GC mix, and the somewhat disappointing time turned in by Team Astana, which had looked extremely strong in this year's Giro d'Italia, but which lost Vincenzo Nibali a little more time to his competition.

And so the first week of the Tour draws to a close, with nine tough stages including the tour's only ITT and TTT done. Ahead lie three tough mountain stages in the Pyrenees, four transition stages through the South of France, and then four concluding stages in the Alps, before the final parade to Paris.

Some conclusions from the first week:

Chris Froome is looking solid in yellow, as is his Team Sky.

Tejay Van Garderen is the GC surprise, and his Team BMC have done everything right including winning the team time trial.

Vincenzo Nibali most definitely does not look like the dominant champion he was last year, and Team Astana have lost something since their strong Giro showing.

Alberto Contador looks tired from his winning Giro campaign. Team Tinkoff have done well, but he has merely hung in there.

Peter Sagan is the rider of the tour, despite not having won anything yet. He's close on GC and close in the points competition, and has been right with the winners in every stage.

Andre Greipel is this year's top sprinter, having eclipsed Mark Cavendish. Of course Marcel Kittel is not here.

The French are not as strong or as fortunate as they were last year, when they took 2nd and 3rd, and will likely have to settle for trying to make the top ten.

It has been a great parcours so far. The ASO are to be congratulated on a great course!

Phil Liggett and Paul Sherwen remain on top of their game (pictured at right), and the NBCsn supporting team of Todd Harris, Bob Roll, Christian
Vande Velde (pictured above), along with the inimitable Jens Voigt are excellent.

So finally the Tour reached the mountains ... the first decisive stage in the Pyrenees, where the true contenders would be revealed and the pretenders would be exposed. A long flat prelude to get everyone warmed up, followed by a difficult mountaintop finish atop the HC climb to La Pierre-Saint-Martin.

And Chris Froome dominated the field, powering away to victory, decisively gaining time on all his rivals. It might be that this one climb determines the winner of the Tour.

Robert Gesink of Team Lotto Jumbo attacked first, signaling his recovery from injuries and return to the front of the GC field, but he was quickly reeled in. His effort did have the effect of shedding Vincenzo Nibali, who just hasn't looked at all like he did last year. Next came Alejandro Valverde, and the resulting increase in pace shed Alberto Contador and then Tejay Van Garderen, to the surprise of many.

As the climb continued inexorably on only Nairo Quintana was able to stay with Froome, and soon he too was dropped, leaving Froome to ride on alone to victory. It may be too early to declare Froome the overall winner, but it's clear that Nibali and Contador just don't have what it will take this year. Meanwhile Tejay can hope for a podium, if not the overall victory, and Quintana seems like Froome's main competition.

Stage 11 featured an HC climb up the legendary Col du Tourmalet and a mountaintop finish to Cauterets, but even so it felt a bit of an anticlimax after yesterday. There would be fireworks on the last climb, but perhaps a chance for a break. And so it was.

It seems in every Tour there is a decisive moment when the GC battle is shaped, and almost every stage after that features two races, one for the win, and one for GC. Stage 10 of this year's Tour was that moment, and sure enough there was a lot of energy expended on getting in a possibly-winning breakaway.

Rafael Majka got in the early break with two options, first, to help Albert Contador later should he attack on GC, and second, to hunt for the win. After a while the first option faded, and he powered on to take the stage, in fine fashion reminiscent of his KOM-winning form from last year, when he also won two mountain stages. Also in the mix was Dan Martin, who finished a strong second.

Among the GC contenders Vincenzo Nibali was again dropped on the final climb, but the rest of the favorites finished together. There was speculation that Valverde and Quintana might try a two-pronged attack on the final climb, but it fizzled. It could be that they try to hang in there tomorrow, and then reserve their real attacks to try to take back time for the Alps.

The mighty stage 12 of the 2015 Tour featured four big climbs, including two Cat 1 trips up the Col de la Core and the Port de Lers, before finishing on the HC Plateau de Beille. Adding to the fun, most of the stage was raced in a continuous downpour.

Further back, the GC contenders attacked Froome but could not gain any ground, and they all finished together. Alberto Contador and Vincenzo Nibali both showed signs of life, attacking to move to the front before being nailed back, adding to the entertainment.

Meanwhile man-about-the-peloton Peter Sagan once again took maximum points at the intermediate sprint to secure his hold on the green jersey. It seems clear now that he's going to win his fourth consecutive green jersey if he makes it to Paris, as he's able to score points every day, regardless of the course profile.

And so now the peloton head off across Southern France for four transition stages, which are each lumpy enough with enough variation to make it difficult for pure sprinters to win.

With a rather unusual profile, stage 14 seemed like a perfect opportunity for an intrepid breakaway to stay clear, packing a considerable punch however in the final uphill finish.

The peloton seemed to relax right away and a large breakaway pulled clear. Peter Sagan took maximum points at the intermediate sprint, after which there was a decanting and a smaller break pressed on.

On the final climb it seemed Romain Bardet had the winning move, only to be caught by Thibaut Pinot with 2km left. The two played cat-and-mouse, and suddenly were caught and passed by Steve Cummings of MTN Qhubeka, who outlasted them to win. It was a great victory for the wild card African team, a perfect way to celebrate Nelson Mandela Day.

Long after the win, the GC group reached the final climb and we were treated to another great race to the finish, with Nairo Quintana attacking at the end, only to be caught by Chris Froome. The pair gained further time on the rest of the competition, especially Tejay Van Garderen who was inexplicably dropped early on the climb.

Stage 15 looked like it might feature yet another breakaway, but the finished turned out to be too flat and hence too tempting for the sprint teams, and they kept things well in hand.

After a largely uneventful if pretty fast chase, the field came together into the finish at Valence, and Andre Greipel out sprinted the field once again to take his third victory of the Tour. Peter Sagan tried gamely but came up short, finishing fourth and holding onto the green jersey.

The stage was a quiet one for the GC contenders, who followed in the peloton all day, with no overall changes.

The last of the four transition stages looked set to be perfect for a breakaway, and indeed the last chance for opportunists in this year's Tour.

Two large breakaways escaped, with Peter Sagan once again animating the front in search of more green jersey points. Eventually the breakaways merged, leading to a series of attacks which were each pulled back.

The peloton reached the second rest day after a tough second week. A lot of tired legs gratefully took the day off. (But not too "off"; most riders still rode for a few hours to keep their bodies in race mode.)

Immediately ahead lie four mountain stages in the Alps, including the queen stage and a mountaintop finish at Alpe d'Huez, and then the ceremonial final day's sprint in Paris.

Some conclusions from the second week:

Chris Froome is going to win. He was too strong in the Pyrenees and his Team Sky have controlled everything.

Nairo Quintana is going to finish second. He is the only one with a chance to win, but he'll have to find that extra climbing gear he has shown in the past. His Movistar team have ridden well and he has Alejandro Valverde, the strongest teammate of any of the contenders, sitting in third and a contender himself.

Valverde is riding his best Tour ever and might finish on the podium.

Tejay Van Garderen remains strong. If he shows strength in the Alps he might even be able to move up onto the podium.

Alberto Contador still looks tired. You can tell he wants to attack, but can't. Still you can't count him out, he could come up with a big surprise in the Alps.

Vincenzo Nibali has fallen back further, and Astana have been non-combatants. It's doubtful he can doing anything.

Peter Sagan has locked up the green jersey with spectacular riding every day. Too bad a stage win has eluded him.

I honestly think this is the best route ever. It has something for everyone and each day has been interesting and beautiful. I can't wait for the Alps to come!

In the announcing peloton, Jens Voigt is rookie of the year. So often he makes an observation about the racing and you say "yeah, of course, that's obvious". But at first it was only obvious to him :)

As predicted the first of four serious Alpine stages produced excitement and drama. A huge break of 31 riders took off early, hoping to be left alone, but there was a gradual shuffling and decanting that reduced the group to a small number of strong climbers.

Further back the GC attacks came fast and furious, as Alberto Contador, Vincenzo Nibali, and Nairo Quintana each tried to take time on Chris Froome. And further back yet, in the days saddest story, Tejay Van Garderen suffered from a chest cold acquired on the rest day and was dropped immediately, before he finally withdrew from the Tour.

On the huge Col d'Alois Simon Geschke attacked the leading break and pulled a gap, which he held all the way down the perilous descent and defended on the final climb into Pra-loup. Andrew Talansky chased hard and passed Thibaut Pinot downhill to finish second.

In the GC battle further down the hill the contenders tried everything to put pressure on Team Sky. In the end Quintana was able to beat Froome to the line, but didn't pull any time. Nibali gave up more time and Contador suffered an untimely crash at the foot of the final climb which cost him over two minutes, virtually ending any chance he might have at winning.

It was a great day of racing with incredible views of the mountains as a backdrop; can't wait for tomorrow!

A long stage with seven categorized climbs including the massive HC Col du Glandon led to more great racing in the 2015 Tour's stage 18. Another large break of 29 riders got clear early, and it seemed any one of them might survive to the end, with the peloton mostly interested in the GC battle.

Vincenzo Nibali showed signs of life, attacking several times, and Albert Contador had the most active stage of his Tour. Ultimately they were reeled in by the relentless pace of Team Sky and Chris Froome, and in the end all the contenders finished together, with no changes to the overall standings.

The race for King of the Mountains also heated up - finally! - with Joachim Rodriguez and Romain Bardet in a pitched battle. Sadly for both of them it's likely that the overall winner will have to do well in both of the final mountain stages to stay in front, and will probably win the KOM as well. Such is this year's course ... too much climbing and too many mountaintop finishes for there to be a separate King of the Mountains.

It was great to see all the contenders animated and attacking, and it bodes well for tomorrow's queen stage of the Tour.

When the 2015 Tour route was announced Stage 19 looked to be decisive, and so it was, featuring an early Cat 1 climb right out of the gate up the Col du Chaussy, and then a huge HC climb up the Col de la Croix de Fer (the other side of the Col du Glandon from yesterday), a short climb up the steep Col du Mollard, a steep descent, and then finally a Cat 1 climb up to the finish at La Toussuire. It turned out to be one of the most eventful races of a colorful Tour.

Unexpectedly Alberto Contador attacked right on the first climb, bringing along Alejandro Valverde and Team Sky's Geraint Thomas, and blowing up the peloton right from the start. Chris Froome soon found himself isolated for the first time all Tour, and for the first time seemed a bit vulnerable. On the long ascent of the Col de la Croix de Fer it seemed Astana and Vincenzo Nibali were massing for an attack. With about 5km to go Chris Froome had a slight mechanical and poof, Nibali picked that exact moment to attack.

It definitely seemed he was going to attack anyway, but it also didn't seem quite quite the thing, to attack the yellow jersey during a mechanical, and there was a lot of heated discussion afterward.

Anyway Nibali pressed his attack and held it, winning the stage to gain back over a minute on Froome, and move solidly back into the top five. It was the first time all Tour that he seemed to have the resolve and power he had last year, and it makes one wonder what might have been, and what could happen tomorrow.

Meanwhile on the final climb Nairo Quintana also attacked, and was also able to bring back time on Froome, about 30s. He moved to within a plausible attacking range of the overall lead, given the climbing on tap tomorrow. Too bad he and Valverde weren't able to sustain this type of one-two punch back in the Pyrenees.

So it all sets up a great penultimate stage tomorrow, finishing atop Alpe d'Huez. Should be a perfect end to a great Tour!

Which brings us to stage 20, the final Alpine stage and the final "real" race of the 2015 Tour. This stage was originally supposed to pass over the Col du Galibier, but a tunnel blockage forced a re-route, and now the peloton passes over the Col de la Croix de Fer again, this time from the other side, before finishing atop the iconic Alpe d'Huez.

The peloton pretty much held together over the first climb, but a small group of attackers got away on the descent including Thibaut Pinot and Ryder Hesjedal. Pinot ended up hanging on to win, gamely fighting his way through the massive crowds on the Alpe.

Just behind a battle royal was brewing among the GC contenders, with first Alberto Contador and then Alejandro Valverde getting clear. Vincenzo Nibali suffered an untimely flat at the base of the final climb which kept him out of the action. Then the danger level rose to 11 as Nairo Quintana attacked, pulling a gap on Chris Froome and riding together with his teammate Valverde. Quintana nearly won the stage, grinding Pinot all the way up, and ended up gaining over a minute on Froome. But it was not enough, and Froome will be wearing yellow in Paris.

The final GC overall looks almost exactly as you might have predicted, with the "big four" of Froome, Quintana, Nibali, and Contador all in the top five, joined by Valverde. (Too bad Tejay Van Garderen dropped out, he had a real chance to break into that group.) The top ten was rounded out by more usual suspects, Robert Gesink, who had a great Tour, Bauke Mollema, Matthias Frank, Romain Bardet (the top French rider), and Pierre Roland.

Whew. What a great day of racing, capping a great three weeks. And so tomorrow we have the final ceremonial stage to Paris, which will feature the final non-ceremonial and hotly contested sprint for the final win.

The final stage of the 2015 Tour was reached after an air transfer from Grenoble, and featured the usual picture opportunities and champagne toasts on the way into town, before the usual 13 increasingly furious circumlocutions of the Champs-Élysées. On this day the rain came, and the organizers chose to take the final times on the first pass through the finish line, neutralizing the race and avoiding any last minute mishaps.

The final GC standings were Chris Froome, Nairo Quintana, Alejandro Valverde, Vincenzo Nibali, and Alberto Contador. Peter Sagan won the green jersey going away, Froome also won the polka dot KOM jersey, and Quintana also won the white jersey for best young rider. The most aggressive rider of the Tour was Romain Bardet, giving the French something to cheer about. And the top team was Movistar.

So ends another great Tour. Wow. As usual I can't quite believe it's over, and that I'll have to wait nearly a whole year for the next one.

I would be remiss if I didn't mention the extreme lameness of NBCsn, who kept cutting away from the final stage to show some NASCAR race. They nearly missed the final podiums altogether, and there were no post-podium interviews or final thoughts from Phil and Paul, etc. Completely stupid and horrible planning to break away from the finale of a three week event, blech.

So the 2015 Tour de France is over. Yay and boo, it was great, and I'm sad it's over.

Some final thoughts:

Chris Froome and Team Sky showed fine style winning the best and toughest Tour in a long time. And he's only 30, he'll be back.

Nairo Quintana is the best climber in the world, and nearly caught Froome in the end. He's only 24, he'll be back, too.

Alejandro Valverde had his best Tour ever. Would be great to see him as a team leader again, but most likely he'll continue to support Quintana and stay with Movistar.

Vincenzo Nibali recovered with a great win on stage 19 and showed flashes of the greatness from last year. Look forward to seeing him back in form again.

Alberto Contador just never had it this year. It's not clear whether it was the fact he had already won a tough Giro earlier this year, or ... something else. But he'll be back...

Tejay Van Garderen looked great until he looked terrible. He's still one big win away from being in the top tier.

Peter Sagan was amazing.
Hard to believe he's so young, I think he can win the green jersey another ten years in a row. Too bad he didn't win a stage, but five 2nds is pretty impressive, especially given the diversity of stages in which he was competitive.

Andre Greipel was this year's sprinter, but of course Marcel Kittel was missing.

Mark Cavendish was good but has clearly lost his dominance. Not clear if that's temporary. We'll see.

There's a class of great rider who just don't quite make their mark in a grand tour, like Alexander Kristoff, John Degankolb, and current world champion Michal Kwiatkowski. They were there but they weren't really a factor. Shows the difference between one-day racing and multi-day stage racing.

I have to mention Adam Hanson, who finished his twelfth grand tour in a row. Despite having a separated shoulder, too. Wow. That's a new record, and it's incredible.

I think I enjoyed the announcing more than any Tour in recent memory. Phil and Paul were great as always, but they were well complimented by the NBCsn team of Todd Harris, Bob Roll, Christian Vande Velde, and Jens Voigt. That's a lot of people but they did not get in each other's way, and they each bring something. I particularly like Vande Velde and now Voigt because they know the current riders and have critical insights.

The on-screen graphics are getting better but the tech still lags way behind what could be done. In particular showing the gradient during climbs (as they do in the Giro and Vuelta) would be great, and showing the speed differential between the breakaway and the peloton. Each year they get a little better...

Hmmm... NASA completes rocket design review for future Mars journey. Including starting development on the new Space Launch System. That's great, but, somehow my money is on SpaceX to get there faster, cheaper, better. I believe the best way for government to accomplish "big things" is to pay private industry to do it for them, maybe by establishment of appropriate prizes rather than time-and-materials-plus-margin vendor relationships. Anyway I guess it IS great that we're talking about launching stuff again. But I worry that this is just a boondoggle and not serious tech.

How to explain Donald Trump? "To explain the inexplicable rise of Donald Trump is to calibrate the anger of fed-up crowd that is enjoying the come-uppance of an elite that never pays for the ramifications of its own ideology." I don't think he'll be the GOP candidate, and I certainly don't think he'll win, and I also don't agree with a lot of what he says. But boy has he struck a nerve.

Meanwhile: Carly Fiorina: Here's what I will do as Commander in Chief. A pretty compelling straightforward speech, laying out exactly what she believes and will do. How great would it be to have a President like that? If you're at all curious about her, I encourage you to watch this talk. At least you'll know who she is.

Today is Windows 10 Day. So be it. The reviews are pretty lukewarm, of the "well it's not as bad as Windows 8 variety", and I'm not compelled to rush out to install it. Are you? Seems like waiting for a couple of patch releases might be a good idea.

Oh no ... C you never! Apple scraps plans for 4-inch iPhone 6c. This isn't a fact, of course, just an analyst prediction. If true, it means I'll have to hold onto my iPhone 5s a bit longer. I am not interested in a bigger phone, in fact, I wouldn't mind a smaller one.

Are you ready? Friday will be a blue moon. (The second full moon in a calendar month, which is rarely actually blue.) This is the first one since August 2012 (where were you?) and it won't happen again until January 2018, so make the most of it :)

One of my favorite New Yorker covers ever, amid heavy competition. I posted this in 2005 along with a note celebrating Lance Armstrong's *first* retirement, after having just "won" his seventh consecutive Tour de France. Who knew then that he was doping, that he would come back three years later, finish third, get embroiled in more doping controversies, and ultimately get caught, and that he would end up disgraced and forfeiting all those victories. The one thing we can't take away from him is that he's a cancer survivor and founder of the Lance Armstrong Foundation, now known as Livestrong, and has raised more money for cancer research and help for cancer victims than any other individual ever. I'm pretty ambivalent about Lance as an individual, but still a proud Livestrong supporter (and yellow band wearer).

I found this via my blogs Flight feature; interestingly I haven't posted on July 30 for seven years. So now I have :)

Here we stand, on the brink of August ... cannot believe my busy summer filled with bike races and sailing and work work work is nearly past (although in Southern California, August tends to be more summer-like than July!) Yesterday afternoon we participated in a SAIC* webinar for parents of incoming students, cannot believe in less than a month our little Megan will be off to college! Wow.

That's a picture of Meg fifteen years ago, at 3. Hehe.

* SAIC = School of the Art Institute of Chicago

And meanwhile...

Take a self-guided tour of the International Space Station. I must confess, I've spent way too much time "lost in space". Reactions: it's really small, and really messy. What do they do up there? The ISS is amazing but then again, it's actually just a boondoggle, built to give the Space Shuttle somewhere to go. Maybe the international cooperation angle was key. I love that the virtual tour ends at "the Russian section", which is "coming soon" :)

Cotton vs Kerry, it's no contest. The Iran deal is so bad, but the politicians behind it are worse. As poor as President Obama has proven to be, I do believe he is trying. Whereas with Secretary of State John Kerry, he is just going through the motions, desperately hoping not to be found out. We badly need a better class of politicians. (Like Tom Cotton...)

Back to space (more cheerful) ... Rosetta finds primordial soup of compounds on comet. "The European Space Agency (ESA) ... announced that the mission to explore Comet 67P has discovered 16 organic compounds, described as 'carbon and nitrogen-rich.' The agency says on its website that the discovery, made by the Philae lander includes four compounds that have never before been detected in comets." Little Philae managed to be quite useful before crash landing, and it might not be dead yet, either.

About those huge JavaScript frameworks... Two things are true: the frameworks are not that huge, and current websites generate huge pages which lead to slow response times. I agree entirely with Craig Hockenberry that engineers should test their sites under real-world conditions, especially for mobile. But I think advertising and tracking are the true culprits, not frameworks.

I missed this: Is one of these your dream car? A celebration of the 85th birthday of Italian design firm Pininfarina. I must confess one of these *is* my dream car :)