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.
Tag Archives: programming
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
Great Emacs org-mode and remember.el tutorials by Charles Cave
I would read Charle Cave’s terrific tutorials regarding org-mode and remember.el in the order I’ve linked below, but it isn’t required.
Give Aptana feedback
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
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:
Python, Java, and Netbeans links for December 11th, 2008
Thanassis Tsiodras, Dr.-Ing.: The Knight’s Tour in Python. Discussion at Slashdot.
Ted Leung: Python in Netbeans
Thinlet in Netbeans: thinnb
NetBeans Wiki: Getting Started With Python in the NetBeans IDE 6.5
ars technica: Getting a grip on Python: six ways to learn online
Artima: Python and the Programmer: A Conversation with Bruce Eckel, Part I
Elliotte Rusty Harold: Java is Dead! Long Live Python!
/var/log/mind: Java : the perpetually undead language
Bonus link 1 – start it simple: Bokardo: What if Gall’s Law were true?
Bonus link 2 – fight your fear: iBanjo: Programmer Insecurity
Bonus link 3 – Code less: willCode4Beer: Code Reduction or Spartan Programming
Upgrading Drupal Screencast
Mastering Drupal: Upgrading to Drupal 6