Category Archives: Tech

Sync Any Folder Between PCs with OneDrive

OneDrive is great for backing up data to the cloud, but one of its limitations is that you are only allowed to specify a single folder. I had an application that I used frequently between two computers, and I needed to manually copy files between the computers any time I changed settings.

After doing a bit of research, I found a great solution utilizing OneDrive and junctions created using mklink. The secret to this approach is to keep the “real” files in your OneDrive folder, and then create the links from the original path.

Here’s a quick example to demonstrate. Let’s assume I have a directory c:\users\adam\foo\settings that I want to sync between computers. I would perform the following steps:

  1. Make a backup of c:\users\adam\foo\settings just in case something goes wrong.
  2. Copy settings into my OneDrive folder → c:\users\adam\onedrive\foo\settings
  3. Delete c:\users\adam\foo\settings
  4. From a command prompt, run the following:

    mklink /j "c:\users\adam\foo\settings" "c:\users\adam\onedrive\foo\settings

That takes care of one PC so that it will use the files that are now contained in the OneDrive folder, but it’s only half the battle. Now we need to switch over to the other PC and configure it to use the OneDrive files, too. I’ll use a different username in my path to help illustrate that these steps are being performed on computer #2.

  1. Make a backup of c:\users\adam.prescott\foo\settings
  2. Delete c:\users\adam.prescott\foo\settings
  3. From a command prompt, run the following

    mklink /j "c:\users\adam.prescott\foo\settings" "c:\users\adam.prescott\onedrive\foo\settings"

Now both computers are configured to use the files contained in the OneDrive folder, and changes will sync between them as changes are made. Perfect!


Introducing Quick File Search | Bitbucket Blog

I’m glad I found this, I’ve really been needing/wanting it. In Bitbucket, you can press ‘F’ to bring up a quick-search dialog and type in any file name to find & jump directly to a file in the repository. Until now, I’ve been manually clicking through directories and hating every second of it! (But this is apparently old news. Using ‘.’ to open the Omnibar is the way to go now. Exact same idea, though!)

Introducing Quick File Search | Bitbucket Blog.

New Home Office & the IOGEAR Dual View Dual Link DVI

I just recently moved back into my house, and a lot’s changed since I was here. Perhaps the most notable difference is that home and work have combined. So, when it came time to configure my home office, I wanted to make sure I had everything I needed to adequately work and play in the same space while also keeping them sufficiently separate.

Let’s talk needs. Two monitors is a minimum for work. Some people like a third display, but it’s give-or-take for me. I find that I’ll be looking at the far-left monitor and not notice something important that’s happening on the far-right. I’m not anti-third display; it’s just not something that I particularly care about. I like two displays for home for some of the same reasons. If I’m learning something, I want to have a page up on one screen while I work on the other. Or, maybe I want to poke away at some code while watching some TV. Either way, two screens makes life better. The old home office had my home and work computers in different rooms because I didn’t have a proper office, but it was time for them to unite.

This union created a dilemma: two computers, three monitors, two keyboards, and two mice. Seems like a perfect job for a KVM, but I was surprised to find that multi-display KVMs aren’t cheap. After a night of research, I decided it would be worth it to splurge and get an IOGEAR 2-port MiniView Dual View Dual Link DVI. On paper, it’s just what I needed. Two monitors, a keyboard, and mouse could be shared between the two computers. The third monitor would be hooked up to a DVR for some entertainment on the side, but it could also be used as a third display for either computer if desired. (I’d change the third display manually using its built-in source selection.)


The MiniView is a cool piece of hardware. It’s got some decent weight to it, and the metal case and buttons look nice–essential for a desktop peripheral! I ran into some hiccups hooking everything up, but I think it may have been because I was hot-swapping everything instead of turning everything off like recommended in the user manual which, of course, was not read until after the fact. The functional shenanigans during setup caused the initial configuration to take the better part of 2 hours and was really frustrating. I was definitely feeling some buyer’s remorse and considering sending it back, but I got it working after a few reboots and do-overs.

Okay, initial setup was done. Displays were working; keyboard was working; mouse was funky. I’d read some reviews about issues with wireless mice, so I wasn’t entirely surprised by this. I had a nice gaming mouse, so I decided to just roll with that, but I couldn’t do it. I missed my Logitech Performance MX and had to go back. Fortunately, the MiniView has a USB port to share a single peripheral between computers. I plugged my Logitech universal receiver into it, and the mouse worked just fine. Boom, problem solved.

I was all done, or so I thought. I ran into another problem a day or two later, this time with the keyboard. The “t” got stuck, and even unplugging and re-plugging it in didn’t solve the issue. So, I grabbed a cheap 3-port USB hub that I had laying around, plugged it into the single shared port on the KVM, and plugged my mouse, keyboard, and wireless headphones receiver into it. Now I’m not using either of the KVM’s dedicated USB keyboard or mouse ports, but everything works perfectly. I lose out on the KVM-specific keyboard and mouse commands, but the KVM is front & center on my desk so I probably wouldn’t be learning or using those commands, anyway.

Everything’s been good for another day or two at this point, and so far, so good. I’m feeling good about this configuration and hope it keeps working!

Oh, and if you’re curious about the monitor/computer connections, my two monitors connect to the KVM via HDMI-to-DVI cables. Computer 1 is connected to the KVM using the KVM’s provided DVI+USB cable and a DVI-to-HDMI cable. Computer 2 uses the DVI+USB cable and an additional standard DVI cable. The third display connects to Computer 1 using a VGA cable (Computer 1 only supports 3 displays if one is VGA), Computer 2 using a standard HDMI cable, and the DVR using a standard HDMI cable. I’m generally keeping the third display disconnected from the computers (through their display control panels) and just using it as a TV, though.

OCR in OneNote

OneNote is good for a lot of things–like taking notes–but did you know that you can also use it as a quick & dirty OCR? It’s a snap to use, too. Just copy an image from the clipboard onto a OneNote page, then right-click and choose Copy Text from Picture.


OneNote works its magic and copies the text it finds to the clipboard. Here’s what the image above produces:

File Edit Format View 
I love text! 
Texty, text, text! 
Untitled - 
Ln2, Col

You can see that it’s far from perfect. I’m not sure why “Untitled -” and “Notepad” aren’t together or why they’re not at the top. It also didn’t do a great job with the text in the status bar, reading Ln 2, Col 19 as Ln2, Col. But it did a good job with the meaty part that I’d actually care about.

Let’s try a more complicated example. Behold, a screen-grab of the Lorem Ipsum generator homepage!

This image has a little bit of everything. There are letters, numbers, columns, different fonts and sizes, and even a background with words! Here’s what OneNote gives us:

Lorevn Ipsuvn 
"Neque porro quisquam est qui dolorem 'psum quia dolor sit amet, consectetur, adpsci vellt 
'There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain 
What is Lorem Ipsum? 
Lorem Ipsum IS simply dummy text of the printing and typesetting 
industry Lorem psum has been the industry's standard dummy text 
ever since the ISOOs, when an unknown printer took a galley of type 
scrambled t to make a type specimen boobc It has survwed not 
only fwe centuries, but also the leap into electronic typesetting, 
remaining essentially unchanged It was popularised in the 1960s with 
the release of Letraset sheets containing Lorem psum passages, and 
more recently with desktop publishing software like Aldus ageMaker 
including versions of Lorem 
Where Does it come from? 
Contrary to popular belief, Lorem psum is not simply random text It 
has roots in a piece of classical Latin literature from 45 BC, making it 
over 2000 years old Richard McClintock, a Latin professor at 
Hampden-Sydney College in V'rgnia, looked up one of the more 
obscure Latin words, consectetur from a Lorem psum passage, and 
gong through the cites of the word in classical literature, discovered the 
undoubtable source Lorem psum comes from sections UllY32 and 
IA1133 of "de Finibus aonorum et Malorum- (The Extremes of Good 
and Evil) by Cicero, written in 45 BC This book is a treatise on the 
theory of ethics, very popular during the Renaissance The first line of 
LÆrem psum, "Lorem ipsum dolor sit amet comes from a line in 
section 32 
The standard chunk of Lorem Ipsum used since the ISOOs is 
reproduced below for those interested Sections T1032 and IAIY33 
from "de Finibus aonorum et Malorum" by Cicero are also reproduced 
in their exact original form, accompanied by English versions from the 
1914 translation by Rackham 
Why Do we use it? 
It is a long established fact that a reader will be distracted by the 
readable content of a page when looking at its layout The point of using 
Lorem psum is that t has a more-or-less normal distribution of letters 
as opposed to using 'Content here, content here making it look like 
readable Many desktop publishing packages and web page 
editors now use Lorem psum as their default model text and a search 
for 'lorem ipsum' will uncover many web sites still 'n their infancy 
Various versions have evolved over the years, sometimes by accident, 
sometimes on purpose (injected humour and the like) 
Where can I get some? 
There are many variations of passages of Lorem Ipsum available, but 
the mayorty have suffered alteration In some form, by Injected humour, 
or randomised words which dom look even slightly believable If you 
are going to use a passage of Lorem psum, you need to be sure there 
ism anything embarrassing hidden n the middle of text All the Lorem 
Ipsum generators on the Internet tend to repeat predefined chunks as 
necessary, making this the first true generator on the Internet It uses a 
dictionary of over 200 Latin words, combined wth a handful of model 
sentence structures, to generate Lorem psum which looks reasonable 
The generated Lorem psum is therefore always free from repetition, 
injected humour, or non-characteristic words etc 
by tes 
Start with 'Lorem 
ips um dolor sit 
Generate Lorem Ipsum 

Okay, pretty good. It did an admirable job of detecting the paragraphs and columns. Most of the words came out fine, but there were problems with numbers (1500s read as ISOOs) like we saw with the simple Notepad example. There were a lot of small typos (reados?), like dropped periods or a missing letter here and there. The takeaway here is that any decent amount of text that you care about should be proofread. If you’re too lazy for proofreading, you might be able to clean it up a bit by pasting into Word and using its spelling and grammar checking.

Despite its flaws, it’s a really fast, really easy way to OCR just about anything you can get on your computer screen. Take a screenshot using Snipping Tool or something better, paste it into OneNote, and OCR that mamma jamma!

JIRA Plug-In for Greenshot

A couple weeks, I wrote about Greenshot–a wonderful free & open-source screenshot utility. During the installation, there were a number of optional plug-ins that I didn’t select because I was skeptical of the application, one of which was for JIRA. I was intrigued and, after my trust was earned, I re-ran the installation and selected to include the plug-in.

The plug-in is pretty cool. I have Greenshot configured to always open the image editor, and the plug-in adds a little JIRA button to the toolbar. When I click it, a dialog pops up that allows me to pick a JIRA issue from a saved filter or enter the JIRA number manually. Click the Upload button, and the image is attached to the specified issue in JIRA. I actually prefer this to JIRA’s attach file process. Quick & easy!

While the plug-in itself is slick, the configuration was not. The first time I clicked the button, it straight-up crashed. I figured out where to enter my JIRA URL, clicked it again, and it crashed. I restarted Greenshot, clicked again, and it crashed. Finally, I ran as administrator, and it worked. Jeesh!

It’s pretty easy to configure once you know what’s up, but knowing what’s up is tricky. So, without further ado…

Configuring the Plug-In

I haven’t taken any time to figure out how to add the plug-in if you didn’t select to include it during installation. So, if you were like me and didn’t install it, go re-run the installer and include it. Once installed, the plug-in is configured in Greenshot’s Settings dialog. Right-click the task tray icon and choose Preferences, then go to the Plugins tab.


Click to highlight the JIRA plug-in and click the Configure button. Another dialog is displayed, prompting you for a URL. Enter the following:



You can test the URL you’ve entered by browsing to it in your favorite browser. If it’s good, you’ll get the WSDL XML. (The plug-in works by generating a class at runtime using the WSDL, so it’s not going to work if you can’t get to the WSDL.) Click Ok to save your changes and Ok to close the Settings window. You need to restart Greenshot for the changes to go into effect. Right-click the task tray icon and choose Exit, then start it back up.

Now you should be good to go. Click the JIRA button in the Greenshot image editor, and you’ll be prompted for your credentials. If you elect to save your credentials, you’ll only be prompted once. If the credentials work, you’ll get the upload-to-JIRA dialog.



In the upload dialog, you can pick a saved filter to see a list of issues. Picking from the list populates the issue number text box at the bottom. You can also manually enter the issue number into the textbox. When a valid issue is entered, the Upload button enables, and clicking it uploads the image to the specified JIRA issue. Good stuff!

Got UAC?

As mentioned previously, the plugin works by dynamically generating a proxy class from the JIRA service WSDL. It saves the generated assembly to disk and then uses it to interact with the JIRA web service. Since it’s generating and saving an assembly to disk, it needs to have administrative priveleges. If you click the JIRA button and receive a crash message that says it can’t find an assembly with a seemingly-random name, try running Greenshot as Administrator.

Mountek nGroove Snap 3

Back before everybody’s cell phone had built-in GPS, I had a TomTom GPS. It came with a suction cup so you could stick it to the window, but that never really worked that well for me. It would constantly fall off the window, and it drove me nuts. So, I bought a beanbag friction mount that I could stick it to, and it would sit nicely on the dashboard whenever I was driving somewhere that I needed directions.

Fast forward to present day. I use my cell phone for directions when I need them, but I prop it up in a little groove below my car’s instrument panel. If I turn too fast, it goes flying, and it’s low enough that I’m constantly looking down for the next turn. The solution is a cell phone mount, and I’ve been shopping for the perfect one for a long time.

I didn’t want something that used a suction cup because of my previous bad experience, and I didn’t want something that used an adhesive because I worry about it doing permanent damage or failing over time. The vents in my car are not in a good location, so any clip-on mount’s not so great. I was considering going for a suction cup to re-use with my beanbag, but I was turned off by storing it. I wouldn’t want to leave it out all the time because the rubber could melt on a really hot day, it’s too big to store with the base & mount assembled, and the idea of disassembling & reassembling with each use is less than ideal, too.

Enter the Mountek nGroove Snap 3 magnetic car mount.


This thing is great. First, it attaches to the CD slot in my car which is perfect. It’s right where I want it in the middle of the instrument panel, and I don’t think I’ll ever put another CD in there, anyway. The mount is small and reasonably unobtrusive, so I won’t have some big, bulky bracket that’s either out all the time or being stored with each use. It’s magnetic, so I just stick a metal badge under my phone’s case and it just sticks–super easy to mount and remove with one hand. There are no brackets, so I can put it in any orientation with whatever cables I might need (charging, stereo). It’s universal, so it’ll work with phones or tablets or anything else that’s light enough to be held by the magnet (which is pretty strong). It can also be used as a desktop stand for your phone, if you’re into that kind of thing, too.

The only thing that I can even think to complain about is that my phone blocks the clock a bit when it’s mounted, but I can still see the time by leaning a little to my left. (So be sure to think about what controls or displays it might be blocking.) Other than that, it’s amazing. Even my wife was impressed, which is really saying something. Best mount ever.

Greenshot for Screenshots

I used to knock on Snagit from TechSmith. I didn’t get why somebody would pay for a screenshot utility when Windows comes with one built-in. Then I got a license, and I was converted. I loved not having to hand-draw crappy arrows, boxes, and highlights. It upped my screenshot game, big-time!


But, like all good things, my time with Snagit came to an end. I left the job that brought us together, and with it, my license. I was back to living in the screenshot dark ages with Snipping Tool and Paint. After a few months, I’d had enough. I was ready to put down $50 for a personal Snagit license so that I’d never be without it again. I’m pretty sure I even went as far as putting it into my cart on the TechSmith website, but I never quite pulled the trigger.

I don’t know why it took me so long to think of this, but I finally headed over to Google and searched for Snagit alternatives. And that’s where I met one of my new best friends: Greenshot.

Greenshot has all the features that I’d grown to love about Snagit, but it’s free & open-source. Here’s a quick list of what I love most:

  • PrtSc to select a region (Ctrl+PrtSc for entire desktop, Alt+PrtSc for current window)
  • Screen grabs open in editor with drawing tools like rectangles, ellipses, arrows, highlighter, textboxes, and speechbubbles
  • Obfuscation tool to draw a box around & blur sensitive data
  • Auto-incrementing counter circles — perfect for giving directions!


The only thing I didn’t love right out of the gate is that the default keybinding for copying the image from the editor to the clipboard is Ctrl+Shift+S instead of just Ctrl+C. But I’ve gotten used to it, and it’s nice being able to use Ctrl+C/Ctrl+V to copy/paste elements in the editor. It lets me do things like have arrows that are the exact same size and parallel, which is great since I’m super anal about stuff like that!

So, if you’re stilling using Snipping Tool and/or Paint or looking for a great alternative to Snagit, give Greenshot a try. You won’t be disappointed! Unless you want something that also takes videos. Then you’d be disappointed and would probably want to go get Snagit. But for screenshot editing, go Greenshot!

My Year in Gadgets

I like gadgets, and so I tend to buy a lot of them. Some are life-changers, and some fizzle out after a few weeks or months. Here’s a rundown of notable gadgets I’ve acquired this year.

Bose SoundLink Mini Bluetooth Speaker

This little guy ended up on my wish list after playing with a demo at Best Buy. I definitely had a “whoa” moment when I heard it for the first time. So, when I moved into an office at work, I decided it was time to pull the trigger. I mean, it would be silly for me to listen to headphones in a room all by myself, right?

This is one purchase that I have zero regrets about. I use it almost every day. I listen to music in the office, NPR in the kitchen, and have toddler dance parties in the living room. It’s also great for being outside. The battery life is really good. I can’t tell you exactly what it is because I think it’s only gone dead on me once or twice. (It has a charging dock that I keep on my desk, and that’s it’s usual resting place.) I think you get a good 10+ hours on a full charge, though.

JayBird BlueBuds X Sport Bluetooth Headphones

After going to the gym for a few weeks, I decided it was time to invest in a pair of quality workout headphones. I wanted to go wireless because I’ve never really liked having the cord flopping around while I run, but I also wanted great sound since I could be using them 5-10 hours each week between workouts and other uses.

First, the good. The sound quality did not disappoint. I was nervous that I’d regret not going for a pair of wired buds with better quality, but these were great. The battery life is pretty good. I charge them every few days, and that’s sufficient to keep them from ever dying on me.

There is some bad with these, though. It took me a week or two to get used to them. In the first few days, I was really disappointed. I had tried a few different configurations (cord over the ear, under the ear, different size buds & wedges), but they weren’t comfortable and kept falling out during workouts. However, I stuck with them, found a configuration that I like, and no longer have any problems–so don’t give up! The only problem I have with them now is that every now and then, I’ll have problems with the audio just stopping. I don’t know if it’s my phone or the headphone that’s the culprit, but I’ll be listening to a song and it will just stop. There is no indication that I have disconnected, but I can take a few steps to reconnect and everything will be fine. I have tried rebooting my phone, power-cycling the headphones, and anything else I could think of. Most days everything is fine, but it’s super annoying on that one day every other week where it’s being temperamental. There have been a couple of days where I’ve given up on them and just stuffed them into my pocket during a workout.

One final gripe is that when I’ve used these to watch Netflix in bed, the audio has been out-of-sync with the picture. The audio sounds great, so I don’t blame the headphones here, but it’s out-of-sync due to bluetooth. So it’s not a problem that I’d have if I’d gone with wired ear buds.

Despite this seemingly negative review, I’m happy with what I’ve got. I’m sure that if I’d selected a wired pair, I’d have regrets about the cord. I love the sound and they’re comfortable. Great for listening to music, not-so-much for video.

Jackery Giant+

A portable power bank is one of those things that I never seemed to think about unless I was in need of one. Before my most recent trip out to the west coast, I decided to pick one up. I was initially deciding between the Lumsing 10400mAh and the Jackery Giant. I liked the Lumsing because it’s super-economical ($25), but I ultimately went with the Giant+ because of–of all things–the location of the USB ports.

One of the reviews of the Lumsing pointed out that it was awkward to use the charger from a pocket. I don’t expect that I’ll be doing my charging from my pants (but who knows), but I like that I can stick the Giant+ in an inner pocket of my backpack and still have the ports exposed. When I need some juice on the go, I can easily plug-in without any fuss and toss the device in need of charging into my backpack. The Giant+ is also slightly bigger (12000mAh) and has a flashlight. The flashlight seems like it could be useful, but the question is whether I’ll have the Giant with me when I need it!

Microsoft Band

When the Band was first announced, I was very “meh” about it. I had been looking for a watch with a built-in timer or stopwatch to help me with my workouts, and so I convinced myself to try it out. I headed over to my local Microsoft Store and they were all out of stock. Now that I couldn’t have one, I really wanted one. So I got myself on a list and waited.

It came a couple of weeks later. I’ve had it for about a month now, and I’m pretty happy with it. The thing I like most is something that I did not expect: the email and text alerts. You can’t really read or reply to these messages, but it’s great to take a quick peek by flipping your wrist to then determine if the it’s worthy of bringing my phone out of my pocket and dealing with it. Payment notification from Verizon, ignore. Text from wife, address immediately.

I haven’t really tried the guided workouts, I don’t really go on runs, and I don’t really care about my step count. I like the workout tracker (essentially just a timer + heart monitor) and sleep tracking, and, as mentioned previously, I really like the email and text alerts. It’s still early with this one, but it seems like a win.

Kindle Voyage

The Kindle Voyage is my latest toy. I had a 1st generation Kindle Fire that was ironically lost in a fire. I like it for reading at night, but I didn’t use many of the tablet features (browser or apps) and the glare was not so good for daylight reading at times. So, I decided to go for a pure e-reader this time. I’ve read just one book so far, but the more I use it, the more I like it.

I decided to get the Voyage for the auto-brightness adjustment, and it works nicely. I also like the page turn buttons on the side but wouldn’t consider this to be any sort of killer feature. All-in-all, I’m happy with this. It’s definitely better for reading than my Kindle Fire was, but I can’t say how it compares to another pure reader like the Paperwhite.

Wagan Power Dome EX 400-Watt Jump Starter with Built-In Air Compressor

This is less techy, but it is no less awesome. I’m a stickler for tire pressure, but the condo that I’ve been living in does not have a nearby power source for me to connect my small air compressor. The gas station air is a pain since it’s usually not free, and I probably don’t have correct change. So, I wanted to find a wireless air compressor that I could keep in my car to use when I need it.

There were mixed reviews about this, but I decided to take a chance. I’m glad I did–I love it. Low pressure? I just pull this puppy out of the cargo area, and I’m back to normal in no time! It doesn’t fill up super fast (about 1-2 lbs every 30 sec), but it definitely gets the job done. Putting a few pounds of air into all four tires is easy work. There are gripes about the valve cord not being long enough, but just tip it on its side and it’s plenty.

It’s also got a jump starter. I haven’t had to use it, but it’s nice to know that I’ve got it. (I’ve been burned by jump starters in the past, so I’m keeping regular jumper cables around, too!) It has USB ports for charging devices, a radio, a flashlight, and both AC and DC power outlets. Plus it looks cool and seems to impress dads and grandpas. I’m happy with this thing just as a portable air compressor, but it does a lot more!

Edit Environment Variables in the Registry

I’m annoyed with the state of environment variables, more specifically the PATH variable. It used to be not entirely intuitive but relatively easy to edit. You’d right-click My Computer > Properties > Advanced > Environment Variables and be home free.

Recently, I needed to add a value to my PATH variable. In Windows 8.1, finding the advanced system properties is a little different, but I made it there without too much trouble. So, I selected the PATH variable, clicked the edit button, and was presented with a dialog box. It looked good, but I couldn’t type anything!

I believe I wasn’t able to type because my existing value exceeded the the character limit of 1024. I’m sure this limit has been there all along, but it was super annoying to deal with. I was able to get around the problem by using PowerShell. This worked fine for adding a new path to the environment variable, but I don’t think it would be so great for editing to remove an unneeded path or correct a mistake. But whatever, it worked, and I thought I was in the clear until today when I found that my added path had inexplicably been removed! Gah!

I headed back to Google for a better solution, and I think I found a winner. You can edit the values in the registry, which gives me everything I’m looking for. I can copy the entire existing value into a text editor, make whatever changes, and then copy it back into the registry and save. Oh, and then you have to reboot. (Ugh.) This all seems WAY harder than it should be, but it does work, and I found it to be less annoying than the alternatives I could find.

Here are the registry keys:

  • User – [HKEY_CURRENT_USER\Environment]
  • System – [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]