Archiv der Kategorie: Allgemein

typo3 extension builder missing extension root storagepath in folder select

If you can not save your new created extension to a correct path then maybe a additional first entry in your project composer.json is needed.

"repositories": 
  [ 
    { "type": "path", "url": "./packages" },
    ...
    ...
  ]

There will be now a „root“ storagePath an the extension could be saved in the correct location. In my case without this config it would be accidently saved nested into the folder of another extension.

TYPO3 Version
10.4.23 composer mode

Extension Builder Version:
git v10.0.3

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.

ZF2: Custom ZfcTwig Extension unter Zend 2

Notizen zu einer exemplarischen Twig Extension unter ZF2 &ZfcTwig:

Klasse anlegen z.B. unter Application/src/Application/View/CustomTwigExtension.php

<?php

// http://stackoverflow.com/questions/28254666/twig-add-filter

namespace Application\View;

use Twig_Extension;
use Twig_SimpleFilter;
use Twig_SimpleFunction;

class CustomTwigExtension extends Twig_Extension
{
    public function getFilters() {
        return [new Twig_SimpleFilter('ucfirst', 'ucfirst') ];
    }
    public function getName() {
        return "CustomTwigExtension";
    }
    public function getFunctions() {
        return [new Twig_SimpleFunction('renderimg', function ($picture, $width = 100, $height = 100) {
            $filename = basename($picture);
            
            return '<img src="' . $filename . '" width="' . $width . '" height="' . $height . '" />';
        }
        , array(
            'is_safe' => array(
                'html'
            )
        )) ];
    }
}

Custom Extension in config/autoload/global.php registieren:

<?php
/**
 * Global Configuration Override
 *
 * You can use this file for overriding configuration values from modules, etc.
 * You would place values in here that are agnostic to the environment and not
 * sensitive to security.
 *
 * @NOTE: In practice, this file will typically be INCLUDED in your source
 * control, so do not include passwords or other sensitive information in this
 * file.
 */

return array(
	'zfctwig' => [
	      'extensions' => [
	            'Twig_Extension_Debug',

	            // Custom Twig Extension registrieren
	            \Application\View\CustomTwigExtension::class,
	      ],
	      'environment_options' => array(
	            'debug'         => false
	      )
	],
);

Verwendung im Twig Template

{{ renderimg('test.jpg', 100, 100) }}

 

 

JavaScript: Emscripten unter OS X installieren

Der letze Beitrag hat es schön gezeigt, wie schnell man in die Tiefen der Technik abdriften kann ;-) Um an diesen anzuknüpfen geht es nun darum Emscripten auf Mac OS X zu installieren.

In der Tutorial Sektion ist ein Gist enthalten mit dem es wirklich sehr einfach ist Emscripten zu installieren.

# Based on https://github.com/kripken/emscripten/wiki/Tutorial

# prerequisites
cd ~/
brew install node
sudo ln -s /usr/bin/python2.7 /usr/bin/python2
curl http://llvm.org/releases/3.2/clang+llvm-3.2-x86_64-apple-darwin11.tar.gz > llvm.tgz
tar xzvf llvm.tgz
ln -s clang+llvm-3.2-x86_64-apple-darwin11 llvm

# emscripten
git clone git://github.com/kripken/emscripten.git
cd emscripten
LLVM=~/llvm/bin ./emcc
LLVM=~/llvm/bin ./emcc tests/hello_world.cpp -o hello.html
open hello.html

Ein kleiner Blocker ist auch hier enthalten, da git nicht auf OS X vorhanden ist. Also bevor der Gist funktioniert vorher noch schnell den git-osx-installer herunterladen und installieren.

Wird das Gistfile über die Konsole mit sh gistfile1.sh aufgerufen ist dann ungefähr folgendes zu sehen. Am Schluß wird dann noch eine hello.html Seite geöffnet.

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 67.8M  100 67.8M    0     0   632k      0  0:01:49  0:01:49 --:--:--  639k
x clang+llvm-3.2-x86_64-apple-darwin11/
x clang+llvm-3.2-x86_64-apple-darwin11/bin/
...
...
...
...
...
x clang+llvm-3.2-x86_64-apple-darwin11/share/man/man1/
x clang+llvm-3.2-x86_64-apple-darwin11/share/man/man1/clang.1
Cloning into 'emscripten'...
remote: Finding bitmap roots...
remote: Counting objects: 46622, done.
remote: Compressing objects: 100% (15932/15932), done.
remote: Total 46622 (delta 30419), reused 46395 (delta 30205)
Receiving objects: 100% (46622/46622), 87.13 MiB | 641.00 KiB/s, done.
Resolving deltas: 100% (30419/30419), done.
Checking connectivity... done

==============================================================================
Welcome to Emscripten!

This is the first time any of the Emscripten tools has been run.

A settings file has been copied to ~/.emscripten, at absolute path: /Users/csg/.emscripten

It contains our best guesses for the important paths, which are:

  LLVM_ROOT       = /usr/bin
  PYTHON          = /usr/bin/python2
  NODE_JS         = /usr/local/bin/node
  EMSCRIPTEN_ROOT = /Users/csg/emscripten

Please edit the file if any of those are incorrect.

This command will now exit. When you are done editing those paths, re-run it.
==============================================================================

INFO     root: (Emscripten: Running sanity checks)

Emscript sollte nun erfolgreich installiert sein. Der nächste Beitrag erscheint Asap.

Java: Database Publishing System Update 4

Es ist mal wieder Zeit für ein kleines Update. Qusa wie mein Programm nun genannt wird ist fast fertig. Dieses soll als eigenständiges Modul funktionieren und am Ende fertige Quarkdateien und PDFs erzeugen. Dieses muss noch ausgiebig getestet werden. Zu überlegen ist auch ob die Scripts auch für QXP 8 angepasst werden sollten. Leider hat mich Quark mit der neuen Version überholt ;-(

Eine passende Domain wurde auch schon registriert. Nur leider hatte ich noch keine Zeit diese Seite aufzubauen.

Mal abgesehen von der Domain gibt es neben dem Mac & Quark Part auch noch einiges in PHP zu programmieren, denn die finalen Scripts zum erstellen der Dokumente soll PHP nach erhalt einer XML Datei erzeugen. Wie die Übergabe genau ablaufen soll (als Hotfolder, Webservice oder Cronjob) steht noch nicht fest. Es gibt wieder einiges was neu gelernt werden muss….

Wie immer more to come….

Java: Database Publishing System Update 3

Kurzer Zwischenstand: In der Zwischenzeit habe ich mich mit Applescript in Verbindung mit QuarkXpress vertieft und habe ein Templatesystem entwickelt das Musterseiten oder Templates in eine Datenbank speichert. Dieses befindet sich in den Endzügen. Leider fehlt etwas die Motivation dieses weiter zu entwickeln bzw. zum Ende zu bringen. Dummerweise war der Versionssprung von QXP von 7 auf 8. Die Dokumentstruktur die über Applescript ansprechbar ist, hat sich nur marginal geöndert. Es kostet aber wieder Zeit diese Neurungen mit zu berücksichtigen.

Die Idee mit Java ein eigenes CMS zu entwickeln ist im Moment etwas in den Hintergrund gerutscht. Der Grund dafür ist mein Kontakt zu Typo3. Typo3 ist ein komplettes CMS mit sömtlichen Features(Userverwaltung, Versionierung, Mehrsprachigkeit, etc.), man muss das Rad ja nicht neu erfinden. Vielleicht kann man mit einer Extension für Typo3 eine Art Produkt- und Printplanung realisieren die dann auf mein Templatesystem zugreifen.

Java: Database Publishing System Update 1

Netbeans 6.0 ist raus und Apple hat auch das Developerpreview 9 von Java 6 SE zur Verfügung gestellt. Erfreulicherweise bietet Java 6 SE Unterstützung für Applescript über javax.script.*. Interessante Neuigkeiten wie ich meine. Ein Umstöndlicher weg über eine JNI-Library und Objective-C kann somit vermieden werden. Ich hoffe genügend Zeit dafür zu haben mein Vorhaben auf Netbeans und Java 6 umzusetzen. Das Projekt liegt leider seit einem Jahr brach ;-(