Like many people, I have decided to ditch Twitter and migrate to Mastodon. This post covers how the migration has worked out for me and some my initial observations on the platform.
A visualization of the sorting algorithm presented by Stanley P. Y. Fung
A post on how the Log4Shell vulnerability affects Solr and how to validate that you have fixed it.
Using Solr's debugQuery parameter to troubleshoot query results
A post on how strings and encodings are related in Ruby, why it's possible (and desirable) to have strings with incorrect encodings, and a gotcha when using strings with invalid encodings with JSON.generate()
A short post on what happens when you assign a value to document.body.innerHTML and a warning about incomplete fragments.
A post on how to create a (tiny) Linux container from scratch using Go.
Five years ago I took my first job as Ruby developer, this blog post is a reflection on what that experience has been for me.
A short post on a curiosity that I ran into when trying to rename files using two file patterns via the Linux mv program
A quick post on how I set the character set to UTF-8 of MySQL database after the fact and converted existing data from Latin1 to UTF-8
The story of why and how I moved my email from being hosted at Gmail to using another webmail provider.
A sample list of steps to install Ruby on a Mac via ruby-install and configure support for multiple versions via chruby, along with a few oddities and gotchas.
An extended version of the notes that I used to give the talk "Build your own software, yes, build it" at Code4Lib 2017 in which I advocate for building our own software as opposed to adopting large open source solutions.
It's that time of the year when I release a new version of my own website but written in a new programming language. This time I rewrote my site in Go and using a MySQL database to store the content. This blog post elaborates on my experience.
A clever way to find where something was defined in a Rails application by combining the output of bundle with grep.
Linked Data Platform (LDP) is a W3C recommendation that defines a set of rules to provide an architecture for read-write Linked Data on the web. This blog post is an introduction to the concept of Linked Data and how to get started with the Linked Da...
A summary of my experience attending Code4Lib 2015 in Portland, Oregon.
A review of the book Practical Object-Oriented Design in Ruby by Sandi Metz. I mostly focus on how much I enjoyed the the emphasis on message passing (rather than on class structure) that Sandi puts on the book as well as her pragmatic approach to de...
My notes and thoughts on the sessions at Hydra Connect 2 in Cleveland, OH.
A brief description on how database access with Node.js and MongoDB is different than database access in other platforms. I discuss the issues of keeping the database connection open, handling re-connections, and a Node.js module to make this process...
Last year I blogged about my first experiences hosting a Node.js website in production and the things that you need to consider like running on port 80, reboots, crashes, security, and so on. This blog post is an update to that post a year later.
This blog post is an introduction to Node.js for traditional website development. In this post we go from a basic "hello world" website with barebones Node.js to a simple website with Express.js.
In this blog post I describe my experiences taking my first Node.js web site to production, running on port 80, and hosting it outside of my local box so that it's available to the world wide web.
A review on how I configured my OS X machine to SSH to Linux box without asking for my password every time. Boy that was more complicated than I thought it would be but I got it working.
An example on how to emulate layouts with Express 3.x and EJS
Slides to the Decaf Introduction to CoffeeScript presentation that I gave at Penn State Web Conference, State College Ruby User's group, and Pittsburgh Tech Fest 2012
A sample configuration file for Sublime Text 2 to compile CoffeeScript files
A small CoffeeScript program to draw binary search trees on a web page. The page is drawn using the HTML 5 Canvas element.
Last year I blogged about my first impressions using a Mac for web development from the point of view of somebody with a strong Windows/C# background. This blog post is a long overdue continuation to that post with my thoughts on the subject 18 month...
In this blog post I show how to use CSS and jQuery to slide-in a panel full page on top of another and then slide back in the original content.
These are my notes from Anders Hejlsberg session on Future Directions for C# and Visual Basic at Build Windows 2011
These are my notes from Jensen Harris session at Build Windows conference on Tuesday September 13th, 2011. Jensen is the Director of Program Management for the Microsoft Windows User Experience Team.
In this blog post I describe some branching strategies that I've found useful when using traditional source control systems like Team Foundation Server (TFS).
A quick explanation on how I got Microsoft Visual Studio Web Developer Express on my MacAir by using a Virtual Machine with VirtualBox
A work around for the annoying Finder Error -36 when working with a NAS
A small Ruby program to draw binary search trees on a web page. This program uses Sinatra to host the web page and HTML 5 Canvas element to do the drawing.
A beginners' guide (written by a git beginner) on how to perform basic version control operations with git including initializing a repository, adding files to it, and using branches.
My experiences getting started with web development on a Mac from somebody with a strong Windows background.
How to properly handle page not found errors in ASP.NET MVC project by returning the proper HTTP status code.
How I troubleshooted an issue where log4net was logging some entries but not others in a ASP.NET MVC application.
This blog posts presents an easy to use C# class to encrypt and decrypt strings in .NET.
In this blog post I show how to execute AJAX calls with jQuery from an ASP.NET MVC application. The first example shows how to do it with an HTTP GET call and the second one uses an HTTP POST call. Both examples use JSON in the return type.
This post describes how to add the option to reset your password for an ASP.NET MVC 2 project.
A quick explanation on how the Yield Return statement works in C#
A review on Frederick Brook's The Design of Design book
A review of the book The Principles of Product Development Flow by Donald Reinertsen
A review of the different stages that teams go through (form, storm, norm, perform) what that means for both the team members and the management group.
I've always thought that when you issue a call to the TransactionScope.Complete() the transaction is either committed or you get an exception if the transaction cannot be committed. In my mind once the call to Complete() returned it was a sure bet th...
A review of some common misunderstandings when people talk about the Model View Controller and what are some other related patterns that might be more appropriated for the technology options that we have on this day and age.
How to use Excel Pivot tables to provider flexible reports to your users.
How to expose your data as an RSS Feed with .NET 3.5
An example on how to expose a WCF service through multiple end points, for example through HTTP and through TCP
A light-weight C# class library that provides the ability to retrieve the list of photosets in your Flickr account and retrieve information about the photos in a photoset.
Summary of sessions that I attended at DevConnections 2008
A short review on the book Managing and Leading (The One Thing) by Marcus Buckingham
Plug for my article Introduction to Scrum in CoDe magazine
Thoughts on the value of always having a running version of your application (even if incomplete) and the difference between iterative and incremental development.
A tip on how static constructors in ASP.NET applications don't necessarily fire up when you might thing they do.
Pictures from the Computer Museum in Paris.
DotWiki 2.0 released
A few thoughts on the considerations that software development teams need to keep in mind when upgrading development tools (or when deciding not to upgrade)
Software Estimates is one of the most controversial topics on software development, including the process to calculate them and the value that they add to the software development process. In this post I give a few guidelines on how to go about them.
An idea on how to do Scrum daily meeting with remote team members.
My initial thoughts on Windows Presentation Foundation
Software Development Process Improvements should be tackled by more than just developers and QA, make sure to include project managers, product managers, and business owners in the process.
A review on Frederick's Brook Mythical Man-Month book
A few thoughts and my take on frequently asked questions about unit testing
A C# program to draw a binary tree. This program implements a binary tree class using C# Generics and also a Windows Form application to draw it on the screen.
A review of the book Lean Software Development by Mary and Tom Poppendieck.