<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>WizOne Solutions</title>
	
	<link>http://www.wizonesolutions.com</link>
	<description>Put some magic into your Web site.</description>
	<lastBuildDate>Wed, 15 May 2013 20:39:48 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/wizonesolutions" /><feedburner:info uri="wizonesolutions" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>lefnire.js: the weirdest Node.js API consumer ever</title>
		<link>http://feedproxy.google.com/~r/wizonesolutions/~3/G7sRwgrZaJA/</link>
		<comments>http://www.wizonesolutions.com/2013/05/15/lefnire-js-the-weirdest-node-js-api-consumer-ever/#comments</comments>
		<pubDate>Wed, 15 May 2013 20:39:48 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[APIs]]></category>
		<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=686</guid>
		<description><![CDATA[It must have all started with a joke on iRC that my friend lefnire, creator of HabitRPG, might just be an advanced Node.js program. A few weeks later, a buddy and I took this to its logical conclusion. But even with novelty projects, there are things to be learned, and this project has exposed me [...]]]></description>
				<content:encoded><![CDATA[<p>It must have all started with a joke on iRC that my friend <a href="https://github.com/lefnire">lefnire</a>, creator of <a href="https://habitrpg.com">HabitRPG</a>, might just be an advanced Node.js program.</p>
<p>A few weeks later, a buddy and I took this to <a href="http://github.com/litenull/lefnire.js">its logical conclusion</a>.</p>
<p>But even with novelty projects, there are things to be learned, and this project has exposed me to <a href="https://npmjs.org">npm</a> modules I probably otherwise never would have used. I&#8217;m going to go over a few of the architectural highlights (npm and not) in no particular order.</p>
<h2>Startup</h2>
<p>After you <strong>npm install lefnire</strong>, typing <strong>lefnire</strong> runs him.</p>
<p><a href="http://www.wizonesolutions.com/wp-content/uploads/2013/05/Bildschirmfoto-2013-05-15-um-22.13.23.png"><img class=" wp-image-687 alignnone" alt="screenshot of lefnire.js" src="http://www.wizonesolutions.com/wp-content/uploads/2013/05/Bildschirmfoto-2013-05-15-um-22.13.23.png" width="393" height="617" /></a></p>
<p>If you said, &#8220;ASCII art?&#8221; you would be correct. This was a friend&#8217;s idea, and it&#8217;s become a staple of the application.</p>
<h2>API integration with the <em>superagent</em> and <em>github</em> modules</h2>
<p>Currently, lefnire.js is lightly integrated with the HabitRPG and GitHub APIs. The HabitRPG API integration uses straight <em>superagent</em> requests. The GitHub API calls use <em>github</em>.</p>
<p>When you say something containing &#8220;habit down,&#8221; he makes an API call to <strong>https://habitrpg.com/api/v1/status</strong> to check.</p>
<p>When you ask him by his IRC name (I&#8217;ll be getting to IRC stuff in a second), he queries the GitHub API to find out the number of issues labeled &#8220;critical&#8221; for <a href="https://github.com/lefnire/habitrpg">HabitRPG on GitHub</a>.</p>
<h2><strong>IRC integration with the <em>node-irc</em> module</strong></h2>
<p>What would an automaton be without being able to log on to IRC and interact? lefnire.js uses <em>node-irc</em> to accomplish this. The library is pretty robust and follows Node.js patterns well. This is a fantastic example of an application that thrives on asynchronous execution. When you ask him if &#8220;habit is down,&#8221; and it is, that thread of execution will block. However, it won&#8217;t stop the bot from responding, thanks to the event listener model implemented by <em>node-irc</em><em>.</em></p>
<h2><strong>Mood and the <em>Sentimental</em> module</strong></h2>
<p>Another interesting feature is a rudimentary implementation of mood, which is basically just a number between 0 and 30 (0&#8242;s the best). This doesn&#8217;t do too much yet. It affects his behavior a little bit. The number of GitHub criticals is the baseline metric.</p>
<p>This is then adjusted up or down by how positive or negative <em>Sentimental </em>analyzes the up to the 30 most recent GitHub Events from lefnire to be. This is mostly issue comments, pull requests comments, and commit messages.</p>
<p>When lefnire is in-channel, it also adjusts mood based on <em>Sentimental</em> text analysis of what he says.</p>
<p>No database yet, so everything except what I can retrieve again through API calls is lost if I <strong>ctrl-C</strong> the bot and stop it.</p>
<h2>Wrap-up</h2>
<p>Those are the main highlights of the current implementation. A lot of things are <a href="http://github.com/litenull/lefnire.js/issues">planned</a>. I doubt anyone would want to contribute to this, but I&#8217;d certainly be excited to receive some pull requests.</p>
<p>GitHub repository: <a href="http://github.com/litenull/lefnire.js">http://github.com/litenull/lefnire.js</a></p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/wizonesolutions/~4/G7sRwgrZaJA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2013/05/15/lefnire-js-the-weirdest-node-js-api-consumer-ever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wizonesolutions.com/2013/05/15/lefnire-js-the-weirdest-node-js-api-consumer-ever/</feedburner:origLink></item>
		<item>
		<title>Fixing duplicate field collection item references in Drupal due to Content Translation bug</title>
		<link>http://feedproxy.google.com/~r/wizonesolutions/~3/_DKP-L9nm3Y/</link>
		<comments>http://www.wizonesolutions.com/2013/05/14/fixing-duplicate-field-collection-item-references-in-drupal-due-to-content-translation-bug/#comments</comments>
		<pubDate>Wed, 15 May 2013 04:00:41 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[collection]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[duplicate]]></category>
		<category><![CDATA[field]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[id]]></category>
		<category><![CDATA[internationalization]]></category>
		<category><![CDATA[item]]></category>
		<category><![CDATA[revision]]></category>
		<category><![CDATA[translation]]></category>
		<category><![CDATA[value]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=680</guid>
		<description><![CDATA[I just left a comment in the Field Collection issue queue and thought it&#8217;d be good to spread it more widely; maybe people need this fix. For anyone still getting burned by this bug (or for that matter getting burned by using Node Clone on nodes with field collections), first apply my previous patch (or [...]]]></description>
				<content:encoded><![CDATA[<p>I just left a <a href="http://drupal.org/node/1316162#comment-7406064">comment</a> in the Field Collection issue queue and thought it&#8217;d be good to spread it more widely; maybe people need this fix.</p>
<blockquote><p>For anyone still getting burned by this bug (or for that matter getting burned by using Node Clone on nodes with field collections), first apply my previous patch (or bderubinat&#8217;s, but I haven&#8217;t tested that one). That will stop further damage.</p>
<p>To repair your <em>previous</em> entries and ensure that, for example, removing a field collection entry doesn&#8217;t remove it from other nodes from which you didn&#8217;t want it removed, you can implement this script I&#8217;ve detailed in a gist: <a href="https://gist.github.com/wizonesolutions/5567549">https://gist.github.com/wizonesolutions/5567549</a></p>
<p>It will give new <code>item_id</code>s to field collection items that it detects as appearing more than once. All my testing has indicated this is safe, but if not, please leave a comment on the gist. I hope this helps someone.</p>
<p>Thanks to <a href="http://projectricochet.com">Project Ricochet</a> for sponsoring my time on this.</p></blockquote>
<img src="http://feeds.feedburner.com/~r/wizonesolutions/~4/_DKP-L9nm3Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2013/05/14/fixing-duplicate-field-collection-item-references-in-drupal-due-to-content-translation-bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wizonesolutions.com/2013/05/14/fixing-duplicate-field-collection-item-references-in-drupal-due-to-content-translation-bug/</feedburner:origLink></item>
		<item>
		<title>Introducing Internationalization 404 for Drupal</title>
		<link>http://feedproxy.google.com/~r/wizonesolutions/~3/6QERnQUUIgQ/</link>
		<comments>http://www.wizonesolutions.com/2013/05/13/introducing-internationalization-404-for-drupal/#comments</comments>
		<pubDate>Tue, 14 May 2013 04:00:28 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=672</guid>
		<description><![CDATA[I released a new module for Drupal a couple days ago called Internationalization 404. This module helps you automatically use Content Translation-translated localized language versions of your 404, 403, and home pages. Normally, you have to install Internationalization Variables (i18n_variable) and separately configure the options for these pages per-language. This module saves you time and automatically [...]]]></description>
				<content:encoded><![CDATA[<p>I released a new module for Drupal a couple days ago called <a href="http://drupal.org/project/i18n_404">Internationalization 404</a>. This module helps you <strong>automatically use Content Translation-translated localized language versions of your 404, 403, and home pages</strong>.</p>
<p>Normally, you have to install Internationalization Variables (<em>i18n_variable</em>) and separately configure the options for these pages per-language. This module saves you time and automatically sends visitors to the correct page. Should you decide to use specific language versions with <em>i18n_variable</em>, this module will respect that configuration and not interfere.</p>
<p>All you have to do is enable the module for it to start working. No configuration required. Disable it to turn off the functionality.</p>
<p>Install it from <a href="http://drupal.org/project/i18n_404">the project page</a>.</p>
<p>Thanks to <a href="http://projectricochet.com">Project Ricochet</a> for sponsoring this work.</p>
<img src="http://feeds.feedburner.com/~r/wizonesolutions/~4/6QERnQUUIgQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2013/05/13/introducing-internationalization-404-for-drupal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wizonesolutions.com/2013/05/13/introducing-internationalization-404-for-drupal/</feedburner:origLink></item>
		<item>
		<title>HabitRPG and Remember the Milk Synchronization on the Command-Line</title>
		<link>http://feedproxy.google.com/~r/wizonesolutions/~3/ueQd-3TFAn4/</link>
		<comments>http://www.wizonesolutions.com/2013/05/12/habitrpg-and-remember-the-milk-synchronization-on-the-command-line/#comments</comments>
		<pubDate>Sun, 12 May 2013 19:35:40 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[APIs]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[command]]></category>
		<category><![CDATA[habitrpg]]></category>
		<category><![CDATA[line]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[remember the milk]]></category>
		<category><![CDATA[rtm]]></category>
		<category><![CDATA[sync]]></category>
		<category><![CDATA[synchronization]]></category>
		<category><![CDATA[task]]></category>
		<category><![CDATA[todo]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=668</guid>
		<description><![CDATA[If you, like me, are a user of both HabitRPG and Remember the Milk, you may have been looking for a way to link the two. I developed habitrpg-todo-sync (HabitRPG Todo Synchronization) to do just that. The README file explains in good detail how to use it. Come on, just tell me how to use [...]]]></description>
				<content:encoded><![CDATA[<p>If you, like me, are a user of both <a href="https://habitrpg.com">HabitRPG</a> and <a href="https://www.rememberthemilk.com">Remember the Milk</a>, you may have been looking for a way to link the two. I developed <a href="https://github.com/wizonesolutions/habitrpg-todo-sync">habitrpg-todo-sync</a> (HabitRPG Todo Synchronization) to do just that.</p>
<p>The README file explains in good detail how to use it.</p>
<h2>Come on, just tell me how to use it</h2>
<p>OK, here&#8217;s the quick version (you need NPM installed, which you get with <a href="http://nodejs.org/download/">Node.js</a>):</p>
<p><strong>npm install -g habitrpg-todo-sync</strong></p>
<p><strong>habitsync</strong></p>
<p>It will tell you what to do from there.</p>
<h2>Full synchronization</h2>
<p>You might be interested in running</p>
<p><strong>habitsync -a</strong></p>
<p>to do a full synchronization of your tasks. By default, it only retrieves the last week of them.</p>
<h2>Don&#8217;t synchronize <em>everything</em></h2>
<p>You may not want to get all your tasks. habitrpg-todo-sync can make use of Remember the Milk&#8217;s <a href="http://www.rememberthemilk.com/help/?ctx=basics.search.advanced">advanced search interface</a> (ever tried typing something like <em>addedWithin: 1 week ago</em> in their search box?). <strong>Here&#8217;s how:</strong></p>
<p><strong>habitsync &#8211;filter=&#8221;list:Name of Your List&#8221;</strong></p>
<p>You can do anything you can do with their interface.</p>
<h2>And you can combine command-line options:</h2>
<p><strong>habitsync -a &#8211;filter=&#8221;list:Smart List You Want To Sync&#8221;</strong></p>
<h2>Run on a schedule</h2>
<p>You can run it manually or add it to cron. I have this in my <em>crontab</em>, which runs it every hour against beta.habitrpg.com (which is often more likely to be working). <strong>To put it in yours, you generally run</strong></p>
<p><strong>crontab -e</strong></p>
<p>and then add the following line:</p>
<p><strong># min hour mday month wday command</strong><br />
<strong>*/60 * * * * /usr/local/bin/habitsync -qB</strong></p>
<p>You can separate each argument with spaces or tabs, and you don&#8217;t need the first line. I just included it for completeness.</p>
<h2>It doesn&#8217;t do what I want.</h2>
<p>Tell me! I really want to hear back from users of it. When I don&#8217;t, I assume nobody cares, and I improve it much more slowly. Report issues <a href="https://github.com/wizonesolutions/habitrpg-todo-sync/issues">on GitHub</a>.</p>
<img src="http://feeds.feedburner.com/~r/wizonesolutions/~4/ueQd-3TFAn4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2013/05/12/habitrpg-and-remember-the-milk-synchronization-on-the-command-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wizonesolutions.com/2013/05/12/habitrpg-and-remember-the-milk-synchronization-on-the-command-line/</feedburner:origLink></item>
		<item>
		<title>DrupalCamp alert: DrupalCamp Gothenburg 2013!</title>
		<link>http://feedproxy.google.com/~r/wizonesolutions/~3/vML4ejzvn2A/</link>
		<comments>http://www.wizonesolutions.com/2013/05/11/drupalcamp-alert-drupalcamp-gothenburg-2013/#comments</comments>
		<pubDate>Sat, 11 May 2013 20:04:27 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[2013]]></category>
		<category><![CDATA[camp]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[göteborg]]></category>
		<category><![CDATA[gothenburg]]></category>
		<category><![CDATA[sverige]]></category>
		<category><![CDATA[sweden]]></category>
		<category><![CDATA[volunteer]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=665</guid>
		<description><![CDATA[If you haven&#8217;t been following any of the calendars listing DrupalCamps, you may have missed the arrangement that&#8217;s coming up in Gothenburg, Sweden in a couple weeks. This wouldn&#8217;t be surprising, since it&#8217;s being marketed in Swedish. People of all languages are welcome, however, so I thought I&#8217;d somewhat rehash the post I made in [...]]]></description>
				<content:encoded><![CDATA[<p>If you haven&#8217;t been following any of the calendars listing DrupalCamps, you may have missed the arrangement that&#8217;s coming up in Gothenburg, Sweden in a couple weeks. This wouldn&#8217;t be surprising, since it&#8217;s being marketed in Swedish. People of all languages are welcome, however, so I thought I&#8217;d somewhat rehash <a href="http://wizonesolutions.no/blogg/drupalcamp-g%C3%B6teborg-2013-kjem">the post I made in Norwegian</a>.</p>
<p>The camp&#8217;s pitch is: &#8220;A one-day conference focused on the Drupal CMS. Come along and learn more about Drupal and the web, and have a great day in Gothenburg in late Spring.&#8221;</p>
<p>Sessions are here: http://summer2013.drupalcamp.se/program/sessions</p>
<p>As with most DrupalCamp sites, volunteer work lies behind the site you see. A lot of people contributed really great work. Fantastic designs and solid development resulted in the site you see today. I was also involved, mostly behind the scenes. I helped with server administration, Git coordination, transferring the site to another server, and mostly with coordinating the web team&#8217;s efforts. It was the first time I had spent as much time helping organize a DrupalCamp (and I&#8217;ve been to quite a few; I&#8217;ve even volunteered at a couple).</p>
<p>If you&#8217;re in Europe or in the area, I encourage you to check it out. You can follow them on Twitter at <a href="https://twitter.com/DrupalGBG">@DrupalGBG</a>.</p>
<p>Google Translate is getting better and better <img src='http://www.wizonesolutions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/wizonesolutions/~4/vML4ejzvn2A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2013/05/11/drupalcamp-alert-drupalcamp-gothenburg-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wizonesolutions.com/2013/05/11/drupalcamp-alert-drupalcamp-gothenburg-2013/</feedburner:origLink></item>
		<item>
		<title>Fixing “The box … could not be found” in the new Vagrant (1.1+)</title>
		<link>http://feedproxy.google.com/~r/wizonesolutions/~3/-uOrQOdZwSY/</link>
		<comments>http://www.wizonesolutions.com/2013/04/18/fixing-the-box-could-not-be-found-in-the-new-vagrant-1-1/#comments</comments>
		<pubDate>Thu, 18 Apr 2013 11:37:03 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[1.0]]></category>
		<category><![CDATA[1.1]]></category>
		<category><![CDATA[1.2]]></category>
		<category><![CDATA[box]]></category>
		<category><![CDATA[format]]></category>
		<category><![CDATA[found]]></category>
		<category><![CDATA[metadata.json]]></category>
		<category><![CDATA[not]]></category>
		<category><![CDATA[vagrant]]></category>
		<category><![CDATA[virtualbox]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=657</guid>
		<description><![CDATA[Visual people: Watch this screencast Anti-video readers: Keep reading. This morning I ran into an issue with my Vagrant upgrade (I went from 1.0.7 to 1.2.1) that took me a few hours to figure out. I did, however, solve it in the end and thought it&#8217;d be useful to share how. It&#8217;s an easy fix. [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Visual people: Watch this screencast</strong></p>
<p><iframe src="http://www.youtube.com/embed/znkAfIANbkg?rel=0" height="360" width="640" allowfullscreen="" frameborder="0"></iframe></p>
<p><strong>Anti-video readers: Keep reading.</strong></p>
<p>This morning I ran into an issue with my Vagrant upgrade (I went from 1.0.7 to 1.2.1) that took me a few hours to figure out. I did, however, solve it in the end and thought it&#8217;d be useful to share how. It&#8217;s an easy fix.</p>
<p>First, the error I was getting was:</p>
<p><strong>The box &#8216;boxname&#8217; could not be found.</strong></p>
<p>(where boxname was the actual name of the box, e.g. precise32)</p>
<p>The box <strong>did</strong> show up when I ran <strong>vagrant box list</strong>, so I knew that it should have been working.</p>
<p>After trying an assortment of things, including converting my Vagrantfile configuration to the version 2 format and trying to use the box in a fresh directory and with a fresh Vagrantfile, I decided to try re-adding the precise32 box that Vagrant provides. I did that, and then typed <strong>vagrant init precise32d</strong>. (I had called it <strong>precise32d</strong>.) This worked fine. I deduced that there must have been some change in the box itself. So I fired up DiffMerge.</p>
<p>DiffMerge told me that there weren&#8217;t any files it could compare. This, I discovered, was because everything in the new box I had downloaded was under a <em>virtualbox</em> directory. A-ha! I was on to something. I looked in that directory and saw these files:</p>
<p><em>Vagrantfile box.ovf box-disk1.vmdk metadata.json</em></p>
<p>Wait, <em>metadata.json</em>? That wasn&#8217;t in my existing box&#8217;s folder at all! What could be in there, I wondered?</p>
<p><strong>$ cat virtualbox/metadata.json</strong></p>
<p>{&#8220;provider&#8221;:&#8221;virtualbox&#8221;}</p>
<p>Ah. So it&#8217;s relying on this to figure out the provider, since Vagrant 1.1+ has the concept of providers other than VirtualBox. That explained a lot. The simplest fix is just as you may suppose:</p>
<p>To eliminate the potential for human error, we&#8217;ll use an existing <em>metadata.json</em> file. Run:</p>
<p><strong>$ vagrant box add precise32 http://files.vagrantup.com/precise32.box</strong></p>
<p><strong></strong>Wait for it to download and be added.</p>
<p>Then,</p>
<p><strong>$ cd ~/.vagrant.d/boxes/yourbox</strong></p>
<p><strong></strong><strong>$ mkdir virtualbox</strong></p>
<p><strong>$ mv * virtualbox </strong><em id="__mceDel">(or you can specify all the filenames manually)</em></p>
<p><strong>$ cp ../precise32d/virtualbox/metadata.json virtualbox</strong></p>
<p>You should now be able to <strong>vagrant up</strong> any projects that are relying on your pre-upgrade box. And they should work just as well as they did before!</p>
<p>Some notes:</p>
<ul>
<li><span style="line-height: 13px;">I assume your boxes <em>are</em> VirtualBox VMs. If they&#8217;re not, then you probably wouldn&#8217;t have this issue anyway.</span></li>
<li>Don&#8217;t type the $ marks. That&#8217;s just to show you type the command in a terminal.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/wizonesolutions/~4/-uOrQOdZwSY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2013/04/18/fixing-the-box-could-not-be-found-in-the-new-vagrant-1-1/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.wizonesolutions.com/2013/04/18/fixing-the-box-could-not-be-found-in-the-new-vagrant-1-1/</feedburner:origLink></item>
		<item>
		<title>One SSH key to rule them all: Forward your SSH agent session in 15 seconds</title>
		<link>http://feedproxy.google.com/~r/wizonesolutions/~3/jnhhrGH8b1c/</link>
		<comments>http://www.wizonesolutions.com/2013/01/01/one-ssh-key-to-rule-them-all-forward-your-ssh-agent-session-in-15-seconds/#comments</comments>
		<pubDate>Tue, 01 Jan 2013 14:13:40 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Toolbox]]></category>
		<category><![CDATA[agent]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[forwarding]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=635</guid>
		<description><![CDATA[Recently, I used a tool that spoke of &#8220;forwarding&#8221; my SSH session to the server and thus avoiding needing to copy my private key to the server in order to be able to access Git repositories or other servers where I log in by public key. If you manage your keys at all, you can immediately [...]]]></description>
				<content:encoded><![CDATA[<p>Recently, I used a <a href="https://github.com/myplanetdigital/vagrant-ariadne">tool</a> that spoke of &#8220;forwarding&#8221; my SSH session to the server and thus avoiding needing to copy my private key to the server in order to be able to access Git repositories or other servers where I log in by public key.</p>
<p>If you manage your keys at all, you can immediately see the allure here.</p>
<p>The configuration is <strong>ridiculously easy</strong>. Put this in your <strong>$HOME/.ssh/config</strong> file* (Windows users, check PuTTY settings; it can probably do this too).</p>
<p><strong>Host &lt;hostname&gt;</strong></p>
<p style="padding-left: 30px;"><strong>ForwardAgent yes</strong></p>
<p>You can, of course, combine this with other options such as HostName and User.</p>
<p>I tested it with Fill PDF Service:</p>
<p><strong>Host fps</strong></p>
<p style="padding-left: 30px;"><strong>HostName fillpdf-service.com</strong></p>
<p style="padding-left: 30px;"><strong>User myusername</strong></p>
<p style="padding-left: 30px;"><strong>ForwardAgent yes</strong></p>
<p><code><strong></strong>ssh fps<br />
cd /path/to/my/web/root<br />
git pull</code></p>
<p>(The Git repository is password-protected, and my Git setup uses SSH for authentication by default.)</p>
<p>I got back:<em> Already up to date.</em></p>
<p>I used to be prompted for my password, but that&#8217;s yesterday&#8217;s news…quite literally.</p>
<p><strong>Extra tip:</strong> If no one else uses your computer, you can put <strong>ForwardAgent yes</strong> on its own line. This will forward your agent to all servers you connect to. I&#8217;m not an SSH expert, but as far as I know, ssh-agent is designed to be extremely secure. The main risk is if someone is using your computer directly, but that applies to most things. SSH Agent sessions are restricted to the current user <em>session</em> via environment variables (so no one can simply switch to you on a server to get access).</p>
<p>It blew me away how easy it is to get this going. 2013 is the year of SSH agent forwarding for me. Hope this helps!</p>
<p>* If the file doesn&#8217;t exist, create it. Make sure the permissions on the .ssh directory are <strong>600</strong> (drwx&#8212;&#8212;).</p>
<img src="http://feeds.feedburner.com/~r/wizonesolutions/~4/jnhhrGH8b1c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2013/01/01/one-ssh-key-to-rule-them-all-forward-your-ssh-agent-session-in-15-seconds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wizonesolutions.com/2013/01/01/one-ssh-key-to-rule-them-all-forward-your-ssh-agent-session-in-15-seconds/</feedburner:origLink></item>
		<item>
		<title>Klar for å ta oppdrag i Norge! (Now open for business in Norway!)</title>
		<link>http://feedproxy.google.com/~r/wizonesolutions/~3/sAWQYzWZA0I/</link>
		<comments>http://www.wizonesolutions.com/2012/11/07/now-open-for-business-in-norway/#comments</comments>
		<pubDate>Wed, 07 Nov 2012 19:06:15 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=625</guid>
		<description><![CDATA[WizOne Solutions has moved to Norway! You&#8217;ll see a slight update in the footer showing its Norwegian organization number. The official new name is Kaland Web, but we will continue being WizOne Solutions. A Norwegian version of the site is likely to show up after a while. In short: I haven&#8217;t blogged in a while, [...]]]></description>
				<content:encoded><![CDATA[<p>WizOne Solutions has moved to Norway! You&#8217;ll see a slight update in the footer showing its Norwegian organization number. The official new name is Kaland Web, but we will continue being WizOne Solutions. A Norwegian version of the site is likely to show up after a while. In short: I haven&#8217;t blogged in a while, but I&#8217;m still here!</p>
<p>Rates on new work will generally be consistent with the Norwegian economy, so that is something to keep in mind when evaluating my services.</p>
<p>Looking forward to seeing how this new chapter unfolds!</p>
<p><strong>Norwegian speakers only beyond this point:</strong></p>
<p>Kjære norskspråkelig menneske <img src='http://www.wizonesolutions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ,</p>
<p>Jeg snakker norsk, så bare ta kontakt direkte på norsk hvis du har behov for tjenestene mine. Jeg kommer ikke til å skrive så mye på norsk på denne bloggen. Jeg vil heller ha en helnorsk side enn å blande språkene. På Twitter kan du sende tviter til <a href="http://twitter.com/wizoneno">@wizoneno</a> eller <a href="http://twitter.com/wizonesolutions">@wizonesolutions</a>.</p>
<img src="http://feeds.feedburner.com/~r/wizonesolutions/~4/sAWQYzWZA0I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2012/11/07/now-open-for-business-in-norway/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.wizonesolutions.com/2012/11/07/now-open-for-business-in-norway/</feedburner:origLink></item>
		<item>
		<title>Git: Rebase workflow with remotes involved</title>
		<link>http://feedproxy.google.com/~r/wizonesolutions/~3/QbXO74QkK54/</link>
		<comments>http://www.wizonesolutions.com/2012/08/09/git-rebase-workflow-with-remotes-involved/#comments</comments>
		<pubDate>Thu, 09 Aug 2012 23:22:38 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=599</guid>
		<description><![CDATA[Note: I haven&#8217;t gone to great pains to make this post beginner-friendly, but if you&#8217;re in my situation, you should be able to follow along and understand the problem and how I solve it. Feedback welcome in the comments. Overview I&#8217;ve been trying to stick strictly to a rebase workflow in Git, rather than using git [...]]]></description>
				<content:encoded><![CDATA[<p><strong>Note:</strong> I haven&#8217;t gone to great pains to make this post beginner-friendly, but if you&#8217;re in my situation, you should be able to follow along and understand the problem and how I solve it. Feedback welcome in the comments.</p>
<h2>Overview</h2>
<p>I&#8217;ve been trying to stick strictly to a <a href="http://learn.github.com/p/rebasing.html">rebase</a> workflow in Git, rather than using <code>git merge</code>.</p>
<p>This has not been without it <a href="http://learn.github.com/p/rebasing.html#the_perils_of_rebasing">perils</a>.</p>
<p>However, I&#8217;ve found a workflow that works for me <strong>as an individual developer using my own feature branch that I push to a remote</strong>. <span style="color: #ff0000;">Do not use the following workflow for other situations unless you know what you&#8217;re doing.</span></p>
<h2>&#8220;Why are you <em>doing</em> this?&#8221; and such</h2>
<p><span style="color: #000000;"><strong>The problem:</strong> After rebasing using the mainline as a base (<code>git rebase master</code>) you can no longer push the rebased branch to a remote since it won&#8217;t fast-forward anymore.</span></p>
<p><strong>Why would you push it to a remote?</strong> Because you have untracked/dirty files that need to stay that way locally. In my case, my Drupal <code>settings.php</code> is in the repository &#8211; don&#8217;t blame me, I don&#8217;t control the client&#8217;s internal processes &#8211; and it must stay dirty for my local site to function. Rebasing is much easier when you don&#8217;t have to worry about such files, though, so I keep a second clone of the repository that I use for rebasing.</p>
<p>Pushing my changes from the dirty repository works fine, naturally, since I don&#8217;t rebase there.</p>
<p><strong>But once I rebase in the clean repository, how do I push those changes back to the dirty one without causing a merge?</strong></p>
<p>It actually only takes a few commands, and it is pretty safe <strong>as long as everything you want to commit to your feature branch is already committed</strong>.</p>
<h2>The good part (commands!)</h2>
<p>This is what I do:</p>
<p><code>cd /path/to/clean/repository/clone</code></p>
<p><code>git pull</code> (remember, I don&#8217;t work on this repository, so it will always fast-forward)</p>
<p><code>git checkout featurebranch</code></p>
<p><code>git rebase master</code></p>
<p>(fix any conflicts and complete the rebase)</p>
<p><code>git push -f origin featurebranch</code> (this overwrites the remote with what I now have)</p>
<p><code>cd /path/to/dirty/repository/clone</code></p>
<p><code>git checkout master</code></p>
<p><code>git branch -D featurebranch</code> (this deletes the local <code>featurebranch</code> branch)</p>
<p><code>git checkout featurebranch</code> (you may have to use <code>git checkout -b featurebranch origin/featurebranch</code> &#8211; I don&#8217;t know what differentiates if you have to or not)</p>
<h2>Explanation and conclusion</h2>
<p>So basically, I&#8217;m recreating the local branch from the remote branch. Then I continue developing and rinse/repeat when I need to integrate changes from the mainline or when I&#8217;m done with my feature and want to make sure it will fast-forward into the mainline. I finally developed this workflow after finding I always had to merge my feature branch into the mainline in the end; it would never fast-forward. This is because I was running <code>git rebase origin/featurebranch</code> from within the feature branch, since then it would let me push. This basically defeated the purpose of rebasing since it would rebase the new commits from the mainline on <em>top</em> of mine. I wanted mine on top of the new mainline commits.</p>
<p>Hope this helps some poor soul out there who&#8217;s in the same boat I was.</p>
<img src="http://feeds.feedburner.com/~r/wizonesolutions/~4/QbXO74QkK54" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2012/08/09/git-rebase-workflow-with-remotes-involved/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.wizonesolutions.com/2012/08/09/git-rebase-workflow-with-remotes-involved/</feedburner:origLink></item>
		<item>
		<title>VirtualBox 4.1.18: How to solve “Failed to load unit ‘HGCM’ (VERR_SSM_UNEXPECTED_DATA)”</title>
		<link>http://feedproxy.google.com/~r/wizonesolutions/~3/L_buEMxK0wk/</link>
		<comments>http://www.wizonesolutions.com/2012/07/16/virtualbox-4-1-18-how-to-solve-failed-to-load-unit-hgcm-verr_ssm_unexpected_data/#comments</comments>
		<pubDate>Mon, 16 Jul 2012 18:27:39 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[DevOps]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=587</guid>
		<description><![CDATA[(Update 7/18/2012: My theme cuts off the title. The full title is, &#8220;VirtualBox 4.1.18: How to solve &#8220;Failed to load unit &#8216;HGCM&#8217; (VERR_SSM_UNEXPECTED_DATA)&#8221;.) So, this is a bit of a departure from my usual type of post, but it&#8217;s still DevOps-related (an area I&#8217;m increasingly getting into), and people are probably searching for this. My [...]]]></description>
				<content:encoded><![CDATA[<p>(<strong>Update 7/18/2012:</strong> My theme cuts off the title. The full title is, &#8220;VirtualBox 4.1.18: How to solve &#8220;Failed to load unit &#8216;HGCM&#8217; (VERR_SSM_UNEXPECTED_DATA)&#8221;.)</p>
<p>So, this is a bit of a departure from my usual type of post, but it&#8217;s still DevOps-related (an area I&#8217;m increasingly getting into), and people are probably searching for this.</p>
<p><strong>My experience with this error</strong></p>
<p>I had to send in my Windows laptop for warranty repair, and I was running a couple work-critical VirtualBox virtual machines (&#8220;VMs&#8221;) on it. I use Vagrant to run them without a GUI, and moving them was easy. I used <strong>vagrant package</strong>, copied over the project files, and ran <strong>vagrant up</strong> on the destination machine. This was not the issue.</p>
<p><strong>I got this error when I suspended the virtual machines, then tried to resume them</strong></p>
<p>So for some reason the VMs started up without issue. However, upon suspend and resume, I started getting the titular error. I searched for it on the Internet and found a VirtualBox forum which linked to a bug report which suggested editing the <strong>.vbox</strong> file. This is in <strong>&lt;home directory&gt;/VirtualBox VMs/&lt;name of VM&gt;</strong> and is named after the VM as well. It ends in <strong>.vbox</strong>.</p>
<p>Now, before you edit it, <strong>make sure you:</strong></p>
<ol>
<li>Suspend or shut down all running VMs</li>
<li>Close VirtualBox</li>
</ol>
<p><strong>If you don&#8217;t, this won&#8217;t work because VirtualBox will use the previous configuration anyway.</strong></p>
<p>OK, so open up the .vbox file. Search for <strong>SharedFolders</strong>. You will see something like:</p>
<p>&lt;SharedFolders&gt;<br />
&lt;SharedFolder blah blah blah /&gt;<br />
&lt;/SharedFolders&gt;</p>
<p>Anywhere in the file you see that, change it simply to:</p>
<p>&lt;SharedFolders/&gt;</p>
<p>and save the file.</p>
<p>Now open VirtualBox and try resuming the afflicted VM again.  It should work. If it doesn&#8217;t, go check the <strong>.vbox</strong> file and make sure VirtualBox didn&#8217;t change it back. If it did&#8230;then make sure you followed the two preparatory steps above. I&#8217;m speaking from experience here. You can&#8217;t skip those.</p>
<p>And you&#8217;ll be good!</p>
<p><strong>Update (7/17/2012):</strong> If you have several VMs that you run together, sometimes one of them will resume while the others fail with this error. If you resume that one, you may be able to subsequently resume the others. Not sure why this happens since the VM in question didn&#8217;t have any VirtualBox shared folders (not even in the XML), though some were using NFS. Perhaps it was internal-network related. Just noting this here since it happened.</p>
<img src="http://feeds.feedburner.com/~r/wizonesolutions/~4/L_buEMxK0wk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2012/07/16/virtualbox-4-1-18-how-to-solve-failed-to-load-unit-hgcm-verr_ssm_unexpected_data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.wizonesolutions.com/2012/07/16/virtualbox-4-1-18-how-to-solve-failed-to-load-unit-hgcm-verr_ssm_unexpected_data/</feedburner:origLink></item>
	</channel>
</rss>
