<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-529229344940946207</id><updated>2012-02-16T08:33:53.875-05:00</updated><category term='ruby'/><category term='abnf'/><category term='design patterns'/><category term='javascript'/><category term='tool'/><category term='365'/><category term='php'/><category term='C'/><category term='sequence'/><category term='perl'/><category term='rfc'/><category term='monitoring'/><category term='networking'/><category term='validation'/><category term='array'/><category term='library'/><category term='regex'/><category term='gpl'/><category term='extension'/><category term='browser'/><category term='god'/><category term='command-line'/><category term='compliance'/><category term='pattern'/><category term='firewall'/><category term='port'/><category term='sandbenders'/><category term='uri'/><category term='open-source'/><category term='patch'/><title type='text'>Dangerous Programmer</title><subtitle type='html'>That's me - your everyday, dangerously awesome programmer ;)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-3067287530055518626</id><published>2009-03-31T17:33:00.008-04:00</published><updated>2009-03-31T23:42:38.019-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='array'/><category scheme='http://www.blogger.com/atom/ns#' term='port'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='365'/><title type='text'>365 DoC - W1, D2 - C port of PHP Array functions</title><summary type='text'>So today, I decided to 'port' some of the more useful/relevant PHP builtin array handling functions to what their equivalents in C might look like. Sounds kind of boring, I know, but the end result is both useful and re-usable, and is the kind of thing that people write over and over again... although C doesn't really have true arrays, pointer-pointers do the trick for string arrays (char **'s), </summary><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/3067287530055518626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2009/03/365-doc-w1-d2-c-port-of-php-array.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/3067287530055518626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/3067287530055518626'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2009/03/365-doc-w1-d2-c-port-of-php-array.html' title='365 DoC - W1, D2 - C port of PHP Array functions'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-1937373241670262219</id><published>2009-03-30T17:26:00.004-04:00</published><updated>2009-03-31T17:33:03.763-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='365'/><title type='text'>365 DoC - Call for Topics/Disclaimer</title><summary type='text'>First off, just wanted to ask any one who's reading this to please send any and all suggestions you have re. topics/excercises/etc to use as one of the 365 days... I have a pretty decent list of stuff to do, things to work on, etc., but it will be good to have as many options as possible and as much material as I can to choose from when deciding on the mission for a given day.Also, as far as the </summary><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/1937373241670262219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2009/03/365-doc-call-for-topicsdisclaimer.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/1937373241670262219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/1937373241670262219'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2009/03/365-doc-call-for-topicsdisclaimer.html' title='365 DoC - Call for Topics/Disclaimer'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-3925885618313790814</id><published>2009-03-28T23:59:00.001-04:00</published><updated>2009-03-31T17:37:00.846-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='365'/><title type='text'>365 DoC - W1, D1 - Subset Permutations</title><summary type='text'>Problem: based on a given finite set of elements, find every possible combination of X elements, where X indicates 1 to X.Example: in the finite set of elements (A, B, C), all possible combinations of up to three elements would be ((A), (B), (C), (A, B), (A, C), (B, C), (A, B, C)) - this assumes that we would treat (A, B) and (B, A) as the same permutation of a 2-element subset, etc.Solution: if </summary><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/3925885618313790814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2009/03/week-1-day-1-subset-permutations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/3925885618313790814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/3925885618313790814'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2009/03/week-1-day-1-subset-permutations.html' title='365 DoC - W1, D1 - Subset Permutations'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-453809557207661704</id><published>2009-03-28T06:01:00.006-04:00</published><updated>2009-03-30T10:35:16.871-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sandbenders'/><category scheme='http://www.blogger.com/atom/ns#' term='365'/><title type='text'>365 Days of Code</title><summary type='text'>That's right... one piece of working, usable, non-trivial code (ie: it actually does something useful), every single day, for an entire year.Ambitious? Maybe. Necessary? I think so... you see, at some unknown point in recent history, I made a conscious decision to strive to be The Best at what I do. And what I do, is Code. It's my Art. I don't do this for a living because it pays big bucks or I'm</summary><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/453809557207661704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2009/03/365-days-of-code.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/453809557207661704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/453809557207661704'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2009/03/365-days-of-code.html' title='365 Days of Code'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-1078712820771280707</id><published>2008-05-15T00:53:00.015-04:00</published><updated>2008-09-25T03:23:26.436-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sequence'/><category scheme='http://www.blogger.com/atom/ns#' term='library'/><category scheme='http://www.blogger.com/atom/ns#' term='pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='design patterns'/><title type='text'>The Interruptable Sequence Pattern</title><summary type='text'>The interruptable sequence is a web programming design pattern I recently identified and used in a site I'm developing. I tried to locate existing descriptions/definitions of this pattern with no success - I looked for 'interruptable sequence', 'tutorial pattern', 'sequence pattern', etc. without finding anything similar to what I'm about to describe, so I'm posting about it here in the hope that</summary><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/1078712820771280707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2008/05/interruptable-sequence-pattern.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/1078712820771280707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/1078712820771280707'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2008/05/interruptable-sequence-pattern.html' title='The Interruptable Sequence Pattern'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_6_QmRTQ6Jjo/SCvXakGbBpI/AAAAAAAAAAU/yqpeNfRNUA8/s72-c/Interruptable_Sequence_-_Structure.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-3970056316978287568</id><published>2007-10-29T13:53:00.002-04:00</published><updated>2008-05-22T11:35:56.534-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='extension'/><category scheme='http://www.blogger.com/atom/ns#' term='god'/><category scheme='http://www.blogger.com/atom/ns#' term='gpl'/><category scheme='http://www.blogger.com/atom/ns#' term='monitoring'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Update! New god conditions added to source repository!</title><summary type='text'>Click the link to go to the god source repository - as of today, it looks like two of the three conditions I submitted for inclusion have now been added (the third being the mysql_failed condition, which may end up in some kind of auxillary gem or something, as previously mentioned...). So... look for these new conditions in god v0.6.0!complex.rbdisk_usage.rb </summary><link rel='related' href='http://repo.or.cz/w/god.git' title='Update! New god conditions added to source repository!'/><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/3970056316978287568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2007/10/update-new-god-conditions-added-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/3970056316978287568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/3970056316978287568'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2007/10/update-new-god-conditions-added-to.html' title='Update! New god conditions added to source repository!'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-589114119435014629</id><published>2007-10-26T12:08:00.001-04:00</published><updated>2007-10-26T13:08:27.517-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='extension'/><category scheme='http://www.blogger.com/atom/ns#' term='god'/><category scheme='http://www.blogger.com/atom/ns#' term='gpl'/><category scheme='http://www.blogger.com/atom/ns#' term='monitoring'/><title type='text'>New god Conditions</title><summary type='text'>If you haven't checked out god yet as an alternative to monit or other system/software-monitoring tools, do yourself a favour and head over to that link for a while and then come back... it's an awesome little monitoring tool written in ruby that has all kinds of cool features, including event-based conditions that will activate as soon as a process dies instead of needing a periodic check, etc..</summary><link rel='related' href='http://god.rubyforge.org' title='New god Conditions'/><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/589114119435014629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2007/10/new-god-conditions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/589114119435014629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/589114119435014629'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2007/10/new-god-conditions.html' title='New god Conditions'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-9081919488006890296</id><published>2007-05-03T21:25:00.000-04:00</published><updated>2007-10-26T12:06:34.713-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='command-line'/><category scheme='http://www.blogger.com/atom/ns#' term='firewall'/><category scheme='http://www.blogger.com/atom/ns#' term='gpl'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>IPTables Firewall Map</title><summary type='text'>Filter vs. Nat? (Chicken vs. Egg, movie at 11...)A few years ago I had to setup a couple relatively complex firewalls (under Linux), and in the process managed to find some documentation on the order in which a packet traverses each table and it's rules.Sounds pretty basic, however nothing in the documentation or man pages for iptables itself explains how the tables relate to one another; for </summary><link rel='related' href='http://sourceforge.net/projects/iptables-map' title='IPTables Firewall Map'/><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/9081919488006890296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2007/05/iptables-firewall-map.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/9081919488006890296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/9081919488006890296'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2007/05/iptables-firewall-map.html' title='IPTables Firewall Map'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-6156492112251907821</id><published>2007-04-19T21:02:00.000-04:00</published><updated>2007-05-03T22:25:05.748-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='extension'/><category scheme='http://www.blogger.com/atom/ns#' term='gpl'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Gmail and GreaseMonkey</title><summary type='text'>So I finally got around to playing with GreaseMonkey... and I regret not doing it sooner, there's so much I could have done already!If you're not familiar, GreaseMonkey is a Firefox plugin that lets you add your own/custom javascript code to websites. And it's dead simple - based on a handful of specially formatted comments and a file-naming convention, your javascript becomes custom code you can</summary><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/6156492112251907821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2007/04/gmail-and-greasemonkey.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/6156492112251907821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/6156492112251907821'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2007/04/gmail-and-greasemonkey.html' title='Gmail and GreaseMonkey'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-7220596507588321731</id><published>2007-04-19T20:40:00.000-04:00</published><updated>2007-05-03T22:25:19.332-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='tool'/><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='command-line'/><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><category scheme='http://www.blogger.com/atom/ns#' term='perl'/><title type='text'>Command-Line Highlighter</title><summary type='text'>I was grepping through some logs the other day at home and I figured "wouldn't it be nice if I could pipe this through something that would highlight lines matching a regex instead of just having grep pull those lines out?" Wouldn't you know it, such a tool doesn't exist, as far as I can tell. Which is very weird, since I've already found it VERY useful...grep *will* give you context lines if you</summary><link rel='related' href='http://sourceforge.net/projects/highlite' title='Command-Line Highlighter'/><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/7220596507588321731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2007/04/command-line-highlighter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/7220596507588321731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/7220596507588321731'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2007/04/command-line-highlighter.html' title='Command-Line Highlighter'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-8541303145734083906</id><published>2007-03-28T11:21:00.000-04:00</published><updated>2007-10-26T12:03:50.409-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='gpl'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><title type='text'>XMMS disk_writer plugin patch</title><summary type='text'>This is a (very) small patch I wrote a while ago for the disk_writer plugin of xmms (an open-source X windows media player, modelled after WinAmp). The post in the link is pretty self-explanatory, it's taken from the xmms development list where I sent it... basically it simply modifies how the plugin build the filename to write to so that you get an 'auto-rotate' effect instead of overwriting </summary><link rel='related' href='http://lists.xmms.org/pipermail/xmms-devel/2005-January/002981.html' title='XMMS disk_writer plugin patch'/><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/8541303145734083906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2007/03/xmms-diskwriter-plugin-patch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/8541303145734083906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/8541303145734083906'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2007/03/xmms-diskwriter-plugin-patch.html' title='XMMS disk_writer plugin patch'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-5548492986887641130</id><published>2007-03-25T11:11:00.000-04:00</published><updated>2007-10-26T12:05:13.314-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rfc'/><category scheme='http://www.blogger.com/atom/ns#' term='open-source'/><category scheme='http://www.blogger.com/atom/ns#' term='compliance'/><category scheme='http://www.blogger.com/atom/ns#' term='abnf'/><category scheme='http://www.blogger.com/atom/ns#' term='uri'/><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='validation'/><title type='text'>RFC-Compliant URI Validation</title><summary type='text'>Recently, as part of another project, I needed some code to validate a URI string based on RFC-2396. The goal here was the ability to ensure that a URI was RFC compliant. As such, I decided to use a set of regular expressions which were directly modelled from the ABNF definitions in the RFC. ABNF is by it's nature a very close match for regular expressions in terms of usage, syntax and purpose, </summary><link rel='related' href='http://sourceforge.net/projects/urivalidator' title='RFC-Compliant URI Validation'/><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/5548492986887641130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2007/03/rfc-compliant-uri-validation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/5548492986887641130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/5548492986887641130'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2007/03/rfc-compliant-uri-validation.html' title='RFC-Compliant URI Validation'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-529229344940946207.post-1419252399456451081</id><published>2007-03-22T10:29:00.000-04:00</published><updated>2007-03-29T11:03:44.963-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gpl'/><title type='text'>A New Project</title><summary type='text'>So today I finally decided to start writing a proper blog, after toying with the idea on and off for a little while. Among other things, I want all of the random code I write to be freely available and accessible somewhere online under the GPL and it doesn't always fit nicely into existing projects/categories/paradigms/etc. I'll still send and/or upload whatever I can where an appropriate project</summary><link rel='replies' type='application/atom+xml' href='http://dangprog.blogspot.com/feeds/1419252399456451081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dangprog.blogspot.com/2007/03/new-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/1419252399456451081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/529229344940946207/posts/default/1419252399456451081'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/2007/03/new-project.html' title='A New Project'/><author><name>Rudy X. Desjardins</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
