Wednesday, December 8, 2010

object oriented design



Encapsulation & Abstraction
Encapsulation is the implementation: we can't access the low-level details of a class
Abstraction is the implication: objects interface each other at a high level.

In layman's terms (i.e. in a way that can have implications beyond coding):
Complexity is hidden (i.e. locked away; not just out of sight, but you are denied access to it) and (selectively) revealed as high-level information (i.e. useful information, attributes, functionality)


Interhitance & Polymorphism
Inheritance and Overriding are the implementation: classes can be defined in an efficient manner that re-uses code, despite a broad range of differences between individual objects.
Classes are organized in an additive modular hierarchy (such that each successive level of the hierarchy inherits every attribute and action* that the previous level does) - but each particular class may override anything it inherits.
Polymorphism is the implication: We can generally rely on children or instantiations of a class to have similar features as their siblings, yet that is not a hard-and-fast rule such as would prevent useful variations.
* do children also inherit relationships? Is there any other category of features missing from this list?

In a more general way:
Objects are defined in terms of increasingly specific categories, and any individual can define how it deviates from its parent (or archetype). This allows objects to have broadly recognizable features based on their lineage (i.e., their identity) without losing the ability to have additional features - even ones that conflict with the standard features.

Monday, September 20, 2010

Thursday, September 9, 2010

context aware interactions

here's a design that's almost ready for prime time: cell phones should respond to one another to determine what level of ringing noise to make. If several phones determine - via geolocation - that they're in a room together, and a few of them have been set to silent mode, the rest could reasonably deduce that they should also be silent.

Tuesday, August 31, 2010

modes of paradigm shift

1. Incremental
"Quantity has a quality all its own"
- Joseph Stalin
This is the kind of paradigm shift where a large number eventually becomes a mass. Often it involves emergence (where relationships or patterns form that weren't visible or present with a smaller number), but that's not strictly necessary.
Examples could include:
- the shift from "our strategy is to deny and ignore" when the number of customers/patients/citizens dying is negligible, to "our strategy is to accept and apologize" when that number gets to be noticable
- shifting from seeing the trees when you only understand a couple of pieces of a business's process to seeing the forest after you are aware of almost all of them.


2. Punctuated Equilibrium
This involves a quick shift, a sudden departure from the norm, an avalanche of change. This is most common in densely networked (i.e. highly interconnected) systems, and in systems with a lot of friction or resistance to change. If there is a significant force keeping the inside of an organization (physical or corporate) in the same state despite changing external conditions, then any failure is more likely to be a catastrophic one.
Examples could include:
- avalanches, especially as studied by physicist Murray Gell-Mann in the form of sand dropped onto a hill from a point (as in an hourglass) in "The Quark and the Jaguar"
- political revolutions
- the breaking of a dam

3. Replacement
An entity of organizational primacy or centrality is replaced by another, but the original isn't completely destroyed nor removed from the system. This indicates that the system as a whole is more structurally stable than any of its parts, and implies that the new central entity will, itself, be replaced.
Examples could include:
- the cultural centrality of radio shifts to TV in the mid-1900s, and newspapers to web-based news in early 2000s
- control of the planet's surface and atmosphere quality was determined by bacteria, algae, and other single-celled organisms for most of history, then was set by plants, and is now in control of humans.
-

Friday, August 6, 2010

refactoring

Just occurred to me that my idea of refactoring - showing the same set of components (in different arrangements, or better: from different perspectives) as different objects - is probably born from the interactive tesseract visualizations I played with as kid just beginning to explore the internet.

this isn't the exact one but fairly similar: http://www.cut-the-knot.org/Curriculum/Geometry/Tesseract.shtml
and wolfram alpha has a decent one too: http://mathworld.wolfram.com/Tesseract.html

Props to Owen Schoppe for helping me see the value of the idea by showing me the video of garrett lisi at ted.

Thursday, August 5, 2010

standing in the future

As we try to step into a stable-state society (does it exist, or will it be more of a slow crumbling?) I wonder: how long does a buried fiber-optic line continue to function without maintenance?

Wednesday, July 28, 2010

economics and behavior

Most people have a naive view of money based on the model of the household budget. They're not used to thinking about money as an artificial token of exchange backed by the totality of productive capacity in the economy, whose purpose is to allow people to incentivise others to do useful things for them, such that if an accounting imbalance makes it difficult to pay people to do the useful things they're capable of doing, one way to get them working again might be simply to create more money.


Economist: Keynesianism... what is money?

A profound - and fairly succinct - expression of an idea I've been struggling with: how can we see money as something other than stuff (which it stopped being even a stand-in/symbol/representation of in the '20s or '30s with the end of the gold standard)? It's more like a catalyst, and it's definitely a form of communication.

- the government is responsible, alongside others, to incentivize people to work. (yeah "incentivize" is a neologism. get used to it.)
- money is both a store of value (though this function may be vestigal??) _and_ a tool for use in creating value
- the public doesn't get this, and even those few experts and/or politicians who do aren't super sure what to do with/about it.


An interesting observation from the comments: politicians can't admit to this deep/subtle understanding of money when the masses don't get it. Thus, we as designers need to help bring this new perspective into the popular consciousness before our governments can act in accord with the attendant reality (which is still less than perfect - I'm definitely remaining open to a better one!)

Monday, July 26, 2010

customer service #fail

Here's a short email chain that demonstrates an extreme terrible interaction paradigm. It's really making me upset, so I though I'd vent by posting it here. Godwilling, there will be no continuation to keep you updated about!

From aetnahealth@...[redacted] to daniel erwin

Hello,

For your protection, the content of this message has been sent securely by Aetna using
encryption technology. For more information about Aetna's use of encryption please visit
this website http://www.aetna.com/aboutaetna/safeguard_data.htm.

Steps to open your secure message:
1. Please double click on the attachment labeled securedoc.html to begin the process of
decrypting your message.
2. When you open the attachment you will see Aetna's secure envelope. This envelope
contains your encrypted message. There are two ways of opening the envelope.

Preferred method:

By clicking the "open" button you will be offered the opportunity to download a
small application (applet) that will enable you to open the message directly on
your computer (c: drive). By choosing this option and selecting "always" any
future messages that you receive from Aetna will be opened on your computer
without further installation. This method may take a few extra minutes initially
(depending on your machine and the speed of your connection to the internet), but
overall will result in faster / more efficient message retrieval.


Alternate method:

If you cannot, or choose not to download the application click on the link
labeled "here". This option will allow you to open the secure email without having to
download anything to your computer, but may result in slower retrieval of your
secure message.


Saving your message:
The securedoc.html that you clicked to begin the process actually retrieves a key from Aetna
which is used to open (or decrypt) your message. The key will expire in 90 days. If you would
like to save your message for later review, you should save a copy of the unencrypted message.
How you save email will vary depending on your email service. If you are unsure, please use
the help function of your email service and look for topics like: saving, saving messages, storing
messages.

If you experience any problems, please contact 1-800-237-7476, option 4 (Secure Email)
during normal business hours; 8AM to 6PM E.S.T.




This e-mail may contain confidential or privileged information. If
you think you have received this e-mail in error, please advise the
sender by reply e-mail and then delete this e-mail immediately.
Thank you. Aetna
securedoc.html securedoc.html
143K Open as a Google document View Download Reply



From daniel erwin to studenthelp

show details 3:42 PM (0 minutes ago)

Hello,

For your edification, I'll explain in detail how and why I failed to open your encrypted message. For more information about user-centered design and how to make software that's easy for people to understand and use, please visit Boxes and Arrows Interaction Design Blog

1. I don't care enough about this one message to want to go through multiple steps to receive the answer. I asked about the end-date of my policy, not whether I'm covered for some horrible STD - I don't care if you post it on the front page of your damn site! Don't make me work for this - that's almost as bad as waiting on hold for 20 minutes.

2. I don't want to download anything and save it on my hard drive. Don't you realize this is how a hacker would compromise my machine? And I won't download it even to save a few minutes of getting the info another way, because I have no reason to believe your message didn't originate from somebody who picked up an Aetna employee's laptop from the back of their unlocked Honda in a bennigan's parking lot. In fact, this seems pretty likely, considering how strange it is that you're trying to use this odd method of showing me an encrypted message.

3. It's perfectly secure - and a widely-recognized standard - to send me a link that says "Please login to view your message."

4. There's no way I'm going to call your tech support line to fix an email. I only did this via email so I wouldn't have to get on the phone in the first place!

Good luck, and goodbye.
Daniel
- Show quoted text -

social gaming

Zynga - all the rage because of its fast growth and huge monetary value - is building on some of the same principles as the persuasive technology and behavioral economics trends. A new york times article today mentions that (at least some of the) users pay for virtual goods in games because they have so little time that it is a good way to connect and share with (apparently) relatives and friends who spend their time racking up points the hard way.
This is the same phenomenon that's been driving the gold farming industry in WoW, Everquest, and other high-investment games for more than a decade, but Zynga has figured out how to use the Facebook context to lower the barrier to entry and return some level of communication/sharing/togetherness for the investment of just 5 minutes a few times per week.
I've never played such games (for fear of getting sucked in - but maybe it's worth a few weeks of my life to understand such an important trend more deeply?) but I suspect that the relatively low investment required by these games results in a lower sense of community and less input into the game itself by the players. It seems the players would be less likely to form guilds, to build new levels, or to plan to be online all at the same time to collaborate, compared with your average MMORPG players.

NYT: Zynga next Google?

But it's impressive that Zynga has figured out how to monetize it. They've captured this idea that players will pay to have the game represent them in a similar context and with a similar status to family members and college friends. Basically, this is like paying to be represented as having empathy (like the $20 to get into a hip club on saturday night)? to facilitate communication (like a Hallmark card sent to an aunt)? Or is it more obvious than that - is it a space/medium/excuse for togetherness (like a game of Monopoly among any group of pre-adolescent acquaintances)?

In any of those cases, I'll argue that the next step for this business model is to incorporate it into a physical space. Like starbucks but with more emphasis on meeting and interacting with strangers (for even a shy person or someone without any particulars in common to get started talking to others about); like a bar or club without the emphasis on alcohol, dancing, and finding a mate; like facebook but embedded in a physical space. I'm working on the multi-user interaction model, so call me if you have the physical space part underway.

Tuesday, July 20, 2010

html customization

I've been dreaming of making an in-browser GUI-based html editor/creator, with the goal of making front-end web development as accessible as using InDesign or Illustrator (hopefully even more so!). I'm hoping to conduct some user research in the next couple weeks to answer a philosophical question that comes up at this point: is the interaction metaphor of the adobe creative suite (selecting tools from a toolbar, using them at the end of a mouse to adjust objects in the document window, pressing "w" to see the end-user view) more intuitive/natural than the HTML interaction model (typing into a text editor, along with CSS into a separate window, and switching to a whole different program (if not two or three!) to view the result)?
But in the meantime a more pressing question is: has someone already created this functionality?
I have a vague suspicion that HTML5 includes this functionality - in my opinion it should! (see my report on end-user programming: http://www.dqe1.com/files/End-UserProgramming6.pdf ) But from what I've seen it's only vaguely defined so far.

http://blog.whatwg.org/the-road-to-html-5-contenteditable
- "contenteditable", which refers to the kind of rich-text editing window I'm typing into now at blogger.com - is, today in 2010, fairly fully implemented and supported across browsers
- "designmode", which refers to what I've described (i imagine), does not exist.

http://dev.opera.com/articles/view/rich-html-editing-in-the-browser-part-2/
describes in detail how to implement that/this text editor. Playing with the most advanced one I could find around (at okcupid.com), there's 0 drag-and-drop or other mouse-enabled editing, and while the buttons up top created only lists, line-breaks, and photos, typing in custom html rendered just fine in the box. But it didn't save to the server!

http://ljouanneau.com/lab/html5/demodragdrop.html

I've got some ideas for how to make this work and I'll detail them in the next couple weeks, but for now here's a few of the issues I'll need to clarify before the interaction can be specified:
1. which attributes will be editable?
- definitely size, position, color, and all the font-y details covered in a rich text editor
- to what extent does that require supporting complex/arbitrary and confusing/abstract concepts like float, margins vs padding, inline vs block, etc?
- javascript behaviors would be great, but that's probably more of a version 2.0 thing.
2. To what extent is it safe to let users create their own html?
- user generated html can be used to hack/exploit whomever downloads it later, if not also the server on which it's being saved
- I know this is probably why the example I tested above didn't save to their server.
- obviously there are limits but (one of these days when I get into javascript programming mode) I know there are ways to ensure that some useful functionality is available without compromising the host or eventual viewers
3. what's the use-case?
- basically, all my designer friends who have asked me "could you help me make a website?"
- everybody who's paying $100s for dreamweaver to use it as an html editor

Monday, July 19, 2010

invisible data storage

I'm far more involved in customizing, maintaining, and learning more about my software than most people, but I got a glimpse of the casual user's experience today when I briefly thought firefox was doing more than I knew it could.
I had to reinstall my operating system a couple of times in the past few months, so I expect most of my browsing history to be missing - but when was searching for some PHP programming help, I saw a purple link that I was sure I hadn't visited in over a year. While I remembered fairly quickly that I had visited it more recently, I was thrilled by the thought that FF had backed up my history online.
Now ordinarily I'd be pissed that they were invading my privacy this way (in fact I generally download and store on my own hard drive most of the gmail/gdocs/calendar data I wouldn't want to become part of the public record) - but for this functionality I would be thrilled for Mozilla to track my browsing history and help me either find or avoid the sources I've used before, depending on my intent.
I think the primary difference is that I have a model for my personal data in calendars, documents, and email. I've had those totally under my control, and I know all the details of what it looks like and what's in it. But with browsing history, I have no concept of the database structure, the kinds of details that are involved (and which are left out), nor how/when/where I would use that data in any other context. I think this is what keeps me from being upset about it: it doesn't really seem like *my* data, and almost not like anything at all - thus if Mozilla can turn it into any sort of insight at all for me, I feel like I'm getting that for free!

Wednesday, July 7, 2010

references & bibliography

a friend of mine - an academic historian - once mentioned that there is software specifically for tracking sources, quotes, and footnotes while you're composing a paper, and printing out a properly linked and formatted bibliography. (this is probably hidden somewhere in one of msword's sub-sub-submenus)
For years I've been occasionally daydreaming about displaying a universal bibliography in the form of a network graph (I've never gotten very far because I can't decide whether to have the links show explicit references, quotations/stealing of text or phrases, stylistic influences, shared subject matter...) that connects all the books in the western cannon. But it would be far simpler to perform this operation for a relatively finite set of books like the bibliography for a single paper.
The program could draw from a database that already lists all the references in the bibliography of published books, or rely on the user to scan in and OCR a few pages from each of the books. The resulting web would give a quick visual sense of how broadly the writer has researched or what state the field is in - if all the references are highly interconnected, it's a well-defined field and/or the writer hasn't performed any great synthesis, while an unconnected graph would indicate original research and new insights (assuming the database the links are drawn from is complete and accurate).

Sunday, June 20, 2010

video games as art

Great article in the NYT today - http://www.nytimes.com/2010/06/20/business/20unbox.html?hpw - about where video games are and are going.

One particularly salient point: where literature can pull you in (i.e. to make you feel sympathy, even empathy for horrible raskolnikov) video games go a step farther by literally making you complicit (you make all the detailed decisions about how to get those dead bodies across NYC)

Clearly there is a need for something to be done... too bad I'm focusing on a different sort of interaction design.

Monday, June 14, 2010

I recently got a new phone and glanced at the Facebook EULA when I was installing its app. It's pretty horrific as they claim an irrevocable license to whatever I post.

"
Sharing Your Content and Information

You own all of the content and information you post on Facebook, and you can control how it is shared through your privacy and application settings. In addition:

1. For content that is covered by intellectual property rights, like photos and videos ("IP content"), you specifically give us the following permission, subject to your privacy and application settings: you grant us a non-exclusive, transferable, sub-licensable, royalty-free, worldwide license to use any IP content that you post on or in connection with Facebook ("IP License"). This IP License ends when you delete your IP content or your account unless your content has been shared with others, and they have not deleted it.
"

The crazy part here is that last little bit - the content will remain on the network so long as everybody you shared it with doesn't click the "delete" button on it. Has anyone ever seen such a "delete" button for other peoples' content?

Tuesday, June 1, 2010

adhd tracking

“It’s essentially a dull, boring task,” he said of the Quotient system, “so do you want to medicate your child to pay attention to dull, boring tasks?”

- http://www.nytimes.com/2010/06/01/health/01attention.html?pagewanted=2&hpw

Dr. Martin H. Teicher - a researcher in attention deficit - uses a system that tracks eye, head, and leg movements, in addition to posture and response time and accuracy while a participant is responding to a boring, meaningless, repetitive task for 20 minutes. The test aims to be a more objective assessment of ADD and ADHD, and returns a graph of one's state of engagement: "Green marks attentive, yellow is impulsive, red is distracted and blue is “disengaged.”"
Why not use a computer's built-in web-cam to produce an (admittedly imperfect) approximation? This could not just help people pre-diagnose themselves, but more importantly understand and control their own attention/focus. It will be interesting to see studies on whether and how an individual can affect their own level of attentiveness - my guess is that, for those who believe it can be done, they will learn to follow a practice much like a Zen monk who eventually learns to be entirely still and focused at all levels of consciousness (and even beyond?)
Linking this data to one's dietary intake would probably reveal a high correlation and significantly decrease the need for artificial stimulants.

news

I'd like to form a news-reading group as a way to combat information anxiety. I'll read the New York Times and the Economist, someone else can keep track of gizmodo and engadget, and a third person will pay attention to the science rags, etc etc....
We'll all post the most interesting and relevant story or two on FB, and - assuming I ever socialize enough to make this feasible - we can be confident that stray trivia or current events needed to solve a design project or win a friendly debate are likely to be in the room.
This is not too different from what I see happening on my facebook feed this morning - just that it would be a little more coordinated. Maybe I could link my web browser with several other peoples' and see stories (or sources) that nobody in my group has looked at yet (probably that the general population [or even better some specialized population(s)] has indicated is worthwhile) highlighted or pushed towards the top of a list.
Or I could create a list of all the world's news sources and invite a few of my friends with a similar viewpoint to sign up and select the ones they're responsible for. The list would prompt each of us to read stories, type in a summary of what we've been reading, and keep track of what %ge of the content we've been covering.

Friday, May 21, 2010

nudging interactions

Even reading just the introduction to "Nudge" by thaler and sunstein inspires me to recast interaction design as the art of offering unlimited options in a manageable way. Or, equivalently, to recast their book as an exploration of how to embody Cooper's "novice, intermediate, expert" framework for interface design (which provides for multiple depths of learning-curves -> multiple densities of information for different user types) in other contexts.

While I'll probably soon find that they authors have already clarified all the following in the body of the book, I'll lay out my thoughts before they get all tainted and warped:
- Nudge asserts that there is some overlap between traditional (economic) costs/incentives and "cognitive effort" (and presumably other various) costs/incentives - but I think this might better be summarized simply as time. Cognitive efforts (research, analysis, interpretation) always require time, and other activities that benefit decisions - while they partially overlap cognitive efforts (reading, identifying what to read, formulating the question to ask someone) - require little or no cognitive effort (asking for an opinion, looking at more choices, sleeping on it) but always require time.
- Another way to approach this is that people just don't pay attention. Perhaps it should be a core principle (of industrial design? interaction design?) that the design should support the greatest range of awareness possible. This would mean that the design provides rich, pleasurable functionality whether the user is a total novice with zero interest in the item itself or a total geek who documents every aspect of the experience cycle. i.e. let the device play as big or as small a part in the user's life as the user may desire.

Wednesday, May 19, 2010

internet privacy

I want to hold some kinda workshop/collaborative brainstorming to help sort out ways to build confidence in a web anonymity and/or verification bank.
A list of issues I've personally seen this apply to:
- how to get gang members and/or victims to trust that a CeaseFire crowdsourced neighborhood activity website isn't recording their identity?
- what's the right level of detail to share in a diet/exercise monitoring group app?
- in Facebook, as well as every mobile app project I've designed: how to give users detailed control over which bits of info (profile, activity, network, etc) are shared with whom (public, friends, specific individuals, custom groups), without overloading them with a complex decision tree?

A list of participants to get all the necessary viewpoints:
- somebody who has worked for Verisign or any of its ilk
- a couple programmers
- interaction designers (of course)
- one of those behavioral econs, or anybody familiar with the psychology of trust
- somebody from a social networking anything (Ash Bhoopathy?)
- a couple average users
- somebody who doesn't use online services because of trust reasons
- somebody who's had their identity stolen

Thursday, April 8, 2010

object oriented design

Combining the basic idea of a relational database with the recursive representation of the object model as found in firebug's dom navigator would allow a more intuitive access to sato's design information framework.

Sunday, April 4, 2010

incentives

I'm inspired by coffee, with a target thanks to this article on food-stamp-using hipsters:
http://www.salon.com/life/pinched/2010/03/15/hipsters_food_stamps_pinched/index.html

I'm enthusiastic about the benefits of local/organic vegetables - it seems only positive that the government is sponsoring such things, in contrast to its characteristic (and - alas - still vastly larger) subsidies of monocultured corn and beef.

Could this be a useful model for how to address some of the deep problems of the US system? In other words: what if individuals could vote on agriculture policy with their share of the government's pocketbook? The core issue it would address is how helping the poor leads to the centralization of power and decisionmaking, and from there to (often? or generally?) poor quality if not outright corruption. And it does this basically by putting the power and decisionmaking back in the hands of the millions of individuals - advertising is effective, but not nearly as corrupting as lobbying!

And how could we expand that model to art, urban planning, or - god forbid! - healthcare? It seems that some more obviously governmental functions - like defense, international relations, and (perhaps) education - would remain centralized, but we could certainly learn a lot about those by similarly distributing the decisionmaking.