People who follow me on Github may have noticed a stub repository created about 5 months ago which seemingly nothing happened to as this was my last activity on Github until this morning. Well, I have actually been messing around with code tutorials and reading up on Android at dev.android.com. I decided (about five months ago) that my first app would be a Tumblr client. A social site that fosters trends within shared interest groups by the means of “reblogging” other users posts. More relevant to this app users of Tumblr can follow the blogs of other users and all the posts of the blogs a user follows are aggregated into an infinite scrolling dashboard.
As a new and avid user of Tumblr I was frustrated with the lack of a nice app which caches a large enough amount of the dashboard offline in order for me to browse my Tumblr dashboard in the train on the way to work on my tablet; where I have little/no internet connectivity (for example). So I decided to implement this functionality and create an android app of my own, this also allows me to exhibit my knowledge I’ve gained on the OAuth protocol as the app will have to handle the consumer role as it retrieves and displays information by communicating with Tumblr’s API.
I’ve been playing around with two Java OAuth libraries, Signpost and Scribe. This morning I committed my progress with the Scribe library.
So prepare for Amblr, the Tumblr viewer/client for Android devices, to be coming soon (subject to my weekends being free).
With this post I’m completing my final session in my Anki version 1.2 decks. I have downloaded Anki 2.0 and converted my decks over to the new Collection format. The new Anki application itself is a lot lighter and faster. I think this is partially due to the design change which leaves the background white instead of grey, this could ultimately prove irritating for late night review sessions and I’m going to miss my grey, but there is deffinately a performance increase. Also syncing changes is a lot quicker as the whole deck is not uploaded/downloaded with each sync action rather only changes are pushed and updated to the appropriate collection (deck).
The decks are now shared via the AnkiWeb site. Links can be found for German here and Polish here.
As part of my job recently I have to get to grips with new code bases for slot machines, understand new API’s and follow new communication protocols. It took its time (about a week) but I finally believe I know the ins and outs of one of the systems and have a broad picture view of the other which is good, but I’m slightly disappointed. I wish the whole process of getting to where I am now was more efficient. Stepping through the intended execution of the code occasionally branching off to observe exceptions which may occur took far more time than I had expected and I am near positive there are better ways of internalising a large code base.
When things settle down at work I plan on carrying out a similar exercise with a piece of open source code; most likely Gnome’s Nautilus or Gedit. I have been wanting to add features to these programs which I use so regularly and understanding how they tick would be one of the best ways to embark on that goal.
Although, this week I’ll be finishing of what I have begun with the slot machine project, and producing a polished code review to detail my efforts. Looking forward to getting a little arty transferring some of my scribbled class diagrams on to the screen in the near future.
Ciao for now.
Over the last few months I have been slowly making progress through the novel Das Skript by Arno Strobel. The book categorises itself as a Psychothriller and so far I have actually found it rather enjoyable. Sure, I would probably progress through it a great deal faster if it was in English and I am only reading a few passages a week when I don’t have any Anki sessions to finish in the train. But I am enjoying it, retaining the plot and most importantly learning new German vocabulary. For example verschleppen (to kidnap, abduct). I was hoping it would improve my grammer but absorbing grammar rules by reading a short passage every day or so doesn’t seem to be working out.
There is another advantage however to stuffing Strobel’s novel in my backpack everyday, and that comes from the fact I feel the need to pack a thick Collins English <-> German dictionary along with it. Having the ability to actually find those odd words I hear throughout the day and translate them to German is great. Although to make it truly beneficial I need to jot them down and add them to my Anki decks to learn them absolutely.
Anyways, the novel is great! I’m nine chapters in, maybe in a few months or so I’ll write up a little book review. Vielleicht auf Deutsch!
Today I learnt I scored a First in my German class I’d been taking over the last year. This means I’m officially A2 level at German. I now wonder what would have happened if I’d been more optimistic and opted for the B1 level class. Would it affect my final year result at Uni and my degree, or would I just get a lower grade. At times I didn’t find the class very challenging but I always learnt something and if not practised my German each week. Plus the teacher I had was awesome. The question the poses itself what is worth more a A2 certificated that was ace’d or a B1 certificate with and average passing grade?
Anyhow the next step is to B1 level. I plan to get this textbook which my teacher mention the B1 certificate class would be using. I also plan to stay Anki’ing and start making posts on lang-8.com with some regularity. I want to try and reach B2/DaF level before I start my Masters degree. With Anki I have introduced a grammar deck which although growing slowly is affirming grammar concepts within Polish and I want to add an additional German grammar deck which I will include within my daily Anki routine.
This week has been pretty crazy, I did have a good relax last weekend but I spent more time in the office this week than I have ever spent in the office ever. I think I worked about an extra day and a half in over time, no lie. Most of the work involving ploughing ahead with a developer Handbook that will be a bible to any new developers within the translations department. My line manager literally wants my brain (as far as work is concerned) in there and its a big ask, if I can say so without being cocky.
Consequently, time to hack on projects such as an XML file tool to eradicate the time wasted making changes to comply to the nightmare differences between different client XML file structures and the translations they want with in them plus various client specific fields. The project is in a state where it can parse the XML file in question, and my next step is to write client specific modules to enforce the changes that are needed.
I’m quite excited about this position to be honest. I however am not excited about my results for my Dissertation and ultimately my degree.
implementation connection.time latency messages connections timeouts
Erlang 865 17 2849294 10000 0
Haskell (Snap) 168 227 1187413 4996 108
Java (Webbit) 567 835 1028390 4637 157
Go 284 18503 2398180 9775 225
Node.js (websocket) 768 42580 1170847 5701 4299
Python (ws4py) 1561 34889 1052996 4792 5208
Here we see Erlang out perform everything with incredibly low latency and 0 timeouts while maintaining 10k connections. Erlang has distributed superpowers which I want to harness. I’ve read that from a learning the functional paradigm standpoint Erlang offers a gentler ride than Haskell. I’m tempted to dive into the world of Erlang properly after only touching the surface during the research phases of my dissertation.
Obviously a 10k connection test client and server program wouldn’t be a nonsensical place to start for a first programming project in Erlang but something else caught my eye, written in python. This web crawler would make for a tasty project in Erlang, distributed and concurrent web spiders. But I need to decide on whether or not to adopt yet another language. I want to, but is it for the best.
Currently I’m coding up a small XML reformatting program in Java making use of the SAX libraries. If I finish it in the coming week which also promises to be horrendously busy I will attempt to clone the functionality in Haskell.
Over the last couple days I have been reading the Doom3 source code after reading a code review of the idTech 4 SDK currently up . So far it has been an interesting read I’m not through with it yet. As I’ve had distractions in the form of European Championship Football. But reading the Doom 3 source code so far has boosted my programming spirits. I feel intelligent understanding a commercial game engine and inspired to push my current project beyond just a back-end generating/resolving statistics game engine to include visuals.
I have also been reading up on OAuth2, I’m planning a smaller side project to produce an app which hooks on to an internet API with some sort of user system requiring authentication of the client in an OAuth2 fashion. This initially came from the desire to get a command line interface for github to allow me to bypass the process of using a browser and clicking around the interwebs just to create a repository on my github account. Well after bumping into the developer API before seeing the official github CLI (I was tired ok?). I decided to take a look at how hard it would be to program my own. It seemed like all it would need to be is a .sh script which issued a set of curl commands. However not so about 9 months or so ago (I believe). Github changed there API now version 3. Requiring access to the API via a client program to require an OAuth client_ID and secret. So that meant I couldn’t just plug my username and password into a shell script and connect through their API.
I was disappointed and soon found the official CLI after that, called hub. I always knew but this has really made it sink in, that for a lot these cool connectivity applications or utilities which hook into existing services as well as social media applications, OAuth/OAuth2 is standard. So now my small grievance is settled in my terminal and I can create repositories on my github account without touching a browser. I still want to get down and dirty in OAuth2, producing something if not substantial at least something that can be shown off. Now this is on the TO DO list I will try and cross two things off at once by developing something that hooks into the Facebook API.
Well thats about all for now, more coding today, then football at 17:00
So I have pretty much finished my final year of University, but I don’t think I’ll be taking much of a break from the busy life that seems to have become a habit. I’ll be turning my programming energies to programming tools from my day job at Ash Gaming, the aim is to speed up my work flow there, benefiting with deadlines always being met efficiently at a high quality and on time while also benefiting me; giving me more time to read and learn.
I also want to turn my attention to my creative hobbies which have basically been neglected over the last 4 to 6 months. Music, writing and language will all be seeing a lot more post time on the blog.
All this will be done while getting back into the shape I was in before this crazy ass year started!
Wish me luck…
Things are all about the process report no more time for implementation which is getting me down because things still don’t work!!!
I’m really unsure about the word count, my friend Dave is telling me he’s aiming for ridiculous amounts of words, either way. I need to start writing now if I’m going to have any chance of possessing a decent write up.