Thursday, November 08, 2007

making pong in etoys

This is a long-ish blog with lots of screenshots because I wanted to explain in detail how to make a game in etoys for someone who is relatively new to using it.

It's best to use the OLPC etoys image of etoys squeak, which is now superior to the version on the squeakland site: install instructions here This tutorial matches the OLPC image version of etoys, it would be hard to follow all the detail of it if using the Squeakland version.

Saving and reloading: You can save your project by clicking on the open book icon at the top right. To reload use the world menu –> alt+shift+W

PART ONE: SETTING UP

Grab a Playfield out Supplies (the box at the top centre of the screen)

Make your own bat and ball, name them "bat" and "ball", and put them into the Playfield, the simplest way is to drag them in directly

Make a script to control the ball's behaviour. Name it "move". The ball's motion category contains the commands you need: forward and bounce

The default heading is zero (0), which is north, which we don't want. Write a setup script which creates a better initial heading, with some random variation:


From the ball's Viewer motion category drag out a detailed watcher for the heading, so we can directly observe its changing values:


Make some observations for yourself about the x and y co-ordinates and the heading values of the ball as it moves around the Playfield, so that you become aware of how the co-ordinate system works in etoys

PART TWO: BALL HITS BAT

Drag a Test/Yes/No pane out of the ball's move script supplies palette

and add it to the move script

There are lots of other Viewer categories! By clicking on any Viewer category heading you get a drop down list revealing the other possibilities. Do this and select the test category:

What test do we want? Answer: ball overlaps bat. We get there by initially dragging the ball's overlap dot test to the Test section of the move script:

Now open the bat Viewer and ask it for a "tile representing me"

and replace the dot tile in the move script with the bat tile:

We have to do some maths now:
With the way etoys measures headings (your HW in part one) what should the new heading be after bouncing off the bat?

Go back to the ball's Viewer, drag out the heading by the assignment arrow and add it to the Yes line in the move script

Have you done your maths yet?

For a true bounce using the etoys heading syntax the after bounce heading will be the negative of the before bounce heading. To represent the minus grab a function tile from the move script palette

and replace the number on the end of the ball's heading with the function tile

Next, click on the function tile and choose negativeOf from the list of functions:

Now replace the number in brackets after the function with the ball's heading

Test it out. The ball should bounce off the bat now with a true bounce!

PART THREE: CONTROLLING THE BAT

We can use either key strokes or the specialised etoys slider (Supplies > Object Catalog) to control the bat. I'll use key strokes for this tutorial.

Open the world Viewer by middle clicking on the world to get the halos and then clicking on the cyan "eye". The world viewer has an input category which tracks the last key stroke. Press the up and down arrow keys and you will see the Viewer keeping track

Drag out a new script from the world viewer (only the world viewer has a keystroke option) and name it something like "batControl". From the palette tear off a Test/Yes/No pane and add it to the script.

Drag world's last keystroke (not by the assignment arrow) to the Test condition of the bat control script

If necessary change the key input to <up>

Drag out the bat Viewer and open the motion category. When we press the <up> arrow we want the heading to be zero (drag by assignment arrow) and the bat to move up the y axis, like this:

It is possible to program a keypress (thanks to Tony Forster for explaining how). Click on the button displaying "normal" next to the ticker, then choose more... from the drop down menu and then keyStroke


Now add your <down> arrow keyboard control


PART FOUR: SCORING

We will do this part by registering a score increase when the ball touches a boundary object

Make a boundary object, name it ("boundaryLeft"), drag it into the Playfield and resize it with the yellow halo so it fits all the way along the boundary
We will record the score in a "Text" because a Text contains the code to increment a numeric value. Drag a Text out of Supplies and position it on the right hand side of the Playfield. I named my Text "scoreRight" and set its numeric value to zero (basic category)

Create a new script, named ball score, add a Test/Yes/No pane and make the Test condition:
ball's overlaps boundaryLeft. First drag ball's overlaps dot from the ball's Test category. Then ask boundaryLeft to hand you a "tile representing me" and replace the dot with that tile.
When the ball hits the boundary we want the score to go up by one, the ball to be returned to the centre of the Playfield and move off in a random direction, like so:

Run the script with the ball moving, to check that it is working.

PART FIVE: FINISHING TOUCHES

It is now mainly a matter of making a another bat, score and boundary for the other side of the Playfield and then our first version of pong will be completed. I reduced the bat size and speeded up the ball to make it more interesting. I also added in some more randomisation.

Version one available here (you will need to OLPC etoys image to play it)

Wednesday, November 07, 2007

making a 15 Puzzle grid

This program is to partially automate the making of 15 Puzzle

Get a Playfield from Supplies

Get another Playfield from Supplies, open its Viewer and name it cell

Get a Text from Supplies and open its Viewer
Text's numericValue, change 0.00 to 0 (no decimals)
Pick up the Text (black halo) and drop it into the cell
Reduce the size of the cell (yellow halo), we will have to fit 16 cells into the larger Playfield

Make sure the Text is inside the cell - when you move the cell the text should move with it. Also check by looking in the cell connections category, you will see the text is registered there.

Open the cell viewing menu (red halo)
Check round corners, essential for this project
Change the colour to establish contrast from the colour of the large Playfield
fill style > change colour
border style > border colour

Open the cell viewer
Add a variable, call it counter
change the value type > Player
Drag out cell counter by the assignment handle, it will form a script which reads:
cell's counter <-- dot Open the Text Viewer Get the Text to hand you a "tile representing me" (from menu at top) Replace the dot with the Text tile
Run this script briefly so the cell's counter Player type converts to a Text type. The icon on the assignment arrow will change from a dot to a text.

Now we will write a script which automatically makes new cells, increments their number and puts them into the large Playfield

Open the Playfield Viewer and drag out a script
Open the cell Viewer and drag out the cell's counter variable by the assignment handle and add it to the Playfield script. It should read:
cell's counter <-- Text To make a new cell: Go to cell > miscellaneous category, drag out cell's copy and replace Text with it

Running this will create a new copy of the cell on top of the original cell. So now we want to automatically move the new copy into the larger Playfield.
Switch on auto-line-layout in the larger Playfield, for automatic alignment:
Menu (red halo) > playfield options > check auto-line-layout
Run the script to see if new cells are populating the Playfield
For 15 Puzzle to work (later) the cells have to be touching horizontally and vertically but not diagonally. To achieve this use:
Menu (red halo) > layout > table layout > change cell inset (tricky since there are so many settings available)
To tidy up afterwards use Playfield > collections > removeAll

Now it's time to increment the numbers on the cells
Open the Text Viewer and drag in Text's numericValue by the assignment handle
Open the cell Viewer, drag out cell's counter and replace Text's with it (see diagram)
Alter this line of code to increase the numericValue by one

I think because cell counter is playing a dual role, first making a Player copy and then being a text to increment the number then it's essential to add in
cell's counter <-- Text as the third line of the script. Here's how it looks now:
Run the procedure to create a 15 Puzzle grid!

To shuffle the cells use
Playfield > collections > shuffleContents

After thought: It would look better keeping the border a different colour

Project available: 15 Puzzle Auto

visually manipulating collections in etoys' Playfields


Markus Gaelli has a 15 Puzzle etoys demo program at his emergent site (excellent site for etoys projects)

Before getting onto coding the puzzle I became quite absorbed about the potential of etoy Playfields. The puzzle consists of 16 little Playfields (which in turn are containers for their own "text" numbers) inside a big Playfield.

What I see in Playfields is the opportunity to manipulate collections visually which I haven't seen in any other program. eg. Game Maker doesn't represent for loops visually and it is hard to teach them to students, in my experience.

I was also intrigued by the notion that Smalltalk adopted "collection based programming as a central tenet" and "that modern functional programming languages such as ML and Haskell have followed this lead". The whole approach is not based on looping constructs but on creating a new collection containing the desired elements (Squeak by Example, p. 195). I'm unsure about how much of this approach can be demonstrated in etoys - but it does suggest a different sort of way of teaching collection manipulation that may be more accessible to many learners

This post is just getting started with how to work with collections in Playfields.

The screenshot above is a collection of Playfields (which contain text numbers) contained within a larger Playfield. The resultant collections category in the larger Playfield's Viewer looks like this:


This opens the door to visually manipulate quite a few things:

count: number of objects that the Playfield contains
cursor: the currently selected object, in this case 9 (the cursor can be visible or invisible)
firstElement: I have auto-line-layout switched on so the objects are layed out neatly with the first object in the top left hand corner
include at cursor | dot: This adds a new object to the Playfield at the cursor. You need to replace the default dot with the object you want to add.
include: dot: Adds a new object at the end of the other objects (replace dot with the object you want to add)
numberAtCursor: ?? not sure what this is for
playerAtCursor: The object currently at the cursor
removeAll: remove all objects from the Playfield
shuffleContents: shuffle the objects in the Playfield
stringContents: displays a linear text representation of the Playfield contents

I've written a program which automatically populates a Playfield with the elements of the 15 Puzzle. I'll blog about that separately.

Quanta's OLPC production line


Quanta's OLPC production line. Larger view.

"Reaching Mass Production is no small task" - The Weekly Squeak

turtle graphics in etoys: possible but not elegant



You can create a parameter (but only one per procedure) and you can't rename them! So write a first procedure to setup your parameter:

Then create a number variable and create a second procedure to increment your parameter value, as shown. You initialise your number values from the object's Viewer.

The etoys version from the squeakland site doesn't have a repeat command. But Pierre-André Dreyfuss pointed out that you can write your own. Also the repeat command has been added to the OLPC etoys version

Project available: http://www.users.on.net/%7Ebillkerr/etoy/turtleGraphics.001.pr

how to make a "text" counter in etoys

I need a counter for a larger project. I needed help to do it (thanks Paul) so thought I should pass on the technique.

Goal: By clicking on a shape a counter increments

This is for making a large counter, which displays in a specialised text player. Another (easier) way would involve using a detailed watcher but that only has a small display. This method involves learning something about setting variables and using Text so it is has broader application.

Drag a "Text" out of the Supplies flap
Have a look in the Viewer, it has a Text's numeric value tile in the basic category. Click in the value and type a number and that number will appear where the "Text" is

Make a new shape for clicking on. I made a rectangle and coloured it green. I kept the name at the default, "Sketch"

Add a variable to Sketch, I called mine "counter", then change value type to Player. Note that Text types are not available.

So you now have to pass the Sketch counter player variable a text tile. This is how you make a text type.

Make a Sketch script. Then drag Sketch counter by the assignment arrow to the script. The line will read:
Sketch's counter <-- dot Then open the Text viewer. Get it to hand you a "tile representing me" from the menu at the top. Then replace the 'dot' tile with this new 'Text' tile (see diagram)
So, now we have made a counter variable which is of text type!

Make a new Sketch script. I called this script "increment"
Reopen the Text viewer and drag Text's numeric value to the new script by the assignment handle. It will read:
Text's numericValue <-- 0 (just click on the 0.00 and replace it with 0 and the number of decimal places will adjust automatically) Reopen the Sketch Viewer and drag Sketch's counter (not by the assignment arrow) to replace Text's with Sketch's counter (see diagram)
Now modify the code so it reads: Sketch's counter numericValue increase by 1 (see diagram)

You can modify the Events which trigger the code by clicking on the "normal" button:

I changed mine to mouseDown, so I can increment the number by clicking on the green shape which is named Sketch.

Project available: http://www.users.on.net/%7Ebillkerr/etoy/counterByOne.005.pr

Saturday, November 03, 2007

one school in India

Joel Stanley sent me a link to a detailed report of a trial of the OLPC at Khairat school in India (Khairat Chronicle), written by Carla Gomez Monroy, an OLPC learning consultant

It contains the details of how the OLPC is integrated into the day to day workings of the school, the role of the teacher, the learning culture of the classroom, how the students use it, how some of the parents have become involved, how the OLPC has been a motivator to improve school attendance and a detailed description of the broader culture and how the OLPC impacts onto it.

Stunning, copious photographs illustrate this extremely informative chronicle. The caption of the photo I have included says:
Teacher said, his relationship with the children was closer, in the sense that together they explore the XO

Friday, November 02, 2007

how to make space invaders in etoys


Make a bullet object

Make a new variable, call it newBullet and change the type to Player
variable > newBullet
menu > change value type > Player


Script your own Create Event, which makes new bullets
drag newBullet by assignment handle to the script
miscellaneous > bullet's copy, replace dot

Make another script which moves the bullets
bullet forward 5


Go back to the Create Event script and send a message to the new bullets that are being created to move
scripting > bullet start script
then replace bullet with the newBullet Player variable


Now whenever I run my Create Event it creates a new bullet which is fired off. What happens is that the new bullet instances are named bullet1, bullet2, etc. and each bullet has its own Player, which runs its own move script. You can't see this happening unless you grab one of the new bullets and open its viewer.

With all the new bullets I need some way to tidy up. So I'll write some scripts to clean up the siblings, just so I can play around and be able to tidy up afterward

Write a bullet delete script


Write a remove all siblings script which calls the bullet delete script


I want keyboard control for firing off bullets

Middle click on the World and open the World Viewer. Then open the input category and you will see world's lastKeystroke. Press some keys on the keyboard and you will see the values change in the viewer.

Tear off a Yes/No Test unit and drop it into the bullet create script

Drag world's lastKeystroke (not by the assignment arrow) into the Test section of the test unit. Then replace the part after the = sign with <up> arrow. Move the other already existing (three) lines of the create script into the Yes section of the test unit.

We want to simulate a keypress, ie. not have the <up> arrow always in place - if that happened we would have bullets being created continuously. Add a
world's lastKeystroke = <down> assignment to the bottom of the Yes section, so that <up> arrow turns into <down> arrow immediately after it is pressed

Since we are now doing keypress control we will have run the ticker continually on the create script. Unless we do something about it then this will be passed onto the create scripts of all the new bullets. So it's best to stop the create script running unnecessarily on the new bullets. Add a stop script create line to the Yes section of the test unit



I now want to destroy the surplus bullets as they reach the edge of the screen

Tear off a Yes/No Test unit and drop it into the bullet moves script.
test > bullet obtrudes (boolean)
Obtrudes means whether the object sticks out over its containers edge
Add bullet obtrudes (don't drag by assignment arrow) to the Test condition. Move the forward command to the No section of the test unit


At this point we want to stop the move script ticking and delete the bullet
scripting > bullet stop script



My project available: http://www.users.on.net/~billkerr/etoy/invaders.006.pr

Karl Ramberg's old tutorial: http://209.143.91.36/super/503 was helpful

Summary: So far we have created multiple bullets, fired them and destroyed them when they reach the edge of the screen

New things learnt:
  • How to create a Player variable
  • How to program key strokes
  • How to write your own Create, Key press and Destroy events
  • How to remove siblings and keep the original object
  • How to stop and start scripts programmatically

Still to do:
  • Introduce the shooter and move it left and right with the arrow keys
  • Create the new bullets where ever the shooter happens to be
  • Introduce enemies and get them moving down the screen towards the shooter
  • Make the enemy change to more threatening appearance as it gets closer
  • Shoot the enemy, create explosions, display points scored
  • Add dramatic music
  • Have good images for shooter, enemies and background image

Thursday, November 01, 2007

truth slips from view in the sea of post modern knowledge

Where have all the intellectuals gone? by Frank Furedi

We have a "knowledge society" in which any piece of knowledge is regarded with skepticism and can be contested indefinitely. The world is so complex that anyone who claims to know the way forward is regarded with suspicion. We value knowledge but are drowning in the sea of knowledge.

Furedi outlines a number of trends that are working in synergy against public intellectuals:

Instrumentalism: Knowledge is for practical purposes only

Disenchantment with the Enlightenment legacy: The previous century is perceived as one where big ideas such as communism were tried out and failed. People came to see rationality as destructive. Rationality is now marginalised by the sacred and spiritual, eg. nature worship

Relativist approach to knowledge and other cultures: Our western culture has no special merit. Other cultures have a spiritual dimension that we lack.

Knowledge domains are evaluated externally to themselves: Rather than respecting the internal dynamics of knowledge development it is evaluated by criteria such as economic advance, personal identity, providing therapy or social engineering

High standards are attacked from both the Left and the Right: The Left from the point of view of "inclusion", the Right from the point of view of "back to basics". The cultural "Left" (what I call the pseudo left) is more dominant, they promote a politics of inclusion, participation and flattery. It sounds progressive to include people. But it's not a response to a demand from below, it's imposed from above by cultural commissars who are looking around for some way to "engage" the "disengaged masses"

Post-modernism denies the whole concept of Truth: All truth is regarded as relative, it depends on your local conditions and point of view. The universal values from the Enlightenment have to be replaced by the "progressiveness" of particularity and situatedness

Public intellectuals, who wage battle for public hearts and minds and who influence overall social development have been replaced by the professional expert of a particular but limited knowledge domain. These experts use hard to understand technical specialist language. Many of them are academic careerists

We don't hear people speak passionately about the truth like Rosa Luxemburg anymore:
"But this much I know, that it is our duty, if we desire to teach truth, to teach it wholly or not at all, to teach it clearly and bluntly, unenigmatically, unreservedly, inspired with full confidence in its powers"
This book is not without fault but it ought to be read and discussed

Prompted by artichoke's The truthiness of Te Kotahitanga and "Haven't got a clue syndrome" in Art Galleries

Wednesday, October 31, 2007

creative teaching or pandering to the philistines?

A vision of students today - a new video by Michael Wesch

This opens with graffiti on a (fade to grey) lecture room wall reminding us that there is not much difference between attending a boring lecture and doing hard time in gaol as a political prisoner being tortured by fascists:
"If these walls could talk"
"What would they say?"
Then a document appears on the screen and we are informed that 200 students made 367 edits to it and surveyed themselves to bring a message to the viewer of this video.

Implication: Because a lot of students made a lot of edits it's probably "insightful". That doesn't follow actually. Some collective work is good, other collective work is crap. We should never judge this by the number of contributors or edits but by the work itself.

Not sure where Michael Wesch is going with this, it does say “to be continued” at the end. The students looked a bit uncomfortable to me, not quite certain that it was OK to boast about their lack of reading, missing lessons or not paying attention.

My idea of a University is that it ought to challenge and be difficult in a way that is also engaging but without pandering to engagement in a populist, philistine manner. Michael Wesch may be engaging his students but it’s not clear where he is going to take them or even whether he sees that as part of his role

Thanks to daniel livingstone for this one

Monday, October 29, 2007

Negroponte art far more fair than Vota

This poem from Wayan Vota, who loves the OLPC technology but dislikes Negroponte intensely, reveals him to be a talented constructionist polemicist:
But soft! What light through yonder assembly line breaks?
It is the East, and OLPC is the sun!

Arise, fair sun, and kill the envious Intel moon
Who is already sick and pale with overclocked grief
That thou her maid art far more fair than she.

Be not her sales maid, since she is envious.
Her vestal livery is but slick and white,
And none but fools do Windows. Cast it off.

It is Linux! O, it is my love!

squeak on the OLPC in Brazil


This video of kids learning squeak etoys on the OLPC in Brazil, with English subtitles, has a nice feel to it. It just works.

Thanks to Jecel Assumpcao Jr

Sunday, October 28, 2007

Kedama: a GUI-tile scriptable massively-parallel particle system

Kedama is the StarLogo approach imported to etoys. ie.
... a programmable modeling environment for exploring the workings of decentralized systems -- systems that are organized without an organizer, coordinated without a coordinator ... you can model (and gain insights into) many real-life phenomena, such as bird flocks, traffic jams, ant colonies, and market economies
I've been arguing on the Victorian teachers list recently that this is the sort of thing that computers ought to be used for in schools, to add something unique and valuable to the curriculum

Kedama comes with etoys (squeak). It was developed by Yoshiki Ohshima, who is a member of Alan Kay's Viewpoints Research Institute team

There is a wonderfully clear tutorial Linda Kao, with detailed explanations, on the squeakland site.

Visualise kedama as consisting of 3 layers:
  • Kedama world layer
  • Patches layer 100x100 grid (each patch might consists of just 2x2 pixels) and each cell can be assigned an integer value
  • Turtle breeds (particles). A breed is a group of turtles. Turtle breeds are scripted as a group. You can also have multiple breeds for more complex simulations
The turtles can alter their behaviour by interacting with the patch variables. For example, if a patch has a value of 1, then any turtle entering that patch could be programmed to change colour

So, for an epidemic simulation:
  • Create hundreds of turtles (one breed)
  • Infect one of the turtles, show this by displaying that turtle in a different colour
  • Use an infected turtle to infect a patch
  • If any other turtle enters an infected patch then it becomes infected
  • Run the simulation, see how fast the infection spreads

I include some screenshots of three scripts and the developing epidemic:











Some things I learnt:

If I pull out the third line of the infect script and then run the setup script then all turtles immediately become infected

Looking behind the scenes I see that Squeak has a doSequentialCommand: keyword method which somehow carries out the commands to the turtles in each breed one by one. Hence the setup script stops at the point of infecting a single turtle

If I pull out the "patch clear" line of the spread script then the infection spreads much more quickly. This is equivalent to infected surfaces continuing to remain infectious. This illustrates the potential of the patch approach, much more versatile than programming collisions.

spread script pseudocode:
  1. move all turtles
  2. clear all patches
  3. If turtle is infected then infect the immediate patch
  4. If another turtle which is NOT infected enters that patch then infect that turtle

labour white ants black responsibility

"... if I had a dollar for every time I heard that phrase “social justice” fall easily from the lips of a Labor politician in my home state, I would be an extremely wealthy man"
- Noel Pearson
There is the aboriginal rights agenda and the aboriginal responsibility agenda.

Both are important but the current reality of widespread aboriginal welfare dependency, substance abuse, child abuse and domestic violence make the responsibility agenda more important.

The indigenous child abuse documented in the Little Children are Sacred report created a political climate where the responsibility agenda backed by Noel Pearson received support from both Liberal and Labour Parties. Rudd has promised that the Northern Territory (NT) intervention will continue under federal Labour and would be reviewed in 12 months

However, the NT Labour machine is deeply divided about the intervention with Chief Minister, Clare Martin and her Family Services Minister, Marion Scrymgour only sometimes paying lip service to it while white anting.

Scrymgour, an indigenous MP, described the intervention as the "black kids' Tampa" and labelled Canberra's approach as "vicious new McCarthyism" (in a speech last Wednesday, in Sydney)

She continued:
"Aboriginal territorians are being herded back to the primitivism of assimilation and the days of native welfare". "It has been a deliberate savage attack on the sanctity of Aboriginal family life."
On the other hand aboriginal backbencher Alison Anderson, who represents the central Australian electorate of Macdonnell, has responded:
"It is a disgrace the people who know nothing about living among the poverty and abuse in remote communities have condemned the intervention"

"My people need real protection, not motherhood statements from urbanised saviours. I live my law and culture and represent my people regardless of what's fashionable. My people need the help and want the help from this intervention."

Clare Martin says she's behind the intervention except for the permit revocation plan, the alcohol laws and the whole panoply of work for the dole and welfare reforms. What's left?

Noel Pearson has critiqued Rudd's general critique of Howard as it applies to the situation of aboriginal people:
Let me explain my reservation with reference to Opposition Leader Kevin Rudd’s critique of what he describes as the neoliberal fundamentalism of the Howard Government: “Modern Labor … argues that human beings are both ‘selfregarding’ and ‘otherregarding’. By contrast, modern Liberals … argue that human beings are almost exclusively selfregarding.” Rudd concedes that the selfregarding values of security, liberty and property are necessary for economic growth. He argues that the other‐regarding values of equity, solidarity and sustainability must be added in order to make the market economy function effectively, and in order to protect human values such as family life from being crushed by unchecked market forces.


My reservation about this analysis is that it is mainly concerned with those who are not deeply disadvantaged in a cultural and intergenerational way. Kevin Rudd’s father was a sharefarmer, and his untimely death brought hardship to his widow and children. But hard work and appreciation of education were passed on to Rudd from his parents. Rudd’s ideological manifesto is concerned with the effects of neo‐liberal policies on people who may have less bargaining power than the most sought‐after professionals, but who are nonetheless firmly integrated into the real economy – not only because they have jobs, but because they are culturally and socially committed to a life of responsibility and work. I welcome the debate Kevin Rudd sought to revitalise about the long‐term effects on most working people of neo‐liberal policies: what will the effects be on family life, on people’s sense of security and purpose, on social cohesion? How great is the risk that families of the lower strata of the real economy will descend into the underclass?


These are real issues, but the important question from an African‐American or Aboriginal Australian perspective is: what is the correct analysis of self‐regard and other‐regard in the context for those already disengaged from the real economy? Disengagement is the problem in Cape York Peninsula ...



The moderate left, as represented by Kevin Rudd, would probably argue that neo‐liberal dominance increases the number of disengaged people and the difficulties of returning them to the working mainstream. This may well be true. However, disadvantage can develop and become self‐perpetuating, even without neo‐liberal government policy. In Australia, Aboriginal disadvantage has become entrenched during decades when social democrats, small‐l liberals and conservatives influenced policy; many policies for Indigenous Australians have been liberal and progressive.

The insight which informs our work in Cape York Peninsula is that disengagement and disadvantage have self‐perpetuating and cultural qualities – problems not covered by Rudd’s analysis. These are the problems of the underclass, people who are psychologically and culturally disadvantaged. (Rudd does not spend time thinking about the underclass. In the scramble for the political middle, who does?) His is an analysis of the prospects of the upper 80 or 90 or 95 per cent of society, and how they will fare under social democrat or neo‐liberal regimes. If Rudd’s analysis were extended to the truly disengaged, his model would probably be interpreted like this: some people are successful and, as well as being self‐regarding, they should be other‐regarding. And then there are the disadvantaged.

The problem is that it is assumed that the life chances of the disadvantaged depend on the other‐regard of the successful – either a precarious dependency in the absence of state institutions, or an institutionalised dependency which my people have come to know as passive welfare. In reality, what is needed is an increase of self-regard among the disadvantaged, rather than strengthening their belief that the foundation for their uplift is the welfare state and the other‐regard of the successful.
- source

These things seem clear to me:
  • Pearson has a far deeper understanding of the situation facing aboriginal people than Rudd, Howard or any other politician
  • Pearson's support for the Federal Government intervention in the Northern Territory is clear but also qualified, he has never supported every aspect of the intervention
  • Labour under Rudd project themselves as humanists who place more stress on "other regarding" than "self regarding" than do the Liberals. This makes them more predisposed to withdraw support from the hard decisions that need to be made wrt aboriginal people
  • Some significant Labour politicians (eg. Clare Martin) are white anting the intervention whilst paying a bit of lip service to it
  • The aboriginal welfare bureaucracy and some of the traditional Labour social base will pressure Rudd to wind back the intervention if and when he become Prime Minister. It remains to be seen how he will respond to this

reference: (source of quotes and information about NT Government stance):
The Weekend Australian, October 27-8, 2007

Friday, October 26, 2007

how to display etoy projects live on the web

Thanks to help from Paul I now know how to display etoy projects live on the web, as a web browser plugin. To run them you will need to get and install the squeak browser plugin

car with steering wheel
  • Left click on the clock on the script to get the car moving
  • Middle click on the steering wheel and steer using the rotate halo, the bright blue one on the bottom left
  • To see the Viewers middle click on the object (car or steering wheel), then left click on the cyan eye halo
the html (put it all on one line)
http://www.squeakland.org/project.jsp?
http://www.users.on.net/~billkerr/etoy/redcar.001.pr

explanation: http://wiki.squeak.org/squeak/1380

get yourself an imaginary friend

Thinking about thinking

This article argues that the world is made of mappers and packers. Mappers are better thinkers but are seriously outnumbered, the general culture is packer culture. I'll write a summary for my own benefit but its best to read the whole thing. It's well written and contains many pithy aphorisms which made me smile.

Packer traits:
  • procedural thinking, we have a problem, what is the procedure for solving it?
  • draw up action based balance sheets
  • assembly line approach
  • pushing bits of paper around
  • deal with complexity by developing more complex procedures
  • stop asking "Why?" and get on with it
  • overly concerned about certainty
  • knowledge is made of up of discrete packets - which packet applies to the current problem, do I have it, if not, who does?
  • experience learning as task driven by external forces
  • can be blind to or excuse flaws in their own logic when they are pointed out

Mapper traits:
  • reflection is important
  • take personal responsibility for problems and explore the options self reliantly
  • develop rich, strong self connected knowledge structures
  • experience learning as an internal process
  • continually modify internal map based on incoming knowledge
  • mapper learning requires higher investments
  • aware of the comparative reliability of knowledge, less thinking in terms of absolutes
  • play around with ideas in their head continually, in their spare time, on weekends

The section on the American led Japanese revival following WW2 is amazing. They argue that mapping can be reawakened by trauma ("nuke them twice") and that the "Total Quality Management" (TQM) ethos that developed masked the underlying real reason for Japan's success. When TQM was transferred to other societies it did not always work because the packers, who are the majority, treated it like a checklist to be ticked off.

Packers and mappers don't understand each other. Mappers think packers are cynical or lazy. Packers think mappers are irrational.

The section on reflection is good. Reflection is often mistaken as daydreaming and can be discouraged by school and many parents. Reflection is hard to teach and hard to assess. Many social pressures work against reflection.

Description of the worst case scenario of packer thinking:
"In pathological situations, this can lead to an infinite regress wherein every problem is addressed by attempting to delegate it to someone else, a procedure, or a blame allocation mechanism. It's rather like holding your toothbrush with chopsticks - if you are holding the chopsticks just like on the diagram, the brush up your nose and the paste all over the mirror are not your responsibility!"
Recommendation about how to develop mapper skills:
Get yourself an imaginary friend, as smart as you are, but totally ignorant of the world. Whatever you feel you could relate to - you don't have to tell anyone that you find it easiest to talk to the 1960's cartoon character `Astronut' hovering about in his little UFO with a VHF television aerial on his head. Or maybe Sean Connery's canny medieval investigator in The Name of the Rose would be more fun. Explain everything to your imaginary friend. What it's for. Where it comes from. Where it's going.

At first your full attention is required for this exercise, but after a while the logic between knowledge packets becomes as automatic as driving, and your attention is only drawn to unusual situations: pieces of your map that need filling in or contradictions resolving. It works. With your maps building, discussion of techniques is possible, because we all know what we are talking about
Comment:

It's very well written and the packer culture does remind me quite strongly about how Schools are run. The two main strong points that are made about mapper culture are:
  • the importance of reflection, aka slow, deep thinking (one of alan kay's non universals)
  • everything (the knowledge packets) is connected and you have to work hard to develop good packets and good connections
In parts it is self congratulatory and I think perhaps the philosophical base of "the mappers" could be broader and deeper

Thursday, October 25, 2007

kusasa ("tomorrow"): a solution to the maths/science education crisis

I've recovered from my initial excitement and have read every word carefully on the kusasa site(Capetown, South Africa) and pretty much agree with their whole approach to using computers for maths and science education

It seems similar to what is being done in Extremadura, a poor rural region of Spain (video link)

The philosophy is pure Papert: maths-land, hard play, tap into personal interests, build models of objects to think with, using computers to explore, discover and learn

Maths and Science ought to be learnt in the way it has developed historically. Humans wanted to build things and predict things. In doing this they gradually learnt maths and science. The abstraction came later.

The software is squeak etoys for years 4-9 and python for years 10-12

There are some great quotes about the importance of play on the How > Interests page sidebar:
"Play is the highest form of research."
Albert Einstein

"Do not keep children to their studies by compulsion but by play."
Plato

"In play a child always behaves beyond his average age, above his daily behavior. In play it is as though he were a head taller than himself."
Lev Vygotsky

"The very existence of youth is due in part to the necessity for play; the animal does not play because he is young, he has a period of youth because he must play."
Karl Groos

"Almost all creativity involves purposeful play."
Abraham Maslow

"Play is our brain's favorite way of learning."
Diane Ackerman

I like the Why? section the best, it goes into Challenges, Changes and Opportunities

Challenges: We are facing a crisis in maths/science education in many countries. Many students find it tedious and boring. In recent times education has become confused with entertainment, the demarcation is not clear.

Changes: A series of slides comparing 1907 with 2007 demonstrates how little School has changed compared with the car, the aeroplane, music and communications.

Opportunity: The plummeting cost of powerful computers opens up new opportunities to dynamically model concepts in a variety of learning areas.

Wednesday, October 24, 2007

Kusasa, a Zulu word for tomorrow

Kusasa
http://www.kusasa.org/index.html

This project from Mark Shuttleworth's foundation reflects my ideas of how computers should be used in schools and / or education. What a gem! Thanks Margaret!

Check out Mark Shuttleworth's amazing biography
  • successful IT entrepeneur / venture capitalist (digital certificates and internet privacy)
  • first African Cosmonaut
  • founder of The Shuttleworth Foundation, a non-profit organisation dedicated to social innovation in Africa with a particular focus on education
  • founder of the Ubuntu project ("Linux for human beings")
  • founder of HBD Venture Capital, "Here Be Dragons", which legend has it was used to describe uncharted territory on early maps ...
  • promoter of the Hip2BSquare brand, which aim to make mathematics and science sexy to pupils who are choosing their subjects for high school
"My current project, aims to produce a free desktop OS for the world. Everything you need on a single CD"

Wednesday, October 17, 2007

the law of probability in my "year of the hospital"

I'm going back to hospital on Friday (19th October) for a TURP, a "trimming" of my enlarged prostate gland. This is what I initially wanted 6 months ago.

When I visited recently I discovered that I was famous. Papers have been written and seminars delivered about my prostate biopsy bleeding episode last April. Also the Urology Department is changing their procedures so that in future prostate biopsies will be done in house, partly as a result of what happened to me.

Not everyone gets their 15 minutes of fame for something they intended. LOL.

My health in my "year of the health" remains good. They checked me for prostate cancer and despite nearly killing me in the process found that I didn't have prostate cancer but thought I had kidney cancer. But after taking out a kidney it was found I didn't have kidney cancer either. I've been lucky compared to many others.

I understand the law of probability but am hoping that the odds will go more my way this time around

I have the greatest respect for doctors and what they do in public hospitals, based on my personal experience.

(If only we could use technology in Schools the way it ought to be used - Science and Medicine by contrast have figured it out)

related posts:
unexpected hospital stay
return to hospital
kidney tumour
kidney tumour removed

the decline of IT in education

Enrollments in IT courses have fallen dramatically in senior secondary courses in recent years and IT as a subject has been wound back in the middle school years in favour of integration of computing into other subjects, eg. the VELS approach in Victoria.

It is now crunch time because numbers have declined to the point where IT teachers are losing their subject and having to reconsider their futures, eg. go back to teaching maths or whatever

Some despair and bewilderment has been expressed on some IT teacher lists. Comments such as:
It seems unbelievable that in the Information Age students are not formally taught ANY ICT
I too am puzzled at the idea that 'integrating' IT into other subjects will allow anything approaching an adequate skills base for the 'information age' and current employer expectations. Why not 'integrate' the teaching of English into other subjects - after all we can all read and write, and unlike IT, most if not all of us have done Year 12 English!
So, although there are more computers in schools than ever before the expectation now is that all teachers ought to be "computer literate" and the proper place of computers is for them to be used in the context of traditional subjects. Word processing goes with English, Spreadsheets goes with Maths (if there is time left over after using the graphics calculator), web based research goes with Society and Environment, etc.

When computers first came on the scene they were new, exciting, important and vocational (new career pathway). Every parent was reported to have said or thought: "I want my child to learn computing". Now all that is changing and computers have just become part of the background hum of society, to be integrated into the traditional, long lasting, more fundamental subject domains: English, Maths, Science etc.

The stakeholders no longer see computing as important as a standalone subject. The students see themselves as "digital natives" who often know more than their "immigrant" teachers. The university IT departments prefer that students have a maths background, they believe that School does not know how to prepare students correctly for programming. These perceptions are neither right nor wrong (it depends). What they do signify is that IT has not clearly established its own internal strong criteria for its ongoing sustainability.

Who speaks for the computer? What is the computer for?

This is a failure of imagination and analysis. School has adapted the computer to its traditional goals. The early voices of the pioneers such as Ted Nelson, Seymour Papert and Alan Kay are not heard anymore. Once logo (which had a philosophy attached) went into decline and was replaced by Office (metaphor for apps) and the filtered web (metaphor for research) then it became inevitable that IT in general would go into decline. IT cannot justify itself as a standalone subject once it loses its powerful philosophical justification

IT specialist teachers can argue correctly that many English teachers do not teach word processing correctly, that many S&E teachers do not understand "web2.0" apps etc. but you can't really justify a whole subject just on the basis of skilling

Although School is pretty much dominated by narrow instrumentalist goals the traditional subjects do not occupy the same mental space of some of the arguments that have been used for IT. The continuation of English in the curriculum does not derive mainly from arguments like "there are jobs in English" or "you need English skills for a good job" even though both of these arguments are formally valid. Rather the English co-ordinator at the curriculum committee would say something more like: "the study of Shakespeare or John Marsden provides our students with valuable new insights into the human condition"

Does "web2.0" connectivism provide the basis for a brand new education system? I think probably not. I would see it as just one part of the puzzle, a new piece of the jigsaw built on top of the much larger edifice of modernity and the Enlightenment. The information age began with the printing press.

It is the failure of many of those who love computers to develop an equivalent argument and the failure of Schools to hear the equivalent argument when it has been developed, which explains why IT teachers are now losing their subject.

The argument does exist and can be articulated. The answer my friend has been blown in the wind, the answer is blown in the wind. The problem is one of hearing it, a social hearing in sufficient numbers that would make a difference.

Wednesday, October 10, 2007

our human condition "from space"

The process of really understanding something sometimes takes years. Real understanding is more of a coherent, connected world view, which turtles all the way down, than "the right words".

With this in mind, I'd like to encourage people to spend some time on alan kay's article - Our Human Condition "From Space" (and his other writings and presentations)

Everything about it is beautiful - the illustrations, the writing style and most importantly, the ideas

I like his idea of the unsane, the mental state where our ideas don't fit reality, the map doesn't represent the territory. We like to think of ourselves as mostly "sane" and contrast that with a few "insane" personal moments or the more permanent state of a few unfortunates. But the "unsane" idea makes room for a different self perception. What if more often than not we are unsane?

When alan kay said in his writings from time to time that computers were not all that important, I couldn't really believe that he meant that. Computers have been his career, so I couldn't take him seriously. Even now I feel a strong pressure to qualify this observation.

But in this article he explains it clearly. Most of modern science (400 year tradition) can be done with simple tools - to grasp it requires point of view, effort, time but not money or computers

One of the first quotes I heard from him years ago was "point of view is worth 80 IQ points". Initially, that sounded quaint and elitist, "how old hat to be talking about IQ", I thought. But having read this article and some other of his writings I now see it as an important insight. Point of view changes everything. So what happens? From the outside you look the same but from the inside everything looks different, you see the world through different eyes. My feeling is that the important thing is to pursue the non universal powerful ideas more rigorously.

Monday, October 08, 2007

OLPCNews update

I was annoyed at the way OLPCNews treated Sylvia Martinez and stopped reading for a while

I was pleasantly surprised today when I went back for a look. There is still carping criticism of Negroponte, who is described as an ego maniac, but some of the articles I read were valuable and informative and filled a gap in my knowledge. Unfortunately, the official OLPC site doesn't really discuss controversy.

uruguay_xo_laptop_victory_intel_microsoft by Wayan Vota
I am shocked at the non-response to last week's announcement that LATU Uruguay, the government entity testing both Intel's Classmate PC and One Laptop Per Child's XO computer, rated the XO-1 the better option for the children of Uruguay's Florida province, 56.84 points to 53.06 points.

Am I the only one to notice that this was the first (and so far, only) government administered test between the Classmate PC and XO laptop? A beneficial competition between low-cost laptops for the developing world with an objective winner, One Laptop Per Child.

Where are the Linux geeks screaming victory from the top of Monte VI De Este a Oeste? Do they not realize that with Uruguay poised to buy 100,000 XO laptops running a Sugar user interface on a Linux kernel platform, it is the first large-scale loss for the Wintel duopoly?
In this article, Wayan points out how much the OLPC has already transformed "the whole global mind-think around technology":
No longer is low cost computing in education a fantasy, no longer are big technology companies secondary, and everyone wants to sell technology into classrooms. Intel introduced Classmate PC to Brazil, Asustek is selling Eee PC's in the USA, and even thin-client manufactures compare themselves to OLPC.
The best article I found was 10 Reasons Why Negroponte Should Change OLPC Distribution by Alexandre Van de Sande. He effectively challenges the whole concept of only selling millions of units to governments:
  • Many third world governments are corrupt and populist
  • The real DO-ERS are local enthusiasts, NGO's, eccentric billionares and early adopters. Best to use them.
  • Selling in thousands, rather than millions, achieves critical mass and better logistics.

Sunday, October 07, 2007

the problem of living in the present

update (10th October):
I've changed the title from the attention seeking "pity the web2.0 evangelicals" to one that better represents the real issue I want to raise, "the problem of living in the present" (thanks, Doug)

alternative titles:
  • information is not your friend
  • the delusional glitter of the new and the now in web2.0 land
  • blogging is just the tip of a rather diverse and large iceberg
"web2.0" has it's place but I pity the poor web2.0 evangelists who are trapped in their sea of information. I visited there once.

Some of them even believe that web2.0 is better than web1.0 or that reading web1.0 is old school. And they are too busy keeping up with their RSS feeds to read books. Poor blighters :-)

Here are some of the things they are forgetting about:
I assert that these things are covered better in web1.0 and books than web2.0. And to be aware of these things is to live in a totally different place to web2.0 land. No point in providing links is there - web2.0 evangelists don't read web1.0 links, why those documents are too long and old school.

I guess it's just the latest form of addiction.

update (10th October): Cross out the sneering comment about not providing links. The issue that I wanted to raise was that it hit me like a ton of bricks the other day, that I was spending much more time reading lengthy web1.0 documents and books (whilst also pruning my RSS feed). And that this more measured and reflective reading has significantly altered my point of view, world outlook. It's also true of course that the better web2.0 blogs / sites also do this so in that respect my post is "attention seeking" rather than balanced. ie. the original post (without updates) is in part (and was deliberately) a caricature of itself.

Saturday, October 06, 2007

philosophical principles

I keep coming back to these as things that often guide my thinking and decision making. Or when I review something I've said, written or done then I see it as limited, insufficient or incomplete because it hasn't been integrated very well with the philosophical ideas that keep emerging as the important thing.
  • why I have changed from game maker to etoys / squeak
  • why I think engagement and motivation while important are not enough
  • why I don't want to be just a teacher of computing anymore but more of a teacher of the non universal powerful ideas
  • why I am thinking I can no longer teach in a school which doesn't grasp these ideas
The philosophical principles also form the basis of critique:
  • you can't sustain the critique of instrumentalism and / or technocentrism without a sound philosophical basis, since these forces are such strong drivers in our current society
  • everyone can be doing their best and trying their hardest within their perceived universe but things aren't really going to change substantially for the better unless people step outside of that to look at the bigger picture

1. Dramatic change is eternal, "you can't step in the same river twice"

2. No construction, without destruction

3. Augmentation / Symbiosis - Humans are natural born cyborgs

4. That a computer could be an immersive, dynamic medium for children to explore powerful ideas that are not accessible readily to children in other ways (eg. dynamically representing the exponential spread of an epidemic, teaching calculus through vectors)

5. Recursion: By making the parts as powerful as the whole then we avoid the tyranny of the subgoals

6. Map and the territory: Sometimes the map in our heads does not fit the territory in the real world.

7. Dialectics, grasping both sides of the equation
Hegel: all that is real is rational; all that is rational is real
Engels: reality proves to be necessity; all that exists deserves to perish

8. Historical materialism, the importance of looking at history to understand the present

This is really an amalgamation of some thoughts from Alan Kay, philosophical marxism and perhaps other sources (Daniel Dennett, Andy Clark, Rodney Brooks). Incomplete and not sufficiently explained.

stop the band-aid

Why some forms of aid are bad for poor African countries:
(Spiegel interview with Kenyan economics expert James Shikwati)
  • welfare bureaucracies are financed
  • corruption develops
  • creates a dependence, beggar mentality
  • weakens local markets
  • dampens spirit of entrepreneurship
  • food grants undermine local farmers
  • inhibits trade between African countries
Might be better to support the OLPC give one, get one initiative

OLPC linked to civil war, revolution and the prevention of fascism

new reddit comment thread about the OLPC in response to a recent NewYork Times article: Laptop with a Mission widens its Audience

cavedave asked on reddit:
"... could there be negative consequences to giving millions of laptops out to children in the third world?"
As well as the usual stuff (theft, blackmarket, porn, more outsourcing of IT jobs) there was some more interesting commentary about both negative and positive consequences (civil war, brain drain / revolution, makes fascism far more difficult)

I think these latter comments are far closer to the mark about the real implications of the OLPC. Negroponte's clearly stated aim is to by pass the adults, to skip a generation, and to leverage the children directly to dramatically accelerate an education revolution in third world countries. This will create some social turmoil, which might explain why some of those promised cheques have not been signed.

I've pasted in some of the reddit comments below.

hopeless_case
:
Here's my attempt to come up with a nightmare scenario. By suddenly increasing the population's ability to communicate, you confront a government that hasn't had to deal with an active press with significant vocal opposition. In the ensuing power struggle, a civil war is started and millions die.

Lucretius:
The probable negative consequences in the short term are brain-drain or revolution:

Theoretically, distributing millions of XO's means millions of kids gain internet access, computer literacy, and relatively western educations who wouldn't have before. (Most of the content on the internet is in English, and of western origin, so an internet education is a western education).

Knowledge, Access to advanced tools, and Education are empowering, so what will these empowered kids do when they grow up?

Many, the ones who really delved into learning all about and with their XOs, the ones who were especially driven to educate themselves despite living in primitive conditions.... What will they do? They will either leave their countries of origin so they can live in the developed world that they seen beckoning though the internet. Or, they will demand progress to drive their countries of origin toward a western model. There are precedents for both trends resulting from the introduction of western education into 3rd world countries.

Now, for all of that, progress would have eventually come to these countries anyway, and whenever it came there would have been war, and turmoil regardless. Likewise, relatively motivated and independent people would have been leaving the 3rd world looking for opportunity in the developed world anyway. The XO just changes the texture of the situation, not it's shape. It changes how many and more importantly which people end up as revolutionaries or immigrants.

Personally, I believe its ultimate impact will be profound and positive, but not fully felt in our generation. When immigrants enter a new country, it typically takes 3 generations for them to fully adopt the surrounding culture and language. What the XO does, in effect, is to move every child who gets one into a new country: the internet. Their parents and teachers who grant them access to the XO are the 1st generation, they are the second, and the 3rd generation... which will reveal the final form of this cultural phenomenon is still many years away. I hope that this will be the beginning of renaissance. How many potential mathematicians, and authors, and visionaries languish in nations without the education resources to cultivate their talents? Humanity always benefits from a level playing field in the long run.

willem:
Imagine for a moment the consequences giving all the children in Myanmar/Burma video-capable devices... The logistical task of confiscation by the Military junta would simply be impossible.

Sunday, September 23, 2007

how to live and die

Read the commentary by Mark Guzdial and follow the links to Randy Pausch's last lecture.

Very moving. Great comment by Mark about the third head fake.

Friday, September 21, 2007

squeak by example: new book

Squeak by Example is just what I needed as a guide to learn smalltalk/squeak programming language

I've learnt some new stuff (mainly for beginners)

Red button, yellow button, blue button: From the first chapter I learnt that you can easily reconfigure your mouse buttons so that now they are more compatible with the conventional Windows GUI. Now I have:
  • left button (red button) displays the World menu
  • right button (yellow button) displays a context menu
  • middle button (blue button) displays the morphic halo
I've learnt how to maintain multiple images, eg. so I have one image named SBE in which I can develop the projects from the book and another image named Squeak3.9 which I can use to start something fresh

I've built a game called Quinto and eventually got it working! That's a big step because initially my goal was to develop the Africa map game (already developed using GameMaker) in squeak


The game involves clicking with the mouse which puts a pattern of coloured cells (click once produces blue, click again produces yellow) on the board. The aim is to maximise the blue cells which is tricky because of the way the pattern produced by a click overlaps.

I already knew something about making subclasses, methods, testing as you make and inspecting objects from earlier exercises. But I learnt new stuff about organising methods into categories (called protocols) and using the debugger.

Then I learnt that you could file out just the code for the game and then file in to another image (or send that game file off to a friend)

Initially my game didn't work properly so I joined the beginners squeak list and asked some questions - and received a couple of helpful replies quickly. It turned out that the problem was that I was using version 3.8 rather than 3.9 recommended for the book. When I filed in my code into the 3.9 version the game worked properly straight away!

I've only read a couple of chapters of the book so far, but it's great. Everything is explained very clearly. There is a free online version but I've ordered a hard copy as well.

Many thanks to the authors: Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz, Damien Pollet with Damien Cassou and Marcus Denker