Montag, 20. August 2018

Ein Anfang: Der Weg zum eigenen Brettspiel

Es ist gerade eins dieser tropischen Sommernächte die ich so liebe. Ich liege auf der Mauer im Park. Der Mondschein prasselt auf mich nieder.
Seit Tagen verfolgt mich eine Manie: Ich möchte ein Brettspiel veröffentlichen. So richtig mit allen drum und dran. Mein Traum ist es irgendwann die Spielebox in den Händen zu halten - mit einem Barcode und der Warnung: "Kleine Teile könnten verschluckt werden".
Jetzt, hier auf der Mauer, ist mir die Erkenntnis gekommen, dass dies kein leichtes und schnelles Unterfangen wird. Es wird harte Arbeit. Richtig harte Arbeit.

Ich lese auf meinem Smartphone die Leseprobe von "A Crowdfunder's Strategy Guide" von Jamey Stegmaier. Im ersten Kapitel steht geschrieben dass man über etwas bloggen soll das einen begeistert.

Heute - der 20.08.2018 - startet der lange Weg. Ich starte diesen Blog - und möchte hier über meinen Traum erzählen: Wie ich mit Hilfe von Kickstarter meine Spielidee umsetze und veröffentliche.

Samstag, 5. März 2011

Äusterst praktisch

Suche nach einer Datei
find . -name filename -print
Suche nach großen Dateien:
find / -size +1G -exec ls -l {} \;
100M, 2G, 500K, etc.

Tomcat 7 im Ubuntu 10.10 Server Edition

Da der buildin tomcat nicht läuft, muss ich doch einen eigenen aufsetzen:
Hier nach folgender anleitung:
http://www.howtogeek.com/howto/linux/installing-tomcat-6-on-ubuntu/

Richtigs Java installieren

Dafür benötigen wir http://archive.canonical.com/ in unsere 'apt/sources.list'.
Also fügen wir es dem hinzu:
$ sudo nano /etc/apt/sources.list
deb http://archive.canonical.com/ lucid partner
Und nun installieren:
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
Nun müssen wir noch die JAVA_HOME variable permanent setzen lassen.
In den beiden Dateien,
$ nano /home/tomcat/.bashrc
$ nano /home/michael/.bashrc
fügen wir folgendes hinzu:
export JAVA_HOME=/usr/lib/jvm/java-6-sun
Tomcat einrichten

Desweiteren möchte ich das mein Tomcat sein eigenes Homverzeichniss bekommt. Desshalb spendiere ich ihm einen eigenen User:
$ sudo adduser tomcat
Tomcat donloaden und entpacken
$ su tomcat
$ wget http://apache.openmirror.de/tomcat/tomcat-7/v7.0.8/bin/apache-tomcat-7.0.8.tar.gz$ tar xvzf apache-tomcat-7.0.8.tar.gz
Nun möchte ich dass Tomcat als 'Dienst' verwendet werden kann. Deshalb lege ich die folgende Datei an:
$ exit # user tomcat verlassen
$ sudo touch /etc/init.d/tomcat
$ sudo chmod 755 /etc/init.d/tomcat
$ sudo nano /etc/init.d/tomcat
# Tomcat auto-start
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid

export JAVA_HOME=/usr/lib/jvm/java-6-sun

case $1 in
start)
        sh /home/tomcat/apache-tomcat-7.0.8/bin/startup.sh
        ;; 
stop)   
        sh /home/tomcat/apache-tomcat-7.0.8/bin/shutdown.sh
        ;; 
restart)
        sh /home/tomcat/apache-tomcat-7.0.8/bin/shutdown.sh
        sh /home/tomcat/apache-tomcat-7.0.8/bin/startup.sh
        ;; 
esac    
exit 0

Dann benötigen wir noch ein paar Verknüpfungen:

$ sudo ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
$ sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat
Um Tomcat zu starten kann folgendes verwendet werden:
$ sudo /etc/init.d/tomcat start
Nach einem Neustart wird Tomcat nun ebenfalls automatisch gestartet. Dies man man testen mit:
$ sudo /etc/init.d/tomcat start
Und dem anschießenden Browser-Aufruf von:
http://deine-url:8080/

Maven2 mit Ubuntu

sudo apt-get install maven2
$ mvn -version
Apache Maven 2.2.1 (rdebian-4)
Java version: 1.6.0_20
Java home: /usr/lib/jvm/java-6-openjdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.35-22-generic" arch: "i386" Family: "unix"


/usr/bin/mvn
/usr/share/maven2/
/etc/maven2

Maven Konfiguration in /etc/maven2

ll /home/michael/.m2/repository/

Hudson in Tomcat

Hudson kann man als war downloaden und direkt im Tomcat ausführen lassen.

Welches gerade die aktuellste Version ist kann hier nachgeschaut werden:

http://java.net/nonav/projects/hudson/downloads/directory/war

Ich holde mir das gerade aktuelle hudson.war und verschiebe es in mein Tomcat-Webapp-Verzeichniss:

wget http://java.net/nonav/projects/hudson/downloads/download/war/hudson-1.393.war

sudo mv hudson-1.393.war /var/lib/tomcat6/webapps/hudson.war

Nun benötigt Hudson ein Arbeits-Verzeichniss mit genügend Rechten:

(http://wiki.hudson-ci.org/display/HUDSON/Containers)

mkdir /home/michael/hudson
chmod 777 /home/michael/hudson

Nun muss noch das Verzeichniss als HUDSON_HOME bekannt gegeben werden:
sudo nano /etc/default/tomcat6
JAVA_OPTS="-Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -DHUDSON_HOME=/home/michael/hudson/"

Jetzt noch den Tomcat neustarten:

$ sudo /etc/init.d/tomcat6 restart

Und nun die Hudson Web Console aufrufen:

http://deine-url:8080/hudson/

In hundson MAVEN_HOME setzen (in der web-consolen config)
/usr/share/maven2/

dann mercurial plugin installieren

User für Hudson anlegen:
sudo htpasswd -c /etc/hg/htpasswd hudson

lokales mavenrepo anpassen:
sudo nano /usr/share/maven2/conf/settings.xml
/usr/share/maven-repo/




[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
Unable to locate the Javac Compiler in:
  /usr/lib/jvm/java-6-openjdk/jre/../lib/tools.jar
Please ensure you are using JDK 1.4 or above and
not a JRE (the com.sun.tools.javac.Main class is required).
In most cases you can change the location of your Java
installation by setting the JAVA_HOME environment variable.


Hiermit kann man die java version wählen wenn man mehrere installiert hat
sudo update-alternatives --config java

Freitag, 4. März 2011

Mercurial per Ubuntu und Apache2






Die folgende Anleitung basiert unter anderem auf folgende Artikel:
http://malor.se/blog/?p=60
http://wiki.ubuntuusers.de/Mercurial_Repository_aufsetzen
http://stackoverflow.com/questions/2671279/hgwebdir-push-permission-denied-error
Voraussetzung:

Eine frische Ubuntu 10.10 Installation in eine VirtualBox. (Da Tomcat später noch benötigt wird, habe ich bei der Installation Tomcat direkt installieren lassen).
Die Ubuntu-Version kann wie folgt überprüft werden:
$ cat /etc/issue
Ubuntu 10.10 \n \l
Mecurial und Apache installieren
$ sudo apt-get install apache2
$ sudo apt-get install mercurial
Mercurial Repository vorbereiten
$ sudo mkdir /srv/hg
$ sudo mkdir /srv/hg/cgi-bin
Statt hgwebdir.cgi nutze ich hgweb.cgi (da hgwebdir.cgi nicht mit installiert wurde).
$ sudo cp /usr/share/doc/mercurial/examples/hgweb.cgi /srv/hg/cgi-bin/
$ sudo chmod a+x /srv/hg/cgi-bin/hgweb.cgi
Folgende Zeile in der hgweb.cgi muss angepasst werden:
$ sudo nano /srv/hg/cgi-bin/hgweb.cgi

# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/srv/hg/cgi-bin/hgweb.config"
Dateien anlegen mit dem jeweiligem Inhalt:
$ sudo nano /srv/hg/cgi-bin/hgweb.config

[collections]
/srv/hg/ = /srv/hg/
$ sudo nano /srv/hg/hgrc-template

[web]
allow_push = *
push_ssl = false
Das hgrc-template wird in jedem neuen Projekt kopiert und erlaubt das pushen von allen registreirten Benutzern (mehr zu den Benutzern weiter unten).
Skript erstellen, zu einfachen Erzeugung neuer Mercurial Projekte:
$ sudo touch /srv/hg/create-new-project.sh
$ sudo chmod +x /srv/hg/create-new-project.sh
$ sudo nano /srv/hg/create-new-project.sh

#!/bin/bash

usage(){ echo "You gave me no Projectname. Use me like this: $0 new_project_name"; exit 1; }

[ "$(whoami)" != "root" ] && { echo "Sorry, you are not root."; usage; }

[ $# -eq 0 ] && { usage; }

PROJECT_NAME=$1
DIR_NAME=`dirname "$0"`

echo "Creating new Mercurial Project in $DIR_NAME/$PROJECT_NAME"

sudo mkdir $DIR_NAME/$PROJECT_NAME

cd $DIR_NAME/$PROJECT_NAME

hg init

sudo cp ../hgrc-template .hg/hgrc

sudo chmod -R 777 .hg

echo Done.

Ein neues Projekt kann nun angelegt werden mit:
$ sudo /srv/hg/create-new-project.sh test-projekt
Apache configurieren

Datei anlegen:
$ sudo nano /etc/apache2/sites-available/hg
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost

DocumentRoot /srv/hg/cgi-bin/

ScriptAliasMatch ^/hg(.*) /srv/hg/cgi-bin/hgweb.cgi$1

<Directory "/srv/hg/cgi-bin/">
SetHandler cgi-script
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
AuthUserFile /etc/hg/htpasswd
AuthName "Dev Repo"
AuthType Basic
<Limit GET POST PUT>
Require valid-user
</Limit>
</Directory>

ErrorLog /var/log/apache2/hg.log
</VirtualHost>
Nun wird die standard Apache Seite dektiviert und die neue Mercurial Seite aktiviert:
$ sudo a2dissite default
$ sudo a2ensite hg
$ sudo /etc/init.d/apache2 reload
Um einen neuen Benutzer anzulegen wird folgendes ausgeführt:
$ sudo mkdir /etc/hg/
$ sudo htpasswd -c /etc/hg/htpasswd cheneym
Weitere Benutzer werden ohne "-c" angelegt.
Voalá! Fertig ist das Mondgesicht.

Web-Oberfläche, pullen und pushen:
$ http://deine-url/hg/
$ hg clone http://deine-url/hg/

Mittwoch, 12. Mai 2010

Genial. Sind euch schon einmal die Zahlen in diesem Font aufgefallen?
"0123456789".