vss_to_svn: Dealing with spaces in VSS paths

I’ve been helping another team move from Visual Source Safe to Subversion. Today I got the list of sub folders needed/not-needed in the new repository. Something that took me a while to solve was how to include or exclude paths with spaces, as the python would see these as new argument. This is done via an argument file.

So, to include the path $/Path/Project Version ExtraWords the following will not work:

-i **"**$/Path/Project Version ExtraWords**"**
-i **'**$/Path/Project Version ExtraWords**'**
**"**-i $/Path/Project Version ExtraWords**"**
**'**-i $/Path/Project Version ExtraWords**'**

So after a long pause, I remembered the url %20 trick

-i $/Path/Project**%20**Version**%20**ExtraWords

and it worked. I hope anybody using the scripts, or python arguments finds this useful.

Fit for purpose - Workflows that work.

As a this is what I meant chat I had with Matt in regarding Software Development, I came up with some key idea’s.

One is that in prototyping/designing the interactions you are creating the surface in which a user interacts with the system. The how things are done below this do not really concern the user, performance constraints aside.

What I was thinking of is a system where you build entities that are user level concepts, things that hold business meaning values. So in a customer management system, you may enter a partial customer say minus fax number. So this needs to be saved so you can do something else. Yet you want to later resume entering the customer once you have their fax number. So for mass faxing (an evil act in its self) this new customer is not fit for purpose. So things become about how do you manage the process of making things fit for purpose.

So with that in mind this is what I was thinking of for software development. As you build the interactions there are steps still to be done, before the system may be complete, but maybe the system is still complete enough to explore the interaction. With task/decisions still left to be explored. I think of it as brain mapping an applications where parts are still left to be considered.

So if you have an application, where you have been displaying entity values and you then introduce role based security, you have to make decisions about how the roles can interact with business values. Then when a new role is created, the past decision needs to be mapped to tasks yet to be done.

Sort of a system where the process of creating new solutions understand the type of interactions it may have, and these interactions/decisions are recorded, amendable, explorable and reviewable.  Notes and thoughts recorded as the domain is explored, giving you interactive creation.

This seems much more desirable than the flat specification document I have to read, and I have not yet because I know it’s not going to be what I have in my head. When discussing this section A will be used to argue that section B is correct yet forgotten (by all) will be section C, and its overall interaction.

The non-linear nature of interaction does not fit well into written form.

It’s not fit for purpose.

Software Development

I was having a very Zen moment on Saturday, influenced by Do Androids Dream of Electronic Sheep, where I was trying to imagine what/how software should be built in the future.

It starts from my dislike of the paradigm for computer interaction we have now, and even worse how we program computers (based on system intention, and functionality capture and workflow’s).

So there I was driving and thinking how I’d love to control a computer with my mind, and then was thinking how I’d program, letter, word or concept at a time. I was thinking of a current project, where the largest part is the user interaction. How to create the interaction, and build the “back-end” into it later. How I’d love to be able to dump my mental picture, and interact with the model with the rest of the team.

Sort of in a drag and drop way we have now with UI, but it all very much smarter. Like currently we drag-n-drop widgets, then it’s done, the maintenance part is hard. Or how you make decisions about “not using security”, yet later this is required. So almost the workflow of what should be in programs, and the parts understanding this.

I see it as a live workflow of what is left to-do, and what is done, so things can be deferred, or revisited.

So while I have this organic system in mind, I was acutely aware that our current connectivity with a system is so woefully constrained. Keys for written text, and a pointing device. I want more direct control over high level concepts. I want things to move along, and I’m inpatient and not sure our commercial markets will allow the changes required as anything new will first have to surpass the current. Like we are in an interaction local maximum.

I want to create the same way I can hear/write/read that voice in my head in conceptual blocks.

Hmmm, lucky it’s swimming time, otherwise I think I would have just depressed myself too much to handle C++ via a QWERTY keyboard right now.

The Wisdom of Crowds

Well I read The Wisdom of Crowds so long ago, I’m not sure what to say:

I do remember enjoying this book a lot.

The idea that depending on how a group is structured and how “voting” takes place a crowd/group can be smart (markets) or stupid (committees).  It explored different dynamics present in groups and how those dynamics helped or hindered the desired results.

These sum up the book better.. The books Q & A page, and the Wikipedia page.

Harry Potter and the Deathly Hallows

About a month ago I read the last Harry Potter book.

On the whole a fantastic books with some great twists, yet I was informed the first half was boring and then it got good, so I had a good grounding in which to just enjoy the story, thus not finding the first half boring at all.

After finishing I felt quite down in end of a good thing kind of way, the stories have felt so easy to read, and it’s a fun romping plot, so when it’s over you sort of go, hmmm, no more of that… back to heavy lifting books. Thus for the last month I have been in a can’t be bothered mood towards books.

Solved that this weekend. Thus feel free to admit I was reading the Harry Potter books and loving it.

p.s. Gosh Rowling must have made a bundle on this lot.

Do Androids Dream of Electric Sheep?

I have been wanting to read Do Android Dream of Electric Sheep? for a while now. So while at Borders yesterday I went to the Sci-Fi section (I know how often does a programmer type do that?) and thought of Mr Philip Dick.

Do Android Dream of Electric Sheep?
Do Android Dream of Electric Sheep?

Wow what a great book. So many provoking ideas. The very thought of living when you can chose your mood (via a device) seems deflating. For ~200 pages I felt the book had a lot of depth, missing from Blade Runner. This is most likely due to more time focused on the mental state of the characters than the combative nature of the androids in the film, which made it easier to empathize with/for them.

I look forward to reading it again. Seeing what idea’s strike me the second time round, but for now I’ll enjoy the after glow of the first reading.

Code Camp Boot Camp

Code Camp - Boot Camp 2007
Code Camp - Boot Camp 2007

The South Island’s first Code Camp is firming up with dates and location having been settled, November 3/4 (2007) and here at Trimble (Chris‘s work that one).

I’ve been spending my spare time working on a coding challenge,

.- -. -.. / .- .-.. .-.. / .. / -.-. .- -. / … .- -.-- / .. … / - .. -- . / - --- / -… .-. ..- … …. / ..- .--. / --- -. / -.-- --- ..- .-. / -- --- .-. … . / -.-. --- -.. . / .- -. -.. / -.-- --- ..- .-. / -… .- -.-. -.- - .-. .- -.-. -.- .. -. –.

 Which has been lots of fun and I’ve learnt lots that I want to blog about, but will have to wait to till after the challenge.

Best Birthday ever!

I’m sure I had the best birthday ever on Saturday. It was relaxed, I got some great presents, and just spent the day hanging out at home with Michaela and the kids.

Things that made great:

  • The weather was fantastic all day, it was that surprise warmth you get from a Canterbury nor’wester.

  • I got a hacky sack. Haven’t had one of those for years. We all spent large amounts of time playing hacky sack all weekend.

  • I got Need for Speed: Carbon for the Wii and it’s such a fun racing game. We played lots of king-of-the-hill style verses racing over the weekend and Michaela was the best!

  • The Squeezebox arrived, and provided fantastic music all weekend long.

I would happily have birthdays this good every year.

Squeezebox arrives

The Squeezebox arrived Saturday morning. The boxing was very nice and stylish. It unpacked very simply. I plugged it in. Turned it on, spent five minutes configuring and it just worked. Longest configuration step was entering my over complex WPA key, but even that was straight forward.

I had read some posts on the forum saying it was a network set-up trick, shrug, it was simple (if you get networking). It had a DHCP option that worked, but I went for static configuration as I’m a control freak.

I’m not not sure what else to say, It just works! If I had a larger house I’d buy more. I still might….

Life style wise, it is one of the best purchases since buying the house. I haven’t had central music for years, and prior to the CD player dying, the stereo was at one end of the house and you had CD swapping issues. Now the sound is in the middle of the house, we have access to all our CD’s (well I have to rip them all, but I have a good starting point to begin with).

Internet radio is sweet also, I was listening to the chillout/ambient genre via shoutcast.com which was fantastic. @128kbp, I can handle ~40 hours before using up my current surplus monthly bandwidth quota.

We spent the weekend chilling out listening to music and playing hacky sack. Best money spent in ages.

Update: Just noticed a comment on Mauricio Freitas blog that Ascent have Squeezebox’s for $414.05NZD new preferred supplier found.