Feed aggregator

Tassia Camoes Araujo: Mini-Debconf Barcelona videos now available

Planet Debian - Wed, 02/04/2014 - 18:29

Hello world!!!

For those who were impatiently waiting for the Mini-Debconf Barcelona videos, there you go, enjoy it!

We’ll probably have subtitles and some late slides soon, so come back after a while.

Thank you very much for all those who make this adventure possible!

If you also want to thank the videoteam, the orgateam, Debian Women, or the Universe, for converging and bringing us together in Barcleona, please do it!

Just for the records, it was a great success in terms of women participation. As we didn’t collect gender information at the registration, it is hard to make a clear comparison with previous Debconfs. Since 2007, the rate of non-male participants ranged from 13% to 17%. For this Mini-Debconf, the orga team did the gender identification per name and found a non-male rate of 36%. Again, since the methods were not the same we cannot safely compare, but still, I think it’s worth it to make this info public

The most important thing to save from this experience is that we were around 160 human beings together, sharing common goals, in a lovely and warm place, with kids around, baby trollers on the stage, painting table in the patio… yes it was fun!

BCN group photo – first try

BCN group photo – second try

Last but not least, now we need to gather information for a final report, so if you can help, please speak up!

Hope to see you all soon!

Categories: Elsewhere

Change(b)log: Commerce Marketplace payments

Planet Drupal - Wed, 02/04/2014 - 17:40
The biggest step forward since From Commerce Store to Commerce Marketplace, my previous blog post in the Commerce Marketplace series, was added initial support for parallel payments.
Categories: Elsewhere

DrupalCon Austin News: Are You Ready for Drupal 8?

Planet Drupal - Wed, 02/04/2014 - 17:40

You may not be able to control when Drupal 8 is ready. But you can control when you are ready for Drupal 8. Attending DrupalCon Austin is a great way to start.

Categories: Elsewhere

OhTheHugeManatee: How to Create a Custom Display Suite Field

Planet Drupal - Wed, 02/04/2014 - 17:12

A few months ago I posted about how to create a custom Panels pane, a critical reference for anyone who uses Panels layouts. The other part of the toolkit for quick and awesome layouts is the Display Suite module. With DS you can create new “Display modes” for your content, to be reused around the site. For example, on one recent site I had four standard ways to display my nodes: Full, Teaser, Mini-Teaser, and Search Result. DS made this configuration a cinch.

But just as in Panels you sometimes need a pane that isn’t provided out of the box, in Display Suite you sometimes want to add a field that isn’t really a field on your content. In a recent site build, I used this capability to include information from the Organic Groups a user belongs to on his profile as it appears in search results.

DS offers some ability to create this kind of custom field through the UI, but I’m talking about more complicated outcomes where you need/want to use custom code instead. This is actually even easier than custom panels panes.

In our example, we will display the user’s name, but backwards. Obviously you can do much more complex things with this, but it’s nice to have a simple example!

Declare your fields

First we have to tell Display Suite about our new custom field. We do this with hook_ds_fields_info().

mymodule.module1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php //@file: Add a custom suite to display suite for Users. /** * Implements hook_ds_fields_info(). * Declare my custom field. */ function mymodule_ds_fields_info($entity_type) { $fields = array(); if ($entity_type == 'user') { $fields['backwards_username'] = array( 'title' => t('Backwards Username'), 'field_type' => DS_FIELD_TYPE_FUNCTION, 'function' => 'mymodule_backwards_username', ); return array($entity_type => $fields); } return; }

Any guesses whathappens next? That’s right, we have to write our render function under the name we just declared. You can put anything here, really anything renderable at all.

mymodule.module1 2 3 4 5 6 7 8 /** * Render function for the Backwards Username field. */ function mymodule_backwards_username($field) { if (isset($field['entity']->name)) { return strrev($field['entity']->name); } }

That’s it. So simple, you’ll wonder why you ever did it any other way!

Categories: Elsewhere

Last Call Media: Drupal 8 Lessons for Developers

Planet Drupal - Wed, 02/04/2014 - 15:17
Drupal 8 Lessons for Developers

A couple months ago, we decided to rebuild our company site on Drupal 8.  We had two goals in mind when we were planning the project.  First, we wanted to expose our developers to some real life scenarios in working with Drupal 8.  We had all been involved in the Drupal 8 development cycle in one way or another, but building a production site is very different from setting up a development instance.  Our second goal was to prove that it was possible to launch a feature complete Drupal 8 site without any contributed modules.  In my opinion, we succeeded on both counts.  There were certainly some snags in the process, but overall it was an enjoyable experience for everyone.  I’d like to share our major take-aways from the project with you.

1.  Stronger division between the “themer” and “module developer” roles  
The switch to object-oriented programming for all of the core subsystems has been talked about quite a lot.  And yes, it is a big transition.  Some crazy high percentage of our core code has changed or moved.  As a module developer, it’s going to be up to you to learn all about Routes, Plugins, Event Listeners, and more just to do the same things you used to use hooks for.  I don’t think anyone will argue that the new way is simpler for module developers.  But I was ready for that.  I transitioned from Drupal 6 to Drupal 7.  I remember that feeling of firing up the new version for the first time and feeling like you’re walking into your house after your mother-in-law dropped by for a visit - you know everything’s there, but you just don’t know where it is anymore.  
What caught me by surprise is how little has actually changed at the theme level.  Sure, there’s Twig, but when you get right down to it, Twig doesn’t even feel that different from raw PHP templates.  Once you learn the basics, my guess is that most people working with Twig will feel more comfortable there than in PHP code.  So, what’s really changed from the themer’s perspective?  Not a whole lot.  In fact, right now it feels like a conscious effort was made to keep things consistent at the theme level.  

2.  Fewer conflicts
I’ve been using and teaching Features for years, and there’s one question that always made me cringe: “How do I avoid conflicts/merge conflicts with my features?”  My answer would usually get very abstract and I’d be talking about packaging strategies and complex push/pull/revert commands.  Now that CMI is here, we have the tool we always wanted.  Instead of combining stuff into giant PHP files as Features does, CMI writes one file per configuration object.  While this sounds really verbose, it prevents a situation where you’d get a conflict if you and a coworker change different views in the same file, since every view is in it’s own file.  In the two-month development cycle we had for our website, I think we may have ended up with a single merge conflict resulting from configuration changes.

3.  No more packaging nightmares
This goes along with my previous point about CMI, but trying to teach the right way to use Features involved a lot of abstract and hand-wavey concepts like semantic grouping and composition (and that’s just for the way I consider right).  Now that we have a true configuration management tool, we don’t need to worry about packaging at all.  Think that through for a moment.  There is no longer a need to bundle components into groups.  It all goes into one big bucket for your site.  For those of you who actually do use Features for bundling reusable components, don’t worry.  Features already has a dev release for Drupal 8 that focuses solely on grouping config into modules.  

4.  You need an editor that autocompletes
Sorry, Notepad++ enthusiasts, but you’re going to want a bona fide IDE to do any serious development on Drupal 8.   Now that we’re using a lot of OO code, you can have a documentation trail that might be spread over 5-10 parent classes/interfaces.  It is extremely nice to be able to command+click a method name to go directly to the definition and read the docblock.  It’s even better to have your editor autocomplete the method name for you.  Plus, there are a lot more types of code in core these days (YAML, JSON, and others), and it’s nice to have syntax highlighting.

5.  Think global, act local
In case you hadn’t heard, theme(), drupal_add_js(), and drupal_add_css() functions have all been removed from Drupal 8.  The new way of doing things is to always return a render array.  The short explanation for this is that rendering stuff involves adding assets (CSS/JS) to the page, and when you call theme(), those assets are just added to a global variable somewhere.  That worked fine for Drupal 7, but since we’re a bunch of forward-thinking folks, we want our pages to be able to work with subrequests, which are a way of rendering a page using multiple processes. And guess what?  Separate processes don’t share global variables.  So, when you return the HTML for your cute little teddy bear field formatter, you should return a render array with your CSS/JS assets specified using the #attached property.

In summary…
Diving into Drupal 8 was a lot of fun for our team.  Yes, that’s right, I said fun.  We enjoyed it, partly because it’s the new stuff, and partly because it was our project.  Whereas we would have felt dangerously stressed doing our first Drupal 8 site for a client under a tight deadline, we were able to focus on learning the new workflows, contributing bugfixes, and developing best practices.  

We first posted about our Drupal 8 launch here.

Attached below are wallpaper ready versions of the image at the top of this post.

Categories: Elsewhere

Francesca Ciceri: On translations

Planet Debian - Wed, 02/04/2014 - 12:24

"Take, for example, the opening to Eleanor Catton's The Luminaries: 'The twelve men congragated in the smoking room of the Crown Hotel gave the impression of a party accidentally met.' This is emphatically not the same as starting a novel with 'So there they were: a dozen men in the Crown Hotel, all together in the smoking-lounge, looking like they'd only met there by chance.' Yes, the explicit narrative data conveyed in the two are the same, but just as you wouldn't be happy with your publisher simply producing a sort of casual paraphrase of your writing and publishing that under your name, so your foreign-language publishers are hiring people to write exactly the same book as the one you've written. (Except for all the words, obviously.) Sound difficult? The reality is harder still. Every language is different. There's no single word in one language that maps perfectly onto a word in another - not one. And every language has things it can do, and things it can't."

[...]

"Once the contract is signed, the translator takes a deep breath and dives in. Their job is two-fold, and simple: they read you, then they write you.
They read you with more care than anybody else will, more demandigly, more inquiringly. Yes, your editor might take a moment to consider your punctuation if it doesn't work and needs rethinking, but translators have to think hard about it even - or especially - if it does."

A beautiful piece on translators: "The curious condition of being a translator" by Daniel Hahn via Paula Góes on GV-Authors mailing list.

Categories: Elsewhere

Modules Unraveled: 102 Project Management and ERP using ERPAL with Manuel Pistner - Modules Unraveled Podcast

Planet Drupal - Wed, 02/04/2014 - 07:00
Published: Wed, 04/02/14Download this episodeERPAL
  • What is ERPAL?
  • Why did you guys at Bright Solutions decide to build ERPAL? What did you need that wasn’t already available?
  • What are some of the features of the distro?
    • CRM (contact and activity management)
    • Project management (timetracking, payments, agil and fixed price, expenses, gantt charts, requirement management) with Freelancer support
    • Document management and document creation
    • Contract management with reccuring invoices
    • Employee management (over hours, holidays, costs)
    • Invoice creation and PDF export
    • Calendars
  • Tell me about the mobile app.
  • I noticed that there are some addon modules listed on the project page. Did you want to mention some of those?
    • ERPAL Task Templates
    • ERPAL Repeatable Tasks
    • ERPAL Project Reports
    • ERPAL CRM Reports
    • ERPAL Contacts Importer
    • ERPAL GIT integration
  • Is this basically Basecamp built with Drupal?
    • What features do they have in common?
    • What does ERPAL have that Basecamp doesn’t?
Use Cases
  • Do you know of anybody using ERPAL right now?
  • Who should use this?
    • Large companies?
    • Solo developers?
  • What’s the development status of ERPAL?
  • What’s in the future for ERPAL? What still needs to be done before a 1.0 release can be released?
  • How does Drupal benefit from something like ERPAL?
NodeSquirrel Ad

Have you heard of/used NodeSquirrel?
Use "StartToGrow" it's a 12-month free upgrade from the Start plan to the Grow plan. So, using it means that the Grow plan will cost $5/month for the first year instead of $10. (10 GB storage on up to 5 sites)

Episode Links: Manuel on drupal.orgManuel on TwitterBright Solutions WebsiteERPAL info siteTags: 
Categories: Elsewhere

Andrew Pollock: [life] Day 64: Baking, Last day of Kindergarten term 1, BJJ

Planet Debian - Wed, 02/04/2014 - 05:34

I had a busy morning this morning. I had a small flood of emails in response to various inquiries I made yesterday, so it took me a while to get my inbox under control.

One of Zoe's Kindergarten teachers is returning to New Zealand as of the end of term 1, so they were having an afternoon tea for her today. Parents were requested to "bring a plate", so I thought I'd bake some spinach, pumpkin and feta muffins that I've been meaning to try making. After my chiropractic adjustment I got stuck into that.

I'd hoped to finalise my US taxes today, but I learned I could deduct my moving expenses, so now I have to dig up the documentation for them.

I had a later than usual massage, and drove directly from there to Kindergarten, muffins in hand. They'd omitted rest time today to facilitate the afternoon tea, so the upside of that was Zoe was happy.

Zoe's Brazilian Jiu-Jitsu teacher had said that she could try out one of the 4-7 year old classes, so for her last class of the 10 week block, we went to one of them this afternoon. I wasn't sure if today would be a good day for it or not, given she'd had Kindergarten and hadn't napped, but I gave her the option, and she wanted to do it.

It worked out well, aside from Zoe really not wanting to wear her gi (I managed to convince her to wear the pants). There were three other kids of varying school ages in the class, and Zoe followed the instructions really well.

I'm really glad we signed up the classes. I'm pretty sure Zoe has enjoyed herself, and she's definitely bonded with the teacher. I'll miss it.

I can't believe how fast this term has gone by. There's now two weeks of "school holidays", where I'll have to entertain Zoe for the entire week. I'm not too worried about finding things to do, I'm more worried about contention with all the other kids on school holidays.

Zoe was pretty tired tonight, I'd say with the combination of Kindergarten, no nap and BJJ class. Nonetheless, she procrastinated all the way through the bed time routine anyway. When I finally got her to bed, she fell asleep without a peep. She went on her second "bushwalk" at Kindergarten yesterday and picked up three mosquito bites, so I'm hoping they don't trouble her overnight.

Categories: Elsewhere

Pages

Subscribe to jfhovinne aggregator