via metafilter
[ no comments ]
It's amazing, I studdied marine biology for all those years and never learned a thing about the amazing Octopus paxarbolis, probably because it lives in trees instead of the ocean, duh! (Hey Bob, have you seen one of these yet?)
[ no comments ]
I've made a little HTML mockup of what I think code should look while being edited. I choose to use Java as the language being displayed, but the basic ideas should work for most languages; certainly the block structured ones anyway.
I used HTML and CSS for my mockup and it was pretty fun tinkering with the look. I don't expect it appeals to everyone but that's OK. What I really want is for modern editors to just auto-magically create a tagged up version of the code based on standard syntax components, like blocks and keywords and then allow us developers to design our own CSS style sheets to display it. That's just what I did, but I did it by hand.
In a real system we probably would never see the structured code, although we might want to, but the conceptual model of divs and spans, using documented CSS class names, placed around code elements would provide sufficient richness for us to develop a pretty snazzy code display CSS.
[ 9 comments ]
[ 3 comments ]
The recent release of a subset of the Rational Unified Process to the open source community gave many of my friends who have worked with it a chuckle. On paper it seems like a pretty reasonable process. In practice, what I've seen is, management focuses too much on the process itself rather than the software the process it is trying to produce. In addition there are all the unintended consequences of such a heavy handed approach to development. I found the following list of some of these consequences on a SlashDot posting talking about this exact subject.
don't forget "The Law of Unintended Consequences" which shows that:
1. As accountability goes up attitude, morale, productivity, and efficiency go down
2. Once you hit critical mass on paperwork, process, etc you destroy motivation - there's some point on the curve at which point everyone just says 'who cares' and 'why bother'
3. It's impossible to really anticipate everything upfront, which means that minor changes that in a system and organization that embraces agility & resilience can be easily handled in stride take 40x as long in an organization afraid of blame.
4. Most of the work is done by the motivated and talented 10% of the staff. these people leave rather than put up with the bureaucracy designed to hinder the 90% that are unproductive.
[ 1 comment ]
[ 1 comment ]
If you were meaning to send a donation but forgot, the American Foundation for Suicide Prevention is always taking donations.
Thanks again.
[ no comments ]
The more I read about autism the more I see parallels between my approach to the world and how Susan describes their autistic son Nat's. This is not to say I think I'm autistic, only that there's a very thin line between one state and the other. Take for example the following: I'm a loner. In loud or crowded social situations I often get anxious and zone out. I see patterns in odd places. I'm very much a creature of habit. In general I don't like change but preparing for it always makes it better. From reading the book I've found out all that all of these attributes could be ascribed to an autistic person (or at least Nat). I know these attributes could also be ascribed to a classically nerdy programmer type, but that's really why I find it so fascinating. Cognition is really a mysterious, fragile and wonderful thing.
The second reason I mentioned liking the book, and this is really the primary reason for me, are the insights into the Batchelder family. It feels pretty voyeuristic at times, peering behind the facade of a modern family like theirs, but that's also what makes it so compelling. If you take away the family specifics, you could just as well be reading about my wife and me instead of Susan and Ned. It's a very personal and honest portrayal that I give them all kudos for having the courage to publish. None of us have the perfect easy lives we try to present to the outside world so it's very refreshing and life affirming to see other people, especially people you know, live through pain, fear, and doubt and yet come to find some level of peace and happiness.
[ 2 comments ]
Back in the day, Iris/Lotus used to include the goal of a fun environment in their mission statement. Sadly, but not unexpectedly, this was one of the first things expunged when the big blue glue flowed through the works. Right after the take over there was a new mission statement that clearly removed the word fun from the list of goals.
To be fair, I had some of the most fun of my career working at IBM. Unfortunately this was short lived and probably only occurred because we were working on the first version of Workplace in a kind of stealth mode outside the normal bureaucracy.
[ no comments ]
Once I had lived with the code long enough to learn the sad truth, I told my manager about the state of affairs and that I thought we needed to spend some time rewriting it. He was supportive of the idea and gave me a few days to do it. I figured, no problem, I've been doing this stuff for twenty years, I will just think about it for a while and type in a new solution. This is when my troubles began.
As I tried to think of a new approach to the problem, the existing implementation haunted my thoughts. I kept comming back to the same ideas that I knew had problems. Rather than do nothing and stare at the screen, I did what I normally do in this sort of situation, I refactored. I pulled the monster apart and examined the pieces.
Unfortunately, no new insights emerged, so I cleaned up the parts and put the thing back together. As I worked to address some of the issues that had necessitated this work, the same problems kept nagging me. The code needed something more but I couldn't tell what.
I reworked that code furiously for hours before the light finally dawned on me. In retrospect the solution seems obvious - classic even. A judicious use of the MVC pattern and some better abstractions cleaned the whole mess up.
The reason I'm posting about this isn't because I think my solution is great or unique, rather the opposite. It's just a couple old lessons I keep learning and re-learning as time goes by. Programming is easy until it becomes hard and there's nothing harder to change than a plausible idea that just doesn't work.
[ no comments ]
[ 3 comments ]

