Category Archives: Coding

Posts regarding software development.

Smart Home + PC = Better Working from Home

Since the dawn of time I’ve considered the PC (and related devices like Macs, printers, etc…) to be part of my smart home. For some reason, most traditional smart home offerings have treated PCs as somehow disconnected. Sometime after the dawn of time (2004), I built MCE Controller (mcec) as a way of ensuring my home PCs could be as tightly integrated as my whole-home audio system or lights. MCE Controller is a little …Continue reading

winprint 2.0

Ever since I started programming on an Apple ][+ in 1981, I’ve had a thing for printing. My earliest apps focused on printing and my first money-making endeavor was “Tapes”, which printed casette tape ‘J-cards’ for all the mix-tapes of great ’80s music we made for the girls. Whenever I learned a new programming language or OS, the first app I’d write was Spit, an app for printing my source code all pretty (it “spits” source …Continue reading

Goodbye GitHub: MCE Controller now on CodePlex

I love git. I love GitHub. But GitHub doesn’t seem to appreciate open source projects that require hosting more than source code. MCE Controller is an open source Windows app intended to be used by non-developers. This means it has an installer, online documentation, and requires a discussion forum for support for end users. GitHub never really provided great support for this kind of project. For example, there is no forum/discussion feature (although some claim …Continue reading

MCE Controller 1.7 Released – Now Supports RS-232

By popular demand (shocking, I know), MCE Controller now supports RS-232 in addition to TCP/IP connections. This means that you can now control any Windows PC via the serial port. MCE Controller is an open source application I built for my home control system. It makes it easy to integrate Windows PCs with other devices and control systems. Any device that can send strings over TCP/IP or (now!) a serial port can now send commands …Continue reading

Doing git Dev on Two Machines

I prefer coding on my workstation (30” + 24” LCDs, fast, great chair, etc…).  But sometimes want to hack on my laptop (an MBA) when I’m out and about. Here’s my workflow. I am posting this for two reasons: It’s complex enough that regularly forget how to do it. I rely on random Bing searches to remind myself. This way it’s all in one place. I’m not sure I’m doing it right, or if there’s …Continue reading

MCE Controller 1.5.0 Released–Send Unicode chars

MCE Controller allows you to remotely control another Windows PC on your network. For example it allows you to simulate a press of any button on the Windows Media Center IR remote control from another computer; if MCE Controller receives the string “mypictures” it will tell Media Center to go to the “My Pictures” page. Today a user asked how to send Unicode characters such £ and € and I added this functionality to the …Continue reading

Update: Coping with the OSS command line on Windows

A few weeks ago I wrote about Coping with the OSS command line on Windows. In that post, I argued that the Mac is far better for dealing with the current crop of OSS development technologies that rely on the command line, such as Git, Node.js, Ruby/Padrino, and so forth. My argument is based around the fact that most of these technologies are developed by Mac/Linux users and both of those OSs are derived from …Continue reading

Coping with the OSS command line on Windows

Long time (23 years?) Windows user here. I’m not leaving Windows anytime soon, for a variety of reasons. But I do have a Macbook Air. Parallels lets me run the best apps, whether they are Mac apps or Windows apps, on one desktop. For example I’m writing this blog post using Windows Live Writer, the absolutely best blog authoring tool out there. It’s a Windows app but runs flawlessly on the Mac via Parallels.  It …Continue reading

Control Your HTPC Via The Network

[UPDATED: Feb 11, 2012 – Version 1.4.0 Released] MCE Controller enables the remote control of a Windows PC over the network.  It runs in the background on a Windows PC listening on the network for commands. It then translates those commands into actions such as keystrokes, text input, and the starting of programs. I wrote MCE Controller in 2003 for my own home control system. In 2004 I released it publicly so others could use …Continue reading

MCE Controller supports the Windows key

MCE Controller, allows you to simulate a press of any button on the Windows Media Center IR remote control by sending a text command to a TCP/IP port on your Media Center computer. For example if MCE Controller receives the string “mypictures” it will tell Media Center to go to the “My Pictures” page. I wrote this app in back in ~2003 for my own use so I could integrate Media Center with my Crestron …Continue reading

Devs on my team must know INTERCAL

Jim Lyon co-authored the INTERCAL programming language. He’s a dev on my team. We decided that all devs must know this language in order to write code on my project. You should learn it too.

MCE Controller v1.1 Released – and now open source

I built MCE Controller as something that would be useful for my own home. I had minor aspirations of making it do more than it does, but the reality is that I don’t really have the time nor the inclination (it works beautifully for me as is). Until today I have resisted making it open source for the simple reason that I didn’t really understand what it would take to put the source out there …Continue reading

MCE Controller 1.0.4 Released

I’ve released an update to MCE Controller that fixes a bug where it would prevent Windows logoff and shutdown. Head over to to download it. MCE Controller allows the Media Center application of Windows Media Center Edition (MCE) to be integrated into an advanced control system by enabling programmatic control of the user interface via a TCP/IP connection. To put it simply, MCE Controller, allows you to simulate a press of any button on …Continue reading

Bluetooth GPS, Smartphone, Channel9, Oh My!

Channel9 has posted a wicked-cool video of Alex Kipman demoning using Visual Studio to write slick SmartPhone app that talks to both the GPS and MapPoint via a web-service. Who says Microsoft can’t innovate? What other platform provides anywhere near the richness and integration across devices?!?! I purchased my Pharos GPS reciever as part of buying Microsoft Streets & Trips 2005. I bought it at the Microsoft Company Store for a silly low price (you …Continue reading

In depth MCE 2005 article on AnandTech

AnandTech has a very deep article on Windows Media Center Edition 2005. They didn’t think much of the earlier versions of MCE. Some quotes: “Media Center Edition continues to be the coolest looking highest performance PVR/DVR (with a fast enough system) out there on the market today. The interface continues to be clearly ahead of the competition…”“In the end, MCE continues to be a niche product, but if you have the means, then its definitely one …Continue reading

MCE Controller doc ommission

I forgot to mention a key (pun intended) command that MCE Controller supports in the 1.0.3 documentation. The “key:” command allows you to simulate any alphanumeric keyboard key press. For example “key:3” is the same thing as pressing the 3 key on the keyboard. This command is implemented internally in MCE Controller rather than via the MCEControl.commands configuration file; which is why I forgot to document it. I will update the readme file next time …Continue reading

My contributions to the evolution of mascara in Windows UI

Raymond has a fun story about “The evolution of mascara in Windows UI“. Reminded me of my early days of Windows programming. Before I was at Microsoft (and for a bit after) I developed a few (mildly successful) shareware applications for Windows. I think I was one of the very first people to apply 3D effects to controls in Windows applications! In 1989 I developed at DLL that I used in all of my applications …Continue reading

New MCE Controller sample available

Multiple people have asked me for a sample that illustrates how to talk to MCE Controller from Crestron using SIMPL Windows. Ask no more: On the MCE Controller site, I’ve added a SIMPL Windows sample program that illustrates using MCE Controller with a Crestron processor. This sample illustrates using MCE Controller in client mode with a CP2E processor (which is the way that I use it).

A new site has sprung up that provides a very cool, and very creative, way for helping people construct C# managed code declarations for native code interfaces. Almost every time I write C# code I end up having to do some native code interop. Even though I used to know the Win32 API as well as anyone, my p/invoke declarations worry me…I find I typically guess on what types to use etc… Now with …Continue reading

Premise and .NET

Premise Systems has been sold (to an unannounced, but apparently BIG, buyer) and they have released preview versions of both thier Hardware and Services Development Kit (HSDK) and MiniBroker that are .NET based. I’ve spent some time playing with both the new HSDK.NET and Minibroker.NET and the productivity difference is stunning. It took me weeks to implement my Cestron to Premise bridge driver using the old HSDK. If I were to re-write it using the …Continue reading