Flocon de toile | Freelance Drupal: Managing media with Drupal 8

Planet Drupal - jeu, 07/07/2016 - 10:00
Media management has been identified as a priority in the last DrupalCon (New Orleans 2016). If we could have on Drupal 7 some contributed modules offering an unparalleled user experience for media management, Drupal 8 was still orphan not long ago for an equivalent solution. With the stable release of the Media Entity module, Drupal 8 now has a robust and scalable solution to offer its users a customized media management. Let's explore how to set up a media management on Drupal 8 with the Media Entity collection.
Catégories: Elsewhere

Radium on Drupal: GSoC 2016 | Using Web Components in Theme Design

Planet Drupal - jeu, 07/07/2016 - 09:17
Overview My project can be seen as a mixture of tools that uses Web Components to enhance Drupal’s frontend experience. In previous weeks, I have been programmatically turning parts of Drupal into Web Components and exporting some of them. This week, I would like to talk about using Web Components in Drupal themes, and furthermore, a Web Component-driven approach for theme design.
Catégories: Elsewhere

Arpit Jalan: GSOC 2016- Starting with Face Detection feature of Google Cloud Vision API- Week 6

Planet Drupal - jeu, 07/07/2016 - 07:18
TL;DR Previous week I had worked on grouping the contents based on the dominant color component in their images, if present. The work is under review of the mentors. And once, it gets reviewed, I would work further on that issue. Meanwhile, I have started developing and implementing the Emotion Detection feature of the Google Cloud Vision API. It would detect the emotion of the person in the profile picture uploaded, and if the person looks angry or unhappy, he would be notified thereof. This feature is especially important when building sites for professional purposes, as the facial looks matters a lot in such cases.
Last week, I had worked on implementing the Dominant Color Detection feature in the Google Vision API module. The code is currently under the review by the mentors. Once, they review it, I would develop further on it if it requires any changes.
Hence, meanwhile, I have started working on implementing a new feature Face Detection in an image. This feature gives us the location of the face in an image, and in addition, the emotions and expressions on the face.
I have used this feature to detect the emotion of the person in the profile picture uploaded by him/her. If the person does not seem happy in the image, he/she is notified thereof of their expressions. This is especially useful when the end users are developing a site for professional purposes, as in professional matters, expressions matters a lot.
Coming to the technical aspect, I have made use of hook_entity_bundle_field_info_alter() to alter the image fields, and check the emotions in the uploaded images. This function has been used, as we only want to implement this feature on the image fields. If the image is not a happy one, then appropriate message is displayed using drupal_set_message(). This feature also makes use of Constraints and Validators just like the Safe Search detection feature.Presently, the code is under the review by the mentors.
In addition to the implementation of Face Detection, I also worked on expanding the tests of the Safe Search Detection feature of the Google Vision API module to test other entities as well, in addition to the nodes. I have expanded the tests to test the safe search constraint on the comment entity as well.This requires the creation of a dummy comment type, adding an image field to the comment type, and attaching the comment to the content type.The image field contains the safe search as the constraint on it. This test is basically similar to the tests present in the module for the node entity.The code is under review by the mentors and would soon be committed to the module.For reference on how to create dummy comment types and attaching it to the content types, the CommentTestBase class is very helpful.
Catégories: Elsewhere

Markus Koschany: My Free Software Activities in June 2016

Planet Debian - jeu, 07/07/2016 - 03:06

My monthly report covers what I have been doing for Debian. I write it for Debian’s Long Term Support sponsors but also for the wider free software community in the hope that it might inspire people to get more involved with Debian or free software in general.

Debian Android Debian Games
  • I packaged CaveExpress and CavePacker for Debian. CaveExpress is a remake of the old Amiga classic Ugh! In this game you control a pedal-powered flying machine and pick up packages from your clients. An interesting aspect of CaveExpress is its physics-based gameplay. The packages must be delivered to a collection point and their movement is quite realistic thanks to the excellent Box2d physics engine. The other game, CavePacker, based on the same engine as CaveExpress is a Sokoban-like game. Both games feature dozens of levels and if you have nothing better to do, you should definitely check them out.
  • This month I also packaged a new upstream release of Netpanzer. Apparently there is new upstream activity.
  • Blockattack 2.0 was released and is now available in Debian.
  • I also updated the following packages: kball, pathogen, ceferino, slimevolley, pangzero and airstrike.
  • I adopted abe, berusky and berusky-data, updated the packages to use modern debian helpers and also packaged version 1.7 of berusky, a great Sokoban-like game by the way.
  • June also saw a new release of debian-games, several metapackages that make it much easier to install a subset of games or even the finest.
  • I sponsored RC-bug fixes for parsec47, tumiki-fighters, mu-cade and tatan all prepared by Peter De Wachter who keeps our D (yes, that’s a language) games alive. But we will face more issues in the post Stretch future. Apparently the D language people intend to remove parts of their API and of course all our D-based games are affected. Peter has announced more information about that. I think all these games are pretty unique and real gems. If you know a little D and want to help out, please get involved.
Debian Java Debian LTS

This was my fifth month as a paid contributor and I have been paid to work 19,75 hours on Debian LTS. In that time I did the following:

  • DLA-501-1. Salvatore Bonaccorso from Debian’s Security Team discovered that the original fix for CVE-2015-7552 (DLA-450-1) was incomplete. I prepared and uploaded a new revision of gdk-pixbuf and issued the DLA.
  • DLA-502-1. Issued a security update for graphicsmagick fixing 1 CVE.
  • DLA-504-1. Issued a security update for libxstream-java fixing 1 CVE which was prepared by Emmanuel Bourg.
  • DLA-505-1. Issued a security update for libpdfbox-java fixing 1 CVE.
  • DLA-508-1. Issued a security update for expat fixing 2 CVE.
  • DLA-511-1. Issued a security update for libtorrent-rasterbar fixing 1 CVE.
  • DLA-526-1. Issued a security update for mysql-connector-java fixing 1 CVE. I also prepared the update for Jessie which is still pending to be reviewed by the Security Team.
  • DLA-528-1. Issued a security update for libcommons-fileupload-java fixing 1 CVE.
  • DLA-529-1. Issued a security update for tomcat7 fixing 1 CVE.
  • DLA-530-1. As previously announced I switched the default Java implementation from OpenJDK 6 to OpenJDK 7.
  • DLA-537-1. Issued a security update for roundcube fixing 1 CVE. I triaged CVE-2016-5103, CVE-2015-2180 and CVE-2015-2181 and marked them as “not-vulnerable”.
  • I triaged 22 CVEs for libarchive and marked two of them as “not-vulnerable”. You can find my preliminary work for libarchive on the wheezy branch in Debian’s git repository. I expect a security update very soon.
  • From 13 June to 19. June I was responsible for Wheezy’s LTS frontdesk. It was a rather calm week on the debian-lts mailing list and in our IRC channel. I triaged CVE-2016-4970 (netty), CVE-2016-3189 (bzip2), CVE-2016-1621 (libvpx) and CVE-2016-4493, CVE-2016-4492, CVE-2016-4491, CVE-2016-4490, CVE-2016-4489, CVE-2016-4488, CVE-2016-4487, CVE-2016-2226 which were all minor issues in developer tools or in the gcc toolchain.
  • I commented on Ola’s question about open security issues in phpmyadmin.
QA uploads
  • I fixed pygccxml that threatened to remove spring.
  • I completely overhauled gl-117, fixed four bugs and closed two obsolete ones. gl-117 always reminds me a little of the Falcon series from the early 90ies.
Catégories: Elsewhere

Bits from Debian: Debian Perl Sprint 2016

Planet Debian - mer, 06/07/2016 - 23:45

Six members of the Debian Perl team met in Zurich over the weekend from May 19 to May 22 to continue the development around perl for Stretch and to work on QA across 3000+ packages.

The participants had a good time, met friends from local groups and even found some geocaches. Obviously, the sprint was productive this time too:

  • 36 bugs were filed or worked on, 28 uploads were accepted.
  • The plan to get Perl 5.24 transition into Stretch was confirmed, and a test rebuild server was set up.
  • Cross building XS modules was demoed, and the conditions where it is viable were discussed.
  • Several improvements were made in the team packaging tools, and new features were discussed and drafted.
  • A talk on downstream distribution aimed at CPAN authors was proposed for YAPC::EU 2016.

The full report was posted to the relevant Debian mailing lists.

The participants would like to thank the ETH Zurich for hosting us, and all donors to the Debian project who helped to cover a large part of our expenses.

Catégories: Elsewhere

DrupalCon News: Call for Content Closes with Record Submissions

Planet Drupal - mer, 06/07/2016 - 23:38

In true Drupal fashion, we had a huge amount of proposals for DrupalCon Dublin on the last day to bring us to a record-breaking 621 session submissions.

Catégories: Elsewhere

GVSO Blog: [GSoC 2016: Social API] Week 6: Facebook Widgets Buttons

Planet Drupal - mer, 06/07/2016 - 20:37
[GSoC 2016: Social API] Week 6: Facebook Widgets Buttons Submitted by gvso on Wed, 07/06/2016 - 14:37

Week 6 is over, and we are already in the second week of the second half of Google Summer of Code 2016. We are working hard to have the Social API project ready to be used widely before GSoC ends. Furthermore, we are trying to already have some implementors, so developers can see sample modules developed on top of the Social API, Social Auth, Social Post, and Social Widgets.

Tags Drupal Planet Drupal GSoC 2016
Catégories: Elsewhere

Axelerant Blog: 16 Drupal 8 Features You Should Know

Planet Drupal - mer, 06/07/2016 - 20:00

Development started on Drupal 8 features back in March of 2011. Since then, the developer and application framework world has looked forward to the outcomes of every development, feature completion, clean-up, API completion, beta, and release candidate (RC) phase with baited breath. In November of 2015, Drupal 8.0.0 was released. Sighs of relief turned to curious murmers—what’s this all about?

Drupal 8 takes an already terrific content management framework to ever greater heights for users, administrators, and developers. There’s a seriously sharp focus on user-friendliness, but content presentation, new ways to create data structures, build APIs, multilingual capabilities, and the delivery of mobile accessibility out of the box? Drupal 8 brings those to the table too.

Looking for help with Drupal 8?

Here’s an Open Source Staffing Guide so you can find the right people faster.

hbspt.forms.create({ portalId: '557351', formId: '0e484b0e-3475-47ed-b8f5-49fa6b4cacab' });

There are 16 Drupal 8 features worth knowing.

While Symfony 2 powers the Drupal 8 backend, a lighter and faster core offers tons more capabilities for modules and themes. Plus, the Drupal 8 migration and the onward curve is significantly reduced. These changes and more are key reasons to consider that switch to Drupal 8. But I’m getting ahead of myself, here are the 16 top Drupal 8 features:

1. New Theme Engine

Drupal 8 includes a brand new theming engine called Twig, which is PHP-based, flexible, fast, and secure. It’s much easier to create beautiful and more functional Drupal websites using Twig, as its templates are written in a syntax that’s less complex than a PHP template or others while being more secure.

2. Mobile First From The Get-Go

Drupal 8 is mobile first in its approach. All the built-in themes that come with Drupal 8 are responsive, along with an admin theme that adapts to different screen sizes, and a ‘Back To Site’ button to go back to the front page. Tables fit into any screen size without a hitch, and the new admin toolbar works well on mobile devices.

3. More HTML5 Power to You

HTML5 is now more or less the de facto standard when it comes to writing web markup. The same is now available natively in Drupal 8, giving you access to input fields like date, e-mail, phone, etc., and even more functionality and compatibility with mobile and handheld devices.

4. Multilingual Ready

Drupal 8 boasts extensive multilingual features right out of the box. The admin interface has built-in translations. You can also create pages with language-based Views filtering and block visibility. Translation updates from the community are automatically facilitated.

5. Manage Your Configuration

Drupal 8 has configuration management built into it at the file-system level so that carrying over configuration elements (like content type, views, or fields, etc.) from local development to the server is a breeze. You can use a version-control system to keep track of configuration changes. Configuration data is stored in files, separate from the site database(s).

6. Easy Authoring

New Drupal 8 features bring unprecedented power into the hands of the Content Editor, with WYSIWYG editor CKEditor now bundled with the core. However, the most touted improvement remains the in-place editing capability that Drupal 8 will afford users, a result of the Spark Initiative.

Site and content creators or editors can edit text on any page without having to switch to the full edit form. Drafts are now much easier to create, and web security is now better implemented as a result.

7. Quick Edits

There’s something great about seeing something that needs changing and having the ease of access to change it—directly and quickly. Now Quick Edit is a backport of the Drupal 8 in-place editing for Fields. So if you’re logged into Drupal content is in front of you, edit the text directly for quick fixes and additions from the front-end.

8. Views Now Part of Core

Views sit high up in the Drupal module hierarchy, as it is an integral part of most website projects, and a lot is pretty much impossible without it. Site designers have used use this hitherto-contributed module to output galleries, maps, graphs, lists, posts, tables, menus, blocks, reports, and what-have-you.

With this Drupal 8 feature, Views is part of and firmly integrated with the core. The front page and several administration pages are now Views, and users will now be able to quickly create pages, blocks, admin sections, etc., and modify existing ones just as effortlessly.

9. Better Support for Accessibility

Drupal 8 has excellent support for industry standard accessibility technologies, like WAI-ARIA. ARIA Live Announcements API and TabManager are significant improvements in Drupal 8, which provide control for rich Internet applications. Bells and whistles like better font sizes, tweaked color contrasts, jQuery UI’s autocomplete, and modal dialogs go a long way towards making Drupal 8 a breeze to use.

10. Web Services Built-in

Drupal 8 now makes it possible to use itself as a data source, and output content as JSON or XML. You can even post data back to Drupal 8 from the front end. Hypertext Application Language (HAL) is implemented in Drupal 8 and makes exploitation of web service capabilities less painful.

11. Fields Galore

Drupal 8 ships with bucket-loads of field types in the core, thus taking its content structure capabilities up a notch. New field types like entity reference, link, date, e-mail, telephone, etc., aid content creation, and now you can attach fields to more content types, as well as create custom contact forms by attaching fields to them.

12. Guided Tour

Now the descriptive text is right under the help link. Users can click and then take the tour; pop-ups appear, explaining how this all works, one of the most helpful Drupal 8 features to newcomers. This user-friendly boost is well-received as it’s making the CMS easier for everyone to understand.

13. Loading Speed

Drupal 8 caches all entities and only loads JavaScript when necessary. When a page is viewed, its content doesn’t need to be reloaded again. Previously viewed content is quickly loaded from the cache. Once configured and enabled, caching is completely automatic.

14. Industry Standards

Drupal 8 aligns with the latest PHP 7 standards like PSR-4, namespaces, and traits, and uses top notch, outstanding external libraries like Composer, PHPUnit, Guzzle, Zend Feed Component, Assetic to name a few. Meanwhile, underlying Drupal 8 features modern, object-oriented code that’s the order of the day, by Symfony 2.

15. JavaScript Automated Testing

Automated testing is not possible for front-end, so JaveScript (JS) automated testing is now possible with Drupal 8.1. Now QA’ers can test the JavaScript front-end automatically, saving time and making continuous integration that much easier.

16. Big Pipe in Core

With Big Pipe part of Drupal core, developers can optimize the site load performance for the end-user significantly. While this feature has nothing to with actual performance and is only perceived, it’s a great feature to have since end-user is able to see a difference in site load times.

Enough Drupal 8 features to think about?

These 16 Drupal 8 features are some of the most important reasons that this upgrade is so worth celebrating; it’s the collective work of over 3,000 contributors. But more importantly to you, this might be that big, bright answer you’ve been searching for.

Got Drupal 8 your mind? Tell us why. jQuery(document).ready(function() { var cta_577d522de2e3e = false; jQuery(document).scroll(function() { if ( typeof ga !== 'undefined' && typeof isScrolledIntoViewPort !== 'undefined' && jQuery.isFunction( isScrolledIntoViewPort) && isScrolledIntoViewPort('.cta_577d522de2e3e') && cta_577d522de2e3e == false ) { cta_577d522de2e3e = true; ga('send', 'event', 'cta-wide', 'view-drupal-migration', 'Tell us why'); } }); }); More Drupal 8 resources:

This article was originally published in July, 2014. It has since been updated.

This article 16 Drupal 8 Features You Should Know by Jasper Levi first appeared on Axelerant - Axelerant: Expert Drupal Development, Support, & Staffing.

Catégories: Elsewhere

Miloš Bovan: Week 7 of GSoC ‘16: Mailhandler updates

Planet Drupal - mer, 06/07/2016 - 19:47
Week 7 of GSoC ‘16: Mailhandler updates

The coding period of Google Summer of Code 2016 has been continued after midterm evaluation. After splitting the Mailhandler analyzer into more specific and independent analyzers for different parts of an email message (sender, entity type, PGP, body, footer), last week I was working on providing test coverage for those.

The current tests are mostly written as kernel tests because of their speed of execution. MailhandlerNodeTest represents an integration test for the node handler and tests the whole process of Inmail analyzers and handlers.

Newly written tests:

  • SenderAnalyzerKernelTest - the use case when a user is identified and when a user is not identified
  • PGPAnalyzerKernelTest - test assertions of PGP-signed messages which inlude body, sender etc
  • FooterAnalyzerKernelTest tests plain mail messages with and without the message footer
  • EntityTypeAnalyzerKernelTestcovers entity type and bundle pair of the mail subject.
  • SenderAnalyzerKernelTest covers the mail sender detection using From mail header field.

As they were all similar in the implementation, AnalyzerTestBase was added. It contains the list of required enabled modules and set up configuration for easier analyzer-specific work. 

Regarding the web tests, I extended MailhandlerWebTest with "Manage display" assertions of GPG key field which can be displayed via the public key, GPG key's fingerprint or as both properties.

Also, I would like to update you on status of related Inmail issues:

The plan for the next week seems quite interesting. Besides the mentioned Inmail issues, I will be working on adding support for creating comments by sending an email. All analyzers implemented in the previous week will be used as a part of new comment handler. I am looking forward to enriching Mailhandler with one more feature.



Milos Wed, 07/06/2016 - 19:47 Tags Drupal Open source Google Summer of Code Drupal Planet Add new comment
Catégories: Elsewhere

Into my Galaxy: GSoC’ 16: Port Search Configuration module; coding week #6

Planet Drupal - mer, 06/07/2016 - 19:06

Google Summer of Code (GSoC) is into the next phase of coding after the mid-Term evaluations which got over by June 27th. This also reminds students to speed up the coding activities to complete the projects within the schedules provided in the proposal.

I am porting Search Configuration module to Drupal 8 as part of this year’s summer of code. GSoC is definitely turning out to be a venue for the young students from universities around the world to work on real-world projects under the experience of well-known developers, learning new technologies, making use of version control systems, with regular meetings and finally building up a software which is going to help a large section of the society.

I blog regularly, sharing my project progress. If you would like to have a glimpse of my past activities on this port, please visit this link.

Drupal 8 has introduced the concept of Html twigs in place of the PHP templates. So, the PHP template files have to be now ported to the Html environment. The .tpl.php template file is replaced by the .html.twig file for the module templates.  Templates are simply text files which can give outputs in Html, Latex, CSV or XML formats.

To print some data, we usually take the service of echo statements in PHP.  The print statements are replaced by {{ }} in Html twigs.

<?php echo t(‘Let’s start the process.’); ?>

is replaced by:

{{ ‘Le’s start the process’|t }}

The variable names have to be converted to simple names. For instance,



{{  title }}

The PHP logics have to be replaced by {% %} syntax. This is applicable to all the logical statements.

<?php if ($page[‘title‘]): ?>


<?php endif; ?>

is transformed as:

{% if form %}


{% endif %}

Also, the variables are replaced by simple names.

<?php if ($logo): ?>

is transformed as:

{% if logo %}

These were some of the basic transformations to get started into created the HTML twigs.The use of the Html twigs has made the templates look very simple and easily understandable. It is really easy to get the templates converted to the Html twigs. This is always one of the crucial requirements of porting modules from Drupal 7 to Drupal 8.

Stay tuned for further updates on this port process.

Catégories: Elsewhere

Joey Hess: twenty years of free software -- part 9 small projects

Planet Debian - mer, 06/07/2016 - 17:44

My dad sometimes asks when I'll finish git-annex. The answer is "I don't know" because software like that doesn't have a defined end point; it grows and changes in response to how people use it and how the wider ecosystem develops.

But other software has a well-defined end point and can be finished. Some of my smaller projects that are more or less done include ?myrepos, electrum-mnemonic, brainfuck-monad, scroll, yesod-lucid haskell-mountpoints.

Studies of free software projects have found that the average free software project was written entirely by one developer, is not very large, and is not being updated. That's often taken to mean it's a failed or dead project. But all the projects above look that way, and are not failures, or dead.

It's good to actually finish some software once in a while!

Next: ?twenty years of free software -- part 10 shell-monad

Catégories: Elsewhere

Zivtech: Drush: What You Should Know

Planet Drupal - mer, 06/07/2016 - 16:00
Every release of Drupal requires its own version of Drush. There are some, but not many, changes for Drush moving from Drupal 7 to Drupal 8. Drush 8 can be used to control the new configuration management system. One change to look out for is that Drush cache-clear (cc) has joined forces with Drush registry-rebuild (rr) to become Drush cr, or cache-rebuild, in Drupal 8.
Understand Drush Short for Drupal Shell, Drush is a tool that allows developers to work on the command line, an interface that has both benefits and disadvantages to the Drupal UI (user interface). Some tasks, such as building Views, can be done faster in the UI, and some tasks, such as exporting views to a feature, are done faster on the command line. Drush is less of a replacement for the UI and more of a companion to it.

You might even say Drush stands for Drupal Rush because it speeds up the process so nicely. Basically, Drush offers a way around the Drupal user interface. You no longer have to click through the Drupal menu when you use Drush.

Using Drush, developers can import and export databases and features, clear caches, and migrate content from data feeds. Drush can also install modules, run security updates, and run database updates. Developers can also write and implement their own Drush commands.

To start using Drush, there are many different ways to install the setup. One way you can proceed is to install a LAMP stack (Linux, Apache, MySQL, and PHP/Python/Perl), then install Composer, and finally you can install Drush. Here’s a good tutorial.

Sound like a lot of steps? Maybe, but once you use it, there’s no going back. Dan Zinkevich, one of our staff developers, says, “I use Drush a lot during development. There are times when I can go a long time without opening my browser because all the commands that I need are available via Drush.” Dan recommends that Drupal developers learn Drush immediately, especially if they are committing code to a database.

Learning to use Drush is a bit like learning a language. There are dozens of commands. And there are also many plug-in commands from third party sources. Here’s a helpful site that breaks down commands by Drush version, and provides documentation for each.
Go Faster. Add Fetcher. If you build a lot of sites, then you end up with a lot of repetitive tasks. There are commands a developer runs repeatedly. Zivtech’s VP of Engineering, Howard Tyson, is a major fan of automation. He created Drush Fetcher, an extension that automates the process of provisioning a Drupal site on a local development environment or a server. “It used to take 30 to 45 minutes to set up a site, and now it takes 3 minutes,” explains Howard. “Fetcher doesn’t take away the cognitive load. It takes away the monkey work.”

Fetcher can set up the Drupal root, fetch the code, create a database for the site and a user with management privileges, update permissions, create symlinks, set up server configuration files, and generate Drush alias files. Fetcher also supports post installation tasks.

Drush and Fetcher are not about cutting corners. They simply bypass the web interface of Drupal. You don’t have to click through the menu to get the actions you want. And that’s a huge time saver.
Catégories: Elsewhere

Mediacurrent: Ramping Up with the AMP Module in Drupal 8

Planet Drupal - mer, 06/07/2016 - 15:14

By now, you should have heard about the latest buzz that is Google AMP - but if not, check out our previous introductory post to learn about the benefits (and potential pitfalls).

Catégories: Elsewhere

Daniel Pocock: Avoiding SMS vendor lock-in with SMPP

Planet Debian - mer, 06/07/2016 - 11:43

There is increasing demand for SMS notifications about monitoring alerts, trading notifications, flight delays and other events. Various companies are offering SMS transmission services to meet this demand and many of them aggressively pushing their own proprietary interfaces to the SMS world rather than using the more open and widely supported SMPP.

There is good reason for this: if users write lots of of scripts to access the REST API of an SMS service, the users won't be able to change their service provider without having to change all their code. Well, that is good if you are an SMPP vendor but not if you are their customer.

The HTTP REST APIs offered by many vendors hide some details of the SMS protocol and payload. At first glance, this may feel easier. In fact, this leads to unpredictable results when delivering messages to users in different countries and different character sets/languages. It is better to start with SMPP from the beginning and avoid discovering those pitfalls later. The SMS Router free/open source software project helps overcome the SMPP learning curve by using APIs you are already familiar with.

More troublesome for large organizations, some of the REST APIs offered by SMS gateways want to make callbacks to your own servers: this means your servers need public IP addresses accessible from the Internet. In some organizations that can take months to organize. SMPP works over one or more outgoing TCP connections initiated from your own server(s) and doesn't require any callback connections from the SMPP gateway.

SMS Router lets SMS users have the best of both worlds: the flexibility of linking to any provider who supports SMPP and the convenience of putting messages into the system using any of the transports supported by an Apache Camel component. Popular examples include camel-jms (JMS) for Java and J2EE users, STOMP for scripting languages, camel-mail (SMTP and IMAP) for email integration and camel-sip (SIP) or camel-xmpp (XMPP) for chat/instant messaging systems. If you really want to, you can also create your own in-house HTTP REST API too using camel-restlet for internal applications. In all these cases, SMS Router always uses standard SMPP to reach any gateway of your choice.

Architecture overview

SMS Router is based on Apache Camel. Multiple instances can be operated in parallel for clustering, load balancing and high availability. It can be monitored using JMX solutions such as JMXetric.

The SMPP support is based on the camel-smpp component which is in turn based on the jSMPP library, which comprehensively implements the SMPP protocol in Java. camel-smpp can be used with minimal configuration but for those who want to, many SMPP features can be tweaked on a per-message basis using various headers.

The SMPP gateway settings can be configured and changed at will using the sms-router.properties file. The process doesn't require any other files or databases at runtime.

The SMS Router is ready-to-run with one queue for sending messages and another queue for incoming messages. The routing logic can be customized by editing the RouteBuilder class to use other Camel components or any of Camel's wide range of functions for inspecting, modifying and routing messages. For example, you can extend it to failover to multiple SMPP gateways using Camel's load-balancer pattern.

Getting started

See the README for instructions. Feel free to ask questions about this project on the Camel users mailing list.


SMS is not considered secure, the SMS Router developers and telecommunications industry experts discourage the use of this technology for two-factor authentication. Please see the longer disclaimer in the README file and my earlier blog about SMS logins: an illusion of security. The bottom line: if your application is important enough to need two-factor authentication, do it correctly using smart cards or tokens. There are many popular free software projects based on these full cryptographic solutions, for example, the oath-toolkit and dynalogin.

Catégories: Elsewhere

Mike Gabriel: [Arctica Project] Release of nx-libs (version

Planet Debian - mer, 06/07/2016 - 11:31
Introduction NX is a software suite which implements very efficient compression of the X11 protocol. This increases performance when using X applications over a network, especially a slow one. NX (v3) has been originally developed by NoMachine and has been Free Software ever since. Since NoMachine obsoleted NX (v3) some time back in 2013/2014, the maintenance has been continued by a versatile group of developers. The work on NX (v3) is being continued under the project name "nx-libs". History Until January 2015, nx-libs was more mainly a redistribution approach of the original NX (v3) software. We (we as in mainly a group of X2Go developers) kept changes applied to the original NoMachine sources as minimal as possible. We also kept the original files and folders structure. Patches had been maintained via the quilt utility on top of a Git repository, the patches had always been kept separate. That was the 3.5.0.x series of nx-libs. In January 2015, the characteristics of nx-libs as maintained by the X2Go project between 2011 and 2015 changed. A decision was reached:
  • Drop quilt patching approach
  • Apply all already used patches to the code via Git
  • Clean-up the complete source code tree
  • Start backporting code from X.org
  • Add new features, upgrade API/ABI and X11 extensions
This effort is now about to be released as "nx-libs". Contributors Since 2011, the nx-libs code base has to a great extent been maintained in the context of the X2Go Project [1]. Qindel Group joining in... In 2014, developers from the Qindel Group [2] joined the nx-libs maintenance. They found X2Go's work on nx-libs and suggested joining forces as best as possible on hacking nx-libs. The Arctica Project comming up... Starting in January 2015, the development on the 3.6.x branch of the project was moved into a new project called the Arctica Project [3]. Development Funding by Qindel In September 2015, a funding project was set up at Qindel. Since then, the Qindel group greatly supports the development of nx-libs 3.6.x monetarily and with provided man power. The funding project officially is a cooperation between Qindel and DAS-NETZWERKTEAM (business run by Mike Gabriel, long term maintainer of nx-libs). The funding is split into two subprojects and lasts until August 2017:
  • Work on nx-libs (coordinated by DAS-NETZWERKTEAM, Mike Gabriel)
  • Work on multimedia support in remote graphical sessions (coordinated by Guangzhou Nianguan Electronics Technology Co.,Ltd)
The current nx-libs development effort is coordinated in the context of the Arctica Project (by Mike Gabriel), with use cases in Arctica, X2Go and TheQVD (VDI product worked on at Qindel) in mind. People involved There are various people involved in nx-libs 3.6.x maintenance and development, some of them shall be explicitly named here (in alphabetical order of surnames):
  • Mario Becroft (long term NX contributor)
  • Nicolas Arenas Alonso (funding project coordinator at Qindel)
  • Mike DePaulo (CVE hunter)
  • Salvador Fandiño (developer, code reviewer, provided by Qindel)
  • Mike Gabriel (development coordination, developer, packager)
  • The GZNGET FLOSS Team (Arctica Project developer, advisory)
  • Jordi Marqués (Arctica Project infrastructure maintainer)
  • Mihai Moldovan (developer, code reviewer)
  • Ulrich Sibiller (developer, code reviewer)
  • Vadim Troshchinskiy (developer, code reviewer, provided by Qindel)
Some other people have contributed, but have left the project already. Thanks for your work on nx-libs:
  • Fernando Carvajal (contributor, provided by Qindel)
  • Reinhard Tartler (contributor to X2Go)
A big thanks to everyone involved!!! Special thanks go to Stefan Baur for employing Mihai Moldovan and handling all the bureaucracy, so that Mihai can work on this project and get funded for his work. Achievements of nx-libs We are very close to our self-defined release goal 3.6.0. The below tasks have already been (+/-) completed for version
  • CVE security audit (complete)
  • remove unused code (+/- complete)
  • no bundled non-X11 libraries anymore (complete)
  • complete imake cleanup (+/- complete)
  • replace as many libNX_X - libraries by X.org's libX - libraries (complete, only remaining library: libNX_X11)
  • support for iOS (nxproxy, complete)
  • Unix file socket communication for nxproxy -C <-> nxproxy -S connections (complete)
  • allow Unix file sockets as channel endpoints (complete)
  • new RandR based Xinerama extension (+/- complete, more QA needed)
  • nxcomp protocol clean-up (complete)
  • RandR Xserver extension upgrade to protocol version 1.5 (complete, from version 1.2)
  • Composite Xserver extension upgrade to proto version 0.4 (complete, from version 0.2)
  • various ABI/API updates (with respect to X.org), so that extension backporting should be easy now (+/- complete)
In a previous blog post [4], the code reduction in nx-libs has already been discussed. With this announcement, we want to give a status update about our effort of shrinking the nx-libs code base: [mike@minobo nx-libs (3.6.x)]$ cloc --match-f '.*\.(c|cpp|h)' . 1896 text files. 1896 unique files. 7430 files ignored. http://cloc.sourceforge.net v 1.60 T=5.88 s (307.3 files/s, 143310.5 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- C 958 68574 74891 419638 C/C++ Header 730 25683 33957 130418 C++ 120 17007 11721 61292 ------------------------------------------------------------------------------- SUM: 1808 111264 120569 611348 ------------------------------------------------------------------------------- The previous statistics had these sums in the last line. First the nx-libs 3.5.0.x code tree (where we came from): ------------------------------------------------------------------------------- SUM: 5614 329279 382337 1757743 ------------------------------------------------------------------------------- Then the nx-libs 3.6.x status as it was on May 9th 2016: ------------------------------------------------------------------------------- SUM: 1922 118581 126783 662635 ------------------------------------------------------------------------------- Another 50.000 lines of code have been removed over the past two months. Work pending for the final 3.6.0 release goal
  • allow embedding of nxproxy into other windows (work pending)
  • Fix the Composite extension in nx-X11 Xserver (work pending)
  • nxcomp logging clean-up (work pending)
  • optimizing documentation: how to tune NX connections (work pending)
  • XServer extension upgrades:
    • XInput 1.3 -> 1.4 (work pending)
    • Xfixes 3.0 -> 5.0 (work in progress)
    • Damage 1.0 -> 1.1 (work pending)
    • Xres 1.0 -> 2.0 (work pending)
    • Sync 1.0 -> 3.0 (work pending)
    • Render 0.10 -> 0.11 (work pending)
  • Drop as many X11 related proto headers as possible
Known Issues There are several open issues on the nx-libs Github project space, see https://github.com/ArcticaProject/nx-libs/issues. Testing the nx-libs We are currently working on provisioning release builds and nightly builds of nx-libs for various recent Linux distributions. Please stay tuned and watch Mike Gabriel's blog [5]. We already have nightly builds of nx-libs for Debian and Ubuntu [6], but there are more to come soon. Until now, please use the build recipes provided in the README.md file of the nx-libs source tree [7]. References
Catégories: Elsewhere

Deeson: 24 things about Drupal 8 every CTO should know - Part 2

Planet Drupal - mer, 06/07/2016 - 11:13

If you’re a CTO who’s thinking of migrating to Drupal 8, you might be dealing with a number  of questions about what this change means for your business. This week, we’re continuing to answer all of your lingering queries. In part 1 of this series, we covered planning for Drupal 8, and some important implications for Drupal 7. This week, we’re going to delve into the hot topic of Drupal 8’s new functionality, as well as some crucial issues relating to the front end. Are you sitting comfortably? Good, then we’ll begin.

New functionality in Drupal 8 9. Does Drupal Commerce feature in the Drupal 8 release?

Drupal Commerce is not maintained by the Drupal core team but maintained by a company - Commerce Guys. They have a Drupal 8 version of the module in active development.

The new Drupal 8 version is described as offering significant improvements over the old versions of Drupal Commerce, including better add to cart facilities, faster product creation and more intuitive product administration.

10. Are multilingual sites handled differently in Drupal 8?

Previous versions of Drupal had only partial support for multilingual websites. Multilingual projects usually involved stitching together a number of contributed modules to provide support for various elements of Drupal to be translated and each worked in a slightly different way. This inconsistency caused many projects budget and deadline pressures.

There has been a significant overhaul of multilingual capabilities in Drupal 8. Translations of all core elements are done in a sane and consistent manner in Drupal 8 core.

The installation system natively supports 94 languages. There are simple processes for installing new languages and language updates. The administration interface is entirely translatable. Assets, such as files or images, can now be assigned to a language or shared between languages.

11. How is the content editor experience different in Drupal 8?

Drupal 8 ships with the popular CKEditor WYSIWYG web editor. This means this tool is supported as standard and so will be maintained to continue to integrate well with it.

The new NavBar module in Drupal 8 core offers a clean administration tool for accessing all sections of the administration interface.

Drupal 8’s quick edit feature allows content editors the ability to do simple editing and changes in the page instead of loading a form specially for editing content.

On the horizon there are improvements to media handling in Drupal 8 as well which will give Drupal 8 a superior interface for managing assets such as files and images but this did not make it into core.

12. Does Drupal 8 handle complex user and content permissions any differently?

Under the hood the content access permission system has been rewritten in Drupal 8 but the behaviour for content administrators is much the same as before.  

It is expected that contributed modules will be providing the fine grained additional permission control they did in previous versions of Drupal. The popular choice in previous versions of Drupal for this was Organic Groups, which hadn’t been refactored to match more recent core versions. To provide stable functionality in Drupal 7 we have been using the Group module instead, we are planning to create a Drupal 8 release too.

The front-end and Drupal 8 13. Does Drupal 8 change theming and front-end standards approach?

In Drupal 7 PHP based templates made it too easy for developers to place logic in their templates which should have been managed in modules. Over time, templating code which was not strongly controlled would become fragile and it would be hard to find bugs and add new functionality.

Theming has changed significantly with the introduction of the Twig templating system in Drupal 8. Developers will now be able to write almost all markup in Twig templates rather than PHP code in functions. Though there will be an initial investment in learning required by development teams, the long term results will be cleaner templates which are more maintainable.

14. How is accessibility handled in Drupal 8?

There have been some improvements made to accessibility in Drupal 8.

WAI-ARIA landmarks, live regions, roles & properties are included which improves the accessibility of dynamic areas of the page. Drupal’s Form API now puts errors in-line rather than having the errors displayed in different regions to the form element which had the input error.

There is a JavaScript alert for audible announcements allowing site builders to include timely messages specifically for aural users. A new Tabbing Manager ensures a logical ordering to accessing page elements for users not using a mouse.

A general approach in Drupal 8 is to use standardised libraries to deliver functionality rather than trying to develop well known and well developed functionality from scratch. By working with library developers, best-of-breed technologies can be developed in partnership with a larger community.

One of the effects of this is that accessibility for a particular function can be developed by teams of people who really understand that field. A good example here is using the jQuery UI library to provide autocomplete functionality in Drupal 8. The Drupal community can now help the jQuery UI community in producing a better, more accessible tool.

We hope you’ve found this post useful and that it’s answered some of your most pressing Drupal questions. In the next part of our mini-series, we’ll be covering Drupal 8 in the enterprise, as well as architecture changes and those all important security issues.

If you’d like to receive the next part in the series, it’s simple: just sign up to our newsletter below.

Catégories: Elsewhere

Drupal core announcements: Drupal 7.50 core release on Thursday, July 7

Planet Drupal - mer, 06/07/2016 - 08:54

As previously announced, there will be a Drupal 7 core bug fix/feature release this week (alongside the upcoming Drupal 8 patch release).

The release will be labeled Drupal 7.50 (which is a version jump compared to the current 7.44 release); this is to indicate that this release, although still part of a stable release series, is a bit larger than normal and makes a few more changes and new features available than normal.

The release is expected on Thursday, July 7 to give a bit more time for final testing.

The final patches for Drupal 7.50 have been committed and the code is frozen (excluding documentation fixes, fixes for any regressions that may be found in the next couple days, and changes/additions to "experimental" features not yet intended for production sites). So, now is a wonderful time to update your development/staging servers to the latest 7.x code and help us catch any regressions in advance.

There are six relevant change records for Drupal 7.50 which are listed below. This is not the full list of changes, rather only a list of notable API additions and other changes that might affect individual sites or particular contributed modules, so it's a good place to start looking for any problems:

Other highlights of the release include improved support for PHP 7 (including all Drupal core automated tests now passing for PHP 5.4+ and PHP 7), improvements to robots.txt to help search engines which index your site's images/CSS/JavaScript, and of course a variety of important bug fixes. Translators might also want to be aware of a few administrative-facing translatable string changes and additions in this release.

For more information on the release, see the tentative CHANGELOG.txt for Drupal 7.50, the corresponding list of important issues that will be highlighted in the Drupal 7.50 release notes, and the full list of changes in the Drupal 7 commit log.

If you do find any regressions, please report them in the issue queue. Thanks!

Note: Our recently-added Drupal 7 co-maintainers (stefan.r and Fabianx) and I will consider continuing to do larger Drupal 7 releases like this one every six months or so (in keeping with Drupal's new release cycle), if there is interest and continued contributions from the community. See the ongoing discussion for further details.

Catégories: Elsewhere

FFW Agency: The ABC's of Drupal: Aliases, Blocks and Content Types

Planet Drupal - mer, 06/07/2016 - 07:56
The ABC's of Drupal: Aliases, Blocks and Content Types Ray Saltini Wed, 07/06/2016 - 05:56

For anyone who's ever looked up a definition of a Drupal term and been left wondering what it all means, here are some practical real world explanations you can use to navigate the Drupalverse. Watch this space and use comments to send us your requests.

Aliases: URLs in Drupal often have multiple addresses or aliases. This helps avoid complex machine generated addresses and makes your pages more search engine friendly. Through a variety of methods aliases can be generated automatically according to predefined patterns and then changed or updated in bulk. It is one of Drupal’s most powerful features and is used for everything from SEO to structuring a site and its navigation.

Block: A block is essentially a container that can hold content, lists of content, code, images or text strings and can be placed into a region on a page. Blocks can be created programmatically by a Drupal module or manually. Core Drupal can be extended with contributed modules that create other containers with different names that can be used by Drupal in a similar manner as blocks. This can become confusing to understand and manage especially when more than one method is used on a site. Blocks are the primary means for managing page layout in Drupal core. Blocks can be placed in a region and then configured to be visible only under specific conditions such as a user’s role or the type of content displayed in the main content region of a given page. Once common, the use of executable code in a block in order to bring about a desired behavior on a page can introduce security risks and management overhead. Justified exceptions should be managed closely.  Other methods such as development of a custom module are preferred. The ability to add additional fields to blocks in Drupal 8 makes placing marketing automation and web analytics code in blocks more practical.

Content Type: A content type is a collection of data fields grouped together in a logical set to facilitate content entry and display. Default behaviors, such as preview, publish, save as draft or revision, are set up for each content type. Drupal core is preconfigured with two content types, Article and Basic Page. Users with appropriate permissions can create their own custom types. Think of a content type as the structure of the form you create to save multiple posts. A website about food might have a content type ‘Recipe’ that would include individual fields to collect data about ingredients, quantities, cooking time, etc. The Recipe content type could be used to create hundreds of individual Recipe records.

Tagged with Comments
Catégories: Elsewhere

FFW Agency: Mastering the Basics: How to Do Discovery Right

Planet Drupal - mer, 06/07/2016 - 07:36
Mastering the Basics: How to Do Discovery Right Ray Saltini Wed, 07/06/2016 - 05:36

Discovery is the part where you make it your business to find out what you don’t know you need to know. Discovery is a process, not a workshop or a questionnaire. There’s a reason why it's called Discovery. You may think you know what you're going to find but often you don’t. Your goal is to uncover any unanticipated issues or complexity and ultimately use the process to generate consensus around priorities and a project plan.

There are three fundamental steps to any really good discovery process. If you don’t fully embrace these steps and execute them with rigor you stand a good chance of missing something critical that can stall or even completely undermine your project. Rushing through discovery will almost always guarantee delays and additional costs. Many organizations will contract for discovery separately. The good news is the steps are simple. They are: think, ask, listen; rinse and repeat. Think carefully about your overall goals, your specific objectives, your resources and budgets and then formulate a thorough list of questions. Do this singularly by yourself and then invite your team members to do it with you. Broaden it to all your stakeholders. Don’t just go to your stakeholders for answers. Go to them for the questions too. Having them be part of the discovery planning will help you achieve buy-in later in the project and will support accountability.

Once you’ve got your questions go out and get your answers. Look at things from all angles and perspectives. Then begin to iterate. Rinse and repeat means that you challenge the answers you’ve been given and you seek to validate them from other angles and different sources.

There is a science to a good discovery but good discovery is also an art. Experienced technologists know what to ask and what to listen for. They know how to reform questions to get more precise and accurate information that will help generate a project scope and specifications.

These steps are the same whether you do your own discovery in-house or with help from a consultant or services organization. Make sure you have at least one person on the discovery team who has senior-level experience with the technology you expect to build out your project with whether it is Drupal or something else. Certainly take advantage of any specific methodologies, templates and/or applications that align with your organization's policies and workflows.

Tagged with Comments
Catégories: Elsewhere

Talha Paracha: GSoC’16 – Pubkey Encrypt – Week 6 Report

Planet Drupal - mer, 06/07/2016 - 02:00

Half of the Google Summer of Code coding period has passed and my project now has all the core functionality in it. For those who don’t know, Pubkey Encrypt is a D8 module in development, which aims to encrypt and secure websites’ data-at-rest using login credentials. I started week 6 work by finalizing everything we had done till then, so to get the module in shape for an immediate alpha release. I think it’s very important to release the project early, with a bit less functionality and tagged as an alpha version, instead of releasing it with full functionality at the end of GSoC. This is because of the fact that the module deals with security. And as is the case with any security-related project, there is a lot of chance for unexpected issues to come up during alpha testing in a real-world environment. Luckily, we are ahead of the project timeline we planned in February, by a few weeks. So I’m confident that we’ll be able to tackle any such issues that might come up unexpectedly, no matter how severe they are.

Catégories: Elsewhere


Subscribe to jfhovinne agrégateur - Elsewhere