Friday, June 23, 2006

One Web Day!

OneWebDay

First, I am back!  Sorry for such a long hiatus but it has been an interesting year with one new course - Information Technology Security and Privacy at the University of Pennsylvania and a major redesign of the Software Architecture and Design course at Stevens.  If you are interested in either send me an email and I will send you the syllabi (I may even make them available at my web site.)


What I would like to discuss today, and will provide weekly updates on, is One Web Day.  One Web Day will occur on September 22nd of each year and 2006 is the first year.  Its purpose is to promote a global day to celebrate online life.  Susan Crawford, a woman of tremendous energy, conceived this idea and has been promoting it everywhere.
So please check out the web site and please get involved anyway you can.  I think it is a great concept providing us a day to reflect on our online community and  to give back to the community.   



Susan said  it well on the One Web Day site:

The goal of this activity is to create a global good news day for
the Web. We also want to encourage collaboration/participation in
online life that goes well beyond this one day in September. Adopt a
nursing home, connect another hotspot — whatever makes sense to you and
your friends — but help people all around the world mark the day as
part of a global celebration of collaboration and participation online.


OneWebDay:  Join Us.  Who’s us?  Everyone.

I feel so strongly about what a great idea One Web Day is that I am on the board.  I am encouraging all of my students and anyone else who visits here to get involved.  If you do get involved, let me know how you are involved.   If you want to help but do not know what to do, contact me. 



Visit again real soon.  I have a backlog and intend to have a busy, blogging summer.  Enjoy your summer!  Later!



Tuesday, March 28, 2006

Documentation IS Rocket Science

As some of you may know, I am an avid space fan.  Larry Klaes (candidate for GBU? - an inside HCI joke) in his mailing group has pointed to an article detailing the issues of reviving the Saturn 1 moon rocket to power the next stage of human space exploration.   Reading the entire article is highly recommended and it can be found here.  It basically details the issues involved when compilling documentation for the retirement of a project that at some future date may be reinitiated.  The problems of incomplete documentation, tacit knowledge in the scientists's heads (to be redundant) and lost documentation and tools for supporting manufacturing tasks parallel issues we have today for many of our large software technical artifacts. 



One advantage software engineers have is that we have very low manufacturing costs for multiple copies (clearly not the case for the Saturn 5 F1 engine).  This clearly helps in keeping old software running.



Some interesting discussion topics would be how do large software projects differ from large hardware projects, beyond the obvious manufacturing issues?  What can we do to better preserve documenation and the knowledge that swims in the heads of the designers?  Is there something beyond wikis?



I have been remiss lately in posting -- I need to catch up to meet my goals for an entry a week. Hopefully soon as the Spring semesters begin to wind down. Later!



Thursday, February 23, 2006

SAC!

Welcome to SAC, a personal initiative to quietly transform the way we build systems.  SAC stands for Simple Accessible Code and is based on the principle that developers of software systems should be able to understand the complete body of code in their systems.  Complete body of code includes the operating systems and the languages and tools used to construct the applications.  It stresses straightforward languages, tools and operating systems.  It stresses having source for each aspect of the system, applications, tools, languages and operating systems available to all developers -- true open source!  For a given project at least two of the developers should understand the entire system from operating system to language(s) to tools to applications.  Why two?  Redundancy.



This idea has been brewing in my mind for years.  I am increasingly appalled at the complexity of languages, operating systems and tools.  This has ostensibly been done in the name of productivity and capability, yet it has left us with unreliable, buggy, infiltration-prone,  inefficient and incomprehensible systems.  It is time for a sea change and I hope SAC contributes to this movement.



The final push to make these still formative ideas public was stumbling on C code for Rivest's RC4 stream cipher algorithm in Kaufman, Perlman and Speciner's, Network Security: Private communication in a public world, Prentice Hall, 2002, isbn=0-13-046019-2.  It was less than 30 lines of C code!



The magnitude of this task makes it aspirational for the moment, but I hope to push it as far as possible in the remaining (hopefully many) active years of my career.  My plan is to support it with a web site, a separate blog and publications.  I have some heuristics in the works and will keep you posted on their progress.  My notional schedule due to current obligations is to establish the web site by June.  I will provide you with monthly progress reports.



I know February has been a slow month for my posts, but I consider this to be a very significant one.  As always I would appreciate our thoughts on this new adventure.  Later!



Friday, January 27, 2006

Revenge of the Managers

Yes it had to happen, albeit a bit late.  Twenty plus years after the Revenge of the Nerds, the managers have struck back!  They have established a new conference, Waterfall 2006.  However if you read carefully (or not so carefully) you will find it is a spoof on the waterfall model and that it actually is on agile methods.  Actually if you notice that the location is Niagara Falls and the date is April 1, 2006 you should question its reality.  (It is worth clicking on the Register now button.)



A bit of humor after a rough, cold week in January to begin your weekend.  Thanks to Diggdot for pointing to the post in del.icio.us.   Both are sites worth visiting frequently (I do) -- actually Diggdot provides summaries of a few sites including del.icio.us and slashdot.



Next week I will begin to work on my backlog of student postings.  Later!



Monday, January 16, 2006

About You

I have been asked by folks several times to provide recommendations on introductions to cognitive psychology.  Two popular books are: Cognitive Psychology by Solso, et. al. (isbn 0205410308) and Cognitive Psychology by Sternberg (isbn 0155085352).  The observant reader will note that cognitive psychologists are very creative in their choice of titles!  You also can obtain a free copy of William James, Principles of Psychology here.  Although it was written in 1890, it is still a great read on ourselves.  In fact if you are really into psychology, York University in Canada offers an archive of free classic books and papers here.  Highly recommended, especially if you would like to read a bit about some of the topics such as Gestalt Psychology that I briefly cover in class.



There also is a great online (shareware if you find it useful) book on task centered user interface design by Clayton Lewis and John Reiman.  You can download a copy of it here.   It is a very practitioner oriented book and highly recommended.  I knew Clayton when he worked as a user interface specialist at IBM Yorktown Heights (aka T.J. Watson Research Center) with John Gould. You can access a paper they wrote on designing for usability here. Clayton then moved to academia and is at the University of Colorado.



I will be adding more resources on psychology and human centered design in the months ahead.  Later!



Wednesday, January 11, 2006

A Key Model

I am currently teaching a course at Penn on Human Computer Interaction which stress an applied appraoch and only briefly mentions the academic underpinnings of the field.  A classic book that provides an insight into basic principles in HCI is Card, Moran and Newell's The Psychology of Human Computer Interaction.  It is a bit dated and may be difficult to get but it is well worth the effort to  find it at amazon, a used book site (I use alibris) or from a library.



One of the classic topcs in the book is a model of keystrokes that assesses the efficiency of a user interface.  You can get a Windows only calculator for this model here, just select KLM calculator. The SYNTAGM site also has other useful resources for HCI including card sorting and mailing lists, well worth exploring!



As the year progresses I will provide other resources for HCI and will mirror them on my website.  Later!



Tuesday, January 3, 2006

Real Architecture

Happy New Year! 



In every class that I teach (and now on my website), I always refer to Vitruvius and his 3 principles of design:  utility, durability and charm.  As is frequently the case the wikipedia has an excellent write-up on Vitruvius.  The page also leads to the original text of his book, On Architecture,  which can be found here.  In this translation, the fabled quote can be found n Book 1, Chapter 3, Section 2, "
All these should possess strength, utility, and beauty."



I have not finished reading it, but what I have read is truly fascinating, timely and also corroborates with the depiction of the Roman Empire  in the HBO series Rome, which I highly recommend.  I will post additional entries on this book in the next month.



Since 2005 was a busy year for me, I was not the best blogger and have lots of topics and student submissions in the queue.  I resolve in 2006 to be a much more active blogger, averaging at least one per week.  We will see at the end of the year how well I do!  It is always great to provide estimations and track it with reality.



Later!