New

Kick Ass - 99c (iOS)

Don't you sometimes just want to kick some websites ass, asteroids style? Well now you can.

Now the fantastic bookmarklet has gone mobile and you can take your frustration reliever directly into meetings. Annoyed by your boss? Destroy his Facebook-page. Your competitors stealing your customers? Obliterate their webpage.

With plenty of fun achievements you're never bored.

Available on the App Store

Kick Ass (web)

Kick Ass, erkie, bored. It has been referred to by many names. A 24-hour-to-code tiny bookmarklet that took the world by storm. After a month the landing page alone had gotten over 500 000 unique visitors.

Seeing as the code is open source, many people have taken it and added it to there site, ad campaign or software. Prominent users include American Eagle, Diesel, M&M (which won two awards), Paramount and many more. It has also been featured in many publications and touched many people around the globe.

I wrote the grunt of the code on a coding whim at two o-clock in the morning, using HTML5 and JavaScript. The experience has been beyond words.

Cowl is an MVC-inspired PHP framework built from the ground up to be intuitive, fast and fun. It comes featured with fully documented code, great standard plugins and a helpful attitude.

Cowl is my attempt at the Greate Framework Race© and it started out sometime around the summer of 2009. It has gone through many iterations and I have used it in several projects. Be wary though, there are no official releases and the API could change at any time. The development of Cowl happens mostly whilst working on any project using Cowl, so not too often.

It is super fun to use the stable parts.

The RSS Feed Reader is in my opinion the missing feedreader for Google Chrome.

It's sleek, sexy (with help from Johan Rothoff Andersson), simple and awesome. As of writing it has more than 7800 users and 4.5 stars in the Chrome Web Store.

Oh, and sorry for the boring name.

Available on the Chrome Web Store

Fixing a broken RSS Feed Reader

Uh-oh! You’re RSS Feed Reader is still not working! After following the steps in the previous blog post you’ll probably find this page.

Until we can figure out what causes this issue, we’ll have to manually fix it. So, the problem: When updating the Feeder extension, not all files are downloaded and installed correctly, so the extension cannot run (We have notified the Chrome team about it, but they are still investigating it). The solution: Manually add all the missing files. All you have to do is follow these simple steps.

  1. Please visit this URL: chrome://version/
  2. On the bottom of that page, you should see “Profile Path”. Take the path next to it, and open it in the file Explorer.
  3. Within that directory, go to the folder “Extensions”, then “pnjaodmkngahhkoihejjehlcdlnohgmp”, so the full path should be:
    <profile_path>/Extensions/pnjaodmkngahhkoihejjehlcdlnohgmp/


  4. Within that folder you should see another folder, with a version number. Perhaps something like “4.0.9_0″. Open that folder.
  5. Here comes a tricky part: You must download the following ZIP-file:
    http://feeder.co/latest.zip
  6. This contains the correct files needed to run the extension.
  7. unzip that file and copy all those files, and paste them into the version-number directory. Press “Yes I want to overwrite files with the same name” if a prompt asks you about it
  8. Restart Chrome

Hopefully, it should work after that. If you have any questions regarding any of the steps, don’t hesitate to contact me at: erik.rothoff@gmail.com. It’s a bit of a tricky operation.

Good luck out there.

Posted in Anything | 1 Comment

Debugging a broken RSS Feed Reader

Uh-oh! You’re RSS Feed Reader is not working. You’re getting an error message when trying to open the popup. Luckily you found this page!

A lot of the time this is because of a corrupt Google Chrome installation. What you will do is try to diagnose this problem, and then contact me, so we can take it from there.

Diagnostics steps

1. Go the following URL: chrome://extensions/

2. On that page, you will see a list of your extensions.

3. Check the “Developer mode” checkbox in the top right corner:

4. Find the RSS Feed Reader entry in your list of extensions, and press “reader/main.html” link.

5. This will open a popup window. Press the “Console” tab in the top navigation.

6. Take a screenshot of this page. It will have a different list of errors, or it might even be empty. This is the screenshot you should e-mail to me. It can look something like this:

7. Check which version of Chrome you have, by going to: chrome://version and checking the Google Chrome:-entry.

– Interlude –

Does the error message look like this?

Then please follow the steps outlined in this post. If not, please follow the steps below.

So e-mail this screenshot, and your Chrome version, to me at erik.rothoff@gmail.com.

Bonus steps

Most of the time you will see errors in your RSS Feed Reader popup because of a Chrome issue, which I have yet to diagnose. To help me diagnose this error and perhaps take it up with the Chrome team, it would be invaluable if you could follow these bonus steps so I can debug why this issue occurs.

1. Go the following URL: chrome://version

2. Take the “Profile path” value, and open that in your Explorer/Finder. (Press cmd+g to paste the path in Mac OS X)

3. In that folder, navigate to the following path: Extensions > pnjaodmkngahhkoihejjehlcdlnohgmp

4. Make a ZIP-archive of the contents of that folder, and e-mail that to me. erik.rothoff@gmail.com

So hopefully after you have e-mailed this to erik.rothoff@gmail.com, we can fix your RSS Feed Reader for Chrome. 

RSS Feed Reader update, one year later

I was looking over my old posts and saw the one about RSS Feed Reader reaching 100 reviews. It’s been an eventful year, a lot of things going on, among others, the reader:

Just passed 40 000 users, going on 1 000 reviews. And counting.

Posted in Anything | Leave a comment

Rootof Creations HB

Have I mentioned that I’ve started a little business together with my brother? We’re calling ourselves Rootof Creations. Need anything? Website? Webapp? iOS app? Massage? Then check us out at rootof.com!

Posted in Anything | 1 Comment

As a developer, the Chrome Web Store sucks

I love Google Chrome. It’s the best damned web browser out there. It has everything. It demonstrates that for Google, the web is there home. To enter the browser race this late and still be lightyears ahead of the competition is no easy task. It is the perfect match between simplicity, design and speed. But it doesn’t have everything, like a decent RSS feedreader. So I built one using the technologies I already knew and was accustomed to.

Then when I try to update it they require screenshots. Fine. (First problem: Require) It’s not like the previous screenshots aren’t good enough. I totally understand. Oh, right, it’s because they redesigned the webstore and the previous screenshots were the wrong size. I mean, it really is difficult to design for a variety of screenshot sizes this day and age. But sure, I’ll upload some screenshots.

Wat.

This is the image I’m trying to upload.

Dimensions: 441 × 280

Why is this wrong?

  1. There is enough computing power in Google’s datacenters to resize this image by one pixel.
  2. Image editors take time to start up, and when I have a critical bug fix to get up it’s not the thing I want blocking me.
  3. It’s bad design. If you’re designing a site where thousands of developers will post stuff, you should have already designed for that fact.
  4. They had these kind of restrictions before. We conformed to them. Now they are redesigning the webstore and require new screenshots. Do we really have to upload new screenshots everytime Google decides to redesign a site like that?
  5. It’s just plain dumb.

/rant

Posted in Anything, Programming, RSS Feed Reader | Leave a comment

RSS Feed Reader and testing

Today I had some time over and decided to work on my RSS Feed Reader extension for Chrome (I do think it needs a new name, don’t you? Or maybe it’s too late for that?). Certain things have been on the drawing board for a long time now: scrollbars, notifications, design issues, etc. I decided I’d write some tests instead.

Why? Because testing is awesome

One thing that always has left me with a bad-gut-feeling is pushing new releases to the public. This kind of extension should be able handle anything out there. How many poorly written RSS feeds aren’t there? And just how many different formats and interpretations of those format’s are out there? My guess is many. It’s hard to test all those different formats myself, especially whenI only subscribe to about 10 myself! So changing the parsing code  is a big leap of faith for my soon-to-be 10 000  strong userbase.

In come the tests. They are designed to be run before each release as a sanity check that the code I’m shipping is bug-free. Or at least that it hasn’t introduced any new bugs in old previously working code. Sweet heaven. Can you imagine that? Running  a command that assures you that it will work and that you can sleep worry free. It’s an enticing thought.

Writing tests is boring

The benefits with tests are many. The problem however that writing tests is tedious work. Instead of implementing cool features you write code to test what in your mind already is perfect. So choosing the right test framework is important. For RSS Feed Reader I’ve decided to use QUnit in a Node.js environment. Installing and everything is dead simple thanks to uptodate instructions and the Node Package Manager (NPM). The hard part is acquiring a large enough database of feeds to be relevant. Luckily developers before me have tackled this problem. A quick Google turned up this git repository of links to feeds – called Popular Feeds.

So now I’m going to scrape those to my harddrive and start writing the test code for all this. It won’t be as difficult and comprehensive as tests I’ve written for other projects. All I’m testing now is the parsing engine, so just attempting to parse all the feeds and checking that it doesn’t throw any exceptions should be fine. It might also prove to be a nice opportunity to optimize the process!

Wish me luck.

Posted in Programming, RSS Feed Reader | 3 Comments

Capturing a photo programmatically with Objective-C using QTKit

I have been quite bored lately. When you are bored you want to make things. One thing I have always wanted to do is programmatically take a photo (that means to have my code use the built-in camera to take photos and use in my application) using my Mac’s built in iSight-camera for some fun manipulation.

A simple search on Google returns some outdated results on old programs and other stuff related to capturing video using old APIs. However, when I recently dove into QTKit (QuickTime’s API) I found some promising things.

This post will be a straightforward demo of how to grab photos from your iSight camera (or any other connected cameras). I’ll post some code and explain the different steps and what they mean. And… The best parts about reading tutorials on QTKit and using the computers camera are that you get to see a lot of random pictures by the demoer himself. And here is my contribution: I.e, what you should have at the end of this tutorial.

Yours truly, testing some code

Doing this you notice how silly you look while compiling code.

Prerequisites

You should know some Objective-C, how to use XCode and have some basic knowledge of Cocoa (or Cocoa touch, for iOS, but this code will not work on iOS)

Code

The first thing you have to do is include the QTKit-framework in your Xcode-project. While your at it you’ll need the QuartzCore-framework too (for image processing). Adding frameworks in Xcode 4 is a bit different from 3. You press the project name in the file navigator and there you get a list of frameworks for your project. Adding is simply pressing the +-sign and finding your framework.

To keep this simple I’ll just post a working code sample with lots and lots of comments.

This class presents you with an easy interface for grabbing photos. As illustrated:

Posted in Anything | 6 Comments

I’m off for a week!

Just to let you know, I’ll be heading to the Swedish festival Peace & Love for a week. See you there!

Posted in Anything | Leave a comment

Fun with emergent behaviour (or a boids bookmarklet)

I’ve been working on Kick Ass 2 lately. I am in the process of adding enemies, which are inspired by the enemies in the iOS app. The key difference will be the amount of enemies per page but also their movement types. I was looking for something that would be suitable and came across a flocking algorithm, Boids algorithm. Really simple and easy to implement.

To test this I needed good subjects, so I tried it on my Facebook page. It’s quite fun looking at my friends flying around, so I made a bookmarklet out of it:

Flocking Elements

The algorithm is taken from: http://www.vergenet.net/~conrad/boids/pseudocode.html which has a super simple breakdown. It was really helpful.

And here is a tiny demo of how it looks, for the lazy:

Posted in Programming | 1 Comment

RSS Feed Reader for Google Chrome is doing great!

Today I noticed that my Google Chrome extension RSS Feed Reader has reached 100 ratings! And it still has a solid 4 and a half stars, which is really great. The growth of the extension has been entirely organic; I’ve done nothing to market it att all. And from the comments I’ve understood that most people enjoy it and not much bad has been said about it. Happy days.

Posted in Anything | 3 Comments