Blogs

I was hired as a Project Manager to ensure that projects are managed according to timeline and budget and that the story always ends with a happy end, a delighted customer.
- how to establish a prioritized backlog for a Drupal project
- how to organize sprints for Drupal projects, i.e. unite site builders, themers and back-end developers.
- how to integrate the client as early as possible in the project, e.g. for content creation, feedback etc.
On Saturday the Voice of Switzerland reached its climax. During the live shows our head technology Michael Schmid was present to ensure that the Drupal powered website ran smoothly.
Here are some exclusive behind the scenes shots he made.





Despite SXSW having yielded a torrent of interesting items this week - we opted to take off the Austin biased blinkers for this issue. Enjoy!
Design
New York Times: Introducing A New Article Design
The New York Times granted the general public a glimpse of its redesign this week. Admittedly it looks gorgeous but let's see if it manages to be as game-changing as the Boston Globe's introduction of Responsive Design in 2011.
SEO
Charles Lewis - Page Rank
If reading isn't your preferred method of gaining knowledge - give this a go. Charles Lewis aka SEO Rapper will teach you the essentials of Google's PageRank in the next two and a half minutes.
Technology
Techcrunch: Google Closes The Book On Google Reader On July 1, Seven Other Products Also Get The Chop
This week Google announced the closure of its popular RSS reader service. Anyone else feel reminded of Yahoo's supposed shut down of Delicious? Regardless it might be time to move to a new service or just take control of your feeds with this Drupal workaround.
NBC PhotoBlog: Witnessing papal history changes with digital age
Ever wondered how the world of technology infiltrated everyday life in the last eight years? Just compare these two pictures of 2005 and last Wednesday of the Catholic faithful at St. Peter's Basilica and it becomes obvious.
Tweets that cut through the noise
Less than 24 hours after Acquia's cold calling gaffe, CMO Tom Wentworth already was able to see the lighter side...
@dries I can create a crisis if you’d like?
— Tom Wentworth (@twentworth12) March 14, 2013
If you’re adding JavaScript to your custom module it is very easy and tempting to simply add it like this:
jQuery(document).ready(function($){
alert(‘hot dog flavored water’);
});
Now this code works perfectly fine but what if your JavaScript needs to be executed on page load and after an AJAX request? Imagine you have a view that uses “Views Infinite Scroll” and you want add a CSS class to every result like this:
jQuery(document).ready(function($){
$('.view-display-id-page .views-row').addClass('fancy-pants');
});
This will work for the results that are displayed initially but for all the results that are loaded by Infinite Scroll's AJAX call the class is not added. That’s where Drupal behaviors come in handy. The behaviors will be executed on every request including AJAX requests, so let's do the equivalent of the code above but this time using this method:
Drupal.behaviors.infiniteScrollAddClass = {
attach: function (context, settings) {
$('.view-display-id-page .views-row').addClass('fancy-pants');
}
};
I admit that was quick - so here are some explanations:
- infiniteScrollAddClass: This is your namespace and should be unique. For example, this is typically the name of your module, but it isn't mandatory.
- context: This is actually really really cool, on page load the context will contain the entire document and after an AJAX request will have all the newly loaded elements. This way you can treat content that is loaded in via AJAX differently than others.
- settings: This contains information passed on to JavaScript via PHP, it is similar to accessing it via Drupal.settings. For further comprehension I recommend this source.
There obviously are cases where some functionality should not be executed on every request. In such a case its great to use jQuery's .once() method. So let's say we want to give all the initially loaded results in our view an additional class, for something like this we would proceed like so:
Drupal.behaviors.infiniteScrollAddClass = {
attach: function (context, settings) {
// these are the elements loaded in first
$('.view-display-id-page').once(function(){
$(this).find('.views-row').addClass('i-was-here-first');
});
// everybody
$('.view-display-id-page .views-row').addClass('fancy-pants');
}
};
This will add the class “i-was-here-first” to all the view results present on page load, everybody else joining in via AJAX will just get the “fancy-pants” class.
So that’s a quick look at Drupal behaviors, if you haven’t used it do use it!
If you are looking for additional theoretical insight into this topic I can recommend these two sources for further reading:
- The Drupal JavaScript API (for Drupal 6 but explains it very well and mostly also applies to Drupal 7)
- Managing JavaScript in Drupal 7
Dear reader, this week's edition takes a look at a creative recruiting initiative, Facebook's latest announcement and why the Swiss word of the year "shitstorm" probably doesn't represent the public opinion once it occurs. Enjoy!
Jobs
Forbes: Pizza Hut To Hold 140-Second Interviews For Social Media Manager Position At SXSW
The well known Pizza franchise is trying to recruit a new "Manager of Digital Greatness" in an unique fashion. If you are looking for something more Drupal related - we've got a vacancy too.
Drupal
DrupalCon Portland 2013: Accepted Sessions
DrupalCon Portland is only two months away. If you are heading to Portland, like some of us will, you can start building your schedule now.
DrupalEasy Podcast: Vice President of Drupal
Episode 100 of the DrupalEasy podcast features Angie Byron as a guest. A great listen if you want to learn more about some behind the scenes activities of the Drupal community.
Social Media
The Verge: Facebook redesigns News Feed with multiple feeds and 'mobile-inspired' interface
This week Facebook introduced that is about to launch a redesigned News Feed. If you want you can already join the waiting list to be one of the first users of the feature. Just don't mention that it looks like Google+...
Food for thought
Wired.co.uk: Twitter debates don't represent opinions of general public
A study conducted by the Pew Research Centre has shown that despite Twitter being the fastest growing social platform its regular storms of controversy don't necessarily have to represent the public opinion. It might sound like common sense but sometimes reminders of this nature are helpful.

Drumroll, please! It's our pleasure to introduce our team's latest addition Corina Schmid. With the end of her General Management bachelor degree course approaching rapidly Corina will join as trainee to offer a practical outlet for her studies.
When not helping Dania with looking after the operational part of the Lab, Corina enjoys snowboarding and expanding her vast collection of shoes.
Welcome to the team and all the best for your graduation.
It's been a cold month here in Switzerland. Nevertheless here are five things which warmed warmed our cockles this week. Enjoy!
Inspiration
Niice. A search engine with taste.
If using Google's image search annoys you due to its uninspiring results - give search engine a go. Niice is the self proclaimed search engine with good taste.
Drupal
Drupal Snippets Repository | Dropbucket.org
Sharing is an important necessity in every open-source project. With that in mind Tim Kamanin started this initiative to make sharing of Drupal code snippets easier.
Content Management Systems (CMS)
Friendly Machine: Drupal Gains Market Share
John Hannah crunched the numbers on W3Techs' CMS monthly stats. Despite Drupal's future looking rosy there is still a long way to go to reach the 10% market share.
Technology
The Next Web: Dropbox: 1 billion files are now being uploaded every day
We all know the big numbers which the likes of Facebook, Twitter and YouTube generate. Here is one you probably don't know yet.
Unfortunate domain of the week
wtflucerne.org
Seriously, or should we actually say WTF? Abbreviating World Tourism Forum Lucerne for ones domain to wtflucerne.org should have raised an eyebrow with every web savvy person involved.
One Swiss Februar from Our Swiss Life on Vimeo.
Team Texas has been in Zurich the past three weeks, hangin' with our better half. This time I thought it would be fun to shoot some video of our stay and toss it together will a little Willie Nelson number. I hope you enjoy it as much as we do our time in Switzerland.
Allow me to take your fear. Designing for Retina displays isn't hard but there are a few things you should know and keep in mind.
Use vectors
Don't mix resolutions

Designing @1× or @2×? It is up to you!
Use Slicy for the export






Essence of a web week: Issue 59
0This week's edition takes a look at the question if openness can scale, Twitter's latest feat and gives Google Reader's former Product Manager a voice. Enjoy!
Drupal
TimOnWeb: 8 Awesome Drupal Snippets I Wish I Knew Before
A few issues ago we featured Tim Kamanin's initiative Dropbucket.org. In the meantime the Drupal snippet repository has grown and the initiator took a moment to select his eight favourite snippets.
Commerce Guys: Commerce Kickstart - Visualizing the birth of a distro
Commerce Guys' Nicolas Meyer visualized, with the help of Gource and the powers of their software version control tool, the collaborative history of the Drupal Commerce Kickstart distribution.
Technology
The Verge: Twitter gets a patent on... Twitter
In the week Twitter turned seven, the microblogging service made the headlines for different reasons.
Food for thought
Accelerating reinventions: Openness does not scale
Laurent Haug reflects on the experiences he made with the Lift Conference.
Opinion
Quora: Why is Google killing Google Reader?
Question-and-answer service Quora might not be one of the social media platforms which is particularly well known in the mainstream. Nevertheless some interesting answers were provided on last week's hot button issue.