Apple and Planning
Posted on Aug 17 2009 15:55  / Planning


At Apple there are three evaluations required at the inception of a product idea: a marketing requirement document, an engineering requirement document, and a user-experience requirements document.

Marketing is what people want; Engineering is what we can do; User Experience is how people like to do things.

These three documents are reviewed by a committee of executives, and if approved, the design group would get a budget, and a team leader would be assigned. At that point, the team works on expanding the three requirement documents, inserting plans on how they hope to meet the marketing, engineering, and user-experience needs--figures for the release date, ad cycle, pricing details, and the like.

The Future of Education
Posted on Aug 17 2009 16:50  / Education

Seth Godin has written an interesting article about education

  • should it be free or expensive
  • should it be scarce or abundant
  • should it be about school or learning

Read this post!

Users on the Web
Posted on Aug 18 2009 15:53  / Users Information Behavior


from Businessweek

But marketers are making a big mistake if they think widgets will help them build deep inroads with this demographic. To understand why, consider the mindset of the people spending time spiffing up their profiles and socializing online.

They are doing, not hunting, and you'll have a hard time reaching them when they're in this mode. There are three modes, or mindsets, people take on when they use interactive communications: receiving, hunting, and doing. You receive a phone call. You hunt for a book at the library. You take an action say, writing an article such as this.

The history of the Web is a transition between these phases. Back in the mid-1990s, most people were happy to "receive" information on the Web. Content (meaning Web sites) was king, and so AOL, EarthLink (ELNK), and marketers responded by trying to create "sticky" Web portals where people would spend long stretches, returning often.

By 2000, the Web expanded, and millions of Web sites meant we all got lost. So consumers entered "hunt" mode, and Google (GOOG) arose as a powerful search engine helping us rapidly find stock quotes or sneakers for sale.

But "do" is where the Web is headed in 2008. Millions of people mostly the under-35 demographic have signed up for Facebook, MySpace (NWS), and Twitter. They are leaving single Web sites behind and becoming immersed in social media. Now Internet users can create, contribute, network, edit, share, even steal online, and pass it to hundreds of friends or colleagues. Google Docs helps you edit spreadsheets; watches your bank and credit-card balances; Twitter lets you track the thoughts of friends.

The Heart of an Information System
Posted on Aug 20 2009 13:52  / Information Management

I don't know why I like this graphic but it shows the majors parts of an information system.

Process of Web Design
Posted on Aug 21 2009 12:49  / Web Design

[img[/filestore/images/1-8-700.jpg]] `[[Web Style Guide|]]`

AWK program to Report Video Use
Posted on Aug 31 2009 13:35  / Programs
# video.awk
# 2009-08-27
# Takes dumped item data from III and formats it for the web
# Part of a pipeline that starts with the data sorted by using sort command

BEGIN { FS = "\t"
    OFS = "\t";
    indexes = "count,circs,uses"
    split(indexes, cd, ",")
    split(indexes, dvd, ",")
    split(indexes, video, ",")
    print startDtml() > "c_cds.html"
    print startTable() > "c_cds.html"
    print startDtml() > "c_dvds.html"
    print startTable() > "c_dvds.html"
    print startDtml() > "c_videos.html"
    print startTable() > "c_videos.html"


function startHtml(title) {
    s = "<html>\n<head>\n<title>" title "</title>\n"
    s = s  "<link rel=\"stylesheet\" type=\"text/css\" href=\"/bk.css\" />\n<link rel=\"stylesheet\" type=\"text/css\" href=\"style_sheet\" />" 
    s = s "</head>\n<body>\n<img src=\"/images/2rf.gif\" align=\"middle\" hspace=\"10\" ><h1>" title "</h1>\n"
    return s

function endHtml() {
    s = "</body>\n</html>"
    return s

function startDtml(title) {
    s = "<dtml-var standard_html_header>\n<img src=\"/images/2rf.gif\" align=\"middle\" hspace=\"10\" ><h1>"title"</h1>"
    return s

function endDtml() {
    s = "<dtml-var standard_html_footer>"
    return s

function startTable() {
    s = "<table>\n"
    return s

function endTable() {
    s = "</table>\n"
    return s

function printRow(count, title) {
    s = "<tr><td>"count"</td><td>"title"</td></tr>"
    return s

function commas(n) {
    point = index(n,".") - 1
    if (point < 0) point = length(n)
    while (point > 3) {
        point -= 3
        n = substr(n,1,point)","substr(n,point + 1)
    return n

function outputResults(type, counter) {
    totalcnt = counter["count"]
    tc = commas(totalcnt)
    circs = counter["circs"]
    noncirccount = counter["count"] - counter["uses"]
    noncircpercent = (noncirccount / totalcnt) * 100
    s = "<h1>Report for " type "</h1>\n"
    s = s "<h3>Total Item Count: " commas(totalcnt) " </h3>\n"
    s = s "<h3>Count of Non Circulating Items: " commas(noncirccount) "</h3>\n"
    s = s "<h3>Percent Non Circulating Items: " noncircpercent "</h3>\n"
    s = s "<h3>Total Circs: " commas(circs) "</h3>\n"
    return s

$3 ~ /whcd/ {
    if ($2 > 0)  
    print printRow($2,$1) > "c_cds.html"

$3 ~ /whdvd/ {
    if ($2 > 0)  
    print printRow($2,$1) > "c_dvds.html"

$3 ~ /whv/ {
    if ($2 > 0)  
    print printRow($2,$1) > "c_videos.html"

    print startDtml() > "c_summary.html"
    print outputResults("CDs", cd) > "c_summary.html"
    print "<a href=\"c_cds.html\">View CD Data</a>  (in decending order)\n\n" > "c_summary.html"
    print  outputResults("DVDs", dvd) > "c_summary.html"
    print "<a href=\"c_dvds.html\">View DVD Data</a>  (in decending order)\n\n" > "c_summary.html"
    print  outputResults("Videos", video) > "c_summary.html"
    print "<a href=\"c_videos.html\">View Video Tape Data</a>  (in decending order)\n\n" > "c_summary.html"
    print endDtml()  > "c_summary.html"
    print endTable() > "c_cds.html"
    print endDtml() > "c_cds.html"
    print endTable() > "c_dvds.html"
    print endDtml() > "c_dvds.html"
    print endTable() > "c_videos.html"
    print endDtml() > "c_videos.html"

Unintended Consequences
Posted on Aug 31 2009 14:20  / Planning
I'm all for accepting that the gap between intent and practice will inevitably be quite wide, and that in that gap, all sorts of devils can find room to dance. It's just that those kinds of gaps also have thermals upon which angels fly. The mere existence of such gaps is not a reason to simply squat dully upon the status quo, or unchain the magic market mechanism to come along and sweep us to the promised land, nor is it reason to simply avoid discussion of what we ideally would like to see happen on the grounds that whatever we would like, unintended consequences will ensure that we never get it. - -Timothy Burke
21st Century College
Posted on Aug 31 2009 16:28  / Education

The 21st Century College -- from Timothy Burke, a professor in the Department of History at Swarthmore College

  1. The haphazard, disconnected curricular design of both liberal arts colleges and research universities, both the range of subjects covered and the connections between areas of study. Rather than glossing over the relationship between integrative and specialized knowledge and trusting everything to turn out for the best, as most conventional liberal arts colleges do, or actively favoring specialized knowledge, as most research universities do, this curriculum proposes a much more consciously and rigorously organized relationship between integrative and specialized knowledge and between academic study and practical know-how. This is my own response to the kinds of curricular incoherence identified so expertly by Gerald Graff in his book Clueless in Academe, which I strongly recommend to both students and other academics.
  2. The insular, timid and self-confirming character of a great deal of contemporary academic practice. This outline responds to this both by widening the labor pool of potential instructors and by systematically directing faculty towards communicating with wider publics while also demanding that faculty broaden their knowledge and intellectual practice rather than narrowing themselves towards more and more inward-looking forms of specialization. Rather than the laissez-faire spirit of most contemporary academic institutions, in which generalism is only one of many options for professional development and a responsibility to wider public discourse and needs is not a requirement, the 21st Century College would make these central conditions of continued employment. As part of this reorganization, this blueprint also advises the abolition of conventional academic departments and units.
  3. The rise of the expensive "full-service" model of higher education coupled with the pervasive resurgence of in loco parentis, of the college or university as "nanny" determined to manage most aspects of community life and ethos. This blueprint counsels abandoning the vast majority of services provided by most colleges and universities while also maintaining a scrupulous disinterest in the private lives of students, faculty and administrators.
Staffing a Digital Library
Posted on Aug 31 2009 17:09  / Digital Libraries

This is what it looks like at Stanford