<?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>Cube Websites Blog</title>
	<atom:link href="http://www.cubewebsites.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cubewebsites.com/blog</link>
	<description>web design and development blog</description>
	<lastBuildDate>Mon, 27 Aug 2012 11:29:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>FREEBIE: Concrete5 Testimonials Package</title>
		<link>http://www.cubewebsites.com/blog/development/php/freebie-concrete5-testimonials-package/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=freebie-concrete5-testimonials-package</link>
		<comments>http://www.cubewebsites.com/blog/development/php/freebie-concrete5-testimonials-package/#comments</comments>
		<pubDate>Mon, 27 Aug 2012 11:29:49 +0000</pubDate>
		<dc:creator>Cube Websites</dc:creator>
				<category><![CDATA[Concrete5]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[concrete5]]></category>
		<category><![CDATA[freebie]]></category>
		<category><![CDATA[package]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.cubewebsites.com/blog/?p=416</guid>
		<description><![CDATA[Hi folks, I&#8217;m back with another freebie for you.  This time it&#8217;s a Concrete5 package that lets you create, manage and display testimonials on your website. The following fields are available to you: Title Author Department Quote URL Display Order &#8230; <a href="http://www.cubewebsites.com/blog/development/php/freebie-concrete5-testimonials-package/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-417" title="icon" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/08/icon.png" alt="" width="97" height="97" /></p>
<p style="text-align: left;">Hi folks, I&#8217;m back with another freebie for you.  This time it&#8217;s a Concrete5 package that lets you create, manage and display testimonials on your website.</p>
<p>The following fields are available to you:</p>
<ul>
<li>Title</li>
<li>Author</li>
<li>Department</li>
<li>Quote</li>
<li>URL</li>
<li>Display Order</li>
</ul>
<p>When adding a block you can choose specific testimonials to display, or display all. Additionally, you can sort by display order, or in a random order.</p>
<p><strong>Requirements</strong></p>
<p>All you need is a Concrete5 website running on 5.5.0 or greater.</p>
<p><strong>Usage</strong></p>
<p>You can find full documentation on the <a href="https://github.com/cubewebsites/c5-testimonials" target="_blank">Github page</a></p>
<p><strong>License</strong></p>
<p>It&#8217;s totally free and open-source so you can do whatever you like with it!  It&#8217;s quite easy to adapt into a management system for any other kind of object like people, books or even managing your own movie database.</p>
<p><strong>Screenshots</strong></p>
<p><img class="size-full wp-image-418 alignnone" title="Screen Shot 2012-08-27 at 12.11.24" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/08/Screen-Shot-2012-08-27-at-12.11.24.png" alt="" width="566" height="216" /></p>
<p><img class="size-full wp-image-419 alignnone" title="Screen Shot 2012-08-27 at 12.11.50" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/08/Screen-Shot-2012-08-27-at-12.11.50.png" alt="" width="443" height="367" /></p>
<p><img class="alignnone size-full wp-image-420" title="Screen Shot 2012-08-27 at 12.12.16" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/08/Screen-Shot-2012-08-27-at-12.12.16.png" alt="" width="952" height="344" /></p>
<p><a href="http://www.cubewebsites.com/blog/wp-content/uploads/2012/08/Screen-Shot-2012-08-27-at-12.12.30.png"><img class="alignnone size-medium wp-image-421" title="Screen Shot 2012-08-27 at 12.12.30" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/08/Screen-Shot-2012-08-27-at-12.12.30-300x171.png" alt="" width="300" height="171" /></a></p>
<p style="text-align: left;"><strong>Download</strong></p>
<p style="text-align: left;">I&#8217;ve submitted the package to the Marketplace and will update this post will a link once it&#8217;s live.  In the meantime you can download from Github.</p>
<p style="text-align: left;"><a href="https://github.com/cubewebsites/c5-testimonials" target="_blank">Download here</a></p>
<p style="text-align: left;"><strong>Support</strong></p>
<p style="text-align: left;">If you have any issues or feature requests please get in touch via the comments, <a href="http://twitter.com/cubewebsites" target="_blank">Twitter</a>, or email</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cubewebsites.com/blog/development/php/freebie-concrete5-testimonials-package/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FREEBIE: HotUKDeals (HUKD) Ruby Gem</title>
		<link>http://www.cubewebsites.com/blog/development/ruby-on-rails/freebie-hotukdeals-hukd-ruby-gem/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=freebie-hotukdeals-hukd-ruby-gem</link>
		<comments>http://www.cubewebsites.com/blog/development/ruby-on-rails/freebie-hotukdeals-hukd-ruby-gem/#comments</comments>
		<pubDate>Thu, 05 Jul 2012 20:59:14 +0000</pubDate>
		<dc:creator>Cube Websites</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[gem]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://www.cubewebsites.com/blog/?p=412</guid>
		<description><![CDATA[I&#8217;ve just finished work on a Ruby Gem which provides an interface for the HotUKDeals (HUKD) REST API. This gem provides all the following search methods: hottest deals newest deals discussed deals deals by username deals by tag name deals &#8230; <a href="http://www.cubewebsites.com/blog/development/ruby-on-rails/freebie-hotukdeals-hukd-ruby-gem/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve just finished work on a Ruby Gem which provides an interface for the HotUKDeals (HUKD) REST API.</p>
<p>This gem provides all the following search methods:</p>
<ul>
<li>hottest deals</li>
<li>newest deals</li>
<li>discussed deals</li>
<li>deals by username</li>
<li>deals by tag name</li>
<li>deals by merchant name</li>
<li>online deals only</li>
<li>offline deals only</li>
<li>keyword search</li>
</ul>
<div>Each search method also allows you to filter results by category, forum, limit the number of results.</div>
<div></div>
<div>It&#8217;s dead easy to install and run:</div>
<pre>    require 'hukd'
    hukd	=	Hukd.new("YOUR_API_KEY_HERE")
    deals	=	hukd.hottest('deals')
    deals.each |deal| do
    	puts(deal.title)
    end</pre>
<div>Full documentation can be found on the Github page.</div>
<p><a href="https://github.com/cubewebsites/hukd">Source code on Github<br />
</a><a href="https://rubygems.org/gems/hukd">Gem on rubygems.org</a><a href="https://github.com/cubewebsites/hukd"> </a></p>
<p>If you have any issues or requests then feel free to get in touch <img src='http://www.cubewebsites.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.cubewebsites.com/blog/development/ruby-on-rails/freebie-hotukdeals-hukd-ruby-gem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FREEBIE: Magento Featured Products Widget Version 2</title>
		<link>http://www.cubewebsites.com/blog/magento/extensions/freebie-magento-featured-products-widget-version-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=freebie-magento-featured-products-widget-version-2</link>
		<comments>http://www.cubewebsites.com/blog/magento/extensions/freebie-magento-featured-products-widget-version-2/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 19:05:17 +0000</pubDate>
		<dc:creator>Cube Websites</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[featured products]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.cubewebsites.com/blog/?p=402</guid>
		<description><![CDATA[Over a year ago, I released a free Magento Featured Products Widget which groups the featured products by category.  Since releasing it I&#8217;ve had a lot of traffic, and a lot of pleasant feedback from users.  Now I&#8217;ve finally been &#8230; <a href="http://www.cubewebsites.com/blog/magento/extensions/freebie-magento-featured-products-widget-version-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.cubewebsites.com/blog/wp-content/uploads/2012/02/icon.jpg"><img class="aligncenter size-full wp-image-403" title="icon" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/02/icon.jpg" alt="" width="500" height="500" /></a></p>
<p>Over a year ago, I released a<a title="FREEBIE: Magento Featured Products Widget" href="http://www.cubewebsites.com/blog/magento/freebie-magento-featured-products-widget/"> free Magento Featured Products Widget</a> which groups the featured products by category.  Since releasing it I&#8217;ve had a lot of traffic, and a lot of pleasant feedback from users.  Now I&#8217;ve finally been able to get round to upgrading the widget to be even better with a lot of rewritten code, testing and few new features too.</p>
<p><strong>New Features</strong></p>
<ul>
<li>Creates featured attribute on installation</li>
<li>Displays Review Summary</li>
<li>Displays Add to Cart button</li>
<li>Shows path to categories when selecting categories in admin (easier to distinguish between different stores with same category names)</li>
<li>Caching</li>
<li>Code rewrite (better documented and better Magento conventions)</li>
<li>Compatibility checked on 1.4.0.0 to 1.6.2.0</li>
<li>More flexible styling (font colours are now theme defaults)</li>
<li>Included Minimum price for Bundled Products</li>
<li>Products only fetched from current store</li>
<li>Mixed template is now a lot cleaner</li>
<li></li>
</ul>
<p><strong>Screenshots</strong></p>
<div id="attachment_404" class="wp-caption aligncenter" style="width: 713px"><a href="http://www.cubewebsites.com/blog/wp-content/uploads/2012/02/featuredproducts3.png"><img class="size-full wp-image-404" title="featuredproducts3" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/02/featuredproducts3.png" alt="" width="703" height="519" /></a><p class="wp-caption-text">Grouped by category</p></div>
<div id="attachment_405" class="wp-caption aligncenter" style="width: 932px"><a href="http://www.cubewebsites.com/blog/wp-content/uploads/2012/02/featuredproducts2.png"><img class="size-full wp-image-405" title="featuredproducts2" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/02/featuredproducts2.png" alt="" width="922" height="647" /></a><p class="wp-caption-text">Configuration Options</p></div>
<div id="attachment_406" class="wp-caption aligncenter" style="width: 712px"><a href="http://www.cubewebsites.com/blog/wp-content/uploads/2012/02/featuredproducts1.png"><img class="size-full wp-image-406" title="featuredproducts1" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/02/featuredproducts1.png" alt="" width="702" height="365" /></a><p class="wp-caption-text">Mixed Display</p></div>
<p><strong>Installation and Documentation</strong></p>
<h2>Installation</h2>
<p>Copy the <code>app</code> and <code>skin</code> directories into your Magento installation</p>
<h2>Usage</h2>
<h3>CMS Pages</h3>
<ol>
<li>Login to your Magento admin</li>
<li>Go to CMS &gt; Pages</li>
<li>Select the page you want to use</li>
<li>Click the <code>Content</code> tab</li>
<li>In the WYSIWYG Editor, click the <em>Insert Widget</em> button (for me it&#8217;s top row, second from the left)</li>
<li>As <em>Widget Type</em> select <code>Cube Websites - Category Featured Products</code></li>
<li>Configure your Widget using the available options</li>
</ol>
<p><strong>Frontend Template</strong><br />
<code>Categorised</code> &#8211; Displays the products grouped by the category they belong in<br />
<code>Mixed</code> &#8211; Displays all the products in a single block with no grouping</p>
<p><strong>Categories</strong> (only applies if <em>Categorised</em> Frontend Template is selected)<br />
The categories to select products from</p>
<p><strong>Number of Products</strong><br />
If <code>Categorised</code> &#8211; the number of products from each category<br />
If <code>Mixed</code> &#8211; the total number of products</p>
<p><strong>Products Per Row</strong><br />
How many products will be displayed on each row in the frontend</p>
<p><strong>Products to Display</strong><br />
<code>Featured</code> &#8211; Displays featured products only<br />
<code>All</code> &#8211; Displays all available products</p>
<p><strong>Featured Attribute Code</strong> (optional)<br />
By default this is <strong>cube_category_featured</strong> but if you&#8217;ve created your own featured attribute code then you can use that instead.</p>
<h3>Within your template</h3>
<ol>
<li>Open your favourite text editor</li>
<li>Within find the Layout XML you want to add the block to within the app/design/frontend directory</li>
<li>In your <em>.xml </em>file, add the following in the relevant position
<pre><code> &lt;block type="categoryfeatured/list" name="featured_products" as="featuredProducts" template="categoryfeatured/block.phtml"&gt;
 &lt;action method="setData"&gt;&lt;name&gt;categories&lt;/name&gt;&lt;value&gt;1,2,3,4&lt;/value&gt;&lt;/action&gt;
 &lt;action method="setData"&gt;&lt;name&gt;num_products&lt;/name&gt;&lt;value&gt;4&lt;/value&gt;&lt;/action&gt;
 &lt;action method="setData"&gt;&lt;name&gt;products_per_row&lt;/name&gt;&lt;value&gt;4&lt;/value&gt;&lt;/action&gt;
 &lt;action method="setData"&gt;&lt;name&gt;product_type&lt;/name&gt;&lt;value&gt;featured&lt;/value&gt;&lt;/action&gt;
 &lt;action method="setData"&gt;&lt;name&gt;featured_code&lt;/name&gt;&lt;value&gt;cube_category_featured&lt;/value&gt;&lt;/action&gt;
&lt;/block&gt;</code></pre>
</li>
</ol>
<p><strong>template</strong><br />
<code>categoryfeatured/block.phtml</code> &#8211; Displays the products grouped by the category they belong in<br />
<code>categoryfeatured/mixed.phtml</code> &#8211; Displays all the products in a single block with no grouping</p>
<p><strong>categories</strong> (only applies if <em>categoryfeatured/block.phtml</em> template is selected)<br />
The categories to select products from (comma separated)</p>
<p><strong>num_products</strong><br />
If <code>categoryfeatured/block.phtml</code> &#8211; the number of products from each category<br />
If <code>categoryfeatured/mixed.phtml</code> &#8211; the total number of products</p>
<p><strong>products_per_row</strong><br />
How many products will be displayed on each row in the frontend</p>
<p><strong>product_type</strong><br />
<code>featured</code> &#8211; Displays featured products only<br />
<code>all</code> &#8211; Displays all available products</p>
<p><strong>featured_code</strong> (optional)<br />
By default this is <strong>cube_category_featured</strong> but if you&#8217;ve created your own featured attribute code then you can use that instead.</p>
<p>If you need to output the block in a certain location of your template, then make sure you include the following in your .phtml file <code>&lt;?php echo $this-&gt;getChildHtml('featuredProducts') ?&gt;</code></p>
<p><strong>Downloads</strong></p>
<p>I&#8217;m currently awaiting approval from the Magento Connect site, but I&#8217;ve also made this project available free on GitHub.</p>
<p>Download from Magento Connect (awaiting approval)<a href="https://github.com/cubewebsites/Cube-Category-Featured-Products/tags"><br />
Download latest version</a><br />
<a href="https://github.com/cubewebsites/Cube-Category-Featured-Products/zipball/v2.0.1">Download 2.0.1</a></p>
<p><a href="https://github.com/cubewebsites/Cube-Category-Featured-Products">Fork on GitHub</a></p>
<p><strong>Feedback and Support</strong></p>
<p>If you have any questions or issues please feel free to post in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cubewebsites.com/blog/magento/extensions/freebie-magento-featured-products-widget-version-2/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>TUTORIAL: Loading Rating Summary On A Magento Product Collection</title>
		<link>http://www.cubewebsites.com/blog/magento/tutorial-loading-rating-summary-on-a-magento-product-collection/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tutorial-loading-rating-summary-on-a-magento-product-collection</link>
		<comments>http://www.cubewebsites.com/blog/magento/tutorial-loading-rating-summary-on-a-magento-product-collection/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 20:48:35 +0000</pubDate>
		<dc:creator>Cube Websites</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[featured products]]></category>
		<category><![CDATA[reviews]]></category>

		<guid isPermaLink="false">http://www.cubewebsites.com/blog/?p=397</guid>
		<description><![CDATA[I&#8217;ve spent the past few days creating a more up to date version of my Category Featured Product module for Magento. NOTE: If you just want the solution, skip to the end of this post where I&#8217;ve written a quick &#8230; <a href="http://www.cubewebsites.com/blog/magento/tutorial-loading-rating-summary-on-a-magento-product-collection/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-400" title="productreviews" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/02/productreviews.jpg" alt="" width="697" height="220" /></p>
<p>I&#8217;ve spent the past few days creating a more up to date version of my <a title="FREEBIE: Magento Featured Products Widget" href="http://www.cubewebsites.com/blog/magento/freebie-magento-featured-products-widget/">Category Featured Product module for Magento</a>.</p>
<p><strong>NOTE:</strong> If you just want the solution, skip to the end of this post where I&#8217;ve written a quick summary</p>
<p>One of the new features that it has is the ability to display the product review summary, just like you&#8217;d get on a category page.</p>
<p>At first I thought it would be quite simple, simply load the product attributes and then call the usual code in the template as follows:</p>
<pre>&lt;?php if($_product-&gt;getRatingSummary()): ?&gt;
 &lt;?php echo $this-&gt;getReviewsSummaryHtml($_product) ?&gt;
 &lt;?php endif; ?&gt;</pre>
<p>Unfortunately this piece of code returns nothing and no review summary is displayed.  After a quick var_dump of <code>$_product-&gt;getRatingSummary()</code> I noticed that the value being returned was <code>null</code></p>
<p>Owing to this, I set about trying to find a solution by looking at how the Product List Block works and seeing if I could find anything related in there. Unfortunately there were no clues in there, although I did pick up some other nifty little tricks (will share another day).</p>
<p>After 2 hours searching, I finally managed to find how it&#8217;s done&#8230;<br />
When the Product List block is about to be rendered, the <code>_beforeToHtml()</code> is run, this in turn dispatches an event:</p>
<pre>Mage::dispatchEvent('catalog_block_product_list_collection', array(
 'collection' =&gt; $this-&gt;_getProductCollection()
 ));</pre>
<p>A quick search for <code>catalog_block_product_list_collection</code> in my IDE led me to:<br />
<code>app/code/core/Mage/Review/etc/config.xml</code><br />
I knew I was about to find the solution as soon as I saw &#8220;Review&#8221; in the path!</p>
<p>I opened up the file, and found this:</p>
<pre>&lt;catalog_block_product_list_collection&gt;
    &lt;observers&gt;
        &lt;review&gt;
            &lt;type&gt;model&lt;/type&gt;
            &lt;class&gt;review/observer&lt;/class&gt;
           &lt;method&gt;catalogBlockProductCollectionBeforeToHtml&lt;/method&gt;
       &lt;/review&gt;
    &lt;/observers&gt;
&lt;/catalog_block_product_list_collection&gt;</pre>
<p>I quickly opened up <code>app/code/core/Mage/Review/Model/Observer</code> within which I found the <code>catalogBlockProductCollectionBeforeToHtml</code> method (as mentioned in the XML above).</p>
<p>This method contained the following code:</p>
<pre>$productCollection = $observer-&gt;getEvent()-&gt;getCollection();
if ($productCollection instanceof Varien_Data_Collection) {
    $productCollection-&gt;load();
    Mage::getModel('review/review')-&gt;appendSummary($productCollection);
}</pre>
<p>And obviously this was the solution <img src='http://www.cubewebsites.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> <br />
I went back to my code and added in the following lines:</p>
<pre>$collection-&gt;load();
Mage::getModel('review/review')-&gt;appendSummary($collection);
return $collection;</pre>
<p>After refreshing the page, I was seeing all the product reviews and it was a big win all round. It&#8217;s been quite a journey finding the solution, but as is usually the case with such mighty investigations, the sense of elation upon discovery can only be compared to that experienced when finding money under the sofa cushions.</p>
<p><strong>Summary</strong></p>
<p>For those who don&#8217;t want to read the entire post (I&#8217;m not one to judge and call lazy) here&#8217;s a quick summary of the solution:</p>
<p>In your template put (use whatever variable name you assign to your product):</p>
<pre>&lt;?php if($_product-&gt;getRatingSummary()): ?&gt;
 &lt;?php echo $this-&gt;getReviewsSummaryHtml($_product) ?&gt;
 &lt;?php endif; ?&gt;</pre>
<p>After filtering your collection, just about it&#8217;s going to be passed to the view run the following:</p>
<pre>$collection-&gt;load();
Mage::getModel('review/review')-&gt;appendSummary($collection);
return $collection;</pre>
<p>Hope this helps!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cubewebsites.com/blog/magento/tutorial-loading-rating-summary-on-a-magento-product-collection/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP To Ruby On Rails: Making The Switch &#8211; Part I</title>
		<link>http://www.cubewebsites.com/blog/technology/php-to-ruby-on-rails-making-the-switch-part-i/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php-to-ruby-on-rails-making-the-switch-part-i</link>
		<comments>http://www.cubewebsites.com/blog/technology/php-to-ruby-on-rails-making-the-switch-part-i/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 20:08:15 +0000</pubDate>
		<dc:creator>Cube Websites</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ruby on rails]]></category>

		<guid isPermaLink="false">http://www.cubewebsites.com/blog/?p=389</guid>
		<description><![CDATA[Introduction This year I’ve decided that I want to learn at least one new language and have decided that I’ll be learning Ruby.  I’ve read great things about Ruby and Rails, all about how it’s made development fun again for &#8230; <a href="http://www.cubewebsites.com/blog/technology/php-to-ruby-on-rails-making-the-switch-part-i/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>Introduction</strong></p>
<p>This year I’ve decided that I want to learn at least one new language and have decided that I’ll be learning Ruby.  I’ve read great things about Ruby and Rails, all about how it’s made development fun again for devs, lets you actually get on with creating responsive web applications and is generally just so awesome.  I’ll be writing up everything I discover, whether it’s finding things which are much easier than their PHP alternative, or getting frustrated by the fact that I can’t figure out how to do something I’d normally consider trivial in PHP.</p>
<p>Part I is based on me setting up Rails on my local Windows machine and then spending a couple of hours working my way through the <a href="http://guides.rubyonrails.org/getting_started.html" target="_blank">Getting Started</a> tutorial.</p>
<p><strong>Ruby VS Ruby On Rails</strong></p>
<p>One of the first things I asked myself was, “am I learning Ruby or Ruby on Rails?” and went off in search for an answer, which was “both”.</p>
<p>Ruby is the language.  Rails is a framework written in Ruby which makes creating web applications really easy.<br />
So me learning Rails is actually me learning how create Rails applications in Ruby.  Got it?</p>
<p><strong>Setup</strong></p>
<p>The setup of Rails itself wasn’t too bad.  I just downloaded the Windows installer from <a href="http://rubyinstaller.org/" target="_blank">Ruby Installer</a> and the DevKit from the same site, which allows me to compile and use gems natively.  That was it for Rails installation, simple enough.</p>
<p><strong>MySQL Setup</strong></p>
<p>To create my first application I simply fired up Netbeans, which is my IDE of choice, and created a new Ruby on Rails Application.  This was pretty cool, except for the fact that I couldn’t get MySQL working.  I have MySQL running locally as part of WAMP, but installing the mysql gem for Ruby wasn’t enough.  Whenever I tried running the app it’d complain and quit.</p>
<p>I started looking up solutions, and spent a lot of time searching for people with similar issues, but no matter what I tried I couldn’t get it working.  I spent at least an hour looking for a fix and got really frustrated, it was quite a dark time, however I kept looking and finally found <a href="http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/" target="_blank">this solution</a> on how to install MySQL on Windows 7 64-bit with Ruby.  The tutorial was simple to follow, and as soon as I’d finished my app started working, good times.</p>
<p><strong>Hello Ruby</strong></p>
<p>Now that I had Rails setup and installed on my machine, it was time to start learning how to build things.  I went to the <a href="http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/" target="_blank">getting started tutorial</a> and worked my way through it.  As I worked through it I spotted a LOT of things which seemed to make me love Ruby, and lot of things which went well and truly over my head.</p>
<p><strong>Things I Loved</strong></p>
<ol>
<li><span style="color: #404040;"><strong>Sprockets</strong> – In your application directory, Rails has assets directories for JavaScript, Stylesheets and Images.  Whenever you use the CLI to create a new controller, it creates new .scss and .coffee files with the name of your controller.  This means that you can separate out all the style and scripts for each component of your site really easily.  Rails then compiles your <a href="http://sass-lang.com/" target="_blank">Sass</a> and <a href="http://coffeescript.org/" target="_blank">CoffeeScript</a> files when your run your application into a single CSS and a single JavaScript file.</span></li>
<li><span style="color: #404040;"><strong>Response types</strong> – it was so stupidly easy to return content in a specific format based on the URL extension.  For example:<br />
myurl.com/posts – would be the expected HTML output all my blog posts<br />
myurl.com/posts.json – would route to the same controller and action, but return all the blog posts as a JSON string<br />
myurl.com/posts.xml – all the posts but now as valid XML</span></li>
<li><span style="color: #404040;"><strong>Rails IS an MVC framework</strong> – Rails is built to be an MVC framework.  The moment you generate your first app (easy as: `rails new myappname`!) it creates a base application which follows the MVC pattern and easily allows you to extend it into your own.</span></li>
<li><span style="color: #404040;"><strong>Syntax that “just makes sense”</strong>– here’s a sample of a Model in Ruby:</span>
<pre>class Post &lt; ActiveRecord::Base
  validates :name,  :presence =&gt; true
  validates :title, :presence =&gt; true,
                    :length =&gt; { :minimum =&gt; 5 }

  has_many :comments
end</pre>
<div><span style="color: #404040;">It amazes at me at how much you can understand just from looking at the class declaration.</span></div>
</li>
<li><span style="color: #404040;"><strong>It’s So Simple</strong> – whilst you could argue that I now have the benefit of a few years PHP experience, I still remember that when I first started with PHP, which was my first web language (I&#8217;d done Java and C++ before), I spent a whole summer just going over the basics and working my way up to creating a blog as part of working through a book.  In fact, the blog was pretty poor an lacked a lot of key features like security and it was done in procedural programming.  It wasn’t until about a year into PHP that I started working with frameworks and OOP properly.  In comparison, it took me just a few hours to go from “I want to learn Ruby”, to having a working blog application using MVC conventions.</span></li>
</ol>
<p><strong>It’s Over My Head</strong></p>
<p>When I said there were a few things that went well over my head, well…I lied, it was basically just the syntax.  Whilst in some cases the syntax made a lot of sense, in other cases I was getting really confused e.g. when they were generating forms in the views and I had no idea what the hell was going on.  At the time I decided the best thing to do was to carry on the guide and then go through everything and look up the bits I didn&#8217;t get.<br />
This is actually as far as I’ve got to date, but see the next section on how I intend to learn the syntax.</p>
<p><strong>Where To Next?</strong></p>
<p>Whilst I’ve completed the basic blog tutorial, the next step is to learn how to make a full web application.  I’ve looked around and found that the book Agile Web Development With Rails is THE book to learn Rails with according to a lot of people.  I managed to find an early edition at work today and have brought it home to start looking through for the rest of this evening.<br />
The book has an appendix which contains a quick-start guide to the Ruby language and syntax so I’m going to start with that to understand the things from the blog tutorial which I didn’t quite get, and then make my way through the book which should also clarify some of the things for me.</p>
<p><strong>Verdict.</strong></p>
<p>Simply put, I think Rails is ACE.  So far it’s been great.  Whilst there’s some bits I don’t quite get yet, well what can you expect, it’s been about 3 hours so far!  Overall it seems to be a very powerful framework which not only enforces but also simplifies the best web programming conventions.  Lovin’ it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cubewebsites.com/blog/technology/php-to-ruby-on-rails-making-the-switch-part-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FREEBIE: jQuery Scroll Tracker</title>
		<link>http://www.cubewebsites.com/blog/development/javascript/freebie-jquery-scroll-tracker/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=freebie-jquery-scroll-tracker</link>
		<comments>http://www.cubewebsites.com/blog/development/javascript/freebie-jquery-scroll-tracker/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 12:38:01 +0000</pubDate>
		<dc:creator>Cube Websites</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[freebie]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[scroll]]></category>
		<category><![CDATA[tracker]]></category>

		<guid isPermaLink="false">http://www.cubewebsites.com/blog/?p=383</guid>
		<description><![CDATA[I recently had an idea for a webpage, with a background which changes based on how far down the page the viewer has scrolled.  The idea was to have the Sun rise from the left side of the page, and &#8230; <a href="http://www.cubewebsites.com/blog/development/javascript/freebie-jquery-scroll-tracker/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I recently had an idea for a webpage, with a background which changes based on how far down the page the viewer has scrolled.  The idea was to have the Sun rise from the left side of the page, and then arc up and finally set on right.</p>
<p><a href="http://cubewebsites.github.com/Scroll-Tracker/" target="_blank"><img style="display: inline;" title="image" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/01/image4.png" alt="image" width="805" height="522" /></a></p>
<p><a href="http://cubewebsites.github.com/Scroll-Tracker/" target="_blank">View Demo</a></p>
<p>As went about creating a page which does this, I ended up creating my <a href="http://cubewebsites.github.com/Scroll-Tracker/" target="_blank">jQuery Scroll Tracker</a>.  It’s a very simple script, which allows you to track the position, and take certain actions when a certain part of the page is reached.</p>
<p>If you’ve been on the demo page, you’ll have seen that as you start scrolling the instructions disappear.  Here’s the code and explanation of how that effect is achieved:</p>
<pre class="brush: jscript; title: ; notranslate">
//when the document is loaded
    $(document).ready(function(){
        scrollTracker.initialize();
        /* the 'instructions' parameter is just a label we're giving to the tracker so we can delete it later
        /  it's just a label and can be called whatever you want
        /  the second parameter is a callback function, which the scrollTracker will fire when the page is scrolled
        /  the function can accept two parameters:
        /   - scrollpercent - the percentage of the page which has been scrolled
        /   - scollpos - the number of pixels of the page which has been scrolled
        */
        scrollTracker.addObject('instructions',function(scrollpercent,scrollpos){
            //if 10% of the page is scrolled
            if(scrollpercent &gt; 10) {
                //fade the instructions out
                $('#instructions').fadeOut();
                //remove the tracker so that it only gets called once
                scrollTracker.deleteObject('instructions');
            }
        });
    });
</pre>
<p>As you can see, most of the code is comments.  The scrollTracker listens for when the page is scrolled, and when it is it will call the function you provide it with.</p>
<p>There&#8217;s a lot more you can do with it, and you can find full up-to-date documentation on the <a href="http://cubewebsites.github.com/Scroll-Tracker/">GitHub project page</a></p>
<p>If you decide to use it, please let me know so I can link to it as an example.<br />
If you have suggestions or requests then please post in the comments and I’ll see what I can do!</p>
<p><a href="http://cubewebsites.github.com/Scroll-Tracker/" target="_blank">Demo</a><br />
<a href="https://github.com/cubewebsites/Scroll-Tracker" target="_blank">GitHub Project</a></p>
<p>Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cubewebsites.com/blog/development/javascript/freebie-jquery-scroll-tracker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How To Use Impress.Js</title>
		<link>http://www.cubewebsites.com/blog/guides/how-to-use-impress-js/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-use-impress-js</link>
		<comments>http://www.cubewebsites.com/blog/guides/how-to-use-impress-js/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 22:37:13 +0000</pubDate>
		<dc:creator>Cube Websites</dc:creator>
				<category><![CDATA[Guides]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[impress]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.cubewebsites.com/blog/?p=374</guid>
		<description><![CDATA[Yesterday, I wrote about Impress.js, an awesome JavaScript library for creating online presentations. Since posting online, I’ve had several people ask how exactly to use it, as there’s no set documentation on the actual project page.  This guide will help &#8230; <a href="http://www.cubewebsites.com/blog/guides/how-to-use-impress-js/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Yesterday, I <a title="Impress.js – A JavaScript Presentation Library" href="http://www.cubewebsites.com/blog/development/javascript/impress-js-a-javascript-presentation-library/">wrote about Impress.js</a>, an awesome JavaScript library for creating online presentations. Since posting online, I’ve had several people ask how exactly to use it, as there’s no set documentation on the actual project page.  This guide will help you get started and allow you to create a simple slideshow, but after completing it please bear in mind that there’s so much more that can be done with it.  The only limit is your creativity!</p>
<p>This tutorial is available for you to <a href="https://github.com/cubewebsites/Impress.js-Tutorial" target="_blank">view and download on GitHub</a></p>
<p><strong>Requirements</strong></p>
<p>To see this tutorial in action, please use Google Chrome or Safari (or Firefox 10 or IE10).  Impress.js is not currently compatible with earlier versions of Firefox or Internet Explorer.</p>
<p><strong>Setup</strong></p>
<p>The first thing you want to do is create a new webpage.  Mine’s index.html and within it setup the basic head and body elements.</p>
<pre>&lt;!doctype html&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;Impress Tutorial&lt;/title&gt;
        &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
    &lt;/head&gt;
    &lt;body&gt;

    &lt;/body&gt;
&lt;/html&gt;</pre>
<p>Add the impress.js file before the end of the body element.  This imports the Impress library into your project</p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode">&lt;script type=<span class="str">"text/javascript"</span> src=<span class="str">"impress.js"</span>&gt;&lt;/script&gt;</pre>
</div>
<p>Next we’ll create a wrapper which will contain the slideshow.  This is simply a &lt;div&gt; element with an id of ‘impress’</p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode"><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">id</span><span class="kwrd">="impress"</span><span class="kwrd">&gt;</span>

<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
<p><strong>Creating Slides</strong></p>
<p>Now you’ll see how easy it is to create a new slide in the presentation.  Each slide is a &lt;div&gt; element (within the wrapper) with a class name of ‘step’</p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode"><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="step"</span><span class="kwrd">&gt;</span>
    My first slide
<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
</div>
</div>
<p>Whilst that creates a simple slide, things are a lot more fun you start adding data properties to your slides.  Data attributes signify properties of your slide for when it’s NOT the active slide.  The following data properties are available to you:</p>
<ul>
<li><span style="color: #404040;">data-x = the x co-ordinate of the slide</span></li>
<li><span style="color: #404040;">data-y = the y co-ordinate of the slide</span></li>
<li><span style="color: #404040;">data-z = the z co-ordinate of the slide (how far/close it appears to the user)</span></li>
<li><span style="color: #404040;">data-scale = scales your slide by a factor of this value.  A data-scale of 5 would be 5 times the original size of your slide</span></li>
<li><span style="color: #404040;">data-rotate = rotates your slide by the specified number of degrees</span></li>
<li><span style="color: #404040;">data-rotate-x = For 3D slides.  This is the number of degrees it should be rotated about the x-axis.  (Tilt forward/lean back)</span></li>
<li><span style="color: #404040;">data-rotate-y = For 3D slides. This is the number of degrees it should be rotated about the y-axis (swing in from the left/right)</span></li>
<li><span style="color: #404040;">data-rotate-z = For 3D slides. This is the number of degrees it should be rotated about the z-axis</span></li>
</ul>
<p><strong>Data Attributes In Action</strong></p>
<p>The following slide configuration will guide you through each of the data attributes in action.</p>
<p>Let’s start with an initial slide.  This slide has it’s x and y data attributes set to 0, so will appear in the center of the page.</p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode"><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="step"</span> <span class="attr">data-x</span><span class="kwrd">="0"</span> <span class="attr">data-y</span><span class="kwrd">="0"</span><span class="kwrd">&gt;</span>
    This is my first slide
<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
</div>
<p>The second slide will have an x position of 500, but the y position of 0.  This means that it’s going to have to come in 500 pixels across the x-axis (slide left) when it becomes active.</p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode"><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="step"</span> <span class="attr">data-x</span><span class="kwrd">="500"</span> <span class="attr">data-y</span><span class="kwrd">="0"</span><span class="kwrd">&gt;</span>
    This is slide 2
<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
</div>
<p>Easy huh?  The next slide will start with the same x-position as slide 2, but a y position of –400.  This will slide in from the top 400 pixels.</p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode"><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="step"</span> <span class="attr">data-x</span><span class="kwrd">="500"</span> <span class="attr">data-y</span><span class="kwrd">="-400"</span><span class="kwrd">&gt;</span>
    This is slide 3
<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
</div>
<p>Slide 4 uses the scale value to show how a slide can appear to zoom in/out.  It has a scale value of 0.5, meaning that it’s half the size it should be.  When it becomes active the presentation will adjust the scale of ALL the slides by the factor required to make the scale of the active website 1.  What this means in this example is that for this slide to display normally (scale value 1) it will need to be scaled up by a factor of 2 (0.5*2 = 1).  All the other slides will also be scaled up by a factor of two, and become twice the size.</p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode"><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="step"</span> <span class="attr">data-x</span><span class="kwrd">="500"</span> <span class="attr">data-y</span><span class="kwrd">="-800"</span> <span class="attr">data-scale</span><span class="kwrd">="0.5"</span><span class="kwrd">&gt;</span>
    This is slide 4
<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
</div>
<p>The rotate attributes allows you to rotate a slide into view.  Slide 5 is set to rotate by 90 degrees.</p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode"><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="step"</span> <span class="attr">data-x</span><span class="kwrd">="0"</span> <span class="attr">data-y</span><span class="kwrd">="-800"</span> <span class="attr">data-rotate</span><span class="kwrd">="90"</span><span class="kwrd">&gt;</span>
    This is slide 5 and it rotates in.
<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
</div>
<p>Finally, for a 3D transition, you can specify rotate attributes for each dimensional axis (x,y,z).</p>
<p>The x axis is the horizontal axis.  This means that you can make things tilt forwards (positive value) or backwards (negative value).<br />
The y axis is the vertical axis so you can have things swing in from the left (negative value) or right (positive value).<br />
The z axis is the depth axis (the one coming out at you) so rotating things on this would be rotating things up (negative value) and down (positive value).</p>
<p><strong>Combinations</strong></p>
<p>Now that you know all about the data attributes, which is really all you need to animate your slideshow, you can use your imagination to combine these in weird and wonderful ways to create your own style of slideshow.</p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode"><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="step"</span> <span class="attr">data-x</span><span class="kwrd">="-2600"</span> <span class="attr">data-y</span><span class="kwrd">="-800"</span> <span class="attr">data-rotate-x</span><span class="kwrd">="30"</span> <span class="attr">data-rotate-y</span><span class="kwrd">="-60"</span> <span class="attr">data-rotate-z</span><span class="kwrd">="90"</span> <span class="attr">data-scale</span><span class="kwrd">="4"</span><span class="kwrd">&gt;</span>
    This is slide 7 and it has a 3D transition AND a scale.
<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
</div>
<p><strong>Unsupported Browsers</strong></p>
<p>Impress automatically detects whether or not a browser supports it or not, and if it doesn’t then automatically adds a class name called ‘impress-not-supported’ to the wrapper ‘&lt;div&gt;’.  Using some CSS we can show a message to people on browsers which aren’t supported by Impress.</p>
<p>At the start of your &lt;div id=”impress”&gt; add the following:</p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode"><span class="kwrd">&lt;</span><span class="html">div</span> <span class="attr">class</span><span class="kwrd">="no-support-message"</span><span class="kwrd">&gt;</span>
    Your browser doesn't support impress.js.  Try Chrome or Safari.
<span class="kwrd">&lt;/</span><span class="html">div</span><span class="kwrd">&gt;</span></pre>
</div>
<p>Then, create a stylesheet or add this to your existing stylesheet:</p>
<div id="codeSnippetWrapper" class="csharpcode-wrapper">
<pre id="codeSnippet" class="csharpcode"><span class="cls">.no-support-message</span> { <span class="kwrd">display</span>:<span class="str">none;</span> }
<span class="cls">.impress-not-supported</span> <span class="cls">.no-support-message</span> { <span class="kwrd">display</span>:<span class="str">block;</span> }</pre>
</div>
<p>This hides the message by default, but then displays it to browser if the impress-not-supported class is present.</p>
<p><strong>Have fun!</strong></p>
<p>This tutorial covers the fundamentals of using Impress.js to create your very own online presentation.  The entire example is available on Github for you to download and play with.</p>
<p><a href="https://github.com/cubewebsites/Impress.js-Tutorial" target="_blank">View on GitHub</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cubewebsites.com/blog/guides/how-to-use-impress-js/feed/</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>Gitview &#8211; JS Widget To List GitHub Repositories</title>
		<link>http://www.cubewebsites.com/blog/development/javascript/gitviewjs-widget-to-list-github-repositories/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=gitviewjs-widget-to-list-github-repositories</link>
		<comments>http://www.cubewebsites.com/blog/development/javascript/gitviewjs-widget-to-list-github-repositories/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 19:07:33 +0000</pubDate>
		<dc:creator>Cube Websites</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://www.cubewebsites.com/blog/?p=356</guid>
		<description><![CDATA[If you’re an active user of GitHub and work on any open-source projects then may want to show off your projects and activity on your own website.  This is where Gitview comes in. Gitview allows you to display all your &#8230; <a href="http://www.cubewebsites.com/blog/development/javascript/gitviewjs-widget-to-list-github-repositories/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img style="display: block; float: none; margin-left: auto; margin-right: auto;" title="image" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/01/image2.png" alt="image" width="516" height="192" /></p>
<p>If you’re an active user of GitHub and work on any open-source projects then may want to show off your projects and activity on your own website.  This is where <a href="http://gitview.logicalcognition.com/" target="_blank">Gitview</a> comes in.</p>
<p><img style="display: inline;" title="image" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/01/image3.png" alt="image" width="470" height="407" /></p>
<p>Gitview allows you to display all your GitHub repos, and gives the option to display a detailed version including a graph of your project activity, or a simple compact version if you prefer.  Not only that, but all the information displayed is live.</p>
<p>The full feature list is:</p>
<ul>
<li><span style="color: #404040;">Asynchronous loading of all date</span></li>
<li><span style="color: #404040;">All data is 100% live</span></li>
<li><span style="color: #404040;">The Activity Graph uses the Canvas element</span></li>
<li><span style="color: #404040;">You can toggle the regular or small version</span></li>
<li><span style="color: #404040;">No need for additional styles</span></li>
<li><span style="color: #404040;">Works with all JS frameworks (jQuery, Prototype, Mootools, etc)</span></li>
<li><span style="color: #404040;"><a href="http://sam.zoy.org/wtfpl/" target="_blank">WTFPL</a> license</span></li>
</ul>
<p><span id="more-356"></span></p>
<p>Using it is very simple:</p>
<p>1.  Include the script on your page</p>
<pre>&lt;script src="http://logicalcognition.com/Projects/Gitview/Gitview.js"&gt;&lt;/script&gt;</pre>
<p>2.  Create a GitView anywhere on your page from a script tag or a JavaScript file:</p>
<pre>var view = new Gitview({
  user    : 'cubewebsites',      // any github username
  domNode : document.body,  // domNode to attach to
  compact : false           // if set to true, will display smaller version of widget (no participation graph)
});</pre>

<div id="gitview"></div>
<script type="text/javascript" src="http://logicalcognition.com/Projects/Gitview/Gitview.js"></script>
<script type="text/javascript">
var view = new Gitview({ 
  user    : 'bouchon',      // any github username
  domNode : document.getElementById('gitview'),  // domNode to attach to
  compact : false           // if set to true, will display smaller version of widget (no participation graph)
});
</script>

<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cubewebsites.com/blog/development/javascript/gitviewjs-widget-to-list-github-repositories/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Impress.js &#8211; A JavaScript Presentation Library</title>
		<link>http://www.cubewebsites.com/blog/development/javascript/impress-js-a-javascript-presentation-library/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=impress-js-a-javascript-presentation-library</link>
		<comments>http://www.cubewebsites.com/blog/development/javascript/impress-js-a-javascript-presentation-library/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 21:28:42 +0000</pubDate>
		<dc:creator>Cube Websites</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[impress]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[prezi]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.cubewebsites.com/blog/?p=350</guid>
		<description><![CDATA[If you’ve ever come across Prezi you may have been slightly wow-ed by it’s amazing little transition effects as you browse through each little presentation. Now, there’s a free and open-source JavaScript library called Impress.js (the author says no rhyme &#8230; <a href="http://www.cubewebsites.com/blog/development/javascript/impress-js-a-javascript-presentation-library/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>If you’ve ever come across <a href="http://prezi.com/" rel="nofollow" target="_blank">Prezi</a> you may have been slightly wow-ed by it’s amazing little transition effects as you browse through each little presentation.</p>
<p><img style="display: inline;" title="image" src="http://www.cubewebsites.com/blog/wp-content/uploads/2012/01/image1.png" alt="image" width="700" height="501" /></p>
<p>Now, there’s a free and open-source JavaScript library called Impress.js (the author says no rhyme intended!) which will blow your mind.  It’s a JavaScript adaptation of Prezi (which uses Flash), which uses CSS3 transforms and transitions to create really cool effects similar to those on Prezi, and on top of that it’s also uses CSS3 3D animations which takes things one-step further and lets you have 3D effects in your presentation too.</p>
<p>The downside is that at the moment it’s only guaranteed to work on the latest versions of Chrome and Safari.  Non-webkit browsers do have a fall-back mode, which is a simple display of the slides but without any of the animation.  It does work with the alpha versions of Firefox 10 and IE10 builds, so once those are out the browser support will be much better.</p>
<p>Whilst the browser requirements may be a deterrent for most folks, it’s amazing to see what can be achieved using CSS3 and maybe highlights the shape of things to come.</p>
<p>It’s certainly worth bookmarking and having a play with.</p>
<p><a href="http://bartaz.github.com/impress.js/" rel="nofollow" target="_blank">Click here for a live demo</a> (use Chrome or Safari)<br />
<a href="https://github.com/bartaz/impress.js" target="_blank">Source code on GitHub</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cubewebsites.com/blog/development/javascript/impress-js-a-javascript-presentation-library/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>jQuery UI Bootstrap &#8211; A Bootstrap-themed kickstart for jQuery UI widgets</title>
		<link>http://www.cubewebsites.com/blog/development/javascript/jquery-ui-bootstrap-a-bootstrap-themed-kickstart-for-jquery-ui-widgets/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jquery-ui-bootstrap-a-bootstrap-themed-kickstart-for-jquery-ui-widgets</link>
		<comments>http://www.cubewebsites.com/blog/development/javascript/jquery-ui-bootstrap-a-bootstrap-themed-kickstart-for-jquery-ui-widgets/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 11:39:51 +0000</pubDate>
		<dc:creator>Cube Websites</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[bootstrap]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[widgets]]></category>

		<guid isPermaLink="false">http://www.cubewebsites.com/blog/?p=333</guid>
		<description><![CDATA[jQuery UI Bootstrap jQuery UI Bootstrap is an open-source effort by @addyosmani to introduce the Bootstrap styling into the standard jQuery UI widgets.&#160; It covers many of the widgets available on the jQuery UI website including: Accordion Tabs Buttons and &#8230; <a href="http://www.cubewebsites.com/blog/development/javascript/jquery-ui-bootstrap-a-bootstrap-themed-kickstart-for-jquery-ui-widgets/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>jQuery UI Bootstrap</strong></p>
<p><a href="http://addyosmani.github.com/jquery-ui-bootstrap/" rel="nofollow" target="_blank">jQuery UI Bootstrap</a> is an open-source effort by <a href="http://twitter.com/addyosmani" target="_blank">@addyosmani</a> to introduce the <a href="http://twitter.github.com/bootstrap/" rel="nofollow" target="_blank">Bootstrap</a> styling into the standard <a href="http://jqueryui.com/" rel="nofollow" target="_blank">jQuery UI widgets</a>.&nbsp; It covers many of the widgets available on the jQuery UI website including:</p>
<ul>
<li><font color="#404040">Accordion</font>
<li><font color="#404040">Tabs</font>
<li><font color="#404040">Buttons and Button Sets</font>
<li><font color="#404040">Horizontal slider</font>
<li><font color="#404040">Progress Bar</font>
<li><font color="#404040">Dialogs</font>
<li><font color="#404040">Icons</font>
<li><font color="#404040">Date Picker</font></li>
</ul>
<p><img style="display: block; float: none; margin-left: auto; margin-right: auto" title="bootstrapui" alt="bootstrapui" src="http://www.cubewebsites.com/blog/wp-content/uploads/2011/12/bootstrapui3.jpg" width="700" height="666"></p>
<p>Whilst it’s still a work in process, what’s available already is fantastic and I’d love to see where this project goes.&nbsp; It’s the next logical step for the Bootstrap framework; we have the standard web elements and layouts, now it’s about making those pages interactive using one of the most popular widget libraries available, jQuery UI, and making that look like the rest of the site…well it just makes good sense.</p>
<p><strong>Bootstrap</strong></p>
<p>Here’s a quick introduction to Bootstrap for those that haven’t yet heard of it, or aren’t sure what it does.</p>
<p><a href="http://twitter.github.com/bootstrap/" rel="nofollow">Bootstrap</a> is a prototyping framework introduced by Twitter in mid-2011.&nbsp; It’s aimed at making more consistent browsing experience for users as they browse various sites and applications on the web.&nbsp; It’s free, open-source, and uses LessCSS making it a breeze to modify to suit your own needs.</p>
<p>Since it’s launch, it has been very well received by the developer community, and I’ve noticed it being adopted by many popular websites and open-source software including:</p>
<ul>
<li><font color="#404040"><a href="http://www.concrete5.org/" rel="nofollow">Concrete5</a></font>
<li><font color="#404040"><a href="http://www.codecademy.com" rel="nofollow">CodeAcademy</a></font>
<li><font color="#404040"><a href="http://demo.whmcs.com/" rel="nofollow">WHMCS</a></font></li>
</ul>
<p>I’ve even used it on the Cube Websites website for the form elements and as a grid system.</p>
<p><strong>Get Started</strong></p>
<ul>
<li><a href="http://addyosmani.github.com/jquery-ui-bootstrap/" rel="nofollow" target="_blank">jQuery UI Bootstrap</a>
<li><a href="http://github.com/addyosmani/jquery-ui-bootstrap/" rel="nofollow" target="_blank">jQuery UI Bootstrap on GitHub</a>
<li><a href="http://twitter.github.com/bootstrap/#" rel="nofollow" target="_blank">Bootstrap</a></li>
</ul>
<p><font color="#737373">jQuery UI Bootstrap seems like a great idea, and has a lot of potential for making Bootstrap even better.&nbsp; I’ll definitely be trying it on my next project involving UI widgets.&nbsp; Whilst it looks fantastic already, I’d love to see where it goes from here.&nbsp; One of the things I’d like to see is the stylesheets done in Less so that the widgets can be customised to look exactly how the web designer wants.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cubewebsites.com/blog/development/javascript/jquery-ui-bootstrap-a-bootstrap-themed-kickstart-for-jquery-ui-widgets/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
