<?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:blogger='http://schemas.google.com/blogger/2008' 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>2024-10-02T13:11:48.848-04:00</updated><category term="open-source"/><category term="gpl"/><category term="365"/><category term="tool"/><category term="C"/><category term="extension"/><category term="php"/><category term="command-line"/><category term="god"/><category term="monitoring"/><category term="networking"/><category term="perl"/><category term="regex"/><category term="ruby"/><category term="abnf"/><category term="array"/><category term="browser"/><category term="compliance"/><category term="design patterns"/><category term="firewall"/><category term="javascript"/><category term="library"/><category term="patch"/><category term="pattern"/><category term="port"/><category term="rfc"/><category term="sandbenders"/><category term="sequence"/><category term="uri"/><category term="validation"/><title type='text'>Dangerous Programmer</title><subtitle type='html'>That&#39;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'/><link rel='alternate' type='text/html' href='http://dangprog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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>25</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="365"/><category scheme="http://www.blogger.com/atom/ns#" term="array"/><category scheme="http://www.blogger.com/atom/ns#" term="C"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="port"/><title type='text'>365 DoC - W1, D2 - C port of PHP Array functions</title><summary type="text">So today, I decided to &#39;port&#39; 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&#39;t really have true arrays, pointer-pointers do the trick for string arrays (char **&#39;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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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&#39;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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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="365"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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="365"/><category scheme="http://www.blogger.com/atom/ns#" term="sandbenders"/><title type='text'>365 Days of Code</title><summary type="text">That&#39;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&#39;s my Art. I don&#39;t do this for a living because it pays big bucks or I&#39;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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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="design patterns"/><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="sequence"/><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&#39;m developing. I tried to locate existing descriptions/definitions of this pattern with no success - I looked for &#39;interruptable sequence&#39;, &#39;tutorial pattern&#39;, &#39;sequence pattern&#39;, etc. without finding anything similar to what I&#39;m about to describe, so I&#39;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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVVQo3xPrMfroXy0ZBqEORXji8ufkXatsyKa_UuRekkBh57xs9dHNTgtRqmCNHAs6ksG3y_rk4DU_F4rBPpgiDEKHEbtjrfVT7WZxwKzqYX22uny2sGl_L3w1a4Gic-C5NXdpiS9Fk5xg/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="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"/><category scheme="http://www.blogger.com/atom/ns#" term="open-source"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><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='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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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="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="open-source"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby"/><title type='text'>New god Conditions</title><summary type="text">If you haven&#39;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&#39;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='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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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="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="networking"/><category scheme="http://www.blogger.com/atom/ns#" term="open-source"/><category scheme="http://www.blogger.com/atom/ns#" term="perl"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><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&#39;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='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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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="browser"/><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="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="open-source"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><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&#39;s so much I could have done already!If you&#39;re not familiar, GreaseMonkey is a Firefox plugin that lets you add your own/custom javascript code to websites. And it&#39;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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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="command-line"/><category scheme="http://www.blogger.com/atom/ns#" term="open-source"/><category scheme="http://www.blogger.com/atom/ns#" term="perl"/><category scheme="http://www.blogger.com/atom/ns#" term="regex"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>Command-Line Highlighter</title><summary type="text">I was grepping through some logs the other day at home and I figured &quot;wouldn&#39;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?&quot; Wouldn&#39;t you know it, such a tool doesn&#39;t exist, as far as I can tell. Which is very weird, since I&#39;ve already found it VERY useful...grep *will* give you context lines if you</summary><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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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="gpl"/><category scheme="http://www.blogger.com/atom/ns#" term="open-source"/><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&#39;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 &#39;auto-rotate&#39; effect instead of overwriting </summary><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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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="abnf"/><category scheme="http://www.blogger.com/atom/ns#" term="compliance"/><category scheme="http://www.blogger.com/atom/ns#" term="open-source"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="regex"/><category scheme="http://www.blogger.com/atom/ns#" term="rfc"/><category scheme="http://www.blogger.com/atom/ns#" term="uri"/><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&#39;s nature a very close match for regular expressions in terms of usage, syntax and purpose, </summary><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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.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&#39;t always fit nicely into existing projects/categories/paradigms/etc. I&#39;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>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>