Coursework, notes, and progress while attending NYU's Interactive Telecommunications Program (ITP)

encyclopedia of life poems

Since there’s a Magic the Gathering API, I was hoping to continue working with card text this week, but in a more robust way. But, for some reason I kept getting a handshake error. I googled it, and people suggested using the request library, which I gather is somewhat more secure. I downloaded the libraries, and adjusted my code, but I still couldn’t get it to work:

$ pip install requests
$ pip install requests[security]

Instead, I worked with the encyclopedia of life API. Since I’ve been doing work with plants and algae for Temporary Expert, I thought the material might be interesting to work with. Also, I thought my phosphorus poem worked quite nicely and I was curious to experiment more with scientific texts in a poetic form.

The algae page didn’t lend itself well to text manipulation–none of the descriptions included were particularly interesting. After developing a general structure using the bees results, I then made a more general program where you can pass through any (land) animal as a parameter. I tried passing in other living things but it seems like not all results include the same fields, and so the program returns errors. This sort of makes sense to me given my experience looking at the algae results.

Reframing technical scientific naming and language is quite compelling to me. Something I think I’ve neglecting in the past few assignments is the form on the page (screen). The Hartley and Morris readings compelled me to pay more attention to this. While I didn’t address meter head on, it was interesting to see the difference including different length words made. I settled on a sort of round (visually) form which meant there were often short, stressed words at the beginning and end. Maybe this is bad.

I don’t understand feet.

My code and some experiments are on github. My first program and output are the ‘bees’ files. The final, more generalized program is eolapi.py and the experiments from this are saved as animals.txt.

Macrophotography & algae updates

Daily practice: macrophotography

The daily task I chose was macrophotography which utilizes the amplification strategy, very literally. I did my best photographing my growing plants with a magnifying lens that was apparently left on the junk shelf. I don’t even know if I’m calling this the right thing because I know so little about photography… lol.

As time progressed I thought about the exponential growth which is central to humans’ relationships with earth’s resources, spelled out in Limits to Growth and elsewhere, and the relatively fast (but still so slow) growth of plants that (on the whole) sustain us.

This was also so, so fun. I researched a bit more about photography with microscopes. On day 6, so a bit late, I met with Eric Rosenthal to learn more about this. He was so helpful and the tools we introduced me to were so illuminating! He pointed me to software for focus layering, which seems very important if I’m to continue with photographing small and/or microscopic things. The depth of field on these lenses is just so limited. He also showed me I could 3D print a device to hook my iPhone to a microscope (as opposed to using more complicated equipment) to take more-microscopic photos this way.

I made these composites of each day.

Day 1

Day 2

Day 3

Day 4

Day 5

Day 6

Day 7

This week I also got to see Trevor Paglen and Kate Crawford speak on AI and the increased concentration of capital & computing power in just a few entities (perhaps another exponential trend?). A photographer, Paglen noted the power imaging has in giving things and people power. It made me wonder how creating images of things we might not ordinarily see, or consider small or irrelevant, changes value and power dynamics.

A quote from my Reading and Writing Electronic Text reading also stood out, as a sort of meta-commentary (re: jazz and poetry): “The improviser can’t edit but must fall back on the most basic standard of all: is this interesting to me, right now?”

Other imaging experiments

From Eric’s advice, I created the following images from one small micro green (that I picked and then ate!!!! I felt a little bad) using the focus layering technique. What’s cool about Helicon is you can also create 3D renderings, which I tried. None were very effective since the leaf, stem, and root are all pretty flat. The root worked the best.

I also tried taking photos of plants through a small microscope Eric lent me that magnifies 60-120x and just my iPhone.

These reminded me of moons or like a tiny earth.

Algae

Finally a good explanation of different types of algae, and the associated confusion:

The internal cell structure of algae varies greatly. Microalgae lack complex multicellular structures that are found in seaweeds. The cyanobacteria or blue-green algae have a prokaryotic cell structure and closely resemble bacteria. Eukaryotic algal cells have a nucleus and usually one or more chloroplasts; they also have mitochondria, Golgi bodies, endoplasmic reticulum, and other typical eukaryotic organelles. Despite the difficulty in presenting a clear definition for algae, thousands of books, scores of scientific journals, and numerous internet websites are dedicated solely to compiling our knowledge of algae”

By a string of connections I was put in touch with Lauren, who is doing research on algae biofuels. She directed me to the Algae Handbook (e-book) (quoted above), which thankfully is available online from the NYU library, and UTEX , UT Austin’s Algae culture collection. I asked about the potential of algae to mitigate phosphorus and nitrogen runoff, and she thought one easy use of algae was to clean up waste water from hydroponics facilities. When it comes to algae blooms as a result of of other runoff, she pointed to the difficulty, expense, and risks of introducing new organisms into an open environment. She shared a bit about her own and other’s ongoing research. She also gave very useful direction for beginning to grow algae on the ITP floor, and so much more information to think about and sift through.

This last piece was incredibly timely, since I just started working with Sara, a student in Stefani’s BioDesigning the Future of Food class who is also interested in growing algae. Using some of the research materials Lauren sent along, we will reconvene to order algae strains before spring break, and begin our process after we get back.

I think it might be very interesting to do similar macrophotography while growing algae!! And perhaps underwater?

Towers of Power: prototype components

Scanning frequencies

The perl scanning script required Net::Telnet, which we realized when we finally specified the command. We defined a csv file with the frequencies we want to scan–then by specifying the path to the file and running the code below, the gqrx scan script finds the frequency with the most activity and records when the signal strength surpasses a certain level. We allowed more noise in gqrx than we defined in gqrx-scan (so a recording is harder to trigger). Still, we noticed that we occasionally just get recordings of static. Also, moving the SDR seems to affect the levels.

$ perl gqrx-scan –type file –pause 2 –delaylevel=-34 –delaytime 5 –record –monitor

Twilio

Used the virtualenv instructions from surveillance & society class last semester. I think Twilio’s documentation might be out of date. I started following their instructions at the requirements.txt section.

Started sample code for simply sending an SMS and experimented with triggers that Twilio already had examples for (sends administrators a text when you hit an error page). To demonstrate how our app would function, we want to try to send a text when a file is saved (to the pi, or to the server, for example).

Prototype progress

We think a fully working prototype will incorporate all of these elements:

SDR with Raspberry pi -> scan with gqrx scan -> digital speech decoder -> output file -> incron job  -> if new file, then trigger twilio

We are working to get as many of these components working on Raspberry Pi as possible, to be able to demonstrate how it would work.

Magic mushroom dictionaries

I decided to continue working with the same texts from last week because I was dissatisfied with their ultimate form. I thought it might be interesting to pick out words based on their length, which would allow me a lot of control over the line length and rhythm. My very ambitious goal was to create a dictionary of magic cards by scraping the Magic the Gathering card database site using cards “multiverseid” as the input argument. Working with the beautifulsoup library became enough of a headache that I decided to put this off for later–especially since we’ll be working more with getting text off the web this week and class. I also then discovered MTG has an API.

At first I created my dictionaries so that the word was the key and the length of the word was the value, but after struggling to pull out keys based off of values, I realized it would be much easier if my dictionary was flipped, so that word length was the key. Figuring this out made the process much easier. I sort of lost track of the structure of my text when I was putting it back together, but I enjoyed the unintentional output.

Happy mistakes

order. the said classes the placed spell. one when juicier top slowly flying pay made cooking Tap little cards. him with pressed may gravy, Return the from pasture all dipped cards. way half covered You bacon, played You more drying. the spiced itself for will minutes all crumbs player him when pepper, you scales cards. the with covered any sound,

r e v e a l t h e t h e n f l a n n e l t h e a d d i n g
d a m a g e A d d b e s t t h r o u g h A d d t a s t e .
t a r g e t p u t w h e n l e a v i n g d o , p l a c e .
t a r g e t t o p B a k e f i f t e e n t h e b e f o r e
t a r g e t t w o p i n t s p i c i n g Y o u R e m o v e
G r e e n , t h e W h e n f i l l i n g a l l f r i e d .
c a r d s . a n y w i t h g l a s s e s a n d B e f o r e
d a m a g e h i s d i s h p i e c e s , a l l l a y e r s
l o o k e d A d d s o m e s t e w p a n w a y p e p p e r
n u m b e r y o u s o u p p r o c e s s m a y s l o w l y

Return Add make stalks, for rolled
itself two Chop vinegar its minced
enters the fire flannel Add pepper
grave. any with pudding may washed
itself the salt portion are rolled
Search set some butter, you water.
Simoon any half garlic; the butter
itself his with vinegar may slowly
player any into people, you onions
itself and into stewpan the using,

Final Poems

While testing my results and sorting out the issues I had with my words and arrays, I became concerned about the uniformity of the output poems. In order to vary the line structure and make them more interesting, I ended up employing different rules to different lines. Something I’ve lost by completely disregarding the structure of sentences is the sense of complete thoughts. I wonder if there’s a way to grammatical parts of speech to have more control over this?

My code is on github and below are a few variations:

filled you when Vinegar her number
add Search Vise spoils card, some
things her pan, people, you Badham
after mind parchment teaspoonful other Add
Reveal top thin stewpan the rains,
add Cursed moat little dies, Trim
player Add with parsley the stalks
dip player from Season life. half
target any over flannel its butter
serve Then parchment circulation cost. the

Draw of add grated to dried
the player. you onion. Mana salt,
five of the taste, 4. serve
layer, bomb, mushrooms teaspoonful gold. hand
mana in and unless am ounce
and evincar may Remove each heavy
Name to the 1893. of them,
hot Destroy way butter card salad
seen If The Agaric of dozen
rains, cards mushrooms immediately card. ring

your to the pepper of white
the upkeep, two mushrooms best olive
Tap: is and Lenten to dozen
muscat deals mushrooms teaspoonful exile Tap:
life of you layers to dish,
and Destroy the mushrooms Grim added
cast as the broken 3, Baked
put doesn’t do, perfectly your round
come of and batter of blade
slowly other thickness preparation cards seen

Algae

Understanding algae

My inquiries landed me on algae-based solution, but I and Marina (who rightly pointed this out after my presentation)  wondered “what are the differences between algae and micro algae, run-off algae species and the ones we eat in smoothies?” There are thousands of kinds of algae, and cyanobacteria, green-blue, and red algae are all referred to as algae.

Kelp

I learned many seaweeds are also algae, including kelp, which is “formed by brown macroalgae of the order Laminariales” [wikipedia] Stefani also pointed me to this New Yorker article on the many, varied benefits of kelp.

And kelp forests are beautiful! I had no idea this was at the center of the kelp broth I love in vegetarian ramens. I’m working on sorting out these varied subcategories of algae and connecting to people that might help.

Growing things @ITP

The BioDesigning the Future of Food class at ITP has created space for growing microgreens on the floor. I thought since my line of inquiry led me to examining our food system, it made sense to take advantage of the opportunity to learn more about the methods they’re using to grow food on the floor. I talked to Stefani and got a bin! There were two options for lights: blue-red LEDs and UV light. It was interesting to see the spectrum of light being used compared with other science I’ve seen about optimum lighting for plants.

Documentation from the LED Panel box

My final set up includes 4 kinds of microgreens split between two sides of the bin. My hope is to develop an experiment where one side receives some treatment and the other side is the control.

I also want to grow algae which Stefani seems fine with, although I need to do more research. I’ve found a few sites with basic instructions and others that provide more robust support. I wonder what kind of opportunities there may be for combining the two?

Limits to growth: other directions and connections

While exciting, it seems like growing food and algae on the floor is only as important as the connection back to our limits to growth, and food’s central role in many of the systems that push on earth’s planetary boundaries.

  • The role of capitalism/invisible hand/neoliberal world order
  • Technological advancement & theoretically limitless growth
  • Marina recommended the book Inventing the future. Reading the first chapter, I thought it was interesting to think of the Rolling Jubilee as “crisis response,” which in a way also goes back to discussions we had at the beginning of class regarding adaptation to mitigation.
  • She also pushed me to think of metaphors related to algae (oxygen use, giving and suffocating life). Maybe I can use my experiments on the floor to look at death?
  • Another art strategy she suggested was parafiction (which I love). Many stories could be told about the future. I wonder about the possibility of AR/VR to overlay worlds and realities.
  • I loved Mary Mattingly’s manifesto. The non-violent economic and ecological orders really resonate. How to we compel ourselves and others to use our capital in here in high-income countries to consume responsibly, or within our means. The momentum feels overwhelming.

Final updates

For the final Marco, Dorothy and I going to work on demodulating frequencies that use APCO Project 25. We’d like to see if we can decipher (1) whether communication is occurring and potentially (2) the information being transmitted. We’re not sure if communications might be encrypted but this itself might be useful information. If we have time we’d also like to build a tool that could send relevant information gleaned to affected parties.

The RTL-SDR tutorial I found before last class ended up being a pretty good one for pointing us in the right direction. We’re not using SDRSharp but we found this pretty detailed tutorial for how to use digital speech decoder (DSD) using GQRX. They also have a github. We were able to get as far as piping audio over UDP. After installing DSD, alsa-oss, and socat, you can display and set the port audio devices for dsd (we used 5 because this was our default; in the tutorial he used 11):

$ ./dsd -a

$ ./dsd -i pa:5 -o pa:5

Then we could get hex output, using this command:

$ socat stdout udp-listen:7355 | xxd

I think piping in audio through dsd is just a matter of changing the command to which the audio is getting piped, but when I tried this with a signal gqrx froze (example code below is saving output to a .wav file). I wonder if it will be a problem doing this in real time? Still, right now I think we are just trying to get enough P25 signal to play with. Another question I have is whether the mode we’re using to record/pipe audio will matter once we pass it through DSD?

$ socat stdout udp-listen:7355 | ./dsd -i – -w dsd_output.wav

We are using a linux laptop while we figure these pieces out. In an ideal deployment we also don’t want a human to have to listen constantly, so Dhruv pointed us to gqrx-scan to automate this piece, which will allow us to record and hopefully automate a response as much as possible when there is a signal. Assuming this all goes smoothly, we will create a prototype using Raspberry Pi that we could sell/deploy to various areas.

Frequencies for testing P25 decoding

NYC, National

Tap: Mushrooms

This week for our assignment on cut-ups, I decided to mash up the text of about 30 Magic the Gathering Artifact, Enchantment, and Instant cards and the recipes from Student’s Hand-book of Mushrooms of America, Edible and Poisonous by Thomas Taylor. I picked arguably the best cards from these categories from the Magic Card database, because of their language around spell-casting. I thought they would work well with recipes since both are essentially instructions.

I think I had spells on the mind because of the hexes witches have been placing on Trump, MTG because a friend recently gave away his entire collection, and I just loved all the sounds of all the mushroom names from this book while searching through Gutenberg and wanted to find a way to incorporate something about them. Even though I selected specific text to begin with by cutting and pasting, I struggled to cut down the text to what I wanted. I don’t think I’m quite there (mushroom language or structure-wise) but I was pleased by how couldron-y some of the products were.

Before cutting down lines and reducing length more intelligently I was getting a lot of text as output. There was something very nice about the repetition in a later version, but I refined this a bit more before settling on the final code. Right now I am picking out every other line I create, and there’s probably a better way to do this. My source text and final code are here. Each time it runs you get something a bit different. I thought this one was okay.

Limits to Growth Proposal: Algae Brewer

Updates

I met with NYU professor David Kanter last week and had a very helpful discussion. His work is focused on the nitrogen cycle, but nitrogen and phosphorus have a close relationship given their role as fertilizers. One important difference is nitrogen is renewable and phosphorus is not. He pointed me to the Planetary Boundaries update supplementary materials to learn more about how the boundaries are defined–but apparently for nitrogen they were set somewhat arbitrarily initially and have since been tested and adjusted.

He suggested a number of areas where change or improvement could reduce nutrient pollution and carbon emissions. I included these in my final presentation, but they are broadly split between consumer behavior changes and technological advances in farming. We discussed the benefits of individual changes versus focuses on larger systemic change, but really it comes down to: individual change (vegetarianism, for example) is important but not sufficient.

It was good for me to return back to the original idea of limits to growth (30-year update) to link the research I’d done about phosphorus back to the big picture–how we’re unsustainably exhausting many planetary boundaries.

I heard back from another expert and sent along some questions, but haven’t yet heard back. In the meantime, I’ve come across many other algae projects, articles, and companies [and their sustainability assessments]. I am meeting with Stefani Bardin this week to discuss ways I can experiment with algae to test out my project idea.

My article citations have also been updated.

Some useful & some abandoned sketches

Waste systems 

While my project proposal went in a different direction, I’ve generally been very curious about how we might better capture and recycle waste. I came across a project where someone went to great lengths to install a waste recycling system in their home: by adding many small red worms to a biosolids tank they were able to produce soil. I wonder if something like this could be more easily installed in homes with septic tanks? There were also several projects out of Maker Faire Africa a few years ago that focused on human waste repurposing.

One contact that Kanter suggsted was Will Brownlie at the Center for Ecology and Hydrology in England. I haven’t yet contacted him but his thesis work was on “Assessing the role of domestic phosphorus emissions in the human phosphorus footprint” so he would likely be a useful expert if I continue to work in this direction.

I also learned that NYC has a biosolids management program.

Proposal & Ad

Updates

This week I learned about the green revolution, which increased world-wide food production and fed masses of people, but resulted in inefficiencies to the extent that more energy is being used to produce food than its output. I also learned about the haber-bosch process–its use in industry is responsible for massive amounts of ‘nitrogen fixation.’

I couldn’t shake this interest in the massive amounts of algae being produced by over-fertilization. I found there’s a distinction between toxic & non-toxic algal blooms (this is a very cool project focused on the toxic algal blooms in Lake Erie). New York State has a website with information about, and contacting information for reporting HABS (harmful algae blooms). But, there are thousands of species of algae. I didn’t realize how much work was being put into innovative uses of algae. I found this industry site that catalogs innovations, research, and news. Algae is being used as biofertilizer and biofuel, to the extent that it’s already displacing some other agriculture.

I wanted to know what algae looked like at the micro level because I hadn’t seen it yet and wondered if it was a possible way to form my project.

After the analogy exercise we did in class I kept thinking about algae death and hypoxia–how in a way the algae are suffocated the life in the waters where they bloom, and how in the end they are also displacing the nutrients, water, and oxygen that other living things, including humans, need. I found this algaculture project while learning about algae farming, which struck me partially because of the uncomfortable-looking design which reminded me of the asphyxiation I began to associate with algae blooms. It’s also an imaginative extrapolation into what humans and our food source might become.

How fragile is our food system? If we run out of fertilizer how will we eat? Do we want to live in a future where the answer is algae?

I was able to send along some questions to one professor, and will meet with another at NYU this week. I hope to address some broad questions about how phosphorus depletion and over-fertilization relate to other planetary systems and boundaries, and more specific questions about the potential for recycling and re-use, including potentially the cultivation of algae.

Proposal

What if we could manage nutrient flows and algae growth in such a way that we could usefully re-purpose the algae grown? The potential for algae re-use is interesting because it intersects with a number of other planetary boundaries we’re approaching: fresh water use, land use, the nitrogen cycle, the phosphorus cycle, and climate change. It could perhaps also address biodiversity loss if the toxic algal blooms are related to species die off at a significant rate (this is real but I am unsure of the magnitude), and definitely relates to social limits: most directly, food security.

At first I imagined taking a critical approach, where giving people a way to envision the pills and soylent-like concoctions of our likely future would be incentive to avoid such a fate. But after doing more research I am very curious about the viability. I also wonder whether people will be disgusted regardless of whether the product is purposefully unappetizing, or if edible algae could be made desirable.

Ad

In the future we may use the runoff from farms or cities to grow algae that among other uses like biofuel, could be used for food. Products that may result include algae spread, algae pills, and algae alcohol. By purposefully engineering the runoff with these non-toxic algae, these blooms will not only be controlled, but be useful, nutritious, and maybe trendy.

SDR, digital voice & P25

This week we used our SDRs and gqrx to listen to different frequencies. There’s some playing around required with squelch and gain before you can actually listen to something. I looked at radio reference to find radio frequencies used for communications in NYC. These communications happen on narrow FM. If you type in the frequency and then move the red receiver bar around, you can listen in on some usually mundane but sometimes funny or interesting stuff. I wondered whether the “hardware freq,” which shows up under “receiver options” and changes when you match the red receiver bar up with where you see information on the waterfall, was supposed to match up with the publicly available frequency? Are these just separate channels?

I found a number of organizations’ communications frequencies are publicly available, but often the “mode” they use is P25 “a digital voice specification used by first responders worldwide” according to this person on youtube. Tuning in to the frequencies posted publicly, it was clear the transmissions I was hearing sounded like those demonstrated in the youtube video, which made me hopeful that I had at least identified them correctly.

After doing some research I found that there’s and open source software project, OP25, that can demodulate these communications.

Going to try and get OP25 working in VirtualBox so we can play with OP25 even on a Windoze system. Here’s the general plan:

1. Install Ubuntu on Virtual Box
2. Install GNU Radio
3. Install OP25
4. Plug in my RTL SDR dongle, configure OP25 accordingly and see if it works.

From the radio reference forum.

I tried downloading OP25 using their installation instructions, but I couldn’t launch gnuradio by typing gnuradio into terminal which had be stumped for a while. I tried downloading gnuradio from their site, which was perhaps unnecessary, before coming to the understanding that gnuradio doesn’t have a gui interface–to open something resembling the gui interface I had seen the videos/tutorials I actually had to enter: $ gnuradio-companion. This seems like a non-trivial point! It’s important to know what a thing is, not just that you “need” it:

It’s extremely useful. However, there are ways to use GNU Radio without being able to code. First, there’s the GNU Radio Companion, a graphical user interface similar to Simulink. It allows you to create signal processing applications by drag-and-drop. Also, GNU Radio comes with a set of ready-to-use tools and utility programs. These serve to manage the most basic operations, such as recording RF signals and performing spectrum analysis. If this has sparked your interest, perhaps have a look at the beginner’s guide how to use GNU Radio.

If you want to extend GNU Radio (i.e., add new functionality), however, then you must write code. For creating applications that are too complex for the GNU Radio Companion, Python is the easiest way to go. For performance-critical code, you should write C++ code.

From the GNU Radio wiki 

Once opened, I realized I had to write a “flow”/program and got stuck. There are tutorials so perhaps I will be able to write a functional program soon.

After all of this and ubuntu yelling at me because I only had 200mb of memory left on my virtual box, I realized rtl-sdr.com also has a tutorial on decoding digital voice, which was very helpful in understanding more broadly what P25 effectively is, and the different ways of listening to any “unencrypted digital radio voice conversations.” The tools they suggest are: RTL-SDR software defined radio combined with SDRSharp and a program called “digital speech decoder” (DSD). They also note “The most common digital speech codec is APCO P25, which DSD is able to decode,” and, regarding encryption: “most users of digital radio do not bother to encrypt their systems as it can introduce lag, monetary expense and extra battery drain in portable radios.”

I’m not sure if this second method is a better solution?