Jeff Potts: Understanding the differences between Alfresco’s repository implementations.
Category Archives: Coding, Software Engineering, Computer Science
Whitehouse.gov moves to Drupal
Dries Buytaert: Whitehouse.gov using Drupal
Tim O’Reilly: Thoughts on the Whitehouse.gov switch to Drupal
PDF: WhiteHouse.gov Goes Drupal
Content Here: Is Drupal the right platform for whitehouse.gov?
I think you can trace this way back to 2004 and Howard Dean’s run for the presidency. Their team chose Drupal as the framework to leverage for their web efforts and it paid off as part of what was the most Internet-savvy campaign by that time. Inspired by that campaign and their use of technology, I had relaunched Philly Future in fact.
Dries Buytaert says of the choice:
First of all, I think Drupal is a perfect match for President Barack Obama’s push for an open and transparent government — Drupal provides a great mix of traditional web content management features and social features that enable open communication and participation. This combination is what we refer to as social publishing and is why so many people use Drupal. Furthermore, I think Drupal is a great fit in terms of President Barack Obama’s desire to reduce cost and to act quickly. Drupal’s flexibility and modularity enables organizations to build sites quickly at lower cost than most other systems. In other words, Drupal is a great match for the U.S. government.
I can’t help but agree.
News site redesigns afoot
NPR’s Daniel Jacobson shares details on their CMS ecosystem
Programmable Web: COPE: Create Once, Publish Everywhere
Programmable Web: Content Modularity: More Than Just Data Normalization
What strikes me is the focus on data storage and the emphasis on normalizing it to a modular form that enables re-use.
I’ve seen CMSes over the years try and deny the value in this approach – they store content as blobs and force app developers to keep access knowledge and manipulation maintained in the app layer. The idea being that you can never know what content you will need to store down the line, so why attempt to build a normalized store where data is maintained and re-used long term?
In the end, many of these CMSes embrace the Anemic Domain Model anti-pattern that Martin Fowler wrote about. More and more behavior that is related to your domain is pushed in to your app-space or into a services layer.
NPR.org confirms my past experience – the investment in building a modular data store not only establishes a strong foundation – it is one that gains in value over time. It takes research – you need to dig deep into your business’s problem domain – you need to determine what is it that is the core product(s) of your business (note – I didn’t say CMS). For NPR it’s the Story. What is it for yours?
As Martin Fowler said, “In general, the more behavior you find in the services, the more likely you are to be robbing yourself of the benefits of a domain model. If all your logic is in services, you’ve robbed yourself blind.”
Invest the time.
BTW – this isn’t a NOSQL versus RDBMS issue – there are data management solutions among each that can satisfy this.
NPR’s development team has been sharing more regularly on their blog “Inside NPR.org”.
Related:
CJR: NPR Builds a Brain Trust: Thought leaders convene for a digital “Think In”
Python links for October 28th, 2009
Dive Into Python: Chapter 11. HTTP Web Services
IBM developerWorks: Working with Web server logs
ActiveState: Python recipes
PLEAC – Programming Language Examples Alike Cookbook: PLEAC – Python
Thinking About Flow
If you make a living programming, you know how productive, how creative, how enjoyable this state is: you + the task at hand – any other thought in the world. Focus, flow, mindfulness only of the moment you are in.
Flow can be found in the most mundane moments (there are no mundane moments if you become aware of this): from playing a game of basketball, to playing your guitar, to a late night World of Warcraft session, to gazing at your wife, or laughing with your daughter.
Time slows when you are in flow. Anxiety about the future transforms into passion about the now. Thoughts about the past do not get a chance to play on your conscious mind.
Flow is an extreme form of the feedback I’d give my Mom, when she was falling into a bad state, and concentrating too much on mistakes made or horrors visited upon her in the past.
“All that matters is the here and now. You, right here, are safe and well. We are doing well. All of us are blessed. Don’t let what happened 20 years ago defeat you. It doesn’t matter. Besides – its kinda insulting to your current circumstances to think anything more of the past other than it helped you get to here. Now is all that matters.”
(I need to tell myself this more often!)
This doesn’t jibe so well with a lot of psychological talk about how people need to face their pasts to over come them. That’s true in many cases. In many cases we *do* need to deal with the demons in our hearts in order to achieve our potential. But Mom had already faced her past. In countless therapy sessions, with countless doctors. She had a condition. And her doctors had, at one time wrote her off as hopeless – doomed to a downward spiral of psychotic episodes.
Becoming mindful of her own thoughts was part of a larger set of solutions that helped her be very “with it” the last few years of her life before leaving us. She succeeded to the point of being aware of threatening ‘bad thoughts’ and seeking out help before cycling and requiring hospitalization. Before this, once you saw the signs, you knew it was a hospitalization that would be the result.
Its funny, when you think about it. Because while we find flow in a great many positive things, the state of flow is just as likely found in the neutral or even the negative.
We spend millions of dollars, our time and attention, following gurus of various ideologies, taking up crazy religious practices, pursuing sex and drugs, creation and destruction, creating drama upon ourselves and our fellow man – just to be in it.
Flow is so primal a force in our adult lives because its something we literally swam in 100% of the time as children.
Our schools and our parents barked it out of us as they taught us to ‘pay attention’ for the *next* moment. We shaked it out of our own hearts as we let ourselves become more and abiding to scheduling. Most of all, as we get older, time simply seems to speed up as we become aware of our looming mortality.
Psychology Today: Finding flow:
…A deprived childhood, abusive parents, poverty, and a host of other external reasons may make it difficult for a person to find joy in everyday life. On the other hand, there are so many examples of individuals who overcame such obstacles that the belief that the quality of life is determined from the outside is hardly tenable. How much stress we experience depends more on how well we control attention than on what happens to us. The effect of physical pain, a monetary loss, or a social snub depends on how much attention we pay to it. To deny, repress, or misinterpret such events is no solution either, because the information will keep smoldering in the recesses of the mind. It is better to look suffering straight in the eye, acknowledge and respect its presence, and then get busy as soon as possible focusing on things we choose to focus on.
To learn to control attention, any skill or discipline one can master on one’s own will serve: meditation and prayer, exercise, aerobics, martial arts. The important thing is to enjoy the activity for its own sake, and to know that what matters is not the result, but the control one is acquiring over one’s attention.
It is also important to develop the habit of doing whatever needs to be done with concentrated attention. Even the most routine tasks, like washing dishes, dressing, or mowing the lawn, become more rewarding if we approach them with the care it would take to make a work of art.
…Flow is a source of mental energy in that it focuses attention and motivates action. Like other forms of energy, it can be used for constructive or destructive purposes. Teenagers arrested for vandalism or robbery often have no other motivation than the excitement they experience stealing a car or breaking into a house. War veterans say that they never felt such intense flow as when they were behind a machine gun on the front lines. Thus, it is not enough to strive for enjoyable goals, but one must also choose goals that will reduce the sum total of entropy in the world.
Find your flow and you slow down time. Find your flow and time has no meaning. Find your flow and find your love.
These are things I am saying as much to myself as I am you.
Related Links:
- Just-Pooh.com: The Tao of Pooh
- Psychology Today: Mihaly Csikszentmihalyi: Finding Flow
- Psychology Today: Jay Dixit: The Art of Now: Six Steps to Living in the Moment
- SEEDMAGAZINE: To Be a Baby
- The Boston Globe: Jonah Lehrer: Inside the baby mind
- Daring Fireball: Obsession Times Voice
- Wiki: MentalStateCalledFlow
Scratch: Lowering the floor, widening the walls, raising the ceiling
Read about the principals behind the design of Scratch in Communications of the ACM: Scratch: Programming for All: “Digital fluency” should mean designing, creating, and remixing, not just browsing, chatting, and interacting.:
It has become commonplace to refer to young people as “digital natives” due to their apparent fluency with digital technologies. Indeed, many young people are very comfortable sending text messages, playing online games, and browsing the Web. But does that really make them fluent with new technologies? Though they interact with digital media all the time, few are able to create their own games, animations, or simulations. It’s as if they can “read” but not “write.”
As we see it, digital fluency requires not just the ability to chat, browse, and interact but also the ability to design, create, and invent with new media, as BalaBethany did in her projects. To do so, you need to learn some type of programming. The ability to program provides important benefits. For example, it greatly expands the range of what you can create (and how you can express yourself) with the computer. It also expands the range of what you can learn. In particular, programming supports “computational thinking,” helping you learn important problem-solving and design strategies (such as modularization and iterative design) that carry over to nonprogramming domains. And since programming involves the creation of external representations of your problem-solving processes, programming provides you with opportunities to reflect on your own thinking, even to think about thinking itself.
A lot of time to think when you have the flu
It’s been a long week. Last Sunday I started to come down with symptoms of the flu. Classic symptoms. High fever, chills, aches and pains, cough, a gurgle coming from the chest when I breath out here and there, feeling run down. So this week I’ve been spending time basically doing a few things:
- Sleeping
- Being a pain in the ass to Richelle
- Over-sharing on Twitter and Facebook
- Trying to answer email from work whenever awake.
- Watching Babylon 5’s first season for the first time.
- Reading Logicomix
- Watching the Phillies take the National League Championship and move on to the World Series!
Along the way I’ve had time to reflect on how blessed I am. Sure, this flu came down during a very, very bad week – things are running tight on a project I’m part of at work and I feel like my body has let people down. But then again, I haven’t caught the flu in years. I guess I was due. The problem is – it comes on the tail end of a nasty cold. So I haven’t been running 100% for over a month. A crucial month.
I’ll be heading back to work soon (if not Monday, then very close to that), and I know it will be a challenge. But it has to be better than the throbbing in my head that I feel even now, a week after coming down with this thing.
On “Make It Work Make It Right Make It Fast”
Ward’s wiki: “Make It Work Make It Right Make It Fast”
If you never make it Right – you will fail.
If you never make it Work – you never ship. You have failed.
The tension between these frames the art of software development.
There are no golden hammers to navigate these waters. Don’t let anyone fool you.
Beware the fallacies of distributed computing…
Peter Deutsch: The Eight Fallacies of Distributed Computing:
- The network is reliable.
- Latency is zero.
- Bandwidth is infinite.
- The network is secure.
- Topology doesn’t change.
- There is one administrator.
- Transport cost is zero.
- The network is homogeneous.