Matt Farina - Development http://mattfarina.com/taxonomy/term/195/0 en My Bazaar Core Development Workflow http://mattfarina.com/2009/8/bazaar-core-development-workflow <p><img src="/sites/mattfarina.com/files/images/bazaar_logo.png" title="Bazaar Logo" alt="bazaar_logo.png" class="float-left" />My old <a href="http://drupal.org" title="Drupal">Drupal</a> core development workflow revolved around CVS. Anytime I'd want to work on a new feature I'd do a CVS checkout of Drupal core and start working on the new feature. If I, or someone else, was working on 2 features that overlapped in code I would have to deal with massive conflict resolving or just have to wait until the other feature was committed or abandoned. Oh, and I had to be connected to the Internet to grab a new CVS checkout. <strong>That all changed when I switched to <a href="http://bazaar-vcs.org/" title="Bazaar Version Control System">Bazaar</a> for my core development work.</strong></p> <h2>Some Of What I Can Do With Bazaar</h2> <p>Bazaar, a distributed version control system, let's me do a lot of things that simply can't be done with CVS or SVN. Here's a short and incomplete list:</p> <ul> <li>I don't need to be connected to the Internet to create new feature branches.</li> <li>Merges are much better making them useful. That makes branches cheap, easy, and useful.</li> <li>I can make branches of other feature branches allowing me to layer patches and issues.</li> <li>Did I mention merges are better. This means a lot less conflicts to deal with.</li> </ul> <p><!--break--></p> <h2>Setting Up Bazaar</h2> <p>Setting up Bazaar in fairly simple. You can do it with installers, through your favorite distribution os Linux, and with Macports. Once you have Bazaar installed there are two great places to look for how to setup Bazaar. First, there is the <a href="http://drupal.org/node/45368" title="Drupal Handbook - Bazaar">drupal handbook pages on the topic</a>. Then, I would recommend reading <a href="http://fourkitchens.com/blog/2009/02/09/bazaar-branch-drupal-head-all-history" title="A Bazaar branch of Drupal HEAD with all history">David Strauss blog post about setting up a Bazaar repo of drupal head</a>.</p> <h2>But, what about Git?</h2> <p>Yes, you can do the same things in Git and Mercurial. They are great distributed version control systems as well. I'd suggest Bazaar as a first choice because that's the direction the drupal community is currently leaning.</p> http://mattfarina.com/2009/8/bazaar-core-development-workflow#comments Development Drupal Technology Fri, 28 Aug 2009 13:08:18 +0000 matt 260 at http://mattfarina.com Leading In The Face of Criticism http://mattfarina.com/2009/8/leading-face-criticism <p><strong>How do you react when your pet project is criticized?</strong> How about when a project you use and love is criticized? When it's the same criticism you've heard over and over you and are tired of hearing it? That's happened yesterday to the <a href="http://drupal.org" title="Drupal - Content Management Platform">Drupal</a> <a href="http://drupal.org/project/views" title="Drupal Views Module">Views</a> project when a tweet sent out of frustration turned into a swarm of tweets, IRC conversations, and back room talk. For the most part, the situation could have been handled better by everyone involved.</p> <h2>What happened?</h2> <p>Let's just say quick reactions, emotions, and defense mechanisms ruled the day. In the end I don't think anyone was satisfied and I have yet to see anything constructive come to light. There was name calling, anger, people trying to defend themselves and others, and a mess of unproductively.</p> <h2>What We Can Do Better Next Time</h2> <p>This situation could have been handled much better. Instead of acting the way many did with passion, frustration, and emotion the criticism should or could have been molded into actionable tasks and ideas.</p> <p>Here are a handful of things we can do that can help these situations:</p> <ul> <li><strong>Don't respond to your emotions.</strong> It may be hard to do. Sometimes I will walk away from the situation for hours or even a day before responding to something so I can do so with a clear head.</li> <li><strong>Turn the criticism into something constructive.</strong> This could be as simple as pointing someone to a place (like the issue queues) and asking them to describe the problem and what they see would be better. If you have more time it could be good to engage the conversation to see what they see.</li> <li><strong>Be a diplomat.</strong> For some reason the role of attaching and defending soldier comes so naturally. Instead, play the role of diplomat.</li> <li><strong>Ignore Them.</strong> Sometimes it's better to ignore criticism and move on than let it get to you. If it eats you up that can make you unhappy and can even cause health problems.</li> </ul> <h2>Critics Not Going To Stop</h2> <p>One of the responses I heard numers times was that critics need to act different. If we create something with any popularity it will have critics. They will be there no matter what we desire. And, the only people we can change are ourselves. So, asking them to go away or asking them to act differently just isn't going to get them to do it.</p> <h2>People Smarter Than Me</h2> <p>A while back there was a <a href="http://www.youtube.com/watch?v=ZSFDm3UYkeE" title="How Open Source Projects Survive Poisonous People">Google Tech Talk called "How Open Source Projects Survive Poisonous People"</a> which touched on this subject. It's done by a couple guys who have lived and learned how to deal with these situations successfully. You can see the video below.</p> <object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/ZSFDm3UYkeE&hl=en&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/ZSFDm3UYkeE&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object><p> <em>Disclaimer: This post isn't directed at anyone. I've learned a lot of these lessons the hard way and just want to share them in the spirit of community growth.</em></p> http://mattfarina.com/2009/8/leading-face-criticism#comments Design Development Drupal Technology Fri, 28 Aug 2009 12:37:09 +0000 matt 262 at http://mattfarina.com The Horror of Views Markup http://mattfarina.com/2009/8/horror-views-markup <p><img src="/sites/mattfarina.com/files/images/bride-of-frankenstein.jpg" title="Bride of Frankenstein" alt="bride-of-frankenstein.jpg" class="image-left">Every so often someone points to the markup generated by the <a href="http://drupal.org" title="Drupal">Drupal</a> <a href="http://drupal.org/project/views" title="Drupal Views Module">Views</a> modules and calls it ugly. This seems come up every so often in the forums, issue queues, blog posts, and on twitter. Most of the time this is where the conversation turns a bit ugly. Since this conversation has been had many times the people who are involved are a bit tired of explaining what's going on to someone new and to many Views is their baby and it was just called ugly. So, let me take a shot at explaining why Views markup is the way it is, why that's good for some, and what you can do about it if you don't like it.</p> <h2>The Deal With Views Markup</h2> <p>The markup from Views has to be very flexible out of the box. It's going to be used by a lot of people to do a lot of different things. So, the markup provides spans, divs, and classes for almost every case you'd want to style. If you are someone who lives in CSS and loves classes and separation of everything it's there for you. There is a certain group of designers that want this and they have been vocal and are, for the most part, happy with the markup.</p> <h2>Can't Make Everyone Happy</h2> <p>As the saying goes, you can't make everyone happy all the time. Having lots of spans, divs, classes and other forms of markup is directly opposed to small concise markup others love. You can't have both out of the box and what Views picked is actually easier for new people to pick up.</p> <p>In Drupal to alter the output you need to know how the theming system works and how to override the default markup. Since Views provides lots of markup many people can learn to style the output without needing to know how to alter the markup output of views. It saves them from a layer of complexity.</p> <h2>Having Markup Your Way</h2> <p>If you are a markup purist and want to change the markup output by Views it's there for you to change. Views uses the templating system provided by Drupal and has a display plugin system of it's own. With the templating system you can override all of the markup provided by Views and replace it with your own. It's almost as simple as copying the Views template files into your theme and altering or replacing them.<br /> <!--break--></p> <h2>Drupalcon Paris</h2> <p>As <a href="http://morten.dk/" title="Morten - The Kind of Denmark">Morten</a> does at the Drupalcons he attends, in <a href="http://paris2009.drupalcon.org/" title="Drupalcon Paris 2009">Paris</a>, there will be <a href="http://paris2009.drupalcon.org/session/all-youre-xhtml5-are-belong-us" title="All youre (x)html(5) are belong to us! ">a session about overriding the default markup in Drupal to replace it with what you want</a>. If you're not going to make it to Paris you can wait for the video from his session to be published or check out the video of his session from <a href="http://www.archive.org/details/DrupalconDC2009-BuildingAFrankensteinMonster" title="Building a Frankenstein Monster and How to Maintain it">Drupalcon DC</a>.</p> http://mattfarina.com/2009/8/horror-views-markup#comments Design Development Drupal Technology Thu, 27 Aug 2009 12:35:17 +0000 matt 261 at http://mattfarina.com Drupalcamp Boston Wrap-up http://mattfarina.com/2009/06/16/drupalcamp-boston-wrap <p>The <a href="http://boston.design4drupal.org" title="Drupal Design Camp in Boston">Drupal Design Camp in Boston</a> this past weekend was fantastic. Having the event at the <a href="http://en.wikipedia.org/wiki/Stata_Center" title="MIT Stata Center">MIT Stata Center</a>, a building that looks like it's right our of a <a href="http://en.wikipedia.org/wiki/Dr._Seuss" title="Dr. Seuss">Dr. Seuss</a> 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.</p> <p><center><a href="http://www.flickr.com/photos/jeffeaton/3623160520/" title="Drupal Design Camp Boston"><img src="http://farm3.static.flickr.com/2468/3623160520_9812d092bb.jpg" alt="Drupal Design Camp Boston" /></a> <div><small>Photo by Jeff Eaton. Everyone is pointing at Morten.</small></div> <p></center><!--break--></p> <h3>The People</h3> <p>There weren't just people attending from the east coast or midwest and <a href="http://morten.dk/" title="Morthen - The Kind of Denmark">Morten</a> 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.</p> <h3>The Sessions</h3> <p>More than one attendee said they thought the sessions here were better than at drupalcon. With keynotes by <a href="http://www.lullabot.com/about/jeff-robbins" title="Jeff Robbins">Jeff Robbins</a> and <a href="http://acquia.com/about-us/team" title="Jay Batson">Jay Batson</a> and huge sessions like the one on the 960 grid by <a href="http://sonspring.com/" title="Nathan Smith">Nathan Smith</a>, the creator of 960, and <a href="http://fourkitchens.com/bios/todd-ross-nienkerk" tiele="Todd Nienker">Todd Nienkerk</a> it's hard not to feel this way.</p> <p>The 40 session covered topics ranging from the basics of drupal to themeing techniques to radical new ideas in how to theme like <a href="http://drupal.org/project/skinr" title="Skinr Module">skinr</a>.</p> <h3>The New Ideas</h3> <p>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.</p> <h3>The Stata Center</h3> <p><a href="http://web.mit.edu/facilities/construction/completed/stata.html" title="Stata Center">The Stata Center</a> was the perfect place for an event like this. Every direction you look there's something inspiring and artistic about the building.</p> <p><center><a href="http://www.flickr.com/photos/verdi/3627083229/" title="MIT Stata Center"><img src="http://farm3.static.flickr.com/2476/3627083229_bc8996ac1d.jpg?v=1245038209" alt="MIT Stata Center" /></a> <div><small>Photo by Michael Verdi</small></div> <p></center></p> <p>I want to give a special thanks to <a href="http://www.susanmacphee.com/" title="Susan MacPhee">Susan MacPhee</a> for organizing the event and MIT for hosting the event. It was fantastic.</p> http://mattfarina.com/2009/06/16/drupalcamp-boston-wrap#comments Design Development Drupal Technology Tue, 16 Jun 2009 14:09:15 +0000 matt 258 at http://mattfarina.com An Overlooked Drupal Design Problem http://mattfarina.com/2009/05/21/an-overlooked-drupal-design-problem <p>Most of the shared <a href="http://drupal.org" title="drupal">Drupal</a> themes aren't very good and there aren't very many commercial ones. That's what a <a href="http://acquia.com/blog/what-shall-we-do-about-themes" title="What shall we do about Themes?">study shared by Jay Batson pointed out</a>. 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.<!--break--></p> <h3>Hostile Land For Designers</h3> <p>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 <a href="http://api.drupal.org">api.drupal.org</a>, are centered on developers. To contribute a theme you have to know and use CVS. At <a href="http://dc2009.drupalcon.org" title="drupalcon dc">drupalcon dc</a> designers and themers had to take over BoF rooms to get the space they need.</p> <p>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.</p> <h3>Crediting Developers</h3> <p>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.</p> <p>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.</p> <p>As you contribute you build up community cred with the other developers. You make friends. You gain influence.</p> <h3>Difference Between Design and Development</h3> <p>When a developer writes a sweet module, like <a href="http://drupal.org/project/views" title="Views">Views</a>, for a site they can share it back with the community for fame, reputation, and more. The case is quite different for a designer.</p> <p>If a themer contributes back a base theme like <a href="http://drupal.org/project/zen">zen</a>, <a href="http://drupal.org/project/blueprint">blueprint</a>, or <a href="http://drupal.org/project/moshpit">moshpit</a> 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.</p> <p>So, designs typically can't be contributed back in the same way modules or base themes can be.</p> <h3>Difference between Designers and Drupal Developers</h3> <p>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.</p> <p>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. <em>Note, a design is different than a theme in this case.</em></p> <p>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.</p> <p>So, this is a call for ideas. How can we do this and do it in an effective way for the design community?</p> <p><em>I want to give a special thanks to <a href="http://www.disambiguity.com/">Leisa Reichelt</a> and <a href="http://morten.dk/">Morten</a> for helping me understand this.</em></p> http://mattfarina.com/2009/05/21/an-overlooked-drupal-design-problem#comments Design Development Drupal Technology Thu, 21 May 2009 11:05:45 +0000 matt 257 at http://mattfarina.com Why Inline Editing In Drupal Is Hard http://mattfarina.com/2009/04/09/why-inline-editing-in-drupal-is-hard <p><a href="http://www.markboulton.co.uk/" title="Mark Boulton">Mark Boulton</a> and <a href="http://disambiguity.com/" title="Leisa Reichelt">Leisa Reichelt</a> have suggest <a href="http://drupal.org" title="drupal">drupal</a> provide <a href="http://www.d7ux.org/d7ux-initial-concepts-direction/">inline editing in the interface</a>. 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.<!--break--></p> <h3>An example</h3> <p>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.</p> <ol> <li>A user clicks on something to convert the body as displayed into a field to edit.</li> <li>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.</li> <li>A user updates this text and submits it.</li> <li>This updated text needs to go back to the server, run through the filters, and returned to the page for display.</li> </ol> <p>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?</p> <h3>Not The First Time</h3> <p>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.</p> <h3>Let's Figure It Out</h3> <p>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?</p> <p><em>Update: This post is based on a conversation in #drupal between leisa, chx, myself, and others.</em></p> http://mattfarina.com/2009/04/09/why-inline-editing-in-drupal-is-hard#comments Design Development Drupal Technology Thu, 09 Apr 2009 19:12:06 +0000 matt 256 at http://mattfarina.com RFC 3986 URL Validation http://mattfarina.com/2009/01/08/rfc-3986-url-validation <p>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 <a href="http://drupal.org" title="drupal">drupal</a> sites. Drupal told me a <a href="http://flickr.com" title="flickr">flickr</a> 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.</p> <h3>The Specifications</h3> <p>The specification for URIs, of which URLs is a subset, is <a href="http://www.ietf.org/rfc/rfc3986.txt" title="RFC 3986">RFC 3986</a>. This is not only a great place to start but Appendix A provides a detailed guide to the makeup of a URI.</p> <h3>filter_var in PHP</h3> <p>In PHP 5 there is a function called <a href="http://php.net/filter_var">filter_var</a> which allows you to test a piece of data against a filter. One of the filters is <a href="http://www.w3schools.com/PHP/filter_validate_url.asp">FILTER_VALIDATE_URL</a> and this seems like the obvious case to use. It's usage would be something like:<br /> <div class="geshifilter"><pre class="php geshifilter-php" style="font-family:monospace;"> <span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> filter_var<span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #339933;">,</span> FILTER_VALIDATE_URL<span style="color: #339933;">,</span> FILTER_FLAG_SCHEME_REQUIRED<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></p> <p>Simple, right? The issue is with how this works. FILTER_VALIDATE_URL attempts to pass the URL through <a href="http://us.php.net/parse_url">parse_url</a> 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".</p> <p>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.</p> <h3>Using A Regular Expression</h3> <p>I searched for a regular expression that validated for RFC 3986 and couldn't find one. So, I wrote the following (for PHP).<br /> <div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"># Start at the beginning of the text /^ # The scheme ([a-z][a-z0-9\*\-\.]*):\/\/ # Userinfo (optional) (?: (?:(?:[\w\.\-\+!$&amp;'\(\)*\+,;=]|%[0-9a-f]{2})+:)* (?:[\w\.\-\+%!$&amp;'\(\)*\+,;=]|%[0-9a-f]{2})+@ )? # The domain (?: # Domain name or IPv4 (?:[a-z0-9\-\.]|%[0-9a-f]{2})+ # or IPv6 |(?:\[(?:[0-9a-f]{0,4}:)*(?:[0-9a-f]{0,4})\]) ) # Server port number (optional) (?::[0-9]+)? # The path (optional) (?:[\/|\?] (?:[\w#!:\.\?\+=&amp;@!$'~*,;\/\(\)\[\]\-]|%[0-9a-f]{2}) *)? $/xi</pre></div></p> <p>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<br /> <div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"># Start at the beginning of the text /^ # Look for ftp, http, or https (?:ftp|https?):\/\/ # Userinfo (optional) (?: (?:(?:[\w\.\-\+!$&amp;'\(\)*\+,;=]|%[0-9a-f]{2})+:)* (?:[\w\.\-\+%!$&amp;'\(\)*\+,;=]|%[0-9a-f]{2})+@ )? # The domain (?: # Domain name or IPv4 (?:[a-z0-9\-\.]|%[0-9a-f]{2})+ # or IPv6 |(?:\[(?:[0-9a-f]{0,4}:)*(?:[0-9a-f]{0,4})\]) ) # Server port number (optional) (?::[0-9]+)? # The path (optional) (?:[\/|\?] (?:[\w#!:\.\?\+=&amp;@!$'~*,;\/\(\)\[\]\-]|%[0-9a-f]{2}) *)? $/xi</pre></div></p> <p>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 <a href="http://drupal.org/node/124492" title="http://drupal.org/node/124492">http://drupal.org/node/124492</a>.</p> <p>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.</p> <p><strong>Update: </strong>The regular expressions were updated to allow % HEXDIGIT HEXDIGIT rather than % and to allow for IPv6 addresses for the domain.</p> http://mattfarina.com/2009/01/08/rfc-3986-url-validation#comments Development Drupal Technology Thu, 08 Jan 2009 13:17:01 +0000 matt 250 at http://mattfarina.com Drupal Patch Testing For Anyone http://mattfarina.com/2009/01/08/drupal-patch-testing-for-anyone <p>Most of the development to <a href="http://drupal.org" title="drupal">drupal</a> 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.<br /> <!--break--></p> <p>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.</p> <h3>Getting Started</h3> <p>If you're interested in reviewing patches to drupal a good place to start is by reading the <a href="http://drupal.org/patch/review" title="Reviewing Patches">Reviewing Patches</a> page on drupal.org. This page covers how the process works, coding standards, duplicate issues, and so much more.</p> <h3>Comment Reviews</h3> <p>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 <a href="http://drupal.org/node/8">cancel their accounts (node 8 on drupal.org)</a> looks like:</p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;">- // When a user is deleted, any content they created remains but the + // When a user account is canceled, any content they created remains but the // uid = 0. Their blog entry shows as &quot;'s blog&quot; on the home page. Records // in the watchdog table related to that user have the uid set to zero.</pre></div></p> <p>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 <a href="http://drupal.org/coding-standards" title="drupal coding standard">coding standard</a>. Anyone can provide feedback on these.</p> <h3>Usability</h3> <p>Usability is one of the top priorities in drupal 7. If you visit the <a href="http://groups.drupal.org/improvements-core">Improvements to Core</a> 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.</p> <h3>Reviewing Patches</h3> <p>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 <a href="http://webchick.net/6-pass-patch-reviews" title="Diaries of a Core Maintainer #5: The 6-pass patch review">6 Pass Patch Review</a> process. You may not be comfortable doing all the passes. Just doing one of the passes and providing feedback is valuable.</p> <p>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(?).</p> <h3>Additional Resources</h3> <ul> <li><a href="http://drupal.org/writing-secure-code" title="Writing Secure Code">Writing Secure Code in drupal.</a></li> <li><a href="http://drupal.org/patch/apply" title="Applying A Patch">How to apply a patch.</a></li> <li><a href="http://drupal.org/node/28245" title="Setting up a test environment to review patches">Setting up a test environment to review patches.</a></li> </ul> <p>If you have any additional resources please feel free to share.</p> http://mattfarina.com/2009/01/08/drupal-patch-testing-for-anyone#comments Development Drupal Technology Thu, 08 Jan 2009 12:13:46 +0000 matt 249 at http://mattfarina.com Tutorial: Converting From Audio Module To Filefield http://mattfarina.com/2008/12/09/tutorial-converting-from-audio-module-to-filefield <p>When we updated the <a href="/2008/12/09/drupal-case-study-geeksandgodcom" title=" GeeksandGod.com">Geeks and God podcast to drupal 6</a> we migrated away from using the <a href="http://drupal.org/project/audio" title="audio modules">audio module</a> and are now using <a href="http://drupal.org/project/cck" title="CCK">CCK</a> and <a href="http://drupal.org/project/filefield" title="filefield">filefield</a> to manage our audio. This has enabled us to use modules like <a href="http://drupal.org/project/ffpc" title="Filefield Podcaster">filefield podcaster</a> to generate our feeds and have views generate different feeds for our different file types.</p> <p>The audio module has been good to us but we didn't need most of its added functionality and some things, like ID3 tag management, had turned into a little bit of a nuisance.</p> <p>A number of other people have wanted to make the same conversion and I have been asking me how to do it more than a few times. So, I wrote up a tutorial called "<a href="http://geeksandgod.com/tutorials/computers/cms/drupal/drupal-converting-audio-module-filefield-module" title=" Converting From Audio Module To Filefield Module">Drupal: Converting From Audio Module To Filefield Module</a>".</p> http://mattfarina.com/2008/12/09/tutorial-converting-from-audio-module-to-filefield#comments Development Drupal Technology Tue, 09 Dec 2008 15:12:32 +0000 matt 248 at http://mattfarina.com Drupal Case Study: GeeksandGod.com http://mattfarina.com/2008/12/09/drupal-case-study-geeksandgodcom <p>Last week, <a href="http://bobchristenson.com" title="Bob Christenson">Bob</a> and I launched a new look <a href="http://geeksandgod.com" title="Geeks and God">Geeks and God podcast and community site</a>. When we had first launched the site two years ago, under drupal 4.7, it was a basic site where page nodes were our podcast and we used an outside software like feeder and feedburner to generate our feeds. Since then a community has grown around the podcast, the technology has come a long way, and the dynamic around the site has changed. To embrace this we rebuilt the site, added new features, and re-constructed our data model (we have a data model for the first time).</p> <p>In <a href="http://geeksandgod.com/episode102" title="http://geeksandgod.com/episode102">Episode 102 of the podcast</a> we walk through many of the technical changes, the modules we used, how and why we built what we built and more.</p> <p><a title="gandg by matt.farina, on Flickr" href="http://www.flickr.com/photos/mattfarina/3073661823/"><img height="415" width="500" alt="gandg" src="http://farm4.static.flickr.com/3296/3073661823_2a4fd23c66.jpg"/></a><br /> <!--break--></p> http://mattfarina.com/2008/12/09/drupal-case-study-geeksandgodcom#comments Design Development Drupal Technology Tue, 09 Dec 2008 14:55:44 +0000 matt 247 at http://mattfarina.com