Software Development Deconstructing a Static XModem Encrypted Bootloader This was an on-paper design I used to verify the data access patterns of a hardware bootloader that could write updates to chip config and flash from an encrypted payload using a hardware-protected AES PSK, all clocked by xmodem frames. There are formal verification
Software Development Persist Values in React with Custom Hooks I needed to persist simple settings into localStorage in some react code, but the value of these settings were driven by a reducer. Composing a reducer and an effect hook
Software Development Simple Function Three Ways I've been spending some free time refactoring an OSS project I took over when the original dev sold the Chrome store app to a malware company; users have been asking
Software Development Node.js Encrypted Lantronix XPort Comms The Lantronix XPort [https://www.lantronix.com/products/xport/] is a popular embedded "device server" which is effectively an ethernet card for microcontrollers. It provides transparent ethernet connectivity to a
Technology jQuery Form Serialization Plugin For a number of projects I've needed to serialize all of the values in a form on the client to JSON in order to post the data back to the server via AJAX. Here's a little jQuery plugin I wrote to help with this
Technology Bitbucket Support for git and Attractive Pricing I've been using github [http://github.com] for quite a while for working against open-source code bases, but continued to use my own git installation for private repositories; and I did this because of their pricing model. Their UI is very nice, and their
Technology Why Use an Object Relational Mapper I occasionally (still!) get in heated discussions with fellow developers on the finer points of writing -- or generating -- data access code versus using an O/RM. Usually this discussion is happening at a restaurant or some social gathering place (yes we socialize)
Technology Hiding ReaderWriterLockSlim housekeeping in a using statement Fredrik Mörk has an interesting post [http://softwareblog.alcedo.com/post/2010/03/07/Using-extension-methods-to-hide-infrastructure-code.aspx] on using extension methods to hide housekeeping code related to protecting access to a share resource using a ReaderWriterLockSlim. I recommend reading the article, but the short of
Technology Exiting a Windows Phone Application Turns out that the Application Certification Requirements [http://go.microsoft.com/?linkid=9730558] 4.2.5 expressly disallows calling any methods in the Microsoft.Xna.Framework.Game and .Graphics assemblies when your application uses any methods from the System.Windows.Controls namespace. So
Technology Using Git with Visual Studio C# and VB.NET projects I just recently started using git for source control with some C++ projects and have been loving it! Naturally, I also wanted to start using it with some C# .NET projects in Visual Studio. There are a number git add-ons for Visual Studio but
Technology Linq Aggregate Empty Sequence Linq is great for its compact expressions, and for its -- usually efficient -- lazy-evaluation. These two virtues seem to be spit upon by the Aggregate function. Say you want to aggregate a list of ints. var s = new int[] {1, 2, 3}; int
Technology C++/CLI Converting from String to wchar_t and to char* I recently started working on a managed wrapper for the Terminal Services API, and as my C++/CLI is a bit rusty I ran into some issues which I'm sure are common when trying to handle the impedance mismatch between the managed and unmanaged
Editorial Jeff Atwood of Borg-StackOverflow Careers Assimilation [https://curiouslynerdy.com/wp-content/uploads/2009/12/Jeff_of_Borg.jpg] I've found StackOverflow to be a fun and vibrant community as well as an almost daily touchstone for programming and tech problems. Because of my enjoyment of the site I've started listening to
Technology Subclipse for SVN on Eclipse CDT Subversion is a great way to work on code in a collaborative fashion. There are a couple subversion plugins that work with Eclipse, one of them is called Subclipse. To install Subclipse in Eclipse goto the Help menu and choose "Software Updates...". Once the