• @dwolla working to make it right

    April 19, 2013

    The folks at Dwolla are working hard to make things right

    Since I posted my particularly unpleasant experiences with Dwolla the folks at Dwolla have stepped up to make things right.

    They have reversed substantially all the transactions into my business account that they locked for suspicious activities. All but $500 is now available in other accounts that are not locked.

    They are working with my business partner to get the funds from their Dwolla account back into their bank account.

    Other companies

    I've been approached by a number of other vendors including Verify Valid about using their services.


  • @dwolla: a bunch of clowns not to be trusted

    April 18, 2013

    Updated status: Dwolla is stepping up to make things right

    So, I tried Dwolla

    I actually tried it a year+ ago to send money to a friend. It's fast, inexpensive, and seemingly easy.

    I'm working on a project and it seemed like a hassle to have the folks paying me send a check that I would then have to deposit in my bank account. The whole mailing, receiving, going to the bank and depositing process takes about 10 days and consumes non-trivial amounts of time.

    Doing things electronically seemed like the right answer… using ACH as a mechanism for moving money around at $0.25 per transaction on its face seems too good to be true.

    Turns out it is.

    Business Account


  • Angular JS, Lift 3, and Streaming Promises

    April 18, 2013

    Simple AngularJS

    Lift has always had the best server-push technology around. Why? It's secure, it deals well with spotty connections, it respects the limited number of HTTP connections between the client and the server, and so much more.

    Angular JS is a very exciting UI package that makes building dynamic single-page applications a snap because there's a 2-way binding between the model and the UI so that changes in the model are correctly reflected in the UI. And the whole binding is declarative so that once you use a model item in the UI, that part of the UI is always updated when the model changes.

    Round Trips


  • Bad Experience with Karma hotspot

    March 31, 2013

    Is my experience unique?

    I bought a Karma WiFi HotSpot. I work remotely a fair amount and having WiFi access anywhere is useful. The price is right at $14/GB of data without any expiration date.

    I got my Karma device on Friday. I immediately opened the box, fired it up and tried to connect. It took about 10 minutes for the Karma to connect up and get ready to connect to my MacBook Pro.

    The connection speed was horrid (1M down and 70K up). This compares to my cell phone running on TMobile which was getting 10M down and 4M up. Okay, maybe I was in a bad coverage area at 22nd and Geary in San Francisco.


  • Code of Conduct

    March 25, 2013

    Code of Conduct for Communities

    Lately, there's been a ton of discussion of seriously awful behavior by some dudes at PyCon. People have been fired. People have gotten upset. And there are now some "thou shalt not" style code of conduct things floating around for conferences.

    I'm a big fan of defining expected behavior. This applies to most aspects of my life. I work hard to tell my dog and my kids what I expect of them... how they can succeed. User stories are excellent definitions of how developers can succeed: do this thing and you'll make the user happy.

    I think that codes of conduct should be positive definitions of expected behavior rather than a series of prohibitions.


  • Team Mind Melds… Very Important

    March 18, 2013

    Back when we compiled to machine code and links took 45 minutes...

    Back in the day, I ran a small spreadsheet company, Athena Design that took on the big spreadsheet companies (Lotus, Informix) and won.

    I had a spectacularly stellar team. At the time I just thought the folks working at Athena were bright… but in retrospect it's amazing what a collection of talent with had.


  • Woo Hoo, @ford Escape

    March 17, 2013

    Woo Hoo, Ford Escape

    I've had my Escape for about 3 weeks and I totally love the car.

    It's smooth, easy to drive in a variety of ways (limousine, sporty, cargo-shlepping, etc.)

    Never having to take the key out of my pocket is surprisingly useful, especially when I have to deal with kids and dog and packages and stuff. One fewer distraction allows me to focus on what's important.

    The seats are wonderful. They are comfortable, supportive, and have proven excellent in hour+ drives… I haven't had a chance to do an 8 hour road trip, but soon.


  • Presentation and Representation are different

    March 11, 2013

    User Interfaces are not data structures

    I have had the same discussion on a number of fronts over the last few weeks, so I figured I'd write a blog post about it.

    Basically, the gist is that how we allow users to enter data into our application, how we store that data in memory, and how we persist that data are all different things. Requiring that the UI have a one-to-one mapping with the internal data structures is bad for the users and could be bad for performance.

    User Stories

    Doing Agile (in fact doing most software development) means capturing User Stories that describe what the user wants to do with the system.


  • The @Ford Escape, an awesome car

    February 26, 2013

    I bought a Ford Escape

    I needed a people-mover. I had a 5 week hellish relationship with a Honda CR-V. I traded the CR-V for a 2013 Ford Escape Titanium with Nav, Panoramic Sunroof, and Parking. It was perhaps the most stark contrast between bad and good cars I've ever experienced.

    My favorite cars

    I've owned a lot of cars in my life. My top favorites are, in order:


  • @Honda CR-V: an aught in the land of 10s

    February 25, 2013

    The Honda CR-V: an aught in the land of 10s

    I recently had the worst new-car buying experience since I purchased a Ford Pinto in 1980. Let me tell you about it and tell you why you should not consider a Honda CR-V.

    I needed a people mover… a vehicle that could transport 2 or 3 8-year-olds plus a 100 lb dog. I had a 2011 Ford Fusion Hybrid which was an excellent car, but couldn't do the hauling.


  • First bit of Lift 3.0

    February 12, 2013

    Lift is growing

    Lift is growing and evolving.

    I've just started the Lift 3.0 code branch. Lift 3.0 will be based on Scala 2.10+ and will use features exclusive to 2.10 including macros. Lift 3.0 will also cut away at a lot of cruft that's grown onto Lift over the years, so 3.0 will have a bunch of breaking changes.

    The Future is Futures

    Lift 3.0 will support Futures (specifically LAFutures which are Lift's time-tested, solid Futures) such that you can do stuff like this in a REST call:

    object DelayedRest extends RestHelper {
      serve {
        case "delay" :: Nil Get _ =>
        LAFuture(() => {
          Thread.sleep(2000)
          <b>Hello</b>})
      }
    }
    

  • Nexus 7 Not Quite There

    February 12, 2013

    The Nexus 7 is not quite there

    I purchased a Google Nexus 7 tablet a little over a month ago and have been using it and playing with it. I have some thoughts and they boil down to: It's Not Quite There as compared to the iPad, but it's mostly about the apps.

    The Hardware

    The Nexus 7 is an excellent hardware compromise. For $249, I got a 32GB machine with an excellent screen and a fast processor. It's got the latest Android release and thankfully it's pure Android rather than some layer on top of Android.


  • Consulting Availability

    February 11, 2013

    I have some consulting availability

    Starting March 1st, I'll have 8-12 hours a week of consulting availability. I provide a variety of services. If you have an interesting project and you think I could lend value, please drop me a note at feeder.of.the.bears@gmail.com.


  • First Xcode Screencast

    February 8, 2013

    First Xcode Screencast

    I've put together a screencast of integrating a Visi model into an iPad app using Xcode: http://tunaforcats.com/Visiipaddemo.mov.

    The workflow is as follows:

    • Create an iPad app
    • Copy the visi.jar compiler into the project
    • Create your Visi model
    • Compile the Visi model
    • Subclass your controller from the generated Objective-C code
    • Wire up your app
    • Update your model
    • Re-wire your app

    In Visi, all inputs are done via "Sources" and all outputs are "Sinks".

    Each time a source changes (signals) all the dependent sinks are recomputed and signaled.


  • On False Analogies

    January 14, 2013

    On False Analogies

    A fair number of things have intersected over the last few weeks and it's time for me to do a quick exploration of them. There's the Aaron Swartz persecution, robots, RMS and free software, zero bounds and trillion dollar coins, the state is losing control of money, and Kirtsaeng.

    I'm a lawyer by training and I worked in a high tech law firm briefly. The law is a set of creeping analogies and we're at this interesting intersection of how to deal with the radically reduced transaction costs that the Internet and computers/logistics have brought to our doorstep.

    Craig's List and FSF