• Posts

    TweetToCall is Becoming a More Social Phone Book

    My beloved side project TweetToCall recently turned one year old, and I’ve been procrastinating on re-styling it to look more like a Web 2.0 service and less like a weekend project.  This post on TechCrunch tonight about the death of phone numbers motivated me to give it an hour of my time while playing Mario Cart with Kevin and digesting an awesome steak dinner I made for us.  Because really, when else can I justify working on a side project these days?

    The Changelog (Sort of)

    I had updated the main page with this lovely style inspired by a cool piece of graphic art I bought on iStockPhoto, but still needed to refresh everything else.  Tonight I went through and tested everything again to make sure it is all working.  The signup process, phone number validation and listing of TweetToCall enabled friends have been reviewed end-to-end and I’m happy to report the code has aged nicely.  I think we might be doing some inefficient things with API requests to Twitter on certain commonly reloaded pages (really need pagination for those users who are developing a bigger phone book), but that won’t impact the majority of users at this point.  Definitely on the list though, since it drives me nuts when I’m testing.

    As for the design update, all I have to say is CSS is amazing (there is knowing this and really KNOWING IT, I’m feeling the latter)… the time savings on this update after the previous were minimal.  I updated the header, deleted a couple divs, and bam.  While it’s still ugly (hey, I’m not a designer) it is a lot less offensive than before.

    TweetToCall.com Website Refresh

    Other Improvement Plans

    I’ve talked a lot about adding Facebook Connect as the next integrated social network, and now I’m thinking Firefox/Chrome plugins could be cool as well.  Ultimately, I think I will probably move this all over to DialSocial.com where it will be much less Twitter centric.   Other than a few media mentions from back when Jajah launched their @call feature almost a year ago, I don’t think I’ve accumulated much brand value, and having the Twitter account suspended endlessly makes it even easer to abandon the TweetToCall brand.

    Another thing on my list is to get @tweettocall unbanned on Twitter, it has been stuck in that state for over a year now and I haven’t been able to get any responses to my support requests (this happened when my own Twitter account @daniellemorrill and @twilio got banned in a widespread block to try to control some malicious spam during the Gov 2.0 Summit in D.C.).

    Why It’s Just a Side Project

    Beyond the fact that I am super happily employed at Twilio (the voice API platform TweetToCall is built on), I just feel like there’s no point in really building this out and pumping a bunch of money into marketing it.  There is a big barrier to getting users to sign up – getting them to give their phone numbers.  Twitter, and to a lesser extent Facebook, have all their users and this is really just a feature they could easily implement.  The one way I might be able to make it more valuable is to have more networks that you can hook into from a single place — but for now it just feels like a feature, not a full product and certainly not a company.  If you feel differently, please let me know I’d love to hear your thoughts.

  • Posts

    Tons of Stubs, But No Posts

    I’ve been writing a lot of starts to posts these past two weeks – but nothing that feels fit to publish (yet).  Here’s a teaser of some of the topcis I’ve been mulling over, I’d be curious to hear which of these (if any) interest you:

    • Startup Stuff No One Seems To Talk About — based on a trend I’ve noticed in my conversations with other entrepreneurs about the “unmentionable” elements of entrepreneurship that no one really brings up
    • Twilio Quickstart with Ruby on Rails — port of the Twilio quickstart application from PHP to Ruby on Rails
    • Understanding the Value of MVC Architecture — yep, writing it as I come to really understand it, so far the key point is the huge increase in efficacy
    • Living Intentionally — stuff about career plans, goals, and some reflection on goals I set for 25 (which I turned in April)
    • If I Were An Angel Investor (Part 1) — a list of early-stage startups I think are really interesting, and might be killer investments
    • No Room for Tall Poppies — response to story I read via Hacker News about anti-intellectual culture of hiring
    • Thoughts on Inception — movie review, thinking I will need to see it again (smart producers!)
    • U.S. Government Requirement for 1099s to Stifle Small Business — activism post
    • Finding Your Own Everyday Entrepreneur — seeing the scrappy awesomeness of everyday choices
    • We Live in Public? — thoughts on Facebook, public/private life online and off, etc. — thinking this won’t go out until the Facebook movie hits theaters
  • Posts

    Objectivism: Simple Tactics to Get Started with Online Activism

    Today we heard an excellent talk from Yaron Brook about the importance of defending capitalism, and he ended his speech with a rousing call to action for the audience.  “I’m willing to put it all on the line, are you?”

    People stood and clapped, but I left the room wondering whether they realize this isn’t just something that a small set of us need to do. Activism, in small and large ways, is something all of us can help with.  As much as I wish there were enough people who held the right ideas where I could hide behind “division of labor” as my argument, and just go on building businesses and being productive, here is the harsh reality: if you want to see the world change in your lifetime, you have to live in the future today.

    In the most basic terms: it’s time for each of us to do SOMETHING.  I’ve been relaxing at the pool today with Trey Givens, Earl Parson, and Mark Wickens and I asked them to help me brainstorm some ways you can get involved.  If you’ve been helping advocate Objectivism for awhile, this might seem self-evident but please take a look and see if there is anything here you can add to your own playbook.

    Activism in…

    5 Minutes

    • vote up news stories and bog posts you like on Digg.com
    • add Objectivism and/or capitalism to your online profiles (Facebook, Twitter, LinkedIN, etc.)
    • republish content that you think is good (e.g. link to an ARI op-ed from your Facebook back)
    • make yourself or your car a moving billboard for Objectivism (with a shirt, bumper stickets, etc.)
    • check out out the free articles on The Objective Standard (or subscribe!) and follow them on Twitter

    10 Minutes

    • comment on items posted on Facebook, blog posts, etc. – encourage people to keep blogging
    • donate money to ARI
    • contact ARI about donating money to buy books for your local high school campus club
    • comment on items posted on Facebook, blog posts, etc. – encourage people to keep blogging
    • comment on news stories, or even blog a full response to a news story

    30 Minutes

    • subscribe to other blogs that forward ideas you agree with
    • call into radio shows, or television shows (or at least email them)
    • write a letter to the editor
    • write a letter to local or national government etc.

    More Time & Other Ideas

    • distribute the Undercurrent to your local schools
    • share your values with non-Objectivists — for example, art at the Cordair Gallery (not just Atlas Shrugged, the Fountainhead)
    • start your own blog (lot’s of good free platforms out there)
    • donate money to the Undercurrent, to your local campus club
    • join local organizers that you’re interested in, and influence the outcomes of their decisions
    • telling stories about your own success or people that you know – about how Objectivism has helped you
    • meet up with people in real life to reinforce your ideas, sharing your values, finding people you can relate to, learning new things
    • join groups like Toastmasters, where you can speak about your ideas to a captive audience

    More check out post from Burgess Laughlin about “in-line activism” -about being an activist within your profession

  • Advice,  Objectivism

    Tips for Asking Good Questions After a Lecture at OCON

    One great aspect of Objectivist Conferences is the opportunity to ask questions of the intellectuals presenting their ideas, immediately following their talks.  Coming up with a thoughtful question can add depth to the topic, and help express misunderstandings that might be shared by a lot of the attendees listening.  However, Q&A sessions have a limited amount of time, so if you’re going to take it up with your question you might as well do a good job.  I personally find it pretty intimidating to get up and ask a question in front of the large audience, however I can tell you a lot from an audience perspective.

    Write Down Your Question and Read It Aloud

    The time to think up your question is not when the microphone is before your lips.  Not having a clearly formulated question can lead to a lot of those “ummm”… “ahhh” moments, which most of us strive to avoid.

    I’m not saying that I think most attendees do this, but if you’re reworking your most eloquent presentation until the final moments before its your turn often your question comes off as made up on the spot.  Think about how much time the speaker spent crafting their talk, structuring it to keep you engaged and to help you inductively come to conclusions.  If you take this same care for your own questions, I think you’ll find it is rewarding to have a speaker say, “that’s a great questions, here’s what I think…” instead of “wait, I’m not following?”

    A Declarative Statement is Not a Question

    Questions should start with words like “who”, “what”, “where”, “when” and “how”.  Why, you ask, is this important?  A declarative statement preceding the actual question has a bunch of usability issues for the person being asked:

    Unpacking Incorrect Premises

    If a declarative statement is made and the speaker doesn’t agree, he’ll feel responsible for responding first to any errors in that statement, before even getting to the question.  This can distract from the actual question if it takes longer than 15-20 seconds to deal with, and leaves a lot of speakers asking, “what was the question again?”

    Wasting the Audience’s Time

    Yes, you probably are a pretty smart cookie but the Q&A session is not the time to show off.  Your question really should only require a sentence to express, which is another reason why writing it down is a good idea.  Helping the speaker to expand on a particular part of their talk, or bringing to light a perspective that can add depth is the goal – not making a speech about what you think is right.  People didn’t pay to hear you talk, if you want them to then consider offering your own speech (elsewhere).

    Get Up There and Ask

    Finally, I want to encourage anyone reading this to just get up there and do it.  It might not be perfect, but I think if you try to follow this advice it will help you put a bit more thought into your question, and that can’t hurt.  Remember, conferences are generally benevolent places where people are learning together – so the best thing we can do as attendees, staff, speakers, and those asking questions is help each other become better at understanding the concepts being presented.

    Looking forward to many good questions in the coming days!  These are just my initial thoughts, I’d love to hear what you think makes for a great question following a lecture in the comments.

  • Posts,  Travel

    What the Heck is This #OCON Thing?

    I’m going to be tweeting a bunch about something with the hashtag #OCON, and I know a lot of people are going to ask me what it is.  #OCON stands for Objectivist Summer Conference, and this year’s event is taking place at Red Rock Resort & Casino, about 30 minutes off of the Las Vegas strip.

    One of my less public, but very personally significant, interests is philosophy — and I’m particularly interested in the philosophy Objectivism, which was created by the late Ayn Rand.  You might remember her, she wrote the novels The Fountainhead and Atlas Shrugged, which are required reading in a lot schools.

    I’ll be sharing my thoughts on the conference, the ideas discussed there, and other goodness tomorrow through July 10th.  I hope you’ll find some of it interesting, and I’d love to hear your thoughts.

  • Code

    How I Built a Multi-User Door Buzzer for Our Apartment

    Full disclosure: a lot of people have talked about this idea, this is just my implementation of it for our apartment.  You can check out Buzzeromatic.com if you want someone else to administer yours or post to Elance/oDesk/HackerNews/Twitter to get someone to build it for you.  Look for something cool from @gregkoberger with all those features I left out (user management, UI, adding new roomies, adding more numbers etc.)

    Making a Present for My Roommates

    About a month ago, I moved to a 3-story loft in SOMA with my husband Kevin and our good friends Park and Kat.  My sister also graduated college and joined a local startup, so she’ll be moving in with us next week.  With 5 people living here and only 2 master keys to the front door, we had a bit of an access problem right away.  My roommates, knowing I haven’t had a chance to code since the move started, were nice enough to suggest a build an app with my Twilio skills (full disclosure: I work there) and we tested it out last night – it works, so I’d love to share.

    How A Call Box Works

    If you’ve lived in an apartment with a call box for buzzing people into your apartment before, this will sound pretty familiar.  There is a list of names and corresponding codes listed on the callbox display, you dial the number and it rings the person who lives there, they press a key and the door is unlocked.

    What happens inside the callbox is a little more interesting – because the sound the keypress makes, which is called a DTMF tone, is actually a pretty amazing little thing.  Tone dialing was arguably one of the earliest massive implementations of human-to-computer communication.

    Phreaking Out the Phone with DTMF Tones

    There is a long history of phreaking (the image to the right is of a bluebox built by Steve Jobs and Steve Wozniak, on display at the Computer History Museum) by playing DTMF tones and other tones (pulses, pins, etc), and the things telecommunications hackers achieved without any kind of API like Twilio is pretty amazing.  In my case, the call box just requires the person who receives the call to press 6 to open the door, and responds when the 6 DTMF tone is played.  This tone doesn’t have to come from pressing a key though,  I can just play the audio file into the phone to mimic the action of a keypress – and the doors opens!

    The simplest implementation of this is just to have the door automatically open when anyone dials your extension.  I don’t recommend setting your callbox up this way, because you might accidentally let in people who are messing with the box looking for a way in so they can do bad things.  My street has a lot of bums and other riff-raff on it, so I wanted something with a couple different types of security.  So here’s what I did.

    Setting Up My Call Box with Twilio

    If you haven’t heard of my company, Twilio, before the really quick elevator pitch is that we are the AWS of telecommunications, making it easy to send/receive calls and text messages programmatically and only paying for what you use.  It’s pretty sweet, its a startup, and I’d love your feedback on it.  So here we go:

    • Get a local Twilio number (or you can use the sandbox number for free)
    • Tell your building administrator to add your name/number to the box
    • Build a simple app that forwards the call to your cell phone so you can make sure the box can recognize DTMF tones passed from a forwarded call

    Doing this test before you build your full blown app is really important, it will save you from debugging an issue outside of your control.  You just need to create this little callbox.xml file, save it somewhere on the web (publicly accessible on Dropbox is a handy option, our try Twimlets)

    callbox.xml (replace 415-555-1212 with an actual phone number)

    1. <Response>
    2. <Dial>415-555-1212</Dial>

    3. </Response>

If you are using your Twilio trial account, make sure you use the Twilio sandbox number and remember your pin code for testing (or email me at danielle@twilio.com and I can manually remove this restriction from your account). If you run into problems just email help@twilio.com for 24/7 support, or tweet @twilio

Building the Full App

Now that your testing is done, it’s time to build the full app with just a little PHP.  This took me about 25 minutes to write from scratch in Emacs, probably will take you a whole lot less with all the sample code.  Here’s the spec for how the app should work:

Need to have:

  • visitor or roommate dials our extension in the call box and our Twilio number is called
  • menu is read to visitors, giving them the option of which roommate to contact
  • roommates have a secret code they can punch in to bypass the menu and open the door
  • if the visitor selects one of the roommates from the menu options, that roommate gets a call and presses a number on their cellphone dialpad to buzz in

Nice to have:

  • menu selections can be made at anytime, without waiting for the menu to finish, because that is just annoying
  • roommates can be simultaneously dialed on multiple numbers (cellphone, work, house phone) if they want
  • fun audio files can be played when someone is let in

callbox.php – this file controls what happens when the callbox is dialed

–>

  1. <?php
  2. header(“content-type: text/xml”);
  3. echo “<?xml version=\”1.0\” encoding=\”UTF-8\”?>\n;
  4. ?>
  5. <Response>
  6. <Gather action=”/doorbell_gather.php” method=”POST”>
  7. <Say voice=”woman”>If you are here for Katrina, press 2.</Say>
  8. <Say voice=”woman”>For Danielle, press 3.</Say>
  9. <Say voice=”woman”>For Park, press 4.</Say>
  10. <Say voice=”woman”>For Kevin, press 5.</Say>
  11. </Gather>
  12. </Response>

Two important things to point out here. First, notice that the menu options in the tag are nested within . This is awesome, because it means Twilio is listening for a keypress the entire time and you can interrupt the menu with your selection at anytime. Also, you’ll see if you check out the Twilio example code that usually includes the numDigits parameter, but we’re excluding it on purpose here because we want to accept secret pin codes in addition to single digit selections. You’ll see why in a moment.

doorbell_gather.php – this file determines what to do with the keypad data we just received

Note on this code: There are definitely more elegant ways to write this, but in my mission to convert all my roommates to geeks I’ve opted for something they can easily understand in case they want to change their secret codes without my help.  All pincodes have been changed for this example.

–>

  1. <?php
  2. if($_REQUEST[‘Digits’] == ‘2’) {
  3. header(“Location: katrina.xml”);
  4. }
  5. if($_REQUEST[‘Digits’] == ‘3’) {
  6. header(“Location: danielle.xml”);
  7. }
  8. if($_REQUEST[‘Digits’] == ‘4’) {
  9. header(“Location: park.xml”);
  10. }
  11. if($_REQUEST[‘Digits’] == ‘5’) {
  12. header(“Location: kevin.xml”);
  13. }
  14. if($_REQUEST[‘Digits’] == ‘1234’) {
  15. header(“Location: secret-danielle.xml”);
  16. }
  17. if($_REQUEST[‘Digits’] == ‘6677’) {
  18. header(“Location: secret-park.xml”);
  19. }
  20. if($_REQUEST[‘Digits’] == ‘9988’) {
  21. header(“Location: secret-kevin.xml”);
  22. }
  23. if($_REQUEST[‘Digits’] == ‘6786’) {
  24. header(“Location: secret-katrina.xml”);
  25. }
  26. header(“content-type: text/xml”);
  27. echo “<?xml version=\”1.0\” encoding=\”UTF-8\”?>\n;
  28. ?>
  29. <Response>
  30. <Say>I’m sorry, but the person you attempted to reach is unavailable.  Please try again later.</Say>
  31. </Response>

So Twilio is passing the keypress data as ‘Digits’ and we’re telling Twilio where to go depending on what was pressed. Pretty simple. The little bit of TwiML at the bottom only plays if the roommate called doesn’t answer their phone.

So now we need to create:

  • roommate.xml – which calls the selected roommate so they can buzz in their guest
  • secret-roommate.xml – which automatically opens the door when the code is entered

You might be wondering why everyone has their own secret-roommate.xml file, when they all do the same thing.  I decided it would be fun to prank my roommates with a funny theme song or movie quote before the door would unlock…

To complete this code, you’ll need to get an audio file (.wav or .mp3) of the DTMF tone you want to play back to the machine.  I used this awesome DTMF generator, and they host the audio file for you.

roommate.xml – the file that calls the selected roommate

  1. <Response>
  2. <Say>Connecting you to [Roommate’s Name] now</Say>
  3. <Dial>415-555-1212</Dial>
  4. </Response>

secret-roommate.xml – the file that opens the door is the roommate enters the correct pin code. The first <Play> contains a fun audio clip from Back to the Future, the second one plays the DTMF tone that will open the door (make sure to change this depending on which tone will open your specific door).

  1. <Response>
  2. <Play>http://moviewavs.com/0059305935/WAVS/Movies/Back_To_The_Future/seriousBLEEP.wav</Play>
  3. <Play>http://www.dialabc.com/i/cache/dtmfgen/wavpcm8.300/6.wav</Play>
  4. </Response>

So there you go, now you can manage a callbox for a bunch of roommates, add secret pin codes, and even give selective access to delivery people, cleaning staff, or whoever else is coming by to visit. Let me know if you find any bugs or have ideas for how to make this cooler in the comments.

Photo credits:

  • Call box: http://www.flickr.com/photos/carol329/300231462/
  • Touch Tone Telephones, 1966: http://www.flickr.com/photos/roadsidepictures/3601261522/
  • Bluebox: http://www.flickr.com/photos/awarnack/110798864/
  • Posts

    Returning From a Week on the Road

    I’m onboard my return flight from D.C. with Kevin and so happy to be coming home to San Francisco. I’ve basically been on the road for two weeks, last week I was in Seattle for the Seattle 2.0 awards and then I made a quick flight back to SF Friday to do a 12 hour turnaround where I repack and jump onboard the redeye to New York with Adam for the TechCrunch Disrupt hackathon. Flying the redeye can be painful since usually i don’t fall asleep, but it does save money on a hotel — which is worth it for New York. Fortunately I flew Virgin America, and the sleep deprivation caught up to me and i was asleep before we even took off.

    We got to New York, and due to last minute planning we didn’t actually have a place to stay yet. Fortunately, our friend David Lifson from Postling connected with us on Twitter and he and his girlfriend met us over at Dogpatch Labs to drop our backs and grab dim sum. $4 per person dim sum in Manhattan – amazing!

    We parted ways with them after lunch (they were headed up to the Apple store to get their iPad!) and headed over to the conference location to get ready for the hackathon. New York is so awesome, jump in a cab and we’re there. So the hacakthon begins, we have a little table for Twilio and try to chat with as many people as we can. Its so amazing having people walk up saying they already use Twilio, and even more incredible when they gush about how much they love the API. By late in the night, a handful of the hacks being created were using the Twilio API (including the Mr.Stabby robot from NYC Resistor!) and everything was going well, but the one problem was we still didn’t have a place to sleep.

    Fortunately, the AirBNB folks were at the event too and offered to help us with our search. I had been working the website all day for an affordable place (hotels were coming up on Priceline for a minimum of $600) and around 10pm we got a message back letting us know we could get a 1 bedroom apartment in Soho for just $190 per night ($95 per person!!). I razzed the landlord bait about he bad reviews he got for cleanliness to make sure he would take care of it before we arrived, and we headed out. All in all, when we got there it was clean enough to fall asleep and thats all that really mattered.

    The rest of the New York trip went smoothly, including many highlights:

    • new friends from SimpleGeo
    • Catching up with Jeremiah and the MediaTemple crew
    • Awesome app demos from 6 hackathon projewvts using Twilio
    • camping out at Fedex off for 5 hours to make sure we got collateral to our friends at TechCrunch by 3am
    • A walking tour of parts of New York with Tim from Foursquare, followed by several games of shuffleboard
    • delicious steak dinner at Quality Meats, courtesy of Bradley from 2tor
    • meeting Cyan, founder of Zivity.com
    • extending my streak of awesome iphone photos of the Empire State building to 3 trips in a row (link)

    On Tuesday afternoon, with Disrupt still in full swing and the rest of the evangelism team headed to Colorado for Cloudcamp and Gluecon, I hopped my short flight to DC to meet up with my husband and get us all set up to represent at O’Reillys Gov 2.0 Expo at the a washington Convention center. Major discovery: the JetBlue terminal in JFK has these little counters where you can sit and order food to be delivered to you. I didn’t use it this time, but what an awesome idea!

    Connected with Kevin at the airport after a three hour wait and we headed to a place i had booked us, a 2 bedroom townhouse within walking distane of the convention center. We arrived in a neighborhood that was pretty rundown (the house next door had all the windows busted out) and were greeted by our host and a friend of hers (a woman) carrying a gun – turns out she is a police officer but i am just not used to that i guess. We were only getting a room, turns out there was a long term tenant in the place and airBNB had listed it wrong. $149 per night for a room in. A house in a crappy neighborhood we couldn’t walk around in at night seemed lame, so we spent one night and switched to a hotel for just $10 per night more and lucked out and got a huge suite because things were slow! Two days of tradeshow goodness, which pretty much amounts to education people about Twilio and cloud technologies in general, collecting businesss cards, and dreaming up new uses cases. I spent Friday in the hotel room catching up on work and that brings me to today, where we worked and went to the National Gallery to check out the sculptures (my favorite medium) before heading back.

    And there you have it, links and typo fixes coming later when I’m not on the iPad. Happy to be bak and hope to see many of you soon

  • Posts

    Watching App Demos at TechCrunch Disrupt

    I’m here in New York for the TechCrunch Disrupt hackathon, which is wrapping up the demos and announcing the winners of a 28 hour hack session that began yesterday and spanned into the early morning hours today.

    Hacks Using the Twilio API

    Adam and I arrived early yesterday to set up a little table and then find out what people wanted to build.  We hung out with a lot of different teams, and tried to offer our help and brainstorming skills. Originally, we had been thinking of doing our own hack project but wound up never starting it because we were in so many awesome conversations.

    I’ve been liveblogging the demos that involve the Twilio API on the Twilio blog, including snapping quick videos of them with my HD Flip Mino.  Congratulations to Groop.ly, NewsCred, FBcall, Phonzy, and Mr.Stabby for successfully creating your projects and demoing on the big stage here.

    Mr.Stabby Video!

    Check out the videos here, and my blog post on Twilio.

    The Winners

    The winners will each get to demo on Wednesday to a packed house

    • Future Mario
    • Twitter Demographics
    • WorstPhoneEver

    Honorable Mentions:

    • iPad Safety Strap
    • Mr.Stabby

    Now onwards to see which of the 100 startups presenting wins the TechCrunch Disrupt cup during the conference this week!

  • Posts

    iPad in the Wild: Shopping at Ikea

    Today I went to Ikea to get new furniture for our loft, and I brought my iPhone and iPad.  The iPhone battery was at 20% when we walked in, despite sitting on the charger the entire car ride from SOMA to Emeryville. Fortunately, my iPad was a little more up for the game.

    We wandered the store, discussing colors and motifs that would work with our post dot com crash modern pad.  A lot of birch was in order, and in fact we were getting a little burned out on the uber-Malm look.  After looking at the piece I really liked, we realize their might be more furniture in the unique grey-brown color that we hadn’t considered, so I resorted to a quick scan of the Ikea store on my iPad.

    I never realized how useful the Ikea website is for in-store experience before! Before I knew it, I was constructing a shopping list and checking the availability of items in the colors I wanted in the store’s stock.  I even found things I didn’t realize the store had at all, which we then went and tracked down in the store.

    Overall, we ended up spending 3x more than we had planned because we found a lot more of what we were looking for than we had bargained for. I remember over a year ago I helped pull together a “Future of Retail” meetup group in Seattle, as a market research for my previous startup, and we discussed how technology could be used to create special in-store experiences.  I think that was early then, but is becoming more and more relevant now with a device like the iPad that I can reasonably carry in my purse and pull out at a moment’s notice.

    Bottomline: iPad was very helpful