New Car

oh, I also bought a new car on Saturday.

I pick it up on Thursday, and spent Monday morning and about an hour today doing the insurance dance of poverty (mention you’re under 25 and they pull out the remove-left-arm-and-leg device).

Change of Jobs – now MySQL AB

As of the 1st of December (my start date), I’ll be a Software Engineer at MySQL AB.

Exciting stuff.

Additional code into voting

you can now accept nominations and put down your spiel.

At some point I’m going to have to go through a bunch of the code and do a security audit. We should be fine with what we’re running now, but the head of 0.3 most likely isn’t. All that will be problematic is insertion of crap into the outputted HTML.

There’s also been a number of improvements recently in the forms infrastructure which the older parts of the UI could benefit from.

Not that speed is a current problem, but a bit of caching could really help some things along – esp with get_member_id, get_member and has_permission. We really don’t need to go back to the database multiple times in the same page display. Temporary variables can just be messy too – much better to keep the code clean.

Preferential Voting

Preferential Voting

Good small explanation.

making a nominee a candidate

added a column to election. you now have a “number of required nominations”.

in a normal election, this will be two. One person nominates, the other seconds.

When there are enough nominations, the person can accept it, and then an entry is created in election_candidate.

at least this will be the case… soon.

About to go and write the accept nomination page thingy.

Rusty’s latest thoughts on Software and Patent Protection

It’s important that people keep up to date with happennings in the fight against Software Patents.

It’s also important to know the other side of the story.

Rusty’s Bleeding Edge Page

implementing the nominations stuff

previously, we had the idea of an election candidate:

create table election_candidate (
     id serial unique not null,
     election_position_id int not null,
     approved boolean,
     member_id int not null,
     spiel text,
        CONSTRAINT "election_candidate_pkey" PRIMARY KEY (id),
        CONSTRAINT "election_candidate_election_position_id_fkey" FOREIGN KEY (org_id) references election_position(id) on update restrict,
      CONSTRAINT "election_candidate_member_id" FOREIGN KEY (member-id) references current_memberships(id)
 -- FIXME: need constraint that member is a member of the correct org.
 );

now, that’s all fine and good… but we need the whole nominations thing to work.

so what about something like this:

create table election_candidate_nomination (
     when timestamp not null default now(),
     election_position_id int not null,
     from_member_id int not null, -- member doing the nominating
     for_member_id int not null, -- the member being nominated,
     reason text,
     CONSTRAINT "nomination_from_member_id_fkey" FOREIGN KEY (from_member_id) references members(id) on update restrict,
     CONSTRAINT "nomination_for_member_id_fkey" FOREIGN KEY (for_member_id) references members(id) on update restrict,
     CONSTRAINT "election_candidate_election_position_id_fkey" FOREIGN KEY (org_id) references election_position(id) on update restrict,

);

this should be adequate to keep track of nominations. When enough nominations are gathered and the candidate accepts, then we can create an entry in election_candidate.

Fanatical Apathy: Concession Speech

A much better concession speech.
Fanatical Apathy: Concession Speech

nominations process

okay…. my previous ramblings on the details of the voting stuff (see MemberDB Voting code (planning… in some sense of the word)) didn’t really address how someone nominates someone else and how they accept/deny the nomination.

Member A nominates member B for position P.
Member C seconds the nomination for member B for position P.
(there doesn’t need to be a distinction between nominate and second – indeed we could just allow up to n nominations – or should it be a preference?)
Member B either accepts or refuses the nomination

If the nomination is refused by member B, that’s final (for that position).

If the nomination is accepted, we no longer need to allow further nominations of B for P.

When the nominations period is over and the show candidates period begins, we just display those nominated who have enough nominations (i.e. been seconded).

When it comes time to vote, those people are on the ballot.

Admins can, of course, dick with this as much as they want.

Yes, admins can screw with the results of the election – we are root, hear us roar.

At least it’s a bit more secure than some elections.

Voting code

I’ve been making inroads into the voting part of MemberDB.

You can create an election (with a number of positions), list elections, and view extra details about it.

It handles the priviliged versus non-priviliged user thing and I’m getting to work on the nominations part.

I’ve made a bunch of infrastructure changes too. A bunch of stuff in the forms code has made things easier – I have no idea how i’d do all of this without that as a base (okay, i’d probably go and write it).

I’m basically spending this week on the voting stuff, and being this far in atm seems to be on track. I guess i’ll see as time goes on.

last day at SGI today

Today is my last day working at SGI, and I’m home sick. have been all week. urgh.

So i’ll end up popping in next week to say goodbye to workmates that i’ve had this year.

Soon, I’ll be starting at my next job – so all excited for that!

Patented European webshop

Patented European webshop

This is why software patents are bad.

luv considering MemberDB

actively considering MemberDB for Linux Users of Victoria (luv). People seem excited about it…

Beer and Curry for Lunch

Very nice beer and curry for lunch today. Feel soooo good atm. Very culinary satisfied.

Ubuntu Linux – For my Mother

Well, I’m about to give Ubuntu Linux to my mother. This’ll be a good usability test :)

gnumeric or OpenOffice

for spreadsheet (tax time again)

i like gnumeric – but it doesn’t have that split screen view thing that i find really useful.

oh well… i only use a spreadsheet a handful of times in a year

Lirc under 2.6 and with my remote and with mythtv….

remote control to myth. funky.

GnuCash

Have just spent a whole lot of time importing my financial data into GnuCash with the hope of actually trying to manage my finances.

With luck, this will make the next tax return easier – plus let me have some idea of where my money actually goes.

I now know that my CD and DVD habit costs me more than my petrol habit.

Remote Serial Console HOWTO

Remote Serial Console HOWTO

You can have a serial console to GRUB – something i didn’t know. Which is cool – and sometimes needed.

The last thing you need is to drag your (soon to be) sweaty ass into a hot sauna server room to select a working kernel.

Integrating MemberDB with LA’s look-and-feel

Well… since LA actually has a look and feel now (thanks to the new website), I have to make good on the “site look is independent of the actual memberdb code” statement.

It’s proving to be sorta-true. A couple more patches into memberdb and it should all be right.

Oh, not to mention patches to the LA website :)

We’re going to have to undo some of those silly styling things (such as styling all h1 tags to be in the same position on the screen).

Screenshot of an Early effort at integrating LA's website with MemberDB