Archive

Archive for November, 2007

community development model

November 19th, 2007 Kyle Williams No comments

Community Development. CC: Matthew Berry, http://www.flickr.com/photos/matthewberry/266650905/There’s something about community development which makes it special. This has been one of my more recent thoughts as a result of the work I’ve been doing building an Afrika Burns themed cape site.

Being a full time student, many people ask me if what I’m doing ‘is for marks.’ I assume the reason that they ask is because I, and many others, are putting so much effort into making this as good as we possibly can.

In the end we stand to gain absolutely nothing financially, in fact, we end up making a loss since we’re spending money on buying building materials, transporting the materials, and many other things.

What we’re doing is a classic example of what I call, ‘the community development model.’ In the community development model, a group of people come together, usually at their own personal expense, and work towards contributing to something greater than themselves for the sake of ‘the greater good.’

Perhaps one of the greatest examples is that of the irish builders building houses for the disadvantaged communities along the cape flats. This large group of irish builders, the youngest of who is only 17, come to South Africa, completely covering all their own costs (flights, accomodation, etc) and build houses for the disadvantaged.

Irish Township Trust. CC: Daragh Mc Grath, http://www.flickr.com/photos/djmagra/306918881/

Yochai Benkler extensively examines community development and gives several examples, such as the free software communities and SETI@HOME, in his book ‘The Wealth of Networks: How Social Production Transfers Markets and Freedom.’ Probably the most interesting thing about the community development model is that it can accomplish significantly more than the traditional, commercial development models, where participants are driven by (financial) self-gain alone. Consider community based p2p networks vs. commercial platforms offering the same content. The commercial platforms are unable to keep up with the community networks in terms of the number of participants, and variation in available media.

Reward beyond the financial reward exists in community development. In a traditional economic cost-benefit-analysis it could be said that in the community development model, the benefit of contributing towards improving the wellbeing of others, exceeds the financial cost of doing so.

The reason that the community development model is so successful, is that it taps into something that makes us human. The need to do something for the greater good…the need to do something for others.

Categories: afrika burns, community Tags:

afrika burns: building ‘the location’ – day 2 (the four pillars)

November 18th, 2007 Kyle Williams No comments
The Four Pillars

Wow, what a productive day!
We got off to a rather late start since we were all rather tired from yesterday, but in the end we got an amazingly large amount of work done.

We started off by heading to Waheeb’s house. Waheeb’s parents are busy renovating their house so there’s load of wood and metal lying around, which they said we were free to take.

Resources

We spent some time separating the useful wood and metal from the messy stuff. It didn’t take us too long, but since we were working in the sun, we were all pretty tired once we were done.

Everybody needs iron!
The team!
Resources!

Once we had everything we thought we were going to use stacked up, we made our way back to our main place of work – Colin’s driveway.

Our plan for the day was to complete ‘The Four Pillars’ – these pillars are going to be the four corners of our main structure and thus need to be really strong, and sturdy. So, after spending some time planning exactly what we were going to do, we got to work.

Handyman Noels
Noels and his tools
Saw that wood!
Saw that wood!
Teamwork
Teamwork

Once again, Bradley outshone everyone, with his ability to use the tools we had available, and coming up with solutions to the general problems we were having. I don’t know how we’d be able to get anything done without him.

Waheeb and his paper mache

Waheeb had a try at putting some paper mache together for the sculptures which are planned to litter our campsite. It was still drying by the time we were finished so I don’t know how well it’s worked out yet, but I guess we’ll see tomorrow.

We finished building the four pillars at about 9pm, and sat down for a bit to relax and celebrate. All in all, it was a great day. We got lots done and had loads of fun doing it! Tomorrow we’re going to start working on the decorations for our camp site. Hopefully it will be less intense than today…I’m exhausted!

The team around the four pillars

afrika burns: building ‘the location’ – day 1

November 18th, 2007 Kyle Williams 4 comments
People of the location

Yesterday, after weeks of exams and much discussion on what we were going to do, we started our work on building our themed campsite for Afrika Burns – The Location.

Afrika Burns is an art festival which according to the website is,

Participant created…
An experiment in temporary community building…
Radical self-expression, self reliance and non-commercialism…
Encouraging a culture of environmental mindfulness

This is the first time that Afrika Burns is taking place, so exactly what it will be, no one really knows.

Because of it’s nature however, we really felt like we should get involved. So, Batandwa came up the idea of ‘The Location.’

The location is an insight into the disadvantaged communities in South Africa, with the goal of encouraging awareness about the large divides which still exist in South Africa

We spend the day yesterday gathering resources. It started off in the morning with me and Bradley rummaging around my house looking for anything and everything we thought might contribute to building the location.

Everything lying on the floor

From there we headed off to Colin’s house where, headed by Bradley, we started to remove the old beams from Colin’s roof. This took a large level of planning and care as these beams are going to be used as the foundation for the main structure at our campsite. See the pictures of everyone hard at work below!

Bradley hard at work removing roof beams
The observer
Everyone hard at work
Kung fu tree attack!
Let's move those beams
Let's move those beams

After taking down the roof beams, removing any protruding nails, and stacking them we were pretty tired. So we called it a day for the hard labour and went into discussion over exactly how ‘The Location’ will function. All in all, it was a great start to the work we’re doing.

Today, we’re off to Waheeb’s house to see the resources which he has available, and to get started on building the main parts of our structure and doing some paper mache! It should be a great one!

People of the location

on teaching

November 15th, 2007 Kyle Williams No comments

amaAmbush Marimba BandI’ve been teaching marimbas to high school students for about 4 years now, and it’s lead me to believe something which I feel is largely important when it comes to teaching – first impressions of a new subject set the way for how students will perceive and perform in that subject.

Students view teachers as people who are largely informed on the subjects they teach, and thus have no problem accepting what teachers say. If a teacher says something is complex, then it’s complex. If a teacher says something is easy, then it’s easy.

In marimba music and in fact any music in general,  it’s generally accepted that the ability to improvise comes with being well trained at playing an instrument. That’s how I was always taught music, and that’s how I’ve always taught music. The strategy is to keep it simple and well structured during the first few lessons, then add complexity to the music, and once the players are good, encourage improvisation. The problem is that once the players are (what is normally considered)  good enough to improvise, they view improvisation as a mystical goal, which only really good players can do, and thus most students lack the confidence to take a chance and give it a try.

I always thought this was normal until I witnessed a band who had been playing for just over a week improvising while playing, whereas some bands who have been playing for more than 2 years refuse to improvise. The reason the new band improvised was because that was what they had been exposed to. The new players had observed and learned from their peers, who were all experienced marimba players who did a large amount of improvisation.

So where does this leave us as teachers if we have the ability to influence students’ perceptions of new subject matters, and thus affect their performance in the relevant subjects. We can continue to do what is usually done at school level which is to set the level rather low, so that most people can do it and only the few with enough confidence to take a chance exceed beyond the low level. Or, we could take a chance and set the level high, making the high the new low. Will it work? Only trying it out will tell…

Categories: general Tags:

positive south african statistics

November 14th, 2007 Kyle Williams No comments

We’re always presented with statistics about crime and all the other negative aspects of South African society. Today I picked up some positive statistics in the newspaper which I thought I’d share :)

Percentage of people living in poverty:
- 1970: 57%
- 2000: 47%
- 2007: 41%

Social Grants:
- 1996: 2.4 million people received social grants amounting to R10bn
- 2007: 11.2 million people received social grants amounting to R80bn

Education:
- 1996: 542 398 university graduates
- 2007: 1 460 000 university graduates

Electricity:
- 1996: 51% of houses have electricity
- 2007: 80% of houses have electricity

Source: Cape Argus, 13 November 2007

Categories: general Tags:

open source development model

November 7th, 2007 Kyle Williams No comments

Teamwork

Teamwork,
originally uploaded by tim ellis.

The open source development model is what makes open source software so great. The model is simple: release early, release often. The reason is simple, the sooner you can get software out there, the sooner bugs can be found and fixed, and in the long run, better software. For geeks and technical users this is the best type of development model.

For non-technical users however, software which follows this development process can be somewhat daunting. Non-technical users and new users to open source software are looking for usability and complete software packages, not a simplistic form of what one day will be a great software package. I’m pretty sure that a non-technical user who comes across semi-working software, will probably just give up using it.

Think of all those stories that you hear from people when you tell them that you use Linux. If they know what Linux is, their response will usually be something like “Oh yes, Linux, I installed it a while ago but I wasn’t able to get XYZ working.”

The reason this happens, is that we, as geeks don’t mind if something doesn’t work 100% – we can always find a work around. For the non-technical user however, this isn’t the case.

Perhaps it’s time that more emphasis is put on the average non-technical user, rather than the geek who’ll be able to work things out. Maybe it’s time to adapt the development model to cater for non-technical users, rather than have it aimed a the pursuit of perfect, bug free software. Open source software is for everybody to use – but to do that, it must be usable!

Categories: open source Tags:

netbeans jtable automatic expansion

November 1st, 2007 Kyle Williams 1 comment

HOWTO get a NetBeans JTable to automatically expand when it runs out of space. That is, add new rows whenever needed.

Step 1:
Create a normal JTable in NetBeans

Step 2:
Add a PropertyChangeEvent handler to the table via the inspector window.
Right click jTable1 -> Events -> PropertyChange -> propertyChange
This should take you to the source.

Step 3:
Add the following to the PropertyChangeEvent handler:

private void jTable1PropertyChange(java.beans.PropertyChangeEvent evt) {

int last = jTable1.getRowCount(); //count the number of rows already in the table

if (jTable1.getValueAt(last-1,0) == null){ //check if there’s anything in the first column of last row
//first column of last row is empty, so do nothing
}

else{ //last row was not empty

Object o[][] = new Object[jTable1.getRowCount()+1][jTable1.getColumnCount()]; //create a new 2D object with size the same as the table+1

for (int i = 0; i < jTable1.getRowCount(); i++){ //loop through the rows
for (int j = 0; j < jTable1.getColumnCount(); j++){ //loop through the columns
o[i][j] = jTable1.getValueAt(i,j); //populate the new Object with values from the table
}
}

for (int k = 0; k < jTable1.getColumnCount(); k++){
o[jTable1.getRowCount()][k] = null; //add a null row to the new object
}

//set the tables new model with “o” as the first parameter – o is the new object
jTable1.setModel(new javax.swing.table.DefaultTableModel(
o, new String [] {
“Firstname”, “Surname”, “Birthday”
}
)

//Create the rest of the table model – copied from generated code

{
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class, java.lang.String.class
};

public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
}
}

And that’s it – your table should now automatically expand when necessary.
The same logic can be applied to deleting rows when they’re not needed.

Below is an complete program which shows automatic table expansion in action. It can be downloaded, compiled and executed independently.

Source: TableExpandGUI.java

Categories: programming, tech Tags:

fill mysql table with dates using java

November 1st, 2007 Kyle Williams No comments

I had the problem of needing to populate a MySQL table with dates between openingDate and closingDate, using Java and JDBC Connector/J.
Well, after a while I figured out how to do it and thought I’d share it with you.

Step 1: See how many dates will need to be entered

ResultSet rs = statement.executeQuery(”SELECT DATEDIFF(’2007-07-01′, ‘2006-07-01′);”);
rs.next();
int days = rs.getInt(1);

The MySQL DATEDIFF query calculates the value of date1 – date2, in this case (2007-07-01 – 2006-07-01) which evaluates to 365.
The days variable takes the value of the first column returned by the ResultSet object, which is the result of the DATEDIFF query.

Step 2: Insert the days into the database

for (int i = 0; i <= days; i++){
int j = statement.executeUpdate(“INSERT INTO MyTable VALUES (’2006-07-01′ + INTERVAL ” + i + ” DAY);”);
}

This statement will need to be customized to suit your table but essentially what it does is takes the first date specified, and add 1 day for each count in the day variable.

At the end you have a table filled with dates!

Categories: programming, tech Tags: