A relatively simple, but still interesting, article about the issues faced by distributed architectures .
InfoQ: Opinion: Multiple Processor Computing Challenges go Beyond Purely Technical Issues
Frank Carver's musings about software and life
A relatively simple, but still interesting, article about the issues faced by distributed architectures .
InfoQ: Opinion: Multiple Processor Computing Challenges go Beyond Purely Technical Issues
I don’t usually link to youtube videos, but this one is just very funny (and worryingly true to life).
A fairly comprehensive Wired article about Google Android
Here’s a neat little thing which I heard about on the Stackoverflow podcast. I can already think of plenty of uses for it. A general purpose code “prettifier” which detects, lays out and highlights the syntax of a range of programming languages. Looks simple to include in the JavaScript of any page which might be displaying code.
A potentially interesting white paper from XP and TDD “though leader” Kent Beck. I can’t work out if this is just the warm-up act for some sort of Microsoft product announcement, though …
Following a mildly rambling discussion this morning, I was intrigued to see the following article which talks about the problems of losing impetus for change after a few bad practices are removed and a few benefits are seen.
How far should we be pushing for real end-to-end agility?
The Agile Manager: Agile Made Us Better, but We Signed Up for Great
Like many other developers I was keen to try out the recent Eclipse Ganymede release. In particular I wanted to try the new subversion integration (“subversive”) to see if it is any better than the old (“subclipse”) plugin I used to use with Europa.
Getting the new subversion working was surprisingly tricky. Obvious choices simply do not work, and the error messages do not give quite enough information to solve the problem. Add to this that some of the names of locations and updates can easily be misconstrued and you have a recipe for confusion.
For example, the error message presented if you try to use the subversive plugin without installing any third-party connectors is the only-partially-helpful:
I think the Eclipse folks have potentially missed something important here – checking out a project or three from subversion is almost always the way I start when I want to evaluate an IDE.
Anyway, here are a set of steps which should result in a working Eclipse Ganymede with the new subversion:
Get the basic subversion integration plugin from the eclipse download site
Resist the temptation to try and use the plugin at this point. It won’t work and you will get the above confusing message about connectors.
Get the third party SVN connectors from a different update site
You should now be able to either Window::Show View::Other…::SVN Repositories or Window::Open Perspective::Other…::SVN Repository Exploring and add repositories to your hearts’s content.
Please let me know if your process differs from this, or if you have any corrections or suggestions.
Regular readers (are there any?) should have guessed by now that I am investigating distributed version control (specifically git). I also have a significant investment of code and history in subversion repositories. A way to migrate from svn to git, keeping all the commit histories sounds great…
Simplistic Complexity » Cleanly Migrate Your Subversion Repository To a GIT Repository
Also An introduction to git-svn for Subversion/SVK users and deserters or Git Guides – Import from Subversion
I found a blog entry which goes through the steps of downloading, building and installing the eclipse git plugin, so I thought I’d give it a go. It’s a bit complicated – involving building the plugin from source, but It seems to work!
Chris Cruft » Blog Archive » Eclipse Git plugin installation
Recently I decided that it was time to stop just reading about distributed version control and give it a go. I had already run through a variety of git tutorials, but all of them concentrated on use of local repositories and/or starting with a clone of an existing remote repository.
My main need is something slightly different, though. I want to set up my own remote repositories for my large and rambling collection of projects, so that I can access them wherever and whenever I am working.
I was tempted to use Github but decided that the learning process of doing it myself would be valuable. Eventually, I think it was, but I still might go to Github for some of my projects.
My first step was to install Git on my main development machines. On the Ubuntu box it was easy using the Synaptic package manager. On a Windows box it’s not quite so straightforward, involving a choice between a Git based on Cygwin and a Git based on direct use of Windows libraries. I eventually chose the second option, but I might change my mind later if it doesn’t work out. For the moment it does the job.
My next step was to set up the remote repository. I decided to host my repositories on some space I rent from Dreamhost, as they seem generally pretty supportive of new stuff, and already include subversion hosting.
I started by following the steps in the DreamHost Wiki entry on Git, but could not make that work. Something went wrong at the step of pushing a local repository over WebDAV. Determined to continue, I instead tried the (somewhat more complex) steps at Autopragmatic » Blog Archive » Hosting a git repository on dreamhost. Even though this involved rebuilding a slightly non-standard version of Git on the server this now works very well.
I now have a small green-field project in a remote repository at Dreamhost. My next plan is to investigate using git-svn or some other form of git/subversion bridge.
My eldest wants to try learning Spanish, and suggested that I look for some audio study materials for her MP3 player. I had a quick look around the internet for free stuff. Here are some that I found
Free Spanish Lessons and Spanish Language Courses
Spanish Lessons – A to Z Home’s Cool Homeschooling Foreign Languages
Free Foreign Language Courses (Download to MP3 Player, iPod or Computer) | Open Culture
She’s starting with the episodes of the Coffee Break Spanish podcast
Update: Coffee Break Spanish have just announced that they are stopping the series after episode 80 and starting again from the beginning. In one way it is sad to see it end, but in another way it can give my daughter renewed hope that she will get to the end. She’s currently still squeezing the juice out of the first few episodes!
I have just spent an hour or so evaluating a selection of XMPP (Jabber) clients, including Pidgin, Miranda, Trillian and Pandion. After some playing I have settled on Pidgin for the moment. It is a multi-protocol client which supports a whole range of services. I currently have it set up for AIM, Yahoo, Google Talk, and my own Jabber server. What I would really like is one which also supports Skype IM – I use that a lot for work.
For now I have fully installed Pidgin, but I am very interested in the possibility of creating a portable version which runs from a USB drive.
Using Running Windows Pidgin From a USB Drive (Portable Mode)
An interesting article considering potentially conflicting results about how to improve software quality, and drawing some general conclusions.
InfoQ: TDD Opinion: Quality Is a Function of Thought and Reflection, Not Bug Prevention
I find this an interesting contrast to another InfoQ article:
InfoQ: JSR-305: Annotations for Software Defect Detection
For me this is heading toward madness – annotations already have the potential to form a crazy, fragile and mutually incompatible mess around code, and now another proposal to dollop a load more syntactic noise on otherwise simple Java. This seems mostly like a strange, ugly and potentially incomplete attempt at implementing design by contract.
All teams have their ups and downs, and sometimes it seems as if a team would just be better without a particular person. A recent article from InfoQ discusses this situation in the context of the Survivor TV show, popular in the USA, where contestants repeatedly get the opportunity to “vote someone off the island”.
InfoQ: Voting Someone Off the Island on an Agile Team
While I can see that in some situations the ability of a team to decide together that it’s just not working for some team member is useful and valuable. However, I can’t help worrying that there is a hidden dark-side to this.
As well as making rational consensual decisions, groups also exhibit other, less desirable, characteristics. It’s easy to imagine someone being “voted off” because their ideas challenge the status quo, because they threaten the complacent assumptions of the rest of team, or simply because they are different.
A mob, even a small mob, can be a dangerous thing. “Reality TV” such as the above-mentioned Survivor, Big Brother, The Weakest Link, and many more have shown us this again and again. Do we really want to encourage the mentality of conspiring to “vote off” the most challenging competitors in software development?
A fascinating collection of possible cross-site-scripting vulnerabilities. Potentially very valuable for anyone developing a web application which allows text input.
A small tip for setting some global configs for Git. Note that in my installation it needed a double dash (–global) instead of a single dash (-global).
I just found this link in my drafts. Still worth looking at if you are interested in a holistic view of agile development.
A continual source of discussion is the XP/agile admonition to do “the simplest thing that could possibly work”. What is simple? How do you know it could work until it is done? What if part-way through you spot a “simpler” solution? “simpler” for who? And what does “simple” mean, anyway!!
Here’s an article which looks at this old chestnut from the point of emphasis – is it the “simplest” or the “possibly” which should carry the most weight?
Jay Fields’ Thoughts: The Simplest Thing That Could Possibly Work
Another commentary on the same article from Ian Robinson can be found at The Simplest Thing That Could Possibly Work :: iansrobinson.com
This is such a great idea – it really is getting close to real pair programming environment. Best of all it runs with the familiar Eclipse IDE.
I like this. halfway between the complex and largely unsolvable world of natural language processing, and the currently trendy area of domain-specific languages (DSL) lies the more constrained and useful area of domain-specific-language processing.
Why not use a structured subset/dialect of a natural language as a control interface – it’s a natural fit for mobile interfaces, and hands-free interfaces generally.