FLOSS Project Planets

New class in kcoreaddons: Kdelibs4ConfigMigrator

Planet KDE - Thu, 2014-08-28 00:50

Config files are stored now in .config5, so we need to migrate it.

I created a new class (committed in kcoreaddons) named Kdelibs4ConfigMigrator. I allows to migrate all config files and all ui file for a specific application (for example I have 4 uirc files to migrate in kmail) and 2 config file to migrate in kmail (kmail2rc + kmail2.notifierc)

This class is very easy to use:

Example for sieveeditor:

int main(int argc, char **argv)
{
Kdelibs4ConfigMigrator migrate(QLatin1String(“sieveeditor”));
migrate.setConfigFiles(QStringList() << QLatin1String(“sieveeditorrc”));
migrate.setUiFiles(QStringList() << QLatin1String(“sieveeditorui.rc”));
migrate.migrate();

}

I put it directly before to start application.

I will look at if we need to migrate and start after that the application.

Thinking to use it in your application when you port your application to kf5.

Categories: FLOSS Project Planets

What’s new in porting script ? clean-includes.sh

Planet KDE - Thu, 2014-08-28 00:44

I committed another very old script.

This script allows to remove all not necessary includes. It’s not perfect yet but it allows to clean up a lot of files.

Yes indeed it’s not a clang script but it was created for 4.0 and perl/shell was a good idea for me.

What’s new in script:

I added a new script “convert-klocale-formatdate.pl” which try to convert all KLocal::Global::formatDate/formatTime/formatDateTime etc.

Another one “convert-kfiledialog.pl” I improve convert kfiledialog class to QFileDialog

During this week I still improve convert-to-new-signal-slot-signal.pl, I improve search local variable, I fixed a lot of bug etc.

So I continue my work on script for kf5.

Categories: FLOSS Project Planets

Justin Mason: Links for 2014-08-27

Planet Apache - Wed, 2014-08-27 18:58
  • Apache Kafka 0.8 basic training

    This is a pretty voluminous and authoritative presentation about getting started with Kafka; wish this was around when we started using it for 0.7. (We use our own homegrown realtime system nowadays, due to better partitioning, monitoring and operability.)

    (tags: storm kafka presentations documentation ops)

  • Wiki Loves Monuments

    Wiki Loves Monuments is an international photo contest, organised by Wikimedia [...]. This year, the Wikimedia Ireland Community are running the competition for the very first time in Ireland. The contest is inspired by the successful 2010 pilot in the Netherlands which resulted in 12,500 freely licensed images uploaded to Wikimedia Commons. It has grown substantially since its inception; in 2013 369,589 photographs were submitted by 11,943 participants from over 50 countries. Cultural heritage is an important part of the knowledge that Wikipedia collects and disseminates. An image is worth a thousand words, in any language and local enthusiasts can (re)discover the cultural, historical, or scientific significance of their neighbourhood. The Irish contest, focussing on Ireland’s national monuments, runs from August 23 – September 30. Follow our step-by-step guide to find out how you can take part.

    (tags: wikipedia wikimedia images monuments history ireland contests creative-commons licensing)

  • “CryptoPhone” claims to detect IMSI catchers in operation

    To show what the CryptoPhone can do that less expensive competitors cannot, he points me to a map that he and his customers have created, indicating 17 different phony cell towers known as “interceptors,” detected by the CryptoPhone 500 around the United States during the month of July alone.  Interceptors look to a typical phone like an ordinary tower.  Once the phone connects with the interceptor, a variety of “over-the-air” attacks become possible, from eavesdropping on calls and texts to pushing spyware to the device. “Interceptor use in the U.S. is much higher than people had anticipated,” Goldsmith says.  “One of our customers took a road trip from Florida to North Carolina and he found 8 different interceptors on that trip.  We even found one at South Point Casino in Las Vegas.”

    (tags: imsi-catchers security cryptophone phones mobile 3g 4g eavesdropping surveillance)

Categories: FLOSS Project Planets

KDevelop master is now frameworkified

Planet KDE - Wed, 2014-08-27 18:25

Hello all!

Kevin just announced it on the mailing list, the CI is still shaking it’s head, and we are all very curious about the coming weeks: KDevelop’s master branches are now depending on KF5!

For more information, see: https://www.kdevelop.org/frameworks/kdevelop-master-now-depends-kde-fram…

Cheers, happy hacking and hope to see some more patches :)

Categories: FLOSS Project Planets

FSF Blogs: Watch: "JavaScript: If you love it, set it free"

GNU Planet! - Wed, 2014-08-27 16:27

In his speech, John emphasized how proprietary JavaScript, which runs on the user's Web browser without being released under a free license, hurts the user's freedom to view and modify the software that they run. He also highlights some specific examples of malicious behavior by proprietary JavaScript such as blocking browser functions or recording the user's keystrokes.

Watch the video on our GNU MediaGoblin instance

John discussed the progress of the FSF's Free JavaScript campaign, as well as the development of GNU LibreJS, a browser plugin built to stop non-free JavaScript from being executed on the user's computer. He also explained how simple it is to release JavaScript under a free license through Web Labels -- simple pages that enumerate the licenses of all the JavaScript distributed on a Web site -- or by adding a license tag to the code.

Through the Free JavaScript campaign, which grew out of Richard Stallman's insights in The Javascript Trap, the FSF is working to pursuade governments, NGOs, and other organizations to fix their Web sites to work without forcing the user to execute any proprietary software on their computer. The campaign is currently focusing on Reddit.

To get involved in the Free JavaScript campaign, join the low-volume Free JavaScript Action Team email list.

If you have expert-level knowledge of JavaScript or software licensing, we invite you to submit a request to join the JavaScript Developers Task Force, a discussion list that works closely with the FSF on the Free JavaScript campaign and provides technical guidance to Web sites working to free their JavaScript.

If you'd like to view the slides from John's presentation, you can view them on John's user page on LibrePlanet.

This blog post was written by FSF campaigns intern Alex Patel.

More information about the FSF's internship program is available on our Internships page.

Categories: FLOSS Project Planets

Watch: "JavaScript: If you love it, set it free"

FSF Blogs - Wed, 2014-08-27 16:27

In his speech, John emphasized how proprietary JavaScript, which runs on the user's Web browser without being released under a free license, hurts the user's freedom to view and modify the software that they run. He also highlights some specific examples of malicious behavior by proprietary JavaScript such as blocking browser functions or recording the user's keystrokes.

Watch the video on our GNU MediaGoblin instance

John discussed the progress of the FSF's Free JavaScript campaign, as well as the development of GNU LibreJS, a browser plugin built to stop non-free JavaScript from being executed on the user's computer. He also explained how simple it is to release JavaScript under a free license through Web Labels -- simple pages that enumerate the licenses of all the JavaScript distributed on a Web site -- or by adding a license tag to the code.

Through the Free JavaScript campaign, which grew out of Richard Stallman's insights in The Javascript Trap, the FSF is working to pursuade governments, NGOs, and other organizations to fix their Web sites to work without forcing the user to execute any proprietary software on their computer. The campaign is currently focusing on Reddit.

To get involved in the Free JavaScript campaign, join the low-volume Free JavaScript Action Team email list.

If you have expert-level knowledge of JavaScript or software licensing, we invite you to submit a request to join the JavaScript Developers Task Force, a discussion list that works closely with the FSF on the Free JavaScript campaign and provides technical guidance to Web sites working to free their JavaScript.

If you'd like to view the slides from John's presentation, you can view them on John's user page on LibrePlanet.

This blog post was written by FSF campaigns intern Alex Patel.

More information about the FSF's internship program is available on our Internships page.

Categories: FLOSS Project Planets

Drupal @ Penn State: ELMSLN optimization: Cost and Scale

Planet Drupal - Wed, 2014-08-27 15:40

I did a post the other day about ELMSLN Performance Optimization all about lessons learned and looking at some popular techniques and applying them. These are techniques that can be applied to ANY Drupal (and in many cases non Drupal) application to increase performance. This article looks at the real world price of performance tuning.

Categories: FLOSS Project Planets

FSF Blogs: Friday Free Software Directory IRC meetup: August 29

GNU Planet! - Wed, 2014-08-27 15:12

Join the FSF and friends on Friday, August 29, from 2pm to 5pm EDT (18:00 to 21:00 UTC) to help improve the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode.


Tens of thousands of people visit directory.fsf.org each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions, to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.


While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential of being a resource of even greater value. But it needs your help!


If you are eager to help and you can't wait or are simply unable to make it onto IRC on Friday, our participation guide will provide you with all the information you need to get started on helping the Directory today!

Categories: FLOSS Project Planets

Friday Free Software Directory IRC meetup: August 29

FSF Blogs - Wed, 2014-08-27 15:12

Join the FSF and friends on Friday, August 29, from 2pm to 5pm EDT (18:00 to 21:00 UTC) to help improve the Free Software Directory by adding new entries and updating existing ones. We will be on IRC in the #fsf channel on freenode.


Tens of thousands of people visit directory.fsf.org each month to discover free software. Each entry in the Directory contains a wealth of useful information, from basic category and descriptions, to providing detailed info about version control, IRC channels, documentation, and licensing info that has been carefully checked by FSF staff and trained volunteers.


While the Free Software Directory has been and continues to be a great resource to the world over the past decade, it has the potential of being a resource of even greater value. But it needs your help!


If you are eager to help and you can't wait or are simply unable to make it onto IRC on Friday, our participation guide will provide you with all the information you need to get started on helping the Directory today!

Categories: FLOSS Project Planets

GSoC: Thumping the Malaria and voyaging in cosmos with KStars

Planet KDE - Wed, 2014-08-27 15:02
KDE is taking new shape now a days, porting most of its application to KF5. Meanwhile I completed my GSoC project in KStars, ameliorating it by enhancing the tools like Moon Phase Calendar, Almanac and Solar System Viewer and adding a super cool QML based tool Astrophotograph Browser. 

It all started with preparing proposal, I was using KStars since more than one year and had fixed many minor bugs already. I prepared first draft of proposal for GSoC in January (yeah I was super excited ;-) and mailed it into mailing list of KStars. I was not sure if anyone would bother to look into it, but kde developers are awesome people, I received many interesting comments on it and Rafal Kulaga in particular. I started refining my proposal under his guidance, and prepared seventh and final draft of proposal in February. It proved to be best decision to prepare proposal month before the deadline of submission as I was diagnosed with Malaria, just week before the submission deadline. 

Let's talk about my project now. KStars is desktop planetarium application under KDE Education Projects. I developed QML based cool interface to enable users to browse through image database of community of astrophotographers (i.e. astrobin.com) which contains more than 1,20,000 (number is increasing everyday) real time and very high resolution images along with various information related to them (i.e. Date on which image was captured, Bortle Dark-Sky Scale, RA Centre, DEC Centre, Telescope or Camera used, Description added by astrophotographer etc). I am sure that this browser will enthrall school children by showing them real time images of stars and galaxies located at hundreds of light year far from earth.

I also developed image editor to enable user to mark sky objects and and write their name or other details on image to make it more intuitive before saving it.

The Moon Phase Calender tool was revamped by replacing early less accurate moon phase images with more accurate ones, adding lunar phase name in window title bar and adding the option to choose between Northern hemisphere and Southern hemisphere.
Yet another interesting feature was added to Almanac tool just after the mid term evaluation i.e. Live Weather Info tool. This tool uses Open Weather API to fetch the weather information like temperature, humidity, pressure, wind speed, wind direction, cloud density, precipitation etc, for the selected location. The tool is developed for amateur astronomers to help them in planning the sky observations.

The time for accomplishing most exciting task was to come with Randa Meeting 2014 and Malaria attacked me again. I spent almost a week in hospital, planning for Randa meeting in bad. My strong desire to return to project helped me a lot to recover quickly. After recovery I accomplished the task of refurbishing the Solar System Viewer tool in Randa Meeting with the help of Artikulate developers Andreas Cord-Landwehr. The tool earlier gave the 2D view of solar system for particular date. I added option to visualize asteroids based on magnitude selection in the first stage. Then added the distance measurement feature to measure the distance (in km and AU) between any two solar bodies. This feature makes KStars unique tool for measuring distance between planets and asteroids.

In all, I enjoyed a lot working on this project. Let me thank my coolest friend Punit Mehta for motivating me to apply for GSoC. I'd also thank Rishabh Arora for enlightening me about possible ideas to work upon in GSoC at conf.kde.in, organised in my institute and of which I was one of the co-ordinator. My best thanks is to Rafal Kulaga for his continuous motivation, support and appreciation at  my every little advancement in project. One of the best thing about Rafal is he always replies to my mail like a friend rather than a mentor. And not to forget, Thanks KDE Community.
Categories: FLOSS Project Planets

Dries Buytaert: A better runtime for component-based web applications

Planet Drupal - Wed, 2014-08-27 14:53
Topic: DrupalWordpressSoftware development

I have an idea but currently don't have the time or resources to work on it. So I'm sharing the idea here, hoping we can at least discuss it, and maybe someone will even feel inspired to take it on.

The idea is based on two predictions. First, I'm convinced that the future of web sites or web applications is component-based platforms (e.g. Drupal modules, WordPress plugins, etc). Second, I believe that the best way to deploy and use web sites or web applications is through a SaaS hosting environment (e.g. WordPress.com, DrupalGardens, SalesForce's Force.com platform, DemandWare's SaaS platform, etc). Specifically, I believe that in the big picture on-premise software is a "transitional state". It may take another 15 years, but on-premise software will become the exception rather than the standard. Combined, these two predictions present a future where we have component-based platforms running in SaaS environments.

To get the idea, imagine a WordPress.com, SquareSpace, Wix or DrupalGardens where you can install every module/plugin available, including your own custom modules/plugins, instead of being limited to those modules/plugins manually approved by their vendors. This is a big deal because one of the biggest challenges with running web sites or web applications is that almost every user wants to extend or customize the application beyond what is provided out of the box.

Web applications have to be (1) manageable, (2) extensible, (3) customizable and (4) robust. The problem is that we don't have a programming language or an execution runtime that is able to meet all four of these requirements in the context of building and running dynamic component-based applications.

Neither PHP, JavaScript, Ruby, Go or Java allow us to build truly robust applications as the runtimes don't provide proper resource isolation. Often all the components (i.e. Drupal modules, WordPress plugins) run in the same memory space. In the Java world you have Enterprise Java Beans or OSGi which add some level of isolation and management, but it still doesn't provide full component-level isolation or component-level fault containment. As a result, it is required that one component pretty much trusts the other components installed on the system. This means that usually one malfunctioning component can corrupt the other component's data or functional logic, or that one component can harm the performance of the entire platform. In other words, you have to review, certify and test components before installing them on your platform. As a result, most SaaS vendors won't let you install untrusted or custom components.

What we really need here is an execution runtime that allows you to install untrusted components and guarantee application robustness at the same time. Such technology would be a total game-changer as we could build unlimited customizable SaaS platforms that leverage the power of community innovation. You'd be able to install any Drupal module on DrupalGardens, any plugin on WordPress.com or custom code on Squarespace or Wix. It would fundamentally disrupt the entire industry and would help us achieve the assembled web dream.

I've been giving this some thought, and what I think we need is the ability to handle each HTTP request in a micro-kernel-like environment where each software component (i.e. Drupal module, WordPress plugin) runs in its own isolated process or environment and communicates with the other components through a form of inter-process communication (i.e. think remote procedure calls or web service calls). It is a lot harder to implement than it sounds as the inter-process communication could add huge overhead (e.g. we might need fast or clever ways to safely share data between isolated components without having to copy or transfer a lot of data around). Alternatively, virtualization technology like Docker might help us move in this direction as well. Their goal of a lightweight container is a step towards micro-services but it is likely to have more communication overhead. In both scenarios, Drupal would look a lot like a collection of micro web services (Drupal 10 anyone?).

Once we have such a runtime, we can implement and enforce governance and security policies for each component (e.g. limit its memory usage, limit its I/O, security permission, but also control access to the underlying platform like the database). We'd have real component-based isolation along with platform-level governance: (1) manageable, (2) extensible, (3) customizable and (4) robust.

Food for thought and discussion?

Categories: FLOSS Project Planets

Mike Driscoll: wxPython: Converting wx.DateTime to Python datetime

Planet Python - Wed, 2014-08-27 12:15

The wxPython GUI toolkit includes its own date / time capabilities. Most of the time, you can just use Python’s datetime and time modules and you’ll be fine. But occasionally you’ll find yourself needing to convert from wxPython’s wx.DateTime objects to Python’s datetime objects. You may encounter this when you use the wx.DatePickerCtrl widget.

Fortunately, wxPython’s calendar module has some helper functions that can help you convert datetime objects back and forth between wxPython and Python. Let’s take a look:

def _pydate2wxdate(date): import datetime assert isinstance(date, (datetime.datetime, datetime.date)) tt = date.timetuple() dmy = (tt[2], tt[1]-1, tt[0]) return wx.DateTimeFromDMY(*dmy)   def _wxdate2pydate(date): import datetime assert isinstance(date, wx.DateTime) if date.IsValid(): ymd = map(int, date.FormatISODate().split('-')) return datetime.date(*ymd) else: return None

You can use these handy functions in your own code to help with your conversions. I would probably put these into a controller or utilities script. I would also rewrite it slightly so I wouldn’t import Python’s datetime module inside the functions. Here’s an example:

import datetime import wx   def pydate2wxdate(date): assert isinstance(date, (datetime.datetime, datetime.date)) tt = date.timetuple() dmy = (tt[2], tt[1]-1, tt[0]) return wx.DateTimeFromDMY(*dmy)   def wxdate2pydate(date): assert isinstance(date, wx.DateTime) if date.IsValid(): ymd = map(int, date.FormatISODate().split('-')) return datetime.date(*ymd) else: return None

You can read more about this topic on this old wxPython mailing thread. Have fun and happy coding!

Categories: FLOSS Project Planets

Lullabot: Communication for Distributed Teams

Planet Drupal - Wed, 2014-08-27 12:00

With the birth of the internet, and especially since the early days of open source projects (meaning before the term "open source" was used to describe them), developers have been working together on specific projects as distributed teams of people. In some cases they formed passionate communities, all devoted to a piece of software. Years ago, one of Drupal's taglines was actually "Come for the software, stay for the community." Odd, right?

Categories: FLOSS Project Planets

Plasma Active Ported to KF5

Planet KDE - Wed, 2014-08-27 10:40

The GSoC might have come to an end, but I am very happy with the progress that we have made porting the Plasma Active to KF5. In my previous blogposts i have describe some of the stuff which they have been ported. So at the moment a lot of the basic features have come back to the  Plasma Active, so yes it is at a usable state :) One of the big changes is that Nepomuk has been replaced with Baloo.  Despite the fact that a lot of the Nepomuk stuff has been ported, there are still some things left,  for example the timeline and tag support on the active-filebrowser.

Plasma Active on Action!

Unfortunately  my exam period is starting soon so I will not be able  to work more on Plasma Active for the time being. But I will be back when it will be over, which is in the end of September.

You can find us on irc on the #plasma channel on irc.freenode.net.


Categories: FLOSS Project Planets

Zivtech: Web Accessibility and Drupal

Planet Drupal - Wed, 2014-08-27 09:01
Web Accessibility and Drupal

With the advent of screen readers, many web users imagined web accessibility to be complete, but there is more to using the web than simply browsing. Whether users require audio assistance in the form of subtitles or visual assistance in the form of screen readers, it is the responsibility of developers and designers to make accessibility integration a key component of their work, thus allowing all users to have the best experience possible.

In this post, we will attempt to gather accessibility information when working with Drupal. While there is a variety of content available on the web, it is important to see how Drupal specifically allows accessibility integration through its many features.

The following is an excerpt from Web AIM's Introduction to Web Accessibility page http://webaim.org/intro/ that neatly outlines some basic accessibility principles.

What is Web Accessibility?

As defined by http://www.w3.org/:

"Web accessibility means that people with disabilities can use the Web. More specifically, Web accessibility means that people with disabilities can perceive, understand, navigate, and interact with the Web, and that they can contribute to the Web. Web accessibility also benefits others, including older people with changing abilities due to aging. Web accessibility encompasses all disabilities that affect access to the Web, including visual, auditory, physical, speech, cognitive, and neurological disabilities. Web accessibility is an aspect of corporate social responsibility. Another important consideration for organizations is that Web accessibility is required by laws and policies in some cases."

Principles of Accessible Design

Below you will find a list of some key principles of accessible design. Most accessibility principles can be implemented very easily and will not impact the overall "look and feel" of your web site.

Provide appropriate alternative text

Alternative text provides a textual alternative to non-text content in web pages. It is especially helpful for people who are blind and rely on a screen reader to have the content of the website read to them.

Provide appropriate document structure

Headings, lists, and other structural elements provide meaning and structure to web pages. They can also facilitate keyboard navigation within the page.

Provide headers for data tables

Tables are used online for layouts and to organize data. Tables that are used to organize tabular data should have appropriate table headers (the element). Data cells should be associated with their appropriate headers, making it easier for screen reader users to navigate and understand the data table.

Ensure users can complete and submit all forms

Ensure that every form element (text field, checkbox, dropdown list, etc.) has a label and make sure that label is associated to the correct form element using the <label> element. Also make sure the user can submit the form and recover from any errors, such as the failure to fill in all required fields.

Ensure links make sense out of context

Every link should make sense if the link text is read by itself. Screen reader users may choose to read only the links on a web page. Certain phrases like "click here" and "more" must be avoided.

Caption and/or provide transcripts for media

Videos and live audio must have captions and a transcript. With archived audio, a transcription may be sufficient.

Ensure accessibility of non-HTML content, including PDF files, Microsoft Word documents, PowerPoint presentations and Adobe Flash content.

In addition to all of the other principles listed here, PDF documents and other non-HTML content must be as accessible as possible. If you cannot make it accessible, consider using HTML instead or, at the very least, provide an accessible alternative. PDF documents should also include a series of tags to make it more accessible. A tagged PDF file looks the same, but it is almost always more accessible to a person using a screen reader.

Allow users to skip repetitive elements on the page

You should provide a method that allows users to skip navigation or other elements that repeat on every page. This is usually accomplished by providing a "Skip to Main Content," or "Skip Navigation" link at the top of the page which jumps to the main content of the page.

Do not rely on color alone to convey meaning

The use of color can enhance comprehension, but do not use color alone to convey information. That information may not be available to a person who is colorblind and will be unavailable to screen reader users.

Make sure content is clearly written and easy to read

There are many ways to make your content easier to understand. Write clearly, use clear fonts, and use headings and lists appropriately.

Make JavaScript accessible

Ensure that JavaScript event handlers are device independent (e.g., they do not require the use of a mouse) and make sure that your page does not rely on JavaScript to function.

Design to Standards

HTML compliant and accessible pages are more robust and provide better search engine optimization. Cascading Style Sheets (CSS) allow you to separate content from presentation. This provides more flexibility and accessibility of your content.

How Does Drupal Support Accessible Design?

Drupal supports web accessibility standards in a number of ways, both through contributed modules and in core. In fact, the Drupal community has made accessibility for visitors, developers, and community members an explicit priority for the Drupal platform, as discussed on Drupal.org. A contributor ensures they have adhered to accessibility standards while developing their modules by appending the D8AX tag https://groups.drupal.org/node/66323 to their project page.This survey shows the importance of such practices as well as providing insightful data from disabled users.

The author of Zen, a Drupal start theme, wrote : “Zen was also one of the first themes to make the D7 Accessibility Pledge. And we stand behind it! #D7AX/#DAX - I pledge to make this theme as accessible as it can be.”

At Zivtech, so do we.

Here we use Bear Skin, which is a starter theme based on Zen. Zen pioneered the navigation “skip link” now found in Drupal 7 core, and it now includes a full compliment of ARIA roles and Sass mixins for the element-invisible (hidden, but accessible) styling.

It is our mission at Zivtech to provide the best, most accessible web experiences to our clients and their customers. Here are ways that you too, can help ensure accessibility is at the forefront of your projects as well.

Tips and Resources General Site Building
  • Source Order
  • tags for images (possibility to tokenize these tags)
  • ARIA Tags (Check ARIA roles - view w3c page - other known as page landmarks)
  • Accessibility tools and best practices for site builders
  • https://drupal.org/node/394094
Theming JS
  • onSubmit, not onClick
  • Focus instead of Hover for functions
Resources Helpful Modules

(Some of these modules are still in development versions, but are relevant to be listed here as production ready versions are in the work)

  • A11y Titles - This module allows site builders to visually hide titles while still allowing “open access” to their web sites by making the titles accessible
  • a11y_checklist - Similar to the SEO Checklist and QA Checklist modules, this module provides a checklist of accessibility-related modules and tasks to perform on a Drupal site.
  • textsize - This module display a adjustable text size changer or a zoom function on the page for a better web accessibility.
  • accessibility - The Accessibility module is a suite of tools for content authors and theme developers to ensure their website is as accessible as possible.
  • semantic fields - Semantic Fields was created to give users the ability of customizing and enhancing the HTML output of a field. With Semantic Fields enabled, users can specify the HTML wrapper element and classes for various elements.
  • semantic views - This Views plugin makes unformatted styles, field row styles and other output more readily configurable without needing to override template files. Instead of overriding row style templates for views where you want to specify different HTML elements (tags) and class attributes, you can specify these inside the Views UI and avoid overriding templates for each view.
  • switch themes - Adds a block to allow users to switch between enabled themes (useful to provide an alternative theme with more contrast for disabled users).
  • pagestyle - This module display a style changer on the page and in the browser menu for a better web accessibility.
  • eim - Extend the image module.

             Extended functionalities

                 - Adds checkboxes for the fields of image editing forms by content type.

                        - Alt field required

                        - Title field required

                 - Sets the Alt field maxlength value to 128 for editing forms of nodes.
  • youtube player accessibility controls - This module integrate YouTube Video Player Accessible Controls library which add buttons to control YouTube videos
  • universal subtitles - This module adds support for subtitled videos by the Universal Subtitles provider
Screen readers and emulators (testing and troubleshooting)

http://warc.calpoly.edu/accessibility/compliance_process_guide.html

http://webstyleguide.com/wsg3/1-process/7-development-process.html

Terms: Drupal Planetweb accessibilityaccessibility
Categories: FLOSS Project Planets

Jean-Baptiste Onofré: Apache JMeter to test Apache ActiveMQ on CI with Maven/Jenkins

Planet Apache - Wed, 2014-08-27 08:47

Apache JMeter is a great tool for testing, especially performance testing.
It provides a lot of samplers that you can use to test your web services, web applications, etc.

It also includes a couple of samplers for JMS that we can use with ActiveMQ.

Preparing JMeter for ActiveMQ

For this article, I downloaded JMeter 2.10 from http://jmeter.apache.org.

We uncompress jmeter in a folder:

$ tar zxvf apache-jmeter-2.10.tgz

We are going to create a test plan for ActiveMQ. After downloading ActiveMQ 5.9.0 from http://activemq.apache.org, we install and start an ActiveMQ broker on the machine.

$ tar zxvf apache-activemq-5.9.0-bin.tar.gz $ cd apache-activemq-5.9.0/bin $ ./activemq console ... INFO | Apache ActiveMQ 5.9.0 (localhost, ID:latitude-45782-1409139630277-0:1) started

In order to use ActiveMQ with JMeter, we have to copy the activemq-all-5.9.0.jar file provided in the ActiveMQ distribution into the JMeter lib folder:

$ cp apache-activemq-5.9.0/activemq-all-5.9.0.jar apache-jmeter-2.11/lib/

We can now start jmeter and start to create our ActiveMQ test plan:

$ cd apache-jmeter-2.10/bin $ ./jmeter.sh

In the default test plan, we add a thread group to simulate 5 JMS clients that will perform the samplers 10 times:

In this thread group, we add a JMS Publisher sampler that will produce a message in ActiveMQ:

We can note the ActiveMQ configuration:

  • the sampler uses the ActiveMQ JNDI initial context factory (org.apache.activemq.jndi.ActiveMQInitialContextFactory)
  • the Provider URL is the ActiveMQ connection URL (tcp://localhost:61616 in my case). You can use here any kind of ActiveMQ URL, for instance failover:(tcp://host1:61616,tcp://host2:61616)).
  • the connection factory is simply the default one provided by ActiveMQ: ConnectionFactory.
  • the destination is the name of the JMS queue where we want to produce the message, prefixed with dynamicQueues: dynamicQueues/MyQueue.
  • by default, ActiveMQ 5.9.0 uses the authorization plugin. So, the client has to use authentication to be able to produce a message. The default ActiveMQ username is admin, and admin is the default password.
  • finally, we set the body of the message as static using the textarea: JMeter message ...

Now, we save the plan in a file named activemq.jmx.

For a quick test, we can add a Graph Results listener to the thread group and run the plan:

We can check in the ActiveMQ console (pointing a browser on http://localhost:8161/admin) that we can see the queue MyQueue containing the messages sent by JMeter:

Our test plan is working, we have some metrics about the execution in the graph (it’s really fast on my laptop ;)).

This approach is great to easily implement performance benchmark, and creates some load on ActiveMQ (to test some tuning and configuration for instance).

It can make sense to do it in a continuous integration process. So, let’s see how we can run JMeter with Maven and integrate it in Jenkins.

Using jmeter maven plugin

We have two ways to call JMeter with Maven:

  • we can call the local JMeter instance using the exec-maven-plugin. JMeter can be called in “batch mode” (without the GUI) using the following command: $ apache-jmeter-2.10/bin/jmeter.sh -n -t activemq.jmx -l activemq.jtl -j activemq.jmx.log

    We use the options:

    • -n to disable the GUI
    • -t to specify the location of the test plan file (.jmx)
    • -l to specify the location of the test plan execution results
    • -j to specify the location of the test plan execution log
  • we have a JMeter Maven plugin. It’s the one that I will use for this blog.

The JMeter Maven plugin allows you to run a JMeter meter plan directly from Maven. It doesn’t require a local JMeter instance: the plugin will download and bootstrap a JMeter instance.

The plugin will look for JMeter JMX files in the src/test/jmeter folder by default.

We create a POM to run JMeter:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.nanthrax.blog</groupId> <artifactId>jmeter</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <build> <plugins> <plugin> <groupId>com.lazerycode.jmeter</groupId> <artifactId>jmeter-maven-plugin</artifactId> <version>1.9.1</version> <executions> <execution> <id>jmeter-test</id> <phase>verify</phase> <goals> <goal>jmeter</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.9.0</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>

We can now run the JMeter test plan:

$ mvn clean verify ... [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building jmeter 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- jmeter-maven-plugin:1.9.1:jmeter (jmeter-test) @ jmeter --- [INFO] [INFO] ------------------------------------------------------- [INFO] P E R F O R M A N C E T E S T S [INFO] ------------------------------------------------------- [INFO] [INFO] [info] [debug] JMeter is called with the following command line arguments: -n -t /home/jbonofre/Workspace/jmeter/src/test/jmeter/activemq.jmx -l /home/jbonofre/Workspace/jmeter/target/jmeter/results/20140827-activemq.jtl -d /home/jbonofre/Workspace/jmeter/target/jmeter -j /home/jbonofre/Workspace/jmeter/target/jmeter/logs/activemq.jmx.log [info] Executing test: activemq.jmx [info] Completed Test: activemq.jmx [INFO] [INFO] Test Results: [INFO] [INFO] Tests Run: 1, Failures: 0 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.077s [INFO] Finished at: Wed Aug 27 14:58:09 CEST 2014 [INFO] Final Memory: 14M/303M [INFO] ------------------------------------------------------------------------

We can see in the ActiveMQ console that the JMeter messages have been sent.

We are now ready to integrate this build in Jenkins:

We have now included the performance tests in our Jenkins CI.

I would advice to execute the performance tests on a dedicated module or profile, and configure the Jenkins job to execute once per week for instance, or link to a release.

So, we still have our development oriented nightly builds, and we can periodically execute performance tests, and execute the performance tests for a release.

Categories: FLOSS Project Planets

Akademy 2014: What I Plan To See

Planet KDE - Wed, 2014-08-27 07:35

So… …and here’s the talks I’m most looking forward to! Day 0: Friday, September 5 OK, so the day before Akademy is set aside for the AGM of KDE eV. “The eV” is the organisation that orchestrates the logistics of the KDE community: finances, legal shizzle, marketing etc. It is an organisation whose membership is a very diverse set of… Read more →

Categories: FLOSS Project Planets

Intermediate results of the icon tests: Nitrux

Planet KDE - Wed, 2014-08-27 07:13

With a series of icon tests we currently study effects on the usability of icon design. This article however does not focus on these general design effects but presents findings specific to the Nitrux icon set.

Keep on reading: Intermediate results of the icon tests: Nitrux

Categories: FLOSS Project Planets

DrupalCon Amsterdam: Training spotlight: Search API with Apache Solr

Planet Drupal - Wed, 2014-08-27 05:45

Learn how to build powerful Solr-based interfaces without writing code in Search API with ApacheSolr, an intermediate-level training provided by Zivtech at DrupalCon Amsterdam.

The team at Zivtech have developed open source tools which make setting up ApacheSolr instances and Search API configurations a breeze.

Instructor Jody Hamilton will walk you through set up and will introduce you to these tools at the beginning of the training, ensuring everyone quickly has a working ApacheSolr instance on a local sandbox site. Together you will build Views with Search API, and add and configure facets with Facet API. Students will use drush to work with with the search index, and finally the class will look at how you can improve search results relevancy and add custom fields to the index with a custom module.

Meet the Trainer from Zivtech

Jody Hamilton (Jody Lynn) is Co-Founder / CTO at Zivtech and has been giving public and private Drupal trainings for 6 years, including at the past 4 US DrupalCons.

Attend this Drupal Training

This training will be held on Monday, 29 September from 09:00-17:00 at the Amsterdam RAI during DrupalCon Amsterdam. The cost of attending this training is €400 and includes training materials, meals and coffee breaks. A DrupalCon ticket is not required to register to attend this event.

Our training courses are designed to be small enough to provide attendees plenty of one-on-one time with the instructor, but large enough that they are a good use of the instructor's time. Each training course must meet its minimum sign-up number by 5 September in order for the course to take place. You can help to ensure your training course takes place by registering before this date and reminding friends and colleagues to attend.

Register today

Categories: FLOSS Project Planets

groups.drupal.org frontpage posts: Nine days of hands-on sprinting opportunities at DrupalCon Amsterdam

Planet Drupal - Wed, 2014-08-27 05:33

DrupalCon Amsterdam community sprints are starting in just one month from today. We have a great tradition to organize sprinting opportunities throughout DrupalCon days and also the weekends before and after. If you have been to them, you know the power of these events, but if you are new to our sprints, here are some quotes from an earlier sprint at Drupal Dev Days Szeged:

Two days working with the Drupal Community [...] help you to learn more than one week working alone at home :) -- https://twitter.com/javisr/statuses/449159591373586432

Greatest thing about code sprints: Hearing respected core devs say "I don't understand that." "Me neither." We all learn. [...] -- https://twitter.com/marcvangend/statuses/449442724966858752

Drupal sprints are a wonderful combination of a lot of top Drupal developers working on important problems in the same space without other distractions going on. We even secured a wonderful sprint location for the weekends, the Berlage Workspace. You can help move important issues forward and learn the tricky details faster than anybody else while working with others.


Berlage Workspace street front

Sprints announced so far include frontend, drupal.org, search API, multilingual, Behavior Driven Development, Panopoly, Rules in Drupal 8, Media in Drupal 8, Migration to Drupal 8, Content staging in Drupal 8 and a dedicated group of people driving critical Drupal 8 issues in general. Each team is being lead by Drupal topic experts so you can work with the top people in the field.

The most active days expected in decreasing order are Friday, Monday and Sunday before and Saturday after, but sprinting opportunities are almost always available throughout the nine days. We even created a Google Calendar that you can subscribe to (4j8sqq5fphhpgmrtfl8t2ggkes@group.calendar.google.com) which contains all the sprint venue information at any point in time, so you know where to find active Drupal sprinters. Or just check out the announcement for more information.

The sprints would not happen without the sponsorship of the Drupal Association, Acquia and Open8. Huge thanks for their support!

Categories: FLOSS Project Planets
Syndicate content