Author Archives: Dan Savilonis

On Debugging Intel High Definition Audio in Linux and the Beats Audio Conspiracy Part I

A few months ago, while looking into some display issues with my HP Envy 15 laptop, I somehow become aware that the subwoofer was not active when I ran Linux. The sound worked perfectly well otherwise, but there was no bass and it was not nearly as loud as I remembered from Windows. I initially […]

Posted in linux | Tagged , , , | 5 Responses

Building a 64-bit Vim with Python support on Windows 7

I spent a good day trying to build 64-bit vim with Python support, and if I had just known these two tips, I could have saved an enormous amount of time: Install Microsoft .NET Framework 4.0 Make sure Python is in your PATH Part 1: Building Vim I’ve built vim before, quite a few times. […]

Posted in python | Tagged , , , , | 4 Responses

Windows and Linux Serial Port Enumeration

Gathering a list of all available serial ports in a system is a trickier task than you might expect. While it is not difficult, it is rather obscure. On Windows, for example, you are probably used to having serial ports enumerated from COM1 to COM9, and on Linux from /dev/ttyS0 and up. However, modern versions […]

Posted in embedded, python | Tagged , , , , , , | Leave a comment

virtualenvwrapper is for Windows users too!

For a long time I’ve allowed myself to suffer without virtualenvwrapper on Windows because I didn’t think it would work. It turns out I am not only wrong, but that I can use it in all of my daily activity. Virtualenvwrapper provides convenience commands and a central location for storing Python virtualenvs. Virtualenvs are an […]

Posted in python | Tagged , , , , , , | 9 Responses

Deploying Redmine 1.4.1 in a Cpanel Shared Hosting Environment

If you run a low volume website, your best value will be shared hosting and the odds are that it will use Cpanel for management. Consider this website, which I host, along with a few others for 2.99 USD per month. My hosting package includes a plethora of features, all of which I can use […]

Posted in web | Tagged , , , , | 13 Responses

Visualizing the Heap on Embedded Systems – Part II

In the last article, I described a method to acquire heap allocation data from an embedded system. Next, I’ll describe how to visualize the data. First, though, to make things easier, I’ll acquire some real data from a regular Linux application. For simplicity, I profiled a Linux application built with gcc, but the same principle […]

Posted in embedded | Tagged , , , | Leave a comment

Operation Aurora

I have a general distrust for Mcafee, as the maker of the world’s most poorly performing virus scanner / security suite. However, when I came across a Wired article about security holes in the Perforce version control system, I was lured in with interest. I don’t use Perforce, but the catchy headline of stealing Google […]

Posted in security | Tagged , , , | Leave a comment

FTDI USB Serial Port Enumeration on Windows

FTDI is one of the two major manufacturers of USB UART chips, and they provide regularly updated and reliable drivers. Most devices I’ve used don’t bother to implement a custom VID/PID, so you can just use the drivers directly from FTDI. When you connect a large number of USB serial ports, it is often difficult to determine […]

Posted in troubleshooting | Tagged , , , , | 3 Responses

Visualizing the Heap on Embedded Systems

Debugging a memory leak can seem trivial compared to debugging fragmentation. Faced with such a problem recently, I decided I really needed to visualize what the heap looked like to determine how to fix the problem. Many embedded systems avoid using dynamic memory allocation entirely to avoid just this kind of problem, among others. But […]

Posted in embedded | Tagged , , , | 1 Response

Debugging USB Device Installation on Windows

Recently, I ran into a problem trying to install a USB keyboard on Windows XP at work. Given that HID devices always just work with Windows, I wasn’t quite sure how to go about troubleshooting such a ridiculous problem. My first step was to investigate the problem, repeating the process to see what went wrong. […]

Posted in troubleshooting | Tagged , , , | 16 Responses