Two comparisons of different programming languages worth reading

Normally these kinds of pieces are worthless, but these two recently stood out to me:

Dennis M. Ritchie: Five Little Languages and How They Grew: Talk at HOPL* March 19, 2002

Michael Tsai: Perl vs. Python vs. Ruby – distinguished for the thoughtful replies in the discussion thread.

Clay Shirky lays out the issues confronting the future of news journalism

Read the whole thing. Nieman Journalism Lab: Clay Shirky at the Shorenstein Center on the Press, Politics and Public Policy:

…in the nightmare scenario that I’ve kind of been spinning at for the last couple years has been: Every town in this country of 500,000 or less just sinks into casual, endemic, civic corruption — that without somebody going down to the city council again today, just in case, that those places will simply revert to self-dealing. Not of epic, catastrophic sorts, but the sort that just takes five percent off the top. Newspapers have been our principal bulwark for that, and as they’re shrinking, that I think is where the threat is.

…So we don’t need another different kind of institution that does 85 percent of accountability journalism. We need a class of institutions or models, whether they’re endowments or crowdsourced or what have you — we need a model that produces five percent of accountability journalism. And we need to get that right 17 times in a row. That’s the issue before us. There will not be anything that replaces newspapers, because if you could write the list of stuff you needed and organizational characteristics and it looked like newspapers, newspapers would be able to fill that role, right?

It is really a shift from one class of institutions to the ecosystem as a whole where I think we have to situate the need of our society for accountability. I also want to distance myself — and I’ll end shortly. But I want to distance myself, with that observation I also want to distance myself from the utopians in my tribe, the web tribe, and even to some degree the optimists.

I think a bad thing is going to happen, right? And it’s amazing to me how much, in a conversation conducted by adults, the possibility that maybe things are just going to get a lot worse for a while does not seem to be something people are taking seriously. But I think this falling into relative corruption of moderate-sized cities and towns — I think that’s baked into the current environment. I don’t think there’s any way we can get out of that kind of thing. So I think we are headed into a long trough of decline in accountability journalism, because the old models are breaking faster than the new models can be put into place.

Again read the whole thing.

People tend to pick apart Shirky’s writings to find what supports their arguments. Which, I partially just did in fact, so don’t do that – absorb the nuance because the opportunities and problems at hand are far more complicated than the either naysayers or utopians would lead us believe.

Two links on simple map visualizations with Python

Simon Wilson: Exploring Python: Stack Overflow Dev Days Amsterdam November 2009

FlowingData: How to Make a US Country Thematic Map Using Free Tools

Social Networking == Social Division?

You would think after 20 years of the Web, we would come to a better understanding that it either helps us connect, or helps us segregate. You’d be wrong.

Following is some research and reading. But first…

What do you think? How diverse are the people you associate with as friends on Facebook or Twitter? Big range in class, race, religion, sex, age? Or are you judging diversity in terms of how many of your friends like Star Wars and Star Trek? If you’re a liberal, how many conservatives? If you’re a conservative, how many liberals? Libertarians? DC versus Marvel? Spiderman versus Twilight? Protestant versus Catholic versus Jewish versus Muslim?

I work in a career that smashes many of these distinctions, except four I can think of (more on that in a bit). There is a wide variety to religious practice, sources of entertainment, favorite music, and political leanings (although there is a libertarian streak). Programmers, as a whole are all very diverse in these areas. Our online social networks reflect this.

Now on to the four ares where we are far too much alike – class, age, sex, and race. Programmers tend to come from middle class households, be mid-twenties to mid-thirties, male (and heterosexual-male at that), and white, middle-eastern, or asian. And yes, our online social networks reflect this as well.

Me and many of my contemporaries fool ourselves into thinking we’re diverse – but you have to agree – those four are rather a *big* four. If we live in environments that are half women and half black, how come our online social networks and our workplaces do not reflect that?

In the end, I tend not to believe that social networking leads to social division or helps to bring people who are different together. I think it simply reflects our reality all too well. My hope is it doesn’t reinforce it. That what we are building will lead us towards greater connection with one another, no matter where we come from, no matter who we are.

Now onto the links:

danah boyd: “The Not-So-Hidden Politics of Class Online” PDF 2009: we’re seeing a social media landscape where participation “choice” leads to a digital reproduction of social divisions.

Joshua-Michéle Ross: Three Paradoxes of the Internet Age – Part One:
More access to information doesn’t bring people together, often it isolates us.

Joshua-Michéle Ross: Three Paradoxes of the Internet Age – Part Two: Individual perception of increased choice can occur while the overall choice pool is getting smaller

Joshua-Michéle Ross: Three Paradoxes of the Internet Age – Part Three: The myth of personal empowerment takes root amidst a massive loss of personal control.

NYTimes: David Brooks: Cellphones, Texts and Lovers: People are thus thrown back on themselves. They are free agents in a competitive arena marked by ambiguous relationships. Social life comes to resemble economics, with people enmeshed in blizzards of supply and demand signals amidst a universe of potential partners.

Pew Research: Social Isolation and New Technology : People’s use of the mobile phone and the internet is associated with larger and more diverse discussion networks. And, when we examine people’s full personal network – their strong and weak ties – internet use in general and use of social networking services such as Facebook in particular are associated with more diverse social networks.

I Believe In Miracles Cover-a-rama

My last band used to cover “I Believe In Miracles” by the Ramones, influenced by Peal Jam’s cover. This morning I find myself messing around with it on my old acoustic, first time I’ve had the opportunity to play in quite a while.

Here are some versions of “I Believe In Miracles” I found surfing YouTube.

YouTube: Pearl Jam I Believe in Miracles Live:

YouTube: Pearl Jam – I Believe in Miracles (slow version) (Seattle ’03)

YouTube: Ania_Ughr – I Believe In Miracles (The Ramones Cover):

YouTube: Represion + IVA – I Believe In Miracles / Cover Ramones:

And of course, the original!

YouTube: I Believe In Miracles – The Ramones:

Teenagers and children from Pennsylvania failed by “those who knew but failed to speak” and “those who saw but failed to act.”

The more I hear of what happened in Luzerne, the more my heart breaks.

Summary: Over five years over 6000 children were driven into the PA juvenile ‘justice’ system while a judge received kickbacks.

Inquirer: William Ecenbarger: Luzerne officials deny knowing of abuse

Inquirer: Deferential culture abetted rotten judges:

An 11-member Interbranch Commission on Juvenile Justice has been created to identify “those who knew but failed to speak” and “those who saw but failed to act.” The commission, which held hearings in Wilkes-Barre this week, faces a daunting task, because complicity in the scandal goes beyond even the lawyers, elected officials, school administrators, teachers, probation officers, and prosecutors charged with protecting the children who were victimized.

The parents of the victims are also to blame. They had a responsibility to ask why Ciavarella did not allow legal representation for their children. If they couldn’t afford counsel, they should have demanded that the court appoint a public defender, which is a constitutional right. And they should have appealed when their children were incarcerated for what didn’t even amount to a misdemeanor.

The reasons for their negligence are deeply rooted. They are products of a regional culture that emphasizes deference to public officials and retribution for those who challenge authority.

The Pennsylvania Juvenile Law Center is seeking out those who’ve been effected by this, anonymously if so desired.

It has a page detailing the corruption and the ongoing fallout.

SVN Branch Management Link-a-rama

Coding Horror: Software Branching and Parallel Universes

Perforce: Laura Wingerd & Christopher Seiwald: High-level Best Practices in Software Configuration Management

InfoQ: Version Control for Multiple Agile Teams

BetterExplained: A Visual Guide to Version Control

Branch Maintenance: Chapter 4. Common Branching Patterns

Submerged: CollabNet’s Subversion Blog: Branching Strategy Questioned

CMCrossroads: Robert Cowham: Branching and Merging – An Agile Perspective

CMCrossroads: Steve Berczuk. Robert Cowham, Brad Appleton: An Agile Approach to Release Management

Related Background Links:

Version Control with Subversion: Branch Maintenance: Chapter 4. Branching and Merging

Version Control with Subversion: Strategies for Repository Deployment: Chapter 5. Repository Administration

Version Control with Subversion: Repository Maintenance: Chapter 5. Repository Administration

JavaWorld: Merging and branching in Subversion 1.5

RubyRobot: Subversion With Mac OS X Tutorial

Worth Repeating: Rob Pike “Data dominates.” and Frederick Brooks “Representation is the Essence of Programming”

Rob Pike is a famous name in programming with a history going back to Bell Labs, co-author of two often quoted books, and today works at Google.

Back in February 1989 he wrote an essay, “Notes on Programming in C” which many consider contains insight to the “Unix Philosophy”.

One of the sections of the essay people focus on were six rules he listed on complexity. Rule number 5 is:

“Data dominates. If you’ve chosen the right data structures and organized things well, the algorithms will almost always be self­ evident. Data structures, not algorithms, are central to programming.”

I’ve seen people summarize that rule (why summarize three sentences?!) into “write stupid code that uses smart objects”, but I believe that misses the point.

To help us understand the context behind the rule, Pike cites Frederick Brooks’ “The Mythical Man-Month” p. 102. Here it is for your edification:

Representation is the Essence of Programming

Beyond craftmanship lies invention, and it is here that lean, spare, fast programs are born. Almost always these are the result of strategic breakthrough rather than tactical cleverness. Sometimes the strategic breakthrough will be a new algorithm, such as the Cooley-Tukey Fast Fourier Transform or the substitution of an n log n sort for an n2 set of comparisons.

Much more often, strategic breakthrough will come from redoing the representation of the data or tables. This is where the heart of your program lies. Show me your flowcharts and conceal your tables, and I shall be continued to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious.

It is easy to multiply examples of the power of representations. I recall a young man undertaking to build an elaborate console interpreter for an IBM 650. He ended up packing it onto an incredibly small amount of space by building an interpreter for the interpreter, recognizing that human interactions are slow and infrequent, but space was dear. Digitek’s elegant little Fortran compiler uses a very dense, specialized representation for the compiler code itself, so that external storage is not needed. That time lost in decoding this representation is gained back tenfold by avoiding input-output. (The exercieses at the end of Chapter 6 in Brooks and Inversion, “Automatic Data Processing” include a collection of such examples, as do many of Knuth’s exercises.)

The programmer at wit’s end for lack of space can often do best by disentangling himself from his code, rearing back, and contemplating his data. Representation is the essence of programming


Wikipedia: Unix_philosophy

Eric Steven Raymond: The Art of Unix Programming: Basics of the Unix Philosophy

40 year old ongoing study into preschool still providing insight

American RadioWorks: Emily Hanford: Early Lessons: “doing well in school, and in life, is about more than a test score.”:

“Now you’re getting into something really deep,” says economist James Heckman. “How is it that motivation is affected? What causes motivation?”

Heckman is a Nobel laureate who teaches at the University of Chicago. Preschool was not among his interests until he came across the Perry Study several years ago. What caught his attention is the apparent paradox at its core: The people who went to preschool were not “smarter” than their peers, but they did better.

The assumption at the heart of a lot of economic theory is that measured intelligence is the key to everything. But with the Perry Preschool children, something else made the difference. It was not IQ. Heckman is now working with psychologists to try to understand how the preschool may have affected the development of what he calls “non-cognitive” skills, things like motivation, sociability and the ability to work with others.

These are critical skills that help people succeed at school, at work – and in life.

And as it turns out, the Perry preschool children did do better in life.

Profile of Ludwig Wittgenstein in Time Magazine

Time Magazine: Ludwig Wittgenstein: He began by trying to reduce all mathematics to logic and ended by finding most metaphysics to be nonsense

Ludwig Wittgensten is a major character in Logicomix.