Skype-Chats mit Ende-zu-Ende-Verschlüsselung

heise online Newsticker - 15. Januar 2018 - 16:30
Was WhatsApp schon längst kann, soll künftig auch Skype können: Die Insider-Version unterstützt Ende-zu-Ende-verschlüsselte Chats. Für die "Privaten Unterhaltungen" kommt das Protokoll von Signal zum Einsatz. Es gibt aber einige Einschränkungen.

Informatik-Professor: Senioren bleiben von der Digitalisierung abgehängt

heise online Newsticker - 15. Januar 2018 - 16:30
In Deutschland gibt es 10 Millionen Menschen im Alter ab 70 Jahren, die noch nie online waren. Das müsse sich ändern, sagt der Bremer Informatik-Professor Herbert Kubicek.

JavaLand 2018: Noch 6 Tage zum Frühbucherpreis anmelden

heise online Newsticker - 15. Januar 2018 - 16:15
Über 100 Vorträge und ein breit gefächertes Angebot an Community-Aktivitäten erwarten die Teilnehmer auf der fünften Auflage der Java-Konferenz von 13. bis 15. März. Noch bis 18. Januar gibt es Early-Bird-Tickets.

Pico Neo ausprobiert: Autarkes VR-Headset mit Positions- und Handcontroller-Tracking

heise online Newsticker - 15. Januar 2018 - 15:00
Der chinesische Hersteller Pico will das erste autarke VR-Headset mit vollständigem Positions- und Handcontroller-Tracking auf den Markt bringen. Wir haben das Pico Neo auf der CES ausprobiert.

Vorsicht vor Fake-Mails vom BSI mit angeblichen Meltdown-/Spectre-Patches

heise online Newsticker - 15. Januar 2018 - 14:00
Betrügerische Mails im Namen des Bundesamt für Sicherheit in der Informationstechnik wollen Opfern einen als Meltdown-/Spectre-Patch getarnten Trojaner unterjubeln.

#TGIQF – das Zitate-Quiz: Gates, Jobs & Co. Wer hat's gesagt?

heise online Newsticker - 15. Januar 2018 - 13:30
Egal ob Steve Jobs, Linus Torvalds oder Bill Gates – was immer die die IT-Promis von sich geben, wird auf die Goldwaage gelegt. Einige ihrer Zitate oder überholten Prognosen verfolgen sie bis heute. Wissen Sie, welches Zitat von wem stammt?

Apple grast OLED-Markt ab: Android-Hersteller suchen nach Alternativen

heise online Newsticker - 15. Januar 2018 - 13:00
Verschiedene große chinesische Handy-Hersteller kommen nicht mehr an ausreichend große OLED-Display-Stückzahlen. Der Grund dafür: Apples iPhone X – und seine Nachfolger.

Ein GPS für Satelliten: NASA testet erfolgreich Navigation anhand von Pulsaren

heise online Newsticker - 15. Januar 2018 - 13:00
Forscher haben eine Technik getestet, mit der sich Weltraumsonden autonom orientieren und von der Erde unabhängiger machen könnten. Dazu griffen sie auf Pulsare als kosmische Leuchttürme zurück. Die Genauigkeit war deutlich besser als erwartet.

Vier wichtige Themen für Blockchains und Kryptowährungen im neuen Jahr

heise online Newsticker - 15. Januar 2018 - 12:30
Dem massiven Kursanstieg bei Bitcoin und vielen anderen Digitalwährungen im Jahr 2017 standen wenig greifbare Fortschritte bei konkreten Anwendungen entgegen. In diesem Jahr sollte sich das ändern.

Neue Algorithmen für Facebook: Weniger Nachrichten, mehr Persönliches

heise online Newsticker - 15. Januar 2018 - 12:30
Statt "relevanter Inhalte" stehen bei Facebook fortan "bedeutsame Interaktionen" mit Menschen im Vordergrund. Das bedeutet mehr Katzen- und Babyfotos, weniger Nachrichten. User werden dann womöglich weniger Zeit auf Facebook verbringen.

NotPetya: CIA sieht Russland hinter verheerende Cyberattacke

heise online Newsticker - 15. Januar 2018 - 12:15
Neben Wannacry war NotPetya vergangenes Jahr eine der großen Cyberattacken mit Kryptotrojanern. Einem Bericht zufolge sieht der US-Geheimdienst CIA das russische Militär als Drahtzieher. Ziel war demnach die Ukraine.

IT-Security-Event: Das Programm der secIT von Heise ist online

heise online Newsticker - 15. Januar 2018 - 11:45
Ab sofort lässt sich das Programm der Expert-Talks, Vorträge und Workshops einsehen. Die secIT findet im März in Hannover statt und richtet sich an Fachpublikum bestehend aus IT-Security-Verantwortlichen, Admins, Datenschutzbeauftragten und Entscheidern.

Amazee Labs: Don’t Push it: Using GraphQL in Twig

Planet Drupal - 15. Januar 2018 - 11:40
Don’t Push it: Using GraphQL in Twig

Using GraphQL in Drupal with Twig instead of React, Vue or the next month's javascript framework might sound like a crazy idea, but I assure you it’s worth thinking about.

Philipp Melab Mon, 01/15/2018 - 10:40

Decoupling is all the rage. Javascript frontends with entirely independent backends are state of the art for any self-respecting website right now. But sometimes it’s not worth the cost and the project simply does not justify the full Drupal + React technology stack.

Besides the technological benefits of a javascript based frontend like load times and responsiveness, there’s another reason why this approach is so popular: It moves control to the frontend, concept and design unit, which matches project workflows a lot better.

Status quo

Traditionally Drupal defines data structures that provide a “standard” rendered output, which then can be adopted by the so-called “theme developer” to meet the clients' requirements. Template overrides, preprocess functions, Display Suite, Panels, Layouts - there are myriads of ways how to do this, and twice as many opinions determining the right one. When taking over a project the first thing is to figure out how it was approached and where the rendered information actually comes from. Templates only have variables that are populated during processing or preprocessing and altered in modules or themes, which makes it very hard to reason with the data flow, if you were not the person that conceived it in the first place.

There are ideas to improve the situation, but regarding the success of decoupling, perhaps it’s time to approach the problem from a different angle.

Push versus Pull

The current push model used by Drupal scatters responsibilities across modules, preprocess functions and templates. The controller calls the view builder to prepare a “renderable” that is altered 101 times and results in a set of variables that might or might not be required by the current theme’s template.

If we would turn this around and let the template define it’s data requirements (as it happens in decoupled projects naturally), we could achieve a much clearer data flow and increase readability and maintainability significantly.

And that’s what the GraphQL Twig module is supposed to do. It allows us to add GraphQL queries to any Twig template, which will be picked up during rendering and used to populate the template with data.

A simple example node.html.twig:

{#graphql query($node: String!) { node:nodeById(id: $node) { title:entityLabel ... on NodeArticle { body { processed } } } } #} <h1>{{ graphql.data.node.title }}</h1> {% if graphql.data.node.body %} <div class="body">{{ graphql.data.node.body.processed }}</div> {% endif %}

 

This is already enough to pull the information we need and render it. Let’s have a look at what this does:

The graphql comment on top will be picked up by the module. When the template is rendered, it tries to match the queries input arguments to the current template variables, runs the GraphQL query and passes the result as a new graphql variable to the template. Simple as that, no preprocessing required. It works for every theme hook. Be it just one complex node type, an exceptional block or page.html.twig.

Imagine we use GraphQL Views to add a contextual GraphQL field similarArticles that uses SOLR to find similar articles for a given node. It could be used immediately like this:

{#graphql query($node: String!) { node:nodeById(id: $node) { title:entityLabel ... on NodeArticle { body { processed } similarArticles { title:entityLabel url:entityUrl { alias } } } } } #} <h1>{{ graphql.data.node.title }}</h1> {% if graphql.data.node.body %} <div class="body">{{ graphql.data.node.body.processed }}</div> {% endif %} {% if graphql.data.node.similarArticles %} <h2>Similar articles</h2> <ul> {% for article in graphql.data.node.similarArticles %} <li> <a href="https://www.amazeelabs.com/%7B%7B%20article.url.alias%20%7D%7D">{{article.title}}</a> </li> {% endfor %} </ul> {% endif %}

 

The module even scans included templates for query fragments, so the rendering of the “similar article” teaser could be moved to a separate component:

node.html.twig {#graphql query($node: String!) { node:nodeById(id: $node) { title:entityLabel ... on NodeArticle { body { processed } similarArticles { ... NodeTeaser } } } } #} <h1>{{ graphql.data.node.title }}</h1> {% if graphql.data.node.body %} <div class="body">{{ graphql.data.node.body.processed }}</div> {% endif %} {% if graphql.data.node.similarArticles %} <h2>Similar articles</h2> <ul> {% for article in graphql.data.node.similarArticles %} <li> {% include 'node-teaser.twig' with { node: article } %} </li> {% endfor %} </ul> {% endif %}

 

node-teaser.twig {#graphql fragment NodeTeaser on Node { title:entityLabel url:entityUrl { alias } } #} <a href="https://www.amazeelabs.com/%7B%7B%20node.url.alias%20%7D%7D">{{node.title}}</a>

 

No preprocessing, a clear path where data flows and true separation of concerns. The backend provides generic data sources (e.g. the similarArticles field) that can be used by the product development team at will. All without the cost of a fully decoupled setup. And the possibility to replace single theme hooks allows us to use existing Drupal rendering when it fits and switch to the pull-model wherever we would have to use complex layout modules or preprocessing functions to meet the requirements of the project.

Future development

There are some ideas for additional features, like mutation based forms and smarter scanning for query fragments, but first and foremost we would love to get feedback and opinions on this whole concept. So if you are interested, join on Slack or GitHub and let us know!

Musik, Filme und Spiele bis zu 33 Prozent günstiger: Rabatte von Saturn und Amazon im Vergleich

heise online Newsticker - 15. Januar 2018 - 11:30
Bei Saturn und Amazon gibt es bis Samstag, den 13. Januar 2018, eine Aktion "Nimm 3, zahl 2" in den Bereichen Spielen, Filme und Musik. Prinzipiell können Kunden also bis zu einem Drittel sparen. Aber wie sieht das im Vergleich aus?

Open-Source-Tool zum Signieren von npm-Paketen veröffentlicht

heise online Newsticker - 15. Januar 2018 - 11:30
Das australische Spieleentwicklerkollektiv Redpoint hat mit pkgsign ein Kommandozeilenwerkzeug herausgegeben, mit dem sich npm-Pakete signieren und verifizieren lassen. Hintergrund sind erneute Probleme mit verschwundenen Paketen.

Smartwatches von Skagen und Kate Spade

heise online Newsticker - 15. Januar 2018 - 11:00
Die Fossil Gruppe setzt schon länger bei einigen Marken auf Smartwatches mit Android Wear. Nun kommen neue Modelle von Skagen und Kate Spade hinzu.

VR-Headset Pimax 8K ausprobiert: Schön scharf, aber ansonsten nicht so schön

heise online Newsticker - 15. Januar 2018 - 10:30
Das VR-Headset Pimax 8K sorgt seit seiner Ankündigung für Furore unter qualitätsbewussten VR-Fans. Wir haben einen aktuellen Prototyp der vermeintlichen Zauber-Brille auf der CES ausprobiert.

Horizons-Mission: Alexander Gerst leitet erstmals ISS

heise online Newsticker - 15. Januar 2018 - 9:00
Mit seinen Fotos und Botschaften aus dem All begeisterte Alexander Gerst 2014 selbst Menschen, die sich sonst kaum für Raumfahrt interessieren. Nun startet "Astro-Alex" erneut zur Raumstation ISS – diesmal sogar als Chef der Crew.

Selfly: Smartphone-Hülle und Drohne in einem

heise online Newsticker - 15. Januar 2018 - 8:30
Die Mini-Drohne Selfly lässt sich so kompakt zusammenklappen, dass sie hinter ein Smartphone geklemmt werden kann. So ist sie immer dabei, um spektakuläre Selfies mit der integrierten Kamera zu schießen.

Autonome Autos: Parkkosten zu meiden verursacht wenig Verkehr

heise online Newsticker - 15. Januar 2018 - 8:30
Statt teuer in der Innenstadt zu parken, könnten selbstfahrende Autos in Gratis-Parkzonen fahren. Die City bräuchte kaum noch Parkraum. Der zusätzliche Verkehr wäre überschaubar, wie eine Simulation ergeben hat.