Sunday, September 25, 2016

Peek 2.0 is out!

Back in December, I released Peek - an extension for Google Chrome and Opera that allows you to preview links before you download them. After about two months of on-off work, I'm super excited to finally release Peek 2.0.

Here is the full release notes, and I'm pretty sure this is the longest list of changes in any update I've ever made for anything:

  • Now allows previews to 'pop-out' into new windows
  • Toolbar icon now shows number of previews on the page
  • Updated preview interface
  • Supports more Google Drive links
  • Improved performance
  • Changed minimum Chrome version to 47
  • Fixed bug where multiple popups were rendered for some files
  • Changed license to MIT

You can get Peek 2.0 from the Chrome Web Store right now, and the update is in the approval process for Opera users.


Sunday, June 19, 2016

QuickChrome is now NoPlugin

Back in January, I released a new Chrome extension called QuickChrome. With Chrome 45 completely dropping support for plugins, and other browsers trying to do the same thing, I thought it would be a fun project to try and restore some functionality.

QuickChrome detected any QuickTime player objects on websites, and if Chrome supported the video format, replaced it with Chrome's built-in video player. If not, it gave you a link to download the file and play it on your machine. I figured being able to play some content with Chrome's video player, and a download link for others, was much more useful than a useless 'Missing Plugin' error.

Well, for some reason it blew up in popularity. So I gave it a much-needed upgrade - say hello to NoPlugin!

NoPlugin is basically QuickChrome, but better. It now supports detecting Windows Media and RealPlayer plugins. For anything that it can't play inside the browser, it now provides a one-click download and this new notification to open it right from Chrome:

Pretty cool, right? It also has a ton of internal changes and tweaks to make it run much smoother than QuickChrome ever did.

You can download NoPlugin from the Chrome Web Store here. If you still see QuickChrome there, it might still be rolling out to some users. I'm also working on uploading it to the Opera extensions site as well. Enjoy!

Sunday, April 10, 2016

My new site

WordPress has been giving me a ton of issues lately, and I wanted a new domain name ( is a lot of syllables!). So I killed two birds with one stone and switched to this new short website name and switched to Blogger!

Unfortunately Blogger doesn't support redirecting the blog posts on my old site to this one. So you might find some dead links to my old site. I've moved the relevant posts here, but I had a lot of guides that didn't work anymore (like my 3DS homebrew guide) so I didn't move them to here.

That's pretty much it. Enjoy!

Wednesday, October 7, 2015

How to fix ‘SPOCJS’ memory leak on Windows 10

I recently solved a problem that seems to be plaguing Windows 10 users. After I updated my Surface Pro 2 to Windows 10 and attached my keyboard, a task called ‘SPOCJS’ (more specifically, the service ‘Jack Sensing Device for USB Audio’) would continually take up more and more RAM until Windows would crash.

Anyways, since I couldn't find a guide anywhere to fix this, I made one myself! Here’s how to fix it:
  1. Search for the ‘Services’ program from the Start Menu and open it.
  2. Scroll down to ‘Jack Sensing Device for USB Audio’.
  3. Right-click on it and click Properties.
  4. Click the menu next to ‘Startup type’ and change it to disabled.
  5. Click OK.
You’re done! The memory leak should be gone now.

Friday, April 17, 2015

How to make a flash drive sync with OneDrive

I’ve wanted cloud storage services like OneDrive or Dropbox to make flash drives that sync with their services for a while, and there doesn’t seem to be anything like it on the market. This would be immensely useful on shared/public computers, for when you need to access files without using the often less-useful web app or installing the normal sync app.

My goal was to make a flash drive that fully synced with OneDrive, that could be used on public (specifically school computers). This should work for any Windows XP SP2+ computer, as long as whatever restrictions are in place allow running programs from a flash drive (some organizations only allow pre-installed software to be run, for instance). So here’s how I did it.

Setting it up

First, create folders on your flash drive called ‘OneDrive’ and ‘Sync’. The first will serve as the folder where your OneDrive files are kept, and the second where the program that syncs your files will be installed to. It should look something like this:

No go download syncDriver from their website. Run the installer, but make sure to select ‘Only for me’ and not ‘Anyone who uses this computer’ when asked for installation options. When asked where to install it, set it to the Sync folder you made on your flash drive. It should look like this:

Click Yes if an alert pops up that the folder already exists, and the rest of the installation shouldn’t take long. When it’s done, close the installer. If you open the Sync folder, there should be all the files inside:

Yep, there’s definitely files in there. Now open the program called ‘SyncDriver.TrayIcon.exe’ in that folder – this is the program that will sync your OneDrive files. It will ask you for your OneDrive account information, so type it in and press OK. For some reason, it didn’t let me login with my email – but the Gmail I used to make the account worked. This window should appear:

Click the link that’s circled to pick the folder you will sync. This is where you will pick the OneDrive folder on your flash drive – but don’t use the Browse button. Every time you plug your flash drive into Windows, it gives it a random drive letter. So if you picked ‘F:\OneDrive’, it might not work on another computer because the flash drive mounted as letter E: instead. So instead, type “..\OneDrive” (without the quotes) like this:

This is just another way of referencing the OneDrive folder, but it doesn’t use drive letters – meaning it will work on any drive letter a Windows computer gives it. Click OK, look over the sync settings if you want to change something (like picking only certain folders to sync if your flash drive is low on space), and press OK again.

With any luck, it should begin to sync all your files to the OneDrive folder – you can open the folder to check. Just like Microsoft’s OneDrive client, syncDriver adds an icon to the taskbar that you can right-click for information:

Once your files are done syncing, you’re ready to go! Just remember that after you plug in your flash drive to open the ‘SyncDriver.TrayIcon.exe’ program to run the sync in the process. Unfortunately you can’t make a shortcut to the program on the main directory (or another folder) on your flash drive – shortcuts use drive letters.

Making it look a little nicer

If you use your flash drive exclusively for OneDrive sync, you can make it look a little more ‘official’ by applying an autorun file and custom icon. First, download this OneDrive icon file and put it in the Sync folder on your flash drive. Second, download this autorun text file and save it on the root of your flash drive (not in any folder).

This will give your flash drive the name ‘OneDrive’ and the OneDrive icon as the drive icon. Before Microsoft disabled it, you could run a program when you inserted a CD or flash drive – perfect for this use. That’s no longer the case, but you still get a nice looking icon.

If you want, you can hide the autorun.inf file by right-clicking it, clicking on Properties, and checking the box next to ‘Hidden’ near the bottom of the properties window. Now eject the drive and plug it back in to see the changes:

So that’s about it – you now have a fully functioning flash drive that syncs with the cloud. As a bonus, you can install programs on the flash drive to open the files in your OneDrive. For example, if you have Office documents but you aren’t sure if the computer you’re using will have Microsoft Office, download LibreOffice Portable and install it to your flash drive.


Sunday, October 26, 2014

Hacking Android Wear: Part Two

So now that you can install Android apps on your watch, what now? Well there’s tons of applications and games that work to some degree on Android Wear, but usually problems related to the OS make them hard to use. In this post, I’ll be going over a few tricks that will make using Android apps on Android Wear much easier.

Keeping the screen on

One of the ways Android Wear conserves battery is turning off the screen after it’s been on for about 10 seconds. While this is just fine and dandy for watch stuff (you probably won’t be staring at the time for more than that), it’s a problem using Android applications.

Fortunately after trying a few apps, I found one that worked. Keep Screen On Free is a very basic application that allows you to switch between auto turn-off, keeping the screen on until you manually shut it off, or even turn the screen off after a timer. You can download the APK here. To install the application, follow my guide here (you only have to do the ‘Installing applications’ section if you’ve done this before) but use the Keep Screen On Free APK instead of the one in the guide. Now open it with an app launcher like Wear Mini Launcher or tap the screen at the watchface, scroll to Start, and find the app.

Keeping the screen straight

Another issue with Android applications on Android Wear is that they sometimes rotate the screen. While this is normally helpful on phones/tablets, it makes the app impossible to use while wearing your watch. Fortunately there’s another app that can fix this, called Set Orientation. I’ve mirrored an APK of it here for easy installation to your watch. To install the application, follow my guide here (you only have to do the ‘Installing applications’ section if you’ve done this before) but use the Keep Screen On Free APK instead of the one in the guide.

Once installed, find it in the app menu by tapping the watchface, scrolling down to “Start”, and tapping Set Orientation. You can also say “okay google, open set orientation” too, or install Wear Mini Launcher for easy access. Tap the menu, tap the Portrait option, and press OK. If you get a notification about the orientation, just swipe to the left on it until you reach “Mute” option and press it.

Now all applications will stay in portrait mode on your watch, including Android apps. This is especially useful for games that rotate the screen. And the best part is that you don’t need to open the app again to change it!

Managing files on your watch

Some Android applications require you to place files in a certain folder (emulators, for instance). Fortunately it’s pretty easy to copy files from your computer to your watch. First, make sure your watch is connected to your computer via ADB. If you’ve followed my previous guide or any of the ones above, you’re good. Otherwise, read my older guide here for setting up your watch with ADB. Check to make sure your watch shows up with the ‘adb devices’ command, like this:

03107f69d0218bba device
localhost:6666 device

The ‘localhost’ device is your watch. Let’s try pushing a picture from your computer to your watch. Find any picture, type ‘adb -e push’, then a space, then drag in the picture into the command line/terminal window. After that type ‘/sdcard/’. You should have something like this:

adb -e push C:\PICTURE.JPG /sdcard/

The first part (C:\PICTURE.JPG) is the location of the file stored on your computer. The second part (/sdcard/) is the sdcard folder on the watch. While no Android Wear devices have SD card storage, it still inherited the name of that folder from Android. Think of it like your computers’ My Documents folder, it’s where applications store data. Press ENTER on the command and see if it works. If it does, the picture can now be found at /sdcard/PICTURE.JPG on the watch.

But chances are you will probably need to do more than just copy files. What about retrieving them? It’s just the other way around, using the pull command:

adb -e pull /sdcard/PICTURE.JPG C:\

This will pull the file ‘PICTURE.JPG’ to the C: drive of your computer. If you use Mac or Linux, just replace “C:\” with “~/”. But chances are you will need to do more than push/pull files. Here is a handy guide for managing files under Linux, which just so happens to work on Android Wear too. Just remember to put ‘adb -e shell’ before all the commands.

Tuesday, October 7, 2014

Hacking Android Wear: Part One

A few weeks ago, I finally got my hands on the Samsung Gear Live. It's a smartwatch powered by Google's new Android Wear operating system. And like pretty much everything I buy with a screen, I started messing around with it.

It turns out that Android Wear isn't as far off from normal Android as I thought - with some caveats, it's possible to install plain Android apps manually. So I published a video of Minecraft Pocket Edition on my watch, which became somewhat popular. I've made a few more videos since then, my most popular one (currently) being a demo of Windows 95.

Many people have asked me for a tutorial, so I'm splitting this into a few sections for better organization. This part introduces you to ADB and manually installing applications. This will not void your warranty on your watch, and this works with any Android Wear watch. This may seem long, but that's just because I've explained everything in great detail for beginner users.

Installing ADB

ADB, which stands for Android Debugging Bridge, is a program designed to help developers test their applications on Android devices. It's also useful for recovering corrupted devices, and other power-user tasks.

If you have Windows, this tool works great for installing the ADB program (just follow the directions there). If you have a Mac or Linux computer, I've written my own ADB installer called Nexus Tools (directions on the page). Once you have ADB installed (you can test by typing 'ADB' in the command line/terminal and see if it prints out help), you can continue to the next part.

Enabling Debugging Mode

Now go to the Settings app on whatever Android device your watch is paired to, go to About Phone, and keep tapping the 'Build number' until a message says 'You are a developer!'. Go back to the main screen and press the new 'Developer' menu item. Now tap 'USB Debugging' to enable your computer to access your phone via ADB.

Now we have to do the same thing, but on the watch. On the home screen of your watch, say 'okay google, open settings' or hold down the power button on your watch. Now that you are in Settings, scroll to 'About' and press the 'Build number' until you get the same 'You are now a developer!' message.

Go to the Developer Options in the watch settings and tap 'ADB Debugging' and 'Debugging over Bluetooth'. Finally, open the Android Wear app on your phone, press the Settings button on the top right, and check 'Debugging over Bluetooth'. It should say 'Host: disconnected' and 'Target: connected' after you're done.

Tip: You might also want to turn on 'Stay awake while charging', because when the screen turns off whatever app you have open will quit. This will keep the screen on as long as you have your watch plugged in (remember to turn it off after you're done!

Installing applications

Now for the fun part - installing Android apps on your watch. Android applications are stored in files called Android Application Packages, or .apk files. You can find APK's of popular Android apps on various websites, or copy them straight from your phone.

For this tutorial we will use a port of GL Tron found on the F-Droid store. Click here to download the APK, then find it on your hard drive. If you're on Windows, open the Command Line by opening the Start Menu and typing 'cmd' in the search. On Mac and Linux, open the Terminal app.

Plug your phone into your computer via USB, type 'adb devices' in the command and press enter. It should print something like this:

List of devices attached
03107f69d0218bba device

Congratulations, this means you have successfully connected your phone to your computer! But now we have to get your watch connected too. Type these commands into the command line (press enter after each command):

adb forward tcp:6666 localabstract:/adb-hub
adb connect localhost:6666

Now do the same 'adb devices' command. If you've followed these steps correctly, you should see a new device called 'localhost':

03107f69d0218bba   device
localhost:6666          device

Now let's try installing that game. Type 'adb -e install', a space, and then drag the APK file into the command line window. It should result in something like this:

adb -e install C:\Users\corbin\Downloads\com.glTron_4.apk

Now press enter and watch the magic. If you see 'Success' you, well, succeeded! But how do you get to your apps? Well, you can tap on the home screen (bringing up the OK Google screen), and scroll down until you see Start. Tap it, and you will see all your apps (Android Wear, as well as the ones you installed) on the list. You can also install Wear Mini Launcher on your phone to give easy access to your apps as well, or say 'ok google, run gl tron' with voice.

You should see GL Tron on your apps list, tap it and press the left or right sides of the screen to control your lightcycle. Congratulations, you just installed an Android app on your watch!

What works and what doesn't

The above tutorial also works for almost any application, except these: 
  • Apps that require internet access. Android Wear has no API for direct internet connections, so apps that require an internet connection for any reason either crash or report that you are not connected to the internet. This is no longer true, Android apps that require internet access can be used by disconnecting the host phone and making sure the watch is connected to WiFi.
  • Apps with an action bar. An action bar is the top bar found in some apps, see here for examples on what they look like. In some cases, apps just hide the action bar instead of crashing. 
  • Apps that use video. Almost all video players (and apps that use video) crash on Android Wear, due to the lack of built-in video playback. Only some software-accelerated video players work, like QQPlayer. 
  • Apps that aren't built for small screens: Some apps just really don't like that you have a tiny screen, and either encounter bugs or have buttons cut off. Increasing the DPI with ADB may help, but it's reset on the watch's reboot and makes everything on the screen smaller. 

Uninstalling Applications

Uninstalling applications is a bit more work than installing them, I tried dozens of app removers and none of them seemed to work on Android Wear (it must be missing some libraries for that to work). Instead, you have to remove them on your computer via the ADB tool. Type this into the console:

adb -e shell pm list packages -3

This will list all the applications installed on your watch (not including system apps, which you can't delete anyways). Find the ID of the app you want to un-install, for this example we will uninstall GL Tron. The ID will begin with something like com. or org. and end with the name of the app. So in this case, the ID is:


Now to un-install it, simply type this command and press enter:

adb -e uninstall com.glTron

You will notice that the ID of the app you want to un-install is at the end of the command. Once the command prints 'Success', the app should be deleted from your watch.