Longri http://longri.de Softwareentwicklung aus Leidenschaft Sat, 04 Feb 2017 15:55:38 +0000 de-DE hourly 1 https://wordpress.org/?v=5.7.8 114784358 Erstes Video zur Entwicklung von CacheBox 3.0 http://longri.de/?p=365 http://longri.de/?p=365#respond Sat, 04 Feb 2017 15:55:38 +0000 http://longri.de/?p=365 Hallo, in die Runde der Cachebox-Interessierten!

 

Ich habe gerade ein erstes Video zur Arbeit an Cachebox3 hochgeladen.

 

 

Ich möchte euch aber von vornherein sagen, dass ich kein YouTuber bin und auch keine Ambitionen habe, einer zu werden. Das Video soll euch nur einen Einstieg in die Entwicklung von Cachebox3 geben.

 

In dem gerade hochgeladenen 1. Teil geht es im Grunde darum, wie ihr den Code auscheckt und mit diesem arbeitet.

 

Ich setze dabei voraus, dass IntelliJ als Entwicklungsumgebung bei euch installiert ist.

 

Als Git Tool verwende ich SmartGit, welches in meinen Augen den besten Komfort bietet und auch noch plattformübergreifend, für Privatanwender kostenlos, zur Verfügung steht.

 

In den noch weiter folgenden Videos werde ich die Erstellung des CoordinateButtons bis zur Fertigstellung dokumentieren. Und zum Abschluss dann auch zeigen, wie ihr aus den Änderungen ein PullRequest erstellt, damit ich diesen Code dann in Cachebox3 integrieren kann.

 

Im Cachebox-Forum werde ich einen Extra Thread erstellen, in dem ihr Fragen loswerden könnt, die ich dann versuche, dort zu beantworten.

 

Gruß Andre

 

]]>
http://longri.de/?feed=rss2&p=365 0 365
Status http://longri.de/?p=351 http://longri.de/?p=351#respond Sun, 02 Oct 2016 08:50:58 +0000 http://longri.de/?p=351 Eigentlich wollte ich mit diesem Post schon deutlich weiter sein, mit der Entwicklung von Cachebox-3.0, aber wie es immer so ist, liege ich weit hinter meinem Plan.

Ich werde wohl den Termin Ende Oktober verschieben müssen.

Das Problem im Moment ist, dass ich auch noch ein wenig für Mapsforge-VTM arbeite und es hier gerade ein paar Probleme mit der Umsetzung auf iOS 10 gibt. Unter iOS wurde gerade am OpenGL-ES Bereich einiges umgestellt.

Aber die gute Nachricht ist, dass die Karte im Ganzen schon sehr gut aussieht.
Jedenfalls gefällt mir die 3D Darstellung sehr gut und auch das Handling von SVG-grafiken sorgt für eine brillante Darstellung.

Im Moment habe ich noch keine Darstellung der Waypoints, aber wenn ich diese fertig habe, werde ich die erste Alpha für Android veröffentlichen. Hier werden aber noch einige wichtige Funktionen fehlen aber die CacheListe und die Map werden dann getestet werden können. Die DB kann man dann zwar noch nicht befüllen, aber da diese komplett kompatibel mit der Version 2 ist, kann man diese zum testen heranziehen.

]]>
http://longri.de/?feed=rss2&p=351 0 351
Cachebox 3.x stand der Entwicklung http://longri.de/?p=322 http://longri.de/?p=322#respond Wed, 17 Aug 2016 10:22:12 +0000 http://longri.de/?p=322 Continue Reading →]]> Ich möchte eine Anfrage eines Users nutzen um mal wieder über den neusten Stand zu informieren.

 

SVoJa hat geschrieben: Hallo Longri, ich bin schon vor ein paar Jahren aus meinem Androidfrust mit meinem Motorola Defy+ zu IOS gewechselt und habe nichts bereut. Nur Cachebox trauerte ich etwas hinterher bis ich "looking4Cache" gefunden hatte. In dieser App gibt es einen Mapdownloadcenter, wo man sich für die ganze Welt Karten runterladen kann, für Deutschland auch gegliedert in "komplett" oder "north, middle, south" oder auch bundeslandweise. Auch die Buttons kann man selber anpassen. Wenn Cachebox auf IOS kommt wäre looking4Cache sicherlich euer "Hauptkonkurrent" die App gibt es in einer light-Version und kostet sonst 8,99€. Du hast meine volle Hochachtung für deine enorme Entwicklungsarbeit und alleine deshalb würde ich Cachebox gerne unterstützen oder auch wieder verwenden, wenn es an looking4 Cache heranreicht auf IOS. Ich bin aber nur Anwender und habe von Programmierung wenig Ahnung. Wenn ich dir irgendwie helfen kann oder du Infos aus dem IOS-Bereich brauchst, sag Bescheid. hochachtungsvoll! und mit liebem Gruß der alte Cacheboxnutzer SVoJa/ Volker

 

Ich habe mittlerweile nicht nur die Settings aus CB2 übertragen sondern auch angefangen an der GUI zu arbeiten. Die Gesture-Buttons sind Implementiert und funktionieren wie erwartet. Als nächstes kommen erst einmal leere View’s für alle in CB2 vorhandenen View’s. Welche dann Stück für Stück mit Leben befüllt werden.

Um den Entwicklungsstand besser verfolgen zu können könnt ihr ab und zu bei GitHub vorbei schauen, wo ich alle Aufgaben eintrage und diese dann auch fertig melde. Dieser Tracker wird dann auch der spätere Bug-Tracker.

 

Ansonsten könnt ihr natürlich auch diesen Blog abonnieren, denn ich werde hier weiter berichten, wie der Stand der Dinge ist.

 

Nun zu der Frage mit dem Map-Download. Da es auf iOS etwas schwierig ist überhaupt Dateien auf sein Gerät zu bekommen, ist hier ein Map-Downloader ein eigentliches muss für CB3. Zwar gibt es auch einen in CB2, aber dieser ist nur rudimentär und bedarf einer Überarbeitung. Ich möchte hier im Grundsätzlichen auf die Maps von Freizeitkarte setzen und auch dessen Themes. Und auch eine Gliederung in Kontinente, Länder… ist geplant.

Auch CB3 wird es Kostenlos geben, auch unter iOS! Aber ich werde hier auf einen Spenden-Button aufmerksam machen, da die 99,- € im Jahr für den Apple-Entwickler Account auch irgendwo herkommen müssen.

Ob die Buttons frei Konfiguriert werden können, würde ich zum jetzigen Zeitpunkt bezweifeln. Wer Konfigurierbare Buttons braucht, kann sich die Quick-Butten-Leiste konfigurieren.

 

Zum zeitlichen Ablauf kann ich leider noch nichts sagen, da ich eigentlich schon viel weiter sein wollte. Im Tracker steht jetzt erst einmal der 31. Oktober für Android und Desktop. Für iOS etwas später, da ich mich erst noch mit dem App-Store auseinandersetzen muss. Aber auch hier habe ich gehört, dass man seid iOS9 auch die App so auf sein Gerät bekommt. Dies werde ich demnächst dann auch versuchen und dann berichten.

]]>
http://longri.de/?feed=rss2&p=322 0 322
SQLite Database http://longri.de/?p=312 http://longri.de/?p=312#respond Sun, 31 Jul 2016 07:55:51 +0000 http://longri.de/?p=312 So, der nächste größere Schritt ist getan.

SQLite Datenbanken können gelesen und geschrieben werden.

Es hat zwar einiges an Zeit gekostet, da ich den Code für die zugriffe gleich dem Code aus CB2 haben wollte, damit ein Zukünftiges übertragen des Codes aus CB2 ohne Probleme funktioniert, aber es ist geschafft.

 

Dieser Schritt ermöglicht es jetzt so ziemlich allen Code aus CB2 zu übertragen. Jedenfalls den Core-Teil (Import GPX und Groundspeak-Api, Solver, Cache-Types ….)

 

Und vor allem und das ist der nächste Schritt, nachdem ich mal wieder ein wenig an CB2 gearbeitet habe, die Settings.

]]>
http://longri.de/?feed=rss2&p=312 0 312
GPS funktioniert! http://longri.de/?p=309 http://longri.de/?p=309#respond Tue, 26 Jul 2016 12:45:59 +0000 http://longri.de/?p=309 Das ich die GPS Koordinaten unter Android auslesen kann und in LibGdx auswerten kann, wusste ich ja, weil wir das ja schon bei CB2 gemacht haben. Hier habe ich den Code für Android auch einfach übernommen. Unter iOS hatte ich aber keine Ahnung wie es geht und musste viel lesen. Aber es ist geschafft, alle Berechtigungen sind abgefragt und ich erhalte ständige GPS Koordinaten.

WhatsApp-Image-20160726

 

Das ist dann der nächste grössere Schritt zu CB3.

Das nächste grössere Feature ist die Verarbeitung einer SQLite DB. Auch hier kann ich den Code für Android einfach übernehmen aber für iOS muss ich erst einmal wieder ein wenig recherchieren um eine Lösung zu finden. Ich möchte hier aber unbedingt auf SQLite setzen, um eine Kompatibilität zu den CB2 Daten zu haben!

 

]]>
http://longri.de/?feed=rss2&p=309 0 309
Es geht voran  http://longri.de/?p=306 http://longri.de/?p=306#respond Mon, 25 Jul 2016 08:57:28 +0000 http://longri.de/?p=306 Nicht ganz so schnell wie ich gehofft habe, aber es wird. 

Da ich aber explizit auf iOS und Android Kompatibilität achte, teste ich natürlich gleich, bei jeder Änderung, auf allen Geräten. 

Mein größter Wunsch ist auch schon in Erfüllung gegangen. Ich habe es geschafft, die Grafiken für die GUI als SVG’s zu implementieren. Damit braucht CB dann keine unterschiedliche Skins für die entsprechenden Display Auflösungen. Das jetzige Ergebnis sieht einfach nur gestochen scharf aus, egal auf welchem Gerät. 

Als nächstes werde ich die GPS Funktionalität implementieren. Dazu habe ich schon einige Code aus CB2 kopiert. Jetzt fehlt nur noch die Plattform abhängige Implementierung, welche ja für Android schon existiert, aber für iOS noch nicht. 

]]>
http://longri.de/?feed=rss2&p=306 0 306 36.0660003 14.2212394 36.0660003 14.2212394
Der Neustart http://longri.de/?p=303 http://longri.de/?p=303#respond Sat, 16 Jul 2016 11:07:32 +0000 http://longri.de/?p=303 Da ich mich entschlossen habe Cachebox noch einmal neu zu schreiben, werde ich in diesem Blog meine Fortschritte veröffentlichen!

 

Im Moment sitze ich mit Emux, einer der Entwickler von Mapsforge, daran Mapsfore in einer richtigen OpenGL Darstellung umzusetzen.

 

Das Projekt dazu befindet sich unter https://github.com/mapsforge/vtm

und ist ursprünglich ein Projekt von http://www.opensciencemap.org/ welches aber seid langem keine weiter Entwicklung bekommen hat.

 

Emux hat dieses Projekt aufgegriffen um es weiter zu entwickeln und ich bin darauf gestoßen, weil es im Hintergrund schon die LibGdx  benutzt und damit auch auf iOS laufen sollte. Was ja mein Ziel ist.

 

Leider wurde der Teil für iOS noch weniger gepflegt, als der Rest, sodass es mich eine gefühlte Ewigkeit gekostet hat die VTM Map auf iOS zum laufen zu bringen.

 

Das erste Ergebniss ist sehr vielversprechend und auf einem kleinen Viedeo zu sehen!

https://www.youtube.com/watch?v=atunbSdgXps

 

 

Jetzt habe ich angefangen die GUI aufzusetzen, welche ich nicht wie bisher aus selbst geschriebenen Controls sondern auf Basis der, mittlerweile, vorhandenen Controls von LibGdx zusammen setzen werde.

 

]]>
http://longri.de/?feed=rss2&p=303 0 303
Tvheadend auf Raspberry Pi3 http://longri.de/?p=248 http://longri.de/?p=248#comments Thu, 10 Mar 2016 12:08:54 +0000 http://longri.de/?p=248 Continue Reading →]]> Ziel:

Ich habe zwei Raspberry Pi als Kodi-Clint im Einsatz! Diese betreibe ich mit einem Image von OSMC! Außerdem habe ich Kodi noch auf einem MacBook und einem Android-Phone installiert! Auf allen diesen Clints möchte ich auch Fernsehen können. Tvheadend als IPTV Stream Server kann das Verteilen der IPTV-Streams übernehmen. Ich möchte diesen Server auf Basis eines Raspberry Pi 3 aufsetzen. Hier bin ich immer wieder auf Schwierigkeiten bei der Installation von Tvheadend gestoßen. Sodass mir nichts anderes Übrigblieb, als den Sourcecode von Tvheadend auf dem Pi selber zu Kompilieren! Die folgenden Schritte basieren auf der Installation des „RASPBIAN JESSIE LITE“ Images von https://www.raspberrypi.org/downloads/raspbian/

1. PI vorbereiten
	sudo raspi-config
	sudo reboot
	sudo apt-get update
	sudo apt-get upgrade
        sudo apt-get install rpi-update
	sudo rpi-update
	sudo reboot
        sudo apt-get install git
2. TVHeadend installieren
	sudo -s
	apt-get install git build-essential pkg-config libssl-dev gettext dvb-tools libdvbv5-0 liburiparser-dev liburiparser1 libavahi-client-dev zlib1g-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev
        cd /usr/src
	git clone https://github.com/tvheadend/tvheadend
	cd tvheadend
	./configure
	make

Das Kompelieren des Tvheadend sources dauert auf dem Pi eine Weile, in meinem Fall waren es 1h 28min! Deshalb habe ich mir nach dem Kompilieren erst einmal ein Backup der SD-Card gemacht, falls etwas schief läuft möchte ich nicht schon wieder 2h alles vorbereiten! Vor dem ersten Teststart müssen noch schreibrechte für /root/.hts gesetzt werden!

sudo chmod 777 /root/.hts
Den Server ins Autostart legen:

Das war nicht ganz so einfach wie ich dachte, aber ich habe mich an dieses Tut gehalten => http://www.forum-raspberrypi.de/Thread-tutorial-tvheadend-server

Da der tvheadend Server nicht als root laufen sollte legen wir nun einen extra Benutzer an und geben diesem, durch hinzufügen zu der jeweiligen Gruppe, rechte auf Video und Audio zuzugreifen:

sudo groupadd tvheadend
sudo useradd -g tvheadend -G video -m tvheadend
sudo usermod -G audio -a tvheadend

Dann müssen wir noch ein Startscript anlagen! Dieses ist hier schon an die Installation wie ich sie hier beschrieben habe angepasst!

Script bearbeiten: nano /etc/init.d/tvheadend

Folgendes dort einfügen:

	
#!/bin/bash
### BEGIN INIT INFO
# Provides:          tvheadend
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Should-Start:      $syslog
# Should-Stop:       $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1
# Short-Description: start/stop tvheadend Server
### END INIT INFO

TVHNAME="tvheadend"
TVHBIN="/usr/src/tvheadend/build.linux/tvheadend"
TVHUSER="tvheadend"
TVHGROUP="tvheadend"
PIDFILE=/var/run/$TVHNAME.pid

start() {
    if [ -e $PIDFILE ]; then
        PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}')
        if [ -n "$PID" ]; then
            echo "$TVHNAME already running (pid $PID)."
            exit 1
        fi
    fi
    echo -n "Starting tvheadend: "
    start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user ${TVHUSER} --exec ${TVHBIN} -- \
        -u ${TVHUSER} -g ${TVHGROUP} -f -C
    echo "Done."
}

stop() {
    if [ -e $PIDFILE ]; then
        PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}')
        if [ -n "$PID" ]; then
            echo -n "Stopping $TVHNAME: "
            start-stop-daemon --stop --quiet --pidfile $PIDFILE --name ${TVHNAME}
            echo "Done."
        else
            echo "$TVHNAME is not running."
        fi
    else
        echo "$TVHNAME is not running."
    fi
}

status() {
    if [ -e $PIDFILE ]; then
        PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}')
        if [ -n "$PID" ]; then
            echo "$TVHNAME is running (pid $PID)."
        else
            echo "$TVHNAME is not running."
            [ -e $PIDFILE ] && exit 1 || exit 3
        fi
    fi
}

case "$1" in
 start) start ;;
 stop) stop ;;
 restart) stop && sleep 2 && start ;;
 *) echo "Usage: $0 [start|stop|restart|status]" && exit 1 ;;
esac

exit 0

Script ausführbar machen und in den Runlevel aufnehmen damit es automatisch ausgeführt wird:

	
chmod +x /etc/init.d/tvheadend
update-rc.d tvheadend defaults

Jetzt können wir den Server über das Script starten:

/etc/init.d/tvheadend start

Und Überprüfen ob der Server läuft!

ps aux | grep -v grep | grep tvhead

Zur Konfiguration schaut euch dieses Video an https://www.youtube.com/watch?v=y8vm9es6FL0 

]]>
http://longri.de/?feed=rss2&p=248 5 248
MySql Server als Zentrale KODI DB http://longri.de/?p=284 http://longri.de/?p=284#respond Wed, 09 Mar 2016 12:22:56 +0000 http://longri.de/?p=284 Ziel:

xxxxxx

 

 

Um auf dem Pi eine MySql DB laufen zu lassen, bedarf es nicht viel.

Aber wenn man MySql auch mit phpMyAdmin konfigurieren möchte brauchen wir noch ein wenig mehr!

  1. Apache 2
  2. PHP
  3. MySql
  4. phpMyAdmin

 

sudo apt-get install apache2

Test ob der der Server funktioniert!

IP des Servers in einen Browser eurer Wahl eingeben!

Das Ergebnis sollte so aussehen:

 

sudo apt-get install php5

Um die Installation von PHP zu überprüfen erstellen wir uns, www- Verzeichnis eine phpinfo.php

 

cd /var/www

sudo nano phpinfo.php

Mit Steuerung-x wird die Datei gespeichert.

In einem Browser eurer Wahl könnt ihr dann das Ergebnis überprüfen!

xxx.xxx.xxx.xxx/phpinfo.php

Das Ergebnis sollte dann so aussehen:

 

MySql Installieren

apt-get install mysql-server mysql-client php5-mysql

 

 

phpMyAdmin installieren

apt-get install libapache2-mod-auth-mysql phpmyadmin
]]>
http://longri.de/?feed=rss2&p=284 0 284
Ausfallsicherheit! http://longri.de/?p=236 Tue, 20 Oct 2015 09:50:34 +0000 http://longri.de/?p=236 Aus eigener langjähriger Erfahrung kann ich sagen, dass ein Software gesteuertes System auch einmal nicht funktionieren kann! Und nichts ist schlimmer als wenn man einen Schlag auf den Kopf bekommt, weil die Familie frieren musste, weil die Software mal wieder versagt hat.


Deshalb war auch einer meiner ersten Überlegungen, eine Hardware Notfall Lösung einzubauen.
Ein Schalter mit dem ich zwischen Hand und Automatik umschalten kann. Sodass man im Notfall die Heizung per Hand Ein oder Ausschalten kann.

Da ich aber keine schiebe Schalter einsetzen wollte, musste eine Tasten-Lösung mit Selbsthaltung her. Mein erster Gedanke ging in Richtung Relais, bei denen ich aber schnell an meine Grenzen kam.
Schließlich wollte ich eine Selbsthaltung für Hand/Automatik und eine für Ein/Aus haben. Das würde aber eine Menge Relais bedeuten, für die so kein Platz in meinem Gehäuse gewesen wäre.

Ich musste eine andre Lösung finden und bin bei meiner Recherche auf den 555er Zeitbaustein gestoßen. Diesen habe ich dann erst einmal Simuliert. Dafür gibt es ein Super Tool, namens EveryCircuit.. Hier habe ich für eine Seblsthaltung einen Taster zum Einschalten und einen zum Ausschalten angebaut und es Funktionierte.

circuit (1)

Also habe ich mir die Bauteile bestellt und erst einmal auf ein Steckbrett aufgebaut, um es in Live zu testen, denn wir wissen ja, dass Software Fehler machen kann! 😉

Als auch das Funktioniert hat, habe ich mich dann an den Entwurf des Platienen Layouts gemacht.

]]>
236