Welcome to the IdeaMatt blog!

My rebooted blog on tech, creative ideas, digital citizenship, and life as an experiment.

Friday
May062005

Notes on the book "Why Not?" (How to Use Everyday Ingenuity to Solve Problems Big and Small)

A while back I finished a great book on problem solving (and ideas) called Why Not? How to Use Everyday Ingenuity to Solve Problems Big and Small. (There's also a website called Why Not Open Source Movement.) I wanted to post my notes from the book, summarizing their points. If you think these are interesting, I urge you to buy the book. I found it a great resource.

The authors present two basic idea-generating methods, and four problems-solving tools:
  1. Problems in search of solutions
    1. What would Croesus do (WWCD)? (UNCONSTRAINED CONSUMER)
    2. Why don't you feel my pain (INTERNALIZATION)?

  2. Solutions in search of problems
    1. Where else would it work (TRANSLATION)?
    2. Would flipping it work (SYMMETRY)?


Following are some details on the main points.

1.1 What would Croesus do (WWCD)? (UNCONSTRAINED CONSUMER)
  • Have someone else solve problem first.
  • Customers: product misuse -> new problem and solution; Good to think of what hypothetical customer would do.


1.2 Why don't you feel my pain (IMPROVED INCENTIVES)?
  • Self-interest -> doing wrong thing.
  • "Negative externalities" (misguided or missing incentives).
  • Look for inefficient behavior by buyers or sellers.
  • Solution: INTERNALIZE external effects -> feels my pain so does right thing.
  • Look for systematic customer mistakes.
  • Penalty vs. incentive.


2.1 Where else would it work (TRANSLATION)?
  • "Don't think, look!"
  • Look in other cultures, countries, religions, etc.
  • Look at neighbor.
  • Different context - 1) identify attributes of solution that concisely explain solution of problem. 2) generalize description.


2.2 Would flipping it work (SYMMETRY)?
  • Stress test: 1) Stress different words in declarative description of problem/solution. 2) Flip stressed words.
  • Anti-symmetry possible good too.


Here are a few notes from the final chapters.

Chapter 7: Principled problem solving (identify PRINCIPLES)
  • Think inside the box (constraints can help make search more productive).
  • Identify problem's PRINCIPLES (axioms) - what you *do* know (knowing 75% of answer -> easier to find other 25%).
  • Beware false (artificial) principles, but they're possibly useful for applying elsewhere for solutions.
  • Confidence - be a "Platonist" - assume discovery, not creation.


Chapter 8: The case for honest tea
  • Use DISSONANCE to discourage others from entering your market (new product would be very inconsistent with current).


Chapter 10: Implementing Why-Not
  • Karl Marx: We shouldn't be satisfied with just analyzing or interpreting the world: "[T]he point is to change it."
  • presenting: elevator pitches - one line
  • KISS - keep it SIMILAR, silly.
  • WHO to pitch to: pay attention to who would have interests (identify audiences).
  • Install the CO-VENTURER perspective in audiences - e.g., give up rights.
  • Open source - "just share it"; can cause demand as originator get reputation as "idea person."


To summarize - a very helpful book, I believe.
Tuesday
May032005

An XML Clipboard for Semi-Structured Data

The problem: Data is still frequently transmitted as semi-structured ASCII text, but applications require structured information. For example, I often want to input an address into an electronic address book based on text from an email or web page, esp. a signature. (Yes, there's vCard, but I think consistent usage is still rare, and using it requires extra steps.) Another example is inputting financial transactions into a finance program from an on-line banking page - I now do much of my bill paying on-line using a web interface from my bank, and I hate having to laboriously (and erroneously) copy each section of the transaction's output (HTML) into GNUCash.

The solution I'm playing with has two parts: a) a general-purpose data recognizer clipboard that converts semi-structured text to XML, and b) support by applications for recognizing XML on the clipboard. The thought is that by converting to XML (i.e., semi-structured data that has been marked up), we've done the hard low-level data recognition work, leaving it to the applications to 'take what they can use'.

Usage scenario: consider copying the following email signature (from this example) to the clipboard:

Jim Frazier, President
The Gadwall Group, Ltd. - IT and Ebusiness Strategies
Batavia, Illinois 630-406-5861 jfrazier@gadwall.com
http://www.gadwall.com http://www.cynicalcio.com
Seminars and Training - Consulting - Publications

(I don't know him - it's just the first public signature I found.) It's easy to envision a straight-forward regular expression-based tool that pulls out the following:

<clip>
<name>
<first>Jim</first>
<last>Frazier</last>
<title>President</title>
</name>
<location>
<town>Batavia</town>
<state>Batavia</state>
<country>Batavia</country>
</location>
<phone>630-406-5861</phone>
<email>jfrazier@gadwall.com</email>
<url>http://www.cynicalcio.com</url>
</clip>

Here's what the text copied from a bank's on-line statement might look like:

04/27/05 | Checking | Check 2067 | 2067 | $-45.00

Where the columns are: Date, Account, Description, Check #, and Amount. In this case the date might be:

<clip>
<date>
<month>04</month>
<day>27</day>
<year>2005</year>
</date>
<text>Checking</text>
<text>Check 2067</text>
<number type="integer">2067</number>
<currency unit="dollars">-45.00</currency>
</clip>

You get the point - basically it's just a set of lower-level recognized data. It's up to the application to put the pieces together in a more specific and meaningful way.

Thoughts:
  • It would be great to program custom rules using a nice scripting language, such as in JavaScript (used to program Konfabulator widgets).
  • As a work-around to requiring applications to recognize XML, we might try the XML clipboard plus a mouse/keyboard macro playing program (e.g., QuicKeys).
  • There would need to be a DTD standard for this. (I'm sure one exists somewhere.)
  • Hasn't this been done (partly) by Apple's old Data Recognizers idea? A few references here and here.
Monday
Apr252005

Using Greasemonkey to Re-balance (and Re-write) Journalism

I really want to apply the incredible new client-side javascript/DHTML tool Greasemonkey to modifying news stories such that their weaknesses (the ones that threaten our democracy - found at Weblogg-Ed, Brain Flotsam, and droganbloggin) are made evident. (Simon Willison calls it a lightweight intermediary, and Douglas Fisher calls it TiVo for the Web.) The basic idea is to use it to indicate basic problems in Journalism like increased bias (e.g., from advertizers or owners) and reduced rigor (e.g., propaganda as news). (In The End of Objectivity Dan Gillmor suggest we replace objectivity as a goal with "four other notions that may add up to the same thing ... thoroughness, accuracy, fairness and transparency." These should give us some ideas for what to check.)

Update: Jon Udell points out in an email that "It's less about Greasemonkey, and more about having collaborative rating systems along these various dimensions you highlight. Doing that fairly and effectivly is the real challenge -- but an interesting one." This helps me realize that I've not been clear on Greasemonkey's contribution. In fact, it is crucial because it allows in situ enhancement. Other alternatives (with their own limitations) are defacing news servers and using a tool like Wikalong. However, I think that the Greasemonkey option offers the most accessibility.

Before I present a few ideas on what to do (the how will need help from you), I first have to say I'm concerned this approach is fundamentally flawed. The general idea (I'm an optimist, you see) is to:

  1. Present limitation (e.g., bias) with references.
  2. News consumer's (or product consumer's - more in another post) rational mind ponders new information.
  3. Consumer changes thinking or behavior for the better.
  4. World is improved.
  5. Repeat for everything else.

My worry is that an intellectual appeal won't help. For example, in Don't Think of an Elephant: Know Your Values and Frame the Debate, George Lakoff talks about how information has to fit into a person's mental architecture. If it doesn't (i.e., when it contradicts something already "known") it won't be accepted, even if it is rationally more compelling. However, as a person with only technological (not political) skills I'll forge ahead and hope to offer some help.


So, what can we analyze for our Greasemonkey script(s) to highlight? Here are some ideas:

Detect Advertiser Conflict of Interest

If a story's topic is about one of the media outlet's (or author's) advertisers, a script could highlight the conflict of interest, clearly documenting it. But how do we know who their advertisers are? Well, look (over time) at advertisements! Naturally we would need something like MontyLingua to parse the text.


Highlight Censored Stories

I'd love to see an automated version of Project Censored, i.e., a program that analyzes at which major media outlets stories are and are not picked up, and highlights them. It would be very cool to modify Google News to indicate these, maybe by adding small "possibly censored" icons next to each story title.


Identify PR-As-News Regurgitation (a Degurgulator?)

Apparently a problem on the increase is that of news directors presenting canned PR (e.g., from the White House direct to Fox News) as original reporting, often nearly verbatim. It would be great to mark these stories as such. One approach might be to compare the text of known PR producers (again, such as the federal government) to stories, and flagging ones that are very similar.


Expose Author Politics

The thought here is to counteract a particular writer's consistent bias by analyzing her topic history. This would apply to both an article's author, and any quoted source in the writing. For example, when looking at a news story at The New York Times or The Wall Street Journal, you might see "Bias" indications by each name, e.g., 1-3 red or blue dots showing them on a liberal-conservative scale. I'm not sure how to automatically determine this, though... Any ideas?


Expose Bias From Hidden Relationships

Relationships can tell us much about a person's world view, but not all relationships are evident in a story by or about them. Why not use a database like NNDB to allow readers to better understand a public person's social network?


Automatically Detect Baloney

Carl Sagan's Baloney Detection Kit (from his great book The Demon Haunted World) lists a number of suggestions for tools for testing arguments and detecting fallacious or fraudulent ones. Could we use some of the for automated story analysis? Maybe some are amenable to textual analysis:

  • Wherever possible there must be independent confirmation of the facts.
  • Encourage substantive debate on the evidence by knowledgeable proponents of all points of view.
  • Arguments from authority carry little weight (in science there are no "authorities").
  • Spin more than one hypothesis - don't simply run with the first idea that caught your fancy.
  • Try not to get overly attached to a hypothesis just because it's yours.
  • Quantify, wherever possible.
  • If there is a chain of argument every link in the chain must work.
  • "Occam's razor" - if there are two hypothesis that explain the data equally well choose the simpler.
  • Ask whether the hypothesis can, at least in principle, be falsified (shown to be false by some unambiguous test). In other words, it is testable? Can others duplicate the experiment and get the same result?

Finally, I wonder if it is possible to apply some of his common fallacies of logic and rhetoric to a structural analysis of a story:

  • Ad hominem - attacking the arguer and not the argument.
  • Argument from "authority".
  • Argument from adverse consequences (putting pressure on the decision maker by pointing out dire consequences of an "unfavourable" decision).
  • Appeal to ignorance (absence of evidence is not evidence of absence).
  • Special pleading (typically referring to god's will).
  • Begging the question (assuming an answer in the way the question is phrased).
  • Observational selection (counting the hits and forgetting the misses).
  • Statistics of small numbers (such as drawing conclusions from inadequate sample sizes).
  • Misunderstanding the nature of statistics (President Eisenhower expressing astonishment and alarm on discovering that fully half of all Americans have below average intelligence!)
  • Inconsistency (e.g. military expenditures based on worst case scenarios but scientific projections on environmental dangers thriftily ignored because they are not "proved").
  • Non sequitur - "it does not follow" - the logic falls down.
  • Post hoc, ergo propter hoc - "it happened after so it was caused by" - confusion of cause and effect.
  • Meaningless question ("what happens when an irresistible force meets an immovable object?").
  • Excluded middle - considering only the two extremes in a range of possibilities (making the "other side" look worse than it really is).
  • Short-term v. long-term - a subset of excluded middle ("why pursue fundamental science when we have so huge a budget deficit?").
  • Slippery slope - a subset of excluded middle - unwarranted extrapolation of the effects (give an inch and they will take a mile).
  • Confusion of correlation and causation.
  • Straw man - caricaturing (or stereotyping) a position to make it easier to attack..
  • Suppressed evidence or half-truths.
  • Weasel words - for example, use of euphemisms for war such as "police action" to get around limitations on Presidential powers. "An important art of politicians is to find new names for institutions which under old names have become odious to the public"


Conclusion

Well, that's enough for now. I hope these stimulate some interest or discussion. Also, I do plan to try coding some of them in the next few months.
Saturday
Apr232005

Photo Blogs, Wikis, and Memories for Life

After reading The File Manager Is Dead. Long Live the Lifeblog (a brief review of Nokia's LifeBlog application/system), I was moved to try to put down a few thoughts I've had on the topic of annotating photos. (There's also a larger story that I hope to bring out.) First, let's consider on-line tagging systems (AKA Folksonomies if a group is involved), esp. photo-related ones like Flickr. (My favorite non-photo one is del.icio.us/.) I'm not a regular Flickr user, but it seems that it lets you add information to photos, usually in the form of notes and tags. The problem (as I see it) with organizing photos using these two things is that they don't support context, which in this case meas expressing how the photo's subject relates to other things. With photos (and human activities in general), we usually care about WHO, WHAT, WHEN, and WHERE (let's ignore the WHY). But Flickr doesn't explicitly support this. What I propose is a system that merges the following ideas:

  • basic photo management, including uploads and thumbnail views
  • semi-structured annotations using WikiWords interspersed amongst plain text

For example, pictures of my family on vacation will have:

  • WHO - zero or more people taking the trip (family), and zero or more people at the destination (e.g., friends)
  • WHAT - the vacation event itself, and possibly a special event (e.g., dinner, party)
  • WHEN - the date and time
  • WHERE - scenery from the vacation destination

For photos taken during this vacation, I would use WikiWords instead of Flickr tags for all of the above, with optional narrative. For example, a photo at a party might have these words:

BobSmith
SueSmith
AlanJones
Florida2005Vacation
CocoaBeachFlorida
JonesHousehold

(I assume the WHEN information would come from the image itself, e.g., a digital camera's EXIF information.) It might also have some narration, such as:

Here we are at the Jones's house during the great party they had in our honor. You can see Sue hamming it up on stilts.

Other photos from the same vacation would have similar annotations. Like any wiki, the WikiWords would be made-up at first, but would soon be used to annotation other photos (i.e., emergent classification). At this point you might ask, how are the WikiWords different from keywords? It's a good question, to which I have a partial answer (I could use some help on this). The main ideas (and the ones into which LifeBlog fits) is that a) the words act as links not only to other photos, but to the other non-graphical content of a person's life, and b) the words themselves can have content. In other words, the WikiWords specify the context as a network.

Continuing the example, suppose I also maintained an on-line family journal, with entries in the same format as the photo annotations. Here's a sample of a few (they're in a simple plain text format - separated by dashes, ending with timestamps):

----
started Florida2005Vacation! SueSmith got the flu
(2005-04-01 14:05:40)
----
party at JonesHousehold (see the pics). fun! talked about SavingTheWorld with AlanJones
(2005-04-02 13:15:30)
----
AlanJones
Alan X. Jones
23 S. North Street
Cocoa Beach, Florida, 32323
321-321-1234
alan@gmail.com

married-to: JanJones
(2004-03-23 03:23:43)
----
...
----

(Note that this would be show in a browser, and each WikiWord would be a hyperlink. Also, you can see there appear to be two types of entries - journal and contact.) My thought is that the network formed by the WikiWords would provide a richer contextualization for all content, including photos. As a result I think this would aid search by providing multiple entry points:

  • WHO - content search using WikiWords
  • WHAT - ""
  • WHEN - date search
  • WHERE - content search using WikiWords, and geographical search using map, etc.
  • graphical search for related items using link perusal (think Touchgraph for your photos, with thumbnails!)

Naturally, getting the richness requires the effort of markup up photos and adding annotations, just like any similar tool. To address this I envision a rapid annotation tool that would let you view photos via thumbnails (ala ACDSee) and easily add WikiWords (or sets of them), perhaps via custom accelerator keys. In addition the annotation tool might support very fast creation of entries (the text between dashes), auto-completion of WikiWords, etc.

Whew! I think that's enough for now, but I will be following this up with more issues, ideas, related work, and how this generalizes to a system for annotating resources of all types, including URLs, books, PIM data, files, etc. For now I'll leave you with a few teaser thoughts/references:
Saturday
Apr232005

Lighted Laptop Keyboard

Another quickie: When using my laptop at night (for the usual - writing, reading, and programming), I often need to type a function key (e.g., F11 to toggle Full Screen mode in Firefox or Ctrl-F11 in IDEA), but I can't see the darn keyboard! This really screwed me over once - I was hunting for the function key and accidentally (I found out later) invoked the hardware disable for the trackpad! (FYI the laptop is a Toshiba Tablet.) So of course the idea is to provide lighted keyboards on laptops. Well, a search turned up (big surprise) an Apple Powerbook (article from MARCH 20, 2003). Apple (whose Advanced Technology Lab provided funding for yours truly during grad school - thanks!) has had some real design hits, and some misses over the years, but this was a good idea. Sadly, I couldn't find a current model that supports this feature. I really would buy a Mac laptop for my next purchase if they'd just provide a two-button mouse with scroll wheel functionality. I can not live without this. The Toshiba lets you configure a strip on the right side of the trackpad to simulate a scroll wheel, which I use for scrolling and for quickly changing the font size in Firefox.