Alle Beiträge von Christian Sonntag

OS X Yosemite: WebStorm unter Yosemite startet nicht

webstorm-yosemite-2
Paketinhalt anzeigen => Info.plist

Erster kleiner Schreck nach dem Update auf OS X Yosemite. Meine geliebte WebStorm IDE startet nicht mehr.
Doch es war schnell eine Lösung dazu zu finden. Der einfachste fix ist sich mit einem Rechtsklick auf das WebStorm App Icon den Paketinhalt zeigen zu lassen.

Anschließend öffnet man die Info.plist und sucht den Teil JVMOptions > JVMVersion und ändert den String von  1.6* auf 1.7*. Die Änderung speichern und schon läuft WebStorm wieder wie gewohnt.

 

webstorm-yosemite-3
JVMOptiions => JVMVersion => String auf „1.7*“ ändern

TYPO3: RTE – Javascript in href nutzen

Manchmal möchte man gerne anstatt der zur Verfügung stehenden Linkmöglichkeiten des Wizards in RTE direkt eine Javascript Funktion aufrufen.

Wechselt man z.B. im Textelement im RTE in die HTML Ansicht, kann unten stehendes Markup einkopiert werden. Mit den zusätzlichen Attributen lässt der RTE das href Attribut in Ruhe und lässt dieses so wie es ist.

<a href="javascript:mySuperFunc()" data-htmlarea-external="1" rtekeep="1">JS href link in RTE</a>

 

Phalcon: Phalcon mit Vagrant und Virtualbox auf OS X

Hier beschreibe ich kurz wie man den Phalcon in einer Vagrantbox unter Max OS X zum fliegen bekommt. Im ersten Schritt müssen Virtualbox und Vagrant installieren werden.

Dann legt man sich einen Ordner an in dem man die Vagrantbox starten will, z.B. /Users/MEINUSERNAME/Vagrant/phalcon/.

Anschließend in diesen Ordner wechseln und folgende Zeile von der Phalcon Seite eingeben:

vagrant init phalconbox https://s3-eu-west-1.amazonaws.com/phalcon/phalcon125-apache2-php54-mysql55.box

Nach diesem Befehlt ist in dem Ordner eine Datei „Vagrantfile“ zu finden. In dieser muss diese Zeile einkommentiert werden.

config.vm.network "forwarded_port", guest: 80, host: 8080

Wer noch weiter in Vagrant abtauchen will kann hier noch weitere Einstellungen vornehmen. Dazu aber später noch mehr. Nun starten wir die VM mit:

vagrant up

Beim ersten Aufruf kann dies ein wenig länger dauern da die VM komplett neu installiert wird. Aktuell wird Ubuntu 12.04, Apache 2.2, Phalcon 1.2.5, PHP 5.4.23, MySQL 5.5 dort installiert.

Am Ende sollte nun dies in der Konsole zu sehen sein.

==> default: Machine booted and ready!

Gibt man nun im Terminal vagrant ssh ein ist man per ssh auf der Konsole in der VM angemeldet. Im Browser ist die VM unter http://localhost:8080 zu erreichen. Wenn dies auf Anhieb klappt kann der nächste Befehl übersprungen werden, falls die Seite nicht erreichbar ist muss dieser ausgeführt werden um die Firewall für Vagrant freizuschalten.

sudo ipfw add 80 fwd 127.0.0.1,8080 tcp from any to me 80

Nach der Eingabe von http://localhost:8080/info.php sollte die Liste von phpinfo() erscheinen. Desweiteren sind noch zwei weitere kleine Demo Applikationen in /var/www zu finden.

phalcon-localhost-8080

Wichtig ist auch dass der aktuelle Ordner in dem die Vagrant VM gestartet wurde, ein Shared Folder ist der  in der VM unter dem Ordner vagrant im Rootverzeichnis liegt. Als letztes Schmankerl könnte man im Vagrantfile den Sharedfolder auf /var/www konfigurieren. Die Dateien können lokal am Host bearbeitet werden. In der VM liegen diese in /var/www und werden vom Webserver ausgeliefert. Im Vagrantfile kann dies wie folgt aussehen:

  config.vm.synced_folder "./", "/var/www"

Anbei ein kleiner Beweisscreenshot dass es funktioniert. Die Ausgabe ist die gleiche wie im Screenshot oberhalb.

vagrant-shared-folder-var-www

Mit vagrant suspend kann die VM beendet und mit vagrant reload  neu gestartet werden.

Mit Vagrant stehen sicher noch weitere Möglichkeiten zur Verfügung, aber fürs erste sollte dieses Setup als Entwicklungsumgebung für Phalcon unter OS X ausreichen.

Ubuntu: Ubuntu auf Minix Neo X7 Mini nutzen

Die Minix Neo mini TV Boxen fand ich schon immer cool! Und noch viel cooler fand ich wenn man auch alternativ Ubuntu darauf nutzen könnte. Dank fleißigen Linuxern ist die jetzt möglich ;-)

Einfach ein entsprechendes Image für die TV Box herunter laden und auf eine SD-Karte schreiben. Beispielhaft beschreibe ich das für Mac OS X.

# Laufwerke auflisten und SD Karte ermitteln
diskutil list

# unmount SD Karte
diskutil unmount /dev/disk2

# image auf SD Karte schreiben
dd if=/Users/csg/Downloads/linux-sdcard-minix-neo-x7-v1.24-sdboot.img of=/dev/disk2

Das Schreiben des Images auf die SD Karte dauert ein bisschen. War dies erfolgreich kann die SD Karte einfach in die Minix Neo Box eingelegt und direkt davon gebootet werden. Die genaueren Schritte werden in dem genannten Link oben erklärt, ich liste diese aber trotzdem noch einmal hier mit auf.

# linuxium user password
p

# Partition auf komplette SD Kartengröße vergrößern, dann neu starten
echo -e "d\nn\np\n1\n81921\n\nw" | sudo fdisk /dev/mmcblk0

# nach dem reboot
sudo resize2fs /dev/mmcblk0p1

# Mail Beschleunigung aktivieren
sudo mv /usr/lib/arm-linux-gnueabihf/mesa-egl /usr/lib/arm-linux-gnueabihf/xmesa-egl

Quelle(n):

Easiest way to try Linux

Easy and Safe Way to Try Linux on Popular Rockchip RK3188 mini PCs

Typoscript: csc stdWrap abhängig von CType entfernen

Ist zwar Abartig, aber es geht ^^ Hier ein paar Beispiele.

tt_content.stdWrap.innerWrap.cObject.default.if {
  equals.field = CType
  value = fluidcontent_content
  negate = 1
}
tt_content.stdWrap.innerWrap.cObject.default.if {
  equals.field = CType
  value = gridelements_pi1
  negate = 1
}
# unnötigen csc-default wrap um Inhaltselement Verweis entfernen
tt_content.stdWrap.innerWrap.cObject.default.if {
  equals.field = CType
  value = shortcut
  negate = 1
}

 

Monkey-X: Yame – yet another monkey editor ;-)

yame-editor-monkeyIch hatte Zeit und Lust einen Editor oder eine mini IDE für Monkey-X zu schreiben. Dieser verwendet als Basis das MacGap Projekt. Um Zugriff auf das lokale Dateisystem zu bekommen wurde dieses von mir leicht modifiziert. MacGap selbst ist ähnlich zu PhoneGap ein HTML5 Wrapper in dem HTML5 Anwendungen auf dem Desktop laufen können.

Als Herz des Editors kommt ACE zum Einsatz, dieser wurde um einen neuen Highlighting Modus für Monkey erweitert. Codefolding wäre theoretischer weise möglich, aber da steige ich ganz ehrlich gesagt gerade nicht ganz durch ;o)

Ziel war es die Mac typischen Shortcuts und Drag’n’Drop Funktionalität zu haben und den Editor selbst minimalistisch zu halten. Dieser wurde von mir auf den  Name (yet another monkey editor) getauft ;-)

Download:
https://www.motions-media.de/developing/yame/Yame.app.zip

Sources:
http://github.com/samowitsch/macgap/tree/yame
http://github.com/samowitsch/ace/tree/monkey

Monkey-X: Game Template

Import mojo
Function Main()
	New Game
End

Class Game Extends App

	'summary:The OnCreate Method is called when mojo has been initialized and the application has been successfully created.
	Method OnCreate()
	
		'Set how many times per second the game should update and render itself
		SetUpdateRate(60)
	
	End
	
	'summary: This method is automatically called when the application's update timer ticks. 
	Method OnUpdate()
		
	End
	
	'summary: This method is automatically called when the application should render itself, such as when the application first starts, or following an OnUpdate call. 
	Method OnRender()
		
	End

	'summary: This method is called instead of OnRender when the application should render itself, but there are still resources such as images or sounds in the process of being loaded. 
	Method OnLoading()
		
	End
	
	'summary: This method is called when the application's device window size changes. 
	Method OnResize()
		
	End
	
	'#REGION Code to handle susped status of the game goes here
	
	'summary: OnSuspend is called when your application is about to be suspended. 
	Method OnSuspend()
	
	End
	
	'summary: OnResume is called when your application is made active again after having been in a suspended state. 
	Method OnResume()
		
	End	
	'#END REGION
	
	'#REGION Code to handle game closing goes here:
	
	'summary: This method is called when the application's 'close' button is pressed. 
	Method OnClose()
		Super.OnClose()
	End

	'summary:This method is called when the application's 'back' button is pressed. 
	Method OnBack()
		Super.OnBack()
	End
	
	'#END REGION

End

Quelle: Template

Monkey-X: Template Command line tool

Import commandlineapp

'summary: This is the command line tool starting point:
Function Main()	
	Local tool:= New CommandLineTool()
End

'summary: This class handles the launching and parameters of the command line tool
Class CommandLineTool Extends CommandLineApp

	'summary: This is called when the command line tool launches.
	Method New()
	
		#REM
		Notice there are several field defined in this class, such as assemblyLocation, assemblyName and  parameters.
			- Self.assemblyName contains the name of the tool executable file (IE. the EXE file in windows os)
			- Self.assemblyLocation contains the path in the filesystem where the tool is located.
			- Self.paramters is a string array with any parameter passed to the tool. If no parameter is present, this array is of length zero.
		#END
		
		'Place the command line tool code here:
		
	End

End
Import brl.filepath
Import os

'summary: This class handles the launching and parameters of the command line tool
Class CommandLineApp Abstract

	'summary: This field contains the name of this tool assembly. That is, in windows, the EXE file of this tool.
	Field assemblyName:String

	'summary: This field contains the location in the file system where this tool is stored.
	Field assemblyLocation:String

	'summary: This array of strings contains all the paramters passed to this command line tool from the terminal or console.<br>If none is passed, this array will be of length zero.
	Field parameters:String[]

	Method New()
	
		'this is the tool executable name (on windows, the EXE file name):
		assemblyName = filepath.StripDir(os.AppArgs[0])
	
		'This is the tool executable path, the folder where the assembly is located:
		assemblyLocation = filepath.ExtractDir(os.AppArgs[0])
		
		'We get the list of parameters
		parameters = os.AppArgs[1 ..]
	
	End

	'summary: Use this method to abruptly end current application.<br>The "success" parameter may be set to true or false depending of the cause of the tool being ended.
	Method EndApplication(success:Bool)
		If success Then os.ExitApp(0) Else os.ExitApp(-1)
	End
	
End

 

Quelle: Templates

Monkey-X: Monkey einmal ganz anders

Eigentlich wollte ich ein weiteres Gamereview über Monkey-X Entwicklungen schreiben, und nun kommt es komplett anders ;-)

Im Monkey-X Forum bin ich über folgenden Beitrag gestolpert in dem über eine App berichtet wird die Monkey nicht nutzt um ein Spiel zu programmieren. bodewo7 ist eine Präsentations-App für einen Bodenbelaghersteller die eindrucksvoll beweist wie man Monkey-X auch anders nutzen kann. Sehr gut umgesetzt mit Mojo und einer erweiterten Version des fantomEngine 2d Game Frameworks.

[slideshow_deploy id=’1493′]

Games: Tiny Thor für iOS

Und es geht wieder weiter im Reigen der Monkey X entwickelten Spiele. Dieses Spiel ist initial auf der Ludum Dare 28 entstanden und hat es dank Monkey-X mittlerweile in den iTunes App Store geschafft.

Bei Tiny Thor handelt es sich ebenfalls um einen Retro-Plattformen wie z. B. Bloo Kid 2. Es gilt Thor durch diverse Welten zu steuern und als einzige Waffe steht dessen Hammer zur Verfügung, und nur dieser eine Hammer! Ist dieser verloren ist ein weiter kommen recht schwer. Mit diesem gilt es Wände, Decken, etc.  zu zertrümmern um im Level weiter zu kommen, oder Gegner aus dem Weg zu räumen.

Das kostenlose Spiel kann über InApp-Käufe um weitere Features erweitert werden bzw. die sehr prägnanten Werbeeinblendungen können entfernt werden. Jeder Jump’n’Run Fan sollte einen Blick auf Tiny Thor werfen.

[slideshow_deploy id=’1449′]