Alle Beiträge von Christian Sonntag

Batocera XBOX convert ISO <>XBE folder

Needed Windows console tool is:

extract-xiso.exe

Use following commands to convert to needed files:

./extract-xiso.exe -x ./gamename.iso

Option -x will convert a iso image to an game folder with XBE files.

./extract-xiso.exe -c ./gamenamefolder

Option -c will convert a XBE game folder back to iso image

Note: not tested yet in fact i have no Windows ;o)

Update: extract-xiso can easily compiled from source. Just look into the XboxDev/extract-xiso github repository.

Setup SSH connect to Dreambox DM800 HD PVR

Nach etwas längerer Zeit musste ich mich wieder auf meine alt gewordene Dreambox DM800 HD PVR verbinden.
Für eine erfolgreiche Verbindung musste ich folgende Konfig in meine ~/.ssh/config mit aufnehmen.

Host dreambox
	Hostname YOUR.LOCAL.IP.ADDRESS
	User root
	KexAlgorithms +diffie-hellman-group1-sha1
	Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc

Evtl. ist dieser Beitrag auch bei anderen Fällen hilfreich beim Fehler:

no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

xdebug mit Vagrant und PHPStorm funktioniert nicht unter OS X

Webentwicklung mit xdebug und vagrant ist eine feine Sache, wenn das debuggen denn funktioniert. Manchmal kann es sein dass xdebug aus dem vagrant client den Port 9000 des Hosts z.B. unter OS X nicht aufrufen kann.

Normalerweise sollte auf der Konsole des Hosts, in meinem Fall OS X, mit dem Befehl lsof -i tcp:9000 am Port 9000 PHPStorm lauschen.

$ sudo lsof -i tcp:9000
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
phpstorm 3023  csg  298u  IPv4 0x4a2aff906abe6a2b      0t0  TCP *:cslistener (LISTEN)
Dort aber waren drei (?) php-fpm Prozesse die den Port 9000 für sich beschlagnahmt haben…
COMMAND  PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
php-fpm 1155  csg    6u  IPv4 0x4a2aff9067aa1133      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 1186  csg    0u  IPv4 0x4a2aff9067aa1133      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 1187  csg    0u  IPv4 0x4a2aff9067aa1133      0t0  TCP localhost:cslistener (LISTEN)

Leider konnte ich nicht genau nachvollziehen woher diese kamen. Ich hab diese beendet und PHPStorm konnte wieder erfolgreich seinen Dienst aufnehmen.

Evtl. waren diese von OS X selbst? Oder lags am MAMP Pro der hin und wieder zum Einsatz kommt?

CNC: Makercam mit Affinity Designer nutzen

Wer eine kleine CNC Portalfäse besitzt, dem wird http://www.makercam.com sicher bekannt sein (dieses Tool basiert leider auf Flash und ist hoffentlich noch länger nutzbar. Mit dem Auslaufen der Flash Unterstützung im Browser muss man sich aber früher oder später nach einem anderen Tool umsehen oder sich zumindest die SWF Datei lokal auf Festplatte wegspeichern).

Mit makercam können aus 2D SVG Vektordateien Fräsdateien im GCODE Format berechnet und exportiert werden. Folgend will ich kurz den Workflow mit Affinity Designer beschreiben.

Im Affinity Designer ist es wichtig, dass unabhängig von dem eigentlich Fräsergebnis, die Dokumentenabmessungen für Länge und Breite im Affinity Desginer immer identisch sein müssen (sprich 1:1)! Ist dies nicht der Fall geht in makercam die korrekte Proportion verloren.

Hier im Beispiel ist gut zu sehen dass die Abmessungen im Affinity Designer größer sind als das final zu  fräsende Endergebnis.

Am Schluss muss für makercam noch eine SVG Datei gespeichert werden. SVG für Web ist vollkommend ausreichend.

Bevor man die Datei in Makercam lädt, muss die SVG Import Default Resolution (px/inch) in Edit Preferences eingestellt werden. Für Illustrator und Inkscape sind in dem Dialog entsprechende Defaultwerte zu finden. Für Affinity Designer muss hier 182.88 eingegeben werden.

Nun kann das Affinity Design SVG geladen werden. Auf alle Fälle sollte anhand des Rasters in makercam noch mal die Größe (=> Default Resolution) und Proportion (=> Affinity Design Dokumentenabmessungen) überprüft werden.

Ist alles korrekt kann man wie gewohnt in makercam mit profile, pocket, follow, drill, usw. definiert werden wie gefräst werden soll.

Einem finalen Fräsen steht nun nichts mehr im Weg ;-)

Als Beispiel siehe iPhone/iPad mini Kombiständer.

Erfahrungsbericht zu SSD 480GB Aura >Mid 2013

Hier ist ein kurzer Erfahrungsbericht zur SSD 480GB Aura >Mid 2013 von OWC. Ich stand vor der Entscheidung zwei Rechner zu konsolidieren, einen Mac mini 2012 und ein Macbook Air 13 2015.
Der Mac mini war schon immer mein Hauptrechner, das Macbook Air für unterwegs. Mit der Zeit kam der Wunsch alle Daten auf einen mobilen Rechner zu haben, also entschied ich mich das Macbook Air von der original 256 SSD upzugraden um die Daten von der 480 SSD vom Mac mini komplett übernehmen zu können.

Die Auswahl an SSD Upgrades für das Macbook Air ist sehr dünn. Außer der OWC SSD 480GB Aura >Mid 2013 war mir zu dem Zeitpunkt keine andere Möglichkeit bekannt.

Trotz des sehr sportlichen Preises der SSD 480GB Aura habe ich mich entschieden diese zu kaufen.

Der Einbau ist in meinen Augen einfach, die beiliegenden Torx Schraubendreher sind unbedingt nötig. Die interne SSD wird dann im Anschluss in das USB 3 SSD Alu Case eingebaut das im Kit mit dabei ist.

Mein Fazit:
+ Leichter Einbau
+ Qualität der Teile und beigelegte Schraubenzieher.
o gesunkene Batterielaufzeit
– sehr hoher Preis
– geringere SSD Performance
– es werden nur 2 PCIe Lanes der möglichen 4 genutzt
– die SSD Aura selbst kann NICHT in dem externen Gehäuse eingebaut werden, WTF!?

Ich habe zwar meine Daten komplett auf mein Macbook Air 13 2015 übernehmen können, bin aber nicht wirklich zufrieden damit.

Für einen extrem hohen Preis habe ich nun eine SSD die nur mit halber Performance arbeitet, quasi mit angezogener Handbremse arbeitet. Insgesamt sehr ärgerlich. Nur diese Info war natürlich auf der OWC Homepage nicht zu finden ;-(

Pimcore: Erste Schritte – ein Selbstversuch

Als langjähriger TYPO3 Entwickler/Integrator habe ich schon einige Projekte umgesetzt und musste mich intensiv mit TYPO3 auseinandersetzen. Mit NEOS bin ich noch nicht so ganz warm geworden.

Ich kannte Pimcore schon länger. Die Features sahen vielversprechend aus und eine Testinstallation mit Blick ins Pimcore Backend hatten das Interesse bei mir geweckt. Es fehlte nur ein Projekt um Pimcore intensiver auszuprobieren, sich etwas einzuarbeiten. Und es hat sich ein Projekt ergeben ;-)

Benötigte Kenntnisse
Für Pimcore werden Kenntnisse in PHP und dem Zend Framework benötigt. Im Frontend wird PHP fürs Templating verwendet. Kenntnisse in CSS und Javascript sind natürlich obligatorisch ;-)

Installation
Die Installation geht schnell von der Hand. DB Verbindung eingeben, evtl. noch schnell einen Blick in die sehr übersichtliche Darstellung des System Requirements Checks, ersten User anlegen, und fertig.

Backend
Das Backend ist sehr übersichtlich in zwei Spalten eingeteilt. Was mir dabei besonders gefällt ist dass die drei wichtigsten Bereiche Documents, Assets und Objects in der ersten Spalte mit jeweils eigenen Pagetree in einer Art Akkordion zu erreichen sind.
In der zweiten Spalte werden alle möglichen Documents, Assets, was auch immer in mehreren Tabs angezeigt. Es können z.B. mehrere Documents parallel geöffnet bleiben. Speziellere Dinge sind im Menü ganz links enthalten.

pimcore-object-classes
Pimcore Backendansicht: Links separate Pagetrees für Documents, Assets und Objects. Rechts parallele Bearbeitung mittels Tabs.

Templating
Das Templating geschieht mit Zend. Jeder Seite kann ein Controller mit einem definiertem Template zugewiesen werden. Hier wird keine spezielle Templating Engine genutzt, wie z.B. Twig oder Fluid, sondern schlichtweg einfach PHP selbst. Ich persönlich finde, dass dies kein Nachteil ist. Ist halt Geschmackssache und auch wieder ein kleiner Overhead der entfällt.
In den Seitentemplates können mit so genannten Editables Eingabefelder bzw. Contentbereiche für Contentelemente definiert werden die dem Redakteur zur Verfügung stehen. Im Pimcore Backend kann die Seite in einer fast WYSIWYG Darstellung editiert werden. In einem Tab daneben gibt es die richtige Preview der Webseite.

Content Elemente
Content Elemente heissen Areablocks bzw. Bricks. Diese werden über eine Templatedatei definiert die wiederum Editables enthalten.
So können sehr kurz und transparent Contentelemente angelegt werden.

Image handling und Thumbnails
Im Backend können Workflows mit mehreren Transformations für Bilder und sogar Videos angelegt werden. Dabei kann das Bildformat sowie die Auflösung bis hin zu Printmedien eingestellt werden. Diese Thumbnail Konfigurationen können in den Templates mittels PHP aufgerufen und auf Assets angewendet werden, entsprechende Bilder werden dann generiert.

pimcore-thumbnails
Pimcore: Bilder Workflows über Thumbnails.

Klassen und Objekte
Für Inhalte die über normale Contentelemente hinausgehen wie z.B. News oder Produkte können Objekte und Klassen im Pimcore Backend angelegt werden. Über eine Art Formbuilder können Eingabefelder (Text, RTE, Bilder, Relationen, usw.) festgelegt werden die z. B. für ein Newsbeitrag benötigt werden.
Die dazu gehörigen PHP Klassen und MySql Tabellen werden automatisch angelegt. Die Objekte können im Controller instanziert und an die View übergeben werden.
Mit ein bisschen Übung ist schnell eine List- und Detailview realisiert.

Routing und static Routes
Das Routing ergibt sich automatisch über den Seitenbaum. Und jeder Seite ist auch letztendlich ein Controller zugewiesen. Somit ergibt sich auch automatisch aus dem Seitenbaum die finale Speakingurl.
Darüber hinaus können mit static Routes mittels  Regex Patterns Pfadsegmente definiert werden die als Parameter an den Controller übergeben werden.

pimcore-static-routes
Pimcore: Static Routes sind über Patterns definierbar.

Formulare
Mit Zend Forms können Formulare im Controller genutzt werden.

Fazit
Nach meinem kleinen Ausflug in die Pimcore Welt bin ich sehr positiv überrascht. Leider (Schande über mein Haupt ;-) habe ich nur einen direkten Vergleich zu TYPO3 und mit WordPress mache ich zu wenig obwohl diese Seite WordPress nutzt.

Vieles unter Pimcore ist erfrischend einfach zu erledigen, und viele Dinge sind in Pimcore out-of-the-box mit dabei. Und ich habe beileibe in diesem kurzen Beitrag und auch Projekt, die vielen weiteren Features noch gar nicht genutzt (Plugins, Web2Print, User & Rechte, SEO, Newsletter, Rest API, Backend Eventhandling, Personalisierung, Targeting). Einfach bemerkenswert was alles in Pimcore enthalten ist. An anderer Stelle muss ich dafür einige Plugins für diesen Funktionsumfang installieren, falls es überhaupt welche gibt.

Aus Sicht des Redakteurs ist das Backend sehr intuitiv zu nutzen. Mehrere Dokumente können parallel geöffnet bleiben und bearbeitet werden. Dabei macht es keinen Unterschied ob es sich dabei um ein Document (Website), Asset oder Objects handelt.
Hovert man über einen Asset folder werden die darin enthaltenen Medien rekursiv über alle Unterordner als Thumbnail dargestellt. Über einem Document wird eine Preview der gesamten Website angezeigt.

pimcore-asset-thumbnails
Pimcore: Thumbnails für alle Assets. Rekursiv über alle Unterordner.

Es gibt sogar die Möglichkeit mit Deeplinks bis ins Backend hinein gezielt eine Seite im Backend anzuzeigen.

Aus Sicht des Integrators, wie gesagt, ist vieles einfach und schnell umgesetzt. Und dies ohne Konfigurationsorgie. Aufgrund des Funktionsumfanges dürfte es auch nicht nötig sein weitere Extensions/Plugins zu installieren. Abhängigkeiten zu Plugins und deren Weiterentwicklung werden damit minimiert.

Aus PHP Entwicklersicht denke ich, dass sich jeder der sich mit dem Zend Framework oder MVC beschäftigt hat schnell zurecht findet. Composer ist auch mit an Bord was will man mehr ^^

Cons
Einen kleinen Wermutstropfen gab es allerdings doch. Pimcore nutzt MySql Features (CREATE ALGORITHM…) die z.B. bei kleineren 1&1 Hostingpaketen nicht enthalten sind. Im Test auf meinem Alfahosting Paket konnte ich Pimcore erfolgreich testen, final bei 1&1 schlug dies fehl.