#heiseshow: War's das jetzt schon mit Virtual Reality?

heise online Newsticker - 13. Oktober 2017 - 12:00
Vergangenes Jahr kamen insgesamt drei hochwertige VR-Brillen auf den Markt, aber der Durchbruch ist ausgeblieben. Vielerorts liegen die Brillen angestaubt im Schrank. Woran das liegen könnte, besprechen wir in einer neuen #heiseshow.

iOS 11.0.3: Apple legt noch ein Bugfix-Update nach

heise online Newsticker - 13. Oktober 2017 - 12:00
In iOS 11.0 steckte offenbar der Wurm: Apple hat vor iOS 11.1 erneut ein Bugfix-Update eingeschoben. Diesmal werden Audio- und Haptik-Probleme behoben, zudem konnte der Bildschirm einfrieren.

Prognose: 2018 mehr Geld für IT-Fachkräfte

heise online Newsticker - 13. Oktober 2017 - 11:00
2018 erwartet IT-Fachkräfte ein überdurchschnittlich höheres Gehalt. Das geht zumindest aus einer Prognose des Personaldienstleister Robert Half hervor. Insbesondere Softwareentwickler in München sollen profitieren.

Oculus steigt in VR-Preiskampf ein: Oculus Rift dauerhaft für 450 Euro

heise online Newsticker - 13. Oktober 2017 - 11:00
Das Virtual-Reality-Headset Oculus Rift kostet ab sofort dauerhaft 450 Euro. Außerdem strickt Oculus die Benutzerführung komplett um: Mit dem Core-2.0-Update können sich Nutzer ihre eigene VR-Umgebung zusammenbasteln.

Nuvole: How to maintain Drush commands for Drush 8 and 9 and Drupal console with the same code base.

Planet Drupal - 13. Oktober 2017 - 10:48
Config Split treats all the cli the same.

Drupal 8.4 and its upgrade to Symfony 3 has made the compatibility of the global Drush 8 a bit more challenging. Drush 9 works with Drupal 8.4 but it is not stable yet and the format of how third party Drush commands are made has changed significantly.

While Drush 9 comes with a command that helps porting Drush 8 commands you will still end up maintaining very similar code in two places one with calls to drush_confirm('...') and one with $this->io()->confirm('...'). If you decide to also provide your commands for Drupal console you now have three times the burden.

Because we tried to provide the commands for Config Split for both Drush and Drupal console early on we faced this problem already more than a year ago. And now it has paid off because porting the commands to Drush 9 was very quick.

The solution is actually really simple and brings the added benefit of being able to test the business logic of the commands in the absence of Drush or Drupal console. It is all about separating the command discovery from the command logic. Drush 8, 9 and Drupal console all have a bit different ways to discover and invoke commands, but the business logic you want to implement is the same so all we have to do is to extract a common "interface" our custom service can implement and then make the command definitions wrap that and keep things DRY.

The CliService

Config Split defines a config_split.cli service with the class ConfigSplitCliService with all its dependencies injected. It has the methods \Drupal\config_split\ConfigSplitCliService::ioExport and \Drupal\config_split\ConfigSplitCliService::ioImport that implement all the commands logic and delegate the actual importing and exporting to specific methods.

The method signature for both the export and import method are more or less the same: CliService::ioMethod($arguments, $io, callable $t).

  • $arguments: The arguments passed to the command.
  • $io: This is an object that interacts with the command line, in Drush 9 and Drupal console this comes from the Symfony console component, for Drush 8 we created a custom wrapper around drush_confirm and drush_log called ConfigSplitDrush8Io.
  • $t: This is essentially a t function akin to how Drupal translates strings. Because Drupal console translates things differently we had to be a bit creative with that by adding a t method to the command.
Commands wrap the service

The Drush 8 command is essentially:

<?php
function drush_config_split_export($split = NULL) {
  // Make the magic happen.
  \Drupal::service('config_split.cli')->ioExport($split, new ConfigSplitDrush8Io(), 'dt');
}
?>

For Drush 9 we can use dependency injection and the Drush 9 command becomes essentially:

<?php
class ConfigSplitCommands extends DrushCommands {
  public function splitExport($split = NULL) {
    $this->cliService->ioExport($split, $this->io(), 'dt');
  }
}
?>

And very similar the Drupal console command:

<?php
class ExportCommand extends SplitCommandBase {
  protected function execute(InputInterface $input, OutputInterface $output) {
    $this->setupIo($input, $output);
    // Make the magic happen.
    $this->cliService->ioExport($input->getOption('split'), $this->getIo(), [$this, 't']);
  }
}
?> Testing

The ConfigSplitCliServiceTest is a KernelTest which asserts that the export works as expected by exporting to a virtual file system. The test coverage is not 100% (patches welcome) but the most important aspects for the complete and conditional splitting (blacklist/graylist) is thoroughly tested. There are no limitations on what or how you can test your CliService since it is self contained in your module and does not depend on Drush or the Drupal console. For example one could write a unit test with a mocked $io object that asserts that the messages printed to the cli are correct.

Tags: Drupal 8Drupal PlanetDrush

InternetDevels: More profits & less effort with Drupal multisite functionality

Planet Drupal - 13. Oktober 2017 - 10:27

Here is another recipe for success. You can have a whole team of websites playing for you, and they don’t have to be created from scratch or managed separately. The secret lies in Drupal’s well-developed multisite functionality. Thanks to this, Drupal will not only let you leave your competitors behind, but also multiply this effect by many times.

Read more

Oculus Go: Autarkes VR-Headset für 200 US-Dollar

heise online Newsticker - 13. Oktober 2017 - 10:00
Facebook hat auf seiner VR-Entwicklerkonferenz OC4 ein autarkes Virtual-Reality-Headset vorgestellt. Die Oculus Go soll 200 US-Dollar kosten. Außerdem gibt es neues zum kabellosen "Santa Cruz"-Headset.

KI-Startup bekommt fast 100 Millionen US-Dollar Risikokapital

heise online Newsticker - 13. Oktober 2017 - 10:00
Petuum erhält in der zweiten Finanzierungsrunde 93 Millionen US-Dollar von Softbank und Advantech Capital. Mit dem Geld will das Unternehmen, das ein Betriebssystem und ein Framework für Machine Learning anbietet, vor allem das Personal ausbauen.

EnBW gibt das Milliardenprojekt Pumpspeicherkraftwerk Atdorf auf

heise online Newsticker - 13. Oktober 2017 - 10:00
Das Vorhaben steht schon länger unter keinem guten Stern mehr: 2014 zog sich RWE aus der Planung für das Pumpspeicherkraftwerk Atdorf zurück. Von Umweltschützern kommt von jeher starker Widerstand. Jetzt zieht auch der Energieversorger EnBW die Reißleine.

Cloud Foundry Summit: 600 Tools und Tipps für Entwickler

heise online Newsticker - 13. Oktober 2017 - 9:30
Cloud Foundry startet mit einem Online-Marktplatz mit Frameworks, Runtimes, Datenbanken, Messaging-Techniken, API-Gateways, Backend-Konnektoren und Identity Management Services. Ziel ist die Vergrößerung des Ökosystems.

Thalia steigt bei mobiler Weiterlese-App Papego ein

heise online Newsticker - 13. Oktober 2017 - 9:00
Mit der Papego-App sollen Nutzer die Seite eines Print-Buchs abscannen und dann auf dem Mobilgerät eine Digitalfassung weiterlesen können. Buchhandelskette Thalia beteiligt sich nun am Startup dahinter.

Appnovation Technologies: A Homeowner's Guide to Drupal Security

Planet Drupal - 13. Oktober 2017 - 9:00
A Homeowner's Guide to Drupal Security Working in our Managed Services department, we handle many Drupal 7 and 8 sites - all of which have one thing in common. Despite their different requirements, designs and content - they all need security updates applying and are all in need of some care and attention when it comes to securing them. If a Drupal site was a house: Securi...

Intel Core i-8000 kaum erhältlich

heise online Newsticker - 13. Oktober 2017 - 8:30
Auch knapp eine Woche nach ihrer Einführung kann Intel die neuen "Coffee Lake"-Prozessoren für Desktop-PCs nicht in größeren Stückzahlen liefern.

Niederlande: Ab 2030 sollen nur noch emissionsfreie Pkw auf die Straße

heise online Newsticker - 13. Oktober 2017 - 8:00
Die neue niederländische Regierung will in dreizehn Jahren keine neuen Autos mit Benzin- oder Dieselmotoren mehr zulassen. Derzeit liegt der Marktanteil von Elektrofahrzeugen in den Niederlanden bei weniger als zwei Prozent.

Cloud Foundry Summit: Container-Nutzung weiterhin schleppend

heise online Newsticker - 13. Oktober 2017 - 8:00
Die Cloud Foundry Foundation hat auf ihrer europäischen Hausmesse die sogenannte "Container Runtime" als Standard-Container-Bereitstellungsmethode für Cloud Foundry mit Kubernetes und BOSH vorgestellt.

Actioncam GoPro Hero6 Black im Test – perfekt zum Geschichten erzählen

heise online Newsticker - 13. Oktober 2017 - 8:00
TechStage hat die neue Action-Kamera GoPro Hero6 Black getestet. Sie kann nun Videos im Format 4K UHD bei 60 Bildern pro Sekunde aufnehmen und erstellt automatisch Kurzfilme, die sich mit einem Klick teilen lassen. Ob sich das Paket für 569 Euro lohnt?

2,5-, 5- und 10-GBit-Ethernet: Netgear steigt in den Preiskampf ein

heise online Newsticker - 13. Oktober 2017 - 7:30
Der Hersteller hat neue Switches für die Geschwindigkeitsstufen 2,5, 5 und 10 GBit/s präsentiert. Die neue Ethernet-Generation wird damit allmählich interessant für Heimanwender und kleine Büros.

AV-Receiver verschlucken sich an Apples AirPlay

heise online Newsticker - 13. Oktober 2017 - 7:30
Sind die Cover-Bilder zu groß, können Geräte von Denon und Co. abstürzen, wenn sie über die Apple Streamingtechnik mit Songs versorgt werden.

Vertrauliche Daten von Accenture auf ungeschützten Webservern

heise online Newsticker - 13. Oktober 2017 - 7:00
Tag der offenen Tür in Accentures Cloud: Mindestens vier Server voll vertraulicher Daten wie Passwörter und Entschlüsselungscodes waren laut Sicherheitsforschern im Netz frei zugänglich.

Medizintechnik: Neue, leichte Prothesen für Jugendliche

heise online Newsticker - 13. Oktober 2017 - 6:00
Bisherige Handprothesen sind hauptsächlich für Erwachsene gemacht. Jugendliche und Erwachsene mit zierlichen Händen hatten das Nachsehen. Doch neue Entwicklungen richten sich an ihre Bedürfnisse.