<?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:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://www.mattfarina.com">
<channel>
 <title>MattFarina.com - Tech / Faith / Life</title>
 <link>http://www.mattfarina.com</link>
 <description />
 <language>en</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/mattfarina" type="application/rss+xml" /><item>
 <title>Drupalcamp Boston Wrap-up</title>
 <link>http://feedproxy.google.com/~r/mattfarina/~3/Q72l9Bp6DIM/drupalcamp-boston-wrap</link>
 <description>&lt;p&gt;The &lt;a href="http://boston.design4drupal.org" title="Drupal Design Camp in Boston"&gt;Drupal Design Camp in Boston&lt;/a&gt; this past weekend was fantastic. Having the event at the &lt;a href="http://en.wikipedia.org/wiki/Stata_Center" title="MIT Stata Center"&gt;MIT Stata Center&lt;/a&gt;, a building that looks like it's right our of a &lt;a href="http://en.wikipedia.org/wiki/Dr._Seuss" title="Dr. Seuss"&gt;Dr. Seuss&lt;/a&gt; book, was a perfect place for a design event. With well over 150 people, loads of fantastic sessions, and ideas for improving the tools and community designers and themers have the camp was a roaring success.&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;a href="http://www.flickr.com/photos/jeffeaton/3623160520/" title="Drupal Design Camp Boston"&gt;&lt;img src="http://farm3.static.flickr.com/2468/3623160520_9812d092bb.jpg" alt="Drupal Design Camp Boston" /&gt;&lt;/a&gt;
&lt;div&gt;&lt;small&gt;Photo by Jeff Eaton. Everyone is pointing at Morten.&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;&lt;/center&gt;&lt;!--break--&gt;&lt;/p&gt;
&lt;h3&gt;The People&lt;/h3&gt;
&lt;p&gt;There weren't just people attending from the east coast or midwest and &lt;a href="http://morten.dk/" title="Morthen - The Kind of Denmark"&gt;Morten&lt;/a&gt; wasn't the person who traveled the furthest. There were people from Texas, the Bay Area, and Europe. From the looks of things the event was 1/4 women. Has there ever been a drupal event with this high percentage of women? There were new people and people with 2 digit drupal.org user ids. There were developers and there were a whole lot of people with the creative art gene.&lt;/p&gt;
&lt;h3&gt;The Sessions&lt;/h3&gt;
&lt;p&gt;More than one attendee said they thought the sessions here were better than at drupalcon. With keynotes by &lt;a href="http://www.lullabot.com/about/jeff-robbins" title="Jeff Robbins"&gt;Jeff Robbins&lt;/a&gt; and &lt;a href="http://acquia.com/about-us/team" title="Jay Batson"&gt;Jay Batson&lt;/a&gt; and huge sessions like the one on the 960 grid by &lt;a href="http://sonspring.com/" title="Nathan Smith"&gt;Nathan Smith&lt;/a&gt;, the creator of 960, and &lt;a href="http://fourkitchens.com/bios/todd-ross-nienkerk" tiele="Todd Nienker"&gt;Todd Nienkerk&lt;/a&gt; it's hard not to feel this way.&lt;/p&gt;
&lt;p&gt;The 40 session covered topics ranging from the basics of drupal to themeing techniques to radical new ideas in how to theme like &lt;a href="http://drupal.org/project/skinr" title="Skinr Module"&gt;skinr&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;The New Ideas&lt;/h3&gt;
&lt;p&gt;In Jay Batson's keynote many of the back room chatter started to turn into things we can act on as a community. Some ideas that came out were to start a site for designers and themers, to have a way to deal with snippets (something themers seem to do well), to have a showcase of hot drupal sites (giving credit where due). These are just the tip of the ice berg.&lt;/p&gt;
&lt;h3&gt;The Stata Center&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://web.mit.edu/facilities/construction/completed/stata.html" title="Stata Center"&gt;The Stata Center&lt;/a&gt; was the perfect place for an event like this. Every direction you look there's something inspiring and artistic about the building.&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;a href="http://www.flickr.com/photos/verdi/3627083229/" title="MIT Stata Center"&gt;&lt;img src="http://farm3.static.flickr.com/2476/3627083229_bc8996ac1d.jpg?v=1245038209" alt="MIT Stata Center" /&gt;&lt;/a&gt;
&lt;div&gt;&lt;small&gt;Photo by Michael Verdi&lt;/small&gt;&lt;/div&gt;
&lt;p&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;I want to give a special thanks to &lt;a href="http://www.susanmacphee.com/" title="Susan MacPhee"&gt;Susan MacPhee&lt;/a&gt; for organizing the event and MIT for hosting the event. It was fantastic.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=Q72l9Bp6DIM:Movk1DD1vrc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=Q72l9Bp6DIM:Movk1DD1vrc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=Q72l9Bp6DIM:Movk1DD1vrc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?i=Q72l9Bp6DIM:Movk1DD1vrc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mattfarina/~4/Q72l9Bp6DIM" height="1" width="1"/&gt;</description>
 <comments>http://www.mattfarina.com/2009/06/16/drupalcamp-boston-wrap#comments</comments>
 <category domain="http://www.mattfarina.com/category/design">Design</category>
 <category domain="http://www.mattfarina.com/category/development">Development</category>
 <category domain="http://www.mattfarina.com/category/drupal">Drupal</category>
 <category domain="http://www.mattfarina.com/category/technology">Technology</category>
 <pubDate>Tue, 16 Jun 2009 14:09:15 +0000</pubDate>
 <dc:creator>matt</dc:creator>
 <guid isPermaLink="false">258 at http://www.mattfarina.com</guid>
<feedburner:origLink>http://www.mattfarina.com/2009/06/16/drupalcamp-boston-wrap</feedburner:origLink></item>
<item>
 <title>An Overlooked Drupal Design Problem</title>
 <link>http://feedproxy.google.com/~r/mattfarina/~3/hecLW3Dwq-s/an-overlooked-drupal-design-problem</link>
 <description>&lt;p&gt;Most of the shared &lt;a href="http://drupal.org" title="drupal"&gt;Drupal&lt;/a&gt; themes aren't very good and there aren't very many commercial ones. That's what a &lt;a href="http://acquia.com/blog/what-shall-we-do-about-themes" title="What shall we do about Themes?"&gt;study shared by Jay Batson pointed out&lt;/a&gt;. Jay went on to propose some steps we could take to court better design in the Drupal community. While he made some important points, there is one important point that was overlooked. The issue of crediting designers for their work.&lt;!--break--&gt;&lt;/p&gt;
&lt;h3&gt;Hostile Land For Designers&lt;/h3&gt;
&lt;p&gt;Let's be honest. The Drupal community is a hostile land for designers. Drupal.org is nothing to look at (yes, I know that's changing). The drupal web tools, like &lt;a href="http://api.drupal.org"&gt;api.drupal.org&lt;/a&gt;, are centered on developers. To contribute a theme you have to know and use CVS. At &lt;a href="http://dc2009.drupalcon.org" title="drupalcon dc"&gt;drupalcon dc&lt;/a&gt; designers and themers had to take over BoF rooms to get the space they need.&lt;/p&gt;
&lt;p&gt;The Drupal community is anything but warm and inviting to designers. We tend to treat designers like we do fellow developers. We can't do that. They are different. It would be like buying my wife a vacuum for her birthday. Just a bad idea.&lt;/p&gt;
&lt;h3&gt;Crediting Developers&lt;/h3&gt;
&lt;p&gt;Right now drupal developers are credited in a variety of ways. If they contribute code there are commit messages. We even keep stats on that. Their contributed modules are tracked on their user pages and you can see how many sites are using their modules. If they contribute to core their usernames are in the commit messages and can get up on the big screen at drupalcon.&lt;/p&gt;
&lt;p&gt;If you are lucky enough (is lucky the right word) you can get your name in the MAINTAINERS.txt file for Drupal so everyone can see your name on the project.&lt;/p&gt;
&lt;p&gt;As you contribute you build up community cred with the other developers. You make friends. You gain influence.&lt;/p&gt;
&lt;h3&gt;Difference Between Design and Development&lt;/h3&gt;
&lt;p&gt;When a developer writes a sweet module, like &lt;a href="http://drupal.org/project/views" title="Views"&gt;Views&lt;/a&gt;, for a site they can share it back with the community for fame, reputation, and more. The case is quite different for a designer.&lt;/p&gt;
&lt;p&gt;If a themer contributes back a base theme like &lt;a href="http://drupal.org/project/zen"&gt;zen&lt;/a&gt;, &lt;a href="http://drupal.org/project/blueprint"&gt;blueprint&lt;/a&gt;, or &lt;a href="http://drupal.org/project/moshpit"&gt;moshpit&lt;/a&gt; it's a reusable piece of code like a module. A full design is something you can't share back from a project. If I share a design from a site I've done and people use it my branding status is lowered. It hurts the effectiveness of a site.&lt;/p&gt;
&lt;p&gt;So, designs typically can't be contributed back in the same way modules or base themes can be.&lt;/p&gt;
&lt;h3&gt;Difference between Designers and Drupal Developers&lt;/h3&gt;
&lt;p&gt;Drupal developers usually want to move up the Drupal Developer food chain. When they contribute back there is an ecosystem of Drupal developers for them to interact with.&lt;/p&gt;
&lt;p&gt;This is not the case for designers. There is no flourishing design community. When they go to interact within the design world they do it with the design world at large. Designers aren't interested in having their name in a drupal commit message about a change in the code. They are interested in receiving credit for the design they worked on. &lt;em&gt;Note, a design is different than a theme in this case.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;One of the things the Drupal community needs to figure out is how to credit designers for their designs in a way that showcases it the larger design community. This is especially important for drupal core where the drupal 7 version has just 2 designs.&lt;/p&gt;
&lt;p&gt;So, this is a call for ideas. How can we do this and do it in an effective way for the design community?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;I want to give a special thanks to &lt;a href="http://www.disambiguity.com/"&gt;Leisa Reichelt&lt;/a&gt; and &lt;a href="http://morten.dk/"&gt;Morten&lt;/a&gt; for helping me understand this.&lt;/em&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=hecLW3Dwq-s:S7Wyom35xDY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=hecLW3Dwq-s:S7Wyom35xDY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=hecLW3Dwq-s:S7Wyom35xDY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?i=hecLW3Dwq-s:S7Wyom35xDY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mattfarina/~4/hecLW3Dwq-s" height="1" width="1"/&gt;</description>
 <comments>http://www.mattfarina.com/2009/05/21/an-overlooked-drupal-design-problem#comments</comments>
 <category domain="http://www.mattfarina.com/category/design">Design</category>
 <category domain="http://www.mattfarina.com/category/development">Development</category>
 <category domain="http://www.mattfarina.com/category/drupal">Drupal</category>
 <category domain="http://www.mattfarina.com/category/technology">Technology</category>
 <pubDate>Thu, 21 May 2009 11:05:45 +0000</pubDate>
 <dc:creator>matt</dc:creator>
 <guid isPermaLink="false">257 at http://www.mattfarina.com</guid>
<feedburner:origLink>http://www.mattfarina.com/2009/05/21/an-overlooked-drupal-design-problem</feedburner:origLink></item>
<item>
 <title>Why Inline Editing In Drupal Is Hard</title>
 <link>http://feedproxy.google.com/~r/mattfarina/~3/QnFxY75fvPA/why-inline-editing-in-drupal-is-hard</link>
 <description>&lt;p&gt;&lt;a href="http://www.markboulton.co.uk/" title="Mark Boulton"&gt;Mark Boulton&lt;/a&gt; and &lt;a href="http://disambiguity.com/" title="Leisa Reichelt"&gt;Leisa Reichelt&lt;/a&gt; have suggest &lt;a href="http://drupal.org" title="drupal"&gt;drupal&lt;/a&gt; provide &lt;a href="http://www.d7ux.org/d7ux-initial-concepts-direction/"&gt;inline editing in the interface&lt;/a&gt;. This is a fantastic idea and one I would love to see in drupal. But, (I hate this part) inline editing in drupal is a difficult feature to add. So, before everyone wonders whey we don't offer it or why it's going to take some work let's look at why this is hard.&lt;!--break--&gt;&lt;/p&gt;
&lt;h3&gt;An example&lt;/h3&gt;
&lt;p&gt;I think a good way to see some of the problems in action is to look an example of what would happen. For example, let's look at the process of editing the body of a page inline.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A user clicks on something to convert the body as displayed into a field to edit.&lt;/li&gt;
&lt;li&gt;The page calls back to drupal to get the content of this field as someone would edit it. The content drupal displays goes through a filter system before it's displayed. This cleans out XSS and other security measures and lets other drupal modules plug-in to alter content too. An example of this altering is Filtered HTML which strips out unwanted tags.&lt;/li&gt;
&lt;li&gt;A user updates this text and  submits it.&lt;/li&gt;
&lt;li&gt;This updated text needs to go back to the server, run through the filters, and returned to the page for display.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;We might think this is where the fun stops. But, it doesn't. Many of the fields displayed by drupal are computed fields. A simple example of that is the teaser for the body text. In many cases this is computed by a number of conditions. How will this be handled? How will other computed fields be handled in updating the live page?&lt;/p&gt;
&lt;h3&gt;Not The First Time&lt;/h3&gt;
&lt;p&gt;This is not the first time someone has tried to add inline editing into drupal. Some, like Steven Wittens, have tried to do it in the past. This is a difficult problem to solve and is a product of drupals loved and utilized power.&lt;/p&gt;
&lt;h3&gt;Let's Figure It Out&lt;/h3&gt;
&lt;p&gt;I think we should try to figure it out. I love the idea. It means we have to make decisions and changes will touch some complex code. But, I think understanding a problem is a good place to start solving it. So, who wants to start rolling this patch?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Update: This post is based on a conversation in #drupal between leisa, chx, myself, and others.&lt;/em&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=QnFxY75fvPA:Hg4n3r4sJ_o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=QnFxY75fvPA:Hg4n3r4sJ_o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=QnFxY75fvPA:Hg4n3r4sJ_o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?i=QnFxY75fvPA:Hg4n3r4sJ_o:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mattfarina/~4/QnFxY75fvPA" height="1" width="1"/&gt;</description>
 <comments>http://www.mattfarina.com/2009/04/09/why-inline-editing-in-drupal-is-hard#comments</comments>
 <category domain="http://www.mattfarina.com/category/design">Design</category>
 <category domain="http://www.mattfarina.com/category/development">Development</category>
 <category domain="http://www.mattfarina.com/category/drupal">Drupal</category>
 <category domain="http://www.mattfarina.com/category/technology">Technology</category>
 <pubDate>Thu, 09 Apr 2009 19:12:06 +0000</pubDate>
 <dc:creator>matt</dc:creator>
 <guid isPermaLink="false">256 at http://www.mattfarina.com</guid>
<feedburner:origLink>http://www.mattfarina.com/2009/04/09/why-inline-editing-in-drupal-is-hard</feedburner:origLink></item>
<item>
 <title>Bringing Design To Drupal</title>
 <link>http://feedproxy.google.com/~r/mattfarina/~3/3aLaMni-9TA/bringing-design-to-drupal</link>
 <description>&lt;p&gt;A new movement surfaced at drupalcon DC. It had been bubbling under the surface for some time and it came to a head when 1400 drupalers came together for a week. That movement is &lt;a href="http://groups.drupal.org/d4d" title="Design for Drupal"&gt;Design for Drupal&lt;/a&gt; or d4d.&lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;Let's be honest. Drupal isn't pretty out of the box. It's known for it's functionality and community not it's design. An article &lt;a href="http://www.goodwebpractices.com/other/wordpress-vs-joomla-vs-drupal.html" title="Wordpress vs Joomla vs Drupal"&gt;comparing Wordpress, Joomla, and Drupal&lt;/a&gt; put it perfectly when it said,&lt;/p&gt;
&lt;blockquote cite="http://www.goodwebpractices.com/other/wordpress-vs-joomla-vs-drupal.html"&gt;&lt;p&gt;...Drupal also has the problem that it just doesn't always look that great. I have seen very few websites built in Drupal that look and feel as good as they function. You can especially see this in the theme directory on the Drupal.org website, where there are dozens of these themes built to prove the exact point I just made. It's a shame really, because with all of the development advancements the software has, it would almost be perfect with a stronger usability and design interface.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;In the past week I've gotten an opportunity to listen in on the parking lot conversations of the designers and see their desire to contribute to something better. Something that can help us all.&lt;/p&gt;
&lt;p&gt;At drupalcon there was an obvious need for more design. The lack of design tracks caused the designers and themers to take over a BoF room all day Friday and get some room for Saturday. Some twitter chatter about the lack of design sessions caused a BoF session asking how we can get more designers involved in drupal (the audio from that is available at &lt;a href="http://blip.tv/file/1848508" title="http://blip.tv/file/1848508"&gt;http://blip.tv/file/1848508&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;On Saturday, designers and themers came together to talk about the state of design in drupal and look to where they can help take it. The session started out with an introduction by everyone present as to who they are and what they are looking for. Below is a &lt;a href="http://blip.tv/file/1866269"&gt;video of that&lt;/a&gt; and the audio is available at &lt;a href="http://blip.tv/file/1866277" title="http://blip.tv/file/1866277"&gt;http://blip.tv/file/1866277&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;embed src="http://blip.tv/play/AfK_SAA" type="application/x-shockwave-flash" width="500" height="300" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/p&gt;
&lt;p&gt;This was followed by some great brainstorming sessions, creating a strategy where we would go from here, and some time with core committer &lt;a href="http://webchick.net/" title="Angie Byron"&gt;Angie Byron&lt;/a&gt; where designers and themers shared their view of the world with her.&lt;/p&gt;
&lt;p&gt;From here a group of designers, themers, and developers (like myself) have gotten together to help make this happen. There is a group at &lt;a href="http://groups.drupal.org/d4d" title="http://groups.drupal.org/d4d"&gt;http://groups.drupal.org/d4d&lt;/a&gt; that has been quickly growing. There is an IRC room at #drupal-design on Freenode. There is a twitter hash tag at &lt;a href="http://search.twitter.com/search?q=%23drupaldesign"&gt;#drupaldesign&lt;/a&gt;. There is a '&lt;a href="http://drupal.org/project/issues/3060/term/523"&gt;needs design review&lt;/a&gt;' tag for drupal patches. And, most importantly there is organization, desire, goals, and drive taking form.&lt;/p&gt;
&lt;p&gt;If you are interested in helping or just cheering on the effort please stop by the group, hit us up in IRC, or raise your hand in any way you can. We want to work with everyone. The developers have build a rock solid platform to build amazing sites. Now, let's see what the designers can do with it.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=3aLaMni-9TA:xAN8CRRDVws:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=3aLaMni-9TA:xAN8CRRDVws:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=3aLaMni-9TA:xAN8CRRDVws:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?i=3aLaMni-9TA:xAN8CRRDVws:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mattfarina/~4/3aLaMni-9TA" height="1" width="1"/&gt;</description>
 <comments>http://www.mattfarina.com/2009/03/11/bringing-design-to-drupal#comments</comments>
 <category domain="http://www.mattfarina.com/category/design">Design</category>
 <category domain="http://www.mattfarina.com/category/drupal">Drupal</category>
 <category domain="http://www.mattfarina.com/category/technology">Technology</category>
 <pubDate>Thu, 12 Mar 2009 11:54:52 +0000</pubDate>
 <dc:creator>matt</dc:creator>
 <guid isPermaLink="false">255 at http://www.mattfarina.com</guid>
<feedburner:origLink>http://www.mattfarina.com/2009/03/11/bringing-design-to-drupal</feedburner:origLink></item>
<item>
 <title>Building A Community Of Drupal Designers</title>
 <link>http://feedproxy.google.com/~r/mattfarina/~3/wqw2d9KfeE4/building-a-community-of-drupal-designers</link>
 <description>&lt;p&gt;Have you ever wondered where all the drupal designers are? It's easy to find a drupal coder. Drupal is full of coders doing some great things. But, designers are a lot harder to find and are a much rarer species. I would go so far as to call them an endangered species. So, what can we do get them off the endangered species list?&lt;/p&gt;
&lt;p&gt;At Drupalcon DC we held a Birds of a Feather session to ask just this question. Just about everyone in the room was a designer. Below is most of the audio... but, be warned that is was recorded on the fly and my battery went dead with about a minute of conversation left.&lt;/p&gt;
&lt;p&gt;																														&lt;a rel="enclosure" href="http://blip.tv/file/get/Innovatingtomorrow-BoFHowToGetMoreDesignersInvolvedInDrupal379.mp3"&gt;&lt;/a&gt;										&lt;a rel="enclosure" href="http://blip.tv/file/get/Innovatingtomorrow-BoFHowToGetMoreDesignersInvolvedInDrupal379.mp3"&gt;Click To Play&lt;/a&gt;															&lt;/p&gt;
&lt;p&gt;This leaves me wondering where the designers go next? A first step is that there will be a room for them all day on Friday (Rm. 156) and Saturday at Drupalcon DC. Beyond that I hope those in the rooms can get a bright future started.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=wqw2d9KfeE4:_DCAZ8iEr_w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=wqw2d9KfeE4:_DCAZ8iEr_w:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/mattfarina?a=wqw2d9KfeE4:_DCAZ8iEr_w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/mattfarina?i=wqw2d9KfeE4:_DCAZ8iEr_w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mattfarina/~4/wqw2d9KfeE4" height="1" width="1"/&gt;</description>
 <comments>http://www.mattfarina.com/2009/03/06/building-a-community-of-drupal-designers#comments</comments>
 <category domain="http://www.mattfarina.com/category/design">Design</category>
 <category domain="http://www.mattfarina.com/category/drupal">Drupal</category>
 <category domain="http://www.mattfarina.com/category/technology">Technology</category>
 <pubDate>Fri, 06 Mar 2009 15:07:44 +0000</pubDate>
 <dc:creator>matt</dc:creator>
 <guid isPermaLink="false">254 at http://www.mattfarina.com</guid>
<feedburner:origLink>http://www.mattfarina.com/2009/03/06/building-a-community-of-drupal-designers</feedburner:origLink></item>
<item>
 <title>Working For Tree House Agency</title>
 <link>http://feedproxy.google.com/~r/mattfarina/~3/f6Ws_8jXd0c/working-for-tree-house-agency</link>
 <description>&lt;p&gt;&lt;a href="http://www.treehouseagency.com" title="Tree House Agency"&gt;&lt;img src="http://www.mattfarina.com/sites/mattfarina.com/files/images/tree-house-agency-logo.gif" title="Tree House Agency" alt="tree-house-agency-logo.gif" align="left" /&gt;&lt;/a&gt;For nearly 4 years I've had the opportunity to be apart of the &lt;a href="http://drupal.org" title="drupal"&gt;drupal&lt;/a&gt; community building sites, hacking together modules, and attempting to make core better. Being apart of the community has helped my skills grow, given me the opportunity to help others, and allowed me to work on some cool projects. This has been a lot of fun but, doing this on the side from my full time job as an engineer was no longer enough for me. Starting today, I'm a developer for &lt;a href="http://www.treehouseagency.com" title="Tree House Agency"&gt;Tree House Agency&lt;/a&gt;. Tree House is a web development company that builds most of their sites with drupal.&lt;/p&gt;
&lt;p&gt;What this means:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I get to work on drupal a lot. Yay.&lt;/li&gt;
&lt;li&gt;I get to build some wicked cool websites.&lt;/li&gt;
&lt;li&gt;I get to work from my home office. This means shorts and slippers whenever I want to.&lt;/li&gt;
&lt;li&gt;My other projects, like &lt;a href="http://geeksandgod.com" title="Geeks and God"&gt;Geeks and God&lt;/a&gt;, will continue and have more time for them. No more pesky commuting.&lt;/li&gt;
&lt;li&gt;I'll be a happier person. Have you ever seen me after being stuck in traffic?!?!&lt;/li&gt;
&lt;li&gt;The coffee selection is my choice. No more crappy office coffee.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;!--break--&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=7nsuG9wD"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=Ce2c7Us4"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=jdTcfXr1"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?i=jdTcfXr1" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mattfarina/~4/f6Ws_8jXd0c" height="1" width="1"/&gt;</description>
 <comments>http://www.mattfarina.com/2009/02/16/working-for-tree-house-agency#comments</comments>
 <category domain="http://www.mattfarina.com/category/drupal">Drupal</category>
 <category domain="http://www.mattfarina.com/category/life">Life</category>
 <category domain="http://www.mattfarina.com/category/technology">Technology</category>
 <pubDate>Mon, 16 Feb 2009 12:49:48 +0000</pubDate>
 <dc:creator>matt</dc:creator>
 <guid isPermaLink="false">253 at http://www.mattfarina.com</guid>
<feedburner:origLink>http://www.mattfarina.com/2009/02/16/working-for-tree-house-agency</feedburner:origLink></item>
<item>
 <title>I Quit. Reflecting on General Dynamics</title>
 <link>http://feedproxy.google.com/~r/mattfarina/~3/noptcUe87VY/i-quit-reflecting-general-dynamics</link>
 <description>&lt;p&gt;For more than 6 years I've worked for &lt;a href="http://www.gdls.com"&gt;General Dynamics Land Systems&lt;/a&gt;. Last week that all changed. I quit my cushy corporate job. Before I write about what's going on in my life next I want to take a moment to reflect on my experience working for one of the worlds largest military subcontractors.&lt;/p&gt;
&lt;p&gt;For anyone wondering, I didn't have anything to do or any influence over the company's very outdated website. And, I'm not leaving because of any distaste I have. I'm chasing opportunities rather than staying in a comfortable place. GDLS, as we affectionately call it, doesn't offer the opportunities I'm chasing.&lt;/p&gt;
&lt;p&gt;My time there is really divided between two areas of work. First, I got to play on and with tanks. This was followed by some time working on software tools.&lt;/p&gt;
&lt;h3&gt;The Highlights&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;I got to play on tanks... I mean work on them. This meant I worked with the customers on &lt;a href="http://en.wikipedia.org/wiki/M1_Abrams" title="M1 Tank"&gt;military&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Stryker" title="Stryker"&gt;vehicles&lt;/a&gt;. This was my most valuable learning experience there. Every engineer should spend time with their customer and their products.&lt;/li&gt;
&lt;li&gt;I worked on &lt;a href="http://en.wikipedia.org/wiki/Testability" title="Testability"&gt;testability&lt;/a&gt;, health management (of systems), diagnostics, and &lt;a href="http://en.wikipedia.org/wiki/Prognostics" title="Prognostics"&gt;prognostics&lt;/a&gt; (detecting failures before they happen). There is some amazing work being done here. Imagine detecting a failure before it happens and handling the situation so a failure never affects your system or you minimize the impact.&lt;/li&gt;
&lt;li&gt;Conferences and trainings rock. I was fortunate enough to &lt;a href="http://aeroconf.org/"&gt;attend&lt;/a&gt; &lt;a href="http://www.mfpt.org/"&gt;a&lt;/a&gt; &lt;a href="http://www.pe.gatech.edu/conted/servlet/edu.gatech.conted.course.ViewCourseDetails?COURSE_ID=340"&gt;few&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;I was a project lead on more than one project. This helped me plan and really learn to respect &lt;a href="http://en.wikipedia.org/wiki/Murphy%27s_law" title="Murphay's Law"&gt;Murphay's Law&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;For the last year and a half I wrote 'Software Tools'. This is essentially writing web based applications. What an opportunity to learn the ins and outs of corporate development and the positives, bottlenecks, policies, and enviornment that makes big corporate work operate the way it does.&lt;/li&gt;
&lt;li&gt;I had the pleasure to work with some fantastic people.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you're wondering what's next that will come in some follow-up posts. For now, I'm enjoying my week off between companies.&lt;!--break--&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=nO7Sr2mv"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=RksuTMTY"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=1z3aYEYt"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?i=1z3aYEYt" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mattfarina/~4/noptcUe87VY" height="1" width="1"/&gt;</description>
 <comments>http://www.mattfarina.com/2009/02/13/i-quit-reflecting-general-dynamics#comments</comments>
 <category domain="http://www.mattfarina.com/category/life">Life</category>
 <category domain="http://www.mattfarina.com/category/technology">Technology</category>
 <pubDate>Fri, 13 Feb 2009 12:31:01 +0000</pubDate>
 <dc:creator>matt</dc:creator>
 <guid isPermaLink="false">252 at http://www.mattfarina.com</guid>
<feedburner:origLink>http://www.mattfarina.com/2009/02/13/i-quit-reflecting-general-dynamics</feedburner:origLink></item>
<item>
 <title>Is Drupal A Web Application Framework or just a Content Management System?</title>
 <link>http://feedproxy.google.com/~r/mattfarina/~3/6O066YqMW3g/is-drupal-a-web-application-framework-or-just-a-content-management-system</link>
 <description>&lt;p&gt;When it comes to building sites and using tools there are loads of title and acronyms being thrown around. There's Rapid Application Development Tool, Web Application Framework, CMS, Content Management Platform, and more than a few others I'm missing. One of the names that stands out is framework or web application framework. Until recently &lt;a href="http://drupal.org" title="drupal"&gt;drupal&lt;/a&gt; and &lt;a href="http://www.joomla.org" title="Joomla!"&gt;Joomla!&lt;/a&gt; were listed as web application frameworks on &lt;a href="http://en.wikipedia.org/wiki/List_of_web_application_frameworks#PHP" title="List of web application frameworks"&gt;wikipedia&lt;/a&gt;. On February 1st they were removed from the list.&lt;/p&gt;
&lt;p&gt;Taking this further, there is a note about Content Management Systems on the &lt;a href="http://en.wikipedia.org/wiki/Web_application_framework" title="Web Applications Framework"&gt;Web Applications Framework&lt;/a&gt; wikipedia page that specifically addresses systems like drupal. It basically says, they are not frameworks.&lt;/p&gt;
&lt;p&gt;Drupal.org calls drupal a content management platform while users call drupal a CMS and framework all the time.&lt;/p&gt;
&lt;p&gt;Drupal is not a Ruby on Rails style framework like so many others. But I'm left wondering, is drupal a framework?&lt;/p&gt;
&lt;p&gt;In my opinion it is. It may not be like Ruby on Rails, django, CakePHP, Zend, or so many others but it is a framework. Looking at the &lt;a href="http://en.wikipedia.org/wiki/Web_application_framework#Features" title="Framework Features"&gt;features of frameworks&lt;/a&gt; drupal meets these as well as some of the others do. I think the issue is a matter of style. drupal doesn't operate as a framework in the same or similar way as most of the others do.&lt;/p&gt;
&lt;p&gt;Or, I could just be off my rocker.&lt;/p&gt;
&lt;p&gt;This is such a &lt;a href="http://en.wikipedia.org/wiki/Color_of_the_bikeshed"&gt;color of the bike shed&lt;/a&gt; topic I don't know if there will ever be an answer that satisfies everyone.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=mKdABQiL"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=qfEK2G3Q"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=ihCjEF12"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?i=ihCjEF12" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mattfarina/~4/6O066YqMW3g" height="1" width="1"/&gt;</description>
 <comments>http://www.mattfarina.com/2009/02/03/is-drupal-a-web-application-framework-or-just-a-content-management-system#comments</comments>
 <category domain="http://www.mattfarina.com/category/drupal">Drupal</category>
 <category domain="http://www.mattfarina.com/category/technology">Technology</category>
 <pubDate>Tue, 03 Feb 2009 15:10:19 +0000</pubDate>
 <dc:creator>matt</dc:creator>
 <guid isPermaLink="false">251 at http://www.mattfarina.com</guid>
<feedburner:origLink>http://www.mattfarina.com/2009/02/03/is-drupal-a-web-application-framework-or-just-a-content-management-system</feedburner:origLink></item>
<item>
 <title>RFC 3986 URL Validation</title>
 <link>http://feedproxy.google.com/~r/mattfarina/~3/z6lqxhbrCsc/rfc-3986-url-validation</link>
 <description>&lt;p&gt;Have you ever submitted a url to a site just to have the site tell you it was invalid when you knew it wasn't. That happened to be recently and happened on one of my &lt;a href="http://drupal.org" title="drupal"&gt;drupal&lt;/a&gt; sites. Drupal told me a &lt;a href="http://flickr.com" title="flickr"&gt;flickr&lt;/a&gt; url containing an @ symbol was invalid. When I looked deeper into the issue I found the URL really was valid. When I looked to see what other software was doing I found many cases where there was no validation or what was present failed for many types of valid urls. So, let's take a look at how to do good url validation.&lt;/p&gt;
&lt;h3&gt;The Specifications&lt;/h3&gt;
&lt;p&gt;The specification for URIs, of which URLs is a subset, is &lt;a href="http://www.ietf.org/rfc/rfc3986.txt" title="RFC 3986"&gt;RFC 3986&lt;/a&gt;. This is not only a great place to start but Appendix A provides a detailed guide to the makeup of a URI.&lt;/p&gt;
&lt;h3&gt;filter_var in PHP&lt;/h3&gt;
&lt;p&gt;In PHP 5 there is a function called &lt;a href="http://php.net/filter_var"&gt;filter_var&lt;/a&gt; which allows you to test a piece of data against a filter. One of the filters is &lt;a href="http://www.w3schools.com/PHP/filter_validate_url.asp"&gt;FILTER_VALIDATE_URL&lt;/a&gt; and this seems like the obvious case to use. It's usage would be something like:&lt;br /&gt;
&lt;div class="codeblock"&gt;&lt;code&gt;&lt;span style="color: #000000"&gt;&lt;span style="color: #0000BB"&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp; $result &lt;/span&gt;&lt;span style="color: #007700"&gt;= &lt;/span&gt;&lt;span style="color: #0000BB"&gt;filter_var&lt;/span&gt;&lt;span style="color: #007700"&gt;(&lt;/span&gt;&lt;span style="color: #0000BB"&gt;$url&lt;/span&gt;&lt;span style="color: #007700"&gt;, &lt;/span&gt;&lt;span style="color: #0000BB"&gt;FILTER_VALIDATE_URL&lt;/span&gt;&lt;span style="color: #007700"&gt;, &lt;/span&gt;&lt;span style="color: #0000BB"&gt;FILTER_FLAG_SCHEME_REQUIRED&lt;/span&gt;&lt;span style="color: #007700"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000BB"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Simple, right? The issue is with how this works. FILTER_VALIDATE_URL attempts to pass the URL through &lt;a href="http://us.php.net/parse_url"&gt;parse_url&lt;/a&gt; and see if it can break the URL down. In the documentation of parse_url it says, "This function is not meant to validate the given URL".&lt;/p&gt;
&lt;p&gt;Additionally, if you test this you'll find urls like "http://", http://...", and many other invalid URLs will pass because they have a structure parse_url can handle.&lt;/p&gt;
&lt;h3&gt;Using A Regular Expression&lt;/h3&gt;
&lt;p&gt;I searched for a regular expression that validated for RFC 3986 and couldn't find one. So, I wrote the following (for PHP).&lt;br /&gt;
&lt;div class="codeblock"&gt;&lt;code&gt;# Start at the beginning of the text&lt;br /&gt;/^&lt;br /&gt;# The scheme&lt;br /&gt;([a-z][a-z0-9\*\-\.]*):\/\/&lt;br /&gt;# Userinfo (optional)&lt;br /&gt;(?:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; (?:(?:[\w\.\-\+!$&amp;amp;&amp;#039;\(\)*\+,;=]|%[0-9a-f]{2})+:)*&lt;br /&gt;&amp;nbsp; (?:[\w\.\-\+%!$&amp;amp;&amp;#039;\(\)*\+,;=]|%[0-9a-f]{2})+@&lt;br /&gt;)?&lt;br /&gt;# The domain&lt;br /&gt;(?:&lt;br /&gt;&amp;nbsp; # Domain name or IPv4&lt;br /&gt;&amp;nbsp; (?:[a-z0-9\-\.]|%[0-9a-f]{2})+&lt;br /&gt;&amp;nbsp; # or IPv6&lt;br /&gt;&amp;nbsp; |(?:\[(?:[0-9a-f]{0,4}:)*(?:[0-9a-f]{0,4})\])&lt;br /&gt;)&lt;br /&gt;# Server port number (optional)&lt;br /&gt;(?::[0-9]+)?&lt;br /&gt;# The path (optional)&lt;br /&gt;(?:[\/|\?]&lt;br /&gt;&amp;nbsp; (?:[\w#!:\.\?\+=&amp;amp;@!$&amp;#039;~*,;\/\(\)\[\]\-]|%[0-9a-f]{2})&amp;nbsp; &lt;br /&gt;*)?&lt;br /&gt;$/xi&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;For drupal we are narrowing down the scheme to just allow http, https, and ftp and we aren't looking for reference details to be returned so the regex looks like&lt;br /&gt;
&lt;div class="codeblock"&gt;&lt;code&gt;# Start at the beginning of the text&lt;br /&gt;/^&lt;br /&gt;# Look for ftp, http, or https&lt;br /&gt;(?:ftp|https?):\/\/&lt;br /&gt;# Userinfo (optional)&lt;br /&gt;(?:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp; (?:(?:[\w\.\-\+!$&amp;amp;&amp;#039;\(\)*\+,;=]|%[0-9a-f]{2})+:)*&lt;br /&gt;&amp;nbsp; (?:[\w\.\-\+%!$&amp;amp;&amp;#039;\(\)*\+,;=]|%[0-9a-f]{2})+@&lt;br /&gt;)?&lt;br /&gt;# The domain&lt;br /&gt;(?:&lt;br /&gt;&amp;nbsp; # Domain name or IPv4&lt;br /&gt;&amp;nbsp; (?:[a-z0-9\-\.]|%[0-9a-f]{2})+&lt;br /&gt;&amp;nbsp; # or IPv6&lt;br /&gt;&amp;nbsp; |(?:\[(?:[0-9a-f]{0,4}:)*(?:[0-9a-f]{0,4})\])&lt;br /&gt;)&lt;br /&gt;# Server port number (optional)&lt;br /&gt;(?::[0-9]+)?&lt;br /&gt;# The path (optional)&lt;br /&gt;(?:[\/|\?]&lt;br /&gt;&amp;nbsp; (?:[\w#!:\.\?\+=&amp;amp;@!$&amp;#039;~*,;\/\(\)\[\]\-]|%[0-9a-f]{2})&amp;nbsp; &lt;br /&gt;*)?&lt;br /&gt;$/xi&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Drupals testing framework has made it easy to pass valid and invalid urls through this expression to test if it's working. Details on the issue are at &lt;a href="http://drupal.org/node/124492" title="http://drupal.org/node/124492"&gt;http://drupal.org/node/124492&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Think you can break it of do better? I would love it if you could. Please feel free to try and let me know. If it works for you please share with your friends, enemies, and anyone else who could use it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update: &lt;/strong&gt;The regular expressions were updated to allow % HEXDIGIT HEXDIGIT rather than % and to allow for IPv6 addresses for the domain.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=KLDLWAHB"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=1N1KfAAY"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=ohKR3oKM"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?i=ohKR3oKM" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mattfarina/~4/z6lqxhbrCsc" height="1" width="1"/&gt;</description>
 <comments>http://www.mattfarina.com/2009/01/08/rfc-3986-url-validation#comments</comments>
 <category domain="http://www.mattfarina.com/category/development">Development</category>
 <category domain="http://www.mattfarina.com/category/drupal">Drupal</category>
 <category domain="http://www.mattfarina.com/category/technology">Technology</category>
 <pubDate>Thu, 08 Jan 2009 13:17:01 +0000</pubDate>
 <dc:creator>matt</dc:creator>
 <guid isPermaLink="false">250 at http://www.mattfarina.com</guid>
<feedburner:origLink>http://www.mattfarina.com/2009/01/08/rfc-3986-url-validation</feedburner:origLink></item>
<item>
 <title>Drupal Patch Testing For Anyone</title>
 <link>http://feedproxy.google.com/~r/mattfarina/~3/akL_OAGGTUE/drupal-patch-testing-for-anyone</link>
 <description>&lt;p&gt;Most of the development to &lt;a href="http://drupal.org" title="drupal"&gt;drupal&lt;/a&gt; core happens through a patch review process. Even bigger changes, like the new database system, where development happens elsewhere, eventually go through a patch review process. This process can be intimidating to anyone who hasn't done it before or doesn't feel like they have a high enough skill level to contribute anything to core. In reality, anyone can review patches. Even individuals who can't write software at all.&lt;br /&gt;
&lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;Reviewing patches isn't just about knowing how to program. Someone who doesn't know how to program can help out with patch reviews. Let's take a look at some good places to start and to learn where anyone can review patches.&lt;/p&gt;
&lt;h3&gt;Getting Started&lt;/h3&gt;
&lt;p&gt;If you're interested in reviewing patches to drupal a good place to start is by reading the &lt;a href="http://drupal.org/patch/review" title="Reviewing Patches"&gt;Reviewing Patches&lt;/a&gt; page on drupal.org. This page covers how the process works, coding standards, duplicate issues, and so much more.&lt;/p&gt;
&lt;h3&gt;Comment Reviews&lt;/h3&gt;
&lt;p&gt;Are you good with grammar? Or, even decent? Drupal is full of code comments that document what's going on. These need to be reviewed. For example, a comment in the newly committed patch to allow users to &lt;a href="http://drupal.org/node/8"&gt;cancel their accounts (node 8 on drupal.org)&lt;/a&gt; looks like:&lt;/p&gt;
&lt;p&gt;&lt;div class="codeblock"&gt;&lt;code&gt;- // When a user is deleted, any content they created remains but the&lt;br /&gt;+ // When a user account is canceled, any content they created remains but the&lt;br /&gt;&amp;nbsp; // uid = 0. Their blog entry shows as &amp;quot;&amp;#039;s blog&amp;quot; on the home page. Records&lt;br /&gt;&amp;nbsp; // in the watchdog table related to that user have the uid set to zero.&lt;/code&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;The line starting with - is a line being removed and the one starting with + is an addition. These comments need to be reviewed and need to be consistent with the comment standard in drupals &lt;a href="http://drupal.org/coding-standards" title="drupal coding standard"&gt;coding standard&lt;/a&gt;. Anyone can provide feedback on these.&lt;/p&gt;
&lt;h3&gt;Usability&lt;/h3&gt;
&lt;p&gt;Usability is one of the top priorities in drupal 7. If you visit the &lt;a href="http://groups.drupal.org/improvements-core"&gt;Improvements to Core&lt;/a&gt; dashboard you'll see a list of top usability patches right up front. Imporvements to usability are more than coding a change. They require attention to detail and understanding what makes something usable to someone who doesn't know the system. So, if you're new to drupal this is a great place to offer your insights. If you are a designer, this is a place you can provide mock-ups.&lt;/p&gt;
&lt;h3&gt;Reviewing Patches&lt;/h3&gt;
&lt;p&gt;If you are familiar with PHP or JavaScript patch testing is a great place to get involved, win friends, and get core drupal developers to love you. A great place to learn how to patch review is from the drupal 7 co-maintainer webchick. She recently wrote a blog post about her &lt;a href="http://webchick.net/6-pass-patch-reviews" title="Diaries of a Core Maintainer #5: The 6-pass patch review"&gt;6 Pass Patch Review&lt;/a&gt; process. You may not be comfortable doing all the passes. Just doing one of the passes and providing feedback is valuable.&lt;/p&gt;
&lt;p&gt;If someone want's to go deeper they are more than welcome to and you will be welcomed into the patch reviewing and testing party(?).&lt;/p&gt;
&lt;h3&gt;Additional Resources&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://drupal.org/writing-secure-code" title="Writing Secure Code"&gt;Writing Secure Code in drupal.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://drupal.org/patch/apply" title="Applying A Patch"&gt;How to apply a patch.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://drupal.org/node/28245" title="Setting up a test environment to review patches"&gt;Setting up a test environment to review patches.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have any additional resources please feel free to share.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=bbdPmwQ0"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=QdNXL2fL"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/mattfarina?a=momspfqZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/mattfarina?i=momspfqZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/mattfarina/~4/akL_OAGGTUE" height="1" width="1"/&gt;</description>
 <comments>http://www.mattfarina.com/2009/01/08/drupal-patch-testing-for-anyone#comments</comments>
 <category domain="http://www.mattfarina.com/category/development">Development</category>
 <category domain="http://www.mattfarina.com/category/drupal">Drupal</category>
 <category domain="http://www.mattfarina.com/category/technology">Technology</category>
 <pubDate>Thu, 08 Jan 2009 12:13:46 +0000</pubDate>
 <dc:creator>matt</dc:creator>
 <guid isPermaLink="false">249 at http://www.mattfarina.com</guid>
<feedburner:origLink>http://www.mattfarina.com/2009/01/08/drupal-patch-testing-for-anyone</feedburner:origLink></item>
</channel>
</rss>
