Coding with Swift

When Apple shocked everyone and announced Swift at its Worldwide Developers Conference this past June, I shared in the excitement that surrounded the language. I watched Apple’s sessions on Swift and it seemed as if the language was something I could understand and probably even code with. After I made my way through the session videos, I posted on Facebook that I could see in my head how Swift worked and that I was excited to try and build things with it.

As per usual, I put this off for months. Until tonight, in fact. I don’t know why. I just didn’t know how to start. But today I had an idea for a project — I’ve been using this little web tool from Raven Software to build URLs for tracking goal conversions in Google Analytics for BSU’s online news stories. I have a spreadsheet where I’ve been building 10 different URLs for each story I post; it’s not a complicated process but it’s pretty detail-oriented (since you can’t have typos) and with the workflow I’ve set up it takes me about five minutes each time. But consider that I’ve built enough of these packages for enough stories already this year that I’ve spent a total of about two hours just building these URLs — this is basic string concatenation, and it’s something that could be easily done programmatically with the push of a button. Today it finally occurred to me that this was my entry point for learning Swift.

So I did it. And I now have 87 lines of code in a Swift playground that will take a hard-coded URL with a hard-coded value for the URL’s Campaign Content argument and run a series of loops to build 10 URLs. I’m pumped; the code is sloppy (I’m using four different loops with different sets of variables where I should be using one loop with three arguments passed into it that runs four times, for instance) and I still need to take the next step of learning how to take that working Playground code and put it into an Xcode project so it’ll actually run. I also want to build a UI for it so a user can enter the starting URL and the Campaign Content variable and pass them into the program, rather than having those hard-coded. But the code works.

There are lots of ways I probably could have gone about this — I could have done something with Google’s scripts to create these URLs and then dump them directly into a Docs sheet, for example — but this way I’m building actual MacOS software, which is something I’ve wanted to do since OS X came out in 2001.

I never could seem to adequately wrap my head around Objective-C, but so far Swift works for me. I want to finish this and figure out what to build next. This is so cool.

The Price of Software

The Price of Software

Earlier today, I jumped into an interesting Twitter discussion on the price of software started by iA. iA makes Writer, which I use at work almost every day. It’s become the go-to place for me to draft the various things I have to write as part of my job.

iA dropped a hint today on Twitter that it’s giving some thought to increasing the price of Writer for the upcoming Version 2. And not just by a little bit. They said this:

…and this:

It’s an interesting situation to think about. Much has been written about software’s seeming trend toward “free” as a price point; Ben Thompson wrote a good piece about this at Stratēchery back in October. If iA is going to attempt to swim against this current, it’s going to be interesting to watch.

Writer is great — as I said, I essentially use it daily. But it would be interesting to see if they would have success with this sort of business move. I am reminded of my early days working in the sports information office at Kansas State; not long after I graduated from college, I decided I wanted to be able to take some of my work home with me, so I spent $169 to buy my own copy of Pagemaker (I think it was the Adobe-branded version, just after they had purchased Aldus). That seemed crazy at the time, but since I wanted to work at home it was really my only choice. It would be another several years before I would have a laptop at work, and about six years and a new job until I had an Apple laptop.

That same “it was really my only choice” doesn’t exist today, and it certainly doesn’t exist for Writer. There are plenty of capable competitors that exist in Writer’s space — lightweight, minimalist applications that exists to facilitate a clean writing environment. Byword, for example, is completely capable, has a couple of features that Writer does not (like built-in ability to publish to a blog), and has Mac and iOS versions. Draft is a web app that has similar functionality. And that’s just a start; there are plenty of alternatives to Writer.

It’s difficult to imagine that Writer could add a killer feature that would be so game-changing that it would justify anything in the neighborhood of a 200 percent price increase.

Still. The very fact that they’re talking about it is going to make me pay a lot of attention to how they talk about Writer 2 going forward.

What I’m Reading

Missed New Comic Day last week, so Helen and I caught up today; today’s pull included G.I. Joe #10, Transformers: More Than Meets the Eye #23 and Batman #25. Pretty light haul for two weeks; Star Wars #11 was out today but the shop’s copy or two was already gone by the time I got there. I’ll have to look elsewhere.

Where to write, and more with If This Then That

Where to write

I find myself running into what seems to be an enviable problem – I currently have too many tools at my disposal in which to write things. Each one is similar, with differences that are slight enough to make each compelling in its own right. But, while each has its advantages, I haven’t devised a workflow in my head that might require that I use all of them simultaneously. So I have this sort of fragmented writing existence that is compartmentalized in several different apps.

Part of the problem I am having, honestly, is iCloud and its sandboxing properties which keep documents created in one app walled off and unavailable to other apps. So I’ve got a group of documents in one app; a separate group of documents in another app; a third group of documents in a third app; and so on, with no crossover. Using iCloud sort of forces your hand into one of two workflows: a single-app workflow where you use one tool for everything, or a fractured workflow where multiple apps become used for certain specialized purposes since you can’t share documents between them.

Here’s a rundown of what I’m using right now.

iA Writer

iA Writer was one of the first tools I played with that had Mac, iPhone and iPad versions so I could access the things that I wrote anywhere on any device at any time. I don’t use iA Writer on my phone all that often, but it’s become my primary writing tool for work; every news release or other story I write for work is written in iA Writer and then moved into InDesign for layout and distribution. I’ve created around 150 work-related documents in iA Writer, and they all live in iCloud. I have some personal documents here as well, mostly work in the last three graduate school courses I took and a couple of documents related to some personal projects I have worked on over the last year.

I like iA Writer; it’s become a comfortable writing environment, even though I’m creating some roadblocks for myself when it comes to importing that text into InDesign for layout (or into Pages for export into a Word document if I am using it to write a magazine story, for instance).

As an app-based service, iA Writer comes with some one-time charges; the Mac app is $4.99 and the iPad and iPhone apps are 99 cents each. Still, for less than the cost of two drinks at Starbucks you get access to a pretty solid round-trip writing environment you can easily access from your Holy Trinity of devices.

Draft

Draft is the most recent addition to my app arsenal; on the surface it’s a Markdown app like iA Writer, but rather than using a collection of native apps Draft achieves “access anywhere” by being a web-based application. Draft’s killer app-type feature is its functionality as a transcript-writing tool; it has the ability to embed audio with extremely easy-to-use and intuitive controls for navigating that audio, making the development of transcripts an absolute breeze.

Right now I have exactly four documents in Draft – and all four are transcripts of audio interviews I have done for work. Draft made preparing these transcripts almost trivial; it’s probably the only tool I have ever used that had specific built-in functionality to help with transcribing, but I can’t imagine any other existing tool doing this any better.

I’m honestly not sure what’s keeping me from going all-in on Draft. It has a free and a paid version, and the paid version is a $3.99-per-month subscription; the subscription is primarily an “I love this tool and want to give you money for it” support mechanism, as the freely-available version of the tool seems entirely functional. And Draft’s developer, Nathan Kontny seems to be exactly the kind of person I would have no problems giving $4 a month to in order to help him continue to build this tool; he’s obviously passionate about what he does and he’s putting every piece of his talent to work in order to build a tool that people will love using. Guys like Nathan Kontny are part of the reason I love technology — he helps to give a writing tool a personality, which is a pretty amazing thing.

If there’s any immediate change in my workflow, I could easily see it being a straight trade of iA Writer for Draft.

Google Docs

Then, I’ve got a pile of stuff in Google Docs, which is almost entirely work-related; I also did some grad-school work in Docs, mostly on group projects where I had to collaborate with people in other cities. But I have very few personal documents in Docs. I actually do very little with Google Docs, and I suspect that as Apple’s iCloud.com versions of Pages and Numbers come out of beta there won’t be any reason for me to use Docs for anything that isn’t related to work. Right now, though, Docs is great for building shared calendars and other workflow-tracking documents for me to share with our student workers.

But, the majority of that material could eventually be moved into something like Wunderlist or Trello, as well, which would leave very little reason to continue using Docs for much of anything.

Day One

Day One is touted as a journaling app, and it’s quite good. I have taken to writing all of my post drafts for andybartlett.com in Day One, because as a journal its entries are tied into a built-in calendar which makes it a nice archival tool. Day One entries also are written in Markdown, and simply as a Markdown editor Day One is quite good.

Day One is a lot like Evernote; the more I use it, the more I realize I should be using it. I’ve started using Day One for job journaling, to keep track of significant accomplishments over the course of a day (although I haven’t remotely gotten into a flow with that yet, mostly because I’m not entirely sure what I would be referring back to the entries for), as well, and it’s good for traditional journal-type entries where something that I want to write pops into my head and I need somewhere that isn’t a blog to stash it. This is another situation where I really like that Day One’s entries are married to a calendar.

Still, other than drafts of andybartlett.com posts, Day One wouldn’t be a good production environment for work; because of the calendar, it would be quite difficult for me to start a story on one day, then write a bunch of other stuff over the next seven days and then backtrack to finish that story. Day One ties your writing to when you start it, and with my work I’m more interested in when it gets finished.

The Rest

In addition to these four outlets, I also have a significant amount of data spread across two Evernote accounts (one that is basically for work and one that is for personal things — drafts of the comic book reviews I used to do for The Terrordrome were all originally written in Evernote); I’ve got a pile of stuff in a Simplenote account that I don’t hardly use any more – data that, honestly, I should migrate somewhere else; I’ve got some things in Vesper; and there are other things still that I have in Apple’s Pages and Numbers apps. So there are six other apps where I have data, and as with the first four, none of them can share information with each other due to iCloud sandboxing.

That’s 10 apps, total, each containing some unique segment of stuff I’ve written. I’d like to start consolidating most of that, but other than eliminating Simplenote I’m not entirely sure where to cut. I am going to hold out with iCloud for my storage until MacOS X version 9, Mavericks, comes out this fall, and I’m also going to see what happens with Apple’s Pages and Numbers apps at iCloud.com once those come out of beta. As I mentioned earlier I’m sorely tempted to switch from iA Writer to Draft, but if I did that I would want to pay for Draft just because I would feel the need to pay for something that I was using as such a central piece of my workflow.

Ideally, I could foresee a situation where I changed my sync solution from iCloud to Dropbox (which I probably just need to go ahead and do), switched to Draft as my go-to primary writing tool, and then distributed writing to andybartlett.com, Day One or Evernote from there.

Right now it’s all still a mess.

Spending time with If This Then That

If This Then That has proven to be a fun little automation tool that can tie some — but certainly not all — of the various presences I have scattered throughout the Internet’s vast series of tubes together into a cohesive presence.

For example, I’ve got sharing functionality set up in WordPress that automatically shares to Facebook and Twitter whenever I have a new blog post. I do this so I don’t have to jump over and immediately share that I’ve posted something on those social networks, mostly because there would eventually be the temptation to just not share because I couldn’t be bothered to spend the 30 seconds to do it or because I came up with some reason why the post shouldn’t be shared. So that’s usually fine.

I wrote an IFTTT recipe that automatically creates a post at andybartlett.com to share photos I post to Instagram. This is fine and it works great; it gets photo content to andybartlett.com, which in the past was exceedingly rare. But right now I’ve got a situation set up where an Instagram post fires an andybartlett.com post which fires a Facebook update; so if I share to Facebook when I post in Instagram, I get a double post on Facebook — one directly from Instagram and one from andybartlett.com.

The one thing that’s nice is that those auto-posts on Facebook aren’t triggering the IFTTT action I wrote to dump Facebook status updates into an Evernote notebook.

I either need to figure out a way to tweak the recipes to recognize post tags so that those round-trip type posts are situational and not automatic for every situation, or just scrap IFTTT for social posting automation.

Building a news clip database

Tracking the News

Since I moved to my current role in Bemidji State’s Office of Communications and Marketing in 2007, I’ve used a static list in InDesign to keep track of the news releases I produce each fiscal year. It looked a lot like this one, from FY2013, and it was basically the same for six straight years with some cosmetic changes every now and again. It had a simple purpose: keep an ordered list of the releases I distributed each year and track the code number assigned to each release depending on the range of distribution for each story. I moved it around, from InDesign to Pages and back to InDesign, but it was basically just a text list.

For this year I wanted to do something different; for a variety of reasons, I decided to move the list to a spreadsheet in Google Docs. It looks like this. Just a few releases into the fiscal year and it’s working perfectly fine.

In the past, I had been using Filemaker Bento to keep an archive of stories mentioning Bemidji State found in various places online. It started out as a way to keep track of stories sourced from Google Alerts, Yahoo! News alerts, Bing news alerts, etc. Eventually I added the stories we were pulling in from our clip service at BurellesLuce. I kept track of a variety of information about a particular story — where I found it, how I found it, whether I could identify it as coming from a story I had released, a number of things. Each story in the database had an entry that looked like this. This database fell by the wayside during the year that I served as interim director of the office, but the idea of this as a tool to help keep track of news mentions was solid.

This year our office is putting an emphasis on measurement; measurement of our traditional media efforts and of our social media efforts. I’m using tools like Sprout Social and Crowdbooster to track social; for traditional media, I’m using tracking functionality in Burrelles, and this year we’ve subscribed to Meltwater, which has some media tracking tools as well.

However, there are two questions that were going to be extremely difficult to answer related to print media, even with all of the tracking tools we have access to right now. Those questions:
1) Of the news releases distributed in X period of time, which one generated the highest number of stories in the media?
2) How many stories did a particular news release generate last year?

The basic data to answer those questions exists in the relationships between two existing tools – the news release inventory lists I’ve been maintaining by hand for years, and the measurement services that track our media mentions. However, nothing that I’ve done connects those two tools in any way, leaving answers to questions like these two, and others like them, just out of reach.

However, moving the release inventory from a static text list to Google Docs sparked a thought — this new spreadsheet could be moved to a database, the Bento database to track news clips could be resurrected, and I would have the data sources I would need to find the answer to those two key traditional media measurement questions.

None of the tools I was using would do the trick. Bento is a single-table database with no relationship-building capabilities, so rebuilding the clip database there was pointless. Moving the clip database to Google Docs would give me parallel spreadsheets and allow me to save all the relevant data, but I wouldn’t be able to get the information I wanted about the relationships between data in those tables. I needed an actual database tool, and I chose Filemaker Pro.

I picked Filemaker over something like PHP because of Filemaker’s ability to easily deploy to iOS devices; I figured that might come in handy if this became A Thing.

So I had a problem to solve; I had picked a tool to try and use to solve it. Off I went.

Building the database
My first task was to try and recreate the clip archive I had constructed in Bento in Filemaker. This was relatively straight-forward and not terribly difficult; the final result looked like this, which looks basically the same as the Bento version I built a few years ago. All of the information is there, save for the “related art” data box to save PDF versions of the stories; that no longer seemed necessary. Once this was built, I populated the database with about a dozen records as a starting point.

I then toyed around with deploying that database table to my iPad, just to see how that worked. It required that I set up permission levels to grant access to my iPad, and in the process of setting up this guest access I apparently inadvertently assigned an overall administrative password to the database. Which, of course, I had no chance of remembering later, which means I locked myself out of my first draft.

So I rebuilt it from scratch, tweaking a few things along the way, until I got it up and running again and repopulated with about two dozen records this time.

Once that was done, I built a second database table to hold the information I’m currently storing in Google Docs as a release inventory; that screen looks like this.

The release code that has been part of the inventories I’ve been keeping plays an important role here. It quickly occurred to me that this unique code, which had been used to segregate and sort stories by category, also could function as a unique database key. The structure of the key is straight-forward – 2014-B-X-015 is the 15th story released for Bemidji State in Fiscal Year 2014 as an extended local story (a geographic category that carves Minnesota up into zones that stories can be sent to; “extended local” draws a line through St. Cloud and includes basically everything north of that line). That structure also creates a unique identifier; there can only ever be one 2014-B-X-015; thus its suitability as a database key.

I created a connection between the media clip table and the story inventory table within the database, using that release code as a key identifier. Then, I used the portal functionality in Filemaker to pull that release code information into an individual story in the clip database; this would allow me to identify a clip as having come from a BSU news story, as I had always done in Bento, but then also indicate exactly which release in the news release inventory had been the clip’s original source. That connection looks like this in the story database; it shows whether the story was sourced from a release that came from BSU, then has a field where I can display the release code of the story it came from.This field is connected back to the story inventory table, which also dynamically displays a Bitly link to the release’s home BSU News.

The magic
The fun part came when I built a second tab for the news release inventory data table and connected that back to the clip database; it scans the connections that were made in the previous step and returns a list of every clip that has been tagged as having been sourced from that news release. So for 2014-B-X-002, the second tab lists every story in the clip database that says it came from a BSU release and also came from story 2014-B-X-002. That display looks like this.

Recap
Honestly, this is about the most-basic multi-table database you can build in Filemaker; the two individual tables are just straight-up data tables that could easily be reconstructed in Excel or some other spreadsheet, and there’s only a single point of connection between the two tables, identifying the release code for the source stories in any news clip identified to have originated from one of our news releases. Even the “magic” piece that returned the list of every story that had been tagged with a certain release code used a function that is built into Filemaker. The most challenging aspect of this was simply learning Filemaker; the documentation could be better, and the software is not at all what you would call user friendly. Still, what I built today could end up being a powerful tool for us, and I feel that to have built it start to finish in one day while learning the software on the fly as I built it was a solid achievement.

For the first time in a long time, I can say I built software. That’s a pretty excellent feeling.

Summer of Software: Filemaker Pro 12

Today was my first real attempt to build something useful in Filemaker Pro, and I made solid progress.

My vision is to build a database that will allow me to maintain an archive of media mentions of Bemidji State coming into the office through our various measurement channels — Google Alerts; Yahoo! News alerts; Bing alerts; daily hit digests from Meltwater; random things we find on social media; things we dig up by hand; whatever is out there that we can identify. I then would like to have an ability to cross-reference this with the categorized listing of the news releases I distribute from the office over the course of an academic year. This would help me answer questions that are basically impossible for me to answer right now, like “what were your five most successful press releases last year in terms of the number of stories they generated” or “how many media hits did we get off of X story you wrote last November?”

I worked through two key steps of this development project this afternoon. The first was to build a table in Filemaker to enter the contents of a news clip from an online source. Having used Filemaker Bento to build a similar archive of news clips several years ago (the maintenance of which fell by the wayside during my interim director appointment), setting this up wasn’t especially difficult; I already had a basic template in place, it just needed to be built for Filemaker. I have this built, but honestly it’s easier in Bento; Filemaker could stand to adapt some tricks from its younger sibling in this regard. But, it’s done, and save for the functionality I included to store a PDF image of the story, which I dropped in Filemaker, it has all of the features I had built into the Bento version.

The second part wasn’t particularly challenging, but I also successfully deployed this database to my iPad. It was nonsensically difficult to find instructions on how to get this set up in Filemaker’s documentation (mostly because there are items in Filemaker’s menus that do not have entries in the documentation, which is just silly), but the actual process was quite simple once I found the right menus.

The next step in the process will be to build a second database table to keep my news release list, which is now being stored in a Google Docs spreadsheet, which will be straightforward as building the clip database was this afternoon.

From there, things get more complex, as I need to learn Filemaker’s functionality for building what will likely be a third table that will act as an array attached to that news release list to maintain pointers to stories in the news clip data table.

A future step would be to figure out a way to automatically dump stories into the database using Filemaker’s Open Database Connectivity (ODBC) functionality. That seems like pretty Serious Business™ where software development is concerned; it might be fun to take a run at that if/when I can get the base version up and rolling.

As is typically the case with software, I see in my head how this should work. The trick now is to learn how to build it.

That Summer of Software thing is something I came up with just now. Fun. Considering I’m putting effort into learning Filemaker and I’ve started playing around with Final Cut Pro, it does seem somewhat appropriate. Even though summer is more than half over.

Projects

Now that I’m done with graduate school save for my final paper and a comprehensive final exam, I’ve started giving some thought to what to tackle next. Grad school hasn’t been challenging, really, but having it hanging over my head constantly for the last two years, including summer school, has been incredibly taxing. It’s been a distraction, pulling my attention away from just about everything else with the mere fact that it’s been something that’s been constantly on my mind since August of 2011.

Right now, my “what’s next?” list has three projects. Those are:

• Write some software. This is a project I have already started; initially I want to work on doing some development for Filemaker Pro 12 as part of a project for work, and I think it’s finally time to stop making excuses and begin learning how to do iOS development. It’s something that has fascinated me since the very first moment I held my first iOS device, a third-generation iPod Touch.

For Filemaker, I want to start building a project for work. I maintain a series of spreadsheets in Google Docs to keep track of my news and social media calendars for work; right now there are three. One with an inventory of news releases I distribute over the course of a given year; one is a calendar of upcoming events on campus that I use as a coverage planner; the third is a similar calendar for scheduling social media posts, which is a new initiative for this year. With this system, I don’t have an easy way to answer questions like “what media outlets picked up X story?” or “what stories were picked up by the most number of media outlets?” I think I can use Filemaker to build something that can answer these questions for me.

For iOS, I have all kinds of ideas. There are things I could build for work; I have ideas for things I could build in order to support Brad’s new initiatives in athletic media relations; there are things I could build to help deliver publications and presentation materials. I also have an idea for a game, to digitally resurrect something from the late 1990s that has been gone for awhile and never got the virtual version it deserved.

• Write a book. Taking inspiration from this, I have an idea for a similar encyclopedic look at something that I’m pretty sure has not yet received this sort of formal treatment (although there are several web versions, but none that do exactly what I have in mind). This will take a ton of work, but I think the end result could be cool.

I also have had an idea for a work-related book in my head for about 10 years; it’s something that is right in my wheelhouse, and I have the ability to gather the assets I would need to write this book at my easy disposal through work. And, it’s a subject that deserves to be written.

So, ultimately “write a book” might become “write two books.” We shall see.

• Finish my postcard project for my friends. Just over a year ago, I put out a call to my friends on Facebook to request postcards – “Ask me to draw you something, and I will send it to you on a postcard.” I expected a few responses, and I ended up with a list of about 36 of these to draw. I had this idea that I’d do one of them each week. The first one was done for Megan in early June of 2012. By October, I had done eight. I finished a ninth in November, and have barely touched pencil to paper since then save for the Megan Fox piece I started in May. I need to get this off the ground again, and get my friends the cards they asked for. Maybe not a card a week, but at least a card every other week.

I also need to start drawing Lego Gagas again; I’ve scrounged up some great reference material on Pinterest that needs to be Legoized.

Thoughts on today’s WWDC keynote

untitled

WWDC Keynote thoughts

Phil Schiller had the day’s best line – “Apple can’t innovate any more, my ass.” You have to love that. The big reveal for iOS 7; a glimpse at MacOS 10.9; new MacBook Airs with obscene battery life; a new Mac Pro that looks to be beyond worth the 10-year wait for the new enclosure.

iOS 7

This is a beautiful operating system. Beautiful. This is what Apple does – consistent iterations on a successful formula to change it slowly over time. Just about every new feature that was announced today is something I can see myself using regularly – particularly Control Center.

  • One thing I don’t make good enough use of on my phone now is the Notification Center; the changes to that coming in iOS 7 might be enough to get me to take better advantage of this feature. – I’m going to listen to Radio. A lot.
  • AirDrop could end up being pretty useful, but it’s going to have to be extremely compelling to consider moving away from DropBox for that sort of sync.
  • I’m definitely curious to check out the new Camera app. My photos are scattered all over the place; I haven’t made efficient use of the various tools I have to share photos (or to take them really). Some photos are taken directly in Instagram. Some are taken in Camera first and then Instagrammed. A couple of them I initially took in Vesper. I need to start taking every photo on my phone in Camera, and then moving them out to other services for distribution.
  • watch the animation in the video for Messages. See the translucency and the layering of the elements? How the keyboard feels like it’s floating over the message thread? That’s beautiful.

The people who are already throwing fits online that iOS 7 isn’t a radical-enough change from iOS 6 don’t understand Apple anyway. The same can be said for the Android bloggers who are playing the least-surprising game of [“Simpsons Did It” and doing feature comparisons. iOS7 is a great-looking OS, and I suspect that almost immediately after upgrading any app that doesn’t update its icon so it will look good beside the stock Apple apps will lose its place on my Home screen. The new features are welcome, compelling and useful. I’m looking forward to it.

MacOS 10.9

“Mavericks” is kind of a ridiculous name for a software update, and it’s interesting that Apple has finally decided it has run out of cat names for its core OS. There wasn’t much revealed about MacOS 10.9 today, but there were four features that I suspect I’ll be making good use of – tagging files in the OS, the tabbed Finder (which has been a long time coming), better support for multiple monitors (I have a 30″ LCD as my primary display and use my MacBook Pro’s screen as a sidebar at work), and the iCloud Keychain.

I’m not going to lie, there was a fist pump and a “YES” when I saw screenshots of the new iCal. I hate the paper desktop calendar motif of the current iCal, and the MacOS 10.9 version is gorgeous.

No announcement of the price or a window for availability other than “fall,” but it seems like a relatively safe bet that Apple will continue the $29 update price it used for 10.8.

MacBook Air

I have not purchased a new computer for myself at home since Nov. 2003, when I bought my Dual G5 Mac Pro. I’ve been interested in the Air since it debuted; I love the form factor and the portability, and technology has finally caught up to the point where Apple can put what by all accounts is a pretty excellent computer inside the case. Apple’s touting 12 hours of battery life – 12 – for the new Air announced today (the 13-inch version anyway; the 11-inch gets a paltry 9), and has doubled the amount of on-board flash memory while keeping the price the same. The 13-inch model with 256GB of storage and a RAM boost to 8 gigs for about $1,350 is incredibly tempting…

Mac Pro

Tim Cook said last year that Apple would have news on a revamped Mac Pro sometime in 2013. “Sometime” was today; take a look at what they unveiled. Apple has taken the G4 Cube from 2000 – which was a really cool enclosure for a computer, even though it wasn’t a very successful product and Apple killed it after one year – and gone completely nuts with it to design the new Mac Pro. This machine is insane; the amount of power Apple has crammed into a 9-inch-by-6-inch cylinder is ridiculous.

Conspicuous in its absence – much discussion about iCloud, at all, at least in any of the recaps from today that I have read so far. No discussion on improvements to the service or new features beyond the Keychain in Mavericks, and nothing said about improvements to the Core Data sync features that have just been torn to shreds on dev blogs for the better part of this year. The iCloud and core Data labs at WWDC start on Wednesday, and there’s a Core Data session Wednesday afternoon, so perhaps Apple have some new things to share then.

One final note – not at all lost on me was Apple’s heavy use of Gilt in the screenshots and other demo materials for MacOS and iOS today. That is a pretty clear indicator of the demographic they’re targeting (quite successfully).

(Everything I read about WWDC today came through in Steve Jobs’ voice in my head. It was weird. But sort of cool. It was fun to imagine him on stage saying “Mavericks” many times.)

Conversations with a 15-year-old, Draft and a new computer

Conversations with a 15-year-old

While watching a coffee commercial with Penelope Cruz:

Me: “Hey, it’s my girlfriend Penelope Cruz.”
Megan: “You sure do think you have a lot of girlfriends.”
Me: “Well, Penelope Cruz is one of my few top girlfriends.”
Megan: “Few top girlfriends? Whatever, dad. Her eyes are weird; it’s like she’s looking at two different things at the same time.”
Me: “She’s just bedazzled by my cuteness and doesn’t know where to focus.”
Megan: “Right. She can’t even see you.”
Me: “But she knows.”

NSA wiretaps

The Guardian broke a story last night about the National Security Agency’s program to mine information on millions of phone calls on Verizon’s cellular network; essentially, the government is farming information on phone calls made for every person in the country.

There was an interview with Glen Greenwald, who wrote the Guardian story, on MPR today over lunch; the interviewer asked him if he was worried whether the NSA’s phone-tapping program would be able to play a role in identifying the source who leaked him the information; he simply responded “I don’t want to talk about that,” and the interview ended.

And now it’s out that the NSA also are similarly mining Internet data; no surprise there. Story on CNN.

This is what happens when you allow the government to expand its powers because “I have nothing to hide.” Because eventually you can’t possibly have anything to hide. “Privacy” doesn’t mean protecting secrets that you don’t want anyone to find out; privacy means you have a right to lead a life that is none of the government’s business. It’s hard to imagine “we have the right to secretly collect information on every single one of your communications and store that information indefinitely for whatever reason we see fit” should be legal.

New computer update

Last week, I upgraded my laptop at work; I traded up from a 2009 MacBook Pro to a screaming fast new Retina-display MacBook Pro with 16 gigs of RAM and a 500-gig SSD. Seriously. Screaming fast.

For the first time in a very long time, I feel like I have a machine that performs near the speed that I think. I haven’t had to wait on anything; I want to do something, the computer responds. There’s no hesitation. I don’t wait for anything to load. I just decide I want to do something, ask the computer to complete a task and it’s done.

Honestly, I’m probably overestimating just how fast this new machine given what I have traded up from. My 2009 model was being overworked to the point that I was estimating spending somewhere in the neighborhood of 30-45 minutes every day waiting on spinning beach balls. In the few days I’ve had this new computer, I haven’t even seen a beach ball — let alone wait for a task to complete to necessitate having to watch one for a countable segment of time. Because that was starting to drive me absolutely insane.

New tool: Draft

The Internet is awesome, and there are always fun new toys to discover. Today’s fun new toy is Draft. Draft is a Markdown-enabled web-based writing platform; it also has added a media player with some very clever keyboard shortcuts for navigating playback for helping with transcriptions.

I used Draft for the first time this afternoon to transcribe audio from an interview I did this morning. It worked like a dream. The controls for controlling the audio were incredibly intuitive and easy to use, and it made for probably the smoothest transcription I’ve ever done.

Draft is like a lot of web services in that it has a fully functional free account, with some added features that require a subscription. I am already using two Markdown environments — Day One and iA Writer — and I’m not sure how Draft would replace either of them so I doubt I’d be in the market for the paid version. But I’ll dive right for it when

The only hiccup I encountered when using Draft was that it didn’t natively play the .WAV audio files that are generated by Evernote’s audio-recording function. I had to export the audio from Evernote, convert it to an m4a in QuickTime so I could put it into Draft.

LEGO Shellraiser

I picked up a LEGO Shellraiser on eBay for Helen; it was a no-minifigs auction that didn’t include the turtles or Dogpound’s van, so it was pretty cheap.

We finally got it built this morning, and it’s a pretty disappointing model. Visually it looks very cool, but functionally it’s quite poorly designed. The mechanism that is supposed to allow the wheels to raise for sewer mode or whatever mostly just collapses under the weight of the vehicle, and it creates a serious structural problem with the windows; the support beams for the wheels don’t allow enough space to build adequate support for the windows, which are attached only by a 2×1 brick. So the slightest pressure will collapse them. The frame for the roof also isn’t sturdy, so pushing the wheels up to use the whee-raising mechanism as intended usually just shoots the entire support pillar through the top of the model. It’s a cool-looking vehicle, but it’s screaming for a redesign.

New computer day, Lego Star Wars, and today’s comic haul

New MacBook Pro

I’m writing this on my absolutely awesome new MacBook Pro; it’s a Retina display with 16 gigs of RAM and a 500-gig SSD. I’m still getting everything up and running; I have reconnected to my cloud services, which would have had me up and running and doing work almost immediately if I would have needed to do that. Except for some files and my non-iTunes music, I’m basically functional right now and I haven’t moved a single file off of my previous laptop. It’s just all there with the cloud storage.

The Retina screen is everything it’s supposed to be; the clarity is amazing, and the little things you run into when traveling about the Web that aren’t optimized for the high-resolution display just look muddy and sad.

I’m downloading Diablo 3 to put this thing through the paces; I have heard that it supports the Retina display’s full resolution, and I’m curious to crank all of the graphic settings up and see what this machine can do. Unfortunately or fortunately, however you look at it, since my World of Warcraft account is still active I’ll probably have to check that out too. Y’know, for science.

The only issue I’m seeing right now is with our home WiFi; it probably is related to both of my DropBox accounts trying to sync while I’m downloading the Diablo 3 client and goofing around online, but every couple of minutes every download operation stops and has to reconnect. I will be interested to see if this continues once these massive simultaneous downloads are finished.

Lego Star Wars: The Yoda Chronicles

The new Lego Star War special, The Yoda Chronicles, debuted on Cartoon Network tonight. The girls absolutely love these, and awesomely they have served as a gateway drug to Star Wars for them.

This episode hooked me in the first minute with a sign that said “Coruscant: 15 parsecs” with a subhead that says “A parsec is a unit of distance.” It’s a great “we-know-40-year-old-nerds-are-watching-this” shot at the oft-discussed Han Solo claim from Star Wars that he “did the Kessel Run in less than 12 parsecs,” which led a bunch of nerds to speculate that George Lucas mistakenly thought it was a unit of time. Awesome.

The basic plot is actually pretty interesting, from a Star Wars nerd perspective, too. Count Dooku and Gen. Grievous plotted to steal the Kaiburr crystals from the lightsabers of four Jedi Padawans; those crystals were combined to create one “super crystal” which the pair took to Kamino and used to power Sith-enhanced clone troopers.

Cartoon Network led into The Yoda Chronicles by playing The Padawan Menace and The Empire Strikes Out back-to-back; we have had Padawan Menace on BluRay for awhile, and it’s very good; Empire Strikes Out wasn’t quite as good (although the Darth Maul character is hilarious) but was still pretty funny. I will have to pick that up for the kids as well.

Comic Haul

Today’s pickups for #NewComicDay.

Morning Glories #28

G.I. Joe #4

G.I. Joe: The Cobra Files #2 (this was released on the 22nd, but I just got around to getting it today)

Transformers: More than Meets the Eye #11 (this is six months old; somehow the shop didn’t get it pulled for me, but there was a copy sitting on their back-issue racks today. So I got it)

I was also planning to get Transformers: Robots in Disguise #17, but that wasn’t in my pull box. I should just bail on those and go digital.

Helen’s story, too many words on Transformers: Legends, and a recap of my weekend movie blitz

Helen’s lion story
A couple of weeks ago I had the girls in my office for a half-hour or so to account for some unusual schedule quirk between Mel and I. During that visit, Helen took a red pen and wrote a story for me on two Post-It Notes. Here is her story (with her spellings).

“Once apon a time there once was a lion that was 74 years old and was good at socker. And a professional ninja and his favorite subject was geography.”

Tell me you wouldn’t read the rest of that story if there were more Post-It Notes.

Teaching social media in schools
https://twitter.com/schacademy/status/339383538723979264

I just think there are way more important things to teach kids without diverting more valuable education time to something like social media…

Transformers: Legends
There’s a game available on iOS and Android called “Transformers: Legends”; it’s a free download with in-app purchases, and I started playing it about a month ago. It is a typical game; you can play for free, but your actions are limited by the game’s currencies — two of which you can buy for real money if you are so inclined.

The three currencies are credits (money used to pay to combine a Transformer’s robot-mode card with its vehicle or other alt-mode card to create a more-powerful version, or to use cards as raw materials to upgrade other cards); Energon (an “energy” that is used to undertake missions; each attempted mission segment costs 10 Energon. You start with 100 but can increase your upper limit to 136 by progressing through the game); and Battle Cubes (which are used one at a time to buy essentially pointless player-vs-player battles, and more importantly to begin fights with bosses in special weekly events called Episodes). Energon gets used up pretty quickly; you can spend a full charge of 13 turns in a few minutes, and when you have emptied the full 136 it takes 2 hours to recharge. Battle cubes can be expended in less than a minute, and recharge at a rate of one per hour. The Energon and Battle Cubes can be purchased with money.

Each turn in a “mission” has one of several outcomes — you play a mini game to shoot down incoming rockets by tapping them to earn credits; you discover one of three common or uncommon character cards assigned to that mission; you get to face off against a “boss” that has about a 20 percent chance to drop a rare-quality weapon; or you play the worst implementation of five-card Monty ever in a game for a chance to win a rare-quality character card. The rare is one of five cards on a board, which are flipped over and “shuffled,” and you tap a card to select the one you think is the rare. However, you will quick learn that the shuffle animation is the same very time and offers no clue as to where the rare ends up. So to win, your best bet is to just pick one of the five cards and stab it every time until the rare happens to be there. It is super lame.

The game also adds regular (weekly, basically) episodes — contrived storylines involving some Transformers characters that you are supposed to defeat for some reason. Basically it just adds a fifth possible element to each mission turn — a “boss fight” matchup against an opponent you can buy the opportunity to fight for one Battle Cube (or fight it with additional damage bonuses for two or three Cubes, which you should rarely if ever do). You earn points for beating each boss, which escalate as the bosses get stronger (and quickly to the point where you have to ask other players for help to defeat unless you want to spend many of your own Cubes to attack it repeatedly yourself — which is a waste of the game’s most valuable resource), and when the boss is defeated everyone who participates gets some sort of reward — typically tokens to buy more cards from the in-game store.

The episodes have two different reward ladders — one is based on your overall ranking for most points earned among all players who participate in the event, and the best rewards are locked up here. For this to be worthwhile at all, you have to finish in the top 5,000 (that level gets you an ultra-rare card, its alt mode and its matched weapon; if you don’t have all three the character is basically useless from a gameplay standpoint) — which at this point in the game’s life means you have to play pretty heavily during the episode and really work to maximize your boss points-per-cube metrics in the last three or four days of the event. By that point there is essentially no advantage to fighting your own bosses; you are better served to farm killshots from bosses fought by other players and get essentially free points over and over and over again.

The second tier unlocks different rewards depending on the total number of points you score. The rungs on the ladder are close together early on so its possible to get enormous rewards early in the event. However, and completely ridiculously, you reach a point where there are diminishing returns on the rewards — basically, relatively quickly you reach a point where your reward for reaching a point threshold is lower than the reward for reaching the previous threshold. Because by the time you reach those steps, your only motivation is to compete for a position on the overall leaderboard, so the game reduces the rewards to force you to buy the currency you need with real money in order to keep pushing up that second ladder. It is a seriously dirty trick on the part of the developers.

Also, the point rewards have become characters that if you have played at all seriously up until that point you will already have. So those rewards you can easily win are of minimal value; they will give your team a minor boost during the event due to their attack bonus, but once that bonus expires at the end of the event you will probably end up putting that character on the bench.

So, really, once you complete the four mission nodes on the globe and acquire everything there is to acquire on the 18 “missions” at each node, the game becomes totally pointless to play. You exist only to farm points during events, which is most efficiently done by sniping the killshot on episode bosses — which doesn’t even require you to play the game. You just sit at the event menu and wait for a notification to pop up that somebody needs help. If the boss has less health than you can deliver damage with one currency point, you kill it, earn the currency point for delivering the killing blow, and then repeat for as long as you can stand to stare at the app and deliver the three screen taps it takes to participate in a fight.

If you have a collector mentality there is some interest early in the game in acquiring the different characters and their alt-modes. However once you get all of the common and uncommon characters, you just have to play a game of chance against a virtual dice roll to complete the lineup of rare characters. Beyond that are the super rares, and it is essentially impossible to collect those without spending money. And the very good ones in terms of in-game power are reserved for episode rewards requiring a volume of points you are not going to score without spending lots of money on Battle Cubes for boss fights. But once you reach the point where your primary method of advancement is to farm killshots during episodes until your Battle Cubes run out, the game becomes pointless to play.

I reached that point on Saturday. So unless something changes, I am pretty much done with this.

Memorial Day weekend movie blitz

Star Trek Into Darkness Friday night. Completely outstanding movie, and without question the best movie I have seen so far this year. Oblivion isn’t in the same ballpark, and Trek even blew away Iron Man 3, which I also thought was quite good. Very excellent villain(s), I very much like this current iteration of the crew, and the effects and fight scenes are great. This gives me great hope for what JJ Abrams will do with Star Wars 7.

Epic Saturday afternoon. Fun kids movie; Helen loved it and Millie spent the entire movie being three. It will be fun to see again on BluRay at some point.

Hangover 3 Monday afternoon. There was really no way this could have been worse than Hangover 2, but it still wasn’t very good. The bar set by the first one was just so, so high; the two sequels were almost failed from the very start. This third one was OK; it was Chow-centric which was good, but for some reason the Chow character has spent the last two movies as a different character than he was in the first one. In the first he was fun and flamboyant and had this maybe-he-is-gay vibe; in the second he just became dirty and mean. In the third one he is a weird combination of the two; they have tried to create him as this super-villain but they pushed that so far that it’s no longer a good character, I don’t think. The writers also tried to weave in this redemption-of-Alan subplot that honestly just didn’t work. There were funny moments to be sure, but not nearly enough to say this was a good movie.

Has there been another movie franchise where the first film has been so incredibly good and the two sequels have been total duds? The Matrix comes to mind obviously, but I can’t really think of another one. A lot of really wasted potential here.