platform independence

live blogging the sc symposium

Marije baalman is talking about cross platform implementation in supercollider.

sc runs on osx, linux, qindows and freenbsd. It has a language, the synth, the editor, the graphical server. There arr 10 editors. SCapp is os x only. There’s scel for emacs. Scvim is a vi plugin. Sced runs on gedit on linux only. Psychollider is in python, originally just for windows. Jsceclipse is in java. Textmate is osx only. Then there’s scfront, qcollider, squeak, etc.

os x doesn’t always mean SCapp. So we must be aware of editor issues. Scapp and psycollider have sclang inside, so documents run in the same apllication and don’t rely on pipes.

insert snarky comment about sc on linux here: it’s too hard!

the gui abstraction layer solves most of the compatibility issues. These also help with accessibility issues.

you can stick in extra menu items.

HIDs are another compatibility issue. MouseX is now cross platform. Wacom tablets are handled in an os specific way on osx, bur used as an hid by limux.

helpfiles are in html. Scel has an issue because emacs sucks and doesn’t support css with w3m and let’s be clear, this is a violation of the tsandard. The others handle html in different ways, including with a browser.

i am becoming grumpy from lack of food.

scapp uses webkit for html editing, but this creates crap html code. It’s wysiwyg, but not for other viewers. Helper and AutoHelper might be the answer to this. Or perhaps a helpfile template.

compilation issues – there are some preprocessor tags which are platform specific. Unix uses scons, which might be a good idea for os x.

audio drivers are obviously very different. Then there’s hid stuff and wii code. The wii code works on linux but not on os x, alas.

some stuff, like text to speech is os x only.

what about for end users? Audio is the same. Midi is spotty. Hids have different class interfaces, so there’s an abstraction layer. Wiis use the same class interface. I’ve been looking at fixing this btw. I’m sure somebody else will get it first though.

hid stuff has platform specifity in how hids work. Anyway. . .

there’s different installation locations for some default directories. There’s a Platform class which is good for abstraction.

if you need to check for an os, thisProcess.platform.name , gui use GUI.id , emacs use thisProcess.platform.hasFeature(emacs)

my batteries are running low. To check os specifity, look at the helpfile or source file and the location.

if you’re going to distribute, do it cross platform. Remember that key combos are different when writing helpfiles. Make your example code platform independent.

windows support for sc still sucks. But windows sucks.

machine learning panel

Panel discussion on neural stuff. Jan is speaking about self organizing maps, which is a talk he gave at brum last term.
He’s making snapshots for presets. It can be used to find similar presets. That are like ones he likes.
It creates a meta controller, which is more high level.
He can use it to make sound objects.
And it’s bewtween top down and bottom up appraoches.
He’s got a graph on how he uses it. He plays with it to make snapshots. The snapshots are fed into the som which generates simlar material, which he can use for a meta controller. He can make a map of material amd then make a path to traverse the map andthen control where he is on the the path with a slider.
Soms can be used to control anything, including each other.
A snapshot can be an array or an event. His examples use ron’s preset library.
it is an unsupervised neural network.
SynthDescLib lets you make a gui with preset. Or maybe this is jan’s code lib. There is a button to generate a som from presets in the gui. And a matrix comes up. Some of them are green, which are the ones he picked. The others are related. As you click on them it saves your path. There is a slider at the top that moves through the path. You can save your state.

now dan stowell is recapping and he has made soms as a ugen. He is showing the thng he did at the london sc meetup. It runs on the server and gets trained in advance by ana;yzing samples.

it imposes the eq of one sample onto another sample. Which works and is impressive. The som has a visua;izer. Pretty. It is not for download. I find his gui is set up kind of in reverse of how i’d think about it.

too much coffee for me. Pee break now. Ok back.

david has a flickr feed live from here

now nick collins is showing his work on the topic. He’s got an som implementation too. With a helpfile. He analyzes midi files. He breaks them up into little bits. He will release his files shortly.

now he’s talking of reenforcement learning, which is a way of considering an agent acting in the world. (See david’s photo of the slide) a state leads to an action, which in turn effects tje world which changes the state. Reenforcement learning looks at how effective actions are. So the program must have an idea of the world. This must also have a way of grading the reward of how good the world is. So you need to decide if something sounds good.

he has sc code to deal with this. LGDsarsa is on his website.

because machine learning is computationally expensive, it’s often farmed out to an external batch process. Or you can run in non rt mode. Dan has a nice ugen for this called Logger. Thete’s code examples on the mailing list. It creates data files which can then be used for machine learning.

he’s got a self similarities table for a pixies track.

ok, on to the more panelly part

how do you get the reward state in sarsa? Physiological monitoring is one way. Or you can ask the audience which has a delay, but propgate backwards. Or you can do it in a model.

jan is doing a project with thom which is similar but will generate full pieces. Nick reccomends tom mitchells book on machine learning.

why is a reward better than a rule? Why is it more interesting to train a net vs creating rules? Answer is that they can be used for different applications. Ron notes that rules are implicitly present in selection of training material and assumptions. Nick is talking about flexibility and creative machines. Dan says that ron is correct, but the number of possibi;itites in even a small data set is huge. Ron says constraints are cool. Te panel says that supercollider is cool

james, or leader, is talking about intent. What if we inverted rewards to make the audience unhappy? Nick points out it’s still hard to gauge cultural preferences.

there’s a question about specificity vs building an overly large tool. Jan agrees this is a trap. Nick says that specificity is more musically effective. He talks about hard coding. There’s too much variation sometimes.

performances with live evoluion. Using a human as a fitness fnction is slow. Nck talks abut a cmputer as an impovisor. His phd does this, whch you can download. He’s switced to midi becaus featurewards extraction is hard. Jan s talking abut having few slders.

neural network and machine learning

Live blogging the sc symposium
i showed up late for the talk on neural networks, which sucks, but i needed my coffee.
Tje speaker is demonstarting using a neural network to process gestural input from a wiimote. It makes 64 vectors describing the motion of the wimotes. He can train the neural net by making the same gesture over and over.
The auditorium speakers are making a high pitched squeal.
Now he’s talking about continious time recurrent nueral networks. These are used in robotics. They evolve instead of being trained. (Trained ones are called feet forward)
Ollie Brown did some code for this. He sugges that the smoothibg function be rep;aces with hyperbolic tans and become excitation functions and it does not reach equilibrium. You can use this for interactive evolution.
Squeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeazle.
The 60 hz hum has just caused a problem with the demo. The power to the av thing has cut out. Ron is cursing. People in the audience are whistling difference tones to go with the squeal. Somebody od making multiphonics. Now somebody is playing a sine tone on their laptop. Somebody is sampling and granularizing the feedback. The talk has paused. I wish i’d been here for the start because it’s awesome, but without coffee, i’d still have missed it.
A grad student has just come sprinting in with a cable. And the squal has ceased! Applause!
And the source of the squeal was an uniterruptible power supply. Which is why the av input died. Ohhhhhh! We are nearly back online. I wish this disaster had been at the start so i could have seem the whole thing.
The presenter, by the way is Chris Kiefer. Who is now resuming.
He is using a ctrnn to control a synth. And it can be reinitialized and mutated. This sounds cool, but i don’t under stand how it differs from random numbers. Oh, you pick ones you like and evolve from there.
Http://bit.ly/SC-NNs
http://bit.ly/SC-CTRNNS
HTTP://www.olliebrown.com/files/papers/ . . .

Twitter Supercollider App

There are some people twittering supercollider code. They do sound generating apps in 140 characters or less! I’ve just created some code to fetch and play these. It uses a yahoo pipe which looks for tweets tagged with and which seem to contain a playable piece of code. It also does some sanitizing to ignore potentially evil content.
This is a first draft, so it requires a helper script, written in bash, which is called fetch.sh:

#!/bin/bash

curl http://pipes.yahoo.com/pipes/pipe.run?_id=sqg4I0kl3hGkoIu9dPQQIA&_render=r
ss  >   /tmp/rss.xml

The SC code is:


(
r = { 


 Routine.new({
 
  var code, new_code, syn, doc, elements;
  
  inf.do({
  
   "fetching".postln;
  
   "/path/to/fetch.sh".unixCmd;
   
   doc = DOMDocument.new("/tmp/rss.xml");
   doc.read(File.new("/tmp/rss.xml", "r"));
   elements = doc.getElementsByTagName("description");
   
   
   elements.notNil.if ({
   
    new_code = elements.last.getText;
   
    ((new_code == code).not).if ({
   
     code = new_code;
   
     code.postln;
      
     (syn.notNil).if ({ syn.free; s.freeAll; });
     syn = code.interpret;
    });
   });
   60.yield;
  });
 });
 
};

)

r.play;

Replace the path information with the correct one, start the server, select all the code and hit enter. If you find a bug or a way to be evil, please leave a comment.

sc3 keynote

Live blogging sc symposium

keynote

as an aside, david has a tiny sc logo on his badge. Ha ha.

Ron has given an intro and now scott wilson and nick collins are talking about tje supercollider book, coming from mit press. It’s like the c sound book, but for supercollider.

The book is cool. You should buy it.

James McCartney is giving a keynote about single sample code synthesis. He did a 1 sample at a time server in 2001. Synthdefs were c functions. The code is lying around on his website. It doesn’t work and there are missing pieces and is not the same version that he’s talking about.

The current version does block processing. It does a bunch of samples at once. ChucK does single sample, but most do block.

The single sample version of sc has lower performance. And compiling synths took too long. This might not be the case today. It had the same architecture as the current version. There was no distinction between audio rate and control rate, since everything gets evaluated on every sample. You could do one sample feedback.

The whole thing was written in sc. It made c++ code for synthdefs, which was then compiled. He’s showing us what the code looks lile. It looks like c++. Actually, it looks like source for ugens now.

The sc code for ugens returns strings for code generation. This doesn’t need primatives, because the c code is in the sc class. But it’s still c code. This would really not be easier to write, since you wou;d need to know tje structure of the generated code. It would have been beyter to have meta code to describe how the ugen should work.

He’s showing us the source code for his project and now going to tell us why this is a bad idea. This is an unusual keynote. Now he’s telling us about memory issues and registers. Now he’s talking about vectorization and optimation. Now there’s a slid called ‘code pointer swapping.’ Now ‘instruction cacahe’

It might be ok to do single samples once in a while despite performance issues.

There’s a question about faust. He says its interesting and good.

Q: demand ugens can do single sample feedback as a hack, but its inefficient. Te solution is to write your own ugens in c because non block stuff is slow.

Another faust question. Functional programs parallelize better. But faust has no variable names but prefer not to. It makes me a bit dizzy, faust does.

Ron is asking a question about demand rate and jit code and other things that i don’t know how to use. Now ron is asking about synths that change rate on the fly. It’s hard.

Can you set the block size to 1 on sc now? Yes, but then you have chuck.

Confronting the difficukties of learning from the open source for contemporary social movements

live blogging the oekonox conference

social movements and the internet and how ngos use open source.

The internet is chaning political communication. There isa lot of research around these issues, for example: facebook and the obama campaugn. The impact includes previously excluded people. While the means have changed, goals have not.

Floss projects have tried to remain politically neutral. Even as social movemebts try to change the world. They represent a challenge to existing authority.

Social movement theory is explained very quickly by the speaker. One talks about social structures. Others talk about individuals. In the us, people talk about resources.

How new are new social movements? Where do they get their inspiration or resources? Are they product of post industrial economies? Are the participants all middle class? Are they intwrested in post material values? No, especially not in latin america where they engage things like access to clean water.

Resource mobilization theory
it’s good because you can talk about some other vocabulary words that are not meaningful to me.

There are different conflicts like ethnic or religious issues. But people work in more non-heirarchal structures. Maybe.

You’ve got you hacktivists. And then you’ve got your protest announcemebts or usibg email or whatever to progoate political messages.

What are the political unintended consequences of foss?

This theory does not talk of why, just how.

Mobilization structures include ideology. Activists may distrust foss organization may not have goals in common. There has only once been a foss physical protest. Tactics are more about production. Other movements are more about protest, generally.

Are all foss people white male and middle class? This has become more diverse recently. Private companies also participate in foss.

Recruitment is easier because onlibe causes don’t take much time, but the network is weaker.

Some argue that political ideology would reduce participation in open source. For example, the ron paul pitch on ardour certainly alientated me.

Who and how is the master frame defined. There are different ideologies arund the meaning of foss. In some culture, it’s about liberation. But in western europe, not as much.

Strategy and identity. This talk is over my head.

Greenpeace tried to migrate to foss, but had trouble. Indymedia has a principle of unity which includes dedication to foss. People new to technology may have problems with foss.

Dotcauses glue movements together. They are purely virtual. The symbols of actual protest are lost. But information can be widely distributed.

Are hack attacks ethical?

Why invest in social movements? Why do companies invest in foss? To look good! Why social movements use foss? Ngos generally only have one it person who may have a lot of trouble with foss. Do you give real support to your dotcauses? Which of your many ones do you help?

The world social forum will have a panel on foss, but foss may not want to be tied to the wsf. Some wsf folks want to use a foss organizational model.

Foss promotes liberation despite it’s apolitcal veneer.

Question: What about a conflict between openness in foss vs a need for privacy and protection in grups like indymedia? Their enemies will try to spy or disrupt.

Answer: Transparency is ideologically important to indymedia, so they compromise by using human moderation. You cannot impose ideology with technology.

Should they take money from the Ford Foundation?

Queston: If you subscribe to idelogy x, you must use foss. If you subscribe to ideology y, you must use foss. Does it apply to every ideology?

Answer: Human rights and social justice are not the goals of every ideology. If you don’t say what you stand for, somebody else will.

David Cameron says he likes open source. Does that mean it’s apolitical. Or is he a lying bastard who says he’s for lgbt rights but voted against lgbt rights legislation last week.

Question can old ideologies really apply to our shiny new product in which the rules of physics and banking no longer apply? Answer: if you don’t want to be labelled as a marxist, then name yourself as something.

Freedom can stand in conflict with the goals of equality. So how do we frame or name foss? This is still a contest. Is this actually a movement? All of this has happened before and will happen again.

Political agnosticism is dangerous. You must define yourself or else there will be a struggle to define you.

The word meritocracy is certainly a loaded term.

Incidentally, the presenter is using windows on her laptop.

Technlogy is changng our brains. Multitasking comes at the expense of memory.

The internet may be like the printing press. Ideolgies will expand rather than contract.

Key signing parties

live blogging oekonux

i came late, alas. Government ids are used. Language barriers are an issue. Names can become factors of exoticism. This can be meant to be friendly, but people are are asked about their name again and again. Foreigness is empahsized.

Ids are an issue. People may doubt the validity of foreign documents. This can also be framed as a joke. Expired documments may also be an issue.

Gender is an issue, but, the speaker claims, less of an issue than foreign. There is a roll call. Everyone turns to look at women.

Key signing parties provide no extra information. You must know ahead what’s going on. This is mainly an issue for experts.

You can rank keys by degrees of separation. This also creates a gap for noobs. Key signing thus becomes a source of othering.

The key signing party logs create data that can be used to reconstruct social networks. Also, ids come from the state.

Why are id cards worthy of trust?

Untrustworthy people have invalid paperwork, ergo only citizzens are trustworthy.

People who are foreign or exoticized are trust worthy, but their non-normativeness is emphasized.

Small talk can come from projects, but more likely about exoticism.

Processes of otherings impact the community. What is the difference between friendly jokes and the subtle exclusion methods used t perpetuate discrimination?

Which power relations are reproduced in floss?

Question: what should be used instead of id?

Answer: people who actually know each other could sign ids.

Question: is there really a risk of impersonation?

Answer: they say yes, but it’s never actually occured.

Some participants view key signing as a form of public demonstration.

People may gain rank in projects by having a lot of key signing connections. It’s like being golfing buddies.

Key signing parties do not sound like parties. There is no social interaction, especially at conferences.

How does a government identity card enhance trust?

Key signing becomes a social networking tool, which does not further security and may decrease it.

How do you talk to participants about these issues?

A comic book has been suggested. It is non-threatening and can show the other’s experience at being othered.

Personally, i would not even consider going to one of these events. The constant comments i would get around my id would be difficult, to say the least.

Women in foss

live blogging the oekonox conference.

gender gap in technology. Starts from childhood socialization. Leads to life long work division.

There is unequal access to tchnology and imbalance in participation in development.

The number of women in computer science falls every year. Researchers in belgium interviewed girls, who mostly thought that cs sounds boring. Men control the production and distribution of nachines, and thus hey contain a male logic, said the researchers.

Foss is both a social and technical phenomenon.

Researcers mostly look at core developers and less at co-developers or users. Gender is rarely investigated.

The context of foss includes inequsl participation in core development. Andd foss projects tend to be homogenous and masculibe. 1.1% of women are in foss, but do we mean cire, co-dev or active users?

Foss participation has a steeper learning curve. Also hacker culture is male normative. Jargon can be exclusive. Beginner questions are met with irritation. Time is volunteered. Finally, sexual harassment is a problem.

The same forces that exclude women from cs are intensified in foss.

Women are less likely to have help / friends working with them to learn or use foss.

There is a false concept that programmers are the entire story. Not all developers are programmers. There is product management, i18n, testing, documentation, etc.

Discussion of foss must include social activities. The over valuation of coding discourages many people.

What is the specific contribution of women in foss?

Research example in Quebec:

All respondents considered themselves part of a foss community. 15.5% of partcipanrs were women. Half were from the most remote regions of Quebec. Women tended to rank activities: training or promotion, users, community participation, then finally, development.

Half were trainers. A third went to conferences. Only 1 self ided as a coder, but when interviewed, several more spoke of writing code. One, for example set up networks and installs ubuntu in community centers. Is she a ‘user?’

Question from the audience – are the catagories any more suited to men? Answer seems to talk about men having more confidence and possbly overstating their participation vs women understating.

Important conclusion: reduce the emphasis of programming.

Non technical tasks are a gateway drug to more techincal participation and a way to do outreach.

Death Penalty

Amnesty International, UK is currently focusing on the death penalty. They’ve got a column in the London Times on it right now. Some points in it are valid, some are less compelling.
There’s a few different arguments people have about the morality of judicial killing. Some, as the author notes, are pragmatic: what if you’ve got the wrong person? As he notes, DNA evidence has a context in which it was collected and can be contaminated or inapplicable. There’s also the contexts around the trials themselves, like, are the lawyers sober and awake? And then there’s the way that class and race play into trials. People of color are way more likely to get death sentences. And people who have public defenders. And people who have incompetent lawyers. If the death sentence was fairly applied, it would fall with equal likely hood on the rich and the poor, the white and the non-white, etc. It doesn’t and this seems to imply a system where people who are sentences to death are more likely to be people who might not have even been found guilty if they had proper legal representation and a anti-racist jury.
I had an argument with a friend several months ago about the death penalty. As it happened, we had both just heard of the Birmingham pub bombings. This was the most deadly bomb attack from the IRA. My friend argued that certainly that case was one that would have deserved the death penalty. Indeed, the sentencing judge agreed and lamented that he couldn’t administer it. However, later it turned out that the police more or less randomly grabbed a group of Irishmen and tried them. Because the IRA, and by extension all of the Irish, were guilty by nature of all being the same alien other. The actual guilt or innocence of individuals is less important than stamping down on the other as a whole. And the way to stamp down is to give the most harsh penalty we can administer.
I don’t happen to think it’s moral to kill people (except in self-defense) and I’m not keen on it being done in my name, and that’s why I’m against the death penalty. If you think killing people is ok, then you’ve got to be ok with the amount of error which will creep into any system and especially something as fraught with error as the court system. What percentage of “oops, wrong guy” are you willing to tolerate? Because a perfect system is impossible, there will always be some percentage. How much is too much?
And this leads to the strongest pragmatic argument against the death penalty. Do you trust your government with the right to kill you? Maybe you’re not poor or a person of color or otherwise at exceptionally high risk for being accused in error, but it could happen. Would you trust the justice system with your life?

Faithless

My last post was about loosing faith in “fate,” an idea I left undefined. It wasn’t a bearded sky god, passing judgement. But more like an intuitive, uninformed impression of the “Higher Power” of AA. Some sort of thing larger than myself. An idea that things would be ok in the long run. That’s all crap.
Ok, obviously all of humanity is larger than myself. And the movement of chance and the actions of others are all out of my control, which is part of the idea I had. So the idea of serenity is still valid. But other ideas are impacted.
Let’s imagine a metaphorical compass. The red side of the needle points at moral actions. You’re walking through the woods of life and are trying to follow the compass direction, but taking into account local circumstances, including things like cliffs, trees in the way, streams, etc. And the terrain itself has a lot of magnetic rock, which makes the needle direction really unclear sometimes. But there is, out there, a set of right actions, which are handed down from someplace outside of ourselves. But that view of morality is crap.
Foes of prop 8 angrily insist that we can’t put people’s rights up for a vote. But, in effect, that’s all we ever do regarding people’s rights. People have rights because we’ve all agreed they do. Because of our human emotions and logic and ideas like the golden rule. Actions aren’t moral or immoral because they adhere to some imaginary Platonic form, but because the people involved all pretty much agree on the action. One person leaving a comment on my last post called this “freeing.” There’s not one way to be good.
But, still, more questions. A lot of morality and especially the application of justice is configured such that “crimes” are what poor people can do to rich people. And morally-neutral actions are what rich people can do to poor people. This is crap. Are poor people less human?
Also, what the hell does humanness matter? If we’re not created in god’s image, what makes us better than battery chickens in cages laying eggs all day, unable to move with their beaks torn off? Aside from us having all the power and them having none?
All morality seems deeply vested in power relations. Deists think something is good because God demands it and he’s got more power than us. Atheists think something is good because they want to preserve their position in life and understand this relies on mutual cooperation. The golden rule isn’t just a good idea because it helps use empathy to figure out right actions, it is also the test condition and justification for right actions. And we can’t imagine being chickens, and there’s no danger of being reincarnated as one because none of that actually exists, so who cares about them? And in these circles of “us” and “them” and powers to enforce, we decide right and wrong. Can we see ourselves in an out group? Then they’re in. Otherwise, they stay out.
Which is what it’s been all along. And knowing that might be freeing because we’re free to negotiate our relationships with others however the people in them want. And we take whatever life has handed us and try our best with it. Or not. And it won’t turn out fine in the long run. In the long run, we’re dead. And either other people stop caring or it all becomes somebody else’s problem. And they might not solve it either.
So let’s say you wanted to have faith because somebody told you it was a good idea. You want to put it somewhere. Where? You can’t put it in god, because he doesn’t exist. You can’t put it in a happy future because that doesn’t exist either. You can’t put in humanity because they could very easily decide that ‘personhood’ no longer applies to queers or some other group you think it should. You could put in your friends, but in the short term, they might not be up to it. In the long term, one by one, they’ll die or leave and then, you die. Despite that, you could have it in yourself, which would be a nice heartwarming thing to do, but what is that but the idea of fate and happier future? That’s crap. So fuck faith. Drown your faith like an unwanted kitten.
I don’t know if it’s freeing, but I can live with it. What choice do I have?
I do feel better, though.