Elsewhere

Károly Négyesi: Drupal 8 progress from my / MongoDB perspective: update #26

Planet Drupal - jeu, 03/04/2014 - 06:28

At DrupalDevDays Szeged, skipyT, fgm and myself made tremendous progress with writing the MongoDB drivers. All the override mechanisms work as expected and things in general, work. Most importantly, we have an entity storage backend and a significant percentage of the entity storage query tests pass (it is not expected all ever would pass, for example relationships are not supported). I have also managed to get the "add aggregator feed" test pass (going in ABC order among entities), this hit a snag where a recent rewrite of the testing framework broke overriding services during testing and I am not allowed to fix this so automated testing will require a small core patch. Otherwise we would need to create a mostly empty testing class for every test, this is clearly not desirable. Also at DDD, Ricardo Amaro and Jeremy Thorson have made significant strides in creating a more modern testbot based on Docker, I intend to run an instance at home and see how MongoDB fares with all the tests. I am reasonably confident by the time the beta happens, you will be able to run it solely on MongoDB.

Meanwhile, migration got stalled by an unrelated core issue, it's close to a resolution now. Other core changes broke many migrations but by now we should be back on track and again, I am reasonably sure by beta time the Drupal 6 to Drupal 8 path will be there to test. Will Drupal 7? I hope too but nothing is certain.

Catégories: Elsewhere

Andrew Pollock: [life] Day 65: Playgroup, and the foil confetti play date

Planet Debian - jeu, 03/04/2014 - 06:11

Zoe slept pretty well last night. She only woke up briefly at 4am because Cowie had fallen out of bed and she couldn't find her.

Today was the last Playgroup of the term. Megan, her little sister and her Dad came as well to check it out, which was nice, because Zoe then had someone to actively play with in addition to me.

After Playgroup, we went to the adjacent Bulimba Memorial Park with Megan, and then had some lunch at Grill'd. Megan's Dad wanted to do some work on their house while Megan's little sister napped, so I offered to give Megan a play date at our place.

The plan was to watch a movie and chill out. The girls picked Ratatouille and I made a batch of popcorn for them. Unfortunately Megan seemed to be less of a square eyes than Zoe, and she lost interest after a bit, so we stopped watching the movie and moved out to the balcony to do some craft.

Zoe had been wanting to make a crown for Mummy's boss for a while, so we made a couple of crowns with the hot glue gun. I had bought this bag of mixed craft "jewels" and it's probably the best single craft thing I've bought. Zoe loves gluing them onto everything.

After that, Zoe pulled out the bag of coloured foil confetti. If the gems were the best thing I've bought, this would have to be the worst. So far, all it's done is leak in the drawer it's been stored in, and I've been avoiding using it because it was going to be messy.

Today, Zoe wanted to glue it onto the outside of her cardboard box, so I decided to give in and embrace the mess, and boy, did we make a mess.

It probably ended up being the longest bit of cooperative play the girls did. They'd alternate between handing each other a fistful of confetti while I applied globs of glue where directed. Probably about 10 percent of each handful ended up stuck to the rocket, so the balcony looked like quite a mess by the end of it all, but at least it was a dry mess, so I could just vacuum it all up. I suspect I'll be encountering dregs for quite a while, because I doubt it's stuck to the cardboard particularly well.

After that, the girls played indoors for a bit, and watched a bit more of the movie, but Megan seemed to be scared of Anton Ego, so I think that was why it wasn't holding her attention.

The other activity that the girls seemed to thoroughly enjoy was tearing around the living room squealing while they took turns at throwing a grapefruit-sized beach ball at me, and I threw it back at them.

Jason came back to pick up Megan, and I started dinner. Not that long after Megan left, Sarah arrived to watch Zoe for me so I could go visit my cousin in hospital. I had dinner on the table pretty much as soon as she walked in the door, and headed out.

Catégories: Elsewhere

Drupal core announcements: This week-ish in Drupal core: April 2, 2014

Planet Drupal - mer, 02/04/2014 - 23:32
What's new with Drupal 8?

The past three weeks saw some exciting progress on Drupal 8, in part due to the hard work of everyone who went to DrupalDevDays 2014 in Szeged, Hungary. It also saw the release of drupal-8.x-alpha10.

Drupal Developer Days Szeged

DevDays Szeged was a landmark for the Drupal 8 release cycle. Participants marveled at how productive and well-organized the event was, and core maintainers commented they'd never seen such momentum in the RTBC queue. During the week-long sprint, 19 beta blocking issues were fixed (with three more RTBC) and every single missing change record was written. Outside core, sprinters also made significant progress on everything from the Search API module for Drupal 8 to Drupal.org itself. A robot doll, chocolates, bunny ears, stickers, and Drupal-ified Hungarian folk music also made it the event of the year. (Szeged slide show)

Alpha 10 released; Alpha 11 due Apr. 23

Alpha 10 was released on March 19th, just before Drupal Dev Days. Some notable changes include:

... for the full list of changes, see the alpha 10 release notes.

These alphas are provided to give you something more stable to work off of than having to chase HEAD every day.

Where's Drupal 8 at in terms of release?

Core momentum increased again in March, with a new all-time record of 51 criticals fixed over the month. In fact, we've nearly recovered to the level of known technical debt we had as of feature freeze a year ago. :P There's still a long ways to go, so help us focus on the most important issues and on releasing a sound Drupal 8 beta.

Our steady progress toward that first beta release continues as we divide the outstanding beta blockers into actionable sub-steps. Among March's fixed criticals were over 30 beta blockers, more than half the total, showing the community's tight focus on unblocking this milestone.


Note that the number of beta target issues (which are issues that would be good to resolve for the beta, but are not critical enough to block it) continues to increase. As we get closer to beta, it's important to also pay attention to these issues, so we'll be highlighting beta targets more in the coming weeks.

Last week, we fixed 25 critical issues and 24 major issues, and opened 15 criticals and 29 majors. That puts us overall at 118 release-blocking critical issues and 486 major issues.

16 beta-blocking issues were fixed last week. There are still 28 of 142 beta blockers that must be resolved before we can release a Drupal 8 beta.

Where can I help? Top criticals to hit this week

Each week, we check with core maintainers and contributors for the "extra critical" criticals that are blocking other work. These issues are often tough problems with a long history. If you're familiar with the problem space of one of these issues and have the time to dig in, help drive it forward by reviewing, improving, and testing its patch, and by making sure the issue's summary is up to date and any API changes are documented with a draft change record.

More ways to help

Love Drupal and want to help out, but not a coder or unsure where to start? From breaking things (for science!), to designing things; from summarizing issues to writing documentation, there's lots of ways you can contribute! And, there are more than 125 mentors willing to help you!

Our current priority is updating the documentation for Drupal 8. Rich, helpful documentation for Drupal 8 is incredibly important: it's a great way to market Drupal to potential clients, it saves you from writing as much documentation for your existing clients, it empowers new users, site builders, developers, and themers to learn and solve their problems; and, with all the changes that have happened since Drupal 7, it's pretty useful for seasoned Drupal veterans as well!

The documentation team is working on updating:

... for more information, visit the #drupal-docs channel on IRC or jump into the documentation issue queue.

As always, if you're new to contributing to core, check out Core contribution mentoring hours. Twice per week, you can log into IRC and helpful Drupal core mentors will get you set up with answers to any of your questions, plus provide some useful issues to work on.

Notable Commits

The best of git log --after=2014-03-12 --pretty=oneline (253 commits in total):

Amazing work on the configuration system's architecture and dependency management, notably:

  • Issue #2080823 by alexpott, swentel, Wim Leers: Create API to discover content or config entities' soft dependencies and use this to present a confirm form on module uninstall.
  • Issue #2030073 by alexpott: Config cannot be imported in order for dependencies.
    You can now declare dependencies for configuration entities, so you can ensure their dependencies are met before importing them.
  • Issue #2219499 by Berdir, alexpott, Gábor Hojtsy, vijaycs85, swentel: Generalize language config override responsibility.
    This patch simplifies the way that language-specific overrides work and significantly reduces the amount of code that needs to run on sites with only one language.

And, we resolved some of the menu/routing issues that had been causing headaches for developers:

  • Issue #2178725 by pwolanin, crowdcg, effulgentsia, Sutharsan: Make all core menu link machine names and the corresponding route names match.
  • Issue #2226903 by pwolanin, dawehner, tvn, martin107, jessebeach: Step 1: Move static menu links to yml files.
    Now, default menu links are declared the same way as local tasks and local actions. (The next step is to finalize the underlying architecture for this change.)
  • Issue #2207893 by dawehner, pwolanin, jessebeach, Boobaa: Convert menu tree building to a service.
    This removes a whole bunch of the code in menu.inc, makes the menu-building code unit-testable and decouples it from other subsystems. It also unblocks beta-blocking work on the Menu Link API.

In the "things that always annoyed you about Drupal" category,

  • Issue #318975 by sun, Bojhan, linclark: Remove confirmation page after installation.
    When the installer is finished, it drops you on the front page of your new site!
  • Issue #340723 by ParisLiakos, sun, Berdir, glennpratt, Cottser, swentel, tstoeckler, Xano, tim.plunkett, BassistJimmyJam: Make modules and installation profiles only require .info.yml files.
    That means no more empty .module and .profile files! DX FTW!
  • Issue #2122693 by jayeshanandani, YesCT, sun, alexpott, BMDan: Installer does not work on a completely empty settings.php.
    This had been possible in D7.

Other notable commits:

  • Issue #2188613 by Berdir, Xen, andypost: Rename EntityStorageController to EntityStorage.
    This 600K patch was added to make it easier to distinguish between Entity storage classes and Routing controllers.
  • Issue #2213451 by andypost, bdone, benjy, penyaskito, chx, claudiu.cristea, damiankloip, gregboggs, InternetDevels, jessehs, jhedstrom, marvil07, mikeryan, pcambra, Xano, YesCT: Update Migrate API in core.
    This huge update to the migrate API adds support for requirements/dependencies; adds migrations for passwords, URL aliases and config entities; improves entity, bundle and field support; adds lots of Drupal 6 migrations; allows you to set the MigrateSource and MigrateDestination using annotations; and improves documentation. Awesome work Migrate team!
  • Issue #1194136 by Berdir, damiankloip, Wim Leers: Re-organise core cache bins.
    This groups cached items by the type of data (e.g.: rendered HTML, data, entity), rather than the type of item (e.g.: node, block, etc.). This will make cache bins for frequently-requested items (like configuration) smaller with less-frequent updates, which makes it easier for query caches. And, it allows you to tune performance by choosing the most-efficient storage engine / storage location for the type of data (for example, putting the configuration cache table in RAM or on an SSD).
  • Issue #2211553 by andypost, Berdir: Allow usage of entity_reference field widget and formatter for base fields.
    Entity reference fields are being used in core, but there had been no way to use it's widget and formatter.

You can also always check the Change records for Drupal core for the full list of Drupal 8 API changes from Drupal 7.

Drupal 8 Around the Interwebs

Here are a few notable blog posts about Drupal 8 in the past few weeks:

Drupal 8 in "Real Life"

If you would like to get away from the computer, meet other Drupal users, learn about Drupal 8, and have fun at the same time, you can look forward to:

  • NYC Camp on April 10-13: you can get Twig training, there are 13 accepted Drupal 8 sessions, 10 sprints scheduled and there's even a Core summit!
  • DrupalCamp Frankfurt 2014 in Frankfurt, Germany on April 12 and 13; with 8 proposed Drupal 8 sessions on everything from Twig to the Configuration Management Initiative.
  • Drupal Camp Japan 2014 in Kyoto on April 12, featuring an introduction to Drupal 8.
Whew! That's a wrap!

Do you follow Drupal Planet with devotion, or keep a close eye on the Drupal event calendar, or git pull origin 8.x every morning without fail before your coffee? We're looking for more contributors to help compile these posts. You could either take a few hours once every six weeks or so to put together a whole post, or help with one section more regularly. If you'd like to volunteer for helping to draft these posts, please follow the steps here!

Catégories: Elsewhere

Wunderkraut blog: Grumpy Swedish developer try to setup for the Acquia Certified Developer exam, and you could not guess what happens next

Planet Drupal - mer, 02/04/2014 - 23:06

So, I wanted to do the Acquia Certified Developer exam. But I got into trouble before I even start taking the exam.

What got me into Drupal from the beginning were that it is open source, I love open source and what we could together with open source, and I do my daily work on an Ubuntu powered laptop. Why am I writing about that right now? I registered for taking the exam online at www.webassessor.com, and after I set a date and time for the test, I was told to download a piece of software called Sentinel. Sentinel is going to be used when I take the exam, to check me through the web cam, checking it is me doing the test, and I don’t have colleagues helping me out. Fair enough.

I clicked the link, and it was a installer for Windows. Something must be wrong somewhere. I searched the site. It seems that the program I need to install only is available on Windows and Mac. WTF! So I tried to install it with Wine (with that some Windows programs could be run on Ubuntu). Did not work, but I could figure out it was some kind of Flash software.

So I am stuck. I need to have a proprietary OS, I need to install proprietary software to take an exam for an open source system. All this seems totally wrong. Some bad decision has been taking on the road for this exam.

Story will continue (hopefully).

Catégories: Elsewhere

Wunderkraut blog: Adding a psuedo field

Planet Drupal - mer, 02/04/2014 - 21:59

Sometimes you need to display a field that have no input, like a static text or image on each node, or a Facebook like button, or whatever that does not have an input, but you still want to display it as a field, for that you have the hook hook_field_extra_fields.

To display a psuedo field you just need two functions (these functions I added to a custom module called wk_extra_fields)

<?php
/**
* Implements hook_field_extra_fields().
*/
function wk_extra_fields_field_extra_fields() {
  $extra = array();
    // Just adding the psuedo field to the page node type.
    $extra['node']['page'] = array(
      'display' => array(
        'wk_foo' => array(
          'label' => t('WK: Foo'),
          'description' => t('A foo field.'),
          'weight' => -5,
        ),
      ),
    );
  return $extra;
}

/**
* Implements hook_node_view().
*/
function wk_extra_fields_node_view($node, $view_mode, $langcode) {
  // The field is showed in when using full view mode and on page node type.
  if ($view_mode == 'full' && $node->type == 'page') {
    $node->content['wk_foo'] = array(
      '#markup' => '<div class="wk-foo">Foo!</div>',
    );
  }
}
?>


So we use the function wk_extra_fields_field_extra_fields() to create the psuedo field for the page node type, after that we can activate it in the display tab, and choose where to show the field.

When we view the node, the function wk_extra_fields_node_view() is called and the content is displayed.

Image: "Air Guitar Championship" by AxsDeny. Attribution-NonCommercial-NoDerivs License

Catégories: Elsewhere

Joey Hess: propellor type-safe reversions

Planet Debian - mer, 02/04/2014 - 19:09

Propellor ensures that a list of properties about a system are satisfied. But requirements change, and so you might want to revert a property that had been set up before.

For example, I had a system with a webserver container:

Docker.docked container hostname "webserver"

I don't want a web server there any more. Rather than having a separate property to stop it, wouldn't it be nice to be able to say:

revert (Docker.docked container hostname "webserver")

I've now gotten this working. The really fun part is, some properies support reversion, but other properties certianly do not. Maybe the code to revert them is not worth writing, or maybe the property does something that cannot be reverted.

For example, Docker.garbageCollected is a property that makes sure there are no unused docker images wasting disk space. It can't be reverted. Nor can my personal standardSystem Unstable property, which amoung other things upgrades the system to unstable and sets up my home directory..

I found a way to make Propellor statically check if a property can be reverted at compile time. So revert Docker.garbageCollected will fail to type check!

The tricky part about implementing this is that the user configures Propellor with a list of properties. But now there are two distinct types of properties, revertable ones and non-revertable ones. And Haskell does not support heterogeneous lists..

My solution to this is a typeclass and some syntactic sugar operators. To build a list of properties, with individual elements that might be revertable, and others not:

props & standardSystem Unstable & revert (Docker.docked container hostname "webserver") & Docker.docked container hostname "amd64-git-annex-builder" & Docker.garbageCollected
Catégories: Elsewhere

Tassia Camoes Araujo: Mini-Debconf Barcelona videos now available

Planet Debian - mer, 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!

Catégories: Elsewhere

Change(b)log: Commerce Marketplace payments

Planet Drupal - mer, 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.
Catégories: Elsewhere

DrupalCon Austin News: Are You Ready for Drupal 8?

Planet Drupal - mer, 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.

Catégories: Elsewhere

OhTheHugeManatee: How to Create a Custom Display Suite Field

Planet Drupal - mer, 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!

Catégories: Elsewhere

Last Call Media: Drupal 8 Lessons for Developers

Planet Drupal - mer, 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.

Catégories: Elsewhere

Francesca Ciceri: On translations

Planet Debian - mer, 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.

Catégories: Elsewhere

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

Planet Drupal - mer, 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: 
Catégories: Elsewhere

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

Planet Debian - mer, 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.

Catégories: Elsewhere

Fred Parke | The Web Developer: Creating content types and fields with a custom module in Drupal 7

Planet Drupal - mer, 02/04/2014 - 01:37

I was writing a custom module recently which used a custom content type or two. I wanted to make the module as reusable as possible but I also wanted to avoid including a feature inside of the module to add these content types.

Catégories: Elsewhere

Propeople Blog: How to Configure CyberSource Secure Acceptance Web/Mobile in Drupal 7

Planet Drupal - mer, 02/04/2014 - 01:31

Drupal is a great platform for ecommerce. If your business needs a Drupal website that accepts payments, a good payment system to use is CyberSource Secure Acceptance Web/Mobile. This tool allows business to accept payments made online, over the phone, and through mobile devices without ever handling toxic payment data. CyberSource is owned by Visa and integrates quite nicely with Drupal Commerce.

It consists of securely managed payment forms or as a single page payment form for processing transactions. This allows you to decrease your Payment Card Industry Data Security Standard (PCI DSS) obligations, thereby reducing any risks associated with handling or storing sensitive payment information.

In order to get this up and running on your Drupal website, you simply need to follow a few steps:

1. Create and configure Secure Acceptance profiles

2. Configure CybeSource profile with Drupal

3. See the results!

 

Creating a Secure Acceptance Profile

Important: For using a Secure Acceptance experience, an active profile is needed.

A Secure Acceptance profile consists of settings that you configure to create a customer checkout experience. In order to create a Secure Acceptance profile, you need to:

1. Log in to Business Center with Merchant ID:

Note: If you don't have a Merchant ID you will need to create one (https://support.cybersource.com/cybskb/index?page=content&id=C887)

2. In the left navigation panel, choose Tools & Settings > Secure Acceptance > Profiles > Create New Profile.

3. Enter Profile information

  • Enter profile name
  • Enter profile ID. The profile ID is case sensitive and must be exactly 7 alphanumeric characters. This field is used in each transaction to identify and display the Secure Acceptance profile.
  • Enter a profile description
  • Check Web/Mobile
  • Enter a company name
  • Check Payment Tokenization, Decision Manager, Enable Verbose Data

4. Click the Create button. The Profile Settings page appears. You must activate a profile in order to use it, and you must configure these required fields before activating a profile:

  • Payment Settings
  • Create a Security Key
  • Display a Customer Response Page

 

Configuring Payment Settings

You must select the card types that you wish to offer to the customer as payment methods. For each card type you select you can also manage currencies, CVNs, and payer authentication options.

The Card Verification Number (CVN) is a three- or four-digit number printed on the back or front of a credit card. This number helps to ensure that the customer has possession of the card at the time of the transaction.

To add a card type and enable the CVN you must:

1. On the “Profile Settings” page, click Payment Settings. The Payment Settings page appears.

2. Click Add/Edit Card Types. The Add/Edit Card Types window appears.

3. Check each card type that you wish to offer to the customer as a payment method.

4. Click Update.

5. Click the pencil icon in the column for each card type. The Edit Card Settings appears.

6. Check CVN Display and CVN Required to display the CVN field on Secure Acceptance.

7. On the “Currencies” section click Select All or select a currency and use arrow to move it from the Disabled list to the Enabled list.

8. Click Update

9. In the Automatic Authorization Reversals section (on the Payment Settings page) check Fails AVS check and Fails CVN check. Authorization is automatically reversed on a transaction that fails an AVS check or a CVN check.

10. Click Save.

 

Creating a Security Key

The security script signs the request fields using the secret key and the HMAC SHA256 algorithm. To verify data, the security script generates a signature to compare with the signature returned from the Secure Acceptance server. You must have an active security key to activate a profile. A security key expires after 2 years. The security key protects each transaction from data tampering.

To create and activate a security key:

1. On the “Profile Settings”page, click Security. The Security Keys page appears.

2. Click Create New Key. The Create New Key page appears.

3. Enter a Key Name (required).

4. Chose signature version Version 1.

5. Choose signature method HMAC-SHA256.

6. Click Generate Key. The Create New Key window expands and displays the new access key and secret key. This window closes after 30 seconds.

7. Copy and save the access key and secret key.

  • Access key: Secure Sockets Layer (SSL) authentication with Secure Acceptance.
  • Secret key: signs the transaction data and is required for each transaction.

By default, the new security key is active.

8. Click Return to Profile home. The “Profile Settings” page appears.

 

Displaying a Customer Response Page

You can choose to have a transaction response page displayed to the customer at the end of the checkout process, and a cancel response page displayed during the checkout process. Enter a URL for your own customer response page or use the CyberSource hosted response pages.

To redirect a customer after Check-out:

1. On the “Profile Settings” page, click Customer Response Pages.

2. Under the Customer Redirect after Check-out heading, enter the URL for the custom page that the customer will be redirected to after checkout.

3. Click Save.

 

Activate Profile

To make your profile active:

1. On the "Profile Settings" page, click Promote to Active

 

2. Your profile is now active!

 

Drupal Site Configuration

1. Install the Commerce CyberSource Secure Acceptance Web/Mobile contrib module.

2. Check that the module Payment UI is enabled.

3. From the Drupal admin menu, choose Store > Configuration > Payment Methods (or access path admin/commerce/config/payment-methods).

4. Select Edit Operation for payment method rule “CyberSource Secure Acceptance Web/Mobile”

5. Edit the rule action “Enable payment method: CyberSource Secure Acceptance Web/Mobile”.

6. In the Payment Settings section enter the Secure Acceptance profile details.

7. Enter Profile ID (configured during Step 3 -  Secure Acceptance Profile)

8. Enter Access Key and Secret key you created (see “Creating a Security Key” above)

9. Select Transaction mode:

10. Set Transaction Type to “Authorize Funds”

11. Locale (ex: English - American)

12. Set Payment method to “Card”

13. Enter text for Payment Submit Button Text.

14. Click Save.

15. On the Payment methods page, enable the rule for CyberSource Secure Acceptance Web/Mobile.


Now, on the completion of order you can select Credit Card as the payment method.

After you click on “Continue to Next Step”you wil berl redirected to the Cybersource site.

After completion, and the display of CyberSource payments details, you will be redirected back to your Drupal site.

And that's it! If you follow all of the steps above, CyberSource Secure Acceptance Web/Mobile should be configured on your Drupal 7 site in no time. Make sure to contact us if you are looking for a technology partner to help you ensure the success of your Drupal business or ecommerce website. 

Good luck. 

Tags: DrupalDevelopmentpayment systemecommerceDrupal for BusinessCyberSourceCheck this option to include this post in Planet Drupal aggregator: planetTopics: Tech & Development
Catégories: Elsewhere

Greater Los Angeles Drupal (GLAD): GLADCamp Rebrands as VLADCamp; Focuses on Drupal for Evil

Planet Drupal - mer, 02/04/2014 - 00:45

A new look for the Greater Los Angeles Area Drupal Camp has been unveiled. “VLADCamp” is the new name of the conference, co-organized by Greater Los Angeles Drupal organizing team member Christefano Reyes, who announced the name as it epitomizes the goals for the organization moving forward.

“GLADCamp was originally envisioned as being the Drupal community's marquee event of the year that heavily focuses on the needs of non-profits, education and civic engagement. After trying 'Drupal for Good' this year, we decided that 'Drupal for Evil' would be more fun,” he explained.

This marks a major shift in strategy for the user group, which for nearly 4 years has provided Drupal resources, including its Business Directory and Governance Policy, and events, including this year's inaugural GLADCamp conference.

"It's difficult growing a brand that's known for so many different things, such as meetups, job fairs, coworking days, study group sessions, workshops, code sprints and conferences," he said. "Now we stand for just one thing: Evil. We think our members will appreciate this simplification. Besides, being completely transparent and accountable is too hard."

According to Holly Ross, executive director of the Drupal Association, a non-profit whose mission is to foster and promote the Drupal software and community, "There is currently no other Drupal user group on our radar who is so blatantly dedicated to this behavior. We've been monitoring several user groups that have little transparency, little accountability or little consistency, but this is the first time we've seen a user group without all three," she said in a phone interview. "We're continuing to monitor the situation."

The VLADCamp organizing team is delighted with the impact of its new name and logo, which has been developed in consultation with Acquio, based in Burlington, Massachusetts. "We enjoy working with forward-thinking organizations who can pivot and provide value to underserved markets," said Acquio CMO Tom Wentworth, who featured VLADCamp as a successful launch partner of its content personalization service, Acquio Escalator.

Tags: Planet DrupalApril Fools Day
Catégories: Elsewhere

Cocomore: DrupalDevDays Szeged 2014

Planet Drupal - mar, 01/04/2014 - 22:45

The last week three of us from Cocomore went to the little town of Szeged in Hungary around 175km south east of Budapest.

The DevDays were all about developing Drupal 8 further and enhance drupal.org. The only topic was contributing to Drupal in the one way or the other. Whatever you are, either a developer, a themer, a site builder, a devop or a business man, everyone has his/her part in this amazing community and everyone found a spot where he/she could help to foster Drupal further.

read more

Catégories: Elsewhere

DrupalCon Austin News: DrupalCon Austin Sessions are Posted!

Planet Drupal - mar, 01/04/2014 - 22:14

How’s this for a session title? “Newfangeldy mobile and front-end crap for people who last touched front-end code back when grunge was a thing.”

Or this one? "Markup Ain't Easy or: How I Learned to Stop Worrying and Love An Object-Oriented RenderAPI"

Catégories: Elsewhere

Morten.dk: fields theming in Drupal8, kill the divitis

Planet Drupal - mar, 01/04/2014 - 21:35

I finally got to take a long & hard look at fields and why they have so much divitis + a solution of how to change it for Drupal8. It ended up beeing a ton of markup & css examples on a flat html page
take a look please provide feedback, here or on the issue or at my twitter etc.

read more

Catégories: Elsewhere

Pages

Subscribe to jfhovinne agrégateur - Elsewhere