northStudio Blog http://www.northstudio.com/blog/20110909/feed en The Truth About Facebook & Grades [INFOGRAPHIC] http://www.northstudio.com/blog/20111209/truth-about-facebook-grades-infographic <p> It&#39;s not Facebook that counts - it&#39;s how you use it!</p> <p> <a href="http://www.onlineeducation.net/facebook-and-grades"><img alt="Facebook and Grades" border="0" src="http://images.onlineeducation.net.s3.amazonaws.com/facebook-and-grades.jpg" width="650" /></a><br /> Via: <a href="http://www.onlineeducation.net/">OnlineEducation.net</a></p> Fri, 09 Dec 2011 23:39:25 +0000 Simon Vreeswijk 1053 at http://www.northstudio.com Web Developers vs Web Developers: The Gender Split Between Developers [INFOGRAPHIC] http://www.northstudio.com/blog/20111017/web-developers-vs-web-developers-gender-split-between-developers-infographic <p> Web developers: How questionable is your legware? This infographic describes the difference between male and female web developers, right down to our suspect choices of apparel.</p> <p> <a href="http://www.wix.com/" title="Website Builder"><img alt="free website builder" border="0" src="http://cdn.sixrevisions.com/0109-02_webdesigners_vs_webdevelopers_infographic_remix.jpg" title="free website" width="750" /></a></p> <p> &nbsp;</p> <p> Web Designers vs Web Developers is brought to you by Wix.com<br /> Use creative design to make a <a href="http://www.wix.com">Free Website</a><br /> You are most welcome to share this infographic with your audience.</p> infographic Mon, 17 Oct 2011 18:15:35 +0000 Simon Vreeswijk 1041 at http://www.northstudio.com How the Patent War is Stifling Innovation in Silicon Valley [INFOGRAPHIC] http://www.northstudio.com/blog/20111003/how-patent-war-stifling-innovation-silicon-valley-infographic <p> Patents were invented to protect innovation, but they are being used as weapons by the evil tech companies and dreaded patent trolls to stifle it. Whether buying up patents to protect against lawsuits, or amassing them in order to sue others, these villains have prioritized profit over creation.</p> <p> <a href="http://www.mbaonline.com/patents/"><img alt="Patents" border="0" src="http://images.mbaonline.com.s3.amazonaws.com/patents.jpg" width="750" /></a><br /> Created by: <a href="http://www.mbaonline.com/">MBA Online</a></p> Mon, 03 Oct 2011 18:19:35 +0000 Simon Vreeswijk 1040 at http://www.northstudio.com Tech Jobs: What You Need to Know to Land a Job at Google, Apple, or Facebook [INFOGRAPHIC] http://www.northstudio.com/blog/20110927/tech-jobs-what-you-need-know-land-job-google-apple-or-facebook-infographic <p>Nearly 1 in 4 young professionals want to work at Google. Fewer than 1 in every 250 applicants will ever end up working there, but with the right skills and the right approach, a coveted Google job could be yours.</p> <p> <a href="http://www.mastersdegree.net/tech-job/"><img alt="Tech Job" border="0" src="http://images.mastersdegree.net.s3.amazonaws.com/tech-job.jpg" width="750" /></a><br /> Created by: <a href="http://www.mastersdegree.net/">Masters Degree</a></p> apple facebook google Tue, 27 Sep 2011 21:34:41 +0000 Simon Vreeswijk 1039 at http://www.northstudio.com Droid vs iOS: Battle of the Smartphone Operating Systems [INFOGRAPHIC] http://www.northstudio.com/blog/20110913/droid-vs-ios-battle-smartphone-operating-systems-infographic <p> Droid vs iOS: Battle of the Smartphone Operating Systems. This infographic explains the differences between Android users and iPhone users, which side are you on?</p> <p> <img alt="" class="imagecache-post_full_width" src="http://www.northstudio.com/sites/default/files/imagecache/post_full_width/images/blog/droid-vs-ios.jpg" title="" /></p> android apple Tue, 13 Sep 2011 18:20:52 +0000 Simon Vreeswijk 1038 at http://www.northstudio.com The Internet of Yesterday & Today - 1996 vs 2011 [INFOGRAPHIC] http://www.northstudio.com/blog/20110909/internet-yesterday-today-1996-vs-2011-infographic <p>Do you miss GeoCities? Yeah, me neither. Check out the difference between the internet today and in 1996 in this infographic.<p> <a href="http://www.onlineuniversity.net/1996-vs-2011/"><img border="0" src="http://images.onlineuniversity.net.s3.amazonaws.com/1996-vs-2011.jpg" width="750" /></a><br /> Created by: <a href="http://www.onlineuniversity.net/">Online University</a></p> Fri, 09 Sep 2011 22:41:41 +0000 Simon Vreeswijk 1037 at http://www.northstudio.com Vancouver Riots [360 INTERACTIVE VIDEO] http://www.northstudio.com/blog/20110616/vancouver-riots-360-interactive-video <div align="center"> <iframe width="620" scrolling="auto" height="400" frameborder="0" src="http://www.northstudio360.com/virtualtours/vancouverriot2/" style="border: 0 none; z-index:10 "></iframe> </div> <p> Our interactive media division <a href="http://www.northstudio360.com" target="_blank">northStudio360</a> was in Vancouver to film what we expected to be a fun event. Previous game nights had in fact gone exceptionally well. The city of Vancouver and the police had taken every measure to make this a fun event.</p> <p> The actions of a proportionally few people spoiled it all, made us look like poor losers and shamed our beautiful city.</p> <p> Our new 360 video technology uniquely captures the entire environment giving a broader context and perspective. More video to follow in the next few days as the raw footage is gone through</p> <p> <img alt="" class="imagecache-post_full_width" src="http://www.northstudio.com/sites/default/files/imagecache/post_full_width/images/blog/vancouver-riot.jpg" title="" /></p> Thu, 16 Jun 2011 18:33:17 +0000 Simon Vreeswijk 1015 at http://www.northstudio.com Wildest stories of building websites in my 12 years of Web Dev! http://www.northstudio.com/blog/20110615/wildest-stories-building-websites-my-12-years-web-dev <p> <img align="right" alt="" border="2" class="imagecache-post_small" src="../../sites/default/files/imagecache/post_small/images/blog/say20what20title.jpg" title="" /></p> <p> <strong>Wanna hear the wildest stories of building websites in my 12 years of worki</strong><strong>ng in the web development indusry?</strong></p> <p> Here it goes, in no apparent order. Yer gonna love this random selection of actual true stories!<br /> <br /> <strong>Best questions from clients:</strong><br /> <br /> 1. <strong>Power off</strong><br /> <br /> &quot;My computer wont turn on&quot; (flag #1: it starts too innocently).<br /> <br /> Me: &quot;Well, is it plugged in?&quot;<br /> <br /> &quot;Yes,&quot; he says.<br /> <br /> To make a long story short, he finally says, &quot;None of the buttons will turn my computer on&quot; and I say &quot;buttons? Is your keyboard in front of you?&quot;<br /> <br /> He says &quot;well, yeah, it&rsquo;s in my hand!&quot;, to which I reply &quot;in your hand?&rdquo;<br /> <br /> Him: &quot;well, yeah I am pushing the power button and it won&#39;t turn on.&rdquo;<br /> <br /> I ask, &quot;Do you have your TV controller in your hand?&quot; and he says, &quot;Well I, well, umm, and a few more words I could not really hear,&quot; and then&mdash;click&#8211; he hangs up.<br /> <br /> <strong>2. Random phone call</strong><br /> Client: &quot;Can you help me please!?&quot;<br /> <br /> Me: &quot;What is happening?&quot;<br /> <br /> Client: &quot;Well um, well, I was on this website and clicked on something and my wife will be home in 5 minutes and if she sees this she will divorce me!&quot;<br /> <br /> Me: &quot;Sees what?&quot; I asked.<br /> <br /> Client:&nbsp; &ldquo;Well I clicked on this link and now my pointer is a giant penis and it&#39;s spouting, and my icons are all female body parts, and I don&#39;t know what to do! She&#39;ll be here in 3 minutes now!&rdquo; He frantically begs for help.<br /> Me: &ldquo;You have one option! Pull the plug and get the computer out of the house!&rdquo;<br /> <br /> <strong>3. Only if I had a time machine</strong><br /> <br /> &ldquo;Can you build my sixty-site Drupal installation and have it ready by Wednesday?&rdquo; It was Friday.<br /> <br /> <strong>4. General Conversation with a client</strong><br /> <br /> Me: &ldquo;Hi, How can I help you?&rdquo;<br /> <br /> She says, &quot;Well, I want to hook my webcams up to my website, etc. etc. I live in Colorado and I have some amazing views of the mountains.&quot;<br /> <br /> I said, &quot;Cool, that&#39;s easy to do&quot;. This was back in the day where people wanted to know if you actually had an office so I was accustom to saying, &ldquo;Hey, we have a webcam too, so go to this URL and check us out.&rdquo; I asked her, &ldquo;what are you showing with your webcams? Views of the mountains? as she had been talking about them and the amazing views from her place&quot;<br /> <br /> She said, &quot;uh well no, I have this S&amp;M thing going on so, well, whips, chains, that kinda thing.&quot;<br /> <br /> I said, &quot;Oh, sounds like you are into some creative loving!&quot; What else do you say?<br /> <br /> Her reponse:<br /> &quot;Well, it&#39;s creative till they get out of hand and then I just whack them!&rdquo;<br /> &nbsp;&nbsp; &nbsp;&bull;&nbsp;&nbsp; &nbsp;Silence&hellip;</p> <p> <strong>Stay tuned for the continuing saga of Boags life in Web Development!</strong></p> <p> <br /> &nbsp;</p> Wed, 15 Jun 2011 18:10:51 +0000 Chris Boag 1014 at http://www.northstudio.com LayoutStudio Extras Automatic Sub-theme Creator Now Enabled http://www.northstudio.com/blog/20110526/layoutstudio-extras-automatic-sub-theme-creator-now-enabled <p> With the recent release of <a href="http://drupal.org/drupal-7.2">Drupal 7.2</a>, <a href="http://drupal.org/node/1019834">a small bug has been fixed</a> to that didn&#39;t permit our sub-theme creator to, well, create sub-themes with our <a href="http://drupal.org/project/layoutstudio_extras">LayoutStudio Extras module</a>.</p> <p> Now that&#39;s been fixed, we are happy to report the release of <a href="http://drupal.org/node/1170128">LayoutStudio Extras 1.1</a> for Drupal 7 with the sub-theme creator now enabled and ready to go. You&#39;ll never want to manually create a sub-theme again!</p> <p> FYI, for drush fans, the module also creates a drush command that will allow you to quickly create LayoutStudio sub-themes from the command line.</p> drupal layoutstudio theming Thu, 26 May 2011 21:56:00 +0000 Rene Hache 963 at http://www.northstudio.com What Makes Websites Click? http://www.northstudio.com/blog/20110506/what-makes-websites-click <p> Let me set the scene: You&rsquo;ve just called a certain major utility company (who shall remain unnamed) because you want to switch to online billing. They set up your account, but when you try to log in, it fails. You try again, even try the password recovery option, but still no luck. Your account doesn&rsquo;t exist.</p> <p> So, you call the company back and wait on hold for 52 minutes (you time it). The customer service agent can&rsquo;t find your account either, and after being passed from agent to supervisor to manager, you&rsquo;re told they couldn&rsquo;t find your account because&mdash;wait for it&mdash;whoever set it up didn&rsquo;t capitalize your first name.</p> <p> Website fail. And sadly, a true story.</p> <p> This is an extreme example of web usability gone awry, but the principle remains the same. You can do all the tweaking you want to your website design, but you won&rsquo;t know it actually works until people start using it.</p> <p> As with any business, it&rsquo;s tough to watch customers repeat the same, simple mistakes over and over again. So in a most recent newsletter from UserTesting.com, they compiled a &ldquo;<a href="http://www.usertesting.com/email/e011-newsletter.html">Critical Mistakes of 2011</a>&rdquo; list, accompanied by video evidence. The videos lack the fiery frustration of real user experiences (keyboarding throwing, mouse slamming, cursing, etc), but they do a great job of showcasing the common mistakes made by websites.</p> <p> Most companies would be hesitant to send out the year&rsquo;s highlights in May, but something like this can&rsquo;t wait. These usability flaws might seem minor, but to real users, they&rsquo;re frustrating, annoying and a great reason to leave the site and shop somewhere else.</p> <p> For more info, the US government has a neat site (Usability.gov) that&rsquo;s intended for government web designers, but it&rsquo;s the best one-stop usability resource I&rsquo;ve found. It has great tips, methods and stats and goes in-depth on things you might not think about, like how colour-blindness affects usability.</p> <p> If you&rsquo;re more of the visual type, you can always check out UserTesting.com&rsquo;s &ldquo;<a href="http://www.youtube.com/user/webbloopers">Worst of the Web</a>&rdquo; YouTube channel, which contains a seemingly endless number of web bloopers. There are some funny ones, like when a woman did a Google image search for &ldquo;Mexican lowriders&rdquo; (don&rsquo;t ask me why) and found a photo of an evil-looking snowman cookie labeled &ldquo;EBay.com animated low-rider Christmas motorcycle dachshund.&rdquo; She clicked on it (who wouldn&rsquo;t) and was taken to a &ldquo;Reported Attack Page.&rdquo; Amusing.</p> <p> But my personal favourite is the one about creating a new private message in Facebook, and how you can&rsquo;t move the message box out of the way if you want to copy and paste what&rsquo;s behind it, or even just read the open inbox message.&rdquo; It&rsquo;s so true, and until I saw the video I thought I was the only one bothered by this.</p> <p> I&rsquo;m not going to boycott Facebook over this because that would put me in the &ldquo;high maintenance&rdquo; category, but it&rsquo;s nice to know someone else cares.<br /> &nbsp;</p> <p> Written by Stacey Santos :) (THANK YOU)</p> funny Usability Fri, 06 May 2011 19:51:32 +0000 Anne Stefanyk 953 at http://www.northstudio.com How to create template overrides for specific panel panes http://www.northstudio.com/blog/20110410/how-create-template-overrides-specific-panel-panes <p> We&#39;ve been recently using more of <a href="http://drupal.org/project/panels">Panels</a> in our Drupal projects, and for the most part it&#39;s been very rewarding as we&#39;ve been delving deeper into it.</p> <p> But one issue that I&#39;ve had with Panels recently is how to create template (tpl) overrides for a specific panel panes. There is a <span class="geshifilter"><code class="text geshifilter-text">panels-pane.tpl.php</code></span>, but that&#39;s it. You can&#39;t create a <span class="geshifilter"><code class="text geshifilter-text">panels-pane-my-pane.tpl.php</code></span> override, like you can with core template files like <span class="geshifilter"><code class="text geshifilter-text">node.tpl.php</code></span> or with views, for example. This means that you have to potentially resort to adding logic in your <span class="geshifilter"><code class="text geshifilter-text">panels-pane.tpl.php</code></span>, which we are loathe to do there.</p> <p> Well, <em>it turns out that there is a way</em>, via the magic of a preprocess function. I initially found an issue on the <a href="http://drupal.org/node/1018726">Panels issue queue</a> and a post on the <a href="http://groups.drupal.org/node/119209">Panels group</a>, but the information provided was incomplete so I figured I would provide a more thorough example here if anybody gets stuck like I did.</p> <p> In the scenario that we encountered, I was trying to insert the node title as a pane in a panel node template for a specific content type. By default, the node title panel pane was output as follows:</p> <div class="geshifilter"><pre class="html4strict geshifilter-html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;panel-pane pane-node-title&quot;</span>&gt;</span> <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/h2.html"><span style="color: #000000; font-weight: bold;">h2</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;pane-title&quot;</span>&gt;</span>Node Title<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/h2.html"><span style="color: #000000; font-weight: bold;">h2</span></a>&gt;</span> <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;pane-content&quot;</span>&gt;</span>Pane Content<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span> <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></pre></div> <p> Far from what I consider ideal semantics. What we really wanted was something like:</p> <div class="geshifilter"><pre class="html4strict geshifilter-html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;page-title&quot;</span>&gt;</span>Node Title<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a>&gt;</span></pre></div> <p> In order to achieve this ideal scenario, we need to add a preprocess function in our theme&#39;s <span class="geshifilter"><code class="text geshifilter-text">template.php</code></span> or in a custom module. Here&#39;s what worked for my particular situation:</p> <div class="geshifilter"><pre class="php geshifilter-php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> MYTHEME_preprocess_panels_pane<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$vars</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$vars</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pane'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">type</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'node_title'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$vars</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'template_files'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'panels-pane-node-title'</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span></pre></div> <p> In this case, I&#39;m specifying that if the pane is of the node title type, use the <span class="geshifilter"><code class="text geshifilter-text">panels-pane-node-title.tpl.php </code></span>template file. It&#39;s simple and very effective. You just have to replace <span class="geshifilter"><code class="text geshifilter-text">MYTHEME</code></span> with the name of your theme or module.</p> <p> Kudos to <a href="/about/team/ryan-james">Ryan James</a>, one of our great developers who helped me when I got stuck at some point.</p> drupal overrides Panels template theming Sun, 10 Apr 2011 13:37:27 +0000 Rene Hache 940 at http://www.northstudio.com Q College – We teach what we build http://www.northstudio.com/blog/20110405/q-college-we-teach-what-we-build <p> <img alt="" class="inline-image-right" src="http://www.northstudio.com/sites/default/files/imagecache/post_small/images/blog/qcollege.jpg" title="" />In 2008, the Victoria School of Business and Technology (now Q College - <a href="http://www.QCollege.ca" title="www.QCollege.ca">www.QCollege.ca</a>) made headlines when Apple claimed the school logo, an apple infringed on their trademark. The disagreement gained international attention from media outlets, including the Globe &amp; Mail, CBC, CTV, and CNN.</p> <p> We are proud to announce we&rsquo;ve taken our last bite of the Apple situation and are coming out bigger and better than ever before. Our programs have evolved to College level standards keeping in step with developing technologies including Drupal development, innovative Internet marketing techniques including social media, and application development for mobile devices. In today&rsquo;s world everyone can have access to any information, anywhere, and at any time especially so with all of our devices now talking to one another.</p> <p> Q College is also Microsoft certified and a proud member of a select and limited group of Adobe Authorized Training Centres. We offer more than a hundred courses and programs across a wide range of IT.</p> <p> As a leading-edge New Media Development Studio &lsquo;northStudio&rsquo;, we have pioneered a one-of-a-kind government registered College catering to government clients, businesses looking to train, or retrain their staff, educational facilities and students looking to enter the IT industry with style, confidence and job ready skills.</p> <p> Wordwide, only Q College delivers Drupal based web development Diplomas. Many of our designers, programmers, themers and developers have been recruited from the top 2% of our own graduates. Marketing firms, and Drupal shops across North America regularly seek out our graduates. We now even train, and deliver tech-support to both larger corporations with in-house web development teams as well as some of northStudio&rsquo;s web development competitors!</p> <p> Drupal Schoolhouse &ndash; the newest addition to the northStudio family &ndash; together with Q College (<a href="http://www.DrupalSchoolHouse.ca" title="www.DrupalSchoolHouse.ca">www.DrupalSchoolHouse.ca</a>) provides Drupal Training from coast to coast in Canada. In an exclusive partnership with <a href="http://www.Acquia.com" title="www.Acquia.com">www.Acquia.com</a> we host popular public and private training workshops in every major city in Canada.</p> <p> Our annual Summer Drupal Training Camp held here in Victoria at Q College draws Drupal developers from everywhere on the planet!<br /> &nbsp;</p> drupal Q College Training Tue, 05 Apr 2011 17:33:11 +0000 Anne Stefanyk 938 at http://www.northstudio.com The northStudio team does it again! GOYAdeal.com http://www.northstudio.com/blog/20110330/northstudio-team-does-it-again-goyadealcom <p> <img alt="" class="imagecache-post_full_width_thin" src="http://transfer.northstudio.com/sites/default/files/imagecache/post_full_width_thin/images/blog/todays_feature_deal__goyadeal_20110406.jpg" title="" /><br /> We are very excited and so proud to have launched GOYAdeal.com! This was a full team effort, with developers Saren, Amelia, Gregg, Ryan, designer Vanda, and project manager Candace fully immersed in this project for months. The team from <a href="http://www.stikkymedia.com">Stikky Media</a> was all over this one too, with social media set ups, training, search engine optimization and copywriting for the website.<br /> <br /> This Drupal site features daily newsletter updates, time-featured deals, text message coupons, a blog and an iPhone app that is currently being developed.<br /> <br /> Check it out at <a href="http://www.goyadeal.com">GOYADeal.com</a><br /> &nbsp;</p> Wed, 30 Mar 2011 21:59:23 +0000 britt 936 at http://www.northstudio.com Big Announcement, Big Party http://www.northstudio.com/blog/20110325/big-announcement-big-party <p> We have an announcement!</p> <p> 

If you thought you could keep reading to find out what it is, sorry, it&rsquo;s far too special to reveal in a blog. But don&rsquo;t worry&mdash;we&rsquo;re throwing a party in its honour! There&rsquo;ll be free food, drinks, live music and tens of thousands of dollars in tuition and prizes.

</p> <p> Where: 301-771 Vernon Ave
</p> <p> When: Saturday April 2nd, from 12 to 3pm

</p> <p> Here&rsquo;s a bit of back story: 

In 2008, a little piece of fruit caused a big stir. The Victoria School of Business and Technology (VSBT) made headlines when Apple accused them of infringing on their trademarked logo.

</p> <p> They got international attention from media including CBC, CTV, CNN and the Globe &amp; Mail. Check out this <a href="http://www.youtube.com/watch?v=r4JtwUsvS6w">video</a> from CTV news (which actually features Chris Boag, not Dieter Gerhard). 

It doesn&rsquo;t matter whose side you&rsquo;re on&mdash;it&rsquo;s all in the past.</p> <p> It&rsquo;s now three years later and we have an exciting announcement that&rsquo;s 100% our own.

 Along with the aforementioned food, drinks and music, here&rsquo;s what we&rsquo;re giving away:<br /> &bull;&nbsp;&nbsp; &nbsp;1 iPad<br /> &bull;&nbsp;&nbsp; &nbsp;10 &nbsp;$1,000 scholarships for VSBT&rsquo;s Web Development and Internet Marketing Program<br /> &bull;&nbsp;&nbsp; &nbsp;10 &nbsp;$1,000 scholarships for VSBT&rsquo;s Drupal Open Source Development Program<br /> &bull;&nbsp;&nbsp; &nbsp;9 hours of custom training from northStudio<br /> &bull;&nbsp;&nbsp; &nbsp;1 Drupal-in-a-Day Seat (Victoria or Vancouver session) courtesy of Drupal SchoolHouse<br /> &bull;&nbsp;&nbsp; &nbsp;1 ticket to Drupal Camp Victoria courtesy of northStudio<br /> &bull;&nbsp;&nbsp; &nbsp;1 pair of Zipline tickets courtesy of WildPlay<br /> &bull;&nbsp;&nbsp; &nbsp;A two-night stay at Birds of a Feather Bed and Breakfast<br /> &bull;&nbsp;&nbsp; &nbsp;A copy of &ldquo;Fabulous Fairholme: Breakfasts and Brunches&rdquo; courtesy of Fairholme Manor<br /> &bull;&nbsp;&nbsp; &nbsp;3 Book + DVD packs courtesy of DreamHealer<br /> &bull;&nbsp;&nbsp; &nbsp;All natural skin care products from Earth to Body<br /> &bull;&nbsp;&nbsp; &nbsp;1 GoPro Camera courtesy of northStudio360<br /> &bull;&nbsp;&nbsp; &nbsp;1 Safe Sex Pack courtesy of Condoms West<br /> &bull;&nbsp;&nbsp; &nbsp;1 Gift Certificate courtesy of Cat&#39;s Cottage<br /> (Scholarships and course prizes are not available to currently enrolled students&mdash;sorry!)<br /> 
</p> <p> For more chances to win, RSVP on our <a href="http://www.facebook.com/victoriaschool">Facebook event page</a>. We&rsquo;ll pull 3 names from the &ldquo;Attending&rdquo; list and award each winner one of the following prizes:<br /> <br /> &bull;&nbsp;&nbsp; &nbsp;$100 Future Shop gift card<br /> &bull;&nbsp;&nbsp; &nbsp;1 pair of Zipline tickets, courtesy of WildPlay<br /> &bull;&nbsp;&nbsp; &nbsp;1 $1000.00 scholarship for our revamped &quot;Web Development and Internet Marketing&quot; Certificate course.<br /> <br /> Don&rsquo;t forget, you must be at the party to claim your goodies. See you there!</p> Fri, 25 Mar 2011 16:53:02 +0000 britt 935 at http://www.northstudio.com Day 2 - Drupalcon Chicago http://www.northstudio.com/blog/20110309/day-2-drupalcon-chicago <div class="field field-type-emvideo field-field-shared-video shared-video"> <div class="emvideo emvideo-video emvideo-vimeo"><div id="media-vimeo-1" class="media-vimeo"> <iframe src="http://player.vimeo.com/video/20839707?fullscreen=1&show_title=0&show_byline=0&show_portrait=0&autoplay=0" width="760" height="428"></iframe> </div> </div> </div> <p> Field Museum Party!!! Okay, let me back up&#8230;. The day started with Dries Buytaert, creator of Drupal as the key note speaker. He addressed where Drupal was and where it&#39;s going or should I say GROWING!</p> <p> Once this concluded we were provided lunches sponsored by Google where we got to network with friends we met at the Drupalcon San Fran last year.</p> <p> Good talks and good eats was followed by an afternoon of sessions. Yes, my brain continues to take on and store a wealth of knowledge from all the amazing speakers.</p> <p> Although, my brain was in overdrive we were off to the official Drupalcon after party - and was it ever a party! The Chicago Field Museum was the location and words or pictures cannot describe the scene. That&#39;s why I&#39;ve added a video to do the talking. ;)</p> <p> Enjoy!<br /> &nbsp;</p> drupalcon Wed, 09 Mar 2011 19:59:21 +0000 candace 933 at http://www.northstudio.com Day 1 - Drupalcon Chicago http://www.northstudio.com/blog/20110307/day-1-drupalcon-chicago <p> <img alt="" src="http://www.northstudio.com/sites/default/files/images/blog/img_0055.jpg" title="" /></p> <p> Rise and shine it&#39;s Drupalcon Day 1!&nbsp; Would you believe we woke to a phone call from <a href="http://www.northstudio.com/about/team/chris-boag">Chris Boag</a>?!&nbsp; True story, lol.</p> <p> <a href="http://www.northstudio.com/about/team/anne-stefanyk">Anne Stefanyk</a> and I started the day in the fitness room at the Hard Rock Hotel&#8230;. Then thanks to <a href="http://www.northstudio.com/about/team/gord-christmas">Gord Christmas</a> went to a greasy spoon diner for breakfast.&nbsp; That might be a fail, lol.</p> <p> <a href="http://www.northstudio.com/sites/default/files/images/blog/img_0052.jpg" rel="lightbox[group1][]"><img alt="" class="inline-image-right" src="http://www.northstudio.com/sites/default/files/imagecache/inline_image/images/blog/img_0052.jpg" title="" /></a> After breakfast we were off to the <a href="http://www.sheratonchicago.com/" target="_blank">Sheraton Hotel Chicago</a>, (the host hotel) to kick things off!&nbsp; At registration we were handed eco goodie bags full of promotional material.&nbsp; And, any attendee that got their hands on <a href="http://drupalwatchdog.com/" target="_blank">Drupal Watchdog </a>would have seen our northStudio, <a href="http://schoolvictoria.com" target="_blank">VSBT</a>, and <a href="http://www.drupalschoolhouse.ca/" target="_blank">Drupal Schoolhouse</a> ads.&nbsp; As you can see, they certainly stood out - nice work <a href="http://www.northstudio.com/about/team/vanda-malefyt">Vanda Malefyt</a>!</p> <p> With full bellies and goodies in hand we were scheduled to attend the <a href="http://acquia.com/" target="_blank">Acquia</a> partners meeting where Acquia addressed the latest and greatest on everything Drupal.</p> <p> Hours later we are back at the hotel to Monday morning PST emails and scheduled Skype calls.&nbsp; Dinner with the <a href="http://imagexmedia.com/" target="_blank">Image X Media</a> team is on deck!</p> drupalcon Mon, 07 Mar 2011 23:50:44 +0000 candace 932 at http://www.northstudio.com Landed - Drupalcon Chicago http://www.northstudio.com/blog/20110307/landed-drupalcon-chicago <p> We&#39;ve landed on Drupal soil!&nbsp; Hello Chicago and Drupalcon 2011!</p> <p> One car ride, two planes, a taxi, and we&#39;re exhausted.&nbsp; We&#39;ll be up early tomorrow for the breakfast buffet at the Hard Rock Hotel and then off to the Acquia Partner&#39;s meeting.</p> <p> Stay tuned for more on our North American Drupal adventure&#8230;.</p> drupal Mon, 07 Mar 2011 07:55:26 +0000 candace 931 at http://www.northstudio.com Block System for Drupal 6 http://www.northstudio.com/blog/20110225/block-system-drupal-6 <p> <strong>UPDATE:</strong> The code has been updated so that if you add extra cck fields into the block content type the query_alter should still function properly.</p> <p> Blocks are a fundamental part of any good Drupal website. How though, does one give a client access to change the block contents without giving them &quot;administer blocks&quot;?</p> <p> We have used various techniques but our CTO, Gord, recently came up with a great idea. His idea was to create a view with a group block displays using a content type &quot;block.&quot; This content type is given a few cck fields<span id="internal-source-marker_0.005750295781983494">&mdash;</span>&quot;weight,&quot; &quot;region&quot; and &quot;pages&quot;. The view sorts by &quot;weight&quot; and uses &quot;pages&quot; as an argument. A block display exists for each region.</p> <p> <a href="http://www.northstudio.com/sites/default/files/images/blog/create_static_block.jpg" rel="lightbox[group1][]"><img alt="" class="inline-image-left" src="http://www.northstudio.com/sites/default/files/imagecache/inline_image/images/blog/create_static_block.jpg" title="" /></a>To load this view we create a custom block that displays the view programatically. The custom block passes the currently viewed page to the view as an argument. Any block nodes with that path set in their &quot;pages&quot; field will be returned.</p> <p> You can see on the left image that with some customization, this system supports wildcards such as about/* and the options &lt;front&gt; and &lt;all&gt;.</p> <p> How is this done? Let&#39;s look at the code used in this module.</p> <p> Firstly we use <span class="geshifilter"><code class="text geshifilter-text">hook_block()</code></span> to define a set of 5 blocks. One issue using this technique is there is the potential that on every page load there is a query for every block assigned a region. We don&#39;t want this, so we give our custom blocks caching with <span class="geshifilter"><code class="text geshifilter-text">BLOCK_CACHE_PER_PAGE</code></span>. Since these blocks are used differently on each page, this will allow them to be cached while ensuring each page has a chance to be execute its query.</p> <p> <a href="http://www.northstudio.com/sites/default/files/images/blog/edit_view_ns_block_system.jpg" rel="lightbox[group1][]"><img alt="" class="inline-image-left" src="http://www.northstudio.com/sites/default/files/imagecache/inline_image/images/blog/edit_view_ns_block_system.jpg" title="" /></a>The next image shows the view setting we use for this technique. We create a block display for each custom block created with <span class="geshifilter"><code class="text geshifilter-text">hook_block()</code></span>. Each display corresponds to a region. These regions are not initially assigned<span id="internal-source-marker_0.005750295781983494">&mdash;</span>they first need to be dragged into their appropriate regions<span id="internal-source-marker_0.005750295781983494">&mdash;</span>then the available options within the &quot;region&quot; cck field can be renamed to match. For example, if the block &quot;Dynamic Block Region 1&quot; was assigned to the tertiary region, this title should be renamed &quot;Tertiary Region&quot; within the &quot;region&quot; cck field. Blocks that aren&#39;t assigned any region can be deleted from the &quot;region&quot; field.</p> <p> Once we have the view, the block content type and our blocks assigned, we are most of the way there. The only things not supported at this stage are wildcards and the &lt;all&gt; page. To incorporate these, we use hook_views_query_alter() as follows:</p> <div class="geshifilter"><pre class="php geshifilter-php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000000; font-weight: bold;">function</span> northstudio_block_system_views_query_alter<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$view</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$view</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'ns_block_system'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$num</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'args'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'args'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$num</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'args'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$num</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'&lt;all&gt;'</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/strpos"><span style="color: #990000;">strpos</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$parts</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/explode"><span style="color: #990000;">explode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$num_parts</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$num</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$num_parts</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$num</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$last_part</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$part</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$last_part</span><span style="color: #339933;">.</span><span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$num</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$part</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$num</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #000088;">$query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'args'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$part</span><span style="color: #339933;">.</span> <span style="color: #0000ff;">'*'</span><span style="color: #339933;">;</span> <span style="color: #000088;">$last_part</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$part</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$num_parts</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #000088;">$query_parts</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$num_parts</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$query_parts</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;'<span style="color: #009933; font-weight: bold;">%s</span>'&quot;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #000088;">$query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'clauses'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$num</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;node_data_field_block_pages.field_block_pages_value IN (&quot;</span><span style="color: #339933;">.</span><a href="http://www.php.net/implode"><span style="color: #990000;">implode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">','</span><span style="color: #339933;">,</span><span style="color: #000088;">$query_parts</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;)&quot;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div> <p> The main purpose of this function is to recursively go through the current path and return all portions with a wildcard. For example, if the block was triggered from about/staff/bob/history, the query_alter would send the following to the view as arguments:</p> <ul> <li> &lt;all&gt;</li> <li> about/staff/bob/history</li> <li> about/staff/bob/*</li> <li> about/staff/*</li> <li> about/*</li> </ul> <p> The last function we use is <span class="geshifilter"><code class="text geshifilter-text">hook_preprocess_block()</code></span>. What we do here is remove the title portion of the block. This code may depend on your block.tpl.php file and therefore may need to be adjusted. Removing this bit of html ensures the block is not displayed when the view returns nothing.</p> <p> We have packaged up this code in a <a href="http://drupal.org/project/features">features</a> module. Here is a list of installation instructions:</p> <ol> <li> Upload and enable the module.</li> <li> Move the custom blocks into the required regions.</li> <li> Edit the block content type &quot;region&quot; field<span id="internal-source-marker_0.005750295781983494">&mdash;</span>change the names of the regions to reflect the actual regions used.</li> <li> <strong>Important: </strong>In order to not have these nodes appearing in search results the content type should be edited as follows: Uncheck all options under Workflow settings and disable commenting. The nodes do not need to be published to be displayed as blocks. Features do not yet export these options so for now they need to be done manually.</li> </ol> <p> The module follows below. If you have any questions just post a comment.</p><div class="field field-type-filefield field-field-blog-files"> <div class="field-label">Files:&nbsp;</div> <div class="field-items"> <div class="field-item odd"> <div class="filefield-file"><img class="filefield-icon field-icon-application-zip" alt="application/zip icon" src="http://www.northstudio.com/sites/all/modules/filefield/icons/package-x-generic.png" /><a href="http://www.northstudio.com/sites/default/files/northstudio_block_system.zip" type="application/zip; length=13659">northstudio_block_system.zip</a></div> </div> </div> </div> http://www.northstudio.com/blog/20110225/block-system-drupal-6#comments blocks drupal 6 features views Fri, 25 Feb 2011 21:56:38 +0000 Saren 930 at http://www.northstudio.com Another Week of a New Adventure! http://www.northstudio.com/blog/20110215/another-week-new-adventure <p> A week has passed since my time started here at northStudio. In my experience I find that the first week is crucial in developing your foundation somewhere. So what are my thoughts after my first week?</p> <p> <em>&quot;What have I gotten myself into?&quot;</em></p> <p> Haha! No, in all honesty it&#39;s been a great week!</p> <p> In the world of technology, every day is a chance to learn something new, whether you&#39;re a beginner or a veteran. I&#39;ve been taking that to heart, and absorbing as much as possible.</p> <p> Mainly I have been assisting other developers with their projects. Small amounts of theme work and development. Typically things I am familiar with from my training class. The biggest curveball for me has probably been the use of an SVN repository.</p> <p> Subversioning (SVN) is used to make sure that all developers are working on the most up to date files. Basically by keeping all the files in one central location, it can check for updates from everyone, and keep everything working smoothly. The last thing you want in a big studio is to have everyone overriding each other&#39;s work!</p> <p> Of course working alone from home, and even the work I did in class never required it. When you have the only copy of a file, you don&#39;t think to use something like a repository. Needless to say it has taken a little while to get accustomed to, but it&#39;s fantastic. A great way to save the bacon of a new person! No accidently deleted/broken files for me :)</p> <p> So, I have survived my first week, and I&#39;m even more excited than before for what&#39;s to come!</p> <p> What can I learn next?</p> <p> &nbsp;</p> <p> <em><span class="body">&quot;Getting information off the Internet is like taking a drink from a fire hydrant.&quot;</span><span class="bodybold"> - Mitchell Kapor </span> </em></p> Tue, 15 Feb 2011 22:16:59 +0000 Amelia 928 at http://www.northstudio.com Ashley in Tech http://www.northstudio.com/blog/20110214/ashley-tech <p> &ldquo;Ashley, what do you mean you don&rsquo;t know how to log into your Hotmail account!?&rdquo;&hellip;</p> <p> 

That is a question I heard frequently throughout my youth, often with not-so-hidden tones of exasperation. You see, I am one of those wacky people who grew up in the age of generation y, and yet remained for many years &ldquo;all-things-internet-illiterate.&rdquo; 

</p> <p> That is until Facebook got me.</p> <p> This is my story&hellip;

In early 2007 I signed onto the popular social site for the first time. My initial use was awkward, I was unsure of what to post and often resorted to cheesy quotes or pointless status updates that usually looked something like this:</p> <p> 9:45am: Ashley is walking to the store, back in 5

</p> <p> Shortly followed by

 9:51am: Ashley back now, took 6 minutes stubbed my toe</p> <p> 
Thanks to my friends, I have outgrown that annoying method of T.M.I posting. 

Sticking my nose into social media is turning out to be quite the exciting experience! 
With the guidance and support of the wonderful community at northStudio, my level of experience with other venues of social media is increasing at an amazing rate! The sheer complexity of usage and implementation of relationships on sites such as Twitter, YouTube, &amp; Linkedin amazes me.<br /> <br /> To broaden my knowledge on the subject of social media, I took a trip down to San Francisco to attend Social Media Week. This biannual 5-day conference is hosted across the world in major cities including New York, Paris, Istanbul, San Fran and many other places.</p> <p> 

The event organizers for SMWSF were well prepared for the week and they covered a wide range of topics with the seminars chosen&mdash;everything from micro blogging to social media and travel, with many stops between. The &ldquo;Girls in Tech&rdquo; seminar was a personal favorite of mine. Listening to the panel of women converse about their journey in the tech sector was refreshing and inspiring.</p> <p> 

I have come away from the conference feeling way more confident in my skills of creating and managing my online persona in a professional and effective manner. The knowledge shared by social media gurus on how to build and maintain personal relationships, both virtually and not, was invaluable and has already begun to pay! After attending numerous events, all with the common thread of social media spun throughout, I would say that SMWSF was an event well worth visiting.

</p> <p> It would seem that my online persona AshleyAOriginal is here to stay. In the span of 4 years, I have gone from &ldquo;tech-illiterate&rdquo; to &ldquo;tech-junkie&rdquo; with no signs of slowing down anytime soon! 

</p> <p> Thank you northStudio for having me on your team!</p> Mon, 14 Feb 2011 18:03:14 +0000 ashley 926 at http://www.northstudio.com A Developer's Experience http://www.northstudio.com/blog/20110207/developers-experience <p> What is life really like for a newbie in northStudio? Ever wondered what really goes on behind the scenes, or how to get involved in this business?</p> <p> Well, it&#39;s time for some insight!</p> <p> I came to northStudio, fresh out of training at the Victoria School of Business &amp; Technology (VSBT). A perfect example of where you can go if you set your mind to it. Just half a year ago things such as HTML, Drupal, and CMS meant absolutely nothing to me. I was a nerd at heart, but with no prior experience in the world of websites.</p> <p> My interest was there, but in such a fast paced industry it&#39;s hard to get anywhere without training and guidance. So after some hunting and exploring I eventually found myself at VSBT, diving straight into their Web Design &amp; Internet Marketing course. It was exciting being back at school, especially finding myself in a class with like-minded individuals and friendly instructors.</p> <p> Originally my intention was to take the first course, and see then see where I wanted to go from there. Of course as the class progressed I became hopelessly addicted. I lived and breathed HTML and CSS, in and out of the course. All I could ever think about was what we were learning next, or perfecting that new technique we learned. I even found myself assisting my classmates, trying to solve problems and understand everything around me.</p> <p> Once that ended, I just couldn&#39;t stop. I jumped straight into their Drupal course, suddenly determined to go as far as I could. My instructor Karen Smallwood only helped further my passion for it, encouraging me to push further and have faith in my skills.<br /> Once it came time to put our skills to the test and create our own sites, I had already completed my first one, too eager to wait until &quot;project time&quot;. So I ended up creating a second website, just to pass the time.</p> <p> What did I do once I obtained my Diploma? Apply at northStudio of course! Where better to strive for than the place that helped me get to where I am. To work with the people who encouraged me, and gave me the courage to push ahead.</p> <p> That brings us to today, the start of my career here.</p> <p> My first day in northStudio started out with the usual meet and greet. Getting to know the faces of the studio, and learning my way around. Once comfortable, it was time to dive right in. Paired up with the great Saren Calvert, I followed along and assisted in some work. Observing his methods and adding my input wherever possible.</p> <p> It&#39;s a fast paced world; Exciting and delightfully nerdy. There is still plenty to learn and lots to grow with, but being surrounded by an amazing group of people makes the transition that much smoother.</p> <p> So to all you computer nerds and artists looking for a place to be, consider joining us Web Ninjas. The internet needs more Code Superheroes and Design Gods!</p> <p> Until next time!</p> <p> ~ Amelia Bennett</p> drupal studio Tue, 08 Feb 2011 01:25:04 +0000 Amelia 924 at http://www.northstudio.com Free Wordpress Themes Warning! http://www.northstudio.com/blog/20110207/free-wordpress-themes-warning <p> This pretty scary article from <a href="http://wpmu.org/why-you-should-never-search-for-free-wordpress-themes-in-google-or-anywhere-else/" target="_blank">Wordpressmu.org</a> illustrates some of the pitfalls you may encounter while looking around for a suitable free theme for your Wordpress site. According to the research&nbsp;in the article nine out of the top ten google results for the search term &quot;Free WordPress Themes&quot;&nbsp;directs you to sites allowing you to download free themes that have been tampered with and have had malicious code or malware inserted.</p> <p> Here at northStudio we develop and maintain a range of wordpress sites through our <a href="http://www.wordpressdevelopment.ca/" target="_blank">wordpresspro.ca</a> division although the preference in-house is to generally use the more robust and&nbsp;flexible <a href="http://drupal.org/" target="_blank">Drupal</a> Content Management System for most client websites.</p> <p> Wordpress is an excellent blogging platform and one which I worked on for a few years before migrating to Drupal.&nbsp;Something that always frustrates me about developing more complex sites with Wordpress, is that the quality of the community plugins and themes can vary greatly. There are some hugely useful and very well written plugins and themes for Wordpress but finding them usually&nbsp;involves sifting through a sea of half broken, outdated and badly written ones to find out which will work best for you (or which will work at all)</p> <p> Things improved drastically when Wordpress.org started offering a central place to download themes and plugins. User ratings and comments helped too in sifting out clearly broken plugins&nbsp;but as the entire wordpress eco-system continued to blossom and grow, so did the shady edges of cybercriminals looking for a way to target this growth. Currently estimated <a href="http://wpcandy.com/presents/a-look-at-wordpress-market-share-numbers" target="_blank">to power around&nbsp;10%</a> of the internet with upwards of 6.03 million users, its easy to see why&nbsp;hackers and spammers began to see the Wordpress eco-system as an easy target for their exploits. Another factor contributing to this vulnerability is that wordpress primarily attracts people who are looking for a simple way to set up a site or blog. As such they are not necessarily technically savvy and &nbsp;dont realise the implications of not securing a site properly, or using insecure passwords, or having the incorrect file or folder permissions set which can allow hackers easy access.</p> <p> Anyone who runs a blog on Wordpress today can attest to the barrage of spam most sites start to get within a few hours of being launched. Thankfully the tools for dealing with this spam have&nbsp;improved but there is still administrative overhead dealing with the hundreds of fake comments. A proliferation of &quot;splogs&quot; or spam blogs also flourished alongside the legitimate blogs growth with <a href="http://www.wordpress.com" target="_blank">Wordpress.com</a> recently deleting over&nbsp;800 000 splogs from its hosted blogging service.&nbsp;</p> <p> These sites are often scrapers that pull their content from publicly available RSS feeds (or illegally scrape sites) and in most cases, only exist to create&nbsp;back links and references to other sites in an attempt to improve google rankings for the targeted site. With this in mind its clear to see why the sites offering the compromised &quot;free themes&quot;&nbsp;have such high search rankings. Every person who downloads and installs one of their hacked themes on a live server, effectively ends up unintentionally linking to them and providing more&nbsp;reason for Google to see the sites as &quot;popular&quot; and &quot;relevant&quot;</p> <p class="p1"> There are a few things you can do to prevent becoming a victim of a hacked theme or plugin</p> <ul> <li> Only download wordpress themes and plugins from the official repository at <a href="http://wordpress.org/extend" title="http://wordpress.org/extend">http://wordpress.org/extend</a></li> <li> Legitimate sites offering free Wordpress themes will usually not have the word &quot;Wordpress&quot; somewhere in the url.&nbsp;WordPress is trademarked and if a site is going to violate trademarks it&rsquo;s likely to be unscrupulous about inserting spam and other code into themes</li> <li> Always use secure passwords with at least one uppercase letter, one lowercase letter, a number and some punctuation</li> <li> Check the plugins usage stats to see if its a popular plugin or not and read user reviews and comments to reduce the possibility of investing time in something that does not work</li> <li> Don&#39;t download and use pirated &quot;premium themes&quot; posted on bit-torrent sites. They are almost certainly hiding nasties. If you do, you will deserve the hack or malware that will surely follow</li> </ul> <p> Finally I would like to suggest that you consider switching to Drupal. Thats not to say that similar things couldn&#39;t happen with Drupal and externally distributed themes and modules but I find that Drupal.org is much more effective at providing a central repository that effectively allows developers and end users to evaluate whether modules/ themes work, while also allowing direct communication with the module/ theme author. This reduces the need for the developers to distribute their work from their own sites.</p> <p> If you have recently downloaded a handful of free themes and set them up on your server &quot;just to see&quot;, please evaluate where they came from and if necessary re-download them from wordpress.org to make sure that you have the un-compromised versions. If testing new themes from possibly dodgy sites, remember to set them up on a local installation rather than straight onto your live server.</p> <p> I highly recommend that you <a href="http://wpmu.org/why-you-should-never-search-for-free-wordpress-themes-in-google-or-anywhere-else/">read the full article on wordpressmu.org</a> to get a better sense of how these themes are being exploited and for more practical info on how you can avoid them.</p> drupal exploits themes Wordpress Mon, 07 Feb 2011 23:43:04 +0000 Gregg Coppen 923 at http://www.northstudio.com New Site Launch: Twin Gables Bed and Breakfast http://www.northstudio.com/blog/20110204/new-site-launch-twin-gables-bed-and-breakfast <p> Twin Gables is a gracious, heritage listed Bed and Breakfast, situated in downtown Calgary. With their Canada Select 5 star rating, the Owners came to us with the vision of a site redesign that would reflect their rating status and the elegant quality of their B&amp;B.<br /> The option to build in the latest web technologies meant that the site would not only look charming but also have all the functionality of a modern site, making it faster and cleaner to use.</p> <p> Check out the Twin Gables Bed and Breakfast site in our <a href="http://www.northstudio.com/portfolio/tourism/twin-gables-bed-breakfast">portfilio</a>.<br /> &nbsp;</p> Fri, 04 Feb 2011 18:52:23 +0000 britt 921 at http://www.northstudio.com LayoutStudio Extras: Because You Have Better Things To Do! http://www.northstudio.com/blog/20110131/layoutstudio-extras-because-you-have-better-things-do <p> We are proud to announce the official release of the <a href="http://drupal.org/project/layoutstudio_extras">LayoutStudio Extras</a> for Drupal 7, a companion module to our <a href="http://drupal.org/project/layoutstudio">LayoutStudio starter theme</a>.<br /> <br /> As a Drupal themer since Drupal 4.7, I&rsquo;ve always wanted a theme that was out of my way, without much styling other than basic typography. That way, I can get to the business of coding my CSS as quickly as possible. Plus, the HTML output had to have no SEO or accessiblity compromises. Fancy features are mostly a pain in a theme&mdash;<em>especially a starter theme</em>&mdash;as trying to override them takes more time than it&rsquo;s worth having those features in the first place. All of these reasons are why we created LayoutStudio, a starter theme that met our needs with little fuss or other you-know-what that always ended up annoying us.<br /> <br /> Having said all that, some automation and features are well worth it, especially when it comes to things like sizing your layout and the overall wireframe of your site. For example, in the latest versions of LayoutStudio, we ended up adding the ability to specify your layout and your sidebar dimensions, or choosing whether or not you wanted full headers or footers. These are really good time saving features, as setting up the CSS for these can be cumbersome at best, especially when you deal with properties like negative margins.<br /> <br /> With the LayoutStudio Extras module, we bring this functionality to another level. Among the highlights:</p> <ul> <li> Create a LayoutStudio sub-theme from the Appearance page.</li> <li> Specify layout and layout dimensions changes based on path.</li> <li> Adds drush support so developers can create LayoutStudio sub-themes from the command line.</li> <li> Add a site copyright block with automatic year spanning (ie. 2009-11).</li> <li> Adds a site credit (either with text or image) block (ie. Web Development by Acme Inc).</li> </ul> <p> In particular, the ability to automate the sub-theme creation process is immensely useful. And who hasn&rsquo;t had to change (or forgotten to change) the &amp;%$#@ footer message every year simply to add another year to the copyright?<br /> <br /> Anyway, we hope you like it. <a href="http://drupal.org/project/layoutstudio_extras">Give the module a go</a> and let us know what you think in the issue queue!</p> Mon, 31 Jan 2011 20:12:05 +0000 Rene Hache 918 at http://www.northstudio.com Code & Pizza http://www.northstudio.com/blog/20110128/code-pizza <p> Congratulations! You&#39;ve made it to Friday and are only hours away from enjoying two days of freedom. Here at northStudio, we like to celebrate joyous occasions like these in a fun but knowledgable way.</p> <p> Question: How do you get 15+ programmers, developers, project managers, administration staff and social media experts in one room for over an hour? Answer: Pizza! Once we equip our hungry staff with enough pizza to feed a small army, they are ready to absorb the day&#39;s lesson. Our topics are for the most part Drupal-related and range from subjects like Aegir to new Drupal 7 features and can be anywhere from a simple menu tweak to full-on programmer gibberish.</p> <p> Today&#39;s topic, presented by one of northStudio&#39;s top developers, Shane Vincent, is about using JQuery to add random rotations. This topic is particularly interesting, as this technique can be used quite effectively on a variety of websites and is a big winner with clients.</p> <p> OK, hold on. It&#39;s about to get crazy.</p> <p> The first step is to create a View. This can be a View of anything, but images will work the best. Add your image field and any image cache preset. In your themes info file, go down to the scripts location and add the path to a new JavaScript file in the format of</p> <p> scripts[] = folder/file.js.</p> <p> Next you will need to add the following javascript to your file.js:</p> <p> document.ready(function() {<br /> &nbsp;&nbsp; $(&#39;#primary .field-field-gallery-images .field-item img&#39;).each(function(){<br /> &nbsp;&nbsp;&nbsp; var rot = Math.random()*10-5+&#39;deg&#39;;<br /> &nbsp;&nbsp;&nbsp; $(this).attr(&#39;title&#39;, rot);<br /> &nbsp;&nbsp;&nbsp; $(this).css(&#39;-webkit-transform&#39; , &#39;rotate(&#39;+rot+&#39;)&#39;);<br /> &nbsp;&nbsp;&nbsp; $(this).css(&#39;-moz-transform&#39; , &#39;rotate(&#39;+rot+&#39;)&#39;);<br /> &nbsp; });<br /> });</p> <p> The rotation of the images will be randomly rotated anywhere between -5 and +5 degrees. Also ensure there is some padding on the Views-row to ensure no images are being cut off. All CSS3 properties will fall back to defaults in IE.</p> <p> The above JQuery selector &quot;#primary .field-field-gallery-images .field-item img&quot; will have to be modified to match the row class of your View.</p> <p> To see an example of what this effect does, check out our recently launched website for Nimmo Bay Resort: <a href="http://www.nimmobay.com/media/photos/media-photos" title="http://www.nimmobay.com/media/photos/media-photos">http://www.nimmobay.com/media/photos/media-photos</a></p> <p> Thanks for checking out this blog post, and if you made it this far&#8230;well, you&#39;re now a few minutes closer to the weekend.</p> <p> Enjoy it!</p> <p> CJ -northStudio.com</p> <p> <a href="http://www.twitter.com/cjeffery66">twitter.com/cjeffery66</a></p> http://www.northstudio.com/blog/20110128/code-pizza#comments drupal Friday JQuery Lunch Fri, 28 Jan 2011 21:16:03 +0000 Chris Jeffery 915 at http://www.northstudio.com "Faceted" Searching with Views http://www.northstudio.com/blog/20110126/faceted-searching-views <p> Sometimes we want to create a faceted search environment based on views. Unfortunately views exposed filters doesn&#39;t provide the options to display facets, or &quot;filters&quot;, in the prettiest way.</p> <p> In order to have user-friendly and attractive facets we will show a technique using <a href="http://drupal.org/project/views">Views</a>, <a href="http://drupal.org/project/better_exposed_filters">Better Exposed Filters</a> and the <a href="http://drupal.org/project/ctools">Chaos Tool Suite</a>. We will also show how an exposed text field can be transformed into checkbox-based facets. See a demo <a href="http://saren.northstudio.org/events">here</a>.</p> <p> <a href="http://saren.northstudio.org/events"><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-ash1/hs885.ash1/179369_10150092279216494_117721046493_6415146_4155069_n.jpg" /></a></p> <p> Firstly we enable Views, Views UI, Better Exposed Filters and Chaos tools. We then create a view and expose a taxonomy term (id). Under the exposed filter settings we first like to change the &quot;Filter identifier&quot; to something more readable than &quot;tid&quot;, for example &quot;type&quot; or &quot;category&quot;.</p> <p> We uncheck &quot;Force Single&quot; so that multiple filters can be applied at once. We then set &quot;Display exposed filter as&quot; to &quot;checkboxes/radio buttons&quot;.</p> <p> At this point we are ready to start customizing our filters. We do this in a custom module using <a href="http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_form_alter/7">hook_form_alter</a>. Our goal is to use javascript to automatically submit the form when a checkbox is clicked. To do this we use ctools auto-submit.js script. Complete documentation exists within the file itself.</p> <p> The default auto-submit.js actually does not support checkboxes but <a href="http://drupal.org/files/issues/auto-submit-checkbox-radios.patch">this patch</a> allows for them.</p> <p> Here is an example, this would exist in mymodule_form_alter(&amp;$form, &amp;$form_state, $form_id):</p> <div class="geshifilter"><pre class="php geshifilter-php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #000000; font-weight: bold;">function</span> faceted_views_form_alter<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$form</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$form_state</span><span style="color: #339933;">,</span> <span style="color: #000088;">$form_id</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$form_id</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'views_exposed_form'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'views-exposed-form-events-page-1'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> ctools_add_js<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'auto-submit'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#attributes'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'class'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ctools-auto-submit'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'submit'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#attributes'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'class'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ctools-use-ajax ctools-auto-submit-click'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> &nbsp;</pre></div> <p> At this stage we have our exposed filters displayed as checkboxes and they auto-submit when clicked. The only thing left to do is hide the &quot;apply&quot; button. We do this with javascript so that the entire form degrades gracefully if the user&#39;s browser does not have javascript enabled. We use the following code:</p> <div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;">$(document).ready(function(){ $('.ctools-auto-submit-click').hide(); });</pre></div> <p> That is if for our initial goal.</p> <p> Another drawback of views exposed filters is that textfields cannot be rendered as a select list. In this example we use a simple cck textfield. Again we use <a href="http://api.drupal.org/api/drupal/modules--system--system.api.php/function/hook_form_alter/7">hook_form_alter</a> in our custom module to provide the required functionality. In addition we will need to use <a href="http://views2.logrus.com/doc/html/group__views__hooks.html#gf4d538493930fe0fa0ce6fb3bf42c156">hook_views_query_alter</a> to support multiple selections. Note the comments in the code for explanations.</p> <div class="geshifilter"><pre class="php geshifilter-php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/* * Implementation of hook_form_alter() */</span> <span style="color: #000000; font-weight: bold;">function</span> faceted_views_form_alter<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$form</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$form_state</span><span style="color: #339933;">,</span> <span style="color: #000088;">$form_id</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$form_id</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'views_exposed_form'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'views-exposed-form-getaway-page-2'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> ctools_add_js<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'auto-submit'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'type'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#attributes'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'class'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ctools-auto-submit'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'topic'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#attributes'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'class'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ctools-auto-submit'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'submit'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#attributes'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'class'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ctools-use-ajax ctools-auto-submit-click'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; <span style="color: #666666; font-style: italic;">// In this bit we want to convert a views exposed filter from a textbox</span> <span style="color: #666666; font-style: italic;">// to a select list. better_exposed_filters will then convert the</span> <span style="color: #666666; font-style: italic;">// select into checkboxes using javascript</span> &nbsp; <span style="color: #666666; font-style: italic;">// this works fine on the form end but we also need to modify the query</span> <span style="color: #666666; font-style: italic;">// so that views accounts for multiple cities - the query expects a single filter</span> &nbsp; <span style="color: #666666; font-style: italic;">// build a list of cities of all getaways</span> <span style="color: #000088;">$query</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT l.city FROM {node} n LEFT JOIN {location_instance} li ON (n.nid = li.nid) LEFT JOIN {location} l ON (l.lid = li.lid) WHERE n.type = 'getaway' GROUP BY l.city&quot;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> db_query<span style="color: #009900;">&#40;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; <span style="color: #000088;">$cities</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$row</span> <span style="color: #339933;">=</span> db_fetch_array<span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$cities</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$row</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'city'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> &nbsp; <span style="color: #666666; font-style: italic;">// re-do the form as select</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'city'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#type'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'select'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// this is what better_exposed_filters looks for:</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'city'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#theme'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'select_as_checkboxes'</span><span style="color: #339933;">;</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'city'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#size'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cities</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$cities</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$city</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'city'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#options'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><a href="http://www.php.net/strtolower"><span style="color: #990000;">strtolower</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$city</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/ucfirst"><span style="color: #990000;">ucfirst</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$city</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> &nbsp; <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'city'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#multiple'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// nothing works unless we change default_value from a string to an array</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'city'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#default_value'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$form</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'city'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'#attributes'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'class'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ctools-auto-submit'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span></pre></div> <p> All modification to the form are done. The only problem now is that views will only use the first argument provided. To remedy this we add a views_query_alter hook as follows, this would appear in mymodule_views_query_alter(&amp;$view, &amp;$query):</p> <div class="geshifilter"><pre class="php geshifilter-php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> faceted_views_views_query_alter<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$view</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$query</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$view</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'getaway'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$view</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">current_display</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'page_2'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">// if there are more than one city selected we need an alter</span> <span style="color: #666666; font-style: italic;">// the args already exist in the $query array but the where clause</span> <span style="color: #666666; font-style: italic;">// does not account for more than one.</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><a href="http://www.php.net/count"><span style="color: #990000;">count</span></a><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'city'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$parts</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_GET</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'city'</span><span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$city</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #000088;">$parts</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'UPPER(\'%s\')'</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">// edit the where clause to account for multiple cities</span> <span style="color: #000088;">$query</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'clauses'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'UPPER(location.city) IN ('</span><span style="color: #339933;">.</span> <a href="http://www.php.net/implode"><span style="color: #990000;">implode</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">', '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$parts</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">')'</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span> <span style="color: #009900;">&#125;</span></pre></div> <p> That is it! Comments and questions are appreciated. We attached the module used on the demo site but remember it needs to be customized to your specific needs.</p> <p> <br /> Here are screenshots of the views settings for the taxonomy terms:</p> <p> <img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs1391.snc4/164325_10150092279266494_117721046493_6415148_8208292_n.jpg" /></p> <p> A screenshot of views settings for the exposed text field.</p> <p> <img src="http://sphotos.ak.fbcdn.net/hphotos-ak-ash1/hs791.ash1/168189_10150092279306494_117721046493_6415149_4717164_n.jpg" /></p><div class="field field-type-filefield field-field-blog-files"> <div class="field-label">Files:&nbsp;</div> <div class="field-items"> <div class="field-item odd"> <div class="filefield-file"><img class="filefield-icon field-icon-application-octet-stream" alt="application/octet-stream icon" src="http://www.northstudio.com/sites/all/modules/filefield/icons/application-octet-stream.png" /><a href="http://www.northstudio.com/sites/default/files/faceted_views.tar_.gz" type="application/octet-stream; length=1371" title="faceted_views.tar_.gz">module used on demo site</a></div> </div> </div> </div> http://www.northstudio.com/blog/20110126/faceted-searching-views#comments Better Exposed Filters checkbox ctools drupal faceted search filters select Thu, 27 Jan 2011 00:21:49 +0000 Saren 914 at http://www.northstudio.com Two site launches this week, amid the northStudio plague http://www.northstudio.com/blog/20110121/two-site-launches-week-amid-northstudio-plague <p> As Candace mentioned in her <a href="http://www.northstudio.com/blog/20110121/what-team-means-northstudio">blog post </a>earlier today, the northStudio team has been hit hard by the flu this week. Despite the dwindling numbers of staff, we still managed to successfully launch two websites:</p> <p> <a href="http://www.northstudio.com/portfolio/business/cats-cottage">The Cat&#39;s Cottage<br /> </a></p> <p> The Cat&#39;s Cottage is a luxury, boarding facility designed exclusively for cats. Located on private acreage in Metchosin, BC, The Cat&#39;s Cottage is the first of its kind in the Victoria capital region. When they came to us with the outline for their site, we were more than happy to create them something simple, fun and functional with a cozy feline theme.</p> <p> <a href="http://www.northstudio.com/portfolio/business/something-more">Something More<br /> </a></p> <p> Something More is a long standing retail ladies fashion business, catering to larger women who are looking high quality clothing and accessories. They came to us looking for a sleek, informative web presence that would also have strong Internet Marketing capabilities. Now they have a shiny new SEO-friendly website, designed to give them the freedom to simply update fashion photography every season if they wish and reach more customers easily.</p> Fri, 21 Jan 2011 22:38:18 +0000 britt 911 at http://www.northstudio.com What t.e.a.m. means to northStudio http://www.northstudio.com/blog/20110121/what-team-means-northstudio <p> What does northStudio mean by team? &nbsp;Well, we work together, we play together, and we get sick together! &nbsp;LOL.</p> <p> This week has been an epic week of illness in the office. &nbsp;Since Monday our numbers have slowly dropped as we pass, what we call the, &quot;northStudio plaque&quot; onto each other&#8230;. Tag! &nbsp;You&#39;re it.</p> <p> Lucky for me the worst is over. &nbsp;Then again I will be opting out of one of the best surf weekends of the season. &nbsp;:(</p> <p> But, I&#39;m proud to say that despite all the coughing, sneezing, and sleepy eyes standing in way we all came together to successfully launch two sites this week!</p> <p> Check out our most recent site launches, <a href="/portfolio/business/cats-cottage">The Cat&#39;s Cottage</a> and <a href="/portfolio/business/something-more">Something More</a>.</p> <p> Now if that&#39;s not t.e.a.m. I don&#39;t know what is! &nbsp;</p> Fri, 21 Jan 2011 22:02:13 +0000 candace 910 at http://www.northstudio.com A New Beginning for LayoutStudio http://www.northstudio.com/blog/20110118/new-beginning-layoutstudio <div class="field field-type-emvideo field-field-shared-video shared-video"> <div class="emvideo emvideo-video emvideo-youtube"><div id="media-youtube-1" class="media-youtube"> <div id="media-youtube-default-external-1"> <object type="application/x-shockwave-flash" height="428" width="760" data="http://www.youtube.com/v/oZ8muBfkB7Q&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;playerapiid=ytplayer&amp;amp;fs=1" id="media-youtube-default-external-object-1"> <param name="movie" value="http://www.youtube.com/v/oZ8muBfkB7Q&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;playerapiid=ytplayer&amp;amp;fs=1" /> <param name="allowScriptAccess" value="sameDomain"/> <param name="quality" value="best"/> <param name="allowFullScreen" value="true"/> <param name="bgcolor" value="#FFFFFF"/> <param name="scale" value="noScale"/> <param name="salign" value="TL"/> <param name="FlashVars" value="playerMode=embedded" /> <param name="wmode" value="transparent" /> <!-- Fallback content --> <a href="http://www.youtube.com/watch?v=oZ8muBfkB7Q"><img src="http://img.youtube.com/vi/oZ8muBfkB7Q/0.jpg" alt="See video" title="See video" width="760" height="428" /></a> </object> </div> </div> </div> </div> <p> With the recent releases of <a href="http://drupal.org/project/layoutstudio">LayoutStudio for 6 and 7</a>, we now have what we believe is a world-class starter theme for <a href="http://drupal.org">Drupal</a>. I&#39;ve always had an extensive wishlist in my head, <em>and thanks to some awesome help from our programmers</em>, it&#39;s finally evolving very closely to my intended vision.
</p> <p> Since I&#39;ve started working with Drupal in version 4.7, I felt that starter themes should really do a the following:</p> <ol> <li> have great semantic markup for excellent SEO and accessibility performance.</li> <li> markup that seldom requires overrides, with the flexibility to move sidebars to either side.</li> <li> very little in terms of style beyond good basic CSS defaults.</li> <li> ability to select the layout and the dimensions in your theme settings.</li> <li> good documentation.</li> </ol> <p> 
The first three have been around since the beginning, since we based our HTML structure on <a href="http://blog.html.it/layoutgala/">Layout Gala</a>. The various possibilities for layouts are indeed amazing as it covers almost every scenario imaginable.</p> <p> 
Now, with the new developments in Drupal 6 &amp; 7,<strong> we have a theme where you can select from eight different layouts, and also select the sidebar and site width</strong>. To me, this is simply amazing, since coding the layout dimensions can be one the most annoying and tedious parts of starting a site. This feature takes care of that, so you can quickly move on to styling the site to your liking.</p> <p> As for the documentation, the <a href="http://drupal.org/node/1023430">process is well on it&#39;s way</a> and we will continue to gradually improve it, and you support would be greatly appreaciated in that regards.</p> <p> <a href="http://www.youtube.com/watch?v=oZ8muBfkB7Q">Watch the video above</a> for a glimpse of <a href="http://drupal.org/project/layoutstudio">LayoutStudio</a>&#39;s features and give it a shot. We&#39;re convinced it&#39;s the best starter theme for Drupal &#8212; with the features you need, and none of the unnecessary fluff that just gets in your way.</p> drupal theming Tue, 18 Jan 2011 18:41:48 +0000 Rene Hache 901 at http://www.northstudio.com Website Launch: SMB Capital http://www.northstudio.com/blog/20110117/website-launch-smb-capital <p> On January 12th, 2011, we unveiled the new <a href="http://www.northstudio.com/portfolio/business/smb-capital">SMBCapital.com</a>. Using a Drupal Content Management System, we focused on creating a scalable, collaborative environment with extended search functionality, RSS and social media, including Twitter, Facebook, Flickr and Digg.<br /> <br /> SMB Capital, a quickly growing New York based trading company approached northStudio last year looking for a partner to redesign and technically enhance their current Drupal site. &nbsp;They specifically needed a site that could grow with them as they grew, so we were able to find pleasantly simple solutions to satisfy their current needs with the expectation for growth and enhancement.<br /> <br /> We are now working with them on their second project, SMBTraining.com. Our internet marketing division, <a href="http://www.stikkymedia.com/">Stikky Media</a>, also jumped on board by developing SMB&rsquo;s email and newsletter marketing campaign.<br /> &nbsp;</p> http://www.northstudio.com/blog/20110117/website-launch-smb-capital#comments Mon, 17 Jan 2011 18:12:06 +0000 Stacey 899 at http://www.northstudio.com Drupal 7 Release Party http://www.northstudio.com/blog/20110110/drupal-7-release-party <p> <span id="internal-source-marker_0.20696356154513096">Last Friday, northStudio and <a href="http://www.schoolvictoria.com">VSBT</a> hosted a BBQ to celebrate the release of Drupal 7. Despite the chilly weather, we had an awesome turnout. We had a fun mix of both new and familiar faces, as well as Drupal cake, Richard&rsquo;s famous burgers and a healthy sprinkling of Drupal references. </span><br /> <br /> <span>Here&rsquo;s what some guests had to say:</span><br /> <br /> <span>&ldquo;It was fun to reconnect, have great hamburgers in the sunshine on a slightly coolish day. The only sad part was to have to listen to the Drupal song a couple times :) Thank you to Anne and everyone else who organized this, and to Studio North and VSBT for hosting it.&rdquo; - Jean-Daniel </span><br /> <br /> <span>&ldquo;Organizer immediately made me feel welcome and the people were great&#8230;..and there was cake mmmmm cake :)&rdquo; - Robert</span><br /> <br /> <span>Thanks to everyone for celebrating with us! For those of you who missed out, we&rsquo;ve posted some photos of the event on northStudio&rsquo;s <a href="http://www.facebook.com/northstudio">Facebook page</a>.</span><br /> <br /> <span>The Victoria Drupal User group meets every 2nd Tuesday of the month. The next meetup is Jan. 11th @ 6:30 pm. For more information on how to share your Drupal passion and love with other Vancouver Islanders, check out their <a href="http://www.meetup.com/Victoria-Drupal-User-Group/">Meetup page</a>.</span></p> Mon, 10 Jan 2011 21:15:19 +0000 admin 893 at http://www.northstudio.com Drupal Dictionary - Understanding Basic Drupal Terminology http://www.northstudio.com/blog/20101217/drupal-dictionary-understanding-basic-drupal-terminology <p> We can&rsquo;t give you a full Drupal tutorial in 400 words, but we can help you talk the talk. Here are nine helpful definitions to keep you in the conversation:</p> <p> <strong>Drupal</strong></p> <p> Created by Dries Buytaert, it is an open source publishing software that allows individuals and communities to create and manage a wide variety of website content.</p> <p> Its name is a bit of a long story. Dries really wanted dorp.org because it means &ldquo;village&rdquo;, but he made a mistake and got drop.org instead. But no big deal&mdash;as drop.org blossomed into a more of an experimentation environment, he changed the name to Drupal. The new name is derived from the English pronunciation of the Dutch word &ldquo;druppel,&rdquo; which means &ldquo;drop.&rdquo;</p> <p> <strong>Node</strong></p> <p> Each item of content is called a node. Single websites contain many types of nodes, such as informational pages, news items and blog posts.</p> <p> <strong>Content Types</strong></p> <p> Each node is made from a content type. Drupal comes with pre-defined content types, such as &ldquo;stories&rdquo; and &ldquo;pages,&rdquo; but you can also define your own content types.</p> <p> <strong>Modules</strong></p> <p> Add-ons that allow you to extend, build and customize Drupal&rsquo;s core functionality. Two important modules are CCK and Views. CCK allows you to make new content types and add fields to each content type. If the site will have events, you can create a content type called Events. This new content type will require a date field for the start and end dates of the event. CCK and its supported modules will allow you to create all the fields needed for this content type. Views is another important module. This allows you to show nodes in any way you want. Perhaps you want the events to display is a short list with the most recent event at the top of the list. Views will allow you to display this.</p> <p> <strong>Taxonomy</strong></p> <p> Taxonomy allows you to categorize your content. Nodes are &ldquo;tagged&rdquo; with terms and this makes it easier for users to find related content. For example if a new blog post is created and the topic is about dogs then the post can be tagged with &ldquo;dog&rdquo; and &ldquo;pets&rdquo;.</p> <p> <strong>Blocks</strong></p> <p> Blocks are the boxes visible in the sidebar of your Drupal website. You can create blocks to be specific to different sections of your website.</p> <p> <strong>Theming</strong></p> <p> Theming is the placement of visual elements on your website. It includes the layout, arrangement and the selection of fonts, colours and graphics.</p> <p> <strong>Users &amp; Roles</strong></p> <p> Logging in to your Drupal site allows to you perform certain tasks whether that is creating a blog post, editing page content or buying a item. Each user has a role and your role determines what you can and cannot do on the site. Roles are important because they allow different people to perform different tasks.</p> <p> <strong>Distribution</strong></p> <p> Distributions take specific sets of Drupal themes and modules and combine them with custom installation steps, documentations, etc. For example, you could make a &ldquo;Drupal for Education&rdquo; distribution that contains modules for online courses and testing and has pre-configured roles for teachers and students.</p> <p> <em>*Thanks to Gregg and Shane G., who checked for accuracy and filled in the gaps.</em></p> Fri, 17 Dec 2010 19:22:35 +0000 Stacey 888 at http://www.northstudio.com Facebook Community Helps Build Brand for New Business http://www.northstudio.com/blog/20101203/facebook-community-helps-build-brand-new-business <p> When Kraft asked the Australian and New Zealand public to name its new blend of Vegemite and cream cheese, they received over 48,000 entries. From this wealth of creative input, Kraft chose &ldquo;iSnack 2.0.&rdquo; If you&rsquo;re thinking it&rsquo;s the lousiest name ever, you&rsquo;re not alone. Australians made such a fuss that Kraft announced that it would give the public another shot.</p> <p> In the iSnack 2.0 debacle, Kraft attempted to harness the power of crowdsourcing&mdash;obtaining information or suggestions from the general public. Companies can take advantage of the collective intelligence and find new solutions to old problems. In turn, customers have fun, gain a sense of community and feel pride when a business actually responds to their ideas.</p> <p> Social media already blurs the lines between businesses and consumers, so crowdsourcing is a natural way to gain insight into your own business. Because most people only react to what they&rsquo;re actually interested in, you&rsquo;ll easily attract your target audience.</p> <p> Kraft&rsquo;s problem wasn&rsquo;t its open call for suggestions, its audience or its results&mdash;they must have receive more viable suggestions than iSnack 2.0. Either Kraft is smarter than we&rsquo;re giving them credit for&mdash;maybe their plan all along was to choose the lamest name, gain media attention and hold a new contest, which will undoubtedly have more participants&mdash;or maybe they got caught up in the frenzy surrounding Vegemite (a national icon) and lost sight of their business instinct.</p> <p> Whatever their reason, crowdsourcing doesn&rsquo;t have to be a negative experience. The majority of crowdsourcing efforts are dedicated towards general businesses, such as marketing, business and finance. The tourism and travel industry only counts for 1%, but its crowdsource campaigns are by far the most interesting and engaging. South African residents had the chance to create advertisements that explain why the world should visit their country, New Zealand held a film contest designed to capture the spirit of their country and Tourism Australia wants to create an online mosaic of over 15,000 crowdsourced photos.</p> <p> Even a local Victoria BC business, Body Mind Soul, is taking advantage of crowdsourcing. Its owner, Ashley Abraham, is letting Facebook users participate in the development of her holistic retreat company, which offers everything from spa services to marine ecotours, in both Canada and exotic locations like Jamaica. As Ashley&rsquo;s ideas gain momentum, she welcomes suggestions and feedback about everything from logos and business cards to website functionality and design.</p> <p> From reading Body Mind Soul&rsquo;s Facebook page, it&rsquo;s obvious that Ashley is emotionally invested in her business and wants others to share her exciting journey. She continuously keeps users involved in every step of her business, with status updates, blog posts and discussions, and even posts updated designs based upon feedback. It&rsquo;s an engaging process that&rsquo;s fascinating to watch. And best of all, she&rsquo;s found a creative way to match user input with solid business goals.</p> <p> <a href="http://www.facebook.com/BodyMindSoulAdventures"><img border="1" src="/files/images/bodymindsoul-facebook.jpg" /></a></p> <ul> <li> <a href="http://www.facebook.com/BodyMindSoulAdventures">Visit the Body Mind Soul Facebook Page<br /> </a></li> <li> <a href="http://twitter.com/ashleyaoriginal">Follow Ashley on Twitter<br /> </a></li> </ul> Fri, 03 Dec 2010 21:58:12 +0000 Stacey 884 at http://www.northstudio.com Lethbridge College Scavenger Hunt http://www.northstudio.com/blog/20100921/lethbridge-college-scavenger-hunt <p> Our Drupal web development team has recently completed a D6 project for Lethbridge College. In promotion of their brand new site and it&#39;s many new and interesting features, the folks at LC are holding a <a href="http://www.lethbridgecollege.ca/contest/2010-scavenger-hunt">Website Scavenger Hunt</a>. Visit the page, find the 5 items listed in the contest, and win great prizes. Simple as that! From iPads to free education there are some really great prizes up for grabs. I suggest you enter the contest and please provide any feedback about their brand new Drupal website in the comments!</p> drupal Tue, 21 Sep 2010 21:15:48 +0000 Simon Vreeswijk 787 at http://www.northstudio.com Do-it-Yourself Usability Testing - The Napkin Test http://www.northstudio.com/blog/20100912/do-it-yourself-usability-testing-napkin-test <p> Whether you build a simple brochure style site or a dynamic socially enabled site, usability needs to be at the forefront to keep the user&rsquo;s attention. So how does one do this if there simply isn&#39;t a budget for user testing? Do it yourself! Sounds hard and time consuming? Guess again. User testing can most definitely be expensive and daunting, but we believe in a very short time period and some with simple tools you can find the key user issues and fix them.</p> <p> DIY User Testing Mottos:<br /> - do it often, do it early<br /> - grab anyone<br /> - test the site, not your team&rsquo;s agenda (this means no leading questions or assistance)</p> <p> Here are some tips and tricks on one type of testing: the napkin test.</p> <p> Before you start anything with your web developer, start with a napkin. Sketch out what your homepage or product page will look like, then grab just about anyone you can and ask them, &ldquo;what do you think this is supposed to be?&rdquo;</p> <p> Notice how I didn&#39;t ask &ldquo;do you like this?&rdquo; or &ldquo;what do you think of this?&rdquo; You&#39;re asking them to determine what your site is, not give their personal opinion.</p> <p> Then listen carefully.</p> <p> If your site is offering online courses and you showed them the homepage, the tester may say, &ldquo;this looks like a homepage and it looks like you are trying to sell an online course, and this login button shows I can get to the courses right away. But I&#39;m not sure what this partners area is.&rdquo;</p> <p> This quickly shows you that you perhaps the partners area doesn&#39;t have to be so prominent on the homepage, needs to be renamed or maybe removed entirely from the homepage. You can also ask a few questions to understand what the tester thinks this means to gain more insight.</p> <p> In short, with a napkin, a pen and 5 minutes of someone&rsquo;s time you already have a great start to your website!</p> <p> Stay tuned for upcoming blog posts on more DIY user testing!</p> <p> * Source: Rocket Surgery Made Easy - Steve Krug</p> Education Usability Sun, 12 Sep 2010 17:32:32 +0000 Anne Stefanyk 773 at http://www.northstudio.com Drupal Camp Alberta is here! http://www.northstudio.com/blog/20100911/drupal-camp-alberta-here <p> The time has come for our northStudio team to head west to Calgary for Drupal Camp Alberta! We recently opened our newest office in Alberta and together Kalvin, Gord and Anne will be presenting on various topics such as Ubercart, mastering taxonomy, project management and Drupal for Higher Ed. As the party sponsor, northStudio invites all the Drupalers to Shanks on Saturday night for drinks and socializing! Follow us on Twitter to find out how to get a free drink.</p> <p> Stay tuned for our follow-up blog posting on the event.</p> Alberta drupal drupalcamp Higher Ed project management Taxonomy Ubercart Sat, 11 Sep 2010 16:08:04 +0000 Anne Stefanyk 772 at http://www.northstudio.com Pacific Northwest Drupal Summit site is now live! http://www.northstudio.com/blog/20100715/pacific-northwest-drupal-summit-site-now-live <p> northStudio is excited to announce our involvement in this year&rsquo;s Pacific Northwest Drupal Summit! The annual conference is designed to bring the Drupal community in the region together to share ideas, learn from and inspire each other. This year&rsquo;s camp will be held in Vancouver, British Columbia, Canada on October 2nd and 3rd, 2010. Drupal users from Northern California, Oregon, Washington, Idaho, Vancouver, and Victoria will gather in the UBC Robson Square building in downtown Vancouver, British Columbia for scheduled sessions as well as social events. The camp is a great chance to connect and have lots of fun!</p> <p> northStudio strongly values forging these ties to our community, and as such, we are platinum sponsors of the summit! We also volunteered to help finish the website. Check it out:</p> <p> <a href="http://pnwdrupalsummit.org/">http://pnwdrupalsummit.org/<br /> </a></p> <p> Our in-house Drupal wizards, Shane Graham, Shane Vincent, and Saren Calvert, did a fantastic job on the website! The boys worked under the exuberance and knowledgeable guidance of project manager, Anne Stefanyk, who is also a member of the summit&rsquo;s organizing committee, helping to bring this event to fruition.</p> <p> Another of northStudio&rsquo;s own, Candace Bates, a solution architect, contributed her creativity to the PNW Drupal Summit, working in tandem with Alex Ventpap from ImageX Media to design the Drupal camp swag: t-shirts, hoodies, and toques, which will be well-timed for Canada&rsquo;s cool autumn weather!</p> <p> Our staff from both northStudio and our sister school, The Victoria School of Business and Technology, will also be participating in the scheduled talks, sharing our knowledge and experience on all aspects of the industry through presentations on Ubercart/eCommerce, Project Management, SEO and Social Media Marketing, Theming, and Custom Module Development.</p> <p> This year&rsquo;s Pacific Northwest Drupal Summit will be a blast! See you there!<br /> &nbsp;</p> <p> -Katie</p> Community drupal drupalcamp Ubercart Vancouver Thu, 15 Jul 2010 23:25:55 +0000 britt 696 at http://www.northstudio.com VIATeC Softball Tournament http://www.northstudio.com/blog/20100629/viatec-softball-tournament-0 <p> The northStudio &amp; RevenueWire Mad Batters had a long day of softball on Satuday, June 26 at Landsdowne Middle School. The VIATeC spring softball league had its final softball game day of the season for all the teams, complete with a delicious barbeque. After playing three games and foregoing a fourth due to exhaustion, the Mad Batters came in third place! Congratulations to all the teams who played this year! We had a blast!</p> <center> <object height="500" width="735"> <param name="flashvars" value="offsite=true&amp;lang=en-us&amp;page_show_url=%2Fphotos%2Fnorthstudio%2Fsets%2F72157624245432589%2Fshow%2F&amp;page_show_back_url=%2Fphotos%2Fnorthstudio%2Fsets%2F72157624245432589%2F&amp;set_id=72157624245432589&amp;jump_to=" /> <param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649" /> <param name="allowFullScreen" value="true" /><embed allowfullscreen="true" flashvars="offsite=true&amp;lang=en-us&amp;page_show_url=%2Fphotos%2Fnorthstudio%2Fsets%2F72157624245432589%2Fshow%2F&amp;page_show_back_url=%2Fphotos%2Fnorthstudio%2Fsets%2F72157624245432589%2F&amp;set_id=72157624245432589&amp;jump_to=" height="500" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" type="application/x-shockwave-flash" width="735"></embed></object></center> Tue, 29 Jun 2010 22:00:51 +0000 britt 688 at http://www.northstudio.com VIATeC Softball Tournament http://www.northstudio.com/blog/20100629/viatec-softball-tournament <p> The northStudio &amp; RevenueWire Mad Batters had a long day of softball on Satuday, June 26 at Landsdowne Middle School. The VIATeC spring softball league had it&#39;s final softball game day of the season, which just so happened to be a tournament. After playing three games and foregoing a fourth, the Mad Batters came in third place!</p> Community Tue, 29 Jun 2010 21:59:14 +0000 admin 687 at http://www.northstudio.com Victoria Drupal User Group Meet-ups are BACK! http://www.northstudio.com/blog/20100616/victoria-drupal-user-group-meet-ups-are-back <p> Join us every FIRST Tuesday of every month at 6:30pm<br /> <br /> Our next meeting is <strong>JULY 6th</strong><br /> <br /> To kick off the reunification we will meet at Peacock Billiards to shoot some pool and get connected to find out what the community wants to pursue in our meet ups.</p> <p> Come ready to talk about new and exciting Drupal news and ideas or just socialize with other Drupalistas!<br /> <br /> Peacock Billiards &amp; The James Joyce Bistro<br /> &nbsp;1175-C Douglas Street<br /> &nbsp;Victoria, BC V8W 2E2<br /> <a href="http://peacockbilliards.com/" target="_blank">http://peacockbilliards.com</a><br /> <br /> Please RSVP to <a href="mailto:anne@northStudio.com">anne@northStudio.com</a> if you&#39;d like to join us.<br /> <br /> NOTE: There&#39;s no cost for this event, however it would be great if you can come prepared to order something (some of us order dinner, some just drinks) along with a nice gratuity</p> <p> <a href="http://www.meetup.com/Victoria-Drupal-User-Group/">Join the Victoria Drupal User Meetup Group<br /> </a></p> Community drupal Education Wed, 16 Jun 2010 16:21:19 +0000 admin 640 at http://www.northstudio.com New Programmer http://www.northstudio.com/blog/20100611/new-programmer <p> Meet Walter, the newest member of our programming team. &nbsp;Developers Saren Calvert and Ryan James lead him through training yesterday. &nbsp;And, as Drupal developer Shane Graham would say, &quot;he has mad programmer skillz!&quot;</p> programmer Fri, 11 Jun 2010 17:35:43 +0000 candace 619 at http://www.northstudio.com Pacific Northwest Drupal Summit - October 2010 in Vancouver http://www.northstudio.com/blog/20100611/pacific-northwest-drupal-summit-october-2010-vancouver <p> We&#39;re proud to announce that northStudio is one of the sponsors for the Pacific Northwest Drupal Summit in October in Vancouver! We can&#39;t wait!<strong><br /> </strong></p> <p> <strong>Event Details:<br /> </strong></p> <p> <strong>Date: </strong>October 2 &amp; 3, 2010<br /> <strong>Venue: </strong>UBC Robson Square, Vancouver BC<br /> <strong>Tracks:</strong> Developer, Design &amp; Theme, Site Architecture &amp; Administration, Business &amp; Project Management, Birds of a Feather<br /> <strong>Financing</strong>: Primarily financed from sponsorship, ticket sales contribute a small amount of financing</p> <p> Sponsors and volunteers are still needed! Here&#39;s who to contact:<strong><br /> </strong></p> <p> <strong>Sponsorship:</strong> Phillip Djwa, phillip [at] agentic DOT ca<br /> <strong>Volunteers</strong>: Vanessa Turke, Vanessa [at] imagexmedia DOT com<br /> <strong>Presenters/Keynotes:</strong> Chris Geoghegan, chris [at] imagexmedia DOT com<br /> <strong>Training: </strong>Dale McGladdery, dale.mcgladdery [at] gmail DOT com<br /> <strong>General Inquiries: </strong>Vanessa Turke, Vanessa [at] imagexmedia DOT com</p> <p> For more information, click<a href="http://groups.drupal.org/node/74443"> here</a>.</p> Community drupal drupalcamp Fri, 11 Jun 2010 16:20:57 +0000 Rene Hache 609 at http://www.northstudio.com VIATeC Softball League http://www.northstudio.com/blog/20100514/viatec-softball-league <p> Wednesday evening the northStudio/RevenueWire Mad Batters took on Neverblue in the VIATeC softball league. There were home runs, strike outs and legendary catches. Lucky for us, some of these epic moments were captured and have been posted to Flickr for your viewing enjoyment.</p> <p> &nbsp;</p> <center> <object height="500" width="735"> <param name="flashvars" value="offsite=true&amp;lang=en-us&amp;page_show_url=%2Fphotos%2Fnorthstudio%2Fsets%2F72157623935671071%2Fshow%2F&amp;page_show_back_url=%2Fphotos%2Fnorthstudio%2Fsets%2F72157623935671071%2F&amp;set_id=72157623935671071&amp;jump_to=" /> <param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649" /> <param name="allowFullScreen" value="true" /><embed allowfullscreen="true" flashvars="offsite=true&amp;lang=en-us&amp;page_show_url=%2Fphotos%2Fnorthstudio%2Fsets%2F72157623935671071%2Fshow%2F&amp;page_show_back_url=%2Fphotos%2Fnorthstudio%2Fsets%2F72157623935671071%2F&amp;set_id=72157623935671071&amp;jump_to=" height="500" src="http://www.flickr.com/apps/slideshow/show.swf?v=71649" type="application/x-shockwave-flash" width="735"></embed></object></center> Fri, 14 May 2010 17:28:33 +0000 britt 597 at http://www.northstudio.com VIATeC Launch Party http://www.northstudio.com/blog/20100430/viatec-launch-party <p> Last night we attended the much-anticipated launch party of the<a href="http://www.viatec.ca/"> new VIATeC website</a>. The northStudio team assisted VIATeC members set up their profiles on the new site and by the time the evening was through, over 500 profiles had been added.</p> <p> VIATeC&#39;s photo&#39;s of the event can be found <a href="http://www.flickr.com/photos/viatec/sets/72157623839502467/">VIATec&#39;s Flickr account</a>.</p> party viatec website launch Fri, 30 Apr 2010 22:14:10 +0000 Rene Hache 539 at http://www.northstudio.com 2010 Business Examiner Awards http://www.northstudio.com/blog/20100331/2010-business-examiner-awards <p> So, the 2010 Business Examiner Awards are this week and we&#39;ve been nominated in the: &ldquo;Technology Business of the Year&rdquo; category.<br /> The event is being held at the Victoria Conference Center, downtown and we will be represented at the awards by Richard Pattee.<br /> Wish us good luck !</p> Awards Technology Business Wed, 31 Mar 2010 22:28:37 +0000 Becky Wilson 471 at http://www.northstudio.com The Value of Communication ! http://www.northstudio.com/blog/20100331/value-communication <p> We&#39;ve all been here at least once !</p> comic development funny management Wed, 31 Mar 2010 22:13:01 +0000 Becky Wilson 469 at http://www.northstudio.com What a Team ? http://www.northstudio.com/blog/20100322/what-team <p> Where on earth did we get this bunch from?</p> funny staff team Mon, 22 Mar 2010 21:07:30 +0000 Becky Wilson 447 at http://www.northstudio.com A new boss ?! http://www.northstudio.com/blog/20100322/new-boss <p> A changing of the guard?</p> leadership management new staff Mon, 22 Mar 2010 21:01:19 +0000 Becky Wilson 443 at http://www.northstudio.com Layoutstudio 2.x released http://www.northstudio.com/blog/20100321/layoutstudio-2x-released <p> <a href="http://drupal.org/project/layoutstudio">Layoustudio 2.x has been released</a>. This is still under the &quot;dev&quot; category, so proceed with caution. At this juncture I would recommend not using it on a production site. We&#39;d love your feedback if you get the chance to play with it.</p> <p> The main reason for the 2.x version is to ease integration with the <a href="http://drupal.org/project/less">LESS CSS Preporcessor module</a>. This is something that I&#39;ve been excited about for a long time (Oh yeah, I&#39;m a geek!), but there wasn&#39;t a module that provide the full functionality that I would looking for. CSS preprocessing first got my attention with <a href="http://sass-lang.com/">SASS</a> from the <a href="http://rubyonrails.org/">Ruby community.</a> There have been <a href="http://drupal.org/project/sass">some</a> <a href="http://drupal.org/project/sass_api">attempts</a> at integration with Drupal, but so far you need special server configs to make it work. <a href="http://drupal.org/project/cssdry">CSS Dry</a> was another decent attempt, but I really wanted something more than just nested rules and simple variables.</p> <p> With the <a href="http://lesscss.org/">LESS CSS processor</a> and its <a href="http://leafo.net/lessphp/">PHP port</a>, we get the best of both worlds. All the power of SASS and a module that integrates it nicely with Drupal. I was pretty impressed right from the get go.</p> <p> Whether CSS preprocessors will become mainstream for Drupal themers is still up in the air at this point. For me it&#39;s a no brainer. Especially when a large amount of my code follows pretty similar patterns. The ability to have mixins, variables and nested rules is extermely powerful. Once you get used to it, it&#39;s hard to go back. There is one drawback at this point, and that&#39;s the fact that it screws up Firebug&#39;s line numbering.</p> css drupal theming Sun, 21 Mar 2010 19:34:03 +0000 Rene Hache 392 at http://www.northstudio.com New Team Member ! http://www.northstudio.com/blog/20100228/new-team-member <p> We have added a new face to the team this week &#8230; Saren Calvert.</p> <p> Saren started as a student of VSBT&#39;s Drupal Development Course and distinguished himself as a person of talent. Not one&#39;s to waste talent we offered him an internship and were thrilled when he accepted.</p> <p> He has already proven himself a valuable member of the team and we hope this is the beginning of an ongoing relationship.</p> developer intern new staff Mon, 01 Mar 2010 05:00:00 +0000 Becky Wilson 363 at http://www.northstudio.com New Team Member ! http://www.northstudio.com/blog/20100131/new-team-member <p> Yes, yet another ex-student is joining the northStudio team.</p> <p> Today we welcome Becky Gratton Wilson.&nbsp; She completed our Web Design and Internet Marketing program in 2009 and showed an aptitude for customer care, oversight and time managemnet, all valuable skills for a project manager.</p> <p> She now joins our team of Solutions Architects ,endevouring to make each clients web building experience a smooth, calm,&nbsp; focused adventure into the world of the Web.</p> intern new staff project management solutions architect Mon, 01 Feb 2010 05:00:00 +0000 365 at http://www.northstudio.com