RSS Amplifier

Blog

Moserware

moserware.comSource feed ↗10 posts

Dormant Last read · last published · next check
Read 4 days ago and current, but nothing has been published for 11 years.

Latest posts

Back from the Future Bugs

(In honor of this quasi-historic day , I wanted to share my most memorable bug.) Ordinary software bugs are merely annoying but straightforward to find and fix. Legendary bugs are the ones that actively resist being found and make you question your sanity for prolonged periods of time. In early 2011, I was working on Kaggle’s submission handling code. Kaggle hosts competitions where the goal is to…

Life, Death, and Splitting Secrets

( Summary : I created a program to help back up important data like your master password in case something happens to you. By splitting your secret into pieces, it provides a circuit breaker against a single point of failure. I’m giving it away as a free open source program with the hope that others might find it useful in addressing this aspect of our lives. Feel free to use the program and…

Notes from porting C# code to PHP

( Summary : I ported my TrueSkill implementation from C# to PHP and posted it on GitHub . It was my first real encounter with PHP and I learned a few things.) I braced for the worst. After years of hearing negative things about PHP, I had been led to believe that touching it would rot my brain. Ok, maybe that’s a bit much, but its reputation had me believe it was full of bad problems . Even the…

Computing Your Skill

Summary : I describe how the TrueSkill algorithm works using concepts you’re already familiar with. TrueSkill is used on Xbox Live to rank and match players and it serves as a great way to understand how statistical machine learning is actually applied today. I’ve also created an open source project where I implemented TrueSkill three different times in increasing complexity and capability. In…

A Stick Figure Guide to the Advanced Encryption Standard (AES)

(A play in 4 acts. Please feel free to exit along with the stage character that best represents you. Take intermissions as you see fit. Click on the stage if you have a hard time seeing it. If you get bored, you can jump to the code . Most importantly, enjoy the show!) Act 1: Once Upon a Time… Act 2: Crypto Basics Act 3: Details Act 4: Math! Epilogue I created a heavily-commented AES/Rijndael…

Just Enough MBA to Be a Programmer

There’s that awkward moment in your software development life when you realize that most of the people in your company aren’t programmers. Scanning your address book reveals Marketing, Sales, Accounting, Human Resources, and yes, the “business people” with their Masters of Business Administration (MBAs). I’ve always been curious about what MBAs really do. In my weaker moments, I’ve even thought…

The First Few Milliseconds of an HTTPS Connection

Convinced from spending hours reading rave reviews , Bob eagerly clicked “Proceed to Checkout” for his gallon of Tuscan Whole Milk and… Whoa! What just happened? In the 220 milliseconds that flew by, a lot of interesting stuff happened to make Firefox change the address bar color and put a lock in the lower right corner. With the help of Wireshark , my favorite network tool, and a slightly…

Using Obscure Windows COM APIs in .NET

Most native Windows APIs are simple to call from .NET. For example, if you need to do something special when showing a window, you can use the ShowWindow API using Platform Invocation Services (P/Invoke) like this: [DllImport("user32.dll")] static extern bool ShowWindow ( IntPtr hWnd , int nCmdShow ); When you call this function, here’s roughly what happens: The CLR calls LoadLibrary on the file…

How .NET Regular Expressions Really Work

Remember when you first tried to parse text? My early BASIC programs were littered with IF statements that dissected strings using LEFT$ , RIGHT$ , MID$ , TRIM$ , and UCASE$ . It took me hours to write a program that parsed a simple text file. Just trying to support whitespace and mixed casing was enough to drive me crazy. Years later when I started programming in Java, I discovered the…

Rebooting Computing: Why?

Have you seen “ The Most Famous Chart in Computer Science Education ?” The exact numbers and data sources vary, but the curve always looks similar: I used data from college bound seniors who indicated on their SAT that they intended to major in “Computer and Information Sciences and Support Services.” The curve tends peak between 1999 and 2001 and then you see a huge decline that has just begun to…