Verkehr der Zukunft: Düsseldorf wird zum Testfeld

heise online Newsticker - 23. Mai 2018 - 10:30
Beim autonomen Fahren spielt der Datenaustausch zum Verkehr eine wesentliche Rolle. In Düsseldorf wird ein Kommunikationssystem getestet, das vor Gefahren warnt, die der Fahrer noch nicht sieht.

Crypto Wars: FBI argumentierte mit falschen Zahlen gegen Verschlüsselung

heise online Newsticker - 23. Mai 2018 - 10:00
Vergangenes Jahr hat das FBI beklagt, das mehr als 7000 Mobilgeräte von Verdächtigen wegen der Verschlüsselung nicht einsehbar seien. Diese Zahl war aber massiv zu hoch – wegen eines "Programmierfehlers".

Kaufberatung: PowerLAN für stabiles Internet im Garten

heise online Newsticker - 23. Mai 2018 - 10:00
Dicke Wände oder bedampfte Fenster bremsen WLAN. PowerLAN kann den Garten über die Stromleitung online bringen. Wir zeigen Adapter mit WLAN-Hotspot.

Einsame Landschaften – Die Bilder der Woche (KW 20)

heise online Newsticker - 23. Mai 2018 - 10:00
Ein Mensch und zwei Tiere, mehr war in den einsamen Landschaften in den Bildern des Tages der vergangenen Woche nicht zu entdecken. Vielleicht macht gerade das den Reiz der Fotos aus.

“Solo: A Star Wars Story”: Han Solos Origin-Story im Kino

heise online Newsticker - 23. Mai 2018 - 9:30
Nach "Rogue One" machen Disney und Lucasfilm einen weiteren Abstecher aus dem Kanon und begeben sich auf die Spuren von Han Solo. An dieser Origin-Story haben sich gleich drei Regisseure versucht.

Was war. Was wird. Was wir wissen und was nicht

heise online Newsticker - 23. Mai 2018 - 9:30
Eine Woche bevor die Datenschutzgrundverordnung wirksam wird, freut sich Hal Faber auf das Ende der Flut von E-Mails, die auf neue Datenschutzregeln hinweisen. Tagesaktuell sinniert er auch über die Schlange beim Bäcker.

US-Kongress erwägt Copyright-Verlängerung auf bis zu 144 Jahre

heise online Newsticker - 23. Mai 2018 - 9:00
Das US-Repräsentantenhaus hat einen Gesetzentwurf beschlossen, wonach zwischen 1923 und 1972 erfolgte Musikaufnahmen bis 2067 urheberrechtlich geschützt werden sollen. Im Maximalfall würde das Copyright damit auf fast 150 Jahre ausgedehnt.

Uber: Chef der Flugtaxi-Sparte hat Unternehmen verlassen

heise online Newsticker - 23. Mai 2018 - 8:30
Produktvorstand Jeff Holden hat Berichten zufolge den Fahrdienstvermittler verlassen. Er leitete zuletzt den Bereich für senkrechtstartende Flugtaxis, die in wenigen Jahren kommerziell zum Einsatz kommen sollten.

Autoindustrie erwartet keine flächendeckenden Diesel-Fahrverbote

heise online Newsticker - 23. Mai 2018 - 8:00
Liest man das Urteil der obersten Verwaltungsrichter genau, sind die Hürden der Verbannung von Dieselautos aus Städten relativ hoch. Die Autolobby sieht sich bestätigt, verunsicherte Autobesitzer dürften erleichtert sein. Vom Tisch ist das Thema nicht.

No Man's Sky: Echter Multiplayer-Modus kommt mit Juli-Update

heise online Newsticker - 23. Mai 2018 - 7:00
Das Update No Man's Sky NEXT rüstet beim Weltraum-Erkundungsspiel den lange ersehnten Multiplayer-Modus nach. Am 24. Juli gibt es das Spiel dann auch erstmals für die Xbox One.

Gizra.com: Understanding Media Management with Drupal Core

Planet Drupal - 23. Mai 2018 - 7:00

But I just want to upload images to my site…

There is a clear difference between what a user expects from a CMS when they try to upload an image, and what they get out of the box. This is something that we hear all the time, and yet we, as a Drupal community, struggle to do it right.

There are not simple answers on why Drupal has issues regarding media management. As technology evolves, newer and simpler tools raise the bar on what users expects to see on their apps. Take Instagram for example. An entire team of people (not just devs) are focused on making the experience as simple as possible.

Therefore it’s normal to expect that everyone wants to have this type of simplicity everywhere. However, implementing this solutions is not always trivial, as you will see.

Continue reading…

Virtuoso Performance: Configuring migrations via a form

Planet Drupal - 23. Mai 2018 - 4:29
Configuring migrations via a form mikeryan Tuesday, May 22, 2018 - 09:29pm

Frequently, there may be parts of a migration configuration which shouldn’t be hard-coded into your YAML file - some configuration may need to be changed periodically, some may vary according to environment (for example, a dev environment may access a dev or test API endpoint, while prod needs to access a production endpoint), or you may need a password or other credentials to access a secure endpoint (or for a database source which you can’t put into settings.php). You may also need to upload a data file for input into your migration. If you are implementing your migrations as configuration entities (a feature provided by the migrate_plus module), all this is fairly straightforward - migration configuration entities may easily be loaded, modified, and saved based on form input, implemented in a standard form class.

Uploading data files

For this project, while other CSV source files were static enough to go into the migration module itself, we needed to periodically update the blog data during the development and launch process. A file upload field is set up in the normal way:

$form['acme_blog_file'] = [ '#type' => 'file', '#title' => $this->t('Blog data export file (CSV)'), '#description' => $this->t('Select an exported CSV file of blog data. Maximum file size is @size.', ['@size' => format_size(file_upload_max_size())]), ];

And saved to the public file directory in the normal way:

$all_files = $this->getRequest()->files->get('files', []); if (!empty($all_files['acme_blog_file'])) { $validators = ['file_validate_extensions' => ['csv']]; if ($file = file_save_upload('acme_blog_file', $validators, 'public://', 0)) {

So, once we’ve got the file in place, we need to point the migration at it. We load the blog migration, retrieve its source configuration, set the path to the uploaded file, and save it back to active configuration storage.

$blog_migration = Migration::load('blog'); $source = $blog_migration->get('source'); $source['path'] = $file->getFileUri(); $blog_migration->set('source', $source); $blog_migration->save(); drupal_set_message($this->t('File uploaded as @uri.', ['@uri' => $file->getFileUri()])); } else { drupal_set_message($this->t('File upload failed.')); } }

It’s important to understand that get() and set() only operate directly on top-level configuration keys - we can’t simply do something like $blog_migration->set(‘source.path’, $file->getFileUri()), so we need to retrieve the whole source configuration array, and set the whole array back on the entity.

Endpoints and credentials

The endpoint and credentials for our event service are configurable through the same webform. Note that we obtain the current values from the event migration configuration entity to prepopulate the form:

$event_migration = Migration::load('event'); $source = $event_migration->get('source'); if (!empty($source['urls'])) { if (is_array($source['urls'])) { $default_value = reset($source['urls']); } else { $default_value = $source['urls']; } } else { $default_value = 'http://services.example.com/CFService.asmx?wsdl'; } $form['acme_event'] = [ '#type' => 'details', '#title' => $this->t('Event migration'), '#open' => TRUE, ]; $form['acme_event']['event_endpoint'] = [ '#type' => 'textfield', '#title' => $this->t('CF service endpoint for retrieving event data'), '#default_value' => $default_value, ]; $form['acme_event']['event_clientid'] = [ '#type' => 'textfield', '#title' => $this->t('Client ID for the CF service'), '#default_value' => @$source['parameters']['clientId'] ?: 1234, ]; $form['acme_event']['event_password'] = [ '#type' => 'password', '#title' => $this->t('Password for the CF service'), '#default_value' => @$source['parameters']['clientCredential']['Password'] ?: '', ];

In submitForm(), we again load the migration configuration, insert the form values, and save:

$event_migration = Migration::load('event'); $source = $event_migration->get('source'); $source['urls'] = $form_state->getValue('event_endpoint'); $source['parameters'] = [ 'clientId' => $form_state->getValue('event_clientid'), 'clientCredential' => [ 'ClientID' => $form_state->getValue('event_clientid'), 'Password' => $form_state->getValue('event_password'), ], 'startDate' => date('m-d-Y'), ]; $event_migration->set('source', $source); $event_migration->save(); drupal_set_message($this->t('Event migration configuration saved.'));

Note that we also reset the startDate value while we’re at it (see the previous SOAP blog post).

Tags Drupal Planet Drupal Migration Use the Twitter thread below to comment on this post:

Configuring migrations via a form https://t.co/EZTiUKBazX

— Virtuoso Performance (@VirtPerformance) May 22, 2018

 

Kalamuna Blog: Drupalistas Spent Our Entire Swag Budget. Where did the Money Go?

Planet Drupal - 23. Mai 2018 - 0:09
Drupalistas Spent Our Entire Swag Budget. Where did the Money Go? Shannon O'Malley Tue, 05/22/2018 - 15:09

This April at DrupalCon Nashville, in addition to wanting to meet colleagues and soak up the great talks, we wanted to create a forum for the international Drupal community to do good. That’s why we used our sponsor booth wall as a space for attendees to promote nonprofits that work for causes that matter to them.

Categories Articles Community Drupal Nonprofits Author Shannon O'Malley

Dries Buytaert: My thoughts on Adobe buying Magento for $1.68 billion

Planet Drupal - 22. Mai 2018 - 21:20

Yesterday, Adobe announced that it agreed to buy Magento for $1.68 billion. When I woke up this morning, 14 different people had texted me asking for my thoughts on the acquisition.

Adobe acquiring Magento isn't a surprise. One of our industry's worst-kept secrets is that Adobe first tried to buy Hybris, but lost the deal to SAP; subsequently Adobe tried to buy DemandWare and lost out against Salesforce. It's evident that Adobe has been hungry to acquire a commerce platform for quite some time.

The product motivation behind the acquisition

Large platform companies like Salesforce, Oracle, SAP and Adobe are trying to own the digital customer experience market from top to bottom, which includes providing support for marketing, commerce, personalization, and data management, in addition to content and experience management and more.

Compared to the other platform companies, Adobe was missing commerce. With Magento under its belt, Adobe can better compete against Salesforce, Oracle and SAP.

While Salesforce, SAP and Oracle offer good commerce capability, they lack satisfactory content and experience management capabilities. I expect that Adobe closing the commerce gap will compel Salesforce, SAP and Oracle to act more aggressively on their own content and experience management gap.

While Magento has historically thrived in the SMB and mid-market, the company recently started to make inroads into the enterprise. Adobe will bring a lot of operational maturity; how to sell into the enterprise, how to provide enterprise grade support, etc. Magento stands to benefit from this expertise.

The potential financial outcome behind the acquisition

According to Adobe press statements, Magento has achieved "approximately $150 million in annual revenue". We also know that in early 2017, Magento raised $250 million in funding from Hillhouse Capital. Let's assume that $180 million of that is still in the bank. If we do a simple back-of-the-envelope calculation, we can subtract this $180 million from the $1.68 billion, and determine that Magento was valued at roughly $1.5 billion, or a 10x revenue multiple on Magento's trailing twelve months of revenue. That is an incredible multiple for Magento, which is primarily a licensing business today.

Compare that with Shopify, which is trading at a $15 billion dollar valuation and has $760 million of twelve month trailing revenue. This valuation is good for a 20x multiple. Shopify deserves the higher multiple, because it's the better business; all of its business is delivered in the cloud and at 65% year-over-year revenue growth, it is growing much faster than Magento.

Regardless, one could argue that Adobe got a great deal, especially if it can accelerate Magento's transformation from a licensing business into a cloud business.

Most organizations prefer best-of-breed

While both the product and financial motivations behind this acquisition are seemingly compelling, I'm not convinced organizations want an integrated approach.

Instead of being confined to proprietary vendors' prescriptive suites and roadmaps, global brands are looking for an open platform that allows organizations to easily integrate with their preferred technology. Organizations want to build content-rich shopping journeys that integrate their experience management solution of choice with their commerce platform of choice.

We see this first hand at Acquia. These integrations can span various commerce platforms, including IBM WebSphere Commerce, Salesforce Commerce Cloud/Demandware, Oracle/ATG, SAP/hybris, Magento and even custom transaction platforms. Check out Quicken (Magento), Weber (Demandware), Motorola (Broadleaf Commerce), Tesla (custom to order a car, and Shopify to order accessories) as great examples of Drupal and Acquia working with various commerce platforms. And of course, we've quite a few projects with Drupal's native commerce solution, Drupal Commerce.

Owning Magento gives Adobe a disadvantage, because commerce vendors will be less likely to integrate with Adobe Experience Manager moving forward.

It's all about innovation through integration

Today, there is an incredible amount of innovation taking place in the marketing technology landscape (full-size image), and it is impossible for a single vendor to have the most competitive product suite across all of these categories. The only way to keep up with this unfettered innovation is through integrations.

For reference, here are the 2011, 2012, 2014, 2015, 2016 and 2017 versions of the landscape. It shows how fast the landscape is growing.

Most customers want an open platform that allows for open innovation and unlimited integrations. It's why Drupal and Acquia are winning, why the work on Drupal's web services is so important, and why Acquia remains committed to a best-of-breed strategy for commerce. It's also why Acquia has strong conviction around Acquia Journey as a marketing integration platform. It's all about innovation through integration, making those integrations easy, and removing friction from adopting preferred technologies.

If you acquire a commerce platform, acquire a headless one

If I were Adobe, I would have looked to acquire a headless commerce platform such as Elastic Path, Commerce Tools, Moltin, Reaction Commerce or even Salsify.

Today, there is a lot of functional overlap between Magento and Adobe Experience Manager — from content editing, content workflows, page building, user management, search engine optimization, theming, and much more. The competing functionality between the two solutions makes for a poor developer experience and for a poor merchant experience.

In a headless approach, the front end and the back end are decoupled, which means the experience or presentation layer is separated from the commerce business layer. There is a lot less overlap of functionality in this approach, and it provides a better experience for merchants and developers.

Alternatively, you could go for a deeply integrated approach like Drupal Commerce. It has zero overlap between its commerce, content management and experience building capabilities.

For Open Source, it could be good or bad

How Adobe will embrace Magento's Open Source community is possibly the most intriguing part of this acquisition — at least for me.

For a long time, Magento operated as Open Source in name, but wasn't very Open Source in practice. Over the last couple of years, the Magento team worked hard to rekindle its Open Source community. I know this because I attended and keynoted one of its conferences on this topic. I have also spent a fair amount of time with Magento's leadership team discussing this. Like other projects, Magento has been taking inspiration from Drupal.

For example, the introduction of Magento 2 allowed the company to move to GitHub for the first time, which gave the community a better way to collaborate on code and other important issues. The latest release of Magento cited 194 contributions from the community. While that is great progress, it is small compared to Drupal.

My hope is that these Open Source efforts continue now that Magento is part of Adobe. If they do, that would be a tremendous win for Open Source.

On the other hand, if Adobe makes Magento cloud-only, radically changes their pricing model, limits integrations with Adobe competitors, or doesn't value the Open Source ethos, it could easily alienate the Magento community. In that case, Adobe bought Magento for its install base and the Magento brand, and not because it believes in the Open Source model.

This acquisition also signals a big win for PHP. Adobe now owns a $1.68 billion PHP product, and this helps validate PHP as an enterprise-grade technology.

Unfortunately, Adobe has a history of being "Open Source"-second and not "Open Source"-first. It acquired Day Software in July 2010. This technology was largely made using open source frameworks — Apache Sling, Apache Jackrabbit and more — and was positioned as an open, best-of-breed solution for developers and agile marketers. Most of that has been masked and buried over the years and Adobe's track record with developers has been mixed, at best.

Will the same happen to Magento? Time will tell.

Huawei Y7 im Test: edle Mittelklasse mit Schwächen

heise online Newsticker - 22. Mai 2018 - 18:30
Mit Android 8, Quad-Core-Prozessor, 6-Zoll-Display und 13-MP-Kamera kostet das Huawei Y7 knapp 200 Euro. Ob sich die Investition lohnt, verrät unser Test.

Amazon: Trump soll von US-Post höhere Zustellgebühren verlangt haben

heise online Newsticker - 22. Mai 2018 - 18:30
Der US-Präsident hat den Online-Händler schon mehrmals angegriffen und ihm unfaire Praktiken vorgeworfen. Jetzt soll Trump die US-Postbehörde angehalten haben, die Gebühren für die Paketzustellung zu verdoppeln – jedoch ohne Erfolg.

Fortnite: Android-Version und Anpassungen

heise online Newsticker - 22. Mai 2018 - 18:30
Epic Games plant für diesen Sommer die Veröffentlichung einer Android-Version des beliebten Battle-Royal-Spiels Fortnite. Für die mobile iOS-Version gibt es weitere Aktualisierungen.

Störung bei Sparda-Banken wegen Firewall-Wartung

heise online Newsticker - 22. Mai 2018 - 18:00
Am Donnerstag kämpften die Sparda-Banken mit einem landesweiten technischen Totalausfall, der erst am frühen Abend behoben wurde. Ursache sollen Wartungsarbeiten an der Netzwerkstruktur des IT-Dienstleisters gewesen sein.

Deutsche und Chinesen konferieren erstmals über Cyber-Themen

heise online Newsticker - 22. Mai 2018 - 17:30
Deutschland und China haben erstmals eine Cyber-Konsultation veranstaltet. Deutschland betonte die Notwendigkeit für Unternehmen, VPN-Verbindungen zu unterhalten.

Halbleitertechnik treibt Wachstum von Carl Zeiss

heise online Newsticker - 22. Mai 2018 - 17:30
Der Optikkonzern Carl Zeiss steigert seinen Umsatz mit der Zukunftstechnologie EUV-Lithographie, die eine Herstellung von immer kleineren, effizienten und schnelleren elektronischen Schaltkreisen ermöglicht. In Asien ist die Nachfrage besonders hoch.