Weeks 4 and 5 — Down and back up again

Week 4 was a pretty bad week for me — (hopefully) the nadir of this course for me — so I wanted to wait till things were more positive before writing a blog post. And indeed, Week 5 has been great!

Saturday and Sunday I forked minishopify, the redone-from-scratch shopping cart app Ahmed had done, and prettified it by doing the front-end work, turning it into “the art cart”.

Then I got the idea of turning some work I had to do anyhow into a Rails app. I needed to put up a web gallery for Voix Visuelle of one of our latest shows, and what I had just done with the shopping cart seemed very applicable to a gallery. Sure it seemed overkill to use Rails for a single gallery, but it could make putting up similar future galleries quite simple. So over Monday and Tuesday I worked on Vanier Quartier Numerique. Each artist’s name is a link; clicking on the name opens up a view of the artist’s piece(s), along with names, titles, and (eventually) bio (still waiting to receive those). It still needs a bit of work — notably a more responsive design for the banner, as for now it will only show properly on a browser window that is at least 1250 pixels wide; also the copy thanking our granting agencies for their support still needs to be added.

Wednesday through Friday I went back to working on Hex, which ended up fairly complicated, and I got a lot more comfortable with Rails in the process, with of course Ahmed there to help me whenever I got too stuck. It’s 4 was a pretty bad week for me — (hopefully) the nadir of this course for me — so I wanted to wait till things were more positive before writing a blog post. And indeed, Week 5 has been great!

Saturday and Sunday I forked minishopify, the redone-from-scratch shopping cart app Ahmed had done, and prettified it by doing the front-end work, turning it into “the art cart”.

Then I got the idea of turning some work I had to do anyhow into a Rails app. I needed to put up a web gallery for Voix Visuelle of one of our latest shows, and what I had just done with the shopping cart seemed very applicable to a gallery. Sure it seemed overkill to use Rails for a single gallery, but it could make putting up similar future galleries quite simple. So over Monday and Tuesday I worked on Vanier Quartier Numerique. Each artist’s name is a link; clicking on the name opens up a view of the artist’s piece(s), along with names, titles, and (eventually) bio (still waiting to receive those). It still needs a bit of work — notably a more responsive design for the banner, as for now it will only show properly on a browser window that is at least 1250 pixels wide; also the copy thanking our granting agencies for their support still needs to be added.

Wednesday through Friday I went back to working on Hex, which ended up fairly complicated, and I got a lot more comfortable with Rails in the process, with of course Ahmed there to help me whenever I got too stuck. It’s up on Heroku now, although my background texture somehow got lost…will have to work on that.

Holly, Hex, and Psychedelic Leaves

I’ll happily discard the blow-by-blow account this week in favor of talking about my ongoing projects:

Psychedelic Leaves is my Coursera Processing project; it’s a meditative interactive art animation.  Of course I haven’t had much time to work on this project given Summer Academy, and the web page and instructions, particularly, are a bit basic. I have until July 29 to perhaps revise…If I get a chance I might smarten up the presentation a bit, but chances are I’ll focus on Summer Academy stuff. A screenshot:

psych

For this course we are encouraged to develop projects that extend the work done in class, exploring code demonstrated by the lecturers, so I riffed off an algorithm that was introduced as “one of the earliest computer graphics algorithms … used by John Whitney, Sr to produce a range of really famous abstract animated pieces.” (Mick Grierson). The algorithm in one of the forms it was presented to us can be tried here (I googled a line or two of the code and found that a copy was put up on openprocessing.org recently, I imagine by someone associated with this class). It creates an animation of rainbow colored circles that change as the user moves the mouse around the window:

rings

My version has been modified extensively to use custom “leaf” inspired filled shapes rather than simple circles; to use a complex and pleasing set of colors rather than a simple set of rainbow hues; to exploit the possibilities of transparency; to allow the possibility of experimenting with layered in photos; to be accompanied by music (a choice of a Triphop inspired loop that was one of my first Logic Pro practice compositions, and one of my Bartok inspired pieces); and to allow much user interactivity via mouse and keyboard.

Note that sound may take several seconds to work after the animation is first loaded in its website presentation, as the sound files take quite a bit of time to load. Also: one must click the mouse at least once in the image window before the keyboard key controls work.

Of the two Rails projects I am developing with my husband, Ahmed Omran, Holly is more his baby. We’ve worked together on the concept/design/CSS/Ruby-logic parts, but the lion’s share of the Rails/Javascript/jQuery coding was done by him. “Holly” is a homage/reference to the “peculiar” AI computer from the show “Red Dwarf”. Holly can answer word problem math questions like “What is 70 plus 3 multiplied by 10?” and take voice input and speak the answer as well. Next we are planning to have Holly answer questions about Ruby and Rails…

The second project is Hex, an educative game app to develop fluency in naming colors by their hex codes — a color is shown, and the user has to guess its hex value; the app tells you, in a percentage score, how well you did. The next steps I plan are: a more attractive UI; the possibility to select color sets of varying difficulties; for the user to input a set of colors (via hex codes) that she would like to practice; to have a photo mode. This one is, so far, more my baby — the code resides on my computer and was typed by me, although most of the “How do you do that in Rails?” was figured out in pair programming sessions with Ahmed.

color

Meanwhile my florified follow-the-book-shopping-cart is coming along bit by bit, somewhat painfully, definitely with less enthusiasm than engendered by the above projects, but useful in that I am being exposed to (though hardly mastering) Rails in much more depth and breadth.

Week 2 — Starting to get more comfortable — most of the time…

Saturday was a short easy day, a pleasant interactive three hour lecture, just a bit of work outside of class, mostly resting and relaxing. Sunday would have been restful, but it turned out last minute that I had to drive to Montreal and back… But I did have a great visit with an old friend, who was very enthusiastic about the photos/animations/music I showed him. I even had enough energy left in the evening to do some Rails reading, and to do some final work wrapping up an art project. Monday more of the same before class; off to class for 1pm; we were only there a couple hours before we were told that the building needed to be cleared for electrical work. So back home to continue our work there. Ahmed and I worked a few hours peer programming a relatively complicated extension to our in-class Ruby exercise. I also got time to very quickly dispatch my week’s work for the Coursera processing course (basically I saved the videos for later — this fall — and just did the assignment), and to spend a few hours on my final project.

Tuesday we went in for class only to find that the building was still out of commission. I was still running an errand when I found out — turning in that art project I had been wrapping up — so it worked out great for me. Feeling relieved that I am almost done with all my outside-Summer-Academy commitments. On the way home I came up with the idea for another app to develop at Summer Academy. I want to donate my large format printer to my artist’s association, so that it can be used collectively. But such a concept would be a bookkeeping nightmare without some sort of printer Coop app to keep track of things. (Keep track of user accounts, ink usage of each person, monthly bills, yearly subscription prices, using money in kitty to buy more ink as needed, giving member dividends at the end of the year if too much money taken in).

At home, a pleasant day of doing a ruby exercise for a couple hours, then several on “css’ing up” the current state of my follow-the-rails book rails app. And then several on my processing final project (I’d meant to make this short and simple, but got engrossed in it; very satisfactory progress though).

Wednesday the building was back online. We were told to work in pre-assigned pairs. This was more challenging than last week as my new partner’s comfort level in the course was lower than that of my previous partner. In the morning we did a Ruby exercise and that went reasonably well. In the afternoon we were to listen to a seemingly endless stream of video tutorials on Bootstrap, then use it to (re)do the CSS on our app. Neither of us were happy with the video tutorials and I soon aborted it for myself, and showed him my solution, which he also preferred. I asked Ahmed to show me how to get started using it, how to find the documentation, and then I was happy learning it by applying it. I was resistant at first to replace the CSS I had coded in by hand, but eventually figured “meh, it’s saved on github, try something new,” threw away everything and started from scratch with Bootstrap. I ended up rather liking the clean new look (previous version had a leafy photo banner, a light background texture, and slightly greenish table row colors; I show the Bootstrapped version a bit below).

Thursday before class I continued my rails book work, feeling fairly good about it. It took a bit longer than I planned, but still, I felt caught up (which, to be honest, with this course, almost feels like being ahead in normal terms…). Before I was done, Ahmed came home (he’s been ferrying his little sister back and forth to a science/technology workshop all this week) and proposed we go for a walk, and I ended up, to my surprise, feeling good enough to do our old forest loop, and walk about half a hour.

Back in class, we mainly continued to refine our Bootstrap formatting of our Rails app page, and I even got my courage up enough to show it as the first demo of the day. Here is what it looked like:

flowerdepot

The code for the whole app is here and most of the code formatting that view is here (using Bootstrap classes) and here (overrides — some position adjusts, and some shadows).

Time for the evening lecture; in the first part of the lecture I felt happy, I found a vacant easychair to sit in, my foot propped up on my cushion on another chair; understanding everything (css, dev tools), in control. Then he started losing me moving on to rails and mvc, not too far out of my comprehension range but too fast, and then he told us to redo everything we had done so far from scratch with no scaffolding and… my world shattered…wha…how…? Ahmed eventually nursed me through it.

One good thing is that I’ve been pretty good about exercise — in fact better than lately, what with on the one hand my foot finally getting better, and on the other hand, being forced by Summer Academy to avoid my usual problems: too much exercise or too little exercise. There is no way I have time to do too much exercise. And yet there is no way I feel I can survive Summer Academy without finding time to spend around an hour a day on stretching, strength exercises, and walking or stationary biking. So that’s an unexpected benefit of finding it painful sitting on those chairs for hours…

Summer Academy — Coding Bootcamp Week 1

Today nearly marks the close of our first week of Summer Academy (still a half day tomorrow). It’s been pretty intense. Monday I tried to get most of my week’s work done for my Coursera Processing course before and after a social get-together at the home of one of the course’s organizers, Nicole Belanger. It was Canada day, so driving in to downtown Ottawa seemed out of the question. My husband Ahmed and I (we’re taking the course together) took a bus partway, and then ended up walking across the Alexandria bridge (and later back) because we didn’t find the shuttle. (Walking through the Canada day crowds was about the closest I’ve gotten to Canada day celebrations, after over a decade in Canada, and probably as close as I want to get). It ended up being way more walking than I’ve done since January, because of a foot injury, but with many short and long stops, to my surprise and delight it went well. We had a nice time meeting our classmates and coordinators/teachers. Back home a Coursera course that I had been awaiting for months just opened (Coding the Matrix: Linear Algebra through Computer Science Applications), and I took a peek. I got sucked in by the idea of applying a fun language (Python) to a favorite subject (Linear Algebra), installed the latest version of Python, and started doing some of the first exercises.

Tuesday, wide awake at 7am (early for me, but still a bit on Rome time from our visit to my parents), messed around with the Coursera courses, and got ready for Day 1 of Summer Academy. We kicked off at 1pm with a couple of hours of fun team-building get-to-know-each-other exercises and then got to work with installing a “VirtualBox” on each of our machines — a virtual computer inside a computer that would ensure that all of us, whether on pc or mac, would be working with Rails, Ruby, Git, and so on, in identical versions. While waiting a few hours for everything to download and install, we watched, in small groups, a long video about Unix and its commands in fairly grueling detail, at least as far as we were concerned. We developed a good camaraderie with the people sharing our table (we’re working in a big open space, the lounge/cafeteria of Shopify, and clump up in groups of 6 to 10). Years of being an artist working at home have intensified my introverted nature to the point of sometimes being painfully shy with strangers, so I was happy to see I found it relatively easy and quick to start bonding with my fellow classmates. I’m pretty impressed by what a diverse collection of bright, friendly, enthusiastic people HackerYou has put together.

We took a break for dinner then had an interactive evening lecture where we built our first practice Rails app. It was a pretty tough day, especially physically — I’m completely unused to sitting in place and working for more or less 8 hours straight — I generally work both day and evening, but intersperse sitting there working with lots of breaks moving around or lying down. Home at 10pm, doing a bit of exhausted and perfunctory work on the Coursera courses.

Wednesday, a 10-6 day, again felt long and hard, even if we were let out early around 5. Gorgeous catered lunch though. We mixed individual undirected work on our Rails apps (I paraphrase, “do something cool with Rails Time methods”) with git tutorial, git practice and more git tutorial. There seems always to be more work than one can really cover in the set time, which makes some logical sense — you wouldn’t want anyone to run out of things to do and twiddle their thumbs — but since none of the work is labeled optional, a person like me, who is used to being able to finish everything assigned, and fairly easily at that, feels some confusion and frustration.

We were invited to volunteer to demo our Rails apps, and I was one of about a third of the class who raised their hands. But I chickened out after seeing the visually impressive apps that some of my classmates demo’d. I had focused on pure code, setting up a hash to display the time in 39 cities around the world without copy-pasting code, and doing various other calculations with Rails time functions. But now it seemed so boring in black and white! (I had briefly thought about how to at least make colored text, but I was stumped and soon turned to back to the tons of Git tutorials we were also supposed to be doing). Afterwards I was kicking myself for being a chicken. Ahmed asked me if he should have pushed me to present…but no, I said, I wouldn’t have wanted that either…

We went home, burnt out, and relaxed for a while. I then took a hard look at the Coursera courses, dropped the Linear Algebra one, and resolved to finish up the Processing one (too relevant to my work, and too much work already invested, to drop it) in minimal style instead of the usual maximal.

Thursday, not surprisingly, just as I was getting used to our table mates, whoops, the instructions were to switch it up. Ahmed was going to go sit away from me but I really wasn’t ready… We did though sit with several new people at a new table and I got to learn that they were just as friendly as the first set. Another packed and demanding day of doing Ruby tutorials, exercises, part of more reading on Ruby (we were supposed to read all of it but just couldn’t finish it all), and then an interesting lecture on recreating Rails using Sinatra that got really tough for most of us to follow at the end…home at 10:30.

Friday we did a day (short! 10 to 4, the first day that I didn’t feel exhausted afterwards…) of quiz and exercise content in “student-teacher” pairs. We were asked to walk to one side of the room if we felt we needed more help mastering the basic, core content of the week, and to the other side if we felt ready to help a colleague master that content. I didn’t really feel uncomfortable with the basic content, but nor did I feel really confident enough to “teach” it. But I walked to the “teacher” side, which was probably best, since the instructor ended up needing to ask a few people from the “student” side to switch over. We then paired up randomly, and I ended up with Kate Hudson. She was pretty close to my level, so I had a light job, and we made pretty quick progress with the quiz content, and practice with git forking, pull requests and so on (the practice of which was equally new to both of us, we had both only seen it in theory so far). After our lunch break, we attacked the programming exercises, and here happily I was able to feel more useful as the teaching partner. We finished our first exercise fairly quickly, ahead of most of the class, and our instructor Heather asked us to demo the program. That went well, and I felt redeemed.

Finally, for fun, here is the link to my nearly marks the close of our first week of Summer Academy (still a half day tomorrow). It’s been pretty intense. Monday I tried to get most of my week’s work done for my Coursera Processing course before and after a social get-together at the home of one of the course’s organizers, Nicole Belanger. It was Canada day, so driving in to downtown Ottawa seemed out of the question. My husband Ahmed and I (we’re taking the course together) took a bus partway, and then ended up walking across the Alexandria bridge (and later back) because we didn’t find the shuttle. (Walking through the Canada day crowds was about the closest I’ve gotten to Canada day celebrations, after over a decade in Canada, and probably as close as I want to get). It ended up being way more walking than I’ve done since January, because of a foot injury, but with many short and long stops, to my surprise and delight it went well. We had a nice time meeting our classmates and coordinators/teachers. Back home a Coursera course that I had been awaiting for months just opened (Coding the Matrix: Linear Algebra through Computer Science Applications), and I took a peek. I got sucked in by the idea of applying a fun language (Python) to a favorite subject (Linear Algebra), installed the latest version of Python, and started doing some of the first exercises.

Tuesday, wide awake at 7am (early for me, but still a bit on Rome time from our visit to my parents), messed around with the Coursera courses, and got ready for Day 1 of Summer Academy. We kicked off at 1pm with a couple of hours of fun team-building get-to-know-each-other exercises and then got to work with installing a “VirtualBox” on each of our machines — a virtual computer inside a computer that would ensure that all of us, whether on pc or mac, would be working with Rails, Ruby, Git, and so on, in identical versions. While waiting a few hours for everything to download and install, we watched, in small groups, a long video about Unix and its commands in fairly grueling detail, at least as far as we were concerned. We developed a good camaraderie with the people sharing our table (we’re working in a big open space, the lounge/cafeteria of Shopify, and clump up in groups of 6 to 10). Years of being an artist working at home have intensified my introverted nature to the point of sometimes being painfully shy with strangers, so I was happy to see I found it relatively easy and quick to start bonding with my fellow classmates. I’m pretty impressed by what a diverse collection of bright, friendly, enthusiastic people HackerYou has put together.

We took a break for dinner then had an interactive evening lecture where we built our first practice Rails app. It was a pretty tough day, especially physically — I’m completely unused to sitting in place and working for more or less 8 hours straight — I generally work both day and evening, but intersperse sitting there working with lots of breaks moving around or lying down. Home at 10pm, doing a bit of exhausted and perfunctory work on the Coursera courses.

Wednesday, a 10-6 day, again felt long and hard, even if we were let out early around 5. Gorgeous catered lunch though. We mixed individual undirected work on our Rails apps (I paraphrase, “do something cool with Rails Time methods”) with git tutorial, git practice and more git tutorial. There seems always to be more work than one can really cover in the set time, which makes some logical sense — you wouldn’t want anyone to run out of things to do and twiddle their thumbs — but since none of the work is labeled optional, a person like me, who is used to being able to finish everything assigned, and fairly easily at that, feels some confusion and frustration.

We were invited to volunteer to demo our Rails apps, and I was one of about a third of the class who raised their hands. But I chickened out after seeing the visually impressive apps that some of my classmates demo’d. I had focused on pure code, setting up a hash to display the time in 39 cities around the world without copy-pasting code, and doing various other calculations with Rails time functions. But now it seemed so boring in black and white! (I had briefly thought about how to at least make colored text, but I was stumped and soon turned to back to the tons of Git tutorials we were also supposed to be doing). Afterwards I was kicking myself for being a chicken. Ahmed asked me if he should have pushed me to present…but no, I said, I wouldn’t have wanted that either…

We went home, burnt out, and relaxed for a while. I then took a hard look at the Coursera courses, dropped the Linear Algebra one, and resolved to finish up the Processing one (too relevant to my work, and too much work already invested, to drop it) in minimal style instead of the usual maximal.

Thursday, not surprisingly, just as I was getting used to our table mates, whoops, the instructions were to switch it up. Ahmed was going to go sit away from me but I really wasn’t ready… We did though sit with several new people at a new table and I got to learn that they were just as friendly as the first set. Another packed and demanding day of doing Ruby tutorials, exercises, part of more reading on Ruby (we were supposed to read all of it but just couldn’t finish it all), and then an interesting lecture on recreating Rails using Sinatra that got really tough for most of us to follow at the end…home at 10:30.

Friday we did a day (short! 10 to 4, the first day that I didn’t feel exhausted afterwards…) of quiz and exercise content in “student-teacher” pairs. We were asked to walk to one side of the room if we felt we needed more help mastering the basic, core content of the week, and to the other side if we felt ready to help a colleague master that content. I didn’t really feel uncomfortable with the basic content, but nor did I feel really confident enough to “teach” it. But I walked to the “teacher” side, which was probably best, since the instructor ended up needing to ask a few people from the “student” side to switch over. We then paired up randomly, and I ended up with Kate Hudson. She was pretty close to my level, so I had a light job, and we made pretty quick progress with the quiz content, and practice with git forking, pull requests and so on (the practice of which was equally new to both of us, we had both only seen it in theory so far). After our lunch break, we attacked the programming exercises, and here happily I was able to feel more useful as the teaching partner. We finished our first exercise fairly quickly, ahead of most of the class, and our instructor Heather asked us to demo the program. That went well, and I felt redeemed.

Finally, for fun, here is the link to my first project from the Processing course.

Of animation, coding, and digital sound

Slumbering in the background of my thinking for a few years now, and slamming to the surface  in the last twelve months has been the idea that

• as an artist who whole-heartedly strives to create culturally relevant contemporary art that is both of the moment and as uniquely mine as possible — reflections of my essence, my outlook and my epoch

• as an artist very interested in technological advances in art

• as a scientist who has the capacity to learn new technological systems easily

I need to go beyond drawing, painting, Photoshop, photography, and digital printmaking. I need to be creating my own tools, writing programs to create my work rather than just using programs; I need to branch out from two-dimensional art to include the dimension of time, via animation and sound.

This realization has been expressing itself in the past year as an obsession to “learn to code.” Or, better, to re-learn to code; to learn to code in modern languages and with modern practices; to work towards fluency and the use of code as second nature. My progress towards these goals has been accelerated by my discovery of the multitude of learning resources now available on the Internet, starting with Google’s Python course (see previous blog), followed by dozens of courses and mini-courses on Codecademy and Codeschool; Coursera’s Learn to Program: The FundamentalsAn Introduction to Interactive Programming in PythonComputing for Data Analysis; Stanford U/Class2go’s Introduction to Databases ; UC Berkeley/edX’s Software as a Service.

I branched out a few months ago to also start covering the sound aspect. I started with Coursera’s Introduction to Digital Sound Design and familiarizing myself with Apple’s Logic Pro in combination with Native Instruments’ Absynth, Kontakt, and FM8. (I first bought the Native Instruments software package in 2010, but was then too intimidated to succeed to get anywhere with it.) Eventually I want to work with sound in a broader context than music, incorporating nature sounds, mechanical sounds, and so on, into soundscapes. I would also like to work with algorithmic, generative composition, as well as interactive sound.

My first project of animation accompanied by sound was put together in honor of my mother’s birthday. For sound, I took as my starting point the Bartok violin duets that I used to play with my father. I reworked them into layered compositions using multiple synthesized and sampled instruments for each violin part. For the animation (using Processing, the Java-based programming language for visual/new media arts) I started with the lines symbolizing the codification of information, from handwriting and calligraphy to drawn traces hinting here at writing and there at representations of sound waves, described in my previous blog posts here and here, and added interactivity and colorful imagery working with simple geometric and semi-organic forms in transparency. The initial web-based version of the project was presented via Internet on my mother’s birthday this May, with my mother in Italy and I in Canada; she was delighted. I continued the project in the form of a local-computer-based application, incorporating the layering of rectangular snippets of photos and scans rather than simple rectangles of one color. Since the load times for the initial web version are already long, the newer version, with higher resolution and involving a data folder of many relatively large image files, is not appropriate for a presentation via the Internet. Here, however, are some screenshots from the application:

artwork-1349s artwork-0737s

Here are a couple more images composed afterwards in Photoshop combining a couple screenshots each:

artwork-2279ms artwork-1556ms

As well as my interests in coding for my personal work, I serve as the technical advisor of Voix Visuelle,a non-profit contemporary art exhibition space in Ottawa. I hope to develop (along with my husband Ahmed Omran) a web-based application to automatize the clerical work associated with receiving and getting artist submissions ready for review by jury. Presently, Voix Visuelle receives its submissions on CD/DVD, on paper, or by Email; the administrators must then laboriously enter each artist’s information in an Excel database, and collate the image files into file folders to give to the jury for review. The application should not only do all this work automatically, but also automatically verify the submissions and coach each artist in making a complete submission with no missing information. (At present, the administrators must often contact artists by telephone or Email to ask them for information they have inadvertently omitted).

This application will be developed partly as a volunteer effort and partly funded by a grant graciously provided to Voix Visuelle by the Association des groupes en arts visuels francophones (l’AGAVF).

Our progress in this project will be greatly facilitated by our participation in the Summer Academy of HackerYou, an intensive full-time course in web development using Ruby on Rails, this upcoming July and August in Ottawa.

While I both enjoy self-directed learning and generally progress well with it, I feel that Summer Academy is a notable opportunity for me to re-experience a less isolated learning/working environment. I greatly look forward to interacting both with other students and with the HackerYou team. Also, while I feel fairly comfortable self-studying many programming-related topics (particularly those that are more strictly mathematical), I have so far felt clumsy and ill-prepared in my attempts to learn Ruby on Rails, the model-view-controller software architecture pattern, Git, and so on. I feel therefore I would benefit significantly from a systematic, from-the-ground-up coverage and practice of this material. While front-end development is somewhat more likely to be a future focus for me than back-end, I feel the need for a good general understanding of the whole development process. Also, I believe that handling databases with Rails will come in handy for some of my projects: particularly administrative ones such as the artists’ submissions app mentioned above, but also purely artistic projects involving data visualization and sonification., an intensive full-time course in web development using Ruby on Rails, this upcoming July and August in Ottawa.

While I both enjoy self-directed learning and generally progress well with it, I feel that Summer Academy is a notable opportunity for me to re-experience a less isolated learning/working environment. I greatly look forward to interacting both with other students and with the HackerYou team. Also, while I feel fairly comfortable self-studying many programming-related topics (particularly those that are more strictly mathematical), I have so far felt clumsy and ill-prepared in my attempts to learn Ruby on Rails, the model-view-controller software architecture pattern, Git, and so on. I feel therefore I would benefit significantly from a systematic, from-the-ground-up coverage and practice of this material. While front-end development is somewhat more likely to be a future focus for me than back-end, I feel the need for a good general understanding of the whole development process. Also, I believe that handling databases with Rails will come in handy for some of my projects: particularly administrative ones such as the artists’ submissions app mentioned above, but also purely artistic projects involving data visualization and sonification.

Python: Aug 24 2012

(probably the last post written last year which I never got around to publishing)

Well there was a flurry of activity in processing, and then grant proposal written and submitted. Before and after the grant proposal, have been learning Python from the Google Python course. This evening I worked on the exercise of taking Social Security’s baby name data (popularity ranking of boy and girl names for the US, for each year http://www.ssa.gov/oact/babynames/) and writing a Python program to use regular expressions magic to convert the html pages into cleaned up simple text files containing only:

2006
Aaliyah 91
Aaron 57
Abagail 895
Abbey 695
Abbie 650

Most of the work is done by the line

     tuples = re.findall(r'<td>(d+)</td><td>(w+)</td><td>(w+)</td>’, text)

thus ignoring all the chaff, zeroing in on the lines of form

    <tr align=”right”><td>1</td><td>Michael</td><td>Jessica</td>

 

and converting them to (1, ‘Michael’, ‘Jessica’) tuples and the like.

Then in the command window one can enter

  python babynames.py –summaryfile baby*.html

to convert many files all at once. The instructor (three cheers for Nick Parlante! ) then suggests seeing patterns over time using shell commands:

  grep ‘Juliet ‘ *.summary

gives an output in the command window like this:

… baby2007.html.summary:Juliet 519
baby2008.html.summary:Juliet 453
baby2009.html.summary:Juliet 318
baby2010.html.summary:Juliet 285
baby2011.html.summary:Juliet 252

showing the evolution of the rank of Juliet as a baby name per year. I was inspired to download the baby name rank files for the top 1000 names for the last 100 years (saving each year’s file one by one by hand as I haven’t learned how to automate such a process yet; it took 20 minutes), and then write another python program that would, for a given name, give a text file with the summary


2007 519
2008 453 etc.

I then turned to Processing since I do not yet know a quick way to deal with graphics in Python, and similarly used Photoshop as the quickest way to add labels. I found to my surprise that Paula, which I thought was an uncommon first name, actually was at rank 38-100 in the years 1943-1974. It has declined greatly since then though. Juliet (my mother’s name), which I hadn’t realized was a rare name, was much more uncommon than Paula through most of the 1900’s, but pulled ahead in this century. Ahmed (my husband’s name) first appeared as a top 1000 name in the US in 1974, and also pulled ahead of Paula around 2000. Finally, for some time around 1980, Misty (our cat’s name) was the most popular of all. Unfortunately, neither Paolo (my father’s name) nor Tortoiseshell (their cat’s name) were ever in the top 1000 in the US. Here is the graph:

namegraph

Another thing that would be interesting to do is to integrate this information over time, to see, over a century, the popularity of names. One couldn’t do it with the data I have used so far, since how do you aggregate when you know rank, not number of ppl with each name. However, I have revisited the site, and found that in addition to the top 1000 ranking data, they also release the yearly data (in one nice zip file with all the little files from 1880 thru 2011 neatly packaged together, with far cleaner formatting… oh well, nice exercise Nick, but this is much nicer data) of NUMBER of people for each name, for all names with at least 5 (for privacy reasons; and apparently this accounts for about 70% of the population) ppl in that year. So in that case Paolo’s appear (85 in 2000, for example) tho still no Tortoiseshell’s…

Color images with Processing — July 24, 2012

(again, a post written last year which I never got around to publishing)
Color images created along the same lines as discussed in the previous post Valium Online:

jul24Var1Sample jul24Var2Sample jul24Var3Capture1

Drawing with Processing: July 18, 2012

(again, a post written last year which I never got around to publishing)

jul18Var3Capture1
Lately I have been revisiting Processing (http://processing.org/) and reading and thinking about generative art (see for example

http://en.wikipedia.org/wiki/Generative_art

http://www.philipgalanter.com/downloads/ga2003_paper.pdf

http://www.manning.com/pearson/)

and making a concerted effort to get to the point where I am including generative art in my work. For the moment I am working on “expressing the codification of information, from handwriting and calligraphy to drawn traces hinting here at writing and there at representations of sound waves” (from my new artist’s statement). The idea is to first come up with algorithms to create these lines computationally, and then to see where the new medium takes me. Here is another screen shots from today’s work, where I am starting to create some graphically interesting interaction between the lines, by drawing a series of circles between each pair of lines.

jul18Var4Capture1

Here are a couple snippets from a few days ago, where I was exploring the production of various forms of lines Ativan:

jul6 jul4b

Matrices 2012 Budapest: July 18, 2012

 

(Posting a few posts I wrote last year but never got around to publishing)

Franzini_dream1

A few days ago I created my images for an international art competition in Hungary. From the announcement:

The aim of the organizers is to give the opportunity of presenting small-sized electronic artworks created by foreign and Hungarian artists, making a survey of diversity and presenting their works at Hungarian and international level, within the size of 20 x 20 cm. We expect special technical solutions synthesizing new procedures, original ways of expression, raising topical techniques and contents, high-standard works: electrographs composed on different layers, digital installations, virtual and 3D creations, objects showing the artistic potentials implied in computer technique.

I made some new compositions because

(a) most of my pieces are meant for much larger formats (and aren’t square, which would be ideal if not required here)

(b) I wanted to submit pieces that were markedly “electrographic” (more layering, etc, than usual).

They are layerings of:

— a night office building photograph, with dream catcher in the window

— a macro shot in transparency of a leaf

— a greatly enlarged scan of an engraved plaster plate

Together the series is titled: Dream of Life

These pieces were exhibited in a group show by the Hungarian Electrographic Art Association, under the title MATRICES 2012 International Electrographic Artworks of Small Forms /3rd part/, from 10-28 December 2012, at the MTA (Hungarian Scientific Academy) Jacobin Hall, Budapest Klonopin 1mg, Hungary.

dream4 dream3 dream2

Upcoming Exhibition

From July 9 to August 16 2011; opening reception Saturday July 9 at 1pm

Duo Paula Franzini – Claire Lemay

At Le Centre d’artistes Voix Visuelle

81 Beechwood Avenue, Ottawa ON K1M 1L7

613-748-6954

Opening Hours: Tuesday to Saturday, from 11am to 4pm

 

A more detailed announcement will follow Tramadol shortly.


© Copyright Abstract Digital Art | Estampe Numérique Abstraite – Paula Franzini