the Design Experience Weblog

Google provides the answers again. I needed to look inside a debian package and I found the answer on Vijay Kumar's Blog.

dpkg-deb -x debian-file target-directory

09:13 AM, 25 Jun 2008 by dave bauer Permalink | Comments (0)
categories: Open Source , Programming

09:59 AM, 15 Jun 2008 by dave bauer Permalink | Comments (0)
categories: Open Source , Programming

2-3-98 Conference: An Open Discussion on Technology in Education will address Open Source in Higher Education, and include a second day Moodle Moot. I'll be attending the conference June 19 & 20, 2008 as SUNY Delhi. SUNY Delhi is  using Moodle for their unversity LMS.

I will be attending this conference, and look forward to the opportunity to learn and discuss our use of Open Source in education.

One of our clients, Stephen Wilmarth, from the Center for 21st. Century Skills will be giving a presentation on how they are using Moodle to conect high school students in CT and in China!

This should be a good opportunity to both learn more about Moodle, spread the word on LAMS and ELGG integrated with Moodle in an amazing setting. According to the web site: "Delhi, NY is nestled in the Catskill Mountains in a land of wooded
hills and fertile green valleys with streams, covered bridges,
well-tended dairy farms and beautiful vistas. Join us in a great
setting for a great conference!"

 

02:49 PM, 22 May 2008 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Open Source , Learning

Flyback for quick easy backups [code.google.com]

I installed flyback http://code.google.com/p/flyback/ today, on recommendation of Lifehacker http://lifehacker.com/342576/get-time+machine+like-snapshot-backup-with-flyback .

It was pretty easy. I follwed the ubuntu instructions but could not install python-sqlite3 package. It does not seem to exist. A apt-cache seach sqlite found python-pysqlite2 which is actually bindings for SQLite 3. It's already installed on my system anyway.

I ran flyback, configured to backup to a network share. choose my home directory to be backed up and clicked backup.

I also scheduled to run daily.

Flyback uses rsync, so this is a pretty common backup solution for linux with a simple GUI to make it easy to setup. Easy to setup and automate is the key to desktop backups. Otherwise noone will do it.

01:40 PM, 09 Jan 2008 by dave bauer Permalink | Comments (0)
categories: Open Source , Learning

Kathy Sierra at Creating Passionate Users talks about keeping/recovering passion. She was inspired by a bunch of students in software engineering at a recent conference organized by those same studetns.

This reminds me what I am always say about learing and keeping the wonder and curiousity you had when you were 5 years old. Wonder and curiousity, (desire to learn, whatever you call it) is essential to passion, and to doing great things. Let's not forget that teaching and sharing what you have learned with others is another great way to keep learning.

12:04 PM, 10 Feb 2006 by dave bauer Permalink | Comments (2)
categories: Open Source , Learning , Programming , Creativity

I really like Michael Feathers' guidelines for writing unit tests. Reproduced in it's entirety here:
I've used these rules with a large number of teams. They encourage good
design and rapid feedback and they seem to help teams avoid a lot of
trouble.

---
A test is not a unit test if:

1) It talks to the database
2) It communicates across the network
3) It touches the file system
4) It can't run correctly at the same time as any of your other unit tests
5) You have to do special things to your environment (such as editing
config files) to run it.

Tests that do things things aren't bad. Often they are worth writing,
and they can be written in a unit test harness. However, it is
important to be able to separate them from true unit tests so that we
can keep a set of tests that we can run fast whenever we make our changes.



Michael Feathers
www.objectmentor.com

I think these rules are great and really help you think about what level you are testing at. I am having trouble imagining how to write tests for OpenACS code. Most of my tests handle OpenACS objects where are always stored in a database without any Tcl level persistance. I will have to think about how interfaces to procedures in OpenACS can be tested in isolation from the database.

Credit to James Shore for the reference to these guidelines. His weblog is full of great down-to-earth advice on test driven development, extreme programming, and agile processes. Real examples that help you understand what these concepts mean in practice. I will be returning to think about more of this writings soon.

02:37 PM, 01 Dec 2005 by dave bauer Permalink | Comments (2)
categories: OpenACS , Open Source , Programming

Dan Brown writes about the underlying model behind CMS products, taking into the the concepts of workflows, roles, etc. He says the models are an Idealized Cognitive Model. The model resembles a factory. We can do better if we model a CMS to work like real people do. This is a great opportunity for Open Source content management to fill a need that real people have. Instead of modeling the content authoring and editing process around the coporate hierarchy, model it around the real process of real people writing. This is obviously why weblogs, and the models they are based on, are so popular.

I have been thinking about this in much simpler terms in the back of my mind for a while now. The first assumption most CMSs make is modeling the site in a hierarchy of folders. This works for people who understand hierarchal filesystems, which if you read "The Inmates are Running the Asylum" is not everyone. How can we model the structure and organization of content, and the authoring process, around how people think about their web site. I have a feeling its a combination of tags and some yet to be discovered organic metadata that doesn't look like metadata to the content authors.

10:46 AM, 25 Jun 2005 by dave bauer Permalink | Comments (0)
categories: OpenACS , Open Source Content Management , Open Source

I realized the main difference in the approch of Interaction Design and Agile Development. ID assumes the cost to change software once it is written in very high. Agile processes are defined precisely to reduce the cost of change, and that is how it can work closely with direct customers, and do more, and smaller designs. Basically it takes the 1 year design, 3 months coding schedule of the ideal interaction design project, and shortens it to an extreme. The other big difference is that Agile allows coding during design. Agile also says that each interation must be able to stand along as functional software. With such short design and programming phases, it is possible to do a good job, just on a much smaller pice of software.

I still haven't figured out how Agile can support integration of a huge application from all the pieces. It seems risky to design one feature in the first iteration, and expect somehow that the interaction for the users will integrate with the whole application, and not change dramatically. I think changing interfaces is a huge training and probably morale problem, even if the changes are improvements. So this is a place where I think ID really has the advantage. I know there is still more to learn.

01:34 AM, 03 Jun 2005 by dave bauer Permalink | Comments (2)
categories: Open Source , Programming , Computer Science , Design

I am thinking more about interaction design and agile development, and how the ideas connect between them. One theme in The Inmates are Running the Asylum, is that the goal of design and development is to build a product that many people will be delighted to use. This product will not do everything, and will not be for everyone, but it will do what it does very well.

Constrast this to Agile development, often used in custom software development, works directly with the people who will end up using the software. I think the idea is to give these people exactly the software they need.

01:01 AM, 03 Jun 2005 by dave bauer Permalink | Comments (0)
categories: Open Source , Programming , Design

I was thinking about the differences between Interaction Design and Agile development. One interesting point Alan Cooper makes is that the people who will use the result of development are not skilled enough to know what the best design is. Instead the interaction designers invent personas that represent the attributes of the most important users of the final product. One disconnect between the ideas of interaction design and Agile is the goal of product based development vs. custom development.

When you are developing software as a product, you don't know who will buy it, so you need to come up with some ideas to develop towards. With customer for-hire software projects, the customers are the people who will end up using the software. I think the idea of an expert who has good suggestions for how people will interact with a system to get their jobs done is great, but I am not so sure this expert should be all alone, designing without the people who use the system, or the people who will build it.

12:33 AM, 03 Jun 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Open Source , Programming

Strategy by Design by IDEO's Tim Brown, discusses how thinking about design can improve planning and strategy for business. I like how the ideas fit into Agile software development.
It's a process of enlightened trial and error: Observe the world, identify patterns of behavior, generate ideas, get feedback, repeat the process, and keep refining until you're ready to bring the thing to market.
Product design doesn't map one-to-one with Agile software development, but I can see parallels. I especially like the idea of "elightened trial and error." One place that Agile software development differs from the ideas in the article is the concept of prototype. A prototype is a quick design experiement to stimulate the imagination and get more ideas. With Agile development, the idea of throwing away the steps of iteration is gone. You plan to keep the results of every iteration and build on it. So each step is complete as it can be, as a part of a whole.

12:27 AM, 03 Jun 2005 by dave bauer Permalink | Comments (0)
categories: Open Source , Learning , Programming

I'll just link to this google search and go through the links later. As usual, so other folks have some thoughts on how Interaction Design and Agile might fit together.

09:28 PM, 01 Jun 2005 by dave bauer Permalink | Comments (0)
categories: Open Source , Programming , Design

Alan Cooper recalls a conversation with Keith Pleas where Alan asked about making software more human. Keith replied
Would a computer say you have "about $500" in your checking account?

If you look at MS Outlook you can see where imprecision can actually enhance understanding. When you sort your emails it sorts them by date as Today, Yesterday, Last Week. Some weblog software will state the post time as "3 hours ago" or "5 minutes ago" instead of the exact timestamp. Of course timestamps are meaningless in a global environment with time zones anyway. 3 hours ago is more informative. Of course, a human brain can gague relative time measurements like that easily. I am not sure I want my bank to be imprecise about my balance, but the basic idea of using human language is a good one.

04:04 AM, 21 May 2005 by dave bauer Permalink | Comments (0)
categories: Open Source , Programming

Revisiting Alan Cooper and "The Inmates are Running the Asylum", Cooper says that design iterations are quick and easy because they are on paper, and that programmer interations are slow and difficult because they require code. I am not sure this is entirely true. Using dynamic languages, and web application toolkits and other rapid development techniques, and agile processes, a code iteration can be quick and reasonably painless.

I think the basic ideas behind interaction design are very important, and the balance between code and design is very important. The speed of code and design in dependent on the team doing the coding, the team doing the design, the communication between them, and the specific project they are doing. Factor in the actual customer, and you can see how the rules might need to be bent and adjusted.

Basically it all comes down to paying attention to what going on around you, and being aware of the needs of the customer, design team, development team, and the constraints they are all working under. Awareness and communication are the keys.

02:57 AM, 20 May 2005 by dave bauer Permalink | Comments (0)
categories: Open Source , Programming

How to change the world [www.jwz.org]

"f you want to do something that's going to change the world, build software that people want to use instead of software that managers want to buy." - Jamie Zawinski

04:27 PM, 17 Feb 2005 by dave bauer Permalink | Comments (0)
categories: OpenACS , Open Source Content Management , Technology and Education , Open Source , Search

Art Rhyno suggests instead of trying to get library backends to work with the we, that there is a public interface that can synch with a web applciation. He suggests that RSS might do the trick to synch the internal catalog with a public web application.

Using RSS or any other noticiation system to synch the interesting catalog data for use by the public would be very exciting. Already my local library can output the books I have checked out, and search results in XML, but its not pretty. There also isn't any sort of standard format that works across platforms. So I could work on an application that shows the books I am currently reading according to my library records, but it would only work with a library with the same platform.

Anyway the post was more about a public inteface to the catalog. I would love that. It would be great to aggreate comments and reviews and link them to a local library catalog. There all all kinds of exicting options. Art says "the trick is to create sustainable web representation of the contents of the catalogue, with dynamic hooks for status information "

07:38 AM, 16 Feb 2005 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Open Source , Learning , Search

Al Essa will be giving a presentation on .LRN at Educause 2004. The title of the presentation is "Scalable Innovation in Collaborative Education Technology with .LRN". The program says the presentation will include case studies from MIT Sloan, Univ. of Heidelberg, the European Union's E-Lane. In addition it highlights some of the interesting features of .LRN including complex multi-player simulations (read more about simulations in OpenACS) and aggregation and syndication of educational content via IMS/SCORM support (read more about IMS/SCORM support in OpenACS).

04:54 AM, 13 Oct 2004 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Open Source , Learning

I mentioned mirroring a Wiki to a PDA using Plucker, but that really isn't enough. It is only one-way. A read-only Wiki is good for reference, but to capture thoughts and ideas you need to be able to write as well as read.

Importing some other Wiki intoWikiPad or one of the other Palm OS wiki's might be a solution.

Points more and more to an internet-ready PDA.

02:32 PM, 04 Aug 2004 by dave bauer Permalink | Comments (0)
categories: Open Source Content Management , Open Source , Learning

Instiki is a wiki built on Ruby by the developer behind Basecamp. I tried to install on debian and it was not quite as easy as the author claimed.

Here is what I had to do.

apt-get install ruby
apt-get install libwebrick-ruby
apt-get install libstrscan-ruby
apt-get install rdoc
apt-get install libzlib-ruby

Download instiki http://rubyforge.org/frs/?group_id=186

You also need to edit instiki.rb to point to /usr/bin/ruby or run it as "ruby instiki.rb"

Then it works. Apparently if you install ruby from source it comes with all those goodies.

More later after I actually try it.

I will just ask though, why has noone figured out that it would be nice to synch a wiki to a PDA?

I guess the answer is an internet enabled PDA.

12:32 AM, 01 Aug 2004 by dave bauer Permalink | Comments (0)
categories: Open Source Content Management , Open Source

So far, client side content management can offer some features and ease of installation that web based systems can't. I have seen Macromedia Contribute, and it has a nice feature where after editing a page, you can send it off to someone to have it reviewed. Now, there isn't any way client side to integrate with some arbitraty CMS on the other end to see who could approve an article.

I am imagining a way to do with with WebDAV. Finding out who can perform actions on a page, and changing who can do that from the client might be a good fit for WebDAV ACL.

Along with other the rest of the WebDAV stardards this could be a great way to build a rich client-side content management interface.

06:42 PM, 20 Jul 2004 by dave bauer Permalink | Comments (0)
categories: OpenACS , Open Source Content Management , Open Source

davfs for linux [dav.sourceforge.net]

davfs gives filesystem support for WebDAV shares to linux. So far it seems to be working fine.

11:39 PM, 18 Jul 2004 by dave bauer Permalink | Comments (0)
categories: OpenACS , Open Source Content Management , Open Source

Eric Eldred was threatened with arrest by the police at the Walden Pond Reservation while distributing free books from the Internet Bookmobile. He vistied the park on the 150th anniversary of H. D. Thoreau's book "Walden."

The park supervisor said he could not give away free books because it would compete with the concession that sold the same book.

This is, of course, crazy. It is perfectly legal for him to give away these books. What is great about the Internet Bookmobile is that not only does it give away free books, but it gives people the opportunity to make their own books. It shows an alternative future for publishing with print-on-demand for very small jobs.

The press release also states that Eldred has had trobule getting invitations to visit schools and libraries. I can't believe it. It seems that people just can't understand that once a copyright has expired the words belong to the public and can be used freely. The Internet Bookmobile is a wonderful experiment and a great way to teach people about the great cost of perpetually extending copyright.

It seems Eldred is from New Hampshire, and that is not too far from where I live. I will have to look into having the bookmobile visit a school or public library around here. It looks like you can request a visit by posting in the Internet Bookmobile forums.

12:11 PM, 13 Jul 2004 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Open Source , Learning

From Weblogg-Ed I found Wikis in K-6 education. In addition to that I discovered along the way TechKid.org which links and great resources for K-6, and OpenIdeas.org, Open Source Ideas for K-6 Education which includes a handy RSS feed.

10:17 AM, 02 Jul 2004 by dave bauer Permalink | Comments (0)
categories: Technology and Education , Open Source , Learning , Programming

Weblogs, Wikis, Schools and Scale - .LRN Steps In [tuttlesvc.teacherhosting.com]

Tom Hoffam thinks about scaling a weblog installation across an entire school. He asks if traditional weblog software can scale to provide a weblog for every class, or even every student in a large school.

I think this is where something like .LRN really can fill a gap. It is designed for managing course and school wide collaboration for universities. It is built for thousands of users and hundreds of course. .LRN is by a high performance web application server and RDBMS and provides fine-grained permissions, security, and privacy controls. Centralized install of software is not necessarily a bad thing. The central install can provide all the tools students need to collaborate.

09:39 AM, 25 Jun 2004 by dave bauer Permalink | Comments (0)
categories: OpenACS , Open Source Content Management , Technology and Education , Open Source , Learning

There is an article which I won't link to that is an open letter to a young programmer trying to convince this young programmer to forget Open Source and Free Software because there is no way to make a living. If you don't open your mind to new possibilities, it is easy to believe this.

I work on OpenACS, a toolit for building web-based applications. I get paid to enhance the toolkit, adding features. Many times these features are given back to the OpenACS community. Very rarely is one of my clients also in the web application software business, so the generalized features are not giving them a competitive advatage. The integration of the features into a custom application is where the client gets the benefit. Their benefit of Open Source is reduced development cost. It has been the case for OpenACS that a certain feature may be needed by several clients, so development costs can be shared among them, leading to a better and more flexible product.

In addition a client benefits be Open Sourcing the enhancements they financed by keeping their code closer to the distrubuted code. This leads to reduced maintenance costs for the future and helps to ensure upgrades will be available.

So the simple point is that very few companies make signifigant profits from software licensing. The money is in integration and customization. There are definitely a few big companies with a huge part of this market also. There will always be many smaller clients that the huge corporations are not interested in, and really don't have the ability to service. It probably costs more to write a proposal for the large corporations than the budget on many small client projects.

The other serious advantage Free and Open Source software provide is educational. I learned everthing I know by studying and contributing to Open Source projects.

01:24 PM, 01 Mar 2004 by dave bauer Permalink | Comments (0)
categories: Open Source

Buy Open [boingboing.net]

Cory Doctorow has a great response to Robert Scoble on Microsoft vs. Apple music players. Cory says buy open! Of course this is the answer. Copyright law does not allow the manufacturer of the medium to specify which brand of player you must use. Even if you use WMA format files with restrictive DRM you aren't getting real choice. You can still only use Microsoft approved devices, in Microsoft approved ways.

Consumers do not want innovative ways to control their use of music. They want innovative ways to use the music they have legitimately paid for. Once I pay for some music I should be able to play it on any device I might happen to be using at the time. If I need to convert to another format, tape, CDR, whatever, I should be able to listen to the music I purchased.

I am glad someone wrote this. I read Scobles article and felt intuitively that there had to be another option. The real choice is clear. Buy Open.

01:39 PM, 27 Jan 2004 by dave bauer Permalink | Comments (0)
categories: Open Source

Thinking about it for a minute, I realized the ideal platform for a kids handheld PC. It's Squeak. Programs written in Squeak would be similar, if not better than those written in Flash. The interesting part is that the Squeak platform would not only allow kids to write their own programs, but also peek inside and see how the preloaded games work. It could even allow modification of the Squeak platform itself. Of course, you'd want a reset button to restore the preinstalled working Squeak environment.

Now, I just need to figure out what sort of hardware would be needed to do this. Existing systems that might run Squeak are a Linux or PocketPC handheld system.

01:14 PM, 21 Nov 2003 by dave bauer Permalink | Comments (1)
categories: Technology and Education , Open Source , Learning

I have been looking for a general purpose handheld for kids. Basically a PDA that you can download software to that won't break. There are plenty of small devices such as Pixter, Leapster, etc. They all only use their own proprietary cartridges. Would it really kill them to support a software market like the one around Palm OS? Ideal would be a Palm OS device that was a little bigger and more durable for kids. My kids like drawing on my Treo 90. The great thing about the Treo (and all Palm OS, and even PocketPC devices) is the USB or serial connection to a PC. Being able to download software is such a powerful tool. Kevin Werbach writes about it in The Triumph of Good Enough. What is most important to me is that I can write software for Palm OS. And of course, there is even Open Source software available. So my dream device for kids would run a general purpose OS, not break, and foster an active Open Source developer community around it.

08:47 PM, 19 Nov 2003 by dave bauer Permalink | Comments (0)
categories: Open Source , Learning , Programming

XML

Notifications

You may
request notification for the Design Experience Weblog.

Syndication Feed

XML