-
All things come to an end, and for this blog, the time for maintaining my own blog engine has come and gone. I based this site on community server, probably because it was a .net based system and had some features that seemed good for the hosting provider I was working with. Today though, the free alternatives are just so good, and I am just not interested in maintaining this kind of commodity software any more.
Check out my new blog, complete with a new post, at http://panmanphil.wordpress.com/
For those loyal readers that had simply forgotten about me and not removed me from their feed readers, you can do me the honor of updating your link to my feed at
http://panmanphil.wordpress.com/feed/
-
I had the good fortune to have a couple of my essays, aka axioms, included in the new book from O'Reilly, "97 Things Every Software Architect Should Know". It has been about a month since this book project hit the bookstores,
but the book is one of those rare technology books that should age well. It is an original type of book, drawing on the wikinomics idea where the author is mostly an editor, and the content was freely contributed by a large number of architects from around the world. Richard Monson-Haefel started the idea from an interesting thread in an email list. You probably know the kind of email thread I'm talking about, a thread where there is so much good content and ideas that you think, this should really be captured in some way that others could learn from it or share in it. Richard turned the thread into a wiki, and then took the radical step of taking selected ideas from the wiki and turning that into a book.
The book represents what a good sized cross section of people feel is important to architecture. It is really not about technology at all. Regardless of what technology choices you have made for yourself or your company, the ideas will make sense to you. It is also not a 1-2-3 manual about how to become an architect. You will find axioms that you agree with now, some you may come to agree with in the future, and some you may not agree with. In fact this has been a criticism of the book, that some feel like there are conflicting points of view represented and as such it doesn't advance learning from the point of view of the author. That is a fair point of view, particularly if you are inclined to look for the one true way in software architecture. For myself, I gave that up a long time ago. One of the unique qualities of humans is that they are good at choosing the correct strategies to use based on the situations they encounter, and software development hits on a whole lot of situations.
What you will find that makes this book better than blogs, wikis, magazines and other online content, is that the book is layed out nicely and the text has been carefully edited to be readable and succinct. So instead of a wide variety of opinions scattered around a wide variety of sites with a wide variety of writing skills and abilities, you will get a wide variety of thoughtful ideas on software architecture in a consistent form and writing quality. Like a good book on patterns, some of the axioms will resonate with you more than others. Hopefully, it will help you understand those situations more clearly. It can be nice to know you are not alone in those points of view. More importantly though, there will be other ideas there for you that can help you see beyond where you are currently at or where you might be currently stuck. 97 Things covers the breadth of ideas important to software architects and I think you will find things of real value in there for you.
-
So after the initial rush of indignation and anger I have done quite a bit of research and got the message from my son that no voting official told him that he would get a provisional ballot. He registered at a campus event, and nobody there would have been able to do that anyway. What really happened was that after he registered, he found out about an issue that could still in fact keep him from voting.
The attempt to force database matches on demographic data is something our attorney general has been trying to get done. In fact he filed a law suit trying to force this to happen, which would have put most new registrations, and many registrations for people who have moved after previously voting, on the provisional list. For all the reasons I pointed out in my first post on this, this is a really silly idea. The likelyhood of false matches is so high that no respectable computer pro would ever recommend it.
However today, the law suit was thrown out. No doubt appeals will be the next thing, but at least clearer heads have prevailed for the moment. In a real statement of clarity, quite aside from the proposterous idea of using data matches, the judge said, "Nothing in state or federal law requires
that there be a data match as a prerequisite for a citizen's right
to vote". In addition the judge ruled that the AG did not have the authority to file the suit because the state has granted the Government Accountabilty Board the oversight of the election process.
Score one for common sense!
-
Somehow, I thought this could only happen to “other” people, people outside my family and friends, people who's circumstances I don't know well enough to get me as outraged as I am today. My son is 22, has previously voted without problem in our home town here in Wisconsin, in Duluth where he went to school and was planning to do so again in Milwaukee where he lives today. He hadn't voted there before, so he went to register. What he was told seems to me to be totally out of line. I feel the need to let everybody I know what has happened.
For reasons I still need to understand, he was told he would only be able to place a provisional ballot, meaning the vote won't count until an election official reviews the registration. Here is where it gets really interesting. It turns out that most provisional votes are thrown out.
This is quoted from a Rolling Stone article here:
“Under the Help America Vote Act, some states now reject first-time registrants whose data does not correspond to information in other government databases. Spurred by HAVA, almost every state must now attempt to make some kind of match — and four states, including the swing states of Iowa and Florida, require what is known as a "perfect match." Under this rigid framework, new registrants can lose the right to vote if the information on their voter-registration forms — Social Security number, street address and precisely spelled name, right down to a hyphen — fails to exactly match data listed in other government records.”
Any programmer that has ever worked with demographic data from a variety of sources know that the chances of exact matches across a number of sources should be considered extremely rare. People, move, their names get misspelled by people doing data entry, handwriting is imperfect on paper forms, people use formal and informal versions of their names, and on and on and on.
My son is at that stage in his life where he moves around a lot. Because of this, he will sometimes use our home address on forms where the situation requires a more permanent location. Nevertheless, he has lived withing a few miles of his current address for more than a year. It would seem likely he would fall out of favor with the HAVA criterion. His situation is so common, I would think it would be a problem with a large portion of young voters.
My son is real. He has a drivers license and an up to date US passport. He is employed. He now lives in a predominantly poor and black district of Milwaukee. So why is he limited to a provisional ballot?
The plain and simple truth is this: my son is a legitimate voter. I am mad.
-
RAAM is the Race Across America, a bicycle race from Oceanside California to Annapolis Maryland that starts in a couple of weeks. For solo riders it ranks up their with the Tour de France in difficulty. On the scale of crazy things to take on, this has to rank among the craziest! Cool, eh?
I was asked by some long time skier friends to join the team, Team Badger Bikers. I believe the qualification for me was that I like to have fun, so don't worry about serious athletic expectations from this old boy. Actually, old boy doesn't work at all on this team because the average age is 59 and I'm not quite ready for my AARP card. That makes me one of the kids on the team. Truthfully, every one of us has some fairly high expectations of ourselves, expectations that are driven by the athlete we dream of being. Having had a LOT of experience testing those dreams against reality, a reality that includes work and family life, discipline "issues", genetic "issues", and the real truth of how special our athlete heroes really are, it's still OK to have dreams for motivation and face it, out and out fantasy. As citizen athletes we have one up on our couch occupying arm chair quarterbacks and coaches because we actually get out there and do it.
This race has a much more important reason to see it through. We are doing it as a charity fund raiser for Make-A-Wish Foundation of Wisconsin. From their own description:
"The
Make-A-Wish Foundation®
grants the wishes of children with life-threatening medical
conditions to enrich the human experience with hope, strength and
joy. Wishes provide a special type of medicine, diverting thoughts
from the difficult routine of medical treatments and hospital visits
to dreams of possibilities, fun and hope."
Many of you may know kids that have gone through serious medical issues and know how truly awful that is. We like the idea that our team, made up of up people from an older generation are reaching out to help these kids. Some of you have probably already heard my pitch for a donation or will soon. Anybody else that is willing to donate to the effort should download the form here, and cough up a few bucks for us. The team and I would really appreciate it. Our goal is to raise $50,000 on the attention a race of this magnitude should provide. So help us out! You can check out our progress at our team site.
My training log is kept at DabbleDB, a very interesting online data application (note how I didn't say database application). There isn't tons of hours, but the training has been very specific. We take off on June 11th and I think I'll be ready. It will still be hard.

-
I just had to mention that in spite of global warming, intense effort and hours at work, an aging body things aren't all that bad here. This winter we got our first snow in early December and it was weeks before it ever made it above freezing. The skiing was fantastic! Then we had a thaw. A day or so later it snowed again and again the skiing was fantastic. Then a thaw, this time lasting for days and including a full day of rain, often heavy. Most of our snow was gone. But then it snowed, and snowed some more, and then many of your saw pictures of the end of that during the glorius Packer playoff game last Saturday. Once again, it stayed below freezing and now more snow is on the way.Skiing is fantastic!
Day after day of a little soft snow over an icy base with temperatures in the 20's (0 - -4c) makes for some happy skiers.
-
For a diversion from trying to get my head around the value or lack of value of WCF, I took up a project only a geek could love. I wanted to be able to manage my cell phone data from my computer, and it had to be with software that could run in debian linux because I didn't want to have to reboot to windows just to get something off my phone. Enter BitPim, an open source package that works with a variety of phones from a variety of carriers.
Though it's in release mode, bitpim is not the picture of polish. It tries to strike a balance between the IMPOSSIBLE US phone market where no two carriers will share any standard way of doing anything and users who might actually think they shouldn't have to get a different piece of software for every phone they buy. Bitpim has a gui that supports a kind of neutral view of a phone: numbers, contacts, calendars, ringtones, wallpaper, media and so on, and then supports adapters for each phone. You might imagine there are some challenges with that and there are.
My phone had a definition based on the Verizon phone but naturally my carrier had tweaked it their own special way. Pure hex dump binary hacking and I loved it. I created a new phone definition, subclassed from the Verizon version, tweaked the definitions, something the application design had made very centralized and clear and eventually got my calendar going back and forth with the phone, alarms, repeats, days of weeks and all.
A revelation about this to me occurred later. This was the first time I had ever done anything in python, but learning python was a total non factor. I found an online reference somewhere, looked up a few things, looked at working code for other phones, and just coded. I'm sure the overall design of the software helped, because I didn't have to deal with the integration with wxWidgets at all, and I would think that could require a bit more learning. But the fact I could just read the code and a little documentation and mostly focus on the application seems to be saying something to me about python. Hmmmm.....
-
I haven't seen much from other software people about Charles In Space. A bunch of us met Charles last year at Cortina and I think we all really enjoyed him. I remember him digging into a "discussion" about IOC with the same vigor as everybody else and came off like the serious architect you would expect him to be. He was a very approachable guy and was fun to talk with about any number of topics. And now he's the 5th space tourist, fulfilling a life long dream. Congratulations, and good luck!
-
There is a bit of press right now about open document formats that have or are currently pushing their status as international standards. Everybody should be interesting in this who may be interested in keeping formatted information around for the long term. In the best world, having a document you created should not mean that you require a specific tool in order to view it in the future. We ran into this here at home when we retired an old computer that had an OEM version of MS Works. I wasn't willing to buy a new version of Works or pay for Office for my home, and nearly nothing else is able to read it's document format. So these formats are supposed to help with that. But....
Are there any other applications besides Open Office that can read the MS Open Xml format? Are there any other applications that can read the Open Office format? Better yet, what about libraries? I would love to know. It would be such a simple thing to do if you could allow non technical people to create documents as templates and the have systems flesh out the details if only the document formats were easier to use without the original programs. I've browsed the MS samples for dealing with Open Xml and some of this is doable, but it seems like the process would be very fragile to users formatting decisions. Even if that were done, I can't assume anyone would be able to read the document because even Word requirements are unacceptable for internet published documents, and Word 2007 is hardly used at this point. If there was some software that could programatically read these documents and convert them to pdf or html, it might be a better option.
Some standards bodies have used a litmus test: if an application can be written to use the specification by a certain class of programmer is a certain period of time, the specification is a success. I have a feeling that none of the contenders could meet this test but would be quite happy to be proven wrong.
-
I'm in the midst of doing some system updates and realized it has been a long time since I posted. I needed to see a post come through so at least I have an good reason to post now!
Lots has happened that deserves a little time to write about, but the most enjoyable lately is that code is flying from under my fingers again after more than a year layoff. Yes Mom, you really do lose your skills and fast when you don't code. Fortunately, you can get them back pretty fast too.
The other interesting part of that is connecting the architectural daydreaming I've been doing the last year to the new technologies available now that I'm working full time in the .net 3.0 world. I think we'll see some real progress on distributed apps now, and I'm looking forward to the adventure.
All for now.
-
I was tagged some time ago, but since I'm going to see the evil person in person next week in Switzerland, I figured by better buck up and write something. I have to admit, I found the game bothered some sensibility I couldn't quite name (chain mail). I have to admit, I've enjoyed reading the posts, so I'm in!
- My first formal introduction to programming started in my third semester of college. It was fortran on punch cards. I found both the development experience and the formal study of computer science to be a horror I could never imagine doing for a living, and switched to a music theory and composition degree.
- I'm not sure if there is some name for this "affliction" but I have a deep attention span: of about 2 months. Then my attention will move to something else. As I have gotten older I no longer need to totally abandon the thing I was just interested in and now I mostly rotate around between business, software, music and cross country skiing. Three cheers for growing up!
- In spite of loving travel, loving the high culture of big cities, mountains, oceans and ski hills, I have only lived in 8 homes in 4 cities my entire life. Discount a dorm room and one summer with a gig in Minneapolis and that's 6 places and three towns my whole life.
- I was once asked to join the Buddy Rich band on tour as a bass player. I said no in spite of how it might have helped my music career at the time. Look at the wikipedia article for the word infamous and you will have one, but not the only reason why I didn't join. Entertainment defined...
- While I love reading a wide variety of books, from software tomes, to history and historical fiction, to biography and novels, my guilty pleasure is sea stories from the sailing days. I'm just finishing the Patrick O'Brian series from which came the movie Master and Commander.
-
Check out this piece of crap that should never have made it past the desk of a responsible editor. So much for the arguments that having an editorial gatekeeper will shield the witless masses from being subjected to unqualified, sanctimonious opinions.
I can let go of the fact that this guy doesn't understand what Web 2.0 is all about, lots of people are in that boat. But why would a news organization allow someone so totally clueless about distributed objects and their relationship to the broad network get their blessing by publishing this? Didn't he ever hear about what happened to RMI, CORBA, .net remoting and a slew of other approaches? Has he ever heard of SOA? What works, what doesn't and why?
He seems to be mostly unhappy about a particular Web 2.0 technique known as the mashup, though he doesn't make it clear if it's mashups in general or mashups done in javascript and xml that make him twitch so. What he has missed entirely is how similar they are to the types of business partnerships that
small businesses have relied on for centuries. In the past this aggregation of services might have been done with paper forms and faxes, allowing a group of companies to work together to service a client. Remember your last home loan as an example. The mashup is just another technique to make this happen electronically. Loose coupling, simple interfaces, a combined face for the customer, these are all proven techniques. It remains to be seen if html/javascript will be the best way to deliver mashups, but I think the technique will survive much longer than the term Web 2.0 which is becoming sooo 2006!.
-
I have spent the last few months trying to get my head around the effects of the new kids in town, the big social networks, the Web 2.0 darlings, the perceived shift of "ownership" of the web from companies to users and how companies relate to all this. My week at the Web 2.0 conference, while not exactly an overwhelming experience, nevertheless seems to have pushed my brain over a steep ridge where the shadows aren't so deep.
If you read this by Nick Carr, you can pick up on the various camps, exagerated as they may be, to prove his point. I mostly agree with what Nick is saying here about MySpace and other high volume social sites. The game is up, it's time to accept the fact that this is a mass media show run by the media companies now. I did my best to stomach my own profile experiment on MySpace and was amazed that people could even think of the connections they made there and the word "friend" in the same sentence. Popularity contest is probably more like it with friend described in only the most cynical, one sided fashion. Still, my own kids at one time were making connections they felt stronger about in LiveJournal and DeviantArt not so many years ago. Today, none of those relationships have survived.
I am probably by my nature more on the side of Esther Dyson described in Nick's post. While at the same Web 2.0 show I had dinner with an old San Francisco designer who like me was around at the very early stages of the web. We reminisced about our heady visions, utopian values and outright excitement that pushed us on at least as much as the steadily rising paychecks. At least the paychecks have been steady. There is another side to the discussion though. It's not just the utopian view vs the crassly commercial view. Viewing MySpace or vendor maintained CRM systems, or LinkedIn as posters of failures in bringing people together into meaningful relationships is a big mistake. I am sure there were some people who may have had those hopes, but the truth is, we have so many defense mechanisms in place to help us discriminate between friends and foes, the tools simply don't have the stuff that could overcome the barriers to real relationships. People have to work at that, overcome fears, reveal themselves, risk something. The social tools actually hinder that because you can remain carefully hidden behind a carefully constructed, mostly anonymous veneer as long as you like. In the end, they can help you *find* people with your unique mix of interests, but after that it's still up to you to make a relationship.
One more thing. When I first read Doc Searls views about how shallow and one sided the "relationships" are as maintained by a company CRM system, I was impressed with the message. But since, I've changed my mind because of my thoughts about social networks in general. I won't EVER want my bank to know about my ski coaching, jazz playing, kids names, dog and so on. I want to preserve the feeling that my relationship with my bank is just business, carefully cordoned off. I don't want to "make love" to the ATM or teller. And please don't ask me to remember the details that the bank is interested in. I'm happy with them taking care of all that in their CRM system or however they want to do it. I'd be happy if I could maintain my password and possibly my address information in the CardSpace style that MS' Kim Cameron is working on.
I heard that Google will allow me to download my search history at some point in the future. Yep, those are interesting facts about me, but knowing those facts will not make you know me. We need a new name to replace relationship in these discussions. Something more like neighbor and less like family or friend.
-
OK, actually I'm slogging through the end of Web 2.0 conference, waiting for the last hour of talks before it all ends. Slogging because one, I'm tired and two, this conference is run like a big TV show. I gave up TV a long time ago. I am sure I'm not the first to notice that at the conference arguably for and about user generated content, user relationships, and user ownership of the sites we visit, we are all herded into big rooms to listen to somebody else's conversations with little input. Without a doubt, there are lots of interesting people going across the stage with lots of interesting things to say. The hosts questions are all good. The high visibility of the guests and the companies they represent make it a real event too and justify the cost of the trip. As TV it is really well done.
When it gets down to it, I have been forever spoiled by the Open Space conferences I have been to recently in Crested Butte and various locations in Europe over the last couple of years. It's true that I was able to get some answers and some relationships that will be important or at least enjoyable in the months to come. Still, considering that the numbers of entrepreneurs and VC types were really high, because of the number of ideas still being heavily germinated would benefit by more talk between more people, I'd like to think that we the "users" would be better served by a modified format that embraced our input. I wonder how you do that with 1000 people? Quite a problem.
-
Here is his rant., the SOA Elephant in the room.
It's strange to hear myself commenting on SOA at all honestly, but for a variety of reasons, Udi Dahan's blogging not least among them, my mind seems to have turned a corner on SOA. SOA puts a line in the sand about how to divide up large domain models along business lines and that is a very good thing. But this is not what Rocky wrote about.
This is an excellent post, ranting about the over hype of SOA while at the same time putting forward a nice definition of both syntax and semantics as it applies to SOA. I do have a counter point though about his dislike of the semantic coupling. The point of SOA is *not* to standardize services between providers. There was an effort some time ago to build industry vertical schemas and that has failed in almost every case. That's the syntax standardization! No, SOA should probably be looked at instead as a way to "explain" your business clearly and what is unique about it via the services you have to offer. If your business is not unique, that defines it as a type of commodity business, and that is not a good thing for many many types of business.
While speaking at SD Best Practices in September I had a chance to sit and talk with the always engaging Christian Gross and his adventures into the SOA world. He observed the same point as Rocky but came to a different conclusion. He was interfacing to a service provided by a high end brokerage and started down a typical path where he thought he should abstract out the specifics of that brokerage. He made two mistakes in his view. He set off coding away the abstraction to minimize the semantic differences between his need of the brokerage and how the brokerage actually worked. Then he exposed it via a service to the rest of his application. What he realized was that 1st, he now had two abstractions, the interface in the code and the service, when all he needed was one, the service. Second he realized that if the abstraction was at the service level, he could code the service to go against the brokerage api exactly as it needed to be used. If he would change brokerages he would just start over with a new implementation and his (internal) consumers would be none the wiser.
To answer Rocky's point then. Yes, services will and should provide different semantics. Because you will typically not have lot's churn with the partners you interface with the impact of the change should be small. If you're find struggling with this issue, you may be expecting the business to be a commodity when it isn't.