...because the world doesn't have enough bloggers
Wednesday, July 14. 2010
The secret of svn externals...
From this post...
tl;dr: Go to the root directory of your working copy and do:
Then svn up should bring it all into sync.
tl;dr: Go to the root directory of your working copy and do:
svn propset svn:externals 'name_of_new_directory url_of_source_branch' .
Then svn up should bring it all into sync.
Friday, July 9. 2010
27 packets transmitted, 11 packets received, 59.3% packet loss
TelstraClear cable has been bouncing up and down all day. And yesterday. C'mon, sort it out!!
The best Django development contract in the entire universe...
BURNING MAN SEEKS DJANGO DEVELOPERS FOR PAID CONTRACT OPPORTUNITY
The Burning Man Technology Department is seeking a Django developer or two for a paid contract gig. We need your help to get an exciting new Playa Directory ready to premiere in Black Rock City! The initial 3-month project would begin immediately and includes providing some onsite support in Black Rock City. There is the possibility for additional work in the Fall and Winter months, and maybe even longer.
Bay Area location is not required, but is preferred. This position does require you to go to Burning Man 2010! There will be work on the playa, but plenty of time for fun too!
If you are an experienced Django pony rider and savvy developer, a collaborative team player, and committed to creating an excellent user experience for our friends in BRC as well as year-round website visitors, then we would like to hear from you! Please send a resume and cover letter to djangodev@burningman.com by July 15, 2010.
Required Skills: Django, Python
Bonus Skills: Pinax, GeoDjango, jQuery, HTML5, CSS, Apache
Monday, July 5. 2010
Django: Overriding admin templates to add a reporting section
I found the documentation around this to be a bit confusing so have made some notes:
So make the template something like:
Make sure the admin knows to use it by setting a model.ModelAdmin derivative in admin.py
And from then on it's up to you. Apologies again for fighting with s9y and formatting. (sigh)
- Place the template in any of your usual template directories (the appname/templates directory for me) - there's no need for a separate admin/ hierarchy
- The object in question is passed to the templating engine as "original"
- The CSS class used to put stuff in boxes is "module"
So make the template something like:
CODE:
{% extends "admin/change_form.html" %}
{% block after_field_sets %}
Title for your report
<div class="module">
{{ original }}
</div>
{% endblock %}
{% block after_field_sets %}
Title for your report
<div class="module">
{{ original }}
</div>
{% endblock %}
Make sure the admin knows to use it by setting a model.ModelAdmin derivative in admin.py
CODE:
class ThingAdmin(admin.ModelAdmin):
model=Thing
change_form_template='thing_admin.html.django'
admin.site.register(Thing,ThingAdmin)
model=Thing
change_form_template='thing_admin.html.django'
admin.site.register(Thing,ThingAdmin)
And from then on it's up to you. Apologies again for fighting with s9y and formatting. (sigh)
Wednesday, June 16. 2010
Problems with "South" - convert_to_south
I'm getting "'NoneType' object has no attribute '_meta'" when trying to convert an existing django project to be managed by South. This, however, appears to work:
The first line creates a bunch of migration code which can then be checked into svn (and hence put on the deployment machine when the time comes). Second actually does the migration but the --fake flag prevents it from actually making any changes to the database (other than marking the migration as being done). Day-to-day migrations are then:
Noting that this appears to reload any fixtures. With thanks to this frustrated sounding mail list post.
./manage.py schemamigration myapp --initial
./manage.py migrate myapp --fake
The first line creates a bunch of migration code which can then be checked into svn (and hence put on the deployment machine when the time comes). Second actually does the migration but the --fake flag prevents it from actually making any changes to the database (other than marking the migration as being done). Day-to-day migrations are then:
./manage.py schemamigration myapp --auto
./manage.py migrate myapp
Noting that this appears to reload any fixtures. With thanks to this frustrated sounding mail list post.
Tuesday, June 8. 2010
MixTape 1.0 is out.
In October 2008 my contract at shinywhitebox was ending, the buzz from Burning Man was not and my creative instincts were screaming at me to, finally, make something I had wanted to for years. Known to anyone who would listen as "kinda like adding the lumpy bits on lego blocks to music so you can stick them together and everything stays in sync" I ran a few prototypes, talked to a few people re: marketing and (with Rachel's support) finally made the announcement that I was going to do this at the end of February 2009.Infamously I said it would be ready "by the time I find myself bashing lumps of rebar into the Playa" - so an approximately nine month long project. We are now on month eighteen. While a full post-mortem would be fun to write, it's something that I've not got the time to do well right now. The long and short of it is: beat detection is harder than you think; undo/redo is harder than you think (particularly in a dragged environment); good UI's are iterative, and that means you do things more than once; I should've compromised more in the early stages; and the distance from nearly there to really there is huge - even for someone who's done it a few times now.
Remarkably, though, what I have on my machine right now strongly resembles the diagrams sitting on my desk a year ago in both internal function and external use and usability. Even more remarkably I can look back at my original announcement, and specifically at the "use case" and my aims:
Many of us carry around these sounds, these ideas, things we want to hear and - more importantly - share with our friends. But we lack the skill. We are not musicians; we are not composers; we are not DJ's. The interface between our brains and note-by-note music has not changed since the invention of the Piano in the 17th century. DJ'ing is hard, with the traditional vinyl+turntable combination doing little if anything to help bring cross-mixed music into sync and an artform within the reach of ordinary people. And loop based composition is expensive, time consuming and all too often devolves into a scavenger hunt for loops while doing nothing to help us get that sound from our heads to the ears of others.
So this is what I will doing... I am going to bring mixing, remixing and ultimately the means to produce original works to anyone that wants it. My software will simplify, hint, encourage and empower its users while demanding as little as possible in terms of additional skills or training. Above all, I want to make new ways we can enjoy our music and share our creativity.
Yeah. That. I've done it. Now I have to let the people who want this know it exists.
GO LOOK AT MY AWESOME SOFTWARE! Download, play and enjoy because that's what it's for.
Wednesday, June 2. 2010
Meego
...Is a collaboration between Intel (was moblin) and Nokia (maemo). Thinking about it, these two are actually fairly complementary - maemo had loads of apps but felt terrible; moblin looked cool but nobody had made anything for it. So I was hopeful, actually.
I probably shouldn't have been, though.
Honestly, it looks like Android did when it first came out. Worse, even. And, sure, this is an early beta but they have a long way to go to even catch up with an iPad let alone do better. Mind you, with the rate Apple are pissing off developers it may be a moot point...
I probably shouldn't have been, though.
Honestly, it looks like Android did when it first came out. Worse, even. And, sure, this is an early beta but they have a long way to go to even catch up with an iPad let alone do better. Mind you, with the rate Apple are pissing off developers it may be a moot point...
Wednesday, May 26. 2010
Django 1.2 is out
Read the release notes but the key points appear to be:
- Explicit support for sharding
- jQuery in the admin UI
- Improved CSRF protection
- Apparently better integration of GeoDjango
OMG Irony

I go to read an article about how unit tests are useless (debatable, but still) and it fails with an error that wouldn't have been caught with a unit test.
Still - what's all that about, 9MB to render a web page?
Sunday, May 23. 2010
Actual, proper technology
In the middle of this cacophony of Web2 fanboyism there are, still, people creating proper technology - and the rarity of this tends to cause significant excitement in these parts. Hence it gives me great pleasure to present nuform - they do this by 3d modelling the building, running cool animations around it, then perspective correcting and projecting back onto the building. Not as easy as it sounds :)
Tuesday, May 11. 2010
APL OMG
Modern world "my language is more concise than yours" weenies need to read it and weep - APL, from 1964. An example:
Returns all the prime numbers from 1 to R.
(~R∊R∘.×R)/R←1↓⍳R
Returns all the prime numbers from 1 to R.
Wednesday, May 5. 2010
Nasty *nasty* bug.
The following (incorrect) line of code...
Is run with [self playbackStart] returning a sensible value and syncedTune being nil. On a 10.4/PPC machine it returns NO. On a 10.6/Intel machine it skips over the line (and eventually returns YES). Aside from the code being blatantly wrong I'd just like to make the "mechanic teeth sucking" noise and comment on what an entirely nasty bug this is and gently contemplate how many more there might be. Sheeesh!
if ([self playbackStart]<=[syncedTune latestUsedSync]) return NO;
Is run with [self playbackStart] returning a sensible value and syncedTune being nil. On a 10.4/PPC machine it returns NO. On a 10.6/Intel machine it skips over the line (and eventually returns YES). Aside from the code being blatantly wrong I'd just like to make the "mechanic teeth sucking" noise and comment on what an entirely nasty bug this is and gently contemplate how many more there might be. Sheeesh!
Friday, April 16. 2010
Apple are bastards to children, too
Kids learn to program in a language called "Scratch". Logo is dead, mmmkay. Scratch is, AFAIK, smalltalk based and hence runs in a VM. On the web it runs in a Java VM and on the iPhone it runs on a native one of some description.
Except it doesn't any more - the scratch "player" for iPhone has been removed from the app store. At this point I really don't know what to say. All it needed was a dialog box with a big red splodge saying "This app has not been approved by Apple, it may run your batteries flat really really soon and maybe look like complete arse but if you want to run it anyway - hey - it's your life" and we'd be all good.
Bizarrely, and this is truly bizarre, it's beginning to look like a good time to learn Java. Seriously. There's lots of interesting OSS work going on with Java right now and Dalvik's existence, let alone the fact that we finally have Java running on a mobile device in a non-embarrassing fashion is a kinda miracle really. If j-random Taiwanese manufacturer could do the honours and start turfing out Android tablets for half the price of an iPad then we might have ourselves a target market.....
Except it doesn't any more - the scratch "player" for iPhone has been removed from the app store. At this point I really don't know what to say. All it needed was a dialog box with a big red splodge saying "This app has not been approved by Apple, it may run your batteries flat really really soon and maybe look like complete arse but if you want to run it anyway - hey - it's your life" and we'd be all good.
Bizarrely, and this is truly bizarre, it's beginning to look like a good time to learn Java. Seriously. There's lots of interesting OSS work going on with Java right now and Dalvik's existence, let alone the fact that we finally have Java running on a mobile device in a non-embarrassing fashion is a kinda miracle really. If j-random Taiwanese manufacturer could do the honours and start turfing out Android tablets for half the price of an iPad then we might have ourselves a target market.....
« previous page
(Page 3 of 23, totaling 332 entries)
» next page
Bio
David Preece is a software developer and entrepreneur based in Wellington (New Zealand). His next big thing is to bring mixing, remixing and ultimately the means to produce original works to anyone who wants it.
Previous next big things include development of the capture and intermediate compression technology in iShowU-HD; design and implementation of a small advertising network; the refinancing, technical direction, and a lot of the donkey work for Virtual Katy; technical direction, project management and (again) donkey work for VoiceQ; creating code and intellectual property around load balancing that was acquired by Allied Telesis; and the research and an implementation of the h.264 video compression protocol.
More details at LinkedIn
Contact: davep@zedkep.com
Previous next big things include development of the capture and intermediate compression technology in iShowU-HD; design and implementation of a small advertising network; the refinancing, technical direction, and a lot of the donkey work for Virtual Katy; technical direction, project management and (again) donkey work for VoiceQ; creating code and intellectual property around load balancing that was acquired by Allied Telesis; and the research and an implementation of the h.264 video compression protocol.
More details at LinkedIn
Contact: davep@zedkep.com
Blog Administration
© Copyright 2006, nerdwg.org design by Luka Cvrk, port for s9y by nerdwg.org