<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"> 
	<title>Bedrich Rios</title>
	<link href="http://bedrichrios.com/posts.xml" rel="self"/>
	<link href="http://bedrichrios.com/"/>
	<updated>2012-02-12T21:43:00-05:00</updated>
	<id>http://bedrichrios.com/</id>
	<author>
		<name>Bedrich Rios</name>
		<email>me@bedrichrios.com</email>
	</author>
	
	<entry>
		<title>Running VirtualBox From the Terminal</title>
		<link href="http://bedrichrios.com/virtualbox"/>
		<updated>2011-05-14T00:00:00-04:00</updated>
		<id>http://bedrichrios.com/virtualbox</id>
		<content type="html">&lt;p&gt;At &lt;a href='https://gimmebar.com'&gt;Gimme Bar&lt;/a&gt; we have a magical development setup, courtesy of &lt;a href='http://seancoates.com/'&gt;Sean Coates&lt;/a&gt;, which involves running local instances of our web app on Virtual Machines using &lt;a href='http://www.virtualbox.org/'&gt;VirtualBox&lt;/a&gt;. All my work can then be reached by launching any browser on my machine and visiting &lt;code class='inline-code'&gt;local.gimmebar.com&lt;/code&gt;. And, while this is &lt;em&gt;great&lt;/em&gt;, it means I have a VM window open which I do not ever interact with. So, in order to simplify my life I knew I needed to find a way to run VirtualBox from the Terminal, without the &lt;a href='http://en.wikipedia.org/wiki/Graphical_user_interface'&gt;GUI&lt;/a&gt;. Long story short, here are my findings:&lt;/p&gt;

&lt;h3 id='start_vm'&gt;Start VM&lt;/h3&gt;
&lt;div class='code'&gt;
&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='bash'&gt;&lt;span class='nv'&gt;$ &lt;/span&gt;VBoxManage startvm &lt;span class='s2'&gt;&amp;quot;[NAME OF YOUR VM]&amp;quot;&lt;/span&gt; --type headless
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;h3 id='send_shutdown_signal'&gt;Send Shutdown Signal&lt;/h3&gt;
&lt;div class='code'&gt;
&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='bash'&gt;&lt;span class='nv'&gt;$ &lt;/span&gt;VBoxManage controlvm &lt;span class='s2'&gt;&amp;quot;[NAME OF YOUR VM]&amp;quot;&lt;/span&gt; acpipowerbutton
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;h3 id='power_off'&gt;Power Off&lt;/h3&gt;
&lt;div class='code'&gt;
&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='bash'&gt;&lt;span class='nv'&gt;$ &lt;/span&gt;VBoxManage controlvm &lt;span class='s2'&gt;&amp;quot;[NAME OF YOUR VM]&amp;quot;&lt;/span&gt; poweroff
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;/div&gt;</content>
	</entry>
	
	<entry>
		<title>My Gimme Bar Story</title>
		<link href="http://bedrichrios.com/my-gimme-bar-story"/>
		<updated>2011-05-05T00:00:00-04:00</updated>
		<id>http://bedrichrios.com/my-gimme-bar-story</id>
		<content type="html">&lt;p&gt;Sometime towards the end of last year I joined the guys of &lt;a href='http://fictivekin.com/'&gt;Fictive Kin&lt;/a&gt; as a freelancer and began working on &lt;a href='https://gimmebar.com'&gt;Gimme Bar&lt;/a&gt;. The app had been in development for a bit and I was immediately intrigued by its potential. The fact that you could collect, organize, discover and share anything you found online with one single app was something I could definitely get on board with&amp;#8230; and so, I did.&lt;/p&gt;

&lt;h3 id='brooklyn_beta'&gt;Brooklyn Beta&lt;/h3&gt;

&lt;p&gt;We wanted to demo the app during &lt;a href='http://brooklynbeta.org/2011'&gt;Brooklyn Beta&lt;/a&gt;, a conference our very own &lt;a href='http://twitter.com/#!/fictivecameron'&gt;Fictive Cameron&lt;/a&gt;, together with &lt;a href='http://twitter.com/#!/shiflett'&gt;Mr. Shiflett&lt;/a&gt;, had decided to put together. Apparently, building web apps wasn&amp;#8217;t enough work for these guys. For weeks we worked tirelessly to get an alpha version of Gimme Bar up and running. It was rough but we had something to present. Fortunately for us, the reception from those who attended Brooklyn Beta was positive. We had an alpha version of Gimme Bar and more exciting, our first users.&lt;/p&gt;

&lt;h3 id='early_mistakes'&gt;Early Mistakes&lt;/h3&gt;

&lt;p&gt;Soon after we released the alpha version of Gimme Bar, our overall goal for the app seemed to lose some focus. Discovery and sharing had become the central points of interest for using Gimme Bar and we were unable to communicate to others, and ourselves, the huge potential of the two missing pieces of the puzzle: collecting and organizing.&lt;/p&gt;

&lt;h3 id='gimme_bar_reloaded'&gt;Gimme Bar Reloaded&lt;/h3&gt;

&lt;p&gt;I was on the train on my way back to Baltimore&amp;#8212;I had spent a few days in NYC, enjoying great food and having lengthy discussions with Cameron regarding the future of Gimme Bar&amp;#8212;when a &lt;a href='http://drbl.in/OPn'&gt;new&lt;/a&gt; &lt;a href='http://drbl.in/Rlu'&gt;design&lt;/a&gt; for the app popped into my head. I took out my sketch book and began jotting down my thoughts like a maniac. We had already agreed that discovery had to be removed for the foreseeable future. And, the design had to be more focused on collecting and organizing.&lt;/p&gt;

&lt;p&gt;I spent the next few weeks on a solo mission, working on a separate &lt;a href='http://git-scm.com/'&gt;GIT&lt;/a&gt; branch. Eventually, &lt;a href='https://twitter.com/#!/coates'&gt;Mr. Coates&lt;/a&gt; and &lt;a href='https://twitter.com/#!/sirevanhaas'&gt;Sir Evan Haas&lt;/a&gt;&amp;#8212;the true heroes behind Gimme Bar&amp;#8212; joined in. They helped merge my static markup and styles back in to our app. Finally, we were working on the app we had envisioned, something that could only get better, &lt;em&gt;more awesome&lt;/em&gt;.&lt;/p&gt;

&lt;h3 id='more_awesome'&gt;More Awesome&lt;/h3&gt;

&lt;p&gt;After we &lt;a href='http://blog.gimmebar.com/post/3859544926/and-now-for-something-completely-different'&gt;announced&lt;/a&gt; the redesign, some of our users missed the discovery aspect of Gimme Bar; needless to say, we did too. But like I said, we knew the app could only get better and more awesome. &lt;em&gt;Spoiler alert&lt;/em&gt;: We have been working on bringing discovery back in to Gimme Bar. we are on the cusp of releasing some cool new features. Stay in the loop, &lt;a href='http://twitter.com/#!/gimmebar'&gt;follow @gimmebar&lt;/a&gt; on Twitter and if you haven&amp;#8217;t already, &lt;a href='https://gimmebar.com/request'&gt;sign up&lt;/a&gt; for an invite.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Bookmarker: Plugin for Coda Bookmarks</title>
		<link href="http://bedrichrios.com/bookmarker-for-coda"/>
		<updated>2010-10-11T00:00:00-04:00</updated>
		<id>http://bedrichrios.com/bookmarker-for-coda</id>
		<content type="html">&lt;p&gt;Ever wish you could leave a bookmark on your code? And no, I&amp;#8217;m not just talking about adding comments like &amp;#8220;TODO&amp;#8221; or &amp;#8220;REMOVE&amp;#8221; but actual bookmarks. Well, it turns out that our favorite text editor, &lt;a href='http://www.panic.com/coda/'&gt;Coda&lt;/a&gt; of course, provides a syntax for adding bookmarks to your code. While this is a very nice feature, there is no easy way to add a bookmark to your code other than remembering the syntax and typing it manually. That&amp;#8217;s where I come in, I have written a little plugin that will let you add bookmarks at the press of a button! Well, three keys, but who is counting.&lt;/p&gt;

&lt;h3 id='how_it_works'&gt;How it works&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href='http://labs.bedrichrios.com/experiments/Bookmarker/Bookmarker-0.1.zip'&gt;Download&lt;/a&gt; and install the plugin.&lt;/li&gt;

&lt;li&gt;Open any &lt;a href='http://www.panic.com/coda/developer/quicktip/5.php'&gt;supported file type&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;Select that the text you wish to bookmark&amp;#8212;or, none at all, the plugin will simply insert an empty bookmark&amp;#8212;and hit &lt;code class='inline-code'&gt;command + shift + k&lt;/code&gt;.&lt;/li&gt;

&lt;li&gt;Done! A bookmark should no be visible on the &lt;a href='http://cl.ly/2mbI'&gt;Code Navigator&lt;/a&gt; panel.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3 id='dont_blame_me'&gt;Don&amp;#8217;t blame me!&lt;/h3&gt;

&lt;p&gt;The obligatory feel free to use but don&amp;#8217;t yell at me if something goes horribly wrong, although it shouldn&amp;#8217;t. If Coda supports bookmarking syntax for your file type but Bookmarker is not doing the trick, leave a comment below with the file extension and I will be sure to add it to plugin.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>YUIcompress: A Plugin for Panic's Coda</title>
		<link href="http://bedrichrios.com/yuicompress-for-coda"/>
		<updated>2010-04-30T00:00:00-04:00</updated>
		<id>http://bedrichrios.com/yuicompress-for-coda</id>
		<content type="html">&lt;p&gt;I've spent the last few weeks compressing a lot of CSS and JavaScript files, don't ask me why, I just have. And, at some point the work became too tedious. I googled for a &lt;a href='http://panic.com/coda'&gt;Coda&lt;/a&gt; plugin that would make my life a whole lot easier by automatically compressing (using the &lt;a href='http://developer.yahoo.com/yui/compressor/'&gt;YUI Compressor&lt;/a&gt;) and saving my files. But, to my surprise I found nothing of the sort. So, I figured I would give plugin creation a go, and &lt;em&gt;YUIcompress&lt;/em&gt; was born.&lt;/p&gt;&lt;p class='update'&gt;Updated to version 0.3 on &lt;span class='date'&gt;February 7, 2011&lt;/span&gt;.&lt;br /&gt;Fixes a &lt;a href='http://www.456bereastreet.com/archive/201012/yui_compressor_and_css_media_queries/'&gt;CSS media query issue&lt;/a&gt; in previous versions of YUI Compressor. Thanks for the tip &lt;a href='#comment-142'&gt;Sparanoid&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;How it works&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;a href='http://labs.bedrichrios.com/experiments/YUIcompress/YUIcompress.codaplugin.zip'&gt;Download&lt;/a&gt; and install the plugin.&lt;/li&gt;
&lt;li&gt;Open the file you wish to compress (&lt;code class='inline-code'&gt;css&lt;/code&gt; or &lt;code class='inline-code'&gt;js&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Select &lt;em&gt;YUIcompress&lt;/em&gt; from the &lt;em&gt;Plug-ins&lt;/em&gt; menu or press &lt;code class='inline-code'&gt;command&lt;/code&gt; + &lt;code class='inline-code'&gt;shift&lt;/code&gt; + &lt;code class='inline-code'&gt;Y&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Voil&amp;aacute;! You should now have a compressed file with the name &lt;code class='inline-code'&gt;{filename}.min.{js|css}&lt;/code&gt; in the same directory where the uncompressed file is located.&lt;/li&gt;
&lt;/ol&gt;&lt;h3&gt;Don't blame me!&lt;/h3&gt;&lt;p&gt;Feel free to download, share, and use YUIcompress, just don't blame me if something goes horribly, horribly wrong. Depending on the file size, you may get the infamous beach ball for a few seconds, but nothing &lt;em&gt;should&lt;/em&gt; break. I have used the plugin for a couple of weeks now, and nothing has happened to me or my computer, not yet at least.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Listing Published Pages In Habari</title>
		<link href="http://bedrichrios.com/listing-pages-in-habari"/>
		<updated>2010-03-11T00:00:00-05:00</updated>
		<id>http://bedrichrios.com/listing-pages-in-habari</id>
		<content type="html">&lt;p&gt;For the past few months, I&amp;#8217;ve been using &lt;a href='http://habariproject.org/en/'&gt;Habari&lt;/a&gt; to power my site, and so far the experience has been a good one. But, sometimes the documentation in the &lt;a href='http://wiki.habariproject.org/en/Main_Page'&gt;wiki&lt;/a&gt; lacks code examples and is therefore difficult to parse. Thankfully, the Habari community provides its users with several &lt;a href='http://habariproject.org/en/support'&gt;support channels&lt;/a&gt; to reach out and find answers to their questions. And, that&amp;#8217;s exactly how I found the answer to solve my latest theme-related predicament: listing published pages.&lt;/p&gt;

&lt;p&gt;Soon after joining the #habari IRC channel and posting my question, a user by the nickname of &lt;em&gt;mikelietz&lt;/em&gt; pointed me to &lt;em&gt;k2&lt;/em&gt;, one of the themes bundled with Habari, which made use of a &lt;code class='inline-code'&gt;$pages&lt;/code&gt; variable in its &lt;code class='inline-code'&gt;header.php&lt;/code&gt; file. Thanks to &lt;em&gt;mikelietz&amp;#8217;s&lt;/em&gt; help, I was able to track the &lt;code class='inline-code'&gt;$pages&lt;/code&gt; variable to &lt;em&gt;k2&amp;#8217;s&lt;/em&gt; &lt;code class='inline-code'&gt;theme.php&lt;/code&gt; file, and realized the &amp;#8220;magic&amp;#8221; taking place. By making use of the &lt;code class='inline-code'&gt;add_template_vars&lt;/code&gt; function, &lt;em&gt;k2&lt;/em&gt; was defining &lt;code class='inline-code'&gt;$pages&lt;/code&gt; and &lt;a href='http://wiki.habariproject.org/en/Customizing_Theme_Behavior'&gt;extending the behavior of the Theme class&lt;/a&gt;. So, without further ado, the code:&lt;/p&gt;
&lt;div class='code'&gt;

&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='php'&gt;&lt;span class='x'&gt;public function add_template_vars() {&lt;/span&gt;
&lt;span class='x'&gt;	if(!$this-&amp;gt;template_engine-&amp;gt;assigned(&amp;#39;pages&amp;#39;)) {&lt;/span&gt;
&lt;span class='x'&gt;		$this-&amp;gt;assign(&amp;#39;pages&amp;#39;, Posts::get(array(&lt;/span&gt;
&lt;span class='x'&gt;			&amp;#39;content_type&amp;#39; =&amp;gt; &amp;#39;page&amp;#39;, &lt;/span&gt;
&lt;span class='x'&gt;			&amp;#39;status&amp;#39; =&amp;gt; Post::status(&amp;#39;published&amp;#39;), &lt;/span&gt;
&lt;span class='x'&gt;			&amp;#39;nolimit&amp;#39; =&amp;gt; 1))&lt;/span&gt;
&lt;span class='x'&gt;		);&lt;/span&gt;
&lt;span class='x'&gt;	}&lt;/span&gt;
&lt;span class='x'&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;small&gt;&amp;#187; Code taken from *k2&amp;rsquo;s* &lt;code class='inline-code'&gt;theme.php&lt;/code&gt;.&lt;/small&gt;
&lt;p&gt;Once you have added the function above to your &lt;code class='inline-code'&gt;theme.php&lt;/code&gt; file, the &lt;code class='inline-code'&gt;$pages&lt;/code&gt; variable should become available to your theme. In order to create a very simple navigation listing your homepage and all published pages, you can do the following:&lt;/p&gt;
&lt;div class='code'&gt;

&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='php'&gt;&lt;span class='x'&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
&lt;span class='x'&gt;    &amp;lt;li&amp;gt;&lt;/span&gt;
&lt;span class='x'&gt;        &amp;lt;a href=&amp;quot;&lt;/span&gt;&lt;span class='cp'&gt;&amp;lt;?php&lt;/span&gt; &lt;span class='nx'&gt;Site&lt;/span&gt;&lt;span class='o'&gt;::&lt;/span&gt;&lt;span class='na'&gt;out_url&lt;/span&gt;&lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='s1'&gt;&amp;#39;habari&amp;#39;&lt;/span&gt;&lt;span class='p'&gt;);&lt;/span&gt; &lt;span class='cp'&gt;?&amp;gt;&lt;/span&gt;&lt;span class='x'&gt;&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class='x'&gt;        Home&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class='x'&gt;    &amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class='x'&gt;    &lt;/span&gt;&lt;span class='cp'&gt;&amp;lt;?php&lt;/span&gt; 
    &lt;span class='k'&gt;foreach&lt;/span&gt;&lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='nv'&gt;$pages&lt;/span&gt; &lt;span class='k'&gt;as&lt;/span&gt; &lt;span class='nv'&gt;$page&lt;/span&gt;&lt;span class='p'&gt;)&lt;/span&gt;&lt;span class='o'&gt;:&lt;/span&gt;
    &lt;span class='cp'&gt;?&amp;gt;&lt;/span&gt;&lt;span class='x' /&gt;
&lt;span class='x'&gt;    &amp;lt;li&amp;gt;&lt;/span&gt;
&lt;span class='x'&gt;        &amp;lt;a href=&amp;quot;&lt;/span&gt;&lt;span class='cp'&gt;&amp;lt;?php&lt;/span&gt; &lt;span class='k'&gt;echo&lt;/span&gt; &lt;span class='nv'&gt;$page&lt;/span&gt;&lt;span class='o'&gt;-&amp;gt;&lt;/span&gt;&lt;span class='na'&gt;slug&lt;/span&gt;&lt;span class='p'&gt;;&lt;/span&gt; &lt;span class='cp'&gt;?&amp;gt;&lt;/span&gt;&lt;span class='x'&gt;&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class='x'&gt;        &lt;/span&gt;&lt;span class='cp'&gt;&amp;lt;?php&lt;/span&gt; &lt;span class='k'&gt;echo&lt;/span&gt; &lt;span class='nv'&gt;$page&lt;/span&gt;&lt;span class='o'&gt;-&amp;gt;&lt;/span&gt;&lt;span class='na'&gt;title&lt;/span&gt;&lt;span class='p'&gt;;&lt;/span&gt; &lt;span class='cp'&gt;?&amp;gt;&lt;/span&gt;&lt;span class='x'&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class='x'&gt;    &amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class='x'&gt;    &lt;/span&gt;&lt;span class='cp'&gt;&amp;lt;?php&lt;/span&gt; 
    &lt;span class='k'&gt;endforeach&lt;/span&gt;&lt;span class='p'&gt;;&lt;/span&gt;
    &lt;span class='cp'&gt;?&amp;gt;&lt;/span&gt;&lt;span class='x' /&gt;
&lt;span class='x'&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;p&gt;If you know of a better, or more proper, way of extending the &lt;code class='inline-code'&gt;Theme&lt;/code&gt; class, please leave a comment. Hope this helps someone.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>My Subversion Workflow</title>
		<link href="http://bedrichrios.com/my-subversion-workflow"/>
		<updated>2010-01-26T00:00:00-05:00</updated>
		<id>http://bedrichrios.com/my-subversion-workflow</id>
		<content type="html">&lt;p&gt;Some time ago, I read an article by web developer &lt;a href='http://yongfook.com/'&gt;Yongfook&lt;/a&gt; titled &lt;i&gt;10 Dirty Little Web Development Tricks&lt;/i&gt;. A quick Google search will return several results linking to this article but unfortunately &amp;#8211; and, as far as I can tell &amp;#8211; the page no longer exists. In any case, there was one &amp;#8220;dirty little trick&amp;#8221; that caught my attention more than all others, and that was to use &lt;a href='http://subversion.tigris.org/'&gt;Subversion&lt;/a&gt; instead of uploading files via (S)FTP for managing production releases. Now, I don&amp;rsquo;t quite remember Yongfook&amp;rsquo;s process, so I won&amp;rsquo;t attempt to reconstruct it; however, I &lt;em&gt;can&lt;/em&gt; share my own setup, which is still fresh in my memory.&lt;/p&gt;&lt;h3&gt;Working Locally&lt;/h3&gt;&lt;p&gt;The first thing I do is create a SVN repository using the &lt;a href='http://svnbook.red-bean.com/en/1.5/svn.tour.importing.html#svn.tour.importing.layout'&gt;SVN Book&amp;rsquo;s recommended repository layout&lt;/a&gt;.&lt;/p&gt;&lt;div class='code'&gt;

&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='bash'&gt;branches/
tags/
trunk/
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;p&gt;After creating my repository, I &lt;code class='inline-code'&gt;svn import&lt;/code&gt; any work that I may already have completed into the trunk. I should note that I do &lt;em&gt;not&lt;/em&gt; version control the system that powers my site (currently &lt;a href='http://habariproject.org/en/'&gt;Habari&lt;/a&gt;) but rather the directory containing all design related documents (i.e. themes).&lt;/p&gt;&lt;div class='code'&gt;

&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='bash'&gt;&lt;span class='nv'&gt;$ &lt;/span&gt;svn import &lt;span class='o'&gt;[&lt;/span&gt;themes&lt;span class='o'&gt;]&lt;/span&gt; &lt;span class='o'&gt;[&lt;/span&gt;repository/trunk&lt;span class='o'&gt;]&lt;/span&gt; -m &lt;span class='s2'&gt;&amp;quot;Initial import.&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;p&gt;I like to work locally for several reasons, the most important one being the ability to work from anywhere without the need for a network connection. So, I setup my site using &lt;a href='http://www.mamp.info/en/index.html'&gt;MAMP&lt;/a&gt; and proceed to &lt;code class='inline-code'&gt;svn checkout&lt;/code&gt; a copy of my repository.&lt;/p&gt;&lt;div class='code'&gt;

&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='bash'&gt;&lt;span class='nv'&gt;$ &lt;/span&gt;svn co &lt;span class='o'&gt;[&lt;/span&gt;repository/trunk&lt;span class='o'&gt;]&lt;/span&gt; &lt;span class='o'&gt;[&lt;/span&gt;&lt;span class='nb'&gt;local &lt;/span&gt;path&lt;span class='o'&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;p&gt;From this point on, I work on my local server, committing changes in to the repository as often as I have to.&lt;/p&gt;&lt;h3&gt;Stage, Tag, and Release&lt;/h3&gt;&lt;p&gt;Once I&amp;rsquo;m ready for the world to see what I have been working on, I setup a &lt;em&gt;staging&lt;/em&gt; instance of the site on my &lt;em&gt;production&lt;/em&gt; &lt;a href='http://mediatemple.net/'&gt;server&lt;/a&gt;. I &lt;code class='inline-code'&gt;svn checkout&lt;/code&gt; a copy of the repository and keep any Subversion data files from prying eyes by writing a redirect rule on my &lt;code class='inline-code'&gt;.htaccess&lt;/code&gt; file. Note that a &lt;code class='inline-code'&gt;svn checkout&lt;/code&gt; is only needed once; after the initial checkout, a &lt;code class='inline-code'&gt;svn update&lt;/code&gt; is all that&amp;rsquo;s needed.&lt;/p&gt;&lt;div class='code'&gt;

&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='bash'&gt;&lt;span class='nv'&gt;$ &lt;/span&gt;svn co &lt;span class='o'&gt;[&lt;/span&gt;repository/trunk&lt;span class='o'&gt;]&lt;/span&gt; &lt;span class='o'&gt;[&lt;/span&gt;staging path&lt;span class='o'&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;div class='code'&gt;

&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='bash'&gt;RewriteRule &lt;span class='se'&gt;\.&lt;/span&gt;svn / &lt;span class='o'&gt;[&lt;/span&gt;F,L&lt;span class='o'&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;p&gt;If everything on the &lt;em&gt;staging&lt;/em&gt; instance looks right, I &lt;code class='inline-code'&gt;svn tag&lt;/code&gt; the trunk in order to make releases systematic. And, proceed to &lt;code class='inline-code'&gt;svn export&lt;/code&gt; the tagged released onto &lt;em&gt;production&lt;/em&gt;.&lt;/p&gt;&lt;div class='code'&gt;

&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='bash'&gt;&lt;span class='nv'&gt;$ &lt;/span&gt;svn copy &lt;span class='o'&gt;[&lt;/span&gt;trunk&lt;span class='o'&gt;]&lt;/span&gt; &lt;span class='o'&gt;[&lt;/span&gt;tags/release &lt;span class='c'&gt;#] -m &amp;quot;Tagging release.&amp;quot;&lt;/span&gt;
&lt;span class='nv'&gt;$ &lt;/span&gt;svn &lt;span class='nb'&gt;export&lt;/span&gt; &lt;span class='o'&gt;[&lt;/span&gt;tags/release &lt;span class='c'&gt;#] [production]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;/div&gt;&lt;p&gt;Why &lt;code class='inline-code'&gt;svn export&lt;/code&gt;? Because it removes any SVN data files, which are no longer needed on production.&lt;/p&gt;&lt;h3&gt;Benefits, Notes, and Thank Yous&lt;/h3&gt;&lt;p&gt;As I noted earlier, working locally means working from anywhere, regardless of an internet connection. Furthermore, setting up an &lt;em&gt;staging&lt;/em&gt; instance of your site can help you detect problems most likely to occur on &lt;em&gt;production&lt;/em&gt;. And, finally tagging your releases will most definitely make the process of keeping track of and reverting changes, if necessary, effortless.&lt;/p&gt;&lt;p&gt;During the process of writing this article, I stumbled upon a great &lt;a href='http://athleticsnyc.com/blog/entry/on-using-subversion-for-web-projects'&gt;article&lt;/a&gt; that touches on many of the same issues that I have covered. It is definitely worth the read, especially if you are not very familiar with Subversion.&lt;/p&gt;&lt;p&gt;Finally, I have to give a shout out to &lt;a href='http://twitter.com/gregchiasson'&gt;Greg Chiasson&lt;/a&gt; who wrote the redirect rule for me in less than 5 seconds, as well as, &lt;a href='http://paul-m-jones.com/'&gt;Paul Jones&lt;/a&gt; and &lt;a href='http://omniti.com/is/christian-dailey'&gt;Christian Dailey&lt;/a&gt; who unknowingly contributed to my setup and consequently this post.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>Back In Black ... &amp; Red</title>
		<link href="http://bedrichrios.com/back-in-black-and-red"/>
		<updated>2010-01-04T00:00:00-05:00</updated>
		<id>http://bedrichrios.com/back-in-black-and-red</id>
		<content type="html">&lt;p&gt;It has taken me quite a while but the site is now back online. It is by no means a finished product; however, it is definitely a big step towards getting back to the habit of writing front-end inspired posts.&lt;/p&gt;&lt;h3&gt;Why Did It Take So Long?&lt;/h3&gt;&lt;p&gt;Well, last year was a pretty significant year for me. I graduated from college in June and almost immediately after moved to Brooklyn to join the ranks of &lt;a href='http://omniti.com'&gt;OmniTI&lt;/a&gt; as a &lt;a href='http://omniti.com/is/bedrich-rios'&gt;Web Designer&lt;/a&gt;. Needless to say, with the hassle of moving and the new job, my online presence suffered quite a bit; granted, my own lazy nature did not help the cause much.&lt;/p&gt;&lt;p class='update' id='update-01-06-2009'&gt;The following paragraph was added &lt;span class='date'&gt;Jan 6, 2009&lt;/span&gt;.&lt;/p&gt;&lt;h3&gt;The 8-bit Logo&lt;/h3&gt;&lt;p&gt;Ever heard of a &lt;a href='http://en.wikipedia.org/wiki/File:Famicom.jpg'&gt;Famicom&lt;/a&gt;? No? Well, I use to own one. I must have been 8 or 9 when I started playing video games and ever since, I have spent countless hours with a controller in my hand. Only two other things attract my interest to the point of sleep deprivation: programming and design. The latter, which has been increasingly influenced by the &lt;a href='http://en.wikipedia.org/wiki/International_Typographic_Style'&gt;Swiss Style&lt;/a&gt; of design. So, when it was time to design a logo for myself, I thought: what would a &lt;a href='http://www.youtube.com/watch?v=VczbbiRmDik'&gt;Space Invaders&lt;/a&gt; poster look like if it was designed circa 1920? And so, the logo was born. Well, it wasn&amp;#146;t &lt;em&gt;that&lt;/em&gt; simple, but I will leave the details for a future entry.&lt;/p&gt;&lt;h3&gt;No More Redesigns&lt;/h3&gt;&lt;p&gt;If there is one thing that has become clear since the &lt;a href='http://v3.bedrichrios.com'&gt;3rd iteration of my site&lt;/a&gt;, it&amp;#146;s the need for a long term vision and continuous work on its design. I think too often we stop working on a site upon what we deem as completed. This behavior leads to redesign after redesign after redesign after &amp;#8230; you get the idea. But this so called &amp;#8220;redesign&amp;#8221; focuses solely on the site&amp;#146;s aesthetics and omits the reason people visit our sites, its &lt;em&gt;content&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;I recently rediscovered an article by &lt;a href='http://cameronmoll.com/'&gt;Cameron Moll&lt;/a&gt; fittingly titled &amp;#8220;&lt;a href='http://www.alistapart.com/articles/redesignrealign'&gt;Good Designers Redesign, Great Designers Realign&lt;/a&gt;,&amp;#8221; which I read back in 2005. I remember thinking the article was insightful and promised myself I wouldn&amp;#146;t become the redesign guy. Sadly, I did.&lt;/p&gt;&lt;h3&gt;The Broken Link&lt;/h3&gt;&lt;p&gt;The path to realignment is definitely a long and arduous one so &lt;em&gt;please&lt;/em&gt; don&amp;#146;t panic if something is broken : ) I will be working on cross-browser testing and performance over the next few days. Expect to see a follow-up post with technical details in the near future. For the time being, it feels good to be back.&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>A Few Tips for Coda Users</title>
		<link href="http://bedrichrios.com/a-few-tips-for-coda-users"/>
		<updated>2009-03-13T00:00:00-04:00</updated>
		<id>http://bedrichrios.com/a-few-tips-for-coda-users</id>
		<content type="html">&lt;p&gt;If you haven&amp;#8217;t tried &lt;a href='http://panic.com/coda'&gt;Panic&amp;rsquo;s Coda&lt;/a&gt;, you should! It&amp;#8217;s a beautifully designed piece of software that makes coding sites even more fun* than it already is. But, enough with the unrequested publicity. This post is about a few &amp;#8220;tricks&amp;#8221; that I have picked up from my everyday use of Coda. And, that you may not be aware exist.&lt;/p&gt;
&lt;h3&gt;Clip Expander Trigger&lt;/h3&gt;&lt;p&gt;At the bottom of every clip&amp;rsquo;s info there is a section that if empty, reads &amp;#8220;Click to add tab trigger.&amp;#8221; Otherwise, it displays a keyword followed by the word &lt;code class='inline-code'&gt;tab&lt;/code&gt;. Whenever you wish to use any given clip, simply type the unique keyword and press &lt;code class='inline-code'&gt;tab&lt;/code&gt;. This will result in the expansion of the clip&amp;rsquo;s content. To change the keyword, click on the text and replace it with anything that floats your boat.&lt;/p&gt;&lt;h3&gt;Switch Between Tabs&lt;/h3&gt;&lt;p&gt;If you have ever used your keyboard to switch between tabs on Firefox, you know that &lt;code class='inline-code'&gt;command&lt;/code&gt; + &lt;code class='inline-code'&gt;[tab number]&lt;/code&gt; does the trick. However, in Coda this shortcut switches between the different views (i.e. Sites, Edit, etc.). To switch between tabs use &lt;code class='inline-code'&gt;command&lt;/code&gt; + &lt;code class='inline-code'&gt;shift&lt;/code&gt; + &lt;code class='inline-code'&gt;{&lt;/code&gt; or &lt;code class='inline-code'&gt;}&lt;/code&gt;. This keyboard shortcut works on Safari as well.&lt;/p&gt;&lt;h3&gt;For Fun: Slow-Motion Sites&lt;/h3&gt;&lt;p&gt;As the title obviously suggests, this trick is just for fun. Under the Sites view, precede the opening of any of your site setups with the pressing and holding of the &lt;code class='inline-code'&gt;shift&lt;/code&gt; key. Now, watch as your sites slowly turn into view. This trick, more or less, works when opening any file on Mac OSX.&lt;/p&gt;&lt;h3&gt;Have some to share?&lt;/h3&gt;&lt;p&gt;Use the form below to add your own favorite Coda tips.&lt;/p&gt;&lt;small&gt;* Not taking into consideration the horrors!!! IE6 brings to our lives.&lt;/small&gt;</content>
	</entry>
	
	<entry>
		<title>Equal Height Columns Using Mootools</title>
		<link href="http://bedrichrios.com/equal-height-columns-using-mootools"/>
		<updated>2009-01-27T00:00:00-05:00</updated>
		<id>http://bedrichrios.com/equal-height-columns-using-mootools</id>
		<content type="html">&lt;p&gt;If you are a devout follower of my humble site, you will recall that back in early 2008 I posted an &lt;a href='http://v2.bedrichrios.com/2008/02/06/equal-height-columns-again/'&gt;article&lt;/a&gt; in which I demonstrated how to achieve the equal column height&amp;#8217;s effect using &lt;a href='http://jquery.com'&gt;jQuery&lt;/a&gt;. Well, a year has passed and I have decided to revise the script but using &lt;a href='http://mootools.net'&gt;MooTools&lt;/a&gt; this time around.&lt;/p&gt;

&lt;p&gt;After looking at the original code, I decided that many of the options provided were unnecessary. So, I decided to start from scratch and I&amp;#8217;m happy quite happy with the result. In this iteration, all you need to do is add a class name (&lt;em&gt;equalize&lt;/em&gt;) to the columns you wish to equalize and you are done. Furthermore, I was able to reduce the code to &lt;em&gt;10 lines&lt;/em&gt;, eight if you remove the spacing lines.&lt;/p&gt;

&lt;p&gt;If you are a copy and paste kind of person, just use the code below. Otherwise, download the JS files from the sidebar.&lt;/p&gt;
&lt;div class='code'&gt;

&lt;div class='highlight'&gt;&lt;pre&gt;&lt;code class='javascript'&gt;&lt;span class='nb'&gt;window&lt;/span&gt;&lt;span class='p'&gt;.&lt;/span&gt;&lt;span class='nx'&gt;addEvent&lt;/span&gt;&lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='s1'&gt;&amp;#39;domready&amp;#39;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt; &lt;span class='kd'&gt;function&lt;/span&gt;&lt;span class='p'&gt;()&lt;/span&gt;
&lt;span class='p'&gt;{&lt;/span&gt;
	&lt;span class='kd'&gt;var&lt;/span&gt; &lt;span class='nx'&gt;columns&lt;/span&gt; &lt;span class='o'&gt;=&lt;/span&gt; &lt;span class='nx'&gt;$$&lt;/span&gt;&lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='s1'&gt;&amp;#39;.equalize&amp;#39;&lt;/span&gt;&lt;span class='p'&gt;);&lt;/span&gt;
	&lt;span class='kd'&gt;var&lt;/span&gt; &lt;span class='nx'&gt;max_height&lt;/span&gt; &lt;span class='o'&gt;=&lt;/span&gt; &lt;span class='mi'&gt;0&lt;/span&gt;&lt;span class='p'&gt;;&lt;/span&gt;

	&lt;span class='nx'&gt;columns&lt;/span&gt;&lt;span class='p'&gt;.&lt;/span&gt;&lt;span class='nx'&gt;each&lt;/span&gt;&lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='kd'&gt;function&lt;/span&gt;&lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='nx'&gt;item&lt;/span&gt;&lt;span class='p'&gt;)&lt;/span&gt;
	&lt;span class='p'&gt;{&lt;/span&gt; &lt;span class='nx'&gt;max_height&lt;/span&gt; &lt;span class='o'&gt;=&lt;/span&gt; &lt;span class='nb'&gt;Math&lt;/span&gt;&lt;span class='p'&gt;.&lt;/span&gt;&lt;span class='nx'&gt;max&lt;/span&gt;&lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='nx'&gt;max_height&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt; &lt;span class='nx'&gt;item&lt;/span&gt;&lt;span class='p'&gt;.&lt;/span&gt;&lt;span class='nx'&gt;getSize&lt;/span&gt;&lt;span class='p'&gt;().&lt;/span&gt;&lt;span class='nx'&gt;y&lt;/span&gt;&lt;span class='p'&gt;);&lt;/span&gt; &lt;span class='p'&gt;});&lt;/span&gt;

	&lt;span class='nx'&gt;columns&lt;/span&gt;&lt;span class='p'&gt;.&lt;/span&gt;&lt;span class='nx'&gt;setStyle&lt;/span&gt;&lt;span class='p'&gt;(&lt;/span&gt;&lt;span class='s1'&gt;&amp;#39;height&amp;#39;&lt;/span&gt;&lt;span class='p'&gt;,&lt;/span&gt; &lt;span class='nx'&gt;max_height&lt;/span&gt;&lt;span class='p'&gt;);&lt;/span&gt;
&lt;span class='p'&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;


&lt;/div&gt;
&lt;p&gt;Leave a comment if you find something wrong with the code, I will do my best to fix it. Also, if you make use of the script, a link back is always appreciated :) Enjoy!&lt;/p&gt;</content>
	</entry>
	
	<entry>
		<title>The Rebirth of bedrichrios.com</title>
		<link href="http://bedrichrios.com/the-rebirth-of-bedrichrioscom"/>
		<updated>2009-01-13T00:00:00-05:00</updated>
		<id>http://bedrichrios.com/the-rebirth-of-bedrichrioscom</id>
		<content type="html">&lt;p&gt;After many months in the making, long after-work hours, and countless cups of coffee; the new face of &lt;a href='http://bedrichrios.com'&gt;bedrichrios.com&lt;/a&gt; is finally finished. This iteration (version 3.0, if you are keeping track) brings with it, numerous changes. Firstly, it no longer makes use of the &lt;a href='http://wordpress.org'&gt;WordPress&lt;/a&gt; platform as its backbone system, but rather a much more lightweight CMS called &lt;a href='http://madebyfrog.com'&gt;Frog CMS&lt;/a&gt;. Secondly, the Blog portion from the &lt;a href='http://v2.bedrichrios.com'&gt;previous iteration&lt;/a&gt; has been replaced by a new section titled &lt;em&gt;Articles&lt;/em&gt;. Lastly, the focus and therefore structure of the site has changed in order to provide myself with more creative freedom over the layout and content.&lt;/p&gt;
&lt;h3&gt;Why Frog CMS Over WordPress&lt;/h3&gt;
&lt;p&gt;In a few words, &lt;em&gt;I realized that my site was not solely a blog&lt;/em&gt;. Although, WordPress can be extensively customized and ultimately made to function similarly to any other CMS, it remains a blogging platform. In other words, I did &lt;em&gt;not&lt;/em&gt; make the switch to Frog because I need something more (or less) powerful, but because I needed something different.&lt;/p&gt;
&lt;h3&gt;Blog, No More&lt;/h3&gt;
&lt;p&gt;Truth be told, I don&amp;#8217;t enjoy writing as much as I enjoy coding and designing. And by having a blog, I felt the necessity to write a medium to long blog-tutorial-format every single time I wanted to share some code, design thought, or something random I found in the internet. By switching from a Blog to an Article structure, I will try to write more frequently, so everyone wins :)&lt;/p&gt;
&lt;h3&gt;Freedom!!!&lt;/h3&gt;
&lt;p&gt;The main thing that attracted me to Frog CMS was its bare bones nature. Frog is a &amp;#8220;simple and elegant CMS&amp;#8221; but it also has the potential to be a great building block for a more personalized CMS; something that WordPress, in my opinion, does not.&lt;/p&gt;
&lt;h3&gt;So, What's Next&lt;/h3&gt;
&lt;p&gt;The first thing on my list is to fix any problems that may arise from moving the old WordPress blog over to &lt;a href='http://v2.bedrichrios.com'&gt;v2.bedrichrios.com&lt;/a&gt;. Once that is done, I will move over to this side of the web and tweak any problems that the redesign might have brought with it. Finally, I will be looking in to adding some features and changing things around here. Please let me know if you find anything broken around here, I kind of rushed to the release of this new version of my site :)&lt;/p&gt;</content>
	</entry>
	
</feed>
