Skip navigation

Category Archives: Uncategorized

So my trusty Samsung Galaxy S3 broke down last week. The power button got stuck pressed down, so the phone would be in an infinite loop of turn off, turn on, turn off, etc. Apparently this is a very common problem with Galaxy S1-5 phones – that power button must only be good for a few hundred thousand cycles.

So I went to Best Buy and got a loaner phone under their excellent “rental policy”… ehm, I mean “return policy”. It was a Galaxy S5: cost $900, but really isn’t any different from the S3 besides an updated OS. Which is sad. I shouldn’t have to pay $300 more to upgrade Android from 4.3 to 4.4, so I decided to repair my old phone.

Following some great YouTube videos, here’s how I did it with just a soldering iron:


How a normal person sees their phone.


How a hacker sees their phone.


Don’t forget this black screw! It is hard to see.


Take off the speaker assembly.


Lift off the PCB and turn over to get access to the switch.


The target has been spotted.

At this point, you want to cover that little bastard switch in flux, then solder on a crapton of solder. Just coat the whole thing in it. This will cover the entire outside of the switch with solder, which you can then heat up evenly, while applying gentle outward pressure until the switch pops off. Better to watch this video:



The culprit, removed. Annoying that this $0.02 piece can take down the entire $600 phone. Now it is a $599.98 phone which works great!


I soldered some wires to the switch contacts, so now when I want to turn on my phone, I have to cross the wires just like they hotwire cars in MacGyver!

To be safe, I taped down the wires to the case so they don’t touch each other in my pocket. Then I made a Tasker task that locks the screen, and added a Task widget to my home screen so I can just click the icon to lock the phone. To unlock the screen, I just hit the home button.

Yay! $900 saved with 1 hour of work! Even though Samsung kind of sucks for putting a crappy power switch in there to begin with, I’m glad it was relatively easy to unscrew the phone and repair it. It’s almost like they designed the phone to be repaired. Unlike another company I could mention with their fancy sealed cases and irreplaceable batteries…

Layer Synthesis Device, my online collaborative VJ app, now supports mixing live video streams from a webcam with the other video clips. You can even stream video from your phone’s camera to the large projection screen at a concert. This introduces an unprecedented new way of engaging the audience in the live show – by giving them the ability to broadcast their unique experience in the crowd and manipulate the visuals collaboratively with other audience members in real-time.

For now, the webcam streaming is available on the Chrome browser, both for desktop and Android devices. Here’s how you activate webcam support on your Android phone:

  1. Download the “Chrome Beta” app.
  2. Open it and type in to the address bar: “chrome://flags”
  3. Click “Enable” for both WebRTC support and WebGL support.
  4. Go to the LSD website and click the “Start Live Cam Feed” button.
  5. Click “Allow” when prompted – your live feed is now available in the clips window. (It’s at the end, so you have to click the arrow button until you get to the last page.)
  6. Click the video webcam clip and start mixing your camera’s feed with the other videos!

I’ll be demoing this at GAFFTA’s Creative Code Meetup w/ Leap Motion, Social Print Studio and More on Tuesday. Come by to participate, as well as see other amazing demos! (P.S. LSD is also compatible with the Leap Motion! Hook it up and try manipulating video effects by waving your hands!)

P.P.S: Sorry, iPhone users! Apple does not seem interested in making WebRTC or WebGL technologies available to their customers (even though their phones support it – only advertisers are allowed to use them though!) Call Apple and make your complaint! You can still use LSD in a limited fashion though: without video effects or webcam streaming you can still choose video clips and mix them collaboratively.

I’ve been working hard on LSD to add some new features, the most exciting of which is the shader effects tab! You can apply different effects to each layer of video independently, and control the effects with your mouse or even your touchscreen! Each finger on the touchscreen will control a different effect parameter.

I’ve also submitted it to the Mozilla Dev Derby (please vote on it by clicking the “Like It” button on this page) since Firefox Mobile is the only browser that can take advantage of these new effects on mobile devices. Of course, you’ll still be able to use other iPhone or Android browsers, but the effects will be disabled.


We’re coming closer to VJing completely in the browser without need of any specialized software; not quite to the point of replacing Resolume or modul8, but it’s a pretty great free option and still the only visuals software to support live audience collaboration! Stay tuned for webcam integration (using the phone cameras in the audience as live video feeds), external device control with the Leap Motion hand-tracking controller, and more!

Check out LSD here and start your own video remix!

I just saw this post on how to vacuum your Firefox databases for better performance. Tried it, and it worked! Firefox starts up so much faster now and doesn’t have all those weird freezes. Here’s a shell script to help you if you have a Mac: just save it as “” in your “~/Library/Application Support/Firefox/Profiles/xxx/” folder:

foreach f (./*.sqlite)
    echo "Vacuuming $f"
    sqlite3 "$f" VACUUM

then run it from the terminal:


After reading Clive Thompson’s latest piece, “A Sense of Place”, in Wired about geolocated to-do lists, I decided to try the idea for myself. He mentions apps like Checkmark that pop up items from your to-do list based on where you are. For example, if you are driving near the grocery store it will alert you that you need milk, or vegan cheese, or whatever graces your reusable hemp grocery bag.

However, he also stresses that Checkmark, et al. are based on GPS, which is “crude, because GPS isn’t very accurate.” (Not to mention sapping your already awful battery life… where are those nuclear batteries they promised us?) He goes on to say that “tech like near-field communcations (NFC), Bluetooth, and RFID… could let you embed your intent inside your house or office – reminders that call out at the right time as you pass by.”

Since I just got a new Samsung Galaxy S3, I decided to put this NFC theory to the test. I bought some blank NFC tag stickers and started sticking them to everything. Here’s my crudely-decorated sticker for Home:


I put them on my desk at home and in the office, and used NFC Task Launcher to program each tag so when I arrived there, I would put my phone up to the sticker and it would automatically open my to-do list for that location, as well as change phone settings, like changing the ringer to silent in the office or turning on Wifi at home. So far it’s worked great. I love organizing tasks by where I am instead of by time, just because my schedule is pretty random and I like to know what I should do with the things I have around me.

Now for a much more detailed tutorial of my whole setup. (Disclaimer: extreme nerdization ahead. I left no stone unturned, no app unaltered, no script un-hacked: technoanthropologists from the distant future will look back on this and think “Geez, the stuff those neanderthals had to do to get their apps to talk to each other!” ). Here’s my whole to-do list process:

To-Do’s/Task Managment

  1. First, you need a to-do list service that can sync to multiple devices. I chose Google Tasks, since even though it’s API is a bit buggy, it is integrated with all my other Google nonsense.
  2. Second, you need a to-do list app. I like Astrid Tasks for Android because it’s cute, open-source, has some amazing features, and it syncs with Google Tasks! (most of the time… see above about Google’s API bugs.)
  3. Now we have your to-do’s to-done, tackle the NFC part with NFC Task Launcher. Here’s the tags I have set up:
    1. Office (Arriving):
      1. Set ringer to vibrate
      2. Turn Wifi on
      3. Show all Astrid tasks tagged “Office”
    2. Office (Leaving):
      1. Set ringer to loud
      2. Turn Wifi off
    3. Home (Desk):
      1. Turn Wifi on
      2. Show all Astrid tasks tagged “Home”
    4. Bedside (Weekday)
      1. Set ringer to silent
      2. Set an alarm for 9am
    5. Bedside (Weekend)
      1. Set ringer to silent
      2. Disable all alarms

Launching Astrid with NFC

To do step 3, I needed a wonderful app called Tasker. It basically is a scripting engine for your phone. You can monitor events in your phone, and trigger different actions based on those events (for instance, turn on GPS whenever you launch the Maps app, etc.). The cool thing is that NFC Task Launcher can launch any Tasker script when you scan an NFC tag. So here’s how I combined them to launch Astrid to show a certain list of tasks:

To get Astrid to show only certain tasks when you launch it, you have to use a custom Intent. Thankfully, Astrid is open-source, so I just browsed the source code to find out how it handled Intents. Turns out, you can give it an ACTION_SEARCH Intent with a query parameter, and it will show you all the tasks whose title contains your query parameter. Here’s the Tasker script that will launch Astrid to show all tasks with “office” in the title:

<TaskerData sr="" dvi="1" tv="1.3.3u2"> <Task sr="task2"> <cdate>1359439958479</cdate> <edate>1359611825161</edate> <id>2</id> <nme>Office</nme> <pri>10</pri> <Action sr="act0" ve="3"> <code>877</code> <Str sr="arg0" ve="3">android.intent.action.SEARCH</Str> <Int sr="arg1" val="1"/> <Str sr="arg2" ve="3"/> <Str sr="arg3" ve="3"/> <Str sr="arg4" ve="3">query:office</Str> <Str sr="arg5" ve="3"/> <Str sr="arg6" ve="3">com.timsu.astrid</Str> <Str sr="arg7" ve="3">com.todoroo.astrid.activity.TaskListActivity</Str> <Int sr="arg8" val="1"/> </Action> </Task> </TaskerData>
Call it “Office.tsk.xml” and import it into Tasker. Then, you just set an NFC Task Launcher action to be a Tasker script named “Office”. You’re all set!

Create Tasks From Your Emails in Thunderbird

What good would this whole teetering structure of hacky popsicle sticks and glue code be if you couldn’t easily make tasks for yourself? Well, I also hacked up a Thunderbird extension so I could create tasks directly from an email (something I do all the time – people will send me an email, and I don’t have time to send a decent reply right then, so I need to remember to do it later. This way I can just right click the email, choose “Convert to Google Task”, and set a due date where I get a reminder in Astrid! Then I just add “office” or “home” to the end of the title and it will show up when I get there! full_circle.gif)

So I found a Thunderbird extension that gets 90% of the way there, called Google Tasks Sync, which is extremely simple but also extremely useful and the fastest way I’ve found to make a task.

Apparently, though, it wasn’t fast enough. I went ahead and hacked in a context menu, so you can right-click on any email and create a new Google Task from the email. Just set a deadline and you’re done! (I sent my patch to the author and he said he’ll include it in the next update, so stay tuned for that!)

If you made it all the way to here, you are either very brave or very bored! Congrats! If you try some location-based to-do lists for yourself, let us know in the comments!

So, as you may know, Algoriddim’s vjay iPad app just came out today. I bought it because it has a video scrubbing feature, which TouchViz (from the creator of TouchOSC) lacks. vjay’s scrubbing and cueing features are way cool: super smooth and great for rhythmic improvisation. However, TouchViz wins in pretty much every other respect:

First of all, the videos don’t loop! They just go to black after they end. Major blooper there when your screen just goes blank during a show.

Secondly, TouchViz has way more effects and blending options. Vjay has like three (I’m not including strobe because no self-respecting VJ should ever use that effect.) Also, there’s no way to control the swirl or fisheye amounts, which would be way more useful than controlling how fast they bounce around like a DVD screensaver. They should be stationary.

Thirdly is price: TouchViz is only $10. vjay is too, but that’s their 50% off sale price.

Basically, I see a lot of potential with vjay, but it’s not quite ready for live performance as a VJ. Maybe it’s meant for a different audience, like video DJs, since it has the audio features as well, but I think they could just do a little work to cater to both. I hope vjay gets some of these issues fixed; then I might be able to use it at an actual show!

TouchViz demo video:

vjay demo video:

Stable ownership is the gift of social law, and is given late in the progress of society. It would be curious then, if an idea, the fugitive fermentation of an individual brain, could, of natural right, be claimed in exclusive and stable property. If nature has made any one thing less susceptible than all others of exclusive property, it is the action of the thinking power called an idea, which and individual may exclusively possess as long as he keeps it to himself; but the moment it is divulged, it forces itself into the possession of every one, and the receiver cannot dispossess himself of it. Its peculiar character, too, is that no one possesses the less, because every other possesses the whole of it. He who receives an idea from me, receives instruction himself without lessening mine; as he who lights his taper at mine, receives light without darkening me. That ideas should freely spread from one to another over the globe, for the moral and mutual instruction of man, and improvement of his condition, seems to have been peculiarly and benevolently designed by nature, when she made them, like fire, expansible over all space, without lessening their density in any point, and like the air in which we breathe, move, and have our physical being, incapable of confinement or exclusive appropriation. Inventions then cannot, in nature, be a subject of property.

– Thomas Jefferson (quoted in Where Good Ideas Come From by Steven Johnson, pp. 241)

I wanted to post custom comments to my Facebook page using Facebook’s dialog. You need the Page’s UID to be able to post to it, and there’s no way in the Open Graph protocol to get the ID of a given URL. Here’s how you do it using the Javascript SDK and FQL:

function facebookGetIdForUrl(url, callback) {
            method: 'fql.query',
            query: "SELECT id FROM object_url WHERE url = '" + url + "'"
          function(response) {

     function (id) {

        alert("Facebook ID = " + id);



I just signed up for an Amazon Android App Store developer account, because it’s free for the first year! (and $99 for each year after that! Yikes!)

Some things in the agreement are pretty sketchy though (Disclaimer: I am not a lawyer! These are my layman’s interpretations):

  1. DRM; Usage Policy. You will apply to the Apps the digital rights management technology we make available, and will not incorporate any other digital rights management technologies into the Apps.” I wonder if this means you won’t be able to use Google’s in-app billing? I don’t want to have to write several versions of the software to use different billing mechanisms!
  2. Delivery Commitment for Apps. You will deliver electronically to us (and continue to make available during the Term all versions of all software applications, games or other digital products (including any special or collector’s editions)… that you or your affiliates make available directly or indirectly to any Similar Service“. As in, you have to submit your apps to both Google’s App Market and Amazon’s App store, and keep them up to date on both. You’re not allowed to make an app available on the Google Market only. It seems that this encompasses all the apps you sell; does that mean Amazon is requiring you to give them all future apps you make? (Note it doesn’t go the other way around – you can release apps on the Amazon store and nowhere else. U mad, Google?)
  3. You also have to release it to Amazon 14 days before you put it on any Similar Service, like the Google Market. Does this apply to just putting it on your website as well?
  4. Amazon reserves the right to charge less for your app than what you are asking. If they do, you may only get 20% of the price you set. So basically, the Wolfram Alpha app that is available for free today (normally $1.99), is only paying poor Wolfram 40 cents, instead of the $1.40 he wanted. Bummer!

But yeah, since it’s free for now I am deciding to try it out. I just submitted my Pocket Looper VJ app! We’ll see if it gets accepted…

As a VJ, you need a lot of different connectors to hook up to different projection systems, etc. Here’s my VJ kit that I take to every venue:


  • Macbook Pro with Resolume Avenue
  • Wii remote and DIY USB-powered sensor bar for WiiJ Video
  • VJacket (wearable wireless MIDI/OSC controller)
  • extra rechargable batteries for above devices!
  • LaCie d2 1TB external drive (quite a hefty block to lug around but the speed of the Firewire 800 and RAID 0 are great when playing 3-4 video clips at a time.)
  • 4GB USB thumb drive to transfer videos if the band brings their own
  • DVI to VGA adapter
  • DVI to RCA/S-video adapter (discontinued – unfortunate because they are incredibly useful – a lot of clubs still use analog video inputs. Also, it works as a video splitter if you have two projectors!)
  • VGA cables: 50 foot and 4 foot
  • RCA cables and female-to-female connectors to chain them together.
  • 1/8 inch to RCA splitters for cameras, iPods, or piping your videos’ sound through the sound system.
  • Projectors:
    • Panasonic PT-AX200U (5000 lumens and an adjustable lens makes this perfect for guerrilla set ups in small venues)
    • Optoma Pico: battery powered and handheld for secondary stage lighting. I usually connect it to my Samsung Galaxy S running Pocket Looper for Android and point it at the kick drum, a band member in a white shirt, or whatever else. One time, the band Battlehooch started the show playing in the middle of the audience with acoustic instruments, so I followed them into the crowd with the handheld and projected on the accordion player!  
  • Power Strip
  • Gaffer’s tape! Way better than duct tape. I cannot stress how many times this has saved me. Often the club will have some, but it’s good to have your own, for instance to secure your projector to less-than-stable surfaces.
  • Video camera and Gorillapod, extra SD cards
  • Projector screen on tripod and white sheet when there’s not enough room onstage for the tripod.
  • Zip ties (good for attaching white sheet to stage)
  • Thin rosin-core solder. In a pinch, you can use a lighter to heat it and solder any components that may have broken. Could be handy for that last-minute hangup!