Living the non-Admin life

Living the non-Admin life
I stopped using Windows as an Administrator and I don’t even notice. Keep reading to find out what kind of pitfalls I ran into and overcame, and some ways to keep your sanity as a mere “user”.
Read more →

How to create a SQL Server CLR function

How to create a SQL Server CLR function
Sometimes you need to write a SQL query that you know is going to be really ugly, or you may need to do something that SQL doesn’t support natively. Common Language Runtime (CLR) functions can help in these types of situations.
Read more →

Securing our home/office network

Securing our home/office network
Our home network started off like most. We had a cable modem and a wireless router - two little boxy things plugged into the wall. We had internet; everything worked. Fast forward a few years - We now have a public-facing web server hosting several sites (I jokingly refer to this as “Bob’s Bargain Basement Hosting”), a whole bunch of PC’s/laptops/phones/IoT devices, a Plex server, security cameras, WiFi out the wazoo, and occasionally nefarious people poking around looking for a way in.
Read more →

Troubleshooting SQL Server Performance Issues in Production

Troubleshooting SQL Server Performance Issues in Production
Last week at work we experienced a major performance hit in one of our (SaaS) applications. We use New Relic’s Application Performance Monitoring (APM) software package which flagged SQL as the culprit. One of our clients had started a training class with ~30 people…something we should normally never notice. We’ve onboarded tens of thousands of new users without batting an eye. Something was definitely sideways, and it was time to dig into SQL to find out.
Read more →

Securing your security cameras

Securing your security cameras
TL;DR My security cameras were sending video to China. The following is how I found out and stopped it. # A while back I bought some Power-over-Ethernet (PoE) security cameras and a Network Video Recorder (NVR). The setup was pretty easy - plug the cameras into the NVR, install the app on my phone, and link them up by either scanning the camera-specific QR codes, or hand-typing the codes as shown on the NVR monitor.
Read more →

ThatArcade at ThatConference

ThatArcade at ThatConference
Every year my coworkers and I (and all of our families) attend ThatConference. It’s a family-oriented tech conference in Wisconsin, and it takes place at a gigantic water park. If you haven’t heard of it, you absolutely have to check it out. I’ve been going since 2012, and I can’t say enough good things about it. About a week before the conference this year, I thought It’d be cool to connect with other people who are interested in MAME.
Read more →

Docker 101

Docker 101
This isn’t a “What is Docker?” post; you can find those everywhere, written by people who understand it, and can explain it, much better than I. This is a quick & dirty “get-it-running” primer. A Docker image consists of a “base layer” (usually a slimmed down version of Linux, or Windows) and software additions/modifications layered on top. I’ll use Jenkins as a working example. To download the Jenkins image from the Docker store:
Read more →

Lenovo Yoga - Charging Port Repair

Lenovo Yoga - Charging Port Repair
We bought a new Lenovo Yoga 700-11isk laptop a couple years ago and kept having problems with it charging. We went through 2 AC adapters, and even replaced the charging port. It suffers from a poor design that causes the charging port to become loose over time, and ultimately stop charging. After the last round of AC brick and charging port replacements, it worked for a while (~6 months) and fell victim once more.
Read more →

Accessing HSTS websites using Fiddler. Yes, it can be done!

Accessing HSTS websites using Fiddler. Yes, it can be done!
The other day I came across a StackOverflow comment so valuable (and, unfortunately NOT marked as the answer), I had to share. First, a little context: I was debugging a webapp and popped open Fiddler to check some HTTP requests. Unfortunately, the site uses HSTS (HTTP Strict Transport Security) and was greeted with Chrome’s warning page letting me know that I couldn’t view the site. HSTS prevents man-in-the-middle shenanigans, which was currently being introduced by Fiddler’s SSL cert
Read more →

Ubiquiti EdgeRouter X

Ubiquiti EdgeRouter X
A few months ago we upgraded to Charter’s Business-class internet - basically the same 60Mbps residential service but with a static IP. When the tech finished the install, I plugged my laptop into the cable modem and was pulling down almost 70Mbps! I powered everything down and put my hodgepodge of network stuff back into place. Everything was A-OK, or so I thought. From the top - EdgeRouter X, Netgear FVS336G, security camera NVR, and a Netgear switch.
Read more →

MAME Iron Front-End revisited (WPF)

MAME Iron Front-End revisited (WPF)
After several iterations of MAME Front-ends, I think I’ve landed on something I can call “Done” (for now!) History 2006 I used MameWAH 2007 I wrote my own front-end in VB.net, based on MameWAH (before it was open-sourced) 2010 Attempted a GPU-accelerated Silverlight front-end 2011 Created WomPF!, a WPF front-end with a rotating game-selector 2014 MAME Iron was born when I scrapped everything and rewrote from the ground up in C# 2016 MAME Iron becomes motion-activated with voice-recognition 2017 Scrapped everything again and rewrote from the ground up in WPF, this time with a focus on UI as well as UX.
Read more →

MAME Arcade - Monitor Mount

MAME Arcade - Monitor Mount
I picked up a TV wall-mount bracket from Menard’s for like $6. The bracket has a handy built-in bubble level and I attached it to a 2x4. When I attached it to the sides of the cabinet, I only used one screw on each side (at the top of the 2x4) at first. This allowed me to hang the monitor on the bracket & pivot the 2x4 until I was happy with the angle that the monitor was sitting at.
Read more →

Install Private Internet Access (PIA) on Kali 2017.1

Install Private Internet Access (PIA) on Kali 2017.1
I struggled installing Private Internet Access’ vpn in Kali a few different times using their Linux installer, and decided to share the super-simple way I got it to work. Make sure you have your /etc/apt/sources.list file populated with the correct values. These are the ones I used deb https://http.kali.org/kali kali-rolling main contrib non-free deb-src https://http.kali.org/kali kali-rolling main contrib non-free apt-get update apt-get install network-manager network-manager-openvpn network-manager-gnome network-manager-openvpn-gnome edit /etc/NetworkManager/NetworkManager.conf and set managed=true (in the [ifupdown] section)
Read more →

Secure your credentials for file share mounts on Ubuntu 17.04

I was in “Just make it work” mode and found I’d left my credentials out in plain text after setting up my Plex server to read off a remote fileshare. Don’t do that, instead, do this: Create a directory on your local linux machine where you’ll access the file share: sudo mkdir /media/PlexMedia Modify /etc/fstab and add the following: //remoteservername/fileshare /media/PlexMedia cifs uid=1000,iocharset=utf8,credentials=/etc/cifs-creds 0 0 Now you need to create the credentials file:
Read more →

Disable TLS 1.0 for VevoCart e-Commerce sites

Disabling TLS 1.0 is required to pass PCI scans. I’ve done this before, and it’s fairly trivial in most cases, but when I disabled it on my e-commerce server, VevoCart started complaining. The UPS shipping estimate web service call failed, as well as our credit card processing system (which I didn’t find out about until later). The outbound call to UPS fails because it defaults to TLS 1.0. The simple workaround was to use disable TLS 1.
Read more →

Using VSTS to Build and Publish via Web Deploy

There’s a lot of information out there on how to use Visual Studio Team Services (VSTS) to build and publish to Azure websites, but not a lot on using Web Deploy, so here it is. First, make sure you can successfully publish to Web Deploy via Visual Studio, because that’s what VSTS will use. Take note of the name you use - you’ll need that in your VSTS Build step.
Read more →

MAME Arcade - Voice Control

The final post in a 3-part series showing off some tech I recently added. I thought it would be cool to walk up to my MAME arcade cabinet, say “Play Pac-Man” and magically have that game start playing…so I did that, sorta. I have to press a button for it to start listening, but hopefully I can remove that and have it “always listening” (muhaha). Here’s a quick video showing it in action, with my awesome 7-year old assistant If I say something like “Play Mortal Kombat”, MAMEIron will recognize that there’s more than one Mortal Kombat, and pop up a menu with the various flavors of Mortal Kombat (1, 2, 3, 4, Ultimate MK3, etc.
Read more →

MAME Arcade - Programmable lights

MAME Arcade - Programmable lights
The second post in a 3-part series showing off some tech I recently added. I wanted the cabinet lights to turn on when I walked up to it so I ordered some goodies from MadeInTheUSB.net (They sell a bunch of components that plug in via USB, and can be controlled via C#). Before I continue, I have to plug this company because of the amazing service I received. I wasn’t sure exactly what I needed, but after exchanging a couple emails, I placed an order.
Read more →

MAME Arcade - Motion-activated front-end

The first post in a 3-part series showing off some tech I recently added. I wanted the arcade to “turn on” whenever someone walks up to it, so I wired up my MAME front-end, MAMEIron, to the webcam. Whenever someone comes into view of the webcam, or it senses a change in the environment (like a light turning on), the cabinet will “turn on” by fading from black into the front-end, with a little boot-up-sequence sound effect :)
Read more →

MAME Arcade - Knobs, buttons, and lights, oh my!

MAME Arcade - Knobs, buttons, and lights, oh my!
I’ve been hesitant to seal up my cabinet because I had a major hurdle to overcome. My monitor. I have no way to turn it on without pressing the power button. Well, (I’m embarrassed to even admit that I hadn’t checked long ago), the monitor will remember its on/off status if I kill power to it. This doesn’t really make sense to me, since it has a momentary type switch (as opposed to a regular on/off switch), but whatever…I’ll take it.
Read more →

The positive side-effects of ransomware

The positive side-effects of ransomware
Ransomware is all the rage these days. The bad girls/guys live off the profit, AV companies try to prove their worth by blocking the latest variants, and the media reports on its proliferation across the country¹. There’s a couple positive side-effects of its apparent success. Corporations getting hit by Cryptolocker, Locky, and Cerberus, to name a few, are likely testing out their data-restoration policies. Lots of companies take backups - only a fraction of those actually restore them.
Read more →

Fiddler hosed my proxy settings and now my interwebs don’t work

If you use Fiddler (on Windows), it will set your proxy settings to http=127.0.0.1:8888;https=127.0.0.1:8888. If, for some reason, it doesn’t shut down cleanly, it might not undo that proxy setting, and your internet will cease to function. At first I just rebooted, but I still had no web access. I could ping 8.8.8.8 so I knew I had connectivity. I could ping www.twitter.com, so obviously DNS was resolving. The proxy setting was the next thing I checked, and there it was, mocking me:
Read more →

OWASP Chicago Meetup - Capture The Flag

OWASP Chicago Meetup - Capture The Flag
The Chicago Chapter of OWASP held a Capture The Flag (CTF) meetup which was really cool. The CTF was powered by Symantec, and it ran really smooth. When I arrived, we already had usernames/passwords waiting in our inbox so we could hook up to the VPN. We started promptly at 6:30pm and I started churning through the flags. Unfortunately, due to a scheduling mixup, the CTF ended an hour earlier than originally planned, so I didn’t get too deep into a lot of the technical areas that I wanted to explore.
Read more →

ThotCon 0x7

ThotCon 0x7
ThotCon, short for Three One Two Conference (Chicago’s area code is 312), is one of Chicago’s few hacking conferences. This was my first security conference, and I wasn’t sure what to expect, other than to walk away more educated and (probably) more scared. Success on both counts. I also had a preconceived vision of what the crowd would look like: a cross-breed between Linux beards, and someone dressed up for Comicon.
Read more →

SMTP 5.7.3 Requested action aborted; user not authenticated. [SOLVED!!]

An e-commerce site that I maintain had been working fine, then all of a sudden emails stopped sending. We started seeing this error: Mailbox unavailable. The server response was: 5.7.3 Requested action aborted; user not authenticated We hadn’t changed any code, and our username/password worked fine on the web. It turns out that our web host migrated our website to a new server (with a new IP address), and Microsoft’s security settings kicked in, preventing the emails from being sent.
Read more →

Every MAME Arcade Needs Cup Holders

I’ve had these cup holders for a couple years, and I finally got around to putting them on. They have a nice gap in the side to allow for beer mugs coffee cups to fit right in. They also have a little drain at the bottom for when you’ve had too many “coffees” and can’t manage to remove your beverage without spilling it ;) I’ve had this T-molding even longer. It took me a long time to find the right router bit (kinda pricey at ~$25, and I wasn’t 100% sure it was the right one), and I couldn’t cut the groove until I had everything painted.
Read more →

MAME Arcade Cabinet (mostly) Assembled and Playable!

I’ve made a lot of progress recently, and can see the light at the end of the tunnel. After painting it, I reassembled it. I couldn’t bring myself to put the 25" tube tv back in, so instead I used a 22" LCD I had laying around. I’m more than happy with that decision. After numerous weeks’ worth of hard drive/raid/motherboard issues, I performed a midnight heart transplant and got everything working just in time for a party we were having.
Read more →

MAME Iron (Custom MAME Front-End)

What’s old is new again. I revived my old VB.NET front-end, rewrote it in C#, and named it MAME Iron. Why MAME Iron you ask? It’s a MAME Front-end (Fe) and Fe is the symbol for Iron on the Periodic Table of Elements, of course! Since I decided to ditch my 25" tube TV for a 22" LCD, I have a lot more pixels to work with. I also don’t have to use Comic Sans in Cyan anymore (the only font/color that would show up on that old, low-res display).
Read more →

MAME Arcade Cabinet Primed And Ready For Paint

MAME Arcade Cabinet Primed And Ready For Paint
I built a new control panel since the previous one I had built was a proof-of-concept. This one is the same size and layout, but made with 5/8" MDF instead of the 3/4" oak laminate I had originally used. I added a cutout in the middle for a 4-way joystick, and left a little room to the right of it for two buttons (to be added later). I primed all the pieces, and they’re ready for paint.
Read more →

Migrate Team Foundation Version Control to Git With History

You want to be like all the cool kids and use Git? Me too. Have a ton of source code history you don’t want to lose? Me too. The steps below will create a Git repository from your Team Foundation Version Control source code including all historical versions along with their comments. Note: This is for Microsoft’s Visual Studio Online cloud offering (formerly known as Team Foundation Service), not to be confused with their standalone Team Foundation Server (TFS) product.
Read more →

NetworthShare Private Registration is now closed!

In a month, I had hoped to get 5, maybe 10 beta testers if I was lucky, and I thought I’d have to beat the street posting on Google+, Facebook, Twitter, etc. I ended up with 40 registered beta testers, with only a couple posts on each network! Beta testing should start shortly - I still have some visual tweaks to make. I’m coding specifically for web browsers, however, I want to make sure the experience degrades nicely on smaller devices.
Read more →

MVC and WebAPI routing changes in Visual Studio 2013 RC

I have a mixed WebForms/MVC web project that worked fine in Visual Studio 2012, but failed horribly when I moved to Visual Studio 2013 Release Candidate. All of my WebAPI’s stopped working. Apparently there are changes to routing with the latest Visual Studio release. Previously you did not have to manually specify route information if you were using attribute routing, and now you do. It says that more changes are coming too: http://blogs.
Read more →

Microsoft Build Conference 2013 Hackathon

Due to a cancelled flight, and other delays, we missed the first day of the Hackathon, but we weren’t deterred. A coworker and I embarked on an ambitious Windows Phone/Azure application that, while incomplete, proved to be a great learning experience. Our Windows Phone 8 application was similar to “The Amazing Race” where a player had to complete various checkpoints, and the first player to complete them all, wins. At each checkpoint, the player would have to answer trivia based on the geographic location of that checkpoint.
Read more →

New Side Project - continued

One month in to my side project, and It’s going well. I now have a name for it, however, I’m not ready to disclose it until it goes live. The concept is simple: You enter in your assets & debts, it plots out some charts/graphs about your net worth, and then its publicly available for anyone/everyone to see. If everything goes smoothly, I’m hoping to be ready to launch at the end of May.
Read more →

How Windows 8 FilterKeys Almost Made Me Reformat My Machine

Last weekend, a family member stopped by the house so I could take at an issue with her laptop. I managed to recreate the error, and fired up my work laptop so I could “Bing it”. (Yes, I wear that like a badge of honor!). At the login prompt, I banged away on the keyboard, hit enter, and was dropped into the “Formerly-Known-As-Metro” interface. At this point I hit Window-D to get into the familiar Windows Desktop interface, but was instead mocked with a beeping sound for each keystroke I typed.
Read more →

Microsoft Build Conference 2012 - Hackathon

Microsoft Build Conference 2012 - Hackathon
I participated in the hackathon at Microsoft Build 2012 and made it to the finals. My project was the old card game, Speed. It was the first time I’d ever coded with graphics, and definitely the first time I’d ever written code for a touchscreen. I was proud of what I’d built in my spare time between sessions, and incredibly happy to have made it to the finals considering I was a team of one.
Read more →

Send a text message with Twilio when your IP address changes

I don’t have a static IP, but with a cable modem, it rarely changes (as opposed to when I had DSL it changed weekly). The fact that it changes so rarely is what frustrates me - it always catches me off-guard. I feel lost when I’m remote and I can’t get to my home network, so I wrote an app that: runs every 5 minutes, determines if I have a new IP, and if so, sends me a text message with the new IP.
Read more →

Free self-hosted Wordpress blog on Windows Azure

Recently, Scott Hanselman challenged software developers to blog more - to stop “wasting their words.” He emphasized how important it is to own your own domain and content and so I looked for a way to self-host a Wordpress blog, for free. (I chose Wordpress because I previously had a Wordpress-hosted blog) Here’s how to do it: Sign up for Microsoft BizSpark** program. Sign up for Windows Azure using the BizSpark Azure benefits Create a new Wordpress blog website (from the gallery) Create a CNAME with your domain registrar to point your www name to the name Azure gives you.
Read more →

SharePoint 2010 querystring causes page layout error

If you get this error, and haven’t touched a page layout, don’t worry: This page is not using a valid page layout. To correct the problem, edit page settings and select a valid page layout. I panicked at first thinking about how I might have destroyed my development environment, but it turned out to be something very simple. During a quick prototype, I used a querystring parameter of “ID” in a web part.
Read more →

SharePoint 2010 outgoing email

Outbound smtp email can be set at the farm level (Central Admin –> System Settings –> Configure outgoing e-mail settings) OR at the Web Application Level (Central Admin –> Application Management –> Manage Web Applications –> [select your web app] –> click the General Settings dropdown and select “Outgoing E-mail” Handy to know when you glance at the farm-level settings, and notice you don’t have an outgoing server setup, yet emails are still being sent!
Read more →

Cabinet Work

Finally cut the slanted top/rear piece of the cabinet. The big hold-up was the table saw my dad gave me; I couldn’t figure out how to get it to cut the 45’s I needed. It turns out the handle to unlock the blade is reverse-threaded (and unlabeled), so it took me a while to figure it out. (and by figure it out, I mean swear up a storm, throw things, and cracking the plastic handle).
Read more →

Marquee

Marquee
I modified one of Oscar’s high-res MAME graphics to get rid of the purple flames & I added some white text with a blue glow to it. I scaled it down to the necessary size & had a friend print two different marquees. One is on 3/8" white acrylic, the other is on (I think) 1/4" clear acrylic. I won’t really be able to tell which one is better until I mount the 24" fluorescent light (which is wired & ready to go).
Read more →

TV Shelf

TV Shelf
Since I’m putting a 27″ TV in here, I wanted the shelf to be beefy. I made a 2×4 box frame and screwed an oak piece on top. The box frame had to be at a pretty steep angle for the TV to sit at a comfortable viewing angle, so I put another 2×4 behind the TV that the sides screw into. It gives the cabinet more support & keeps the TV from sliding off the shelf.
Read more →