Writing to Somewhere: Good Moves

 

Michael Redmond playing Go.
Michael Redmond, a master of the game of Go, considering his next move.

It’s not that I’m on fire. Certainly not. Nothing is in my way though. That’s a problem. Nothing is not helping. As the poet David Antin once said, “You can’t push off from empty space.”

In this spare landscape, with little to see, the fine grains are the only thing the eye finds. It could be worse to be sure, much worse.

The air is turning yellow, like phlegm. That’s just the way it is. Eventually, black. This is well-known. It is well understood. Not much more can be said about it. So enough of that.

I’m here to help. We’re here to help. We’re here to do what we can. Or so it is for me, and those I love.

Another day passes, and I work on indirect things. I can’t measure it as ‘getting things done’, but I’m doing things that matter.  I know this intuitively. I am working towards something, but can’t quite tell what that something is. Still, my efforts are  not coming from nowhere: I’ve worked hard to get “here”. As mentioned in Michael Redmond’s wonderful commentary on the games between Go master Lee Sedol and the AlphaGo. When it comes to master level play, intuition is a feeling one must rely on when you go off book, and it is derived from decades of working hard but is not available as a rationale.  It is trustworthy because it is built on prior knowledge and work. Still, he later says (paraphrasing) “While I don’t know where this will end up, each of the moves are good”.

Writing to Somewhere: Pace

I have listened to Erik Satie’s music for much of my life, having been introduced to it through John Cage’s “Silence” and other writings.  In particular the lively versions by Aldo Ciccolini.  This morning on the radio I heard a particularly slow version of the Gymnopédies by Pascal Rogé and then I went and found a slower one by Anne Queffélec here http://www.youtube.com/watch?v=xGH8Zir2Q_Q

I think of these as hyper-modern, contemporary, even if nostalgic.  They beg to be about better era of the past, even as you can hear the pain and uncertainty in them.

But it’s the pace of them that I long for, versus my modern day urgency.  Bombarded by repeated postings on Twitter and Facebook of the tunnel-vision of material similar to what i’ve read before or has been read by people who I know, I feel the relentless pace of it, and it is this that this music illuminates for me by contrast.  The quiet and thoughtfulness… The time it takes to ascertain and engage in a moment.

Writing to Somewhere: Software as Art

The dominant aesthetic of software is utility, as distinguished from say truth, which is to say, art. As an artist, here, I wish to think about software as art, rather than as I would in my other occupation as CTO.

Typically, software is for business where performance, cost, scale and a variety of utilitarian goals are foremost, all aimed at making software serve business. Software may, like paint, be useful. Where paint can be used to coat a house and protect it, it can also be used to make paintings. Paintings can be used to decorate and cover holes in walls, but they can also be illuminating.

Software-as-art is something different than software-as-getting-things-done. (see: Ad Reinhardt’s Art as Art)

I’m writing this as a way to find a way to make the software I want to make. A software that is not about utility but says something else.

Some Art-Moves

  1. An Art app in which you distribute it as a mobile app via the AppStore. The app is only to provide an awareness that one is holding this thing in one’s hand, and a sense of loneliness. Rather than say metaphysical connectedness and progress.
    How does one price it? Of course it must be free.
    The store also un-ironically and conveniently bypasses galleries.
  2. Writing & Compiling Code as a performance. Like writing about writing, useful and personally illuminating. It also involves the theater of teams and interpersonal dynamics and a variety of experiments (e.g. pair programming, and open-source).  I’m not really interested in this, though I could imagine a theater of syntax errors, and Godot like wanderings on the road to compilation. If you don’t care about utility per se, then why would care about syntax? What is a bug?
  3. Running Code: code that runs slowly. There’s more here. What happens when it runs? Is it visible? Are objects exchanged? Between what and what? What is represented?  Is it viewed only with a debugger —  How is it translated for viewing?  Consider software as an analogue of paint, its not the paint that matters, but what it represents… But paint is analog and unique… and software can be that way too. And each encounter with it is unique, even if the painting is unchanged.  But paint is purely visual whereas software is not so constrained.
  4. Running Code: code whose sole purpose is to make the computing hardware get hot. Perhaps heating and cooling in some pattern.  Code that exercises a chip and its components and interconnected hardware in some way… Then using a microscope with an infrared view of the chips RAM so that you can see that a flame has been drawn by the action of exercising memory addresses according to the actual physical location of the circuitry. And alongside this setup, a candle with a real flame.
  5. Running Code: on Amazon’s global public computing infrastructure (AWS) move software from server to across the world so that it spins counter to the earths rotation, as viewed from space.  And then spin forward…  And then back again… repeating…
  6. Running Code: create objects called “observer” around areas where human rights crimes are occurring, so as to note and observe and record these. (This is weak. Twitter enables immediate reactive speech, and Tor makes it’s possible to view and communicate when the computing infrastructure is about control of your views and communication. Art that witnesses is valuable, but what really is a useful form of this (utility being ok in the service of freedom). )
  7. – taking part & interacting with politics…  (parodying)

The Sadness of Social Media – The “Now” Button

Before there was “social media”, far before the Facebook “like” button,  Allan Kaprow, the ‘father’ of performance art,  created a set of scenarios for participants to perform called “Comfort Zones”. In one of these scenarios, two remote participants, when they feel closest to the other, call the other on the phone and say only “Now”.

from Allan Kaprow, Comfort Zones, 1975
from Allan Kaprow, Comfort Zones, 1975

Now, some 35 years later, millions of people do this performance daily.  We press the “like” button, we comment, we network, we ‘link up’, we ‘connect’… but as in Kaprow’s work, are we really any closer? Every time we say “now” and get closer to our “friends” and “acquaintances” by clicking on the “like” button, or commenting on a “status line” we are saying “now” just as those participants are when the feeling is strong enough.

from Allan Kaprow, Comfort Zones, 1975
from Allan Kaprow, Comfort Zones, 1975

In another of Kaprow’s Comfort Zone scenarios, the two participants are on opposite sides of a door and without being able to see the other. They are to press themselves on the door and try to align their selves to the other on the opposite side, whom they cannot see. They are to imagine or project what the other is doing and arrange themselves to be what they hope, or expect, or feel, or intuit to be in sync.  Once they feel they are aligned they are to say out loud, so the other can hear, the single word “Now”.

Are the participants friends or strangers? Or something in between? Or something else entirely?  Are they closer as a result of their actions and exchanges? Do they understand each other better?  Do they feel closer?

I wonder and worry over what it means to be a friend… and the verb “to friend”.  Who are my friends? And who are all my many acquaintances in all of the many worlds I’m in contact with: the business world, the consulting world, the technical world, the marketing world, the legal world, the art world, and my local drum circle to name some… So many careers, so many relationships.  And yet I feel immensely lonely and isolated.

But know that I’m working from my apartment, on a social media related start-up of my own, and that I work mostly with people I’ve never seen and know only through email, phone, and contracts, through  resumes,  references and reputation.  And they are part of a “network” of acquaintances to which I’m linked.  Acquaintances. I am closer to them then utter strangers, that is to say, to those I’ve never met, to those I don’t notice when passing on the street, and those I know only through the news, TV or YouTube?   Am I much closer to “the people I know” than two folks standing on opposite sides of a door?  Pressing on opposites side to be closer but they do not, cannot, and agree to not open the door?  I wish so much to be able to open that door.

I mean, between you and I, look, we aren’t really friends…. or maybe you are a friend, or maybe you will be… and maybe for only a time.  Maybe you are my enemy?  Maybe you don’t even think like that at all…

Words are tossed around,  there is social media language and you hear it from social media practitioners, in a sociological sense, of “community”, “relationship”, “friendship”, and so forth…  And that’s in contrast to another different language that floats out there about love and interconnection and democratic power… I want to be a closer friend in the loving sense, but this social media stuff is not helping, and I even find it confusing.  That is the languages and realities are not one and the same, and so while there is “community” and empowerment of people and groups on the one hand, I am no closer to you.

As in Kaprow’s Comfort Zones as in social media, the participants position themselves and seemingly connect… they “like” and comment and network and link up and essentially say “now”.  Is friendship and intimacy a state of alignment, being in conformity with, a synchrony with, a nearness, felt near, actually/physically near, enmeshed?  We seem to be enacting everything of friendship but are we friends?  It’s sad and beautiful all at once.

The Idealism of the Right is bad for Americans

Nearly every talking head on Fox Business news is going on with some shtick about how the left is “socialist” or “anti-capitalist”. Their attitude is only causing harm, because they believe that capitalism is perfect and the market is perfect. For instance, John Stossel reacts to forcing an egg farm to recall 500 million salmonella infected eggs by saying (paraphrased), “Let the market decide. That company will get a bad market experience, and people won’t buy their eggs, and then they’ll change their practice”. It’s more important to him to have pure free market, then to save some people from dying from salmonella.

Speaking as someone on the left, I think capitalism is pretty much the best economic system we have, but it’s also a flawed one. And that recognition is the difference between me and dangerous idealism on the right. Their idealism is going to hurt people.

More recently, after the Obama election and the New Town massacre, and listening to the promotion of how good it is for everyone to own and walk around with guns, and how the 2nd Amendment helps fend off an out-of-control government, I feel I am hearing the  same idealism.  A sort of idealism that seems has lost it grip with reality.  I hear arguments that are images in which embattled good folk are fending off home invasions with the shotguns in their door-side umbrella stands, and rapists being shot in the doorways and kitchens.  As if home invasions are happening to say 5% of households all around us every day, or that every day women are shooting their rapists.  As if the these practices are in such obvious current use that it definitively proves that removing guns will have a huge impact on our daily safety.   Cap this with the ultimate bogey man of an out of control government and the 2nd Amendment’s reasonable calling out that risk,  and you can see how an unrealistic idealism is in play solely for the purpose of fending-off fear.

I’m using ‘idealism’ in the sense of leading with ideas rather than material facts, where ones emotional state is driving a set of ungrounded or unproven ideas, and where there is no interest in working on finding a best solution. In this mode, there is little interest in investing in discovering material facts, identifying realistic scenarios, and testing possible solutions.  Idealism is the hammer forcing the preconceived answer into every question. It is not a good basis for discussion, let alone policy. It’s been used by the Right in American political speech to justify name calling: “liberals”, “socialists”, “anti-capitalists” and other demonizations while dressing themselves up in what they imagine to be a good life of freedom: “free-markets”, “unrestricted capitalism”, and no restrictions on guns.  It’s got to be tough working from that fearful place.

Startup Founder: Managing Fear

I’m feeling immense waves of fear as we move to a beta release for http://www.tweettronics.com. Some of the fear is irrational, and some of it rational. The rational stuff I handle through traditional risk management: identify the fear, convert the fear into clear risk statement (So, the fear that our system will be crushed by hackers and our business will be destroyed becomes one or more risk statements such as this one, “Risk our System database will be corrupted by hackers”), we look at the impact, we find evidence that supports the existence or likelihood of the risk (have we done enough architectural process and QA to know about this possible risk?), we look for ways to mitigate the risk, we look at how much time/effort/expense is needed to do the mitigation against the impact of the risk, and we prioritize our response. The non-rational stuff I constantly address at a personal level by being aware of it: untangling it from the excitement of launching a business, respecting my fears for they may contain real concerns that have to be managed, and fears that are driving from our particular psychological makeup.

Fears are useful in helping to recognize real concerns. But fears can be unhelpful in that they may cause you to avoid taking action, delay addressing real concerns, and make you feel miserable. In a competitive business you don’t want to be avoiding or delaying anything without due consideration, and fear is not consideration. So learning to feel, unpack, and manage your fears is something you can expect to spend some time on.

Dealing wit hfear is not easy. And it’s especially difficult if your doing a startup on your own. It helps to have support of your team, partners, and friends. With the team you have to get to the rational side, and with your friends you can get into the irrational stuff without causing too much havoc. But it is truly difficult.

I’ve seen founders fail when they are afraid of their own weaknesses and inabilities, so they cannot rationally deal with their shortcomings. It jeopardizes the entire effort when this happens, because they are not managing themselves, so they cannot manage others or the situation well.

Risk Management is an effective process for dealing with fears and risks in a clear headed and rational way, and it has some useful ideas that can be applied by anyone to manage their fears, especially a startup founder who faces so many different risks and so much responsibility.

Going Open: Citizen Openness and Twitter’s Moment in Social Media

I saw a tweet aimed at Tweettronics.com, a startup that aims to report on conversations in online media. The tweet warned that all your conversations are being recorded. And indeed they are. And for the most part, I think it’s a good thing. Whether up front, like in Twitter, or via more devious means (which Tweettronics does not do), a good share of your online conversations are available for recording.

People will vary on what matters to them, but the stuff that matters most, I think, is to protect your ownership identify, which connects you to your healthcare coverage and ownership of accounts and things. (“ownership identity” is the identity you must be able to assert and which aligns with documents that show you own something, like a bank account.).

The most valuable thing Twitter provided in the development social media is that by default, user conversation and the access to it is open. Unlike Facebook, where privacy and mutual friendship are considered necessary, Twitter began with openness and followers. Where one defaults to an intimate private conversation (ideally), the other defaults to open conversation with anyone who is interested (and it’s not a mutual interest or regard). The result has been that with Twitter we have a playground for developers and citizens to figure out more about how they interact and what matters to them.

I’m not sure how long it will take, or even if, this openness will end. As I noted above, ownership-identity is perhaps the only thing at stake in transparency, and privacy is a poor security hack that only makes it difficult for someone to lose control of their ownership identity, not impossible. And in the current zeitgeist, transparency and openness seem to be values that combat the downside of privacy: that we all can see and engage with each other (more or less) in the hope that as equal citizens we can polilce each other and find the general good. As opposed to privacy’s tendency to seclude of power and foster non-democratic decision making.

Open access to conversations can be a good thing, and I’m thankful to have the opportunity to explore them.

Competing with Craigslist

A number of startups have contacted me with plays to compete with Craigslist. Craigslist is dominant in providing localized exchange of goods and services. They are free, they have a huge brand and audience, and (from the outside) they appear to be a relatively efficient organization. The competing startups are either trying to out Craigslist Craigslist or they are going after parts of the whole by focusing on a particular commerce area, like rentals. Those that are going whole hog had better have not only superior features for entire range of commerce that Craigslist covers, but have to be just as consistent as Craigslist is in their usability. And Craigslist’s minimalist design, while it doesn’t do much, it’s easy to get and it’s consistent across the site. It’s a simple form for posting all types of requests — almost always the same no matter what is being exchanged. For a company to take it to a higher level of use and functionality a significant investment is required, and so far I don’t see any threats to Craigslist of this sort.

A better strategy I’m seeing now is from the startups that are those focused on just a particular commerce segment and doing it better than Craigslist. In the long run, they have a better chance in that they are better and free to the consumer. The “free” part of course is a tough business decision at any time, and especially now, but against Craigslist you have little choice. A couple of interesting players in this arena are: 11squarefeet which focuses on a new sub market of renting: office and desk subleasing, and okCupid which is free online dating done extremely well. Okcupid is alot of work and thus must have relatively high development costs so it remains to be seen if they can exist, but they can give Craigslist free dating a run, let alone Match, eHarmony, et. al. (Since an automated dating site (chemistry.com) matched me up with my ex-wife (really), I’ve been more than cynical of these…).

It remains to be seen whether an entrenched player like Craigslist can be removed by the strategy de jour: a mashup + better usability + a market-focus = success. Or do we really need to start investing in harder technology that raises the bar of service and efficiency. An example of such investment I’ve seen is Siri which attempts to up what can be done by using bleeding edge technology. This is an example of a number of AI-ish plays that are seeking to leverage advances in NLP . We may be reaching the end of Web2.0 when the strategy du jour is no longer so easy to succeed with. With that said, Craigslist, by being community focused, comprehensive, and free, is a tough combination to best by any means.

Testing the Frontend: Automating Web & Javascript Testing

Testing javascript heavy, web frontends remains a hard problem in software development. Everyone wants to do it in order to be agile, but few if none can really do an ideal job of it. Some key reasons they want to automate are:

  • allow developers to quickly smoke test their work before they commit it
  • support extensive, comprehensive functional testing

The reasons it’s hard to do are twofold 1. the frontend in a new product development is always in flux, and 2. there’s no great tool for quickly creating robust test scripts that can be automated. In particular, while there are some recorders for the gestures on the frontend, they usually fail in certain ways that demand one to further generate custom test scripts for that tool to run. It’s extra work that often becomes outdated on the very next build.

Generally, good agile practice demands lots of test code to support quick and reliable bug finding and fixing early in the development cycle, and not sometime later. So good teams will make some compromises to their agile test strategy to get as close as is reasonable to ideal without it becoming non-agile. The typical strategies are:

  • create unit tests for all infrastructure, including going up into the javascript client as far as possible, but not automating user interaction
  • create testable javacript widgets (look and feel) that can be instantiated into test pages that can be quickly looked at by a developer or tester

Some tools that help automated javascript and RIA testing are:

  • Windmill
  • Selenium
    • Provides multi-platform testing and recording
    • Downside: recorder doesn’t handle all circumstances so programming is required, and test scripts will end up with dependencies on DOM structure
  • Dojo
    • Dojo is a javascript library with testable widgets, and a testing infrastructure for scripts
    • Provides an experimental testing infrastructure, DOH, with a recorder

    All three provide recorders. though Selenium is probably the most mature. They all suffer from issues in recording where the auto-generated scripts can often fail, require knowledge of XPATH to sort things out, and are not easy to incorporate into development processes so these scripts are maintained easy.

    The key thing here is that it’s tough to incorporate these tools, which are themselves less than ideal, into workable processes that developers want to do and that support the flexibilty product designers need on the frontend. The upside is that if a working compromise can be found, the development will ultimately go faster & cheaper, because issues can be found sooner.

    The long and the short of it is that if you want to do an agile process, it takes time and planning but the results can pay off. In the end, simplicity on the frontend pays off not only with users (typically) but also in development costs and time.

    Limitations of Trac

    For one of the startups I’ve been involved with we used Trac as a quick way to support “development”. But Trac is very limited and problematic. We choose because it’s free, and a number of successful opensource projects use it. It works pretty well for supporting developers and an open environment, but as we’re running a startup with a rag-tag fleet of programmers, testers, project and product management it’s really not sufficient for all of them. Out of the box, Trac is best for developers and developer run projects. But if you’re a product company, then you’ve got alot of other things to manage other than what the bugs are and which developer is working on them. Because that’s really all you get. When you have people in other roles than programmer and technical manager, you’re beyond the capability of Trac: there simply not enough fields and capabilities to support different kinds of development roles and their interactions.