Porn and Music are the canaries in a coal mine

While it can be argued that the attention economy has hurt the pornography and music industries the most over the past few years, I’d turn that around and say they are both spheres where real innovation can be found. Two cases in point:

Andrew Chen: Freemium business model case study: AdultFriendFinder ARPU, churn, and conversion rates

NYTimes: Songs From the Heart of a Marketing Plan:

While people still love music enough to track it down, collect it, argue over it and judge their Facebook friends by it, many see no reason to pay for it. The emerging practical solution is to let music sell something else: a concert, a T-shirt, Web-site pop-up ads or a brand.

Musicians have to eat and want to be heard, and if that means accompanying someone else’s sales pitch or videogame, well, it’s a living.

Must Read: David Cohn’s “Drupal Nation: Software to Power the Left”

David Cohn has published to his blog his final project to graduate with a Masters from Columbia’s journalism school – a report on the technology and people behind the Dean campaign of 2004 – Drupal Nation: Software to Power the Left.

CNN gets rid of the crawl

I expected this to be bigger news in my circles, but it hasn’t registered. CNN has rejected the news crawl for a far less busy headline flip in its news broadcasts. The new UI makes it far easier to absorb the news broadcast without constant distraction and sometimes even helps to clarify whatever it is that is being reported. Great job CNN.

NYTimes: The Flipper Challenges the Crawl

NYTimes on using GeoDjango

Nice work NYTimes.

Open: Represent:

We built Represent with Django, the Python web framework. Although we do most of our work with Ruby on Rails, we chose Django for this project so we could use GeoDjango, an add-on that supports geometry fields and extends the ORM to allow spatial queries.

We started with maps from New York City’s Department of City Planning showing district boundaries for City Council, State Assembly, State Senate and the U.S. House of Representatives. We used the Geospatial Data Abstraction Library, a translator library for raster geospatial data formats, through GeoDjango’s LayerMapping class to populate a PostgreSQL database extended with the PostGIS spatial extension. The geometry relationship functions provided by PostGIS allow for quick, accurate lookups to determine which legislative districts contain your address.

Represent shows you your address in relation to each of the political districts that contain it. To draw the maps of your districts, we used GEOS, a C++ port of the Java Topology Suite, an API for modeling and manipulating 2-dimensional linear geometry, via GeoDjango’s GEOS API. GEOS allows for the conversion of a geometry to KML, which can then be consumed by Google Maps.

But to do all that, we need an address: yours, hopefully, if you live in New York City. To turn that address into coordinates, we built a geocoding service based on Geo-Coder-US, the perl library that powers geocoder.us.

Vacation reading, it’s all Groovy

Groovy: Embedding Groovy

Groovy: Groovy Beans

Groovy: Groovy and JMX

Groovy: Using Spring Factories with Groovy

Groovy: Dynamic language beans in Spring

JavaWorld: Creating DSLs in Java, Part 1: What is a domain-specific language?

JavaWorld: Creating DSLs in Java, Part 2: Fluency and context

JavaWorld: Creating DSLs in Java, Part 3: Internal and external DSLs

JavaWorld: Creating DSLs in Java, Part 4: Where metaprogramming matters

IBM developerWorks: Functional programming in the Java language

IBM developerWorks: alt.lang.jre: Feeling Groovy

IBM developerWorks: Practically Groovy: Stir some Groovy into your Java apps

IBM developerWorks: Practically Groovy: Unit test your Java code faster with Groovy

IBM developerWorks: Practically Groovy: Reduce code noise with Groovy

IBM developerWorks: In pursuit of code quality: Programmatic testing with Selenium and TestNG

Groovy Zone: GroovyShell and memory leaks

Apache: GroovyUtil.java

Code To Joy: Zen and Groovy’s Expando

Code To Joy: Simply Groovy (How to gain Competitive Advantage on Weiqi Gao’s Friday Java Quiz)

Code To Joy: Groovy’s -e and friends: The Command Line for Java Developers

Code To Joy: Groovy 201: How to Win a Bar Bet on Copy-Paste

Code To Joy: myTunes: Groovy and JFugue

Code To Joy: JFugue and The Charm of Computing

Code To Joy: Zero to RMI with Groovy and Spring

A Public Scratchpad: The Future of Groovy Interoperability?

Test Early: Spring’s so Groovy

Spring documentation: Chapter 24. Dynamic language support

JavaBeat: Integrating Spring and Groovy

Martin Fowler: “Will DSLs allow business people to write software rules without involving programmers?”

Martin Folwer: BusinessReadableDSL:

I do think that programming involves a particular mind-set, an ability to both give precise instructions to a machine and the ability to structure a large amount of such instructions to make a comprehensible program. That talent, and the time involved to understand and build a program, is why programming has resisted being disintermediated for so long. It’s also why many “non-programming” environments end up breeding their own class of programmers-in-fact.

That said, I do think that the greatest potential benefit of DSLs comes when business people participate directly in the writing of the DSL code. The sweet spot, however is in making DSLs business-readable rather than business-writeable. If business people are able to look at the DSL code and understand it, then we can build a deep and rich communication channel between software development and the underlying domain. Since this is the Yawning Crevasse of Doom in software, DSLs have great value if they can help address it.

With a business-readable DSL, programmers write the code but they show that code frequently to business people who can understand what it means. These customers can then make changes, maybe draft some code, but it’s the programmers who make it solid and do the debugging and testing.

This isn’t to say that there’s no benefit in a business-writable DSL. Indeed a couple of years ago some colleagues of mine built a system that included just that, and it was much appreciated by the business. It’s just that the effort in creating a decent editing environment, meaningful error messages, debugging and testing tools raises the cost significantly.

Related:

The Fishbowl: Dear XML Programmers…

defmacro: The Nature of Lisp

Tech layoffs soaring

The troubles in the economy come closer and closer to home. Via TechCrunch: “Tech Layoffs Surge Past 100,000” – but hey, at least you’re not a journalist or auto worker – because if you were – it would be your fault right? (without context – that sarcasm wouldn’t make any sense – I don’t mean that AT ALL – but some pundits seem to think that’s the God’s honest truth). The economy is hurting everyone across the board far and wide. In an age where information flows as freely as air – this crash wasn’t avoided and solutions are not forthcoming from our common conversation.

Then again, we can just blame it all on the invisible hand of the economy, right?

The Greatest “What’s So Funny ‘Bout Peace Love and Understanding” talk about community, tech and open source EVER (A repost and re-tweet)

I shared this previously, but it is worth a repost (many reposts), via Jay Rosen (as does title!). I’d say my entire career has been formed by this effect one way or another. And I am thankful.

When we think about the problems we face today, here is how the Internet provides a participatory platform to help. There’s nothing in here that refutes human nature – it just celebrates an important facet of it: When we gather around communities of interest we care deeply about – we look out for others within that community of interest. The Internet changes the stage for which we can connect across those passions.

YouTube: Cay Shirky on Love, Internet Style: