Category: rant

Performing openness in academic publishing

I was unsure about writing this blog post, but today I was turned away from signing up for the openly-advertised University of Sheffield’s Open Research initiative’s inaugural annual Open Research lecture for not being a current member of the institution. So urged on by a deep sense of irony, here I am with a rant about trying to publish a book open access.

After much collaborative work over many years, I’m really happy that the Live Coding book came out a couple of weeks ago, on MIT Press. A fresh editorial team at MIT were really helpful and responsive in taking it over the line, with copy-editing helping iron over the different voices in the book into what I think is a great text that I hope people will enjoy.

Between four of our institutions – the Deutsches Museum, London South Bank University, Nottingham Trent University, and University of Sussex, we raised the $15k subvention necessary from European and UK public funds to make the book open access under a Creative Commons Attribution-Sharealike license. As I understand it, this $15k was required to cover the loss in sales revenue due to the ebook/pdfs being made freely available. Given the live coding topic, it’s great that this means that not only is the book free to read in ‘digital’ form, it can in theory be modified while it’s being read.

In practice though the road was a bit bumpy. Although all copies of the book are openly licensed into the creative commons, some are nonetheless paywalled. Indeed, the ebook is has wide digitally distribution to the kindle, apple, google, kobo etc ebook stores where you can buy access to this creative commons license for $25.99. Unfortunately, the digital rights management (DRM) imposed by the store makes it difficult to benefit from the freedom to share and modify the text that the open license grants you. So really, you are paying $25.99 to lose benefits. No wonder creative commons are against this kind of DRM.

Worse, the MIT Press website steers you towards these digitally-rights-managed, $25.99 paywalls and away from the otherwise identical free-to-download ebook that we paid the subvention for. If you click the big ‘ebook’ button, which tantilisingly has no price next to it (screen shot below), you are directed to the Penguin Random House commercial distribution of it:

To access the ebook for free, you have to instead click on the ‘resources’ tab, and find a link to the epub or mobi ebook download there. Of course, this isn’t a mere resource for the book, but the actual book, so that’s a bit like hiding the free download behind a door that says ‘beware of the leopard’. I did negotiate putting some text on the bottom of the page pointing to this badly named tab, but unfortunately the tab could not be changed and the ebook links couldn’t be added to the front page. It also took MIT over a week after publication to make this resource tab appear, the non-paywalled ebooks weren’t available at all via MIT until that point. [Edit: To clarify, this was due to technical issue with MIT’s service provider which I now understand was causing serious problems across MIT’s site. I didn’t mean to imply that there was anything nefarious in this delay.]

You can also click on the ‘open access’ tab. After a couple of clicks this takes you to a different website, where the book is freely downloadable, but as fifteen separate PDF files. Many people (myself included) would find reading a book as separate PDFs awkward to download/sync to an e-reader, and difficult to read – the layouts are designed for print. So for most people, they’d want to click that ‘resources’ tab.

Actually, although ‘open access’ is a familiar term for academics, according to my (unscientific) poll on mastodon, unless you have an academic background, you probably don’t know what it means. So ironically, ‘open access’ is academic jargon, which acts here to guide the user away from itself.

MIT were happy to discuss all these issues, and to some extent agreed that the situation isn’t ideal, but nothing could really be done. They were open about the fact that they relied upon these ebook paywalls for ‘open access’ books to make the them financially tenable, even with a $15k subvention. They said that ‘epub’ ebook files will in the future appear on the ‘open access’ site alongside the per-chapter pdfs, which is good news. They also suggested we made our own website where the ebook can be downloaded, which we’ve done at livecodingbook.toplap.org, but really, promoting and distributing a book is the job of its publisher.

I believe that MIT Press are a non-profit themselves, so this isn’t about profiteering, but about the pragmatics of publishing research products in a financially sustainable way. The end result though is that authors can raise funds to make their books open access, but the publishers are still motivated to make people pay for them anyway. Actually for this kind of book, authors get some royalties too, so have some motivation to increase commercial distribution of open access books as well. That seems particularly unethical – authors personally paid to subvert the open license that they’ve used public funds to pay for.. When they were salaried via public funds to write the book in the first place! (I hearby pledge to donate my cut to an open source project.)

So I guess open access can be a kind of performance done to placate the funding requirements that come with public funding, and not a genuine effort to make publicly funded work readable by everyone. If you are considering publishing open access, my advice is to think and negotiate hard before signing the contract, to be clear about what versions will be creative commons, which of those will be open access, and how they will be promoted together. The best thing to do is retain copyright, then I believe according to the creative commons licenses, you have control over DRM.

All that aside, it is a lovely book, and it is especially nice to be able to hold a physical copy in my hands, and read it afresh.

Live interview with Music Hackspace

I’m really looking forward to joining JB from Music Hackspace to go through the pre-history, history, present and potential future of Tidal, possibly in that order.. Here’s the youtube live stream, if you click on it you should see the date + time in your local timezone, and click to get a reminder:

More info here:

Livestream: TidalCycles – growing a language for algorithmic pattern

Research products

I’ve been enjoying the idea of “research products” as opposed to “research prototypes”. Prototypes are understood as a partially working thing as a step towards an answer to a design problem. Research products on the other hand are understood as they are, rather than what they might become. Here’s how Odom et al describe it in their 2016 CHI paper “From Research Prototype to Research Product”. Unfortunately this is a closed access ACM paper, but you can find a pdf online, for now at least. Here’s the four features of research products that they highlight:

  • Inquiry driven: a research product aims to drive a research inquiry through the making and experience of a design artifact. Research products are designed to ask particular research questions about potential alternative futures. In this way, they embody theoretical stances on a design issue or set of issues.
  • Finish: a research product is designed such that the nature of the engagement that people have with it is predicated on what it is as opposed to what it might become. It emphasizes the actuality of the design artifact. This quality of finish is bound to the artifact’s resolution and clarity in terms of its design and subsequent perception in use.
  • Fit: the aim of a research product is to be lived-with and experienced in an everyday fashion over time. Under these conditions, the nuanced dimensions of human experience can emerge. In our cases, we leveraged fit to investigate research questions related to human-technology relations, everyday practices, and temporality. Fit requires the artifact to balance the delicate threshold between being neither too familiar nor too strange.
  • Independent: a research product operates effectively when it is freely deployable in the field for an extended duration. This means that from technical, material, and design perspectives an artifact can be lived with for a long duration in everyday conditions without the intervention of a researcher.

The Live Loom

I’m finding this helpful thinking about my live loom. It’s not intended as a commercially viable product, but it’s also not intended as a step towards one. It’s intended to be a device for exploring computation, without automation and all its forced simplicity. It works very well, every time I use it I’m blown away by the generative complexities of handweaving, and it helps me see computer programming language design afresh, with a beginner’s mind. So it’s inquiry driven, and finished in that it’s ready to embody an area of inquiry and host exploration of that. In terms of fit – well its lasercut body and trailing arduino aligns it with 21st century maker culture, and solenoids align it with 20th century electromechanics, but its fundamental design is that of an ancient warp weighted loom, so it has some fit there although it has a lot to learn from the past in terms of ergonomics.

In terms of ‘independence’ it’s not quite there yet, but is designed with open hardware principles, using easy to source parts and permissive CC licensed designs. The next step is supporting others in replicating the hardware which will happen in the next few months. This is where it gets exciting for me – how will the live loom function as an ‘epistemic tool’ – will the research ideas carry with the loom, or will the replicators ‘misunderstand’ the loom and take it in a new direction? Of course the latter case would be failure in one respect, but I get the impression that designers see such failure as positive, where objects support divergent use..

In any case by thinking about the live loom as a research product, it helps me explain what it’s for. When I show it to people, they often treat it as a work-in-progress towards a fully automated loom, like one driven by the famous Jacquard mechanism. That’s the opposite of what I’m trying to do, as that mechanism is what separates humans from the mathematical basis of weaving as computational interference. As a research product, the live loom foregrounds computational augmentation rather than automation.

Research papers as research products

This leads me to think about research papers as research products too – many will have the experience of publishing a research paper, getting excited when someone has cited it, only to find that they’ve totally misunderstood what you were trying to say, even taking the opposite meaning. What if we treated papers as research products, that we deploy in the world, and then observe what they do? I just read Christopher Alexander’s foreword to Richard Gabriel’s book “Patterns of software”. Alexander is an architect (of buildings), and Gabriel is a computer scientist who has studied Alexander’s work for decades in order to try to develop a similar pattern-based approach in software. What’s interesting is that Alexander seems profoundly disappointed in the book that he’s writing a foreword for, although he’s chooses his words generously he basically asks Gabriel to write a different book, and to learn from his more recent work where he solves all the problems in his older work that Gabriel references. It is amazing that Gabriel would host such a text at the front of his book! Really Richard Gabriel is an amazing computer scientist and thinker, and I think Alexander is being a bit naive in assuming that such a comparatively young field of computer science could solve its core problems by going through his four-volume text on designing physical buildings – these are really very different domains indeed. What is more interesting is that Gabriel gives voice to the person he cites. This goes way beyond peer review to giving his text its own life in the process of being published. I’m looking forward to the rest of the book!

 

Radio show with Heavy Lifting

Lucy aka Heavy Lifting and I had some fun live coding on DINA radio, we start from around 50 mins in

 

How to withdraw from Facebook

Facebook is a problem.. They happily show political adverts, heavily targeted and very under-regulated, as well as being slow to act against white nationalism and so on.The worst thing for me it was facebook turns us into. It privileges easy controversy, so your feed will be full of people getting angry at other groups but often not dealing with difficult issues in a reasonable and thoughtful way. If by some chance an interesting discussion does start up on facebook, it’s not properly shared or archived. There’s a lot to like, and there’s a lot of hidden facebook mechanics which we don’t know enough about to dislike. Anyway, I’ve recently moved towards participating on smaller, semi-private social groups off facebook and it’s much more enjoyable and productive.

Still, you might not be ready to leave it, wanting to keep in touch with friends and family, promote events and so on.. Using facebook’s own tools to step away can cause a lot of upset, as it will appear to your friends that you’ve blocked them.

A good alternative is to unfollow everyone and every page. If you’re like me that would normally involve 1000’s of clicks to remove all the weird and local pages and random people you’ve somehow friended over a decade or so. Here’s a way to do that automatically, although it takes a while (one unfollow per 2 seconds, to avoid facebook detecting and stopping your plan..), it is hands-off.

Here’s how, in e.g. firefox or chrome:

* Click the Arrow in upper right
* Select “News feed preferences”
* Click “Unfollow people and groups to hide their posts”

Now the tricky bit – to open the “javascript console”. This is what facebook doesn’t want you to do, as getting access to the javascript running in your facebook window is exactly what scammers want to do. (I’m not a scammer, but don’t take my word for it!)

This might be slightly different on your computer/browser version, but.. In firefox, It’s under the ‘burger’ menu in the top right (click the three horizontal lines), then “Web Developer” (that’s you!), and then “Web console” (not browser console). Under chrome, it’s a similar menu but three dots, then “more tools”, “developer tools”, then in the new frame that opens up select ‘console’ in the menu along the top.

At this point you should see a healthy warning telling you not to paste in code. If you decide to trust me and go ahead anyway, click the commandline area (it should have a ‘>’ or ‘>>’ in front) and paste in the following:

var unfollowButtons =document.querySelectorAll('div[aria-pressed="false"]'); unfollowed = 0;for(var i=0;i<unfollowButtons.length;i++) {setTimeout(function(element){ element.click(); unfollowed ++;console.log('Total unfollowed ' + unfollowed + ' out of ' +unfollowButtons.length) }, i*2000, unfollowButtons[i]) }

The browser might get you to do something like type “allow pasting” first, to make doubly sure that you aren’t being scammed. If you do type something like that, you’ll need to delete those words again otherwise it’ll be part of the code and nothing will work..

You should see the displayed people and pages get unfollowed before you, one by one. It won’t do all of them though, just a couple of dozen that have loaded in that page.. To unfollow everyone and everything, you have to scroll down in the ‘unfollow people’ box until they’re all loaded up. Then run the code again.

Then you’ll have a nice calm facebook experience and hopefully will enjoy some improved mental health.

Making Tidal 1.0 happen

Too long; didn’t read? Basically, please buy me a coffee or so by pressing this button:

kofiwidget2.init(‘Support Me on Ko-fi’, ‘#46b798’, ‘G2G6LHVU’);kofiwidget2.draw();

I’ve been doing a lot of work on TidalCycles lately. Tidal is very much a labour of love, I’ve put a lot into it over the past decade, motivated by the fun of making music with it and of enjoying what other people are doing with it. That’s not sustainable though, so I’ve been looking for ways of asking some money in return.

I’ve looked at patreon.com, but it doesn’t sit well with me. It seems high maintenance, and doesn’t fit with my motivation to work on Tidal for the fun of it, and not turn it into ‘content’ to be delivered..

I’ve also looked at liberapay, and used it to raise money for server costs. This has actually been really successful, I raised nearly €500 which covered server costs for we.lurk.org, post.lurk.org, talk.lurk.org, algorave.com, toplap.org etc for a while (thanks!). This also made me feel much better at helping keep these things going, that people are up for chipping in some hard earned cash. That money has probably run out by now, there’s a few of us running these services and we’ll look into being a bit more organised about accepting donations.

Liberapay doesn’t feel right for tidal development either, though. It’s based on an anonymous donation model, which is great for some things, but there’s no way of directly thanking people who donate (if you’re one of them, really, thanks!).. Or doing any community building around it.

I’ve also tried crowdfunding. This has been a great experience, I met my funding ‘goal’.. But in truth, crowdfunding is more a way to get people involved in a project than fundraising.. I’ll likely end up in the red overall. Plus I’ve found it really hard to get as far as finishing the project.. People have been outstandingly patient, but it’s been a very long haul (two years late!!). I will get there, though.

Anyway, now I’m looking at ko-fi. This seems to fit much better. No stress for ‘creators’ or ‘supporters’ to detract from actually making stuff. One-off or regular payments, that go straight to me (no extra platform fees). Plus a nice coffee metaphor.. It’s going to take a lot of coffees to get Tidal 1.0 done so I’d really appreciate your support!

kofiwidget2.init(‘Support Me on Ko-fi’, ‘#46b798’, ‘G2G6LHVU’);kofiwidget2.draw();

One last thing – one reliable way to fund tidal dev that I’ve found is by running workshops. If you’d like to host a one or two-day TidalCycles workshop next year, please get in touch! There’ll a lot of new stuff to learn + share.. Same goes for talks and performances, of course.

Also get in touch if you have ideas for other ways to make tidal happen..

 

Too many projects

I have a lot of projects. Let me count them

  1. PENELOPE – exploring weaving as a technical mode of existence
  2. Spicule – trying to get an ultra-complicated and overdue crowdfunded album project finished
  3. TidalCycles – free/open source project for live coding of pattern – lots of coding + documentation to do
  4. Dorkbotsheffield – electronic art meetings in Sheffield
  5. Eulerroom – streamed algorithmic music events
  6. Tidalbot – Currently a twitter bot but with expansive ideas behind it feeding into patternlib
  7. Feedforward – New text editor for tidal (also a dependency of spicule)
  8. Bands, loads of bands – slub, ccai, and many more on the back burner and without names yet, as well as performing solo as Yaxu. Doing a lot of performances
  9. AlgoMech – Growing annual(ish) festival around algorithmic and mechanical movement, third edition May 2019
  10. Access Space – on the board of trustees, research director (on a volunteer basis)
  11. Code Access – work-in-progress project working with people with sensory impairment and live coding, currently working with Childrens’ Media Conference towards an exhibition in July
  12. Lurk.org – project with Aymeric Mansoux building alternative internet services like talk.lurk.org and we.lurk.org
  13. Algorave and TOPLAP, quite amorphous collectives but I still do a fair amount of coordination despite actively trying to share the keys.. Plus helping with the steering committee of the ICLC and ICLI conferences I started.
  14. A book on live coding with some great people – I owe them a lot of writing!
  15. An international exchange between live coders in Tokyo and Yorkshire this summer/autumn
  16. A remix + tidalcycles samplepack project with Blood Sport

+ probably a fair few more I can’t think of right now… Plus a lot half-started and half-finished projects I’d really like to work on. Visual programming, being part of FoAM, etc. Plus being a father. I could just about imagine doing any single one of the these as a full time occupation, really, but only the first one actually pays me money (it’s a part-time position, 50%). I can’t really imagine dropping any of them. What to do? It doesn’t help that I’m terrible with time management.

I’m not sure what the point of this post is, apart from to stare at this problem in the face, and to explain why I’m sometimes a bit slow with finishing projects or replying to email. Any advice warmly received.

Datalove

In the above, in a beautiful lecture that I am still digesting, Kodwo Eshun quotes from an unpublished manuscript by Mark Fisher, talking about the forces suppressing “the collective capacity to produce, to care, to enjoy”. From my perspective, this makes me think about the ideals of free software, and the practicalities of trying to carry it out. I made TidalCycles in the world of free software (operating systems, libraries, documentation passed down freely from others), on a ‘holiday from capitalism’ supported by student and academic grants and arts residencies, giving it away for free. I was able to absorb a lot of prior work during this time, to help me create something new. Quite a few others have now joined TidalCycles as a free project, and many more in using it. How is capital blocking this collective capacity to produce, to care to enjoy?

I suppose the more radical positioning of live coding in general, more common in the early days, is now being lost. This is the idea that live coding is about experience, not end-product, that to live code is to improvise in and for the moment, that at the end of a performance you have nothing left. The desire to produce music that can be repeated, that can be sold as a product, is I think starting to drown out the idea of ‘blank slate’ improvisation. As people (myself included) crave music with more composed detail, more temporal structure, we get outside the current limits of the live coder in the moment, and take the easy route of introducing pre-written structures, suitable for packaging up as ‘tracks’. We go through the motions of selling them on bandcamp, probably making back a hundredth (or even thousandth) of a minimum wage, but trying to legitimise what we’re doing within the value structure of a past record industry.

By giving away free software with a permissive license, partly as an invitation for others to jump in and contribute features, ideas, and documentation, in practice you also invite people to grab the software and treat it as a ‘tool’ within a ‘workflow’ based on commercial software. This seems innocuous, and to question this behaviour runs against the assumed aim for software to reach as many end-users as quickly as possible. But this aim rides over many other potential aims (e.g. to grow sustainably, to create an alternative), and pursuing it forces a free software collective into interacting with commercial institutions, thereby taking on their value structures. Where Tidal users are also users of commercial software (including MacOS and Microsoft Windows), they’re already trained to think in terms of centralised support and feature requests, and not the collective responsibility to produce, care and enjoy. There is always pressure for the community to divide into ‘developers’ and ‘users’, one serving the other, in a way which simply isn’t sustainable without the latter paying the former. Once we start looking for the users to indeed pay the developers, we’re running away from the possibilities of collective imagination.

I’m running out of time for this blog post, but how to respond to these thoughts? I guess resisting the easy answers, and instead keep looking for alternative paths that only free software culture can take. Re-imagining the programming language and text editor around the principle of data love – where sharing what you have only increases in value. More thoughts to follow.

Art+Music+Technology podcast

I had a great chat with Darwin Grosse at the end of last year, forgot to post it up until now!

Liberapay donations

Marije pointed me at liberapay, a website for long-term donations to projects/individuals you appreciate. I’m giving it a go..

Outwardly, liberapay looks similar to patreon, but the details are very different. I tried setting up a patreon fund before but it didn’t fit. I still have an on-going crowdfund (for the very overdue spicule album) so didn’t want to take on another one of those, and patreon is very similar to that. Patreon encourages you to communicate with your funders, reward them with secret ‘content’, and market yourself to get as many funders as possible. This doesn’t really work for me because realistically, I’m never going to get enough funding to justify time on marketing myself or creating ‘exclusives’, at least if I cost my time at a-n recommended rates.. Even if I did, I don’t want to spend my time on marketing, I want to spend it on making music and free software. Exclusive content is also against the principles of free software, I don’t want to only speak to those who can afford it.

Liberapay is different though, it’s about anonymous donations, so you don’t know who your contributors are, and contributions can’t be linked to rewards in any way. Liberapay themselves are a non-profit, don’t take a cut on contributions, and aren’t interested in training you up as a self-promoter..

I thought I’d start with seeing if people wanted to contribute to ongoing server (and dns registration) costs for toplap, algorave etc. Within a few hours, that was already covered! This feels surprisingly good. It’s a comparatively small amount every week but adds up to a lot over time, and it’s great to have the feeling that people value it, and that those with spare money are happy to contribute.  It’s a bit weird not knowing anything about who is giving me money (unless they tell me), but I think this is really nice, as I don’t really want to feel like I need to treat people differently based on whether they are giving my projects, or how much.. and the lack of perks/rewards means people only give if they don’t have fixed expectations about what I’m going to produce in response.

So now on to the second step — contributing towards Tidal development.. It’s still difficult to apply this to my work, as most of it is around TidalCycles, and I’m nervous about bogging down that project with issues around who should get paid for doing what (although liberapay does allow distribution of donations).. I also don’t want to take the pleasure out of working on Tidal with outside pressure. But for now have nominated an aspect of Tidal I’m really keen to work on (communal docs) and will see how it goes. It’s not going to fund a significant percentage of my time, but it is hopefully going to help me work a bit more than usual, and generally push things forward.. Feel free to support this, and unless you’re shy, let me know if you do!