Feed aggregator

Lars Wirzenius: On the cost analysis of dependencies

Planet Debian - Mon, 17/08/2015 - 11:55

A question that I'm asked repeatedly recently is why I chose not to use an existing library for serialising data structures in Obnam. This blog post is the answer.

Obnam is a backup program, and it needs to store various data about files. This includes stat(2) information about each file in the live data, as well as data Obnam needs to keep track of everything. At run-time, Obnam keeps this data in memory data structures, such as Python dicts. For storage, these data structures need to be converted, serialised, to and from streams of bytes.

The are a variety of libraries for doing this, designed for different purposes and with their own constraints and pitfalls. Python's standard library comes with the cPickle library, for example, but its serialisation format is not guaranteed to be compatible with any other version of Python.

For Obnam, I need something that will last a long time. I do not want to have to deal with a library changing its serialisation format, as that would mean either that Obnam can't handle old backups, or that I need to start maintaining the old version of the library.

A way to look at this is that any dependencies your software have a cost, and that cost should be smaller than the benefit you get from them.

For example, Obnam depends on the paramiko library to implement the SSH protocol. This library has some cost, and I've run into one or two bugs in it that have been rather unfortunate. However, the benefit it brings is huge: I don't have to implement SSH myself. I'm happy to have Obnam depend on paramiko.

For the serialisation thing, I wrote my own library, after a small about of research into existing ones. Research time is a cost, too.

Mine is somewhat Obnam specific, in that it can make some assumptions about the data to be serialised, and this allows a simpler library. A generic library would have to handle a number of special cases that mine can ignore.

It took me less than an hour to write this twice. I first wrote a quick prototype and a little microbenchmark to see if my approach would be feasible. Then I deleted that code, and started from scratch, TDD style, to make sure the code was reliable. The cost of writing my own serialisation code was less than the cost of finding, let alone evaluating existing libraries.

It may be that my own library turns out to be inadequate. Then, and only then, is when I start researching other libraries. Until then, I'll avoid the cost of research to find a suitable library, the cost of learning the chosen one, the cost of integrating it into Obnam, the cost to porters of Obnam of dealing with a new dependency, and the risk of the library changing in ways that are unsuitable for Obnam.

Obviously, writing your own code has costs, too. Designing and implementing a library is a cost, as is maintaining it (debugging, changes in requirements, etc).

Write your own or use existing code? It's a cost/benefit analysis. There's no clear one answer that's always correct.

Categories: Elsewhere

Jim Birch: Using Fences and Page Manager to optimize HTML markup in Drupal 7

Planet Drupal - Mon, 17/08/2015 - 11:20

I have been searching for a way to make Drupal output cleaner, lighter, more semantic HTML since I started theming.  We all know Drupal core, and it's many contrib modules have a tendency to inject a couple-two-tree divs in 'dere.  I have tried many different ways, much to the chagrin of the developers I have worked with, most of them probably not worth the effort I put in.  That is until now!

The goal of my approach here is to minimize the markup that Drupal puts out, and gain complete control over the what and the where of the markup.  I can gain control of the fields using the Fences module; control over the templates in my theme; and gain even more control over the placement and what gets loaded using ctools Page Manager and Panels.  I will step through each of this in detail below.

Read more

Categories: Elsewhere

Imagine Creativity: Drupalaton 2015 : our perspective

Planet Drupal - Mon, 17/08/2015 - 09:49
17 Aug 2015

Last week we attended Drupalaton for the second year in a row. It was so valuable to us last year we couldn’t resist returning, especially after attending the great events Drupalaton & Drupal Dev Days Szeged last year. See our blog post from last year Drupalaton 2014.

What is Drupalaton?

It is a 4 day Drupal Camp which takes place on the edge of Lake Balaton, the largest lake in Central Europe. It started off as a group of 50 Hungarian Drupalers that knew each other quite well, as a Drupal Camp in the city of Pécs. After it grew the local community decided to move it to Balaton and change the name. After 1 year they decided to open it up to a much wider community, so in 2013 lots of attendees came from neighbouring countries.

Last year in 2014 there were 79 attendees from 13 countries including Belgium, France, Finland, Germany, Netherlands, Spain, Sweden, Switzerland, the UK. This year it was great to see us reach 115 attendees from a more diverse group of countries, many of which re-attending for years (including Pieter Frenssen).

What makes Drupalaton unique to other DrupalCamps?
  • Sessions - Longer, friendlier & more interactive.
  • Weather - At 35C during the trip it was great to make sure relaxation was had. Having the lake a few steps outside the hotel was very much welcomed.
  • Social activities - Morning jogs, group meals, evening drinks, boat party, grill party, swimming together on the lake, Go Karting.
  • People - The great weather and opportunities for socialising make it an amazing environment to make new and strengthen existing friendships. Some attendees brought their children who also made new friends!
The amazing organisers

We can’t say how much we appreciated all of the organisation effort that went into the event. The team was led by Tamás ‘York’ Pintér, with support from Zsófi Major, Gábor Reisinger, István Csáki. They are the real heroes of the event, and in addition to the months of organisation, they put in lots of additional time from early in the morning until the late night socials. They deserve a huge round of applause.

Extended sessions/talks

These were longer than usual 1 hour given at other Drupal Camps & Drupal Cons, but also in a workshop format. These were upto 3 hours in length, people had their laptops out on tables and were encouraged to ask the speakers questions as they went.

Boat party

This was a lot of fun and also a very good opportunity for attendees to exchange experiences and knowledge with eachother. There was tasty food, beer thanks to the fantastic sponsors. The boat journey was perfectly timed to give a view of an amazing sunset.

Grill party & the Drupalaton song

More tasty food followed, truly a feast which was much appreciated. Here some played poker with Druid's scrum cards and others played with the children, all before we were treated to a perfomance of the Drupalaton song. There were guitars and singing provided by Ruben Teijeiro, Gergely Csonka, Ernő Zsemlye & Tamás Hajas who gave us 'Drupal Get Commit' and the catchy chorus "We’re up all night to get a commit". YouTube video.

Fun games

5Net from Hungary gave puzzle pieces in everyone’s goodie bags which were used to create a giant jigsaw puzzle with the Drupalaton logo. REEA from Romania brought a unique game Crokinole, in which you slide pieces into circles and knock your opponents’ ones out, during which I won a t-shirt & mug after beating my opponent.

Family friendly

Lake Balaton is a popular holiday destination for the whole family which is one of the reasons many Drupal attendees brought their partners and children. It is very pleasing to see how happy everyone is and how much they interacted with the rest of us during the social time. It is good fun for the whole family and encourages them to all become friends with each other too. Perhaps in future events we could even have sessions for children, what do you think?

Drupal in Hungary

With famous Hungarian Drupalers including Gábor Hojtsy & chx , it was a different environment than you would normally see them in. I was very pleased to find out about how the Drupal community started to grow adoption in the country, especially in the early days.

Drupal in Central & Eastern Europe

Drupal companies in the area are keen to get away from the outside world seeing them as a cheap place to outsource to. They prefer to work on a partnership basis where you gain a relationship with team members, instead of ‘resources’. It is interesting to see that they are increasingly working on local client projects too. I was glad to see many friends again from the nearby countries of Serbia, Romania, Slovakia again from last year as well as other camps. For some local attendees Drupalaton has become an affordable alternative to DrupalCons as wages are generally a lot lower than in Western Europe. It will be exciting to see what happens with Drupal Iron Camp next year in Budapest, an event that aims to showcase the talent of the area and provide accessible Drupal training with low cost tickets.


Tamás ‘TeeCee’ Szügyi has perfected his art of photographing Drupal events with precision and was everywhere capturing it all. He has added photos to this Flickr group. If you have any photos please share them there too.

Next year

For 2016’s event the dates have been announced for 11-14th August. Hope to see you all at Drupalaton again next year!

Image - Top: Tags: DrupalDrupal CampDrupal Planet
Categories: Elsewhere

Russ Allbery: backport 1.32

Planet Debian - Mon, 17/08/2015 - 02:53

Yet another relatively minor update.

What with all the other stuff that's been going on in my life in the past year, I never updated my backport script to support backports to jessie or to reflect the new stable release. This release does that, at some email prompting (thank you!).

It also adds a new -A or --architecture flag to specify which build architecture to pass to pdebuild. I have no idea if this works, but it at least should in theory.

You can get the latest version of my backport script from my scripts page.

Categories: Elsewhere

Russ Allbery: git-pbuilder 1.35

Planet Debian - Mon, 17/08/2015 - 01:52

Today is the day for minor software releases. It's amazing how much more free time I have when I'm not unpacking boxes.

Osamu Aoki submitted a bug report a while back asing for --update, --create, and --login to be supported as options to git-pbuilder, in addition to the versions without leading hyphens, since pbuilder and cowbuilder require the hyphens and people are used to typing them. I've finally merged his patch and released git-pbuilder 1.35 with that change. It will probably show up in git-buildpackage shortly.

(Still need to rewrite this script in Python one of these days so that it can be properly and fully merged with git-buildpackage.)

You can get the latest version of git-pbuilder from my scripts page.

Categories: Elsewhere

Bits from Debian: Debian turns 22!

Planet Debian - Sun, 16/08/2015 - 23:59

Sorry for posting so late, we're very busy at DebConf15!

Happy 22nd birthday Debian!

Categories: Elsewhere

Ben Armstrong: McIntosh Run “Hike the Greenbelt” event, August 2015

Planet Debian - Sun, 16/08/2015 - 23:35

Just came back from a wonderful time hiking with my daughter at the finale Hike the Greenbelt event at the Backlands/McIntosh Run! This photo slideshow is from my HP snapshot camera which unfortunately has dust in the lens. But I felt it was more important to get them up soon than to get them perfect, so please click the photo below to start the slideshow. I want to thank everyone who made this event a success, and not going to name specific names as I’m sure I’ll miss someone important. But thanks especially to Martin, the leader of our group.


Marcos Zentilli explaining geology of the region. Click photo to start slideshow.




Categories: Elsewhere

John Goerzen: First steps: Debian on an Asus t100, and some negative experience with Gnome

Planet Debian - Sun, 16/08/2015 - 23:25

The Asus t100 tablet is this amazing and odd little thing: it sells for under $200, yet has a full-featured Atom 64-bit CPU, 2GB RAM, 32 or 64GB SSD, etc. By default, it ships with Windows 8.1. It has a detachable keyboard, so it can be used as a tablet or a very small 10″ laptop.

I have never been a fan of Windows on it. It does the trick for web browsing and email, but I’d like to ssh into my machines sometimes, and I just can’t bring myself to type sensitive passwords into Windows.

I decided to try installing Debian on it. After a lot of abortive starts due to the UEFI-only firmware, I got jessie installed. (The installer was fine; it was Debian Live that wouldn’t boot.) I got wifi and battery status working via an upgrade to the 4.1 kernel. A little $10 Edimax USB adapter was handy to spare a bunch of copying via USB disks.

I have been using XFCE with XMonad for so many years that I am somewhat a stranger to other desktop environments. XMonad isn’t really suitable for a tablet, however, so I thought I’d try Gnome, especially after a fairly glowing review about its use on a tablet.

I am already disappointed after just a few minutes. There is no suspend button on the menu. Some Googling showed that holding Alt while hovering over the power off button will change it to a suspend button. And indeed it does. But… uh, what? That is so common and so non-obvious. And pushing the power button does… nothing. That’s right, nothing. Apparently the way to enable some action when you push the power button is to type in a settings command in a terminal. There’s no setting in the settings panel.

I initially ditched Gnome some years ago due to its penchant for removing features. I had hoped that this much time later, it would have passed that stage, but I’m already disappointed. I was hoping for some really nice integration with the system. But my XFCE setup has a very clear “When power button is pressed” setting. I have no idea why Gnome doesn’t.

Also, the touch screen works fine and it registers my touches, but whenever I touch anywhere, the cursor disappears. Weird, eh?

There are some things to fix yet on the tablet (sound, brightness adjustment, and making suspend reliable) but others have solved these in Ubuntu so I don’t think it’ll be too hard.

In the meantime, any suggestions regarding Gnome? Is it just going to annoy me? Maybe I should try KDE also. I’ve heard good things about Plasma Active, but don’t see it in Debian though.

Categories: Elsewhere

Sune Vuorela: Debconf 2015 – 3

Planet Debian - Sun, 16/08/2015 - 19:53

It is still an open question what the Debian Project Leader wears under their kilt.

Categories: Elsewhere

Ana Beatriz Guerrero Lopez: Debconf15 and … happy birthday Debian!

Planet Debian - Sun, 16/08/2015 - 18:23

Debconf15 started yesterday and as expected, talk rooms are always fully crowded! I had to stand up in a couple of talks and I watched another couple of them from outside thanks to the real time streaming.

Thanks to the fantastic work of the video team, video recordings of the talks from yesterday have started to be available at http://meetings-archive.debian.net/pub/debian-meetings/2015/debconf15/.
I would heartily recommend you to watch “Debian’s Central Role in the Future of Software Freedom” by Bradley M. Kuhn (video available).
I was expecting a good talk and Bradley exceeded my expectations.

I also got to meet again Simon Kainz and to get my DUCK branded lighter from the duck challenge :)

After dinner, we celebrated Debian’s 22 birthday, that’s exactly today. We had a wonderful cake made by DebConf attendees made by small pieces of pastry with fruits drawing a mosaic with a Debian swirl.
While the cake was a very nice detail, the best part of it was watching the people making the cake. Everybody had a great time and this kind of things are what make Debian (and DebConf) great. When people work together to make something wonderful.

Categories: Elsewhere

Lunar: Reproducible builds: week 16 in Stretch cycle

Planet Debian - Sun, 16/08/2015 - 16:11

What happened in the reproducible builds effort this week:

Toolchain fixes
  • Stéphane Glondu uploaded dh-ocaml/1.0.10 which now generates *.info with a deterministic order. Original patch by Chris Lamb. Stéphane also uploaded ocaml/4.02.3-1 to experimental which enables ocamldoc to build reproducible manpages using a patch by Valentin Lorentz.
  • Paul Gevers uploaded pasdoc/0.14.0-1 with upstream changes which should make the generated documentation reproducible by default.
  • Osamu Aoki uploaded debiandoc-sgml/1.2.31-1 adding spport for a DEBIANDOC_DATE environment variable to override the content of the <date> tag.
  • Dmitry Shachnev uploaded sphinx/1.3.1-4 which fixes many reproducibility issues and add support for SOURCE_DATE_EPOCH.

Valentin Lorentz sent a patch for ispell to initialize memory structures before dumping their content.

In our experimental repository, qt4-x11 has been rebased on the latest version (Dhole), as was doxygen (akira).

Packages fixed

The following packages became reproducible due to changes in their build dependencies: backup-manager, cheese, coinor-csdp, coinor-dylp, ebook-speaker, freefem, indent, libjbcrypt-java, qtquick1-opensource-src, ruby-coffee-script, ruby-distribution, schroot, twittering-mode.

The following packages became reproducible after getting fixed:

Some uploads fixed some reproducibility issues but not all of them:

Patches submitted which have not made their way to the archive yet:

  • #795203 on xlsx2csv by Dhole: set PODDATE to the date of the latest debian/changelog entry.
  • #795392 on blkreplay by Dhole: tell pod2man to use the date of the latest debian/changelog entry.
  • #795394 on libitpp by Dhole: use SOURCE_DATE_EPOCH as source for the manpage date instead of the currentdate.
  • #795395 on adblock-plus by Dhole: set TZ to UTC when using zip.
  • #795438 on wims-extra by Chris Lamb: ask grep to cope with non-UTF8 files.
  • #795441 on aprx by Chris Lamb: use SOURCE_DATE_EPOCH as source for the manpage date instead of the currentdate.
  • #795462 on ogre-1.9 by Chris Lamb: removes timestamps from the documentation system.
  • #795484 on ruby-rmagick by Chris Lamb: patch the bindings to allow the PRNG seed to be set, and set it to a fixed value when generating examples.
  • #795562 on htp by Chris Lamb: export TZ=UTC in debian/rules.

akira found another embedded code copy of texi2html in maxima.


Work on testing several architectures has continued. (Mattia/h01ger)

Package reviews

29 reviews have been removed, 187 added and 34 updated this week.

172 new FTBFS reports were filled, 137 solely by Chris West (Faux).

josch spent time investigating the issue with fonts in PDF files.

Chris Lamb documented the issue affecting documentation generated by ocamldoc.


Lunar presented a general “Reproducible builds HOWTO” talk at the Chaos Communication Camp 2015 in Germany on August 13th. Recordings are already available, as well as slides and script.

h01ger and Lunar also used CCCamp15 as an opportunity to have discussions with members of several different projects about reproducible builds. Good news should be coming soon.

Categories: Elsewhere

Benjamin Drung: DebConf 15

Planet Debian - Sun, 16/08/2015 - 13:31

I am still alive and currently attending DebConf 15. Feel free to grab me for a talk. I am just shy, not antisocial.

Categories: Elsewhere

Chen Hui Jing: Drupal 101: Theming Drupal 7 with gulp

Planet Drupal - Sun, 16/08/2015 - 02:00

I still remember the first Drupal 7 theme I built. It was for the Singapore Gastric Cancer Consortium website, and at the time I barely knew my way around HTML and CSS. I used the Zen theme as my starter theme, and unknowingly wrote my CSS in .scss files without realising the distinction. I was a little bit confused to why I needed to install a software called Codekit to make everything work but was too busy trying to get the theme up and running to worry about it at the time.

Let’s talk about that thing called Sass

After I finished up with that project, I took the time to understand exactly what was going on....

Categories: Elsewhere

Matthieu Caneill: A one-liner to catch'em all!

Planet Debian - Sun, 16/08/2015 - 00:00

I wrote a Bash one-liner to open the source code (in Debsources) of any file on your system (if it belongs to a Debian package).

It will simply retrieve the associated package and point your default browser to its source code.

Add this somewhere in your $PATH, and name this file debsrc:

#!/bin/bash function debsrc { readlink -f $1 | xargs dpkg-query --search | awk -F ": " '{print $1}' | xargs apt-cache showsrc | grep-dctrl -s 'Package' -n '' | awk -F " " '{print "http://sources.debian.net/src/"$1"/latest/"}' | xargs x-www-browser } CMD="$1" debsrc ${CMD}

And try something like debsrc /usr/share/doc/acpi/AUTHORS. Enjoy!

Update: improved the one-liner thanks to josch's advice.

Categories: Elsewhere

Steve Purkiss: Drupalaton Day Zero: Drupal 8 shipped - you didn’t miss the boat already?

Planet Drupal - Sat, 15/08/2015 - 23:49
Saturday, 15th August 2015Drupalaton Day Zero: Drupal 8 shipped - you didn’t miss the boat already? Shit.

“Shit, shit, shit!” exclaimed the guy sitting next to me, bashing his fingers away on his laptop in the reception area of Hotel Helikon, an ageing family summer fun destination perched on the southern shores of lovely lukewarm shallow Lake Balaton in Hungary where I had arrived a day early for the yearly Drupal event Drupalaton

You wouldn’t have noticed the extra sweat on my forehead in the sweltering 36 degrees heat, but these words made me nervous, for these weren't the words I was expecting to hear come from Daniel Wehner, the person who has the most commit mentions in Drupal 8. Had Drupal 8 broken horribly? Had some big problem just been found? No - well, not exactly. It was to do with supporting a beta-to-beta update path - more on that in a moment, for the moment let’s bring everyone up to speed.

Patch me in!

“But Steve, wait a code-damn minute there - what’s a ‘Commit mention in Drupal 8’ when it’s at home?" I hear some of you say! It means you were involved in some way in something that ended up being part of the core package of the next version of Drupal, version 8. What is Drupal? It’s a piece of software which currently powers over a million websites around the world. Everyone from those who accidentally became a Drupal developer whilst looking for a solution to help their tennis club to those in charge of running the United States use Drupal to communicate with their community via the web - see more examples over at this showcase of Drupal sites.

Drupal is a Free Software project (you may have heard it incorrectly referred to as 'Open Source'). This means anyone in the world is free to participate in the project - you can use it, study how it works, make changes, and share those changes if you want. A commit mention means you might have fixed a bug, reviewed some code, or been involved in some way with helping an issue move along the process until it has been deemed reviewed and tested by the community (“R.T.B.C.”) and thus ready to be committed to the codebase of the Drupal project. OK, now let’s get back to Hotel Helikon!

Getting on the Island

Later that evening after I’d unpacked and had a little wander around, I chatted with Daniel out on the island which, by daylight every inch of the hotel's small private enclave surrounded by the lukewarm shallow water of the lake is covered with holidaying families. Once a year, by night, the island becomes a hotbed of Drupal chat, especially this time as we are so tantilisingly close to release which has been worked on for four years now since the release of Drupal 7 in 2011.

“BDFL!” Daniel suddenly exclaimed. I thought for a moment - I didn’t recognise the acronym at first, thinking it may have been some internal subsystem only a few people knew as seemed the way with previous versions of Drupal to 8 which is now far more easier to approach using standard industry practices. This BDFL meant “Benevolent Dictator For Life”. It’s how the Drupal works currently, with that BDFL being founder of the project Dries Buytaert, whose own company Acquia recently announced that even though 8 wasn’t released and would be “ready when it’s ready”, they were ready to support customers who wanted to use Drupal 8. I guess this means they would value some kind of beta-to-beta upgrade path.

Grow the island communities

From the perspective of being one of the people who supports that upgrade path whilst also being asked every five milliseconds “When is Drupal 8 going to be ready?” I can imagine it’s probably quite stressful. Acquia aren’t the only ones of course, from a value perspective it means more adoption, certainly an easier life for me as I now partake in Brighton’s Homebrew Website Club to help keep the ball rolling on my migration of my own purkiss.com site to Drupal 8, although now I’ve thought of a few more pet projects I’d like to get up and running now I can actually base my efforts on the solid, well-thought-out foundation Drupal 8 provides me with.

Whatever the case, I leave my peers up to discuss and my readers to join in appropriately if they want. All I know is these decisions could be influenced by me if I wanted as it’s a Free Software project and if I cared enough about a certain topic I could get involved however I fit best and change it, not enough people understand or make use of those freedoms. Whilst Drupal is the largest community of contributors and over 3,000 people have commit mentions in Drupal 8, that’s a tiny proportion of those who use it, many whom make and create a lot of value and some of whom make a shed-ton of money out of it. Of course many more than just commit mentions make the community what it is, however the adoption rate at which Drupal has been taking that percentage is getting smaller every day.

An enormous amount of money comes back into the community in one way or another, but we are quite a way away from being able to simply visualise a piece of software in our minds and it suddenly spring up into existence in front of us without any human expense of effort. We may be able to one day do that - especially if we continue to freely innovate - but for the moment we have what we have, and every little piece takes human resources; at least until we replace them with running code.

As the Drupal project and community grows we need more people to be involved in building and supporting the very foundations which support us as a whole, and if that means rambling on in a lengthy, potentially edgy blog post in order to perhaps gain just one more person as a contributor then, until I am able to express myself in a better way, I’ll be doing that. I gained Daniel’s permission to blog about our discussions, I think it’s important to open up our processes deeply so people can see where they can potentially help out and become part of the thing we commonly refer to as Drupal.

As for the BDFL topic, I think it has obviously shown to work out well so far for Drupal, as for whether it’s a long-term solution well that’s also obvious to humans ;) Seriously though, I have no issues with the current situation until something proves me otherwise, I still believe we have a way to go before we are able to dissolve the fine leadership Dries provides to the community he has successfully fostered for the last fifteen-or-so years now.

Dries always seems open to discussion and is the most patient person I’ve ever met, certainly holds a role I would stress out in five minutes doing. I don’t see it working any differently for the moment at least - perhaps it would take a fork to even prove something like that. Forks are a Good Thing as they show in the long run what works and what doesn’t, providing the ultimate freedom of expression in an interdependent community such as Drupal.

Community ahoy!

As Daniel and I furthered discussion, he said something which resonated so much with me my virtual self almost shocked itself to spring into eternal existence. Sadly it didn’t, but it now has this quote emblazoned in its tiny, tiny virtual mind: “We should sell the community not the CMS.”

As an independent consultant who sometimes still writes code for certain things (only 8 commits in Drupal 8 so far though!) but works with people far better than himself in the community to deliver world-class software it’s something I’ve been doing but had not heard it in this simple, switch around way before. I invest in visiting the community and see what wonderful things they are building and his words to me, meant when you sell the CMS, you sell a product. There’s expectations put on that product often now knowing how those expectations will pan out. When you sell a community, you focus on promoting the people in that community, and as a Free Software community, provided you join in in some way, you too can benefit from the output.

Selling Freedom

Let’s just get the issues with the notion of selling Free Software - and people - out of the way. I’m not saying ‘Selling out’, just ‘selling’. Making a sale is an exchange of value between two or more parties, for example “you’ve sold it to me, I’ll use Drupal for my voluntary community project web enabled systems, thank you kindly!”.

It’s been working for me ever since I made the decision last year to not work through agencies after having to deal with yet another bad implementation of a CMS. Drupal is far greater than this, and so is my life. Since then I’ve had nothing but win/win/win results and although my cashflow has taken a dive as longer projects take time to bear fruit, it’s temporary one I'm almost out of and I’m kinda enjoying hacking on some bad code to pay the rent but even there I believe I’ve managed to turn the situation around and have an interesting offline mobile project in the pipeline. Along with the great work we’re doing with CRM (topic for another post!), it’s all about working together and supporting each other, and you don’t get that from talking about Drupal as a CMS.

As Simon Sinek says, start with the “Why?”.

As for did you miss the boat with Drupal 8? Not if you start now. Don’t wait for Drupal 8, in fact don’t use Drupal. Be part of it. Trust the community of peers and do what you can to help the project move along, and if you don’t know what that is then that is most likely a good place to start looking.

Is it that time already?

I didn’t imagine for a minute it would take this long to just describe day zero but I believe it’s of value, please do leave your thoughts in the comments below. In the next part I will move onto the workshops of the week, i.e. the ones I went to ;) This will cover why Drupal 8 Rules Configuration Management and Data Storage, manages client expectations with Behat, and why sometimes hospitals may seem a good prospect, but only if there’s air conditioning!

Oh, and a boat party and an outside grill with live music. It's not all serious talk on the shores of Lake Balaton you know ;)

tags: DrupalatonDrupal 8Planet DrupalDrupal Planet
Categories: Elsewhere

VM(doh): Building a Drupal 8 Website with Composer

Planet Drupal - Sat, 15/08/2015 - 15:00

One of the many Drupal-specific tools we've had in the past has been Drush Make. While Drush Make is still a valid tool for building Drupal 8 websites, I believe Drupal's adoption of Composer is one of the biggest wins in the Drupal 8 release cycle.

Composer is widely used across the PHP community for dependency management. In Drupal 7, it's been becoming more common for Drupal modules to rely on the Composer Manager module instead of the Libraries module to install and manage libraries that can be installed via Composer. Managing third-party dependencies with Libraries was often a pain point in the development workflow, and Composer Manager improved on that by letting us leverage Composer. However, that still created an extra step in building and deploying code in that you had to tell Drupal to rebuild Composer Manager's composer.json file when dependencies changed or were updated.

Only recently has Drupal's core composer.json been separated to only manage core and allow developers to manage the composer.json file in the root directory. There are two packages related to Drupal core - drupal/core and drupal/drupal. The former only installs Drupal core and it's dependencies, while the latter also provides the necessary framework (including index.php) for building a Drupal app.

To get started, we'll first need to create our project. Since the normal Drupal index.php and structure is fine in our case, we'll just create a drupal/drupal project.

composer create-project drupal/drupal my-drupal-8-app 8.0.0-beta12

Depending on your connection and your machine, creating the project may take a while.

After the project is created, you will want to update the composer.json file in the project root to use the Drupal Packagist repository so that you can use packages from Drupal.org. The Drupal Packagist project parses Drupal.org projects and provides a resource for Composer to download them. Of course, this is not necessary if none of the modules that you are using are not at the normal Packagist site, but odds are you will be wanting packages from Drupal.org. You'll also see that we added a couple of modules: OPcache (8.x version not being package on Drupal.org at the time of this post) and Panels.

{ "name": "drupal/drupal", "description": "Drupal is an open source content management platform powering millions of websites and applications.", "type": "project", "license": "GPL-2.0+", "require": { "composer/installers": "^1.0.20", "drupal/core": "~8.0", "drupal/opcache": "dev-8.x-1.x", "drupal/panels": "8.3.0-alpha12" }, "minimum-stability": "dev", "prefer-stable": true, "config": { "preferred-install": "dist", "autoloader-suffix": "Drupal8" }, "extra": { "_readme": [ "By default Drupal loads the autoloader from ./core/vendor/autoload.php.", "To change the autoloader you can edit ./autoload.php." ] }, "repositories": [ { "type": "composer", "url": "http://packagist.drupal-composer.org" } ] }

Next run "composer install". As you watch the installation, you'll notice that a library that was not specified (crunch/fastcgi) was also downloaded. This is a library required by the OPcache module to make direct connections to FastCGI servers for managing OPcache. This shows the real power of Drupal 8 leveraging Composer. You don't need Composer Manager to manage the third party code that your modules depend on. You don't need to go through the hassle of manually updating libraries managed by the Libraries module. All you need to do is run composer update in your project root.

You'll also notice that only the Panels module was specified, but it's dependencies (Page Manager and Layout plugin) were also downloaded. This is because Drupal Packagist parses the .info.yml files and provides those dependencies for you in a way that is compatible with Composer.

This is a huge win for DX in Drupal 8. All Drupal module developers whose modules rely on third party libraries that are installable via Composer should (must, in my opinion) include a composer.json file in their project.

Keep in mind that there are still a few issues with this process. Though Drupal currently maintains all of it's core dependencies in /core/vendor, Composer still goes out and downloads them to /vendor. That's not a huge deal because the autoloader loads the right files, but it can cause confusion in an IDE.

Relying on Drupal Packagist also creates yet another #DrupalWTF in my opinion. There is already a perfectly good service out there for managing Composer packages (Packagist). The only thing really holding the Drupal community back from using that is the lack of adoption of semantic versioning in contrib. Hopefully, that will change soon.

Categories: Elsewhere

Lars Wirzenius: Obnam 1.14 released (backup software)

Planet Debian - Sat, 15/08/2015 - 13:48

I have just released version 1.14 of Obnam, my backup program. See the website at http://obnam.org for details on what the program does. The new version is available from git (see http://git.liw.fi) and as Debian packages from http://code.liw.fi/debian, and uploaded to Debian, and soon in unstable.

The NEWS file extract below gives the highlights of what's new in this version.

Version 1.14, released 2015-08-14

Bug fixes:

  • Since 1.9, Obnam has had trouble with sftp URLs for backup roots, particularly for URLs specifying the server's root directory. Dennis Jacobfeuerborn found the reason: the backup plugin was treating URLs as filenames. This should now be fixed.
Categories: Elsewhere

DataSmith: [Fixed] Get valid RSS by adding CDATA wrappers to RSS description elements

Planet Drupal - Sat, 15/08/2015 - 12:19
[Fixed] Get valid RSS by adding CDATA wrappers to RSS description elements

A couple weeks ago, I posted about a problem I was having getting RSS to validate because the description element contained HTML markup.

The solution turned out to be as easy as I expected, once I found the right place to look. The first place I went was the Views module, where I found views-view-row-rss.html.twig in the templates directory. "Perfect", I thought, "that's my boy." A quick edit later, followed by a couple cache clears and some head-scratching, I still wasn't seeing my change.

Barrett Sat, 08/15/2015 - 10:19
Categories: Elsewhere

Sune Vuorela: Debconf 2015 – 1

Planet Debian - Sat, 15/08/2015 - 07:59

When greeted by Clint with one single word: “kamelåså“, one has arrived to Debconf.

Categories: Elsewhere

Drupal core announcements: This Month in Drupal Documentation - August 2015

Planet Drupal - Sat, 15/08/2015 - 06:51

It's been a busy month in Drupal documentation land. Here's an update from the Documentation Working Group (DocWG) on what has been happening in Drupal Documentation in the last month or so. Sorry... because this is posted in the Core group as well as Documentation, comments are disabled.

If you have comments or suggestions, please see the DocWG home page for how to contact us. Thanks!

Notable Documentation Updates

(pages or sections that have been worked on recently, see notes below)

See the DocWG home page for how to contact us, if you'd like to be listed here in our next post!

Thanks for contributing!

(list of how many people have made updates in the last month, and the top few contributors, see notes below)

Since July 15th (our previous TMIDD post), 234 contributors have made 705 total Drupal.org documentation page revisions, including 4 people that made more than 30 edits -- thanks everyone!

Extra big shout-out to these contributors.

  • lolandese (111 revisions)
  • Wim Leers (49 revisions)
  • jhodgdon (41 revisions)
  • Francewhoa (30 revisions)

In the core issue queue there's been a lot of movement to improve in-line documentation as we continue to get closer to a release of Drupal 8. This patch to improved the TypedData documentation is a great example of the kind of work that's being done. https://www.drupal.org/node/2548279

In addition, there were many many commits to Drupal Core and contributed projects that improved documentation -- these are hard to count, because many commits combine code and documentation -- but they are greatly appreciated too!

Documentation Priorities

The Current documentation priorities page is always a good place to look to figure out what to work on, and has been updated recently.

Work on the Drpual 8 User Guide is moving along splendidly. We had two IRC meetings in the last month and the level of involvement has been great. Helping with this documentation is a great way to get started with documentation and to learn a bit about Drupal 8 while you're at it. The focus right now is on writing a first draft of each of the topics in the guide, and work is also underway to figure out a final home for the new guide in https://www.drupal.org/node/2522024. Follow https://groups.drupal.org/documentation for announcements and join us for our next IRC meeting.

If you're new to contributing to documentation, these projects may seem a bit overwhelming -- so why not try out a New contributor task to get started?

The Drupal Association staff have recently updated their 2015 roadmap and it currently includes a couple of big wins for documentation. Including work to convert sections of the community documentation into a more maintainable format. The issue here https://www.drupal.org/node/2533684 doesn't have a lot of information soon, but keep on eye on it. And/or watch this recording of the presentation from DrupalCon LA about the work being done on content strategy for Drupal.org to get an idea of what's coming. https://events.drupal.org/losangeles2015/sessions/content-strategy-drupa...

Upcoming Events
  • DrupalCon Barcelona, Spain, 21-25 September, with a session Let's talk about documentation and a documentation sprint on Drupal 8 documentation and the D8 User Guide. Please sign up for the sprint! Members of the DocsWG will be in attendence at DrupalCon and would love to chat with you about your ideas for improving Drupal's documentation or to help you find ways to get involved so come say hello anytime during the week.

If you're attending or helping to organize a Drupal event that will feature a documentation related sprint, or sessions let us know and we'll get it added to the list.

Report from the Working Group

We just recently had our regular monthly meeting, though it had actually been over a month since the last time we met. We didn't have a whole lot to discuss in that period, and had been putting a lot of time and effort into getting the Drupal 8 User Guide project underway. At our last meeting the big thing that came up was the need to develop a clear set of guidelines for when it is appropriate to delete a comment from either the community documentation or the api.drupal.org documentation. https://www.drupal.org/node/2515002. We've jotted down some ideas and plan to discuss this further at our next meeting in September. Afer which we'll post the ideas we've come up with for consideration before making anything official. Let us know in the issue if you've got any thoughts about what this should look like.

Categories: Elsewhere


Subscribe to jfhovinne aggregator