Feed aggregator

Lisandro Damián Nicanor Pérez Meyer: Qt 5.3.2 in Wheezy-backports: just a few hours away

Planet Debian - Thu, 09/10/2014 - 20:50
In more or less 24 hs most of Qt 5.3.2 will be available as a Wheezy backport. That means that if you are using Debian stable you don't need to wait for Jessie: just wait a few hours, add wheezy-backports's repo to your sources.list and get it :)

The rest of Qt 5 will arrive soon.

This is the same version that will be shipped in Jessie, so whatever you develop with it will work with the next Debian stable release :)

Don't forget: you better start porting your Qt4 apps to Qt5!
Categories: Elsewhere

Blair Wadman: How to backup your Drupal database to Amazon S3

Planet Drupal - Thu, 09/10/2014 - 20:31

We all know the importance of backing up the database for each Drupal site we build and maintain. But it is not uncommon for this to be put on the back burner and never actually implemented. Fortunately, it is really easy to setup with a combination of Amazon S3 and Backup and Migrate. In this tutorial, you will be shown how to set this up so that it runs on auto pilot.

Tags: Drupal Site buildingPlanet Drupal
Categories: Elsewhere

Tyler Frankenstein: Drupal Commerce Order Owner Autocomplete with E-mail Address

Planet Drupal - Thu, 09/10/2014 - 19:59

When creating an order as an admin in Drupal Commerce, we can specify the user that owns the order if we know their user name. This works well in most cases, but to be able to search by the user's e-mail address would be helpful too. I've had a few requests from clients for this feature. So without further ado, let's ado it!

/** * Implements hook_menu(). */ function my_module_menu() { $items = array(); $items['my_module/commerce/order-owner/autocomplete'] = array( 'page callback' => 'my_module_commerce_order_owner_autocomplete', 'access arguments' => array('configure order settings'), 'type' => MENU_CALLBACK ); return $items; } /** * Implements hook_form_FORM_ID_alter(). */ function my_module_form_commerce_order_ui_order_form_alter(&$form, &$form_state, $form_id) { // Attach our custom autocomplete to the order owner name input so we can // search by e-mail address. $form['user']['name']['#autocomplete_path'] = 'my_module/commerce/order-owner/autocomplete'; } /** * Queries results for the commerce order owner autocomplete. */ function my_module_commerce_order_owner_autocomplete($string) { $matches = array(); $query = db_select('users', 'u'); $query ->fields('u', array('uid', 'name', 'mail')) ->condition(db_or() ->condition("u.mail", '%' . db_like($string) . '%', 'LIKE') ->condition("u.name", '%' . db_like($string) . '%', 'LIKE') ) ->condition('u.uid', 0, '<>') ->range(0, 10); $results = $query->execute(); foreach ($results as $row) { $key = "$row->name"; $matches[$key] = "$row->name - $row->mail ($row->uid)"; } drupal_json_output($matches); }

Categories: Elsewhere

Chris Lamb: London—Paris—London 2014

Planet Debian - Thu, 09/10/2014 - 19:19

I've wanted to ride to Paris for a few months now but was put off by the hassle of taking a bicycle on the Eurostar, as well having a somewhat philosophical and aesthetic objection to taking a bike on a train in the first place. After all, if one already is possession of a mode of transport...

My itinerary was straightforward:

Friday 12h00
London → Newhaven
Friday 23h00
Newhaven → Dieppe (ferry)
Saturday 04h00
Dieppe → Paris
Saturday 23h00
(Sleep)
Sunday 07h00
Paris → Dieppe
Sunday 18h00
Dieppe → Newhaven (ferry)
Sunday 21h00
Newhaven → Peacehaven
Sunday 23h00
(Sleep)
Monday 07h00
Peacehaven → London
Packing list
  • Ferry ticket (unnecessary in the end)
  • Passport
  • Credit card
  • USB A male → mini A male (charges phone, battery pack & front light)
  • USB A male → mini B male (for charging or connecting to Edge 800)
  • USB mini A male → OTG A female (for Edge 800 uploads via phone)
  • Waterproof pocket
  • Sleeping mask for ferry (probably unnecessary)
  • Battery pack

Not pictured:

  • Castelli Gabba Windstopper short-sleeve jersey
  • Castelli Velocissimo bib shorts
  • Castelli Nanoflex arm warmers
  • Castelli Squadra rain jacket
  • Garmin Edge 800
  • Phone
  • Front light: Lezyne Macro Drive
  • Rear lights: Knog Gekko (on bike), Knog Frog (on helmet)
  • Inner tubes (X2), Lezyne multitool, tire levers, hand pump

Day 1: London → Newhaven

Tower Bridge.

Many attempt to go from Tower Bridge → Eiffel Tower (or Marble Arch → Arc de Triomphe) in less than 24 hours. This would have been quite easy if I had left a couple of hours later.

Fanny's Farm Shop, Merstham, Surrey.

Plumpton, East Sussex.

West Pier, Newhaven.

Leaving Newhaven on the 23h00 ferry.


Day 2: Dieppe → Paris

Beauvoir-en-Lyons, Haute-Normandie.

Sérifontaine, Picardie.

La tour Eiffel, Paris.

Champ de Mars, Paris.

Pont de Grenelle, Paris.


Day 3: Paris → Dieppe

Cormeilles-en-Vexin, Île-de-France.

Gisors, Haute-Normandie.

Paris-Brest, Gisors, Haute-Normandie.

Wikipedia: This pastry was created in 1910 to commemorate the Paris–Brest bicycle race begun in 1891. Its circular shape is representative of a wheel. It became popular with riders on the Paris–Brest cycle race, partly because of its energizing high caloric value, and is now found in pâtisseries all over France.

Gournay-en-Bray, Haute-Normandie.

Début de l'Avenue Verte, Forges-les-Eaux, Haute-Normandie.

Mesnières-en-Bray, Haute-Normandie.

Dieppe, Haute-Normandie.

«La Mancha».


Day 4: Peacehaven → London

Peacehaven, East Sussex.

Highbrook, West Sussex.

London weather.


Summary
Distance
588.17 km
Pedal turns
~105,795

My only non-obvious tips would be to buy a disposable blanket in the Newhaven Co-Op to help you sleep on the ferry. In addition, as the food on the ferry is good enough you only need to get to the terminal one hour before departure, avoiding time on your feet in unpicturesque Newhaven.

In terms of equipment, I would bring another light for the 4AM start on «L'Avenue Verte» if only as a backup and I would have checked I could arrive at my Parisian Airbnb earlier in the day - I had to hang around for five hours in the heat before I could have a shower, properly relax, etc.

I had been warned not to rely on being able to obtain enough water en route on Sunday but whilst most shops were indeed shut I saw a bustling tabac or boulangerie at least once every 20km so one would never be truly stuck.

Route-wise, the surburbs of London and Paris are both equally dismal and unmotivating and there is about 50km of rather uninspiring and exposed riding on the D915.

However, «L'Avenue Verte» is fantastic even in the pitch-black and the entire trip was worth it simply for the silent and beautiful Normandy sunrise. I will be back.

Categories: Elsewhere

Freelock : Why tech work is so hard to estimate

Planet Drupal - Thu, 09/10/2014 - 17:57

"Hey, since the upgrade, I can't use the power edit feature anymore!" came the request. Ok. There have been several different upgrades over the past few months. The menu editor module has been updated. The server has been upgraded. The site is in heavy use, so there are lots of content changes.

EstimatingProject ManagementDrupal Planet
Categories: Elsewhere

Vasily Yaremchuk: Turn off maintenance mode on separate paths in Drupal 7

Planet Drupal - Thu, 09/10/2014 - 16:32

We have faced with the problem. We use Ajax Login/Register module but put site in Maintenance mode.

But we need to have Sign up ability. Ajax Register module show Sign up form in popup, content is requested from "ajax_register/register". But in maintenance mode we can see Maintenance page response...

But fortunately we have hook_menu_site_status_alter. Thus we can turn off Maintenance mode in our module on separate path:

<?php
function ajax_register_fix_menu_site_status_alter(&$menu_site_status, $path) {
  if ($menu_site_status == MENU_SITE_OFFLINE && user_is_anonymous() && $path == 'ajax_register/register') {
    $menu_site_status = MENU_SITE_ONLINE;
  }
}
?>

This is content of ajax_register_fix.module custom module.

Blog tags:
Categories: Elsewhere

Deeson: Drupal's Picture element and Image Field Focus for mobile images

Planet Drupal - Thu, 09/10/2014 - 15:51

We know people get really frustrated when images viewed on desktop look great but are hard to see on a mobile device.

In this blog, I’ll show you how to use the Picture and Image Field Focus modules to crop images for display on desktop, tablet and mobile and make the lives of content creators easier.

It means goodbye to preparing several images for optimum display across all devices and hello to just one image upload and smart image crop control.

The new Drupal Picture element

Picture is a new(ish) HTML5 element which allows different images to be displayed for different devices and also for retina displays. Handy.

This means mobile users no longer have to download images optimised for desktop display when the image is displayed on a much smaller screen. 

How Picture works

Picture considers the way images are served and the needs of content creators, including:

  • Size: Images are often served optimised for desktop and then mobile devices reduce them to size. This means that mobiles are often downloading more data than they need to.
  • Art direction: For some images it would be better if the image was cropped for mobile display. This is called the ‘art direction’ use case, and I recommend reading this article over here
  • Image quality: Using <picture> images can be served at a higher pixel density, which means higher quality images can be served for retina devices.
Picture's HTML and browser support

The picture element at its most basic looks like this:

<picture>  <source media="(max-width: 480px)" srcset="mobile.jpg"> <source media="(max-width: 768px)" srcset="tablet.jpg">  <img src="fallback.jpg" alt=""> </picture>

You can see it's been spec'd out by the responsive images community group http://responsiveimages.org/.  It's supported in Chrome 38, implemented in Firefox 33, and can be tested by tweaking FireFox’s settings.  Microsoft is considering supporting it, and Safari hasn’t confirmed their status yet.

If a browser doesn’t support the Picture element, the HTML degrades gracefully and the fallback <img> is displayed. There is also a well-supported, and tested, polyfill - picture fill - on GitHub.

The Picture module

The good news is that Drupal already has a Picture module which includes the picture fill js library. It has a dependency on the breakpoints module.

To set up Picture, you need to setup your breakpoints first (/admin/config/media/breakpoints).  Each breakpoint needs a name and a media query. I've set up my breakpoints to match the Bootstrap breakpoints. For example, I've got a Mobile breakpoint with a media query '(max-width: 480px)' - see image to the left.

Once that's all sorted, you need to setup images styles for each breakpoint.

To setup Picture, install the module and go to /admin/config/media/picture/list. This page lists all the picture displays you have setup. Click 'Add', select the breakpoints you want this picture display to use, and select an image style for each breakpoint - see left.

Once you have a picture display set up, you'll be able to select picture as a display field formatter for an image field. You can then display different images for mobile, tablet and desktop!

Image Field Focus

Some people worry that the art direction use case places a large administrative burden on content editors, as it means preparing several images instead of just one.

You can avoid this if you use Image Field Focus - content admins select a focus area and a crop area for each image and image field focus does the rest, which is a lot less hassle all round.

In the example I've cropped out the person stood on the right, which is represented in the outer selected area. The inner selected area has become the focus area. 

Essentially, any image created will be from within the crop area and will always contain the focus area. The focus area will be, where possible, in the middle of the picture.

In our example, the paragliders in the air might be to small to see if the full image was scaled down to be displayed on mobile. I’ve added a focus area around one of the paragliders so when a mobile optimised image is created it will be a close up image of this area.

To setup image field focus you'll need to enable it for each field you want to use it on.

Defining images styles

When you define your images styles, you need to add the Focus Scale And Crop style - see left. I've set up three distinct image styles, one for each breakpoint, see image below. If you want to more detail on setting up images styles, read this.

What do you think?

Hopefully you can see that the Picture and Image Field Focus modules work together as a great combination!  

We asked our marketing and content team what they thought and they said, “This is literally the best thing since sliced bread.” 

Categories: Elsewhere

Jan Wagner: Updated Monitoring Plugins Version is coming soon

Planet Debian - Thu, 09/10/2014 - 11:46

Three months ago version 2.0 of Monitoring Plugins was released. Since then many changes were integrated. You can find a quick overview in the upstream NEWS.

Now it's time to move forward and a new release is expected soon. It would be very welcome if you could give the latest source snapshot a try. You also can give the Debian packages a go and grab them from my 'unstable' and 'wheezy-backports' repositories at http://ftp.cyconet.org/. Right after the stable release, the new packages will be uploaded into Debian unstable. The whole packaging changes can be observed in the changelog.

Feedback is very appreciated via Issue tracker or the Monitoring Plugins Development Mailinglist.

Update: The official call for testing is available.

Categories: Elsewhere

Clemens Tolboom: The state of ReST in Headless Drupal 8

Planet Drupal - Thu, 09/10/2014 - 10:37

One of the Drupal 8 initiatives was to make "headless" Drupal core work out of the box. Drupal now has a ReST API.

This allows you to use all the Drupal 8 features to edit your content but present the content not only on a Drupal frontend but also on mobile apps or anything else that can work with JSON data.

Categories: Elsewhere

Cocomore: Field collections exposed

Planet Drupal - Thu, 09/10/2014 - 10:03

Field collections is a nice contributed module that extends the default Drupal entity functionality by creating a new entity field that can be composed by other fields. With this module we solve problems like creating complex entities where we want to store multiple different values into one single field.

read more

Categories: Elsewhere

Deeson: Drupal Panels setup for clean markup

Planet Drupal - Thu, 09/10/2014 - 10:00

It’s a fact that you get a hideous amount of markup with the Panels module straight out-of-the box, even if you use it to create a single column page without changing any of the options.

This is because each layer of the rendering process brings its own markup to the party. 

Panels and layers

Panels are structured in layers, which is what makes them so flexible for any given requirement. Within a layout sit the regions and inside these are panes.

Each of these panes are configurable by providing CTools plugins. You can render panes and regions with style plugins and the layout with a layout plugin.

Each of these layers have their own wrapping markup and things can get excessive quickly. 

Help is at hand

Luckily for us, there’s quite a lot of help for Panels straight out-of the-box. Firstly, there’s a ‘naked’ style plugin which drops all the wrapping markup and can be applied to your panes and regions. While this is a good start, the layout will still need markup specific to the site’s theme.

You can override each Panels layout as it’s presented by a theme hook. It’s literally as simple as copying a template to your site. 

For most simple panels, it’s just a case of copying the panels-onecol.tpl.php file into the theme and customising it. 

If you’re using a CSS framework or grid system (we use Bootstrap at Deeson) then this file is where you can re-work the markup to be specific to the system you are using.

My Panels page

Keeping all this in mind, I’ve created a simple Panels page which lists recent content to authenticated users. It’s built from a bean, a view (with an access rule) and some custom markup. It uses the one col layout.

Here’s my oh-so-simple panels-onecol.tpl.php file in my theme:

<div class="panel-display panel-1col clearfix" <?php if (!empty($css_id)) { print "id=\"$css_id\""; } ?>> <?php print $content['middle']; ?> </div>

And here’s the markup you’ll get when viewed as an unauthenticated user:

<section id="block-system-main"> <div class="panel-display panel-1col clearfix"> <div class="panel-pane pane-block pane-bean-recent-content-header"> <h2 class="pane-title">Recent content</h2> <div typeof="" about="/block/recent-content-header" class="entity entity-bean bean-editable clearfix">[...]</div> </div> <div class="panel-pane pane-custom pane-1"> <p>Login or create an account to view this content...</p> </div> </div> </section>

Let me know what you think!

Categories: Elsewhere

LevelTen Interactive: Why Organizations Struggle With Web Analytics

Planet Drupal - Wed, 08/10/2014 - 23:42

Web analytics software is being used in most organizations for basic analysis and reporting, but provides little (if any) actionable insight into marketing efforts. Many people login to analytics searching for “the magic answers to their business problems”, but they don’t have specific goals, or challenges they want to analyze/address. Then they become overwhelmed with the amount of information they receive. They throw their hands in the air and concede defeat.... Read more

Categories: Elsewhere

Jonathan Dowland: Ansible

Planet Debian - Wed, 08/10/2014 - 22:12

I've just recently built the large bulk of VMs that we use for first semester teaching. This year that was 112. We use the same general approach for these as our others: get a generic base image up and running, with just enough configuration complete so a puppet client starts up; get it talking to our master; let puppet take it from there.

There are pragmatic balances between how much we do in the kickstart versus how much we do in puppet, but also when we build a new VM from scratch versus when we clone an existing image, and how specialisation we do in the clone image.

Unfortunately this year we ended up in a situation where our clone image wouldn't talk to our puppet master out of the box, due to some changes we'd made to our master set up since the clone image was prepared. We didn't really have enough time to re-clone the entire set of VMs from a fixed base image, and instead needed to fix them whilst up. However we couldn't rely on puppet to do that, since they wouldn't talk to the puppet master.

We needed to manually reset the puppet client state per VM and then re-establish a trust relationship with the correct master (which is not the default master hostname in our environment anymore). Luckily, we deploy a local account with a known passphrase via the kickstart, which also has sudo access, as an interim measure before puppet strips it back out again and sets up proper LDAP and Kerberos authentication. So we can at least get into the boxes. However logging into 112 VMs by hand is not a particularly pleasant task.

In the past I might have tried to achieve this using something like clusterssh but this year I decided to give ansible a try instead.

Ansible started life, I believe, as a tool that would let you run arbitrary commands on remote hosts, including navigating ssh and sudo as required, without needing any agent software on the remote end. It has since seemed to grow into an enterprise product in its own right, seemingly in competition with puppet, chef, cfengine et al.

Looking at the Ansible website now I'd be rather put off by just how "enterprisey" it has become - much as I am by the puppet website, if I'm honest - but if you persevere past the webinars, testimonials, etc. etc., you can find yourself to the documentation, and running an arbitrary command is as simple as

  • defining a list of hosts
  • running an ansible command line referencing some or all of those hosts

The hosts file format is simple

[somehosts] host1 host2 ... [otherhosts] host3

The command line can be a little bit more complex, especially if you need to use one username for ssh, another for sudo, and you don't want to use ssh key auth:

ansible -i ./hostsfile somehosts -k -u someuser \ --sudo -K -a 'puppet agent --onetime --no-daemonize --verbose’

"all" would work where I've used somehosts in the example above.

So there you go: using one configuration management system to bootstrap another. I'm sure I've reserved myself a special place in hell for this.

Categories: Elsewhere

Phase2: DrupalCon Amsterdam Roundup

Planet Drupal - Wed, 08/10/2014 - 21:44

As I write this, I’m on a plane back to the US after a whirlwind 10 days in Amsterdam for DrupalCon Amsterdam 2014. As always it is so gratifying to meet and work with the international Drupal community. I love getting to take a look at what everyone is working on and collaborate with people that you might otherwise only know as IRC nicks. Here are my highlights of DrupalCon Amsterdam:

Sprints and Drupal.org Logging

I volunteer my time to help the drupal.org infrastructure team with their logging infrastructure. I was very happy to be able to sprint for 3 days, mainly on drupal.org infrastructure. On Sunday, Friday, and Saturday, I worked with the Drupal.org Puppet configuration to get a new CentOS 6-based log aggregation host ready to go running the latest versions of the ELK (ElasticSearch, Logstash, and Kibana) stack. The new Logstash configuration that we’ll be rolling out is much simpler. Stay tuned to the blog for information on some of the improvements we made in the process. We hope to deploy the new logging host within the week.

DevOps Meetup

Tuesday evening, I attended the DevOps Amsterdam meetup.  The meetup was sponsored by ElasticSearch, who bought a delicious dinner for all attendees as well as some drinks. During dinner, I sat with some folks from Germany and had a chance to speak with a number of ops-attuned folks about Docker and the possible use cases for it.

The meetup had some great content. There was a talk on how GitLab uses omnibus to package GitLab with far less hassle, a talk from fellow d.o infra team volunteer Ricardo Amaro on building the next-gen Drupal testbot on Docker, and a great talk from the DrupalCon Amsterdam DevOps chair Bastian Widmer on developing culture and sharing knowledge in an agency.

LSD Leadership Meeting

Earlier this year, Phase2 contributed some of its innovation hours to the LSD project and worked with Acquia to present a webinar on Behat and release a pre-built virtual machine designed to make it easy to start doing automated testing using Behat. During the LSD leadership meeting I joined Melissa Anderson of Tag1 Consulting and Hugh Fidgens of Pfizer in a breakout session discussing Behat. Quite a few organizations present were very interested in how they could use Behat to enable a behavior-driven development workflow with their developers, or to develop a good set of automated tests that could be run either as smoke tests or as end-to-end integration tests.

Behat Everywhere

In addition to the LSD leadership meeting, automated testing and BDD were topics on everyone’s minds throughout DrupalCon.

I attended 2 BoF about automated testing or Behat, the Testing Drupal 8 BoF, and Hugh Fidgen’s Organizational Behat BoF. These talked about how we could better leverage automated testing tools in Drupal core and in client work we build today, respectively. Many people have had some success in getting automated tests or a BDD workflow started, but there was a lot of talk about writing good sustainable tests and how to integrate these tools into your workflow.

Speaking of writing sustainable tests, my favorite session of the conference was definitely the session by Konstantin Kudryashov (the creator of Behat and Mink) on how to do BDD with Behat. The session was remarkable and left an impact on many folks who went there. It really emphasized the point that BDD must be about identifying and delivering business value in our projects, and that doing that is the way to write good tests. It is definitely worth an hour of your time to watch.

As testing best practices are refined in the Drupal community as well as in Phase2, I’m very excited that the talented Jonathan Hedstrom has joined the Phase2 team.  Jonathan is a maintainer of the Behat DrupalExtension, and is sure to help us further refine our testing practices as Phase2. Jonathan has been doing work recently on upgrading the DrupalExtension to support Behat 3 and has plans to generalize the drivers that the Behat DrupalExtensions provides so that it could be used with Mink for writing tests in straight PHP without needing to use Behat.

My “Open Source Logging and Monitoring Tools” Session

On Wednesday I presented my session “Using Open Source Logging and Monitoring Tools.” I covered a lot of information in my session including using Logstash, ElasticSearch, and Kibana.  Thanks to the tireless work of the DrupalCon A/C crew, the video recording of my session is online, and the slides are available on SlideShare if you would like to follow along.  The session had an excellent turnout, and there were some great questions and discussions following my session. I was quite pleased at the large turnout, and so was @KrisBuytaert, who been bringing information about DevOps-related topics to DrupalCons for years.

I need to rephrase my state of #devops and #drupal conclusion, 2 years ago in Munich there were 10 people in this talk ..(1/2)

— Kris Buytaert (@KrisBuytaert) October 1, 2014

Back then by @samkottler , this year @stevenmerrill ‘s talk is packed , we are winning this ! #logstash, #drupalcon #elasticsearch

— Kris Buytaert (@KrisBuytaert) October 1, 2014

We were also fortunate to have Leslie Hawthorne of ElasticSearch in the audience. She gave out ElasticSearch ELKs to sprinters at the Friday event.

Packed house for @stevenmerrill in #DrupalCon #DevOps track. About to learn how the d.o infra team uses #elkstack pic.twitter.com/MThDhkA48E

— Leslie Hawthorn (@lhawthorn) October 1, 2014

Takeaways

Based on the sheer number of people interested and sessions to devoted to both topics, it is clear that there is a growing interest in both logging and metrics and automated testing or BDD in the Drupal Community. This is also the 11th DrupalCon I’ve been to, and this year’s keynotes were the best I could remember. I really enjoyed Dries’s ideation around sustainable methods for getting contributions to Drupal core and contrib, and getting to see Cory Doctorow speak live about the perils of DRM and restrictions software freedoms was also excellent.

This is an exciting time for Drupal. Drupal 8 beta 1 is live. The community is active and engaged around making Drupal better, both by contributing to Drupal 8 and by doing a better job testing projects built on it. The DA and an army of volunteers have made huge strides on improving the infrastructure around core testing as well as around all the online communities under drupal.org.

Categories: Elsewhere

Mediacurrent: Drupal Agency, Mediacurrent, Awarded Best Overall SMB by Salesforce

Planet Drupal - Wed, 08/10/2014 - 21:33

Today, Mediacurrent is extremely proud to announce that we have been named the 2014 Best Overall Small Business by Salesforce. The award celebrates the best overall marketing and sales story at the SMB level (1-100 employees). Over 100,000 companies use Salesforce, and hundreds of nominations were submitted for the Salesforce Surfboard awards, so saying “we’re honored” to, not only be nominated, but win this award would be an understatement.

Categories: Elsewhere

Steve Kemp: Writing your own e-books is useful

Planet Debian - Wed, 08/10/2014 - 21:03

Before our recent trip to Poland I took the time to create my own e-book, containing the names/addresses of people to whom we wanted to send postcards.

Authoring ebooks is simple, and this was a useful use. (Ordinarily I'd have my contacts on my phone, but I deliberately left it at home ..)

I did mean to copy and paste some notes from wikipedia about transport, tourist destinations, etc, into a brief guide. But I forgot.

In other news the toy virtual machine I hacked together got a decent series of updates, allowing you to embed it and add your own custom opcode(s) easily. That was neat, and fell out naturely from the switch to using function-pointers for the opcode implementation.

Categories: Elsewhere

Mark Shropshire: DrupalCamp Atlanta 2014

Planet Drupal - Wed, 08/10/2014 - 20:54

As expected, I had a great time at DrupalCamp Atlanta 2014 last weekend. While I enjoy attending sessions, it is the chance to catch up with old friends and make new ones that I love.

I want to thank all of those who made this camp a great one (sponsors, ADUG, presenters, volunteers, and attendees)!

Some of my session notes can be found below (unedited):

Sessions Blog Category: 
Categories: Elsewhere

Elena 'valhalla' Grandi: New gpg subkey

Planet Debian - Wed, 08/10/2014 - 20:42
The GPG subkey I keep for daily use was going to expire, and this time I decided to create a new one instead of changing the expiration date.

Doing so I've found out that gnupg does not support importing just a private subkey for a key it already has (on IRC I've heard that there may be more informations on it on the gpg-users mailing list), so I've written a few notes on what I had to do on my website, so that I can remember them next year.

The short version is:

* Create your subkey (in the full keyring, the one with the private master key)
* export every subkey (including the expired ones, if you want to keep them available), but not the master key
* (copy the exported key from the offline computer to the online one)
* delete your private key from your regular use keyring
* import back the private keys you have exported before.
Categories: Elsewhere

Ian Donnelly: A Comparison of Elektra Merge and Git Merge

Planet Debian - Wed, 08/10/2014 - 20:02

Hi everybody,

We have gotten some inquires about how Elektra’s merge functionality compares to the merge functionality built into git: git merge-file. I am glad to say that Elektra outperforms git’s merge functionality in the same ways it outperforms diff3 when applied to configuration files. Obviously, git’s merge functionality does a much better job with source-code as that is not the goal of elektra. In that previous example, I showed that because diff3 is lined based, where Elektra is not (unless you mount a file using the line plugin). The example I used before, and I will go over again, is using smb.conf and in-line comments.

Many of our storage plug-ins understand the difference between comments and actual configuration data. So if a configuration file has an inline comment like so:
max log size = 10000 ; Controls the size of the log file (in KiB)
we can compare the actual Keys, value pairs between versions max log size = 10000 and deal with the comments separately.

As a result, if we have a base:
max log size = 1000 ; Size in KiB

Ours:
max log size = 10000 ; Size in KiB

Theirs:
max log size = 1000 ; Controls the size of the log file (in KiB)

The result using elektra-merge would be:
max log size = 10000 ; Controls the size of the log file (in KiB)

Just like diff3, git merge-file can only compare these lines as lines, and thus there is a conflict. When running git merge-file smb.conf.ours smb.conf.base smb.conf.theirs we get the following output showing a conflict:
<<<<<<< smb.conf.ours
max log size = 2000 ; Size in KiB
=======
max log size = 1000 ; Controls the size of the log file (in KiB)
>>>>>>> smb.conf.theirs

This really shows the strength of Elektra’s plugin system and why it makes merge an obvious use-case of Elektra. I hope this example makes it clear why using Elektra’s merge functionality is advantageous over git’s merge functionality. Once again I would like to stress the importance of quality storage plug-ins for Elektra. The more quality plugins we have the more powerful Elektra can be. If you are interested in plugins and would like to help us by adding functionality to Elektra by creating a new plug-in be sure to read my basic tutorial on how to do so.

Sincerely,
Ian Donnelly

Categories: Elsewhere

Acquia: Drupal 8 - An intro field guide for front-end developers

Planet Drupal - Wed, 08/10/2014 - 19:22

Drupal 8 is almost here, and it’s bringing big front-end improvements, including new methods to display data on mobile devices using breakpoints, build flexible templates in Twig and better management for tools and libraries.

Most importantly, changes to the display layer mean that Drupal has become much more agile and extendable for Front-end Developers.

The journey so far

Up till now, Front-end Developers have been working with a display layer that was originally introduced in Drupal 4.5, here’s how it worked...

Categories: Elsewhere

Pages

Subscribe to jfhovinne aggregator