So I recently made quite a few projects on github, all with slightly short odd names. So I thought I’d write up about what they actually do, why I wrote them and why I gave them such short and maybe slightly odd names. So first of all I started with ddfs, simply because I needed it. I basically a directory on a server that because got new files the entire day, which I wanted to backup. Now instead of backing it up once a day through cron I thought it would be neat to just lifesync, which would of course also safe that extra load once a day to sync and all. This also gave me a nice chance to work with in this case inotify, which seemed to miss a couple of things. So the end product as I have it in use now is basically a simple server that’ll just send all the new files to the connected clients. So in a way it is distributed as in multiple clients, but besides that it is kind of dumb as it just sends the new files to everyone. But for my use case that was more than enough, I basically wanted live backups to my laptop and desktop after all. So because of this and because I kind of suck at coming up with proper project names I decided to name it Dumb Distributed File System, or just ddfs.
Blocking disk IO really, really sucks. Pretty much all the disk IO APIs out there are blocking, which in my opinion is really, really bad. Basically when most of these APIs were designed they just assumed hard drives are fast and could be written to (or read from) instantly. What a joke. Hell even these days hard drives (and yes even solid state drives) are slow (yes I consider 5 milliseconds to be slow). Now for the other kind of IO also known as network there are also blocking APIs, but at least non-blocking and async APIs have been around for ages. Now for non-blocking/async disk IO most solutions I did find involved threads, which in my opinion is not a proper solution.
Tablet apps, what is really considered a tablet app these days? The answer could be different for everyone of course. But generally speaking I think most people would say it has to be optimized for the bigger size of screen (compared to a phone that is). This answer somewhat seems to be different between the 2 major platforms though, those 2 being Android and iOS of course. Both handle tablet apps entirely different. Let’s start with iOS. There seem to be 2 ‘kind’ of apps on iOS, iPhone apps and iPad apps. In both case the apps are created for one aspect ratio, which honestly is kind of really stupid. This for example is the cause of the black borders in ‘legacy’ apps on the iPhone 5. In my opinion developing for one aspect ratio (or one piece of hardware for that matter) is really stupid, it’s everything but scalable, which they kind of proofed when the changed the aspect ratio with the iPhone 5.
It’s been a while but I finally released an update for Twoons for Android again. It’s mainly a bug fix update although it brings some nice new features. It brings a inline picture viewer for example so you won’t have to leave the client for links like twitpic, yfrog, lockerz, etc. Next to the picture uploading is entirely rewritten. I however took away pic.twitter.com but this is replaced by a couple of popular uploading services. Next to that you can also use your own custom media endpoint.
Today I released a small update for EasterDroid. As you may or may not know Google decided to hide small easter eggs in Android since Gingerbread, usually discovered by tapping the version number in the settings multiple times. EasterDroid is a collection of all these easter eggs. With the update from today you’ll now be able to use these as a DayDream in case you have access to Android 4.2. Next to that I also did a small tablet optimization.
So, I haven’t rolled out a lot of updates in quite sometime. During this time however I got myself the Nexus 7 as it finally released here. One of the first things I started doing with it was optimizing Twoons for tablets. Which I released in v0.4 just now. As tablets obviously have a larger screen I decided to go for multi column, meaning you can view multiple columns at once.
This is actually old news already, but Twoons for Android is finally in the play store. Well finally, it has been in there for over a month already. But I just uploaded a new version (which is currently rolling out). And it’s a rather nice one if I say so myself. I redesigned the way users are viewed quite a bit. You’ll now get to see a high resolution profile picture of the person and you can swipe again to see tweets, favorites, etc, a picture of this is shown below. Besides that a bunch of bug fixes and some internal changes.
As I promised last week, it’s public beta time. I’m throwing both the Linux and the Android version into public beta at the same time. Some already used the Linux version while it was in closed beta, but that will be available for everyone too now. I made quite some changes in both the apps. The Linux app for example now has support for the pretty much standard libnotify, meaning you can get nice integrated notifications. And the Android app got almost a complete make over, it uses the so called ActionBar quite often now. Apart from the fact that ActionBar is actually from Android 3.0 and up Twoons for Android is Android 2.2 and up. It also features basic things like username auto completion now.
It’s been a while, but in the meantime I haven’t been idling. I’ve been quite busy with school and in the meantime mainly with Twoons for Android. I was originally aiming to do the beta this weekend, but due to some circumstances I decided to not do it this weekend. You can however expect the beta to come next weekend. This is for both the Linux app and the Android app. The Android app will be Android 2.2 and up, but it’ll have a Ice Cream Sandwich feeling. It already has multi user support, as this is in my opinion as must have for a mobile twitter client.
It’s been a while since my last blog post. But I’ve been busy quite a lot. As I got the Nexus S last December I started doing some Android development. So as promised, if all Android twitter clients sucks in my opinion I would make one of my own. So it didn’t take me that long before I started working on it. So I proudly present, Twoons for Android. It’s still in pre-alpha and I’m the only one who has access to it. But it’ll go into public beta in a few weeks/months. At that same time I’ll make the beta of the desktop client public.