12.29.09

Mobile mind up for grabs

Posted in Uncategorized at 7:28 pm by Twm

If anyone is interested in quick purchase of the concept/source code for mobile mind. Drop me a email.

No pulse?

Posted in Uncategorized at 7:18 pm by Twm

As many of you know, I’ve taken a back seat from software while I complete (or at least attempt) to complete a medical degree.
It’s probably two years since I made a serious decision to change career. Back then, I decided to test the waters of returning to education by taking evening classes in A-Level biology and Chemistry. It was fun, aside from sitting in an exam hall with 16 years and being told off by the teacher who was probably younger than me.

Moving on, I chose the relatively recently available pathway of the graduate entry route into medicine which means that you must have already obtained a degree (in any subject) before applying. You still have to go through the UCAS admissions process, which means filling in a 64 line personal statement about how bright and caring and into science that you are. Apparently some schools stopped looking at the personal statement because one year they had a huge percentage start with the phrase “I first became interested in science when I burnt my parents carpet with my chemistry set” – A line lifted directly out of a best selling “how to get into medschool” book.

The plus side of such a degree is that it’s only 4 years compared to the 5 endured by school levers. The downside is that to even get an interview you may need to pass an excruciating exam called the GAMSAT (~£250).
GAMSAT is a day long exam that test skills in reasoning in the humanities, written communication and reasoning in the science. I spent a good few weeks preparing for that: Writing a couple of essays a day and cramming physics and organic chemistry (Incidentally, Organic Chemistry I Workbook for Dummies is awesome for mastering stereo chemistry of molecules.)

The hardest thing about the GAMSAT is that there is no syllabus, and advice for preparation is somewhere between “degree level biology, and organic chemistry”, or “you can’t prepare for the exam”. The reality is that even though a lot of the questions are common sense, you do benefit from a good grounding in the mechanism and principles underpinning the biological sciences. Those claiming that you can’t prepare are likely to be competing students eager to get into the top 20% for interview selection.
Here is a paper which is pretty representative of the exam I sat:
http://www.scribd.com/doc/20936224/GAMSAT-Prognostic-Paper

I scraped through the GAMSAT, scoring strongest on the the essay writing. Funny enough I did a lot of practice on this blog with one of my attempts being published on the register.

Side note: If you are interested in studying Medicine. Don’t be put off by the GAMSAT – prepare a little and have a go as you might be surprised how well you do (or at least how badly the rest of the cohort does). Just keep practising your essays and answer all the science questions. And don’t feel you have to sign up to the one of many opportunistic training courses which can cost >£2000-£3000; They will probably help, but you can do it yourself just as well.

I got a reject from Kings (I messed up the UKCAT exam), an unconditional offer from Southampton and interviews from Swansea and St George’s. The interviews were pretty horrible with the uncomfortable juxtaposition of questions such as “what you do to relax” to “imagine you are a GP who has filled in a prescription incorrectly and the patient has died as a result of your mistake…how would you feel?”. Overall, I thought St George’s were really professional and very fair with their process and I was pleased to be able to accept their offer.

I’m now one term in having completed my Christmas exams. The course is pretty bonkers: Learning all the major diseases, anatomy/physiology, pharmacology and clinical skills as well as the sociology and psychology and medical statistics at the same time is quite a burden. But the self directed learning time works very well since we can do bits on our own or form learning groups to go through difficult subjects.
One of the most striking aspects of the course is the diverse backgrounds of the students – some have done degrees in nursing, genetics, physiotherapy, mathematics or have come from the marketing jobs or even a couple -such as myself- from computing/IT.

The schedule is tough. And for this year I doubt if I will have any time to do write code/freelance. Although, in the future, I hope to be able to blend medicine and technology; There are an awful lot of problems in healthcare that might benefit from a little python script or two!

I won’t be posting much from now on, but I’ll leave you with an image of the main actions of the immune system which I drew during our PBL (problem based learning sessions).:
immune

07.21.09

Boo hoo for you

Posted in Uncategorized at 10:35 am by Twm

Well, Symbian professional services have found a new home under the umbrella of Accenture. I worked as part of the LPD (Licensee product development) and LTC (Licensee Technical Consulting) divisions of Symbian for a good few years. It was good work, and there are some very talented people within that organisation.
I believe that the customer services team included ex-Nokia customer operations as well.

While it’s good that they found a buyer, the comments on the Regспални комплекти are pretty damming of the culture at Accenture. There is a lot of bitterness there!

07.09.09

More pimpin

Posted in Uncategorized at 11:25 pm by Twm

One of my photos was used in a book on “Biolomedical engineering” by W. Mark Saltzman. I’m so proud that my image has been used to illustrate elastic deformation and Young’s modulus.
I think this Amazon link should work for most folk.

Original in colour:
Kinetic

SQHell

Posted in Development at 8:54 pm by Twm

Been doing quite a bit of SQL programming on and off. Although SQL is old as hell. MySQL on web and sqlite on mobile make it pretty much a compulsory skill for the modern developer to master for most types of data storage and retrieval.
Of course, SQL on its own means shit unless you spend some time designing a sensible schema which balances your normal form with your performance needs. Schema development can be really hard work to get right, and I find that it’s an iterative processes in which assumptions you make upfront turn out to be bogus or ineffective.
So to my delight, I’ve had to debug apps which just use a database as a dumping ground with no though to atomicity, poor rollback semantics and unjustified duplication of data across tables. The sort of thing you usually expect to see from an “enterprise consultant”.

The best illustration of the difficulty of expressing seemingly trival relationships between data is what has become known as the gay marriage problem (Or the Y2gay bug).

07.05.09

Bioinfomatics

Posted in Uncategorized at 4:21 pm by Twm

Ever sat there writing some code, thinking that it’s all right work but hardly contributing to the benefit of mankind. Well, maybe you have made a difference, in an indirect way.

Aside from the SOAP, Web services and SQL databases and visualisation software that goes into large collaborative science projects such as the human genome or CERN. Increasingly – down at the DNA level – perl scripts and python are used to filter and join data.
Good old algorithms such as Levenshtein distance (and subsequent variations) are useful in DNA/RNA sequences as well as
There’s something comforting in knowing that the bug you fixed or raised against Perl/Python/etc is being used in all manner of projects.

Here is the uncut Dawkin’s interview with Craig Venter regarding his IT capability. It’s quite long, but the details are a lot more interesting that what was broadcast on Channel 4.

Venter is an interesting character. While serving in ‘Nam, he attempted suicide by swimming into the sea, changing his mind a mile out while being attacked by sharks and jellyfish.
Now he’s taking buckets of sea water and ’shotgun’ sequencing the microscopic life to add to the ever growing database of RNAs<->proteins sequences.
One of Venter’s projects is to ‘boot’ up a brand new life form but inserting a man made genome into a bacteria shell, and perhaps a little further off to solve the world’s energy crisis by engineering a bacteria which eats CO2 and shits out octane.

07.01.09

How to Shut a S60 application

Posted in Development, Mobile, Symbian, c++ at 2:41 pm by Twm

I have an application that needs to send a HTTP request on application exit to tell the server that the app terminated normally.
When the user presses the exit button, I issue an asynchronous request to send off a HTTP transaction and get a callback once that’s done.
Now the problem is, I want to really exit the application from my HTTP handler.
I can’t call CEikAppUi::Exit(), since this basically deletes the top level appUI and proceeds to pull the rug under the HTTP class which KERN-EXEC 3’s once my HTTP handler returns and reads/write some bit of memory that no longer exists.

Once solution is to create a CAsyncOneShot derived active object to cleanly exit, and luckily Nokia have already done this in a well hidden method:
Just call:

iAvkonAppUi->RunAppShutter();

The iAvkonAppUi is an ugly macro over CEikonEnv::Static(), so you can call it anywhere in your code.
THe app shutter allows the current call stack to unwind naturally and then exits the app.

06.23.09

All over the place

Posted in Development, complexity at 10:17 am by Twm

I’m doing some work with location based services at the moment. A colleague told me of some of the problems they had had with the software. One was related to the SkyHook system. This is the system that Apple used and helps to improve the speed of acquiring a fix by mapping the location of Wifi hotspots and cell towers.

the app would for the most part correctly report the position but during field testing- say when heading down the M25 – it would occasionally report the location as being back in central London. This erratic behaviour was a bit of a puzzle to the the engineers until they discovered that National Express have been installing Wifi access points on their buses.

A new Wilhelm?

Posted in Uncategorized at 10:10 am by Twm

Much as I adore Wilhelm spotting, it’s not as fun now that it’s so widely known about outside the film industry.

If you don’t know what I’m talking about, then you probably wondered why some people at the cinema laugh seemingly inappropriately at horrific explosions and falls.
The Wilhelm scream is a sound effect regarded with affection by sound engineers and directors alike, it’s the calling card of someone who knows their movie heritage and has been discretely slipped into 100s of Hollywood films. (See link above for a compilation).

After watching Breaking Bad Season 1, we might have alternative : The Dean Scream.(Youtube).

06.19.09

Peg it

Posted in Graphics at 12:04 am by Twm

ffmpeg is an extraordinary program, it seems to deal with just about any video format I care to throw at it.
If you are not one of the enlightened, ffmpeg is a command line tool which supports transcoding of content from one format to another. Many of the $10 video converters on-line are simply rips offs of the ffmpeg code base with a crap UI on top. (see the mmfpeg hall of shame for uncredited use)

As with any command line tool, the complexity of the arguments kill it for most. But generally you will be encoding for a particular device or standard format and so a quick google will give you the options you need.
I’ve been using ffmpeg to convert video content (including iplayer films) for Sony Walkman NWZ-A815 (which is very particular about the video size and bitrate).

I can’t even remember what the options do, but I wrote a python script to transcode all videos in a directory and spits out about 290mb per hour of video (assumes ffmpeg.exe is in your path).

import glob
import os

fileNames = glob.glob("*.*")
print(fileNames)

commandTemplate = "ffmpeg.exe -i \"%FILENAME%\" -b 567k -s 320x240 " + \
"-vcodec mpeg4 -ab 220k -ar 44100 -ac 2 -acodec libfaac \"%FILENAME%_TRANSCODED.mp4\""

for file in fileNames:
	if not "TRANSCODED" in file:
		command = commandTemplate.replace("%FILENAME%", file)
		print("Executing: ",command);
		os.system(command)

« Previous entries Next Page » Next Page »