<?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>Geek stuff | Spiffy Stores Blog</title>
	<atom:link href="https://www.spiffystores.com.au/blog/category/geek-stuff/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.spiffystores.com.au/blog</link>
	<description>Checkout - The Spiffy Stores Blog</description>
	<lastBuildDate>Wed, 09 Feb 2022 22:41:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
<site xmlns="com-wordpress:feed-additions:1">241205771</site>	<item>
		<title>Sass support upgraded for Spiffy Stores Themes</title>
		<link>https://www.spiffystores.com.au/blog/2022/02/09/sass-support-upgraded-for-spiffy-stores-themes/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Tue, 08 Feb 2022 23:55:32 +0000</pubDate>
				<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Show All]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[sass]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=3269</guid>

					<description><![CDATA[<p>This is a quick &#8220;heads-up&#8221; for all our Spiffy Stores web designers and developers out there who are customizing and building fantastic themes for their customers. As you already know, Spiffy Stores has always supported the use of Sass (Syntactically &#8230; <a href="https://www.spiffystores.com.au/blog/2022/02/09/sass-support-upgraded-for-spiffy-stores-themes/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2022/02/09/sass-support-upgraded-for-spiffy-stores-themes/">Sass support upgraded for Spiffy Stores Themes</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Sass support upgraded for Spiffy Stores Themes' data-link='https://www.spiffystores.com.au/blog/2022/02/09/sass-support-upgraded-for-spiffy-stores-themes/' data-app-id-name='category_above_content'></div>
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="368" data-attachment-id="3275" data-permalink="https://www.spiffystores.com.au/blog/2022/02/09/sass-support-upgraded-for-spiffy-stores-themes/spiffy-stores-loves-sass/" data-orig-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2022/02/spiffy-stores-loves-sass.png" data-orig-size="1811,651" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="spiffy-stores-loves-sass" data-image-description="" data-image-caption="" data-medium-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2022/02/spiffy-stores-loves-sass-560x201.png" data-large-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2022/02/spiffy-stores-loves-sass-1024x368.png" src="https://www.spiffystores.com.au/blog/wp-content/uploads/2022/02/spiffy-stores-loves-sass-1024x368.png" alt="" class="wp-image-3275" srcset="https://www.spiffystores.com.au/blog/wp-content/uploads/2022/02/spiffy-stores-loves-sass-1024x368.png 1024w, https://www.spiffystores.com.au/blog/wp-content/uploads/2022/02/spiffy-stores-loves-sass-560x201.png 560w, https://www.spiffystores.com.au/blog/wp-content/uploads/2022/02/spiffy-stores-loves-sass-150x54.png 150w, https://www.spiffystores.com.au/blog/wp-content/uploads/2022/02/spiffy-stores-loves-sass-768x276.png 768w, https://www.spiffystores.com.au/blog/wp-content/uploads/2022/02/spiffy-stores-loves-sass-1536x552.png 1536w, https://www.spiffystores.com.au/blog/wp-content/uploads/2022/02/spiffy-stores-loves-sass-500x180.png 500w, https://www.spiffystores.com.au/blog/wp-content/uploads/2022/02/spiffy-stores-loves-sass.png 1811w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>This is a quick &#8220;heads-up&#8221; for all our Spiffy Stores web designers and developers out there who are customizing and building fantastic themes for their customers.</p>



<p>As you already know, Spiffy Stores has always supported the use of Sass (Syntactically Awesome Style Sheets) to ease the development of stylesheets in your themes. It&#8217;s a great productivity tool and makes the whole job of building and managing your CSS styles a whole lot easier. In fact, at Spiffy Stores, we&#8217;ve been using Sass almost from day one, well over ten years ago.</p>



<p>Since it&#8217;s such a great productivity tool, we were a bit concerned to learn that our current implementation was being deprecated in favour of a newly developed version called Dart Sass, and that this version would be the basis of all future development going forward.</p>



<p>We&#8217;re happy to announce that we&#8217;ve just built a bridge to the new Dart Sass that can be used by all existing themes and any new themes without any change, ensuring our long-term commitment to the Sass language and environment. </p>



<p>We&#8217;re aware that another ecommerce platform has decided that supporting Sass is too difficult, and has chosen to withdraw support for Sass from their theme platform, requiring instead that all stylesheets be coded using native CSS. Booooo! As web developers ourselves, we&#8217;d be pretty unhappy about something like this, so if you know anyone who has been affected by this change, then please let them know that Spiffy Stores is fully behind Sass and it&#8217;s continued importance in the web development stack.</p>



<p>If you have any questions about the use of Sass, or developing themes for Spiffy Stores, please let us know at <a href="mailto:support@spiffystores.co">sup</a><a href="mailto:support@spiffystores.com.au">port@spiffystores.com.au</a>.</p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Sass support upgraded for Spiffy Stores Themes' data-link='https://www.spiffystores.com.au/blog/2022/02/09/sass-support-upgraded-for-spiffy-stores-themes/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Sass support upgraded for Spiffy Stores Themes' data-link='https://www.spiffystores.com.au/blog/2022/02/09/sass-support-upgraded-for-spiffy-stores-themes/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2022/02/09/sass-support-upgraded-for-spiffy-stores-themes/">Sass support upgraded for Spiffy Stores Themes</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3269</post-id>	</item>
		<item>
		<title>Adding jQuery to Webpacker 6 under Rails 6</title>
		<link>https://www.spiffystores.com.au/blog/2021/05/11/adding-jquery-to-webpacker-6-under-rails-6/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Tue, 11 May 2021 04:14:10 +0000</pubDate>
				<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[webpack]]></category>
		<category><![CDATA[webpacker]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=3163</guid>

					<description><![CDATA[<p>Tips for migrating to Webpacker 6 using Rails 6.1 and Webpack 5. <a href="https://www.spiffystores.com.au/blog/2021/05/11/adding-jquery-to-webpacker-6-under-rails-6/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2021/05/11/adding-jquery-to-webpacker-6-under-rails-6/">Adding jQuery to Webpacker 6 under Rails 6</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Adding jQuery to Webpacker 6 under Rails 6' data-link='https://www.spiffystores.com.au/blog/2021/05/11/adding-jquery-to-webpacker-6-under-rails-6/' data-summary='Tips for migrating to Webpacker 6 using Rails 6.1 and Webpack 5.' data-app-id-name='category_above_content'></div>
<p>From time to time we post some notes about technical issues that we&#8217;ve encountered during our development work on Spiffy Stores. There are a lot of moving parts to manage, and sometimes we come across some tips or techniques that can help others to build their projects.</p>



<p>In this case, we&#8217;ve been looking at how to configure Webpacker 6 (currently Beta 7) under Rails 6.1, which acts as a wrapper to the latest version of Webpack 5. Now, as anyone who&#8217;s used Webpack since it was introduced as an option in Rails 5 will attest to, it&#8217;s not an easy package to get working properly.</p>



<p>The new versions of Webpacker and Webpack bring around some changes to the way things are configured, and unfortunately, some of the documentation is lacking, or indeed, wrong.</p>



<p>For our environment, we need jQuery as a starter. The trick with Webpack is to get the code loaded and assigned to the global variables, $ and jQuery. The trick with jQuery is to realize that the node modules version provides both a distributed module and also the source code which can be used to build the module with Webpack. If you just </p>



<pre class="wp-block-code"><code lang="javascript" class="language-javascript">require("jquery")</code></pre>



<p>then you&#8217;ll get the pre-built module. It turns out that it&#8217;s better to build it from source instead.</p>



<p>If you&#8217;ve followed the migration documentation, you should have a custom.js under your webpack directory.</p>



<pre class="wp-block-code"><code lang="javascript" class="language-javascript">module.exports = {
   resolve: {
     alias: {
       jquery: 'jquery/src/jquery'
     }
   }
 }</code></pre>



<p>Requiring jquery now, pulls in the source files instead, and this will build jQuery with the appropriate global references.</p>



<p>Another important &#8220;gotcha&#8221; with Webpacker 6 is that when you include the javascript_pack_tag in your layout, you MUST include it only once.</p>



<pre class="wp-block-code"><code lang="ruby" class="language-ruby">&lt;%= javascript_pack_tag('application', 'common', 'customer', data: { turbolinks_track: :reload }) %></code></pre>



<p>Webpack builds a number of different file chunks for each entry point, and this means that the javascript_pack_tag will generate a number of &lt;script> tags, one for each chunk. If you have multiple entry point files, then you must include them all on a single javascript_pack_tag and not create a separate tag for each entry point.</p>



<p>Unfortunately, coming from a Sprockets background, most Rails programmers will be used to creating multiple javascript_include_tags, but this is not the case for Webpacker.</p>



<p>If you happen to use multiple javascript_pack_tags, you&#8217;ll likely find that scripts may be loaded multiple times. In many cases, this may not be obvious, but if you see errors from @rails/ujs, then this is probably because it is being loaded multiple times by Webpack.</p>



<p></p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Adding jQuery to Webpacker 6 under Rails 6' data-link='https://www.spiffystores.com.au/blog/2021/05/11/adding-jquery-to-webpacker-6-under-rails-6/' data-summary='Tips for migrating to Webpacker 6 using Rails 6.1 and Webpack 5.' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Adding jQuery to Webpacker 6 under Rails 6' data-link='https://www.spiffystores.com.au/blog/2021/05/11/adding-jquery-to-webpacker-6-under-rails-6/' data-summary='Tips for migrating to Webpacker 6 using Rails 6.1 and Webpack 5.' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2021/05/11/adding-jquery-to-webpacker-6-under-rails-6/">Adding jQuery to Webpacker 6 under Rails 6</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3163</post-id>	</item>
		<item>
		<title>Australian Data Retention Laws &#8211; Are you protected?</title>
		<link>https://www.spiffystores.com.au/blog/2015/10/13/australian-data-retention-laws-are-you-protected/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Tue, 13 Oct 2015 04:34:44 +0000</pubDate>
				<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Show All]]></category>
		<category><![CDATA[data retention]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[security]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=2736</guid>

					<description><![CDATA[<p>Australia&#8217;s new data retention laws start today, and this means that ISPs are obliged to collect and keep records about your digital activities for 2 years, and to make those records available to various government agencies on demand without the &#8230; <a href="https://www.spiffystores.com.au/blog/2015/10/13/australian-data-retention-laws-are-you-protected/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2015/10/13/australian-data-retention-laws-are-you-protected/">Australian Data Retention Laws – Are you protected?</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Australian Data Retention Laws - Are you protected?' data-link='https://www.spiffystores.com.au/blog/2015/10/13/australian-data-retention-laws-are-you-protected/' data-app-id-name='category_above_content'></div><p><img decoding="async" data-attachment-id="2740" data-permalink="https://www.spiffystores.com.au/blog/2015/10/13/australian-data-retention-laws-are-you-protected/email-privacy/" data-orig-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2015/10/email-privacy.jpg" data-orig-size="682,700" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="email-privacy" data-image-description="" data-image-caption="" data-medium-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2015/10/email-privacy-546x560.jpg" data-large-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2015/10/email-privacy.jpg" class="alignright wp-image-2740" src="https://www.spiffystores.com.au/blog/wp-content/uploads/2015/10/email-privacy-546x560.jpg" alt="email-privacy" width="250" height="257" srcset="https://www.spiffystores.com.au/blog/wp-content/uploads/2015/10/email-privacy-546x560.jpg 546w, https://www.spiffystores.com.au/blog/wp-content/uploads/2015/10/email-privacy-146x150.jpg 146w, https://www.spiffystores.com.au/blog/wp-content/uploads/2015/10/email-privacy-292x300.jpg 292w, https://www.spiffystores.com.au/blog/wp-content/uploads/2015/10/email-privacy.jpg 682w" sizes="(max-width: 250px) 100vw, 250px" />Australia&#8217;s new data retention laws start today, and this means that ISPs are obliged to collect and keep records about your digital activities for 2 years, and to make those records available to various government agencies on demand without the need for any warrants or legal oversight.</p>
<p>The good news is that the email services provided by Spiffy Stores and Domain Hosting Shop are not subject to these data retention laws. In basic terms, the law only applies to carriage service providers, which means anyone who provides the physical connection for your home or office to the Internet or telephone system.</p>
<p>We will keep your Spiffy Stores email safe and secure, and you can send and receive email secure in the knowledge that the messages will not be archived and retained in any way, and will not be available to any government agency.</p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Australian Data Retention Laws - Are you protected?' data-link='https://www.spiffystores.com.au/blog/2015/10/13/australian-data-retention-laws-are-you-protected/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Australian Data Retention Laws - Are you protected?' data-link='https://www.spiffystores.com.au/blog/2015/10/13/australian-data-retention-laws-are-you-protected/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2015/10/13/australian-data-retention-laws-are-you-protected/">Australian Data Retention Laws – Are you protected?</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2736</post-id>	</item>
		<item>
		<title>Making Fuzzy Searching Even Better</title>
		<link>https://www.spiffystores.com.au/blog/2014/11/07/making-fuzzy-searching-even-better/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Thu, 06 Nov 2014 22:39:18 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Show All]]></category>
		<category><![CDATA[customer search]]></category>
		<category><![CDATA[fuzzy search]]></category>
		<category><![CDATA[product search]]></category>
		<category><![CDATA[search]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=2450</guid>

					<description><![CDATA[<p>Here&#8217;s a little ecommerce trick that everyone seems to forget about. Make sure that your customers can find the product they want, when they do a search using your store&#8217;s built-in search function! At Spiffy Stores we try to strive &#8230; <a href="https://www.spiffystores.com.au/blog/2014/11/07/making-fuzzy-searching-even-better/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2014/11/07/making-fuzzy-searching-even-better/">Making Fuzzy Searching Even Better</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Making Fuzzy Searching Even Better' data-link='https://www.spiffystores.com.au/blog/2014/11/07/making-fuzzy-searching-even-better/' data-app-id-name='category_above_content'></div><p><img decoding="async" data-attachment-id="2452" data-permalink="https://www.spiffystores.com.au/blog/2014/11/07/making-fuzzy-searching-even-better/search-magnifying-glass/" data-orig-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2014/11/Search-Magnifying-Glass.jpg" data-orig-size="326,286" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="Search-Magnifying-Glass" data-image-description="" data-image-caption="" data-medium-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2014/11/Search-Magnifying-Glass.jpg" data-large-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2014/11/Search-Magnifying-Glass.jpg" class="alignright wp-image-2452" src="https://www.spiffystores.com.au/blog/wp-content/uploads/2014/11/Search-Magnifying-Glass.jpg" alt="Search-Magnifying-Glass" width="250" height="219" srcset="https://www.spiffystores.com.au/blog/wp-content/uploads/2014/11/Search-Magnifying-Glass.jpg 326w, https://www.spiffystores.com.au/blog/wp-content/uploads/2014/11/Search-Magnifying-Glass-150x131.jpg 150w, https://www.spiffystores.com.au/blog/wp-content/uploads/2014/11/Search-Magnifying-Glass-300x263.jpg 300w" sizes="(max-width: 250px) 100vw, 250px" /></p>
<p>Here&#8217;s a little ecommerce trick that everyone seems to forget about.</p>
<p>Make sure that your customers can find the product they want, when they do a search using your store&#8217;s built-in search function!</p>
<p>At Spiffy Stores we try to strive for excellence in the way we design and build our software. This sometimes means going back to look at existing functions to see if we can improve them in some way.</p>
<p>This is part of our philosophy and it&#8217;s a way of setting us apart from the general way of the Internet where lots of colour and movement appear to be more important than providing something with real substance.</p>
<p><span id="more-2450"></span>So, some months ago, when we had a few queries from customers wondering if there was a way to provide a better fuzzy search capability, we decided to have another look at how we provide our search function. It&#8217;s import that, no matter what the customer types in as a search query, we need to try to match the results as accurately as possible.</p>
<p>This makes a lot of sense. If a customer is searching for a product, and doesn&#8217;t find it easily, then they&#8217;ll move along to the next retailer. As a store owner, it&#8217;s in your best interests to try to find what the customer wants as accurately as possible.</p>
<p>It turns out that most of the off-the-shelf search software doesn&#8217;t really do a very good job when it comes to fuzzy searching. Writing code to produce a really good fuzzy search is actually quite difficult, so we ended up writing our own custom code to support fuzzy searching, and it looks like the results are pretty encouraging. We&#8217;re going to continue to monitor the performance of our search data, and hopefully this means that store owners will start seeing improved sales as customers start to get better search matches.</p>
<p>For everyone out there who&#8217;s not a Spiffy Store owner, why not spend a few moments trying out your current store&#8217;s search function and see how good it is at finding what you want. The chances are that it&#8217;s been developed using a stock-standard search package, and you may be losing sales because your customers aren&#8217;t easily finding exactly what they want.</p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Making Fuzzy Searching Even Better' data-link='https://www.spiffystores.com.au/blog/2014/11/07/making-fuzzy-searching-even-better/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Making Fuzzy Searching Even Better' data-link='https://www.spiffystores.com.au/blog/2014/11/07/making-fuzzy-searching-even-better/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2014/11/07/making-fuzzy-searching-even-better/">Making Fuzzy Searching Even Better</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2450</post-id>	</item>
		<item>
		<title>Getting to know your customers</title>
		<link>https://www.spiffystores.com.au/blog/2014/03/07/getting-to-know-your-customers/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Thu, 06 Mar 2014 23:25:04 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Marketing & SEO]]></category>
		<category><![CDATA[customers]]></category>
		<category><![CDATA[Electronic commerce]]></category>
		<category><![CDATA[marketing]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=2343</guid>

					<description><![CDATA[<p>We love adding new stuff to Spiffy Stores, and we&#8217;re pleased to announce that we&#8217;ve just finished putting the final polish on a brand new feature. When you manage your online store, there&#8217;s obviously lots to think about in terms &#8230; <a href="https://www.spiffystores.com.au/blog/2014/03/07/getting-to-know-your-customers/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2014/03/07/getting-to-know-your-customers/">Getting to know your customers</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Getting to know your customers' data-link='https://www.spiffystores.com.au/blog/2014/03/07/getting-to-know-your-customers/' data-app-id-name='category_above_content'></div><p><img loading="lazy" decoding="async" data-attachment-id="2347" data-permalink="https://www.spiffystores.com.au/blog/2014/03/07/getting-to-know-your-customers/getting-to-know-your-customers/" data-orig-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2014/03/getting-to-Know-Your-Customers.jpg" data-orig-size="766,499" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="getting-to-Know-Your-Customers" data-image-description="" data-image-caption="" data-medium-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2014/03/getting-to-Know-Your-Customers-560x364.jpg" data-large-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2014/03/getting-to-Know-Your-Customers.jpg" class=" wp-image-2347 alignright" alt="getting-to-Know-Your-Customers" src="https://www.spiffystores.com.au/blog/wp-content/uploads/2014/03/getting-to-Know-Your-Customers-560x364.jpg" width="235" height="153" srcset="https://www.spiffystores.com.au/blog/wp-content/uploads/2014/03/getting-to-Know-Your-Customers-560x364.jpg 560w, https://www.spiffystores.com.au/blog/wp-content/uploads/2014/03/getting-to-Know-Your-Customers-150x97.jpg 150w, https://www.spiffystores.com.au/blog/wp-content/uploads/2014/03/getting-to-Know-Your-Customers-460x300.jpg 460w, https://www.spiffystores.com.au/blog/wp-content/uploads/2014/03/getting-to-Know-Your-Customers.jpg 766w" sizes="auto, (max-width: 235px) 100vw, 235px" />We love adding new stuff to Spiffy Stores, and we&#8217;re pleased to announce that we&#8217;ve just finished putting the final polish on a brand new feature.</p>
<p>When you manage your online store, there&#8217;s obviously lots to think about in terms of products, inventory, prices and shipping. But until now, there&#8217;s been an important part missing from this equation &#8211; your customers!</p>
<p>As ever, we&#8217;re anxious to make sure we&#8217;re providing you with the very best tools and support to help you run your ecommerce venture successfully and to make lots of money, so we&#8217;ve done something about this. From today, you&#8217;ll see a new tab in your Spiffy Stores Toolbox, right next to your &#8216;orders&#8217;, called &#8216;customers&#8217;.</p>
<p>Click on this and you&#8217;ll be taken to an overview list of all your customers and you&#8217;ll see options to sort and filter your customer list, so that you can easily see who&#8217;s ordered what, how much they&#8217;ve spent and where they are located. Add to this our fantastic new custom search filters that let you create and save your own searches, and you&#8217;ll soon see these as an indispensable part of your marketing armoury.</p>
<p>There&#8217;s much more detail about this new feature in our Knowledge Base at <a href="https://www.spiffystores.com.au/kb/Information_about_your_customers" target="_blank">https://www.spiffystores.com.au/kb/Information_about_your_customers</a>  so we recommend you have a quick look at the documentation to see how this can help you better understand your customers.</p>
<p>But wait, there&#8217;s more! This is just phase 1 in our rollout of our new customer-related features. Be on the lookout for some exciting new additions to your Spiffy Store in the coming months.</p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Getting to know your customers' data-link='https://www.spiffystores.com.au/blog/2014/03/07/getting-to-know-your-customers/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Getting to know your customers' data-link='https://www.spiffystores.com.au/blog/2014/03/07/getting-to-know-your-customers/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2014/03/07/getting-to-know-your-customers/">Getting to know your customers</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2343</post-id>	</item>
		<item>
		<title>Problems rendering a layout in Rails3</title>
		<link>https://www.spiffystores.com.au/blog/2013/01/04/problems-rendering-a-layout-in-rails3/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Fri, 04 Jan 2013 04:49:43 +0000</pubDate>
				<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[controller]]></category>
		<category><![CDATA[initialize]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rails 3]]></category>
		<category><![CDATA[rails3]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[super]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=1883</guid>

					<description><![CDATA[<p>From time to time we like to share technical tips when we&#8217;ve uncovered a solution to a problem that might help other Rails developers. Spiffy Stores is written using the Ruby on Rails framework, and we encountered a glitch with &#8230; <a href="https://www.spiffystores.com.au/blog/2013/01/04/problems-rendering-a-layout-in-rails3/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2013/01/04/problems-rendering-a-layout-in-rails3/">Problems rendering a layout in Rails3</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Problems rendering a layout in Rails3' data-link='https://www.spiffystores.com.au/blog/2013/01/04/problems-rendering-a-layout-in-rails3/' data-app-id-name='category_above_content'></div>
<p>From time to time we like to share technical tips when we&#8217;ve uncovered a solution to a problem that might help other Rails developers.</p>



<p>Spiffy Stores is written using the Ruby on Rails framework, and we encountered a glitch with the Rails3 layouts. Basically we couldn&#8217;t get the layout to display, even though all the syntax was correct. Others have experienced this sort of problem. See <a href="http://stackoverflow.com/questions/6605716/cant-render-layout-in-rails-3" target="_blank" rel="noopener">http://stackoverflow.com/questions/6605716/cant-render-layout-in-rails-3</a> for an example.</p>



<p>After lots of digging around and tracing, the answer became clear. The AbstractController::Layouts module has an initialize method, but this method was not being called when a new controller was created.</p>



<p>If you experience this problem, then check any modules that you have included in your controller, as one of them has an initialize method that doesn&#8217;t call &#8216;super&#8217;.</p>



<p>If an included module needs an initialize method, then it needs to follow this pattern:</p>



<pre class="wp-block-code"><code lang="ruby" class="language-ruby">def initialize(*)
  # Module initialization code here
  super
end</code></pre>



<p>If the call to &#8216;super&#8217; isn&#8217;t included, then the initialization chain stops, and your controller won&#8217;t be properly initialized. You can find out all the included modules for a controller by executing this code from the console:</p>



<pre class="wp-block-code"><code lang="ruby" class="language-ruby">MyController.ancestors</code></pre>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Problems rendering a layout in Rails3' data-link='https://www.spiffystores.com.au/blog/2013/01/04/problems-rendering-a-layout-in-rails3/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Problems rendering a layout in Rails3' data-link='https://www.spiffystores.com.au/blog/2013/01/04/problems-rendering-a-layout-in-rails3/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2013/01/04/problems-rendering-a-layout-in-rails3/">Problems rendering a layout in Rails3</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1883</post-id>	</item>
		<item>
		<title>Easy theme editing using WebDAV</title>
		<link>https://www.spiffystores.com.au/blog/2012/06/28/easy-theme-editing-for-web-designers-using-webdav/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Thu, 28 Jun 2012 00:56:31 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Show All]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[liquid]]></category>
		<category><![CDATA[NetDrive]]></category>
		<category><![CDATA[TextMate]]></category>
		<category><![CDATA[WebDAV]]></category>
		<category><![CDATA[Windows]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=1672</guid>

					<description><![CDATA[<p>We&#8217;ve always believed in pushing the technical envelope to provide advanced technical solutions to make life easier for our store owners.  This is way more important to us than the hype and gloss that you may find in the rest &#8230; <a href="https://www.spiffystores.com.au/blog/2012/06/28/easy-theme-editing-for-web-designers-using-webdav/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2012/06/28/easy-theme-editing-for-web-designers-using-webdav/">Easy theme editing using WebDAV</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Easy theme editing using WebDAV' data-link='https://www.spiffystores.com.au/blog/2012/06/28/easy-theme-editing-for-web-designers-using-webdav/' data-app-id-name='category_above_content'></div><p><img loading="lazy" decoding="async" data-attachment-id="1715" data-permalink="https://www.spiffystores.com.au/blog/2012/06/28/easy-theme-editing-for-web-designers-using-webdav/cloud-image/" data-orig-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2012/06/cloud-image.jpg" data-orig-size="428,320" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="cloud-image" data-image-description="" data-image-caption="" data-medium-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2012/06/cloud-image-250x186.jpg" data-large-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2012/06/cloud-image.jpg" class="alignright size-medium wp-image-1715" title="cloud-image" src="https://www.spiffystores.com.au/blog/wp-content/uploads/2012/06/cloud-image-250x186.jpg" alt="" width="250" height="186" srcset="https://www.spiffystores.com.au/blog/wp-content/uploads/2012/06/cloud-image-250x186.jpg 250w, https://www.spiffystores.com.au/blog/wp-content/uploads/2012/06/cloud-image-150x112.jpg 150w, https://www.spiffystores.com.au/blog/wp-content/uploads/2012/06/cloud-image-401x300.jpg 401w, https://www.spiffystores.com.au/blog/wp-content/uploads/2012/06/cloud-image.jpg 428w" sizes="auto, (max-width: 250px) 100vw, 250px" />We&#8217;ve always believed in pushing the technical envelope to provide advanced technical solutions to make life easier for our store owners.  This is way more important to us than the hype and gloss that you may find in the rest of the industry.</p>
<p>Over the past year, we&#8217;ve been talking to loads of web designers who use Spiffy Stores to create online stores for their customers. Although they love creating new e-commerce shops using our software, the resounding feedback we&#8217;ve been getting is that whilst the current Theme Editor in the Toolbox is great for small changes, it get&#8217;s a bit more difficult when designing an entire theme for a store.</p>
<p>For larger theme updates it&#8217;s really necessary to download the theme files to your computer, edit them and then upload the new files to the server. Using the Theme Editor to do this is a bit cumbersome, and makes the design process more difficult than it should be.</p>
<p>We&#8217;ve listened to these concerns, and have spent considerable time and effort working on a solution&#8230; so today we&#8217;re very proud to announce a <strong>major new capability</strong> which allows all your theme files and assets to be edited directly from your computer using WebDAV enabled editors such as Adobe&#8217;s Dreamweaver, and Panic&#8217;s <a href="/kb/Editing_your_theme_using_WebDAV_in_Coda_for_OSX" target="_blank">Coda</a>.  If you&#8217;re on a Mac, you&#8217;re even luckier, as WebDAV is built right into OSX, and can be used in conjunction with <a href="/kb/Editing_your_theme_using_WebDAV_in_TextMate_for_OSX" target="_blank">TextMate</a> and <a href="/kb/Editing_your_theme_using_WebDAV_in_Taco_HTML_Edit_for_OSX" target="_blank">Taco</a>.</p>
<p>To use this new feature in Windows, all you need is a WebDAV enabled editor or a utility such as <a href="/kb/Using_NetDrive_to_connect_to_your_store_using_WebDAV" target="_blank">NetDrive</a> which allows WebDAV files to be mounted on your computer as a local folder. This means that you can use your favourite editor to edit your store&#8217;s theme files directly from your computer.</p>
<p>If you&#8217;re using a WebDAV enabled editor such as <a href="/kb/Editing_your_theme_using_WebDAV_in_Dreamweaver" target="_blank">Dreamweaver</a>, you also have access to some advanced features such a file checkout and locking so that you can work in a team without having to worry about whether someone else overwrites your changes.</p>
<p>If you&#8217;re a web designer and your current e-commerce software doesn&#8217;t support WebDAV, then you should seriously consider Spiffy Stores for this feature alone, as you&#8217;ll find your theme development time slashed significantly.</p>
<p>For more info about using WebDAV to edit your store, head over to the <a href="/kb/Using_WebDAV_to_edit_your_theme" target="_blank">WebDAV section of our knowledge base</a>.</p>
<p></p>
<h5>Related articles</h5>
<ul>
<li><a href="/blog/2011/06/03/syntax-highlighting-now-in-our-liquid-template-editor/">Syntax highlighting – now in our Liquid template editor</a></li>
<li><a href="/blog/2011/05/18/easy-image-editing-with-the-feather-editor-from-aviary-com/">Easy image editing with the Feather Editor from Aviary.com</a></li>
<li><a href="/blog/2011/05/17/introducing-sass-syntactically-awesome-spiffy-stores/">Syntactically Awesome Style Sheets</a></li>
</ul>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Easy theme editing using WebDAV' data-link='https://www.spiffystores.com.au/blog/2012/06/28/easy-theme-editing-for-web-designers-using-webdav/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Easy theme editing using WebDAV' data-link='https://www.spiffystores.com.au/blog/2012/06/28/easy-theme-editing-for-web-designers-using-webdav/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2012/06/28/easy-theme-editing-for-web-designers-using-webdav/">Easy theme editing using WebDAV</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1672</post-id>	</item>
		<item>
		<title>Adding URL Redirects makes migrating your online store even easier</title>
		<link>https://www.spiffystores.com.au/blog/2011/11/16/adding-url-redirects-makes-migration-easy/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Tue, 15 Nov 2011 21:37:56 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Marketing & SEO]]></category>
		<category><![CDATA[Show All]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[migrate]]></category>
		<category><![CDATA[migration]]></category>
		<category><![CDATA[permanent]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[URL]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=1575</guid>

					<description><![CDATA[<p>A URL redirect can help your customers find your products on your new Spiffy Store site when you migrate from another software platform and your old links are still cached by the search engines. This makes the whole migration process &#8230; <a href="https://www.spiffystores.com.au/blog/2011/11/16/adding-url-redirects-makes-migration-easy/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2011/11/16/adding-url-redirects-makes-migration-easy/">Adding URL Redirects makes migrating your online store even easier</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Adding URL Redirects makes migrating your online store even easier' data-link='https://www.spiffystores.com.au/blog/2011/11/16/adding-url-redirects-makes-migration-easy/' data-app-id-name='category_above_content'></div><p><img loading="lazy" decoding="async" data-attachment-id="1586" data-permalink="https://www.spiffystores.com.au/blog/2011/11/16/adding-url-redirects-makes-migration-easy/ecommerce-url-redirect/" data-orig-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2011/11/ecommerce-url-redirect.jpg" data-orig-size="252,246" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="ecommerce-url-redirect" data-image-description="" data-image-caption="" data-medium-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2011/11/ecommerce-url-redirect-250x244.jpg" data-large-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2011/11/ecommerce-url-redirect.jpg" class="alignright size-full wp-image-1586" title="ecommerce-url-redirect" src="https://www.spiffystores.com.au/blog/wp-content/uploads/2011/11/ecommerce-url-redirect.jpg" alt="" width="252" height="246" srcset="https://www.spiffystores.com.au/blog/wp-content/uploads/2011/11/ecommerce-url-redirect.jpg 252w, https://www.spiffystores.com.au/blog/wp-content/uploads/2011/11/ecommerce-url-redirect-150x146.jpg 150w, https://www.spiffystores.com.au/blog/wp-content/uploads/2011/11/ecommerce-url-redirect-250x244.jpg 250w" sizes="auto, (max-width: 252px) 100vw, 252px" />A URL redirect can help your customers find your products on your new Spiffy Store site when you migrate from another software platform and your old links are still cached by the search engines. This makes the whole migration process easy and painless as you don&#8217;t run the risk of losing sales because your customers can&#8217;t find the right products.</p>
<p>In simple terms, a URL redirect lets you map from one web page address to another, and this is the kind of feature that you&#8217;ll find supported by most modern ecommerce and online shop builder software.</p>
<p>However, here at Spiffy Stores we like to provide our store owners with the best possible tools for running their online stores, so we decided to go just that little bit further to help you solve your problems without actually creating more work for you.</p>
<p>If you look at the URL Redirection solutions offered by other hosted e-commerce providers, you&#8217;ll quickly see that in most cases they don&#8217;t offer any form of pattern matching or wildcard support for the redirections. This means that for a large store, you may be forced to enter many thousands of redirection mappings to support the full range of possibilities. Even worse, some don&#8217;t even offer a bulk import/export feature, so you have to type in all your redirects by hand.<br />
<span id="more-1575"></span></p>
<p>The Spiffy Stores URL Redirection feature not only offers you the capability of creating simple redirects, but also offers the full power of regular expressions to allow you to create complex patterns which can be used to match almost any incoming URL. Using regular expressions in your redirections can reduce thousands of redirection cases down to just a handful.</p>
<p>Furthermore, there&#8217;s also a bulk import/export feature that allows you to manage your redirects using a standard CSV file.</p>
<p>There&#8217;s more information about our new URL Redirection feature in our Knowledge Base <a title="URL Redirects article" href="https://www.spiffystores.com.au/kb/URL_Redirects" target="_blank">URL Redirects</a> article.</p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Adding URL Redirects makes migrating your online store even easier' data-link='https://www.spiffystores.com.au/blog/2011/11/16/adding-url-redirects-makes-migration-easy/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Adding URL Redirects makes migrating your online store even easier' data-link='https://www.spiffystores.com.au/blog/2011/11/16/adding-url-redirects-makes-migration-easy/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2011/11/16/adding-url-redirects-makes-migration-easy/">Adding URL Redirects makes migrating your online store even easier</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1575</post-id>	</item>
		<item>
		<title>Syntax highlighting &#8211; now in our Liquid template editor</title>
		<link>https://www.spiffystores.com.au/blog/2011/06/03/syntax-highlighting-now-in-our-liquid-template-editor/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Thu, 02 Jun 2011 23:10:34 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Show All]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[colorized]]></category>
		<category><![CDATA[colour]]></category>
		<category><![CDATA[colourised]]></category>
		<category><![CDATA[colourized]]></category>
		<category><![CDATA[css editor]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[html editor]]></category>
		<category><![CDATA[liquid]]></category>
		<category><![CDATA[liquid editor]]></category>
		<category><![CDATA[syntax-directed]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[theme]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=1403</guid>

					<description><![CDATA[<p>Until now the Theme Editor has displayed your theme&#8217;s Liquid template files in a very boring, black text field. We think this makes it harder to edit and change your theme files than it needs to be, so we&#8217;ve added &#8230; <a href="https://www.spiffystores.com.au/blog/2011/06/03/syntax-highlighting-now-in-our-liquid-template-editor/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2011/06/03/syntax-highlighting-now-in-our-liquid-template-editor/">Syntax highlighting – now in our Liquid template editor</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Syntax highlighting - now in our Liquid template editor' data-link='https://www.spiffystores.com.au/blog/2011/06/03/syntax-highlighting-now-in-our-liquid-template-editor/' data-app-id-name='category_above_content'></div><p><img loading="lazy" decoding="async" data-attachment-id="1410" data-permalink="https://www.spiffystores.com.au/blog/2011/06/03/syntax-highlighting-now-in-our-liquid-template-editor/code-coloring/" data-orig-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2011/06/code-coloring.jpg" data-orig-size="252,254" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="code-coloring" data-image-description="" data-image-caption="" data-medium-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2011/06/code-coloring-248x250.jpg" data-large-file="https://www.spiffystores.com.au/blog/wp-content/uploads/2011/06/code-coloring.jpg" class="alignright size-full wp-image-1410" title="code-coloring" src="https://www.spiffystores.com.au/blog/wp-content/uploads/2011/06/code-coloring.jpg" alt="" width="252" height="254" srcset="https://www.spiffystores.com.au/blog/wp-content/uploads/2011/06/code-coloring.jpg 252w, https://www.spiffystores.com.au/blog/wp-content/uploads/2011/06/code-coloring-148x150.jpg 148w, https://www.spiffystores.com.au/blog/wp-content/uploads/2011/06/code-coloring-248x250.jpg 248w" sizes="auto, (max-width: 252px) 100vw, 252px" />Until now the Theme Editor has displayed your theme&#8217;s Liquid template files in a very boring, black text field.</p>
<p>We think this makes it harder to edit and change your theme files than it needs to be, so we&#8217;ve added a bit of colour to the whole process.</p>
<p>Now, when you go to edit a theme&#8217;s Liquid file, you&#8217;ll see the text highlighted and colour-coded according to the syntax of the language. You&#8217;ll see HTML, CSS and Javascript as well as all the Liquid tags highlighted using different colours so that it makes it a lot easier to navigate your way around the file. In addition, strings, numbers and various other bits of punctuation are highlighted as well.</p>
<p>To round off this update, we&#8217;ve added line numbers on the left to make it easier to locate and refer to the code.</p>
<p>In technical terms, this is known as a syntax-directed editor, but we just call it <q>easy to use</q>.</p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Syntax highlighting - now in our Liquid template editor' data-link='https://www.spiffystores.com.au/blog/2011/06/03/syntax-highlighting-now-in-our-liquid-template-editor/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Syntax highlighting - now in our Liquid template editor' data-link='https://www.spiffystores.com.au/blog/2011/06/03/syntax-highlighting-now-in-our-liquid-template-editor/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2011/06/03/syntax-highlighting-now-in-our-liquid-template-editor/">Syntax highlighting – now in our Liquid template editor</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1403</post-id>	</item>
		<item>
		<title>Introducing SASS &#8211; Syntactically Awesome Spiffy Stores</title>
		<link>https://www.spiffystores.com.au/blog/2011/05/17/introducing-sass-syntactically-awesome-spiffy-stores/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Tue, 17 May 2011 01:16:49 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[customization]]></category>
		<category><![CDATA[liquid]]></category>
		<category><![CDATA[sass]]></category>
		<category><![CDATA[scss]]></category>
		<category><![CDATA[stylesheet]]></category>
		<category><![CDATA[theme]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=1305</guid>

					<description><![CDATA[<p>Actually, it&#8217;s really &#8220;Syntactically Awesome Stylesheets&#8221;. For all the theme designers out there, we&#8217;ve just made your life a little bit easier. We all know that sometimes CSS stylesheets can get complicated, so anything that can help you manage that complexity &#8230; <a href="https://www.spiffystores.com.au/blog/2011/05/17/introducing-sass-syntactically-awesome-spiffy-stores/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2011/05/17/introducing-sass-syntactically-awesome-spiffy-stores/">Introducing SASS – Syntactically Awesome Spiffy Stores</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Introducing SASS - Syntactically Awesome Spiffy Stores' data-link='https://www.spiffystores.com.au/blog/2011/05/17/introducing-sass-syntactically-awesome-spiffy-stores/' data-app-id-name='category_above_content'></div><p>Actually, it&#8217;s really &#8220;Syntactically Awesome Stylesheets&#8221;.</p>
<p>For all the theme designers out there, we&#8217;ve just made your life a little bit easier. We all know that sometimes CSS stylesheets can get complicated, so anything that can help you manage that complexity is a welcome bonus.</p>
<p>As you may already know, when you enable the Theme Editor by creating a &#8216;<em>theme.settings</em>&#8216; file, you can parse your CSS files by making sure they have a suffix of &#8216;<em>.css.liquid</em>&#8216;.</p>
<p>Now, as part of the CSS processing that gets initiated to deal with the Liquid tags, we&#8217;ve added a pass through the SCSS processor, which is part of the SASS CSS extensions. You can read more about these CSS extensions at <a href="http://sass-lang.com/" target="_blank">http://sass-lang.com</a></p>
<p>By using the CSS extensions, you can simplify your stylesheets by using variables, conditional logic, mixins and templates, nested attributes and a whole lot more. Even better, at the end of the processing you get a compressed CSS file so you can ensure that your site loads as fast as possible. Even if you don&#8217;t use any of the CSS extensions, you still get a compressed stylesheet, so that&#8217;s got to be something to smile about!</p>
<p>You can read more about the Spiffy Stores Theme Customizations in our <a href="https://www.spiffystores.com.au/kb/Theme_Settings" target="_blank">Knowledge Base</a>.</p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Introducing SASS - Syntactically Awesome Spiffy Stores' data-link='https://www.spiffystores.com.au/blog/2011/05/17/introducing-sass-syntactically-awesome-spiffy-stores/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Introducing SASS - Syntactically Awesome Spiffy Stores' data-link='https://www.spiffystores.com.au/blog/2011/05/17/introducing-sass-syntactically-awesome-spiffy-stores/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2011/05/17/introducing-sass-syntactically-awesome-spiffy-stores/">Introducing SASS – Syntactically Awesome Spiffy Stores</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1305</post-id>	</item>
		<item>
		<title>Add Geolocation to your Liquid Theme</title>
		<link>https://www.spiffystores.com.au/blog/2011/01/26/add-geolocation-to-your-liquid-theme/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Wed, 26 Jan 2011 00:03:11 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Show All]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[liquid]]></category>
		<category><![CDATA[theme]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=1135</guid>

					<description><![CDATA[<p>Here&#8217;s something to help you customize your Spiffy Store&#8217;s Liquid Theme for your overseas customers. We have added some new Liquid Theme variables that will give you access to the geolocation data for your customer. This will give you access &#8230; <a href="https://www.spiffystores.com.au/blog/2011/01/26/add-geolocation-to-your-liquid-theme/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2011/01/26/add-geolocation-to-your-liquid-theme/">Add Geolocation to your Liquid Theme</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Add Geolocation to your Liquid Theme' data-link='https://www.spiffystores.com.au/blog/2011/01/26/add-geolocation-to-your-liquid-theme/' data-app-id-name='category_above_content'></div><p>Here&#8217;s something to help you customize your Spiffy Store&#8217;s Liquid Theme for your overseas customers.</p>
<p>We have added some new Liquid Theme variables that will give you access to the geolocation data for your customer. This will give you access to the Country, Country Code, City and Timezone information for the customer, based on the IP address being used.</p>
<p><span id="more-1135"></span><br />
Four new methods have been added to the <em>request</em> variable.</p>
<p>[ruby title=&#8221;Sample Geolocation methods&#8221;]<br />
{{ request.country_code}}<br />
{{ request.country }}<br />
{{ request.city }}<br />
{{ request.timezone }}<br />
[/ruby]</p>
<p>You can use these methods to help you display information in your theme that is customized for your customer&#8217;s location. For example, you could provide additional shipping information or information about tax free prices. The timezone information could could be used to let your customers know what your business hours are by taking into account the time differences.</p>
<p>You may wish to restrict certain products or pages to local customers if you&#8217;re running a promotion, so you can use the country information to display different information to overseas customers. For example, you may be offering free shipping to local customers only.</p>
<p>Further information can be found at</p>
<p><a href="https://www.spiffystores.com.au/kb/Liquid_Template_Variables_-_request" target="_blank">https://www.spiffystores.com.au/kb/Liquid_Template_Variables_-_request</a></p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Add Geolocation to your Liquid Theme' data-link='https://www.spiffystores.com.au/blog/2011/01/26/add-geolocation-to-your-liquid-theme/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Add Geolocation to your Liquid Theme' data-link='https://www.spiffystores.com.au/blog/2011/01/26/add-geolocation-to-your-liquid-theme/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2011/01/26/add-geolocation-to-your-liquid-theme/">Add Geolocation to your Liquid Theme</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1135</post-id>	</item>
		<item>
		<title>Get Order Notifications when you&#8217;re on the move</title>
		<link>https://www.spiffystores.com.au/blog/2010/12/13/get-order-notifications-when-youre-on-the-move/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Mon, 13 Dec 2010 04:40:07 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Show All]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[data feed]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[order notification]]></category>
		<category><![CDATA[orders]]></category>
		<guid isPermaLink="false">https://www.spiffystores.com.au/blog/?p=1121</guid>

					<description><![CDATA[<p>With more and more people on the move and accessing their Spiffy Stores Toolbox from mobile devices, we&#8217;ve added a quick and simple way for you to get timely updates when your online store gets new orders. Browse to your &#8230; <a href="https://www.spiffystores.com.au/blog/2010/12/13/get-order-notifications-when-youre-on-the-move/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2010/12/13/get-order-notifications-when-youre-on-the-move/">Get Order Notifications when you’re on the move</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Get Order Notifications when you&#039;re on the move' data-link='https://www.spiffystores.com.au/blog/2010/12/13/get-order-notifications-when-youre-on-the-move/' data-app-id-name='category_above_content'></div><p>With more and more people on the move and accessing their Spiffy Stores Toolbox from mobile devices, we&#8217;ve added a quick and simple way for you to get timely updates when your online store gets new orders.</p>
<p>Browse to your &#8220;Overview of your orders&#8221; page in your Spiffy Store Toolbox and you&#8217;ll now see an additional entry in the sidebar which includes a data feed link to all your most recent orders.</p>
<p>The new data feed link is encrypted and password protected so you can be sure that your online stores&#8217; customers&#8217; data is safe and secure.</p>
<p>There is more information available on this new feature in our Knowledge Base at <a href="https://www.spiffystores.com.au/kb/Recent_Orders_Data_Feed">https://www.spiffystores.com.au/kb/Recent_Orders_Data_Feed</a>.</p>
<p>You can use this link on your mobile device to find out when new orders have been placed in your online store rather than having to monitor your email for the email notifications you normally receive.</p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Get Order Notifications when you&#039;re on the move' data-link='https://www.spiffystores.com.au/blog/2010/12/13/get-order-notifications-when-youre-on-the-move/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Get Order Notifications when you&#039;re on the move' data-link='https://www.spiffystores.com.au/blog/2010/12/13/get-order-notifications-when-youre-on-the-move/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2010/12/13/get-order-notifications-when-youre-on-the-move/">Get Order Notifications when you’re on the move</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1121</post-id>	</item>
		<item>
		<title>Spammers Begone</title>
		<link>https://www.spiffystores.com.au/blog/2010/06/17/spammers-begone/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Wed, 16 Jun 2010 22:46:39 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[contact form]]></category>
		<category><![CDATA[contact us]]></category>
		<category><![CDATA[cross site request forgery]]></category>
		<category><![CDATA[csrf]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[spam]]></category>
		<guid isPermaLink="false">http://spiffystores.com.au/blog/?p=688</guid>

					<description><![CDATA[<p>We recently enabled a small security enhancement to the Spiffy Stores software to prevent a security attack called Cross Site Request Forgery (CSRF). Basically, now an encrypted token is generated and inserted into every form on the store web pages. &#8230; <a href="https://www.spiffystores.com.au/blog/2010/06/17/spammers-begone/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2010/06/17/spammers-begone/">Spammers Begone</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Spammers Begone' data-link='https://www.spiffystores.com.au/blog/2010/06/17/spammers-begone/' data-app-id-name='category_above_content'></div><p>We recently enabled a small security enhancement to the Spiffy Stores software to prevent a security attack called Cross Site Request Forgery (CSRF).</p>
<p>Basically, now an encrypted token is generated and inserted into every form on the store web pages. This prevents a hacker from copying a form from the site and tricking you into executing the form from a fake site, thus giving the hacker access to your account.</p>
<p>Whilst it was extremely unlikely that this sort of attack would work because of the way in which the Spiffy Stores software is designed, it never hurts to improve security wherever possible.</p>
<p>However, it turns out to have an unintended bonus effect!</p>
<p>Spiffy Stores is one of the few ecommerce solutions that has a &#8220;Contact Us&#8221; form built into your store. This form is generated for you automatically and you don&#8217;t need to use a third-party online form service to get something as essential as a contact form.</p>
<p>Now that we have added the Cross Site Request Forgery code, we are seeing instances of spammers who have &#8220;copied&#8221; the contact forms from various sites and have built them into scripts to try to spam our store owners with fake contact form submissions. All of these attempts are now failing because they are all detected as forgeries, and this means that your inbox will contain less of the spam generated by these pests.</p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Spammers Begone' data-link='https://www.spiffystores.com.au/blog/2010/06/17/spammers-begone/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Spammers Begone' data-link='https://www.spiffystores.com.au/blog/2010/06/17/spammers-begone/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2010/06/17/spammers-begone/">Spammers Begone</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">688</post-id>	</item>
		<item>
		<title>Structuring Information for Search Engine Snippets</title>
		<link>https://www.spiffystores.com.au/blog/2010/03/12/structuring-information-for-search-engine-snippets/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Thu, 11 Mar 2010 22:39:13 +0000</pubDate>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Show All]]></category>
		<category><![CDATA[author]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[description]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[keywords]]></category>
		<category><![CDATA[liquid]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[theme]]></category>
		<guid isPermaLink="false">http://spiffystores.com.au/blog/?p=568</guid>

					<description><![CDATA[<p>Here&#8217;s a quick update. We&#8217;ve added a small improvement to our Theme support by defining a new header variable which can be used in the Theme.liquid file as part of the section. Rather than hand-coding author, copyright, description and keywords &#8230; <a href="https://www.spiffystores.com.au/blog/2010/03/12/structuring-information-for-search-engine-snippets/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2010/03/12/structuring-information-for-search-engine-snippets/">Structuring Information for Search Engine Snippets</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Structuring Information for Search Engine Snippets' data-link='https://www.spiffystores.com.au/blog/2010/03/12/structuring-information-for-search-engine-snippets/' data-app-id-name='category_above_content'></div><p>Here&#8217;s a quick update.</p>
<p>We&#8217;ve added a small improvement to our Theme support by defining a new <q>header</q> variable which can be used in the Theme.liquid file as part of the  section.</p>
<p>Rather than hand-coding author, copyright, description and keywords meta tags, you can just code</p>
<p>[ruby]<br />
{{ header.author }}<br />
{{ header.copyright }}<br />
{{ header.description }}<br />
{{ header.keywords }}<br />
[/ruby]</p>
<p>These variables will automatically generate the appropriate meta tags for your page&#8217;s content.</p>
<p>The advantage of these automatically generated tags is that they structure the description information in a way that makes it easy for the search engines to extract the relevant information about your product or page and this will appear as the snippet in the search results.</p>
<p>For details have a look at our Knowledge Base documentation</p>
<p><a href="/kb/Liquid_Template_Variables_-_header">Liquid Template Variables &#8211; header</a></p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Structuring Information for Search Engine Snippets' data-link='https://www.spiffystores.com.au/blog/2010/03/12/structuring-information-for-search-engine-snippets/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Structuring Information for Search Engine Snippets' data-link='https://www.spiffystores.com.au/blog/2010/03/12/structuring-information-for-search-engine-snippets/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2010/03/12/structuring-information-for-search-engine-snippets/">Structuring Information for Search Engine Snippets</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">568</post-id>	</item>
		<item>
		<title>Multisets and Bags in Ruby</title>
		<link>https://www.spiffystores.com.au/blog/2009/06/10/multisets-and-bags-in-ruby/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Wed, 10 Jun 2009 06:13:51 +0000</pubDate>
				<category><![CDATA[Geek stuff]]></category>
		<guid isPermaLink="false">http://spiffystores.com.au/blog/?p=442</guid>

					<description><![CDATA[<p>I&#8217;ve been looking around for an implementation of a Multiset/Bag in Ruby to ease the pain of recording some of our statistics. Some of the statistics we gather are most usefully stored as some form of &#8220;super&#8221; Set in which &#8230; <a href="https://www.spiffystores.com.au/blog/2009/06/10/multisets-and-bags-in-ruby/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2009/06/10/multisets-and-bags-in-ruby/">Multisets and Bags in Ruby</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Multisets and Bags in Ruby' data-link='https://www.spiffystores.com.au/blog/2009/06/10/multisets-and-bags-in-ruby/' data-app-id-name='category_above_content'></div>
<p>I&#8217;ve been looking around for an implementation of a Multiset/Bag in Ruby to ease the pain of recording some of our statistics.</p>



<p>Some of the statistics we gather are most usefully stored as some form of &#8220;super&#8221; Set in which each unique element is stored together with a count of the number of times that element has occurred. These statistics are likely to have a large number of repeated elements, so this makes sense as it saves on space and processing.</p>



<p>So, after an extensive search, I was surprised at the paucity of solutions for this problem.</p>



<p>Eventually I hit upon</p>



<p><a title="Multiset Library for Ruby" href="http://maraigue.hhiro.net/multiset/index-en.php" target="_blank" rel="noopener">http://maraigue.hhiro.net/multiset/index-en.php</a></p>



<p>It does exactly what I want, but I decided that I would add the following custom functions. These two functions return all the items in a Multiset with the highest/lowest counts.</p>



<pre class="wp-block-code"><code lang="ruby" class="language-ruby line-numbers">class Multiset
  # Return all the items with the maximum count
  def max_values
    max_value = @items.values.max
    @items.select { |k, v| v == max_value }.map { |i| i[0] }
  end

  # Return all the items with the minimum count
  def min_values
    min_value = @items.values.min
    @items.select { |k, v| v == min_value }.map { |i| i[0] }
  end
end</code></pre>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Multisets and Bags in Ruby' data-link='https://www.spiffystores.com.au/blog/2009/06/10/multisets-and-bags-in-ruby/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Multisets and Bags in Ruby' data-link='https://www.spiffystores.com.au/blog/2009/06/10/multisets-and-bags-in-ruby/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2009/06/10/multisets-and-bags-in-ruby/">Multisets and Bags in Ruby</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">442</post-id>	</item>
		<item>
		<title>It&#8217;s Geek New Year!</title>
		<link>https://www.spiffystores.com.au/blog/2009/02/13/its-geek-new-year/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Thu, 12 Feb 2009 21:28:19 +0000</pubDate>
				<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Show All]]></category>
		<guid isPermaLink="false">http://spiffystores.com.au/blog/?p=229</guid>

					<description><![CDATA[<p>Linux users of the world unite&#8230; today is 1234567890 day. At 3:30pm today, Unix time will equal exactly 1234567890. It’s the geek version of the year 2000!</p>
The post <a href="https://www.spiffystores.com.au/blog/2009/02/13/its-geek-new-year/">It’s Geek New Year!</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='It&#039;s Geek New Year!' data-link='https://www.spiffystores.com.au/blog/2009/02/13/its-geek-new-year/' data-app-id-name='category_above_content'></div><p>Linux users of the world unite&#8230; today is 1234567890 day. At 3:30pm today, Unix time will equal exactly 1234567890. It’s the geek version of the year 2000!</p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='It&#039;s Geek New Year!' data-link='https://www.spiffystores.com.au/blog/2009/02/13/its-geek-new-year/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='It&#039;s Geek New Year!' data-link='https://www.spiffystores.com.au/blog/2009/02/13/its-geek-new-year/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2009/02/13/its-geek-new-year/">It’s Geek New Year!</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">229</post-id>	</item>
		<item>
		<title>Rails 2.2.2 memoization gotchas</title>
		<link>https://www.spiffystores.com.au/blog/2008/12/17/rails-222-memoization-gotchas/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Wed, 17 Dec 2008 07:33:28 +0000</pubDate>
				<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Show All]]></category>
		<category><![CDATA[1.3]]></category>
		<category><![CDATA[2.2.2]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache 1.3]]></category>
		<category><![CDATA[memoize]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rails 2.2.2]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ssl]]></category>
		<guid isPermaLink="false">http://spiffystores.com.au/blog/?p=147</guid>

					<description><![CDATA[<p>For various reasons, we are still running on Apache 1.3 which is fine, except for the fact that there is no easy way of determining whether a request is via an SSL session or not. Unfortunately, this process was broken &#8230; <a href="https://www.spiffystores.com.au/blog/2008/12/17/rails-222-memoization-gotchas/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2008/12/17/rails-222-memoization-gotchas/">Rails 2.2.2 memoization gotchas</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Rails 2.2.2 memoization gotchas' data-link='https://www.spiffystores.com.au/blog/2008/12/17/rails-222-memoization-gotchas/' data-app-id-name='category_above_content'></div>
<p>For various reasons, we are still running on Apache 1.3 which is fine, except for the fact that there is no easy way of determining whether a request is via an SSL session or not.</p>



<p>Unfortunately, this process was broken by the upgrade to Rails 2.2.2.</p>



<span id="more-147"></span>



<p>No probs. We just rewrite the URL to add an &#8220;ssl&#8221; prefix before it gets passed to the Rails engine.</p>



<pre class="wp-block-code"><code lang="apacheconf" class="language-apacheconf">RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ http://127.0.0.1:8000/ssl/$1 [P,L]
ProxyPassReverse / http://127.0.0.1:8000/ssl/</code></pre>



<p>From there, a simple route will pass the request on to our SSL Proxy controller.</p>



<pre class="wp-block-code"><code lang="ruby" class="language-ruby">map.connect 'ssl/*suburi',
            :controller => 'ssl_proxy',
            :action => 'reprocess'</code></pre>



<p>Now all our &#8216;reprocess&#8217; method has to do is take the request, rewrite the URI to its original form, and set an environment variable to let us know it&#8217;s an SSL request.</p>



<pre class="wp-block-code"><code lang="ruby" class="language-ruby line-numbers">class SslProxyController &lt; ActionController::Base
  def reprocess
    request.env["REQUEST_URI"] = "/#{params[:suburi].join('/')}"
    request.env["HTTPS"] = "on"

    controller = ActionController::Routing::Routes.recognize(request)
    controller.process(request, response)
    @performed_render = true
  end
end</code></pre>



<p>This all broke down with the upgrade to Rails 2.2.2.</p>



<p>One of the new features of 2.2.2 is the addition of memoization to various system classes, including the &#8216;request&#8217; object. This means that &#8216;request_uri&#8217; is now memoized, and that even if we update the environment variable &#8216;REQUEST_URI&#8217;, the memoized value doesn&#8217;t change. When the route is recognized, it resolves to &#8216;reprocess&#8217; again, and we end up in an endless loop.</p>



<p>The answer turns to reasonably easy to implement. All we need to do is add the following line at the start of the &#8216;reprocess&#8217; method.</p>



<pre class="wp-block-code"><code lang="ruby" class="language-ruby">request.unmemoize_all if request.respond_to? :unmemoize_all</code></pre>



<p>This code simply clears all the memoized variables, so they can all be loaded again using our new, proper URI.</p>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='Rails 2.2.2 memoization gotchas' data-link='https://www.spiffystores.com.au/blog/2008/12/17/rails-222-memoization-gotchas/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='Rails 2.2.2 memoization gotchas' data-link='https://www.spiffystores.com.au/blog/2008/12/17/rails-222-memoization-gotchas/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2008/12/17/rails-222-memoization-gotchas/">Rails 2.2.2 memoization gotchas</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">147</post-id>	</item>
		<item>
		<title>How to Fake an Uploaded File</title>
		<link>https://www.spiffystores.com.au/blog/2008/11/06/how-to-fake-an-uploaded-file/</link>
		
		<dc:creator><![CDATA[Brian]]></dc:creator>
		<pubDate>Wed, 05 Nov 2008 23:40:51 +0000</pubDate>
				<category><![CDATA[Geek stuff]]></category>
		<category><![CDATA[Show All]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[uploaded]]></category>
		<category><![CDATA[uploaded tempfile]]></category>
		<guid isPermaLink="false">http://spiffystores.com.au/blog/?p=74</guid>

					<description><![CDATA[<p>Our store software contains an extensive set of routines for processing uploaded images and resizing them into various image sizes. We&#8217;ve recently been adding some code to support a bulk import function and it&#8217;s become necessary to somehow fake uploading &#8230; <a href="https://www.spiffystores.com.au/blog/2008/11/06/how-to-fake-an-uploaded-file/">Continue reading <span class="meta-nav">&#8594;</span></a></p>
The post <a href="https://www.spiffystores.com.au/blog/2008/11/06/how-to-fake-an-uploaded-file/">How to Fake an Uploaded File</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></description>
										<content:encoded><![CDATA[<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='How to Fake an Uploaded File' data-link='https://www.spiffystores.com.au/blog/2008/11/06/how-to-fake-an-uploaded-file/' data-app-id-name='category_above_content'></div>
<p>Our store software contains an extensive set of routines for processing uploaded images and resizing them into various image sizes. We&#8217;ve recently been adding some code to support a bulk import function and it&#8217;s become necessary to somehow fake uploading a file, given a specific URL for an image.</p>



<p>The basic plan is to use Net::HTTP to connect to the remote server and grab the image and save it in a temporary file. It turns out that Rails contains a UploadedTempfile class which is a subclass of Tempfile, and this is used by the CGI routines to handle any uploaded files.</p>



<span id="more-74"></span>



<p>So all we need to do is create our own instance of UploadedTempfile, set some attributes and then pass it along to our existing routines as if it were a real uploaded file.</p>



<pre class="wp-block-code"><code lang="ruby" class="language-ruby line-numbers">uri = URI.parse(image_url)
image_file_name = File.basename(uri.path) # Extract the file name
image_file = nil
begin
  timeout(10) do
    Net::HTTP.start(uri.host, uri.port) do |http|
      resp = http.get(uri.path)
      image_file = ActionController::UploadedTempfile.new(image_file_name)
      image_file.binmode
      image_file.write(resp.body)
      image_file.original_path = image_file_name
      image_file.rewind
    end
  end
rescue TimeoutError
  raise "Timeout connecting to #{uri.host}"
end
</code></pre>



<p>There are a few things that need to be set up, so that the fake upload file works properly.</p>



<p>The file is set to binary mode with</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>image_file.binmode</p></blockquote>



<p>The original file name is set with</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>image_file.original_path = image_file_name</p></blockquote>



<p>A content type attribute can also be set with</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>image_file.content_type</p></blockquote>



<p>but we don&#8217;t use this attribute, so it&#8217;s not set here.</p>



<p>Finally we rewind the file so that we can read it later on in the image processing routines. When we&#8217;re finished with the temporary file, we can delete it with a</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>image_file.close!</p></blockquote>
<div style='display:none;' class='shareaholic-canvas' data-app='share_buttons' data-title='How to Fake an Uploaded File' data-link='https://www.spiffystores.com.au/blog/2008/11/06/how-to-fake-an-uploaded-file/' data-app-id-name='category_below_content'></div><div style='display:none;' class='shareaholic-canvas' data-app='recommendations' data-title='How to Fake an Uploaded File' data-link='https://www.spiffystores.com.au/blog/2008/11/06/how-to-fake-an-uploaded-file/' data-app-id-name='category_below_content'></div>The post <a href="https://www.spiffystores.com.au/blog/2008/11/06/how-to-fake-an-uploaded-file/">How to Fake an Uploaded File</a> first appeared on <a href="https://www.spiffystores.com.au/blog">Spiffy Stores Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">74</post-id>	</item>
	</channel>
</rss>
