<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>roadha.us</title><link>https://roadha.us/</link><description>software development and whatnot</description><lastBuildDate>Sat, 22 May 2021 00:00:00 -0500</lastBuildDate><item><title>My daughter deserves better</title><link>https://roadha.us/2021/05/my-daughter-deserves-better.html</link><description>&lt;p&gt;I'll be honest--I don't want to write this post, and for a multitude of
reasons. Namely, I don't want to write this post because writing this post
crystallizes the fact that this post &lt;em&gt;needs to be written&lt;/em&gt;. I also feel just so
wholly inadequate to put text on a screen …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Sat, 22 May 2021 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2021-05-22:/2021/05/my-daughter-deserves-better.html</guid><category>women-in-tech</category><category>industry</category></item><item><title>Track change events for YouTube with MutationObserver</title><link>https://roadha.us/2021/04/track-change-events-for-youtube-with-mutationobserver.html</link><description>&lt;p&gt;Have you ever wanted to react to events taking place on a web page, but they
aren't capital-e &lt;a href="https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks/Events"&gt;Events&lt;/a&gt; that you can catch and handle? I was in this
situation recently, where I wanted to grab the current video and chapter titles
to display on &lt;a href="https://twitch.tv/haliphax"&gt;my Twitch stream&lt;/a&gt;. YouTube isn't …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Tue, 20 Apr 2021 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2021-04-20:/2021/04/track-change-events-for-youtube-with-mutationobserver.html</guid><category>my-software</category><category>javascript</category><category>userscript</category></item><item><title>Rate limiting with Flask-SocketIO</title><link>https://roadha.us/2021/03/rate-limiting-with-flask-socketio.html</link><description>&lt;p&gt;I've been transitioning the API for a &lt;a href="https://flask.palletsprojects.com"&gt;Flask&lt;/a&gt; project I'm working on away from
REST and toward &lt;a href="https://socket.io"&gt;Socket.IO&lt;/a&gt;. In doing so, I came to the abrupt and depressing
realization that the rate-limiter I had been using for the REST endpoints
(&lt;a href="https://pypi.org/project/Flask-Limiter/"&gt;flask-limiter&lt;/a&gt;) was unable to apply to Socket.IO endpoints …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 15 Mar 2021 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2021-03-15:/2021/03/rate-limiting-with-flask-socketio.html</guid><category>python</category><category>my-software</category><category>flask</category><category>socket-io</category><category>websockets</category></item><item><title>Aethersprite: a Discord bot framework</title><link>https://roadha.us/2021/03/aethersprite-a-discord-bot-framework.html</link><description>&lt;p&gt;For some months, I had been tinkering with the &lt;a href="https://discordpy.readthedocs.io"&gt;discord.py&lt;/a&gt; library and slowly
building up a bot for use in &lt;a href="https://www.nexusclash.com"&gt;Nexus Clash&lt;/a&gt; faction servers. The more I added to
it, the more I began to realize that what I was really building was a bot
&lt;em&gt;framework&lt;/em&gt;, and that framework …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 04 Mar 2021 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2021-03-04:/2021/03/aethersprite-a-discord-bot-framework.html</guid><category>python</category><category>bot</category><category>my-software</category></item><item><title>Vue.js long-press directive</title><link>https://roadha.us/2021/01/vuejs-long-press-directive.html</link><description>&lt;p&gt;I was looking for an easy way to incorporate the "long press" event so popular
in mobile UI into a web project of mine. In my searching, I came a cross a
&lt;a href="https://vuejs.org"&gt;Vue&lt;/a&gt; directive that claimed to do the trick. Well, it certainly did, but I had
a few reservations …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 06 Jan 2021 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2021-01-06:/2021/01/vuejs-long-press-directive.html</guid><category>javascript</category><category>vue</category></item><item><title>Halfmoon CSS framework</title><link>https://roadha.us/2020/10/halfmoon-css-framework.html</link><description>&lt;p&gt;I've been using a CSS microframework, &lt;a href="https://shoelace.style"&gt;Shoelace&lt;/a&gt;, for a little while now in one
of my hobby projects. Recently, they began releasing beta versions of their new
version and I discovered that they are moving from a CSS microframework to a
full-blown web component library. I wish them luck, but …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Tue, 20 Oct 2020 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2020-10-20:/2020/10/halfmoon-css-framework.html</guid><category>css</category></item><item><title>Minifying Javascript using ESBuild with Flask-Assets</title><link>https://roadha.us/2020/09/minifying-javascript-using-esbuild-with-flask-assets.html</link><description>&lt;p&gt;I've been using &lt;a href="https://flask.palletsprojects.com"&gt;Flask&lt;/a&gt; and its &lt;a href="http://flask-assets.readthedocs.io"&gt;Flask-Assets&lt;/a&gt; package (which is a wrapper
around the &lt;a href="https://webassets.readthedocs.io"&gt;webassets&lt;/a&gt; package) for quite some time now without issue, but
recently, I've been scratching an itch for ES2016 and beyond. One of my
favorite features of ES2016+ is that modules (and importing them) are part of …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Tue, 22 Sep 2020 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2020-09-22:/2020/09/minifying-javascript-using-esbuild-with-flask-assets.html</guid><category>flask</category><category>javascript</category><category>python</category><category>tool</category></item><item><title>Nexus Clash Dev Team</title><link>https://roadha.us/2020/09/nexus-clash-dev-team.html</link><description>&lt;p&gt;Well, as happens perpetually, I have neglected my blog. This time, at least, I
do have good reasons: I've been coding! Primarily, I have been developing
quality-of-life features and refactoring legacy code for &lt;a href="https://www.nexusclash.com"&gt;Nexus Clash&lt;/a&gt;, as I
have recently joined the development team. Huzzah! It is a rewarding experience
working …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 11 Sep 2020 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2020-09-11:/2020/09/nexus-clash-dev-team.html</guid><category>blog</category></item><item><title>Nexus Clash UserScripts</title><link>https://roadha.us/2020/04/nexus-clash-userscripts.html</link><description>&lt;p&gt;Carrying on my rich tradition of shoehorning quality-of-life improvements into
PBBGs, I've created a couple of UserScripts for the &lt;a href="https://www.nexusclash.com"&gt;Nexus Clash&lt;/a&gt; browser game.&lt;/p&gt;
&lt;p&gt;The first is an improvement to the Pets management panel which color-codes pets
whose AP is running low and shows their decay time in both GMT and …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 02 Apr 2020 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2020-04-02:/2020/04/nexus-clash-userscripts.html</guid><category>javascript</category><category>userscript</category></item><item><title>Tail for browser windows</title><link>https://roadha.us/2020/02/tail-for-browser-windows.html</link><description>&lt;p&gt;Have you ever been watching log output via a web application, and you just want
your browser window to jump to the bottom of the document whenever new output
shows up? Well, stranger, let me tell you, I certainly have. That's why I wrote
a &lt;a href="https://en.wikipedia.org/wiki/Bookmarklet"&gt;bookmarklet&lt;/a&gt; that does just that …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 13 Feb 2020 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2020-02-13:/2020/02/tail-for-browser-windows.html</guid><category>bookmarklets</category><category>javascript</category><category>tool</category></item><item><title>Browser access keys</title><link>https://roadha.us/2020/02/browser-access-keys.html</link><description>&lt;p&gt;Thanks to the &lt;a href="https://www.nexusclash.com"&gt;Nexus Clash&lt;/a&gt; &lt;a href="https://roadha.us/2020/01/userscripts-for-urban-dead.html"&gt;PBBG&lt;/a&gt;, I have (somewhat) recently
been exposed to &lt;a href="https://en.wikipedia.org/wiki/Access_key"&gt;web browser access keys&lt;/a&gt;. I think if it had not been a web
app, such as the game, but rather a web site, such as someone's blog, I would
not have seen them for the useful tool …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 06 Feb 2020 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2020-02-06:/2020/02/browser-access-keys.html</guid><category>accessibility</category></item><item><title>UserScripts for Urban Dead</title><link>https://roadha.us/2020/01/userscripts-for-urban-dead.html</link><description>&lt;p&gt;Several years ago, I wrote a series of
&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/"&gt;UserScripts&lt;/a&gt;
for a persistent, browser-based game (PBBG) called
&lt;a href="http://urbandead.com"&gt;Urban Dead&lt;/a&gt;. These scripts tidy up the user interface
a bit and add some new features to the game that make quality-of-life
improvements to the experience (in my opinion). I abandoned them--and the
game--for …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 31 Jan 2020 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2020-01-31:/2020/01/userscripts-for-urban-dead.html</guid><category>urban dead</category><category>userscript</category><category>javascript</category><category>plugin</category></item><item><title>Using ASP.NET connection strings in PowerShell scripts</title><link>https://roadha.us/2020/01/using-aspnet-connection-strings-in-powershell-scripts.html</link><description>&lt;p&gt;I found a trick for loading ASP.NET &lt;code&gt;connectionString&lt;/code&gt; elements from
configuration files for use in PowerShell scripts, and I figured I would share
it with the class. They are, as should have been obvious to me much sooner,
simply XML nodes in an XML document. This comes in pretty …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 30 Jan 2020 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2020-01-30:/2020/01/using-aspnet-connection-strings-in-powershell-scripts.html</guid><category>powershell</category><category>aspx</category><category>dot net</category></item><item><title>The Sound of Silence</title><link>https://roadha.us/2019/12/the-sound-of-silence.html</link><description>&lt;p&gt;I really haven't been giving this blog the tender love and care that it so
truly deserves. I hope to change that in the near future. Then again, I know
I've said that before oh-so-many times. What's different about this time?&lt;/p&gt;
&lt;p&gt;Placeholder post is forlorn with an air of mystery …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Sun, 08 Dec 2019 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2019-12-08:/2019/12/the-sound-of-silence.html</guid><category>blog</category></item><item><title>Playing with Dungeon Painter Studio</title><link>https://roadha.us/2018/08/playing-with-dungeon-painter-studio.html</link><description>&lt;p&gt;As many nerds do, I play Dungeons &amp;amp; Dragons--specifically, 5th Edition. I've
mostly been a player the entire time, but I am the DM (Dungeon Master) of a
play-by-post campaign, and recently, tried my hand at a live-play campaign
that will serve as a palate cleanser for our regularly-scheduled games. In …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 01 Aug 2018 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2018-08-01:/2018/08/playing-with-dungeon-painter-studio.html</guid><category>dnd</category><category>games</category><category>hobby</category></item><item><title>More FlaskBB development</title><link>https://roadha.us/2018/03/more-flaskbb-development.html</link><description>&lt;p&gt;The train keeps rolling. I've been busying myself with more
&lt;a href="https://github.com/sh4nks/flaskbb"&gt;FlaskBB&lt;/a&gt; development lately. I took the
Docker image and expanded it into a &lt;code&gt;docker-compose&lt;/code&gt; example. I've also
built a plugin for managing email and RSS notifications and another for
adding a dice-rolling macro to the forum. The &lt;code&gt;dicebot&lt;/code&gt; plugin is …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 29 Mar 2018 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2018-03-29:/2018/03/more-flaskbb-development.html</guid><category>my software</category><category>python</category><category>flaskbb</category><category>plugin</category></item><item><title>FlaskBB development</title><link>https://roadha.us/2017/12/flaskbb-development.html</link><description>&lt;p&gt;Lately, I've been getting involved with some Python-based forum software,
&lt;a href="https://github.com/sh4nks/flaskbb"&gt;FlaskBB&lt;/a&gt;. I had been running phpBB for one
of my web games' forums, and it became overrun with bots. Given my attraction
to Python over the last few years, I began searching for a new solution written
in Python. FlaskBB …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 25 Dec 2017 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2017-12-25:/2017/12/flaskbb-development.html</guid><category>my software</category><category>python</category><category>flaskbb</category><category>plugin</category></item><item><title>Jumping on the static site generator bandwagon with Pelican</title><link>https://roadha.us/2017/06/jumping-on-the-static-site-generator-bandwagon-with-pelican.html</link><description>&lt;p&gt;I've decided to abandon WordPress for my blog and switch to a static site
generator. Given my recent interest in Python, I decided to look for a
Python-based solution. I've settled on &lt;a href="https://blog.getpelican.com/"&gt;Pelican&lt;/a&gt;.
I'm already resting easier knowing that my blog isn't a potential attack
vector, and I'm experimenting with …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 05 Jun 2017 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2017-06-05:/2017/06/jumping-on-the-static-site-generator-bandwagon-with-pelican.html</guid><category>python</category></item><item><title>Hosting my own git repositories</title><link>https://roadha.us/2016/10/hosting-my-own-git-repositories.html</link><description>&lt;p&gt;I've run my own personal git service for several years now. Previously,
it was with &lt;a href="https://git.zx2c4.com/cgit/about/"&gt;cgit&lt;/a&gt; on nginx and
gitolite. I then &lt;a href="https://roadha.us/2012/07/add-password-maintenance-feature-to-cgit-with-php.html"&gt;modded cgit with some password maintenance
features&lt;/a&gt;.
After a while, I tried using several more "modern" git repo hosting
solutions, and I've finally settled on
&lt;a href="https://github.com/gogits/gogs"&gt;gogs&lt;/a&gt;, the &lt;strong&gt;Go …&lt;/strong&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 06 Oct 2016 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2016-10-06:/2016/10/hosting-my-own-git-repositories.html</guid><category>git</category><category>my software</category></item><item><title>repo2site: Make a web site out of a git repo's MarkDown files</title><link>https://roadha.us/2016/10/repo2site-make-a-web-site-out-of-a-git-repos-markdown-files.html</link><description>&lt;p&gt;I've just finished the initial work on a script that will make a
full-HTML website, driven by AJAX, out of the MarkDown (*.md) files in
a git repository. It's currently geared toward GitHub, but could easily
be adapted to other repository hosting services.&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/haliphax/repo2site"&gt;Check it out!&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The problem I was …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 05 Oct 2016 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2016-10-05:/2016/10/repo2site-make-a-web-site-out-of-a-git-repos-markdown-files.html</guid><category>git</category><category>javascript</category><category>markdown</category><category>my software</category><category>tool</category></item><item><title>ASP.NET/C# image resizer for responsive layouts</title><link>https://roadha.us/2016/09/aspnetc-image-resizer-for-responsive-layouts.html</link><description>&lt;p&gt;I will probably elaborate on this a bit further when I find some more
time, but for now, this post is going to be mostly code. What I have
here is a &lt;em&gt;relatively&lt;/em&gt; simple way to generate images that are resized
server-side based on the screen dimensions (note: not window …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Tue, 27 Sep 2016 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2016-09-27:/2016/09/aspnetc-image-resizer-for-responsive-layouts.html</guid><category>aspx</category><category>c-sharp</category><category>dot net</category><category>image editing</category><category>javascript</category><category>my software</category><category>regex</category><category>responsive</category></item><item><title>A quick shell script for wine prefixes</title><link>https://roadha.us/2016/06/a-quick-shell-script-for-wine-prefixes.html</link><description>&lt;p&gt;Wine, the Windows emulator-that's-not-an-emulator for Linux
distributions, has a way of maintaining separate Windows systems using
the &lt;code&gt;WINEPREFIX&lt;/code&gt; and &lt;code&gt;WINEARCH&lt;/code&gt; environment variables. While it's a
powerful mechanism, it's not so handy to type it all in on the command
line over and over. To that end, I have whipped up …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 16 Jun 2016 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2016-06-16:/2016/06/a-quick-shell-script-for-wine-prefixes.html</guid><category>linux</category><category>my software</category><category>shell</category><category>tool</category></item><item><title>Lower-case specific query string keys with IIS URL Rewrite</title><link>https://roadha.us/2016/05/lower-case-specific-query-string-keys-with-iis-url-rewrite.html</link><description>&lt;p&gt;We're going through some normalization of URLs at my day job, which has
necessitated some interesting rewrite rules for lower-casing specific
query string keys. Essentially, we need to turn &lt;code&gt;site=CampusName&lt;/code&gt; into
&lt;code&gt;site=campusname&lt;/code&gt;. After quite a bit of tinkering with &lt;a href="https://www.iis.net/downloads/microsoft/url-rewrite"&gt;IIS URL
Rewrite&lt;/a&gt; rules, I
managed to pull it …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 11 May 2016 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2016-05-11:/2016/05/lower-case-specific-query-string-keys-with-iis-url-rewrite.html</guid><category>fix</category><category>iis</category><category>regex</category><category>seo</category></item><item><title>jQuery visibility pseudo-selectors</title><link>https://roadha.us/2016/04/jquery-visibility-pseudo-selectors.html</link><description>&lt;p&gt;To help me with a project at work, I've written two jQuery
pseudo-selectors which will help determine if an element is currently in
the viewport or if it has been reached during scroll. This can be
incredibly powerful if you're looking to only display certain items
(like a "back to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 20 Apr 2016 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2016-04-20:/2016/04/jquery-visibility-pseudo-selectors.html</guid><category>javascript</category><category>jquery</category><category>my software</category><category>plugin</category></item><item><title>My text editor configuration</title><link>https://roadha.us/2016/04/my-text-editor-configuration.html</link><description>&lt;p&gt;I've been a Vim (and gVim) user for several years now, so naturally,
I've amassed a byzantine maze of configuration settings and blessed
plugins. This evening, I decided to publicize my configuration. Check it
out!&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;There are many neat features like autocompletion, highlighting the 80th
column, a tag bar, quick …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Sat, 09 Apr 2016 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2016-04-09:/2016/04/my-text-editor-configuration.html</guid><category>my software</category><category>plugin</category><category>tool</category><category>vim</category></item><item><title>Twitter 'Acro' bot</title><link>https://roadha.us/2016/01/twitter-acro-bot.html</link><description>&lt;p&gt;It's been a while since I actually wrote it, but I realized this evening
that I never posted about it on my blog. What I'm referring to is the
'Acro' bot for Twitter I wrote in Python.&lt;!--more--&gt; An acronym is
chosen at random by the bot, and then participants have …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Sat, 30 Jan 2016 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2016-01-30:/2016/01/twitter-acro-bot.html</guid><category>api</category><category>git</category><category>my software</category><category>python</category><category>twitter</category></item><item><title>Dynamic GridView rows in ASP.NET</title><link>https://roadha.us/2015/12/dynamic-gridview-rows-in-aspnet.html</link><description>&lt;p&gt;Here's a simple proof-of-concept for dynamically adding and removing
rows in an ASP.NET &lt;code&gt;GridView&lt;/code&gt; control while maintaining the existing
data.&lt;!--more--&gt; The &lt;code&gt;ViewState&lt;/code&gt; is used to maintain the information
between postbacks. The &lt;code&gt;rehydrate_table&lt;/code&gt; function takes advantage of
this to rebuild the table anew whenever an event takes place.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Default.aspx …&lt;/strong&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 23 Dec 2015 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2015-12-23:/2015/12/dynamic-gridview-rows-in-aspnet.html</guid><category>ajax</category><category>aspx</category><category>c-sharp</category><category>dot net</category><category>forms</category></item><item><title>Circumvent Get-ADGroupMember limit in PowerShell</title><link>https://roadha.us/2015/09/circumvent-get-adgroupmember-limit-in-powershell.html</link><description>&lt;p&gt;If you've ever tried to pull the &lt;code&gt;members&lt;/code&gt; list of a large AD group with
the &lt;code&gt;Get-ADGroupMember&lt;/code&gt; PowerShell cmdlet, you will undoubtedly have run
up against an error message telling you that the limit has been
exceeded. There is, however, a way to work around this limitation: Using
&lt;code&gt;Get-ADGroup&lt;/code&gt; and …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Sat, 26 Sep 2015 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2015-09-26:/2015/09/circumvent-get-adgroupmember-limit-in-powershell.html</guid><category>active directory</category><category>fix</category><category>powershell</category></item><item><title>Validating file uploads in Sitecore WFFM</title><link>https://roadha.us/2014/11/validating-file-uploads-in-sitecore-wffm.html</link><description>&lt;p&gt;Our Sitecore installation was in dire need of a way to lock down file
uploads on forms built with the Web Forms for Marketers (WFFM) module;
out of the box, it doesn't do any checking at all, which can lead to
some risky situations. I tacked on a simple whitelist …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 17 Nov 2014 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2014-11-17:/2014/11/validating-file-uploads-in-sitecore-wffm.html</guid><category>c-sharp</category><category>dot net</category><category>fix</category><category>forms</category><category>my software</category><category>regex</category><category>security</category><category>sitecore</category></item><item><title>Disable SSLv3 to avoid POODLE attack in web.py</title><link>https://roadha.us/2014/10/disable-sslv3-to-avoid-poodle-attack-in-webpy.html</link><description>&lt;p&gt;An open source application that I contribute to uses web.py to provide a
web server platform for its services alongside the other platforms
available. I recently updated it to use a sane set of default ciphers
and to disable the SSLv3 protocol in order to avoid the POODLE attack …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 15 Oct 2014 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2014-10-15:/2014/10/disable-sslv3-to-avoid-poodle-attack-in-webpy.html</guid><category>encryption</category><category>my software</category><category>python</category><category>security</category></item><item><title>SVG polyfill in pure Javascript</title><link>https://roadha.us/2014/01/svg-polyfill-in-pure-javascript.html</link><description>&lt;p&gt;A designer at work pointed out &lt;a href="https://github.com/aw2basc/svg-img-polyfill"&gt;this SVG
polyfill&lt;/a&gt; as a candidate
for our new production site. While I like the elegance of it, I was a
bit disappointed that the author felt the need to include jQuery as a
dependency simply to use its selector engine and &lt;code&gt;each&lt;/code&gt; function …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 13 Jan 2014 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2014-01-13:/2014/01/svg-polyfill-in-pure-javascript.html</guid><category>javascript</category><category>my software</category><category>polyfill</category><category>svg</category></item><item><title>Give-Me-Coins.com Condensed UserScript</title><link>https://roadha.us/2013/12/give-me-coinscom-condensed-userscript.html</link><description>&lt;p&gt;Lately, my interest has been piqued by cryptocurrency. After discovering
that my ATI card could produce a decent hash rate without seriously
spiking my electricity bill, I got specifically interested in Litecoin.
Long story short, I joined a Litecoin mining pool
(&lt;a href="https://give-me-coins.com"&gt;Give-Me-Coins.com&lt;/a&gt;) and decided that I
could do without …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 05 Dec 2013 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2013-12-05:/2013/12/give-me-coinscom-condensed-userscript.html</guid><category>encryption</category><category>javascript</category><category>my software</category><category>userscript</category></item><item><title>Tribute: An Homage to My ASCII Heroes</title><link>https://roadha.us/2013/11/tribute-an-homage-to-my-ascii-heroes.html</link><description>&lt;p&gt;I don't generally write anything on here that isn't about code; I don't
like to use this as any kind of a soapbox. To me, this site is about
sharing tricks and solutions I've created or come across in software
development. That being said, I am so incredibly proud of …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 13 Nov 2013 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2013-11-13:/2013/11/tribute-an-homage-to-my-ascii-heroes.html</guid><category>my software</category></item><item><title>Mozilla's TogetherJS in a bookmarklet</title><link>https://roadha.us/2013/10/mozillas-togetherjs-in-a-bookmarklet.html</link><description>&lt;p&gt;Mozilla recently introduced
&lt;a href="https://hacks.mozilla.org/2013/10/introducing-togetherjs"&gt;TogetherJS&lt;/a&gt;,
a succession of their TowTruck service. Being that it is so similar to
TowTruck, I went ahead and made a bookmarklet for it.&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;Drag the bookmarklet below onto your bookmarks bar, and tell your
collaborators to do the same. When you're on a page you want …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 17 Oct 2013 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2013-10-17:/2013/10/mozillas-togetherjs-in-a-bookmarklet.html</guid><category>bookmarklets</category><category>javascript</category><category>tool</category></item><item><title>Bulk rename Subversion files with PowerShell</title><link>https://roadha.us/2013/09/bulk-rename-subversion-files-with-powershell.html</link><description>&lt;p&gt;Scenario: We're upgrading our reporting software at work, and the way
that it used to integrate with SVN (through a terrible SCC bridge)
involved arbitrarily placing "app_" at the head of the file names. Of
course, in the new version, they no longer do this, and so all of our …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 13 Sep 2013 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2013-09-13:/2013/09/bulk-rename-subversion-files-with-powershell.html</guid><category>fix</category><category>powershell</category><category>regex</category><category>svn</category><category>tool</category><category>webfocus</category></item><item><title>Truck It!: Mozilla TowTruck in a bookmarklet</title><link>https://roadha.us/2013/07/truck-it-mozilla-towtruck-in-a-bookmarklet.html</link><description>&lt;p&gt;&lt;a href="http://www.mozillalabs.com/"&gt;Mozilla Labs&lt;/a&gt; has this really nifty,
Javascript-based collaboration utility, ~~TowTruck~~, which allows
real-time web editing collaboration in the browser. It's got a lot of
nifty features I won't get into in this post; sufficed to say, it's
pretty frickin' sweet. What I did not find to be as frickin' sweet …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 11 Jul 2013 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2013-07-11:/2013/07/truck-it-mozilla-towtruck-in-a-bookmarklet.html</guid><category>bookmarklets</category><category>javascript</category><category>tool</category></item><item><title>Browsercache.php: A simple browser-cache-handling library for CodeIgniter</title><link>https://roadha.us/2013/05/browsercachephp-a-simple-browser-cache-handling-library-for-codeigniter.html</link><description>&lt;p&gt;While &lt;a href="http://codeigniter.com"&gt;CodeIgniter&lt;/a&gt; provides a disk caching
mechanism, it lacks a &lt;em&gt;browser&lt;/em&gt; caching mechanism. Without a lengthy
introduction, here's one.&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Browsercache.php&lt;/strong&gt;  &lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt; &lt;span class="nb"&gt;defined&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;BASEPATH&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="k"&gt;exit …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 08 May 2013 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2013-05-08:/2013/05/browsercachephp-a-simple-browser-cache-handling-library-for-codeigniter.html</guid><category>codeigniter</category><category>my software</category><category>php</category></item><item><title>ascii.js: A font-based rendering engine for ASCII artwork</title><link>https://roadha.us/2013/04/asciijs-a-font-based-rendering-engine-for-ascii-artwork.html</link><description>&lt;p&gt;A long-standing and thoroughly-enjoyed hobby of mine is creating and
consuming &lt;a href="https://en.wikipedia.org/wiki/ASCII_art"&gt;ASCII artwork&lt;/a&gt;
(though not the kind of watered-down crap you would see in, say, an
e-mail signature or a chain letter). I recently went on a wild tear
after stumbling across a faithful recreation of the Amiga's Topaz 500 …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Tue, 30 Apr 2013 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2013-04-30:/2013/04/asciijs-a-font-based-rendering-engine-for-ascii-artwork.html</guid><category>css</category><category>javascript</category><category>my software</category></item><item><title>scrollFollow: An auto-scrolling extender for knockout.js</title><link>https://roadha.us/2013/04/scrollfollow-an-auto-scrolling-extender-for-knockoutjs.html</link><description>&lt;p&gt;With the following knockout.js extender, you can tie an observable array
to a scrollable HTML element. When the array is updated, the element
will keep scrolling to the bottom. It's smart enough to realize if the
user has scrolled up, as well, and will not interrupt them. I've found …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Sat, 20 Apr 2013 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2013-04-20:/2013/04/scrollfollow-an-auto-scrolling-extender-for-knockoutjs.html</guid><category>javascript</category><category>knockout.js</category><category>mvvm</category><category>my software</category><category>plugin</category></item><item><title>Add "desktop version" and "mark all as read" links to Tiny Tiny RSS mobile plugin</title><link>https://roadha.us/2013/04/add-desktop-version-and-mark-all-as-read-links-to-tiny-tiny-rss-mobile-plugin.html</link><description>&lt;p&gt;I installed Tiny Tiny RSS on a server of mine, and after tinkering
around with it for a little while, I turned on the built-in &lt;em&gt;mobile&lt;/em&gt;
plugin. It's a wonderful little thing; it uses the iUI library to
present a slick, single page application; it strips images out of the …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 08 Apr 2013 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2013-04-08:/2013/04/add-desktop-version-and-mark-all-as-read-links-to-tiny-tiny-rss-mobile-plugin.html</guid><category>php</category><category>plugin</category><category>tool</category></item><item><title>LDAP authentication with C#</title><link>https://roadha.us/2013/04/ldap-authentication-with-c.html</link><description>&lt;p&gt;LDAP, or Lightweight Directory Access Protocol, is a convenient, central
repository for a system's personnel information. LDAP (and other Active
Directory services) are widely-used by organizations big and small to
consolidate user credentials and identification data. For instance: a
reporting services application, a webmail client, and a database
administration suite …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 05 Apr 2013 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2013-04-05:/2013/04/ldap-authentication-with-c.html</guid><category>aspx</category><category>c-sharp</category><category>dot net</category><category>encryption</category><category>ldap</category><category>security</category></item><item><title>Resilient Ubuntu boot-to-RAM USB stick</title><link>https://roadha.us/2013/01/resilient-ubuntu-boot-to-ram-usb-stick.html</link><description>&lt;p&gt;&lt;em&gt;(Ubun2RAM) - Updated for 13.10&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I love my little-engine-that-could media server machine. It runs
incredibly well on hardware from at least two generations ago; it is
completely headless; the entire system loads itself into RAM in the form
of a compressed file system; it all fits onto a bootable USB …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 23 Jan 2013 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2013-01-23:/2013/01/resilient-ubuntu-boot-to-ram-usb-stick.html</guid><category>admin</category><category>linux</category><category>shell</category><category>tutorial</category><category>ubuntu</category><category>vm</category></item><item><title>staggr featured on freewaregenius.com</title><link>https://roadha.us/2012/12/staggr-featured-on-freewaregeniuscom.html</link><description>&lt;p&gt;My experimental link-staggering Facebook service,
&lt;a href="http://staggr.oddnetwork.org"&gt;staggr&lt;/a&gt;, has been featured on the free
software blog, &lt;a href="http://www.freewaregenius.com/"&gt;freewaregenius.com&lt;/a&gt;.
Cheggit:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.freewaregenius.com/automate-facebook-link-posting-at-20-minutes-intervals-with-staggr/"&gt;http://www.freewaregenius.com/automate-facebook-link-posting-at-20-minutes-intervals-with-staggr/&lt;/a&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Sun, 02 Dec 2012 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2012-12-02:/2012/12/staggr-featured-on-freewaregeniuscom.html</guid><category>facebook</category><category>my software</category><category>press</category></item><item><title>Batch convert audio files to MP3 with PowerShell and VLC Player</title><link>https://roadha.us/2012/11/batch-convert-audio-files-to-mp3-with-powershell-and-vlc-player.html</link><description>&lt;p&gt;I adapted &lt;a href="http://www.timvw.be/2010/11/20/convert-aacm4a-files-to-mp3-with-vlc-and-powershell/"&gt;a PowerShell script by Tim Van
Wassenhove&lt;/a&gt;
that recurses through a given directory, searching for various types of
audio files. These files are then converted to MP3 using VLC Player's
command-line interface. My adjustments to Tim's original script include
some string handling bits that ensure filenames with potentially …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 23 Nov 2012 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2012-11-23:/2012/11/batch-convert-audio-files-to-mp3-with-powershell-and-vlc-player.html</guid><category>audio</category><category>my software</category><category>powershell</category><category>tool</category><category>vlc</category></item><item><title>Javascript document.write alternative</title><link>https://roadha.us/2012/11/javascript-documentwrite-alternative.html</link><description>&lt;p&gt;When a script is loaded &lt;em&gt;synchronously&lt;/em&gt;, its element's position in the
DOM can be determined. With this information, the &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; element can
act as a pivot point for inserting dynamic content. This eliminates the
need for &lt;code&gt;document.write&lt;/code&gt;, a function which wreaks havoc where AJAX is
involved (and flies in …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Sat, 10 Nov 2012 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2012-11-10:/2012/11/javascript-documentwrite-alternative.html</guid><category>javascript</category><category>method</category></item><item><title>UserScript: Tidy up TVGuide.com listings</title><link>https://roadha.us/2012/10/userscript-tidy-up-tvguidecom-listings.html</link><description>&lt;p&gt;The way that &lt;a href="http://www.tvguide.com/listings/"&gt;TVGuide.com's listings&lt;/a&gt;
are organized is difficult to work with. This UserScript (compatible
with &lt;a href="http://www.greasespot.net/"&gt;GreaseMonkey&lt;/a&gt;, Chrome, Opera, and
perhaps more) will gut the listings from the layout and give you one
all-encompassing, manageable scroll bar for perusal.&lt;!--more--&gt;&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10 …&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Sat, 13 Oct 2012 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2012-10-13:/2012/10/userscript-tidy-up-tvguidecom-listings.html</guid><category>javascript</category><category>my software</category><category>userscript</category></item><item><title>rexCrawler and HelpfulHighlighter are now open source</title><link>https://roadha.us/2012/09/rexcrawler-and-helpfulhighlighter-are-now-open-source.html</link><description>&lt;p&gt;After having dipped my toe in the water of open source with some Arachni
module changes and the development of &lt;a href="/portfolio/whats-my-status/"&gt;a simple WordPress
plugin&lt;/a&gt;, I've finally taken the plunge; two
of my personal projects are now completely open source, and hosted on
&lt;a href="https://github.com"&gt;github&lt;/a&gt;. Much of the code is stale—and …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 05 Sep 2012 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2012-09-05:/2012/09/rexcrawler-and-helpfulhighlighter-are-now-open-source.html</guid><category>c-sharp</category><category>dot net</category><category>git</category><category>my software</category><category>open source</category><category>plugin</category><category>regex</category><category>tool</category><category>vbnet</category></item><item><title>Programmatically compile Audiences in SharePoint 2010</title><link>https://roadha.us/2012/08/programmatically-compile-audiences-in-sharepoint-2010.html</link><description>&lt;p&gt;According to the documentation for the SharePoint 2010 SDK, you cannot
trigger Audience compilation programmatically. Well—that's not true. It
isn't documented, but it &lt;em&gt;is&lt;/em&gt; possible. The painful thing about it is
that you must know the &lt;code&gt;ApplicationId&lt;/code&gt; of the &lt;code&gt;UserProfileService&lt;/code&gt;
application. This is where reflection comes in &lt;em&gt;extremely&lt;/em&gt;
handy …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 31 Aug 2012 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2012-08-31:/2012/08/programmatically-compile-audiences-in-sharepoint-2010.html</guid><category>aspx</category><category>c-sharp</category><category>powershell</category><category>sharepoint</category><category>tool</category></item><item><title>WordPress plugin minify Makefile</title><link>https://roadha.us/2012/08/wordpress-plugin-minify-makefile.html</link><description>&lt;p&gt;While working on my first commercial &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt;
plugin, the need for build automation finally struck me. The
environments in which I do my most development are all driven by Linux,
and so I wanted to use a tried, true, and ubiquitous build automation
mechanism to fulfill my need. As such …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 10 Aug 2012 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2012-08-10:/2012/08/wordpress-plugin-minify-makefile.html</guid><category>javascript</category><category>linux</category><category>my software</category><category>php</category><category>regex</category><category>shell</category><category>tool</category><category>wordpress</category></item><item><title>JavaScript Challenge #2 (Whac-A-Moo)</title><link>https://roadha.us/2012/08/javascript-challenge-2-whac-a-moo.html</link><description>&lt;p&gt;Though I am not a proponent of the &lt;a href="http://mootools.net"&gt;MooTools&lt;/a&gt;
JavaScript framework, &lt;a href="http://mootools.net/blog/"&gt;their blog&lt;/a&gt; is an
interesting resource that I enjoy reading. Not only is it packed with
sensible practices and interesting insights, but they have recently
begun posting JavaScript challenges where developers are tasked with
building whatever system is presented …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Sun, 05 Aug 2012 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2012-08-05:/2012/08/javascript-challenge-2-whac-a-moo.html</guid><category>experiment</category><category>javascript</category><category>my software</category></item><item><title>Add password maintenance feature to cgit with PHP</title><link>https://roadha.us/2012/07/add-password-maintenance-feature-to-cgit-with-php.html</link><description>&lt;p&gt;Have you ever wanted to have a nifty, browser-driven password
maintenance feature in your &lt;em&gt;htpasswd&lt;/em&gt;-secured &lt;strong&gt;cgit&lt;/strong&gt; site? I've been
meaning to build this for a while—and I finally did it.&lt;!--more--&gt;
Granted, this was not a difficult task, and I'm not expecting to bask in
any glory for completing …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Sat, 28 Jul 2012 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2012-07-28:/2012/07/add-password-maintenance-feature-to-cgit-with-php.html</guid><category>git</category><category>javascript</category><category>php</category><category>security</category></item><item><title>Using cURL for parallel PHP without pcntl_fork</title><link>https://roadha.us/2012/06/using-curl-for-parallel-php-without-pcntl_fork.html</link><description>&lt;p&gt;So, you want to do some parallel processing in PHP (alliteration FTW!),
but your service provider does not grant you access to the
&lt;a href="http://www.php.net/manual/en/ref.pcntl.php"&gt;pcntl&lt;/a&gt; family of
functions&lt;a href="#footnote-1"&gt;*&lt;/a&gt;. What do you do? If you're in a *nix
environment with access to the &lt;a href="http://linux.die.net/man/1/curl"&gt;curl&lt;/a&gt;
command line application, then you get creative.&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;First …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 07 Jun 2012 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2012-06-07:/2012/06/using-curl-for-parallel-php-without-pcntl_fork.html</guid><category>curl</category><category>linux</category><category>parallel</category><category>php</category><category>shell</category></item><item><title>Easy SSL redirection for select folders in nginx</title><link>https://roadha.us/2012/05/easy-ssl-redirection-for-select-folders-in-nginx.html</link><description>&lt;p&gt;I have many various web applications installed on my server; some of
them need to be wrapped in a secure connection, while it is less
important (or meaningless) for others. For those applications whose
security I am concerned about, I've developed an easy way to force nginx
to serve the …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 24 May 2012 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2012-05-24:/2012/05/easy-ssl-redirection-for-select-folders-in-nginx.html</guid><category>nginx</category><category>regex</category><category>security</category></item><item><title>Add threaded discussions to cgit with disqus</title><link>https://roadha.us/2012/05/add-threaded-discussions-to-cgit-with-disqus.html</link><description>&lt;p&gt;While it provides an efficient, organized web front-end for your
personal git repositories, the &lt;a href="https://github.com/kevclark/cgit"&gt;cgit&lt;/a&gt;
application is missing a few of the more sparkling features found at
&lt;a href="https://github.com"&gt;github&lt;/a&gt;--notably, a comments/discussion system.
Enter: &lt;a href="http://disqus.com"&gt;disqus&lt;/a&gt;.&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;Disqus is a Javascript-injected, centralized discussion system that is
gaining traction with blogs and other …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 11 May 2012 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2012-05-11:/2012/05/add-threaded-discussions-to-cgit-with-disqus.html</guid><category>git</category><category>javascript</category></item><item><title>Posts to resume shortly</title><link>https://roadha.us/2012/05/posts-to-resume-shortly.html</link><description>&lt;p&gt;I've migrated the blog back over to my VPS, as my hosting provider has
been trying to blame me for the poor performance of my scripts on their
hosting platform. I've got everything running on my VPS machine now (and
I do mean &lt;em&gt;everything&lt;/em&gt;) thanks to nginx, php5-fpm, and 752MB …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 02 May 2012 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2012-05-02:/2012/05/posts-to-resume-shortly.html</guid><category>blog news</category></item><item><title>What's My Status v1.2 released</title><link>https://roadha.us/2012/01/whats-my-status-v12-released.html</link><description>&lt;p&gt;My WordPress microblog feed widget recently went through another update.
This time around, I've added the ability to filter out replies and
re-posts ("retweets" in Twitter lingo, "redents" in identi.ca speak)
from your activity feed. &lt;a href="http://wordpress.org/extend/plugins/whats-my-status/"&gt;Pick up the new
version&lt;/a&gt; from the
&lt;a href="http://wordpress.org/extend/plugins/"&gt;WordPress plugins site&lt;/a&gt;.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 04 Jan 2012 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2012-01-04:/2012/01/whats-my-status-v12-released.html</guid><category>my software</category><category>php</category><category>plugin</category><category>statusnet</category><category>twitter</category><category>wordpress</category></item><item><title>What's My Status? v1.1 released</title><link>https://roadha.us/2011/12/whats-my-status-v11-released.html</link><description>&lt;p&gt;My microblogging feed widget for WordPress, &lt;em&gt;What's My Status?&lt;/em&gt;, has
been updated. The plugin now uses &lt;code&gt;curl&lt;/code&gt; for its main retrieval
mechanism, with standard URL &lt;code&gt;fopen&lt;/code&gt; as the fallback. Additionally, the
&lt;em&gt;Reset cache&lt;/em&gt; command has been fixed. You can &lt;a href="http://wordpress.org/extend/plugins/whats-my-status/"&gt;grab the
plugin&lt;/a&gt; for
yourself over at the &lt;a href="http://wordpress.org/"&gt;wordpress.org&lt;/a&gt; site …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 19 Dec 2011 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2011-12-19:/2011/12/whats-my-status-v11-released.html</guid><category>my software</category><category>php</category><category>plugin</category><category>statusnet</category><category>twitter</category><category>wordpress</category></item><item><title>bulkRename v2.0 released</title><link>https://roadha.us/2011/11/bulkrename-v20-released.html</link><description>&lt;p&gt;I've converted my bulk file renaming utility from VB.NET to C# and made
use of a &lt;a href="http://www.codeproject.com/KB/recipes/command_line.aspx"&gt;command line arguments parsing
library&lt;/a&gt; so
that it will accept folders and regex patterns with spaces in them. It
behaves a bit weird if you don't encapsulate your arguments in quotation
marks (") or …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 28 Nov 2011 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2011-11-28:/2011/11/bulkrename-v20-released.html</guid><category>c-sharp</category><category>my software</category><category>tool</category></item><item><title>Selective backup/copy script for moving files into production</title><link>https://roadha.us/2011/10/selective-backupcopy-script-for-moving-files-into-production.html</link><description>&lt;p&gt;Whenever our web site needs to undergo re-branding, there is always the
hassle of creating both the selective package of files to move into
production from development and the selective back-up of the necessary
files already on the production server. While this is not a
soul-crushingly elaborate and tedious task …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 03 Oct 2011 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2011-10-03:/2011/10/selective-backupcopy-script-for-moving-files-into-production.html</guid><category>my software</category><category>php</category><category>tool</category></item><item><title>Simple file access concurrency in C#</title><link>https://roadha.us/2011/09/simple-file-access-concurrency-in-c.html</link><description>&lt;p&gt;When working without the safety net of a RDBMS in a multi-user
environment, file concurrency may become an issue. In a project I've
been working on recently, XML files are being used as the custom data
store. This is all fine and dandy for now—with a user base of …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Tue, 20 Sep 2011 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2011-09-20:/2011/09/simple-file-access-concurrency-in-c.html</guid><category>aspx</category><category>c-sharp</category><category>my software</category><category>xml</category></item><item><title>Using WSE 3.0 with Visual Studio 2008 and .NET 3.5</title><link>https://roadha.us/2011/09/using-wse-30-with-visual-studio-2008-and-net-35.html</link><description>&lt;p&gt;While I'm sure many of you have "moved on" to Visual Studio 2010, there
are a large number of us still using 2008. Recently, my shop needed to
write some code for interfacing with a vendor's web services. No
problem, right? Well… not quite. It was quite an undertaking to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 08 Sep 2011 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2011-09-08:/2011/09/using-wse-30-with-visual-studio-2008-and-net-35.html</guid><category>dot net</category><category>fix</category><category>tool</category><category>tutorial</category></item><item><title>Kill all shared memory segments in Linux</title><link>https://roadha.us/2011/09/kill-all-shared-memory-segments-in-linux.html</link><description>&lt;p&gt;&lt;em&gt;&lt;a href="#update"&gt;See update below.&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I recently whipped up a shell script to kill all (IPC) shared memory
segments in Linux for a client on &lt;a href="http://www.odesk.com"&gt;oDesk.com&lt;/a&gt;. He
wound up going with another contractor's offer, and so I figured I would
post my script here for the benefit of all.&lt;!--more--&gt;&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;ipcs …&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 07 Sep 2011 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2011-09-07:/2011/09/kill-all-shared-memory-segments-in-linux.html</guid><category>linux</category><category>my software</category><category>regex</category><category>shell</category><category>tool</category></item><item><title>jQuery.imgradio Plugin v1.0 released</title><link>https://roadha.us/2011/06/jqueryimgradio-plugin-v10-released.html</link><description>&lt;p&gt;The default HTML radio buttons and check boxes aren't the most
aesthetically pleasing things in the world of web design. With this in
mind, I have created a &lt;a href="http://jquery.com"&gt;jQuery&lt;/a&gt;
&lt;a href="http://plugins.jquery.com"&gt;plugin&lt;/a&gt; that will replace those pesky
&lt;code&gt;&amp;lt;input /&amp;gt;&lt;/code&gt; elements with &lt;code&gt;&amp;lt;span /&amp;gt;&lt;/code&gt; elements for your CSS styling
pleasure. Under the hood, the original …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 15 Jun 2011 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2011-06-15:/2011/06/jqueryimgradio-plugin-v10-released.html</guid><category>css</category><category>forms</category><category>javascript</category><category>jquery</category><category>my software</category><category>plugin</category></item><item><title>jQuery.noFlickerSlide Plugin v1.0.0 released</title><link>https://roadha.us/2011/05/jquerynoflickerslide-plugin-v100-released.html</link><description>&lt;p&gt;Since 1.1.3, &lt;a href="http://jquery.com"&gt;jQuery's&lt;/a&gt;
&lt;a href="http://api.jquery.com/slideUp/"&gt;slideUp()&lt;/a&gt; method has had problems with
flickering in Internet Explorer. While this issue can generally be fixed
by avoiding Quirks Mode with a &lt;code&gt;DOCTYPE&lt;/code&gt; declaration, it doesn't always
work so easily. (The HTML 5 declaration worked for me, but was
unfortunately not an option in …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 13 May 2011 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2011-05-13:/2011/05/jquerynoflickerslide-plugin-v100-released.html</guid><category>fix</category><category>internet explorer</category><category>javascript</category><category>jquery</category><category>my software</category><category>plugin</category></item><item><title>Forward Gawker sites to their UK counterparts for a better layout</title><link>https://roadha.us/2011/05/forward-gawker-sites-to-their-uk-counterparts-for-a-better-layout.html</link><description>&lt;p&gt;I wrote a (&lt;em&gt;really&lt;/em&gt;) simple &lt;a href="http://greasyfork.org"&gt;userscript&lt;/a&gt; today
that reloads Lifehacker pages under
&lt;a href="http://uk.lifehacker.com"&gt;uk.lifehacker.com&lt;/a&gt;. Why did I do this?
Because the Lifehacker UK site doesn't have the trendy new (horrendous)
AJAXified layout. Maybe using a &lt;code&gt;hosts&lt;/code&gt; redirect instead of a userscript
is a better way to handle it (since …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 09 May 2011 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2011-05-09:/2011/05/forward-gawker-sites-to-their-uk-counterparts-for-a-better-layout.html</guid><category>javascript</category><category>lifehacker</category><category>my software</category><category>tool</category><category>userscript</category></item><item><title>Send XMPP messages with Perl (from the command line, too!)</title><link>https://roadha.us/2011/04/send-xmpp-messages-with-perl-from-the-command-line-too.html</link><description>&lt;p&gt;I had been looking for a small, simple utility for Windows that could
send XMPP messages from the command line for use in various automated
tasks and notification processes. I came across &lt;em&gt;sendxmpp&lt;/em&gt; as part of
the &lt;a href="http://cygwin.com"&gt;CygWin&lt;/a&gt; installation, but could not successfully
install its dependencies with CygWin's CPAN port …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 22 Apr 2011 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2011-04-22:/2011/04/send-xmpp-messages-with-perl-from-the-command-line-too.html</guid><category>my software</category><category>perl</category><category>shell</category><category>tool</category><category>xmpp</category></item><item><title>Create anchor links in Twitter status text with PHP</title><link>https://roadha.us/2011/04/create-anchor-links-in-twitter-status-text-with-php.html</link><description>&lt;p&gt;In a previous blog post, I outlined how to [convert Twitter @mentions,&lt;/p&gt;
&lt;h1&gt;hashtags, and&lt;/h1&gt;
&lt;p&gt;URLs](http://roadha.us/2011/03/create-anchor-links-in-twitter-status-text-with-javascript/)
(with or without protocol prefixes) into anchor links using JavaScript.
Here is that same process wrapped up in a PHP function instead for your
server-side needs.&lt;!--more--&gt;&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt; 1
 2
 3 …&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 20 Apr 2011 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2011-04-20:/2011/04/create-anchor-links-in-twitter-status-text-with-php.html</guid></item><item><title>What's My Status? v1.0.0 released</title><link>https://roadha.us/2011/03/whats-my-status-v100-released.html</link><description>&lt;p&gt;My first officially-recognized &lt;a href="http://www.wordpress.org"&gt;WordPress&lt;/a&gt;
widget, &lt;u&gt;What's My Status?&lt;/u&gt;, has been released! It is a widget for
displaying a given user's status feed from
&lt;a href="https://identi.ca"&gt;identi.ca&lt;/a&gt;, &lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt;, or any
other service that provides a Twitter-like API. There are several
features in the works for future versions—such as inclusion and
exclusion …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Tue, 22 Mar 2011 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2011-03-22:/2011/03/whats-my-status-v100-released.html</guid><category>my software</category><category>php</category><category>plugin</category><category>statusnet</category><category>twitter</category><category>wordpress</category></item><item><title>Create anchor links in Twitter status text with JavaScript</title><link>https://roadha.us/2011/03/create-anchor-links-in-twitter-status-text-with-javascript.html</link><description>&lt;p&gt;&lt;em&gt;Note: This also applies to any service using a
&lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt;-compatible API, such as
&lt;a href="http://status.net"&gt;StatusNet&lt;/a&gt; (see: &lt;a href="https://identi.ca"&gt;identi.ca&lt;/a&gt;)
with some minor configuration changes.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;As a side project, I have been working on a StatusNet (specifically,
identi.ca) status feed widget for the
&lt;a href="http://www.wordpress.com"&gt;WordPress&lt;/a&gt; PHP platform. I had spent a fair …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 17 Mar 2011 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2011-03-17:/2011/03/create-anchor-links-in-twitter-status-text-with-javascript.html</guid><category>javascript</category><category>my software</category><category>regex</category><category>twitter</category></item><item><title>Help! I can't delete phpMyAdmin's setup.php</title><link>https://roadha.us/2011/02/help-i-cant-delete-phpmyadmins-setupphp.html</link><description>&lt;p&gt;I've got a VPS server running Debian 5 "lenny" and recently attempted to
perform several software upgrades to bring it up to speed (it had been
longer than I care to admit). However, the upgrade for the phpMyAdmin
package continually failed, stating that it was unable to remove
&lt;code&gt;/usr/share …&lt;/code&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 04 Feb 2011 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2011-02-04:/2011/02/help-i-cant-delete-phpmyadmins-setupphp.html</guid><category>linux</category><category>php</category><category>shell</category></item><item><title>Check all CheckBoxes in a GridView using jQuery</title><link>https://roadha.us/2010/12/check-all-checkboxes-in-a-gridview-using-jquery.html</link><description>&lt;p&gt;If you're working with a &lt;code&gt;GridView&lt;/code&gt; control where you've built a
&lt;code&gt;CheckBox&lt;/code&gt; control into each row of data displayed, odds are, it would
be convenient for your users if a "Check/Un-check All" option was
available. The following example will show how to do just that; and with
only the …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 20 Dec 2010 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2010-12-20:/2010/12/check-all-checkboxes-in-a-gridview-using-jquery.html</guid><category>aspx</category><category>c-sharp</category><category>dot net</category><category>javascript</category><category>jquery</category><category>my software</category></item><item><title>Custom error messages with ValidationSummary in ASP.NET</title><link>https://roadha.us/2010/11/custom-error-messages-with-validationsummary-in-aspnet.html</link><description>&lt;p&gt;Sometimes, there are problems encountered in a code-behind file that
don't warrant the extra work and mark-up that would otherwise be
required to add &lt;code&gt;CustomValidator&lt;/code&gt; controls to the page for displaying
error messages to the user through your &lt;code&gt;ValidationSummary&lt;/code&gt;. Wouldn't it
be nice if you could (somewhat) easily take care …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 29 Nov 2010 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2010-11-29:/2010/11/custom-error-messages-with-validationsummary-in-aspnet.html</guid><category>aspx</category><category>c-sharp</category><category>dot net</category><category>forms</category><category>my software</category></item><item><title>Programmatically modifying file permissions in .NET</title><link>https://roadha.us/2010/11/programmatically-modifying-file-permissions-in-net.html</link><description>&lt;p&gt;For one reason or another, somewhere down the line, you're probably
going to want to modify a file's access permissions from your code.
Maybe your users have a nasty habit of overwriting them, or you want to
ensure that newly-created files are given a specific permission mask.
Whatever the reason …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 05 Nov 2010 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2010-11-05:/2010/11/programmatically-modifying-file-permissions-in-net.html</guid><category>c-sharp</category><category>dot net</category><category>security</category></item><item><title>Image dimension Field Validator for Sitecore CMS</title><link>https://roadha.us/2010/10/image-dimension-field-validator-for-sitecore-cms.html</link><description>&lt;p&gt;This &lt;code&gt;StandardValidator&lt;/code&gt; extension will determine whether or not a given
&lt;code&gt;ImageField&lt;/code&gt;'s source image's height and width match with given
parameters. Either parameter can be omitted if, for instance, you only
care about validating the width of an image (or conversely, only the
height).&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note: In the code below, replace …&lt;/em&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 29 Oct 2010 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2010-10-29:/2010/10/image-dimension-field-validator-for-sitecore-cms.html</guid><category>c-sharp</category><category>dot net</category><category>my software</category><category>sitecore</category></item><item><title>Currency Field Validator for Sitecore CMS</title><link>https://roadha.us/2010/10/currency-field-validator-for-sitecore-cms.html</link><description>&lt;p&gt;This &lt;code&gt;StandardValidator&lt;/code&gt; extension will determine whether or not a given
field value passes for currency. In order to do so, it must meet the
following requirements:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It must pass decimal.TryParse()&lt;/li&gt;
&lt;li&gt;It must not have more than 2 digits past the decimal point&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Obviously, this does not fit all international …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 22 Oct 2010 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2010-10-22:/2010/10/currency-field-validator-for-sitecore-cms.html</guid><category>c-sharp</category><category>dot net</category><category>my software</category><category>sitecore</category></item><item><title>Fix CodeIgniter IP address detection on lighttpd</title><link>https://roadha.us/2010/10/fix-codeigniter-ip-address-detection-on-lighttpd.html</link><description>&lt;p&gt;If the results of a call to &lt;em&gt;$this-&amp;gt;input-&amp;gt;ip_address()&lt;/em&gt; gives
you "0.0.0.0" (the "invalid address" response) and you're running
&lt;strong&gt;lighttpd&lt;/strong&gt; as your web server, you may be able to fix it &lt;s&gt;with a
minor tweak to&lt;/s&gt; by extending one of the base &lt;strong&gt;CodeIgniter&lt;/strong&gt; libraries.
An IPv6-style …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 18 Oct 2010 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2010-10-18:/2010/10/fix-codeigniter-ip-address-detection-on-lighttpd.html</guid><category>codeigniter</category><category>lighttpd</category><category>php</category></item><item><title>New WordPress blog</title><link>https://roadha.us/2010/09/new-wordpress-blog.html</link><description>&lt;p&gt;I've transferred my blog from the Blogger platform (externally hosted)
to the WordPress platform (self-hosted) for a couple of reasons. First
of all, I wanted more control over the blog on principle. Also, I needed
an excuse to become familiar with the WordPress system—and working
something into my own …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 08 Sep 2010 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2010-09-08:/2010/09/new-wordpress-blog.html</guid><category>blog news</category></item><item><title>bulkRename v1.1</title><link>https://roadha.us/2010/07/bulkrename-v11.html</link><description>&lt;p&gt;A while back (in 2008), I wrote a simple system utility with VB.NET
which leverages the power of &lt;a href="http://www.regular-expressions.info"&gt;regular
expressions&lt;/a&gt; to rename files in
bulk according to a pattern. I've had to use it several times recently
after placing it on a metaphorical shelf to gather dust, and it …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 02 Jul 2010 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2010-07-02:/2010/07/bulkrename-v11.html</guid><category>dot net</category><category>my software</category><category>regex</category><category>tool</category><category>vbnet</category></item><item><title>Query across servers in Microsoft SQL Server 2005</title><link>https://roadha.us/2010/06/query-across-servers-in-microsoft-sql-server-2005.html</link><description>&lt;p&gt;If your organization/project has data repositories spread across more
than one database server, chances are that you will eventually want to
pull data from more than one server instance in a single query. If you
want to perform these cross-server queries without setting up a
persistent &lt;em&gt;Linked Server&lt;/em&gt; configuration …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 04 Jun 2010 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2010-06-04:/2010/06/query-across-servers-in-microsoft-sql-server-2005.html</guid><category>sql</category></item><item><title>Replacing MS Word's quotation marks in VB.NET</title><link>https://roadha.us/2010/05/replacing-ms-words-quotation-marks-in-vbnet.html</link><description>&lt;p&gt;When dealing with text pasted from Microsoft Word, the presence of
"special" (read: non-ASCII) quotation marks and apostrophes can be quite
troublesome. Here's a simple way to convert them to "standard" (read:
ASCII) quotation marks and apostrophes...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;VB.NET Code:&lt;/strong&gt;&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;1
2&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="n"&gt;myString&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Regex&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myString&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;\u201C|\u201D&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  
&lt;span class="n"&gt;myString&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Regex …&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 10 May 2010 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2010-05-10:/2010/05/replacing-ms-words-quotation-marks-in-vbnet.html</guid><category>dot net</category><category>regex</category><category>vbnet</category></item><item><title>URL rewriting template engine</title><link>https://roadha.us/2009/12/url-rewriting-template-engine.html</link><description>&lt;p&gt;My employer is currently in the process of standing-up a content
management system (CMS). In the process of migrating links on our
existing site to the new CMS site, there are going to be—at least, at
first—a metric tonne of possible URL redirects necessary. Since the
majority of …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 10 Dec 2009 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2009-12-10:/2009/12/url-rewriting-template-engine.html</guid><category>apache</category><category>lighttpd</category><category>my software</category><category>php</category><category>regex</category><category>tool</category></item><item><title>Backup automation and emailing attachments in Linux</title><link>https://roadha.us/2009/12/backup-automation-and-emailing-attachments-in-linux.html</link><description>&lt;p&gt;Any programmer who's ever been burned by data loss can tell you—you've
&lt;strong&gt;got&lt;/strong&gt; to have backups of your work. If it's code, perhaps they use a
version control system such as Subversion. If it's something a little
less-readily available, such as a weekly database text file dump, it
might …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 09 Dec 2009 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2009-12-09:/2009/12/backup-automation-and-emailing-attachments-in-linux.html</guid><category>linux</category><category>shell</category><category>sql</category><category>tool</category></item><item><title>PDF to TIFF batch conversion with ImageMagick</title><link>https://roadha.us/2009/11/pdf-to-tiff-batch-conversion-with-imagemagick.html</link><description>&lt;p&gt;I have recently been tasked at work to create a script that will convert
PDF files to TIFF files to be used for annotation within our document
imaging service. The script is responsible for the following process:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create back-up copies of each PDF&lt;/li&gt;
&lt;li&gt;Time-stamp those back-up copies&lt;/li&gt;
&lt;li&gt;Convert each PDF …&lt;/li&gt;&lt;/ul&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 20 Nov 2009 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2009-11-20:/2009/11/pdf-to-tiff-batch-conversion-with-imagemagick.html</guid><category>image editing</category><category>my software</category><category>vbscript</category></item><item><title>Redirect Tomcat to FQDN</title><link>https://roadha.us/2009/09/redirect-tomcat-to-fqdn.html</link><description>&lt;p&gt;Recently, I have been trying to configure several Tomcat servers
(versions 5.0, 5.5, and 6.0) to restrict all traffic to SSL and ensure
that all requests are served through the FQDN (fully-qualified domain
name) of the server involved.&lt;/p&gt;
&lt;p&gt;Well, the first half of that adventure was relatively …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 02 Sep 2009 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2009-09-02:/2009/09/redirect-tomcat-to-fqdn.html</guid><category>security</category><category>tomcat</category></item><item><title>WebFOCUS Impact Analysis report compactor</title><link>https://roadha.us/2009/08/webfocus-impact-analysis-report-compactor.html</link><description>&lt;p&gt;Here's a little script I whipped up to combine several Impact Analysis
reports generated by WebFOCUS Developer Studio. The script opens
HTM-formatted IA reports, skims the data, and then concatenates it all
in one CSV-formatted output block.&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PHP code:&lt;/strong&gt;&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11 …&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 07 Aug 2009 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2009-08-07:/2009/08/webfocus-impact-analysis-report-compactor.html</guid><category>business intelligence</category><category>my software</category><category>php</category><category>regex</category><category>webfocus</category></item><item><title>Linux: Get size of sub-directores in current directory</title><link>https://roadha.us/2009/07/linux-get-size-of-sub-directores-in-current-directory.html</link><description>&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Now that I'm more familiar with the Linux command line, I
realize that I was trying to reinvent the wheel. I don't know if I
missed this part of the &lt;code&gt;du&lt;/code&gt; manpage or what, but the functionality I
was looking for is baked in:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;du -hd 1
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;The &lt;strong&gt;h …&lt;/strong&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 17 Jul 2009 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2009-07-17:/2009/07/linux-get-size-of-sub-directores-in-current-directory.html</guid><category>linux</category><category>shell</category><category>tool</category></item><item><title>Photobucket thumbnail bookmarklet</title><link>https://roadha.us/2009/07/photobucket-thumbnail-bookmarklet.html</link><description>&lt;p&gt;I've built a pretty simple little utility for turning the URL of an
image hosted on Photobucket into a thumbnail which links to the
full-sized image. I've designed one version for building bbCode (forum)
mark-up, and one for building a basic HTML thumbnail link. Save the
links below to use …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 17 Jul 2009 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2009-07-17:/2009/07/photobucket-thumbnail-bookmarklet.html</guid><category>bookmarklets</category><category>javascript</category><category>my software</category><category>tool</category></item><item><title>View live page source with Javascript</title><link>https://roadha.us/2009/05/view-live-page-source-with-javascript.html</link><description>&lt;p&gt;Have you ever been working on an AJAX-enabled webpage, or a page with
complex redirects and permissions, and tried to view its source? What
you wind up getting generally looks nothing like the current state of
the page in question. You are viewing its &lt;strong&gt;initial&lt;/strong&gt; state, since the
browser loads …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Tue, 19 May 2009 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2009-05-19:/2009/05/view-live-page-source-with-javascript.html</guid><category>bookmarklets</category><category>javascript</category><category>my software</category><category>tool</category></item><item><title>Help! KB932091 broke my SharePoint installation!</title><link>https://roadha.us/2009/04/help-kb932091-broke-my-sharepoint-installation.html</link><description>&lt;p&gt;Well, it broke ours, too. Our root site collection was completely
inaccessible, and the main SharePoint site was returning an HTTP status
code of 500. After 12 solid hours of wild goose chases tracking down
erroneous error messages, we installed KB936867. The installation failed
on both steps 8 and 9 …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 17 Apr 2009 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2009-04-17:/2009/04/help-kb932091-broke-my-sharepoint-installation.html</guid><category>sharepoint</category></item><item><title>Consuming newlines with the Javascript regex engine</title><link>https://roadha.us/2009/03/consuming-newlines-with-the-javascript-regex-engine.html</link><description>&lt;p&gt;In most server-side languages (with an available regex engine),
programmers are given a wonderful set of pattern modifiers. One such
modifier for PCRE (Perl-compatible regular expressions) is the "s"
modifier, known in PHP as the constant &lt;em&gt;PCRE_DOTALL&lt;/em&gt;. This modifier
will cause the "dot" character--which will usually match any normal
character--to …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 20 Mar 2009 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2009-03-20:/2009/03/consuming-newlines-with-the-javascript-regex-engine.html</guid><category>javascript</category><category>regex</category></item><item><title>rexCrawler v2.5.0.0 released!</title><link>https://roadha.us/2009/03/rexcrawler-v2500-released.html</link><description>&lt;p&gt;I have released a new version of my home-grown desktop search software,
&lt;a href="http://sites.google.com/site/rexcrawler"&gt;rexCrawler&lt;/a&gt;. Several aesthetic
updates have been included, as well as tighter exception handling. Read
about it &lt;a href="http://sites.google.com/site/rexcrawler/news"&gt;here&lt;/a&gt; or
download it
&lt;a href="http://sites.google.com/site/rexcrawler/releases/rexCrawler-2.5.0.0.zip?attredirects=0"&gt;here&lt;/a&gt;.
Enjoy!&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 11 Mar 2009 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2009-03-11:/2009/03/rexcrawler-v2500-released.html</guid><category>my software</category></item><item><title>Urban Dead Greasemonkey Scripts</title><link>https://roadha.us/2009/02/urban-dead-greasemonkey-scripts.html</link><description>&lt;p&gt;I've built a home for all of my Urban Dead Greasemonkey scripts at
&lt;a href="http://sites.google.com/site/udscripts"&gt;sites.google.com/site/udscripts&lt;/a&gt;.
It currently houses CHUD, UDInventory, and the UDBrain Frame Fix script.
It will be my base of operations for UD mods from here on out--and I
plan to begin working with Google …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 19 Feb 2009 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2009-02-19:/2009/02/urban-dead-greasemonkey-scripts.html</guid><category>javascript</category><category>my software</category><category>userscript</category></item><item><title>UDInventory - GreaseMonkey script for Urban Dead</title><link>https://roadha.us/2009/02/udinventory-greasemonkey-script-for-urban-dead.html</link><description>&lt;p&gt;I've written another GreaseMonkey script for the web game, Urban Dead.
This one will compact your inventory by grouping together guns, ammo,
first-aid kits, syringes, etc. You can &lt;a href="https://greasyfork.org/scripts/4972-udinventory"&gt;install it from
GreasyFork&lt;/a&gt;. &lt;s&gt;Click
here for an iWitness screen shot.&lt;/s&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 05 Feb 2009 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2009-02-05:/2009/02/udinventory-greasemonkey-script-for-urban-dead.html</guid><category>javascript</category><category>my software</category><category>userscript</category></item><item><title>Files as Resources in .NET projects</title><link>https://roadha.us/2009/01/files-as-resources-in-net-projects.html</link><description>&lt;p&gt;Have you ever found that sleek application you wrote slowly becoming
scattered over time with the use of external files? Say you want to
create a simple GUI application that can be distributed as just an
executable file. What if you want to use a &lt;em&gt;*.chm&lt;/em&gt; help file? This
article …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 19 Jan 2009 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2009-01-19:/2009/01/files-as-resources-in-net-projects.html</guid><category>dot net</category><category>vbnet</category></item><item><title>rexCrawler v2.4.5.0 released</title><link>https://roadha.us/2009/01/rexcrawler-v2450-released.html</link><description>&lt;p&gt;My complex file searching software,
&lt;a href="http://sites.google.com/site/rexcrawler"&gt;rexCrawler&lt;/a&gt;, has been updated.
Version 2.4.5.0 improves on version 2.4.4.0 by adding an instructional
help menu to the menu strip in the main window of the program. You can
download the new version in the
&lt;a href="http://sites.google.com/site/rexcrawler/releases"&gt;releases&lt;/a&gt; section of
the …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 14 Jan 2009 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2009-01-14:/2009/01/rexcrawler-v2450-released.html</guid><category>my software</category></item><item><title>chud - GreaseMonkey script for Urban Dead</title><link>https://roadha.us/2008/11/chud-greasemonkey-script-for-urban-dead.html</link><description>&lt;p&gt;I've finished putting together my first GreaseMonkey script! It's called
"chud"—the Caddy Healer for Urban Dead. It's been built to plug-in to my
favorite web-based zombie apocalypse, &lt;a href="http://www.urbandead.com/"&gt;Urban
Dead&lt;/a&gt;. It will bring up a list of anyone in
your map cell who can be healed with a first-aid kit …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 14 Nov 2008 00:00:00 -0600</pubDate><guid isPermaLink="false">tag:roadha.us,2008-11-14:/2008/11/chud-greasemonkey-script-for-urban-dead.html</guid><category>javascript</category><category>my software</category><category>userscript</category></item><item><title>rexCrawler release</title><link>https://roadha.us/2008/10/rexcrawler-release.html</link><description>&lt;p&gt;I've released one of my personal software projects, rexCrawler. It is a
program I use at work to search specified files/folders for (optionally)
specified text/patterns. Knowledge of &lt;a href="http://www.regular-expressions.info"&gt;regular
expressions&lt;/a&gt; is suggested, but
unnecessary. Output can be sent to the screen, a CSV (comma-separated
values) file, or both.&lt;/p&gt;
&lt;p&gt;You …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 29 Oct 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2008-10-29:/2008/10/rexcrawler-release.html</guid><category>my software</category></item><item><title>Browser-independent XML load with Javascript</title><link>https://roadha.us/2008/09/browser-independent-xml-load-with-javascript.html</link><description>&lt;p&gt;XML data is, in a word, awesome. It's standardized, it's well-formatted,
and there are XML parsing methods in nearly every major programming
language--including Javascript. However, when using Javascript, the
nasty problem of "browser agnosticism" comes into play: a method that
works in Firefox may not (read: won't) work in Internet …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 24 Sep 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2008-09-24:/2008/09/browser-independent-xml-load-with-javascript.html</guid><category>javascript</category><category>xml</category></item><item><title>Browser-independent XPath with Javascript</title><link>https://roadha.us/2008/09/browser-independent-xpath-with-javascript.html</link><description>&lt;p&gt;Now that you're able to &lt;a href="http://roadha.us/2008/09/browser-independent-xml-load-with-javascript/"&gt;load
XML&lt;/a&gt;
and &lt;a href="http://roadha.us/2008/09/browser-independent-xslt-with-javascript/"&gt;transform
it&lt;/a&gt;
using an XSL stylesheet, wouldn't it be handy to also be able to perform
XPath selects/functions on that XML outside of the stylesheet's
formatting? Why, yes. Yes, it would:&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Javascript code:&lt;/strong&gt;&lt;/p&gt;
&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt; 1
 2
 3
 4
 5
 6
 7
 8 …&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 24 Sep 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2008-09-24:/2008/09/browser-independent-xpath-with-javascript.html</guid><category>javascript</category><category>xml</category><category>xpath</category></item><item><title>Browser-independent XSLT with Javascript</title><link>https://roadha.us/2008/09/browser-independent-xslt-with-javascript.html</link><description>&lt;p&gt;To piggy-back on the &lt;a href="http://roadha.us/2008/09/browser-independent-xml-load-with-javascript/"&gt;Javascript function to load an XML
document&lt;/a&gt;:
what can be done to load an XSL stylesheet and apply it to the XML? For
the most part, loading it is a snap... but, as is often the case,
Internet Explorer is the exception to the rule. So …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Wed, 24 Sep 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2008-09-24:/2008/09/browser-independent-xslt-with-javascript.html</guid><category>javascript</category><category>xml</category><category>xsl</category></item><item><title>LDAP authentication with VB.NET</title><link>https://roadha.us/2008/08/ldap-authentication-with-vbnet.html</link><description>&lt;p&gt;LDAP, or Lightweight Directory Access Protocol, is a convenient, central
repository for a system's personnel information. LDAP (and other Active
Directory services) are widely-used by organizations big and small to
consolidate user credentials and identification data. For instance: a
reporting services application, a webmail client, and a database
administration suite …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 21 Aug 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2008-08-21:/2008/08/ldap-authentication-with-vbnet.html</guid><category>aspx</category><category>dot net</category><category>encryption</category><category>ldap</category><category>security</category><category>vbnet</category></item><item><title>Retrieving user properties from LDAP with VB.NET</title><link>https://roadha.us/2008/08/retrieving-user-properties-from-ldap-with-vbnet.html</link><description>&lt;p&gt;As discussed in &lt;a href="http://roadha.us/2008/08/ldap-authentication-with-vb-net/"&gt;an earlier
post&lt;/a&gt;, LDAP
can be a wonderful tool for centrally storing user information and
credentials. I've written about how to authenticate against the LDAP
repository... but what if you're just looking for
information?&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;The following code will contact the LDAP server and retrieve all
properties for …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 21 Aug 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2008-08-21:/2008/08/retrieving-user-properties-from-ldap-with-vbnet.html</guid><category>dot net</category><category>ldap</category><category>vbnet</category></item><item><title>Simple MD5 hashes in VB.NET</title><link>https://roadha.us/2008/08/simple-md5-hashes-in-vbnet.html</link><description>&lt;p&gt;MD5 (Message Digest) hashes are a simple, efficient way to
encode/encrypt information to be passed around. Rather than containing
the data itself, an MD5 hash is merely a fingerprint of the information.
The hash cannot be decrypted, but is instead compared to other hashed
values for verification. This can …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Tue, 19 Aug 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2008-08-19:/2008/08/simple-md5-hashes-in-vbnet.html</guid><category>dot net</category><category>encryption</category><category>vbnet</category></item><item><title>Using the ConnectionStrings element in ASP.NET web.config</title><link>https://roadha.us/2008/07/using-the-connectionstrings-element-in-aspnet-webconfig.html</link><description>&lt;p&gt;If you are building a series of web applications that
may rely on duplicate data (such as connection strings for pages that
query databases), or you want to separate certain constants from your
other code, you need a centralized method for storing and referencing
that data. In this case, the …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 21 Jul 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2008-07-21:/2008/07/using-the-connectionstrings-element-in-aspnet-webconfig.html</guid><category>aspx</category><category>dot net</category><category>sql</category></item><item><title>Wipe all elements in a form with Javascript</title><link>https://roadha.us/2008/07/wipe-all-elements-in-a-form-with-javascript.html</link><description>&lt;p&gt;Javascript has a nifty method associated with the
&lt;em&gt;form&lt;/em&gt; DOM object called &lt;em&gt;reset()&lt;/em&gt;. Using this method will revert all
values of the form's associated input controls to the values they
contained when the page was last sent to the user's browser. That's
great... but if you want to revert the …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Fri, 18 Jul 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2008-07-18:/2008/07/wipe-all-elements-in-a-form-with-javascript.html</guid><category>forms</category><category>javascript</category></item><item><title>Prepared SQL statements in VB.NET</title><link>https://roadha.us/2008/07/prepared-sql-statements-in-vbnet.html</link><description>&lt;p&gt;Thousands of websites have been hit lately by the rash of SQL injections
being perpetrated en-masse. Most languages (current versions, at least)
have a procedure for separating parameters from the query they augment
in an effort to prevent SQL injection, and VB.NET is no
different.&lt;!--more--&gt;&lt;/p&gt;
&lt;p&gt;Assuming you have stored …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Thu, 17 Jul 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2008-07-17:/2008/07/prepared-sql-statements-in-vbnet.html</guid><category>dot net</category><category>security</category><category>sql</category><category>vbnet</category></item><item><title>Central repository</title><link>https://roadha.us/2008/07/central-repository.html</link><description>&lt;p&gt;I'm starting this blog for two reasons.&lt;/p&gt;
&lt;p&gt;First of all, I wanted somewhere that I could (try to) keep track of all
of my programming projects/interests; sort of an "online notepad," if
you will.&lt;/p&gt;
&lt;p&gt;Second, I figure maybe some of the problems I'm working on--or
hopefully, my solution(s …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">haliphax</dc:creator><pubDate>Mon, 14 Jul 2008 00:00:00 -0500</pubDate><guid isPermaLink="false">tag:roadha.us,2008-07-14:/2008/07/central-repository.html</guid><category>blog news</category></item></channel></rss>