Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 3 min 23 sec ago

KnackForge: Displaying Webform submission data in Drupal Views

Tue, 08/26/2014 - 19:50
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpAlthough a href= module comes with limited integration to expose the submitted data in a href=, it lacks the fine control to make View by Webform field as rows and columns. There is a workaround to achieve this though which I would like to briefly run through in this /br /a href= MySQL Views/a together with a href= and a href= modules with a patch to Webform MySQL Views from issue a href= title=Status: Active#889306: Allow the designation of a primary key for MySQL views/a makes this /br /Webform MySQL Views, as the name implies, allow us to create a href= view/a from Drupal, leveraging the Data module which counts on Schema /br /Data module wraps a bundle of sub-modules, among them Data Search provides Views Integration and Data Admin UI for accessing its administrative /br /Once the mentioned modules are enabled. You can see a sub-menu MySQL Views under Administration » Content » Webforms. Tick the Webform node whose fields are needed in Views. This form is only meant to create MySQL view./p p style=text-align: center;img alt= class=media-image height=393 width=592 typeof=foaf:Image src=/sites/default/files/selection_038.png //p/div/div/div

Drupal Association News: Announcing the New Drupal Jobs Career Site

Tue, 08/26/2014 - 17:13
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpa href=http://jobs.drupal.orgimg alt=Drupal Jobs logo class=left src= //aToday we’re proud to announce the launch of a href=;utm_medium=blogamp;utm_campaign=drupaljobsDrupal Jobs/a, a career site dedicated completely to Drupal. The Drupal job market is hot (more on that in a moment) and we hope this new tool will help match the right talent with the right positions./p pFor job seekers, you can start searching for positions by location, position, skill level and more. You can create a profile with your job preferences and salary requirements, and even choose whether you wish to be contacted by employers and recruiters. All for free./p pFor employers and recruiters there are a variety of packages available, giving them the opportunity to highlight their company with a branded page and feature select postings in newsletters and social media. The great thing is that proceeds from postings are invested back into and its subsites (including Drupal Jobs) and community programs./p pThe website is launching today and, as with any new website, we expect there will be some kinks to work out. But we know Drupal Jobs will be a valuable addition to the current options for employers, recruiters and job seekers./p pThe Drupal job market shows no signs of slowing. Our recently conducted survey points to a strong need for talent (see the chart below). In the next few days we’ll publish the full results of the survey. In the meantime, a href=http://jobs.drupal.orgcheck out Drupal Jobs/a and let us know what you think./p pimg alt= src= //p /div/div/div

Palantir: D8FTW: Your Next Drupal Hire Isn't a Drupal Hire

Tue, 08/26/2014 - 16:17
span class=featured-blog-image img typeof=foaf:Image src= width=262 height=175 alt=D8FTW! accompanying image of palm tree title=D8FTW! accompanying image of palm tree / /span pOne challenge the Drupal community has faced for some time is a labor shortage. There are, quite simply, not enough skilled Drupal developers to go around. That's quite a problem when the Drupal market is continuing to grow steadily./p pOne of the challenges to finding good Drupal talent is that Drupal has historically been, well, weird. And by weird I mean entirely unlike any other system on the market. That makes few skills transferrable between Drupal and any other PHP framework, application, or system. Developers trained on Drupal cannot easily transition to any other system and developers trained on any other modern PHP system get lost in arrays the minute they set foot in the door. It's a sufficiently large problem that I've talked to other development shop owners that have said outright they have more success hiring fresh, junior developers and training them on Drupal as their first system than hiring anyone with experience, as those with more extensive PHP experience run for the door./p pThat's a big problem. Fortunately, that's about to change./p pFor the past several years, the Drupal project has been working to a href= Off the Island/a. Drupal 8 will be using more standard, common PHP and programming-in-general tools, techniques, and architectures, making it more accessible to more developers than ever before, a href= non-PHP developers/a. The number of Drupal developers showing up at non-Drupal events is rising; For example, Lonestar PHP 2013 had two; Lonestar PHP 2014 had 10 (which for a 200 person conference is a very respectable number). I've noticed similar trends at other PHP conferences./p pBut to really seal the deal and help fill the Drupal employment gap, it's time for Drupal employers to step and do their part: Selling off the island./p pWith Drupal 8, and the buzz around it in the general PHP community, there will be an increasing number of general PHP developers interested in working with Drupal and who are better qualified to work on Drupal. (Not with no training, but with far less retraining than Drupal 7 requires.) Those developers, though, won't just walk in the door. They have no reason to come to a DrupalCamp, and probably not even a DrupalCon. As a Drupal consultancy or Drupal-based company you need to go out and find them. The core team has done its part, now it's time to do yours./p pA friend of mine once said that if you want to meet people with whom you have a shared interest you need to go where people with that interest hang out. That applies for hiring, too. So where does the next round of Drupal talent hang out? At non-Drupal events. If you don't then someone else will hire the next generation of senior developers before you do./p ullistrongHave a presence at events/strong: Ensure that your employees aren't just going to Drupal Camps. Make sure that some of them go to general PHP or general Javascript conferences, too. Not only is is good professional development for them (which makes them stronger developers and therefore stronger members of your team) it's good advertising for you. The word-of-mouth impact of knowing one or two smart, friendly people at that Drupal shop greatly helps when someone is looking for a new challenge./li listrongHave a presence on stage/strong: Make no mistake, presenting is hard work. It takes a lot of preparation to give a good talk, and that takes time. But the impact of having someone from your company on-stage is 10x that of having them walking around the hallway with other attendees. If someone from your team can present on work that you've done that's fantastic. But even just presenting on something cool, interesting, insightful, or otherwise useful can be a big help to your company's brand. Also, light branding of the presentation itself is completely OK as long as it's not gratuitous. That's a much more targeted form of marketing than exists anywhere else, online or off; you have a self-selecting group of potential hires in one room together. Let your team be what they're there to see./li listrongSponsor/strong: Drupal shops sponsor events all the time. Every DrupalCon and DrupalCamp has a long list of sponsors that help make the event happen and many of those have a physical presence as well with a table or booth. Sure, that is in part to help support the community and it should be commended. But let's be honest, few companies are going to sponsor an event unless they think the marketing value of it is a good return. Clearly, many companies do think it's a good return because they keep doing it. Why should the return be any different at a non-Drupal event? Historically it's been lower because Drupal was so isolated from the rest of the PHP world but that's changing. Sponsoring a general PHP, Javascript, or web developer conference is becoming just as useful a marketing endeavor as sponsoring a Drupal-specific event./li /ulpAt the start of 2013 I laid out a challenge to Drupal developers: Attend at least two non-Drupal events that year. I'll now lay the same challenge out to Drupal-based companies: Encourage your team to present emat at least two/em non-Drupal events in the next year, and sponsor emat least two/em non-Drupal events in the next year. There's no shortage of them; there's over a dozen a href= conferences/a just in the USA every year and more around the world./p pYour next Drupal hire is going to come from a non-Drupal background, especially a senior-level developer. If you want to hire them before someone else does, get out to where they are. It's a whole new market if you're willing to embrace it./p Contribute to Drupal(.org)!

Tue, 08/26/2014 - 14:00
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=schema:articleBody content:encodedpSo at DrupalCon Austin I had a great time at the contribution sprints. I worked on some issues affecting a, it was great fun!/p pThe a href= we worked on/a over the week range from simple things through to some pretty difficult issues./p pAlthough Drupal core can always use more contributors, I would suggest that is also desperately short of contributors too./p/div/div/divspan rel=schema:url resource=/drupal-code/contribute-drupalorg class=rdf-meta/spanspan property=schema:name content=Contribute to Drupal(.org)! class=rdf-meta/span

KnackForge: Drupal 7: Invoking custom callback in maintenance mode

Tue, 08/26/2014 - 13:10
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodeddivIn a Drupal site, if we have any module upgrade or configuration related work to be done in our live site, it is recommended to put the site in maintenance mode, so we can prevent end users from experiencing glitches./div div /div divWhen the site is operating in maintenance mode, any page request would return only maintenance message. Some pages are allowed to access though. The login functionality for instance will work in the maintenance mode. Recently, I faced such a requirements in which a custom module's callback to be invoked as to let Single Sign On (SSO) work for admin in maintenance mode. I would like to explain the way I fixed the same in this blog./div div /div divThere is a hook in Drupal 7 for that, a href= target=_blankhook_menu_site_status_alter()/a. With this hook we can control the site status before menu dispatching, So we can change the site status for the particular path./div div /div div/div/div/div/div

Dries Buytaert: Open Source and social capital

Tue, 08/26/2014 - 10:27
div class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-abovediv class=field-labelTopic:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tag/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a/div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpThe notion that people contributing to Open Source don't get paid is false. Contributors to Open Source are compensated for their labor; not always with emfinancial capital/em (i.e. a paycheck) but certainly with emsocial capital/em. Social capital is a rather vague and intangible concept so let me give some examples. If you know someone at a company where you are applying for a job and this connection helps you get that job, you have used social capital. Or if you got a lead or a business opportunity through your network, you have used social capital. Or when you fall on hard times and you rely on friends for emotional support, you're also using social capital./p pThe term social refers to the fact that the resources are not personal assets; no single person owns them. Instead, the resources are in the network of relationships. Too many people believe that success in life is based on the individual, and that if you do not have success in life, there is no one to blame but yourself. The truth is that individuals who build and use social capital get better jobs, better pay, faster promotions and are more effective compared to peers who are not tapping the power of social capital. As shown in the examples, social capital also translates into happiness and well-being./p pMost Open Source contributors benefit from social capital but may not have stopped to think about it, or may not value it appropriately. Most of us in the Open Source world have made friendships for life, have landed jobs because of our contributions, others have started businesses together, and for others it has provided an important sense of purpose. Once you become attuned to spotting social capital being leveraged, you see it everywhere, every day. I could literally write a book filled with hundreds of stories about how contributing to Open Source changed people's lives -- I love hearing these stories. /p pSocial capital is a big deal; it is worth understanding, worth talking about, and worth investing in. It is key to achieving personal success, business success and even happiness./p /div/div/div

PreviousNext: Vagrant, PHING, core development and automation

Tue, 08/26/2014 - 01:51
div class=field field-name-field-summary field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even pAt PreviousNext we rely heavily on a title=Vagrant href= for development environments and a title=PHing Is Not GNU href= for performing automated tasks to speed up site building and project development. These tools are hugely beneficial in the long run. In this blog we'll have a look at how we as drupal core developers can automate the tedious tasks like site install/ re-install, testing, coding standards validation and enable modules./p /div/div/divspan property=dc:title content=Vagrant, PHING, core development and automation class=rdf-meta/span

Drupal Association News: Drupal Association Board Meeting: 20 August 2014

Tue, 08/26/2014 - 01:46
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpimg alt= src= style=width: 240px; height: 180px; border-width: 0px; border-style: solid; margin: 5px; float: left; /We held our most recent monthly board meeting last Wednesday, 20 August and we had a lot of news to report and a big agenda to cover. You can a href= the materials/a or check out a href= recording/a. /p pAs the year continues to progress, our momentum as a team continues to build. We're accomplishing more and more with the community, which is fantastic to see. That said, it's also been a challenging year. This is the first year we have attempted to systematically measure the impact of our work. On the one hand, it's been wonderful to start to accumulate a baseline of data we can measure against for the future. On the other hand, the data is also a little all over the place. In some cases, we had very little to go on when setting the goals, which means that we aimed way too high or low. In other places, we have some areas of real concern to address. /p pHere the topics we tackled on Wednesday:/p h3 Improvments/h3 pOverall, we've begun to see some significant improvements to the stability and performance of Although many of our metrics related to performance are still in the red for the year, the last few months have seen significant improvements in page load times, etc. In short, things ARE getting better. Additionally, as the tech team has begun to gel under new CTO Josh Mitchell's leadership, they have begun to rapidly turn out great work on the feature side of We've tackled a remarkable number of issues in just the last few months:/p ulli Implemented user pictures on profiles/li li Conducted 30 User Research interviews and began developing personas for a skill acquisition model of user design (more to come from the DCWG)/li li Implemented a href= API/a for li Implemented a href= Versioning/a for Drupal 8/li li Added a href= Organizations field on projects/a (entity reference to an organization with an explanation field - we need to promote this change as it was part of the overall efforts to give credit to organizations)/li li Took over maintenance of the PIFT and PFFR testbots so that the community could continue with improvements to a modern, best-practice alternative/li li Updated the Bakery module to allow us to better integrate with subsites like Drupal Jobs/li li Responded to spam on several subsites where the basic Mollom configurations were overwhelmed by human spammers/li li Responded to and deployed several security release updates including the recent a href= response/a where we teamed up with WordPress/li li Launched a new landing page on for designers and front-end developers/li li Automated process for publishing supporting partners on /ulpAlthough is chock full of data, this is an area where we had very little longitudinal or granular data to guide our goal setting. Combined with our slow hiring cycle, we've had a tough time really making a dent in some of our red numbers, but we ARE making progress and most importantly will know so much more for next year than we did for this year. /p h3 DrupalCons/h3 pWe shared a very a href= review of DrupalCon Austin/a at this board meeting, as well as trends for Amsterdam. The long and short is that we had, in almost every way, a very successful DrupalCon in Texas. We were able to compare evaluation, finance, and attendance numbers to Portland and show our year over year trends, which was very helpful. While there is a lot to be happy about, we also have reason for concern. While DrupalCons have sustained growth year over year since their beginning, Texas was basically flat compared to Portland in terms of attendees. Looking ahead at the Amsterdam numbers, we're also finding that we may be at or slightly below our Prague numbers. /p pThere are many reason we could be seeing a plateauing of these numbers. It could be a natural by product of where we are in the product development cycle. No Drupal 8 and a really mature Drupal 7 product means there is less to talk about and learn. It may be that our demographics are shifting and the Con is not needing their needs. It may be a combination of many things. /p pWhat we DO know is that we need to get to the bottom of the issue so that we can adjust our strategy accordingly. After Amsterdam, you will see a survey from the Association to help understand your DrupalCon motivations. So whether you've always gone to DrupalCon or have never entertained the notion, we will want to hear from you./p h3 Licensing Issues on pI've heard from lots of volunteers on recently that our a href= for enforcing GPL v2 licensing/a on have been problematic. In short, there are too many issues, those issues are reported inconsistently, and volunteers are not trained on our licensing issues and apply remediation to those issues inconsistently. It's a pretty typical story - great volunteers getting stuck in an escalating situation. /p pTo help mitigate these issues, I pulled together a call with folks who had been working on these issues for advice about how we can help fix the process. The advice of the group is to form a Licensing team (like the Security Team), that receives training from the Association's lawyers and works together to resolve licensing issues quickly and consistently. We would create a separate queue for licensing issues and get this off the plates of the webmasters queue volunteers (where most issues end up now). /p pThe board agreed that this woudl be the logical next step and a meeting has been scheduled for September 9th to begin work on a charter for the group.  We'll share more details as we have them./p h3 Quarterly Financials/h3 pFinally, in executive session we reviewed and approved the financials for the second quarter of 2014. Here they are:/p ulli a href= 2014 Financial Statements/a/li li a href= 2014 Financial Statements/a/li li a href= 2014 Financial Statements/a/li /ulpNext Meeting/p pThe next board meeting was scheduled for 17 September 2014. However, given the proximity to the 3 October board meeting at DrupalCon Amsterdam, the board decided to cancel that meeting. Remember though, you can always review the minutes and meeting materials in the a href= GDrive/a. /p pFlickr photo: a href= /div/div/div

Robert Douglass: Robert Douglass takes the ALS Ice Bucket Challenge in Köln

Mon, 08/25/2014 - 20:23
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encoded pa href= Wanschers called me out/a, and here it is, my a href= Ice Bucket Challenge/a./p pThank you to the Drupal Community for 10 years of prosperity: I hope you take this challenge too, and find it in your heart to a href= to or a charitable organizations of your choice./p pThis video is dedicated to Aaron Winborn. Aaron's family could also a href= your donations, as he is suffering from ALS/a. /p pFinally, I expect to see a href=http://buytaert.netDries Buytaert/a, a href= Lal/a, and a href= jam McGuire complete/a this challenge within 24 hours!/p piframe width=640 height=360 src=// frameborder=0 allowfullscreen=/iframe/p /div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tags/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal Planet/a/div/div/div

Promet Source: Johnnie Fox Has Legal Issues: A Tale of Software Development and Geekery

Mon, 08/25/2014 - 19:12
p dir=ltrQ: What do a group of lawyers and a group of Drupal tech geeks have in common?/p p dir=ltrMy first presentation at a conference with this new, fancy title of CTO was Imagine, an annual event for the International Legal Technology Association. I had come to the a href= Conference/a with the expectation that in many ways, I’d be the tech geek, sticking out like an astronaut at a rodeo. I mean, the law industry? That’s an industry known for being sleek. And here I am, a glasses-clad CTO from a a href= development /ashop... A leading nerd of nerds. Looking out into a sea of bright-eyed individuals who could easily be mistaken for Drupal camp attendees, I realized “I am in my element. It doesn’t matter in what industry I am presenting; it only matters that I am amongst my people: the tech world.”/p Featured Case Studies: Tech Coast Angels

Mon, 08/25/2014 - 18:54
div class=field field-name-field-mainimage field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src= width=588 height=306 alt=Tech Coast Angels home page //div/div/divdiv class=field field-name-field-link field-type-link-field field-label-abovediv class=field-labelCompleted Drupal site or project URL:nbsp;/divdiv class=field-itemsdiv class=field-item evena href= class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpTech Coast Angels is the largest angel investment organization in the United States. With over 300 members throughout Southern California, Tech Coast Angels' members have invested over $120 million in over 200 startup companies since their inception in 1997./p pSince 2013, Exaltation of Larks has been working with Tech Coast Angels with their online systems, including an extensive Drupal web application that their members use as a deal flow tracker and document management system. Services we’ve provided include support, maintenance, security improvements, performance optimization, and mobile integration./p pThe web application that Tech Coast Angels uses allows its members to view startup companies' applications for funding, discuss each company's application, and collaborate with one another in researching each company, which then helps them make individual decisions on funding./p /div/div/divdiv class=field field-name-field-module field-type-node-reference field-label-abovediv class=field-labelKey modules/theme/distribution used:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/project/servicesServices/a/divdiv class=field-item odda href=/project/php_filter_lockPHP Filter Lock/a/divdiv class=field-item evena href=/project/apcAPC - Alternative PHP Cache/a/divdiv class=field-item odda href=/project/phpassSecure Password Hashes/a/divdiv class=field-item evena href=/project/featuresFeatures/a/divdiv class=field-item odda href=/project/aclACL/a/div/div/divdiv class=field field-name-field-developed-org field-type-node-reference field-label-abovediv class=field-labelOrganizations involved:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/marketplace/exaltation-of-larksExaltation of Larks/a/div/div/divdiv class=field field-name-field-profiles field-type-user-reference field-label-abovediv class=field-labelTeam members:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/u/focal55focal55/a/div/div/div

Code Karate: Multiple Views Part 3

Mon, 08/25/2014 - 15:23
div class=field field-name-field-episode-number field-type-number-integer field-label-abovediv class=field-labelEpisode Number:nbsp;/divdiv class=field-itemsdiv class=field-item even164/div/div/divdiv class=field field-name-field-ddod-video field-type-file field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src= alt=Multiple Views Part 3 - Daily Dose of Drupal episode 164 //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpIn the last installment of multiple views you will learn how to change the look of the view using the two classes you set in the previous video. By using CSS, you will be able to display content in two ways depending on the choice of the viewer. This is a nice advantage to provide options for the visitor to your site./p /div/div/divdiv class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/category/tags/drupalDrupal/a/divdiv class=field-item odda href=/category/tags/drupal/contrib/viewsViews/a/divdiv class=field-item evena href=/category/tags/drupal/drupal-7Drupal 7/a/divdiv class=field-item odda href=/category/tags/drupal/theme-developmentTheme Development/a/divdiv class=field-item evena href=/category/tags/drupal-planetDrupal Planet/a/divdiv class=field-item odda href=/category/tags/uidesignUI/Design/a/divdiv class=field-item evena href=/category/tags/uidesign/cssCSS/a/div/div/div

Acquia: How I learned Drupal 8

Mon, 08/25/2014 - 15:13
div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-items div property=content:encoded class=field-item evenpIn this post, I will share my experience on trying to learn a href=/blog/drupal-8 target=_blankDrupal 8/a during its alpha stage, talk about some of the challenges of keeping up with the ongoing changes while trying to learn it, and end with some tips and resources which proved useful for me./p/div /div /div span property=dc:title content=How I learned Drupal 8 class=rdf-meta/span

Lullabot: Module Monday: Office Hours

Mon, 08/25/2014 - 15:00
pLets say you are building a site for an institution with multiple locations, each of which have varying hours depending on time of year or other variables. What is the best way to manage this data? This is a pretty common type of content modeling problem. The easiest thing to do is to just give each location a text field for their hours, but that limits display options and is prone to data entry errors. You could also build out a whole fancy content type with multi-instance date fields, but that could get bloated and difficult to maintain pretty quickly./p

Friendly Machine: Web Performance: A Guide to Building Fast Drupal Websites

Mon, 08/25/2014 - 00:50
pWhat follows is part one innbsp;a series of posts on web performance that I've wanted to write for quite some time. In this series of posts I'll not only be talking about optimizing web performance generally, but also providing specific guidance for speeding up Drupal sites./p pAlthough I'm not a web performance specialist or expert, I have taken a a href= interest/a in the topic in my work as a frontend developer building a href= websites/a. I love building fast sites andnbsp;have gained some experience over the years getting Drupal to shed some its inherent sluggishness.nbsp;/p pAs a way of systematically tackling what can be a complex subject, we'll use the results of a test from a href=, a Google-sponsored tool that provides very in-depth information about the performancenbsp;of a site in nice, easily digestible chunks./p !--break--/p h2How Fast Is Fast Enough?/h2 pBefore we get into the details of web performance we should first stop to asknbsp;how fast a site should be in order to qualify as fast. Here are some research results a href= ofnbsp;Radware/a that might help bring things into focus:/p blockquoteul li64% of smartphone users expect pages to load in less than 4 seconds./li liThe a href= poverty line/a (i.e. the plateau at which your website’s load time ceases to matter because you’ve hit close to rock bottom in terms of business metrics) for most sites is around 8 seconds./li /ul /blockquote pMore guidance comes courtesy of Ilya Grigorek of Google. In hisnbsp;a href= presentation/a at the Velocity conference, he cited research that indicates a strongtarget page rendernbsp;time should be 1000ms/strong - or onenbsp;second nbsp;- to avoid context switching among users./p pBasically, if it takes a page longer than onenbsp;second to render, you risk losing the attention of the user. If it takes longer than eightnbsp;seconds for a pagenbsp;to render, it's similar in terms of business metrics (conversions, sales, etc) as if it took 30 seconds or a minute./p pIf one second sounds impossibly ambitious, there is a href= research/a showing that stronga load time of threenbsp;seconds or less is probably OK/strong.nbsp;/p pThe bottom line: your pages should load in under three seconds on desktop, and under 4 seconds on a mobile./p pPretty harsh reality check, huh? Let's see what can be done to get our sites whipped into shape./p h2Test Results for this Analysis/h2 pIn order for us to have a practical example for our discussion, I ran the a href= Machine/anbsp;sitenbsp;through WebPageTest. Here arenbsp;the results (click to enlarge image):/p pa href=/sites/default/files/web-page-test-results_0.jpgimg alt= src=/sites/default/files/web-page-test-results_0.jpg //a/p pI recently completed a refresh of the design of this site with a lot of attention focused on keeping things fast. My target page load time was one second, so I was happy when the results consistently came in below that./p pLet's start our analysis by looking at the first number in the above table - under the heading Load Time. You'll see the value is 0.662 seconds. That's pretty darn good, but if you scan across the table you may see something on the far right that's a bit confusing - a Fully Loaded Time of 0.761 seconds./p h3So what's the difference between Load Time and Fully Loaded Time?/h3 pLoad Time is calculated from the time when the user started navigating to the page until the Document Complete event is fired. The Document Complete event is fired by the browser once the page has completed loading./p pThe Fully Loaded time, on the other hand, also includes any metrics up until there is no network activity for two seconds. Most of the time this means watching for things being loaded by JavaScript in the background./p h2First Byte Time = Backend Performance/h2 pWhenever talk turns to web performance, it seems a lot of folks immediately start thinking of what's happening on the server. Although it's a very important piece of the puzzle, as we walk through this analysis, you'll see that most web performance issues actually reside on the frontend./p pBefore we get ahead of ourselves, though, let's return to the results from our test and look at the next metric in our table, strongFirst Byte Time/strong (highlighted in blue below) which tells us about performancenbsp;on the server./p pa href=/sites/default/files/web-page-test-results-first-byte.jpgimg alt=First Byte Time src=/sites/default/files/web-page-test-results-first-byte.jpg //a/p pThis First Byte Time represents thenbsp;time from when a user began navigating to the page until the first bit of the server response arrived at the browser. The target time for this onnbsp;WebPageTest is stronga meagernbsp;87 ms/strong!/p pThis metric is also represented as the first in the series of letter grades you see at the top of the test results. You'll noticenbsp;Friendly Machine got an A and I really wish I could take credit for it, but the truth is my host Pantheon -nbsp;and the awesome backend performance they provide -nbsp;are responsible for this metric scoring well./p h2Backend Drupal Performance/h2 pLet's pause here and talk specifically about backend Drupal performance. How would we address this metric if it hadn't scored well?nbsp;This topic can get pretty deep, so we'll only review the most popular options, but they'll still be able to do wonders for improving this key metric if your site is not performing well./p pLet's start by discussingnbsp;server resources (with a brief, tangential mini-rant about shared hosting)./p pIf you want a fast Drupal website, you really shouldn't be on a shared host, period. Although many of them will claim to be Drupal specialists, very few of them actually are. One giveaway is the number for PHP memory limit./p pAlthough this number emdoesn't directly impact performance/em, it can break your site if it's too low and is also useful for smoking out hosts that don't know Drupal.nbsp;You can find this number at emadmin/reports/status/em and it will look something like the image below./p pimg alt=PHP memory limit src=/sites/default/files/php-memory-limit.jpg //p pYou can see on my site this number is at 256 megabytes and this is most likely where you want it, although if you have a simple site without Views or Panels, then 128M might work. If it's set at 64M, then it's too low and this is often what you'll find with shared hosting arrangements.nbsp;/p pAnother issue with shared hosting - and one that emdoes/em impact performance - is that your website is on a server with perhaps hundreds of other sites. If one of those sites gets hit with a large spike in traffic or some other issue, it can affect all the sites on that server as it gobbles up the available resources./p pPerhaps the biggest issue with shared hosting, however, is that advanced caching using tools like a href=;and a href= are rarely, if ever, available.nbsp;And when it comes to Drupal backend performance, caching isnbsp;critical. The best you'll probably be able to do with regard to caching on shared hostingnbsp;is using the a href= module/a, which we'll talk about in the next section./p pTo ensure that server resources aren't an issue for your website, consider either a managed VPS or a Drupal host like Pantheon, both of which start at around $25 per month. Pantheon is what I recommend for small to medium sized sites because your site will scale better with them and they offer tremendous value, although they are a great fit for enterprise clients as well. If you have a bigger budget, Acquia or BlackMesh might fit the bill./p pSure, these options cost more than the $7 per month the cheap hosts offer, but they will provide a professional level of service that will more than pay for itself over time./p h3Caching for Drupal Websites/h3 pWe said caching was critical, so here are five of the most important caching solutions for a Drupal website:/p ol liDrupal's built-innbsp;caching/li liBoost module/li liMemcached/li liVarnish/li liViews caching/li /ol pThere are other options, of course, but these five cover mostnbsp;of the ground. Let's briefly go through themnbsp;one at a time./p h3Drupal's Built-in Caching/h3 pMost of a Drupal site is stored in the database - nodes, information about blocks, etc. - and enabling the default caching will store the results of these database queries so that they aren't executed every time a page is requested. Enabling thesenbsp;settings alone can have a big impact on performance, particularly ifnbsp;your pages use a lot of views. This one is kind of a no-brainer./p h3Boost Module/h3 pThe Boost module is pretty great. It works very well in tandem with Drupal caching, but it requires some a href= configuration/a. What you end up with after you have the module installed and configured is a caching system that stores the output of your Drupal site as static HTML pages. This takesnbsp;PHP processing out of the equation,nbsp;leading to another nice bump in performance./p h3Memcached/h3 pMemcached can speed up dynamic applications (like Drupal) by storing objects in memory. With Boost and Drupal caching, the data being cached is stored on the server's hard drive. With memcached, it's being stored in memory, something that greatly speedsnbsp;up the response time for a request. Memcached works great in conjunction with both Boost and Drupal caching./p h3Varnish/h3 pa href= is an HTTP accelerator that, similar to memcached, stores data in memory. It's capable of serving pages much faster than Apache (the most common web server for Drupal sites). It can also be used in conjunction with memcached, although it's often the case that they are not used together and other advanced caching methods are instead implemented alongside Varnish./p h3Views Caching/h3 pAnother type of database caching is Views caching. Views is a very popular, but rather resource intensive, Drupal module. Implementing Views caching can give your site a nice additional performance boost by possibly removing a few database queries from the build process./p pTo set views caching, go to your view. On the right hand side, under emAdvanced gt; Other/em, you'll see a link for Caching. Just go in and set a value - an hour is usually a good default - for each view on your site./p h2Wrapping Up Part One/h2 pWow, long post and all we've really covered so far is backend performance and caching! This discussion hasn'tnbsp;beennbsp;comprehensive by any means, but it does provide a great start./p pNext time we'll start digging into frontend performance, thenbsp;area where most of our performance issues reside. What should be obvious so farnbsp;is that web performance is a subject that is both deep and wide, but also critically important to building successful websites./p pIf you have any comments about this post, you may politely leave them below./p a href=/tags/drupalDrupal/a a href=/tags/web-performanceWeb Performance/a

LookAlive: Saving a serialized data Array as a property on a custom Entity (D7)

Sun, 08/24/2014 - 21:42
pDoing some initial prototyping work on the Comstack module I hit this question without a clear answer. For clarity here's a chunk of the schema structure for a Message Type (exportable entity)./p div class=codeblockcode/**br / * Implements hook_schema().br / */br /function comstack_schema() {br /nbsp; $schema = array();/p pnbsp; $schema[#039;comstack_message_type#039;] = array(br /nbsp;nbsp;nbsp; #039;description#039; =gt; #039;Stores information about all defined {comstack_message} types.#039;,br /nbsp;nbsp;nbsp; #039;fields#039; =gt; array(br /nbsp;nbsp;nbsp;nbsp;nbsp; #039;id#039; =gt; array(br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; #039;type#039; =gt; #039;serial#039;,br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; #039;not null#039; =gt; TRUE,br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; #039;description#039; =gt; #039;Primary Key: Unique {comstack_message} type ID.#039;,br /nbsp;nbsp;nbsp;nbsp;nbsp; ),br /nbsp;nbsp;nbsp; /nbsp;nbsp;nbsp; #039;delivery_methods#039; =gt; array(br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; #039;type#039; =gt; #039;text#039;,br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; #039;not null#039; =gt; FALSE,br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; #039;size#039; =gt; #039;big#039;,br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; #039;serialize#039; =gt; TRUE,br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; #039;description#039; =gt; #039;A serialized array of allowed send methods for this type.#039;,br /nbsp;nbsp;nbsp;nbsp;nbsp; ),/code/div pFollowing the instructions on how to create an exportable Entity as over here on d.o a href= title= and here a href= title= pThe second link has the following code which is the submit process where the form values are wrapped up and a new entity put together for you before saving./p div class=codeblockcode/**br / * Form API submit callback for the type / */br /function profile2_type_form_submit(amp;$form, amp;$form_state) {br /nbsp; $profile_type = entity_ui_form_submit_build_entity($form, $form_state);br /nbsp; .../code/div pSo how do we construct a form which will allow for arbitrary array structures? Like this (in your form function)!/p div class=codeblockcodenbsp; $form[#039;delivery_methods#039;] = array(br /nbsp;nbsp;nbsp; #039;#title#039; =gt; t(#039;Delivery methods to allow#039;),br /nbsp;nbsp;nbsp; #039;#type#039; =gt; #039;checkboxes#039;,br /nbsp;nbsp;nbsp; #039;#required#039; =gt; TRUE,br /nbsp;nbsp;nbsp; #039;#options#039; =gt; $delivery_methods,br /nbsp;nbsp;nbsp; #039;#default_value#039; =gt; isset($comstack_message_type-gt;delivery_methods) ? $comstack_message_type-gt;delivery_methods : array(),br /nbsp;nbsp;nbsp; #039;#tree#039; =gt; TRUE,br /nbsp; );/code/div pIt's the code#tree/code bit there that does it. Here's an explanation from the Form API documentation page which is marked as archived but still useful a href= title= pWhen we set fieldset value to TRUE we create the form:/p div class=codeblockcodelt;?phpbr /$form[#039;colors#039;] = array(br /#039;#type#039; =gt; #039;fieldset#039;,br /#039;#title#039; =gt; t(#039;Choose a color#039;),br /#039;#collapsible#039; =gt; FALSE,br /#039;#tree#039; =gt; TRUE,br /);br /$form[#039;colors#039;][#039;green#039;] = array(br /#039;#type#039; =gt; #039;checkbox#039;,br /#039;#title#039; =gt; t(#039;Green#039;),br /#039;#default_value#039; =gt; $node-gt;green,br /#039;#required#039; =gt; FALSE,br /);/code/div pand this is how they are inserted or updated in a db_query:/p div class=codeblockcodelt;?phpbr /function example_insert($node){br /nbsp; db_query(quot;INSERT INTO {example} (nid, question, green, blue) VALUES (%d,#039;%s#039;, %d, %d)quot;, $node-gt;nid, $node-gt;title, $node-gt;colors[#039;green#039;], $node-gt;colors[#039;blue#039;]);br /}/code/div pAny questions? Leave them in the comments :]/p

Doug Vann: 10 Useful Ways for Drupal Event Attendees To Be Engaged

Sat, 08/23/2014 - 20:09
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenp class=p1I am sitting here at DrupalCamp Asheville2014. I took a break and hung out in the BoF room and decided to compose this list of ideas on how Drupal Event attendees can engage the event./pp class=p1I#39;d love to hear your comments below!/pol style=margin-left:10px;li class=li1Know The Sessionul class=admin-listli class=li1What is this session about? Is it a show-n-tell of a module? Is it a case study of a website? If you are consciously aware of what to expect, then you are prepared to take what you hear and frame it within the context of the session topic. This is important for the attendee because not every element of the presentation will relate directly to the session topic. If the speaker needs to lay down some groundwork for a few minutes, it is important for you to remember what the overall topic is so that you donrsquo;t get lost in the weeds./li/ul/lili class=li1Know The Session Speakerul class=admin-listli class=li1Check out their Profile or their profile on the Event website. Get a sense of their background and perspective. This is also helpful if you ask questions at their session. You can ask questions that you know relate to elements of their background./li/ul/lili class=li1Ask Questions At The Sessionsul class=admin-listli class=li1The number of questions at any given session will vary. But when there are none it can be a tad awkward. Then after the session, you might still see ppl walk up and ask questions./lili class=li1I encourage you to fill in that silence with some immediate questions that come to mind. The speakers really really appreciate the questions./li/ul/lili class=li1Engage Social Mediaul class=admin-listli class=li1Tweet about the event. Maybe tweet about each session you attend and provide a link to the session description and invoke the speakerrsquo;s twitter name as well.nbsp;/lili class=li1Take pictures and post them wherever you post your pics./lili class=li1Use the Hashtag if the event has one./lili class=li1Do you blog? Blog about the event and what you liked./lili class=li1The event organizers and spekers REALLY appreciate the media exposure./lili class=li1Donrsquo;t forget that many Drupal events publish their videos online so you can catch the ones you missed or revisit the one you liked./li/ul/lili class=li1Hang Outul class=admin-listli class=li1Donrsquo;t feel like you have to attend a session in every timeslot. Feel free to hang out near the coffee tables or registration tables or in Birds of a Feather rooms. Wherever you see people hanging out, join them!/li/ul/lili class=li1Join A Stranger For Lunchul class=admin-listli class=li1In general, the Drupal Community is a VERY social bunch. When itrsquo;s time to sit down and eat, it is also a good time to make some new friends. To the extent that you are comfortable with it, you can learn a lot by asking ppl how the event is going and what they do with Drupal./li/ul/lili class=li1Get Swagul class=admin-listli class=li1Walk around the sponsorrsquo;s booths and look for swag. These sponsors often DO NOT want to take that stuff back to the office. Sometimes you find some pretty useful things like shirts, pens, thumb drives, fold-up cloth flying disks, hackysacks, yo-yos, puzzles, keychains, etc./li/ul/lili class=li1Talk To The Sponsorsul class=admin-listli class=li1Irsquo;ve never seen a sponsor bite or hard-sell a passerby at their booth! :-)/lili class=li1You may be amazed at what you will learn by reading the signs, looking at any literature on their table, and actually talking to the representative.nbsp;/li/ul/lili class=li1Fill Out Any Feedback Formsul class=admin-listli class=li1Not ever event has feedback forms, but more and more are using them./lili class=li1Forms may be available per-class, and for the event in general./lili class=li1The organizers REALLY appreciate ALL comments./lili class=li1As you might expect, the negative ones get more attention, so donrsquo;t hold back about the audio/video comments, or the need for more beginner topics, or how difficult it was to get to the venue from the airport, etc./lili class=li1They really want to hear this!/li/ul/lili class=li1THANK The Organizers!ul class=admin-listli class=li1If you know their faces, be sure to thank them personally for their hard work organizing the speakers, the facilities, the meals, the WiFi, etc./lili class=li1Be sure to tweet and post about it as well when you leave./li/ul/li/ol/div/div/divdiv class=field field-name-field-blogtype field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/category/blog-type/drupal-planetDrupal Planet/a/div/div/divdiv id=disqus_threadnoscriptpa href= the discussion thread./a/p/noscript/div

Daniel Pocock: Want to be selected for Google Summer of Code 2015?

Sat, 08/23/2014 - 13:37
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpI've mentored a number of students in 2013 and 2014 for a href=http://www.debian.orgDebian/a and a href=http://ganglia.infoGanglia/a and most of the companies I've worked with have run internships and graduate programs from time to time. GSoC 2014 has just finished and with all the excitement, many students are already asking what they can do to prepare and become selected in 2015./p pMy own observation is that the more time the organization has to get to know the student, the more confident they can be selecting that student. Furthermore, the more time that the student has spent getting to know the free software community, the more easily they can complete GSoC./p pHere I present a list of things that students can do to maximize their chance of selection and career opportunities at the same time. These tips are useful for people applying for GSoC itself and related programs such as GNOME's a href= Program for Women/a or graduate placements in companies./p h3Disclaimers/h3 pemThere is no guarantee that Google will run the program again in 2015 or any future year./em/p pemThere is no guarantee that any organization or mentor (including myself) will be involved until the official list of organizations is published by Google./em/p pimg src= width=200 align=left //ppemDo not follow the advice of web sites that invite you to send pizza or anything else of value to prospective mentors./em/p pemFollowing the steps in this page doesn't guarantee selection./em That said, people who do follow these steps are much more likely to be considered and interviewed than somebody who hasn't done any of the things in this list./p h3Understand what emfree software/em really is/h3 pYou may hear terms like emfree software/em and emopen source software/em used interchangeably./p pThey don't mean exactly the same thing and many people use the term emfree software/em for the wrong things. Not all open source projects meet the definition of free software. Those that don't, usually as a result of deficiencies in their licenses, are fundamentally incompatible with the majority of software that does use approved licenses./p pGoogle Summer of Code is about both writing and publishing your code and it is also about community. It is fundamental that you know the basics of licensing and how to choose a emfree/em license that empowers the community to collaborate on your code./p pPlease read up on this topic early on and come back and review this from time to time. The a href= GNU Project / Free Software Foundation have excellent resources/a to help you understand what a free software license is and how it works to maximize community collaboration./p h3Don't look for shortcuts/h3 pThere is no shortcut to GSoC selection and there is no shortcut to GSoC completion./p pThe student stipend (USD $5,500 in 2014) is not paid to students unless they complete a minimum amount of valid code. This means that even if a student did find some shortcut to selection, it is unlikely they would be paid without completing meaningful work./p pIf you are the right candidate for GSoC, you will not need a shortcut anyway. Are you the sort of person who can't leave a coding problem until you really feel it is fixed, even if you keep going all night? Have you ever woken up in the night with a dream about writing code still in your head? Do you become irritated by tedious or repetitive tasks and often think of ways to write code to eliminate such tasks? Does your family get cross with you because you take your laptop to Christmas dinner or some other significant occasion and start coding? If some of these statements summarize the way you think or feel you are probably a natural fit for GSoC./p h3An opportunity money can't buy/h3 pThe GSoC stipend will not make you rich. It is intended to make sure you have enough money to survive through the summer and focus on your project. Professional developers make this much money in a week in leading business centers like New York, London and Singapore. When you get to that stage in 3-5 years, you will not even remember exactly how much you made during internships./p pGSoC gives you an edge over other internships because it involves empublicly promoting your work/em. Many companies still try to hide the potential of their best recruits for fear they will be poached or that they will be able to demand higher salaries. Everything you complete in GSoC is intended to be published and you get full credit for it. Imagine an amateur musician getting the opportunity to perform on the main stage at a rock festival. This is how the free software community works./p pimg src= //p pHaving a portfolio of free software that you have created or collaborated on and a wide network of professional contacts that you develop before, during and after GSoC will continue to pay you back for years. While other graduates are being screened through group interviews and testing days run by employers, people with a track record in a free software project often find they go straight to the final interview round./p h3Register your domain name and make a permanent email address/h3 pFree software is all about community and collaboration. Register your own domain name as this will become a focal point for your work and for people to get to know you as you become part of the community./p pThis is sound advice for anybody working in IT, not just programmers. It gives the impression that you are confident and have a long term interest in a technology career./p pemChoosing the provider:/em as a minimum, you want a provider that offers DNS management, static web site hosting, email forwarding and XMPP services all linked to your domain. You do not need to choose the provider that is linked to your internet connection at home and that is often not the best choice anyway. The XMPP foundation maintains a a href= of providers known to support XMPP/a./p pCreate an email address within your domain name. The most basic domain hosting providers will let you forward the email address to a webmail or university email account of your choice. Configure your webmail to send replies using your personalized email address in the emFrom/em header./p pUpdate your em~/.gitconfig/em file to use your personalized email address in your a href=http://git-scm.orgGit/a commits./p h3Create a web site and blog/h3 pStart writing a blog. Host it using your domain name./p pSome people blog every day, other people just blog once every two or three months./p pCreate links from your web site to your other profiles, such as a Github profile page. This helps re-inforce the pages/profiles that are genuinely related to you and avoid confusion with the pages of other developers./p pMany mentors are keen to see their students writing a weekly report on a blog during GSoC so starting a blog now gives you a head start. Mentors look at blogs during the selection process to try and gain insight into which topics a student is most suitable for./p h3Create a profile on Github/h3 pa href=https://github.comGithub/a is one of the most widely used software development web sites. Github makes it quick and easy for you to publish your work and collaborate on the work of other people. Create an account today and get in the habbit of emforking/em other projects, improving them, committing your changes and empushing/em the work back into your Github account./p pGithub will quickly build a profile of your commits and this allows mentors to see and understand your interests and your strengths./p pIn your Github profile, add a link to your web site/blog and make sure the email address you are using for Git commits (in the em~/.gitconfig/em file) is based on your personal domain./p h3Start using PGP/h3 pa href= Good Privacy (PGP)/a is the industry standard in protecting your identity online. All serious free software projects use PGP to sign tags in Git, to sign official emails and to sign official release files./p pThe most common way to start using PGP is with the a href= (GNU Privacy Guard) utility/a. It is installed by the package manager on most Linux systems./p pWhen you a href= your own PGP key/a, use the email address involving your domain name. This is the most permanent and stable solution./p pPrint your key fingerprint using the emgpg-key2ps/em command, it is in the emsigning-party/em package on most Linux systems. Keep copies of the fingerprint slips with you./p pimg src= //p pemThis is what my own PGP fingerprint slip looks like. You can also print the key fingerprint on a business card for a more professional look./em/p pUsing PGP, it is recommend that you emsign/em any important messages you send but you do not have to encrypt the messages you send, especially if some of the people you send messages to (like family and friends) do not yet have the PGP software to decrypt them./p pIf using the a href= (a href= email client from a href=http://www.mozilla.orgMozilla/a, you can easily send signed messages and validate the messages you receive using the a href=https://www.enigmail.netEnigmail/a plugin./p h3Get your PGP key signed/h3 pOnce you have a PGP key, you will need to find other developers to sign it. For people I mentor personally in GSoC, I'm keen to see that you a href= and find another Debian Developer in your area/a to sign your key as early as possible./p h3Free software events/h3 pTry and find all the free software events in your area in the months between now and the end of the next Google Summer of Code season. Aim to attend at least two of them before GSoC./p pLook closely at the schedules and find out about the individual speakers, the companies and the free software projects that are participating. For events that span more than one day, find out about the dinners, pub nights and other social parts of the event./p pTry and identify people who will attend the event who have been GSoC mentors or who intend to be. Contact them before the event, if you are keen to work on something in their domain they may be able to make time to discuss it with you in person./p pTake your PGP fingerprint slips. Even if you don't participate in a formal key-signing party at the event, you will still find some developers to sign your PGP key individually. emYou must take a photo ID document/em (such as your passport) for the other developer to check the name on your fingerprint but you do not give them a copy of the ID document./p pEvents come in all shapes and sizes. a href=http://www.fosdem.orgFOSDEM/a is an example of one of the bigger events in Europe, a href= is a similarly large event in Australia. There are many, many more local events such as the a href= France emmini-DebConf/em in Lyon, 2015/a. Many events are either free or free for students but please check carefully if there is a requirement to register before attending./p pOn your blog, discuss which events you are attending and which sessions interest you. Write a blog during or after the event too, including photos./p pimg src= //p pema href=http://www.quantcast.comQuantcast/a generously hosted the Ganglia community meeting in San Francisco, October 2013. We had a wild time in their offices with mini-scooters, burgers, beers and the Ganglia book. That's me on the pink mini-scooter and Bernard Li, one of the other Ganglia GSoC 2014 admins is on the right./em/p h3Install Linux/h3 pGSoC is fundamentally about emfree software/em. Linux is to free software what a tree is to the forest. emUsing Linux every day on your personal computer dramatically increases your ability to interact with the free software community and increases the number of potential GSoC projects that you can participate in./em/p pThis is not to say that people using Mac OS or Windows are unwelcome. I have worked with some great developers who were not Linux users. Linux gives you an edge though and the best time to gain that edge is now, while you are a student and well before you apply for GSoC./p pIf you must run Windows for some applications used in your course, it will run just fine in a virtual machine using a href= Box/a, a free software solution for desktop virtualization. Use Linux as the primary operating system./p pHere are links to download ISO DVD (and CD) images for some of the main Linux distributions:/p ullia href= lia href= lia href= /ulpIf you are nervous about getting started with Linux, install it on a spare PC or in a virtual machine before you install it on your main PC or laptop. Linux is much less demanding on the hardware than Windows so you can easily run it on a machine that is 5-10 years old. Having just 4GB of RAM and 20GB of hard disk is usually more than enough for a basic graphical desktop environment although having better hardware makes it faster./p pYour experiences installing and running Linux, especially if it requires some special effort to make it work with some of your hardware, make interesting topics for your blog./p h3Decide which technologies you know best/h3 pPersonally, I have mentored students working with C, C++, Java, Python and JavaScript/HTML5./p pIn a GSoC program, you will typically do most of your work in just one of these languages./p pFrom the outset, decide which language you will focus on and do everything you can to improve your competence with that language. For example, if you have already used Java in most of your course, plan on using Java in GSoC and make sure you read a href= Java (2nd Edition)/a by Joshua Bloch./p h3Decide which themes appeal to you/h3 pFind a topic that has long-term appeal for you. Maybe the topic relates to your course or maybe you already know what type of company you would like to work in./p pHere is a list of some topics and some of the relevant software projects:/p ulliSystem administration, servers and networking: consider projects involving monitoring, automation, packaging. a href=http://ganglia.infoGanglia/a is a great community to get involved with and you will encounter the Ganglia software in many large companies and academic/research networks. Contributing to a Linux distribution like Debian or Fedora packaging is another great way to get into system administration./li liDesktop and user interface: consider projects involving window managers and desktop tools or adding to the user interface of just about any other software./li liBig data and data science: this can apply to just about any other theme. For example, data science techniques are frequently used now to improve system administration./li liBusiness and accounting: consider accounting, CRM and ERP software./li liFinance and trading: consider projects like R, market data software like a href=http://www.openmama.orgOpenMAMA/a and connectivity software (Apache Camel)/li liReal-time communication (RTC), VoIP, webcam and chat: look at the a href=http://jscommunicator.orgJSCommunicator/a or the a href=http://jitsi.orgJitsi project/a/li liWeb (JavaScript, HTML5): look at the a href=http://jscommunicator.orgJSCommunicator/a/li /ulpBefore the GSoC application process begins, you should aim to learn as much as possible about the theme you prefer and also gain practical experience using the software relating to that theme. For example, if you are attracted to the business and accounting theme, install the a href= suite and get to know it. Maybe you know somebody who runs a small business: help them to upgrade to PostBooks and use it to prepare some reports./p h3Make something/h3 pMake some small project, less than two week's work, to demonstrate your skills. It is important to make something that somebody will use for a practical purpose, this will help you gain experience communicating with other users through Github./p pFor an example, see the a href= Juliana Louback created for fixing phone numbers/a in December 2013. It has since been used as part of the a href= web site/a and Juliana was a href= for a GSoC 2014 project with Debian/a./p pemThere is no better way to demonstrate to a prospective mentor that you are ready for GSoC than by completing and publishing some small project like this yourself./em If you don't have any immediate project ideas, many developers will also be able to give you tips on small projects like this that you can attempt, just come and ask us on one of the mailing lists./p pIdeally, the project will be something that you would use anyway even if you do not end up participating in GSoC. Such projects are the most motivating and rewarding and usually end up becoming an example of your best work. To continue the example of somebody with a preference for business and accounting software, a small project you might create is a a href= or extension for PostBooks/a./p h3Getting to know prospective mentors/h3 pMany web sites provide useful information about the developers who contribute to free software projects. Some of these developers may be willing to be a GSoC mentor./p pFor example, look through some of the following:/p ulliPlanet / Blog aggregation sites: these sites all have links to the blogs of many developers. They are useful sources of information about events and also finding out who works on what. ullia href= lia href= lia href= lia href= lia href= /ul/li liDeveloper profile pages. Many projects publish a page about each developer and the packages, modules or other components he/she is responsible for. Look through these lists for areas of mutual interest. ullia href= package list in Debian/a/li lia href= package list in Fedora/a/li /ul/li liDeveloper github profiles. Github makes it easy to see what projects a developer has contributed to. To see many of my own projects, browse through the history at a href= own Github profile/a/li /ulh3Getting on the mentor's shortlist/h3 pOnce you have identified projects that are interesting to you and developers who work on those projects, it is important to get yourself on the developer's shortlist./p pBasically, the shortlist is a list of all students who the developer believes can complete the project. If I feel that a student is unlikely to complete a project or if I don't have enough information to judge a student's probability of success, that student will not be on my shortlist./p pIf I don't have any student on my shortlist, then a project will not go ahead at all. If there are multiple students on the shortlist, then I will be looking more closely at each of them to try and work out who is the best match./p pOne way to get a developer's attention is to look at bug reports they have created. Github makes it easy to see complaints or bug reports they have made about their own projects or other projects they depend on. Another way to do this is to search through their code for strings like emFIXME/em and emTODO/em. Projects with standalone bug trackers like a href=http://bugs.debian.orgthe Debian bug tracker/a also provide an easy way to a href= for bug reports that a specific person has created or commented on/a./p pOnce you find some relevant bug reports, email the developer. Ask if anybody else is working on those issues. Try and start with an issue that is particularly easy and where the solution is interesting for you. This will help you learn to compile and test the program before you try to fix any more complicated bugs. It may even be something you can work on as part of your academic program./p h3Find successful projects from the previous year/h3 pContact organizations and ask them which GSoC projects were most successful. In many organizations, you can find the past students' project plans and their final reports published on the web. Read through the plans submitted by the students who were chosen. Then read through the final reports by the same students and see how they compare to the original plans./p h3Start building your project proposal now/h3 pDon't wait for the application period to begin. Start writing a project proposal now./p pWhen writing a proposal, it is important to include several things:/p ulliThink big: what is the goal at the end of the project? Does your work help the greater good in some way, such as increasing the market share of Linux on the desktop?/li liDetails: what are specific challenges? What tools will you use?/li liTime management: what will you do each week? Are there weeks where you will not work on GSoC due to vacation or other events? These things are permitted but they must be in your plan if you know them in advance. If an accident or death in the family cut a week out of your GSoC project, which work would you skip and would your project still be useful without that? Having two weeks of flexible time in your plan makes it more resilient against interruptions./li liCommunication: are you on mailing lists, IRC and XMPP chat? Will you make a weekly report on your blog?/li liUsers: who will benefit from your work?/li liTesting: who will test and validate your work throughout the project? Ideally, this should involve more than just the mentor./li /ulpIf your project plan is good enough, could you put it on Kickstarter or another crowdfunding site? This is a good test of whether or not a project is going to be supported by a GSoC mentor./p h3Learn about packaging and distributing software/h3 pPackaging is a vital part of the free software lifecycle. It is very easy to upload a project to Github but it takes more effort to have it become an official package in systems like Debian, Fedora and Ubuntu./p pPackaging and the communities around Linux distributions help you reach out to users of your software and get valuable feedback and new contributors. This boosts the impact of your work./p pTo start with, you may want to help the maintainer of an existing package. a href= packaging teams/a are existing communities that work in a team and welcome new contributors. The a href= Mentors/a initiative is another great starting place. In the Fedora world, the place to start may be in a href= of the Special Interest Groups (SIGs)/a./p h3Think from the mentor's perspective/h3 pAfter the application deadline, mentors have just 2 or 3 weeks to choose the students. This is actually not a lot of time to be certain if a particular student is capable of completing a project. If the student has a published history of free software activity, the mentor feels a lot more confident about choosing the student./p pSome mentors have more than one good student while other mentors receive no applications from capable students. In this situation, it is very common for mentors to send each other details of students who may be suitable. Once again, if a student has a good Github profile and a blog, it is much easier for mentors to try and match that student with another project./p pimg src= //p h3Conclusion/h3 pGetting into the world of software engineering is much like joining any other profession or even joining a new hobby or sporting activity. If you run, you probably have various types of shoe and a running watch and you may even spend a couple of nights at the track each week. If you enjoy playing a musical instrument, you probably have a collection of sheet music, accessories for your instrument and you may even aspire to build a recording studio in your garage (or you probably know somebody else who already did that)./p pThe things listed on this page will not just help you walk the walk and talk the talk of a software developer, they will put you on a track to being one of the leaders. If you look over the profiles of other software developers on the Internet, you will find they are doing most of the things on this page already. Even if you are not selected for GSoC at all or decide not to apply, working through the steps on this page will help you clarify your own ideas about your career and help you make new friends in the software engineering community./p /div/div/div

Drupal @ Penn State: ELMSLN performance tuning

Fri, 08/22/2014 - 23:02
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpThese are some metrics based on the extensive performance tuning that I've had to do as part of the a href=http://elmsln.orgELMS Learning Network/a project.  Trying to do a ton of systems on limited resources can be challenging but fortunately there are tons of experts in and outside the drupal community to help make this hapen./p/div/div/div

Mediacurrent: My first Design 4 Drupal conference

Fri, 08/22/2014 - 22:16
img typeof=foaf:Image src= width=200 height=152 / pEver since the Drupal community started holding national regional conferences, dubbed DrupalCons and DrupalCamps, there has been a perception that design, usability and “theming” (i.e., managing HTML, CSS and JS output) were afterthoughts. And, to be honest, that has been true for many camps and conferences – while developers were geeking out on advanced Views API usage and performance tuning, those looking for a design focus were often left with introductory theming sessions./p