November 26, 2015 11:04 AM

I Am Thankful for Programming

I smiled a big smile when I read this passage in an interview with Victoria Gould, a British actor and mathematician:

And just as it did when she was at school, maths still brings Victoria relief and reassurance. "When teaching or acting becomes stressful, I retreat to maths a lot for its calmness and its patterns. I'll quite often, in a stressful time, go off and do a bit of linear algebra or some trigonometric identities. They're hugely calming for me." Maths as stress relief? "Absolutely, it works every time!"

It reminded me of a former colleague, a mathematician who now works at Ohio University. He used to say that he had pads and pencils scattered on tables and counters throughout his house, because "I never know when I'll get the urge to do some math."

Last night, I came home after a couple of days of catching up on department work and grading. Finally, it was time to relax for the holiday. What did I do first? I wrote a fun little program in Python to reverse an integer, using only arithmetic operators. Then I watched a movie with my wife. Both relaxed me.

I was fortunate as a child to find solace in fiddling with numbers and patterns. Setting up a system of equations and solving it algebraically was fun. I could while away many minutes playing with the square root key on my calculator, trying to see how long it would take me to drive a number to 1.

Then in high school I discovered programming, my ultimate retreat.

On this day, I am thankful for many people and many things, of course. But Gould's comments remind me that I am also thankful for the privilege of knowing how to program, and for the way it allows me to escape into a world away from stress and distraction. This is a gift.

Posted by Eugene Wallingford | Permalink | Categories: Computing, Personal

November 25, 2015 10:50 AM

It Started with a Tweet

Bret Victor's much-heralded What Can a Technologist Do About Climate Change? begins:

This started with a tweet. I'm embarrassed how often that happens.

Why be embarrassed? I am occasionally embarrassed when I tweet snarky and mildly regrettable things, but only because they are snarky and regrettable. However, having a thought, writing it down, and thinking some more is a perfectly honorable way to start writing an essay. Writing something down on Twitter has the advantage of sharing the idea with one's followers, which creates the possibility of getting feedback on the idea from smart, thoughtful people.

Sharing idle thoughts with the world can add value to them. They aren't always so idle.

Posted by Eugene Wallingford | Permalink | Categories: General

November 20, 2015 6:02 PM

The Scientific Value of Reading Old Texts

In Numbers, Toys and Music, the editors of Plus Magazine interview Manjul Bhargava, who won a 2014 Fields Medal for his work on a problem involving a certain class of square numbers.

Bhargava talked about getting his start on problems of this sort not by studying Gauss's work from nineteenth century, but by reading the work of the seventh century mathematician Brahmagupta in the original Sanskrit. He said it was exciting to read original texts and old translations of original texts from at least two perspectives. Historically, you see an idea as it is encountered and discovered. It's an adventure story. Mathematically, you see the idea as it was when it was discovered, before it has been reinterpreted over many years by more modern mathematicians, using newer, fancier, and often more complicated jargon than was available to the original solver of the problem.

He thinks this is an important step in making a problem your own:

So by going back to the original you can bypass the way of thinking that history has somehow decided to take, and by forgetting about that you can then take your own path. Sometimes you get too influenced by the way people have thought about something for 200 years, that if you learn it that way that's the only way you know how to think. If you go back to the beginning, forget all that new stuff that happened, go back to the beginning. Think about it in a totally new way and develop your own path.

Bhargava isn't saying that we can ignore the history of math since ancient times. In his Fields-winning work, he drew heavily on ideas about hyperelliptic curves that were developed over the last century, as well as computational techniques unavailable to his forebears. He was prepared with experience and deep knowledge. But by going back to Brahmagupta's work, he learned to think about the problem in simpler terms, unconstrained by the accumulated expectations of modern mathematics. Starting from a simpler set of ideas, he was able to make the problem his own and find his own way toward a solution.

This is good advice in computing as well. When CS researchers tell us to read the work of McCarthy, Newell and Simon, Sutherland, and Engelbart, they are channeling the same wisdom that helped Manjul Bhargava discover new truths about the structure of square numbers.

Posted by Eugene Wallingford | Permalink | Categories: Computing, Teaching and Learning

November 19, 2015 2:45 PM

Hope for the Mature Researcher

In A Primer on Graph Isomorphism, Lance Fortnow puts László Babai's new algorithm for the graph isomorphism problem into context. To close, he writes:

Also we think of theory as a young person's game, most of the big breakthroughs coming from researchers early in their careers. Babai is 65, having just won the Knuth Prize for his lifetime work on interactive proofs, group algorithms and communication complexity. Babai uses his extensive knowledge of combinatorics and group theory to get his algorithm. No young researcher could have had the knowledge base or maturity to be able to put the pieces together the way that Babai did.

We often hear that research, especially research aimed at solving our deepest problems, is a young person's game. Great work takes a lot of stamina. It often requires a single-minded focus that comes naturally to a young person but which is a luxury unavailable to someone with a wider set of obligations beyond work. Babai's recent breakthrough reminds us that other forces are at play, that age and broad experience can be advantages, too.

This passage serves as a nice counterweight to Garrison Keillor's The slow rate of learning... line, quoted in my previous post. Sometimes, slow and steady are what it takes to get a big job done.

Posted by Eugene Wallingford | Permalink | Categories: Computing, General

November 17, 2015 3:32 PM

Choice Passages from Recent Reads

Eric Schmidt, in an interview for Blitzscaling:

Every great project has started with a graduate student and an assistant professor looking for tenure.

Sir Peter Swinnerton-Dyer, quoted in an article about John Horton Conway:

I'm not sure that I can describe how charisma happens. It just is or isn't. And with most mathematicians it markedly isn't.

Alan Jacobs, in his 79 Theses on Technology For Disputation, as recorded by Chad Wellmon:

Everyone should sometimes write by hand, to recall what it's like to have second thoughts before the first ones are completely recorded.

Garrison Keillor, in his novel "Love Me":

We puritans overdramatize these things. We want there to be lions stalking us, whereas it's only some old coyote. Not utter degradation; just poor choices.

Truth, resignation, and freedom, all in one brief passage. I also like this one:

The slow rate of learning is discouraging to the older man, but thank God for illumination at whatever hour.

Yes, indeed.

Posted by Eugene Wallingford | Permalink | Categories: General

November 08, 2015 9:37 AM

Enthusiastic Recommendation Is Not A Vice

Novelist Henry Miller lamented one of his greatest vices, recommending books and authors too enthusiastically, but ultimately decided that he would not apologize for it:

However, this vice of mine, as I see it, is a harmless one compared with those of political fanatics, military humbugs, vice crusaders, and other detestable types. In broadcasting to the world my admiration and affection, my gratitude and reverence, ... I fail to see that I am doing any serious harm. I may be guilty of indiscretion, I may be regarded as a naïve dolt, I may be criticized justly or unjustly for my taste, or lack of it; I may be guilty, in the high sense, of "tampering" with the destiny of others; I may be writing myself down as one more "propagandist", but -- how am I injuring anyone? I am no longer a young man. I am, to be exact, fifty-eight years of age. (Je me nomme Louis Salavin.) Instead of growing more dispassionate about books, I find the contrary is taking place.

I'm a few years younger than Messrs. Miller and Salavin, but I share this vice of Miller's, as well as his conclusion. When you reach a certain age, you realize that admiration, affection, gratitude, and reverence, especially for a favorite book or author, are all to be cherished. You want to share them with everyone you meet.

Even so, I try to rein in my vice in the same way Miller himself knew he ought in his soberer moments, by having a lighter touch when I recommend. Broadcasting one's admiration and affection too enthusiastically often has the opposite effect to the one intended. The recipients either take the recommendation on its face and read with such high expectations that they will surely be disappointed, or they instinctively (if subconsciously) react with such skepticism that they read with an eye toward deflating the recommendation.

I will say that I have been enjoying The Books In My Life, from which the above passage comes. I've never read any of Miller's novels, only a Paris Review interview with him. This book about the books that shaped him has been a pleasant introduction to Miller's erudite and deeply personal style. Alas, the occasional doses of French are lost on me without the help of Google Translate.

Posted by Eugene Wallingford | Permalink | Categories: General, Personal

November 03, 2015 4:10 PM

Academic Computer Science is Not University IT

The Department of Biology operates a greenhouse so that its faculty can cultivate and study a wide range of plants. The greenhouse offers students a chance to see, smell, and touch real, living plants that they may never have encountered before. With the greenhouse as an ecosystem, students get to learn about the relationships among species and a little about how species evolve. The ecological setting in which the plants are grown provides the context needed for faculty to demonstrate realistically how organisms are connected within environments.

Faced with budget cuts, the university has decided that it is no longer cost-effective to have biology staff operate the greenhouse. We already have a grounds and landscaping unit as part of the physical plant, and its staff has expertise for working with a variety plants as a part of managing lawns and gardens. To save money, the administration is centralizing all plant management services in grounds and landscaping. If the folks in Biology needs anything done in or for the greenhouse, they call a designated contact person. They will have to streamline the offerings in the greenhouse, based on university-wide decisions about what kind of plants we can afford to support.


The Department of Art has a number of faculty who specialize in drawing, both pencil and ink, and in painting. All students who major in art take two courses in drawing as part of the foundations sequence, and many studio art majors take painting. Both media help students learn to see and teach them about how their materials interact with their vision and affect the shape of their creative works.

Faced with budget cuts, the university has decided that it is no longer cost-effective to have the art faculty select and buy their own pencils, ink, and paints. We already have a couple of units on campus who purchase and use these materials. Operation and Maintenance does a wide variety of carpentry projects that include painting. All campus staff use pencils and ink pens, so Business Operations has purchasing agreements with several office supplies wholesalers. These agreements ensure that university staff can stock a range of pencils, pens, and paints at the best possible price.

When one of the drawing faculty calls over for a particular set of soft graphic pencils, ranging in hardness from 9B to H, she is told that the university has standardized on a set with a smaller range. Satndardization allows us to buy in bulk and to save management overhead. "At least they aren't all No. 2 pencils," thinks the art prof.

When one of the painting faculty calls over to Facilities for a particular set of acrylic paints, the warehouse manager says, "Sure, just let me know what colors you need and we'll by them. We have a great contract with Sherwin Williams." The prof isn't sure where he'll put all the one-gallon cans, though.


... just kidding. No university would ever do that, right? Biologists run their own greenhouses and labs, and art faculty select, buy, and manage specialty materials in their studios. Yet academic Computer Science departments often work under nearly identical circumstances, because computers are part of university's IT infrastructure.

Every few years at academic institutions, the budget and management pendulum swings toward centralization of IT services, as a way to achieve economies of scale and save money. Then, a few years later, it swings back toward decentralization, as a way to provide better and finer-grained services to individual departments. Too often, the services provided to CS faculty and students are forced to go along for the ride.

My university is going through one of its periodic recentralizations, at the orders of the Board of Regents. Every time we centralize, we have to have the same conversations about how Computer Science fits into the picture, because most non-CS people ultimately see our use of computers and software as fundamentally the same as, say, the English department's or the Psychology department's. However interesting those departments' use of technology is (and in this day, most faculty and students use technology in interesting ways, regardless of discipline), it is not the same thing as what Computer Science does.

Academic computing has never been limited to computer scientists, of course. Many mathematicians and physicists rely on a very different sort of computing than the folks who use it only for library-style research, writing, and presentation. So do faculty in a few other disciplines. Just as Biology and Art need specialized laboratories and materials, so do those departments that are working at the edge of computing require specialized laboratories and materials. Computer Science is simply the discipline that is farthest out along this curve.

The same thing goes for support staff as for equipment. Few administrators would think of "centralizing" the lab technician and supplies manager for Biology or Chemistry into a non-academic unit on campus, or ask academic departments to depend on a non-academic unit to provide discipline-specific services that are critical to the departments' mission. Lab technicians and equipment managers need to be hired by the departments (or the college) that need them and serve the departments directly. So, too, do certain departments need to have system administrators and lab managers who work for them to meet the specialized needs of academic computing, serving the department or college directly.

Hardware and software are a computer scientist's greenhouse and artistic media. They are our our library and our telescopes, our tallgrass prairie preserves and our mass spectrometers. It is essential that university administrations think of -- and provide for -- Computer Science and other computation-laden departments as academic disciplines first, and not just as consumers of generic IT services. Doing so requires, among other things, leaving control of essential hardware, software, and policies for their use within the academic departments.


Disclaimer. The vignettes above were written by me. I am very much neither a biologist nor a studio artist. If any of the details clash with reality, please see them as creative liberties taken by the author to serve a theme.

Posted by Eugene Wallingford | Permalink | Categories: General, Managing and Leading

November 01, 2015 10:16 AM

Five Years On, I Still Dream About Running

A little over five years ago, on October 17, 2010, I ran my last marathon. It was a great day. At the time, I didn't know it would be my last marathon. I figured I'd take it easy for a couple of weeks, allowing my legs to recover, and then I'd be back to running as usual. And that's how things went, for a few months. Then things changed. I wasn't a runner anymore.

The fifth anniversary of my final marathon passed with no fanfare. That's unusual. I'm sentimental and prone to remembering anniversaries. I remember thinking last summer that I should blog a reminiscence about that Des Moines Marathon, and a paean to the loss of running from my life. Then I got busy with family and school, and the day passed unnoticed. Time marches on.

Last night, though, I dreamed I was running, and it all came back to me. I was running through the town where I live, down a street I don't ever recall running down in real life. My heart beat faster. My breathing was rhythmic, strong. Soon the scene segued into a strange nowhere, on streets and trails unlike anything in my town; yet they felt as real and as much home to me as the streets I walk every day. The run became the backbone of a crazy dream, as some dreams are, but the running itself felt as it so often did before. I was both aware of my body and oblivious to it. The dream and the run seemed to go on for a long time, until both were over in an instant.

Feeling these feelings again was at once sad and enormously pleasing. It's sad to feel something I enjoyed so much and know that I can never enjoy it in the same way again. But to feel that way again, seemingly as real as any time I ever felt when living it, was a surprising joy. I wonder how long my mind can hold these memories, so real, and serve them up unexpectedly. I will gladly accept a little sadness every so often, feeling the loss again, if it also means being a runner again. Even if it's only a dream.

Posted by Eugene Wallingford | Permalink | Categories: Running

October 30, 2015 4:35 PM

Taking Courses Broad and Wide

Nearly nine years ago, digital strategist Russell Davies visited the University of Oregon to work with students and faculty in the advertising program and wrote a blog entry about his stint there. Among his reflections on what the students should be doing and learning, he wrote:

We're heading for a multi-disciplinary world and that butts right up against a university business model. If I were preparing myself for my job right now I'd do classes in film editing, poetry, statistics, anthropology, business administration, copyright law, psychology, drama, the history of art, design, coffee appreciation, and a thousand other things. Colleges don't want you doing that, that destroys all their efficiencies, but it's what they're going to have to work out.

I give similar advice to prospective students of computer science: If they intend to take their CS degrees out into the world and make things for people, they will want to know a little bit about many different things. To maximize the possibilities of their careers, they need a strong foundation in CS and an understanding of all the things that shape how software and software-enhanced gadgets are imagined, made, marketed, sold, and used.

Just this morning, a parent of a visiting high school student said, after hearing about all the computer science that students learn in our programs, "So, our son should probably drop his plans to minor in Spanish?" They got a lot more than a "no" out of me. I talked about the opportunities to engage with the growing population of Spanish-speaking Americans, even here in Iowa; the opportunities available to work for companies with international divisions; and how learning a foreign language can help students study and learn programming languages differently. I was even able to throw in a bit about grammars and the role they play in my compiler course this semester.

I think the student will continue with his dream to study Spanish.

I don't think that the omnivorous course of study that Davies outlines is at odds with the "efficiencies" of a university at all. It fits pretty well with a liberal arts education, which even of our B.S. students have time for. But it does call for some thinking ahead, planning to take courses from across campus that aren't already on some department's list of requirements. A good advisor can help with that.

I'm guessing that computer science students and "creatives" are not the only ones who will benefit from seeking a multi-disciplinary education these days. Davies is right. All university graduates will live in a multi-disciplinary world. It's okay for them (and their parents) to be thinking about careers when they are in school. But they should prepare for a world in which general knowledge and competencies buoy up their disciplinary knowledge and help them adapt over time.

Posted by Eugene Wallingford | Permalink | Categories: General, Teaching and Learning

October 22, 2015 4:22 PM

Aramaic, the Intermediate Language of the Ancient World

My compiler course is making the transition from the front end to the back end. Our attention is on static analysis of abstract syntax trees and will soon turn to other intermediate representations.

In the compiler world, an "intermediate representation" or intermediate language is a notation used as a stepping stone between the abstract syntax tree and the machine language that is ultimately produced. Such a stepping stone allows the compiler to take smaller steps in translation process and makes it easier to improve the code before getting down into the details of machine language.

We sometimes see intermediate languages in the "real world", too. They tend to arise as a result of cultural and geopolitical forces and, while they usually serve different purposes in human affairs than in compiler affairs, they still tend to be practical stepping stones to another language.

Consider the case of Darius I, whose Persian armies conquered most of the Middle East around 500 BC. As John McWhorter writes in The Atlantic, at the time of Darius's conquest,

... Aramaic was so well-entrenched that it seemed natural to maintain it as the new empire's official language, instead of using Persian. For King Darius, Persian was for coins and magnificent rock-face inscriptions. Day-to-day administration was in Aramaic, which he likely didn't even know himself. He would dictate a letter in Persian and a scribe would translate it into Aramaic. Then, upon delivery, another scribe would translate the letter from Aramaic into the local language. This was standard practice for correspondence in all the languages of the empire.

For sixty years, many compiler writers have dreamed of a universal intermediate language that would ease the creation of compilers for new languages and new machines, to no avail. But for several hundred years, Aramaic was the intermediate representation of choice for a big part of the Western world! Alas, Greek and Arabic later came along to supplant Aramaic, which now seems to be on a path to extinction.

This all sounds a lot like the world of programming, in which languages come and go as we develop new technologies. Sometimes a language, human or computer, takes root for a while as the result of historical or technical forces. Then a new regime or a new culture rises, or an existing culture gains in influence, and a different language comes to dominate.

McWhorter suggests that English may have risen to prominence at just the right moment in history to entrench itself as the world's intermediate language for a good long run. We'll see. Human languages and computer languages may operate on different timescales, but history treats them much the same.

Posted by Eugene Wallingford | Permalink | Categories: Computing, General