However, using the Rules module has several advantages for membership sites:
Here at OSTraining we teach Drupal, Joomla, WordPress and touch on other platforms such as Magento. All of these platforms use MySQL as their default database.
phpMyAdmin is free software written in PHP, intended to handle the administration of MySQL. phpMyAdmin is a very reliable tool when you need to directly access the data in your database.
This Thursday starts NYCcamp, which is gearing up to be a huge event.
This year they've expanded even more beyond Drupal to all free & open source technologies.
Most important to us at ThinkDrop is the first ever Aegir Summit. Most of the Aegir maintainers will be there discussing all of the cool things we are doing with it, and where to go from here. For the full schedule and to register, see http://nyccamp.org/summit/aegir-summit.
This event is going to be a turning point for the Aegir project. Three of the maintainers, Christopher Gervais, Cameron Eagans, and myself met at DrupalCon Los Angeles over lunch to discuss what to do next with the project.
We all agreed that there are many issues with Aegir as it stands. We saw that containerization was going to be the way to go in the future. We all agree that Aegir is so monolithic, so complex, and so full of legacy code that it might be easier to just start over using modern tools like symfony, ansible, and docker.
We even agreed that we (might) need a new name.
From this, Cameron wrote up the Aegir NG proposal on hackpad so we could all contribute our ideas.
At the Aegir Summit, we will be having a panel discussion to present these ideas to the community and get feedback on where to go from here.
I urge all of you to attend, or keep tabs from afar.The Future of Open Source Hosting
We know that many, many people need the promise of Aegir: easily deploy and update sites at scale. We all know that Aegir has many problems with delivering this promise
We know that outside of it's rather die hard fanbase, Aegir is not really well liked because of these problems.
If you are one of those people, I urge you to join the Aegir Next Generation cause. We are going to fix Aegir for good, and we need your help.Registration Ends Tomorrow!
Registration for Aegir training ends today, Monday July 13 at midnight ET. Registration for the Aegir Summit ends Tuesday, July 14 at midnight ET.
If you are attending NYCcamp, please register for the Aegir Summit. Even if you can only attend the panel, I promise you, it will be worth it!
Register for Aegir Summit at http://nyccamp.org/summit/aegir-summit. Register to attend the "Open Agency Site Factory" training at http://nyccamp.org/training/open-agency-site-factory-ops-freedom-aegirTags: aegirnyccampdevshopPlanet Drupal
As the Chair of the DrupalCamp Bristol Committee, I thought it would be great to share what I took away from organising Bristol's first DrupalCamp. I'm sure there's a few things to be learnt from this, and if not then at least it will make an interesting read!The Figures
Friday total sales: 74
Friday turnout: 64
Saturday total sales: 132
Saturday turnout: 109
Income (to be finalised): £12,805.00
Expenditure (to be finalised): £11,964.16
I'd be happy to share the figures with any new camp organisers, and answer any questions you might have - simply drop me an email.
A big thank you would also be appropriate at this point to Kris Klinkhammer for all her help at the Drupal Association.What went well?
The actual camp weekend was fantastic and we received a lot of great feedback. We had picked two amazing venues and a summer date, and luckily for us the weather did not disappoint; we even had lunch served outside!
We were worried at first when we realised we had to choose a different venue for each day, but in the end I think that worked out in our favour. St George's Hall in particular was a fantastic choice as our attendees were delighted to see the event held in such a unique venue, and started the weekend off in very high spirits.
- St Georges Hall: www.stgeorgesbristol.co.uk/venue-info/
A decision I’m glad we made was to introduce a Drinks Sponsor as a tier between Organisational and Gold Sponsors. Their fee was £1,000 which was put directly behind the bar of a superb venue - Goldbrick House - which was directly behind St George’s Hall. This decision had two advantages; not only were we not handling any cash, and therefore not subject to the 10% DA fees, but a bar tab of that size is a great way to ensure that all your attendees carry on late into the evening which creates a great networking opportunity.
At the core of the event we also had a fantastic variety of talks, so a big thank you to each and everyone of them.
- Léonie Watson giving her Saturday keynote on "The metamorphosis of accessibility"
We were also pretty lucky with the committee, since we had a total of 9 people and it meant no need for any other volunteers over the weekend. We used Trello for communication (separating a board for each key area) and had monthly meetings at the Microserve offices to ensure everything was on track.
Little tip: The initial meetings will be long. Get some rules in place, figure out how to make quick decisions, elect a chair early. The first few meetings were twice as long as the others, so get a few Pizza's expensed!What didn’t go so well?
We had initially attempted to have a sub-event on each day; Training would be held on the Friday within the same venue, and Sprints would be held on the Saturday. Unfortunately we barely sold any Training tickets so we had to cancel this, and although we had a great room for the Sprints, we simply didn’t publicise this enough and therefore it was barely used. We'd have liked to invite more people to sprint by giving them a free ticket, but because the sprints were in the same place as the camp, we had to acknowledge that each person would still be subject to the same "per head" cost - food & drink, t-shirt, merchandise etc - so we didn't do this unfortunately.
I should also thank Circle Interactive who provided us with a great deal on training. Although we weren’t at a financial loss by cancelling it they had put their time into putting something together and they were very understanding when we cancelled.Where could we improve?
What are the main points I'll be taking into year 2 and what is my advice to anyone approaching their first DrupalCamp?Take things easy on year one
We thought we had adhered to this rule by not having a Sunday conference day, but we should have also applied this to Training. We do look forward to putting a heavier focus on that next year though!Don’t think of everything as linear
We didn’t start selling tickets till the website was complete, we didn’t start on the website till we had agreed all the key information and we didn’t promote to speakers and sponsors till we had all details. In hindsight we could have taken a much less linear approach, which would have boosted sales early and got our speakers and sponsors on-board faster.
There's a couple of points I should empahsise on the back of this one:
- 8 months planning will suddenly catch up with you when you're 2 months away from the event and the ticket sales aren't what you expected. It really is important to not feel too comfortable in the early stages, and to get tickets and speaker requests out early.
- DrupalCamp already has a name for itself, so early bird tickets will sell regardless. We could have tweeted about early bird tickets before we even had the venues or any detail sorted; as long as the date is confirmed there'll be an audience who are happy to snap the tickets up without knowing the finer details!
We had email groups so everyone received everything (such as contact form submissions and EventBrite queries), yet it wasn’t always clear whose job it was to reply to certain things. One example here is sessions submissions which arrived via the website; it took a few weeks before somebody stepped up to manage this and confirm all the submissions, which really was hassle we could have avoided. As soon as someone offers to talk, get it confirmed asap!Pass responsibility on better throughout the process
It was good that all the team found sponsors and speakers, but we continued communication this way instead of passing communications on to the appropriate team member. If we were chasing payments, logos, or session info for example, we would ask the connected individual to do it as opposed to the person whose role it was to look after sponsors or speakers.Accept you will use discount codes, and put these into your marketing strategy
Admittedly this is the one thing I completely overlooked, as we had only thought about early bird Saturday tickets. We ended up creating a variety of discount codes which didn't really follow any plan, and became a little bit messy. We sent out camp specific discount codes to Brighton and London which was a nice gesture, but in the final month when we felt numbers were lagging a bit for the business day we ended up giving our speakers and sponsors heavily discounted ticket codes to pass on to other team members and friends. Although this worked to an extent, it didn't follow any structure and we ended up having a couple of refund requests from attendees who purchased full price tickets and felt a bit hard done by.Sessions and Speakers
Not surprisingly we had a great variety of feedback on this, both positive and negative. We also asked "What topics / speakers would you like to see at a future DrupalCamp?" so we now have some great feedback to help shape our next camp.
From an organisers point of view one of the largest problems we faced was a lack of gender diversity amongst speakers. I should clarify that although we were lucky enough to secure Léonie Watson for the Saturday keynote, there wasn't a single session submitted by a female speaker, which was really a shame.
I could probably write a whole post covering this area, so I'll go into more detail on how we are trying to be more inclusive for DC Bristol 2016 in another blog post at a later date.
How did you think it went?
We want to thank each and every person who attended the event, and we'd also like to ask for your feedback in order to make next year bigger and better.
We have a link to a survey hosted on Survey Monkey here. We would very much appreciate it if you could give us your feedback!
- People enjoying lunch outside in the sun
- The DCB 2015 Committee (minus Jon Hadley)
I'm excited to announce that starting today, Acquia is announcing we're ready to fully support our customers with Drupal 8. This means our professional services, our support, our product engineering, our cloud services … the entire company is ready to help anyone with Drupal 8 starting today.
While Drupal 8 is not yet released (as it has always been said, Drupal 8 will be "ready when it's ready"), the list of release blockers is dwindling ever closer to zero, and a beta-to-beta upgrade path will soon be provided in core. These factors, along with Acquia's amazing team of more than 150 Drupal experts (including a dedicated Drupal 8 engineering team that has contributed to fixing more than 1,200 Drupal 8 issues), gives us full confidence that we can make our customers successful with Drupal 8 starting today.
In the process of working with customers on their Drupal 8 projects, we will contribute Drupal 8 core patches, port modules, help improve Drupal 8's performance and more.
I'm excited about this milestone, as Drupal 8 will be a truly ground-breaking release. I'm most excited about the architectural enhancements that strongly position Drupal 8 for what I've called the Big reverse of the Web. For the web to reach its full potential, it will go through a massive re-platforming. From Flipboard to the upcoming release of Apple News, it's clear that the web is advancing into the “post-browser” era, where more and more content is "pushed" to you by smart aggregators. In this world, the traditional end-point of the browser and website become less relevant, requiring a new approach that increases the importance of structured content, metadata and advanced caching. With Drupal 8, we've built an API-driven architecture that is well suited to this new “content as a service” approach, and Drupal 8 is ahead of competitive offerings that still treat content as pages. Check out my DrupalCon Los Angeles keynote for more details.
Previously we wrote about connecting your website with external systems, and specifically, the benefits of connecting your site with your CRM . As with many problems, there are many ways to approach this.
Barnettech: The only Drupal themed game on the app store? The Evil Dr. Upal has run amok unleashing his mathematical demonic creatures?
Now available on the Apple app store (https://itunes.apple.com/us/app/math-maze-madness/id1010265925?mt=8&ign-...), and as a google Chrome app (https://chrome.google.com/webstore/detail/math-maze-madness/phladmjggbdn...). A FPS educational game and Learn math, play, and defeat the evil mathemagician.
— PerniciousPunk in Reddit's Ask me anything! to Neil McGovern, DPL.
What happened in the reproducible builds effort this week:Toolchain fixes
More tools are getting patched to use the value of the SOURCE_DATE_EPOCH environment variable as the current time:
- libxslt in #791815 (Dhole),
- texlive-bin via upstream (#792202) (akira),
- sphinx via upstream (Dmitry Shachnev).
In the “reproducible” experimental toolchain which have been uploaded:
- doxygen to support SOURCE_DATE_EPOCH (akira),
- debhelper now set SOURCE_DATE_EPOCH to the time of the latest debian/changelog entry when exporting build flags, patch sent as #791823 (Dhole),
- epydoc to support SOURCE_DATE_EPOCH (Reiner Herrmann),
- texlive-bin (akira) and libxslt (Dhole) with the aforementioned support for SOURCE_DATE_EPOCH.
Johannes Schauer followed up on making sbuild build path deterministic with several ideas.Packages fixed
The following 311 packages became reproducible due to changes in their build dependencies : 4ti2, alot, angband, appstream-glib, argvalidate, armada-backlight, ascii, ask, astroquery, atheist, aubio, autorevision, awesome-extra, bibtool, boot-info-script, bpython, brian, btrfs-tools, bugs-everywhere, capnproto, cbm, ccfits, cddlib, cflow, cfourcc, cgit, chaussette, checkbox-ng, cinnamon-settings-daemon, clfswm, clipper, compton, cppcheck, crmsh, cupt, cutechess, d-itg, dahdi-tools, dapl, darnwdl, dbusada, debian-security-support, debomatic, dime, dipy, dnsruby, doctrine, drmips, dsc-statistics, dune-common, dune-istl, dune-localfunctions, easytag, ent, epr-api, esajpip, eyed3, fastjet, fatresize, fflas-ffpack, flann, flex, flint, fltk1.3, fonts-dustin, fonts-play, fonts-uralic, freecontact, freedoom, gap-guava, gap-scscp, genometools, geogebra, git-reintegrate, git-remote-bzr, git-remote-hg, gitmagic, givaro, gnash, gocr, gorm.app, gprbuild, grapefruit, greed, gtkspellmm, gummiboot, gyp, heat-cfntools, herold, htp, httpfs2, i3status, imagetooth, imapcopy, imaprowl, irker, jansson, jmapviewer, jsdoc-toolkit, jwm, katarakt, khronos-opencl-man, khronos-opengl-man4, lastpass-cli, lava-coordinator, lava-tool, lavapdu, letterize, lhapdf, libam7xxx, libburn, libccrtp, libclaw, libcommoncpp2, libdaemon, libdbusmenu-qt, libdc0, libevhtp, libexosip2, libfreenect, libgwenhywfar, libhmsbeagle, libitpp, libldm, libmodbus, libmtp, libmwaw, libnfo, libpam-abl, libphysfs, libplayer, libqb, libsecret, libserial, libsidplayfp, libtime-y2038-perl, libxr, lift, linbox, linthesia, livestreamer, lizardfs, lmdb, log4c, logbook, lrslib, lvtk, m-tx, mailman-api, matroxset, miniupnpd, mknbi, monkeysign, mpi4py, mpmath, mpqc, mpris-remote, musicbrainzngs, network-manager, nifticlib, obfsproxy, ogre-1.9, opal, openchange, opensc, packaging-tutorial, padevchooser, pajeng, paprefs, pavumeter, pcl, pdmenu, pepper, perroquet, pgrouting, pixz, pngcheck, po4a, powerline, probabel, profitbricks-client, prosody, pstreams, pyacidobasic, pyepr, pymilter, pytest, python-amqp, python-apt, python-carrot, python-django, python-ethtool, python-mock, python-odf, python-pathtools, python-pskc, python-psutil, python-pypump, python-repoze.tm2, python-repoze.what, qdjango, qpid-proton, qsapecng, radare2, reclass, repsnapper, resource-agents, rgain, rttool, ruby-aggregate, ruby-albino, ruby-archive-tar-minitar, ruby-bcat, ruby-blankslate, ruby-coffee-script, ruby-colored, ruby-dbd-mysql, ruby-dbd-odbc, ruby-dbd-pg, ruby-dbd-sqlite3, ruby-dbi, ruby-dirty-memoize, ruby-encryptor, ruby-erubis, ruby-fast-xs, ruby-fusefs, ruby-gd, ruby-git, ruby-globalhotkeys, ruby-god, ruby-hike, ruby-hmac, ruby-integration, ruby-jnunemaker-matchy, ruby-memoize, ruby-merb-core, ruby-merb-haml, ruby-merb-helpers, ruby-metaid, ruby-mina, ruby-net-irc, ruby-net-netrc, ruby-odbc, ruby-ole, ruby-packet, ruby-parseconfig, ruby-platform, ruby-plist, ruby-popen4, ruby-rchardet, ruby-romkan, ruby-ronn, ruby-rubyforge, ruby-rubytorrent, ruby-samuel, ruby-shoulda-matchers, ruby-sourcify, ruby-test-spec, ruby-validatable, ruby-wirble, ruby-xml-simple, ruby-zoom, rumor, rurple-ng, ryu, sam2p, scikit-learn, serd, shellex, shorewall-doc, shunit2, simbody, simplejson, smcroute, soqt, sord, spacezero, spamassassin-heatu, spamprobe, sphinxcontrib-youtube, splitpatch, sratom, stompserver, syncevolution, tgt, ticgit, tinyproxy, tor, tox, transmissionrpc, tweeper, udpcast, units-filter, viennacl, visp, vite, vmfs-tools, waffle, waitress, wavtool-pl, webkit2pdf, wfmath, wit, wreport, x11proto-input, xbae, xdg-utils, xdotool, xsystem35, yapsy, yaz.
Please note that some packages in the above list are falsely reproducible. In the experimental toolchain, debhelper exported TZ=UTC and this made packages capturing the current date (without the time) reproducible in the current test environment.
The following packages became reproducible after getting fixed:
- 389-admin/1.1.42-1 uploaded by Timo Aaltonen, original patch by Chris Lamb.
- aroarfw/0.1~beta5-2 uploaded by Patrick Matthäi, original patch by akira.
- clfft/2.4-2 by Ghislain Antony Vaillant.
- custom-tab-width/1.0.1-3 by Daniel Kahn Gillmor.
- debirf/0.35 uploaded by Daniel Kahn Gillmor, original patch by Chris Lamb.
- enigmail/2:1.8.2-3 by Daniel Kahn Gillmor.
- flashproxy/1.7-4 by Ximin Luo.
- getdns/0.2.0-2 by Daniel Kahn Gillmor.
- glfw3/3.1.1-1 by James Cowgill, reported by akira.
- gpgme1.0/1.5.5-3 by Daniel Kahn Gillmor.
- jzmq/3.1.0-4 by Jan Niehusmann.
- libcommons-cli-java/1.3.1-1 by tony mancill.
- liblo/0.28-5 uploaded by Felipe Sateler, original patch by akira.
- libmoe/1.5.8-2 uploaded by TANIGUCHI Takaki, original patch by Chris Lamb.
- libnet-interface-perl/1.012-2 uploaded by gregor herrmann, original patch by Chris Lamb.
- libxmlenc-java/0.52+dfsg-4 by Emmanuel Bourg.
- lintian/2.5.33 by Niels Thykier.
- litecoin/0.10.2.2-1 uploaded by Dmitry Smirnov, original patch by Chris Lamb.
- node-ws/0.7.2+ds1.349b7460-1 by Ximin Luo.
- pyevolve/0.6~rc1+svn398+dfsg-7 uploaded by Christian Kastner, original patch by Juan Picca.
- sendmail/8.14.9-3 by Andreas Beckmann.
- uthash/126.96.36.199+git20150507-2 by Ilias Tsitsimpis, report by Jakub Wilk.
Ben Hutchings upstreamed several patches to fix Linux reproducibility issues which were quickly merged.
Some uploads fixed some reproducibility issues but not all of them:
- apt-dater/1.0.2-1 uploaded by Patrick Matthäi, original patch by Dhole, fixed upstream by Thomas Liske.
- argyll/1.7.0+repack-4 by Jörg Frings-Fürst.
- grads/2:2.0.2-4 by Alastair McKinstry.
- kfreebsd-10 by Steven Chamberlain.
- mariadb-10.0/10.0.20-2 by Otto Kekäläinen.
- xtel/3.3.0-18 uploaded by Samuel Thibault, original patch by Dhole.
Uploads that should fix packages not in main:
- fglrx-driver/1:15.7-1 uploaded by Patrick Matthäi, fixed by Andreas Beckmann.
- pycuda/2015.1.2-1 uploaded by Tomasz Rybak, patch by Juan Picca.
Patches submitted which have not made their way to the archive yet:
- #787675 on ricochet by Daniel Kahn Gillmor: use the debian/changelog date in the manpage.
- #791648 on fish by Chris Lamb: sort header files in documentation.
- #791691 on fritzing by Chris Lamb: sort the documentation author list using the C locale.
- #791834 on bitcoin by Reiner Herrmann: sort sources files using the C locale.
- #791845 on yacas by Reiner Herrmann: sort hints using the C locale.
- #791851 on scowl by Reiner Herrmann: sort dictionary files using the C locale.
- #791913 on ceph by Chris Lamb: sort configuration file names.
- #791923 on alpine by Chris Lamb: use debian/changelog date as build date and use debian as the builder hostname.
- #791960 on leveldb by Reiner Herrmann: sort sources files using th e C locale.
- #792054 on ben by Reiner Herrmann: use debian/changelog date as bui ld date.
- #792056 on val-and-rick by Reiner Herrmann: sort sources by filenames.
A new package set has been added for lua maintainers. (h01ger)
tracker.debian.org now only shows reproducibility issues for unstable.
Holger and Mattia worked on several bugfixes and enhancements: finished initial test setup for NetBSD, rewriting more shell scripts in Python, saving UDD requests, and more…debbindiff development
Reiner Herrmann fixed text comparison of files with different encoding.Documentation update
286 obsolete reviews have been removed, 278 added and 243 updated this week.
43 new bugs for packages failing to build from sources have been filled by Chris West (Faux), Mattia Rizzolo, and h01ger.
Reiner Herrmann has submitted patches for OpenWrt.
I've used Reddit for many years. I used it for many years without an account, but eventually I made one. The site has always had its share of unpleasantness, people who're more interested in tearing down than in building. In recent years, it's gotten worse, and getting out of hand.
During the fairly short reign of Ellen Pao as CEO, I found things to be getting better. The site was starting to make it clear that harrassment, for example, was unacceptable. Unsurprisingly, this made some of the nastier people quite upset.
Pao has now resigned, and a new CEO has started. He had an "Ask Me Anything" session yesterday, and made it clear that he's changing things. From my point of view, it's changing to the worse. He made it clear that as long as Reddit itself does not get into legal trouble, and harrassment isn't too overt or particularly public, it's OK now.
I've closed my Reddit account.
Having a wonderful summer, full of simple sweet pleasures. Mom visited today, and I made her this blackberry chocolate tart. Picking berries, swimming in the river, perfect summer day.
Earlier this summer, camped at in the dunes on Ocracoke island with many family and friends. Thunderstorms away across the sound flashed and grumbled long in the night, but mostly missed us. Jupiter and Venus in conjunction overhead, and the arch of the milky way completed the show.
The monthly security release window for Drupal 6 and Drupal 7 core will take place on Wednesday, July 15.
This does not mean that a Drupal core security release will necessarily take place on that date for either the Drupal 6 or Drupal 7 branches, only that you should prepare to look out for one (and be ready to update your Drupal sites in the event that the Drupal security team decides to make a release).
There will be no bug fix/feature release on this date; the next window for a Drupal core bug fix/feature release is Wednesday, August 5.
The Independent reports that David Cameron wishes to ban the instant messaging application WhatsApp due its use of end-to-end encryption.
That we might merely be pawns in manoeuvring for some future political compromise (or merely susceptible to cheap clickbait) should be cause for some concern, but what should worry us more is that if it takes scare stories about WhatsApp for our culture to awaken on the issues of privacy and civil liberties, then the central argument against surveillance was lost a long time ago.
However, the situation worsens once you analyse the disapproval in more detail. One is immediately struck by a predominant narrative of technical considerations; a ban would be "unworkable" or "impractical". A robust defence of personal liberty or a warning about the insidious nature of chilling effects? Perhaps a prescient John Locke quote to underscore the case? No. An encryption ban would "cause security problems."
The argument proceeds in a tediously predictable fashion: it was already difficult to keep track whether one should ipso facto be in favour of measures that benefit the economy, but we are suddenly co-opted as technocrats to consider the "damage" it could to do the recovery or the impact on a now-victimised financial sector. The «coup-de-grâce» finally appeals to our already inflated self-regard and narcissism: someone could "steal your identity."
The tragedy here is that I suspect that this isn't what the vast majority of people really believe. Given a hypothetical ban that could, somehow, bypass all of the stated concerns, I'm pretty upbeat and confident that most people would remain uncomfortable with it on some level.
So what, exactly, does it take for us to oppose this kind of intervention on enduring principled grounds instead of transient and circumventable practical ones? Is the problem just a lack of vocabulary to discuss these issues on a social scale? A lack of courage?
Whilst it's certainly easier to dissect illiberal measures on technical merit than to make an impassioned case for abstract freedoms, every time we gleefully cackle "it won't work" we are, in essence, conceding the central argument to the authoritarian and the censorious. If one is right but for the wrong reasons, were we even right to begin with?
The Forum One team is thrilled to be heading to the United Nations for this year’s NYC Camp. We’re looking forward to seeing both new and familiar faces, and sharing some of the newest things the team’s been working on in terms of data visualization, Drupal development, and automation.
Here is a look at the sessions we’ll be leading:
Drupal 8 is coming. When we reach “Issue Queue Zero,” your business or organization needs a sensible strategy for upgrading your sites to D8. There are variety of questions to consider including available talent, budgets, goals, and aspirations. This session will be of particular interest to executives, business owners, nonprofit professionals, communications staff, and site managers who face this increasingly pressing decision regarding D8.
- William Hurley – Manager of Technical Development
- William Hurley – Manager of Technical Development
That moment when new code makes it way out into the world is the most fragile part of the process. We take for granted all the steps that need to happen to make sure it goes correctly. In this session we’ll be demonstrating technologies to turn deployments from a nail biting experience into a simple “one click and done.” You’ll see the power of Jenkins to manage the continuous integration process and Capistrano to deploy changes and how to drive it all from changes in your git repository.
- Keenan Holloway – Senior Developer
There’s no escaping the fact that data visualization is hot right now. Everyone wants to tell their data’s story visually, whether it be through a map, chart, or more detailed presentation. The difficulty is there are so many different tools that solve this, each one with their own benefits and limitations. We feel D3.js is the most awesome tool for handling this task — which is the approach we’ve used for the sites like the Nation’s Report Card, BlueCross BlueShield of North Carolina, GlobalChange, and others.
- Chaz Chumley – Technical Architect
Prepare yourself with the skills you’ll need to hit the ground running as a Drupal 8 themer. This training will be a hands-on, an interactive workshop where we will build a Drupal 8 theme from the ground up using Drupal 8’s new template engine, Twig.
We will recommend best practices around template logic, determining what should be themeable output in the first place, leveraging theme suggestions and reusable theme components, overriding and extending templates, and more. We will also talk about why themers should be excited for the tools that contrib can provide in Drupal 8.
This workshop is intended for Drupal themers and front-end developers. Knowing the basics of git will be helpful but is not necessary. No PHP knowledge is necessary but a laptop is required.
Twig is being improved in Drupal 8 Core @ http://drupaltwig.org/ and you are all welcome to join in and help make Drupal 8 theming awesome!
Here's an odd thing about the git bisect command: It has only 1 option (--no-checkout). Compare with eg git commit, which has 36 options by my count.
The difference is largely down to git having a pervasive culture of carefully edited history. We need lots of git commit options to carefully produce commits that look Just Right. Staging only some of the files we've edited, perhaps even staging only some of the changes within a file. Amend that commit if we notice we made a mistake. Create a whole series of beautiful commits, and use rebase later to remix them into a more beautiful whole.
Beautiful fake histories. Because coding is actually messy; our actual edit history contains blind alleys and doublings back on itself; contains periods of many days the code isn't building properly. We want to sweep that complexity away, hide it under the rug. This works well except when it doesn't, when some detail airbrushed out of the only remaining history turns out to be important.
Once we have these beautiful fake histories of changes, we can easily bisect them and find the commit that introduced a bug. So bisect doesn't need a lot of options to control how it works.
I'd like to suggest a new option though. At least as a thought experiment. --merges-only would make bisect only check the merge commits in the range of commits being bisected. The bisection would result in not a single commit, but in the set of commits between two merges.
I suspect this would be useful for faster bisecting some histories of the beautiful fake kind. But I know it would be useful when the history is messy and organic and full of false starts and points where the code doesn't build. Merges, in such histories, are often the points where things reach a certian level of beauty, where that messy feature branch got to the point it all built again (please let this happen today) and was merged into master. Bisecting such points in a messy organic history should work about as well as bisecting carefully gardened histories.
I think I'll save the full rant about beautiful fake history vs messy real history for some other day. Or maybe I've already ranted that rant here before, I can't remember.
Let's just say that I personally come down on the side of liking my git history to reflect the actual code I was working on, even if it was broken and even if I threw it away later. I've indeed taken this to extreme lengths with propellor; in its git history you can see every time I've ever run it, and the version of my config file and code at that point. Apologies to anyone who's been put off by that... But oddly, propellor gets by far more contributions from others than any of my other haskell programs.
All in the form of beaufiully constructed commits, naturally.
Drupal.org is one of the largest and oldest continuously-operating Drupal websites in the world. The amount of content we have is both a blessing and a curse. Historically developed and maintained by community volunteers, Drupal.org has been growing organically for over a decade. New content keeps being added, while no major changes to information architecture and navigation have made it easily findable. With about 1.2 million pieces of content, the need to overhaul Drupal.org has become obvious. But where do we even start?
It is tempting to jump straight into content strategy, kick off a massive content audit, and talk about content types and archival processes. However, to develop comprehensive content strategy, you need to understand what kind of content is actually needed on your site. And to understand that, you need to know your audience.Researching the Users
We underwent a user research project which lasted from May to August of 2014. Through a public request for proposal (RFP) process, we partnered with Whitney Hess, a user experience coach, to help guide the Drupal Association staff and community volunteers through the research.
The project kicked off with a full-day workshop at DrupalCon Austin. Participants included representatives from the Drupal Association staff and the Board of Directors, community volunteers, and advisors. Together, we brainstormed objectives for the new Drupal.org and metrics of success, as well as provisional user personas – our ideas about what those personas could be.
With that groundwork in place, we set out to validate (or disprove) our assumptions with real people.
We talked to 30 different users of our website located in the Americas and Europe: people who were new to Drupal, long-term community members, ex-Drupalistas, developers, site builders, designers, content strategists, PMs, and more. We sat down for an hour with each one of them and asked numerous questions about the way they use Drupal.org, things they enjoy about it, and their frustrations.
Once we had the data from the interviews, we started to synthesize it and develop personas.
A couple of months ago, I was invited to give the starting course for the Masters degree in Free Software in the Universidad Andina Simón Bolívar university. UASB is a multinational university, with campuses in (at least) Ecuador, Chile, Bolivia and Colombia; I was doubtful at first regarding the seriousness of this proposal and the viability of the program, but time made my doubts disappear.
Bolivia is going through an interesting process, as they have one of the strongest worded government mandates for migration to free software for the public administration in the next couple of years; this migration has prompted the interest of many professionals in the country. In particular, we have over 40 registered people for this Masters degree. Studying a Masters degree is a long-term commitment which signifies a big time investment, and although many of the student are quite new to the idea of free software, they are willing to spend this time (and money, as the university is privately owned and charges for its enrollment).
I gave this class together with Alejandro Miranda (a.k.a. @pooka), as we have a very good pair-teaching dynamics; we had already given many conferences together, but this is the first time we had the opportunity to share a whole course — and the experience was very good. We have read the students' logs, and many of them clearly agree with this.
I had to skip two of the (ten) lessons, as I travelled from Mexico to Argentina halfway through it (of course, we brought the babies to meet my wife's family and friends!), so we had also the honor of having Esteban Lima fill in for those sessions.
I am very happy and grateful that the University took care to record our presentations and intend to record and put online all of the classes; as we were the first in the program, there were some understandable hiccups and some sessions were lost, but most are available. Here they are, in case you are interested in refering to them:Topic Video (my server) Video (Youtube) Introduction to free software Watch Watch History Watch Watch Free culture N/A N/A The effects of free software Watch Watch Free software and open standards related to technologic soverignity Watch Watch The free software ecosystem Watch Watch Free software implementation in Bolivia Watch Watch Introduction to intelectual property: Copyright, patents, trademarks, etc. Watch Watch Who is "the community" and why do we speak about it? Watch Watch Current status and challenges for the movement N/A N/A
All in all: This was a great opportunity and a joy to do. I think the material we used and developed fit well what was expected from us, and we had fun giving somewhat heterodox readings on our movement.
Yesterday at the local LUG (@Gruppo Linux Como ) somebody commented on the mix of old and new in my cloth-wrapped emergency electronics kit (you know, the kind of things you carry around with a microcontroller board http://espruino.com and a few components in case you suddenly have an idea for a project :-) ).
This is the kind of things it has right now: components tend to change in time.
And yes, I admit I can only count up to 2, for higher numbers I carry a reference card :-)
Anyway, there was a bit of conversation on how this looked like a grandmother-ish thing, especially since it was in the same bag with a knitted WIP sock, and I mentioned the Japanese #furoshiki revival and how I believe that good old things are good, and good new things are good, and why not use them both?
Somebody else, who may or not be @Davide De Prisco asked me to let him have the links I mentioned, which include:
* Wikipedia page: Furoshiki https://en.wikipedia.org/wiki/Furoshiki
* Guide from the Japanese Ministry of the Environment on how to use a furoshiki http://www.env.go.jp/en/focus/attach/060403-5.html (and the article http://www.env.go.jp/en/focus/060403.html)
* A website with many other wrapping tecniques http://furoshiki.com/techniques/.
This was our 7th critical issues discussion meeting to be publicly recorded in a row. (See all prior recordings). Here is the recording of the meeting video and chat from today in the hope that it helps more than just those who were on the meeting:
If you also have significant time to work on critical issues in Drupal 8 and we did not include you, let me know as soon as possible.
The meeting log is as follows (all times are CEST real time at the meeting):
[11:21am] berdir: pfrenssen: that's one scary profile picture ;)
[11:22am] pfrenssen: haha it zooms in nicely :D
[11:23am] jibran: berdir: yay! https://bugs.php.net/bug.php?id=69996&edit=1 got fixed.
[11:26am] jibran: https://www.drupal.org/project/issues/search/drupal?status=1&status=13&status=8&status=14&status=4&priorities=400&categories=1&categories=2&categories=5&version=8.x
[11:27am] jibran: https://www.drupal.org/node/2497243
[11:27am] Druplicon: https://www.drupal.org/node/2497243 => Rebuilding service container results in endless stampede [#2497243] => 139 comments, 34 IRC mentions
[11:27am] GaborHojtsy: jibran: that’s the one that Fabianx-screen is talking about, right? :)
[11:29am] Fabianx-screen: Issues I talked about:
[11:29am] Fabianx-screen: https://www.drupal.org/node/2529516
[11:29am] Druplicon: https://www.drupal.org/node/2529516 => Decouple tests from relying that $container is a container builder [#2529516] => 10 comments, 9 IRC mentions
[11:30am] jibran: https://www.drupal.org/node/2502785
[11:30am] Druplicon: https://www.drupal.org/node/2502785 => Remove support for $form_state->setCached() for GET requests [#2502785] => 119 comments, 23 IRC mentions
[11:30am] jibran: https://www.drupal.org/node/2505989
[11:30am] Druplicon: https://www.drupal.org/node/2505989 => Controllers render caching at the top level and setting a custom page title lose the title on render cache hits [#2505989] => 54 comments, 10 IRC mentions
[11:30am] pfrenssen: I can't talk
[11:30am] Fabianx-screen: https://www.drupal.org/node/2530586
[11:30am] Druplicon: https://www.drupal.org/node/2530586 => Read-Only Container is not working properly. [#2530586] => 0 comments, 4 IRC mentions
[11:30am] pfrenssen: nice construction noises :)
[11:30am] pfrenssen: https://www.drupal.org/node/2524082
[11:30am] Druplicon: https://www.drupal.org/node/2524082 => Config overrides should provide cacheability metadata [#2524082] => 82 comments, 24 IRC mentions
[11:31am] pfrenssen: That's what I am working on. Next steps are to address the last remarks.
[11:31am] pfrenssen: It's clear how to move forward.
[11:31am] GaborHojtsy: pfrenssen: :)
[11:32am] jibran: https://www.drupal.org/node/2525910
[11:32am] Druplicon: https://www.drupal.org/node/2525910 => Ensure token replacements have cacheability metadata and that it is bubbled in any case [#2525910] => 72 comments, 10 IRC mentions
[11:32am] jibran: https://bugs.php.net/bug.php?id=69996&edit=1
[11:33am] GaborHojtsy: https://www.drupal.org/node/2512718
[11:33am] Druplicon: https://www.drupal.org/node/2512718 => EntityManager::getTranslationFromContext() should add the content language cache context to the entity [#2512718] => 144 comments, 46 IRC mentions
[11:35am] GaborHojtsy: https://www.drupal.org/node/2529516
[11:35am] Druplicon: https://www.drupal.org/node/2529516 => Decouple tests from relying that $container is a container builder [#2529516] => 10 comments, 10 IRC mentions
[11:37am] jibran: https://www.drupal.org/node/2528178
[11:37am] Druplicon: https://www.drupal.org/node/2528178 => Provide an upgrade path for #2354889 (block context manager) [#2528178] => 36 comments, 7 IRC mentions
[11:40am] jibran: https://www.drupal.org/node/2454439
[11:40am] Druplicon: https://www.drupal.org/node/2454439 => [META] Support PHP 7 [#2454439] => 126 comments, 25 IRC mentions
[11:40am] berdir: jibran: http://d8php7bot.erwanderbar.de/
[11:42am] pfrenssen: yay! :D
[11:42am] GaborHojtsy: dawehner: alexpott: we are running out of topics to talk about :D any topics you wanted discussed while we are on the call?
[11:42am] GaborHojtsy: dawehner: alexpott: https://plus.google.com/hangouts/_/gspzs5s25ucfasw6puf7muif7ya
[11:43am] alexpott: GaborHojtsy: yep
[11:44am] jibran: https://www.drupal.org/node/2505989
[11:44am] Druplicon: https://www.drupal.org/node/2505989 => Controllers render caching at the top level and setting a custom page title lose the title on render cache hits [#2505989] => 54 comments, 11 IRC mentions
[11:45am] dawehner: GaborHojtsy: oh let me try to join
[11:45am] GaborHojtsy: dawehner: alexpott is discussing title filtering
[11:45am] alexpott: https://www.drupal.org/node/2530474
[11:45am] Druplicon: https://www.drupal.org/node/2530474 => Discuss whether => 0 comments, 1 IRC mention
[11:46am] • dawehner tries to join again
[11:49am] dawehner: alexpott: GaborHojtsy I can't talk probably (given the speed of the net, can kinda listen) but I think allowing is a thing, given that people wanted something like tags
[11:57am] jibran: https://www.drupal.org/node/2493911
[11:57am] Druplicon: https://www.drupal.org/node/2493911 => Update guzzle, goutte and mink-goutte-driver to the latest release [#2493911] => 76 comments, 2 IRC mentions
[11:58am] jibran: https://github.com/guzzle/guzzle/pull/1167
[11:59am] pfrenssen: yay! D:
[12:00pm] pfrenssen: 14
[12:00pm] dawehner: https://www.youtube.com/watch?v=P_yl2WuiW4g
[12:00pm] pfrenssen: have a nice weekend!
I often find myself describing the digital domain to people who don't live and breathe it like I do. It's an intangible thing, and many of the concepts are coded in jargon. It doesn't help that every technology tool set uses it's own specific language, sometimes using the same words for very different things, or different words for the same things. What's a page? A widget? A layout? A template? A module, plugin or extension? It varies. The answer "depends".
Analogies can be a helpful communication tool to get the message across, and get everyone thinking in parallel.
One of my favourites, is to compare a web development project, to a landscape design project.
One of the first things you need to know, is who is this landscape for and what sort of landscape is it? The design required for a public park is very different to one suitable for the back courtyard of an inner city terrace house.
You also need to know what the maintenance resources will be. Will this be watered and tended daily? What about budget? Can we afford established plants, or should we plan to watch the garden grow from seeds or seedlings?
The key point of comparison, is that a garden, whether big or small, is a living thing. It will change, it will grow. It may die from neglect. It may become an un-manageable jungle without regular pruning and maintenance.
What analogies do you use to talk about digital design and development?
Image: XIIIfromTOKYO - Plan of the gardens of Versailles - Wikipedia - CC-BY-SA 3.0