The Daily Parker

Politics, Weather, Photography, and the Dog

Slightly updated Weather Now

Because Microsoft has deprecated 2011-era database servers, my weather demo Weather Now needed a new database. And now it has one.

Migrating all 8 million records (7.2 million places included) took about 36 hours on an Azure VM. Since I migrated entirely within the U.S. East data center, there were no data transfer charges, but having a couple of VMs running for the weekend probably will cost me a few dollars more this month.

While I was at it, I upgraded the app to the latest Azure and Inner Drive packages, which mainly just fixed minor bugs.

The actual deployment of the updated code was boring, as it should be.

Changes to TDP on the way...maybe

Since development of DasBlog petered out in 2012, and since I have an entire (size A1) Azure VM dedicated solely to hosting The Daily Parker, I've been looking for a new blog engine for this blog.

The requirements are pretty broad:

  • Written in .NET
  • Open source or source code available for download
  • Can use SQL Server as a data source (instead of the local file system, like DasBlog)
  • Can deploy to an Azure Web App (to get it off the VM)
  • Still in active development
  • Modern appearance and user experience

See? Look-and-feel is in there somewhere. But mainly I want something I can play with.

I'm still evaluating them. This list was really helpful, and pointed me towards the successor to DasBlog, BlogEngine.NET. Mads Kristensen's newest blog engine, MiniBlog, has potential, but it doesn't seem ready for prime time yet.

The changes will come at some point in the next few months, assuming I have time to play with some options and modify the chosen engine to support a few features I want, like time zone support and location tagging. I also want to see about adding completely new features, like Google Timeline integration, or private journals and events, which require encryption and other security measures that blog engines don't usually have. Not to mention the possibility of using DocumentDB as a data source...

Stay tuned. The Daily Parker's 10th birthday is coming in November.

Stolen puppies and incompetent spies

Just some of the news stories I haven't got time to read this morning:

I will now continue doing tasks from two jobs ago while I think about things I'd like to do for my current job.

Why software sucks, redux

I'm reviewing a book I read about nine years ago, Why Software Sucks...and What You Can Do About It by David Platt. It feels like re-reading Keynes in 2008: really much more familiar than one would want, because no one seems to have learned much. From Chapter 1:

As with many areas of computing, user interface design is a highly specialized skill, of which most programmers know nothing. They become programmers because they're good at communicating with a microprocessor... But the user interface, by definition, exists to communicate with an entirely different piece of hardware and software: a live human being. It should not surprise anyone that the skill of talking with the logical, error-free, stupid chip is completely different from the skill of talking with the irrational, error-prone, intelligent human. ...

Because they're laboring under the misconception that their users are like them, programmers make two main mistakes when they design user interfaces. They value control more than ease of use, concentrating on making complex things possible instead of making simple things simple. And they expect users to learn and understand the internal workings of their programs, instead of the other way around.

The book is a little dated (October 2006), so some more, ah, concrete thinkers may have trouble getting past the 2006-era examples. But just like the idea that government investment can get an economy out of recession, the ideas in the book are still relevant and timely. Unfortunately.

Am I dreaming?

OK, I think the Fitbit "sensitive" sleep setting has to go. Last night, I know I slept for longer than my Fitbit believes I did:

I think it's interpreting very slight arm movements as actual restlessness, whereas it used to ignore most of them. If I'd only gotten four hours of sleep last night, I'd have crashed at my desk already.

I'm setting it back to "normal" sensitivity now. Let's see what it shows tomorrow.

Paying your own code debt

There's something kind of sad about spending several days extracting code I wrote for one company from code I wrote, while working at that company, for the company I now work for.

Then I gotta test it all...

Sensitivity

Yesterday I changed my Fitbit sleep monitor setting from "normal" to "sensitive." I got to bed last night at almost exactly the same time I went to bed Sunday night; and I got up this morning within 5 minutes of when I got up yesterday. But my Fitbit says I got 90 minutes less sleep last night. Here's Sunday night:

Here's last night:

This means either it's been overestimating my sleep, or last night it hugely underestimated it. Or, possibly, last night I just tossed and turned a lot more than usual.

I'll keep it on the "sensitive" setting for a week or so and compare it with how I feel in the morning. I definitely wanted to sleep in today, but it's also rainy and cold. More data is required.

Marriage equality: the software side

Remy Porter at The Daily WTF points out the implementation issues with marriage equality:

In a landmark decision, the United States Supreme Court revised the business requirements and integrity constraints on the marriage relationship, removing some legacy constraints and essentially updating to better reflect the actual needs of their end users. This policy decision now has to be implemented in every state, county, town and hamlet across the country. Every change breaks somebody’s workflow, and this one is no exception.

In the end, this might not be changing requirements, as much as it might be poor assumptions. We’ve all seen articles like Falsehoods Programmers Believe About Time and Falsehoods Programmers Believe About Names. The choices we make in writing software can reveal our own assumptions and biases, and it behooves us in the industry to keep that in mind when interpreting business requirements. @qntm explores that idea from a database design perspective, both before the Supreme Court’s decision, and after.

Porter's post got me thinking about data design for marriage licenses, and the bad designs I've had to implement because of politics.

Today is the longest day of the year

No, really. Today will have 86,401 seconds in it, as opposed to the usual 86,400 seconds that every day for the last 18 years has had.

Because the earth interacts with lots of other gravity sources in the universe—most notably the moon—its rotation sometimes speeds up and sometimes slows down. Over the last 18 years or so, the planet has lost an entire second because of these perturbations, requiring us to update our most accurate clocks to compensate. Of course, when those clocks get updated, there's a trickle-down effect, because so much of what we do in the 21st Century requires really, really accurate timekeeping.

So, this evening in Chicago, the 6pm hour will have 3,601 seconds in it as the master clocks all over the planet add their leap second at 23:59:60 UTC.

Enjoy your extra second.