Welcome to the second article in the “Commerce 2.x Stories” series. This time we’re going to talk about addressing, and our efforts to improve the already good Commerce 1.x addressing implementation (addressfield).
By addressing we mean storing, manipulating and formatting postal addresses, meant to identify a precise recipient location for shipping or billing purposes.
I am going to explain how to setup your development tools so that you can debug Drush commands in real time, as they run. I've tested these instructions on Mac OSX.
In a previous blog post I outlined how to configure PHPStorm and Xdebug so you can step through the code of a webpage as it is executed. This allowed you to set breakpoints and inspect the value of variables at specific points in the code. The same can be done for Drush commands. You will need to have configured your PHPStorm as described in the first blog post.Add Drush code to PHPStorm
Drush can be added to PHPStorm as an external library. This will allow you to view the Drush code within PHPStorm so you can add break points to it later.
1. In the project pane, double click external libraries, which appears at the bottom of the directories.
2. Click the plus button in the bottom left of the PHP popup window. Now use the file brower to find where Drush is installed on your system. Select the folder and click OK and OK again. Drush should now be listed as an external library.
3. Click the telephone button in PHPStorm so it starts listening for executed code.Configuring Drush to tell PHPStorm it is running
In the command line where you normally run your Drush commands, first type the following command and press enter:
export PHP_OPTIONS="-dxdebug.remote_autostart=On -didekey=PHPSTORM -dremote_host=localhost -dprofiler_enable=1"
Now, when you run a Drush command it will be picked up by PHPStorm.
If you have put in a breakpoint, then execution of the command will pause at that point. For example, open index.php in your project and place a breakpoint next to a PHP function as shown in the image. If you click between the line number and the code, a red spot will appear.
Now, at the same command prompt where you entered the export command above, run a Drush command, for example:drush cc all
PHPStorm should open at the breakpoint. Now you can step through the code in the same way as before.
Executing the export command before running Drush commands will be a little time consuming. I recommend you add this to your .bashrc file or .bash_profile file in your home directory so it's available as soon as you open your terminal.
To stop PHPStorm opening every time you run a Drush command, simply press the telephone button again and hang up.
Campbell Vertesi and Adam Juran are at the top of their game when it comes to coding and theming Drupal. They're also deeply involved in and shaped by their study of martial arts. That's what makes this DrupalCon trailer so very good: they make an analogy for working with Drupal that pits the coder vs the themer, and it becomes the basis of their whole DrupalCon session. This trailer (which is meant to get butts into seats next week in Amsterdam), is a tribute to B-grade Kung Fu movies, and is true to Drupal's tradition of approaching technology with a good dose of levity and humor. I, for one, really enjoyed working with Campbell and Adam while shooting this, and am looking forward to their session.Tags: Drupal PlanetDrupalDrupalCon
I have visited Portland a few times previously and I feel comfortable every time I arrive at PDX. Sure the place still suffers from the american obsession with the car but similar to New York you can rely on public transport to get about.
On this occasion my visit was for the Debian Conference which i was excited to attend having missed the previous one in Switzerland. This time the conference has changed its format to being 10 days long and mixing the developer time in with the more formal sessions.
The opening session gave Steve McIntyre and myself the opportunity to present a small token of our appreciation to Russ. The keynote speakers that afternoon were all very interesting both Stefano Zacchiroli and Gabriella Coleman giving food for thought on two very different subjects.
Several conferences in the past have experienced issues with sponsored accommodation and food, I am very pleased to report that both were very good this time. The room I was in had a small kitchen area, en-suite bathroom, desks and most importantly comfortable beds.
The food provision was in the form of a buffet in the Ondine facility. The menu was not greatly varied but catered to all requirements including vegetarian and gluten free diets.
Some of us went on a visit to the Evergreen air and space museum to look at some rare aircraft and rockets. I can thoroughly recommend a visit if you are in the area.
These are just the highlights of the week though, the time in the hack-labs was productive with several practical achievements Including:
- Uploading new packages reducing the bug count
- Sorting out getting an updated key into the Debian keyring.
Overall I had a thoroughly enjoyable time and got a lot out of the conference this year. The new format suited me surprisingly well and as usual the social side was as valuable as the practical.
I hope the organisers have recovered enough to appreciate just how good a job they did and not get hung up on the small number of things that went wrong when the majority of things went perfectly to plan.
I was asked for advice about cheap 3G data plans. One of the people who asked me has a friend with no home Internet access, the friend wants access but doesn’t want to pay too much. I don’t know whether the person in question can’t use ADSL/Cable (maybe they are about to move house) or whether they just don’t want to pay for it.
3G data in urban areas in Australia is fast enough for most Internet use. But it’s not good for online games or VOIP. It’s also not very useful for Youtube and other online video. There is a variety of 3G speed testing apps for Android phones and there are presumably similar apps for the iPhone. Before signing up for 3G at home it’s probably best to get a friend who’s on the network in question to test Internet speed at your house, it would be annoying to sign up for an annual contract and then discover that your home is in a 3G dead spot.Cheapest Offers
The best offer at the moment for moderate data use seems to be Amaysim with 10G for $99.90 and an expiry time of 365 days . 10G in a year isn’t a lot, but it’s pre-paid so the user can buy another 10G of data whenever they want. At the moment $10 for 1G of data in a month and $20 for 2G of data in a month seem to be common offerings for 3G data in Australia. If you use exactly 1G per month then Amaysim isn’t any better than a number of other telcos, but if your usage varies (as it does with most people) then spreading the data use over several months offers significant savings without the need to save big downloads for the last day of the month.
For more serious Internet use Virgin has pre-paid offerings of 6G for $30 and 12G for $40 which has to be used in a month . Anyone who uses an average of more than 3G per month will get better value from the Virgin offers.
If anyone knows of cheaper options than Amaysim and Virgin then please let me know.Better Coverage
Both Amaysim and Virgin use the Optus network which covers urban areas quite well. I used Virgin a few years ago (and presume that it has only improved since then) and my wife uses Amaysim now. I haven’t had any great problems with either telco. If you need better coverage than the Optus network provides then Telstra is the only option. Telstra have a number of prepaid offers, the most interesting is $100 for 10G of data that expires in 90 days .
That Telstra offer is the same price as the Amaysim offer and only slightly more expensive than Virgin if you average 3.3G per month. It’s a really good deal if you average 3.3G per month as you can expect it to be faster and have better coverage.Which One to Choose?
I think that the best option for someone who is initially connecting their home via 3g is to start with Amaysim. Amaysim is the cheapest for small usage and they have an Amaysim Android app and web page for tracking usage. After using a few gig of data on Amaysim it should be possible to determine which plan is going to be most economical in the long term.Connecting to the Internet
To get the best speed you need a 4G AKA LTE connection. But given that 3G speed is great enough to use expensive amounts of data it doesn’t seem necessary to me. I’ve done a lot of work over the Internet with 3G from Virgin, Kogan, Aldi, and Telechoice and haven’t felt a need to pay for anything faster.
I think that the best thing to do is to use an old phone running Android 2.3 or iOS 4.3 as a Wifi access point. The cost of a dedicated 3G Wifi AP is enough to significantly change the economics of such Internet access and most people have access to old smart phones.
-  http://www.amaysim.com.au/mobile-plans/amaysim-mobile-broadband.html
-  http://tinyurl.com/ldjqhm4
-  http://www.telstra.com.au/broadband/mobile-broadband/prepaid/
The problem is that most people don't fall into either of these categories, and so the benefits of free software are often largely theoretical to them. Concentrating on philosophical freedoms without considering whether these freedoms provide meaningful benefits to most users risks these freedoms being perceived as abstract ideals, divorced from the real world - nice to have, but fundamentally not important. How can we tie these freedoms to issues that affect users on a daily basis?
In the past the answer would probably have been along the lines of "Free software inherently respects users", but reality has pretty clearly disproven that. Unity is free software that is fundamentally designed to tie the user into services that provide financial benefit to Canonical, with user privacy as a secondary concern. Despite Android largely being free software, many users are left with phones that no longer receive security updates. Textsecure is free software but the author requests that builds not be uploaded to third party app stores because there's no meaningful way for users to verify that the code has not been modified - and there's a direct incentive for hostile actors to modify the software in order to circumvent the security of messages sent via it.
We're left in an awkward situation. Free software is fundamental to providing user privacy. The ability for third parties to continue providing security updates is vital for ensuring user safety. But in the real world, we are failing to make this argument - the freedoms we provide are largely theoretical for most users. The nominal security and privacy benefits we provide frequently don't make it to the real world. If users do wish to take advantage of the four freedoms, they frequently do so at a potential cost of security and privacy. Our focus on the four freedoms may be coming at a cost to the pragmatic freedoms that our users desire - the freedom to be free of surveillance (be that government or corporate), the freedom to receive security updates without having to purchase new hardware on a regular basis, the freedom to choose to run free software without having to give up basic safety features.
That's why projects like the GNOME safety and privacy team are so important. This is an example of tying the four freedoms to real-world user benefits, demonstrating that free software can be written and managed in such a way that it actually makes life better for the average user. Designing code so that users are fundamentally in control of any privacy tradeoffs they make is critical to empowering users to make informed decisions. Committing to meaningful audits of all network transmissions to ensure they don't leak personal data is vital in demonstrating that developers fundamentally respect the rights of those users. Working on designing security measures that make it difficult for a user to be tricked into handing over access to private data is going to be a necessary precaution against hostile actors, and getting it wrong is going to ruin lives.
The four freedoms are only meaningful if they result in real-world benefits to the entire population, not a privileged minority. If your approach to releasing free software is merely to ensure that it has an approved license and throw it over the wall, you're doing it wrong. We need to design software from the ground up in such a way that those freedoms provide immediate and real benefits to our users. Anything else is a failure.
(title courtesy of My Feminism will be Intersectional or it will be Bullshit by Flavia Dzodan. While I'm less angry, I'm solidly convinced that free software that does nothing to respect or empower users is an absolute waste of time)
 Either in the sense of having enough money that you can simply pay, having enough background in the field that you can file meaningful bug reports or having enough followers on Twitter that simply complaining about something results in people fixing it for you
 The free software nature of Android often makes it possible for users to receive security updates from a third party, but this is not always the case. Free software makes this kind of support more likely, but it is in no way guaranteed.
Firstly, I very much like the focus on social structure and needs – what our users and deployers need from us. That seems entirely right.
And I very much like the getting away from TC picking winners and losers. That was never an enjoyable thing when I was on the TC, and I don’t think it has made OpenStack better.
However, the thing that picking winners and losers did was that it allowed users to pick an API and depend on it. Because it was the ‘X API for OpenStack’. If we don’t pick winners, then there is no way to say that something is the ‘X API for OpenStack’, and that means that there is no forcing function for consistency between different deployer clouds. And so this appears to be why Ring 0 is needed: we think our users want consistency in being able to deploy their application to Rackspace or HP Helion. They want vendor neutrality, and by giving up winners-and-losers we give up vendor neutrality for our users.
Thats the only explanation I can come up with for needing a Ring 0 – because its still winners and losers (e.g. picking an arbitrary project) keystone, grandfathering it in, if you will. If we really want to get out of the role of selecting projects, I think we need to avoid this. And we need to avoid it without losing vendor neutrality (or we need to give up the idea of vendor neutrality).
One might say that we must pick winners for the very core just by its, but I don’t think thats true. If the core is small, many people will still want vendor neutrality higher up the stack. If the core is large, then we’ll have a larger % of APIs covered and stable granting vendor neutrality. So a core with fixed APIs will be under constant pressure to expand: not just from developers of projects, but from users that want API X to be fixed and guaranteed available and working a particular way at [most] OpenStack clouds.
Ring 0 also fulfils a quality aspect – we can check that it all works together well in a realistic timeframe with our existing tooling. We are essentially proposing to pick functionality that we guarantee to users; and an API for that which they have everywhere, and the matching implementation we’ve tested.
To pull from Monty’s post:
“What does a basic end user need to get a compute resource that works and seems like a computer? (end user facet)
What does Nova need to count on existing so that it can provide that. “
He then goes on to list a bunch of things, but most of them are not needed for that:
We need Nova (its the only compute API in the project today). We don’t need keystone (Nova can run in noauth mode and deployers could just have e.g. Apache auth on top). We don’t need Neutron (Nova can do that itself). We don’t need cinder (use local volumes). We need Glance. We don’t need Designate. We don’t need a tonne of stuff that Nova has in it (e.g. quotas) – end users kicking off a simple machine have -very- basic needs.
Consider the things that used to be in Nova: Deploying containers. Neutron. Cinder. Glance. Ironic. We’ve been slowly decomposing Nova (yay!!!) and if we keep doing so we can imagine getting to a point where there truly is a tightly focused code base that just does one thing well. I worry that we won’t get there unless we can ensure there is no pressure to be inside Nova to ‘win’.
So there’s a choice between a relatively large set of APIs that make the guaranteed available APIs be comprehensive, or a small set that that will give users what they need just at the beginning but might not be broadly available and we’ll be depending on some unspecified process for the deployers to agree and consolidate around what ones they make available consistently.
In sort one of the big reasons we were picking winners and losers in the TC was to consolidate effort around a single API – not implementation (keystone is already on its second implementation). All the angst about defcore and compatibility testing is going to be multiplied when there is lots of ecosystem choice around APIs above Ring 0, and the only reason that won’t be a problem for Ring 0 is that we’ll still be picking winners.
How might we do this?
One way would be to keep picking winners at the API definition level but not the implementation level, and make the competition be able to replace something entirely if they implement the existing API [and win hearts and minds of deployers]. That would open the door to everything being flexible – and its happened before with Keystone.
Another way would be to not even have a Ring 0. Instead have a project/program that is aimed at delivering the reference API feature-set built out of a single, flat Big Tent – and allow that project/program to make localised decisions about what components to use (or not). Testing that all those things work together is not much different than the current approach, but we’d have separated out as a single cohesive entity the building of a product (Ring 0 is clearly a product) from the projects that might go into it. Projects that have unstable APIs would clearly be rejected by this team; projects with stable APIs would be considered etc. This team wouldn’t be the TC : they too would be subject to the TC’s rulings.
We could even run multiple such teams – as hinted at by Dean Troyer one of the email thread posts. Running with that I’d then be suggesting
- IaaS product: selects components from the tent to make OpenStack/IaaS
- PaaS product: selects components from the tent to make OpenStack/PaaS
- CaaS product (containers)
- SaaS product (storage)
- NaaS product (networking – but things like NFV, not the basic Neutron we love today). Things where the thing you get is useful in its own right, not just as plumbing for a VM.
So OpenStack/NaaS would have an API or set of APIs, and they’d be responsible for considering maturity, feature set, and so on, but wouldn’t ‘own’ Neutron, or ‘Neutron incubator’ or any other component – they would be a *cross project* team, focused at the product layer, rather than the component layer, which nearly all of our folk end up locked into today.
Lastly Sean has also pointed out that we have large N N^2 communication issues – I think I’m proposing to drive the scope of any one project down to a minimum, which gives us more N, but shrinks the size within any project, so folk don’t burn out as easily, *and* so that it is easier to predict the impact of changes – clear contracts and APIs help a huge amount there.
Modules Unraveled: 119 The Classy Base Theme for Drupal 8 with Scott Reeves and David Hernandez - Modules Unraveled Podcast
- How did this all get started? and where does the “banana” come from.
- From Morten: 2 years ago at BadCamp John Albin was holding a plastic sword from the pirate fest the day before. It was known as the sword of consensus. At DrupalCon Austin Morten had a banana that he was using to point to people and ask “So can we agree on X?”. That is how it became the banana of consensus. It was basically a pointing stick.
- Technically, what is the change.
- Moving classes from core to a base theme called Classy.
- Multi-phased approach.
- Phase 1, move classes out of preprocess functions and into the core templates.
- Create the Classy base theme.
- Phase 2, copy the core template with classes to Classy, remove the classes from core.
- Why do themers need this.
- Better options
- Not everyone wants the same markup (themer survey)
- Avoiding php
- No time wasted undoing core.
- What work has been done, what is left.
- Preprocess changes (phase 1) far along.
- Classy is RTBC, waiting for Dries to approve.
- Phase 2 to start at or just after Amsterdam (don’t need to wait until phase 1 is 100% complete)
- Chance of failure?
- Changes have to be in by RC1.
- Who to thank?
- joelpittet, mdrummond, crowdcg, lauriii, alexpott!
- Are there any other theme layer changes to look forward to that have come about because of the banana consensus?
- addClass/removeClass is in, what about setAttribute/removeAttribute? Similarities to jQuery make this (hopefully) more approachable for frontend developers.
- Any other theming changes not related to banana?
- Improved menu theming - menu.html.twig using a Twig macro
- What it means for themers. What it means for developers.
- Preprocess is still there so contrib can add classes if necessary - but is it necessary? Could it be done as a data- attribute?
Review: 2014 Hugos: Short Story Nominees, edited by Loncon 3Publisher: Loncon 3 Copyright: 2014 Format: Kindle
This is a bit of a weird "book review," since this is not a book. Rather, it's the collection of Hugo-nominated short stories for the 2014 Hugos (given for works published in 2013) at Loncon 3, the 2014 Worldcon. As such, the "editor" is the pool of attendees and supporting members who chose to nominate works, all of which had been previously edited by other editors in their original publication.
This is also not something that someone else can acquire; if you were not a supporting or attending member, you didn't get the voting packet. But I believe all of the stories here are available on-line for free in some form, a short search away.
"If You Were a Dinosaur, My Love" by Rachel Swirsky: The most common complaint about this story is that it's not really a story, and I have to agree. It's a word image of an alternate world in which the narrator's love is a human-sized dinosaur, starting with some surreal humor and then slowly shifting tone as it reveals the horrible event that's happened to the narrator's actual love, and that's sparked the wish for her love to have claws and teeth. It's reasonably good at what it's trying to do, but I wanted more of a story. The narrator's imagination didn't do much for me. (5)
"The Ink Readers of Doi Saket" by Thomas Olde Heuvelt: At least for me, this story suffered from being put in the context of a Hugo nominee. It's an okay enough story about a Thai village downstream from a ritual that involves floating wishes down the river, often with offerings in the improvised small boats. The background of the story is somewhat cynical: the villagers make some of the wishes come true, sort of, while happily collecting the offerings and trying to spread the idea that the wishes with better offerings are more likely to come true. The protagonist follows a familiar twist: he actually can make wishes come true, maybe, but is very innocent about his role in the world.
This is not a bad story, although stories written by people with western-sounding names about non-western customs worry me, and there were a few descriptions and approaches here (such as the nickname translations in footnotes and the villager archetypes) that made my teeth itch. But it is not a story that belongs on the Hugo nomination slate, at least in my opinion. It's either cute or mildly irritating, depending on one's mood when one meets it, not horribly original, and very forgettable. (5)
"Selkie Stories Are for Losers" by Sofia Samatar: I really liked this story for much of its length. It features a couple of young, blunt, and bitter women, and focuses on the players in the typical selkie story that don't get much attention. The selkie's story is one of captivity or freedom; her lover's story is the inverse, the captor or the lover. But I don't recall a story about the children before, and I think Samatar got the tone right. It has the bitterness of divorce and abandonment mixed with the disillusionment of fantasy turned into pain.
My problem with this story is the ending, or rather, the conclusion, since the story doesn't so much end as stop. There's a closing paragraph that gives some hint of the shape to come, but it gave me almost no closure, and it didn't answer any of the emotional questions that the rest of the story raised for me. I wanted something more, some sort of epiphany or clearer determination. (7)
"The Water That Falls on You from Nowhere" by John Chu: This was by far my favorite of the nominees, which is convenient since it won. I thought it was the only nominee that felt in the class of stories I would expect to win a Hugo.
I think this story needs one important caveat up front. The key conceit of the story is that, in this world, water falls on you out of nowhere if you tell any sort of lie. It does not explore the practical impact on that concept for the broader world. That didn't bother me; for some reason, I wasn't really expecting it to do so. But it did bother several other people I've seen comment on this story. They were quite frustrated that the idea was used primarily to shape a personal and family emotional dilemma, not to explore the impact on the world. So, go into this with the right expectations: if you want world-building or deep exploration of a change in physical laws, you will want a different story.
This story, instead, is a beautiful gem about honesty in relationships, about communication about very hard things and very emotional things, about coming out, about trusting people, and about understanding people. I thought it was beautiful. If you read Captain Awkward, or other discussion of how to deal with difficult families and the damage they cause to relationships, seek this one out. It surprised me, and delighted me, and made me cry in places, and I loved the ending. It's more fantasy than science fiction, and it uses the conceit as a trigger for a story about people instead of a story about worlds and technology, but I'm still very happy to see it win. (9)
Rating: 7 out of 10
Patrick J Waters: How to programmatically load panel pages from the database and include panel pages stored in code in Drupal 7
After hours of munging through ctools and page manager module code I figured out how to load enabled panel pages programmatically in code.
I (grudgingly) use the Calibre e-book management software to handle my collection of books, and copy them over to my kindle-toy.
One thing that has always bothered me was the fact that when books are imported their ratings are too. If I receive a small sample of ebooks from a friend their ratings are added to my collections.
I've always regarded ratings as things personal to me, rather than attributes of a book itself; as my tastes might not match yours, and vice-versa.
On that basis the last time I was importing a small number of books and getting annoyed at having to manually reset all the imported ratings I decided to do something about it. I started hacking and put together a simple Calibre plugin to automatically zero ratings when books are imported to the collection (i.e. set the rating to be zero).
Sadly this work wasn't painless, despite the small size, as an unfortunate bug in Calibre meant my plugin method wasn't called. Happily Kovid Goyal helped me work through the problem, and he committed a fix that will be in the next Calibre release. For the moment I'm using today's git-snapshot and it works well.
Similarly I've recently started using extended file attributes to store metadata on my desktop system. Unfortunately the GNU findutils package doesn't allow you to do the obvious thing:$ find ~/foo -xattr user.comment /home/skx/foo/bar/t.txt /home/skx/foo/bar/xc.txt /home/skx/foo/bar/x.txt
There are several xattr patches floating around, but I had to bundle my own in debian/patches to get support for finding files that have particular attribute names.
Maybe one day extended attributes will be taken seriously. (rsync, cp, etc will preserve them. I'm hazy on the compatibility with tar, but most things seem to be working.)
Question: Who should be asking "How much documentation is enough?"
Answer: Everybody. Developers, Themers, Managers, CEO’s. Everyone in Software Development.
Impressions and Acquia's presentation from the 2014 Government ICT 2.0 conference in London.
I am tired of finding how to get my users to happily print again. Please help.
Several years ago, I configured our Institute's server to provide easy, nifty printing support for all of our users. Using Samba+CUPS, I automatically provided drivers to Windows client machines, integration with our network user scheme (allowing for groups authorization — That means, you can only print in your designated printer), flexible printer management (i.e. I can change printers on the server side without the users even noticing — Great when we get new hardware or printers get sent to repairs!)...
Then, this year the people in charge of client machines in the institute decided to finally ditch WinXP licenses and migrate to Windows 7. Sweet! How can it hurt?
Oh, it can hurt. Terribly.
Windows 7 uses a different driver model, and after quite a bit of hair loss, I was not able to convince Samba to deliver drivers to Win7 (FWIW, I think we are mostly using 64 bit versions). Not only that, it also barfs when we try to install drivers manually and print to a share. And of course, it barfs in the least useful way, so it took me quite a bit of debugging and Web reading to find out it was not only my fault.
So, many people have told me that Samba (or rather, Windows-type networking) is no longer regarded as a good idea for printing. The future is here, and it's called IPP. And it is simpler, because Windows can talk directly with CUPS! Not only that, CUPS allows me to set valid users+groups to each printer. So, what's there to lose?
Besides time, that is. It took me some more hair pulling to find out that Windows 7 is shipped by default (at least in the version I'm using) with the Internet Printing Server feature disabled. Duh. OK, enable it, and... Ta-da! It works with CUPS! Joy, happiness!
Only that... It works only when I use it with no authentication.
Windows has an open issue, with its corresponding hotfix even, because Win7 and 2008 fail to provide user credentials to print servers...
So, yes, I can provide site-wide printing capabilities, but I still cannot provide per-user or per-group authorization and accounting, which are needed here.
I cannot believe this issue cannot be solved under Windows 7, several years after it hit the market. Or am I just too blunt and cannot find an obvious solution?
Dear lazyweb, I did my homework. Please help me!
More than 80% of employers we recently surveyed plan to hire Drupal talent within the next six months. There’s no better time to try to get into Drupal than the present — which is why we’ve launched Drupal Jobs.
To answer many of the questions we regularly hear about starting a Drupal Career, we’re reposting some information about the Drupal job market, generously provided by our friends Mike and Gwendolyn Anello over at DrupalEasy.
“It’s exciting to me that we have a community that has such demand for talent,” says Gwen Anello. “When it comes to the power of Drupal, the community isn't just window dressing— there are a lot of people full of true willingness to help and work together to move the Drupal project forward. I don’t know of any other career path where there is something as strong as the Drupal community that people can rely on for help."What’s the big deal?
Drupal is in demand for all kinds of websites. There are stories every day about organizations implementing or migrating to Drupal (read how NASA is saving millions by moving to Drupal and the cloud). All this demand for websites means talent is in high demand as well.
Additionally, Drupal 8 is in the works. It will dramatically improve Drupal's design capabilities, provide better support for responsive design for mobile devices, and include improved HTML5 and multi-lingual capabilities. Upgrades under the hood will allow Drupal to provide better personalization services, an improved content administration interface, and modern configuration management control.There were more jobs posted in 2013 than attendees at DrupalCon Austin
You read that right. Even without the predicted growth of Drupal adoption worldwide, the current demand demonstrates huge opportunity for those choosing the Drupal path. According to Drupal Easy, in 2013 there were 2,700 Drupal-related jobs listed on groups.drupal.org Jobs, 2,800 listed on Indeed by employers, and another 1,100 listed by recruiters. The cherry on the cake: based on recent research by Nancy Stango of Blink Reaction, the national average for web developers in Drupal is more than $87,000 USD per year.It’s not just a job
Work in the Drupal world often extends into specialties, support positions, business size and lifestyles. Opportunities abound for those in every space from freelancers to executives to coders to graphic designers. The Drupal community is not just developers servicing enterprise clients: it welcomes entrepreneurs, Fortune 500 companies, small Drupal shops, contractors, consultants and every specialty and support position from recruiting to accounting.How do I get started?
The first important step, according to Mike Anello of DrupalEasy, is to make sure you understand what is ahead, and are well equipped for it. The nature of Drupal as an open source framework generally means keeping up with the technology and the community, so committing to stay engaged is key. Mike cites five traits you'll need to be successful, regardless of your tech savvy:
Depending on your personality and the depth of your IT knowledge, you'll have to decide how you are going to get the education you need to succeed. There are a plethora of resources and training available, so choose one, or combine them to ensure you get what you need in a way that makes you comfortable. Training options include:
- Self-paced, such as Build-a-Module and Drupalize Me
- Instructor-led workshops, found at places like Blink Reaction, Acquia, and DrupalEasy
- Mentored learning, like Global Training Days or DrupalCon Training and Sprints.
- Career training, for those who want a formal, comprehensive, instructor guided program. A number of organizations such as DrupalEasy offer courses like these.
Most of us come to Drupal with some core skills, so consider taking the Drupal path that will best leverage your existing interests and skills, These niches include:
- Front-end development
- Back-end development
- Data Migration
- Project Management
- Performance and Scalability
- Module development
- User Experience
Actively participating in the Drupal Community is as important to your Drupal Career as knowledge and experience. It’s important to understand that how you leverage the community is key to your success. Meetups, camps and DrupalCons are great opportunities to learn and contribute, not just glad-handing, card-trading chamber of commerce-esque functions. IRC is an exchange mechanism, it is not a means to just get...you have to give. Mike's four aspects of community that you need to practice for Drupal success:
- Be (a little) selfish
Without the first three however; the fourth is not realistic. As you start out on a Drupal career path, learning and networking will be the prevailing activities, and is made possible by the good souls a bit further down the path. Hop on IRC and go to some meetups to get technical support, meet your peers, and build relationships. Once you get to the point where you can share, (it will happen sooner than you think!) answer some questions, present at a meetup or volunteer at your local/regional camp. With all of these karma points, you can start leveraging all the learning, networking and sharing you’ve done for some personal benefit. The key, again, is to take less than you put in – all in the spirit of community.
Ultimately, when it comes down to it, all you need to get started in the Drupal world are a computer, an open mind, and a willingness to help others and be helped in turn. What you do with the rest is up to you!
Image courtesy of fgr62 on Flickr.
Today's article is all about a fabulous tool for dependency management in your PHP projects. Composer solves the problem where you add a library to your application but it depends on this specific version of some other library, which also uses the yaml stuff, which needs ... you get the picture!
Composer helps us keep track of what external code our application relies on, and get it installed the right way on every copy of that application. This article will show you how to use Composer successfully in your own projects.
Here at Phase2, we believe that Drupal distributions have the potential to shift the playing field. However, one of the Drupal projects biggest challenges right now is awareness of its capabilities and value. As Tom Erikson discusses in his AMA a couple months ago:
“For Drupal to remain relevant we need to ensure that it competes well in [the market], and that the marketing and awareness of Drupal … improves dramatically.”
We see specialized distributions as a vehicle to market Drupal in an engaging and accessible way to the market. The usability, ease of setup, and specialization inherent in distributions helps Drupal compete in the greater software market. As we push to make user experience a major asset in Drupal 8, we have an amazing opportunity to build on the progress already made in so many of the distributions out there. Phase2 has recently made usability and UX improvements for Open Atrium and OpenPublic, and we are excited to see where we can take Drupal distributions next, as a community, laying the groundwork for Drupal 8.
Phase2 has always believed it is vital for Drupal distributions to be community-driven endeavors. For this reason, I am excited to announce that Phase2 will be kicking off DrupalCon Amsterdam with a Distribution hackathon!
The hackathon will start at 3PM on Monday September 29th, and will continue throughout the afternoon and into the night. We’re asking folks to get together and hack on install profiles, distributions and Apps to move Drupal forward. There is a lot of really awesome sprinting happening at DrupalCon already and we look forward to participating with the Drupal community. If you are interested in learning more about the Phase2 hackathon at DrupalCon Amsterdam, check out the program page and agenda to register for a spot!
I've just stumbled on this bit that seems relevant to me:
Insist on using objective criteria
The final step is to use mutually agreed and objective criteria for evaluating the candidate solutions. During this stage they encourage openness and surrender to principle not pressure.
I find the concept of "pressure" very relevant, and I like the idea of discussions being guided by content rather than pressure.
I'm exploring the idea of filing under this concept of "pressure" most of the things described in code of conducts, and I'm toying with looking at gender or race issues from the point of view of making people surrender to pressure.
In that context, most code of conducts seem to be giving a partial definition of "pressure". I've been uncomfortable at DebConf this year, because the conference PG12 code of conduct would cause me trouble for talking about what lessons can Debian learn from consent culture in BDSM communities, but it would still allow situations in which people would have to yield to pressure, as long as the pressure was done avoiding the behaviours blacklisted by the CoC.
Pressure could be the phrase "you are wrong" without further explanation, spoken by someone with more reputation than I have in a project. It could be someone with the time for writing ten emails a day discussing with someone with barely the time to write one. It could be someone using elaborate English discussing with someone who needs to look up every other word in a dictionary. It could be just ignoring emails from people who have issues different than mine.
I like the idea of having "please do not use pressure to bring your issues forward" written somewhere, rather than spend time blacklisting all possible ways of pressuring people.
I love how the Diversity Statement is elegantly getting all this where it says: «We welcome contributions from everyone as long as they interact constructively with our community.»
However, I also find it hard not to fall back to using pressure, even just for self-preservation: I have often found myself in the situation of having the responsibility to get a job done, and not having the time or emotional resources to even read the emails I get about the subject. All my life I've seen people in such a situation yell "shut up and let me work!", and I feel a burning thirst for other kinds of role models.
A CoC saying "do not use pressure" would not help me much here, but being around people who do that, learning to notice when and how they do it, and knowing that I could learn from them, that certainly would.
If you can link to examples, I'd like to add them here.