Lance Wicks
Kiwi,
Judoka,
Geek,
Husband
Daddy!

JudoGeek Blog

DojoList Progress 

This is just a small update on my DojoList project, to let people know what’s been happening in the background.

My time/energy for working on DojoList has started picking up again after a self-enforced break from the code I took a couple of blog posts ago. I am now working on the 0.7.0 version of the code and it is coming along slowly but surely.

One of the big reasons it has been slow moving forward is that I've been working with others on some important additions and ideas for the system. Specifically the "sync" idea.
I would like DojoList to be a system that can send and receive data from one installation to another. For example, I already read data from http://judoworldmap.com into http://dojolist.org as the data there (like mine) is creative commons licensed. But my initial hack at this is one-way and just pulls data from the front page.
We (Ulrich, who runs Judo World Map) have been talking about how we might structure things so that should someone update a Dojo I have imported from his site, that update is automatically feed back to his site so that the user updates in one place but the changes appear everywhere.

A good example case would be this. Your area association might install DojoList on the area website, maintaining a list of clubs in your region. It is an accurate list because it is local clubs and the clubs visit the area website, so updates get made.
The National governing body also installs DojoList, but rather than re-enter and re-manage the clubs from your region they point their DojoList installation at your area installation and hey presto, all your local clubs are listed on the national website. When you change training times on the regional site, it updates the national site too. AND (and this is where it gets tricky) if you happen to update the national site, it updates your area site.

So you have a two way sync, and everyone gets better information. Of course it's proving tricky to work out how to do this. I have been making some changes to DojoList to make it possible. This has included the creation of a source URL field to show where the site came from originally and a GUID (Global Unique ID) for each Dojo (I am also adding a "last updated" field). The next step is to build the mechanisms to sync changes between sites and test the daylights out of it!

I've also been working with the biggest list of Judo Clubs out there to see if DojoList could work for them which is exciting. We are not quite there yet, but it's looking promising already. I have worked with them to massage their data into the format that DojoList understands and they are working on a test installation... exciting!

Another feature I have started thinking about, but not started working on is the ability to filter results. So for example to be able to include only Dojo from your country, state/county, city or suburb. This I think will be important when looking at sync too. If your national or regional body in say the USA wanted to pull clubs from DojoList.org they probably don't want the clubs from the UK on the list. So it would be good to separate out the clubs based on their lat/log and use only those within a defined space.

There are some big issues to be thought through around sync, more and more the more and more I think about it. For example, perhaps someone deletes a Dojo off one website, but only because it's from a different organisation from yours. Do you then sync that deletion? What happens if that dojo is on 3 other sites? Does it sync back to the original site? Lots of questions to answer.

If anyone has some experience in distributed systems syncing data like this I'd love to hear from you.
On that subject, I'd love to hear from other Judo interested developers who might have smarts to add to the project. It's open source, so the code is available on github for anyone to start tinkering with. I'd love it if some more people discovered the project and sent in ideas, patches, new features, etc etc.

Also, I'd love to help anyone who is interested in using the system on their website. Be that to replace an existing database or a site with no list. Actual live usage finds more bugs, points at more features, answers more questions about what people want. So, if you fancy having a DojoList install of your own, please let me know.

Also, the more people the merrier. So far I have been working, on the whole, in isolation. I'd love for this project to become a real community project. I know there are plenty of Judo people in IT out there. I'd love to bring some of them together around this project, so again drop me an email. Coders, testers, documentation, translations, etc etc it is all there waiting for someone to give it a go.

The 0.7.0 release will be coming shortly, which will have some of the new idea in it. I want to then crank through 0.8.0 and 0.9.0 and get to a 1.0 version in the near future (a couple of months). That'll need to be pretty stable and solid, so I'd love any help I can get.

Lance
lw@judocoach.com

[ add comment ] ( 3687 views ) permalink
Daniel Suarez | Leinad Zeraus rocks! 


This week I received an unexpected package from Canada, upon opening it I found a copy of "Freedom " by Daniel Suarez. It was a wonderful suprise, especially when I realised it was sent to me by Mr. Suarez himself. Then I discovered the note and read the inscription; wow!!

Freedom is the sequel to Daemon which was originally self-published under the pen name Leinad Zeraus; which is how I originally bought a copy.

When I first read Daemon, pretty much all the way through I was in a constant state of "Oh wow!" and "This guy so gets tech". Unlike many novels set in the technology area, Daemon rang true to me. The technology, although sci fi, just felt accurate and tangible. And the story itself was/great!

So I had "Freedom " pre-ordered on Amazon the moment I discovered it was coming out. I also created a little Facebook group for Daemon.

So this week I got a signed copy of Freedom and I was blown away! That said, it is not the first signed copy of one of Daniel Suarez's books I received. He sent me some copies (including a signed copy) of Daemon when it was republished in his real name.

Looking beyond the fact that Daniel Suarez is a terrific author; he is obviously generous in his appreciation of his fans... like me. I also think he understands the modern landscape of publishing. He published his book himself and people like me discovered it and promoted it amongst our network of friends and contacts. This resulted in him getting a publishing deal and that is awesome!

I am a big fan of Daniel Suarez, and a bigger one since receiving a personal message from the man himself! You should, assuming you haven't already, read Daemon and then Freedom. They are available on Amazon, grab a copy, just follow the links below:

Daemon (UK ) (USA ) (Kindle )
Freedom ( UK ) (USA )

So please buy a copy of these terrific books to help me say thank you to Daniel Suarez for his awesome novels and for sending me a signed copy of his book(s).

[ add comment ] ( 3476 views ) permalink
A week away from the code. 

This week I am stepping away from the laptop... well at least in terms of writing code. Over the last little while I have been spending alot of my energy on my www.DojoList.org code and on the www.PlanetJudo.com iPhone application.

It has been VERY rewarding work.

I've enjoyed pushing my boudaries and learning as I go. It's what we all should be doing, growing and stretching our limits. But (as I know from my coaching) recovery is a key part of performance. So this week I am not looking at either project. This is in part because I have submitted the iPhone app to Apple and await confirmation of it's acceptance or rejection. It is also becuase I want to talk to more people about the DojoList project before setting out on the next iteration. Gotta make sure it is going not only in the direction I see but also in the direction others want.

This has coincided quite well with the return of Judo at HMS Collingwood (I am the coach there) and at Alresford Judo Club (I help coach there too). I have also been wanting to get out for runs again, and last night I enjoyed getting a 5 mile run done in the Spring/Summer evening. Really nice to return to a more respectable distance and an okay pace.

I'm also trying to get caught up on paperwork for my business ( www.envirtua.com ) and getting some projects there underway. Also I'm clearing up my various inboxes; both email and physical. So all those people (like my Dad) who think I have fallen off the face of the earth at times... hopefully I'll get to your message and reply this week.

So, there you have it, just a little update on me.
Bye...

[ add comment ] ( 1480 views ) permalink
DojoList version 0.6.0 hits the streets! 

Dojo

So, my little DojoList project is progressing along and today I finished my latest milestone, what I am calling 0.6.0.

In this version of the software I've added:

* Cleaner CDATA in the XML file.
* Ability to centre the map on your address/postcode.
* Fixed up a bug in the logo upload routine
* Added email notifications of modifications to dojo information.
* Started abstracting the XML processing out of the controller(s).
* Added the ability to delete or replace the logo from the edit screen.
* Modified the main club listing to be sorted alpha numerically on dojo name.

In the next iteration I plan to add proper data validation of input from form on create and edit screens. For the 0.7.0 milestone, I want to add the following:

* Data validation.
* Search function on Dojo name.
* Option for unformatted HTML list for embedding within another sites layout.
* Tweak formatting of club view page to work better on Google.

So thats what I added that was planned and what I have planned. During the 0.6.0 cycle I learned alot and added some things that were not planned. For example, I added a feature that imports data from the very cool http://judoworldmap.com site (which also licenses it data with a creative commons license).
I did quite a bit of structural change to the software. Moving things around between the controller to the model for example. I also started abstracting things better for later when I want to add more flexibility.

One of the things I have found hard, is the handling of XML data in more complicated situations. Specifically sorting the XML data file. WHich I have not actually done yet. Currently I am trying to find the best way to do this. I am swaying between using XSL transformations and pulling the SimpleXML Object into and array, sorting the array and then pushing it back out as XML. If you've got experience in this area, please let me know.
Having this issue is kinda self-inflicted from the design decision to use XML to store the data (as opposed to using a database like MySQL or SQLite; although I want to add them as a option later).

I Look forward to the next iteration, but it looks trickier! :-)

---
This post is cross-posted on http://www.judocoach.com/blog

[ add comment ] ( 931 views ) permalink
Bug squashing and TDD. 

As I progress with my DojoList project I am trying to be a good boy and integrate coding standards (via PHPCodeSniffer ) and also automated testing.

My tetsing is presently using SimpleTest for PHP. As I progress through the project I am trying to be stricter with myself and write more and more tests.

Part of this attempt at discipline is to write tests against my bugs BEFORE I write fixes for them. This is a test Driven Development (TDD) idea, and it is one I think is worth using.

The idea here is that you write a little bit of code that hits your bug, then after you have a test (that fails) you make your fix and re-run the test... and the test should then pass.

One of the benefits of working this way is that you have to isolate the bug so you can write a test for it. This forces you to delve pretty deep into the bug and understand it, before you start trying to fix it at all.

This also leads you to identifying messy bits of your code. Basically, if it's hard to isolate and test your bug, it's probably becuase your code is not abstracted out nicely. Writing tests for bugs can lead you to modify your models/controllers/classes/whatever to make it easier to test just the buggy part of your code.

Writing a test for a bug, also lets you leave an artifact that shows you addressed the issue, in code. So for example you can leave a comment in the test that states what bug you are testing for.
Obviously, it also means that latter on in the codes life, that bug should not creep back in as you test for it everytime.

I have found that writing tests for bugs is helping persuade me to write tests for new pieces of functionality before I code them. In other words writing tests for bugs is a bit of a "gateway drug" to full test driven development (TDD).

I find the urge to write tests first growing the more bugs I start squashing. This is all leading to stronger code. And code I am more comfortable playing with.
You develop a trust in your tests, you know that if you mess something up (and you will), your tests will save you from going on after a mistake.

All in all, writing bugs has been a really positive experience that is leading me towards writing more code in full TDD mode in future.
[ add comment ] ( 1585 views ) permalink

<<First <Back | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | Next> Last>>