MAIA Loading Screen

This game is a little gem for colony/base builders (and mayhap even SIM players). There is so much going on and it takes some time to get all the details even at it’s slow pace. Sadly not much is explained in-game [yet?]. Figured most stuff out by playing or watching others play. I still absolutely recommend this. It’s very relaxing and hilarious fun at times when an unfortunate chain of events culminate in an unexpected disaster 😀

This game always had a very steady progress, unlike other EA games, and it was fun keeping an eye on it and watch the improvements over time. Remember that this is an Indie and not a huge studio. I’m a dev myself and I tell you it’s amazing what S. Roth managed to achieve here. He could also be reached e.g. via Discord or Twitter so I’ve absolutely no idea why some people here complain that they were ignored. Mayhap they were simply rude?

Automated fire extinguisher as work: Equipment first, human second.

Don’t give the bad reviews [on Steam] too much credit. The annoying repeating crashes e.g. that many players describe did only happen in fact for Windows players due to a bug with async operations in a library from Microsoft. That was not related to the game itself, and is fixed by now. This game didn’t crash for me in hours on Linux so I believe this statement by the dev. And to this dude blaming this killed his hard-disk or boot-loader or whatsoever: Just no. This is not how computers work o0

http://www.maiagame.com/

Today I found out that I can use my Sony Action cam as… webcam (under Linux) for e.g. streaming or view control 🙂 Not really officially supported. Manual says: Use our shiny Android App and ustream (costs). The trick is so set it into ‘multi camera mode’ to trick it into joining my regular wlan via WPS. Once it’s on my wlan I can easily discover it’s API Scheme and make use of the Sony Camera Remote API controlling it via… JSON 😀 Now it’s just a matter of pointing OBS Studio to it’s lifestream. E voila 😀 I can now even write my own App instead of using that gorram Android App 😀

Played with the API. Taking photos (and download), change various settings, camera mode or start/stop recording worked flawless. Some other stuff I tried, like accessing the storage, not so. Probably doing something wrong.

Disclaimer: That device accepts commands (or stream access) from anyone – there’s no access control. Sony o0

Update: To register as regular v4l2 device that can be accessed e.g. by a webbrowser one can make use of a v4l2-loopback device.

One can’t play under Linux, they said.

I don’t care for ~20 years by now and since 2016 I can’t keep up with my queue any more. The variety became just too much.

Find screenshots of a fraction of the games that came native to Linux in the last years attached. The selection is random since I simply searched for files of the image type when all the screenshots came up.

This is how I import my deadlines for tickets from our Jira bugtracker to our Zarafa ical gateway (running on localhost only but since I’ve a real account I could easily install a crontab for this for my system user).

Notes:

– The script makes use of phyton as well
– The script makes use of the Jira rest api (needs to be enabled)
– The script makes use of the (free) JIRA Calendar Plugin (https://marketplace.atlassian.com/plugins/com.atlassian.jira.ext.calendar/versions#b20107)
– The script uses a hardcoded filter id 10100. The filter must be created by the Jira user before. In my case it’s simply a filter that returns all projects I’m assigned to.
– The calendar used (e.g. “Jira”) must be manually created by the Zarafa user before and will be overwritten everytime the script runs! (Do not use default calendar)
– Dunno how to check whether ICS file loaded fine so run it manually and check whether new items show up in the calendar 🙂

It can probably easy adapted to other ics servers as well. I run this all 15 minutes during working days making use of crontab.


#!/bin/bash
JIRAUSER="changeme"
JIRAPASS="changeme"
JIRAICS="$HOME/jira.tmp.ics"
JIRAURL="jira.example.com"
#secure folder with e.g. umask 077
JIRACOOKIE="$HOME/.cookies/jira.cookie"
ZARAFAUSER=="changeme@example.com"
ZARAFAPASS=="changeme"
#
#Do NOT use default "Calendar", ICS will OVERWRITE it!
#Create an OWN calendar for Jira entries ONLY!
#
ZARAFACALENDAR="Jira"
if [ -f "$JIRAICS" ]; then
rm "$JIRAICS"
fi
if [ ! -f "$JIRACOOKIE" ]; then
JIRATEST=`/usr/bin/curl -s -u "$JIRAUSER":"$JIRAPASS" --cookie-jar "$JIRACOOKIE" "https://$JIRAURL/rest/api/2/user?username=$JIRAUSER" -s | python -mjson.tool | grep -oP "(?<=\"name\": \")[^\"]+"`
else
JIRATEST=`/usr/bin/curl -s --cookie "$JIRACOOKIE" "https://$JIRAURL/rest/api/2/user?username=$JIRAUSER" -s | python -mjson.tool | grep -oP "(?<=\"name\": \")[^\"]+"`
fi
if [ "$JIRATEST" != "$JIRAUSER" ]; then
echo "Error getting Jira username $JIRAUSER"
rm "$JIRACOOKIE"
exit -1
fi
/usr/bin/curl -s --cookie "$JIRACOOKIE" --output "$JIRAICS" "https://$JIRAURL/plugins/servlet/calendar?searchRequestId=10100&dateFieldName=duedate&showVersions=true" || exit $?
if [ -f "$JIRAICS" ]; then
/usr/bin/curl -s -u "$ZARAFAUSER":"$ZARAFAPASS" -T "$JIRAICS" "http://localhost:8080/ical/$ZARAFAUSER/$ZARAFACALENDAR"
rm "$JIRAICS"
fi

OwnCloud könnte mal richtig toll werden. Im Moment ändert sich jedoch alle naselang die Webseite, das Aussehen, die Funktionen.. also alles. Da auch ständig Sicherheitslücken bekannt werden, und einen Patch den nächsten jagt, sollte man hier stets auf die neuste Version achten.

Dazu gibt es im Adminbereich eine schöne Funktion, welche einem anzeigt ob man die aktuelle Version hat. Das wollten wir nun automatisch wissen, um uns nicht ständig auf der Admin-Seite einloggen zu müssen.

Die Funktion von der Seite stellt OC_Updater::check() aus lib/updater.php. Dabei wird ein String zusammen aus Version, Installationsdatum, letztes Updatedatum und Update-Kanal erstellt.

Die Daten werden dabei mit “x” separiert. Auch der Versionsstring ist durch das “x” in major, minor und nochmalminor getrennt. Aus Version “4.90.4” wird zum Beispiel “4x90x4”.

Ich habe keine Ahnung ob es da eine offizielle API Doku für gibt (Owncloud hat gerade die ganze Webseite umstruktuiert und viele Suchmaschinentreffer gehen gerade ins Leere), doch habe ich folgendes (im Moment) beobachten können:
– So lange die Anzahl der erwarteten “x”e im String ist, spuckt der Server also eine Antwort aus.
– Ist in der XML-Antwort keine Version angegeben ist alles ok.
– Ist ein Versionsstring angegeben unterscheidet sich die aktuelle Version mit der empfohlenen aus dem “Update-Kanal” (wobei auch hier “stable” als “default”-Kanal gegeben scheint)

So genügt zum Beispiel der String “4x90x4xxxx” für einen Request.

Achtung: Major-Versionssprünge werden nicht als neue Version angekündigt. 4.90.4 wird z.b. als aktuell gewertet, auch wenn bereits 5.0.0 verfügbar ist.

Und so sieht das ganze als schneller Hack für ein Nagios Script aus:

#!/bin/bash
#Reminder: Nagios return codes: 0 OK, 1 WARN, 2 CRIT, 3 UNKNOWN
#Reminder2: Full “featured” version request example: http://apps.owncloud.com/updater.php?version=5x0x0x1356382022.183×1363606253.8263xstablex

VER=`grep version /pfad/zur/owncloud/config/config.php | sed ‘s/[^0-9.]*//g’`

if [[ “${#VER}” > 0 ]]; then
#Replace all matches of . with x
VERSNIPPED=${VER//./x}
APPURL=”http://apps.owncloud.com/updater.php?version=””$VERSNIPPED””xxxx”

NEWVER=`wget -qO – “$APPURL” | grep “” | sed ‘s/[^0-9.]*//g’`

if [[ $? == 0 ]];then
if [[ ${#NEWVER} > 0 ]]; then
echo “New version: $NEWVER”
exit 2
else
echo “Version $VER is up to date”
exit 0
fi
else
echo “Could not wget version request from apps.owncloud.com”
exit 2
fi
else
echo “Could not parse local version from config.php”
exit 3
fi

..funktioniert vermutlich so nur ein paar Monate. Das Prinzip ist aber klar 🙂

Die Tage aus dem Schrank gezogen und nebst Expansion Set MOD T2x – Shadows Of The Metal Age komplett unter Wine 1.4 durch gespielt 🙂

  • Der Installer war ein wenig zickig
  • taskset ist beim Multicore nötig
  • Videos bringen das Spiel zum Absturz (cfg Hack und Videos manuell anschauen, z.b. mit mplayer)

Das ist eigentlich auch schon alles gewesen 🙂 Nicht einmal ein DLL Override ist nötig.


Ich hatte extrem viel Spaß dieses tolle Spiel erneut durch zu spielen.


Noch viel mehr Spaß hatte ich mit T2x. Das ist nicht nur ein MOD sondern wirklich ein vollwertiges Expansion Set, welches ich sogar besser wie das Hauptspiel finde. Da steckt mehr Abwechslung und deutlich mehr Details drinnen. Dazu eine packende Storyline, welche sogar die von Thief2 unerwartet schneidet und in einer eigenen Kampange nebst schicker Videosequenzen erzählt wird. Ist mit viel Liebe gemacht. Das sieht und hört man.

http://wiki.linuxgaming.de/index.php/Thief_II

I always wondered how I could easily read several variables at once from some program I execute from bash. Usually I simply read all values to a single variable and do a barrel roll (for each) on it or I execute the program in question several times with slightly tweaked parameters. That’s all not so nice for performance critical scripts. So I usually try to read as much as possible with as less as possible program calls from within a script.

Well, this is a snipped I developed today that is much easier by simply making use of read and “<<<

read iUID iGID <<< `awk -v username="$USERNAME" -F ":" '$0 ~ "^"username":x:" {print $3" "$4}' /etc/passwd`

I’m also passing a variable down to awk used in a regular expression. Please notice that this does only work when $IFS is a single space (default).

if [[ $iUID =~ ^[0-9]+$ ]] && [[ $iGID =~ ^[0-9]+$ ]]; then

And here I can even validate both values easily as integers using a regular expression.

Bash is so damn powerful once you get the basics 🙂 Ah and yes I am aware that awk can do the integer check itself but I’m just not there.. yet 😉

Ich mag meinen Job 🙂 Spielzeug für Erwachsene:

============
Last updated: Thu Aug 25 16:03:54 2011
Stack: Heartbeat
Current DC: punk (71dd0b09-39d3-4869-9b07-ec7ca7328ea1) - partition with quorum
Version: 1.0.11-6e010d6b0d49a6b929d17c0114e9d2d934dc8e04
2 Nodes configured, unknown expected votes
3 Resources configured.
============Online: [ steam punk ]

Resource Group: grpNFS
fsDRBDnfs  (ocf::heartbeat:Filesystem):    Started steam
resIPnfs   (ocf::heartbeat:IPaddr2):       Started steam
Master/Slave Set: msDRBDnfs
Masters: [ steam ]
Slaves: [ punk ]
resNFS  (lsb:nfs-kernel-server):        Started steam

Ich habe die Tage mal wieder was am Wine zu knabbern gehabt. Nach dem Aktivieren der OnBord Soundkarte schien zunächst alles schön zu seine. Unter Ubuntu konnte ich einfach den Punkt “Auf alle verfügbaren Soundkarten ausgeben” auswählen.

Unter Wine hatte ich aber plötzlich keinen Ton mehr.

“wine winecfg” hat einen Tab “Audio”. Da ging der Ton, wenn man auf “Test Sound” geklickt hat, lustigerweise.

Nun, des Rästels Lösung: Wine nutzt, genau wie der Pulseaudio von Ubuntu, das Alsa Device. Nun hat Ubuntu mir aber die Alsa Config umgebogen und ein sog. “dmix” Device angelegt, um auf beide Soundkarten auszugeben. DMIX zu erklären sprengt nun hier den Rahmen (wenn das interessiert=> alsa webseite erklärts). Auf jeden Fall war damit das Device “default” von alsa einfach leer. Das dmix Device hört hingegen auf den Namen “default_1”.

Unter “wine regedit” habe ich dann die Variable “DefaultPlayback” auf “default_1” gestellt. Nun gehts wieder

Die Keys sind unter http://wiki.winehq.org/UsefulRegistryKeys beschrieben.

Kann sein dass sich das bald wieder ändert. Soweit ich das verstanden habe bekommt Wine gerade eine radikale Umstrukturierung bei Audio verpasst, was dann wohl eine direkte Anbindung (ohne Patch) an gstreamer erlaubt.

Klar, alternativ hätte ich einfach default in default_1 umlenken können oder eine der anderen 10 Möglichkeiten zur Soundausgabe Soundausgabe umzuleiten nutzen können. Ist aber letztendlich egal. Um mich genau mit sowas nicht mehr rumzuärgern habe ich mir damals eine SB Live 5.1 mit emu10k1 Chipsatz geholt. Die konnte Hardwaremixing und brauche garkeine Soundserver und Software-Mixing mehr. Irgendwie ironisch dass mich diese Probleme dann doch 2011 mit dem Aktivieren einer zusätzliuchen OnBord Karte wieder eingeholt haben.