<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="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" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-6876592441336450182</atom:id><lastBuildDate>Sat, 28 Jan 2012 16:53:34 +0000</lastBuildDate><category>UNIX</category><category>Gallery</category><category>BASH</category><category>Python</category><category>Mobile</category><category>Plugin</category><category>CLI</category><category>Jpeg</category><category>html5</category><category>Javascript</category><category>Hacks</category><category>Protaculous</category><category>ActionScript</category><category>Project</category><category>Optimisation</category><category>Tips</category><category>Extensions</category><category>Tutorial</category><category>JQueryUI</category><category>Satire</category><category>Code</category><category>JQuery</category><category>beginners</category><category>Opinion</category><category>Flash</category><category>XUIjs</category><category>Slideshow</category><category>Graphics</category><category>CSS3</category><category>Django</category><category>Update</category><category>Video</category><category>ColdFusion</category><category>Optimization</category><title>Joel Kirchartz</title><description>Web Development N'at</description><link>http://www.jkirchartz.com/</link><managingEditor>noreply@blogger.com (Joel Kirchartz)</managingEditor><generator>Blogger</generator><openSearch:totalResults>26</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/rss+xml" href="http://feeds.feedburner.com/JoelKirchartz" /><feedburner:info uri="joelkirchartz" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-7292608639846958064</guid><pubDate>Fri, 02 Dec 2011 18:54:00 +0000</pubDate><atom:updated>2011-12-02T15:06:45.263-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CSS3</category><category domain="http://www.blogger.com/atom/ns#">Project</category><category domain="http://www.blogger.com/atom/ns#">Django</category><category domain="http://www.blogger.com/atom/ns#">html5</category><category domain="http://www.blogger.com/atom/ns#">Python</category><title>Project: BAMP Festival of Homes mobile site</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/--9bknh6sbAA/Ttke0KomNGI/AAAAAAAAAz0/On-M0zfzX5U/s1600/BAMP-screenshots_01.jpg" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="320" width="198" src="http://2.bp.blogspot.com/--9bknh6sbAA/Ttke0KomNGI/AAAAAAAAAz0/On-M0zfzX5U/s320/BAMP-screenshots_01.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;
Here's the &lt;a href="http://www.pghhomebuilders.com/"&gt;Builders Association in the Metropolitan Pittsburgh&lt;/a&gt; Festival of Homes mobile site at &lt;a href="http://bamp.songwhale.com"&gt;bamp.songwhale.com&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;This little humdinger has a back end written with &lt;a href="http://python.org/"&gt;python&lt;/a&gt;/&lt;a href="https://www.djangoproject.com/"&gt;django&lt;/a&gt;, I'm also using &lt;a href="http://code.google.com/p/geopy/"&gt;geopy&lt;/a&gt; to assist in calculating distances for the map. The front end uses &lt;a href="http://code.google.com/apis/maps/documentation/javascript/"&gt;Google Maps APIv3&lt;/a&gt; HTML5 and CSS3. Django's built-in admin back end made data-entry a breeze, although I wish it had built-in table alteration, changing your models is a pain in the butt, I didn't want to figure out &lt;a href="http://south.aeracode.org/"&gt;South&lt;/a&gt; with very little data to migrate.&lt;/p&gt;
&lt;p&gt;This was my first time running an &lt;a href="http://nginx.org/"&gt;nginx&lt;/a&gt; server, it's a big difference from apache. The configs are a lot cleaner, definitely more like python than markup. The &lt;a href="http://projects.unbit.it/uwsgi/"&gt;uwsgi&lt;/a&gt; was used to run python and since it's packaged with nginx setup was a breeze. The Database was in postgres, although I could've used &lt;a href="http://postgis.refractions.net/"&gt;postGIS&lt;/a&gt; to do the distance calculations and bypass geopy, I was already in too deep to change it. This is a pretty nice stack.&lt;/p&gt;
&lt;p&gt;I kept the design minimal and fluid to support the widest array of browsers. Django's templating is awesome, you can do a lot with it without getting in the way of your html.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-7292608639846958064?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/AvQlICYegdE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/AvQlICYegdE/project-bamp-festival-of-homes-mobile.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/--9bknh6sbAA/Ttke0KomNGI/AAAAAAAAAz0/On-M0zfzX5U/s72-c/BAMP-screenshots_01.jpg" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Pittsburgh, PA, USA</georss:featurename><georss:point>40.4406248 -79.9958864</georss:point><georss:box>40.3439463 -80.1538149 40.537303300000005 -79.8379579</georss:box><feedburner:origLink>http://www.jkirchartz.com/2011/12/project-bamp-festival-of-homes-mobile.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-7189542201964893736</guid><pubDate>Mon, 28 Nov 2011 22:00:00 +0000</pubDate><atom:updated>2011-12-02T13:50:46.172-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">UNIX</category><category domain="http://www.blogger.com/atom/ns#">Tutorial</category><category domain="http://www.blogger.com/atom/ns#">Tips</category><category domain="http://www.blogger.com/atom/ns#">BASH</category><category domain="http://www.blogger.com/atom/ns#">Hacks</category><category domain="http://www.blogger.com/atom/ns#">beginners</category><category domain="http://www.blogger.com/atom/ns#">CLI</category><title>Intro to Linux for Web Devs on Windows</title><description>&lt;p&gt;I've been spending a lot of time using the linux CLI lately, and I know it can seem difficult at first. When I started with computers everything ran off the CLI and nobody got all freaked out, that was back before color monitors, now we have color monitors in our pockets so don't worry, it's not that hard, you can do this.&lt;/p&gt;

&lt;h2&gt;Logging In:&lt;/h2&gt;

&lt;p&gt;To remotely access a server you'll need a telnet/ssh client, for windows &lt;a href="http://www.putty.org/"&gt;PuTTY&lt;/a&gt; is a good choice , so &lt;a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html"&gt;download &amp;amp; install PuTTY&lt;/a&gt;. &amp;nbsp;When you open putty you'll see a space for your host name or IP address for the server you're going to access, &amp;nbsp;input the relevant information and hit open at the bottom of the window. You'll be promped for your username &amp;amp; password when PuTTY connects. Now take a deep breath, you're in a linux CLI, huzzah!&lt;/p&gt;

&lt;p&gt;To learn more about PuTTY check &lt;a href="http://the.earth.li/~sgtatham/putty/0.61/htmldoc/"&gt;the PuTTY docs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Getting Around:&lt;/h2&gt;

&lt;p&gt;On windows you can list folders and directories like "C:/Program Files/" or "C:\Program Files\", on linux it's "/var/www/html" (for apache's html directory), so linux is /-only, where windows doesn't care if you use / or \.&lt;/p&gt;

&lt;p&gt;Let's see where we are on the server, type in "pwd" at the command line (you should see /home/&lt;username&gt; or /root/).&lt;/username&gt;&lt;/p&gt;

&lt;p&gt;To see what files are in this folder type "ls", this will print out columns of files in the current directory, but if you want to see more details you can add to this command with flags, "ls -a" will list all files, "ls -l" will list details about the files, you can mix these flags like "ls -al" to list details for all files. You'll notice a .. and a . directory,&amp;nbsp;In linux the path to the current directory is "./" and the path to the parent directory is "../"&amp;nbsp;Not much fun being stuck in one place huh?&lt;/p&gt;

&lt;p&gt;Here's the last command in this section "cd" just typing in "cd" will usually take you to your home directory, which is where you currently are anyhow if you've been following along. cd is there to help you Change Directories, so to move to the parent directory of your current folder you do "cd ../" but you can move anywhere with this command as long as you know where you're going. If this is an apache server try "cd /var/www/html" to get to the default main directory for the files. Some servers keep this directory at "/sites" so you could try too.&lt;/p&gt;

&lt;p&gt;Here's a quick reference of commands for moving around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pwd = display current directory path (Print Working Directory)&lt;/li&gt;
&lt;li&gt;ls = list files, you can add flags to see more info on each file, I like to use "ls -alF" (LiSt)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;cd = change directory, use "cd ../" to move up one directory, or "cd /var/www/html" to move to an entirely different directory (Change Directory)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;for more on these, check the wikipedia pages for &lt;a href="http://en.wikipedia.org/wiki/Cd_(command)"&gt;cd&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Ls"&gt;ls&lt;/a&gt;, and&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Pwd"&gt;pwd&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Editing Text-based files:&lt;/h2&gt;

&lt;p&gt;The de-facto standard is VIM, so to try it out simply type "vim" into the command line to create a new file and lets go. Notice that typing isn't changing anything? yeah, vim has input mode and command mode, and you start in command mode. So hit "i" to switch from command mode to input mode and you can finally start typing, to get back to control mode hit "esc", and to save and quit (from command mode) use ":wq"; to quit immediately without saving use ":q!". Vim is super powerful but this switching thing is annoying and it's not obvious how to use it. The &lt;a href="http://yehudakatz.com/2010/07/29/everyone-who-tried-to-convince-me-to-use-vim-was-wrong/"&gt;learning curve is steep&lt;/a&gt;. There have been books written about using VIM, it's a huge entity unto itself to &lt;a href="http://www.vim.org/docs.php"&gt;learn more about VIM&lt;/a&gt; try &lt;a href="http://www.vim.org/docs.php"&gt;their docs&lt;/a&gt;&amp;nbsp;or check out this nice &lt;a href="http://michael.peopleofhonoronly.com/vim/"&gt;VIM Cheat-sheet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Lets use something simpler for now: &lt;a href="http://www.nano-editor.org/"&gt;nano&lt;/a&gt;. type in "nano" at the command line to open a new file, start typing you're already in input mode, and there's a UI so it tells you what commands are available, but there's much more than meets the eye. To open an existing file use "nano filename.ext" at the command line&lt;/p&gt;

&lt;p&gt;Unlike VIM nano doesn't have code-highlighting by default so to set this up you have to edit "/etc/nanorc", so type "nano /etc/nanorc" at the command line the section we're looking for starts on line 240, so hit "ctrl+/" and type "240" hit enter and you'll see a list of nanorc files, erase the # before each one you want code highlight for, then hit "ctrl+x" it prompts you to save changes, hit "Y", then it prompts for the file name just hit "Enter" to keep it the same.&lt;/p&gt;

&lt;p&gt;Here's a few nano commands that are useful:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ctrl+k = cut, you can cut out multiple lines by hitting this repeatedly.&lt;/li&gt;
&lt;li&gt;ctrl+u = uncut, you can re-insert cutout lines by hitting this repeatedly.&lt;/li&gt;
&lt;li&gt;ctrl+/ = goto line #&lt;/li&gt;
&lt;li&gt;ctrl+w = search for a word or phrase, there are a few options here, 'M-R' is a regex search, try hitting "esc+r" to use this (M stand for Meta-key, so try the Apple key or Windows key if esc doesn't work).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nano's UI shows options you can use to translate keystrokes you should know that&amp;nbsp;^ = ctrl and&amp;nbsp;M = esc.&lt;/p&gt;

&lt;div&gt;
For more information on nano, read &lt;a href="http://www.nano-editor.org/dist/v2.2/nano.html"&gt;the Nano docs&lt;/a&gt;&lt;/div&gt;

&lt;h2&gt;Moving, Copying, Renaming, and Deleting files:&lt;/h2&gt;

&lt;p&gt;Sometimes things are in the wrong place, or you don't want to overwrite a file to test out something, so how the heck do you move or copy or rename or delete files!? The commands are mv, cp, and rm.&lt;/p&gt;

&lt;p&gt;Moving a file is "mv path/to/file/location/name.ext /path/to/new/location/name.ext" if you're currently in the directory with your file use "mv file.ext /path/to/wherever/your/putting/it/file.ext" you just gotta know where you're moving the file to, to move it up a directory use "mv file.ext ../", multiple files are easy too "mv file1 file2 ~/" would move those files to your home directory.&lt;/p&gt;

&lt;p&gt;Copying a file is done with "cp filetocopy.ext newfile.ext" you can also copy the file to a new directory, you can even copy a directory with "cp /dir/to/copy/ ~/new/dir/"&lt;/p&gt;

&lt;p&gt;Deleting files can be done with "rm file.ext" you can delete a directory and it's content with "rm -r", and the flag to force a deletion is "-f" but be careful, "rm -rf /" can delete the whole root directory and totally screw up the server. Most platforms and admins protect against this but it's better to be safe than sorry.&lt;/p&gt;

&lt;h2&gt;Conclusion:&lt;/h2&gt;

&lt;p&gt;The Command line can be intimidating at first, but don't fear it's power. It can  be a very helpful tool. For more information check out &lt;a href="http://linuxcommand.org/"&gt;http://linuxcommand.org/&lt;/a&gt;, &lt;a href="http://www.tuxfiles.org/linuxhelp/cli.html"&gt;TuxFiles' intro to the Linux CLI&lt;/a&gt; and &lt;a href="http://www.hypexr.org/bash_tutorial.php"&gt;Hypexr's Bash Tutorial&lt;/a&gt;. You can also add a linux cli to your windows desktop wth &lt;a href="http://www.cygwin.com/"&gt;cygwin&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-7189542201964893736?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/iipWi0UabzI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/iipWi0UabzI/intro-to-linux-for-web-devs-on-windows.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>1</thr:total><georss:featurename>Pittsburgh, PA, USA</georss:featurename><georss:point>40.4406248 -79.9958864</georss:point><georss:box>40.3439463 -80.1538149 40.537303300000005 -79.8379579</georss:box><feedburner:origLink>http://www.jkirchartz.com/2011/11/intro-to-linux-for-web-devs-on-windows.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-7994013156770200922</guid><pubDate>Sat, 26 Nov 2011 05:43:00 +0000</pubDate><atom:updated>2011-11-27T17:00:21.588-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Javascript</category><category domain="http://www.blogger.com/atom/ns#">html5</category><category domain="http://www.blogger.com/atom/ns#">Hacks</category><category domain="http://www.blogger.com/atom/ns#">Code</category><title>Simple HTML5 notepad</title><description>&lt;p&gt;Here's a little html5 notepad using &lt;a href="http://caniuse.com/#namevalue-storage"&gt;localStorage&lt;/a&gt;. &lt;a href="http://demos.jkirchartz.com/HTML5notepad.html"&gt;View Demo&lt;/a&gt;&lt;/p&gt;
&lt;script src="https://gist.github.com/1394920.js?file=html5%20notepad"&gt;
&lt;/script&gt;
&lt;p&gt;
line 28 &amp;amp; 30 handle saving and retrieving the &lt;a href="http://en.wikipedia.org/wiki/Web_Storage"&gt;localStorage&lt;/a&gt; data, It's supported on ie8+ as well as all modern browsers. Works on Android &amp;amp; iPhone too. Lines 32-34 call the save function in 3 different ways to ensure your information is saved automagically (I get a little paranoid like that) Line 5 &amp;amp; lines 20-23 ensure this works on older browsers, but we don't really need most of it so really we could minimize this down to&lt;br /&gt;
&lt;/p&gt;
&lt;script src="https://gist.github.com/1394920.js?file=html5notepad-small"&gt;
&lt;/script&gt;
&lt;p&gt;
Which is short enough to be in bookmarklet territory, unfortunately localStorage doesn't work with the local file protocol, &lt;a href="http://dev.w3.org/html5/webstorage/#the-localstorage-attribute"&gt;the spec&lt;/a&gt; says it needs a scheme/host/port to work for security reasons.&lt;/p&gt;
&lt;p&gt;
Local storage is just too easy NOT to use
&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-7994013156770200922?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/PqqQgJ9oqk0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/PqqQgJ9oqk0/simple-html5-notepad.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2011/11/simple-html5-notepad.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-8717935613455779884</guid><pubDate>Fri, 18 Nov 2011 05:46:00 +0000</pubDate><atom:updated>2011-11-18T01:14:55.557-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Slideshow</category><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">Hacks</category><category domain="http://www.blogger.com/atom/ns#">Code</category><title>Code: Simple JQuery Div Slideshow 2.0</title><description>Yes, I promised to update this in July of 2009, so sorry for taking so long. I've been using &lt;a href="http://jquery.malsup.com/cycle/"&gt;jQuery Cycle&lt;/a&gt;&amp;nbsp;for most of my slideshow needs, but looking at the old code made me throw up in my mouth a little, it's non-standard and probably breaks for some people, I just have to fix it. hit the jump for the full details.&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Here's the jsFiddle for it:&lt;br /&gt;
&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" src="http://jsfiddle.net/JKirchartz/9G7F9/embedded/" style="height: 300px; width: 100%;"&gt;&lt;/iframe&gt;
&lt;br /&gt;
This code is a lot cleaner, relies on jQuery a bit more, and no longer uses evil eval's. The HTML is simpler too. You just need to nest slides inside of a container, in this case classed 'slideshow', the code above finds the children of that element (in the code below) and fades them in and out, then sets up the next loop through the child elements there.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen="allowfullscreen" frameborder="0" src="http://jsfiddle.net/JKirchartz/9G7F9/embedded/html/" style="height: 300px; width: 100%;"&gt;&lt;/iframe&gt;

This is just a hack, but I hope it's helpful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-8717935613455779884?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/OEyg7wBJJ0w" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/OEyg7wBJJ0w/code-simple-jquery-div-slideshow-20.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2011/11/code-simple-jquery-div-slideshow-20.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-5034342506902086708</guid><pubDate>Tue, 04 Oct 2011 18:28:00 +0000</pubDate><atom:updated>2011-11-18T00:59:53.922-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">Plugin</category><category domain="http://www.blogger.com/atom/ns#">Code</category><title>jQuery type effect plugin</title><description>Let's kick it old-school, with the absolute CLASSIC typewriter effect. I couldn't find a decent jQuery version of this effect that worked, so I pluginified some vintage javascript, checkout the &lt;a href="http://jsfiddle.net/JKirchartz/JEpWV/"&gt;JSFiddle&lt;/a&gt; embeded below. Click the play button to see the effect.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe src="http://jsfiddle.net/JKirchartz/JEpWV/embedded/" style="height: 300px; width: 100%;"&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
One little "bug" here is that I'm not handling any dom elements, so the raw html code is displayed while it's writing, but as soon as it's written the dom handles it as elements, you could pre-parse the html and write the elements wholesale but that's far beyond the scope of this simple solution.&lt;br /&gt;
&lt;br /&gt;
If you wanna see the whole shebang check the jsfiddle at&amp;nbsp;&lt;a href="http://jsfiddle.net/JKirchartz/JEpWV/"&gt;http://jsfiddle.net/JKirchartz/JEpWV/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-5034342506902086708?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/W2OSPYDxdS0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/W2OSPYDxdS0/jquery-type-effect-plugin.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2011/10/jquery-type-effect-plugin.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-6211027064745351250</guid><pubDate>Thu, 22 Sep 2011 01:24:00 +0000</pubDate><atom:updated>2011-09-21T21:34:21.534-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Javascript</category><category domain="http://www.blogger.com/atom/ns#">Mobile</category><category domain="http://www.blogger.com/atom/ns#">Code</category><title>Better Mobile Redirect</title><description>&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;Here is a simple,&amp;nbsp;reusable&amp;nbsp;javascript redirect that uses the &lt;/span&gt;&lt;a href="http://www.sixapart.jp/docs/tech/mobile_link_discovery_en.html" style="line-height: 20px;"&gt;Mobile Link Discovery Spec&lt;/a&gt;&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;&amp;nbsp;which describes a link tag that tells the browser where to find an Alternate for Hand-Held devices&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;:&lt;/span&gt; &amp;lt;link href="&amp;lt; Mobile URI &amp;gt;" media="handheld" rel="alternate"&amp;gt;. The script is detecting user-agents, which is "evil" but Not every site needs or wants the whole&amp;nbsp;&lt;a href="http://www.alistapart.com/articles/responsive-web-design/"&gt;Responsive Design&lt;/a&gt;&amp;nbsp;bundle, and that has&amp;nbsp;&lt;a href="http://www.webdesignshock.com/responsive-design-problems/"&gt;it's problems&lt;/a&gt;. Sometimes you just gotta redirect, try using the link tag with the script below:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;&lt;script src="https://gist.github.com/1232304.js?file=redirect.js"&gt;
&lt;/script&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;I'm only testing for&amp;nbsp;iPhone, iPad, Android, Blackberry, and WebOs. They run the market right now so I don't feel too bad for leaving out the fray, if you're logging your visitors user agents you can tweak the regex as needed.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;&lt;span class="Apple-style-span" style="line-height: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;Hit the jump for the code for a html test page.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;&lt;script src="https://gist.github.com/1232304.js?file=test.html"&gt;
&lt;/script&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="line-height: 20px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-6211027064745351250?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/7GcaU7Yu4tQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/7GcaU7Yu4tQ/better-mobile-redirect.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2011/09/better-mobile-redirect.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-1806441971206616848</guid><pubDate>Mon, 04 Apr 2011 14:48:00 +0000</pubDate><atom:updated>2011-04-04T10:51:11.160-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">XUIjs</category><category domain="http://www.blogger.com/atom/ns#">Mobile</category><category domain="http://www.blogger.com/atom/ns#">Extensions</category><category domain="http://www.blogger.com/atom/ns#">Hacks</category><category domain="http://www.blogger.com/atom/ns#">Code</category><title>XUIjs for Mobile Development + 2 extensions</title><description>&lt;p&gt;I recently stared playing with &lt;a href="http://xuijs.com/"&gt;xui.js&lt;/a&gt;&amp;nbsp;it's a really nice library targeted to mobile devices, and it's based on JQuery. I'd really like to stick with jQuery but jQuery Mobile is actually more like jQueryUI for mobile and I'm not into making everything on the mobile web look like native iPhone (because if users wanted that UI they'd buy an iPhone!)&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;The thing with switching between xui and jQuery is that all the functions aren't there. Fortunately you can extend XUIjs! I was porting&amp;nbsp;&lt;a href="http://www.i-marco.nl/weblog/jquery-accordion-menu/"&gt;Marco van Hylckama Vlieg's Simple jQuery Accordion&lt;/a&gt;&amp;nbsp;and needed jQuery's next and is function (I ended up simplifying the code to do without the IS, but it might be useful to you) Here's the extensions:&lt;/p&gt;&lt;script src="https://gist.github.com/901715.js?file=nextis.js"&gt;&lt;/script&gt;&lt;br /&gt;
&lt;p&gt;I ran into a couple problems, mainly that XUI doesn't return elements from it's main function but an object, which affects the &lt;i&gt;this&lt;/i&gt; keyword in extensions, but I finally figured it out and now pass the knowledge on to you for free, because I'm awesome. Don't you love me?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-1806441971206616848?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/SnCDrhighDA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/SnCDrhighDA/xuijs-for-mobile-development-2.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2011/04/xuijs-for-mobile-development-2.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-784336908850277256</guid><pubDate>Wed, 02 Feb 2011 06:07:00 +0000</pubDate><atom:updated>2011-02-02T01:07:44.824-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Update</category><category domain="http://www.blogger.com/atom/ns#">Gallery</category><category domain="http://www.blogger.com/atom/ns#">Code</category><title>Flickr &amp; Github update</title><description>I posted some new sets to Flickr and I've got a new project I've been playing with over on Github, here's the run-down.&lt;br /&gt;
&lt;br /&gt;
Flickr Sets:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.flickr.com/photos/rewiredforsound/sets/72157625958693956/"&gt;Light Painting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.flickr.com/photos/rewiredforsound/sets/72157625833219757/"&gt;Blue Blurs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.flickr.com/photos/rewiredforsound/sets/72157625833385207/"&gt;Nature&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;And my new project is &lt;a href="https://github.com/JKirchartz/TumblReader"&gt;TumblReader&lt;/a&gt;, an HTML5 &lt;a href="http://www.tumblr.com/"&gt;Tumblr&lt;/a&gt; dashboard replacement. My primary goals are to add keyboard shortcuts ala Google Reader j/k = previous/next, l = like etc; make it easier to reblog &amp;amp; like without losing your place (a minor annoyance, but still...) and an attempt to improve upon the tumblr queue (it breaks often). It's still in the early stages, but if you want to add to it I'll gladly patch it in...&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-784336908850277256?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/3FWSTJPjgAQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/3FWSTJPjgAQ/flickr-github-update.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2011/02/flickr-github-update.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-6907067244743259340</guid><pubDate>Fri, 19 Nov 2010 22:14:00 +0000</pubDate><atom:updated>2011-08-01T11:30:59.775-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Python</category><category domain="http://www.blogger.com/atom/ns#">Code</category><title>Python: HTML to CSS</title><description>I surely couldn't have been the first to think of this, but wouldn't it be great if you could write your HTML, then convert it to CSS? Yeah, I know they're not really the same, but the CSS has to be attached to something. Why not pull it out and have a skeleton CSS file made for you? This short python script will read in HTML, and spit out all the CSS selectors it can find.&amp;nbsp;I plan on adding this to a larger project, so it's just a funtion and the call.&amp;nbsp;The code is after the jump.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;script src="https://gist.github.com/1118350.js"&gt; &lt;/script&gt;&lt;br /&gt;
&lt;br /&gt;
I'm using regex to get rid of everything that ISN'T HTML, then &lt;a href="http://www.crummy.com/software/BeautifulSoup/"&gt;BeautifulSoup&lt;/a&gt; to parse the HTML into tags, ids, and classes. I then remove duplicates by converting the list to a set and back, sort the lists, and add the appropriate CSS selector and brackets. Then it writes the CSS to a file. This last line runs the function, the first argument is the input HTML file, and the second is the output CSS file. You'll have to change this to reflect your desired filenames.&lt;br /&gt;
&lt;br /&gt;
I'm sure there are a few things I can do to optimize this, or at least reduce the line count, but I'm new to python so I'll save that for another day. Like I said I plan to add this to a larger project so I'm going to take out the file I/O for that and just feed in strings; but until then, enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-6907067244743259340?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/6kCv0m4wx0c" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/6kCv0m4wx0c/python-html-to-css.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2010/11/python-html-to-css.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-7013438808825853590</guid><pubDate>Sun, 03 Oct 2010 17:33:00 +0000</pubDate><atom:updated>2011-11-30T09:45:22.037-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">JQueryUI</category><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">Project</category><title>Border Radius Toy</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/_KHL6Vvj96Eo/TKi5woZN7jI/AAAAAAAAAoA/hewVyI7JzKA/s1600/BorderRadiusToy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/_KHL6Vvj96Eo/TKi5woZN7jI/AAAAAAAAAoA/hewVyI7JzKA/s320/BorderRadiusToy.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
This is my CSS3 Border-Radius Toy, it's kind of a rip-off of a rip-off of &lt;a href="http://borderradius.com/"&gt;BorderRadius.com&lt;/a&gt;&amp;nbsp;—&amp;nbsp;which allows you to input the radius for all 4 corners&amp;nbsp;— the primary objective is to help create a box with rounded corners &amp;amp; output the code for it. Unlike BorderRadius.com&amp;nbsp;&lt;a href="http://demos.jkirchartz.com/Border_Radius_Toy.html"&gt;Border Radius Toy&lt;/a&gt;&amp;nbsp;allows you to play with the final shape, changing each parameter in the CSS3 and ultimately creating more complex shapes.&amp;nbsp;It's a simple single-page toy, written with &lt;a href="http://en.wikipedia.org/wiki/HTML5"&gt;HTML5&lt;/a&gt;, &lt;a href="http://www.css3.info/"&gt;CSS3&lt;/a&gt;, &lt;a href="http://jquery.com/"&gt;JQuery&lt;/a&gt;&amp;nbsp;&amp;amp;&amp;nbsp;&lt;a href="http://jqueryui.com/"&gt;JQueryUI&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The &lt;a href="http://github.com/JKirchartz/BorderRadiusToy"&gt;source code&lt;/a&gt; is available on &lt;a href="http://github.com/"&gt;GitHub&lt;/a&gt;, and you can view it live at&amp;nbsp;&lt;a href="http://demos.jkirchartz.com/Border_Radius_Toy.html"&gt;http://demos.jkirchartz.com/Border_Radius_Toy.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-7013438808825853590?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/xoDfhe4SuP0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/xoDfhe4SuP0/border-radius-toy.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_KHL6Vvj96Eo/TKi5woZN7jI/AAAAAAAAAoA/hewVyI7JzKA/s72-c/BorderRadiusToy.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2010/10/border-radius-toy.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-6375039776561010014</guid><pubDate>Wed, 23 Jun 2010 15:30:00 +0000</pubDate><atom:updated>2010-06-23T11:35:15.521-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Video</category><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">Project</category><category domain="http://www.blogger.com/atom/ns#">ColdFusion</category><title>Project: Big Island Toyota</title><description>Big Island Toyota has always been a little ahead of the curve on social media, They're involved with their community, and they use their website pro-actively. Here are 2 requested projects from them.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_KHL6Vvj96Eo/TCIjEZzRhMI/AAAAAAAAAnY/pdikNRZkRK0/s1600/youtube.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_KHL6Vvj96Eo/TCIjEZzRhMI/AAAAAAAAAnY/pdikNRZkRK0/s320/youtube.jpg" width="297" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Here is the &lt;a href="http://bigislandtoyota.com/youtube.cfm"&gt;YouTube page&lt;/a&gt; from their website. This was made with Coldfusion &amp;amp; JQuery. The Coldfusion parses their YouTube RSS feed, JQuery is used to show each video in a simple LightBox.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_KHL6Vvj96Eo/TCIlu0tMtWI/AAAAAAAAAng/x7Qqq6tWwuM/s1600/auto-blog.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_KHL6Vvj96Eo/TCIlu0tMtWI/AAAAAAAAAng/x7Qqq6tWwuM/s320/auto-blog.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;They also requested a &lt;a href="http://bigislandtoyota.com/Auto_Blog.cfm"&gt;blog&lt;/a&gt;, which I developed with ColdFusion &amp;amp; SQL. The front-end is a standard Content-oriented design, with a contact link &amp;amp; links to share their posts around the web. The Back-end is just as simple to use, it uses the &lt;a href="http://ckeditor.com/"&gt;FCKeditor&lt;/a&gt; (now renamed CKeditor) for Coldfusion to provide a rich-text editor. There is also an RSS feed for the blog, although I no longer have the access I need to find it.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-6375039776561010014?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/-XjnTJEv3bQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/-XjnTJEv3bQ/project-big-island-toyota.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_KHL6Vvj96Eo/TCIjEZzRhMI/AAAAAAAAAnY/pdikNRZkRK0/s72-c/youtube.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2010/06/project-big-island-toyota.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-1662391927021998024</guid><pubDate>Mon, 24 May 2010 19:56:00 +0000</pubDate><atom:updated>2010-05-24T16:04:00.066-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">Plugin</category><category domain="http://www.blogger.com/atom/ns#">Update</category><title>JQuery Plugin update: Letterpress2</title><description>A While back I coded a plugin to apply the letterpress effect, since then I've decided that css's text-shadow property was a better way to go, but some browsers don't support text-shadow *cough* IE *cough* this is a slight mod to check for IE &amp; apply the letterpress plugin to them, and use text-shadow on browsers that support it.&lt;br /&gt;
&lt;br /&gt;
Here's what it looks like:&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KHL6Vvj96Eo/Slzi8kMa0oI/AAAAAAAAAiM/g4mhv-ePzYs/s1600-h/letterpresser_screenshot.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 195px;" src="http://3.bp.blogspot.com/_KHL6Vvj96Eo/Slzi8kMa0oI/AAAAAAAAAiM/g4mhv-ePzYs/s400/letterpresser_screenshot.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5358407186799841922" /&gt;&lt;/a&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
and this is the code needed for this example:&lt;br /&gt;
&lt;pre&gt;&amp;lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src="jquery.letterpress2.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;style&amp;gt;
.all {
font-family:Helvetica, Arial, Sans;
}
h1 {
background:#2bf;
}
h2 {
background:#f2b;
}
h3 {
background:#b2f;
}
&amp;lt;/style&amp;gt;
&amp;lt;script type="text/javascript"&amp;gt;
$(document).ready(function(){
$("h1").letterpress({color: '#000', highlight: '#0ff', topOffset: '1px', leftOffset: '1px'});
$("h2").letterpress({color: '#000', highlight: '#f0f', leftOffset: '1px'});
$("h3").letterpress({color: '#000', highlight: '#f6f'});
$("h4").letterpress({topOffset: '2px', leftOffset: '2px'});
});
&amp;lt;/script&amp;gt;
&amp;lt;div class="all"&amp;gt;
&amp;lt;h1&amp;gt;Lorem ipsum dolor sit amet&amp;lt;/h1&amp;gt;
&amp;lt;h2&amp;gt;Lorem ipsum dolor sit amet&amp;lt;/h2&amp;gt;
&amp;lt;h3&amp;gt;Lorem ipsum dolor sit amet&amp;lt;/h3&amp;gt;
&amp;lt;h4&amp;gt;Lorem ipsum dolor sit amet&amp;lt;/h4&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
This is a CSS / Graphic effect that usually requires a bit of planning and is kind-of hard to throw into dynamic content, or content you have no control over the markup of. No extra tags, or css required. No duplicate text needed.&lt;br /&gt;
&lt;br /&gt;
Here's the basics:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$(".letterpress").letterpress();&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
You can, however, edit the styles easily with these 5 options:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;color, highlight, blur, topOffset, leftOffset&lt;/pre&gt;&lt;br /&gt;
note: The blur will only be applied if text-shadow is being used.&lt;br /&gt;
&lt;br /&gt;
These attributes can be implemented like this:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$(".letterpress").letterpress({color: '#000', highlight: '#0ff', topOffset: '1px', blur: '1px', leftOffset: '1px'});&lt;/pre&gt;&lt;br /&gt;
&lt;a href="http://jkirchartz-jquery-repository.googlecode.com/files/jquery.letterpress2.js"&gt;Download the JS here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-1662391927021998024?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/1Oh3m5KRPl8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/1Oh3m5KRPl8/jquery-plugin-update-letterpress2.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_KHL6Vvj96Eo/Slzi8kMa0oI/AAAAAAAAAiM/g4mhv-ePzYs/s72-c/letterpresser_screenshot.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2010/05/jquery-plugin-update-letterpress2.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-3667680245589350398</guid><pubDate>Tue, 11 May 2010 12:48:00 +0000</pubDate><atom:updated>2010-05-11T08:48:49.062-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Project</category><title>Project: Baierl Race 2 Vegas</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://lh4.ggpht.com/_KHL6Vvj96Eo/S-lDymw8gDI/AAAAAAAAAnQ/2kjZRn5b3Vg/race2vegas.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="318" src="http://lh4.ggpht.com/_KHL6Vvj96Eo/S-lDymw8gDI/AAAAAAAAAnQ/2kjZRn5b3Vg/race2vegas.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;a href="http://baierl.com/"&gt;Baierl Automotive&lt;/a&gt; and &lt;a href="http://markitgroupmedia.blogspot.com/"&gt;MarkIT Group&lt;/a&gt; developed the idea for a &lt;a href="http://youtube.com/"&gt;Youtube&lt;/a&gt; Video contest, with a raffle for &lt;a href="http://facebook.com/"&gt;FaceBook&lt;/a&gt; fans. The outline was to have a customer from a mailing list become a fan on facebook, and upload a home-made video to enter for a chance to win a trip for 2 to Las Vegas. During the course of this project the requirements and design changed many times, as well as the deadline. Eventually the contest became a raffle for 2 tickets to Vegas, a video contest to win 2 tickets to Vegas, and it was opened to the public. It was developed with ColdFusion, Javascript, and JQuery &amp;amp; &lt;a href="http://www.1kbgrid.com/"&gt;1kb Grid&lt;/a&gt; in the course of one week, with additional tweaks each time the requirements, contest, and design changed. See for yourself at&amp;nbsp;&lt;a href="http://baierlrace2vegas.com/"&gt;baierlrace2vegas.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-3667680245589350398?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/Iz-4bKcuzAg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/Iz-4bKcuzAg/project-baierl-race-2-vegas.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_KHL6Vvj96Eo/S-lDymw8gDI/AAAAAAAAAnQ/2kjZRn5b3Vg/s72-c/race2vegas.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2010/05/project-baierl-race-2-vegas.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-3710343491013112305</guid><pubDate>Thu, 22 Apr 2010 13:57:00 +0000</pubDate><atom:updated>2010-04-22T10:04:31.436-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">Project</category><title>Project: Automotive Search Tool &amp; API</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_KHL6Vvj96Eo/S9BU8xe3syI/AAAAAAAAAmo/E4NvKAN9b5A/s1600/wright1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_KHL6Vvj96Eo/S9BU8xe3syI/AAAAAAAAAmo/E4NvKAN9b5A/s320/wright1.png" /&gt;&lt;/a&gt;&lt;/div&gt;This was an&amp;nbsp;interesting&amp;nbsp;project, that had a few iterations before it's current state. Originally when the inventory database was imported, an XML file would be generated to fill in the select boxes, but it took up a good bit of time and drive space. Now this works with a simple API that I created to return JSON to populate dependent&amp;nbsp;select boxes. Using the API saves tons of time and disc space. &amp;nbsp;This was all done with the power of &lt;a href="http://jquery.com/"&gt;JQuery&lt;/a&gt;. You can try it yourself at &lt;a href="http://wrightcars.com/"&gt;wrightcars.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-3710343491013112305?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/F9GAk5cWVtU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/F9GAk5cWVtU/project-automotive-search-tool-api.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_KHL6Vvj96Eo/S9BU8xe3syI/AAAAAAAAAmo/E4NvKAN9b5A/s72-c/wright1.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2010/04/project-automotive-search-tool-api.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-3244577081316396748</guid><pubDate>Thu, 22 Apr 2010 13:34:00 +0000</pubDate><atom:updated>2010-04-22T10:05:01.677-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Project</category><category domain="http://www.blogger.com/atom/ns#">Mobile</category><title>Project: Automotive Mobile site template.</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_KHL6Vvj96Eo/S9BO9Tb4OiI/AAAAAAAAAmg/8f4G1X9wIxY/s1600/Mobile_Screenshots.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_KHL6Vvj96Eo/S9BO9Tb4OiI/AAAAAAAAAmg/8f4G1X9wIxY/s320/Mobile_Screenshots.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Here is a template I created for use on car dealership mobile sites. It's a minimalist design, made to work on the widest variety of software/firmware possible. This template was developed to launch quickly, if the dealer had an existing site, it was simply a the flick of the switch to launch. To&amp;nbsp;maximize&amp;nbsp;compatibility there is no&amp;nbsp;JavaScript&amp;nbsp;used on this, since only a handful of smartphones support it. Every step through this project was fully&amp;nbsp;optimized&amp;nbsp;for load time on non-3G networks. As of today this site is &amp;nbsp;live and can be found at &lt;a href="http://findlaytoyota.com/mobile"&gt;findlaytoyota.com/mobile&lt;/a&gt;, or by visiting &lt;a href="http://findlaytoyota.com/"&gt;findlaytoyota.com&lt;/a&gt; from your mobile phone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-3244577081316396748?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/AcgjZgNilXE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/AcgjZgNilXE/project-automotive-mobile-site-template.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_KHL6Vvj96Eo/S9BO9Tb4OiI/AAAAAAAAAmg/8f4G1X9wIxY/s72-c/Mobile_Screenshots.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2010/04/project-automotive-mobile-site-template.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-6047340420021514083</guid><pubDate>Thu, 01 Apr 2010 20:44:00 +0000</pubDate><atom:updated>2010-04-22T09:41:06.066-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">Plugin</category><category domain="http://www.blogger.com/atom/ns#">Satire</category><category domain="http://www.blogger.com/atom/ns#">Opinion</category><title>New Plugin: Clickify</title><description>Here's a quickly little plugin' tool, that I know people will find very useful. It's called Clickify, and it's an answer to a problem a lot of people are concerned about. Too often has somebody asked "How will users know where to click?" now we have your answer, Clickify automatically adds the text "(click here!)" to every "hyperlink" within a page, so that there will be no confusion as to where to click to visit a link.&lt;br /&gt;
&lt;br /&gt;
I'm sure that people are actually very confused whenever text becomes blue and underlined, even more so when it changes their cursor to a hand. These new "Links" as their colloquially called are so new and bewildering that some users obviously need some assistance in understanding them.&lt;br /&gt;
&lt;br /&gt;
Here's the source code:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;(function($) {
$.fn.clickify = function(){
 $("a[href]").each(function(){
  $(this).append(" &lt;sub&gt;(click here!)&lt;/sub&gt;") 
 });
}
})(jQuery);
&lt;/pre&gt;&lt;br /&gt;
And it's simple to use! Just add &amp;lt;script&amp;gt;$(function(){$.clickify()});&amp;lt;/script&amp;gt; to your page and you're good to go!&lt;br /&gt;
&lt;br /&gt;
for more on the subject visit:&lt;br /&gt;
&lt;a href="http://www.goodusability.co.uk/2009/01/dont-say-click-here-on-link-text/"&gt;http://www.goodusability.co.uk/2009/01/dont-say-click-here-on-link-text/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-6047340420021514083?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/74zhln3VqKA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/74zhln3VqKA/new-plugin-stupify.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2010/03/new-plugin-stupify.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-2932171967583686219</guid><pubDate>Tue, 29 Dec 2009 17:11:00 +0000</pubDate><atom:updated>2011-12-03T12:28:04.707-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Jpeg</category><category domain="http://www.blogger.com/atom/ns#">Tips</category><category domain="http://www.blogger.com/atom/ns#">Optimisation</category><category domain="http://www.blogger.com/atom/ns#">Optimization</category><title>Jpeg EXIF Metadata Removal</title><description>Image Optimization is a fun game, trying to get just the right compression ratio to balance file size and appearance. There are a ton of tricks out there, but as a Photoshop user you generally end up with some pretty big files that are just small images. Today I had an icon, 71x30px that was 40.1kb after I resized it from a larger jpeg that was 38kb.&lt;br /&gt;
&lt;br /&gt;
Where does all this extra data come from? Metadata. Cameras throw it in, &lt;a href="http://flickr.com/"&gt;flickr&lt;/a&gt; reads it and shows the setting your &lt;a href="http://www.usa.canon.com/consumer/controller?act=ProductCatIndex1Act&amp;amp;fcategoryid=101"&gt;Cannon&lt;/a&gt; used to get that photo. Photoshop throws some junk in too. The real evil is thumbnails,&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Catherine_Schwartz"&gt;Cat Schwartz&lt;/a&gt;&amp;nbsp;had a bit of a &lt;a href="http://graphicssoft.about.com/b/2003/07/26/techtvs-cat-schwartz-exposed-is-photoshop-to-blame.htm"&gt;scandal&lt;/a&gt;&amp;nbsp;6 years ago with thumbnails of un-cropped photos in the metadata that were not suitable for work. These thumbnails can almost DOUBLE your file size. It's just part and parcel of &lt;a href="http://en.wikipedia.org/wiki/Exchangeable_image_file_format"&gt;EXIF&lt;/a&gt; (The Exchangeable Image File format) standard, a bunch of useful data that takes up a bunch of space, and isn't important&amp;nbsp;to the end user.&lt;br /&gt;
&lt;br /&gt;
How do you get rid of EXIF? On OSX you could use&amp;nbsp;&lt;a href="http://imageoptim.pornel.net/"&gt;Image Optim&lt;/a&gt;, which is totally sweet, if you own a mac. On a PC you run into a bunch of poorly written, virus laden, scam-ware programs that may or may not work. Fortunately for us, there's an &lt;a href="http://en.wikipedia.org/wiki/Open_Source"&gt;Open Source&lt;/a&gt;&amp;nbsp;community. So we'll do this with some&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Free_and_open_source_software"&gt;FOSS&lt;/a&gt;.&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Create a folder for all your image files (which you should do anyhow)&lt;/li&gt;
&lt;li&gt;download JHEAD to that folder (&lt;a href="http://www.sentex.net/~mwandel/jhead/jhead.exe"&gt;jhead.exe&lt;/a&gt;&amp;nbsp;| &lt;a href="http://www.sentex.net/~mwandel/jhead/"&gt;main page&lt;/a&gt;)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Create .BAT file (plain text renamed to .BAT) containing&lt;pre&gt;jhead.exe -purejpg *&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Run it.&lt;/li&gt;
&lt;/ol&gt;What this does is strip out any EXIF and other metadata in the files in that folder. Just does away with anything that isn't purely essential for a jpeg to be an image, thus saving quite a bit on file size, bandwidth, and hopefully some&amp;nbsp;embarrassment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-2932171967583686219?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/AZqpdmFVJSc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/AZqpdmFVJSc/jpeg-exif-metadata-removal.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2009/12/jpeg-exif-metadata-removal.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-6616675814025190716</guid><pubDate>Thu, 17 Sep 2009 18:15:00 +0000</pubDate><atom:updated>2009-09-24T11:30:28.319-04:00</atom:updated><title>JQuery Extension: fixPng</title><description>PNGs and IE6, sounds like a recipe for trouble. Well you could always use the lovely &lt;a href="http://www.dillerdesign.com/experiment/DD_belatedPNG/"&gt;DD_belatedPNG&lt;/a&gt; but to call it you need to add a class to each element containing a png. Adding a class is fine unless you have user-generated content &amp;amp; no control over the back end, and they like to use semi-transparent PNGs. So today I cobbled together a little jQuery extention to search through and find all PNGs (in images, and backgrounds) and add a class to their container, then call DD_belatedPNG... probably not the most elegant solution, but a solution none the less.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$.extend({
/* Usage:
* $.fixPng();
*/
fixPng: function(){
if($.browser.msie &amp;amp;&amp;amp; $.browser.version=="6.0"){
if(typeof DD_belatedPNG.fix == "function"){
var imgsrc, styleS;
$("img").each(function(){
imgsrc = $(this).attr('src');
if(imgsrc.split(".")[1] == "png"){
$(this).addClass("fixPng");
}});
$("*").each(function(){
styleS = $(this).css("background-image");
if(styleS != "none"){
var tmpS = styleS.substring(styleS.length-4,styleS.length-1);
if(tmpS == "png"){
$(this).addClass("fixPng");
}}});
}
DD_belatedPNG.fix(".fixPng");
} 
}
});&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-6616675814025190716?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/icXXLeST0S8" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/icXXLeST0S8/jquery-extension-fixpng.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2009/09/jquery-extension-fixpng.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-1504975503531978280</guid><pubDate>Wed, 09 Sep 2009 22:17:00 +0000</pubDate><atom:updated>2009-09-24T11:35:56.125-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">Plugin</category><title>jQuery Plugin: Fish-Menu</title><description>Here we go, at it again... with a new plugin called fish-menu... heavily based on &lt;a href="http://labs.makotokw.com/s/jquery/menu"&gt;jquery.ui.potato.menu&lt;/a&gt; by&amp;nbsp;&lt;a href="http://makotokw.com/en/"&gt;Makoto_KW&lt;/a&gt; &lt;br /&gt;
&lt;div&gt;I've modified the code in many ways, adding a few features such as:&lt;br /&gt;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://cherne.net/brian/resources/jquery.hoverIntent.html"&gt;hoverIntent&lt;/a&gt; Support&lt;/li&gt;
&lt;li&gt;Drop-down textual marker, such as »&lt;/li&gt;
&lt;li&gt;Miniaturization, helps speed download&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;No jQuery UI, helps reduce HTTP requests&lt;/li&gt;
&lt;/ul&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;Use is as easy as the original potato menu, by simply using nested unordered lists, like this:&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;pre&gt;&amp;lt;ul id="menu1"&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Item 1&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Item 2&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;
&amp;lt;a href="#"&amp;gt;Item 3&amp;lt;/a&amp;gt;
&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Sub Item A&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;&amp;lt;a href="#"&amp;gt;Sub Item B&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&lt;/pre&gt;&lt;br /&gt;
And then throwing some javascript/css at it like this:&lt;br /&gt;
&lt;pre&gt;&amp;lt;link rel="stylesheet" type="text/css" href="jquery.fish.css" /&amp;gt;
&amp;lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src="js/jquery.hoverIntent.min.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src="js/jquery.fish.menu.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script type="text/javascript"&amp;gt;
$(document).ready(function(){
$('#menu1').fishMenu();
});
&amp;lt;/script&amp;gt;&lt;/pre&gt;and Ka-Pow, drop-down jQuery menus in 2.66KB (minified) or 3.22KB (full-sized)&lt;br /&gt;
&lt;div&gt;DOWNLOAD: &lt;a href="http://jkirchartz-jquery-repository.googlecode.com/files/jquery.fish.menu.js"&gt;FULL&lt;/a&gt; &lt;a href="http://jkirchartz-jquery-repository.googlecode.com/files/jquery.fish.menu-min.js"&gt;MINI&lt;/a&gt; &lt;a href="http://jkirchartz-jquery-repository.googlecode.com/files/jquery.fish.css"&gt;CSS&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I have noticed a bug in ie6 (it exists in the original potato menu too) and I can't really figure it out, the li's in the sub-nav appear to float left, if anybody has any insight let me know (it's not the pseudo-element bug)&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-1504975503531978280?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/LLk4ZhRNTmE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/LLk4ZhRNTmE/jquery-plugin-fish-menu.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2009/09/jquery-plugin-fish-menu.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-9153259762449075393</guid><pubDate>Thu, 30 Jul 2009 16:42:00 +0000</pubDate><atom:updated>2009-09-10T17:43:41.632-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Javascript</category><category domain="http://www.blogger.com/atom/ns#">Plugin</category><category domain="http://www.blogger.com/atom/ns#">Hacks</category><category domain="http://www.blogger.com/atom/ns#">Code</category><title>Hacks: FontBurner</title><description>&lt;p&gt;As you might have noticed I've got a couple crazy "non-standard" fonts here on my blog from &lt;a href="http://www.fontburner.com/"&gt;fontburner.com&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.fontburner.com/"&gt;FontBurner&lt;/a&gt; is a great tool for hosting &lt;a href="http://www.mikeindustries.com/blog/sifr/"&gt;sIFR (scalable inman flash replacement)&lt;/a&gt; flash files &amp;amp; javascript to simply replace fonts &amp;amp; text with a small flash file that displays it in the font of your choice. Currently fontburner has a limited set of options regarding color/spacing etc. but with a little ingenuity one is able to add this functionality themselves.&lt;/p&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;p&gt;First let us look at how FontBurner works. When you goto their site choose fonts, then which style of font to use. Once you've chosen a style you can easily navigate through all the different type-faces, right below each example is a 'get the code' button, which will give you this:&lt;/p&gt;&lt;pre&gt;&amp;lt;link rel="stylesheet" href="http://www.fontburner.com/css/fontburner.css" type="text/css" media="screen" /&amp;gt; &amp;lt;link rel="stylesheet" href="http://www.fontburner.com/css/fontburner_print.css" type="text/css" media="print" /&amp;gt; &amp;lt;script src="http://www.fontburner.com/fontburner.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;script type="text/javascript" src="http://www.fontburner.com/js/black/high_strung.php"&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;!-- sIFR fonts delivered by www.fontburner.com --&amp;gt;&lt;/pre&gt;&lt;p&gt;Now you copy that code onto your page &amp;amp; it will replace h1, h2, h3 tags and any dom element with a class or ID the same as the font-name.&lt;/p&gt;&lt;p&gt;Ok, so now let's do a little disection &amp;amp; investigation...&lt;/p&gt;&lt;ol&gt;  &lt;li&gt;&amp;lt;link rel="stylesheet" href="http://www.fontburner.com/css/fontburner.css" type="text/css" media="screen"&amp;gt;&lt;br /&gt;&lt;br /&gt;Basically does the CSS image-replacement technique&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &amp;lt;link rel="stylesheet" href="http://www.fontburner.com/css/fontburner_print.css" type="text/css" media="print"&amp;gt;&lt;br /&gt;&lt;br /&gt;Undoes the CSS image-replacement technique for print-only&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &amp;amp;ltscript src="http://www.fontburner.com/fontburner.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;The sIFR code itself&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &amp;lt;script type="text/javascript" src="http://www.fontburner.com/js/black/high_strung.php"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;The motherload of hackability, this is where we will have our fun.  &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&amp;lt;!-- sIFR fonts delivered by www.fontburner.com --&amp;gt;&lt;br /&gt;&lt;br /&gt;Attribution, let's leave this in there because they deserve some credit.&lt;/li&gt;&lt;/ol&gt;Alright let's see what item #4 has in there:&lt;br /&gt;&lt;pre&gt;var high_strung = {&lt;br /&gt;src: 'http://www.fontburner.com/flash/high_strung.swf'&lt;br /&gt;};&lt;br /&gt;sIFR.prefetch(high_strung);&lt;br /&gt;sIFR.delayCSS  = true;&lt;br /&gt;sIFR.activate(high_strung);&lt;br /&gt;&lt;br /&gt;sIFR.replace(high_strung, {&lt;br /&gt;selector: 'h1, h2, h3,  .high_strung, #high_strung'&lt;br /&gt;,css: [&lt;br /&gt;'.sIFR-root {color:#000000;}'&lt;br /&gt;,'a {color:#000000; text-decoration: underline; font-weight:normal; }'&lt;br /&gt;,'a:link {color:#000000; text-decoration: underline; font-weight:normal; }'&lt;br /&gt;,'a:hover {color:#000000; text-decoration: underline; font-weight:normal; }'&lt;br /&gt;,'a:visited { color: #000000; text-decoration: underline }'&lt;br /&gt;,'em { color: #000000; font-style:normal; font-weight:normal; }'&lt;br /&gt;,'strong { color: #000000; font-weight:normal; font-style:normal; }'&lt;br /&gt;]&lt;br /&gt;,offsetTop:0&lt;br /&gt;,marginBottom: 0&lt;br /&gt;,verticalSpacing: 0&lt;br /&gt;,wmode: 'transparent'&lt;br /&gt;});&lt;/pre&gt;&lt;p&gt;Hey look, CSS... this is EXACTLY what we want, and editing this script will give us much more control &amp;amp; options for fontburner. I suggest removing the h1, h2, and h3 tags from the selectors string in line 9 or this code, you probably shouldn't put CSS on a tag itself unless it's absolutely neccessary. Now lets move down to that lovely CSS... here you can change the font color, text-decoration, underling, weight, but there is alot more you can do with CSS. So here you can text-align and anything else.&lt;/p&gt;&lt;p&gt;Now you have some code that looks like this:&lt;/p&gt;&lt;pre&gt;&amp;lt;link rel="stylesheet" href="http://www.fontburner.com/css/fontburner.css" type="text/css" media="screen" /&amp;gt;&lt;br /&gt;&amp;lt;link rel="stylesheet" href="http://www.fontburner.com/css/fontburner_print.css" type="text/css" media="print" /&amp;gt;&lt;br /&gt;&amp;lt;script src="http://www.fontburner.com/fontburner.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;!-- sIFR fonts delivered by www.fontburner.com --&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;var high_strung = {&lt;br /&gt;src: 'http://www.fontburner.com/flash/high_strung.swf'&lt;br /&gt;};&lt;br /&gt;sIFR.prefetch(high_strung);&lt;br /&gt;sIFR.delayCSS  = true;&lt;br /&gt;sIFR.activate(high_strung);&lt;br /&gt;sIFR.replace(high_strung, {&lt;br /&gt;selector: '.high_strung, #high_strung'&lt;br /&gt;,css: [&lt;br /&gt;'.sIFR-root {color:#F0E68C;text-align:center}'&lt;br /&gt;,'a {color:#F0E68C; text-decoration: underline; font-weight:normal; text-align:center}'&lt;br /&gt;,'a:link {color:#F0E68C; text-decoration: underline; font-weight:normal; text-align:center}'&lt;br /&gt;,'a:hover {color:#F0E68C; text-decoration: underline; font-weight:normal; text-align:center}'&lt;br /&gt;,'a:visited { color: #F0E68C; text-decoration: underline;text-align:center }'&lt;br /&gt;,'em { color: #F0E68C; font-style:normal; font-weight:normal; text-align:center}'&lt;br /&gt;,'strong { color: #F0E68C; font-weight:normal; font-style:normal;text-align:center }'&lt;br /&gt;]&lt;br /&gt;,offsetTop:0&lt;br /&gt;,marginBottom: 0&lt;br /&gt;,verticalSpacing: 0&lt;br /&gt;,wmode: 'transparent'&lt;br /&gt;});&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;And you will have khaki-colour center-aligned text with a non-standard font.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-9153259762449075393?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/tLW5mDLtk2I" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/tLW5mDLtk2I/hacks-fontburner.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2009/07/hacks-fontburner.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-8421334645059490919</guid><pubDate>Wed, 15 Jul 2009 15:51:00 +0000</pubDate><atom:updated>2009-09-10T17:44:31.066-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Video</category><category domain="http://www.blogger.com/atom/ns#">Tips</category><title>Tips: Walk-on Characters &amp; Green Screen</title><description>&lt;div style="text-align: left;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Keying -- the process used to remove green-screen -- is a relatively simple process now-a-days, pretty simply pick the shade of green, and tweak a few numbers and you're done; but sometimes there are issues...&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;A Walk-on Character project just came across my desk, a spokes-person shot on green-screen to say the mission statement of the site. But there's a problem, a big problem, the source footage is terrible, the spokes-person is casting 4-6 different shadows depending on where they're standing, and to make matters worse the video is pixelated, and blurry.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;These issues individually cause problems when keying, combined the effects are HUGE, mainly because the system gets confused as to where the line between the subject and the green-screen actually are, this can be easily avoided by following a few simple guidelines.&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Camera&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;This is perhaps the most important thing to a good green-screen shoot, you cannot pull out your old super-8 and get decent looking video to put online, you absolutely MUST use a professional or pro-sumer grade camera, so anything on sale at the local &lt;a href="http://www.walmart.com/"&gt;big&lt;/a&gt; &lt;a href="http://target.com/"&gt;box&lt;/a&gt; &lt;a href="http://www.bjs.com/"&gt;store&lt;/a&gt; is basically off-limits.&lt;/li&gt;&lt;li&gt;Lighting&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;Simply put, lighting is one of the most important things in videography, and for green-screen it's relatively easy. Just use the Layer Method. Each subject &amp;amp; set of lights is a different layer (yes the green-screen counts as a subject) Here is an image of the most lighting set-up, just be sure to have no possibility of shadows ANYWHERE.&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_KHL6Vvj96Eo/Sl4OmTM2n5I/AAAAAAAAAiU/6O0DKDwJ7bM/s320/Layers.png" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 320px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5358736657769471890" /&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;Camera Setup&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;While setting up the camera make sure you're positioned dead-on to the subject, and that the entire background is green-screen (some gaffers tape is exceptable, if it's blue or green) Make sure there are no lighting fixtures or wires viewable anywhere.&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;White-balance your camera with a big matte-finished white card where your subject will be, to ensure that nothing turns out tinted funny.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;Wardrobe &amp;amp; Make-up&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;You're going to need to pay attention to both of these very carefully if you're going to put somebody infront of a greenscreen &amp;amp; expect them to look good coming out of the other side. Here are some very important tips:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;- No pin-stripes or similar patterns (They will produce a &lt;a href="http://en.wikipedia.org/wiki/Moir%C3%A9_pattern"&gt;Moire Pattern&lt;/a&gt;)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;- No Green (on greenscreen) No Blue (on bluescreen) not even in make-up&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;- Nothing Shiny (Apply appropriate ammounts of powder to all exposed skin &amp;amp; in&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;   the case of a whole-body shot, be wary of watches, glasses, jewelry, shoes etc.)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;   Reflections will cause big missing chunks of the subject.&lt;br /&gt;Always ask your talent to bring a few options of outfits, and if needed to wear contact lenses or memorize the script.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;With these simple steps you will get a high-quality source video to give to the editor, and they will be able to key out the background perfectly leaving you with a beautiful walk-on character for your site.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For a more detailed explanation (aimed towords videographers) read &lt;i&gt;&lt;a href="http://www.film-and-video.com/broadcastvideoexamples-greenscreen.html"&gt;Down and Dirty Green Screen&lt;/a&gt;&lt;/i&gt;&lt;a href="http://www.film-and-video.com/broadcastvideoexamples-greenscreen.html"&gt; by Walter Graff&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Before I sign-off, here's another tip: If you're going to use a walk-on character to pop up when somebody launches your page, the video should be under 1 minute long so that it will load quickly when somebody visits the site.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-8421334645059490919?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/rQQGO11N2bk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/rQQGO11N2bk/tips-walk-on-characters-green-screen.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_KHL6Vvj96Eo/Sl4OmTM2n5I/AAAAAAAAAiU/6O0DKDwJ7bM/s72-c/Layers.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2009/07/tips-walk-on-characters-green-screen.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-2361378560412661977</guid><pubDate>Tue, 14 Jul 2009 19:39:00 +0000</pubDate><atom:updated>2009-09-10T17:45:19.617-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Javascript</category><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">Plugin</category><title>JQuery Plugin: Letterpresser</title><description>This plugin adds the Letterpress style to any assigned tag.&lt;br /&gt;&lt;br /&gt;Here's what it looks like:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_KHL6Vvj96Eo/Slzi8kMa0oI/AAAAAAAAAiM/g4mhv-ePzYs/s1600-h/letterpresser_screenshot.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 195px;" src="http://3.bp.blogspot.com/_KHL6Vvj96Eo/Slzi8kMa0oI/AAAAAAAAAiM/g4mhv-ePzYs/s400/letterpresser_screenshot.gif" border="0" alt="" id="BLOGGER_PHOTO_ID_5358407186799841922" /&gt;&lt;/a&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and this is the code needed for this example:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;script src="jquery.letterpress.js" type="text/javascript"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;style&amp;gt;&lt;br /&gt;.all {&lt;br /&gt;font-family:Helvetica, Arial, Sans;&lt;br /&gt;}&lt;br /&gt;h1 {&lt;br /&gt;background:#2bf;&lt;br /&gt;}&lt;br /&gt;h2 {&lt;br /&gt;background:#f2b;&lt;br /&gt;}&lt;br /&gt;h3 {&lt;br /&gt;background:#b2f;&lt;br /&gt;}&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;$(document).ready(function(){&lt;br /&gt; $("h1").letterpress({color: '#000', highlight: '#0ff', topOffset: '1px', leftOffset: '1px'});&lt;br /&gt; $("h2").letterpress({color: '#000', highlight: '#f0f', leftOffset: '1px'});&lt;br /&gt; $("h3").letterpress({color: '#000', highlight: '#f6f'});&lt;br /&gt; $("h4").letterpress({topOffset: '2px', leftOffset: '2px'});&lt;br /&gt;});&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;div class="all"&amp;gt;&lt;br /&gt;&amp;lt;h1&amp;gt;Lorem ipsum dolor sit amet&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;h2&amp;gt;Lorem ipsum dolor sit amet&amp;lt;/h2&amp;gt;&lt;br /&gt;&amp;lt;h3&amp;gt;Lorem ipsum dolor sit amet&amp;lt;/h3&amp;gt;&lt;br /&gt;&amp;lt;h4&amp;gt;Lorem ipsum dolor sit amet&amp;lt;/h4&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This is a CSS / Graphic effect that usually requires a bit of planning and is kind-of hard to throw into dynamic content, or content you have no control over the markup of. No extra tags, or css required. No duplicate text needed.&lt;br /&gt;&lt;br /&gt;Here's the basics:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$(".letterpress").letterpress();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You can, however, edit the styles easily with these 4 options:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;color, highlight, topOffset, leftOffset&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Which can be implemented as such:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;$(".letterpress").letterpress({color: '#000', highlight: '#0ff', topOffset: '1px', leftOffset: '1px'});&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://jkirchartz-jquery-repository.googlecode.com/files/jquery.letterpresser.js"&gt;Download the JS here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-2361378560412661977?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/VcpQMAjbyYw" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/VcpQMAjbyYw/jquery-plugin-letterpresser.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_KHL6Vvj96Eo/Slzi8kMa0oI/AAAAAAAAAiM/g4mhv-ePzYs/s72-c/letterpresser_screenshot.gif" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2009/07/jquery-plugin-letterpresser.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-5920891186834454543</guid><pubDate>Thu, 02 Jul 2009 16:29:00 +0000</pubDate><atom:updated>2011-11-18T01:02:14.802-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Slideshow</category><category domain="http://www.blogger.com/atom/ns#">Javascript</category><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">Gallery</category><category domain="http://www.blogger.com/atom/ns#">Code</category><category domain="http://www.blogger.com/atom/ns#">Protaculous</category><title>Code: Simple JQuery Div Slideshow</title><description>&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;UPDATE: This code has been updated, please see &lt;a href="http://www.jkirchartz.com/2011/11/code-simple-jquery-div-slideshow-20.html"&gt;Simple JQuery Div Slideshow 2.0&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Here's a super-simple DIV &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;slideshow&lt;/span&gt; with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;JQuery&lt;/span&gt; based on one for prototype/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;scriptaculous&lt;/span&gt;, it can be found &lt;a href="http://snippets.dzone.com/posts/show/1068"&gt;here&lt;/a&gt;. The beauty is that it can contain anything a div can. I've been using it for just a single image link, but you can put anything in there.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here's the HTML:&lt;br /&gt;
&lt;pre&gt;&amp;lt;div id="slideshow1" class="slide"&amp;gt;&amp;lt;div&amp;gt;frame 1&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div id="slideshow2" class="slide" style="display: none"&amp;gt;&amp;lt;div&amp;gt;frame 2&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div id="slideshow3" class="slide" style="display: none"&amp;gt;&amp;lt;div&amp;gt;frame 3&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div id="slideshow4" class="slide" style="display: none"&amp;gt;&amp;lt;div&amp;gt;frame 4&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/pre&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
And the Javascript:&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;pre&gt;
s_ss(1, 4, 5000);
// usage: s_ss(first frame, end frame, delay time);

function s_ss(s_f, e_f, delay) {
 setTimeout(s_s(s_f,s_f,e_f, delay), delay);
}
function s_s(f, s_f, e_f, delay) {
 return (function() {
 $('#slideshow' + f).fadeOut();
 if (f == e_f) { f = s_f; } else { f = f + 1; }
 setTimeout("$('#slideshow" + f + "').fadeIn();", 850);
 setTimeout(s_s(f, s_f, e_f, delay), delay + 850);
 })
}&lt;/pre&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I'm thinking about maybe making this a real &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;jQuery&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Plugin&lt;/span&gt;, but like I said, I'm just switching from Prototype/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;Scriptaculous&lt;/span&gt; to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;jQuery&lt;/span&gt;; so it may be a while.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;UPDATE: This code has been updated, please see&amp;nbsp;&lt;a href="http://www.jkirchartz.com/2011/11/code-simple-jquery-div-slideshow-20.html"&gt;Simple JQuery Div Slideshow 2.0&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-5920891186834454543?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/gnNBENSiKfE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/gnNBENSiKfE/simple-jquery-div-slideshow.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2009/07/simple-jquery-div-slideshow.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-5961368534758637351</guid><pubDate>Fri, 19 Jun 2009 17:52:00 +0000</pubDate><atom:updated>2009-06-19T15:14:30.449-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Javascript</category><category domain="http://www.blogger.com/atom/ns#">JQuery</category><category domain="http://www.blogger.com/atom/ns#">Protaculous</category><category domain="http://www.blogger.com/atom/ns#">Opinion</category><title>Opinion: Protaculous to JQuery</title><description>Last night I went to my local &lt;a href="http://pitcfug.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;CFUG&lt;/span&gt;&lt;/a&gt; meeting, to hear &lt;a href="http://www.adrocknaphobia.com/"&gt;Adam Lehman&lt;/a&gt; from Adobe talk about the new Flash Platform &amp;amp; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Coldfusion&lt;/span&gt; Products. A lot of it was mouth-watering displays of computational power and speed optimization on behalf of the server &amp;amp; speedier compile times in the new Flash Builder. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;He also talked about how &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Coldfusion&lt;/span&gt; is continuing with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;ExtJS&lt;/span&gt;, which to use with Prototype/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Scriptaculous&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;you'd&lt;/span&gt; need to completely rewrite your code. BUT with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;ExtJS&lt;/span&gt; works with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;JQuery&lt;/span&gt; out of the box, and that's probably a good thing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For a while I've been a Prototype/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Scriptaculous&lt;/span&gt; lover, and also an Adobe fan. To see Adobe supporting &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;JQuery&lt;/span&gt; kinda hurts, but I'm starting to think that adobe has the right idea.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;JQuery&lt;/span&gt; is 'packable' meaning that the 120Kb library can be compacted down to 56Kb, unlike Prototype whose size is 128Kb, and cannot be packed any smaller. Prototype also requires &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Scriptaculous&lt;/span&gt; for effects (another 4Kb) pushing the required file-size to 132Kb, which is a lot for some of the things I'm doing (Which is basically Modal Windows, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Slide-shows&lt;/span&gt; &amp;amp; Accordions.)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So why was I so adamant about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Protaculous&lt;/span&gt;? Mostly because I took the trouble to learn how to use it well. But the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;Disadvantages&lt;/span&gt; are starting to out-weight the learning curve.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Time to start Re-Writing Code.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-5961368534758637351?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/1hoMhgnx2vY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/1hoMhgnx2vY/opinion-protaculous-to-jquery.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2009/06/opinion-protaculous-to-jquery.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6876592441336450182.post-148428728466608019</guid><pubDate>Thu, 18 Jun 2009 17:29:00 +0000</pubDate><atom:updated>2010-04-22T10:03:46.496-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Video</category><category domain="http://www.blogger.com/atom/ns#">Project</category><category domain="http://www.blogger.com/atom/ns#">Graphics</category><title>Project: Medrespond - Cancer Clinical Trials</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_KHL6Vvj96Eo/S9BXOuh79ZI/AAAAAAAAAmw/o_6l5ElnYyk/s1600/medRespond.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_KHL6Vvj96Eo/S9BXOuh79ZI/AAAAAAAAAmw/o_6l5ElnYyk/s320/medRespond.png" /&gt;&lt;/a&gt;&lt;/div&gt;I worked for &lt;a href="http://medrespond.com/"&gt;MedRespond&lt;/a&gt; for a short time; During which I created all the broadcast-graphics, and videos for their &lt;a href="http://216.128.28.205/exp/ct/(S(vxxuky554032wy45mqg0uovi))/viewer2.aspx"&gt;Cancer Clinical Trials Project&lt;/a&gt; for UPMC's &lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;My task was to Record, Edit, and add Graphics to hundreds of videos to be used with their AI-based question &amp;amp; answer engine. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Video was recorded on green-screen with a variety of actors, celebrities, patients, and doctors. Each video had to be edited together from several takes, and entered into a database containing a transcript and link to the video.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;My time spent working on this project was quite enjoyable, but also daunting because of the sheer volume of videos to be created (over 1,000) and the detail put into most of the edits.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;Programs Used:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Adobe Premier CS3&lt;/li&gt;
&lt;li&gt;Adobe Photoshop CS3&lt;/li&gt;
&lt;li&gt;Adobe After Effects CS3&lt;/li&gt;
&lt;li&gt;Adobe Flash CS3&lt;/li&gt;
&lt;li&gt;Sorenson Spark&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6876592441336450182-148428728466608019?l=www.jkirchartz.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/JoelKirchartz/~4/7_7iWabrwBU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/JoelKirchartz/~3/7_7iWabrwBU/project-medrespond-cancer-clinical.html</link><author>noreply@blogger.com (Joel Kirchartz)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_KHL6Vvj96Eo/S9BXOuh79ZI/AAAAAAAAAmw/o_6l5ElnYyk/s72-c/medRespond.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.jkirchartz.com/2009/06/project-medrespond-cancer-clinical.html</feedburner:origLink></item></channel></rss>

