Usware Blog: “Doing things with Django forms”
Category Archives: Coding, Software Engineering, Computer Science
John Nunemaker has no talent, I agree (and don’t either!)
Love this post by John Nunemaker and programming: “I Have No Talent”:
It is true. I have no talent. What I do have is a lot of practice. And I am not talking about occasionally dabbling in Ruby on the weekends. I am talking about the kind of practice where I beat code that isn’t working into submission (though often times the code wins).
The rise of the journalist-programmer
I’d call it some long-awaited recognition for many. Gawker: Hack to Hacker: Rise of the Journalist-Programmer.
Hmm… have I qualified as a Programmer-Journalist in the past?
A Writing Technical Documentation series by Jacob Kaplan-Moss
Jacob Kaplan-Moss helps maintain Django’s high quality documentation along with being one of the co-creators of the framework itself. His series on how to write great documentation is going to be a great help to me.
Rafe Colburn’s vote for Software Engineering’s “Trend of the Decade”
Check out Rafe’s thoughts on what he considers software engineering’s “Trend of the Decade”, Decentralized Process: More work done in public, public discussion of that work, and the introduction of new best practices have defined the trend of the decade — developers owning the processes under which they work. Hopefully it will continue in the next decade.
My perspective and experience says he’s right. And I gotta agree with his wish. Read the full post.
What is ETL and CMS?
You’re a programmer with a task to retrieve information from some source, manipulate and message it, and to deploy it somewhere.
Like all things in programming, there is an acronym for that: “ETL”.
ETL stands for Extract, Transform, and Load. The Wikipedia page is pretty thorough in its summary of the topic and reviews many of the typical functions an ETL process needs to take to accomplish its task.
The problem is ETL doesn’t roll off the tongue so easy. The acronym provides a weak set of metaphors for programmers to map familiar concepts to.
Rafe Colburn provides a great mental model to apply when developing ETL scripts and applications. It’s one I follow, but have lacked the words to describe. Go read his post.
Here’s a thought to challenge you if you are a CMS developer, now that you have read the above – are whatever forms you build to enable people to contribute and manage content in a CMS a kind of ETL process? Does the Wikipedia description for “Extract, Transform, and Load” contain functions there that you would expect a CMS to encompass?
And speaking of CMS, Gadgetopia has a terrific article on what a CMS system is. It is difficult to be clarifying in a world where hype and acronyms get thrown about so much (like this very post!) – but the Gadgetopia piece certainly is. It helps outline the functionality you should expect from a CMS implementation.
Some light reading (and research) on non-functional requirements in Agile/Scrum
Agile Modeling: Introduction to User Stories
Mike Cohn’s Blog: Non-functional Requirements as User Stories
aqris: Representing non-functional requirements with user stories
wikiwiki: Non Functional Requirements
Agile Coaching: Non-Functional Requirements: are user stories useful?
Artima: Johan Peeters: Dreams and Nightmares
Representing non-functional requirements is tricky. There are two kinds of non-functional requirement as mentioned in the aquis piece: independent, and distributed. When faced with a distributed non-functional requirement, adding it to your ‘definition of done‘ is called for. As you can tell by the links, there seems to be some difference in opinion in handling ‘independent’ non-functional requirements.
If you have pointers, please share in my comments. And thanks for the input in advance.
A solution to software maintenance from long ago?
Communications of the ACM: You Don’t Know Jack About Software Maintenance:
Software maintenance is not like hardware maintenance, which is the return of the item to its original state. Software maintenance involves moving an item away from its original state. It encompasses all activities associated with the process of changing software. That includes everything associated with “bug fixes,” functional and performance enhancements, providing backward compatibility, updating its algorithm, covering up hardware errors, creating user-interface access methods, and other cosmetic changes.
In software, adding a six-lane automobile expressway to a railroad bridge is considered maintenance–and it would be particularly valuable if you could do it without stopping the train traffic.
Related: Slashdot thread
Participants at Hacker News take Myers-Briggs
The results are interesting.
HTML5 bad for WYSIWYG editors?
CMS and blogging software engineers might have a hard task ahead of them trying to support HTML5. (via Shelley Powers).