Archive for the ‘General’ Category

h1

Latest project – Solvius

June 7, 2009

Well it’s been a while since I’ve written a post, mainly due to the amount of time I’ve spent learning Rails & working on Solvius.

After reading “Pragmatic Thinking and Learning: Refactor Your Wetware“, I decided to create a program to store all the problems I come across over times, storing them in a solutions log of sorts. For one reason or another I had put it off.

Fortunately I came up with some free time & decided to finally write the application in Rails, I’m new to Rails & as some of you may know I rarely miss the chance to kill two birds with one stone.

It didn’t take long to create the basic functionality, two weeks at the most, the last few weeks I’ve spent learning Cucumber & RSpec, but thats another post. I’ve finally uploaded the application to my host & setup some basic data, over the next few weeks I’ll incrementally add new functionality to the site.

It’s been an enjoyable experience, I must say I’ve become a total convert to rails (i’ll leave that for another post) & have picked up a crap load of knowledge over the past month of a half learning. Hopefully in the coming weeks I’ll write up my notes and experiences but for now I thought I’d quickly go through what Solvius allows people to do & some of the plans I have for it in the future.

Why

Well as I previously mentioned Solvius was inspired by “Pragmatic Thinking and Learning: Refactor Your Wetware“. It’s primary goal is to help people track and store problems & solutions that we come across in our day to day lives. I’ve lost count of the amount of times I’ve come across a problem that I’ve solved but know I’ll have to go digging for the solution.

The cool thing about solvius is that the application can be used to store all kinds of problems and solutions, whether it be some kind of novelty puzzle to some a professional or academic conundrum.

At the moment the application is in beta, so invites are needed before you can signup, hopefully once all the kinks are ironed out and I have the time to improve the design, the site will be open to all.

Features

  • Create problems
    Allows a user to create a public or private problem
  • Solve problems
    Registered users are able to solve public problems, as well as their private ones
  • Make problems private
    Not everyone likes their problems out in the open

Future Features

  • Invites via twitter
    Will be able to tweet @solvius which will mail out an invite
  • Suggest solutions
    Users are able to suggest solutions for public problems
  • Solution & problem search
    Registered users will be able to search for specific types of problems & solutions
  • Facebook Connect
    Peoples will be able to register via FBConnect
  • Tweet updates
    Updates when problems are solved
  • Problem/Solution groups
    Users will be able to join specific problem/solution groups to help in mass problem solving.

Feel free to check out the site out  or tweet @solvius with any suggestions or ideas.

h1

Lighting up the tunnErl Pt 1.

January 4, 2009

Well after a few months of playing around with Erlang, I thought I’d put my findings in one place for myself and others.

Well for those that aren’t familiar with Erlang or never heard of it, in a nut shell Erlang is a functional programming language create multiple processes across multiple nodes, allowing for a reliable & fault tolerant system.

It allows us as developers to develop applications over a number of nodes, these nodes can be either local to the machine they are running on or on a totally different machine running the same software, this allows for concurrent reliable systems.

I wont go into too much detail on how all this works because it’s done so well in other places (Erlang).

This post will cover the learning resources I’ve found useful & invaluable to my exploration into Erlang, the 2nd will highlight mistakes & general cock-ups made over the past few months. Followed by the 3rd, dealing with project management and how we can achieve this & more with Faxien & Sinan.

There is a decent number of sources out there for Erlang from code examples to general tutorials & articles a few of them which you can find at the bottom of this post. Not to mention a hell of alot of useful and interesting projects created with Erlang (CouchDB, ErlyWeb, Mochiweb to name a few).

Myself I’m focusing on using Mochiweb, Beepbeep & CouchDB for web applications. Mochiweb to deal with RESTful requests/responses, Beepbeep to deal with the MVC  of the application & CouchDB to store data (documents). If you haven’t already read up on CouchDB I suggest you do, it may well give you some nice ideas ;) .

Well I as mentioned in a previous post I’ve had the itch to learn a new language. I started off by reading Programming Erlang by Joe Armstrong (a must have for anyone making the jump into the world of Erl. It has helped me no end when my brain goes blank & I’ve forgotten how something in Erlang works. Over the months I’ve practically slept with my copy, the examples are elegant and Joe has an excellent job of creating a good introduction to Erlang and its practices.

That is where ‘Erlang In Practice‘ (Screencasts by Kevin Smith) this set of screencasts are definately worth the £20 odd I spent on it. The most useful being episode 6 & 8 which focus on e-unit & supervisors respectively. Though admittedly the episode on e-unit could of focused a bit more on testing OTP based modules (I guess I’ll have to pick this up later).

Still there is more to learn, personally the best way to learn something is to do it, so I’ve played around with the shell whilst working through examples, got myself familar with the OTP documentation and stifted the net for code examples, githubs a nice place to look (ngerakines, davebryson & few others have some decent code you can get some ideas/insipration from)

Resources
There are alot of new tools coming out and it is always interesting to see what others are doing, heres some sites/blogs that I find myself practically attached to:

Well I think that pretty much wraps it up for part 1, part 2 is in the drafts so it should be published in the near future. If you have come across any other useful resource, feel free to drop me a comment, the more information the better imo ;)

h1

Finally got myself on Github

December 1, 2008

Well after a while of staying away from learning yet another versioning system, I’ve fallen in line, I decided last night that it would be a good idea to put all my Erlang based work up on github.  I was hoping to use TDD with this project but that will have to be looked at later (TDD & Erlang is a bit much for me ATM).

I’ve submitted my second attempt at an Twitter client (Twitterl), which I’ll be using with other projects, for now feel free to have a look & possibly take part. Over time I’ll gradually add more functionality to the system an blog my experiences as I go along.

h1

Learning a new Er lang…

November 30, 2008

I’ve had the itch to learn a different language for a good while now, I thought about picking up Ruby or Python & saw no personal practical use for them, plus the fact that I’d still be stuck in the same paradigm just with different a syntax.

Whilst surfing a three weeks ago I came across a piece of code of which I had never encountered (I can’t recall where I stumpled upon this right now).

Being naturally curious my fingers sent me to Google, quickly followed by Amazon, the day after I had Joe Armstong’s “Erlang Programming” book. I have to say I cant remember the last time reading a techie book threw me into boughts of laughter chapter after chapter, not because it a helarious book but purely down to how the language solved problems.

list([Item|Items]) -> io:format("~p~n", [Item]), list(Items);
list([]) -> [].

As apposed to a ‘C type language’ which would look like:-

foeach($items as $item) {
print($item ."\n");
}

I’ve been playing with Erlang for three weeks now and am impressed, at the moment I’m playing with a twitter API, basically retrieving public & user specific twitters. Once I get my head around HTTP authentication with Erlang i’ll extend it further utilising a few other systems tying them together to track and send messages over multiple networks.

For now I’ll show you a little bit of code that will store the body of a HTTP response:
{ok,{_Status,_Head,Body}} = http:request("http://www.google.co.uk").

Firstly this is a piece of pattern matching one of the main princples of Erlang, on the right we retrieve a Tuple which we match to the left hand pattern, if the pattern is matched the response body is stored in Body.The pattern reads as:

“Our http:request from Google must match a Tuple containing the atom ‘ok’ preceeded by a Tuple containing 2 items we don’t care (_Status,_Head) and 1 which we’ll store in the item body.”

The other items (Status,_Head) are dismissed indicated by the prefixed underscore, removing the prefix would mead Status & Head would also be assign values.

It’s this pattern matching that makes Erlang fun to play with, you can quite easily find yourself getting losting in tuples, lists & atoms, at the moment I tend to find myself playing around with matching patterns within erl (Erlangs shell) storing the needed values.

In my opinion reading Joe Armstrong’s “Software for a Concurrent World” is a must, I’m still going through it now & find the reference in the appendix an constant help, I also found Kevin Smith’s screencast’s “Erlang in practice” an excellent help too, especially in regards to the TDD using eunit, I still have a great deal to learn in regards to TDD with Erlang, mainly down to me hacking around & trying to get my self familiar with the syntax.

There are also a number of cool tool, some of which I have yet to play with, mnesia (Erlang DBMS) is definately on my to play with list, along with Yaws (erlang based webserver) & Erlyweb (web ramework).

h1

Up and coming blogs

October 20, 2008

Well for a while I’ve been affected by the TDD bug, initially as I hate debugging, I also liked the notion of being able to catch errors before they arise.

I quickly noticed a lack of information on the practice within PHP (as that’s the main language I code with at work). So I decided a while ago to put my notes together, that soon turned into a couple of documents which will now be transformed into articles focused primarily on the subject.

Im far from an expert on anything but feel the need to share this information with all, as it matures. Hopefully after a few months there should be a nice little collection of articles concentrating on the subject.

I’m trying my best to as objective as possible but also understand that I’m a pragmatist some of the time and a passionate hypocrite the rest of the time, so some of what I write may be biases (one always knows best), I’ll rectify anything I later find to be false or am enlighten to a better way.

h1

Finally got a blog

September 29, 2008

Well it’s been a long time coming but I’ve finally got myself a blog.

Mainly I’ll use it to store my coding headaches, ideas & use as a general open forum for some of my code & ideas.

I’ve been focussing on TDD for the past few months, so no doubt my first tech blog will deal with the basics of that, I’ll also put a few blogs together relating to Zend Frameworks which I’ll be using extensively during the up & coming months.

Follow

Get every new post delivered to your Inbox.