Harlem Shake vs. Netzneutralität: FCC-Chef droht Klage

heise online Newsticker - 19. Dezember 2017 - 12:00
Mit einem peinlichen Video verteidigt der FCC-Chef die Abschaffung der Netzneutralität in den USA. Dafür verwendete er unter anderem das Lied "Harlem Shake" – ohne Lizenz.

Digital Echidna: Thoughts on all things digital: Putting Our Best Foot Forward Against Bullying on For Me Day

Planet Drupal - 19. Dezember 2017 - 11:12
Bullying is a major problem in our schools, workplaces, homes, and over the Internet. Over the next 14 months, Digital Echidna is supporting a series of mental health awareness campaigns, in particular those with an emphasis on inclusion and…

Faszinierende Landschaften in den Bildern der Woche (KW 50)

heise online Newsticker - 19. Dezember 2017 - 11:00
Landschaften zählen zu den beliebtesten Motiven von Fotografen. Die Herausforderung besteht darin, bekannte Landschaften im neuen Licht erscheinen zu lassen. Gelungene Beispiele geben die Bilder der Woche.

Missing Link: Wenn der Kasten denkt - Niklas Luhmann und die Folgen

heise online Newsticker - 19. Dezember 2017 - 11:00
Gerade haben die Soziologen den 90. Geburstag des Systemtheoretikers Niklas Luhmann gefeiert. Die Informatiker stecken mitten in einem anspruchsvollen Digitalisierungsprojekt, seinen Gedankenkasten, sein "hölzernes Privat-Internet", zu verdaten.

Was war. Was wird. Durchschreitende Straftäter blicken auf.

heise online Newsticker - 19. Dezember 2017 - 10:30
Ha, Weihnachten! Da werden selbst die Straftäter ordentlich, die Polizisten vor Ort überflüssig und die Überwacher mildtätig. Ach, wirklich? Hal Faber preist lieber Verfassungshüter, Bürgerrechtler und "Durchstecher" und gedenkt der Opfer.

AOL Instant Messenger abgeschaltet

heise online Newsticker - 19. Dezember 2017 - 10:30
Der AOL Instant Messenger ist Geschichte. Im Oktober wurde das Ende des Chat-Dinosauriers angekündigt, jetzt ist endgültig Schluss. Daten und Gesprächsverläufe wurden gelöscht.

Geldwäsche: EU-Gremien bekämpfen "Anonymität" von Bitcoin & Co.

heise online Newsticker - 19. Dezember 2017 - 10:00
EU-Abgeordnete und Regierungsvertreter der Mitgliedsstaaten haben sich auf eine neue Richtlinie gegen Geldwäsche und Terrorismusfinanzierung geeinigt. Die Vorgaben sollen auch für Tauschbörsen und für virtuelle Währungen gelten.

Strenge Regeln für Multicopter in Skigebieten

heise online Newsticker - 19. Dezember 2017 - 9:30
Die eigene Abfahrt und die verschneite Landschaft aus der Luft zu filmen, gehört für viele Skiurlauber mittlerweile zum Wintersport dazu. Gesetzgeber und Skipistenbetreiber regeln den Einsatz von Drohnen scharf, um Abstürze auf den Pisten zu verhindern.

BGP-Hijacking: IP-Verkehr der Großen Vier nach Russland umgeleitet

heise online Newsticker - 19. Dezember 2017 - 9:30
Weil etliche Netzbetreiber immer noch ein Routing-Protokoll ohne Sicherheitsvorkehrungen nutzen, gelang es wieder einmal Angreifern, IP-Verkehr von Google, Facebook, Apple und Microsoft umzuleiten. Das Zwischenziel: Russland.

Facebook ermahnt seine Nutzer zur Eigenverantwortung

heise online Newsticker - 19. Dezember 2017 - 9:00
Die Forschungsabteilung von Facebook warnt davor, dass einem das bloße Konsumieren von Facebook-Inhalten die Laune verderben kann. Eine aktive Teilnahme am Geschehen im sozialen Netzwerk könne dem entgegenwirken.

Organisierte Kriminalität: Beute dank Kryptowährung verzehnfacht

heise online Newsticker - 19. Dezember 2017 - 8:30
Der riesige Anstieg geht allerdings auf eine internationale Gruppe von Geldwäschern und Anlagebetrügern zurück.

Google gibt AR-Plattform Tango auf

heise online Newsticker - 19. Dezember 2017 - 8:30
Google stellt die Entwicklung seiner Augmented-Reality-Umgebung "Tango" für Smartphones wie erwartet ein. Der Support endet am 1. März 2018. Das Nachfolgeprojekt "ARCore" stand bereits fest.

Telekom und EWE wollen Glasfaserausbau im Nordwesten gemeinsam beschleunigen

heise online Newsticker - 19. Dezember 2017 - 8:00
In einer Kooperation wollen die Unternehmen zwei Milliarden Euro investieren, um Privathaushalte ans Glasfasernetz anzuschließen. Das Netz soll auch anderen Anbietern offenstehen.

Last Call Media: LCM Drupal Scaffold 2.0

Planet Drupal - 19. Dezember 2017 - 4:00
LCM Drupal Scaffold 2.0 Rob Mon, 12/18/2017 - 21:00

Last year, we released an ambitious project to open source our own internal workflow. We called it the Last Call Drupal Scaffold (definitely not the most original name), and we presented it to the world at several different camps and conferences, including Drupalcon Baltimore.

Agiledrop.com Blog: AGILEDROP: What do developers joining Drupal need to know before they start?

Planet Drupal - 19. Dezember 2017 - 2:02
Did you decide that you want to become a Drupal Developer? Congratulation! That is a great decision. As a Junior Drupal developer, you are going to face some of the challengers. Do not worry; every Drupal developer needed to go true this. But what skills do you need to join Drupal community? Are there any particular tools that you need to me familiar with? Jup, there is some knowledge you need to conquer before you enter Drupal coding and let's see the list of important skills, concepts, and tools that we think you should already know as a beginner in Drupal.    1. PHP language Every… READ MORE

Last-Minute-Rabatt im Check: Smart Home, Gaming Zubehör, GPS-Uhren

heise online Newsticker - 19. Dezember 2017 - 0:00
Noch eine Woche bis zum heiligen Abend – und bestimmt liegen noch nicht alle Geschenke parat. Amazon bewirbt seine Last-Minute-Aktion mit satten Nachlässen. Diese werden allerdings im Bezug zur UVP berechnet und spiegeln nicht die Realität wieder.

Xeno Media: Web Accessibility Part I: Do we still need to ask?

Planet Drupal - 18. Dezember 2017 - 22:06

“The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect.”

Tim Berners-Lee, 1997

What exactly is web accessibility?

Web accessibility is the removal of technical impediments that could limit access to or interaction with a website by any person with disabilities. The goal of a web accessible site is to allow all users equal access to all content and functionality. 

Some disabilities that web accessibility can address
  • Visual: Visual impairments up to and including complete blindness, various common types of poor vision, color blindness

  • Motor Skills: Difficulty using hands, tremors, Bradykinesia, loss of detailed muscle control, etc., due to conditions such as Parkinson’s, MS, stroke, and other movement disorders

  • Auditory: Hearing impairments up to and including total deafness and including the hard of hearing

  • Cognitive: Cognitive impairment and learning disabilities (Dyslexia, Dyscalculia, etc.) that may affect memory, attention, problem-solving and logic skills.

Temporary Disabilities

When developing with accessibility in mind there will almost certainly be some unexpected good fortune.  For example: if a person breaks her primary hand, and is forced to wear a cast, she may temporarily lose the ability to operate a mouse. The developer didn’t plan to cater to the temporarily disabled, but well designed keyboard navigation could surely save the day for such an accident victim.

Why does web accessibility matter?
  • It’s the right thing to do.

    Here’s a chance to make a positive difference in many people’s lives. Improving a site’s accessibility will make that site better for all users and will likely improve its position in the SERPs (Search Engine Result Pages). So be a good citizen and contribute to web accessibility! Make the web a better place for everyone!

  • It may be required.

    There are various state and federal laws regarding web accessibility.

    Some organizations and businesses have faced legal action for non-compliance with accessibility guidelines. Even if you were to win such a challenge, the cost in legal fees and in lost time would be substantial. Why risk exposing your business to the possibility of a legal challenge.

  • It’s good for business.

    According to the U.S. Census Bureau’s 2002 Survey of Income and Program Participation (SIPP), there are 51.2 million people with disabilities in the United States. That’s 18.1% of the U.S. population! Those folks need goods and services too, some of which are very specialized.

    Millions of people with disabilities shop, travel, buy cars, buy homes, eat out, go out and participate in most of the same activities as their fully-abled friends, neighbors and family. Web developers are in a unique position to work towards the good of all to advocate for and to help facilitate these behaviors. We all benefit.
     

  • Web accessibility is becoming easier to achieve and more unified with web standards as time passes.
  • More to come

    This series on Web accessibility will continue with the following:

    Part II: What guides accessibility efforts?

    This post will highlight the laws and governance related to web accessibility efforts.

    Part III: Tools and techniques for web accessibility

    Here we will provide a primer on assistive technologies and tools you and your developers can use to make your site more accessible.

    Part IV: Case studies

    This post will highlight two real-world applications where we have worked closely with clients to achieve highly-accessible websites. 

     

    Evolving Web: Writing a Custom Migration Source Plugin in Drupal 8

    Planet Drupal - 18. Dezember 2017 - 20:01

    Usually, Drupal migrations get run at the beginning of a project to get all your content into Drupal. But sometimes, you need to create a migration that runs on a regular basis. For example, you have an external database of courses and programs maintained by a university that needs to be displayed on a Drupal site. Another example: you have a database of book data that needs to be pulled into Drupal nightly.

    When working with migrations where the source files are updated every day, it can get really tedious to download the updated source files manually each time the migration runs.

    In this tutorial, we'll write a source plugin based on the CSV source plugin which will allow us to automatically download CSV files from a remote server via SFTP before running migrations. This article was co-authored by my colleague David Valdez - gracias David for your contribution.

    The Problem

    In a project we worked on recently, we had the following situation:

    • CSV files are updated by a PowerShell script every night on the client's server.
    • These CSV files are accessible via SFTP.

    Our task is to download the CSV source files over SFTP and to use them as our migration source.

    Before We Start The Plan

    The goal is to avoid downloading the file manually every time we run our migrations. So we need a way to doing this automatically everytime we execute a migration. To achieve this, we create a custom source plugin extending the CSV plugin provided by the Migrate Source CSV module, which will download CSV files from a remote server and pass it to the CSV plugin to process them.

    The Source Migrate Plugin

    To start, let's create a custom module and call it migrate_example_source and implement a custom migrate source plugin by creating a PHP class inside it at /src/Plugin/migrate/source/MigrateExampleSourceRemoteCSV.php

    We start implementing the class by simply extending the CSV plugin provided by the migrate_source_csv module: namespace Drupal\migrate_source_csv\Plugin\migrate\source; use Drupal\migrate_source_csv\Plugin\migrate\source\CSV as SourceCSV; use phpseclib\Net\SFTP /** * @MigrateSource( * id = "migrate_example_source_remote_csv" * ) */ class MigrateExampleSourceRemoteCSV extends SourceCSV {}

    Adding the annotation @MigrateSource is very important because that is what will make the migrate module detect our source plugin. In our plugin, we use the phpseclib/phpseclib libraries to make SFTP connections. Hence, we need to include the libraries in our project by running the following command in the Drupal root:

    composer require phpseclib/phpseclib

    Our plugin will download the source CSV file and will simply pass it to the CSV plugin to do the rest. We do the download when the plugin is being instantiated like this:

    /** * {@inheritdoc} */ public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration) { // If SFTP connection parameters are present. if (!empty($configuration['sftp'])) { // A settings key must be specified. // We use the settings key to get SFTP configuration from $settings. if (!isset($configuration['sftp']['settings'])) { throw new MigrateException('Parameter "sftp/settings" not defined for Remote CSV source plugin.'); } // Merge plugin settings with global settings. $configuration['sftp'] += Settings::get('sftp', []); // We simply download the remote CSV file to a temporary path and set // the temporary path to the parent CSV plugin. $configuration['path'] = $this->downloadFile($configuration['sftp']); } // Having downloaded the remote CSV, we simply pass the call to the parent plugin. parent::__construct($configuration, $plugin_id, $plugin_definition, $migration); }

    In the constructor we are using global SFTP credentials with Settings::get(). We need to define the credentials in settings.php like this:

    $settings['sftp'] = array( 'default' => [ 'server' => 'ftp.example.com', 'username' => 'username', 'password' => 'password', 'port' => '22', ], );

    Once we have the credentials of the FTP server we use a downloadFile() method to download the remote CSV file. Here's an extract of the relevant code:

    protected function downloadFile(array $conn_config) { ... // Prepare to download file to a temporary directory. $path_remote = $conn_config['path']; $basename = basename($path_remote); $path_local = file_directory_temp() . '/' . $basename; ... // Download file by SFTP and place it in temporary directory. $sftp = static::getSFTPConnection($conn_config); if (!$sftp->get($path_remote, $path_local)) { throw new MigrateException('Cannot download remote file ' . $basename . ' by SFTP.'); } ... // Return path to the local of the file. // This will in turn be passed to the parent CSV plugin. return $path_local; }

    Note: The code block above has been simplified a bit. If you see the actual source plugin, there are some lines of code which make things more compatible with the migration_lookup plugin.

    This method creates an SFTP connection, downloads the file to a temporary location and returns the path to the downloaded file. The temporary file path is then passed to the Migrate Source CSV and that's it! Finally, to use the plugin in our migration we just set our plugin as the source/plugin:

    id: migrate_example_content label: 'Example content' ... source: plugin: migrate_example_source_remote_csv # Settings for our custom Remote CSV plugin. sftp: settings: sftp path: "/path/to/file/example_content.csv" # Settings for the contrib CSV plugin. header_row_count: 1 keys: - id ...

    The code for this plugin and the example module is available at migrate_example_source. Great!

    + more awesome articles by Evolving Web

    c't uplink 20.1: Apple CarPlay vs. Android Auto, Galileo, 3D-Sound erklärt

    heise online Newsticker - 18. Dezember 2017 - 19:30
    Bunte Tüte in der 201. c't-uplink-Folge: Wir haben die Assistentensysteme von Apple und Google im Auto verglichen, 3D-Sound im Heimkino getestet und waren im Labor, in dem die Galileo-Satelliten gebaut werden.

    SpaceX gelingt Start recycelter Raumkapsel und Raketenstufe

    heise online Newsticker - 18. Dezember 2017 - 19:00
    Am Freitag hat SpaceX zum 12. Mal erfolgreich eine Rakete auf den Weg zur Internationalen Raumstation gebracht. Erstmals waren sowohl die erste Raketenstufe als auch die Raumkapsel nicht zum ersten Mal unterwegs.