TIP: Partial screenshots made easy

I have to take partial screenshots when creating emails or documentation almost every day. I'm not a fan of installing extra tools unless they're simple, and truly save me time. A few seconds isn't enough. This is one of those cases, typically I'll just take the screenshot with PrintScreen, or Alt-PrintScreen, paste it into mspaint, select and copy the part I need, and move on.

Read More

Completely remove Printer Driver

I recently had to keep retesting an installer, part of it's actions were to install a print driver, but to be able to keep testing, I had to remove the driver from the computer, not just the printer. So, here's how it's done, in case someone else needs to do this.

Read More

TIP: Always run Visual Studio as an Administrator

If you're like me, you always want Visual Studio opening as Administrator, allowing it to install services, and do whatever you need it to do. But you often forget to right click and "Run as Administrator". Or you just want to be able to use the pinned shortcuts on the task bar. It's really amazingly simple to make it always run as an administrator, just follow these simple steps:

Read More

Yet another "Books you should read" list

These lists are everywhere, every blogger at some point puts up there list of "must read" because ... because they're important. Some of the best books I've read have been off people's lists. When you look at a few dozen lists, you notice the same books over and over and over...and you realize, "I should read this book!". If all these people I respect and follow are recommending it, it must be worth reading. So here's my list, with commentary, hopefully containing some suggestions that you haven't already read, and enjoy when you do.

Read More

Getting Started with Android Development

Last fall I purchased a Nexus 7 (2013) and have really enjoyed the pure Android experience.  I'll be retiring my S3 and buying a Nexus phone to replace it in the near future.  Anyhow, one thing that's always lacking is a way to develop on the tablet...or so I thought!  Enter AIDE, an Android IDE that allows you to develop and run applications right from your tablet!

Read More

Attention Conference Organizers...we're not all novices!

Over the past few years I've been focusing on my professional development (PD). I left a company where I was gaining nothing but stress, to a great company that actively promotes PD. They provide every employee with their own PD budget, they sponsor events, and some of their employees speak and organize conferences.

Read More

Favicon.ico

No more 404s from your browsers trying to download a favicon! Now, a simple one exists. So if you have the site bookmarked, you should now see a steaming cup of caffeine.

Read More

AOP - Logging with Unity

I couple months ago I was tasked with adding logging to an application we are developing. Now, the typical way people handle this, is with a call to "Logger.Log" wherever they want to log that an activity took place. However, this relies on the programmers memory, and while the original team members may know and remember to keep up this practice. The new guy on the team may not. And this is where this technique really starts to break down. Logging is a cross cutting feature. We can't keep all the code in one place, because it's called from all over the application.

Read More

Red, Yellow, Green

So, random thought while driving into work the other day. Why do we have three lights on traffic signals? Why not just a green countdown until the lights turn red. Yellows aren't always the same length, and we have no clue when the green is going to change... with a timer we could reduce accidents significantly. There's no more ambiguity about "I had a yellow" after the accident that happened because they yellow was one second, and the person who legally entered on a yellow, but had to cross eight lanes, which given the short yellow, is impossible.

Read More

Secure Passwords...are they really?

Why do so many sites require me to enter a weak password? They claim to require a strong password, they also will show a handy dandy password strength meter. However, most of the time they restrict how strong my password can actually be.

Read More

No, I won't fix your cell phone...

Maybe it's just me, but after reading Coding Horror's latest blog post The PC is Over, it made me realize another trend I've been noticing. Typically, a few times a week I get the question "Hey, you're a computer guy right? My computer is ..." and then they outline the issue. I tend to reply that fixing computers isn't really what I do. I manage to fix my own, but it's not something I'm good at. And lately, it's getting more true, I actually have an existing PC "pausing" issue that I can't seem to fix (it randomly freezes up for a few seconds/minutes then works fine again). Anyhow, back to the point. I've been noticing that people aren't asking me about their computers as often. I still get asked about the same frequency, but now the questions are about their smart phone.

Read More

I'm an Ass because I give a Shit

Developers get a bad wrap for being difficult to work with. We are often percieved as assholes. We don't mean it, it's not our fault, it's how we are wired. We spend our working lives looking for flaws. It's the only way to build good software. We weren't always this way. When we started, we were optimistic. We thought everyone was competent. Why would anyone put letters in a field meant to show the price of a product? Why would anyone enter a negative age? We didn't check for these things. We got burned. There is always someone who enters a value, or uses a program in a way it wasn't meant to. So, we spent a lot of time writing code that validated input. We thought it was bullet proof. We prevented the user from entering garbage data. We underestimated people's stupidity. Which reminds of us the "God builds a better idiot" joke. Over time, our applications and programs became more complex. And with more complex programs, came more complex problems. Not only are we having to protect against bad input, but now we have to ensure the application works if someone unplugs the network cable, or the computer crashes, etc. The initial problem is a simple solution, but keeping that solution working in all the uncertainty is the new problem.

Read More

Reduce your Technical Debt

Now, let me preface all this by saying it's not a critique on the quality of the person. And I'm not writing this to rip apart anyone. The first goal of development is to write working software that provides business value. However, in providing business value, we can improve the value by improving the quality of code. It's often cited that 80% of the cost of a system is maintaining it after it's written. A lot of that maintenance is feature changes. Which is expected. However, the cost of those changes can be greatly reduced by improving the quality of code that is written, and increasing the maintainability of the codebase. Code is written for humans to comprehend, not computers. They do that in the blink of an eye. It takes us developers much longer to understand hundreds of thousands of lines of code.

Read More

Change and working conditions.

It's funny what can affect our ability to be productive. Well, actually it's not funny. It's serious. And it's been studied to death. But it's funny when you apply some of the changes and realize how drastically a simple change can affect your mood and productivity.

Read More

The Real World

Typically that phrase is a negative thing. We use it when talking to high school students. How they need to prepare for the real world, where they won't be coddled and protected by their parents.

Read More

Waste....

I talked about it in my last post, and it still permeates. The Kanban board I have pushed for at work is still not up. The CIO has even approved it. And you'd think a $100 purchase of a whiteboard and some post-its would be a trivially simple task. However, after a couple weeks, still nothing. We ran a trial on a whiteboard in another workers office while they were away on vacation for a week. And you could quickly see where our bottlenecks were. But the team seeing them, and the people who can actually institute change are two different things. Maybe in another couple weeks we'll finally get it up. Maybe not.

Read More

Eliminating Waste

Like too many projects we start in life, this site became forgotten. Barely started, and with good intentions, I just didn't find the time to follow through. I have many ideas in my head for projects I want to start...but sadly, that's how I think of them. As things I want to start. Not as things I want to finish.

Read More

BB Tips

ALT-CAP-H will bring up your "Help Me!" page with pin, platform, version, mac, signal, etc
Typing "MYPIN" in a message will enter your pin for you.
ALT-"NMLL" will toggle between signal strength bars and numbers
ALT-CAP-DEL will reboot your blackberry

Read More

Gone Mobile

The site has gone mobile. It's looking good on the BB, in fact, that's where this post is being written. How's it work from your mobile device?

Read More

Wrap existing .NET site in a Portal/Theme

Recently I ran into the problem where we were attempting to have all of our websites run inside of a portal. Where you could easily jump from one app to another, without having to go back and forth, or always back to a home page with links.

Read More

XML Validation with XSDs

I've been doing a lot of work with excel uploads lately to allow clients to easily upload data to their systems.  Not the best approach mind you, but they know how to use excel...so what can you do?

Read More

Regexes and Named Capture Groups

Not everyone knows about named capture groups, not everyone knows about regexes for that matter, but for those that do, capture groups are great, they allow us to grab portions of our regular expression match, and use them in our application.  The problem is, as your regex gets more and more complicated, if you still rely on the index of the capture group, to get the data you want, it can change as we make modifications, and be hard to find, and introduce undesired behaviours when you set a variable to capture group 7, when it’s now capture group 8…but you didn’t notice.  Yeah, it should be caught in testing, but it’s nearly 2009, we shouldn’t be referencing data by numbers when we can reference it by name.

Read More