Almost-Dev random thoughts of a software person
from django.contrib.wedding import blog
So I looked around a lot of wedding sites; TheKnot.com, wedsite.com (cute name) and others but none of them really did want I wanted. They all seem to be relatively good theme wise but I wanted something a bit more flexible and not to just be sold wedding stuff. I really did try to not write my own wedding CMS…
My buddy keeps banging on about Google App Engine and so I thought I’d give that a try. Sexily it lets me write in GoLang if I want but I thought that might be a bit much for something I want to work. So I stuck with Python - I can at least pretend to know what I’m doing there :).
I’ve looked at Django before and did the tutorial, so I thought this was as good a choice as any (I briefly considered Pylons but … I just don’t really have the time to learn another framework).
So it turns out, to back Django without a relational database is slightly interesting. There’s a special flavour of Django called django-norel which can be used with Mongo and GAE which I used.
http://djangoappengine.readthedocs.org/en/latest/db.html
To make things look pretty, I also integrated with django-bootstrap3 so I don’t have to write much CSS.
http://django-bootstrap3.readthedocs.org/en/latest/installation.html
As part of this I decided I should really wrap my python up in virtualenv, but annoyingly, AppEngine doesn’t really know about virtualenv. It’d be really cute if I could just give App Engine my requirements and have it do the right thing, but as it stands it doesn’t really work in concert which is a shame. I guess this is part of their library management policy.
https://developers.google.com/appengine/docs/python/tools/libraries27
However after writing so much Node.JS this seems like it should be a non-problem. I’m reading more about it and there are a few people who written scripts to fix things up between virtualenv and GAE but they all look fairly hacked up.
Since I’m being all webby, almostwife and myself decided to try and be a bit Agile with how I made the site. We’ve gone through one sprint and have a vague idea of what’s happening for the next two.
… to be continued…
modem adsl disable=yes
Just some links to my own home routers documentation. I was trying to put it into a dumb modem mode but I eventually gave up and went for double NAT because who has the time really?
Anyway, it turns out I now know waaaaay more about the alcatel-lucent router CLI than anybody outside that company should… :(
http://www.speedtouch.ca/pdf/784WAN.pdf http://mariotte91.perso.neuf.fr/doc_tg784n/ConfigGuide_Ethernet.pdf
curl raspbmc; modprobe usbtouchscreen; git clone linux
I’ve not been very good at keeping this up to date. However CSP coursework is now finished, which I’ll talk more about later.
So recently I procured a fairly big touchscreen, and given that I have now two raspberry pi’s with absolutley no idea what I should use them for I decided I should make them do things together. Ideally I want this to be a standalone screen with just the touchscreen and the raspberrypi running raspbmc.
Now that XBMC Gotham is out, I decided to take advantage of it’s touchscreen support. Just installing it fresh from raspbmc seemed to do something as it comes out of standby when I touch it, but nothing is happening on the UI. Checking the terminal, xbmc.bin is looking at /dev/input/event# so it at least has the device open.
In previous adventures with the touchscreen I’ve noted that the callibration is completely off and so far I haven’t found a way to callibrate the screen from XBMC. At this point I realised I had no idea how input devices really work in linux so I poked around in the xbmc source tree and in xinput_callibrator to see whether I could figure it out. I’d used this tool in the past to slightly callibrate the touchscreen - but it requires some sort of windowing manager to run, whereas I’d prefer xbmc to stay running standalone as it does in raspbmc.
It looks like once linux determines it has valid drivers a module called usbtouchscreen is used to do all the touch config. So I’m cloning the linux kernel to see what that does. xinput_callibrator seems to be poking values in there to configure the touchscreen parameters, and I’m hoping to get to a point where I can callibrate from xbmc if I rebuild it.
However another problem that has arrisen is that periodically the touchscreen is dettaching from linux… I’m hoping this is just the lack of decent power from the raspberrypi.
To be continued…
Dissertation() = blog -> Dissertation() [] done -> STOP
So I’m a full time employee at a large software company and also a part-time student of the Oxford Software Engineering programme. As part of that degree I have to write a dissertation on a topic of my choosing, somehow related to the field of software engineering. As I want to break up the writing of this dissertation I thought I’d start blogging about things as I figured them out and hopefully make this blog a rough first draft of my dissertation. This has worked out for other coursemates of mine so hopefully I follow in their footsteps.
Or at least, that’s the plan. It is also possible that this is the last post ever.
I’m currently interested in concurrency frameworks and libraries, and the plan is to look at a few of them an try to apply them. Hopefully I’ll learn something along the way (which is pretty much all I want in life). This is what I’ve submitted as a proposal.
However after having recently done a course in model checking using machine CSP it’s peaked my interest in it’s possible applications for my dissertation. I could probably model one or two of the examples I hoped to rewrite as part of my testing… but I’m worried about biting off more than I can chew here. Given that my title for this page doesn’t really accurately model progress through the dissertation probably says something about my ability here. Maybe it should look more like this
Dissertation(p) = blog -> Dissertation(p+1)
|~|
(p > ENOUGH_WORK) & done -> STOP
Note here that even when I’ve done enough work I may not be done. And really, I should be able to do less work.
Dissertation(p) = (blog -> Dissertation(p+1)
[]
procrastinate -> Dissertation(p)
[]
change_idea -> Dissertation(0))
|~|
(p > ENOUGH_WORK) & done -> STOP
Maybe the above is more realistic, but the statespace is massive probably because of passing p. I really should study more…
Anyway that’s all folks. I’ll be writing more as I go on but first I need to finish my model checking assignment… so we’ll see how that goes.
printf("Hello World!\n");
Just thought I should start a so I can blog about bloggy things like super cool things I’ve found on my travels around the interwebs.
Thanks to jekyll-bootstrap for making this 10 times easier, as I always think web development is 10 times easier than it really is.