Programmering

Minecraft och QML.

Daniel Holm - MSMWebUI
Daniel Holm - MSTM

Jag började för ca ett år sedan att spela Minecraft. Initialt var jag inte så imponerad när jag såg spelet, men när jag köpte det, och testade det; när man febrilt grävde sin första gruvöppning med en blomma nattetid, med alla mobs som ständigt tog kål på en: då var jag fast.

Sedan dess har jag och några vänner haft en egen server, som kör Ubuntu och administeras över SSH. Vi använder Overviewer för att se en kart över vår vackra skapelse och spelar någon gång i veckan. Minecraft är som lego för mig - ingen ände på vad man kan göra - än mindre när det kommer till Redstone.

Hur som helst så har vi blivit allt fler, och det är nästan alltid någon inne, och jag, mfl., har behovet att kolla så att servern är uppe och fungerar, samt att det är kul att se vad det pratas om, samt vilka som är inne. Jag kunde lätt göra det eftersom jag har direktkontroll över servern med SSH, plus att vi kör med MSM för att administera Minecraft-servern. Men jag ville gå steget längre.

Därför satte jag igång och började koda på ett WebUI för msm. Alltså en hemsida man kan gå in på för att kunna ha lite kontroll på vår server. Egentligen mest för att utmana mig själv, och för att det är kul att koda. Sedan ville jag även ta steget till att skapa en mobil-applikation, och eftersom jag är mest intresserad av kommande Ubuntu Touch så fick det bli en app till det: mstm - Minecraft Server Touch Manager.

Det är faktiskt fruktansvärt lätt att komma igång med QML i QtCreator. Det som jag hade - eller har - problem med var att jag ville kunna utföra kommandon direkt från applikationen - vilket skulle kräva att jag skulle få skriva en extension till Qt i C++, vilket jag inte kan. Så istället gjorde jag om min msmwebui för att visa den info jag söker i XML, vilket jag sedan hämtar in i applikationen. Dessutom visar den vår karta.

Dock är ju denna kod väldigt anpassad för mina egna ändamål, men jag har tänkt att släppa koden fri efter att jag har anpassat den nog för att man själv ska kunna förstå sig på den, och inget finns kvar av den info som endast gäller mina egna servrar.

För att få det at funka nu så krävs det att man har en webbserver, msm, overviewer installerat och uppe. Sedan ska man skapa SSH-nycklar m.m. Så det kommer.

Kul är det!

Google Drive äger dina filer - jag ger mer liv åt BareShare. Uppdaterat.

DanielHolm.se - BareShare in Unity Dash

Dagens spännande läsning är att Google, i och med sin molnlagringstjänst Drive, som släpptes igår, blir ägare av dina filer, så fort de kommer upp på deras tjänst.

Jag vet inte vad ni tycker, men jag vill helst inte att Google tar över ägandet av mina filer. Jag delar gärna med mig av mina filer, om de inte är privata eller tillhör mitt arbete, men inte till Google för att de ska ta över ens rättigheter och att de äger dem för evigt.

Jag undrar lite vad Göteborgs Universitet kommer att säga om detta, när vi använder Drive, fd. Docs, för att gemensamt arbete med rapporter och liknande dokument. Igår så tänkte jag att det kanske var droppen för molntjänster - att det är den sista som kommer att dyka upp, vilket var lite missnöjt, eftersom att jag arbetar med en egen tjänst för molnlagring (BareShare / I Lådan). Men idag fick jag åter upp hoppet lite, och jag har suttit och kodat lite redan idag, för att göra det enklare att installera och köra BareShare (man behöver fortfarande fixa servern själv.)

Jag tänkte redan från början att jag inte tänkte börja använda Google Drive, men anade att så många andra skulle det. Det finns idag flera svenska myndigheter, skolor och dyl., som kör Googles tjänster, eller använder Dropbox för backup och delning. Med I lådan, vill jag få svensk data att inte lämna Sveriges gränser. Plus att all data både skickas och lagras krypterat. Inte nog med att man äger sina egna filer och att admins inte kan komma åt dem.

Jag har tänkt att jobba med att få upp en sida som funkar för den vanliga användaren i sommar. Jag kör det redan, och även om det saknar en del funktioner, så funkar iallfall backup i real time. Jag gillar det.

UPPDATERING: IDG har dragit tillbaka sin artikel, som utgick från Cnet, som i sin tur dragit tillbaka sin artikel. Detta att Google äger dina filer var visst inte helt sant.

Leker med SMS.

Nu är det lek på gång igen! Ett litet nöje jag ska ha på min resa hem till Göteborg ikväll.

Jag har velat kunna skicka SMS ifrån min dator via min mobil. Alltså att inte behöva använde en tredjepart eller dyl, utan att det går på min mobilkostnad och dessutom kunna ha all tillgång till mina kontakter, tidigare SMS osv, ifrån min mobil.

Efter lite sökande så fann jag ett väldigt intressant alternativ - EasySMS. Det är en liten webbserver som man installerar och kör på sin Androidbaserade mobil och som man sedan använder en vanlig webbläsare för att komma åt. Därigenom sköter man sedan sina meddelanden.

Man kan använda sig av både Wifi, Bluetooth och USB. Dock så har jag bara testat USB, och Wifi lär inte vara några problem alls. Bluetooth kan bli värre i ett GNU/Linux-system, men ska testas senare.

Men nu ska jag se efter om jag inte kan snygga till det och även skapa en liten snyggare mindre webbläsare med hjälp av WebKit och Python. Har redan funnit ett script igenom Acire.

Mer senare.

Mitt sommarlovs första nördande.

Inte helt enligt vad titeln säger - jag har nördat, läst, skrivit och programmerat lite under den föregående veckan.

Men idag sitter jag på just det fik som jag tänkt sitta och just nörda på under denna sommar. I närheten av ett eluttag och med bra ljus, så sitter jag här och njuter. Förvisso kom jag iväg lite senare än vad jag hade tänkt. Men å andra sidan så kunde jag inte bara låta min gitarr stå och samla damm.

Idag så tänkte jag få något av mina nya Python-skript klara och att skriva lite.

Dels så jobbar jag med det som skulle bli en gemensam fortsättning på SixA och dess fork QtSixA. Dock verkar det inte riktigt bli så, men jag är nästan klar med Joyce, vilket i princip endast är en application-indicator med lite val. Det är faktiskt rätt komiskt då jag vill ha just "keep it simple", kör Ubuntu med Gnome och använder GTK i min utveckling, medans min kompanjon kör KDE, utvecklar i QT och - i min mening - skapar program med allt för mycket val. Man virrar bort sig och förstår inte riktigt vad allt är till för.

Nej, Keep it Simple är det ända riktiga för mig, i utvecklingsperspektiv.

Sedan har jag satt igång med ett annat litet skript som jag simpelt kallar för TwitPicGTK.
Det är en grafisk applikation för att kunna ladda upp bilder till TwitPic ifrån ditt skrivbord, och sedan twittra dem med ett meddelande.

Fann en Python-modul för just detta ändamål och leker nu med att göra GUIn. Man ska dels kunna högerklicka på en bild och välja att ladda upp den, och dels kunna öppna applikationen som enskild och då välja en bild.

Lärt mig att hasha text, sätta definitioner och en massa annat på bara en vecka. Och jag finner det så oerhört roligt! Mer ska det bli.

http://twitpic.com/1vvbhs
Jag har även en holy remarkable book med mig hit, om jag skulle tröttna på allt elektroniskt nördande för en stund. Jag fick faktiskt Liftarens Guide till Galaxen (The Hitchhikers Guide to the Galaxy) av min älskade Amanda, i present häromdagen!

Och ni kan ana att jag blev överlycklig!

Jag älskar filmen. När jag först såg den så visste jag inget om boken, eller böckerna. Jag var dock frälst och såg den allt för många gånger. Somnade till den varje helg under en period.

Sen fick jag tag på ljudböckerna och började lyssna på dem men kom av mig. Sedan har jag alltid velat ha boken - böckerna - och kom att börja prata med min älskade Amanda om det. Detta föll sig som så att jag fick den av henne och det värmer verkligen mitt hjärta så saklöst! Så jag har fnissat och asgarvat om vartannat under några tillfällen i helgen. Fan så fantastiskt roligt den är!

Nej, nu blir det att koda lite och sedan möta upp min älskade.

Gå händelser i förväg.

Denna vecka har varit och kommer fortsätta att vara, fullspäckad. Gym, fika med nya och gamla vänner, datornmek, plugg, kolla lägenhet, mer plugg, förkyld, piratfika, Piratpartiet manifestation, LAN och annan lycka. Jag älskar det!

Men det finns ändå tankar som bidrar till oro och även lite deppighet. Bla. att jag är vaken såhär dags, och således vänt på dygnet igen. Men det ör mycket tankar om sommaren jobb och boende. Kollade på en lägenhet som jag kan komma att bo i, under sommaren. Men jag vill ut och resa en månad, och det är just bara någon månad kvar att bo där då. Vart man då istället ska bo, vad man istället ska jobba med.

Som så är jag inte så orolig, utan jag oroar mig mer för att jag kanske skulle vara mer orolig än vad jag faktiskt är.

Fixar jag sommaren så är det inga problem. Och då kommer vi till en idè jag fått; jag ska sälja nästan allt jag äger och börja om. Anlednigen är dels för att jag har massor med grejer, men ingen lägenhet. Dels att jag får fler boende-möjligheter då jag kan skaffa möblerad lägenhet. Och dels så kan jag istället köpa allt nytt när/om det blir tillfälle för sådant.

Jag vill se Europa, jag vill till Almedalen, jag vill göra klart mina webbprojekt och jag vill kunna uppleva väst-sveriges sommarkvällar fyllda med mys.

Kanske ör detta året för detta. Jag tror faktiskt det.
Postad med Drupal Editor

Dagens Kommando: Enkelt skärmbyte med Disper + ett tillhörande skript.

Disper GUIDen dator som jag använder på heltid, och min egentliga enda arbetssation är en bärbar Zepto Znote G14b. Det tillhör också att jag har en extern skärm inkopplad när jag är hemma och vid skrivbordet. Jag ville enkelt kunna skifta mellan den interna och den externa skärmen eftersom jag nästan alltid har med min laptop när jag ska iväg, och funktionstangenten fungerar inte. Det gick att av-aktivera den interna och aktivera den externa via nvidia-settings, men det krävdes en del steg som jag såg som fullkomligt onödiga och gav mig ut på jakt - och jag fann svaret: Disper.

 

Disper är ett litet program som man kör i terminalen, som enkelt kan göra det jag ville ha gjort bara igenom vald parameter och dessutom både aktivera cloning och extended. Men samtidigt ville jag inte behöva skriva kommandot varje gång, och inte heller kom jag fram till en lösning för att kontrollera vilken skärm som var aktiv, sätta in det i ett skript och låta de båda alternativen att skifta beroende på vilken som är aktiv för tillfället.

Istället gjorde jag ett litet skript som visar en lista med fyra val (Internal, External, Clone och Extended) grafiskt med Zenity, för enkel hantering.

Disper ska fungera med i princip alla nvidia-kort och kanske flera andra kort, se hemsidan. Förutom det paketet så behövs Zenity.
Därför börjar du med att installera de båda paketen 'disper' och 'zenity'.
Tex via terminal:
$ sudo apt-get install disper zenity

Dock måste du lägga till en PPA för disper innan det:
https://edge.launchpad.net/~wvengen/+archive/ppa
I Jaunty, Lucid eller senare så kan du enkelt köra kommandot:
$ sudo add-apt-repository 
ppa:wvengen/ppa

När det väl är klart så laddar du ned mitt skript som är bifogat i detta inlägg. Gör det körbart (Grafiskt) och använd det på valfritt sätt. Tex igenom att koppla en tangentbordskombination som låts köra skriptet.

Sen är det bara att göra sitt val. Funkar det inte så är det Disper som felet ligger hos - detta skript kör bara disper med olika variablar så kom inte till mig om det skulle bli problem.

EDIT: Pga. en säkerhetsprincip i Firefox så går det inte att ladda ner en .sh-fil. Därför har jag lagt upp denna istället. Är dock samma fil, fast utan .sh i slutet:
http://www.danielholm.se/dropbox/disper

Bibliotek av Python-snippets med Acire.

Jono Bacon har återigen skapat ett program som känns lite självklart fast ingen har gjort det innan. Denna gång är det Acire, ett program som innehåller ett växande bibliotek av sk. Python "snippets". Snippets är i princip ett skript som utför det ena eller det andra.

Ska man tex börja programmera och kanske skapa ett program med just Python så kan du hämta snippets med Acire, kombinera dem och sätta dem samman tills du får det resultat som du är ute efter. Alltså istället för att du ska behöva återuppfinna hjulet hela tiden.

Dessutom så kan det vara väldigt bra att ha om du håller på att lära dig Python (som jag). Acire kan även köra varje snippet så att du kan få förståelse för vad varje del av kodern gör.

Installera gör du igenom att köra de tre kommandona nedan i en terminal:

$
sudo add-apt-repository ppa:acire-team/acire-releases ppa:python-snippets-drivers/python-snippets-daily

sudo apt-get update
sudo apt-get install acire python-snippets

SixA - The beginning.

I admit I have been somewhat lazy with the development of SixA - the GUI for the PS3 gamepad. It has been hard to try to learn a new scriptlanguage. Not becuase of its complexity but rather because of my lack of spare time.

But the development is now taking some big (stumbling) steps. The GUI is still in heavy development and I'm still learning to handle signals from the GUI and use them together with some commands and actions. Like adding a new gamepad and tell it what to do.

All the other code is already pretty much done, Thanks to Filipe aka. falkTX. I will just have to implent it to the GUI and the actual SixA.

You can already watch the development, altough it doesnt to anything yet, it's just a GUI. But still you can watch it and perhaps comment with improvements and such.

The code is hosted on Launchpad.

And you can download the latest branch using Bazaar:
$ bzr branch lp:gsixaxis

But you will probably need to install the bzr-package first:
$ sudo apt-get install bzr
(click on the link to install it graphically)

Subscribe to Programmering