<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WizOne Solutions &#187; Life of a Web Developer</title>
	<atom:link href="http://www.wizonesolutions.com/category/life-of-a-web-developer/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wizonesolutions.com</link>
	<description>Put some magic into your Web site.</description>
	<lastBuildDate>Fri, 20 Jan 2012 22:14:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>WizOne Solutions Winter Update</title>
		<link>http://www.wizonesolutions.com/2012/01/20/wizone-solutions-winter-update/</link>
		<comments>http://www.wizonesolutions.com/2012/01/20/wizone-solutions-winter-update/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 09:46:31 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=531</guid>
		<description><![CDATA[Update: I&#8217;ve also sponsored DrupalCamp NJ (http://www.drupalcampnj.org/sponsors/fill-pdf-service) at the Silver level. I wondered what I should call this post, and the title I picked seemed to fit. It&#8217;s been some time since I&#8217;ve written a proper blog post about my attendance to (or sponsorship of) camps. I&#8217;ve definitely tweeted about it, but the blog posts have [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update:</strong> I&#8217;ve also sponsored DrupalCamp NJ (<a href="http://www.drupalcampnj.org/sponsors/fill-pdf-service" onclick="pageTracker._trackPageview('/outgoing/www.drupalcampnj.org/sponsors/fill-pdf-service?referer=');">http://www.drupalcampnj.org/sponsors/fill-pdf-service</a>) at the Silver level.</p>
<p>I wondered what I should call this post, and the title I picked seemed to fit. It&#8217;s been some time since I&#8217;ve written a proper blog post about my attendance to (or sponsorship of) camps. I&#8217;ve definitely tweeted about it, but the blog posts have been lagging behind. Time passes, and opportunities do too. I think I&#8217;d be beating a dead horse to try and catch up now. I&#8217;d rather just list the highlights since around July:</p>
<ol>
<li>Was an individual sponsor of DrupalCamp LA (<a href="http://2011.drupalcampla.com/sponsors/wizone-solutions" onclick="pageTracker._trackPageview('/outgoing/2011.drupalcampla.com/sponsors/wizone-solutions?referer=');">http://2011.drupalcampla.com/sponsors/wizone-solutions</a>) and attended. Presented on hooks with Oliver Seldman and subbed in for Christefano&#8217;s presentation (<a href="http://2011.drupalcampla.com/sessions/professional-staging-and-deployment-todays-best-and-worst-practices" onclick="pageTracker._trackPageview('/outgoing/2011.drupalcampla.com/sessions/professional-staging-and-deployment-todays-best-and-worst-practices?referer=');">http://2011.drupalcampla.com/sessions/professional-staging-and-deployment-todays-best-and-worst-practices</a>). Also scored a great new photo courtesy of Sawako Leslie (thanks!).</li>
<li>Attended my first DrupalCon&#8230;in London (ahem, Croydon)! I also did an individual sponsorship for that (<a href="http://london2011.drupal.org/sponsor/wizone-solutions" onclick="pageTracker._trackPageview('/outgoing/london2011.drupal.org/sponsor/wizone-solutions?referer=');">http://london2011.drupal.org/sponsor/wizone-solutions</a>) and ran a couple informal discussion sessions (BOFs).</li>
<li>Experienced Drutober with nearly back-to-back DrupalCamps.The first was the Pacific Northwest Drupal Summit. This was a pretty cool event (yeah, sponsored this also. See a trend? <a href="http://pnwdrupalsummit.org/sponsors/wizone-solutions" onclick="pageTracker._trackPageview('/outgoing/pnwdrupalsummit.org/sponsors/wizone-solutions?referer=');">http://pnwdrupalsummit.org/sponsors/wizone-solutions</a>). It was targeted more at developers, apparently, and it was <em>really well organized</em>. I mean really well. Everything just went so smoothly and was so professionally done. My paltry $50 (OK, $200 total) was worth every penny.
<p>The second camp was the Bay Area Drupal Camp, a.k.a. BADCamp. (Individual sponsorship in profile: <a href="http://2011.badcamp.net/attendees/wizonesolutions" onclick="pageTracker._trackPageview('/outgoing/2011.badcamp.net/attendees/wizonesolutions?referer=');">http://2011.badcamp.net/attendees/wizonesolutions</a>.) I had to work for this one (the Coder Lounge was around 15 minutes away from the sessions), but it was worth it, and I made some new acquaintances. My session on Fill PDF also made it in at the last second (<a href="http://2011.badcamp.net/program/sessions/fill-pdf-module-web-form-data-completed-pdf-form-out" onclick="pageTracker._trackPageview('/outgoing/2011.badcamp.net/program/sessions/fill-pdf-module-web-form-data-completed-pdf-form-out?referer=');">http://2011.badcamp.net/program/sessions/fill-pdf-module-web-form-data-completed-pdf-form-out</a>). That was surprising, but cool, and the presentation went pretty well.</p>
<p>Drutober was interesting because it was the first time I went to DrupalCamps with concrete goals. I think that helped me get more out of it.</li>
<li>SANDcamp 2012 (<strong>two</strong> sponsorships! <a href="https://www.sandcamp.org/sponsors#block-views-sponsors-block-11" onclick="pageTracker._trackPageview('/outgoing/www.sandcamp.org/sponsors_block-views-sponsors-block-11?referer=');">https://www.sandcamp.org/sponsors#block-views-sponsors-block-11</a> and <a href="https://www.sandcamp.org/sponsors/fill-pdf-service" onclick="pageTracker._trackPageview('/outgoing/www.sandcamp.org/sponsors/fill-pdf-service?referer=');">https://www.sandcamp.org/sponsors/fill-pdf-service</a>) and DrupalCamp NJ (individual sponsor; see this page: <a href="http://www.drupalcampnj.org/event/attendees" onclick="pageTracker._trackPageview('/outgoing/www.drupalcampnj.org/event/attendees?referer=');">http://www.drupalcampnj.org/event/attendees</a>) are coming next.</li>
</ol>
<p>So it&#8217;s been an interesting year. In the coming year, I&#8217;m hoping to polish up <a title="Complete fillable PDFs using Web-based form data" href="http://fillpdf-service.com" onclick="pageTracker._trackPageview('/outgoing/fillpdf-service.com?referer=');">Fill PDF Service</a> and make it properly rock. That&#8217;s part of the reason for trying to ramp up the marketing a bit. We&#8217;ll see how it goes!</p>
<p>(And I&#8217;ll try to write more.)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2012/01/20/wizone-solutions-winter-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Last-ditch Solution to Non-Working PHP-FPM + Apache Configuration</title>
		<link>http://www.wizonesolutions.com/2011/11/03/last-ditch-solution-to-non-working-php-fpm-apache-configuration/</link>
		<comments>http://www.wizonesolutions.com/2011/11/03/last-ditch-solution-to-non-working-php-fpm-apache-configuration/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 21:28:25 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[2]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[addtype]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[fpm]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-fpm]]></category>
		<category><![CDATA[troubleshooting]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=473</guid>
		<description><![CDATA[I had a surreal experience yesterday. I was following online tutorials about setting up Apache + PHP-FPM (for example, this ServerFault question: http://serverfault.com/questions/326919/how-to-set-the-httpd-conf-when-using-php-fpm-with-php5-3-8-and-apache2). I&#8217;ll let you read that rather than re-hash it. My goal here is only to share quickly how I actually got this working. Alright, so you know the part where it says [...]]]></description>
			<content:encoded><![CDATA[<p>I had a surreal experience yesterday. I was following online tutorials about setting up Apache + PHP-FPM (for example, this ServerFault question: <a href="http://serverfault.com/questions/326919/how-to-set-the-httpd-conf-when-using-php-fpm-with-php5-3-8-and-apache2" onclick="pageTracker._trackPageview('/outgoing/serverfault.com/questions/326919/how-to-set-the-httpd-conf-when-using-php-fpm-with-php5-3-8-and-apache2?referer=');">http://serverfault.com/questions/326919/how-to-set-the-httpd-conf-when-using-php-fpm-with-php5-3-8-and-apache2</a>). I&#8217;ll let you read that rather than re-hash it.</p>
<p>My goal here is only to share quickly how I <em>actually</em> got this working.</p>
<p>Alright, so you know the part where it says to add the directives:</p>
<p><code>AddHandler php5-fcgi .php<br />
Action php5-fcgi /fcgi-bin/php5.external</code></p>
<p>This didn&#8217;t work for me no matter what I did. No errors were produced, so I knew that it simply wasn&#8217;t executing the Action directive for whatever reason. In checking the Apache 2.2 documentation for Action, I noticed that a MIME type could be given in lieu of an <em>action-type</em> (the php5-fcgi thing). Having exhausted all other options, and knowing that the PHP file was being sent to the browser unprocessed with the MIME type <code>application/x-httpd-php</code>, I decided to <strong>add</strong>:</p>
<p><code>Action application/x-httpd-php /fcgi-bin/php5.external</code></p>
<p>to my configuration. And, much to my shock, <em>it actually worked</em>!</p>
<p>So, if you find yourself as frustrated with setting up Apache + PHP-FPM as I was, I hope this tip may ease your suffering.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2011/11/03/last-ditch-solution-to-non-working-php-fpm-apache-configuration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux tip &#8211; regular expression find and replace in all files in a directory</title>
		<link>http://www.wizonesolutions.com/2011/10/07/linux-tip-regular-expression-find-and-replace-in-all-files-in-a-directory/</link>
		<comments>http://www.wizonesolutions.com/2011/10/07/linux-tip-regular-expression-find-and-replace-in-all-files-in-a-directory/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 04:43:26 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[expression]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[host]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[preg]]></category>
		<category><![CDATA[regular]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virtual]]></category>
		<category><![CDATA[xargs]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=456</guid>
		<description><![CDATA[As you may have seen me tweet, I&#8217;ve been looking for a way to do this. I didn&#8217;t want to manually change my Apache configuration to reflect my new internal IP address. After some Internet searching, I stumbled across this gem: http://www.linuxquestions.org/questions/linux-software-2/find-and-replace-text-in-multiple-file-203801/#post1742045 find . -name '[^.]*' &#124; xargs perl -pi -e 's/192\.168\.1\.3/192\.168\.0\.3/g' I adapted it [...]]]></description>
			<content:encoded><![CDATA[<p>As you may have seen me tweet, I&#8217;ve been looking for a way to do this. I didn&#8217;t want to manually change my Apache configuration to reflect my new internal IP address. After some Internet searching, I stumbled across this gem: http://www.linuxquestions.org/questions/linux-software-2/find-and-replace-text-in-multiple-file-203801/#post1742045</p>
<p><code>find . -name '[^.]*' | xargs perl -pi -e 's/192\.168\.1\.3/192\.168\.0\.3/g'</code></p>
<p>I adapted it to this for my task of replacing IP addresses. The first set of numbers is the old one (don&#8217;t delete the backslashes) and the second set is the new one.</p>
<p>This command assumes all files in the directory are configuration files and do not start with a dot.</p>
<p>Enjoy!</p>
<p><strong>Update: </strong>According to a commenter, <code>sed -i 's/thisip/thatip/g' *</code> should also work. I didn&#8217;t try that since I thought it wouldn&#8217;t work with multiple input files.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2011/10/07/linux-tip-regular-expression-find-and-replace-in-all-files-in-a-directory/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How-to: Create Drupal development sites in Quickstart</title>
		<link>http://www.wizonesolutions.com/2011/09/05/how-to-create-drupal-development-sites-in-quickstart/</link>
		<comments>http://www.wizonesolutions.com/2011/09/05/how-to-create-drupal-development-sites-in-quickstart/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 00:19:05 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[6]]></category>
		<category><![CDATA[7]]></category>
		<category><![CDATA[8]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[drush]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[quickstart]]></category>
		<category><![CDATA[version]]></category>
		<category><![CDATA[workaround]]></category>
		<category><![CDATA[working copy]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=435</guid>
		<description><![CDATA[Yesterday, I felt like reviewing some patches, so I fired up my Quickstart-based virtual machine and set about creating some Drupal development sites. I realized I first had to create Drush Make files to get the proper development versions installed. So I did that. However, I also realized that, despite cloning the code via Git [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I felt like reviewing some patches, so I fired up my <a href="http://drupal.org/project/quickstart" onclick="pageTracker._trackPageview('/outgoing/drupal.org/project/quickstart?referer=');">Quickstart</a>-based virtual machine and set about creating some Drupal development sites. I realized I first had to create Drush Make files to get the proper development versions installed. So I did that. However, I also realized that, despite cloning the code via Git and checking out a particular branch, the Git clone was not actually a Git repository. This is because Drush Make requires the &#8211;working-copy switch in order to do this. I&#8217;ve posted a workaround on the Quickstart issue queues. This post mostly serves as pointers to a couple things:</p>
<ul>
<li><a href="https://drupal.org/node/1269394" onclick="pageTracker._trackPageview('/outgoing/drupal.org/node/1269394?referer=');">Drush Make makefiles for Drupal development versions</a></li>
<li><a href="http://drupal.org/node/1269406#comment-4950294" onclick="pageTracker._trackPageview('/outgoing/drupal.org/node/1269406_comment-4950294?referer=');">Workaround for inability of Quickstart&#8217;s quickstart-create Drush command to create Git-enabled sites</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2011/09/05/how-to-create-drupal-development-sites-in-quickstart/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meetup API Tools Seek Co-Maintainer, Further Developments Possible</title>
		<link>http://www.wizonesolutions.com/2011/06/20/meetup-api-tools-seek-co-maintainer-further-developments-possible/</link>
		<comments>http://www.wizonesolutions.com/2011/06/20/meetup-api-tools-seek-co-maintainer-further-developments-possible/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 20:43:11 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[co-maintain]]></category>
		<category><![CDATA[collaborate]]></category>
		<category><![CDATA[collaborator]]></category>
		<category><![CDATA[contact]]></category>
		<category><![CDATA[d.o]]></category>
		<category><![CDATA[develop]]></category>
		<category><![CDATA[fork]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[meetup]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=388</guid>
		<description><![CDATA[Always wanted to entitle something like that. Anyway, I&#8217;m certainly not getting anywhere fast on PHP Meetup API Client or Meetup API on drupal.org. There are issues on both expressing this. Reply to them or contact me. Meetup API on drupal.org issue: http://drupal.org/node/1194532 GitHub issue: https://github.com/wizonesolutions/meetup_api/issues/4]]></description>
			<content:encoded><![CDATA[<p>Always wanted to entitle something like that. Anyway, I&#8217;m certainly not getting anywhere fast on <a href="http://github.com/wizonesolutions/meetup_api" onclick="pageTracker._trackPageview('/outgoing/github.com/wizonesolutions/meetup_api?referer=');">PHP Meetup API Client</a> or <a href="http://drupal.org/project/meetup_api" onclick="pageTracker._trackPageview('/outgoing/drupal.org/project/meetup_api?referer=');">Meetup API on drupal.org</a>.</p>
<p>There are issues on both expressing this. Reply to them or <a href="/contact">contact me</a>.</p>
<p>Meetup API on drupal.org issue: <a href="http://drupal.org/node/1194532" onclick="pageTracker._trackPageview('/outgoing/drupal.org/node/1194532?referer=');">http://drupal.org/node/1194532</a><br />
GitHub issue: <a href="https://github.com/wizonesolutions/meetup_api/issues/4" target="_self" onclick="pageTracker._trackPageview('/outgoing/github.com/wizonesolutions/meetup_api/issues/4?referer=');">https://github.com/wizonesolutions/meetup_api/issues/4</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2011/06/20/meetup-api-tools-seek-co-maintainer-further-developments-possible/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal Camp Sacramento Area 2011 Conference Report</title>
		<link>http://www.wizonesolutions.com/2011/06/09/drupal-camp-sacramento-area-2011-conference-report/</link>
		<comments>http://www.wizonesolutions.com/2011/06/09/drupal-camp-sacramento-area-2011-conference-report/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 19:17:24 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Events]]></category>
		<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[2011]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[camp]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[distribution]]></category>
		<category><![CDATA[drush]]></category>
		<category><![CDATA[fill]]></category>
		<category><![CDATA[hooks]]></category>
		<category><![CDATA[installation profile]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[nagios]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[sacramento]]></category>
		<category><![CDATA[tropo]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=359</guid>
		<description><![CDATA[This weekend, I attended the first DrupalCamp in the Sacramento, California area. It happened to be held in Davis, a location which worked for me. Some of you might know that I was talking about taking Amtrak&#8217;s Coast Starlight up to the Bay Area. I indeed did. Here&#8217;s some pictures: (flickr link coming soon; I [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend, I attended the first DrupalCamp in the Sacramento, California area. It happened to be held in Davis, a location which worked for me.</p>
<p>Some of you might know that I was talking about taking Amtrak&#8217;s Coast Starlight up to the Bay Area. I indeed did. Here&#8217;s some pictures: (flickr link coming soon; I have to upload the pictures).</p>
<p>But as for the camp itself, it&#8217;s best to break it down into the sessions I attended and then give my overall impressions.</p>
<h2><strong>Day 1</strong></h2>
<p>As every attendee certainly did, I started off my day listening to Nate Haug (@quicksketch)&#8217;s keynote speech. He talked about the community, contributing, contributing productively, collaboration, and the care shown to community members. It was a good start. After that, I went to my first session.</p>
<p><strong>10-11:30: VoIP for Drupal: Turning Drupal into a phone system</strong></p>
<p>The title of this presentation had intrigued me, and I&#8217;m glad I checked it out. Adam Kalsey (@akalsey) of Tropo did a fantastic job of demonstrating the VoIP module and how command sets could be sent to phone systems using PHP code.</p>
<p><strong>1:00-2:30 &#8211; Using Drupal as an Application Development Platform</strong></p>
<p>This was a neat presentation as well. It was also presented by Adam Kalsey. His thesis was essentially that Drupal is an application <em>development</em> platform that ships with a great CMS as its default implementation. He defended this fairly, outlining many of the subsystems that I indeed deal with regularly.</p>
<p><strong>2:30-4:00 &#8211; Building a Distribution using Features, Drush Make, Installation Profiles, and more</strong></p>
<p><a href="http://www.benshell.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.benshell.com?referer=');">Ben Shell</a> gave a fascinating presentation on the topic above. I found this very useful, as it cleared up some questions I had regarding the whole thing. I liked how he spoke a bit about how to get drupal.org to fully package your distribution or installation profile for download!</p>
<p><strong>4:00-5:30 &#8211; Streamline your workflow with Fill PDF &#8211; fill your PDF templates with your site&#8217;s forms</strong></p>
<p>Some dude who came from L.A. gave this one. I think his name was Kevin Kaland or something. Of course it was awesome; would I say otherwise? Fortunately, you don&#8217;t have to listen to me; <a href="http://www.str8up.net/2011/05/29/day-2-of-2011-sacramento-drupal-camp/#attachment_221" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.str8up.net/2011/05/29/day-2-of-2011-sacramento-drupal-camp/_attachment_221?referer=');">Doug R. Wu has given a brief &#8220;str8up&#8221; account of the talk</a>. That coupon code expires Monday, by the way.</p>
<h2>Day 2</h2>
<p><strong>Morning-12 &#8211; Code sprint</strong></p>
<p>Saturday ran late for some reason, and I got lost on the way back to campus, so I rolled in around 11 AM. I discovered that no organized code sprint was happening, so I worked more on adding Webform token support to Fill PDF on Drupal 7. <a href="http://fillpdf-service.com/blog/webform-support-added-drupal-7" onclick="pageTracker._trackPageview('/outgoing/fillpdf-service.com/blog/webform-support-added-drupal-7?referer=');">This is completed now</a>.</p>
<p><strong>1:00-2:30 &#8211; Why Drupal uses hooks, and why you should too</strong></p>
<p>I bumped into that Kevin Kaland guy again at this talk. Something about hooks in Drupal. People liked it or something. (If you blogged about this talk, can you link to it in the comments?)</p>
<p><strong>2:30-4:00 &#8211; Know Where The Fire Is (Monitoring Drupal Sites)</strong></p>
<p>I wrapped up my camp with Mike Hathaway&#8217;s Nagios talk. It was cool; Nagios is definitely a tool l will have to try some time, along with the <a href="http://drupal.org/project/nagios" target="_blank" onclick="pageTracker._trackPageview('/outgoing/drupal.org/project/nagios?referer=');">Drupal Nagios module</a> of course!</p>
<h2>Conclusion</h2>
<p>So ended my camp, and so began my transportational journey back&#8230;with a new sticker on my laptop!</p>
<p><a href="http://www.wizonesolutions.com/wp-content/uploads/2011/06/dcsa_sticker.png"><img class="alignnone size-full wp-image-382" title="Drupal Camp Sacramento Area 2011 Sticker" src="http://www.wizonesolutions.com/wp-content/uploads/2011/06/dcsa_sticker.png" alt="" width="394" height="372" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2011/06/09/drupal-camp-sacramento-area-2011-conference-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux sed trick &#8211; Remove line from file by number</title>
		<link>http://www.wizonesolutions.com/2011/05/21/linux-sed-trick-remove-line-from-file-by-number/</link>
		<comments>http://www.wizonesolutions.com/2011/05/21/linux-sed-trick-remove-line-from-file-by-number/#comments</comments>
		<pubDate>Sun, 22 May 2011 04:25:56 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[line]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[number]]></category>
		<category><![CDATA[remove]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[trick]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=350</guid>
		<description><![CDATA[I wanted to document this before I forgot it. To remove a single line from an existing file with sed, use: sed -i '[num]d' [filename] For example, to remove line 1 from ~/.ssh/known_hosts (my exact use case right now), type: sed -i '1d' ~/.ssh/known_hosts sed is a neat little tool. I use it to quickly [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to document this before I forgot it. To remove a single line from an existing file with sed, use:</p>
<p><code>sed -i '[num]d' [filename]</code></p>
<p>For example, to remove line 1 from ~/.ssh/known_hosts (my exact use case right now), type:</p>
<p><code>sed -i '1d' ~/.ssh/known_hosts</code></p>
<p>sed is a neat little tool. I use it to quickly copy and change Apache virtual hosts sometimes as well. I recommend learning a bit about it and its &#8216;s&#8217; command as well.</p>
<p>P.S. If you don&#8217;t use the <code>-i</code> switch, sed will output the result after replacements instead of changing the file. You can pipe (|) this output to other programs or redirect (&gt; or &gt;&gt;) it to a file.</p>
<p>Happy sed&#8230;ing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2011/05/21/linux-sed-trick-remove-line-from-file-by-number/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quest for a Flexible Development Environment</title>
		<link>http://www.wizonesolutions.com/2011/05/19/quest-for-a-flexible-development-environment/</link>
		<comments>http://www.wizonesolutions.com/2011/05/19/quest-for-a-flexible-development-environment/#comments</comments>
		<pubDate>Thu, 19 May 2011 20:34:47 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[chef]]></category>
		<category><![CDATA[crashplan]]></category>
		<category><![CDATA[develop offline]]></category>
		<category><![CDATA[development environment]]></category>
		<category><![CDATA[development setup]]></category>
		<category><![CDATA[dnsmadeeasy]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[nx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[puppet]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[vps]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=315</guid>
		<description><![CDATA[(If you don&#8217;t have a lot of time, skip to Phase 5.) Update! Track my planning and thought process in the public Quest for a Flexible Development Environment Evernote notebook! This blog post is actually a big question. It&#8217;s hard to express this question in 140 characters, so I blogged instead of tweeting. Here goes: [...]]]></description>
			<content:encoded><![CDATA[<p>(If you don&#8217;t have a lot of time, skip to <a href="#phase-5">Phase 5</a>.)</p>
<p><strong>Update! Track my planning and thought process in the <a href="http://wiz1.us/devernote" target="_blank" onclick="pageTracker._trackPageview('/outgoing/wiz1.us/devernote?referer=');">public Quest for a Flexible Development Environment Evernote notebook</a>!</strong></p>
<p>This blog post is actually a big question. It&#8217;s hard to express this question in 140 characters, so I blogged instead of tweeting. Here goes:</p>
<h2>How can I set up a development environment that can transition between being Internet-accessible and usable offline in an hour or less?</h2>
<h3><span style="font-weight: normal;">Let me expand on this by telling a bit about my past development environments.</span></h3>
<h3>Phase 1 &#8211; Local, Windows</h3>
<p><span style="font-weight: normal;">Some time ago, I was developing with WampServer (similar to XAMPP) on Windows. This was OK in the beginning, especially before specializing in Drupal. Over time, however, and maybe somewhat due to starting to use Windows Vista, I noticed that performance was much slower than a Linux environment of similar configuration. This led to&#8230;</span></p>
<h3>Phase 2 &#8211; Local, Linux via VirtualBox (Host: Windows)</h3>
<p>Realizing that Linux <em>(and for the curious, &#8220;Linux&#8221; nearly always means Ubuntu 8.04 or 10.04 in this post)</em> was faster, I decided to set up a virtual machine (VM) in VirtualBox to use for development. With bridged networking, this posed no real issues. There were no real drawbacks other than it consuming some host system resources, but that was obvious. I was used to using VMs because I used them regularly at work. This approach was a step up from running locally only on Windows, and I actually used it for quite some time. I used it when I was traveling in Norway in late 2010, and it was great! I could work while on buses, while on ferries, etc. without worrying about having Internet access. I had VirtualBox&#8217;s host networking set up so that I could have network communication between the host and guest and still test my sites on the VM from Windows, the workflow I was used to. In fact, I would probably still be using this approach today, if the system (a laptop) I was on hadn&#8217;t started inexplicably using high amounts of CPU constantly, bringing the VM to a halt. This is to say, the VM performance was subject to the limitations of the host&#8230;if the host had hardware or host OS issues, it would limit my ability to develop in the guest VM.</p>
<p>During one bout of these issues, I tried another setup as a workaround&#8230;</p>
<h3>Phase 3 &#8211; Pseudo-remote (physical machine in same location), Linux via NX Client for Windows</h3>
<p>The irony of my workaround is that it became my standard. I think I started using this approach around mid- or late-2010 (probably around August). It allowed me to work as long as I had an Internet connection, and, since it was running on a physical machine, performance was arguably a bit better than a VM. I say arguable since it&#8217;s an old machine with 1 GB of RAM and a 2.4 GHz Pentium 4 processor. But hey&#8230;that&#8217;s Linux&#8217;s strong suit, right? I&#8217;d put in eAccelerator, and things would be fine for a development environment. The machine was on my network, so no issues there, and I could put it on a Hamachi VPN network to have the feel of it being local even when I&#8217;m remote. In fact, at the time of writing, the machine actually runs this site! I use <a href="http://www.wiz1.us/dme" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.wiz1.us/dme?referer=');">DNS Made Easy</a>&#8216;s Dynamic DNS to keep the IP address up to date. I say &#8220;at the time of writing&#8221; since I plan to move it to a separate box eventually, especially since I expect its popularity to gradually rise as I network more&#8230;so it&#8217;s obviously a better idea. Going back to my setup, another nice thing about it (and those of you who saw Oliver Seldman and I&#8217;s Why Hooks? presentation at LA Drupal expereinced this) was that I could fall back to PuTTY and Vim if NX Client for Windows couldn&#8217;t connect. Perhaps somewhat ironically, that very fact of being a Vim user sort of saved me when I had to temporarily implement&#8230;</p>
<h3>Phase 4 &#8211; Fully remote (VPS server), Linux via PuTTY</h3>
<p>What drove me to this? After many years of service, my development machine&#8217;s hard drive started to go. I realized this when trying to check out a critical repository via Bazaar (of which I fortunately had a CrashPlan backup that I later recovered). Drive tests confirmed it. I was at a loss; I definitely needed to keep working. Thinking about my options and knowing I could develop in a shell, I chose and rented a low-cost VPS and moved over the projects I was working on at the moment, switched DNS to point there, etc. Worked reasonably well, and I used that setup for a week or two. Not as ideal because of the lower amount of resources, but definitely worked in a pinch. It also got me thinking about how I could ensure I could develop near-continuously (within working hours, obviously <img src='http://www.wizonesolutions.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) without these sorts of infrastructure issues (which themselves take time to resolve)! Let me tell you about my current phase, and then I&#8217;ll summarize what I&#8217;ve said and eagerly await your responses, whether they are as blog comments or directed at <a href="http://twitter.com/wizonesolutions" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/wizonesolutions?referer=');">@wizonesolutions on Twiter</a>.</p>
<h3 id="phase-5">Phase 5 &#8211; Phase 3 + Phase 4 + repository server</h3>
<p>Phase 5 finds me back at Phase 3 for my main setup. I got a new hard drive for the server and installed Lubuntu on it fresh (which was a good move &#8211; it&#8217;s lighter and faster when remoting in). I had my /etc configuration backed up, so I&#8217;ve been restoring my Apache sites incrementally. Much of my other configuration was already saved on my repository server. What&#8217;s a repository server? It&#8217;s a place for Bazaar and Git repositories (as well as Subversion, Mercurial, and CVS ones &#8211; it&#8217;s just that I don&#8217;t have any of those). This allows me to have some redundancy in repository location; when that server goes down, the important ones will already be checked out elsewhere, and the not-so-important ones will have been backed up in an older snapshot of the repository server and be able to be restored unless that snapshot is lost (which I plan to guard against by backing up the server to CrashPlan, Amazon S3, or the VPS host&#8217;s backup service &#8211; undecided as yet). I realized I needed more redundancy after the Phase 3 -&gt; Phase 4 issue. I&#8217;ve had decent backups in place, at least, for quite some time&#8230;that <strong>definitely</strong> helped, and I recommend everyone reading this makes sure they do too. You&#8217;ll hug yourself when you need to restore from them. I once lost original wedding photos to a replaced hard drive when I sent in a laptop for repair. I&#8217;ve also lost some photos backed up on an iPod. You can bet I wasn&#8217;t going to have a repeat of that. I even back up my external hard drives now (they contain some older files not on my main ones)&#8230;the key being to have nothing in only one place &#8211; but if I do, to prefer the cloud over a physical location.</p>
<h3>The Future &#8211; Phase 6 &#8211; Hybrid setup? Synchronization? Puppet? Chef? Database replication?</h3>
<p>This phase has a lot of questions, but the goal is <strong>to be able to switch between online (requires Internet or local network connection) and offline (virtual machine, no Internet required)</strong>. Additionally, the offline setup needs to be configurable on a laptop, since I&#8217;d be using that setup primarily when traveling on modes of transport with slow or non-existent Internet. My preferred work environment would still be the one requiring Internet, since that would make it accessible from anywhere I could use SSH, provide a separation of concerns (not having one machine do everything), etc. While offline, I would accept that <strong>I would not have repository access</strong> &#8211; that&#8217;s alright, since with Git and Bazaar, I can commit offline, and then push my changes later. This works even with bound branches in Bazaar, with the caveat that I have to unbind them first and rebind them later, potentially encountering conflicts. I could live with this (or simply have mirror branches that remain bound and working branches where I actually make the commits. I would then push the commits to the mirror branches when online; I&#8217;ve used this setup before with great success). The main offline requirement would be <strong>to be able to develop and test sites on the LAMP stack</strong>. Access to manuals and documentation for these while offline would be a bonus but isn&#8217;t required.</p>
<h3>Synopsis of approaches I&#8217;ve tried</h3>
<p><strong>Phase 1 &#8211; Local, Windows:<br />
</strong>Supports offline work: Yes<br />
Acceptable performance: So-so<br />
Sustainable: No<br />
Similar to deployment environment: Probably not<br />
Data safety: Same as rest of system</p>
<p><strong>Phase 2 &#8211; Local, Linux on Virtualbox on Windows:</strong><br />
Supports offline work: Yes; host networking required for network communication; can be set up while offline<br />
Acceptable performance: Yes, but dependent on host system<br />
Sustainable: Yes, but VM data should be backed up<br />
Similar to deployment environment: Yes<br />
Data safety: If VM hard drive file is lost, it&#8217;s all gone if not backed up externally. Only easily accessible while VM is running, although I have read about ways to mount the drive while it&#8217;s off. Also, VM data file will take a couple days to back up online, depending on residental Internet&#8217;s upload speed</p>
<p><strong>Phase 3 - Pseudo-remote (physical machine in same location), Linux via NX Client for Windows</strong><br />
Supports offline work: No<br />
Acceptable performance: Yes<br />
Sustainable: Yes<br />
Similar to deployment environment: Yes<br />
Data safety: Essentially yes; only normal concerns taken for any system apply</p>
<p><strong>Phase 4 &#8211; Fully remote (VPS server), Linux via PuTTY</strong><br />
Supports offline work: No<br />
Acceptable performance: Yes<br />
Sustainable: Yes<br />
Similar to deployment environment: Yes<br />
Data safety: Yes, but less so than a physical system due to lack of access to the hardware (e.g., the host may not be willing to recover the data from a failed node drive, etc.) &#8211; so remote backup is critically important, although if it&#8217;s primarily a dev machine, code repositories may mitigate this risk if they are suitably backed up themselves</p>
<p><strong>Phase 5 &#8211; Phase 3 + Phase 4 + repository server<br />
</strong>Supports offline work: No<br />
Acceptable performance: Yes<br />
Sustainable: Yes<br />
Similar to deployment environment: Yes<br />
Data safety: Depends on which environment is active. See Phase 3/Phase 4<br />
Another point of consideration is that if either machine crashes and becomes inaccessible prior to migrating the work environment for active projects, only code pushed to the code repository can be retrieved immediately.</p>
<p><strong>My wish list for Phase 6<br />
</strong>Supports offline work: Yes<br />
Acceptable performance: Yes<br />
Sustainable: Yes<br />
Similar to deployment environment: Yes<br />
Data safety: Same as Phase 3, at least<br />
Time to switch between online/offline: &lt;= 1 hr<br />
Bonus features: Automated synchronization, automated switching,  access to manuals/documentation for PHP/Apache/Drupal</p>
<p>With your help, I hope to get to phase 6. I&#8217;ll try to keep this post updated as my strategy develops. Thank you in advance!</p>
<p>P.S. This post is kind of hard to grok. Please leave suggestions for how I can make it easier to read. I <strong>want</strong> people to actually read it and <strong>comment</strong>. If they can&#8217;t, they won&#8217;t bother. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2011/05/19/quest-for-a-flexible-development-environment/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Quick Drush Tip &#8211; Import database SQL with drush sql-cli (sqlc)</title>
		<link>http://www.wizonesolutions.com/2011/03/28/quick-drush-tip-import-database-sql-with-drush-sql-cli-sqlc/</link>
		<comments>http://www.wizonesolutions.com/2011/03/28/quick-drush-tip-import-database-sql-with-drush-sql-cli-sqlc/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 03:48:04 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[drush]]></category>
		<category><![CDATA[drush sql-cli]]></category>
		<category><![CDATA[drush sqlc]]></category>
		<category><![CDATA[import database to drupal]]></category>
		<category><![CDATA[import sql to drupal]]></category>
		<category><![CDATA[import sql with drush]]></category>
		<category><![CDATA[magic]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[postgresql]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=296</guid>
		<description><![CDATA[I discovered something awesome today just on a hunch and wanted to share. I&#8217;m not the first one to blog about this, but it isn&#8217;t widely mentioned on the &#8216;net, at least not as far as I can see. Basically, it&#8217;s the drush sql-cli command, or drush sqlc for short. If you type just that, [...]]]></description>
			<content:encoded><![CDATA[<p>I discovered something awesome today just on a hunch and wanted to share. I&#8217;m not the first one to <a href="http://www.bronius.com/features-git-drush-drupal-development-workflow-example" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.bronius.com/features-git-drush-drupal-development-workflow-example?referer=');">blog about this</a>, but it isn&#8217;t widely mentioned on the &#8216;net, at least not as far as I can see.</p>
<p>Basically, it&#8217;s the <strong>drush sql-cli</strong> command, or <strong>drush sqlc</strong> for short. If you type just that, you will be logged into a database shell. Did you know, however, that you can actually import a database this way, much in the way you would with <strong>mysql database &lt; database_file.sql</strong>? Swap out the mysql stuff and drop in <strong>drush sqlc &lt; database_file.sql</strong> &#8211; and it works! It grabs the DB information from your settings.php file, and magic happens! This was an awesome find for me, and it&#8217;s going to save me a decent amount of time in the future.</p>
<p><strong>NOTE: This might be MySQL-only. If a PostgreSQL user could chime in and let me know if it works for that or any other DBMSes, I&#8217;d appreciate it!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2011/03/28/quick-drush-tip-import-database-sql-with-drush-sql-cli-sqlc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal in 2020</title>
		<link>http://www.wizonesolutions.com/2011/03/18/drupal-in-2020/</link>
		<comments>http://www.wizonesolutions.com/2011/03/18/drupal-in-2020/#comments</comments>
		<pubDate>Fri, 18 Mar 2011 09:03:21 +0000</pubDate>
		<dc:creator>WizOne Solutions</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Life of a Web Developer]]></category>
		<category><![CDATA[2020]]></category>
		<category><![CDATA[drupal 10]]></category>
		<category><![CDATA[drupal development]]></category>
		<category><![CDATA[drupal modules]]></category>
		<category><![CDATA[drush]]></category>
		<category><![CDATA[E_NOTICE]]></category>
		<category><![CDATA[fusion]]></category>
		<category><![CDATA[future of the web]]></category>
		<category><![CDATA[nuclear fusion]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php 7]]></category>
		<category><![CDATA[php 7.3]]></category>

		<guid isPermaLink="false">http://www.wizonesolutions.com/?p=277</guid>
		<description><![CDATA[This post is the expansion of a tongue-in-cheek IRC conversation I had the other day. I thought it&#8217;d be fun to blog about it because, while it&#8217;s mostly just humorous, it actually does cover some of the issues Web Developers encounter while developing in Drupal (or in many other platforms). So, walk with me if [...]]]></description>
			<content:encoded><![CDATA[<p>This post is the expansion of a tongue-in-cheek IRC conversation I had the other day. I thought it&#8217;d be fun to blog about it because, while it&#8217;s mostly just humorous, it actually does cover some of the issues Web Developers encounter while developing in Drupal (or in many other platforms). So, walk with me if you will, into the year 2020 and how your Drupal project might unfold then&#8230;</p>
<p><strong>*space-agey whooshing sound*<span id="more-277"></span></strong></p>
<p>You&#8217;ve just aced your interview with the client &#8211; or, well, people still call them interviews, but thought transmission technology has made the process much quicker. Send them all your project-related memories (content filters will protect your private memories, of course!), let them evaluate them, and they tell you if they want to continue or not. You&#8217;ve saved hundreds on lunch meetings since this technology became generally available and affordable for business (you can pick up the device for around 150 ameros).</p>
<p>The client&#8217;s needs seem pretty simple off the bat. They&#8217;ve just bought mycompanyisimportant.co (.co finally took off), and they want you to create their company Web site. Naturally, being a Drupal Developer, you decide to build it in the newly-released Drupal 10. You&#8217;ve been drooling in anticipation of this new version. Finally, no more antiquated PHP 6 code! You dream of finally coding in full PHP 7. On the front-end, it will be an HTML 6 site, and &#8211; like many other noteworthy sites of the day &#8211; the client wants to include some 4D video. You&#8217;ll style it in CSS 4.1 (though you&#8217;ll actually use SASS, now natively supported). jQuery 5.1.3 will make JavaScript easy. You feel confident.</p>
<p><strong>So you begin.</strong> Using Drush, you download and install vanilla Drupal 10. It prompts you for all the settings you&#8217;d normally have to supply in an install window, including your database credentials. You input them, it populates settings.php for you, and away you go. For your theme, you choose the Nuclear Fusion starter theme (guess <a href="http://drupal.org/project/fusion" onclick="pageTracker._trackPageview('/outgoing/drupal.org/project/fusion?referer=');">which one</a> it&#8217;s based on) and create your mcii child theme&#8230;by clicking &#8220;Create child theme&#8221; in the Nuclear Fusion UI. They&#8217;ve made it so easy! You&#8217;re going to do the theming later, so this is enough for you for now. You grab Root Candy to make administration a bit easier, and, after a moment of consideration, issue <strong>drush dl administration_tools</strong> &#8211; you sure are happy that drupal.org implemented the concept of &#8220;module bundles&#8221; back in the Drupal 9 era around 2018. With that one command, you can get Admin role, Administration menu, and other goodies to make administration easier. You install Features, as well. You smile as you see the familiar gray (F) indicator appear on Administration menu. It&#8217;s gray, of course, since you don&#8217;t have any features, but you know it will turn red once you have some and override any settings (or green if you&#8217;re all good).</p>
<p>4D video is big on the client&#8217;s list, so you grab the Media module right away. For the video player, you know the built-in browser video players are good enough these days. In anticipation, though, you sigh and add an ie16.css file &#8211; you just know you&#8217;ll have to make some tweaks. Anyway, the Media module makes this pretty easy, and in a short while, you&#8217;ve got the sample 4D video playing. Great! Oh, wait&#8230;what&#8217;s that message at the top of the video page?</p>
<p><strong><em><strong><em>Notice: Undefined property: item on line 317 in media.module </em></strong><br />
Notice: Undefined property: vid on line 1515 inmedia.module<br />
Notice: Undefined variable: i on line 181 in includes/media.4dvideo.inc</em></strong></p>
<p>Whoops! Looks like the developer didn&#8217;t have E_NOTICE turned on. No worries &#8211; you&#8217;re used to this. You quickly create an issue over on Media, check out the issue&#8217;s repository (sure is great they still have those after the great disk space scare of 2017, eh?), fix the errors (as well as a few more you encounter while testing), and ask the maintainer to pull your changes. You know you&#8217;ll be waiting for a bit, so you also merge your changes into your copy of the Media module &#8211; added automatically as a git submodule for you by Drush, of course.</p>
<p>The worst part seems to be behind you, so now you just need to add some Views (yay for #DC10X) to display the videos and a couple fields to your Video bundle to store some additional information. You also download the Video Reference module to get that special field type, and then you run into the issue that is the bane of every Drupal Developer in 2020: the video_reference module doesn&#8217;t fully support PHP 7.3 yet.</p>
<p>Sighing, you feel like this project just got a whole lot longer&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wizonesolutions.com/2011/03/18/drupal-in-2020/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

