Text

My Computer History - 1987 - Commodore 128

My first computer was a Commodore 128 which the whole family shared. It came with an external 5.25” floppy drive. The “128” refers to the 128KB of RAM it contained. Most of my friends had a Commodore 64 so we had a technically better machine. However, we ran it almost exclusively in 64 compatibility mode.

The vast majority of the software we ran were games my brother and I would play. My friend Jackie would get copies of all the coolest games and bring them over for us. Most games were copy protected but Jackie had connections and could get copies of “cracked” games. I still don’t know how all of that really worked but, thanks Jackie!

We had a few store bought games but most of them were copies. I honestly can’t remember what most of the games were but I do remember a fighting game called Barbarian. It had this one move where one guy would spin around the cut the head off his opponent. Then a little troll would come along and kick the head off screen. We thought that was extremely hilarious.

I also remember my brother playing EA’s Summer Games and Winter Games a lot. We also played a lot of Test Drive which is a franchise still active today. There were a few text-based adventure games but I never had the patience to learn how to play them properly.

The computer served some productive functions as well. During my senior year of high school I took a BASIC programming class which was a fun diversion for me. It was taught by the head football coach although I don’t remember that much actual instruction. We were mainly left to to our own devices.

The first program we wrote in class was a simple coin flipping simulation. You would type in the command coinflip and the computer would randomly display either “Head” or “Tails”. Things got more interesting as the semester went on. My biggest achievement was a little program where the user types a question at the prompt. It could be any question as long as the first word was “Who”, “What”, “Where”, “When”, “Why”, or “How”. The program would look at the first word and display a randomly chosen response appropriate for the first word of the question. It took me a whole afternoon to write and it kept me entertained for the rest of the day. The big achievement wasn’t necessarily in the program’s logic but in how it was structured.

Back in these days BASIC programs were very unstructured. BASIC didn’t have a construct like a sub-routine or function. At least none that I was aware of. The path of execution though a program was controlled by GOTO statements. In any program of a non-trivial size the string of GOTO statements would become so complex it was referred to as “spaghetti” code.

I wanted to make debugging simpler for myself so I spaced out my code in little chunks. Each chunk would perform a single function and would have one entry point and one exit point. The exit point would always return execution to a “main” chunk which controlled which other chunks of code were GOTOed. At the time I had no idea what a function was in languages like Pascal or C but that is what I was trying to simulate in my BASIC program instinctually. Yay for me.

I specifically remember sitting next to a couple of guys I considered my programming partners although I doubt they will have remembered me. One guy wrote a program which would generate random three-word phrases consisting an adjective, adverb, and noun. Most of the phrases didn’t make any sense but every once in a while the program would produce one so funny they’d giggle over it like crazy.

Text

iMessage Color

Here’s an idea for Apple’s new Messages beta app. For any iMessage I receive, make the sender’s bubble color blue just like it is on iOS. For messages from traditional IM networks make the bubble a different color.

Apple already uses different colors in iOS to indicate how a message is being sent: MMS versus iMessage. This makes sense and I think it makes sense to extend the idea to the Mac as well.

Text

Retina Displays, PPI and Bitmaps

Someone recently asked me that if the iPad’s Retina display is 264PPI then why wouldn’t you create your app’s graphics at 264PPI also? DPI/PPI is something I almost never think of when working with image files but this seemed like a legitimate question.

The short answer is that DPI/PPI only have meaning in the physical world. DPI is typically used to measure the sharpness of something that’s physically printed on a piece of paper. The more dots you can cram into a square inch the sharper the image will be. When working with PhotoShop you can specify the DPI for an image and PhotoShop uses that to determine the physical dimensions of the image when printed. However, if the image will only ever be used on a screen then DPI doesn’t really matter. A bitmapped image is a 2D grid of pixels. One pixel in the image is one pixel on the screen assuming the image isn’t being scaled.

Different displays can have different pixel densities. Imagine two 15” MacBook Pros. One runs at 1440x900 and the other runs at 1680x1050. A 400x300 image will look smaller on the second screen. It occupies the same number of pixels but on the second display those pixels are packed tighter together. If they’re packed tighter together than the same 400x300 grid of pixels will occupy a smaller physical area.

There’s been rumors of Apple making OSX resolution independent for a long time. With resolution independence that 400x300 image would be the same physical size on both screens but would look sharper on the second. The operating system would handle displaying the image at a consistent phyiscal size regardless of its actual pixel dimensions. But resolution independence hasn’t happened yet and may not for a very long time.

Retina displays are a step in the direction of resolution independence but only in a rudimentary way. As a developer, I still work with a 1024x768 grid on the new iPad. Say I want to draw a rectangle on screen using the built-in graphics routines. I can tell it to draw a rectangle at point 90,50. That being 90 pixels from left and 50 pixels from the top. On a retina display I know that’s really 180 pixels from the left and 100 pixels from the top. But the OS does those calculations for me. I don’t have to think about it. I only deal with coordinates on a 1024x768 plane. Continuing the example, I can tell the rectangle to be 400 wide and 300 tall. On a normal displays those numbers map to actual pixels but on a Retina display the OS makes the rectangle 800 pixels wide and 600 pixels tall. There’s a logical grid I have to work with and a physical grid. The OS handles the conversions between points on the logical grid to the physical grid. All I need to know is that I’m drawing things on a 1024x768 grid. Vector graphics work the same way. You tell it where to go and how big it should be. The OS takes care of drawing it correctly.

A bitmapped graphic is different because it’s a fixed grid of pixels. The OS can’t spread it across a larger number of pixels without degrading the quality. So we provide two graphics to choose from. One for the regular display and one for the higher DPI display. When the OS knows it’s working with a retina display it automatically substitutes the @2x graphic instead of the regular one. Apple’s “double or nothing” strategy works in our favor because we, as developers, only need to worry about producing two sizes for bitmapped graphics and the math is pretty straight forward.

Tags: ipad retina dpi ppi
Text

Let’s Get Mashable to Add More Sharing Buttons!

Quick. Somebody launch a new social networking site, make it popular and provide one of those little ‘sharing’ buttons for embedding on other sites. I want to see if Mashable will include that button at the top of their articles along with the 10 already there. Yes, 10 of them.

  • Twitter
  • Google Plus
  • StumbleUpon
  • Pinterest
  • LinkedIn
  • Tumblr
  • Generic Email
  • Generic Share
  • Facebook Like
  • Facebook Send

Apparently, all you have to do is be kind of cool with internet people and they’ll include your sharing button. I do want to see just how far they’ll take it.

Mashable Sharing Buttons

Text

iOS 5.1 With Better iMessage Notifications?

Is it my imagination or does iOS 5.1 make an effort to suppress audible iMessage notifications when you have the OS X Messages application in the foreground on your computer? I swear I was noticing that behavior this afternoon but it’s a little hit-or-miss. Given the near simultaneous arrival of messages I imagine this is a tough problem to solve.

Text

Where I Keep My Lists

I like lists. Lists keep me organized and make me happy. Despite my mimalist philosophy on software I have a few different list applications that I use on a regular basis.

Things for Mac

This is where I keep my work organized. Things may be the most feature-complete list application available for the Mac right now. I can keep easy track of everything I have to do today. If it’s not going to happen then today then it go into the next list. If something needs to happen at some point in future I can put it in the someday list. If something needs to happen on a certain date then I can schedule it. I can assign priorites and tags. I can group items into projects. I can make notes on an item if something needs more detail. The easily accessible logbook lets me see what I’ve done in the past. The whole app is beatifully designed and a joy to use. Definitely worth the $50 price tag.

Reminders for iOS

I use Reminders for almost everything non-work related. It may not be as robust as Things but it doesn’t need to be. For non-work related lists Reminders fits the bill perfectly. The default reminders list is for things I need to do around the house. I have a homework list for each of my kids to keep track of how we’re doing on homework for the week. The automatic syncing between iPhone, iPad and computer is key. I don’t have to think about what device I’m on. I have the same lists everywhere. This will be even better when Mountain Lion is released and Reminders is its own proper application in OS X.

Wunderlist

I use this to share my grocery store needs with my wife. Whenever it occurs to me I need something from the grocery store I add an item to our shared Wunderlist list. Next time she goes to the store she checks the list to see what I’ve requested. This is like living in the future. I will never run out of Chocolate Syrup again!

Clear

Clear is a really cool gesture-heavy list app for the iPhone. It’s about as basic as possible but super easy and fun to use. I bought this app just to play around with it not thinking I would use it on a permanent basis. What I’ve found is that it’s really good for quick impromptu lists where speed of managing the list is important and the list itself has a short life. For example: packing for a trip. And… other things I can’t think of right now. It’s only 99 cents so you don’t really lose anything just by checking it out.

Text

iPad 3 Thoughts

For the sake of this article I’ll refer to it as the iPad 3.

The Retina display alone makes this worth the upgrade. I love reading on my iPad 2 now but with 4X the pixels I can only image how awesome the iPad 3 will be. It’ll take some time for developers to properly add @2x graphics but there’s a lot of stuff that’ll look great on day one. I do wonder how the Comixology comics will look though? I’m guessing they’re going to have to bump up the resolution for everything eventually but how is it going to look on March 16th?

The better cameras is nice but I almost never use the camera to begin with. I do the occaisional FaceTime call with my kids while I’m at work but that doesn’t require a great camera. Maybe having a better camera will change how I use my iPad. At least around the house. Only time will tell.

I’m a geek who stopped obsessing over CPU technology a long time ago. Stuff is fast and it tends to get faster as the months fly by. What I’m impressed by is how silky smooth iPhoto was in that demo. If quad-core graphics makes that possible, then great.

I’m sticking with a WiFi-only model so the LTE stuff doesn’t mean much to me. But it’s nice to know it’s an option now. I am very interested to see how real-world battery performance is with LTE. If it’s close to what Apple is claiming then it bodes well for an LTE enabled iPhone later in the year.

The new iPhoto app is really cool. However, it seems primarily focused on editing and less on organization. What I do mainly with iPhoto on the desktop is organize. iPhoto for iOS doesn’t appear to let you merge or split events. It doesn’t appear to support Faces or Places either. Dealing with Faces in the desktop version can be tedious which is why I tend not to use it that much. A touch interface could make Faces much easier to manage. I know it makes sense to focus on editing for the initial iOS version of iPhoto. There’s some seriously cool things it can do that would be awkward or kludgy on a computer. But I really hope future updates bring more organization functionality with the same attention they gave to editing.

I currently own a 16GB iPad 2. I do a lot of stuff that uses lots of space so I find myself feeling squeezed. I had originally thought I would go with 32GBs for the iPad 3 but considering the Retina display will require much larger graphic assets for apps I’m thinking the 64GB makes the most sense for me. I’ve already grudgingly removed GarageBand and a couple of other apps from my iPad because they are way too big and I didn’t use them that much. But I’d like to have them there as an option. I have a feeling games are going to get bigger. Those Comixology comics aren’t small and may likely get bigger. If iPhoto is updated with the organizational functionality I need I’m going to want to put more of my photo library on my iPad. This will be my iPad for at least the next two years so I’m going need all the GBs I can get my hands on now. It’s 64GB for me.

Text

Minimal HTML5 Boilerplate

I’ve found this really useful as I’ve created a lot of new HTML documents over the past few weeks. As far as I can tell this is the minimal amount of code required for a proper HTML5 document.

<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8" />
<title></title>
</head>

<body>
</body>

</html>
Text

App Idea: Points (a.k.a House Cup)

This would be an app where you can assign points to an arbitrary list of things/people. You can tap UI controls on screen or just speak how many points you want to award or deduct from a particular thing or person. Yes, I want to be able to say, “Five points to Gryffindor!” and have the app add 5 points to ‘Gryffindor’.

You might use this in place of (or a supplement to) a behavior chart for kids. For example: you’re eating dinner when a kid burps and says ‘excuse me’. You can award them points right on the spot. Or you’re walking on the sidewalk and a kid intentionally splashes through a big puddle after you clearly told them not to. Immediately deduct points right then. You can set up goals and when someone reaches their goal a little fanfare plays.

Siri integration would be best so you wouldn’t have to start the app in order to give/take points. But without Siri it’d be nice have built-in voice recognition. It would be super awesome if the app could track annotations so you could say something like, “Five points from Michael, for not flushing the toilet”.

Someone needs to do this.

Link

via Rands.

Starting at the beginning of February, I made a change. Each day I blocked off a precious hour to build something. Every day. One hour. No matter what.

One of the things I like so much about reading developers like Michael Lopp is that it’s like listening to my own inner voice but better spoken. I’d like to think if I ever worked on Rands’ team we’d get along well.

Believe it or not, I started doing the one-hour-a-day thing earlier this year, myself. My hour comes at the end of each day after the kids are in bed and the dishes are clean. I’m exhausted by this time so it probably isn’t the best time of day for creative work but it’s the only time I have right now. One advantage of being at the end of the day is I have the option of extending my hour if I want to.