During Christmas dinner yesterday, I was talking with Craig McNeil about preparing myself for helping Henry & Owen to explore building and controlling their own devices. Part of Craig's research is building scientific instruments and so he is well along the hardware path whereas I am further along the software path. Here is a list of resources that came out of the conversation.
Modern Device has a Arduino microcontroller kit originally designed by Paul Badger for his RISD students's art projects. It is very reasonably priced and easy to construct and program using Processing.
Picaxe is another microcontroller with lots of sensor accessories. Craig uses this in his instruments.
Squeak is a modern development of the SmallTalk (textual) programming language. The most significant development in this for kids is EToys. Squeak by Example is a good place to start learning Squeak.
EToys is a kid orientated (graphical) programming language. The One Laptop Per Child EToys site has a good collection of information about EToys beyond how to use it on the OLPC.
Logo was the first software language designed for children. I think this is still the language used in Lego Mindstorms. This is today overseen by the Logo Foundation.
NetLogo is a simulation orientated variation of Logo.
FIRST is an organization that promotes interest in the sciences. I know about them because at the last Providence Geeks gathering there was a presentation about RI's involvement with FIRST.
Getting Started with Rails
I have just finished reading the free online book Getting Started with Grails. Grails is a "Ruby on Rails" competitor that uses the Groovy scripting language. Grails follows the convention over configuration approach to application development and it seems to do a fantastic job. The advantage of using Groovy over Ruby is that Groovy srun in the Java VM and so you have access to the best of class tools available in Java.
I have not yet experimented with Grails and so I do not know how much practice differs from preaching. I have a small project based on Galley that I would like to use to test out alternative frameworks. I had intended to build this first with Rails but I think I will use Grails instead.
I have not yet experimented with Grails and so I do not know how much practice differs from preaching. I have a small project based on Galley that I would like to use to test out alternative frameworks. I had intended to build this first with Rails but I think I will use Grails instead.
Rosa's Testing Tools
I asked Francisco Rosa, CTO at Tizra and author of WebTst, what web application testing tools he uses and recommends. Here is his response:
"I am currently using Selenium [1] ... it really rocks since it allows you to do real UI testing ... You can pretty much do all your system integration testing that way and even test your site's JavaScript code ... pretty nice ...
"That covers at least part of the testing, other parts I cover with TestNG [2] for unit testing (have no idea how you can live with JUnit without the decent test classification TestNG provides) and with WebTst (still) for monitoring testing ...
"I also do continuous integration with cruise control [3], coverage reporting with Cobertura [4] (AgilePDF is up to 64% code coverage :-) ) ... all in all pretty cool (IMHO) ...
"I can no longer imagine development without all these tools/practices: system integration testing, UI testing, unit testing, monitoring testing, continuous integration and code coverage reporting.
"[1] http://www.openqa.org/selenium/
"[2] http://testng.org/doc/
"[3] http://cruisecontrol.sourceforge.net/
"[4] http://cobertura.sourceforge.net/
"Hope this helps!"
Yes it does. And do I have a lot to learn!
"I am currently using Selenium [1] ... it really rocks since it allows you to do real UI testing ... You can pretty much do all your system integration testing that way and even test your site's JavaScript code ... pretty nice ...
"That covers at least part of the testing, other parts I cover with TestNG [2] for unit testing (have no idea how you can live with JUnit without the decent test classification TestNG provides) and with WebTst (still) for monitoring testing ...
"I also do continuous integration with cruise control [3], coverage reporting with Cobertura [4] (AgilePDF is up to 64% code coverage :-) ) ... all in all pretty cool (IMHO) ...
"I can no longer imagine development without all these tools/practices: system integration testing, UI testing, unit testing, monitoring testing, continuous integration and code coverage reporting.
"[1] http://www.openqa.org/selenium/
"[2] http://testng.org/doc/
"[3] http://cruisecontrol.sourceforge.net/
"[4] http://cobertura.sourceforge.net/
"Hope this helps!"
Yes it does. And do I have a lot to learn!
Working below one's means
"You must always work not just within but below your means. If you can handle three elements, handle only two. If you can handle ten, then handle five. In that way the ones you do handle, you handle with more ease, more mastery and you create a feeling of strength in reserve." -- Picasso
Maximizing PageRank via outlinks
Leigh Dodds's blog has a link to the paper Maximizing PageRank via outlinks about optimizing the Google page rank of a site. The basic strategy is to have a sequence of pages where each page links to the next page in the sequence, each page links back to all previous pages in the sequence, and the final page is the only page with outlinks. The paper illustrates this I am sorry to say that I have not read the paper as the proof looks like more than I can handle.
Interaction problems with Yahoo! Video
I have seen the beginning of Bill Scott's Yahoo! Video presentation several times today! The reason for this is that there is no way to know which interaction widgets are in-page interactions and which are cross-page interactions. Given that the presentation is about UI the problems on the page are all the more prominent. For example, "Share by email" is a cross-page interaction while "Save to del.icio.us" is in-page interaction (actually a pop-up window interaction) and yet they have the same visual design; the "+Add" is an in-page interaction even though it looks like a button which normally affords cross-page interaction; the rating stars are a cross-page interaction when generally this is an in-page interaction (especially when logged in).
Bill Scott's rich user interface design for web applications presentation
Bill Scott (again of Yahoo!) gives a great presentation about rich user interface design for web applications. (It has been a slow day at Andrew Gilmartin & Associates!)
The presentation also mentions the new Yahoo! Teachers "Gobbler." Gobbler is a tool panel that sits over web pages and allows you to clip content from the page for placing on a "project" page. Project are web pages that organizes web content for one or more lessons. I used it a little today and it does work. I need to use it more to see how it compares to the idea of "binders" that we tried to incorporate into AccessScience several years ago when it was built and hosted by Ingenta.
The presentation also mentions the new Yahoo! Teachers "Gobbler." Gobbler is a tool panel that sits over web pages and allows you to clip content from the page for placing on a "project" page. Project are web pages that organizes web content for one or more lessons. I used it a little today and it does work. I need to use it more to see how it compares to the idea of "binders" that we tried to incorporate into AccessScience several years ago when it was built and hosted by Ingenta.
Steve Souders's web page performance best practices
Steve Souders (Yahoo!) gives a great presentation about web page performance. The 14 best practices are
- Make fewer HTTP requests
- Use a CDN (Content Delivery Network)
- Add an Expires header
- Gzip components
- Put stylesheets at the top
- Move scripts to the bottom
- Avoid CSS expressions
- Make JHS and CSS external
- Reduce DNS lookups
- Minify JS
- Avoid redirects
- Remove duplicate scripts
- Configure ETags
- Make AJAX cacheable
The need for a richer and integrated data environment
I wrote this in a comment to David Ascher's posting about SOGo: Thunderbird-inspired and Thunderbird-compatible Groupware.
One of the great advances of the desktop rich applications was the compound document. Mixing text, images, interactive charts, active diagrams, busy/free displays with a simple drag and drop. The machines of the time were a little underpowered for this task but that should not take away from the advance. The compound document frameworks were also very difficult to program to. Mostly the power software houses like IBM, Microsoft, Borland, Lotus, Claris, Taligent, etc did it. The underpowered houses could not and so created data and display islands.
Another of the great advances was the expandable shell. The first one was OS/2's Presentation Manager. Then came Windows 95's Explorer. Linux had Nautilus. It is a very compelling idea to have a single tool that integrates browsing and searching hierarchical collections of data. The shell frameworks were also very difficult to program to. Mostly the power software houses like IBM, Microsoft, Borland, Lotus, Claris, etc did it. The underpowered houses could not and instead presented other independent hierarchical displays.
We need to go back to these ideas and implement them now with the more powerful machines and high level languages and toolkits. I really don't want Thunderbird to be so deep so as to enclose these tools and data repositories. I want a lighter touch. I want Thunderbird to provide interactiveness that is not currently available via the browser. Thunderbird needs to be a super-browser. I want it to show the way to where browsers need to go.
One of the great advances of the desktop rich applications was the compound document. Mixing text, images, interactive charts, active diagrams, busy/free displays with a simple drag and drop. The machines of the time were a little underpowered for this task but that should not take away from the advance. The compound document frameworks were also very difficult to program to. Mostly the power software houses like IBM, Microsoft, Borland, Lotus, Claris, Taligent, etc did it. The underpowered houses could not and so created data and display islands.
Another of the great advances was the expandable shell. The first one was OS/2's Presentation Manager. Then came Windows 95's Explorer. Linux had Nautilus. It is a very compelling idea to have a single tool that integrates browsing and searching hierarchical collections of data. The shell frameworks were also very difficult to program to. Mostly the power software houses like IBM, Microsoft, Borland, Lotus, Claris, etc did it. The underpowered houses could not and instead presented other independent hierarchical displays.
We need to go back to these ideas and implement them now with the more powerful machines and high level languages and toolkits. I really don't want Thunderbird to be so deep so as to enclose these tools and data repositories. I want a lighter touch. I want Thunderbird to provide interactiveness that is not currently available via the browser. Thunderbird needs to be a super-browser. I want it to show the way to where browsers need to go.
Comments on "The Slow Death of the Technical Specification"
The "The Slow Death of the Technical Specification" is another reason why so much slipshod work is passed off as finished work. Preparing the technical specification is an initial and thorough implementation of the work on paper. The coded implementation is the second implementation based on the strengths and weaknesses of the first paper implementation. As Fred Brooks says, plan to throw one away; you will, anyhow.
A work needs to be reviewed. The customer needs to know that they are getting what they asked for. How do you review a working implementation -- a web site, a desktop application, or an infrastructure? How do you review a paper implementation? People have been developing the skills and using the tools necessary to review a linear presentation of a work since secondary school. A very rare few people have the skills or tools to review a working implementation. Not having the written specification is short changing both the customer and the supplier. The customer gets something they are not in the position to review and the supplier is in the position of not knowing if the implementation is what the customer wanted.
The weakness of the paper implementation is that it does not define the coded implementation. The construction industries have "as built" blueprints. These are the original blueprints with annotations detailing the differences from the design and the construction (i.e. implementation). Software needs these too. We just don't have them yet.
Unfortunately, I have supplied much software without initial or even afterward technical specifications. Hardly great moments in a software development career.
A work needs to be reviewed. The customer needs to know that they are getting what they asked for. How do you review a working implementation -- a web site, a desktop application, or an infrastructure? How do you review a paper implementation? People have been developing the skills and using the tools necessary to review a linear presentation of a work since secondary school. A very rare few people have the skills or tools to review a working implementation. Not having the written specification is short changing both the customer and the supplier. The customer gets something they are not in the position to review and the supplier is in the position of not knowing if the implementation is what the customer wanted.
The weakness of the paper implementation is that it does not define the coded implementation. The construction industries have "as built" blueprints. These are the original blueprints with annotations detailing the differences from the design and the construction (i.e. implementation). Software needs these too. We just don't have them yet.
Unfortunately, I have supplied much software without initial or even afterward technical specifications. Hardly great moments in a software development career.
Timezone math
For the last several years I have worked daily with folks in the United Kingdom and California. When communicating about times you must always include either timezones -- e.g. EST, PST, GMT (I can't bring myself to use UTC) -- or time pairs -- e.g "11:52 AM / 2:25 PM" -- in the conversation. To help keep my sanity I use FoxClocks to show in the Firefox status bar the times for each zone.
A really useful enhancement would be to be able to select one of the zone displays, enter a time, and have the other zone displays show me the time in each of their zones. For example, in this mockup I have ticked the "Peace Dale" time, entered "9 am", and FoxClocks would display the times for San Francisco and Oxford.
Perhaps this feature already exists in one of the many desktop widget sets available.
Update: The The World Clock Meeting Planner which allows you to display a timetable configured for serveral locations.
A really useful enhancement would be to be able to select one of the zone displays, enter a time, and have the other zone displays show me the time in each of their zones. For example, in this mockup I have ticked the "Peace Dale" time, entered "9 am", and FoxClocks would display the times for San Francisco and Oxford.
Perhaps this feature already exists in one of the many desktop widget sets available.
Update: The The World Clock Meeting Planner which allows you to display a timetable configured for serveral locations.
Looking for web-based contact management tool recommendations
I am looking for a web-based contact management tool either open-source or commercial. The features I am looking for are
- Add person.
- Add company.
- People and companies have the attributes name, telephones, emails, addresses (time zone), and description.
- People and companies have tags (al del.icio.us)
- Associate person with company.
- Associate person with person.
- Associate company with company.
- Associations have tags.
- Associations have attributes (optional).
- People and companies have a chronological log of contacts (by phone, in person, by email, etc.).
- A summary view of activity over a period of time (people added, contacts made, association changes, etc.).
- Export data as XML.
A small improvement to Google Calendar
My wife and I like Google Calendar a lot. That we use it everyday for every kind of event and planning tells me that it accommodates both the novice user and the experienced user. As you use GC more you will end up with lots of overlapping events. This is especially so if you use lots of calendars. (We have 6.) When this happens GC mostly only tells you that something is happening as most of the details are obscured. I would like GC to have three new features:
1. Use transparency when displaying events.
2. When displaying event to not be bound to the day's calendar column
3. Distinguish primary and secondary calendars. For example, the primary calendar's events always sit on top of the secondary calendar events. And I should also be able to quickly toggle on and off the visibility of the details of the secondary calendars.
For example,
1. Use transparency when displaying events.
2. When displaying event to not be bound to the day's calendar column
3. Distinguish primary and secondary calendars. For example, the primary calendar's events always sit on top of the secondary calendar events. And I should also be able to quickly toggle on and off the visibility of the details of the secondary calendars.
For example,
Links need direct orientation markers
Geoffrey Bilder asked what is the use of having the URLs listed as footnotes when you are online?
This is a good question. In (plain text) email having the URLs visible is the only means of "linking." Placing URLs in footnotes improves the readability of the email message -- no odd word-wrapping in the message and URLs are less likely to be wrapped. These features, linking and readability, however, are directly supported on web pages. So why bother?
One fact given by seeing the URL is you can see if the link takes you off the page and/or off the site. This orientation feature is useful to me. Using the URL itself for this is indirect: I have to know the URL of the page I am on and then make the mental comparison between the two URLs. A better approach would be to use a marker that directly indicates the kind of link it is. This would be more useful on the web page. (And add the table of links on the printed page.)
It was a little slow at "Andrew Gilmartin & Associates" yesterday morning and so I used the opportunity to learn a little more about Prototype. It is a very powerful tool. It makes manipulating a DOM almost intuitive. When I next have some free time I will work on the orientation markers.
I am turning off the table of links feature. It was an interesting idea but in the end I agree with Geoffrey.
This is a good question. In (plain text) email having the URLs visible is the only means of "linking." Placing URLs in footnotes improves the readability of the email message -- no odd word-wrapping in the message and URLs are less likely to be wrapped. These features, linking and readability, however, are directly supported on web pages. So why bother?
One fact given by seeing the URL is you can see if the link takes you off the page and/or off the site. This orientation feature is useful to me. Using the URL itself for this is indirect: I have to know the URL of the page I am on and then make the mental comparison between the two URLs. A better approach would be to use a marker that directly indicates the kind of link it is. This would be more useful on the web page. (And add the table of links on the printed page.)
It was a little slow at "Andrew Gilmartin & Associates" yesterday morning and so I used the opportunity to learn a little more about Prototype. It is a very powerful tool. It makes manipulating a DOM almost intuitive. When I next have some free time I will work on the orientation markers.
I am turning off the table of links feature. It was an interesting idea but in the end I agree with Geoffrey.
Automated "Table of Links"
I tend to print web pages for reference when I am off-line and so I like to ensure that URLs are visible somewhere in the text. I have copied Leigh Dodd's footnoting technique in email for years and am now using it in this blog also. I am not always consistent with the technical details of laying out the the links and footnotes mostly because it is somewhat cumbersome to use in HTML. I need a tool. So I wrote some JavaScript that will add the footnotes automatically to end of each posting. Here is my test code.
Update: I have this working in this blog now.
Update Again: If you use an RSS reader to read this blog you will not see the table of links at the end of the posting.
Update Again & Again: I have discontinued the use of the table of links script on this blog. See next post.
Update: I have this working in this blog now.
Update Again: If you use an RSS reader to read this blog you will not see the table of links at the end of the posting.
Update Again & Again: I have discontinued the use of the table of links script on this blog. See next post.
Java Agent Development Framework
I have been interested in software agent technologies since in the early days of Windows 3.1 when I discovered Actor. Agents are automatous tools that engage in formal conversations to get commitments and, later, responses to those commitments. Message queues are very popular technologies because when you add work to a queue you know that at some point the work will be done. Agents are like very smart queues where the queue can make decisions about the commitment to do the work. Unfortunately, my experience is mostly that of an armchair practitioner.
A few weeks ago I discovered JADE and have since read the book Developing Multi-Agent Systems with JADE. I highly recommend the book [*]. It really looks like JADE is a good agent framework and implementation. I know, for example, that Raytheon is using it for at least one non-defense project and Raytheon has a very conservative software selection process. Now, I need to find a client that wants to use it too. Know anyone?
[*] I also highly recommend using your local library's inter-library loan service to read the book before buying it. Jessica Wilson, a librarian in the South Kingstown library system, seems to be able to get anything.
A few weeks ago I discovered JADE and have since read the book Developing Multi-Agent Systems with JADE. I highly recommend the book [*]. It really looks like JADE is a good agent framework and implementation. I know, for example, that Raytheon is using it for at least one non-defense project and Raytheon has a very conservative software selection process. Now, I need to find a client that wants to use it too. Know anyone?
[*] I also highly recommend using your local library's inter-library loan service to read the book before buying it. Jessica Wilson, a librarian in the South Kingstown library system, seems to be able to get anything.
Kindle and content's seamless ubiquity
Amazon's Kindle is now out. Amazon has done a great job at delivering a whole solution and not just a reader. Assuming that the device is ergonomically usable that you can download content from anywhere via the built in mobile phone technologies is key to its success. No docking. No bluetooth. No wifi. Just seamless ubiquity to the new and updated content.
Update: I was at Border's yesterday (2 Dec 2007) and saw the new Sony book reader. While I am generally attracted to bright and shinny objects the reader and it's display looked scuffed and forlorn in the long shallow of the Kindle.
Update: I was at Border's yesterday (2 Dec 2007) and saw the new Sony book reader. While I am generally attracted to bright and shinny objects the reader and it's display looked scuffed and forlorn in the long shallow of the Kindle.
Ready for Rails
I am ready for Rails!
Update: I have now read and recommend Rails for Java Developers. The authors take you through the Rails stack and at each step compare Rails's tools with best-of-breed Java tools. For example, when the authors talk about ActiveRecord they compare it to Hibernate. Fortunately, you only need to have a reading understanding of Hibernate, Structs, and Spring for the book to be valuable.
Update: I have now read and recommend Rails for Java Developers. The authors take you through the Rails stack and at each step compare Rails's tools with best-of-breed Java tools. For example, when the authors talk about ActiveRecord they compare it to Hibernate. Fortunately, you only need to have a reading understanding of Hibernate, Structs, and Spring for the book to be valuable.
Enthusiasm for technical change & challenges
When you are accustomed to technical and process change its occurrence again is taken as a matter of course. A steady response to change is appreciated when you are hired. A steady response to change when looking for work is seen as being unenthusiastic. Damed if you do and damed if you don't. As always, be contextual.
Wolk's Reading Comics
I just finished Wolk's Reading Comics and I highly recommend it. The first half of the book describes comics in terms of the medium, the readers, the authors, the subjects (superheros vs everything else!), and the visual styles. The last half of the book contains reviews of works, and in reflection on the first half of the book, Wolk does a great job of drawing one into the aesthetics and tactics of comics. A very enjoyable read especially in conjunction with field trips to a good comics store like Incredible Pulp in Narragansett.
I am grateful for their confidence in me
I have decided to focus on contract work for the foreseeable future. After four significant rejections and three by startups I think it is time to let Winter arrive and Fall leave and watch it from my home office desk. I am happy to accept contract work for the rest of the year. It is work that I know I can do and, more importantly, it is work others trust me to do well. I am grateful for their confidence in me.
A good night was had by all
Reading Wendell Berry, listening to James Taylor, drinking sapphire gin martinis, kid's doing homework all by an open fire is a wonderful evening mix. A time of honest conversation and truth telling. My kids went to bed happy and calm. So did I. A good night was had by all.
3roofs.com and Google Apps
This past week I used Google Apps to create a web space for my family. We desperately needed an online calendar and everyone told me that Google's is the best of breed. Using Google Apps for the calendar, instead of Google Calendar, also gave the family a great web-based email and rich document editing tools. The only thing missing is web site editing tools but for most families a blog would be sufficient and this can be done easily with blogger.
The only thing you need to get started is a domain name and, ideally, the ability to create sub-domain names. If you are local and need help doing the same call me.
The only thing you need to get started is a domain name and, ideally, the ability to create sub-domain names. If you are local and need help doing the same call me.
Customers & BNI
I attended a BNI meeting this morning as a guest of Charlie Westcott. BNI is a business networking franchise with many chapters across the country. Each chapter has one member per business area -- bookkeeping, accounting, landscaping, construction, architecture, etc -- and the primary purpose of the meetings is generating referrals but there is clearly a comradery and other support happening. If you run a business with regional customers this is a great group. If your customers are national or international perhaps the business support aspects of the organization would be useful but perhaps not useful enough to warrant the fees. I had a good time.
Effective and low cost mouse trap
Great idea for a low cost and effective mouse trap. Having extracted two mice from the studio garbage bin this week I can attest that they can't get out. Actually, it wasn't two mice, it was the same mouse. The first time he escaped my hand and returned to the garbage can. The second time he also escaped my hand but did not return to the garbage can. The take-away here is not to let me hold mice.
Origami and project completion
I was talking with Jeffrey Hyland this weekend about Basecamp and it got me thinking again about visualizing project progress. Checking off milestones does not inspire me. Milestones are emotionally flat. Projects have heft and we grapple with them. My first thought was folding a box from a sheet of cardboard: As the project progresses the box has more and more shape until it is a solid object when the project is done. Then it struck me that we should pick an piece of origami with the same number of folds as the project has milestones. As the milestones are completed the next fold is made. When the project is complete so is the origami piece. Team members would have the completed piece on their desks as a reminder of the project. The project's kick start is picking the origami piece and folding it.
Dragon Gliders
Henry, Owen, and I were a little lost for something to do and so we decided to make some wire models. Owen was more interested in using the wire along with a metal rod and a battery to create a magnet which he succeeded at. I don't have a picture, unfortunately. I tried thinking about how to create wire dragons and so got out the Dragonology book. What caught my eye was a glider and so Henry and I made the "dragon gliders" in the photographs. This project requires only wire, twigs, paper, glue, tape, scissors, pruning sheers, a tree, and about 45 minutes of time. (Mom supplied the wire. It is great being married to an artist because for almost any craft project it is very likely she has the materials.)
We walked alone in together time
David Acher's blog had a link to this amazing and scary image editing algorithm. The final sequence of the video might be title "We walked alone in together time."
Furoshiki
"Ms Yuriko Koike, Minister of the Environment, has created the "Mottainai Furoshiki" as a symbol of Japanese culture to reduce waste. Furoshiki is a Japanese traditional wrapping cloth which is used repeatedly in a stylish way. (The utilization of this "Mottainai Furoshiki" will contribute to reducing household waste from plastic bags.) The Minister presented the "Mottainai Furoshiki" at the Senior Officials Meeting on the 3R Initiative held in Tokyo, Japan on March 6-8, 2006" (source)
I just don't expect anything like this to come from Dirk Kempthorne, Secretary of the Interior or Samuel W. Bodman, Secretary of Energy. I can't even remember a time when I have heard either of their names in the news. Given the turmoil in US politics right now, perhaps this is good news.
I just don't expect anything like this to come from Dirk Kempthorne, Secretary of the Interior or Samuel W. Bodman, Secretary of Energy. I can't even remember a time when I have heard either of their names in the news. Given the turmoil in US politics right now, perhaps this is good news.
Interaction through detailed printed pages
The Summagraphics SummaSketch II Graphic tablet came today. I have a vague idea for a board game augmented by software with the only interaction being through detailed printed pages. Since I know next to nothing about board game design I am starting with the software and hardware. Hopefully, I will soon learn more about broad game design and embedded systems.
Update: I have no idea where the tablet has disappeared too. Sigh.
Update: I have no idea where the tablet has disappeared too. Sigh.
From each, according to his ability; to each, according to his need.
Henry & Owen have been helping me look for work. Their suggestions are sincerely given and show how equivalent all work is for children. The two suggestions I like most are waiter at Blue Bird (a local not-so-greasy greasy-spoon) and cashier at Belmont (our favorite local market).
I was a teenager in England during the 1970s and so saw the tail-end of Britain's efforts at socialism. The Labour government and the unions were at war with each other and the people of Britain suffered. The government held firm on wages (sometimes threatening de-nationalization) and the unions hit back with strikes and the hated "sympathy" strikes. So, while my experiences of socialism were not positive, I never blamed the movement but instead the poor execution of it by the new powerful elite, former blue collar works, occupying both government and unions. So, Henry's & Owen's suggestions reminded me of Marx's words "From each, according to his ability; to each, according to his need." Too bad it didn't work out.
I was a teenager in England during the 1970s and so saw the tail-end of Britain's efforts at socialism. The Labour government and the unions were at war with each other and the people of Britain suffered. The government held firm on wages (sometimes threatening de-nationalization) and the unions hit back with strikes and the hated "sympathy" strikes. So, while my experiences of socialism were not positive, I never blamed the movement but instead the poor execution of it by the new powerful elite, former blue collar works, occupying both government and unions. So, Henry's & Owen's suggestions reminded me of Marx's words "From each, according to his ability; to each, according to his need." Too bad it didn't work out.
Will Code for Money...
I am no longer at Tazz Networks and so am looking for new work. If you know of opportunities please forward the information to andrewgilmartin at yahoo.com. If you want to know more about my skills please see my resume.
Wikipedia needs MAPA
I have been thinking about Wikipedia a bit more than usual recently. Even at "the pond" where Chris and I go with the kids to swim and relax with friends there have been Wikipedia discussions. Thank goodness that I actually pay attention to Geoffrey Bilder's trust del.icio.us links and so I had something to contribute. On the drive home yesterday I was thinking again about Wikipedia and wikis in general and it occurred to me that they need MAPA [1][2].
MAPA is a system for mapping web sites. The mapped pages are hierarchically displayed using orthographic projection and presented using progressive disclosure. That is, MAPA does not try to show everything but instead shows mapped pages around a focal mapped page and you refocus the map by selecting any other focal mapped page. The orthographic projection's two and half dimensions reduce obscuring the map when further annotating or adorning the presentation of the map and mapped pages. This is the visual side of MAPA.
What was equally important to MAPA's success as a map was that it discovered the content's natural hierarchy using David Durand's "organizer". Where the discovery was not quite right, hints could be given to the organizer to re-arrange the hierarchy. What was truly magical was that often only a handful of hints were necessary to map sites as big as ibm.com and javasoft.com (aka java.sun.com). And this is where I think MAPA could really help the Wikipedia. Even if you don't believe knowledge can be strictly organized hierarchically, having some hierarchy would greatly aid anyone orienting themselves within the Wikipedia content after having just jumped there from a Google search result.
[1] "MAPA: a system for inducing and visualizing hierarchy in websites"
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.84.5777&rep=rep1&type=pdf
[2] "Applications of Isometric Projection for Visualizing Web Sites" http://www.dynamicdiagrams.com/all_pdfs/idj_10_3.pdf
MAPA is a system for mapping web sites. The mapped pages are hierarchically displayed using orthographic projection and presented using progressive disclosure. That is, MAPA does not try to show everything but instead shows mapped pages around a focal mapped page and you refocus the map by selecting any other focal mapped page. The orthographic projection's two and half dimensions reduce obscuring the map when further annotating or adorning the presentation of the map and mapped pages. This is the visual side of MAPA.
What was equally important to MAPA's success as a map was that it discovered the content's natural hierarchy using David Durand's "organizer". Where the discovery was not quite right, hints could be given to the organizer to re-arrange the hierarchy. What was truly magical was that often only a handful of hints were necessary to map sites as big as ibm.com and javasoft.com (aka java.sun.com). And this is where I think MAPA could really help the Wikipedia. Even if you don't believe knowledge can be strictly organized hierarchically, having some hierarchy would greatly aid anyone orienting themselves within the Wikipedia content after having just jumped there from a Google search result.
[1] "MAPA: a system for inducing and visualizing hierarchy in websites"
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.84.5777&rep=rep1&type=pdf
[2] "Applications of Isometric Projection for Visualizing Web Sites" http://www.dynamicdiagrams.com/all_pdfs/idj_10_3.pdf
Doh!
Understanding a Visual
Kirsten Robinson, at Dynamic Diagrams, mentioned how the Calliope Hummingbird visual took time to understand. The understandability of a visual is something we grapple with all the time. It is a subset of the challenge of making a tool that's use is obvious to the user -- or at least to their children. Kirsten knows what she is talking about and so her comment is more about this visual crossing the line between effort needed to learn to use and density of information presented. I think she is right.
The reason I was drawn to it was that the bird's cycles are continuous and so the circle expresses this better than a time-line. It is also hemispheric neutral in that time-lines start in January and finish in December and so for Southern birds their breeding season, for example, might cross the December and January year boundary and so, for those birds you would not see a continuous line but a line in two segments
It is also similar to the situation awareness visuals I have seen [1] and very much like.
Learning how to read this visual is not difficult and so a short audio training might be used. For example, this NPR story [2] is about the movie High Noon's title song and how its elements were repeated in the movie's score. Towards the end of the story there is a short segment of the score featured with overlaid commentary. It is a stunningly informative information presentation. At least to this musical klutz.
[1] "Visual Correlation for Situational Awareness" http://www.sci.utah.edu/publications/yarden05/VisAware.pdf
[2] "High Noon"
http://www.npr.org/templates/story/story.php?storyId=12155282
The reason I was drawn to it was that the bird's cycles are continuous and so the circle expresses this better than a time-line. It is also hemispheric neutral in that time-lines start in January and finish in December and so for Southern birds their breeding season, for example, might cross the December and January year boundary and so, for those birds you would not see a continuous line but a line in two segments
Jan Feb Mar Apr ... Oct Nov Dec nesting ------- -------
It is also similar to the situation awareness visuals I have seen [1] and very much like.
Learning how to read this visual is not difficult and so a short audio training might be used. For example, this NPR story [2] is about the movie High Noon's title song and how its elements were repeated in the movie's score. Towards the end of the story there is a short segment of the score featured with overlaid commentary. It is a stunningly informative information presentation. At least to this musical klutz.
[1] "Visual Correlation for Situational Awareness" http://www.sci.utah.edu/publications/yarden05/VisAware.pdf
[2] "High Noon"
http://www.npr.org/templates/story/story.php?storyId=12155282
Presence & Tagging
I want to add centralized tagging to the centralized buddy list of an instant message server. Perhaps personal tagging would be useful but let's start by helping everyone. By tagging a buddy I mean to place them in a group, a team, a project, a location, a department, a title, an interest, etc. My office tags might be
My instant message client user interface would then allow me to view staff by any set of tags. Either a small faceted search or a two-level hierarchy. Selecting an account name would start or join a conversation. Selecting a tag would start or join a conference.
- Principle Engineer, Engineering Team, Providence, RI, USA, Narragansett Project, AlphaDog Project, BetaBand Project, Stewie Project, Java Specialty, Concurrency Specialty, User Interface Specialty, Data Model Specialty, Interface Specialty, Gardening Interest, Cooking Interest, Parenting Interest, Board Game Interest, Automata Interest, etc...
My instant message client user interface would then allow me to view staff by any set of tags. Either a small faceted search or a two-level hierarchy. Selecting an account name would start or join a conversation. Selecting a tag would start or join a conference.
IM & Ingenta
When I worked at Ingenta I installed an instant message server and gave everyone in the company an account. I also automatically created everyone's "buddy lists". The buddy list contained everyone's account (in one list ordered by first name), it was fixed (no adding or removing accounts), and was updated with every staffing change.
The server was a great success -- over time. Even the COO logged in each day. Over the course of my work day in Providence, RI (US) I would see the Providence staff's full work cycle of starting their day, going to lunch and coming back, and ending their day. For the Oxford and Bath (UK) staff their day had already begun and so I would mostly see them return from lunch and end their day. For the lone California developer I saw him start his work day just before I headed out for lunch.
And it wasn't just me that saw this but everyone because everyone had the same buddy list.
Read Geoffrey Bilder's posting, "Backchannel" [1], about his experience at Ingenta.
[1] http://www.gbilder.com/blog/?p=101
The server was a great success -- over time. Even the COO logged in each day. Over the course of my work day in Providence, RI (US) I would see the Providence staff's full work cycle of starting their day, going to lunch and coming back, and ending their day. For the Oxford and Bath (UK) staff their day had already begun and so I would mostly see them return from lunch and end their day. For the lone California developer I saw him start his work day just before I headed out for lunch.
And it wasn't just me that saw this but everyone because everyone had the same buddy list.
Read Geoffrey Bilder's posting, "Backchannel" [1], about his experience at Ingenta.
[1] http://www.gbilder.com/blog/?p=101
Presence- & Work- Line
General purpose IM clients do not address the needs of a globally distributed team as well as they could. After simple presence information the next important datum is availability (or simply timezone). Within availability having a good sense of the work day is important. This sketch shows the workday (the gray bar), and lunch (blue hatch), where "now" (red line) is for each of three locations
Now replace location with team member names and you have a much better presence indicator.
Now replace location with team member names and you have a much better presence indicator.
Thomas Sgouros's Paintings
While buying my morning Cafe Tobe from Coffee Exchange I picked up a post card for a new exhibit of Thomas Sgouros's paintings. His work is atmospheric and stunningly large. If you every get to see his work do so. The Gallery Agniel has some images of this work.
The Calliope Hummingbird's Year
Looking for an interesting image to use here I discovered this information visual [1] about the molting, breeding, and migration periods of the Calliope Hummingbird. I have heard about the Cornell bird encyclopedia [2] but this is the first time I have seen content from it. I would like to see more; perhaps my library has access to it.
I wonder, do they let you overlay several birds year so you can compare the comings and goings of the population?
[1] http://content.ornith.cornell.edu/ UEWebApp/images/ calliope-hummer-fig-4_6.gif
[2] http://bna.birds.cornell.edu/BNA/
Canonical's Lunachpad
I recently discovered Canonical's Lunachpad [1]. (Canonical also does Ubuntu.) It is another software engineering management and repository portal. Its focus is not to be the sole owner of information (like, for example, SourceForge and CollabNet are) but to be a consolidator and/or owner of information. Bugs, for example, can be defined and tracked elsewhere and yet have a presence in Launchpad. The same for the code. I have only read the introductory document [2] and poked around so don't know how well it works in practice but it has a great feature set and one I would use on my next open source project.
Even if you are not looking for such a portal it is worth reading about Launchpad's features. I especially like the Blueprints and their rough dependency tracking.
[1] http://launchpad.net/
[2] https://help.launchpad.net/FeatureHighlights?action=AttachFile&do=get&target=launchpad_feature_highlights.pdf
Even if you are not looking for such a portal it is worth reading about Launchpad's features. I especially like the Blueprints and their rough dependency tracking.
[1] http://launchpad.net/
[2] https://help.launchpad.net/FeatureHighlights?action=AttachFile&do=get&target=launchpad_feature_highlights.pdf
Calliope Sounds
I had a weird moment today. I was walking alone by the highway and heard calliope music. I instantly reached for my cell phone. This was weird because I don't use the sound as a ring-tone but my mind said "cell phone" and "alone" so it must be "mine". The music came from an ice cream truck on the highway. Seems like ring-tones have absorbed all the odd or misplaced musical sounds.
Subscribe to:
Posts (Atom)