Technology
Featured Post by Scrivs »

A Purpose Served

When I came up with the idea of 3by9 (yes for once I can honestly say that it was just me that came up with the idea…I know it’s a complicated idea that only brilliant minds like myself could think up) I knew that it wouldn’t have an extended period on the web. I was with two geniuses of the web and figured we all had something important to share with people. However, doing it over at the 9rules blog didn’t seem appropriate so I figured we could start another blog to share these ideas.

Since then over 200 entries have been published during the past 18 months and each of them showing how different our personalities are, but how similar our views of the world around us are. When I brought up the idea of 3by9 to Mike and Tyme I informed that every 3 months we would revisit the site to see if it was time to put it away. Well we did that the first 3 months and haven’t looked back since. However, we all agree that now is the time because we are moving in our own directions.

We are still very much a team when it comes to 9rules, but have started to diverge into our own projects and this has taken time away from the site. So instead of keeping a site dragging along it is time to put it to rest. It served its purpose and it was a relief knowing that we didn’t intend on making the world’s greatest blog, just a blog that was great to us.

If you are interested in what we are doing I suggest you subscribe to Flyosity and Tyme Said. Be sure to also follow us on Twitter: @scrivs, @tyme and @mike9r.

With all of that said thanks to everyone that reads the site and who has commented. It was a joy writing for a site with no restrictions, no concerns of traffic or worries about money. It was a blog that started the way blogging itself started, to share ideas and have our voices heard.

Posted February 16, 2009 with 3 Comments
Featured Post by Mike Rundle »

How To Scare The Hell Out Of iPhone Users

I was talking to some people today and came up with a scenario that I think is a real issue, one that would be difficult for Apple to stop.

Here’s a scenario:

A fun game is released to the iPhone App Store and it’s free. When you finish your game, it asks you if you want to publish your high score to the Internet. You choose “yes”. While it sends your score, it also sends your entire contact list up to a web server to be sold to spammers.

Think it can’t happen? It can, easily. It’s actually pretty trivial to write code to do this since Apple’s iPhone APIs are so thorough. A quick look at the Address Book Programming Guide for the iPhone will have you accessing the user’s contact list in no time in just a few lines of code. In a few more you can check for network connectivity and send the serialized contact information to any URL you want. Simple.

It would be difficult for Apple to catch this as they don’t reverse engineer your applications before approving them. You don’t submit your code, just your compiled file, so by just opening and looking at the application it’d be impossible to find a problem like this. You’d just have no idea.

I’m not advocating that people should do this, but it’s certainly something to think about. How would you know? One of the iPhone’s first hit games, Aurora Feint, did something less sinister with your contact data and was pulled from the App Store after people found out (ironically you could notice the issue if your iPhone was Jailbroken and you could peek into the directory data.) The only reason people found out was because Aurora Feint was re-storing your contacts’ data in another location which some iPhone programmers noticed. If they didn’t re-store it and simple sent the data, would anyone have noticed?

The newness and popularity of the iPhone platform leads me to believe that some people are currently working on nefarious ways to make money from unsuspecting users. When there’s money to be made, people will try to make it, no matter how immoral the means.

Posted January 14, 2009 with 2 Comments
Featured Post by Mike Rundle »

Guiding Your Audience With Twitter

I was a late-comer to the Twitter party. I signed up for an account early-on (user number 10,000 and change) but never really touched it until the past few months because I just didn’t see the value.

In the beginning everyone was using Twitter to post what they were having for breakfast, or how cute their dog was — typical LiveJournal type junk. That didn’t appeal to me so I left it alone.

Over time, and without me posting much at all, people started following me on Twitter even though I rarely updated. I slowly got a couple hundred followers, and before I knew it, I had an audience.

As soon as I saw that I had an audience, I decided I might as well give them something interesting to read, so I started posting.

What I post on Twitter may not be exactly what everyone else posts. I rarely post about where I am, what I’m doing, what I’m thinking, or with whom I’m hanging out. What I do post on Twitter are links to interesting things I’ve found plus a little bit of commentary about those links — like Delicious with 1-sentence descriptions. Here’s an example of what I like to post on Twitter:

Download “pinvoke” set of 1000 free icons: http://idek.net/hD …better than famfamfam I’d say. I’m gonna use these starting immediately!

The reason I posted that is because in my regular travels around the Interwebs I stumbled upon a link that I think my audience would appreciate, mainly because my Twitter audience is made up of designers and web people. My normal action is to link it up in a new Twitter post (a tweet if you like that word, which I don’t!) but instead of saying “Hey, check this out: ” which a lot of people do, I like to show some of my personality and enthusiasm in the few words I get before and after the link.

I use a URL shortening service called idek.net that’s run by my friend Adam (and I’m in the process of redesigning it, check the mockup) and not only does it shorten your URLs but it also gives you detailed click-through statistics on every link you create. By seeing how many people click on my links, what time they click, and how they re-tweet or re-link it, I can figure out what types of links my audience likes to see. This has been integral in knowing what will get people interested which gives me some insight into what links work best with my Twitter audience and which don’t. What works best? Practical design and web development articles that can be immediately applied to someone’s work. Tutorials, downloads, how-to articles, and new ideas that can be useful when building websites and software. I wouldn’t know any of this without using idek.net so if you want to know how your audience is responding to your links, I highly recommend it.

Posted December 2, 2008 with 1 Comment
Featured Post by Mike Rundle »

Top 5 Coolest Pieces Of Blog Metadata To Design

This past weekend I was in Charlotte attending their Wordcamp conference and spoke on the Design/Technical panel. Each presenter put together a Top 5 (or 10) list and then based their talk on that. Here’s mine:

CLTWordcamp presentation

(Here’s a link to the larger version.)

Designing Blogs

Designing a blog is similar to designing any other type of website in many ways, but to me I always found it far easier, far more creative. The reason I like designing blogs is because of all the data you get “for free” as soon as you publish your first entry. The time and date it was published, categories, tags, comments, who published it, metadata buried in the entry, the list just keeps going and each piece of metadata is something you can use creatively to add to your design.

In my talk I came up with my 5 favorite pieces of metadata to work with when I’m working on the design. Information visualization is something I’m really interested in so some of the examples in the slide are things I’ve actually used in the past. The bars showing how many entries a categories has is extremely useful. The comment badge that gets fuller and larger depending on how many comments it has, I used that a few years ago and have always wanted to pull it back up.

The audience at the event was less technical than I assumed it’d be, so I pulled out a lot of my semantic metadata jargon and just focused on the possibilities. One thing I glossed over during my talk was how to link tags together to form a semantic mesh of information. Here are some psuedo-steps that you could use to code up something similar to this:

  1. List all the tags an entry has.
  2. For each tag, find all other entries you’ve posted that are also using that tag.
  3. For each entry you find, find all the other tags that it also uses. Each of these tags might be considered a related topic to the original tag.
  4. Use a Javascript visualization engine to plot the relationship between those tags and entries.

Connecting metadata is a powerful way of showing users how information relates to each other, even when it’s not totally clear what the relation is.

Posted November 17, 2008 with 0 Comments
Featured Post by Mike Rundle »

Sorry, Bloglines: You Suck

Just a few weeks ago I wrote about how the iPhone version of Bloglines was my new choice for feedreading since it’s fast, fast, fast.

Oh how things change.

Turns out, Bloglines has been having feed updating issues for awhile that I was totally unaware of until reading a blog entry over at TechCrunch about it. I decided to check some of my feeds that — I assumed — hadn’t been updating their sites much recently and was surprised to find out that they’ve been writing blog entries all along, but Bloglines wasn’t updating their feed so I had no idea.

Speed in a feedreader is great, but actually showing the content is the #1 priority. I had to go back and read a month or two of archives from almost a half-dozen sites I subscribed to just so I could see what they’ve been posting because Bloglines let me down.

Sorry, Bloglines, you’ve let me down and I’ve switched to Google Reader.

I’m just one person that’s switched, but you know what? I’m an important Bloglines user. I’ve been using Bloglines for over 5 years! I can’t name any other web service that I’ve been using for that long. When I first started to fall in love with Bloglines I even emailed them offering them a donation since I loved their service so much. Over the years I’ve evangelized them when everyone else was switching for Ajax-powered feedreaders.

Not anymore.

I miss the interface of Bloglines as it was so familiar to me. The Google Reader UI is decent but it is going to take some getting used to. I have no doubt that my brain will become accustomed in no time.

Feeds On My iPhone

I don’t care how many people say that the iPhone version of Google Reader is fantastic, I think it sucks. It sucks compared to Bloglines’ iPhone version which is streamlined and fast as all hell. Fortunately I found a way to view my Google Reader feeds on my iPhone using a native app, and that app is Byline by Phantom Fish . Its interface is extremely polished and beautiful, like an Apple-designed iPhone application would look. I actually like Byline more than I like Bloglines’ iPhone version and Google Reader’s normal version! It’s that great.

Bloglines, but you’ve been replaced.

Posted October 21, 2008 with 2 Comments
Featured Post by Mike Rundle »

Using HTML, CSS, and Javascript For Everything

To be honest, working in Objective-C and using the rich set of Cocoa APIs is difficult for me. I wasn’t a computer science major in school and never learned much about pointers or header files (thanks to 3 quarters of Java that I never used again) so it’s all a brand new landscape. I’ve learned new programming languages on my own before but they were higher-level constructs unlike C and Obj-C.

I downloaded the iPhone SDK the day it was unveiled and spent 5 hours reading about Cocoa and Obj-C on Apple’s Developer site. I absorbed it like a sponge, reading through all Apple-supplied example apps line by line trying to understand their magic. I put some views together, made some things happen, but had tremendous difficulty moving ideas in my head into code using a language I’ve never worked with, and I got frustrated.

It was frustrating mainly because I can do nearly anything I want to do inside a browser — any design, any user interaction scenario. I’ve been using CSS to create interfaces on the Web since 2002, HTML & Javascript since the late 90s. A web page is my canvas and I feel no limitation to what I can create. I rarely get bogged down in implementation details when creating something new on the Web, I mainly just dream it up and start making it work, thanks most recently to jQuery making Javascript fun again.

One of the first things I did after downloading the iPhone SDK was create a little application that loaded an HTML file from within the bundle into a UIWebView. This allowed me to use HTML, CSS, and Javascript to create something that loaded locally (aka, very quickly) and ran inside of a native iPhone application. After I became a little more comfortable with Cocoa, I wrote some hackish code that 1) was notified whenever a link was clicked, 2) stopped the new URL from loading, and 3) instead called a particular native method based on the string which returned its results by using stringByEvaluatingJavaScriptFromString to send it back to the HTML page. This allowed me to do some cool things like use JavaScript to call a native Cocoa method and then manipulate the results of that call. For desktop-based OS X apps, this is trivial as you can access the WebView directly via a WebScriptObject, but in the iPhone SDK there’s no such thing. I had to jump through some serious hoops to get JS talking to Cocoa, but in the end, it worked.

And that got me thinking.

Many people are unaware that HTML & CSS are used in popular desktop-based applications, in such ways that you’d probably never know they were being used unless you looked hard enough. Here’s a quick list of some apps that use HTML & CSS in interesting ways:

  • Apple Mail — When you’re reading an email message, you’re reading it in a WebView. Many emails come through as HTML nowadays so it only makes sense to render the message directly as HTML. This is how Apple can do such innovative things with message templates — it’s all HTML & CSS.
  • Help — In OS X, most applications display their Help pages (accessible via the Help menu in the menubar) as HTML.
  • Safari/WebKit — I use the Web Inspector all day long when debugging Javascript, and it blew me away when I realized the entire thing is written in HTML, CSS, and Javascript. If you want to see some of the most precise and interesting CSS & Javascript you’ve likely ever seen, right-click within the Web Inspector and go to “Inspect Element” to view the source code of the Web Inspector itself.
  • Firefox — One of the most interesting uses of CSS happens to be staring you in the face right now if you’re using Firefox. The entire interface of Firefox (toolbars, buttons, Find, etc.) are all styled using CSS applied to XUL, and XML-based interface definition language. When you use Find to search for text inside of a web page, the action that pops up the little Find box on the bottom of the window is actually just a Javascript call to change the display from none to block, just like you’ve used a hundred times before. This is actually what makes writing a Firefox plugin so appealing to web developers, because in the end you’re using CSS and Javascript to build your design and functionality.
  • Dashboard Widgets — You probably already knew that OS X Dashboard Widgets are just HTML, CSS, and Javascript, but you didn’t, go check them out again and see the level of interface detail you can achieve with stuff you already know how to use. Hint: if you view the package contents of a Widget’s bundle you can dive into the HTML, CSS, and Javascript code of the Widget to see how it works its magic. I’d highly recommend doing this for some of Apple’s beautiful widgets.

Use What You Know

The only reason that the list of desktop-based usage of HTML & CSS is so high is because Apple’s open source rendering engine WebKit is baked into OS X, allowing you to load an HTML file into your Cocoa application without breaking a sweat. Almost 5 years ago someone wrote a tutorial to build a web browser with one line of Cocoa code, so people have been using web-based display languages within desktop apps for a long time.

Over the years, WebKit has gotten a lot more powerful and its new Javascript engine is the fastest in the business. If you pack HTML, CSS, and Javascript into your application bundle and load it locally into a WebView, depending on the complexity of your code, it renders only a touch slower than if you built it using Interface Builder. Matt Gemmell even put out some code that lets you change your desktop-based application’s interface live by swapping CSS files.

This kind of stuff just blows me away. Design your interface using XML/HTML & CSS, hook up your behaviors to Cocoa using the WebScriptObject (call Cocoa from Javascript) and then only call Cocoa when you need to do some heavy lifting. Bake it into a desktop-based application by using a WebView, compile, and deploy.

I’ve been looking back on the ideas I had a few months ago that I struggled to reproduce using Obj-C and Cocoa and now feel confident that I can build them using what I already know. The idea isn’t a 3D adventure game or a photo manipulation app, it’s just something that’s useful, and I think using HTML & CSS to build it into a native app would be a perfect way to turn it into reality.

Posted October 13, 2008 with 12 Comments
Featured Post by Mike Rundle »

Lotus Bluehouse From IBM Launches Into Beta

Project collaboration and meeting software has to be the most crowded space in the web application market, mainly due to its necessity. Coworkers collaborate all day long. Sharing files is essential. Each company with collaboration software is targeting its own specific niche with its own specific feature set, and Lotus Bluehouse is no different.

IBM has been working to free itself from its own brand image for many years, and their Lotus team is leading the charge. Even though Lotus is responsible for some heinous software interfaces, the teams working on the new Lotus web apps are nothing like the old IBM or the old pre-acquisition Lotus that is responsible for Notes. Even with the recent Notes redesign I don’t think that software is ever going to get any less ugly, so fortunately Lotus is putting all their quality resources into new projects.

Enter Lotus Bluehouse, a web-based meeting and collaboration app aimed towards the SMB market. If Basecamp is for the Fortune 5,000,000 then perhaps Bluehouse will do well for the Fortune 500,000 market.

At its heart, Bluehouse is a place for people to share work experiences with each other and collaborate with others, inside or outside their company. There are 6 main areas of the Bluehouse app:

  • Store & Share - Upload and share files.
  • Live Charts - Create charts and visualizations from your data.
  • Activities - Fancy to-do list.
  • Meetings - Screen-sharing meeting software. Invite others, host your own, etc.
  • Forms - Interesting form creation and editing app. Not as well-done as Wufoo, but then again, who is?
  • Chat - IM and chatroom support for communicating with colleagues.

Right now it’s a free signup as they’re still in beta, and I’m pretty sure the ceiling may fall down at any moment, but hey, that’s the fun with beta software.

Posted October 7, 2008 with 0 Comments
Featured Post by Mike Rundle »

Speed Over Style

I’m a software designer, but I’m also a user, and that’s very important.

Steve Jobs has been quoted as saying that design isn’t how something looks or feels, it’s how it works. So when a service that I use more frequently than nearly any other service on the web starts chugging and coughing, its design is failing.

I’ve been a Bloglines user since early 2003 and it’s essentially how I keep abreast of information on the Internet. It was a leader in the space a few years ago, but now that dozens of other web-based RSS readers are freely available — including Google Reader — its growth is probably stagnant. I’m a die-hard user, refreshing my Bloglines subscriptions many, many times per day. I don’t use a desktop-based reader as that’d probably kill my productivity, so refreshing my feeds in Bloglines and seeing a bunch of new articles is fun for me. I only subscribe to around 40 RSS feeds, so when something pops up, it’s always something I want to read.

Lately, Bloglines has been having some serious problems. Often I’ll open it up and none of my feeds in the left sidebar will show. I’ve contacted Bloglines about this but haven’t received a response. It’s an intermittent problem as occasionally they’ll show for me, but it’s very annoying. Bloglines is an older, iframe-based experience, but they also have a new “beta” version that uses Ajax to refresh panels with articles, similar to other web-based feed readers including Google Reader. I dislike this version, mainly because it’s simply not faster than the iframe-version for reading feeds, and also because it doesn’t automatically mark all articles on a feed as “read” as soon as I click to see them, I have to manually click on each article panel or else the article count next to the blog title never decreases. All very annoying.

The other day I realized that even though Bloglines was having issues displaying feeds for me, the iPhone version of Bloglines (web-based, not a native app, accessible via i.bloglines.com) was still perfect and it’s what I use on my iPhone to read RSS feeds. I decided to load up the iPhone version of Bloglines (which is incredibly stripped down) in Safari and it worked perfectly. The iPhone version of Bloglines is very snappy even on an iPhone EDGE connection, so on a broadband connection in a full desktop-based web browser, it screams! It’s unreal fast. The fastest feed reading experience I’ve ever had.

And that’s the story of how I started using the iPhone version of Bloglines as my normal, desktop-based feed reader. Because it’s the fastest one on the planet.

Posted September 29, 2008 with 1 Comment
Featured Post by Mike Rundle »

Making That Bank With An iPhone App

There are a lot of stupid apps available on the iPhone App Store. The ones where you click and it farts, or there’s some fish and they move around, or it fills your screen with a bright color, or it scrolls some text, etc. These work great because most people are stupid, so catering to your main audience is always a good way of being successful.

Fortunately for the rest of us there are some seriously great apps to download, and one of them is Trism from Demiforce.

It was one of the first applications I purchased when the App Store came out and I had been anticipating it for awhile as it was already out for jailbroken iPhones via Installer.app. It’s a Bejeweled-type game where you match colored puzzle pieces, but you do so on 3 planes as each piece is a triangle. The app sells for $4.99 and it’s one of the highest-rated downloads in the Games category.

Recently the developer of Trism dropped the news of his earnings and it caused a lot of people’s ears to perk up. How much did Steve Demeter, the creator of Trism, pull in? Over $250,000 in his first two months of being in the App Store. That’s some serious coin.

I had some ideas for App Store programs but they weren’t “fun” in the sense that they could be played in your downtime. They were more like little utilities.

I’ll tell you one thing: I’m now fully entrenched in thinking up a relatively easy-to-code game for the iPhone because I see an opportunity that’s still totally open with a market ripe for the picking.

Posted September 22, 2008 with 0 Comments
Featured Post by Mike Rundle »

A First Look At Yahoo! oneConnect For iPhone

Yahoo!’s oneConnect mobile application has been previewed before but was just released for the iPhone a few days ago. I wasn’t highly anticipating this app as I’m not a big Y! fan but I gave it a download regardless.

Off the bat, the application came across as very polished and I honestly wasn’t expecting that from Yahoo!. I don’t expect much from Yahoo! nowadays with all the things they try and don’t get right but I was pleasantly surprised to see their oneConnect application be pretty solid in its first iteration. Here’s a screenshot of my iPhone’s home screen with the oneConnect application icon, a derivative of the normal Contacts icon. (My iPhone has been pwned, thus the background picture.)

The oneConnect application’s goal is to be your hub for all social activities, connecting all other services you use to the Yahoo! information chasm. So far I’ve added my Flickr, Twitter, and Facebook accounts to oneConnect, and now updates from those three services show up in the “Pulse” section of the app.

I found that Pulse takes a little longer than other social feed apps to update, and scrolling is sluggish, but it’s a nice way to keep track of many things at once. Doing anything with individual Twitter posts beyond reading is worthless as tapping on a tweet opens up Twitter.com in mobile Safari, so I’m still using Twinkle for all my mobile Twitter needs.

One major feature I wasn’t happy with is the Contacts section of the app as I couldn’t get it working the way I thought it’d work. I figured that by syncing all my accounts with oneConnect, the Contacts area would then list all of my contacts across those services in a scrollable, alphabetized list, but it was always showing “0 Contacts” for me. I believe I have to download an external application and sync with that, but it should just work fine since it has all the information necessary to create such a listing. Oh well. Oh, and because I couldn’t get Contacts to work, I couldn’t get Favorites to work either as it relies on you to designate individual Contacts as your favorites. This is essentially what Friend Book did but since Tapulous pulled the app from the App Store and lost their head of development, I have no clue what the hell is going on with it. I was hoping that oneConnect would be the replacement but sadly I was mistaken, that is, until I can figure out how to get my Contacts to show up.

oneConnect is basically a status-checker for me at the moment, as the other useful parts of the service simply aren’t that useful to me overall. I can use Y! Messenger with it but I never use that service, and I was thinking of using it as a social Contacts manager but apparently I can’t use it for that either. Right now it’s doing a pretty nice job of social aggregation, so I’ll enjoy that aspect, but other than that it’s a dead brick. We’ll see how long it stays on my Home screen before wearing out its welcome.

Posted September 15, 2008 with 1 Comment