Flagrant Badassery

A JavaScript and regular expression centric blog

Archive for January, 2008

A Few Art Samples

Here be some old drawings I did back in 2002 or thereabouts (I haven't been drawing since then). They're done in pen, pencil, and colored pencil, with some touch-ups and added color from Photoshop. Most of my old art scans are no longer around after numerous computer upgrades, so I'm mostly just posting these here […]

Read More

Fun With .NET Regex Balancing Groups

The .NET Framework's regular expression package includes a unique feature called balancing groups, which is a misnomer since although they can indeed be used to match balanced constructs, that's not all they're good for and really has nothing to do with how they work. Unfortunately, balancing groups are quite poorly documented. Following is a brief […]

Read More

80 Secrets to Success

Behold my Mountain Dew collection at work, originally started when someone asked how much Dew I drank per day. This ended up taking me a couple months, since I slowed down from my previous ~4/day consumption rate right around the time I started preserving the evidence. The photo is by ColdFusion programmer and photographer Joe […]

Read More

Regex Legends: The People Behind the Magic

Many people have contributed to developing and promoting the use of regular expressions since they were invented about half a century ago. Here's a short list of some of the most influential people behind the technology. I've written this up for two reasons: For people who've only gotten into the technology recently but are interested […]

Read More

Timed Memoization

Certain operations are computationally expensive, but because their results might change over time or due to outside influences, they don't lend themselves to typical memoization — take for example getElementsByClassName. Here's a JavaScript timed memoization decorator / higher-order-function I made to help with these cases, which accepts an optional expiration argument in milliseconds. function memoize […]

Read More