Visual Studio Fix: Intellisense Not Popping Up or Not Working « OmegaMan’s Musings

I was monkeying around with Resharper optimization and lost Intellisense altogether! Here’s how I got it back.

In quick launch type “Statement Completion” and choose the first one  “Text Editor -> All Languages -> General” to be taken to the options page for all languages.

On the general options page in the “Statement Completion” section override whatever is in the boxes “Auto list members” and “Parameter Information” and makes those checked. Such as shown here:

via Visual Studio Fix: Intellisense Not Popping Up or Not Working « OmegaMan’s Musings.


A caution about git branch names with ‘/’s

Git, you tricky bastard.

Let’s say I first create a branch named ‘wip/foo’:

git branch wip/foo

Git will create a file named ‘foo’ in the folder .git/refs/head/wip/. Now, suppose I attempt to create a new branch named ‘wip/foo/foo-offshoot’. git will return an error:

error: unable to create directory for .git/refs/heads/wip/foo/foo-offshoot
fatal: Failed to lock ref for update: No such file or directory

via : establishing geek cred since 1305712800.

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.

Get Your Pyth-on with PyCharm

I’m still a relative noob when it comes to Python. I started just a few months back and have mostly dabbled with website automation using Selenium. I started by just using Notepad++ and quickly graduated to gVim, but I was missing out on a lot of common IDE features. I wanted to be able to set breakpoints and jump to functions in a go-to-definition fashion.

So I did some searching and found PyCharm from JetBrains. It comes in two flavors, professional and community. Professional offers a 30-day free trial, then you have to buy whereas the community edition is free to use. Since I’m only interested in lightweight, Python-only development, the community edition is perfect for me.


The things I like best about PyCharm are exactly what I mentioned above. I can right-click a function or variable and jump to its definition. I can set breakpoints for debugging, or even just run the script and see results in the built-in console. Code completion and code analysis are also extremely helpful since I’m still pretty new. Being able to scroll through a list of available functions on an object is much more efficient than searching the internet each time, and code analysis helps me learn about the conventions of this new language.

It comes with a variety of keymaps to choose from. Since I was doing my previous Python development in gVim, I installed the Vim plug-in. I soon grew tired of re-learning the ins & outs of Vim, though, and switched to the Visual Studio keymap. A few adjustments later (Declaration to F12, Back to Ctrl+Minus, & Forward to Ctrl+Shift+Minus) and I felt right at home.


I was happy to see that you can create and manage virtual environments through the IDE, allowing projects to be isolated and free from the unneeded packages of other projects.


Another great feature is that it automatically detected and integrated with source control (Git). Without any configuration at all, I’m able to view the history of a file and compare versions.


PyCharm gives me that full IDE feel that I’m used to and was looking for. I definitely recommend it for anybody getting started with Python. I think I’d even suggest checking it out to grizzled vets.

git – How to list branches that contain a given commit?

Need to see which branch(es) contain a Git commit? Try these commands!

List local branches that contain a commit:

git branch --contains <commit>

List remote branches that contain a commit:

git branch -r --contains <commit>

List all (local & remote) branches that a commit:

git branch -a --contains <commit>

via git – How to list branches that contain a given commit? – Stack Overflow.

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.

Ultimate Guide to Speeding Up ReSharper (and Visual Studio) – JetBrains .NET Tools Library – Confluence

After a few months off, I’ve re-added ReSharper to my toolkit. It’s a little pokey with my current solutions, though. I found some good info from JetBrains on speeding it. up. Enjoy!

Ultimate Guide to Speeding Up ReSharper (and Visual Studio) – JetBrains .NET Tools Library – Confluence.

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.

%d bloggers like this: