Author Archives: Florian

Function, Form, Future →

Shawn Blanc:

Three things to think about for whether or not a gadget, app, or any other product is worth your continued investment of use and money.

Good list, however I would add another point:

  1. If you don’t like to use it would it be even worse if you wouldn’t use it?

This point is, for example, for finance applications. Everybody hates dealing with financing and no app can make that fun again, but at least they can make it less worse.

Contributing Guidelines →

Kevin R. Barnes:

We’ve tried making this easy for everyone. As a maintainer, all you have to do is add a CONTRIBUTING file (or CONTRIBUTING.md if you’re using Markdown) to the root of your repository. Then we will add a link to your file when a contributor creates an Issue or opens a Pull Request.

I like GitHub (both as a product and as a company) because they continue to incorporate conventions established by users into their product. Kinda the opposite of Twitter.

Ecosystems

There are a lot of reasons why I won’t abandon the iOS platform in the near future. For one, I think the hardware is the best currently available to buy. It’s not about the specifications, but that the phone feels great when you hold it in your hand. Another reason is that I like iOS more than I like Android or Windows Phone. However, the main reason why I prefer my iPhone is its ecosystem. Even if the hardware and the software of Android devices gets improved I couldn’t switch as long as all the great apps I use on a daily basis are not available on Android. This post is not about Apple and the iPhone, it’s about programming languages.

Some months ago I decided to learn Ruby. For the previous 13 years I have done most of my development in PHP and at least in the last three years I became more and more jealous of Ruby developers. Nearly on a daily basis I would find great Ruby libraries and as I digged deeper, I realised that the Ruby community were more active on Github and Stack Overflow, that the blog posts about Ruby development are often better written and understandable than those about PHP development and that the this is also true for the documentation of software and libraries.

Libraries, documentation and support is what makes a good programming language great. The greatest programming language will fail if there is no ecosystem around it just like a mobile operating system will fail without an ecosystem.

After the feeling that I should learn Ruby and use it as my main programming language for my private projects grew for a long time, I finally ordered two books about Ruby and started reading them. However, around the same time I started a new project, Tvst, and I decided that I would use PHP one last time. I choose Symfony2 as framework since I heard a lot of great things about it, and I even contributed a little bit of code for the Forms framework during a semester project some years ago. As I worked with Symfony2 I quickly learned that Symfony2 had already gathered a massive community around it and that there are a lot of great bundles and libraries. I realised that the state of the PHP community had improved a lot in recent years. There are many great blog posts and Stack Overflow answers available and the amount of useful Symfony2 bundles and the state of its documentation is sheer astonishing.

Additionally with Composer there is finally a great package and dependency manager for the PHP world. PEAR was always a complete mess and I hated dealing with it, and while Composer still has some problems, it’s a gigantic step in the right direction and is definitely comparable with RubyGems.

Currently I’m still reading the first of the two Ruby books, but I have also started working on two new projects using Symfony2. I still want to learn Ruby, but I will continue to use PHP as programming language for my private (and also professional) projects in the near future.

Additionally I try to participate more in the PHP and Symfony2 community in order to improve it even more. If I want to take from that great community, I should also give something back. Yesterday I released my first real bundle for Symfony2. Bootstrap for Symfony2 brings Twitter Bootstrap to Symfony2. I use it for all my new projects to quickly create a prototype. Using Twitter Bootstrap allows me to spend more time on writing actual code and less on designing and developing the front end.

If you are interested, you can take a look at the documentation or the project on Github or Packagist:

50 Shades of Open

There is trouble in micro-blogging paradise. Twitter changed its API guidelines, which leaves third party clients like TweetBot or Twitterrific with an uncertain future. App.net raised over 750,000 dollars in a Kickerstarter-like crowd-sourcing campaign1. Finally, Tent tries to build an open alternative to Twitter.

In the first years of its existence Twitter was considered open (or at least more open than its competitors) because developers had access to nearly every feature of their platform through the Twitter API. Twitters very limited feature set and the API made a huge ecosystem of Twitter apps from third party developers possible. Especially power users favoured clients like TweetBot or Twitterrific over the clients provided by Twitter directly. However, the changes to their API guidelines announced on August 162 leave developers of third party clients with an uncertain future3. For now the guidelines still allow clients and developers seem to look optimistic in the future45. The problem is that Twitter made changes to their guidelines and policies in the past and they can do it again any time. For example, Twitter revoked access to the friend-finding API for Instagram and Tumblr6. While Instagram is now owned by Facebook, their biggest competitor, Tumblr partnered with Twitter in the past. After this announcement it is unclear if Twitter allow a find friends feature for any other service in the future.

Since a lot of users and developers are scared that Twitter will strengthen their guidelines even more and, eventually, disallowing third party clients, App.net was successful in meeting their funding goal of 500,000 dollars7. Although this has happened before Twitter changed their guidelines, there where rumours and signs for Twitter becoming the bad guys for a while now. In this case bad means trying to earn money from advertisers and therefore by compromising the experience for users. There are two main problems with App.net. First of all, currently we do not now if App.net succeeds, that is, it reaches a critical mass of users and not only a small group of nerds that care about third party apps and open API access. Secondly even if a critical mass signs up for App.net and pays to use the server we can’t determine if they can generate enough revenue from its users to develop and maintain the service.

Another huge problem of App.net is that generating revenue from users instead of advertisers and providing an open API does not make App.net a truly open service. A truly open service would work somehow like email or blogs. Everyone is able to install the service on its on servers, even if the vast majority of users choose to use a commercial provider (like WordPress.com for blogs or Gmail for email).

Although OStatus8 and Status.net exist for several years now, Tent.io tries to build such a distributed social network9. The goal of these projects is noble, but only the future will show if it is even technically possible to build a distributed real-time network that scales well10 and if enough users are going to use this open alternative.

The future of real-time micro-blogging is unclear, but we will see if Twitter will remain useable (i.e. there will be third party clients), if App.net will become successful or if we even can use our own servers to publish status updates. In the worst case scenario nothing will work out and we will blog more.

An iPhone App Startup Performance Technique →

Brent Simmons on the startup time of Glassboard:

There was no way I could let startup be delayed several seconds — that would have been monstrously bad. So what I did was cache just enough info on disk to be able to rebuild the outline without hitting the database.

Jonathan Daan on the startup time of Version 5 of Facebook for iOS:

Finally, when you start Facebook for iOS, you want to see your news feed, not a loading spinner. To provide the best experience possible, we now show previously-cached content immediately.

I haven’t developed an iPhone app yet, but I find these stories about tuning the performance incredibly interesting. Performance is always a problem, especially if you are working with data on a remote server and Apple should try to help developers by providing easy to use APIs.

Apples approach to tackle this problem, at least in OS X Safari, is to display a screenshot of the page while it renders the DOM. Try using the back and forward button in Safari and you will notice that the text shows some JPEG artefacts.

I’m still playing

Marcel Wichmann:

It seems like playing is over and life begins and it feels good. Somehow it’s like I’ve done everything in the last years to get where I’m now. And where I am is not even somewhere. It could just be the starting point of something much bigger.

First of all congratulations to Marcel and his team, they have come a long way and have done a hell of a job in the last 1.5 years. QUOTE.fm is a great web service and their upcoming iPad app makes it even better.

I’m still playing, but recently I stepped up my game and I am working really hard to make Tvst (a TV show tracker) reality. I don’t know if it will be as successful as Quote.fm, but that doesn’t matter since I am still playing. However, I need get a something out that is more than a weekend project.

I realised that there is a huge difference between a project I create on a single weekend and a project I work on for weeks or months. Some features require a week or two of work and they need to be carefully designed and tested. Since I am constrained in time and money I need to decide which features are worth building and which ideas and features should be put in the trash or at least put on hold.

Real artists ship

Before I can become an artist and ship, I need to have something that I can ship. I am not talking about a polished product, I am talking about rough prototype. Tvst is currently not more than a framework, a collection of tools to import data. What I need to do in the next few weeks is to build a graphical interface, fix bugs and ship it.

In the past I often had built staff, but I never really committed to them and I therefore never shipped them. I am committed to Tvst and I will ship it. I promise.

Bon Iver (Live at Arena on August 1 2012)

Bon Iver (Live at Arena on August 1 2012) Photo 1

Bon Iver (Live at Arena on August 1 2012) Photo 2

Bon Iver (Live at Arena on August 1 2012) Photo 3

Bon Iver (Live at Arena on August 1 2012) Photo 4

Bon Iver (Live at Arena on August 1 2012) Photo 5

Bon Iver (Live at Arena on August 1 2012) Photo 6

That was a great concert.

The Lion King Rises

The Lion King Rises: The Dark Knight Rises/Lion King Mashup.

Why is there a program called Evolution in CE? →

Ubuntu Christian Edition Forum:

I am rather upset by the inclusion this program called Evolution in Ubuntu CE. I am unfamiliar with what this program does, but I find the word to be offensive to myself and other Christians. Would it be possible to rename Evolution or not include it as a default package? I do my best to raise my children in a household that preaches the word of God, and I find it rather dubious that Ubuntu CE should include a program that so directly contradicts the word of God.

I laughed really hard.

Video Games by Boy George (Lana Del Rey cover) →

This cover of Lana Del Reys Video Games by Boy George is incredible beautiful.