sfpc days 8/9: esolangs and C-izzle

over the past two days we have enjoyed a workshop from sarah groff-palermo on esolangs and compilers. sarah shared a lot of great examples including my favorite of them arnoldC which is a programming language based on arnold schwarzenegger quotes. 

at first i really struggled to think about compilers and programming languages themselves as expressive mediums. i could see why it would be fun, silly, or even interesting to create a specialized programming language without a real functional purpose. but is that really art? 

luckily i have an alarm that goes off in my head any time i think "that's not really art" that reminds me i'm probably just too set in my ways about something. in this case i've worked with compilers for a long time and they always feel like this thing that you don't screw around with. 

so i'm excited to introduce a language i derived from arnoldC calld C-izzle (or snoop++). this is a programming language based on statements from snoop dogg. here is the classic hello world written in C-izzle.

SPIT "hello world!"

i am currently working on a new algorithm snoopsort that is implemented in C-izzle. snoopsort is like bubble sort except it randomly forgets the partition point that it is sorting around. so it's overall very efficient, but randomly messes up for a minute. i hope to display the two together this sunday at the sfpc code poetry showcase.

sfpc day 4: ROBOSAMO©

enjoy ROBOSAMO© here

after some amount of tinkering i've combined a number of the examples we have seen into an almost completely pirated but original piece ROBOSAMO©. i have been minorly obscessed with jean-michel basquiat after watching the documentary "the radiant child" which i highly recommend. i liked it so much i watched it three times. there is a lot to learn from basquiat's experience.

for this exercise i started with henry flynt's document "viewing samo" which catalogs much of the original SAMO© graffiti from basquiat and al diaz. i broke apart the prefixes, suffixes, and "random" elements from the graffiti. i then used nick montfort's "lede" as an example to combine them using javascript. i then used todd anderson's javascript typing example to stylize the presentation and voila ROBOSAMO© is born.

there's still some polish to do, but the heart of it is there, and i'm surprisingly happy with it. for something with such a simple technial basis it really stands out among things i've previously created. and that is turning out to be one of my big learnings from sfpc. it's not about being the most technical, or having a unique technical edge, as much as trying to communicate something using the best combination of tools you have.

sfpc day 3: mediums

as introduced to me in school visual art is comprised of a set of well known and established forms. painting, sculpture, ceramics, drawing, and most recently photography. photography was interesting because the story of ansel adams fighting to establish it as a credible medium was always attached to it. this created the impression that yes, new art forms do come about, but only once in a very long while, and only after a fight to establish its credibility.

artwork made with computers has in some ways been grouped into a new form. there are many names for it, none of them really accurate or properly encompassing. poetic computation is nice, but like many of the other names it comes with tradeoffs. are we talking about digital art? electronic art? creative code? what is the name for this form?

one thing that is starting to stand out to me through sfpc is that maybe what we're really looking at right now is not a particular new form or medium like photography, but rather a massive flood of new mediums facilitated by technology. technology is both augmenting and enhancing existing mediums and spawning completely new ones at a remarkable rate. 

so far in sfpc we have been introduced to two new mediums. nick's class taught us all about generative text. he showed examples of this medium dating all the way back to before there were computers. we were also taught todd's performance keyboard poetry slam medium (official name still pending) which is a completely novel medium which he invented by combining a few other mediums. 

i bring up these examples because they show the range of what you can really do with art and computers now. you can take old mediums and add technology, you can take existing new mediums that utilize technology and push them further, or you can invent completely new mediums out of thin air. that's right, you can invent mediums. this is huge. it means that if you can't find a medium to properly express yourself you can just invent one. for now though i'm still having a lot of fun with this poetry slam thing.

sfpc day 2: programming

i have been programming for longer than i want to admit. one might assume based on the length of time i've done this that i am some sort of expert. but one interesting thing about programming is that as a skill it decays very quickly. languages change, platforms change, new languages arise, new patterns, methods, and techniques come about all the time. some skills remain, like core knowledge of programming structures. but the exact syntax is always changing.

in the summer sfpc class the level of programming skill ranges from basic to advanced. there are a few people here who program everyday as their primary job. for others it's either a hobby or a side aspect of their work. for me while i do program i do not work much in javascript or python, so despite my experience i feel a bit like a fish out of water.

as we all sat working on our poetry instruments yesterday one thing really stood out to me. everyone, no matter what level, was struggling in one way or another. whether it was code not performing as expected, a browser not working quite right, an unfamiliar toolkit or library. everyone struggled in one way or another. 

this reveals one of the most important skills a programmer needs to have: patience. no matter how experienced or advanced one is there are always frustrating and challenging moments. this is ultimately true for all mediums though. paint can be a beast; getting paint to behave the way i want is quite a challenge for me. to some degree you are subject to the whims of your medium. and for programming the medium loves to throw curve balls.

so it was good to see that everyone handled the challenges with stride and helped each other overcome them. there was a lot of collaboration as we all learned the ins and outs of making poetry instruments with javascript. this was a stark contrast to the formal computer science program i attended where people were constantly trying to one up each other and prove they were smarter. this says a lot about the educational environment at sfpc. learning should always be collaborative.

sfpc day 1: students & teachers

once upon a time when i completed college there was this sense that education is now just blended in to every day life. creating, working, doing, it was now all a mesh of learning new things and doing things all at the same time. once i had "learned how to learn" the idea of school or students and teachers was obsoleted until some dreaded later point where maybe i would need to be re-educated by one of those institutes from the late night informercials.

having not been a student in the formal sense for some time the first day of sfpc had this weird anxiety to it. in order to be a student you have to let go of all sorts of expectations that work life ingrains over the years. in professional life you have to carry an air that you know what you're doing even when you don't. presenting your work as great and without vulnerability is a key to commercial success. we all know it's a front and a game, but playing is not an option. 

at the summer sfpc class it's pretty hard to tell the students and teachers apart. people on both sides of the table have equally impressive credentials. this could all just as well be everyone teaching everyone (which in some sense it is.) but i can already say that having the freedom to be a student in mind will play an important role in my output over these two weeks.

over the course of the day i quickly and comfortably sunk back into that student mindspace. that space where experimentation is ok. where failure is ok (and not in the silicon valley sense). where having no idea what you're doing is ok. where being vulnerable is ok. where you aren't going to be criticized for not knowing how git works. where you'll see and experience things you haven't before. we're all going to be a little uncomfortable while growing together and that is all just ok and beautiful.

one of my absolute favorite quotes comes from saul williams "my work is the residue from working on myself." the idea that ones art is just a product of a greater attempt at self understanding and improvement. so in that sense i hope to produce some freshly inspired work over the next two weeks that breaks away from my existing trajectory. it's time to shake things up.