<?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>Basic Verbs</title>
	<atom:link href="http://basicverbs.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://basicverbs.com</link>
	<description>Design AND Development Blog</description>
	<lastBuildDate>Fri, 19 Feb 2010 09:51:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Here it is. The best jQuery carousel EVA!</title>
		<link>http://basicverbs.com/here-it-is-the-best-jquery-carousel-eva/</link>
		<comments>http://basicverbs.com/here-it-is-the-best-jquery-carousel-eva/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 19:59:27 +0000</pubDate>
		<dc:creator>dejan.noveski</dc:creator>
				<category><![CDATA[Client Side]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Freebies]]></category>

		<guid isPermaLink="false">http://basicverbs.com/?p=147</guid>
		<description><![CDATA[We are very sorry for the inconvenience and the design. We have problems with the hosting and we hope that we&#8217;ll straight them out soon. Thank you for the understanding
After long time of struggling with bugs and procrastination, I finally finished the best carousel of all time! There are some custom and proprietary non open [...]]]></description>
			<content:encoded><![CDATA[<h2><b>We are very sorry for the inconvenience and the design. We have problems with the hosting and we hope that we&#8217;ll straight them out soon. Thank you for the understanding</b></h2>
<p>After long time of struggling with bugs and procrastination, I finally finished the best carousel of all time! There are some custom and proprietary non open source plugins like this, but with limited functionality and custom implementation. Mine is easy to implement, highly customizable and works with images and DOM too.</p>
<p>Anyway i will start with an example of the plugin:</p>
<p><br/></p>
<div id="carouselthreed" style="height:200px;">
                <img class="tdc-element" src="http://basicverbs.com/wp-content/uploads/2010/01/fly1.jpg" alt="" style="cursor:pointer"/><br />
                <img class="tdc-element" src="http://basicverbs.com/wp-content/uploads/2010/01/gates1.jpg" alt="" style="cursor:pointer;width:250px;height:164px;"/><br />
                <img class="tdc-element" src="http://basicverbs.com/wp-content/uploads/2010/01/penguins1.jpg" alt="" style="cursor:pointer"/>
</div>
<p><script type="text/javascript" src="http://basicverbs.com/wp-content/uploads/2010/01/Carousel3D3.js"></script></p>
<p>Here is how you implement it:</p>
<pre>
    $('#carouselthreed').carousel3D({
        speed: 900,
        perspectiveZoom: 70,
        sideOffset: 80,
        topOffset:0,
        secondaryOpacity: .35,
        emClass:'tdc-element'
    })

HTML:
&lt;div id="carouselthreed"&gt;
        &lt;img class="tdc-element" src="img/fly.jpg" alt=""&gt;
        &lt;img class="tdc-element" src="img/gates.jpg" alt=""&gt;
        &lt;img class="tdc-element" src="img/penguins.jpg" alt=""&gt;
 &lt;/div&gt;
</pre>
<p>The settings object attributes are:</p>
<p><code>speed - Speed of animation in milliseconds (default 350)<br />
perspectiveZoom - Percentage of secondary element's sizes relative to primary element (default 80)<br />
sideOffset - Offset of secondary elements (default 70)<br />
topOffset - Offset from top of secondary elements (default 0)<br />
secondaryOpacity - Opacity of secondary elements (default 0.8)<br />
emClass - CSS class of elements that will rotate (images/dom) (default "tdc-element")<br />
</code></p>
<p>Any of those attributes can be omitted and default values will be used. For reference, the second element in the container is taken, it is the central element and all other elements are resized relative to it. <strong>It works with unlimited number of elements.</strong></p>
<p>You can download the plugin <a href="http://basicverbs.com/wp-content/uploads/2010/01/jqCarousel3D.js"><b>here</b></a> and you only need the jquery library.</p>
<p><b>Enjoy!</b></p>
]]></content:encoded>
			<wfw:commentRss>http://basicverbs.com/here-it-is-the-best-jquery-carousel-eva/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Benchmark of django deployment techniques</title>
		<link>http://basicverbs.com/benchmark-of-django-deployment-techniques/</link>
		<comments>http://basicverbs.com/benchmark-of-django-deployment-techniques/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 19:55:02 +0000</pubDate>
		<dc:creator>Vasil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Environment]]></category>
		<category><![CDATA[Server side]]></category>

		<guid isPermaLink="false">http://basicverbs.com/?p=63</guid>
		<description><![CDATA[I made a benchmark of different Django deployment techniques and configurations mostly for my personal purposes. The results are published in the hope that it would save others some time. The benchmark was not designed to test the speed of Django itself, only to give relative comparison between different techniques for running a Django application [...]]]></description>
			<content:encoded><![CDATA[<p>I made a benchmark of different Django deployment techniques and configurations mostly for my personal purposes. The results are published in the hope that it would save others some time. The benchmark was not designed to test the speed of Django itself, only to give relative comparison between different techniques for running a Django application in production environments. I&#8217;m not affiliated with any of the following open source projects: Apache,  Nginx, Cherokee, mod_wsgi, mod_python, Cherrypy or uWSGI. Further, I&#8217;m not claiming to be an expert in configuring any of the software mentioned here.</p>
<h2>What was measured</h2>
<p>The Django project used for the benchmark was a simple application for displaying rows from 3 different tables with pagination. Each page had references to 3 static files (css, javascript and an image). Each page involved rendering a simple template inheriting from a base template and including another one, built-in filters were also used. The database had more than a million records in all three tables combined. I browsed different pages of the application over a proxy which recorded the URLs of the browsing session. So for each request that was handled by the application there were 3 more requests for static files. For each deployment technique I ran 4 tests at different concurrency levels for 1 minute making GET requests to the recorded URLs. For each test run I recorded throughput (number of requests served per second), response time (average time in which a request was served) and longest request (the longest time a request was served in each run). Only for the tests at highest concurrency levels I recorded memory usage. I tried to make sure that only the necessary processes for each test were running at a time. Automatic maintenance tasks on the system and the database were turned off. Every test cycle was repeated at least 3 times to recheck the results.</p>
<h2>Hardware and software details</h2>
<p>For generating the loads I used Siege and ran all the benchmarks over gigabit ethernet from a 2.16 GHz machine with 2 GB of RAM running OS X Snow Leopard.</p>
<p>The system that served as a web and database server ran in a VMware appliance on a 2.8 GHz Core2Duo PC with 8GBs of RAM. The appliance was given only 1GB of working memory and assigned both cores of the CPU. Software details:</p>
<ul>
<li>Ubuntu 9.10 32b</li>
<li>Python 2.6</li>
<li>PostgreSQL 8.4</li>
<li>Apache 2.2.12 worker MPM</li>
<li>Nginx 0.7.64</li>
<li>Cherokee 0.99.39</li>
<li>Django 1.1</li>
<li>psycopg2 2.0.8</li>
</ul>
<h2>Tested configurations</h2>
<h3>Apache with mod_wsgi</h3>
<p>This was the first configuration I tested. Apache was serving both the static files and dynamic content via mod_wsgi which ran in daemon mode with 5 processes and 1 thread per process.</p>
<h3>Nginx + Apache with mod_wsgi</h3>
<p>My preferred configuration for running django sites. Apache with mod_wsgi was used only for the dynamic content, requests to these urls were proxied by nginx. Static files were served by nginx directly.</p>
<h3>Nginx + fcgi</h3>
<p>Here nginx is used for serving the static content while the dynamic content was handled by FastCGI processes. I used all the defaults from the runfcgi management command and used a TCP socket instead of a socket file because I was bumping into issues with access to the socket file at large numbers of concurrent requests.</p>
<h3>Cherokee + SCGI</h3>
<p>This was set up from the Cherokee web based wizard for deploying django applications. Static files were served by Cherokee directly. I have to say this is by far the  easiest method of deploying Django applications in production environments.</p>
<h3>Cherokee + Apache with mod_wsgi</h3>
<p>This is essentially the same as Nginx + Apache and mod_wsgi except here Cherokee was used as a proxy and for serving static content. Since it&#8217;s the first time I&#8217;m using Cherokee everything was configured via the web based admin interface and all parameters were left to default values.</p>
<h3>Nginx + Cherrypy WSGI server</h3>
<p>Here I used the <a href="http://github.com/lincolnloop/django-cpserver">django-cpserver</a> management command to run the application in the Cherrypy WSGI server. 5 Instances of the WSGI server were running behind Nginx as a load balancer. Nginx was serving the static files.</p>
<h2>Configurations that are left out</h2>
<h3>Apache with mod_python</h3>
<p>This was left out because I couldn&#8217;t get consistent results at 250 concurrent requests and the application would often error out at this concurrency level. The benchmark already took a significant amount of my time and I&#8217;m not experienced with mod_python so I decided not to proceed with locating the problem or publishing any shaky results.</p>
<h3>uWSGI</h3>
<p>I tried to deploy the application on uWSGI with the Cherokee web based wizard. With the default configuration (1 process) the tests ran 4 times slower at high concurrency compared to the other configurations. Bumping up the number of process to 5 still didn&#8217;t yield comparable results. At 25 processes I got comparable results but memory usage skyrocketed. I still suspect I was doing something wrong here, so I didn&#8217;t publish the results.</p>
<h3>lighttpd</h3>
<p>Personally I avoid using lighty for a number of subjective reasons. When I have the time I may update this post with some configurations based on lighty, although I wouldn&#8217;t expect the results to be much different than the ones for the Nginx or Cherokee configurations.</p>
<h2>The results</h2>
<p><a href="http://spreadsheets.google.com/oimg?key=0ApNjbkQcMGV4dGdJOFVicHNGSFJGemFRT1pGMnVQMlE&amp;oid=5&amp;v=1263914004562"><img src="http://spreadsheets.google.com/oimg?key=0ApNjbkQcMGV4dGdJOFVicHNGSFJGemFRT1pGMnVQMlE&amp;oid=5&amp;v=1263914004562" alt="" width="436" height="192" /></a><br />
<a href="http://spreadsheets.google.com/oimg?key=0ApNjbkQcMGV4dGdJOFVicHNGSFJGemFRT1pGMnVQMlE&amp;oid=7&amp;v=1263914042360"><img src="http://spreadsheets.google.com/oimg?key=0ApNjbkQcMGV4dGdJOFVicHNGSFJGemFRT1pGMnVQMlE&amp;oid=7&amp;v=1263914042360" alt="" width="436" height="192" /></a><br />
<a href="http://spreadsheets.google.com/oimg?key=0ApNjbkQcMGV4dGdJOFVicHNGSFJGemFRT1pGMnVQMlE&amp;oid=6&amp;v=1263914066019"><img src="http://spreadsheets.google.com/oimg?key=0ApNjbkQcMGV4dGdJOFVicHNGSFJGemFRT1pGMnVQMlE&amp;oid=6&amp;v=1263914066019" alt="" width="435" height="192" /></a></p>
<h3>Memory usage</h3>
<p>I measured memory usage only at 250 concurrent requests. All the tests ran for 60 seconds, so you can work out where the load on the server happened from the graphs.</p>
<div id="attachment_133" class="wp-caption alignnone" style="width: 310px"><a href="http://basicverbs.com/wp-content/uploads/2010/01/mod_wsgi2.png"><img class="size-medium wp-image-133 " title="Apache with mod_wsgi" src="http://basicverbs.com/wp-content/uploads/2010/01/mod_wsgi2-300x225.png" alt="Apache with mod_wsgi" width="300" height="225" /></a><p class="wp-caption-text">Apache with mod_wsgi</p></div>
<div id="attachment_136" class="wp-caption alignnone" style="width: 310px"><a href="http://basicverbs.com/wp-content/uploads/2010/01/nginxmod_wsgi3.png"><img class="size-medium wp-image-136 " title="Nginx + Apache with mod_wsgi" src="http://basicverbs.com/wp-content/uploads/2010/01/nginxmod_wsgi3-300x225.png" alt="Nginx + Apache with mod_wsgi" width="300" height="225" /></a><p class="wp-caption-text">Nginx + Apache with mod_wsgi</p></div>
<div id="attachment_137" class="wp-caption alignnone" style="width: 310px"><a href="http://basicverbs.com/wp-content/uploads/2010/01/nginxcgi1.png"><img class="size-medium wp-image-137 " title="Nginx + FCGI" src="http://basicverbs.com/wp-content/uploads/2010/01/nginxcgi1-300x225.png" alt="Nginx + fcgi" width="300" height="225" /></a><p class="wp-caption-text">Nginx + FCGI</p></div>
<div id="attachment_138" class="wp-caption alignnone" style="width: 310px"><a href="http://basicverbs.com/wp-content/uploads/2010/01/nginxcp1.png"><img class="size-medium wp-image-138" title="Nginx + Cherrypy" src="http://basicverbs.com/wp-content/uploads/2010/01/nginxcp1-300x225.png" alt="Nginx + Cherrypy" width="300" height="225" /></a><p class="wp-caption-text">Nginx + Cherrypy</p></div>
<div id="attachment_139" class="wp-caption alignnone" style="width: 310px"><a href="http://basicverbs.com/wp-content/uploads/2010/01/cherokeewscgi1.png"><img class="size-medium wp-image-139" title="Cherokee + SCGI" src="http://basicverbs.com/wp-content/uploads/2010/01/cherokeewscgi1-300x225.png" alt="Cherokee + SCGI" width="300" height="225" /></a><p class="wp-caption-text">Cherokee + SCGI</p></div>
<div id="attachment_140" class="wp-caption alignnone" style="width: 310px"><a href="http://basicverbs.com/wp-content/uploads/2010/01/cherokeewsgi1.png"><img class="size-medium wp-image-140" title="Cherokee + Apache with mod_wsgi" src="http://basicverbs.com/wp-content/uploads/2010/01/cherokeewsgi1-300x225.png" alt="Cherokee + Apache with mod_wsgi" width="300" height="225" /></a><p class="wp-caption-text">Cherokee + Apache with mod_wsgi</p></div>
]]></content:encoded>
			<wfw:commentRss>http://basicverbs.com/benchmark-of-django-deployment-techniques/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>DOM Carousel</title>
		<link>http://basicverbs.com/66/</link>
		<comments>http://basicverbs.com/66/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 13:14:24 +0000</pubDate>
		<dc:creator>dejan.noveski</dc:creator>
				<category><![CDATA[Client Side]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Freebies]]></category>

		<guid isPermaLink="false">http://basicverbs.com/?p=66</guid>
		<description><![CDATA[In one project of ours, we needed a simple and light DOM carousel that will fallback on list when javascript is turned off. By the term &#8220;DOM carousel&#8221; i mean a carousel that will show/hide/slide DOM elements, complete container (div, p, h) not just images or special types of content. This domCarousel takes the containers [...]]]></description>
			<content:encoded><![CDATA[<p>In one project of ours, we needed a simple and light DOM carousel that will fallback on list when javascript is turned off. By the term &#8220;DOM carousel&#8221; i mean a carousel that will show/hide/slide DOM elements, complete container (div, p, h) not just images or special types of content. This <strong>domCarousel</strong> takes the containers one by one and slides them one after another.</p>
<p>Works in a simple manner. Just attach it on the parent container of the elements that will slide, fill in the options object (or use the default values) and you are good to go.</p>
<pre style="font-size:12px;">$.fn.domCarousel = function(options){
        // keeping a reference to the carousel object
	var container = this;

        //setting the class of the items that will rotate or default
	var itemClass = (options.itemClass)?(options.itemClass):("dc-item");

        //interval length of transition
	var ti = (options.transitionInterval)?(options.transitionInterval):(10000);

        //label for the start button or default
	var startLabel = (options.startLabel)?(options.startLabel):("Start");

        //label for the stop button or default
	var stopLabel = (options.stopLabel)?(options.stopLabel):("Stop");

        //label for the back button or default
	var backLabel = (options.backLabel)?(options.backLabel):("Back");

        //label for the forward button or default
	var forwardLabel = (options.forwardLabel)?(options.forwardLabel):("forward");

        //display buttons true or false
	var displayButtons = (options.displayButtons)?(options.displayButtons):(true);

       //attach a class to the buttons
	var buttonClass = (options.buttonClass)?(options.buttonClass):('button');

	//initializing and help vars.
	var intervalID = ""; //id of the interval object so we can control it
	var mutex = false; //mutex so the transitions wont overlap
	var min_height = 0; 

        //hide all the elements
	$(container).find("."+itemClass+":gt(0)").hide();
	//make them position relative and add some style to them
        //(you can change this so it suits you better)
	$(container).css("position","relative");
	$(container).css("margin-top","20px");
	$(container).find("."+itemClass).css("margin","0px");

	var currentIndex = 0; //this is the currently active em

       //This is where the magic happens. Using current item reference
 	//and the mutex, we animate blocks one by one. See why mutex
       // is important
	container.changeItem = function(){
		if(!mutex){
			mutex=true;
			$(container).find("."+itemClass+":eq("+currentIndex+")")
                                .hide("slide",{direction: 'left'},300,function(){

			nextToShow = (currentIndex == $(container)
                                       .find("."+itemClass).length-1)
                               ? (0):(currentIndex+1);				

				$(container).find("."+itemClass+":eq("+nextToShow+")")
                                .show("slide",{direction: 'right'},300,function(){
					currentIndex = nextToShow;
					mutex=false;
				});
			});
		}
	}

	// same function from above but for back
	container.changeBack = function(){
		if (!mutex) {
			mutex = true;
			$(container).find("." + itemClass +
                                  ":eq(" + currentIndex + ")").hide("slide", {
				direction: 'right'
			}, 300, function(){
			nextToShow = (currentIndex == 0) ?
                        ($(container).find("." + itemClass).length - 1) : (currentIndex - 1);

			$(container).find("." + itemClass + ":eq(" + nextToShow + ")")
                        .show("slide", {
					direction: 'left'
				}, 300, function(){
					currentIndex = nextToShow;
					mutex = false;
				});
			});
		}
	}

	//Initialize the interval and animate
	container.play = function(){

		if(!intervalID){
			$(container).find("input.dc_button_ss").val(stopLabel);
			$(container).find("input.dc_button_ss").click(function(){
				container.stop();
			});
			intervalID = setInterval(function(){
				container.changeItem();
			},ti);
		}
	}

	//find the interval and remove it
	container.stop = function(){
		if(intervalID){
			$(container).find("input.dc_button_ss").val(startLabel);
			$(container).find("input.dc_button_ss").click(function(){
				container.play();
			});
			clearInterval(intervalID);
			intervalID = null;
		}
	}

	//Should we display buttons or not.
	if(displayButtons){
		$(container).append('&lt;span style="position: absolute; right: 5px; top: -28px;">
               &lt;input class="dc_button_back '+buttonClass+'" type="button" value="'+backLabel+'" /> 
               &lt;input class="dc_button_ss '+buttonClass+'" type="button" value="'+stopLabel+'" /> 
               &lt;input class="dc_button_forward '+buttonClass+'" type="button" value="'+forwardLabel+'" /></span>');

	        //init button click events
		$(container).find("input.dc_button_back").click(function(){
			container.stop();
			container.changeBack();
		});

		$(container).find("input.dc_button_forward").click(function(){
			container.stop();
		        container.changeItem();
		});
	}
        //start the carousel
	container.play();
}</pre>
<p>The plugin is used same as all other jquery plugins : $(selector).domCarousel(options). Options is an object that has these attributes:<br />
<code>itemClass : css class of the transition items,<br />
transitionInterval : time in milliseconds of transition,<br />
startLabel : start button label,<br />
stopLabel : stop button label,<br />
backtLabel : back button label,<br />
forwardLabel : forward button label,<br />
displayButtons : will we display buttons or not,<br />
buttonClass : css class of the buttons</code></p>
<p>To use this plugin, you will need the <a href="http://jquery.com/">jQuery</a> library, the <a href="http://jqueryui.com/">jQuery-UI</a> library and the <a href="http://basicverbs.com/wp-content/uploads/2010/01/dom_carousel.js">plugin itself</a>. Live example of the plugin, you can see <a href="http://oglasuva.me/">here</a> the fourth box from top.</p>
<h3>Enjoy!</h3>
]]></content:encoded>
			<wfw:commentRss>http://basicverbs.com/66/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing django-audit-log</title>
		<link>http://basicverbs.com/announcing_django-audit-log/</link>
		<comments>http://basicverbs.com/announcing_django-audit-log/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 21:39:09 +0000</pubDate>
		<dc:creator>Vasil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Freebies]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Server side]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://basicverbs.com/?p=55</guid>
		<description><![CDATA[For those unfamiliar with the term, a definition from Wikipedia:
Audit trail or audit log is a chronological sequence of audit records, each of which contains evidence directly pertaining to and resulting from the execution of a business process or system function.
How does this come into play in a web application?
Lets examine the case of a [...]]]></description>
			<content:encoded><![CDATA[<p>For those unfamiliar with the term, a definition from Wikipedia:</p>
<blockquote><p>Audit trail or audit log is a chronological sequence of audit records, each of which contains evidence directly pertaining to and resulting from the execution of a business process or system function.</p></blockquote>
<p>How does this come into play in a web application?</p>
<p>Lets examine the case of a simple application for keeping track of a store&#8217;s inventory:</p>
<p>In the most simple case there would be a single database table in which we&#8217;d keep details on different products in the store. In the case where multiple users would have access to INSERT/UPDATE/DELETE records in the products table, one user could insert a product with name, description and price, later another user could change the description or even delete the whole record. If at some later point we wanted to restore the original record or see who made the latest changes we&#8217;d have to ask all the users to remember what they did. An audit log for this table would provide the means of keeping track of all the changes that were made to it and who made the changes in a chronological order.</p>
<p><a href="https://code.google.com/p/django-audit-log/" target="_blank">django-audit-log</a> provides such facilities for your Django models.</p>
<p>It&#8217;s designed to be very simple to add chronological tracking to any django model with the least amount of changes to your existing code. Adding an audit log for your models is done in three steps:</p>
<ol>
<li>Add a middleware class in settings.py.</li>
<li>Add a manager property to every model you need to keep track of.</li>
<li>Execute the syncdb management command.</li>
</ol>
<p>To keep track of all the changes a separate table will be created for each tracked model. This table would have the same column structure as the original model plus columns for tracking the time, type of action (create, change or delete) and user who did the action. Queries on the audit log for a model are made via the manager added in step 2.</p>
<p>The project is still under heavy development and there&#8217;s no official release yet. Keep that in mind if you consider using it in production. The code can be downloaded from the mercurial repository:</p>
<blockquote><p><tt id="checkoutcmd">hg clone https://django-audit-log.googlecode.com/hg/ django-audit-log</tt></p></blockquote>
<p>Basic usage instructions can be found on <a href="https://code.google.com/p/django-audit-log/wiki/UsageInstructions">this wiki page</a>.  <strong>Feature requests are always welcome.</strong></p>
<p>Details on how it works and extension points will be coming up on the project wiki page soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://basicverbs.com/announcing_django-audit-log/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>/objects &#8211; Ton of Dev FREEBIES</title>
		<link>http://basicverbs.com/objects_freebies/</link>
		<comments>http://basicverbs.com/objects_freebies/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 19:49:09 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[Client Side]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Freebies]]></category>
		<category><![CDATA[dropdown]]></category>
		<category><![CDATA[footer]]></category>
		<category><![CDATA[objects]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://basicverbs.com/?p=53</guid>
		<description><![CDATA[Ton of random snippets of code I frequently whip out during design. Particularly the fixed footer. The single-level dropdown is pretty custom/sleek too.
Anyway, they are all pretty bare-bones, so you should be able to figure out how to implement them from source.
http://basicverbs.com/objects
Feel free to check back as I add something new almost every week.
]]></description>
			<content:encoded><![CDATA[<p>Ton of random snippets of code I frequently whip out during design. Particularly the fixed footer. The single-level dropdown is pretty custom/sleek too.</p>
<p>Anyway, they are all pretty bare-bones, so you should be able to figure out how to implement them from source.</p>
<p><a href="http://basicverbs.com/objects">http://basicverbs.com/objects</a></p>
<p>Feel free to check back as I add something new almost every week.</p>
]]></content:encoded>
			<wfw:commentRss>http://basicverbs.com/objects_freebies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Livescape &#8211; a jQuery live landscape</title>
		<link>http://basicverbs.com/livescape-a-jquery-live-landscape/</link>
		<comments>http://basicverbs.com/livescape-a-jquery-live-landscape/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 19:56:22 +0000</pubDate>
		<dc:creator>dejan.noveski</dc:creator>
				<category><![CDATA[Client Side]]></category>
		<category><![CDATA[Freebies]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://basicverbs.com/?p=27</guid>
		<description><![CDATA[Few days ago i was bored to death and decided to do something to pass time &#8211; write a jquery plugin. Didn&#8217;t have any idea what to do, so Cory said &#8220;Lets do something that will give life and movement to the designs without using flash&#8221;. I started on LiveScape &#8211; the live landscape.
The idea [...]]]></description>
			<content:encoded><![CDATA[<p>Few days ago i was bored to death and decided to do something to pass time &#8211; write a jquery plugin. Didn&#8217;t have any idea what to do, so Cory said &#8220;Lets do something that will give life and movement to the designs without using flash&#8221;. I started on <strong>LiveScape</strong> &#8211; the live landscape.</p>
<p>The idea behind this plugin is to have somekind of landscape container that will contain objects moving inside of it e.g. sky with the clouds moving. The plugin is built simple, has simple implementation, it is very easy to use, yet very flexible. You only need the landscape image, the object images and one container.</p>
<p>Lets get technical: You have a div #livescape. This is how the plugin in used.</p>
<pre>$('#livescape').livescape({

    height : '360px',  //height of the landscape (can be omitted)
    width : '1000px', //width of the landscape (can be omitted)
    background_image : 'img/bg.jpg', //background image (can be omitted)

    // Next define the objects that are moving:
    objects : [
        {
            //the positions are relative to the landscape
            //if omitted, random assumed - same for duration
            start_x : "1700px", //x of start position
            start_y : "190px", //y of start position
            end_x : "-4000px", //x of end position
            end_y : "190px", //y of end position
            image : 'img/car.png', //image of the object (url)
            duration : 18000, // duration of the animation
            loop : true, // the animation loops
            href : "ThisisBatCountry.png", //the object is anchor
            pause: 1000, //pause in between loops in ms
            fade : true //the objects fade in on start and out on end
        },
        //another object
        {
            start_x : "-250px",
            start_y : "5px",
            end_x : "1250px",
            end_y : "5px",
            duration : 49000,
            image : 'img/cloud1.png',
            loop : true,
            fade : true
        }
    ]
})</pre>
<p>This is setup is for 2 objects. The implementation is pretty intuitive and i think you will get a hold of it very fast. </p>
<p>
 <b>The plugin is still beta. Needs refactoring. Time of development was around 30 min.</b> Nevertheless you will have access to an early access version.
</p>
<p><b>Anyway <a href="http://basicverbs.com/wp-content/uploads/2009/12/jqLiveScape.js">[DOWNLOAD]</a> the plugin and enjoy the &#8220;Fear and Loathing in Las Vegas&#8221; example:</b></p>
<p><script type="text/javascript" src="http://basicverbs.com/wp-content/uploads/2009/12/livescape.js"/></p>
<div id="livescape" style="overflow:hidden">
</div>
]]></content:encoded>
			<wfw:commentRss>http://basicverbs.com/livescape-a-jquery-live-landscape/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>960.gs Frontpage and Archon Template FREEBIE</title>
		<link>http://basicverbs.com/960-gs-frontpage-and-archon-template-freebie/</link>
		<comments>http://basicverbs.com/960-gs-frontpage-and-archon-template-freebie/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 03:12:51 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[Freebies]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[960]]></category>
		<category><![CDATA[960.ls]]></category>
		<category><![CDATA[archon]]></category>
		<category><![CDATA[template]]></category>

		<guid isPermaLink="false">http://basicverbs.com/?p=15</guid>
		<description><![CDATA[Woohoo!
Our *cough Dejan&#8217;s cough* hard work paid off and 960.ls made it to 960 Grid System&#8217;s frontpage.
Figured we should share our enthusiasm and officially thank Nathan Smith for his wonderful CSS framework and for being so down-to-earth. Very interested in working to develop better systems to work with 960.
As a bonus (and since it&#8217;s Christmas [...]]]></description>
			<content:encoded><![CDATA[<p>Woohoo!<br />
Our <em>*cough Dejan&#8217;s cough*</em> hard work paid off and <a href="http://headless-studios.com/960.ls/">960.ls</a> made it to <a href="http://960.gs/">960 Grid System&#8217;s</a> frontpage.</p>
<p>Figured we should share our enthusiasm and officially thank <a href="http://sonspring.com/">Nathan Smith</a> for his wonderful CSS framework and for being so down-to-earth. Very interested in working to develop better systems to work with 960.</p>
<p>As a bonus (and since it&#8217;s Christmas time), here is a J.K.D. (taking the best of everything) template I made that is based off 960.gs that includes:</p>
<ul>
<li><a href="http://jquery.com">jQuery</a></li>
<li><a href="http://meyerweb.com/eric/tools/css/reset/">Meyer&#8217;s Reset</a></li>
<li><a href="http://www.blueprintcss.org/">BluePrint </a>forms.css and alerts</li>
<li><a href="http://particletree.com/features/rediscovering-the-button-element/">Particle Tree</a> buttons</li>
<li>Boagworld&#8217;s <a href="http://boagworld.com/technology/fixed-footers-without-javascript">Fixed Footer</a></li>
<li>FamFamFam&#8217;s <a href="http://www.famfamfam.com/lab/icons/silk/">Silk Icons</a> (to compliment the buttons)</li>
<li>Quick &#038; Custom garbage type.css (which you can and should modify anyway)</li>
</ul>
<p><strong><a href="http://basicverbs.com/objects/IAMSPEED/">DEMO ARCHON TEMPLATE</a></strong><br />
<strong><a href="http://www.basicverbs.com/archon.zip">DOWNLOAD ARCHON TEMPLATE</a></strong></p>
<p><em>&#8220;Why <strong>Archon</strong>?&#8221;</em><br />
I played a lot of StarCraft and figure that template is close to templar and when you smush a bunch of templars together, you get an archon.</p>
<p><em>How do I use this thing?!</em><br />
Use <a href="http://headless-studios.com/960.ls/">960.ls</a> to make your grid.css, overwrite existing one. Same with everything inside #wrapper in your example.htm. Tada!<br />
Now go to layout.css, change your backgrounds for your header, container, and footer (scrolling and content areas for all &#8211; shawing).</p>
<p>First person to use this and <a href="mailto:cory@basicverbs.com?subject=Archon Help!">ask a question</a> gets a free screencast that will replace this sentence and encourage me to clean up the template.</p>
<p><strong>Template Bonuses:</strong><br />
This design works particularly well if you are 980px layout with 20px gutters. I&#8217;ve included:</p>
<ul>
<li>Sketch Files</li>
<li>Workable Column .PSD that you should copy/paste for re-usability (12, 8, 6, 4, 3, 2)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://basicverbs.com/960-gs-frontpage-and-archon-template-freebie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design Trends: December 2009</title>
		<link>http://basicverbs.com/design-trends-december-2009/</link>
		<comments>http://basicverbs.com/design-trends-december-2009/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 02:08:07 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[Trends]]></category>
		<category><![CDATA[cu3er]]></category>
		<category><![CDATA[peel]]></category>
		<category><![CDATA[shadows]]></category>

		<guid isPermaLink="false">http://basicverbs.com/?p=11</guid>
		<description><![CDATA[Recently I&#8217;ve noticed two trends starting up. Curled drop-shadows and cu3er.
One is the heavy use of these drop-shadows that expand at the sides of blocks. This gives the object a feel like it&#8217;s raised up off the screen more than it is. I actually like this when it&#8217;s done in moderation.
Examples:


Check out the nav bar [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve noticed two trends starting up. Curled drop-shadows and <a href="http://www.progressivered.com/cu3er/">cu3er</a>.</p>
<p>One is the heavy use of these drop-shadows that expand at the sides of blocks. This gives the object a feel like it&#8217;s raised up off the screen more than it is. I actually like this when it&#8217;s done in moderation.</p>
<p>Examples:</p>
<ol>
<li>
Check out the nav bar on <a href="http://www.atlantis.com/default.aspx">Atlantis.com</a>. Not extremely fond of the fact the shadow pulls up on both sides (almost as if the nav bar is curling up towards you), but it&#8217;s subtle enough not to look stupid.
</li>
<li>
<a href="http://webdesignledger.com/">Web Design Ledger</a> makes obvious use of this effect on their post &#8220;thumbnails&#8221;. This effect is pretty exaggerated but it&#8217;s not done on both sides and therefore seems more likely to occur in real life (as opposed to someone holding a hair dryer to the middle of a gooey sticker).
</li>
</ol>
<p>Anyway, I totally approve of this new trend and plan on using it in the near future.</p>
<p>The 2nd trend I&#8217;ve noticed is <a href="http://www.progressivered.com/cu3er/">cu3er</a>. It&#8217;s been particularly popular since <a href="http://www.kriesi.at/">kriesi</a> used it on his most recent template over at <a href="http://themeforest.net/item/display-3-in-1-business-portfolio-html-theme/70576">ThemeForest</a>.</p>
<p>I don&#8217;t have a problem with cu3er. I actually think the creator, Stefan Kovac, did a great job and it&#8217;s wonderful for him to offer it for free. The problem I have is that it is quickly becoming the centerpiece of shitty themes and people are actually buying them up because of the super-cool Flash slideshow. This is a problem because I don&#8217;t want the web to travel in that direction.</p>
<p>I (and I&#8217;m sure Stefan) would really appreciate cu3er being used responsibly by being used a little more subtle. For instance, instead of it being huge and going through every hip transition known to man, why not make it small and just use 1 transition for each site? That would encourage re-usability of the slideshow as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://basicverbs.com/design-trends-december-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello World</title>
		<link>http://basicverbs.com/hello-world/</link>
		<comments>http://basicverbs.com/hello-world/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 22:09:21 +0000</pubDate>
		<dc:creator>Cory</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://basicverbs.com/?p=1</guid>
		<description><![CDATA[Welcome to Basic Verbs.
Here we&#8217;ll be exploring various ways to accomplish certain stuff. Vague huh?!
To put a finer point on it: we (1 American designer and 2 Macedonian developers) are going to use this blog as a code/thought repository for everyone&#8217;s (including ours) benefit!
Hopefully we&#8217;ll bust open a can of knowledge on your candy asses. [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to Basic Verbs.<br />
Here we&#8217;ll be exploring various ways to accomplish certain stuff. Vague huh?!</p>
<p>To put a finer point on it: we (1 American designer and 2 Macedonian developers) are going to use this blog as a code/thought repository for everyone&#8217;s (including ours) benefit!</p>
<p>Hopefully we&#8217;ll bust open a can of knowledge on your candy asses. <strong>EnJoY!!!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://basicverbs.com/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
