Category Archives: The Technology of Good Intentions

The Technology of Good Intentions situates itself at the intersection between technical virtuosity and failure. It is a practical investigation of the points in the creative process where rationality breaks down and new thought emerges. The Technology of Good Intentions is a series of demonstrations using physical materials, computer hardware and software, where the original utility of the objects, as envisioned, is annulled by a “fatal flaw” in concept, understanding, or execution.

Goodbye Twitter

https://www.lisalaporte.ceo/

About a year and a half ago, I stopped posting updates on Twitter from my account @nscadesign. I had become increasingly uncomfortable with that service’s ethical behaviour—in particular I was troubled with a sense that Twitter enforces its Terms of Service for some but not others. To stop using my personal Twitter account was not difficult; I’d not posted very much anyway. Media Circus, however, uses tweets as headline content that I manage through the account @generalxcentic and around that time l began to consider dropping Twitter and moving to something else. Other more pressing matters would place this issue on the back burner, until Media Circus stopped working at the end of July.

At that point I did some poking around. The last time Media Circus stopped performing was around the same time of year in 2016: I identified the problem with a change in my home internet service’s IP address. I changed Media Circus’s code so that it used the Dyn service. Problem solved.

This time the problem seemed to be related to the php code library called “Magpie” that I used to convert the tweets to RSS. It was broken and Magpie didn’t seem to be maintained.

So I decided to cut through the Magpie step, and drop Twitter as well. Instead, I’ve written a Python script that resides on the same Raspberry Pi server as before, but the content resides entirely on that machine: a master list of over 1200 headlines (re-used from before) of which ten are selected every morning. Media Circus retrieves this daily headline list when it does its daily reboot.

 

RAzer: Another headline cutup program

RAzer results
Results using join word ‘in’ from headlines on Aug. 30, 2014

RAzer is an extra Python gadget behind the rear end of Media Circus.

The source text for Media Circus are ‘cutups’ of headlines, retrieved from RSS feeds of news agencies. Up until this month, I have been using an online php program called ”cutup“ that accesses feeds from the Toronto Globe and Mail and the CBC, cuts them up and re-presents them on a web page. The strategy for this program is simple: count the words in headline 1 and split it through the middle, do the same with headline 2, then combine the front of headline 1 with the back of headline 2, and vice versa.

RAzer retrieves headlines from 12 world sources and re-combines them by identifying common “join words”, such as ’in‘, ‘on’, ‘of’, ‘the’, ‘at’, ‘to’, ‘into’, ‘as’, ‘from’ and ‘over’. Like cutup, the interface is through the web, but in this case the user has a choice of join word, the number of headlines to generate, and whether or not to retrieve a fresh set of headlines. The form data is sent through a post action to a Python script on my little RaspberryPi.

I like number 8: EGYPTIAN COURT SENTENCES BROTHERHOOD LEADER TO LIFE IN DIGITAL CURRENCY.

And by the way, here’s another reason to own an RPi: although I’m very happy with my web hosting provider Hostgator, shared hosting accounts have a defined set of Python libraries that are installed, and you can’t add new ones. In the case of RAzer, I needed the feedparser library, which was not included, so I had to use my little guy.

2014 Summer Wrap-up

‘Fake’ Mondrian in his most recognizable style.
‘Fake’ Mondrian in his most recognizable style.

It’s the end of the summer hiatus from teaching and time to summarize:

  • At the beginning of the summer, I got back to drawing. I’m only really satisfied with one drawing, shown in the previous post. Others ‘kind-of’ done and waiting for me to look at them and “yeah, that’s a good drawing”—but this hasn’t happened yet. Maybe I need beer goggles. One other image I did was a Mondrian—not a copy, but trying to use the same strategies of placement of line and colour that he used. I’m happy with this one.
  • Clock with Tics web app: When I published this web app a couple of years ago, I used PhoneGap and XCode, and it all seemed rather complicated to me. I came back to it because I wanted to get up-to-date with the latest tools for making web apps. I found out about the HTML5 “cache manifest” function, which allows the app to function without having to access the server. So now it works more like a ‘real’ app. View the source code.
  • Media Circus web app: I took the time this summer to learn a little more Javascript using CodeAcademy and then settling on CodeAvengers, with the intention of developing a Media Circus web app. It was developed using JQuery Mobile, a development process that was much simpler than PhoneGap/XCode. View the source code.
  • Vegomatic
    Sample run of Vegomatic

    Vegomatic: On an off during the summer, I’ve played with ways to generate headline cutups for Media Circus tweets. Vegomatic uses the Python Natural Language Toolkit (NLTK) library. NLTK is used by scholars to analyze texts, so if, for example, you wanted to know how many times “freedom” is said in every U.S. State of the Union address, NLTK is your tool of choice. I had problems managing unicode characters (such as é and ü), so as a last resort I inserted some code to simply ‘give up’ if it encountered unicode. This is why there’s a unicode error in the example. I consider these experiments in themselves a failure, but they led the way to better things, such as RAzer.

  • RAzer: This is a Python program that does more sophisticated headline cutups for use in Media Circus tweets.
  • allRAzer: As a final, faintly ridiculous conclusion to my efforts to create better tools for making cutups, allRAzer builds a list of cutups using all of the join words that are available in RAzer. Like Vegomatic, this is a Python program that has to be run from a computer that has Python installed.
  • Sectional: This is a theme for RespondCMS. Respond is a responsive content management system that uses Bootstrap 3. I wanted to build a theme to prove that it was possible to create a one-page site in Respond. Mission accomplished.