<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>acpote.com</title>
	<atom:link href="http://acpote.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://acpote.com</link>
	<description>Web Development and Design Blog</description>
	<lastBuildDate>Sun, 08 Apr 2012 14:08:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Save CSS Changes In Firebug Using cssUpdater</title>
		<link>http://acpote.com/save-css-firebug-css-updater/</link>
		<comments>http://acpote.com/save-css-firebug-css-updater/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 03:12:23 +0000</pubDate>
		<dc:creator>Pote</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Web Development Tips]]></category>

		<guid isPermaLink="false">http://acpote.com/?p=264</guid>
		<description><![CDATA[The Problem For years I have been using Firebug to run all sorts of tasks related to web development. One of the key uses was on the design or front end, for I found Firebug to be the best CSS editing tool I could find. I have Dreamweaver and have been using it since the [...]]]></description>
			<content:encoded><![CDATA[<h1>The Problem</h1>
<p>For years I have been using <a title="Get firebug" href="http://getfirebug.com/" target="_blank">Firebug</a> to run all sorts of tasks related to web development. One of the key uses was on the design or front end, for I found Firebug to be the best CSS editing tool I could find. I have <a title="Dreamweaver" href="http://www.adobe.com/products/dreamweaver.html" target="_blank">Dreamweaver</a> and have been using it since the Macromedia days and am currently using CS 5.5, but despite all those years of use, I always found the CSS editing cumbersome. By comparison, the live updating CSS editing coupled with great element selection and recognition within Firebug makes it a far superior choice. So much so, that even Firebug&#8217;s one huge flaw, that fact that you cannot <strong>SAVE</strong> the edits, still did not stop me from using it. I would simply copy &amp; paste every single CSS edit I made. Over the years I would search for a solution, and found some that seemed promising, but they ended up either being not compatible with my settings or I found them too difficult to implement. Then recently I found <a title="CSS Updater" href="http://www.cssupdater.com/" target="_blank">cssUpdater</a>.</p>
<h1>The Fix</h1>
<p>cssUpdater is an extension for Firebug that installs through an <a title="Adobe AIR" href="http://get.adobe.com/air/?promoid=JOPDE" target="_blank">Adobe AIR</a> application. It fixes the aforementioned problem, making saving changes to your CSS documents through Firebug a breeze. Once it is installed, it needs to be opened as a software program along side your browser. Within the program you create projects and within these projects load up the CSS files you wish to be able to make changes to. the initial release of this extension allowed the user to create many projects and load up as many CSS documents as you needed. Currently with registration you get a beta version which allows you to create one project and load one stylesheet within that project. for my purposes that is just fine. While it would be nice to create and load projects and stylesheets, I find just having one project and changing the CSS document within not so tough, especially with the bitter memories of copying, pasting, saving, Alt + Tabbing, etc. So many lines of CSS&#8230;</p>
<p>Another great thing about this tool is that it allows a designer to design within the browser. Before I would make PSD mocks, and when I started development of the code I would simply add my dimensions and best guesses for the majority of the CSS. I would then open the page up in Firefox and incrementally fix the mess.</p>
<h1>Installation/Usage</h1>
<p><iframe src="http://www.youtube.com/embed/V7yNZVkvm5M?rel=0" frameborder="0" width="600" height="360"></iframe></p>
<ol>
<li>Make sure you have Firefox, Firebug for Firefox, and Adobe AIR.</li>
<li>Install the Firefox add-on</li>
<li>Register at cssUpdater.com in order to receive a registration code, it won&#8217;t work without it.</li>
<li>After registration, log in and go to the &#8216;Install now&#8217; tab.</li>
<li>Under the Download section is a badge that reads &#8216;cssUpdater | Install Now&#8217;, click it.</li>
<li><strong>Save</strong> or open the Adobe AIR file and run it, and go through the installation process.</li>
<li>After installation, you will be prompted to enter your registration code.</li>
<li>Go to Firefox and reload the page your on. Then open Firebug, and you should see a cssUpdater tab. Within that tab, click &#8216;Test Connection&#8217;, you will get a response in the logging window below. If the connection was unsuccessful, try restarting Firefox. If you still do not get a successful connection, make sure your ports are correct.</li>
<li>In the cssUpdater window, click Manage Projects and create a new one. Then load a stylesheet into the project. You can also drag and drop CSS documents into the window.</li>
<li>Go to Firefox, and change some CSS that is in the document you just loaded into your project in the cssUpdater window.</li>
<li>After making a change, hit the &#8216;Sync now&#8217; button &amp; refresh the page. Your change should be implemented. Go to the cssUpdater window. You will see a message: 1 item synced. There is also an option to undo this sync.</li>
</ol>
<p>&nbsp;</p>
<h1>Current Issues</h1>
<p>While this is a great time saving solution, it is still very much a project under development. the issues I have spotted are listed as such:</p>
<ul>
<li>If the same element is defined in multiple areas, sometimes when syncing cssUpater will grab styles from one declaration and place them under another.</li>
<li>Some changes that are made in Firebug and then deleted are sometimes still logged, and after syncing and refreshing the page, these deleted declarations and styles reappear. Usually after getting rid of them once more and refreshing solves the problem.</li>
<li>Sometimes syncs just don&#8217;t go through.</li>
</ul>
<p><a title="Johan Andersson, author of cssUpdater" href="https://addons.mozilla.org/en-US/firefox/user/5536741/" target="_blank">The author</a> of the plugin is looking for errors and bugs, so go to the <a title="Talk or Report on cssUpdater" href="http://www.cssupdater.com/disqus" target="_blank">Disqus page</a> to tell him what you think.</p>
<h1>Next Phases?</h1>
<p>In the future I would like to see this become an extension that lives solely within Firefox so that all the control is done within the browser and it would no longer be necessary to <strong>Alt + Tab</strong> between windows. The CSS Updater can be minimized to the tray while your working, but it is within this program window that lists all your changes. It’s reassuring seeing all your changes and that they were saved before you refresh or change pages. I think this is where the developer is going though, for there is a cssUpdater tab, but the only information I have ever seen in it are connection test results. There is a button to clear the list of actions, but no changes are ever listed here, for now it seems that these changes will only be logged in the program window outside of the browser.</p>
<p>Another update I would like to see is a simplification of the installation process. Since there is a stand alone application that runs along side your browser you must install both it and the Firebug extension, one from the cssUpdater web site and one from Firefox&#8217;s add-on repository.</p>
<p>Currently you are able to undo one step of changes in the cssUpdater window. It would be nice if there was a more complete log of alterations made during the session along with the option to get rid of specific instances.</p>
<p>One last idea would be a keyboard shortcut. There is <strong>F12</strong> to bring up Firebug, or <strong>Ctrl+C</strong> to bring up inspector, and <strong>F5</strong> to refresh the page. If cssUpdater could Sync through a keystroke, we&#8217;ll be saving even more time, and that&#8217;s what it&#8217;s all about.</p>
<h1>Similar Tools</h1>
<p>Other methods of saving CSS within the browser: <a title="Backfire" href="http://blog.handcraft.com/2010/08/backfire-save-css-changes-made-in-firebug/" target="_blank">Backfire</a>, <a title="Firediff Extension" href="https://addons.mozilla.org/en-US/firefox/addon/firediff/" target="_blank">Firediff</a>, <a title="Web Developer" href="https://addons.mozilla.org/en-US/firefox/addon/web-developer/?src=search" target="_blank">Web Developer Toolbar</a></p>
<p><strong>Backfire</strong>: You can find more information on this app <a title="Backfire" href="http://blog.handcraft.com/2010/08/backfire-save-css-changes-made-in-firebug/" target="_blank">here</a>.</p>
<p><strong>Web Developer Toolbar</strong>: This would probably be the next best option. the only problem is that it&#8217;s CSS editing capabilities are not an add-on to the Firebug extension, so you will end up using both, Firebug to inspect, and then switch back to Web Developer for CSS editing. Also it does not support a type of live syncing. You have to click on a <strong>SAVE</strong> icon and save the CSS document in Windows Explorer.</p>
<p><strong>Firediff</strong>: I have never seen a version of this plugin that is compatible with my current Firefox version.</p>
]]></content:encoded>
			<wfw:commentRss>http://acpote.com/save-css-firebug-css-updater/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Simple ABC&#8217;s Flash Cards</title>
		<link>http://acpote.com/simple-flash-cards/</link>
		<comments>http://acpote.com/simple-flash-cards/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 02:21:03 +0000</pubDate>
		<dc:creator>Pote</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://acpote.com/?p=203</guid>
		<description><![CDATA[Here are some simple flash cards made with JavaScript and jQuery. You can go to http://acpote.com/projects/flash_cards to use them, or download the project files below:]]></description>
			<content:encoded><![CDATA[<p>Here are some simple flash cards made with JavaScript and jQuery. You can go to <a title="http://acpote.com/projects/flash_cards" href="http://acpote.com/projects/flash_cards">http://acpote.com/projects/flash_cards</a> to use them, or download the project files below:</p>
<div id="download"><a class="downloadlink" href="http://acpote.com/wp-content/plugins/download-monitor/download.php?id=4" title="Version1 downloaded 308 times" ><div id="download_button"></div></a><a class="downloadlink" href="http://acpote.com/wp-content/plugins/download-monitor/download.php?id=4" title="Version1 downloaded 308 times" >Flash Cards Project Files (308)</a></div>
]]></content:encoded>
			<wfw:commentRss>http://acpote.com/simple-flash-cards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Photoshop Advanced Drop Shadow Actions</title>
		<link>http://acpote.com/photoshop-advanced-shadows-actions/</link>
		<comments>http://acpote.com/photoshop-advanced-shadows-actions/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 19:16:26 +0000</pubDate>
		<dc:creator>Pote</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://acpote.com/?p=143</guid>
		<description><![CDATA[In this post, I'll be providing four 'Actions' for Photoshop that create a couple of those great looking drop shadows we see across the web now-a-days. Along with the download, I'll provide an image displaying how each shadow looks, as well as instructions for installing and using them.]]></description>
			<content:encoded><![CDATA[<p>In this post, I&#8217;ll be providing four &#8216;Actions&#8217; for Photoshop that create a couple of those great looking drop shadows we see across the web now-a-days. Along with the download, I&#8217;ll provide an image displaying how each shadow looks, as well as instructions for installing and using them. The &#8216;Actions&#8217; pack includes three warped shadows intended for box corners, and one shadow acting as a mid lift. If you like these actions and decide to use them, I would note that I did not alter the shadow&#8217;s opacity. This is something that I normally do while working, but it always depends on the background you are working on and what effect you are going for, so I left it at 100% to be modified as per situation.</p>
<div id="download"><a class="downloadlink" href="http://acpote.com/wp-content/plugins/download-monitor/download.php?id=1" title="Version1 downloaded 964 times" ><div id="download_button"></div></a><a class="downloadlink" href="http://acpote.com/wp-content/plugins/download-monitor/download.php?id=1" title="Version1 downloaded 964 times" >Drop Shadows Photoshop Actions (964)</a></div>
<h2>Examples</h2>

<a href='http://acpote.com/photoshop-advanced-shadows-actions/mid-lift-shadow/' title='mid-lift-shadow'><img width="150" height="150" src="http://acpote.com/wp-content/uploads/2011/08/mid-lift-shadow-150x150.jpg" class="attachment-thumbnail" alt="mid-lift-shadow" title="mid-lift-shadow" /></a>
<a href='http://acpote.com/photoshop-advanced-shadows-actions/warped-shadow-i/' title='warped-shadow-i'><img width="150" height="150" src="http://acpote.com/wp-content/uploads/2011/08/warped-shadow-i-150x150.jpg" class="attachment-thumbnail" alt="warped-shadow-i" title="warped-shadow-i" /></a>
<a href='http://acpote.com/photoshop-advanced-shadows-actions/warped-shadow-ii/' title='warped-shadow-ii'><img width="150" height="150" src="http://acpote.com/wp-content/uploads/2011/08/warped-shadow-ii-150x150.jpg" class="attachment-thumbnail" alt="warped-shadow-ii" title="warped-shadow-ii" /></a>
<a href='http://acpote.com/photoshop-advanced-shadows-actions/warped-shadow-iii/' title='warped-shadow-iii'><img width="150" height="150" src="http://acpote.com/wp-content/uploads/2011/08/warped-shadow-iii-150x150.jpg" class="attachment-thumbnail" alt="warped-shadow-iii" title="warped-shadow-iii" /></a>

<h2></h2>
<h2></h2>
<h2></h2>
<h2>How To Install</h2>
<ol>
<li>Download the RAR file</li>
<li>Open the download, and extract <strong>Shadows.atn</strong></li>
<li>For Windows users, in the Folder Options, go to the <strong>View</strong> tab and select &#8216;Show hidden files, folders, or drives&#8217; and hit <strong>Apply</strong>. Folder Options can be found in the Control Panel.</li>
<li>For <strong>Windows 7</strong> &amp; <strong>Vista</strong>, go to<em> Users/[user name]/AppData/Roaming/Adobe/Adobe Photoshop CS5/Presets/Actions</em>.<br />
For <strong>Windows XP</strong>, go to <em>Documents and Settings/[user name]/Application Data/Adobe Photoshop CS5/Presets/Actions</em>.<br />
For <strong>MAC OS</strong>, go to <em>Users/[user name]/Library/Application Support/Adobe/Adobe Photoshop CS5/Presets/Actions</em>.</li>
<li>Copy<strong> Shadows.atn</strong> into the <em>Actions</em> folder</li>
<li>Open Photoshop or restart it if it is already open.</li>
<li>Press<strong> F9</strong> to see the &#8216;Actions Panel&#8217; and the &#8216;Shadows&#8217; folder of actions. If you do not see the &#8216;Shadows&#8217; folder of actions, within the Actions panel, click on the top-right drop-down menu and select &#8216;Load Actions&#8230;&#8217;. You should be taken to the folder in which we copied the &#8216;Shadow.atn&#8217; actions file. Double-click it and the &#8216;Shadows&#8217; actions set is now loaded in your Actions panel.</li>
</ol>
<p><iframe src="http://www.youtube.com/embed/X0LrJC9n1do" frameborder="0" width="600" height="355"></iframe></p>
<h2>How To Use The Actions</h2>
<p>To give your object one of these shadows, have the desired object selected, and then with your &#8216;Actions Panel&#8217; open, select the desired shadow. With the shadow action selected, click the &#8216;Play Selection&#8217; button at the bottom of the actions panel, and the shadow will be produced.</p>
]]></content:encoded>
			<wfw:commentRss>http://acpote.com/photoshop-advanced-shadows-actions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating A Rotating Twitter Feed Using jQuery</title>
		<link>http://acpote.com/creating-rotating-twitter-feed-jquery/</link>
		<comments>http://acpote.com/creating-rotating-twitter-feed-jquery/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 06:37:13 +0000</pubDate>
		<dc:creator>Pote</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://acpote.com/?p=80</guid>
		<description><![CDATA[This little tutorial will show you how to create a rotating twitter feed - it will show one tweet at a time in intervals of time that we set in a JavaScript file, from newest to oldest.]]></description>
			<content:encoded><![CDATA[<p>This tutorial will show you how to create a rotating twitter feed &#8211; it will show one tweet at a time in intervals of time that we set in a JavaScript file, from newest to oldest. It is one method of placing your tweets on your site. Another, is the twitter widget. While it is a lot easier to implement, I found the styling cumbersome and restrained. You can check out my post on this topic here: <a title="How To Style The Twitter Widget For Your Web Site" href="http://acpote.com/blog/how-to-style-the-twitter-widget-for-your-web-site/">How To Style The Twitter Widget For Your Web Site</a>. While being a bit more complicated to implement, the method described below gives us complete control on how the status updates are displayed. The files need to do this are</p>
<ul>
<li><a title="Download jQuery" href="http://docs.jquery.com/Downloading_jQuery" target="_blank">jquery.min.js</a> &#8211; the latest version of jQuery</li>
<li>rotate.js- the file we use to animate our feed</li>
<li>tweets.css &#8211; the file used to style our feed</li>
<li>tweets.js &#8211; contains the JavaScript used to retrieve our twitter updates</li>
<li>index.php &#8211; a blank PHP or HTML page</li>
</ul>
<div id="download"><a class="downloadlink" href="http://acpote.com/wp-content/plugins/download-monitor/download.php?id=2" title="Version1 downloaded 813 times" ><div id="download_button"></div></a><a class="downloadlink" href="http://acpote.com/wp-content/plugins/download-monitor/download.php?id=2" title="Version1 downloaded 813 times" >Twitter Rotating Feed (813)</a></div>
<h2>How It Works</h2>
<p>We will start with a blank PHP page and some basic CSS. Then we will add div elements that will contain our twitter feed. We will connect to a remote JSON page to retrieve user specified status updates, and JavaScript to build the feed. Then we will create a separate JavaScript file to create a rotating  fade-effect using jQuery. Let&#8217;s start by creating a new directory on your local server for the project files then create an index.php with the following code within the body:</p>
<pre class=”prettyprint">&lt;body&gt;

    &lt;div class="full-width"&gt;

        &lt;div class="container"&gt;

            &lt;div class="content"&gt;

                &lt;p&gt;
                    Just the good ol' boys, never
                    meanin' no harm. Beats all you've
                    ever saw, been in trouble with
                    the law since the day they was born.
                &lt;/p&gt;

            &lt;!-- end .content --&gt;&lt;/div&gt;

        &lt;!-- end .container --&gt;&lt;/div&gt;

    &lt;!-- end .full-width --&gt;&lt;/div&gt;

&lt;/body&gt;</pre>
<p>Then create and link to a CSS doc for some basic style(includes a CSS reset):</p>
<pre>@charset "utf-8";

/************************************************************************/
/************************************************************************/
/************************************************************************/

/* css reset */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    background-color: transparent;
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
    display: block;
}

body {
    line-height: 1;
}

a {
text-decoration: none;
}

ol, ul {
    list-style: none;
}

blockquote, q {
    quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* end css reset */

/************************************************************************/
/************************************************************************/
/************************************************************************/

body {
    font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
    background: #FFFFFF;
    margin: 0;
    padding: 0;
    color: #000;
}

h1, h2, h3, h4, h5, h6, p {
font-family: Tahoma;
font-weight: lighter;
margin-top: 0;
padding-left: 15px;
padding-right: 15px;
}

a:link {
    color: #09c;
    text-decoration: none;
}

a:visited {
    color: #6E6C64;
    text-decoration: underline;
}
a:hover, a:active, a:focus {
    text-decoration: none;
    color: #09f;
}

/************************************************************************/

div.full-width {
margin: 0 auto;
width: 960px;
}

/************************************************************************/

.container {
background: none repeat scroll 0 0 #EEEEEE;
border: 1px solid #CCCCCC;
border-radius: 3px 3px 3px 3px;
margin: 0 auto 25px;
position: relative;
top: 100px;
width: 960px;
float: left;
}

/************************************************************************/

.content {
border: 1px solid #FFFFFF;
border-radius: 3px 3px 3px 3px;
float: left;
padding: 30px;
width: 898px;
}

.content h1 {
color: #333333;
font-size: 20px;
text-shadow: 0 1px 0 #FFFFFF;
margin-bottom: 0;
}

.content p.description {
color: #666666;
font-size: 11px;
line-height: 25px;
padding: 5px 45px 25px;
text-shadow: 0 1px 0 #FFFFFF;
}</pre>
<p>Then, from our index.php file, we need to reference a few more files. Place these lines as the last to be placed next to the closing body tag:</p>
<pre>&lt;!-- jQuery --&gt;
&lt;script src="jquery.min.js"&gt;&lt;/script&gt;

&lt;!-- rotate tweets --&gt;
&lt;script src="rotate.js"&gt;&lt;/script&gt;

&lt;!-- get and build the tweets --&gt;
&lt;script src="tweets.js"&gt;&lt;/script&gt;

&lt;!-- tweets username and count --&gt;
&lt;script src="http://twitter.com/statuses/user_timeline/***username***.json?callback=twitterCallback&amp;amp;count=5" type="text/javascript"&gt;&lt;/script&gt;</pre>
<p>On the last script, which links back to twitter.com to get the tweets, is where you will set the <strong>username</strong> and the amount of feeds to be retrieved in the form of <strong>count=x</strong>. The JavaScript file tweets.js then grabs that information and builds our tweets with the data.</p>
<p>Now let&#8217;s create the elements that the feed will be placed in. Using the index.php template flow, let&#8217;s create another set of div elements with the classes of &#8220;container&#8221; and &#8220;content&#8221;. Within the content div, let&#8217;s add a div to hold all the elements used for the feed, a title for the feed, and a div to hold the list of feeds:</p>
<pre>&lt;div id="tweets"&gt;

    &lt;div id="twitter_container"&gt;

        &lt;h3&gt; Latest Tweets &lt;/h3&gt;

    &lt;/div&gt;

&lt;/div&gt;</pre>
<p>Now, under the title, let&#8217;s add the <strong>&lt;ul&gt;</strong> elements for an unordered list. We are not going to add any <strong>&lt;li&gt;</strong> elements here, for they are going to be created by our <strong>tweets.js</strong> file, as they will contain the data we retrieve from the tweets.</p>
<pre>&lt;div id="tweets"&gt;

    &lt;div id="twitter_container"&gt;

        &lt;h3&gt; Latest Tweets &lt;/h3&gt;

        &lt;ul id="twitter_update_list"&gt;

        &lt;/ul&gt;

    &lt;/div&gt;

&lt;/div&gt;</pre>
<p>Now we look at the JavaScript file which will use the parameters we set on the index.php page to create our status updates. Here I&#8217;m calling it <strong>tweets.js</strong>.</p>
<pre> // tweets.js - get the feeds from username set on
// index.php and generate list items with the
// data(status updates, feed date, links) 

function twitterCallback(twitters) {
  var statusHTML = [];
  for (var i=0; i&lt;twitters.length; i++){
    var username = twitters[i].user.screen_name;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)://[^"s&lt;&gt;]*[^.,;'"&gt;:s&lt;&gt;)]!])/g, function(url) {
      return '&lt;a href="'+url+'"&gt;'+url+'&lt;/a&gt;';
    }).replace(/B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'&lt;a href="http://twitter.com/'+reply.substring(1)+'"&gt;'+reply.substring(1)+'&lt;/a&gt;';
    });
    statusHTML.push('&lt;li&gt;&lt;span&gt;'+status+'&lt;/span&gt; &lt;a style="font-size:65%; color:#999;" href="http://twitter.com/'+username+'/statuses/'+twitters[i].id_str+'"&gt;'+relative_time(twitters[i].created_at)+'&lt;/a&gt;&lt;/li&gt;');
  }
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}

function relative_time(time_value) {
  var values = time_value.split(" ");
  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length &gt; 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  delta = delta + (relative_to.getTimezoneOffset() * 60);

  if (delta &lt; 60) {
    return 'less than a minute ago';
  } else if(delta &lt; 120) {
    return 'about a minute ago';
  } else if(delta &lt; (60*60)) {
    return (parseInt(delta / 60)).toString() + ' minutes ago';
  } else if(delta &lt; (120*60)) {
    return 'about an hour ago';
  } else if(delta &lt; (24*60*60)) {
    return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
  } else if(delta &lt; (48*60*60)) {
    return '1 day ago';
  } else {
    return (parseInt(delta / 86400)).toString() + ' days ago';
  }
}</pre>
<p>Now we take a look at the jQuery used to rotate the tweets. Essentially it is saying every four seconds set a variable for the current item and the next item(the items are the individual status updates). If we are at the end of the list(the last list-item element), then set the next item as the first list item, so that it goes around and around continuously. After checking the order, fade out the current item and fade in the last.</p>
<pre>/* Tweet Scroller */

$('document').ready(function() {

    setInterval("scrollTwt()", 4000);});

    function scrollTwt() {

        var oCurTwt = $('ul#twitter_update_list li.current');
        var oNxtTwt = oCurTwt.next();
        if (oNxtTwt.length == 0)
        oNxtTwt = $('ul#twitter_update_list li:first');

        oCurTwt.fadeOut('fast').removeClass('current');
        oNxtTwt.fadeIn('slow').addClass('current');

    }</pre>
<p>Now we need to style the twitter feed. Below are the styles I used for the example. The only vital part is that the list-items in the &lt;ul id=&#8221;twitter_update_list&#8221;&gt; are positioned absolutely. It is also wise for the fade effect that I am using to give the list-items an opaque background. This is because letters fading in and out over top one another in not a very attractive effect. Since the list-items are sitting one on top of another, using a background color or image helps with our jQuery animation.</p>
<pre>@charset "utf-8";
/* CSS Document */

#tweets {
margin: 0 auto;
width: 452px;
}

#tweets h3 {
color: #999999;
font-family: tahoma;
font-weight: lighter;
padding: 0;
text-shadow: 0 1px 0 #FFFFFF;
}

#tweets #twitter_container {}

#tweets ul#twitter_update_list {
background-color: #FFFFFF;
border: 1px solid #CCCCCC;
border-radius: 3px 3px 3px 3px;
bottom: 10px;
box-shadow: 0 10px 10px -10px #AAAAAA;
font-size: 10px;
height: 40px;
margin: 0 auto;
padding: 10px;
position: relative;
width: 430px;
}

#tweets ul#twitter_update_list li {
position: absolute;
list-style: none;
display: none;
background-color: #FFFFFF;
padding: 5px;
}

#tweets ul#twitter_update_list li.current {
display: block;
}

#tweets p a {
font-size: 10px;
}

#tweets a {}

p.follow {
padding: 0;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://acpote.com/creating-rotating-twitter-feed-jquery/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>The Beetle: A Widescreen Desktop Background</title>
		<link>http://acpote.com/beetle/</link>
		<comments>http://acpote.com/beetle/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 05:14:09 +0000</pubDate>
		<dc:creator>Pote</dc:creator>
				<category><![CDATA[Desktop Backgrounds]]></category>
		<category><![CDATA[Graphics]]></category>

		<guid isPermaLink="false">http://acpote.com/?p=126</guid>
		<description><![CDATA[Select which size is best for your desktop, then click on the image. While the image is opened in the light box, right click with the mouse and select &#8216;Set As Desktop Background&#8216;.]]></description>
			<content:encoded><![CDATA[<p>Select which size is best for your desktop, then click on the image. While the image is opened in the light box, right click with the mouse and select &#8216;<strong>Set As Desktop Background</strong>&#8216;.</p>

<a href='http://acpote.com/beetle/the-beetle/' title='the-beetle'><img width="150" height="150" src="http://acpote.com/wp-content/uploads/2011/08/the-beetle-150x150.png" class="attachment-thumbnail" alt="the-beetle" title="the-beetle" /></a>

]]></content:encoded>
			<wfw:commentRss>http://acpote.com/beetle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blank &#8216;wp-admin&#8217; Page Fix</title>
		<link>http://acpote.com/blank-wp-admin-page-fix/</link>
		<comments>http://acpote.com/blank-wp-admin-page-fix/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 22:23:13 +0000</pubDate>
		<dc:creator>Pote</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://acpote.com/?p=76</guid>
		<description><![CDATA[Recently when I attempted to log in to my WordPress admin page at &#8216;http://domain.org/wp/wp-admin&#8217;, the page was blank. I had no idea what was going on. My local WordPress install was working fine, so I checked my remote files against my locals and saw nothing out of the ordinary. Then it simply hit me that [...]]]></description>
			<content:encoded><![CDATA[<p>Recently when I attempted to log in to my WordPress admin page at &#8216;http://domain.org/wp/wp-admin&#8217;, the page was blank. I had no idea what was going on. My local WordPress install was working fine, so I checked my remote files against my locals and saw nothing out of the ordinary. Then it simply hit me that a lot of the books and tutorials on the function.php file always mentoined weird results to your page if there were any line breaks at the beginning or end of your file. So I checked and sure enough there were some spaces at the end of my functions.php file which I deleted and uploaded it all was right again.</p>
]]></content:encoded>
			<wfw:commentRss>http://acpote.com/blank-wp-admin-page-fix/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ufolio: An HTML5 Template</title>
		<link>http://acpote.com/ufolio-an-html5-template/</link>
		<comments>http://acpote.com/ufolio-an-html5-template/#comments</comments>
		<pubDate>Sun, 24 Jul 2011 19:36:10 +0000</pubDate>
		<dc:creator>Pote</dc:creator>
				<category><![CDATA[HTML Template]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://acpote.com/?p=57</guid>
		<description><![CDATA[uFolio is an HTML5 capable template for your projects. Features jQuery enabled widgets, content slider, gallery, twitter feed, PSD mocks, and more.]]></description>
			<content:encoded><![CDATA[<p>uFolio is an HTML5 capable template for your projects. Features jQuery enabled widgets, content slider, gallery, twitter feed, PSD mocks, and more.</p>
]]></content:encoded>
			<wfw:commentRss>http://acpote.com/ufolio-an-html5-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress: Display Child Category</title>
		<link>http://acpote.com/wordpress-display-child-category/</link>
		<comments>http://acpote.com/wordpress-display-child-category/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 01:31:55 +0000</pubDate>
		<dc:creator>Pote</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://acpote.com/?p=46</guid>
		<description><![CDATA[For my new WordPress theme, I wanted to display the child category for my portfolio projects. I have placed all my objects within main categories(such as Blog and Portfolio) and given them more specific categories for description within the parent. When doing a loop to display my latest portfolio posts, I wanted to display the [...]]]></description>
			<content:encoded><![CDATA[<p>For my new WordPress theme, I wanted to display the child category for my portfolio projects. I have placed all my objects within main categories(such as Blog and Portfolio) and given them more specific categories for description within the parent. When doing a loop to display my latest portfolio posts, I wanted to display the category(ies), but since the heading for the section is entitled &#8220;Latest Projects&#8221;, it would be redundant to show that the items are categorized within &#8216;Portfolio&#8217;.</p>
<p>The WordPress function to display the catagory of a post is</p>
<pre title="">&lt;?php the_category(', '); ?&gt;</pre>
<p>This will display all the categories, parent and children. To get the child, we have to load a string with the child after checking if there is in fact a child category.</p>
<pre>&lt;?php

     foreach((get_the_category()) as $childcat) {
     if (cat_is_ancestor_of(11, $childcat)) {
     echo $childcat-&gt;cat_name;
     }}
?&gt;</pre>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://acpote.com/wordpress-display-child-category/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How To Style The Twitter Widget For Your Web Site</title>
		<link>http://acpote.com/how-to-style-the-twitter-widget-for-your-web-site/</link>
		<comments>http://acpote.com/how-to-style-the-twitter-widget-for-your-web-site/#comments</comments>
		<pubDate>Sun, 17 Jul 2011 03:05:44 +0000</pubDate>
		<dc:creator>Pote</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[customize]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[hack]]></category>

		<guid isPermaLink="false">http://acpote.com/?p=27</guid>
		<description><![CDATA[Twitter offers you an application that you can place on your website to allow your visitors to see your latest tweets. This is a great way to cross reference users easily from your site to your twitter or vice-versa. My issue with this app is that I found the styling given to the user quite [...]]]></description>
			<content:encoded><![CDATA[<p>Twitter offers you an application that you can place on your website to allow your visitors to see your latest tweets. This is a great way to cross reference users easily from your site to your twitter or vice-versa. My issue with this app is that I found the styling given to the user quite limited: <strong>you may only edit 5 appearance preferences including the dimensions.</strong> This tutorial will show you how get the files needed so you can start styling that widget the way you want to the extent that you want.</p>
<p><iframe width="600" height="355" src="http://www.youtube.com/embed/HZww5r310vE" frameborder="0" allowfullscreen></iframe></p>
<p><strong>HOW IT WORKS</strong>: You set the basic parameters for your widget at the &#8216;twitter/profile widget&#8217; site, download &amp; copy the code for the widget, and add it to the desired location on your site(usually a sidebar). The widget sets styling parameters at the local level while also referencing a JavaScript file that includes two more CSS files. We want to take control by altering the JavaScript file to reference our own customized CSS files, not twitters. This will allow us to do almost anything to the widget we want.</p>
<p>To get this app, go to your twitter account, and on the bottom of the aside or sidebar, there is a link for &#8216;<strong>Widgets</strong>&#8216;, go there. This will take you to a site with the options of getting the &#8216;<strong>Tweet Button</strong>&#8216;, &#8216;<strong>Widgets</strong>&#8216;, &amp; &#8216;<strong>Buttons</strong>&#8216;. Select &#8216;<strong>Widgets</strong>&#8216;. You can also get to this page by going to <a title="Twitter Goodies" href="http://twitter.com/goodies" target="_blank">http://twitter.com/goodies</a>.</p>
<p>In the &#8216;<strong>Widgets</strong>&#8216; section, select &#8216;<strong>My Website</strong>&#8216;, then select &#8216;<strong>Profile Widget</strong>&#8216;. The page you come to now shows you an example of the widget given the current settings within the options panel:<strong> Settings, Preferences, Appearance, Dimensions</strong>. You can edit these settings and see the updated example to the right which gives you a feel for what it will look like on your site. The only settings you really need to focus on are the &#8216;<strong>Preferences</strong>&#8216; because we are going to edit the appearance in more depth once the widget is on our site, even though you can still alter most if not all of the &#8216;<strong>Preference</strong>&#8216; settings once it is on your site. However, you may want to set some of the 5 appearance settings just to give you a base theme from which to work with, either way it is of no consequence. Once you are done editing the settings, on the bottom of the widget editor page, you will see two links, &#8216;<strong>Test Settings</strong>&#8216; &amp; &#8216;<strong>Finish &amp; Grab Code</strong>&#8216;. Let&#8217;s grad the widget. Below is an example of the code you will see:</p>
<pre>&lt;script src="http://widgets.twimg.com/j/2/widget.js"&gt;&lt;/script&gt;

&lt;script&gt;

new TWTR.Widget({

version: 2,

type: 'profile',

rpp: 8,

interval: 6000,

width: 250,

height: 300,

theme: {

shell: {

background: '#333333',

color: '#ffffff'

},

tweets: {

background: '#000000',

color: '#ffffff',

links: '#4aed05'

}

},

features: {

scrollbar: false,

loop: false,

live: false,

hashtags: true,

timestamp: true,

avatars: false,

behavior: 'all'

}

}).render().setUser('acpote').start();

&lt;/script&gt;</pre>
<p>This is very simple code, and you can understand what affects what quite easily. What we are focusing on here is how to style, in detail, our app, so how do we do go beyond the styles given to us? To do this we must capture the CSS documents that are styling our widget and add them to our own server so we can have them modified to our liking. The twitter widget connects to these generic stylings through the JavaScript file referenced in the top of the widget code which you have placed on your site:</p>
<pre>&lt;script src="http://widgets.twimg.com/j/2/widget.js"&gt;&lt;/script&gt;</pre>
<p>It is within this JavaScript file that the CSS files we need are referenced, so we are going to have to capture and modify this file as well as the CSS that we need. To do this, simply go to the URL of the file:</p>
<p><a href="http://widgets.twimg.com/j/2/widget.js" target="_blank">http://widgets.twimg.com/j/2/widget.js</a></p>
<p>Once at the page, save it <strong>(Ctrl + S)</strong> and store it in a folder within your server. For this example, I am going to store this file in a folder named &#8216;js&#8217; (for JavaScript). Once you have the file, let&#8217;s test it to make sure it works. Go to the page which you have the code for the widget inserted, and change the file path of the JavaScript file to point to your local version. Mine looks like this: &lt;script src=&#8221;js/widget.js&#8221;&gt;&lt;/script&gt;</p>
<p>Then go to your localhost or website, and make sure that you have the same results once you refresh the page. If you do, that means that your are still referencing the default twitter styles, only now you are accessing them from <strong>your</strong> JavaScript file, not Twitter&#8217;s. This will give us the control to tell the &#8216;widget.js&#8217; file where to find the styles we want.</p>
<p>To do this, open up your &#8216;widget.js&#8217; file in any text editor. What we are looking for in this file are the CSS documents that it references. These files are what gives your widget the majority of it&#8217;s appearance, and by getting these files and editing them to our liking, we can create widgets for any site style or preference.</p>
<p>The Twitter &#8216;widget.js&#8217; file links to two CSS files. To find them, use your editor&#8217;s <strong>&#8216;Find&#8217; </strong>command (in most programs this will be <strong>Ctrl + F</strong>), and search for &#8216;<strong>widget.css</strong>&#8216;(with no quotations). This will highlight the document that we need to grab, for it is the style for the widget. The file path looks like this:</p>
<pre>https://twitter-widgets.s3.amazonaws.com/j/2/widget.css</pre>
<p>Now we want to capture this file to our server. Go to the URL and save it, and add it to your server. I saved it within the folder &#8216;<strong>css/twitter/widget.css</strong>&#8216;.</p>
<p>If within your &#8216;Find&#8217; dialouge box, you hit &#8216;Find Next&#8217;, you will get another widget.css file right after the first one. This is just a another copy of the same file, the first file is under an &#8216;https://&#8217;, and the second is under the normal &#8216;http://&#8217; protocol. For my own use, I simply duplicated the path for the second CSS file.</p>
<p>Now we must tell &#8216;<strong>widget.js</strong>&#8216; file to reference our now localized &#8216;<strong>widget.css</strong>&#8216; file. To do this just change the file path in the <strong>widget.js</strong> file to&#8217; the desired local CSS file. Mine looks likes this:</p>
<pre>{Q.loadStyleSheet("&lt;span style="color: #33cccc;"&gt;/css/widget.css&lt;/span&gt;",this.widgetEl)}else

{Q.loadStyleSheet("&lt;span style="color: #33cccc;"&gt;/css/widget.css&lt;/span&gt;",this.widgetEl)</pre>
<pre>&lt;strong&gt;NOTE&lt;/strong&gt;: There should be no line break in the above code.

One is inserted here only for the readability of the site.</pre>
<p>Now test the results by going to your localhost, refreshing, and making sure that your widget works and that all the default styles are loaded. If your app is visible and styled, then you can go ahead and start customizing the &#8216;widget.css&#8217; file to your liking. If you see the app but the styles are not coming into play, check your file paths.</p>
<p>If you do not feel like retrieving these two files yourself, here they are. Just download this .rar and extract them to the desired positions on your site.</p>
<div id="download"><a class="downloadlink" href="http://acpote.com/wp-content/plugins/download-monitor/download.php?id=3" title=" downloaded 684 times" ><div id="download_button"></div></a><a class="downloadlink" href="http://acpote.com/wp-content/plugins/download-monitor/download.php?id=3" title=" downloaded 684 times" >Twitter Widget (684)</a></div>
<p><strong>TIPS: </strong>Do not forget about the inline styles that exist on the page of the widget itself. These are easy to set, but also easy to forget about.</p>
]]></content:encoded>
			<wfw:commentRss>http://acpote.com/how-to-style-the-twitter-widget-for-your-web-site/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Rousseau</title>
		<link>http://acpote.com/rousseau/</link>
		<comments>http://acpote.com/rousseau/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 22:40:09 +0000</pubDate>
		<dc:creator>Pote</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://acpote.com/?p=12</guid>
		<description><![CDATA[Site I created for the Genevan philosopher. Features e-books, full bibliography, biography, quotes, gallery. rousseau.acpote.com]]></description>
			<content:encoded><![CDATA[<p>Site I created for the Genevan philosopher. Features e-books, full bibliography, biography, quotes, gallery.</p>
<p><a title="Rousseau on acpote.com" href="http://rousseau.acpote.com" target="_blank">rousseau.acpote.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://acpote.com/rousseau/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

