Why I fell for CodeIgniter

Standard

Since leaving Kapow a week and a half ago I have been coding more than I have for the last 3 years combined, and I have done it all in PHP using the framework CodeIgniter. I looked at quite a few frameworks, CakePHP and Ruby on Rails for example, and quite a few applications/blogging platforms/Content Management Systems that can be hacked and adapted, wordpress and Drupal for example. In the end CodeIgniter won the day, and so far I am extremenly happy with my choice. There are a handfull reasons why I prefer CodeIgniter:

  • It is PHP, this might be a dealbreaker for some, but for me that is a huge plus. Primarily the advantages of this is that I can easily host my creations on basically any cheap web host, that there are plenty of libraries and resources out there to make my life easier and also that I know PHP. For the last reason I could have gone with Ruby on Rails or Java as well, but it put all Python frameworks out of the competition.
  • CodeIgniter is very easy to install and as easy to deploy. All you need for things to play nicely is an Apache server, a MySQL database and a copy of the CodeIgniter files. Deploying and setting up things are the most boring thing when it comes to writing your own apps, so it is a must for me that it is a breeze, I just dont have the patience to deal with deployment problems.
  • Great documentation, the CodeIgniter user guide is excellent. This is a huge difference from many other frameworks and platforms, especially the ones developed by an open source community (CodeIgniter is developed by Ellis Labs, the guys behind the Expression Engine blogging platform). The developer community is also very active and knowledgable, so what isn’t in the user guide is in the CodeIgniter forums.
  • Finally, a framework that improves my productivity. Most frameworks tries to do to much and are so huge and rigid that there is a huge learning curve if you want to doing anything but a “Hello World” app. CodeIgniter helps me with the stuff I need help with and doesn’t meddle in the rest. There is no need to hack 10 plugins of different qualities together to get what I need (like in Drupal), and that just makes developing fun as it should be. It is also the first MVC (Model-View-Controller) framework that helps me organise my code in a good way, something that I usually suck at otherwise.

In short I recommend that anybody that knows PHP and want a light weight, good framework checks out CodeIgniter. A good place to start are the CodeIgniter video tutorials, and if you get a bit deeper into things Elliot Haughin has a great blog that often covers CodeIgniter and he also have some great libraries that are well worth looking at (CodeIgniter libs for Twitter, Flickr and Akismet for example). Another great resource is the blog of Derek Allard, Technology Architect at Ellis Labs.

Mashups mainstream by 2013 according to Forrester

Standard

According to a new report from Forrester Research Enterprise Mashups will reach their tipping point during 2009-2010 and then become part of the general IT landscape by 2013. This means that the old IT gigants like IBM, Oracle and Microsoft will dominate the mashup market and mashup platforms will be part of their offerings. I guess this means that Microsoft Popfly will merge into Sharepoint and IBM Mashup Hub will merge with WebSphere.

Forrester divides mashups into three types:

  • Presentation layer mashups – merge content from seperate sources into one view, the simplest type of mashups.
  • Data mashups – more complex data driven mashups that get data from several sources and present them in one view
  • Process mashups – mixes business processes and users with data from several data sources.

Presentation mashups and data mashups sound very much similar to me, but then again I dont get payed by Forrester… But Forrester has a lot of influence over this so unless Gartner comes up with another definition this is the ones we have to live with.

I am glad to see that Forrester also realized that enterprise mashups will be huge. It is kind of a self realizing profecy – there will be a lot of men in ties reading this report so it is going to help Enterprise Mashups grow. It is really the next wave in enterprise software. And if you are reading my humble blog you are already years ahead of the mashup wave 🙂

For more info about this report see Forrester: Enterprise Mashups to Hit $700 Million by 2013 on ReadWriteWeb.

The need to Mashup Twitter, Pownce and Jaiku

Standard

I have some friends on Twitter, a couple on Pownce and Jaiku is the platform of choice in the swedish tech sector so I am getting into Jaiku as well (I am “andreaskrohn” on all of them). Which platform you use depends on what technology you prefer and where your friends are. I don’t really care about the technology at the moment, I just want to keep in touch with my friends (yes I know that Pownce API kicks Twitters ass and that Twitter goes down more than an intern in the Clinton White House, but believe it or not, I prioritise friends over tech). These are 3 different platforms, each trying to be a community. But the community of any one person will not live on one platform, unless that platform gets to be either completely dominant or the technical platform providers takes a step back and let the community live across providers. The latter has happened with telephone services (you can call friends with a different cell phone provider) with email (i can mail people that are stuck on Microsoft Exchange from my Gmail) etc etc. I can not wait until this happens to the microblogs!

It is quite easy to post to several microbloggins services at once. Jaiku does a great job of importing RSS feeds, so posts to Twitter or Pownce can easily be imported to Jaiku. Via Twitterfeed it is easy to get an RSS feed into your Twitter as well. I haven’t found any easy way of getting an RSS feed into Pownce. Also there are apps like Twhirl that let’s you post to all 3 platforms at once. In my case I also use the Twitter Facebook app to get my tweets into my Facebook status and I am looking for a way to do the same with LinkedIn (no success yet). So posting cross-platform is not a problem, even if it means that you need to do some configuration and that all your posts gets trippled or quadrupled.

Reading friends posts from several platforms could also easily be done. I could of course go to all the different services and read each posts on each one, but since I want to do other things with my day than that I would rather use services like FriendFeed or SocialThing that aggregates it all into one place. FriendFeed imports from most sources and have some nice comment features, but the UI really desperatly needs a designers touch. SocialThing imports from just a few places so far (please please add RSS now!) but I still prefer it to FriendFeed. These services and others make it easy to see your friends posts from several platforms in one place. What is missing is a way to naturally post back to the microblogging platforms from these services.

What is needed, and what will come very soon I am sure, is a mashup of all these microbloggin platforms to allow users to be active on several platforms at once all from one place. I would like to see an app that allows me to interact with Twitter, Pownce and Jaiku completely. This means reading other peoples posts, replying to posts to have a conversation going cross-platform and posting to all platforms at once. Since all of the platforms have APIs this should be possible to implement (and for all I know it already exists somewhere, if you know of such an app please let me know through a comment on this post!). This would be a great mashup that would breach the community silos that exists today. Short of everyone moving to one platform a mashup is the best answer to this problem.

Btw, I have some extra SocialThing invites so if anybody wants one please let me know via a comment on this post.

Goodbye Kapow and thanks for all the fish

Standard

As of May 1st I am no longer working as Product Manager at Kapow Technologies, instead I am now an “independent internet professional” which is just a fancy way of saying that I think I can make my fortunes by myself. I have worked for Kapow during the last 3 years, and it has been a great time. It’s a company with a great product, great people and a great future. However, Kapow’s future doesn’t match up with what I have planned for my own future.

Now I will concentrate on creating something of my own, and I will be sure to keep you in the loop of what that is. Of course it will involve mashup technologies and remixing data, as that is what I am good at. Also I think that there are good possibilities to spread the word of mashups in Sweden, I have already done some of that, for example at the Web Service Awards last year in Stockholm.

So… Goodbye Kapow and thanks for all the fish, but now it is time for me to live the life without paychecks but with endless possibilities. Part of that life is making Digitalistic.com looking better, something that I hope you have already noticed. Thank you very much to Kemie at Monolinea.com for doing a much needed upgrade of the site!

How to market your APIs and your Mashups

Standard

Last week I was at Mashup Camp 6 in Mountain View, my 4th one so far. One of the discussions at the Camp was about how to market your mashups, and that got me thinking more about the subject. Here’s my rant about how to market your API or your mashup that resulted from my latte induced and lack-of-sleep fuled thinking. Since there are, by definition, several components to a mashups there are also several levels of marketing. The first one is where the API provider needs to market the API to developers to they start to use it. The second one is where the mashup developer needs to market their mashup to the end user.

The API Provider
You have this great service that lifts humanity to a new level, makes the sun shine brighter, makes TV sucks less and give the gift of limitless bandwidth to the people (or at least it is really cool). You have even added this great API, now what? How do you get developers to start using the API and spread the word of your great service to everyone and their grandmother?

Well, let’s back up a bit. First of all, do you really have a great service? If you do, then do you really have a great API? Without a product people want to use there is no need to go through the hassle of promoting it. Make sure that the API actually is usefull for developers, that it will enable them to do cool and usefull stuff easier than if they would just hack it all together from scratch. Also make sure that there are plenty of documentation, examples, code snippets etc for the developers to get their hands on to minimize the barrier to entry. Hack together some mashups yourself with your API included in the mix, to give people and idea of what can be done. The key to get an API used by developers is to get the developers excited about the possibilities and get them talking. So give them something to be excited about and something to talk about.

Once all that hard work is done then you can promote your API via directories such as programmableweb and webmashup so that developers can find you. If you have made your own example mashups, then go through the steps below to market that, that is a good way of getting some recognition.

Last, but not at all least, show some love for the developers that has taken their time and built something using your API. Have an example gallery where they can list their creations. Blog about them. Talk about them at conferences. “Link love shall be bestowed upon those who link love showeth”.

The Mashup Developer
For the developer of the mashup there is Google AdSense money on the line, or maybe just recognition from peers. Most mashups result in web pages anyway, so make sure to do all the SEO stuff – have good page titles, have a good copy, have validating HTML, have a sitemap available etc. If there is money down the line for you then also throw some money at advertising (Google & Facebook makes this a walk in the park). All this is standard, but as there are differences between mashups and a regular web page you should also use that to your advantage.

What APIs do you use? What tools have you used to piece things together? Explain how you made your mashup, what the moving parts are. If you used Yahoo! Pipes, then link to the pipes used and explain how they were done. If you used Google Maps (and if you are a mashup newbie then I guarantee that you have, just admit it… “my name is Andreas, and I am a Google Maps addict”) then explain how. If you used openkapow robots, then explain how you developed them. Since API providers are suckers for traffic, just as everyone else, it is not unlikely that they would be interested in adding your mashup (assuming it kicks-ass, which of course it does) to their example gallery. All this creates more link love, more Google baits and really increases the chances of your mashup being found and appreciated by fellow developers. Another plus is that all this also increases the chances to be blogged about, do not forget that bloggers are suckers both for traffic and content.

There’s both money and recognition in entering your mashup in a contest, see programmableweb for a good list of what you can enter right now. You might not have to redo the mashup from the ground up, just add another API to the already great mashup you have made and you could already be a winner. If you go to Mashup Camp you could enter the traditional Speed Geeking (like speed dating for mashups basically) and go home with a shiny new Macbook.

Of course also list your mashups in directories such as programmableweb and webmashup , but by now you should know that already 🙂

Thanks for everyone that discussed this with me at Mashup Camp! For the notes from this session check out the Mashup Camp wiki.