<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUQESH0zfip7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659</id><updated>2011-11-27T17:21:49.386-08:00</updated><category term="images" /><category term="flash" /><category term="IE bugs" /><category term="javascript" /><category term="coldfusion" /><category term="debugging" /><category term="organization" /><category term="web hosting" /><category term="apple" /><category term="vi buffers" /><category term="passwords" /><category term="perl" /><category term="firebug" /><category term="forums" /><category term="web development" /><category term="hosting" /><category term="open source" /><category term="openoffice" /><category term="openx" /><category term="chrome" /><category term="browsers" /><category term="tables" /><category term="firefox" /><category term="misc stupidity" /><category term="css" /><category term="stupid mistakes" /><category term="phpbb" /><category term="MT" /><category term="tips" /><category term="spam" /><category term="grep" /><category term="imagemagick" /><category term="vim" /><category term="cold fusion" /><category term="filezilla" /><category term="usability" /><category term="vps" /><category term="linux" /><category term="xml" /><category term="movabletype" /><category term="site migration" /><category term="CLI" /><category term="tightvnc" /><category term="macintosh" /><category term="vi" /><category term="IE6" /><category term="php" /><category term="security" /><category term="movable type" /><category term="ssh" /><category term="comment spam" /><category term="backups" /><category term="online banking" /><category term="minefield" /><category term="networking" /><category term="misc" /><category term="godaddy" /><category term="regex" /><category term="jquery" /><category term="dns" /><category term="smarty" /><category term="CMS" /><category term="dropbox" /><category term="regular expressions" /><category term="IE" /><category term="project management" /><category term="command line" /><category term="ubuntu" /><category term="testing" /><category term="securty" /><category term="password safe" /><category term="vi macros" /><category term="ftp" /><category term="itunes" /><category term="google" /><title>Helpful Coder</title><subtitle type="html">A repository of handy little tips I'm building for the benefit of my fellow web developers.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://helpfulcoder.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>The Author</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>64</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/HelpfulCoder" /><feedburner:info uri="helpfulcoder" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A0YDSH0zcSp7ImA9Wx9aFEw.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-6933510751922024968</id><published>2011-03-06T05:46:00.001-08:00</published><updated>2011-03-06T05:46:19.389-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-06T05:46:19.389-08:00</app:edited><title>Mobile posting</title><content type="html">&lt;div&gt;&lt;p&gt;I'm writing this post on my phone using the official Blogger android app... seems pretty basic, but handy nevertheless!&lt;/p&gt;
&lt;p&gt;More posts coming this week, if my workload cooperates.&lt;/p&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-6933510751922024968?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/v5PxT2G210xrM9La1kyC93y2eF8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v5PxT2G210xrM9La1kyC93y2eF8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/v5PxT2G210xrM9La1kyC93y2eF8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/v5PxT2G210xrM9La1kyC93y2eF8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/eQNIUKmbzOo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/6933510751922024968/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=6933510751922024968" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/6933510751922024968?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/6933510751922024968?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/eQNIUKmbzOo/mobile-posting.html" title="Mobile posting" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2011/03/mobile-posting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0INRnkyeyp7ImA9Wx9aE0o.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-1244168415224119610</id><published>2011-03-05T17:35:00.000-08:00</published><updated>2011-03-05T17:39:57.793-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-05T17:39:57.793-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="macintosh" /><category scheme="http://www.blogger.com/atom/ns#" term="apple" /><title>Life as a Mac web developer</title><content type="html">I have a terrible secret. For the last few months, I've been using a... Mac (gasp). &lt;br /&gt;&lt;br /&gt;Now I may be the only mac-user on this blue ball that isn't some sort of die-hard apple cultist. I think they're great (if over-priced) hardware, and I dig OSX. I don't think Steve Jobs is the second coming. I hate iTunes and iPods. I don't have an iPhone. I don't like black turtlenecks.&lt;br /&gt;&lt;br /&gt;But this does make a nice little web development machine. I have a command line (that's not DOS...) and a unixish OS. It has apache set up right away. It has a very nice UI, and there is some amount of "it just works" - although I'm not sure that's more true with WIndows. But it is more true than of even the best linux distros, at least in my experience.&lt;br /&gt;&lt;br /&gt;So, stay tuned and I'll point out some handy apps for any other web devs who've made the switch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-1244168415224119610?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iQC61uC6iTVSPqAtra9S0LMN5vs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iQC61uC6iTVSPqAtra9S0LMN5vs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iQC61uC6iTVSPqAtra9S0LMN5vs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iQC61uC6iTVSPqAtra9S0LMN5vs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/4v5wOZ2fuHU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/1244168415224119610/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=1244168415224119610" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/1244168415224119610?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/1244168415224119610?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/4v5wOZ2fuHU/life-as-mac-web-developer.html" title="Life as a Mac web developer" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2011/03/life-as-mac-web-developer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIGSH44eip7ImA9Wx9VFU0.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-4939296415645173623</id><published>2011-01-31T11:32:00.000-08:00</published><updated>2011-01-31T11:35:29.032-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-31T11:35:29.032-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="php" /><title>Empty $_POST array in MAMP</title><content type="html">OK, so just spent 30 minutes debugging this. I'm now using a mac as my development platform for one of the sites I support. It's worked pretty well until today when I started adding a new feature. I ran into a weird problem where POST arguments were not being made available, either in $_REQUEST or $_POST - while GET arguments were. &lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://www.bradino.com/php/empty-post-array/"&gt;this page&lt;/a&gt;, I was pointed in a useful directions. Turns out for some reason my version of MAMP had a max_post_size of "3200M" set in its php.ini file. That was not working too well - when I changed it to 32M, everything went back to working normally.&lt;br /&gt;&lt;br /&gt;So, perhaps that will help someone else who's driving themselves crazy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-4939296415645173623?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4xEmoc58VegKOVi2GJpKGsCVHSA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4xEmoc58VegKOVi2GJpKGsCVHSA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4xEmoc58VegKOVi2GJpKGsCVHSA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4xEmoc58VegKOVi2GJpKGsCVHSA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/OHF8NLjjTVI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/4939296415645173623/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=4939296415645173623" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/4939296415645173623?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/4939296415645173623?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/OHF8NLjjTVI/empty-post-array-in-mamp.html" title="Empty $_POST array in MAMP" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2011/01/empty-post-array-in-mamp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUBQHkzfSp7ImA9Wx5bEUQ.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-6808091314670599254</id><published>2010-10-27T09:31:00.001-07:00</published><updated>2010-10-27T09:34:11.785-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-27T09:34:11.785-07:00</app:edited><title>halloween</title><content type="html">OK, time for a non-techie post. After all, were all humans, right? Well, maybe...&lt;br /&gt;&lt;br /&gt;I &lt;span style="font-weight:bold;"&gt;love&lt;/span&gt; halloween. Love it. Best holiday of them all. I loved it as a kid, and it just gets better as an adult. I like the weather, I like the decorations, I like the beer. It's a great time. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This weekend one of my favorite podcasts will be doing their &lt;i&gt;&lt;a href="http://taverncast.com/halloweekend-2010.html"&gt;Halloweekend&lt;/a&gt;&lt;/i&gt;&lt;a href="http://taverncast.com/halloweekend-2010.html"&gt; &lt;/a&gt;- in which new shows will be posted each night starting on Friday - should be a blast. Check it out! Maybe you need something fun to listen to while you hand out treats or head to your halloween parties :)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-6808091314670599254?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2qYL6402qjas7zZmURSg7cwdRHk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2qYL6402qjas7zZmURSg7cwdRHk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2qYL6402qjas7zZmURSg7cwdRHk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2qYL6402qjas7zZmURSg7cwdRHk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/o5-sB-75lXc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/6808091314670599254/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=6808091314670599254" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/6808091314670599254?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/6808091314670599254?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/o5-sB-75lXc/halloween.html" title="halloween" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2010/10/halloween.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcDQH8-fCp7ImA9Wx5UF0s.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-599393083442729554</id><published>2010-10-22T08:04:00.000-07:00</published><updated>2010-10-22T08:07:51.154-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-22T08:07:51.154-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><title>Ooh shiny - Ubuntu 10.1</title><content type="html">Just read &lt;a href="http://arstechnica.com/open-source/reviews/2010/10/ars-reviews-ubuntu-1010-wip.ars"&gt;this Ubuntu review&lt;/a&gt; - I used Ubuntu on my primary work machine for a long time, but it's been a few years since I used it now... time to get back in I think. Wonder if it will work on my old sony vaio - I suspect it has proprietary hardware that may cause problems....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-599393083442729554?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/dHnR5FuIir5hiNEhiw-DR1g49S0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dHnR5FuIir5hiNEhiw-DR1g49S0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/dHnR5FuIir5hiNEhiw-DR1g49S0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/dHnR5FuIir5hiNEhiw-DR1g49S0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/QZ-_yv32VWs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/599393083442729554/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=599393083442729554" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/599393083442729554?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/599393083442729554?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/QZ-_yv32VWs/ooh-shiny-ubuntu-101.html" title="Ooh shiny - Ubuntu 10.1" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2010/10/ooh-shiny-ubuntu-101.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04AR3gzeSp7ImA9Wx5VE0o.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-5566218630080890800</id><published>2010-10-06T08:40:00.000-07:00</published><updated>2010-10-06T08:45:46.681-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-06T08:45:46.681-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dropbox" /><category scheme="http://www.blogger.com/atom/ns#" term="backups" /><title>Dropbox is a savior!</title><content type="html">(yes, decided to try to post some more, got really busy for a while and this project - among many others - got sidelined...)&lt;br /&gt;&lt;br /&gt;A couple days ago &lt;span style="font-weight:bold;"&gt;Dropbox &lt;/span&gt;saved me from a significant amount of repair work. &lt;a href="http://www.dropbox.com"&gt;Dropbox&lt;/a&gt; is a free online backup/file sync tool available for windows, mac and Linux. Basically you set up a folder different computers. Anything in that folder is a synced to all the other computers. This is handy for easily keeping things available that you need on different machines.&lt;br /&gt;&lt;br /&gt;It's also handy for collaborating with other people, in that you can give people access to specific subdirectories of your dropbox folder. I did this for a project I was working with a designer on. He spent hours working on a photoshop file, then told me that it was ready for me to use...&lt;br /&gt;&lt;br /&gt;I opened the file, and only about 10% of the required stuff seemed to be there! Uhoh. I called him, and he swore up and down that he'd done the work, etc. &lt;br /&gt;&lt;br /&gt;Well, Dropbox also has another handy feature - previous versions of files are available via its web interface. So I logged into the web interface, found the file in question and found that sure enough its file size had been quite a bit larger a couple versions back. I restored the file and *presto* all the necessary stuff is there! Whew! Somehow he'd overwritten the file with an older version. &lt;br /&gt;&lt;br /&gt;So, if you haven't already check out dropbox. I've really had zero problems with it, and it's really quite handy - and occasionally a real life saver!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-5566218630080890800?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HNm_m3N2hEQjFraao7v-shjnlJ8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HNm_m3N2hEQjFraao7v-shjnlJ8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HNm_m3N2hEQjFraao7v-shjnlJ8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HNm_m3N2hEQjFraao7v-shjnlJ8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/cvsO_PTPxOs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/5566218630080890800/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=5566218630080890800" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/5566218630080890800?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/5566218630080890800?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/cvsO_PTPxOs/dropbox-is-savior.html" title="Dropbox is a savior!" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2010/10/dropbox-is-savior.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MCQXs-eyp7ImA9WxBbFEw.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-8606043267317610995</id><published>2010-03-12T08:28:00.000-08:00</published><updated>2010-03-12T08:31:00.553-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-12T08:31:00.553-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="google" /><title>Great google article</title><content type="html">Over on &lt;a href="http://www.maximumpc.com/article/features/power_users_guide_google"&gt;Maximum PC&lt;/a&gt; - there were a few things I didn't know you could do with the various Google apps.&lt;br /&gt;&lt;br /&gt;One is uploading files to google docs - any file. Which ties in well with my previous post about storing passwords - I uploaded a copy of my password safe file to google docs as a backup. Can't hurt, right?&lt;br /&gt;&lt;br /&gt;Also, I wasn't aware that you could set up forms in google docs that act as surveys, and then store the results in a google docs spreadsheet. This is a little alarming, as a decent amount of my work involves coding up custom surveys similar to this...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-8606043267317610995?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AJvrdtrupWiGl6GXVH_ne9CMouM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AJvrdtrupWiGl6GXVH_ne9CMouM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AJvrdtrupWiGl6GXVH_ne9CMouM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AJvrdtrupWiGl6GXVH_ne9CMouM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/IMtXR7usRSw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/8606043267317610995/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=8606043267317610995" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/8606043267317610995?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/8606043267317610995?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/IMtXR7usRSw/great-google-article.html" title="Great google article" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2010/03/great-google-article.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cAQXk5fSp7ImA9WxBbE0w.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-508909258611642189</id><published>2010-03-11T06:38:00.000-08:00</published><updated>2010-03-11T06:50:40.725-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-11T06:50:40.725-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jquery" /><category scheme="http://www.blogger.com/atom/ns#" term="xml" /><title>Using jQuery to parse an xml feed and create a bullet list</title><content type="html">This one's really simple, but I end up using it a lot so why not post it?&lt;br /&gt;&lt;br /&gt;Say you need to display an xml news feed on a site. I needed to. So I looked at how to do it with PHP, and it seemed far more over-complicated than need be for something so simple. &lt;br /&gt;&lt;br /&gt;One again &lt;a href="http://docs.jquery.com/Main_Page"&gt;jQuery&lt;/a&gt; comes to the rescue. If you're not familiar with jQuery, it's a javascript library that makes javascript actually pleasant to use. I used to avoid javascript because of cross-browser issues, and everything always seemed more difficult than it needed to be. jQuery fixes all that.&lt;br /&gt;&lt;br /&gt;The code snippet below uses jQuery to grab the XML feed, go through each item in the feed and output a simple bullet list of linked titles. Should be easy to adapt it to whatever your needs may be. Just be sure you also have the jQuery library set up on what page you use it on. It also uses a &amp;lt;ul id="theBox"&amp;gt;  to put the bullet items in.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$(document).ready(function(){&lt;br /&gt;&lt;br /&gt;  var theBox = "";&lt;br /&gt;&lt;br /&gt;  $.get('XML URL HERE', {}, function(xml){&lt;br /&gt;    $('item',xml).each(function(){&lt;br /&gt;      theBox += "&amp;lt;li&amp;gt;&amp;lt;a href=\"" + &lt;br /&gt;        $(this).find("link").text() + "\"&amp;gt;" + &lt;br /&gt;        $(this).find("title").text() + &lt;br /&gt;        "&amp;lt;/a&amp;gt;&amp;lt/li&amp;gt";&lt;br /&gt;&lt;br /&gt;    });&lt;br /&gt;  $('ul#theBox').html(theBox);&lt;br /&gt;  });&lt;br /&gt;&lt;br /&gt;});&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-508909258611642189?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/avoisPgysfgFVbRWlvC-cl6E_-E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/avoisPgysfgFVbRWlvC-cl6E_-E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/avoisPgysfgFVbRWlvC-cl6E_-E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/avoisPgysfgFVbRWlvC-cl6E_-E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/I5yisFH-Cpc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/508909258611642189/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=508909258611642189" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/508909258611642189?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/508909258611642189?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/I5yisFH-Cpc/using-jquery-to-parse-xml-feed-and.html" title="Using jQuery to parse an xml feed and create a bullet list" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2010/03/using-jquery-to-parse-xml-feed-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcAR3gyfyp7ImA9WxBUF04.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-1658264201825925240</id><published>2010-03-04T11:06:00.000-08:00</published><updated>2010-03-04T11:14:06.697-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-04T11:14:06.697-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="password safe" /><category scheme="http://www.blogger.com/atom/ns#" term="passwords" /><category scheme="http://www.blogger.com/atom/ns#" term="securty" /><category scheme="http://www.blogger.com/atom/ns#" term="dropbox" /><title>Storing Passwords Securely</title><content type="html">This is probably a problem that others have encountered, so I thought I'd address my solution here... &lt;br /&gt;&lt;br /&gt;If you work on a &lt;span style="font-style:italic;"&gt;lot&lt;/span&gt; of different websites, you tend to have a &lt;span style="font-style:italic;"&gt;lot&lt;/span&gt; of username/password/etc info that you need to keep track of somehow. You can try to remember them all, or use the same info for each - the potential problems with these two approaches are obvious. &lt;br /&gt;&lt;br /&gt;What is needed is some way to store this info &lt;span style="font-weight:bold;"&gt;securely&lt;/span&gt; and ideally across different computers, and with an eye towards keeping it backed up - obviously losing all the passwords to your clients' websites would not be a good thing! The only worse thing would be having that information fall into the wrong hands.&lt;br /&gt;&lt;br /&gt;My current solution makes use of two free pieces of software. The first is &lt;span style="font-weight:bold;"&gt;&lt;a href="http://www.dropbox.com/"&gt;Dropbox&lt;/a&gt;&lt;/span&gt; - a free cloud-based backup/sync program. Essentially, it sets up a folder on your computer, and anything in that folder is backed up to their server and sync'd with other machines with dropbox that are connected to your account. You can have up to 2 gigabytes for free.&lt;br /&gt;&lt;br /&gt;The second piece of software is &lt;span style="font-weight:bold;"&gt;&lt;a href="http://passwordsafe.sourceforge.net/"&gt;Password Safe&lt;/a&gt;&lt;/span&gt;, an open source program that lets you store passwords very securely. The program must be "unlocked" using a password, and the data is stored securely in a small encrypted file.&lt;br /&gt;&lt;br /&gt;To make this work, just set up a password safe file for your info, and save it in your dropbox folder. Problem solved! It's automatically backed up and synced with your other machines. The only (very small) problem I've had is that dropbox can't back-up the password while it's in use by password safe - so be sure to shut the program down totally when after you've used it, and you're all set!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-1658264201825925240?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fEbIeDij8MuqWdKKCJzan4SkeRI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fEbIeDij8MuqWdKKCJzan4SkeRI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fEbIeDij8MuqWdKKCJzan4SkeRI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fEbIeDij8MuqWdKKCJzan4SkeRI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/-Yj_4UoALpg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/1658264201825925240/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=1658264201825925240" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/1658264201825925240?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/1658264201825925240?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/-Yj_4UoALpg/storing-passwords-securely.html" title="Storing Passwords Securely" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2010/03/storing-passwords-securely.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEENRnY-fSp7ImA9WxJRGEg.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-6705602966827626024</id><published>2009-05-20T13:49:00.000-07:00</published><updated>2009-05-20T13:51:37.855-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-20T13:51:37.855-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="jquery" /><title>jQuery rocks</title><content type="html">OK, I'm late to the game on it, but I'm really digging jQuery. I used to really dread having to do much of anything in javascript because of all the retarded cross-browser issues, the difficulty testing, etc. But jQuery is really turning that around for me - you can get some really neat stuff without having to deal with all the usual javascript stupidity (well, most of it) - &lt;a href="http://docs.jquery.com/Main_Page"&gt;check it out&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-6705602966827626024?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/XHKUyXZBPkbkGtR75ZwFoNzEd5Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XHKUyXZBPkbkGtR75ZwFoNzEd5Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/XHKUyXZBPkbkGtR75ZwFoNzEd5Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/XHKUyXZBPkbkGtR75ZwFoNzEd5Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/W8CXyZxkFpU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/6705602966827626024/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=6705602966827626024" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/6705602966827626024?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/6705602966827626024?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/W8CXyZxkFpU/jquery-rocks.html" title="jQuery rocks" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2009/05/jquery-rocks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQDRHw-fSp7ImA9WxJRFks.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-3396094219027576426</id><published>2009-05-18T08:23:00.000-07:00</published><updated>2009-05-18T08:26:15.255-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-05-18T08:26:15.255-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vim" /><category scheme="http://www.blogger.com/atom/ns#" term="command line" /><title>Great VIM Article</title><content type="html">Over on &lt;a href="http://arstechnica.com/open-source/guides/2009/05/vim-made-easy-how-to-get-your-favorite-ide-features-in-vim.ars"&gt;Ars Technica&lt;/a&gt; - how to get common IDE features in VIM. Gonna have to try some of these! The code navigation sidebar looks particularly useful, especially for one of the large sites I support at work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-3396094219027576426?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hV8o58Y2o5PWQwEq1XVylC8t-0Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hV8o58Y2o5PWQwEq1XVylC8t-0Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hV8o58Y2o5PWQwEq1XVylC8t-0Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hV8o58Y2o5PWQwEq1XVylC8t-0Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/Ugd2XTfAHV0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/3396094219027576426/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=3396094219027576426" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/3396094219027576426?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/3396094219027576426?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/Ugd2XTfAHV0/great-vim-article.html" title="Great VIM Article" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2009/05/great-vim-article.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEANRn48eyp7ImA9WxVREEg.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-7681656966938377935</id><published>2009-01-15T13:49:00.000-08:00</published><updated>2009-01-15T13:59:57.073-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-15T13:59:57.073-08:00</app:edited><title>"Cropped" images via CSS only</title><content type="html">Had this problem on a site recently. There was an area where a variety of images could show up, dynamically pulled from a datbase. The images were of a fair variety of dimensions - all the same general size, but no exactly the same.&lt;br /&gt;&lt;br /&gt;The variety of dimensions made the area look bad - and simply forcing them to the same dimensions led to distorted looking images. At the same time it wasn't feasible to resize or crop them either automatically or manually.&lt;br /&gt;&lt;br /&gt;The solution I came up with was to simulate a cropping effect. I came up with a good "ideal" dimension. Say it's 100x100. The images themselves are in a grid of table cells.&lt;br /&gt;&lt;br /&gt;First, I fixed the table cell size at 100x100. Then, rather than placing the image inside the table cell as would be standard, I set it as the background for the table cell, and just put a "&amp;amp;bsp;" in the table cell (so it's not empty).&lt;br /&gt;&lt;br /&gt;This makes it so that the table cell displays the image as a background - any parts of the image that exceed the 100x100 dimensions are not shown. But if for example the image is narrower (say 90x100) then it won't fill out the 100x100 enclosing table cell.&lt;br /&gt;&lt;br /&gt;To fix this, I set the background color for the cells to black. Then I set the background position to "center center".&lt;br /&gt;&lt;br /&gt;Here's the basic css code:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  td.thumbnail { &lt;br /&gt;    width: 100px;&lt;br /&gt;    height: 100px;&lt;br /&gt;    background-color: black;&lt;br /&gt;    background-repeat: no-repeat;&lt;br /&gt;    background-position: center center;&lt;br /&gt;  }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Here's the html for a single table cell. You have to use inline styles to set a different background image for each cell.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  &amp;lt;td class="thumbnail" style="background-image: url([the image]);"&amp;gt;&lt;br /&gt;    &amp;amp;nbsp;&lt;br /&gt;  &amp;lt;/td&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-7681656966938377935?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vUZ9PtY2Cc24aEK9B83__yLCbJM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vUZ9PtY2Cc24aEK9B83__yLCbJM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vUZ9PtY2Cc24aEK9B83__yLCbJM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vUZ9PtY2Cc24aEK9B83__yLCbJM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/iAjJfqyJej4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/7681656966938377935/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=7681656966938377935" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/7681656966938377935?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/7681656966938377935?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/iAjJfqyJej4/cropped-images-via-css-only.html" title="&quot;Cropped&quot; images via CSS only" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2009/01/cropped-images-via-css-only.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIFRXg-cSp7ImA9WxRbF0o.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-8811404784220651232</id><published>2008-12-08T13:44:00.000-08:00</published><updated>2008-12-08T13:58:34.659-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-12-08T13:58:34.659-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vi" /><category scheme="http://www.blogger.com/atom/ns#" term="vim" /><category scheme="http://www.blogger.com/atom/ns#" term="regex" /><category scheme="http://www.blogger.com/atom/ns#" term="regular expressions" /><title>Handy vim - easily generate properly formated bullet lists</title><content type="html">This is a problem I run into fairly often, because I do a bit of hand-coding HTML from word files or other content that clients send me. When you cut and paste the items for a bullet list into an html document, they often come in one per line with no formatting (or sometimes they have a "*" at the start of each line. &lt;br /&gt;&lt;br /&gt;Obviously you can &lt;a href="http://helpfulcoder.blogspot.com/2008/03/another-vi-tip-using-macros-example.html"&gt;create a macro&lt;/a&gt; to automate the process of putting &lt;span style="font-style:italic;"&gt;&amp;lt;li&amp;gt;&lt;/span&gt; tags around each item, but there's an even faster way to do this using vi's powerful regular expression tools.&lt;br /&gt;&lt;br /&gt;Of course, this will only be useful if you can use vi, a command-line text-editor. If you're on &lt;a href="http://www.nexcess.net/hosting/shared.php"&gt;shared hosting&lt;/a&gt; or something, you may be out of luck. There is a windows version of vi, but I haven't really done more than mess with it a bit. If you're on OSX, you're probably in luck - you can use the console, and I &lt;span style="font-style:italic;"&gt;think&lt;/span&gt; that it has vim installed, although it's been like eight years since I used OSX regularly.&lt;br /&gt;&lt;br /&gt;First, figure out the lines that you want to change - you need to know the first and last line to apply the expression to. For example, let's stay they're lines 5-10 of the code.&lt;br /&gt;&lt;br /&gt;Then apply the following regular expression by pressing ":" and then typing it in:&lt;br /&gt;&lt;span style="font-style:italic;"&gt;5,10 s/\(.*\)/\t&amp;lt;li&amp;gt;\1&amp;lt;\/li&amp;gt;/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The basic pattern here is &lt;span style="font-style:italic;"&gt;s/pattern/replacement/&lt;/span&gt;. So, to break it apart sequentially:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;5,10&lt;/span&gt; - apply the pattern only to lines 5-10&lt;br /&gt;&lt;span style="font-style:italic;"&gt;s&lt;/span&gt; - subsitute&lt;br /&gt;&lt;span style="font-style:italic;"&gt;/\(.*\)/&lt;/span&gt; - match this pattern - &lt;span style="font-style:italic;"&gt;.*&lt;/span&gt; means all characters, the escaped parentheses around it tell vi to remember what was matched for use in the replacement&lt;br /&gt;&lt;span style="font-style:italic;"&gt;\t&amp;lt;li&amp;gt;\1&amp;lt;\/li&amp;gt;&lt;/span&gt; - the replacement portion of the pattern, the &lt;span style="font-style:italic;"&gt;\1&lt;/span&gt; is a stand-in for what was matched in the matching pattern, the rest of puts a tab and open LI tag in front, with a closing LI tag after.&lt;br /&gt;&lt;br /&gt;Of course similar patterns can be used for all sorts of things, such as replacing variable names in code. Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-8811404784220651232?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8SUBunqX-z0M-GlYNhAHEonte_o/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8SUBunqX-z0M-GlYNhAHEonte_o/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8SUBunqX-z0M-GlYNhAHEonte_o/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8SUBunqX-z0M-GlYNhAHEonte_o/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/snegGY6ut0o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/8811404784220651232/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=8811404784220651232" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/8811404784220651232?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/8811404784220651232?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/snegGY6ut0o/handy-vim-easily-generate-properly.html" title="Handy vim - easily generate properly formated bullet lists" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/12/handy-vim-easily-generate-properly.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cHQnwyeyp7ImA9WxRUFkk.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-910697794774237825</id><published>2008-11-25T08:58:00.000-08:00</published><updated>2008-11-25T12:30:33.293-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-25T12:30:33.293-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="web hosting" /><category scheme="http://www.blogger.com/atom/ns#" term="vps" /><title>MaxVPS has new plans</title><content type="html">One of the hosting companies I work a lot with has just gone through and redone all of their &lt;a href="http://www.maxvps.com/"&gt;VPS hosting plans&lt;/a&gt;. They've simplified the number of plans, and improved them significantly, increasing the amount of storage space, bandwidth, RAM available at each price point. They've also updated their support for a wider variety of operating systems (including &lt;a href="http://www.maxvps.com/services/windows-vps-hosting.php"&gt;Windows&lt;/a&gt;) and web control panels.&lt;br /&gt;&lt;br /&gt;A &lt;span style="font-weight:bold;"&gt;Virtual Private Server&lt;/span&gt; is essentially the same as a dedicated server, except that it's running on "virtual" hardware. In other words, the physical server that hosts the VPS is running virtualization software that allows it to host one or more virtual machines, and the VPS plans are set up on these machines.&lt;br /&gt;&lt;br /&gt;This has a number of benefits - it spreads the cost of the physical server out over multiple clients, making for cheaper hosting. At the same time a VPS server has many of the same benefits of a dedicated server, such as greater stability, security and flexibility when compare to traditional shared hosting.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-910697794774237825?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Aqj-71d05JuCZ_AXqHXjeYnBwjo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Aqj-71d05JuCZ_AXqHXjeYnBwjo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Aqj-71d05JuCZ_AXqHXjeYnBwjo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Aqj-71d05JuCZ_AXqHXjeYnBwjo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/k2A6c5n6NaM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/910697794774237825/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=910697794774237825" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/910697794774237825?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/910697794774237825?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/k2A6c5n6NaM/maxvps-has-new-plans.html" title="MaxVPS has new plans" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/11/maxvps-has-new-plans.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcGSX0yeSp7ImA9WxRWF08.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-7314818048450157237</id><published>2008-11-03T07:49:00.001-08:00</published><updated>2008-11-03T08:00:28.391-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-03T08:00:28.391-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="project management" /><category scheme="http://www.blogger.com/atom/ns#" term="organization" /><title>Getting more organized...</title><content type="html">I think I'm a pretty organized guy, at least compared to some of the people I've worked with over the years. But what with a full time job, my own side business, and another business-related project - plus being a homeowner with all the little tasks that entails, I'm starting to feel like my current system may not be adequate. &lt;br /&gt;&lt;br /&gt;On the work side, I have multiple web projects spread across three broad categories, plus other non web-related tasks. Of course most projects have multiple sub-tasks and information. And then on the personal side it's the usual stuff... bills that need to be paid, things that need to be fixed/replaced, etc. &lt;br /&gt;&lt;br /&gt;My current system pretty much totally relies on email, at least for the work-related stuff. This system has worked well for me for years - emails stay in the inbox until responded to or the related task is completed, at which point they're saved in the appropriate folder, depending on the task/client they're related to. For offline stuff I have your basic little notebook that has years worth of notes from meetings, etc. in it.&lt;br /&gt;&lt;br /&gt;I like email because it's "in the cloud" - I use imap so it's always available as long as I have access to an internet-enabled computer (or to some extent my phone). But the system doesn't seem to do well at tracking larger, longer-term projects with multiple goals, tasks, etc. And if something doesn't end up in my email, I'm much more likely to forget about it. &lt;br /&gt;&lt;br /&gt;I've tried using my palm phone's to-do list, but that's just clunky and inefficient to be adding stuff all the time. I think I'd prefer paper to that...&lt;br /&gt;&lt;br /&gt;So I've been looking around a bit at other options. Some, like the "&lt;a href="http://www.davidco.com/"&gt;Getting Things Done&lt;/a&gt;" system seem promising - but require a lot of up-front work to set up and may require custom software, etc. But perhaps it's worth the cost, it's hard to tell. &lt;br /&gt;&lt;br /&gt;I guess I'll write another post if I ever solve the problem. Guess that's something else to add to the to-do list...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-7314818048450157237?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3jHj_8ZW-5Ok387OFd_JNRUFzyo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3jHj_8ZW-5Ok387OFd_JNRUFzyo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3jHj_8ZW-5Ok387OFd_JNRUFzyo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3jHj_8ZW-5Ok387OFd_JNRUFzyo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/MtE-zBUWGuc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/7314818048450157237/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=7314818048450157237" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/7314818048450157237?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/7314818048450157237?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/MtE-zBUWGuc/getting-more-organized.html" title="Getting more organized..." /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/11/getting-more-organized.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUEQXkyeip7ImA9WxRWFEo.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-8934542816247596866</id><published>2008-10-31T11:13:00.001-07:00</published><updated>2008-10-31T11:20:00.792-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-31T11:20:00.792-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="misc" /><category scheme="http://www.blogger.com/atom/ns#" term="backups" /><title>Dropbox - very handy!</title><content type="html">Been using &lt;a href="https://www.getdropbox.com/home"&gt;Dropbox&lt;/a&gt; for a while, and I have to say I've had pretty much zero problems with it. I'd previously mentioned trying Badongo, and that didn't work very well at all, so Dropbox is looking pretty good!&lt;br /&gt;&lt;br /&gt;Dropbox acts as a "cloud" synchronization tool. Basically, you specify where your dropbox folder will be on a computer. Anything put in that folder is sync'd with their service, as well as with any other comptuters registered with your dropbox account.&lt;br /&gt;&lt;br /&gt;I regularly work on three different computers, and this is proving to be very handy for keeping files current. If I need to go work on the laptop somewhere, I know it has the same basic files as my main work computer. &lt;br /&gt;&lt;br /&gt;If you delete a file, it will be deleted from the other computers. This makes sense since it's a syncing utility, but at first it seemed to counteract Dropbox's claim that it's also useful for backing up data. After all, if something happens and the dropbox folder is deleted, there goes your data!&lt;br /&gt;&lt;br /&gt;Well, I was wrong on that - while it &lt;span style="font-style:italic;"&gt;does&lt;/span&gt; delete files from the other computers, a copy is kept in the "cloud" - meaning you can go to their site, and choose "view deleted files" to see the files that have been deleted, and then restore them as needed.&lt;br /&gt;&lt;br /&gt;I haven't tried anything other than the windows version, but they claim to have max and linux versions, which is pretty cool. Right now there's a free 2 gigabyte plan (what I'm using) - but apparently there will be bigger plans coming. &lt;br /&gt;&lt;br /&gt;If someone needs an invite, post a comment with your email address and I'll send an invite. Don't think they're necessary any more though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-8934542816247596866?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5YBEytmyoFUrgbkVY9w0gnkFaGk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5YBEytmyoFUrgbkVY9w0gnkFaGk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5YBEytmyoFUrgbkVY9w0gnkFaGk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5YBEytmyoFUrgbkVY9w0gnkFaGk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/3I__2ojGmLg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/8934542816247596866/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=8934542816247596866" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/8934542816247596866?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/8934542816247596866?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/3I__2ojGmLg/dropbox-very-handy.html" title="Dropbox - very handy!" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/10/dropbox-very-handy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAMSX0-eyp7ImA9WxRWFEo.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-5360172723928825371</id><published>2008-10-30T08:42:00.001-07:00</published><updated>2008-10-31T11:13:08.353-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-31T11:13:08.353-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="minefield" /><category scheme="http://www.blogger.com/atom/ns#" term="browsers" /><category scheme="http://www.blogger.com/atom/ns#" term="chrome" /><title>Browsers - Minefield &gt; Chrome!</title><content type="html">Been messing around a bit with the new Mozilla beta browser, &lt;a href="http://www.mozilla.org/projects/minefield/"&gt;Minefield&lt;/a&gt; - and finding it a &lt;span style="font-style:italic;"&gt;lot&lt;/span&gt; better than google chrome. For one thing, I've been getting weird problems in google chrome, as I'd mentioned text entry boxes (textarea) are messed, and there seems to be problems with Flash not playing. &lt;br /&gt;&lt;br /&gt;I haven't had any of those problems with Minefield. Plus it's at least as fast as Chrome. And while most extensions don't work with it yet, it's pretty much certain that they will once it's released. Still no word on extensions on Chrome.&lt;br /&gt;&lt;br /&gt;And IE? Only the clueless still use that lame pos.... too bad there's so many clueless users out there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-5360172723928825371?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-Uu5zqsDxpkI1wu43tuW8ovj958/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-Uu5zqsDxpkI1wu43tuW8ovj958/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-Uu5zqsDxpkI1wu43tuW8ovj958/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-Uu5zqsDxpkI1wu43tuW8ovj958/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/a9wNAlmF0Ww" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/5360172723928825371/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=5360172723928825371" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/5360172723928825371?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/5360172723928825371?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/a9wNAlmF0Ww/browsers-minfield-chrome.html" title="Browsers - Minefield &gt; Chrome!" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/10/browsers-minfield-chrome.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QARHc_fSp7ImA9WxRQGU8.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-5545252810734076028</id><published>2008-10-13T11:04:00.000-07:00</published><updated>2008-10-13T11:09:05.945-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-13T11:09:05.945-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="misc stupidity" /><title>Wow that inspires confidence</title><content type="html">Went to check my bank account online (National City) and was unable to login with Firefox 3. Tried reloading several times, tried clicking the form's submit button or hitting 'enter' - nada. &lt;br /&gt;&lt;br /&gt;Worked fine (if slow as hell) on IE7. I've got work to do, so didn't try to figure out how in the world they managed to break a form submit button in FF - that's got to take some doing!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-5545252810734076028?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WMfj07d4cY7lwomHiP4bJflE-ww/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WMfj07d4cY7lwomHiP4bJflE-ww/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WMfj07d4cY7lwomHiP4bJflE-ww/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WMfj07d4cY7lwomHiP4bJflE-ww/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/1MbZjbEXWr4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/5545252810734076028/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=5545252810734076028" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/5545252810734076028?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/5545252810734076028?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/1MbZjbEXWr4/wow-that-inspires-confidence.html" title="Wow that inspires confidence" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/10/wow-that-inspires-confidence.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkIMQHoyeSp7ImA9WxRQGUw.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-5853518429551711034</id><published>2008-10-13T09:15:00.000-07:00</published><updated>2008-10-13T09:16:21.491-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-13T09:16:21.491-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="forums" /><category scheme="http://www.blogger.com/atom/ns#" term="comment spam" /><title>Ugh... so busy</title><content type="html">I need a break... oh well, in these times better to have too much work than none at all!&lt;br /&gt;&lt;br /&gt;Here's a handy link I stumbled on while moderating new users on a forum I admin - &lt;a href="http://www.stopforumspam.com"&gt;Stop Forum Spam&lt;/a&gt; is a site dedicated to ... well, you can probably guess. Anyways, specifically useful is &lt;a href="http://www.stopforumspam.com/downloads/bannedips.csv"&gt;this comma-separated list&lt;/a&gt; of IP addresses - you can never keep up with all the new IPs spammers are using, but this should help cut down on the number you have to deal with.&lt;br /&gt;&lt;br /&gt;The list is quite long, so you may need to paste it in segments into whatever web-based admin you're using, or convert to one entry per line, etc. Probably worth the effort though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-5853518429551711034?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QJ-IfUGZjOkZou-bxcZE964oASg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QJ-IfUGZjOkZou-bxcZE964oASg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QJ-IfUGZjOkZou-bxcZE964oASg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QJ-IfUGZjOkZou-bxcZE964oASg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/qc_5PaGPE5o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/5853518429551711034/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=5853518429551711034" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/5853518429551711034?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/5853518429551711034?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/qc_5PaGPE5o/ugh-so-busy.html" title="Ugh... so busy" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/10/ugh-so-busy.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUDR3Y5fSp7ImA9WxRSEUs.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-1788036842240449080</id><published>2008-09-11T12:38:00.000-07:00</published><updated>2008-09-11T12:44:36.825-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-11T12:44:36.825-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="firefox" /><category scheme="http://www.blogger.com/atom/ns#" term="browsers" /><category scheme="http://www.blogger.com/atom/ns#" term="chrome" /><title>Google Chrome - first impressions</title><content type="html">I figured I'd join in all the Chrome posts. Why not? I've been messing with it a little. &lt;br /&gt;&lt;br /&gt;First, I like the speed, and mostly like the interface. The lack of a search box is a little off-putting at first, but I'll get used to using the location bar for that. It has some neat little features like the task manager and 'inspect element' capability built-in. The "Create application shortcut" functionality is pretty handy as well.&lt;br /&gt;&lt;br /&gt;Some problems I've noticed - for one I had some weird issues entering text into a text box after I'd resized it. You may have noticed text boxes have little "grab" areas at the lower right that let you resize them... Which is a great idea, but after using it I had problems with characters and lines of text I typed getting messed up, disappearing, etc. &lt;br /&gt;&lt;br /&gt;I also had a problem with a site I had chrome remember passwords for - it did so, but when I was using the admin back-end of the site to edit user accounts, it would mistake the forms intended to let me reset the user's passwords as a login form and fill them in with my password! Obviously, that could cause some problems :) - this was on a phpbb-based forum.&lt;br /&gt;&lt;br /&gt;All in all though, I think it's a nice entry to the browser frag-fest. Certainly better than IE7. If it could run FF extensions like firefox and mouse gestures, I'd probably use it full-time!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-1788036842240449080?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3lXydWu7eJMq0bd90k8g6uEmS3c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3lXydWu7eJMq0bd90k8g6uEmS3c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3lXydWu7eJMq0bd90k8g6uEmS3c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3lXydWu7eJMq0bd90k8g6uEmS3c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/hXfKcd5wRIw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/1788036842240449080/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=1788036842240449080" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/1788036842240449080?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/1788036842240449080?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/hXfKcd5wRIw/google-chrome-first-impressions.html" title="Google Chrome - first impressions" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/09/google-chrome-first-impressions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcBRn0zfSp7ImA9WxRTE0o.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-9128366260249405137</id><published>2008-09-02T08:38:00.000-07:00</published><updated>2008-09-02T08:40:57.385-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-02T08:40:57.385-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="misc stupidity" /><title>Wow, nice job MS</title><content type="html">Saw this on slashdot, the new beta of IE8 actually uses &lt;span style="font-weight:bold;"&gt;&lt;a href="http://weblog.infoworld.com/enterprisedesktop/archives/2008/09/ie_8_consumes_m.html"&gt;more system resources than Windows XP&lt;/a&gt;!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I assume some of that is unoptomized code, and some is probably testing code or something. But still, only Microsoft could take something as simple as a web browser and bloat to the point where it uses more resources that then entire XP operating system. Amazing! Pretty soon we'll all need dual quad-core systems just to go check our gmail accounts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-9128366260249405137?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/s5_in5ncdqxk0Vm7sSYKQTYhmuo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s5_in5ncdqxk0Vm7sSYKQTYhmuo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/s5_in5ncdqxk0Vm7sSYKQTYhmuo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/s5_in5ncdqxk0Vm7sSYKQTYhmuo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/85hFjsGEP9I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/9128366260249405137/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=9128366260249405137" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/9128366260249405137?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/9128366260249405137?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/85hFjsGEP9I/wow-nice-job-ms.html" title="Wow, nice job MS" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/09/wow-nice-job-ms.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQASHY-fip7ImA9WxRTEkQ.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-8050812311374666745</id><published>2008-09-01T11:04:00.001-07:00</published><updated>2008-09-01T11:05:49.856-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-01T11:05:49.856-07:00</app:edited><title>Happy Labor Day!</title><content type="html">Hope everyone is getting some much deserved rest. I am, sort of... I'm getting a lot of chores done, that I just don't have time to get to during the week, and don't feel like doing on the weekend.&lt;br /&gt;&lt;br /&gt;Anyone else think it's funny that it's just a one-day holiday when people who work for living must make up like 99.5% of this country? Oh well, take what you can get!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-8050812311374666745?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/f2V1GM5vJpodqK93mO1OGKd4raU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f2V1GM5vJpodqK93mO1OGKd4raU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/f2V1GM5vJpodqK93mO1OGKd4raU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/f2V1GM5vJpodqK93mO1OGKd4raU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/nF9ifr5Amz8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/8050812311374666745/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=8050812311374666745" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/8050812311374666745?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/8050812311374666745?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/nF9ifr5Amz8/happy-labor-day.html" title="Happy Labor Day!" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/09/happy-labor-day.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0cBRHs4fSp7ImA9WxRTEE8.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-4481162620877811807</id><published>2008-08-29T09:56:00.001-07:00</published><updated>2008-08-29T09:57:35.535-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-29T09:57:35.535-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="misc" /><title>Interesting... Badongo</title><content type="html">Just found this site, wondering if it may be a useful way to cheaply back stuff up from one machine to another, or just a place to store backups. I work on four different machines, and have backups scattered all over the place, so I think I'll check it out!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.badongo.com/"&gt;http://www.badongo.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-4481162620877811807?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7B7TKM3t_zD0hxckuKU6ZR579q0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7B7TKM3t_zD0hxckuKU6ZR579q0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7B7TKM3t_zD0hxckuKU6ZR579q0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7B7TKM3t_zD0hxckuKU6ZR579q0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/FnqQ3b5ZDRU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/4481162620877811807/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=4481162620877811807" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/4481162620877811807?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/4481162620877811807?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/FnqQ3b5ZDRU/interesting-badongo.html" title="Interesting... Badongo" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/08/interesting-badongo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8FRX8_cCp7ImA9WxdaEks.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-6001885102176839430</id><published>2008-08-20T12:22:00.000-07:00</published><updated>2008-08-20T12:33:34.148-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-20T12:33:34.148-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="web development" /><category scheme="http://www.blogger.com/atom/ns#" term="perl" /><title>Handy Perl Functions: Automatically create a form from a database table</title><content type="html">Back after a much needed vacation with another perl code snippet. This one creates a simple form using information pulled from the structure of a database table. The form it creates is not meant to be the end product - rather it gets a lot of the "grunt work" done, and you can then edit the resulting form to change fields to drop-downs, remove fields that shouldn't be edited, etc. It will also try to guess at a decent label for each field, based on the table name.&lt;br /&gt;&lt;br /&gt;This script uses the same &lt;font style="font-style: italic;"&gt;get_fields()&lt;/font&gt; function that outlined in my previous post.&lt;br /&gt;&lt;br /&gt;As always, I'm sure this isn't the "perfect" code, and of course it can be improved - but it &lt;font style="font-style: italic;"&gt;does&lt;/font&gt; work, and may perhaps be a useful starting block for someone else...&lt;br /&gt;&lt;br /&gt;&lt;font style="font-weight: bold;"&gt;Usage&lt;/font&gt; - pretty simple - run the script and give it a database table name to use. It'll spit the html back out, which you can save in a text file or whatever.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;# creates a basic form from the database table specified&lt;br /&gt;use DBI;&lt;br /&gt;&lt;br /&gt;# database connection details&lt;br /&gt;my $dsn = "DBI:mysql:database=[YOUR DATABASE];host=localhost";&lt;br /&gt;$dbh = DBI-&gt;connect($dsn,"root","");&lt;br /&gt;my $qry = "";&lt;br /&gt;my $html = "";&lt;br /&gt;&lt;br /&gt;my $table = $ARGV[0];&lt;br /&gt;if (not $table) {&lt;br /&gt;       print "Please specify a table...\n";&lt;br /&gt;       exit;&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;my @fields = &amp;amp;get_fields($table);&lt;br /&gt;&lt;br /&gt;$html = "&lt;br /&gt;&amp;lt;form action="\[YOUR PROCESSING SCRIPT]\" method="\post\"&amp;gt;&lt;br /&gt;&amp;lt;table border="0" cellpadding="4" cellspacing="0"&amp;gt;\n";&lt;br /&gt;&lt;br /&gt;foreach $_ (@fields) {&lt;br /&gt;       my $ucfield = uc $_;&lt;br /&gt;       my $name = ucfirst $_;&lt;br /&gt;       $name =~ s/_/ /g;&lt;br /&gt;&lt;br /&gt;       $html .= "&lt;br /&gt;       &amp;lt;tbody&amp;gt;&amp;lt;tr valign="\top\"&amp;gt;&lt;br /&gt;               &amp;lt;td align="\right\"&amp;gt;&amp;lt;b&amp;gt;$name&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;               &amp;lt;td&amp;gt;&amp;lt;input name="\$_\" value="\-$ucfield-\" type="\text\"&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;       &amp;lt;/tr&amp;gt;\n";&lt;br /&gt;       }&lt;br /&gt;&lt;br /&gt;$html .= "&lt;br /&gt;&amp;lt;tr&amp;gt;&lt;br /&gt;       &amp;lt;td colspan="2" align="\center\"&amp;gt;&amp;lt;input value="\Submit\" type="\submit\"&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;&amp;lt;/tbody&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;\n";&lt;br /&gt;&lt;br /&gt;print $html;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-6001885102176839430?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7Jp_IroWXUoRt8fAQeJrTHY0fbI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7Jp_IroWXUoRt8fAQeJrTHY0fbI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7Jp_IroWXUoRt8fAQeJrTHY0fbI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7Jp_IroWXUoRt8fAQeJrTHY0fbI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/aaXvyT5kutU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/6001885102176839430/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=6001885102176839430" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/6001885102176839430?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/6001885102176839430?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/aaXvyT5kutU/handy-perl-functions-automatically.html" title="Handy Perl Functions: Automatically create a form from a database table" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/08/handy-perl-functions-automatically.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkANSX09cSp7ImA9WxdUGUs.&quot;"><id>tag:blogger.com,1999:blog-9149870395071614659.post-5769188551975428333</id><published>2008-08-05T13:35:00.000-07:00</published><updated>2008-08-05T13:39:58.369-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-05T13:39:58.369-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="web development" /><category scheme="http://www.blogger.com/atom/ns#" term="perl" /><title>Handy Perl Functions: get_fields()</title><content type="html">This is the first of what may be a recurring theme - handy custom perl functions. These are custom pieces of code that I find myself using in a wide variety of places, both in dynamic websites and in maintenance scripts.&lt;br /&gt;&lt;br /&gt;This first one is called &lt;span style="font-weight:bold;"&gt;get_fields()&lt;/span&gt; and its function is quite simple - it returns an array of field names for the table name passed to it. I've used it for things like generating edit/new record form templates, or when writing scripts to convert from database format to another, etc.&lt;br /&gt;&lt;br /&gt;It uses the perl DBI module, and assumes that $dbh is the database handle that has been set up for use. &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#---------------------------------------------------------------&lt;br /&gt;sub get_fields {&lt;br /&gt;        # returns array of fields for the table name passed to it&lt;br /&gt;        my $table = $_[0];&lt;br /&gt;        my (@fields, @tmp) = ();&lt;br /&gt;&lt;br /&gt;        my $qry = "describe $table";&lt;br /&gt;        $qry = $dbh-&gt;prepare($qry);&lt;br /&gt;        $qry-&gt;execute;&lt;br /&gt;        while (@tmp = $qry-&gt;fetchrow_array) {&lt;br /&gt;                push @fields, $tmp[0];&lt;br /&gt;                }&lt;br /&gt;        $qry-&gt;finish;&lt;br /&gt;        return @fields;&lt;br /&gt;        }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Feel free to use or modify at will!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9149870395071614659-5769188551975428333?l=helpfulcoder.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/8js9oQFETnWlfoGIHVC5oKTa9Pw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8js9oQFETnWlfoGIHVC5oKTa9Pw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/8js9oQFETnWlfoGIHVC5oKTa9Pw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/8js9oQFETnWlfoGIHVC5oKTa9Pw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/HelpfulCoder/~4/MEPtEKwpCPU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://helpfulcoder.blogspot.com/feeds/5769188551975428333/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=9149870395071614659&amp;postID=5769188551975428333" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/5769188551975428333?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9149870395071614659/posts/default/5769188551975428333?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/HelpfulCoder/~3/MEPtEKwpCPU/handy-perl-functions-getfields.html" title="Handy Perl Functions: get_fields()" /><author><name>The Author</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><feedburner:origLink>http://helpfulcoder.blogspot.com/2008/08/handy-perl-functions-getfields.html</feedburner:origLink></entry></feed>

