PNW Drupal Summit: An unseasonably warm time in Portland, remembering why this community and a noticeable amount of spiders
I had to double check the weather report from an alternative source when I was packing for Stumptown. My normal weather app told me highs in the upper 50s, a bit warmer than my home city of SF. Not that I am complaining. I was glad to not be rushing into sub zero temps as I flew north to P-Town for the first Drupal community event for me for the year, Pacific Northwest Drupal Summit
A couple things really stood out to me about this camp. First, this is a dry camp. Meaning there was no alcohol allowed at the official camp events from Friday to Sunday. While I can understand the benefits and the fact that this helps make it more inclusive and family friendly, it is not the standard in my Camp experience. At my time of writing I am still undecided how I feel about this and might update this post after further deliberation.
Secondly, this is one of the only times I was staying at the same hotel where the event was being held. We were at the University of Oregon’s University Place Hotel & Conference Center, which they describe as “Downtown Portland’s only Economical Hotel and Affordable Conference Center. Owned, Operated and Located on the campus of Portland State University and Open to the Public”. Emphasis mine. ‘Nuff said. I didn’t have to leave the building complex to get from my room to the booth or sessions. Super convenient but I was feeling a tad claustrophobic by end of Sunday. Also the hotel itself was likely very nice and state of the art in its prime, 40 or so years ago, but as a University training hotel, its age was showing with chipped furniture, stained decor and interesting plumbing sounds. There was a courtyard that had to be transversed and the unseasonably warm weather and moisture brought out a whole host of orb weavers gathered at each light fixture. Happy to report that the side effect was I was never bothered by a flying insect the entirety of my stay. It did make the whole thing feel much more camp like than most other events.
Also worth noting, I got to hang out with one of my remote colleagues from Pantheon while I was in Portland, Joshua Lieb. He worked the booth and that let me slip away to many a session, so sit back and get ready for many a session note below.
Food and Fun
Game Night
One of the defining characteristics of any Drupal community event with a game night. On Friday night about 30 or so folks gathered up in the Astoria Conference Room to play all manor of board games. While I didn’t play it myself I was enthralled with the mechanics of a new-to-me game called Dutch Blitz. Imagine Uno combined with War with some of the mechanics of Rummy. That is about all I understand of it anyway, but it was exciting to watch.
In lieu of a tweet from Game Night here is a tweet about a Dutch Blitz set.
I found a Dutch Blitz deck in LA! pic.twitter.com/GVcPOhCks6
— Madi E. (@madeye_madi) January 27, 2018
Day 1
Coffee and a leftover VooDoo Donut greeted me in the morning. Nothing else to report for food until lunch. Lunch was your standard fare of boxed lunches, but given a ticketing misunderstanding on my end, I had not been able to mark my dietary restrictions, so I ordered out to not put any undo strain on the lunch service or organizers. Portland has Veggie Grill locations, which as I have documented before, is one of my favorite chains ever and I will take any excuse to enjoy their cuisine. Turns out there was a perfectly good lunch option for me and I should have just trusted the organizing team as they got it right all along. Thank you for the options and well done.
Fueling up for the #SuperBowl with our friends at @KTLA https://t.co/qyMWRBjvGp
— Veggie Grill (@VeggieGrill) February 4, 2018
After Party
In the spirit of DrupalCon there was a Trivia Night as an after party. Pizza was flowing and sodas were served at the Puppet Labs office. There were vegan pies from Sizzle Pie which were spicy and satisfying as well as regular animal product based options from HOTLIPS . My Drupal and Pacific NorthWest trivia skills are not the strongest so I sat out and enjoyed some classic pinball and arcade games in the space. Eventually I made my way to join some of the other Drupal folks at a place I have been told is a traditional ending up spot for the community in Portland, Rialto’s Pool Hall. Many a good was had.
#PNWDS Trivia night pic.twitter.com/w0D3eBqnYz
— Dwayne McDaniel (@McDwayne) February 4, 2018
Day 2
See day 1. Same thing except I ate the very yummy grilled veggie wrap and chips for lunch. I realized later I never got a pic of lunch and can’t find one on twitter, so here is about what it looked like
Not actually from our lunch but a good representation of what went on
RT @KovarSound: Free boxed lunch = classy move. @UHDigital @JulieGrob putting on a heck of a conference #Awready2012 pic.twitter.com/In5qtsNc
— DJCottonHere.com (@DJCottonHere) March 28, 2012
Sessions
Opening Remarks and A Memorial for Mike Keran
Things kicked off with the normal fanfare and general interest announcements. We also got to hear a reading of the code of conduct (COC), which struck me as add at the time since most camps simply advise people that there is one and they should read it. But as I thought more and more about this over the camp I came to appreciate the thought behind this more and more. We are trying to be inclusive as we can at any camp. Putting the onus on the participants to only get the information through a single channel in and of itself is not very inclusive. Sharing the core values of the camp, which the COC are based on, is never going to be a bad idea and I would highly encourage other camps to follow this read and take the time to make sure everyone knows what resources are available.
Next, as we were all gathered in one place, the community remembered a colleague who was taken from this world last year. I was moved by the heartfelt words from each person whose life was touched by the work and by the spirit of Mike Keran. I personally never got the chance to meet him. Still I know the world was made a better place by his commitment to this project and to the community he devoted himself to in life. This was a first for me at a camp, beginning with such a somber note. It made me scribble a note to myself at the time that simply read “Community! That is what it is all about!”
#PNWDS tribute to Mike Keran pic.twitter.com/0uoEInTxn5
— Mike Carper (@mcarper) February 3, 2018
Saying “Yes” To The Drupal Community
Chris Teitzel
I don’t want to inflate any egos here but of the handful of people I can specifically point to as inspirations for how I live my life, Chris might be the best storyteller since he has some of the most amazing stories. This talk was filled with a very small glimpse into a life devoted to helping make the world better through technology. If you have been feeling a bit detached from the community or if you have not yet experienced a sense of community, watch this talk. It made me remember ‘why Drupal’. Chris didn’t even tell my favorite of his amazing Drupal stories, which I will not relate here as that is a future talk unto itself he will be rolling out later this year I believe. See all his talks and meet this guy in person when you get the chance. It is well worth it.
Raw Notes:
(Missed the first part)
Yes it is hard
there is a level where you doubt yourself and you feel like you suck
Lot of smart Drupal people
Baddy’s first experience was talking to Dries,
on day one
this does not
Seek out the people who are quiet and talk to them
pack man rule
take a stranger to have a drink
Noobs welcome
don’t be afraid, just code (not even good) and talk to everyone
Everyone is nice, seems too nice at first
but it is genuine
Go to the parties
it’s not about the parties it’s about the people
His firs conference was WWDC10
closed sourced conference
no one would share what they were doing
very weird specific questions that only served the asker
VS
DrupalCon Portland 2013
Open source
everyone shared everything, so much learning
Story of drinking scotch with Alex Pott
When strangers say, let’s hang out, say yes!
Go from just hanging out to adding to core committer talk
Found his local meetup
SeaDUG
Great community, he was a freelancer and didn’t interact with people that often in person
find your local meetup
Best business connections
and Friends from the local community
DrupalNinja? Go and present
What module are you pissed off at? (Everyone hates Views)
go early and plan to stay late
This summit is step one, now go and make community happen
What is your community moment, twitter thread
no matter what level of experience all are willing to code and help code
Drupal is Community run! By the people for the people
closed to Open Source
Communism for code, but it works really well
in the process we all prosper
So how did Drupal almost kill Chris?
DrupalCon Denver
Met Tropo at the sprint
did a hackathon
won the thing
sms radius filter alerts in Node
the earthquake in Haiti had happened
took this system to them
crazy story about getting stuck at airport
then ‘rescued’ by maybe mafia?
then on bus to destination, covered in dust and diesel soot
next time slightly more safe in back of trucks
worked with clinics to communicate better to share resources
delivered a lot of medicine
all because someone in an IRC channel gave him a chance
tropical storm had rolled through and almost killed him as well
now same SMS system helping the homeless in Washington DC
the path in Drupal can take you anywhere
ca change lives
say Yes to Drupal
The classic Drupal learning curve comic. #PNWDS Happy about all the initiatives ongoing to improve this in D8. pic.twitter.com/pIif2UxwwB
— hestenet (@TimLehnen) February 3, 2018
Standing up projects in minutes using BLT, Lightning, and DrupalVM
Dane Powell
One of the neat things about computer science is that at the end of the day it is just making light bounce off chip and doing a thing. How it does any one end goal can be accomplished a number of different ways and this becomes increasingly evident when you consider the tool chains that have been developed to get to that end goal. Github is filled with countless examples of variation on a theme. This talk really made me appreciate the fact I am truly standing on the shoulders of some really opinionated giants every time I $ lando push.
Raw Notes:
BLT: a project template
Lightning: Base distro for Enterprise D8
DrupalVM: Vagrant based local dev for Drupal
D8 only right now
Live Demo
history of the ecosystem
Backend and frontend evolved
Tools get complex
Drush, gulp, grunt, git, NPM, SASS
what you are deving vs what you are deploying
what is on Dev machine is code
Build Artifact are things that go to production environment
don’t want them to overlap
PHP is no longer the be all, end all of what we are doing
aslo new testing tools evolved
code sniffer, behat, phpunit,
meanwhile the local dev env was evolving
everyone gets sick of “it works on my machine”
common set of packages across all machines helps with this
but not complex enough (haha)
meanwhile PHP evolved
composer, (this is all in 2015 BTW)
continuous integration
no longer can do FTP to manage,
need a way to manage locally AND in cloud
Enter Config Management!
this is where we are at at the moment
THIS is the problem that BLT is trying to solve
it gets better
Real world consequences
you don’t use tools
no build process to manage dependencies
no auto testing
Or you spend all your time setting up and managing these things
there Has to be a better way
take all the tools, box the up and use these on all the environments
name it after a sandwich and BLT was born (retrofit name to BLT)
Build and Launch Tools
Devs become fungible, with minutes or maybe hours can work on any project
Before BLT: Projects are days or weeks setup
After: minutes or hours at worst
What else is it used for?
creating one offs for each issue
POCs are faster, more stable
Love Demos
easy to npm integrate with BLT
Easier to think of this for greenfield
heavy customizations or Composer special use on existing projects make this harder
retrofits are just hard
Deploy Update does not work on Acquia for this one person
You can override and mod yml
drush aliases uri can be passed out to the command line
id argument to set drush aliases you want
Deploy process pretty straightforward
blt deploy will pull git url, create
run same setup, strip out readme and things you don’t want
and there you go
Excited to learn about BLT, Lighting and DrupalVM working together at #PNWDS from @danepowell pic.twitter.com/4Hrawq7ILP
— Dwayne McDaniel (@McDwayne) February 3, 2018
Keynote
Drupal 9 and Backward Compatibility: Why Now is the Time to Upgrade to Drupal 8
Angela Byron “Webchick”
When I first heard that Webchick was not going to be there in person, I had a range of reactions from concern her daughter was OK to worrying about the technical details to some curiosity how this would affect the presentation effectiveness. Very happy to say the talk went off well and I loved every slide.
She dove into a quick refresher of what Drupal even is and what D8 is all about. Part of this overview up front mentioned some of the projects that are leveraging the CMS, but one really stood out in my mind from her description, the Open Y project. This is literally the tech world giving freely to a good cause to reduce IT costs all around and allow increasing functionality to all YMCAs so they can spend every budget dollar possible on their core cause of “strengthening community”. Made me feel very good about being there to be honest.
Then the meat of the talk was really on what to expect in the future as Drupal 9 is worked on and Drupal 8 is continually improved in the new 6 month release cycle. She even talked about how that 6 month release cycle is being discussed by the contributors and how we are all creating all the of these policies together. I can’t wait to spin up and play around with Project Umami, which is a slick but still evolving demo site to wow people with the breath of thing you can accomplish just with core. It is an interesting time to be part of this thing for sure.
Raw Notes:
unfortunately her daughter is sick
she is delivering from her home via Zoom
What is Drupal?
Flexible framework with an awesome community
30K active devs
hundreds donating to core
Cutting edge of community
edge case cool
D8 was pulling everything you needed into one framework
modern: Object oriented
Improved theming with Twig, simplified context
improved security
Config management in D8
Shout out from audience for D8
Decoupled
Composer
best practices, but still in flux, transition period
plugin system
interesting addition to D8, intimidating but made it easier to complrehend
You can build real sites out of the box
in D7, needed 20+ contrib models,
D8 all in core
Drupal momentum is going up
contrib module for D8 is the biggest issue right now
also go to release for most agencies
YMCA open Y distro
saves them tones of IT dollars
A history of D release management
D5 – 2007 – Jan 2011
D6 2008 til Feb 2016
D7 til D9
D8 – D10
longer release times
consequences, would be waiting for 4 years for D core features
also philosophy, breaking code, but not data, painful upgrade path
D8, every 4 months point releases to get new features out
this is new to 8
helps gets people look forward and helps backwards compatability
don’t break your site and modules
introducing LTS releases
then bug fixes only
then Security fixes only
better use of Experimental modules
because there are so many modules
dependent modules hard to find
experimental modules
beta modules to Drupal, eventually will make to core
earlier feedback
Alpha -> Beta -> Stable
now not shipping with Beta to make longer term stable more trustworthy
benefits, predictable release
new functionality is easier to get a hold of
JQuery example
D9 will just be a normal release cycle,
just like the point releases
every time you release D8. then must keep backwards compatibility recently
8.recent will work with 9.0 release
D9 when? Not yet
pre-reqs are public
expect 8. released for next couple years
Putting into practice
know the cycle https://www.drupal.org/core/release-cycle-overview
make sure you testing as early as you can
challenges for site owners and devs for the long release cycle
might be shortened, lively discussions happening
keep abreast of the compatibility changes, in the /list-changes/drupal page
groups.drupal.org/core – lower volume announcement list
backwards compatibility does not mean nothing will ever break, but will mark sections safe, that you can depend to keep doing the same way
release notes contain the ‘gotchas’
doing their best to call out issues in these notes, please read them
there is also a Roadmaps page /core/roadmap
what coming down the pipe
8.5.0 mid January just out of alpha
Migrate Initiative
making it easier to move to modern
not stable yet, but migration team considers api stable, just not for multi-language sites
API-First initiative also happening
beyond JSON API module
Layouts Initiative
creating landing page should be honest
WorkFlow Initiative
Outside-in – make it easier to understand for sitebuilder, WYSIWYG from admin
Out of the Box initiative
on the horizon – JS modernization – React in Drupal!
Automating updates
Theme component libraries
Data modeling
BUT These things DON’T happen without help
it is up to us to contribute to OSS
many ways to get involved
If it is working for you, D7 is still good for a while
but get on D8 asap since it is the future
big redesigns are ideal times
Don’t delay, try today!
Keynote going great, touching various favorite changes in D8. Although I love config import, oop PHP is probably my personal favourite. #PNWDS pic.twitter.com/cpPjMQptgW
— NickWilde (@NickWilde1990) February 3, 2018
Our Digital Transformation to Agile: Challenges and Insights
Chris Smith
I am currently very interested in more deeply understanding Agile methodology since my day job is relying more and more on Scrum based approaches. It was awesome to see a talk so clearly talk about the values and tie everything back to those. Too many things I am reading recently want to deep dive on specific parts of the process and just assume you are going to understand how it maps to the core ideas. Not only was the theory amazing but getting to hear the blow by blow of how his team adjusted and is still adjusting to agile was deeply encouraging. I feel much better about a number of things.
Raw Notes:
Intro
From Ottowa
OPIN (Open Initatives)
polled audience, mix of devs and freelancers, all types
all size of company
were really loose at OPIN at first
then got waterfall in place
one of values of project management wasn’t just time management
risk mitigation, how document and react to risks
we work on high risk projects
overspending
underestimating
Stakeholder management
Clients don’t know what they want
hard to get scope of a project
largely stakeholders don’t really know
PM made them get goals set
Waterfall works and better than nothing
first GANT chart appeared in 1917, from WWI
supply chain logistics from the battlefront
intro of waterfall
“Critical Path framework”
minimum viable product and timelines
1957 also PERT
Program evaluation risk technique
1965 – international project management org starts in Europe
1969 PMI is started, certs begin
same time as software dev was happening first time
SW dev projects are different than physical goods
PRINCE2
constraints and focus on that
1986 SCRUM is born for code
small teams with MVPs
docs came later
2001 Agile Manifesto
4 values, 12 principals
extreme programming frameworks
Agile is a manifesto not a hard PM system
Back to the OPIN story
Agency switches to agile
old way dev setup, dev, content migration, test, deploy
every step requires the previous step to be complete
this does not work perfect
not even close in reality
kept missing the goal line
waterfall was failing
evolved it
touchpoints and reporting
then modifying scope throughout the project
change orders and such
Sales Team said they were agile
WaterScrumFall is what they really were
realized that they had a way to go
SCRUM is one flavor of agile, there are others
iterations and sprint based
dev teams decides what they can focus on
demo and review
deliverables are tangible
not just coding, front end and content as well
tangible business value
also a Sprint retrospective
what did we do well and how we can get better
stakeholder meetings, requirement gatherings
biweekly or faster
on repeat
scrum ceremonies are important
bedrock of scrum
also job roles
Business Analyst
Scrum Master – hold people accountable
Dev Team – act as a unit, 3-5 people workng on a deliverable,
they are all accountable, no one person is accountable on a dev team
Manifesto is bedrock of what we do
Agile values
1 individuals and interactions over processes and tools
2 working/software over comprehensive docs
3 Customer Collaboration over Contract Negotiations
4 respond to change over following a plan
End up with the 12 agile principals
important to Chris
Don’t wait for a final launch for all value, get the value out the door incrementally and quickly
support, trust and motivate the people involved
self organizing teams
take all these with grain of salt
got to use what works for you
The Challenges!
Challenge: Commitment!
this stuff is hard
Sr. Management – not a short process, this takes years
also going to be expensive
training is mandatory
hire coaches or trainers
sometimes people say the wrong things and different understandings fracture teams
CFO needs to sign off and needs to see value
also dev team needs to buy in
How you get that buy in?
OPIN brought in expert and as a team talked through challenges
for other groups, more about how it would impact them and how job would change
make it really understood
People will have concerns
Challenge: Cross Functional teams
most teams are full of specialists
maybe not everyone had same general skills
not every dev is comfortable in working outside their bubble
instead of jumping straight to generalist, everyone had to have a secondary skill set
baby step
then pair programming
use this a lot
investing in your employees,
send them to conferences and buy them books and trainings
Challenge: Business Know-How
CXO understands things, but individual devs don’t always agree on these
everyone needs to agree on business outcome we are trying to acheive
gets us to value driven choices
training tech to translate to business terms will help the conversations
knowledge will distribute itself throughout organization
Challenge: Learning
professional development needs to be paramount
need to know the objectives and devs needs to stay up to date to keep edge
things change so fast
new platforms, D 6 month release cycle
always got to stay on top of it
allowing the team to fail, give them a 2 to 3 week expected to fall behind
in retrospective have to talk about how to get better
they figure it out themselves
need to allow teams to become cohesive and integrate and settle
the retro do not use negative motivators
ask if the manager should be in the room
remove fear of punishment
also traditional means (classes, confs, etc)
Challenge: Role Change
the new roles are often different than traditional ones
Scrum master for instance has to deeply understand the process
product owner is new responsibility mapping
be open to all members about what the roles look like and the responsibilities
what you did, what you will do, what needs to carry over and evolve
if the individual does not transition from their old role, frustration will occur
Leads to trust issues and turnover
Challenge: Trust
if you have an exec that brings the client’s stress onto the team, that is bad
negative motivation breaks trust, then retros are not open and the it does not work
at the first, management does not need to be at retros
practice constructive criticism and know the difference between const and neg
Challenge: Backlog
one client, one project this is easy
get way more complex with more than one
Need a single backlog in one comprehensive list
which priority is higher than the other
consolidated backlog is mandatory
Challenge: Stories
Used to tech requirements
Story is a requirement of scrum
focuses on the business outcome and actions and values
collaborate easily is the goal
that is how stories are formed
dev team needs to be able to understand the se stories and translate them to requirements
take a long time to transition
Challenge: Prioritization
backlog all seems important
hard to initially to clients
flexible scope and feature sets
instead guarantee that we are focused on the biz requirements
we delivered the max value given the constraints
Challenges: Estimates
hold its for what it is worth
they use “Party Poker”
uncovers risks as a group
reduces the needs
Challenge: Software
Get away from Basecamp
need reporting and planning and burn down charts
going to likely need to transition
takes time to train teams properly on the way you want to work
Learning about how @OPIN adopted #agile methods from CEO Chris Smith at #PNWDS pic.twitter.com/ojvct53g4F
— Dwayne McDaniel (@McDwayne) February 3, 2018
Git for teams: Go with the Flow
Michael Nielson
I give a git talk and I love git talks. The meat of what I went to see was The Wunderflow which I was unaware of until I read this talk description. What I walked away with much more. His excitement about the non-code uses for version control was pretty infectious. I’ve been arguing that lawmakers should adopt it, if just for diff. I was unaware that the German Parlement was using it. Here is one way: This Git Repository contains all German federal laws and regulations in Markdown format. The XML versions of the laws of www.gesetze-im-internet.de serve as the source.
Raw Notes:
History of Version Control
Enter Git
Git Jargon and Basics
repo, diff, local, commit, remote, push, branch
came from Linux in 2005
BitKeeper
Pay by the seat
large project was way too much for Linux foundation
OSS solution needed, so they built it
3 design criteria
1 take CVS as example of what not to do
Support distributed
Include very strong safeguards against corruption
to apply a patch in SVN 30 seconds
some commits were 200+ patches
you can apply patches via email in git
email list that is nothing but diffs
git for math nerds
directed acyclic graph
that is git at it’s heart
3 basic kinds of nodes
blobs – binary data
trees – contain metadata
commits – contains tree and blob state at a time of commit as well as commit parentage
all commits are one of a kind
same fingerprint collision is almost completely impossible
HEAD is the tip of the repo lives
that ref gets moved from commit to commit
git checkout HEAD finds the note on the branch tip
git tags make sure you are getting the right versions
graphic representations of a node
Why git and Drupal?
D born in 2001
Git 2005
there was a time before git when Drupal was on CVS
hot did it get on git
drupal.org/node/48818 (NOPE I COPIED IT WRONG)
Why?
CVS was archaic, renaming sucked, had to “Chase the head” whatever that means
Mercurial was the other system in contention
teams looked deeply and patch authors weighed in, Git won partially because of the ‘Mega Patch’ hard to review and vet
incremental history was impossible with the other systems
Blame (commit credit)
only core committers got credit in CVS
only time need wifi with Git is push or Pull
lack of modernization in other systems, Github was on the rise
devs like it
Git Add overview
-p ftw
git checkout
Git status
git stash you can get into merge conflicts quick with multiple stashes
git reset
HEAD vs Origin explanation (from audience question)
-p (check this flag out, very useful)
Git clean
-d remove dir
-i interactive mode
-n dry run
-f force (make it happen)
git diff
–staged
git bisect
git bisect start
git bisect good
git bisect bad
git bisect reset
Fast lastly
bad practices (not best practices)
git at git
bad commit messages
one single commit
using
force push – dangerous!
Git for teams
VCS for teams branching!
trick with branch management
Git Flow – read the post (find the slides)
keeping work in isolation as long as possible
git flow chart workflow walkthrough
An offshoot of this was the Wunderflow (from wunderkrout)
release to production from master
very similar but not quite same
commit to Develop on an ad-hoc basis
Develop is the new Master in this model
Merge vs rebase – scenario, pull in last minute changes from colleague
merge can result in 2 parents
rebase rewrites branch history
don’t rebranch shared branches
back tot he future!
merge is like “Previously seen on … ” catch up
blur of slides at the end
git accessibility
git for government (FTW!!!!!!)
german parlement used Git now
git for images
git for biotech
git for privacy – keybase
git-flight-rules
Fun with #Git and teams at #PNWDS from @oswebguy pic.twitter.com/5jSZvchzI5
— Dwayne McDaniel (@McDwayne) February 4, 2018
Configuration Workflow Automation
Greg Boggs
I had seen some early versions of slides for this talk before I went and went to see the updates. I always love a talk around automation and it was for certain one of those. I was nodded along and then it hit me. Config Management, and its many confusing aspects, was a specific issue he had repeatedly tried to solve and rather than just finding a quick workaround and letting the world fend for itself he had open sourced his approach and was here in front of me sharing exactly how it works line by line and asking for help to solve this for everyone else. That is a very amazing idea. Making the world better for everyone by sharing information. This is the very heart of FOSS. Moving ahead this is one of the stories I will tell about what makes this community so dang special. Thanks Greg.
Raw Notes:
Keep config in code
so many steps
so many steps
not automatic
human error is likely
I want config on each server the exact same
don’t want to think of it
demo of D8 config screens
went to smart devs and asked them
learned the Acquia way
drush and git
pretty solid route
config export
git add, commit, push
config import
done
BUT
we know that we will be editing config hundreds or thousands of times
if you forget to do config steps, things break
out of sync causes major issues
auto import config on page load
auto export config on save!
no drush required
UUID error though, he figured it out
turn config suite on and it does not care where config comes from
code walk through of what he wrote to automate this
drush completely dumps the old config, like deletes it
the trade off of his system checking for changes
but only happens if modified import files
drupal detects change and change happens
not instant and cost to do this route but safe
some drawbacks
Sr. Devs are very used to manually checking config before deploy
they lose this ability with the module,
Also, any change triggers, forces version control to mod files
this is actually a safe workflow but maybe different than you are used to
Dependency deletes –
on Config Save that used Delete, there is a dependency management system that gets invoked
D8 delete clean up does not write to config
really when delete block is largest point on this
active;y working on this feature
Features overrides? Maybe
if you give a distro to the world
need a way for a site to be different than all the others
he understands there is not a great way to natively handle this
#configuration management is not easy or automatic, @gregory_boggs says it should be, so he contributed code to the #drupal community. Thank you. #pnwds pic.twitter.com/brbjdVEpwn
— Dwayne McDaniel (@McDwayne) February 4, 2018
“Expecto Patronum” (or How I Learned To Stop Worrying And Love The Command Line)
Charles Jackson
Any talk that convinces me to install new command line tools or further explore old favorites is automatically going to be one of my favorite sessions. I installed Imagemagick’s convert and not have the resizing tool I have literally always dreamed of possessing. I learned new things about grep. I modified my alias to add -i to rm automatically. Also, Charles delivery was so energetic, whip-smart and joyful he had the whole room thoroughly engaged. It was clear he had a deep down passion for the command line that I would call downright inspiring. His name above point to his git repo, which has some fun stuff in it. Expecto Patronum!
Raw Notes:
Just like Harry Potter spells the command line is magic
it is complex to the uninitiated
its own language and seems hard to muggles
guard against the dark arts
Be as safe as possible
cat concatenate
cat settings.php
cat *.html
but it actually can concatenate!
cat *.pdf > concatedfiles.pdf
might not work on a newer system
output to
redirection
echo “Hello World” >> my_data_file.txt
just adds it to the end
| redirection
pass output from one command to another
cat lot.txt | mail -s “logs” it@hogwarts.edu
ls -l /tmp/* | sort –ignore-case > sorted.txt
ls -1R sites | wc -l (List everything in and below, then count all the words in all the files)
ls -lt | more
Bash Aliases
rm is super dangerous
-i is safety
alias rm=’rm -i’
automatic safety
alias mv -i
alias cp -i
tools
alias numusr =’netstat -an | egrep “443|80″ | wc -l’
History
alias h=’history’
!! releats the previous commands
! numberofcommand
page up and down with arrows works too
Bash Functions
convert
dos2unix() {cat $1 | ………}
dircomp() solaris command that never jumped to linux
recursively compare two directories
{diff -q $1 $2 ;}
sed ‘s/^Files /diff /g;s and / /g;s/differ$//g’ ;
Real time log file monitors
cd logfolder
tail -f access_log
tail -f access_log SSL_access_log
tail -f access_log | grep -i Googlebot
Unix commands have dozens of switches (parameters)
Where is the string? It’s either in a file or its in a DB”
how to search both
grep
global search for regular expressions and print
find a string in a file
works on everything in the same directory
but Drupal nests directory like mad
log files compress nicely but then cant search through them
zgrep and bzgrep
search through compressed files and works on multiple files at once
Recursive grep
grep -rn some_function_reference
-r = recursive
-i = case insensitive
-n = line number print
How to search the DB though
download and configure dumpxmltables.php script he wrote
Dumps tables to xml which we know how to grep that
super useful for broken sites
before mysql dump
then modify that one thing
and after dump
then dircmp before after to see all DB changes to DB
Manipulating images using convert from imagemagick.org
if you can do it with photoshop, you can do it with convert
convert between formats
resize, optimize
make animated gifs
convert: basic examples
convert img.jpg img.png
convert -geometry 50% big.jpg small.gig
convert quality 51% orig.jpg poti.jpg
convert –help | more
Power Tools
–colorspace Gray fullcolor.jpg \ monocrome.png
curl -s http:/adas,org/banner.jpb \ | – convert resize 200% my.png
sending mail
echo “hello” \ (The \ is a continuation, bash knows how to deal with this)
| mail -s “the subject” email@address.com
cat /tmp/msg \
| mail -b “the subject” email@address.com
SCP
secure copy
quickly copy files between systems
scp myfile.txt email@address.com:/var/www
can set up with pulic key authentication but need to set it up
SCP can be used recursively
no wizard knows it all
wizards talk to each other
scp is pouring from one to another without packaging it up first
aytomat anything
crontab
-l list your cron table
cron table lets you modify cron
almost all users in Linux can use cron by default
automate anything
cron
figlet
figlet drupal rocks
telehack
fortune is fun too
cowsay -f ghostbusters wo you gonna call?
got to mod your .cow files though
man
Super useful
–help and -h -usage flags
apropos (a hidden gem) (wow, had no idea!)
apropos network (just try it)
and don’t forget to ask Google
Fun with the command line and Harry Potter references from @nightbeacons at #pnwds pic.twitter.com/dyjpt1Grik
— Dwayne McDaniel (@McDwayne) February 4, 2018
Negotiating an MVP set of requirements for an initial product launch
nushneg
Literally the next talk I go to after my talk covered the exact thing I didn’t deep dive into enough, the KPI. I came in a little late but got there just in time for her definition of MVP, which I really liked. She used a very interesting car analogy that is better seen than described, so you for sure have a reason to check out the recording once posted.
Raw Notes:
Missed the first 10 minutes or so
What does MVP mean
Minimum – the smallest, least time intensive thing you can possibly build, that will provide the value the customer is looking for
Can you make it more simple?
Any assumptions you are out to prove?
How quickly can it launch?
V = Viable
the thing works and gets job done,, meeting the most valuable requirements
Not listening to the user is not viable
Product, can be tested and you can get feedback from it
does application
picture of a car in various states of build
not a MVP, because it does not show value trying to achieve
also does not have each step as usable product
skateboard, scooter, bike, moped, car
this is an MVP, each step is valuable
steps, not 0 to ‘this’
focus on what you are building
most pared dow but releasable version of the product
all the features you can test feedback and update
how do we get to MVP features from KPIs
KPIs:
Publish Faster, Easier Workflow Editor, more customers, higher customer retention, more clicks on the homepage
asking the right questions is the secret, drill into the KPIs
vs
20% less latency on page creations
editors can complete content form in 5 min or less
make content forms multilingual for X languages
reduce sign up process form 8 to 4 steps
inspire 20% of customers to buy 1 additional SKU per order
30% increate in current customer sign ups
20% reduction on number of needed clicks
drive this step by asking them questions
Example
Stack rank the things
each stakeholder needs to rank
https://forcerank.it
use as a group exercise
some people have multiple projects
alternative, points system
assign each stakeholder a number of total points
let them allocate their own points to features until out of points
must still fulfill all KPIs at the end of the day
but guides on what to focus on up front
Gives you a short requirement lists for the MVP
Have you reviewed the requirements against current state of Drupal?
Can Drupal get you there in short or long term?
What about refactors? thinking longer term
#pnwds MVP from KPI FTW from nushneg (can't find her correct Twitter handle) pic.twitter.com/VyWh4h3jmj
— Dwayne McDaniel (@McDwayne) February 4, 2018
My session
Nobody wants a website. They want results!
This was the first time I have given this presentation. Story goes that I was giving a talk in Baltimore and when I had to disagree with someone’s premise of what the overarching goal of a website includes. My response was basically “a site does what it needs to to get to a goal, nobody wants a website for the sake of it.” The audience reaction told me there was a conversation to be had here. Admittedly my imposter syndrome kicked in pretty hard on this one and huge shout out to everyone who was in that room for helping me with feedback and to further the conversation. I am going to be fine tuning this for Midcamp and I have a couple pages of notes on how to improve.
Thanks to everyone who came out to my talk at #PNWDS Slides are here: https://t.co/67qvSeygZa pic.twitter.com/EO35KoLQRL
— Dwayne McDaniel (@McDwayne) February 4, 2018
Wrapping up
I can say without any fear of doubt I learned a lot during this event. I didn’t get to see a lot of Portland as I was primarily in the event space and a specific section of downtown, but sightseeing is not the goal of any of these trips. Connecting meaningfully with the FOSS community is one of the goals and I feel I really did accomplish that. I can’t wait for my next chance to come back and see ol’ [Bridgetown](https://en.wikipedia.org/wiki/Nicknames_of_Portland,_Oregon#Bridge_City_or_Bridgetown]. Even though it moves around and it is going to be in another city next year I am still very much looking forward to the next Pacific Northwest Drupal Summit.
Farewell #PNWDS I wish I could have stayed for @jprasmussen talk, which I am sure was amazing. Good times pic.twitter.com/mvpBakmno5
— Dwayne McDaniel (@McDwayne) February 5, 2018