Visiting Drupalhagen.dk 2013

Drupalhagen.dk is a conference in the center of Copenhagen.

My blog from 2012.

Sessions are:

Friday 8. November:

12:30 Välkomst bavl / Welcome to DrupalHagen!
12:45 Introduction to new technologies in Drupal 8
13:45 Editing Experience
15:00 Lightning talks

– Extending Google Drive to Drupal
– Destructible Developer Environments
– More to come.
16:00 Plugins into D8
17:00 – 17.45 Content strategy and platform architecture

Saturday 9. November:

11:00 Migrating bibliotek.dk to Drupal 7
12:00 Frokost
13:00 Front-end Automated Testing
14:00 Phone is ringing, oh my god! Give your clients support they need…
15:00  The Amazing Jeffrey A. McGuire a.k.a. jam
16:00 TWIG it

F12:45 Introduction to new technologies in Drupal 8

Camilla Krag Jensen @naxoc

External lib = not druapl
– in /vendor
– js: jQuery
– js: farbtastic – a wheel color picker
– PHP: Archive
– js: jQuery UI
– js: other
D8:
– PHP: Symfony – helper functions
– PHP: Composer – js dependancy/package manager
– PHP: PHPUnit – testing OOP classes, mocking – fast
– Assetic – a way to find and preprocess assets and libs, including Twig
– Guzzle – a wrapper for cURL – does http requests
– Doctrine commen – like symfony – helpers – passing code in comments
– Js: CKEditor
– Twig
– Js: Backbone – MVC
– Js: Underscore – utilities
– Js: Modernizr – detect browser capabilies

F13:45 Editing Experience

Rasmus Typo3 Neos – User experience lead –

“Neos” is new code – old code is trashed
In bootom is “flow”

CMS is a hub that interfaces a lot.

Karen McGrane: Wysiwtf

We need preview
– but not possible in multichannel envir (mobile, desktop)

Preview templates: Desktop, Mobile, English, Deutch

F15:00 Lightning talks

Extending Google Drive to Drupal

Antan Stonor anton (at) headnet.dk

A module – a feeds module plugin – “feeds gdrive”
What: A gDrive is imported into Taxonomy and into a content type.
How: Map tax and content with feeds importer

——————————-
Vagrant – Destructible Developer Environments

http://www.vagrantup.com/
Lars Linnet @ Adapt
@lslinnet

What: Reproduce/kill envirs – a farm can be made in one go.
Uses images – any type like VirtualBox, VMWare, Amazone deployment etc.
Sample setup: https://github.com/lslinnet/parrot
Based on: computerpeoples work: https://github.com/computerminds/parrot/
Controlled by: puppet – could also be by shift

Base setups: Provisia, Parrot, Quickstart, others
The setups includes images called *.box

——————————-
Bower, Grunt and Yeoman

Mikkel Høgh @mikl

Bower – dependancy downloader
Create bower.json includes dependancies
> bower install

Grunt – taks automation tool
Sample script does:
compile handlebars file
copy
lint

Several script can be found on the net

Yeoman – scaffolding tool

Example script for generating presentations:
https://github.com/slara/generator-reveal

Example script Armadillo for generating websites
https://github.com/Snugug/generator-armadillo

More generators on:
http://yeoman.io/community-generators.html

Search for e.g. Drupal

——————————-
MortenDK

@drupaldk
@drupalcamp
#drupalhagen
@drupalcon

Wish meetups

F16:00 Plugins into D8

Mikke Schirén @mikkdroid works@ Wunderkraut

symfony:
autoloader psr-0
routing
event dispatcher
dependency injection

.info is dead.
Now: .info.yml https://drupal.org/node/1935708
http://yaml.org/
http://en.wikipedia.org/wiki/YAML

https://drupal.org/node/2052601
Structure
/lib/Drupal/wunder_fine/Plugin/Field/FieldFormatter/WunderlinkFormatter.php :

namespace Drupal/wunder_fine/Plugin/Field/FieldFormatter
use Drupal/core/Field/FieldFormatter;
use Drupal/core/Field/FieldItemListInterface;

/**
* Plugin implementation of the ‘module_plain’ formatter.
*
* @FieldFormatter(
* id = “module_plain”,
* module = “module”,
* label = @Translation(“Plain”),
* field_types = {
* “module_field”
* }
* )
*/

… and more
https://drupal.org/sandbox/mikkeX/1935494

Almost all functions are plugins – like blocks
A few advance modules still needs to be modules
The modules is needed to structure the plugins

F17:00 – 17.45 Content strategy and platform architecture

Kaja Jacobsen works @ kk.dk
@kajajacobsen

Librarians / Editors needs to learn to think digital and be concerned about:
Data
Metadata
Content
Comunication …
Branding

ContentTypes:
– Primary: for pages
– Secondary: For concepts
– PanelPages with IPE
– Dynamic pages
– Views

New Node tabs – for linking content

Taxonomy – for navigation

S11:00 Migrating bibliotek.dk to Drupal 7

Søren Vibjerg svi (at) dbc.dk @hrfriborg
Martin Møller mmj (at) dbc.dk @hrmoller

http://bibliotek.dk/ – currently old site
http://bibliotek.dk/beta/da – the coming site
What: search and make reservations
Why Drupal: TING Collaboration
https://github.com/ding2
http://ting.dk/ (in DK)

Uses Drupal
– permissions
– custom modules
– almost not for database

Lots of external webservices
oss-services.dbc.dk

changed logging from watchdog to syslog

Deployment

github /Drupal.org
-> jenkins
–> betablocker –>
–> dib.ding –>
–> ? –>
–> ? –>

Git branches: Feature branches       ->          Develop     ->      master
                      |                             |                   |
                      v                             v                   v
Servers:         betablocker                     bib.ding            content  ->    prod

Translation: Drush node copy

Test frameworks
– Simpletest – does not behave same on MySQL and PostGres
– Selenium test
– Behat ? not yet tried

Unit testing
– should have decoupled PHP code from features

D8 would have helped
– PHPUnit – instead of simpletest
– Configuration
– Framework

Would have liked
– Workflow tools (wf)
– Aegir

S13:00 Front-end Automated Testing

Ruben @rteijeiro Teijeiro
Blog: http://drewpull.drupalgardens.com/
Tag: #drupal-fat

FAT is a Testrunner – you could instead use
– Selenium
http://karma-runner.github.io/0.10/index.html
http://dalekjs.com/

TestRunner is in Drupal

Need:
Two modules
https://drupal.org/project/testswarm
https://drupal.org/project/fat

UnitTests with
– QUnit or
– CasperJS or
– PhantomJS or
– Jasmine

How:
– Implement hook_testswarm_tests to define all your tests.
including jQuery.simulate for simulating user actions. uses timeout function set to 1000 ms.
– Create a javascript file containing QUnit code e.g. tests/bacon.tests.js
in modules/fat/tests
– Navigate to /testswarm-browser-tests.
e.g. https://drewpull.bitnamiapp.com/drupal-7

S14:00 Phone is ringing, oh my god! Give your clients support they need…

Marek Sotak @sotak

Enduser documentation
– Workshops – lots of prep
– Phone support – most expensive
– Support Chat – requires 1 person
– Web ticketing
– Knowledge base
30% Screenshots – update screens, when system is changed
23% Screencasts – has to re-record all

Personal best:
– Knowledge base – self help support

Not good:
– Manuals: never updated, never read

read more: zendesk.com, desk.com uservoice.com

Better UX – gives feel good and positive users

Drupal: https://drupal.org/project/advanced_help

Solution:
https://inlinemanual.com/
https://inlinemanual.com/platforms
https://chrome.google.com/webstore/detail/inline-manual-authoring-t/leiejllaoknebomjeebdjfeicdaaeijp?hl=en
– A chrome extension

UCD: User Centered Design

You need to interview customer to understand what he needs instead of building what he tells he wants.

Search box example:
Users typed blank or only one keyword
Action: Added text: Ask a question
Action: Added popular questions – links

S15:00  The Amazing Jeffrey A. McGuire a.k.a. jam

http://us.movember.com/mospace/1989590

Works at:
http://www.acquia.com/
– Drupal support

Acquia Cloud:
– Amazon EC2

Acquia Dev Desktop: (free download)
http://www.acquia.com/products-services/dev-desktop

Acquia Network:
– Insight, Search, Mollom
http://www.acquia.com/products-services/acquia-network/cloud-services/insight
https://drupal.org/project/acquia_insight

http://www.acquia.com/resources/ebooks

S16:00 TWIG it

@mortendk

Twig is a preprocessed PHP Template engine
#drupaltwig
irc: #drupal-twig
slides: http://bit.ly/twig-it-slides
http://twig.sensiolabs.org/doc/templates.html
http://en.wikipedia.org/wiki/Comparison_of_web_template_engines

Mortens example Theme:
https://github.com/mortendk/yggdrasil

The End.

Advertisements

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: