While it’s really hard to describe and summarize such a complex performance, a section I particularly loved had them doing a somewhat traditional dance to a large chunk of the audio from the video below. The video is of an art installation by Nate Harrison where the viewer listens to the audio on an LP, where Harrison discusses how a drum break from the The Winston’s 1969 B-side “Amen, brother” (often referred to now as the “Amen break”) has been sampled, re-used, and deconstructed in hip-hop and commercial advertising. Harrison’s discussion is a really nice piece of cultural history and analysis, although I confess it was perhaps more compelling with casebolt and smith dancing at the same time.
It would have been interesting in its own right if casebolt and smith had simply danced with Harrison’s commentary. They took it up a notch, however, by following it up with a really interesting dance/discussion of how dancers use and re-appropriate moves and steps they learn in classes and see in performance, effectively “sampling” movements much like a hip-hop artist samples beats. She demonstrated various moves and styles, and he then grilled her about where she learned the moves, and on the appropriateness of re-using these moves without credit or payment. This quickly borders on the absurd, which is of course the point. The courts have allowed labels to charge for re-use of tiny fragments of recordings, where there are no such expectations in dance. Presumably a key piece of this is the ability to record (either on paper or as an audio recording) and distribute music, where dance can’t be recorded and copied in the same way.
In short, it was a cool, funny, intelligent performance. We had a great time, and highly recommend the show.
I found it really interesting to find that the YouTube version of the video above was in fact lifted from Harrison’s web site without his permission, although he says in the comments that he doesn’t care (search for “nkhstudio” in the full comments). So you have Harrison making a commentary on copyright and intellectual property, which is then appropriated by someone else and turned into a YouTube video. Then casebolt and smith use it in their performance, without ever telling us where that audio comes from, as a starting point for a great conversation about intellectual property. And while it’s possible they knew about the Harrison piece before it showed up on YouTube (Harrison was a friend from college for all I know), the odds favor them discovering the piece via YouTube, where it has over 2 million views.
So…
Now I’ve listened to “Amen, brother” (a song I’d never heard of)
because of a dance performance
borrowing parts of an audio track
which I was able to find via Google
as a YouTube video
generated (without permission) from a video by a performance artist commenting on intellectual property and copyright
using as a springboard the extended and repeated use of a 6 second drum break from The Winston’s “Amen, brother” in hip-hop and advertising
What a wonderful example of how re-appropriation can enrich the world, especially if we worry less about profit and more about gain.
A momentary interruption in the (slow) posting on the road trip (which has been done for nearly two weeks now!) to provide a time sensitive plug for those of you interested in genetic programming, evolutionary computation, and the like.
The Springer journal Genetic Programming and Evolvable Machines is celebrating its first 10 years with a special anniversary issue of articles reviewing the state of the field and considering some of its possible futures. For the month of July (which ends in two days!) the entire issue is available for free download.
Included in the issue are:
Human-competitive results produced by genetic programming
Theoretical results in genetic programming: the next ten years?
Genetic Programming and Evolvable Machines: ten years of reviews
Open issues in genetic programming
Grammar-based genetic programming: a survey
Developments in Cartesian Genetic Programming: self-modifying CGP
Bio-inspired artificial intelligence: theory, methods, and technologies
Once the month ends these will all start costing money again with two exceptions: the article on human-competitive results and the survey of 10 years of reviews will remain free in perpetuity.
In the spirit of full disclosure, I’m on the editorial board of the journal and contributed to one of the articles. Still, it’s a cool resource marking an interesting time in the development of the field, so take advantage of it while you can!
Day 7 started with a vist to Lewis and Clark College, which was interesting if not overwhelming for Tom. It’s a gorgeous campus and the study abroad stuff there is very cool, but it didn’t particular ring Tom’s bells.
We then spent most of the day hanging around Portland together, including a visit to the mighty and wonderful Powell’s City of Books (one of the last, great independent book stores) and checking in at GECCO to get my registration stuff. Tom totally loved Powell’s (“I could get lost in here!”), and has in fact spent large amounts of my money and his time there this week while I was at the conference. We also went out and saw Toy Story 3 that night, which turned out to be every bit as good as everyone’s said it is – lots of fun and very well written.
Day 8 was our last college visit in this part of the world, as we headed up to Olympia, Washington (2 hours north of Portland) to visit Evergreen State College. This was a real eye opener for both of us. I knew Evergreen was cool (and another of the small number of public liberal arts colleges in the U.S.), but didn’t know a lot of the details, and I think we both found the unusual curriculum and environment really interesting and thought provoking.
I had arranged beforehand to meet some of the computing faculty at Evergreen so we could learn a little more about their program as part of a program review we’re doing at Morris, so after the information session and tour we met up with Sherri Shulman and then headed over to meet her husband and fellow CS faculty, Neal Nelson. When Neal walked in, there was this very weird moment where we both those we knew each other but weren’t sure why. Duh, duh, and double duh – Neal was my undergraduate thesis advisor at Reed! I’d lost track of him when he left Reed in 1988, and I somehow thought he’d gone into industry so I wasn’t even looking to find him anywhere in our travels. Given all that and the the fact that his name doesn’t particularly stand out (and that I’m really crap with names), I totally didn’t consider the possibility that I knew this Neal guy we were going to see. After recovering from that somewhat awkward start, Sherri, Neal, and I had a really excellent conversation that ran a couple of hours easy. Lots of catching up on old times, as well as discussing undergraduate computing curriculum with limited resources in a public school – many thanks to both of them for all their time!
After returning to Portland, we went to Papa Haydn’s, possibly the best source of wonderfully scrumptious and rich desserts that I know of in the U.S. I had a wonderful Autumn Meringue and it was just like being a college student again (without the metabolism of a 20 year old). We used to walk out to Papa Haydn’s from Reed (maybe a 30 minute walk) several times a year and indulge, and was so cool to go back and find that it really hadn’t changed much in all those years.
That night was the opening reception at GECCO, so Tom and I hung around for a few hours eating little snacky things and chatting with various folks. Tom had never met most of my EC friends and colleagues, and he was very cool at meeting a bunch of strangers that are, even worse, all science nerds to a very high degree. Luckily it’s a really cool group of people, and I think he actually enjoyed himself.
By Day 9 I’d actually skipped out on the bulk of the first two days at GECCO, so at this point I essentially abandoned my son to the wilds of downtown Portland and started pretending to be a scientist for a bit. He spent most of his time hanging at Powell’s and reading books, while I listened to people talk about their cool evolutionary computation research.
That night I did actually skip out on the last session, though, and went back to Reed to join a bunch of faculty that have a regular Friday beer and food gathering at Woodstock Wine and Deli up the hill from campus. Jim had invited me to join them, and it was a great chance to meet some people I knew that I’d missed before (like Ray Mayer) and a bunch of other faculty that are new to the college since I was a student there in the dim past.
I wasn’t the only one meeting up with old friends, as Tom met up with Perry Webster from Morris (currently attending the University of Portland) and hung with her and a family friend pretty much the whole evening, which was a neat chance for him to spend a little time with people more his age :-).
Day 10 was much the same, although I stayed at the conference pretty late because the poster session and associated reception was that evening.
Day 11 (today) was the end of the conference, including eating lunch in the hotel sports bar with a bunch of very enthusiastic Europeans watching the World Cup final! Eli Mayfield (UMM ’09, now a grad student at Carnegie Mellon studying natural language processing) gave a talk today, and did a really excellent job. Tom and I went out to Jake’s Famous Crawfish with Eli and Bill Tozier. Jake’s was a great seafood house back in the day, and they didn’t disappoint, providing us with excellent food to go with the fine conversation. That was a great way to end our time in Portland!
Now we’re off to bed, and tomorrow we drive south to Tule Lake and Lava Beds National Monument. With a little luck we may hook up with Wayne Manselle in Eugen on the way!
Day 7 started with a vist to Lewis and Clark College, which was interesting if not overwhelming for Tom. It’s a gorgeous campus and the study abroad stuff there is very cool, but it didn’t particular ring Tom’s bells.
We then spent most of the day hanging around Portland together, including a visit to the mighty and wonderful Powell’s City of Books (one of the last, great independent book stores) and checking in at GECCO to get my registration stuff. Tom totally loved Powell’s (“I could get lost in here!”), and has in fact spent large amounts of my money and his time there this week while I was at the conference. We also went out and saw Toy Story 3 that night, which turned out to be every bit as good as everyone’s said it is – lots of fun and very well written.
Day 8 was our last college visit in this part of the world, as we headed up to Olympia, Washington (2 hours north of Portland) to visit Evergreen State College. This was a real eye opener for both of us. I knew Evergreen was cool (and another of the small number of public liberal arts colleges in the U.S.), but didn’t know a lot of the details, and I think we both found the unusual curriculum and environment really interesting and thought provoking.
I had arranged beforehand to meet some of the computing faculty at Evergreen so we could learn a little more about their program as part of a program review we’re doing at Morris, so after the information session and tour we met up with Sherri Shulman and then headed over to meet her husband and fellow CS faculty, Neal Nelson. When Neal walked in, there was this very weird moment where we both those we knew each other but weren’t sure why. Duh, duh, and double duh – Neal was my undergraduate thesis advisor at Reed! I’d lost track of him when he left Reed in 1988, and I somehow thought he’d gone into industry so I wasn’t even looking to find him anywhere in our travels. Given all that and the the fact that his name doesn’t particularly stand out (and that I’m really crap with names), I totally didn’t consider the possibility that I knew this Neal guy we were going to see. After recovering from that somewhat awkward start, Sherri, Neal, and I had a really excellent conversation that ran a couple of hours easy. Lots of catching up on old times, as well as discussing undergraduate computing curriculum with limited resources in a public school – many thanks to both of them for all their time!
After returning to Portland, we went to Papa Haydn’s, possibly the best source of wonderfully scrumptious and rich desserts that I know of in the U.S. I had a wonderful Autumn Meringue and it was just like being a college student again (without the metabolism of a 20 year old). We used to walk out to Papa Haydn’s from Reed (maybe a 30 minute walk) several times a year and indulge, and was so cool to go back and find that it really hadn’t changed much in all those years.
That night was the opening reception at GECCO, so Tom and I hung around for a few hours eating little snacky things and chatting with various folks. Tom had never met most of my EC friends and colleagues, and he was very cool at meeting a bunch of strangers that are, even worse, all science nerds to a very high degree. Luckily it’s a really cool group of people, and I think he actually enjoyed himself.
By Day 9 I’d actually skipped out on the bulk of the first two days at GECCO, so at this point I essentially abandoned my son to the wilds of downtown Portland and started pretending to be a scientist for a bit. He spent most of his time hanging at Powell’s and reading books, while I listened to people talk about their cool evolutionary computation research.
That night I did actually skip out on the last session, though, and went back to Reed to join a bunch of faculty that have a regular Friday beer and food gathering at Woodstock Wine and Deli up the hill from campus. Jim had invited me to join them, and it was a great chance to meet some people I knew that I’d missed before (like Ray Mayer) and a bunch of other faculty that are new to the college since I was a student there in the dim past.
I wasn’t the only one meeting up with old friends, as Tom met up with Perry Webster from Morris (currently attending the University of Portland) and hung with her and a family friend pretty much the whole evening, which was a neat chance for him to spend a little time with people more his age :-).
Day 10 was much the same, although I stayed at the conference pretty late because the poster session and associated reception was that evening.
Day 11 (today) was the end of the conference, including eating lunch in the hotel sports bar with a bunch of very enthusiastic Europeans watching the World Cup final! Eli Mayfield (UMM ‘09, now a grad student at Carnegie Mellon studying natural language processing) gave a talk today, and did a really excellent job. Tom and I went out to Jake’s Famous Crawfish with Eli and Bill Tozier. Jake’s was a great seafood house back in the day, and they didn’t disappoint, providing us with excellent food to go with the fine conversation. That was a great way to end our time in Portland!
Now we’re off to bed, and tomorrow we drive south to Tule Lake and Lava Beds National Monument. With a little luck we may hook up with Wayne Manselle in Eugen on the way!
The May, 2010, issue of the Communications of the ACM (CACM – the flagship magazine of the ACM) features a photograph of UMM CSci alum Tyler Hutchison presenting research work done with Andy Korth and Nic McPhee at MICS 2007. The article is “Student and Faculty Attitudes and Beliefs About Computer Science”. Andy and Tyler won the best student paper award at that year’s MICS for their paper “On the impact of geography and local mating in evolutionary computation”. The photo (taken by me during Tyler and Andy’s joint MICS presentation) features some of Tyler’s artwork illustrating the material.
The graphics folks at CACM found my photo on Flickr, and contacted me via Flickr offering to pay me a small fee if I’d be willing to let them use it. I happily said "Yes", and the rest is history.
As well as being a cool computer-science-type, Tyler is also a cool comic-art-type, and did the nifty drawings for the cover of our book "A field guide to genetic programming".
Happy, happy, happy.
But I’m easily amused :-).
In fairness, this could well be the one and only time I ever get published in CACM. I’m not all that likely to submit an article to them (in part because I don’t tend to write things they might want), so this could easily be the pinnacle of my career in terms of the number of people in my field seeing my work.
Some highlights from the “Purpose of the Position” section:
General priorities for the position include:
promoting a 21st century learning and teaching environment for an undergraduate focused residential campus;
supporting through technology and information resources the research endeavors of a highly qualified and active faculty; and
advancing the use of technology to engage a growing base of prospective students, donors, and alumni.
Specifically, the Director of Information Technology will:
Provide IT leadership to the Morris campus and in the broader University community.
Serve as a key member of the Morris campus and University of Minnesota technology leadership team, which formulates and implements local and institutional goals and initiatives.
Partner with the academic and administrative leadership across the Morris campus and university-wide to participate in the creation and implementation of strategic goals and IT initiatives.
I’m a member of the search committee, and I want to share this information here for two reasons.
First, if anyone reading this is interested, please consider applying!
Second, the search committee is gathering feedback from various stakeholders about what we want this person to be and do. Before we begin to look at applications, the committee would like to try to clarify as best we can what the campus wants and needs from someone in this position.
So, what do you think are the priorities for UMM’s Director of Information Technology? What do they need to do to support the teaching, research, and service missions of campus? Looking ahead 5 years, what issues do you feel that this person will need to address/get ahead of? On of my concerns in recent years has been that the campus has been far too reactive to technological change, and instead of being ahead of the ball we’re constantly scrambling to respond to events and put out fires. What skills and background does this person need to help us turn that around?
I’d be happy to discuss this at UMM CSci tea tomorrow afternoon (4-6ish in the lab), or hear from anyone by whatever other means work for you. If you have ideas or thoughts, however, please share promptly; we want to wrap up this fact finding process in the next two weeks (by the morning of Tuesday, 20 Apr).
Segregating information by its mode of production, convenient and profitable for software houses, too often becomes a corrupting metaphor for evidence presentations. Why should the intellectual architecture of our reports and evidence reflect the the chaos of software bureaucracies producing those reports?
Flickr’s Uploadr is fine for small uploads, but tends to die consistently and unpleasantly when I have several hundred photos to upload, like those from Thursday’s opening of “The boys next door”, this year’s Morris Area High School one-act. It almost always takes me several tries to get a large pool of photos uploaded, which is a pain, but not fatal. This time, however, it chose to upload them in a semi-random order, so then it died I had 80-ish photos scattered all across the show, which meant I couldn’t just delete the first K from the list and restart the upload. Ugh.
Because it was late and I was in a hurry, I ended up just uploading the whole set (over several attempts), but marked them as private so people wouldn’t end up seeing two copies of that first group of images, figuring I’d sort things out in the morning.
The morning came, and it turned out that I really didn’t have a workable plan. All the pictures were on Flickr, but there was no good (i.e., automated) way to figure out which were the duplicates. If I could identify them, then deleting the duplicates and making the rest visible would be easy, but I didn’t have a clue how to find the duplicates using Flickr’s tools.
Sigh.
This would, however, be pretty straight forward in a script if I had all the data I needed, and this is where Flickr redeemed itself. They have a very rich API for accessing (and modifying) photos and their associated information (like tags), so if I could figure out how to use that I’d be golden. I’d poked a little with some Ruby Flickr libraries in the past, but none of them ever seemed very complete and they were always struggling to stay on top of Flickr’s changes and extensions to the API. A little searching this time, however, turned up Flickraw, which uses some really nifty Ruby metaprogramming to essentially build the Ruby part of the API “on the fly”, ensuring that it will be complete and up-to-date all automagically!
It turns out that Flickraw was indeed powerful, flexible, and easy to use. After authenticating (following the example on the Flickraw web site), I was able to use it to pull down a list of all the photos from “The boys next door”
my_owner_id = "68457656@N00"
play_title = "The boys next door"
my_stream = flickr.photos.search(
:user_id => my_owner_id,
:text => play_title,
:per_page => 500)
I then split that list into the initial set of publicly visible photos, and the photos I’d uploaded after things got screwy and kept private (i.e., visible only to me):
My next task was to determine which of the private photos were duplicates of one of the public photos people were already looking at. All I really needed was the list of duplicates, but I decided to create lists of both the duplicates and the non-duplicates. I had to compare titles here because the Flickr IDs would be different; as far as Flickr knew they were all different photos. Happily, I had named them in a way that they each had a unique title, so if two photos had the same title, I knew they were the same shot uploaded twice.
dups = []
non_dups = []
private_photos.each do |photo|
public_duplicate = public_photos.find { |pub| photo.title == pub.title }
if public_duplicate
dups.push(photo)
else
non_dups.push(photo)
end
end
At this point, I could apply tags to all the photos in the two groups, and all the rest of the fiddling could be done through Flickr’s web tools:
non_dups.each do |photo|
flickr.photos.addTags(:photo_id => photo.id,
:tags => "to_keep")
end
dups.each do |photo|
flickr.photos.addTags(:photo_id => photo.id,
:tags => "to_delete")
end
I could have actually done everything with the Ruby script (delete the duplicates, change the remaining images to publicly visible, and add them to the appropriate set), but wanted to do that via Flickr so I could see what was happening as I went. And once the tags were in place, the work in Flickr was quite straightforward. The result: A set of 339 images that contains all the photos I uploaded, with no duplicates, all accomplished without deleting any of the original uploads.
Big thanks to Maël Clérambault, the author of Flickraw, for his excellent little library, and thanks to Flickr for providing this very nice set of API calls. (Now go fix Flickr Uploadr, damnit!)
As for the play – I just heard that they took second at today’s sub-sections competiton, which means they move on to sections next week, and Tom got a star performance award! Congratulations all!
When I came back from the holidays I had a very pleasant surprise waiting for me in my office mailbox: A 2010 calendar from Schloss Dagstuhl. Each month has a small day grid at the top, and one or two photos of Dagstuhl below; the photos for each month are actually the front of a postcard that you can separate from the calendar and use.
The cool part is that most of the photos are mine! This set on Flickr shows all the photos they used, although many of them actually look much better in the calendar. Their staff did a really great job of straightening, cropping, and adjusting the lighting on the shots that they used, and it really made the photos look really nice. Thanks to whoever did the excellent work! Christian Lindig informs me (see the comments) that the design work was done by Margot Behr. Thanks for the great work, Margot!
It was really weird when I first looked at the calendar, because I really wasn’t sure how many of the photos were mine. There were two or three that I immediately recognized as mine (like the image at the top), but there were quite a few indoor detail shots that seemed like the kind of thing that I’d take (like the dragon below), but which I didn’t really recognize. There were also several of buildings that could have been mine, but could have been taken by most anyone. Going through, them, though, I was able to determine that all but two were in fact mine. The cropping (and to a lesser degree the cleaning) that the Dagstuhl folks did often threw me as it sharpened the focus in cool ways that I hadn’t seen or thought of.
Iron dragon at Dagstuhl
The Flickr set has the 13 photos they used, in the order that they appear in the calendar. (Three of the cards are composites of two photos, which is why there’s more than 12 photos.)
As reported earlier, I managed to use a few drops of nail polish remover to postpone my iPod Touch’s trip to the great pile of electronic waste that is one of the banes of our modern world. In the comments Matt Carlson mentioned that he’d had a similar experience reviving an MP3 player with a stuck hard drive head by smacking it — smacking it so hard that it flew out of his hand!
Well, wouldn’t you know it, but we happen to have a nice 80Gb iPod Classic (pictured above) that died over the summer with the telltale clicking sound of a stuck head. So I tried out Matt’s trick & whacked quite firmly (& quite loudly) multiple times on an old wooden chest and voilà – it came back to life! We thought we’d be travelling without the benefit of our huge shared pile of music, but it’s worked beautifully for many hours (all the way down to Arkansas & back).
Huzzah! Big thanks to Matt for the suggestion – banging on hardware beats the heck out of having to buy a new iPod. Again, I was only willing to risk this because this puppy was well past warranty, and there was no chance of repairing it. Obviously beating the tar out of electronics is something one should think carefully about and do with some care; your mileage definitely may vary.
Our family iPod (which is truly dead due to a bad hard drive, but that's another story)
I’ve had my iPod Touch for about 1.5 years and can’t really imagine living without it. I had a Palm Pilot at two different times in the past, and I never felt the need to replace either of them when they died. Life without the Touch, however, has quickly become unthinkable.
Thus I was pretty seriously distressed when the home button quit responding yesterday. It had been acting a little touchy for a while, but I could always get it to respond if I was persistent. Yesterday, however, it just went dead. Kaput. The end. This is the kind of thing you don’t repair, and I wasn’t super keen on spending a few hundred to replace it, especially since everything worked fine except that one crucial little button.
A little searching turned up this forum thread, which boils down to two recommendations:
Blow compressed air into the connector slot at the bottom
Put a drop of contact cleaner, nail polish remover, or other water-free solvent on the button, and then work the button to try to get the solvent to wick around to the where the contacts are
Both of these are based on the assumption that the problem is some dirt or or gunk that’s collected under the button and is interfering with the contacts. Since my iPod lives pretty much permanently in my jeans pocket (along with pens, keys, lint, and various other experiments in the spontaneous generation of life), that assumption seemed pretty reasonable.
Some of the people that tried the solvent approach got too much in there, and it seeped along the screen, giving them an undesired aquarium effect. Consequently, I tried the compressed air first, since that seemed least likely lead to some unfortunate side-effect. Sadly, it also didn’t lead to the desired effect either. Consequently I moved on to nail polish. I put a drop on the button, and then clicked and wiggled that little button to try to work the liquid around. And after maybe thirty seconds of fiddling … voila! It started working!
It’s now been most of an hour, and the fix seems solid. I’ve had it propped up with the button end down, so if there’s any liquid still in there it’s headed away from the screen and the bulk of the electronics, and by now I would assume that most of the liquid has evaporated anyway.
I’d think twice about trying this at home, especially if you have a working piece of electronics. Mine was completely unusable without the button, so I was willing to take the risk, but I can imagine a lot of ways in which this might not go well, so tread gently into these swamps.
Some deluded people believe that textbook orders for Fall Semester were due a month ago, but I’m never, ever close to on-time on these things, and am just now getting to it in a serious way. I’m teaching three courses in the fall:
Models of Computing Systems
Fuzzy logic and fuzzy sets
Refactoring
I’ve taught Refactoring several times and have a pretty good handle on that. Fuzzy Logic I’ve taught once before and am pretty comfortable with. The Systems course, however, is one I’ve never taught before and am still struggling with on a number of levels, including the textbook.
Any suggestions and ideas on any of these would most certainly be appreciated. I’ll say a little more about each course below the fold for those who want all the gory details.
Models of Computing Systems This is one of our three core courses (the others being Algorithms and Computability, and Software Design and Development), is a 5 credit course (4 hours of lecture and a 2 hour lab each week), and is intended to expose students to computing systems using a layer model that includes as major topics
Assembly language and a quickie overview of basic architecture
Operating systems basics, with an emphasis on processes, process management, and threading/concurrancey
Computer networks
System administration, including the installation, configuration, and management of common tools like web servers
I’m planning to use x86 assembly for the first item, and the sysadmin work will happen on Linux boxes. I’m planning (still in a vague way at the moment) to try to use computer security issues to motivate/illustrate a number of key concepts in this course. Things like file system and disk structure can be pretty abstract, for example, but I’m thinking that doing a lab where we see how those decisions lead to lots of “erased” data being recoverable might make it seem more “real” and significant.
I realize that no book is going to cover all these things, and on-line resources plus lecture can provide the necessary background for several of these. This course has typically using a “standard” OS book like Silberschatz, et al, but this is large and expensive and really only addresses one of the four topics. If anyone knows of a good book that would touch meaningfully on more than one of these areas, though, that would be really helpful.
Fuzzy logic This is a 2 credit elective course, and should provide a reasonable background in the theoretical definitions and concepts in fuzzy logic, as well as giving the students a chance to apply those ideas. (My current plan is to write robot race car drivers using fuzzy notions of concepts like fast, slow, near, and straight.)
I’m probably more interested in solid coverage of the theoretical material than the applications side. The students will benefit from a good introduction and reference on the mathematical material, and I can probably handle the motivation and application side in class pretty well.
Refactoring This is also a 2 credit elective course. I’ve taught this course several times, and I’m likely to again use a combination of Fowler’s Refactoring and Kerievsky’s Refactoring to Patterns. Fowler is the “standard” in the field; the first five chapters of his book are absolutely classic material on the realities of software development and should be read by pretty much anyone who aspires to write good software. Kerievsky’s book builds on Fowler and does a really nice job of demystifying design patterns, converting them from magical insights codified by geniuses into things you could discover on your own through careful refactoring. When I last taught it I think I had Kerievsky as the required text and Fowler as the optional book. Given that together they still add up to less than $100, I’m tempted to require them both. We have lots of copies of Fowler in the lab, though, so I might just require Kerievsky again. Ideas/thoughts on this would definitely be appreciated.
One of the problems we’ve run into in this course in the past has been attempting refactorings on code with limited automated testing. Without good tests you lose your courage to refactor mercilessly, or you have false courage and end up breaking things without realizing it until (sometimes much) later. With only 2 credits to work with, however, you don’t want to spend two weeks writing unit tests for a system before you can start refactoring it, especially when you don’t really understand what the units are and what they’re supposed to be doing. This time I’m planning to use BDD tools like Cucumber, RSpec, and JBehave this time to more cheaply write high level acceptance/functional tests that exercise the key parts of the system in meaningful ways without getting bogged down in a bunch of poorly understood unit tests. We’ll see how that goes.
Wrap-up
So, there they be. Any thoughts, ideas, or suggestions would be greatly appreciated, especially on the Models of Computing Systems course.
I’m completely exhausted. I had the pleasure today of explaining a little bit about computers and algorithms to some kindergarteners, and it just about wiped me out :-).
Timna Wyckoff (one of our biologists and mother of a kindergartener) arranged to have all the local kindergarten kids comes to the science building for 90 minutes to learn a little bit about science. They were divided up into groups of about twelve, and each group spent about 30 minutes at three of the six stations we’d set up.
I talked with them about their experience using computers at school (mostly “playing games”) and how the computer did things like draw pictures on the screen. (We determined that it wasn’t elves or fairies or tiny mice with little glasses and hats that took coffee breaks when you turned the computer off.) We then talked about how computers are machines, like their fridge or a car, and let them look inside a couple of old boxes destined for the scrap heap. This led to a bit on how computers are general purpose machines instead of single purpose machines (”Can you drive your fridge to the store?”), and how what the do is determined by the program they run. It turns out that computers are in fact machines specifically designed to follow lists of instructions, and programs are lists of instructions created by computer scientists that tell the computer how to do certain things (like draw dinosaurs on the screen). We then headed into a semi-tangential (but concrete for 5 and 6 year olds) discussion of recipes as a instructions, and people as machines for following those instructions. Finally, if and as time allowed (and it varied quite a bit across my three groups), they all got numbers, stood in a line, and pretended they were a computer running through the bubble sort algorithm. (Yeah, bubble sort. Don’t shoot me – it’s easy to run through with little kids.)
I spent a total of 90 minutes doing this three times, plus some setup at the beginning and tear down at the end, and I’m exhausted. If nothing else, this reinforced my belief that a good teacher of young kids is a real treasure. These are bright, enthusiastic kids, but they don’t always focus real well, and my short morning is enough to send me scurrying back to teaching adults. (To be honest, my students don’t always focus well, but they’re much less likely to distract everyone around them in the process.)
This was my first time doing this, and my little script was an amalgam of lots of ideas from KK, Timna, and WeatherGrrrl, and various students and alum responding to my request for ideas on Twitter. Many thanks to all of them for their ideas and feedback!
I spent a lot of time on the road to & from the Twin Cities in the last few weeks, so I used that chance to catch up on some old podcasts and explore some new ones. A really nifty discovery this weekend was a panel discussion on Web 2.0 by the smart folks at ThoughtWorks. The discussion is led by Martin Fowler. Fowler goes through Tim O’Reilly’s seminal “What Is Web 2.0: Design Patterns and Business Models for the Next Generation of Software” from 5 years ago, where O’Reilly lays out what he believes to be seven defining principles of Web 2.0. Fowler and the panel discusses each of these seven principles, looking at how they’ve held up over time. While the panelists didn’t think that all had held up equally well, in general O’Reilly had successfully identified many of the key trends. One might think this conversation is pretty esoteric, but I think it would be understandable and valuable to anyone looking to better understand what the web has become (and is still becoming). Definitely recommended!
It’s interesting to see in what ways various organizations do and don’t “get” these changes. Sadly, the U in general and the Morris campus in specific, for example, aren’t generally real on top of things when it comes to modern web technology. What’s particularly frustrating is the U’s unwillingness to work with and empower their users to help generate and manage content and value. Big Web 2.0 successes like Google and Amazon, Twitter and Flickr are all about leveraging user generated content. The U has its little fits in that direction (the U of M wiki, the UThink blogs), but they’re always peripheral to the life of the University, always in the back alleys instead of on the front page.
The ThoughtWorks discussion runs about an hour, and they divided it up into three chunks for podcasting. Unfortunately they haven’t released a new podcast since last July, so it appears that I’m late to the party and the party may be over. I look forward to listening to their other podcasts, and I certainly hope that they start making new episodes sometime soon.
If you’re interested you can find all their podcasts on the ThoughtWorks What We Say page through either RSS or iTunes.
Of course I never actually mentioned here (at least not recently) that I was giving a Cafe Scientifique talk, but I did and it went fine. I gave a presentation last night at the Common Cup coffee house entitled “An overview of cryptography: What happens to your credit card number on-line, and is that e-mail really from your boss?”. The audience was small (20-ish?), but attentive and interested, and I think it went nicely. The truly shiftless can download a PDF copy of my slides for their amusement.
Many thanks to PeeZeed for bringing this wonderful Cafe Scientifique idea to Morris and organizing the events. The quality of both the talks and the audiences has been very high, and I know I’ve learned a lot from attending.
The one slightly unfortunate thing has been the degree to which the audiences have been primarily University folk, and science folk at that. Nothing wrong with that (I got lots of very cool questions last night, for example), but if one of the goals of C.S. is to bring science to the “general public”, having the audience be largely university science faculty isn’t quite the game plan.
I think that there are some historical and cultural issues at work. Also, despite the oft-heard mantra that “There’s nothing to do in Morris”, there were quite a few competing events last night that I know pulled quite a few people away. Ultimately, though, we haven’t done a terribly great job of advertising/promoting these things. Sadly, I’m as guilty as anyone here. I had grand plans to promote last night’s talk (radio interviews, newspaper promotion, posters, etc., etc.), but in the end life pushed this right on down the list of important things to do. Sigh.
We’ve got one more this school year, with Mark Logan discussing origami and mathematics, which should be a fun evening. We’re great at the science - now we just need to work on our PR.
Please forgive me for another round of pro-Flickr babbling, but I just ran across some really wonderful photojournalism and had to share. The photo above is by Hugo* and is part of an excellent series documenting recent unrest in France. This is truly fine work, and certainly as good (or better) than a whole lot of the “professional” work out there. Time Magazine, for example, recently published their Best photos of the year 2005, and while they have some really nice ones, their list has several that I’d replace with images like Hugo*’s or some of the excellent post-Katrina documentation of Tampen (below).
Flickr keeps track of how many times your “photostream” (as opposed to individual photos) is viewed. I’ve been heading towards 10K photostream views and was planning on posting a self-congratulatory (but ultimately pointless) note when that happened. Today, though, I happened to see it when it was exactly 9,000 views and just couldn’t resist the opportunity to capture the moment.
Yeah.
After all the winter pictures I’ll leave you with a green, summery image. It was actually taken inside, but Spring is coming. We actually took the bikes out of the basement a week ago Sunday. Then, of course, it snowed that night and the next day and there they sat looking cold and miserable. Arggghhh. Things did improve, though, and Sub-Evil Boy and I biked in both yesterday and today, and it was quite wonderful. Still a bit chilly (esp. with the windchill at bicycle speeds), but we’re moving in the right direction.
These are the two gift samplers mentioned earlier. The one on the left is the one Carole made for Randee, and the one on the right is the one WeatherGirl did for Athena.
While I was there on Saturday with my tripod I took various random pictures, including this shot of one of the two spiffy new hand-painted ceilings that were done by Lisa Johannes as part of the rennovation of the Stevens County Museum.
The discussion of this over on Flickr has been interesting. I was especially struck by a comment from Eryximachos (who has a cool photo stream) that he had initially thought it was done with Photoshop. I hadn’t thought about it that way at all until I read the comment, but immediately saw where he was coming from when I did. I was drawn to the image in part because of the incongruity of the chandelier hanging down from “the sky” with the birds flying around it, which is exactly the kind of thing that Magritte did in paint and Pedro Meyer has done with digital image editing (I highly recommend Meyer’s wonderful Truths and fictions CD-ROM).
And then one could riff on how hip-hop turntabling grew in part from kids thinking that things they were hearing on the radio were being mixed “live” when in fact they had been spliced together in the studio. But not today…
Lots of good news today on the student research front, with three funding proposals getting the thumbs up. Brian’s MAP proposal was accepted, so he’ll get paid to spend the summer here doing research with me, following up on some very cool ideas at Dagstuhl. Tyler and Andy’s UROP also got local approval, and now go to the Twin Cities campus for final approval.
Congrats to the guys! I’m looking forward to some very cool work coming out of this…