Category Archives: Open source

Ett sista försök

Igår blev det inte så mycket programmerat som jag egentligen skulle velat. Men lite grann blev det iallafall.

De trevliga grabbarna på #despotify var väldigt engagerade med att få in mig i deras irc kanal #despotify på EFNet för att diskutera just spytify och hur man skulle få igång det.

Det blev inte jättemycket diskussioner dock, men det berodde nog mest på att jag inte var så aktiv på kanalen utan satt länge och letade efter information om hur Qt “tar över” trådarna utan att hitta något vettigt. Mitt sista försök blev till att göra spytify till sig egna python tråd och låta Qt sköta sitt, men det fungerade inte heller utan fick enbart fönstret att verkligen hänga sig. Mycket märkligt.. Men jag lärde mig att skapa trådar i python iallafall så helt i onödan var det inte :-).

Koden: http://pastebin.se/198606

Lite senare på kvällen blev det en diskussion med “Kagee” som också hade försökt sig på att göra en spytifyklient med pyQt och även libdespotify med C++, med precis samma resultat som mig. Den enda gemensamma nämnaren till problemet jag kan komma på är gstreamer som används för uppspelningen och att libdespotify trådar en massa som kanske “tar över”. Jag är osäker, men det är en teori :-).

Kagee hade iaf löst sitt problem med QProcess och simple-klienten. Något jag också funderat på men skippat för att det inte känns rätt då man blir helt bunden till vad simple klarar av.

Jag ger mig på ett sista försök med pyQt/pyKDE idag. Denna gången ska jag starta två trådar där en är QT-tråden och den andra spytify, så de inte får något direkt med varandra att göra. Det kanske kan fungera, men å andra sidan vet jag inte ifall det är möjligt att köra MainWindow i en egen tråd. Vi får se :-).

Fungerar inte detta ger jag upp pyQt och går på wxWidgets istället!

Nu är lunchen snart slut så.. Synes!
/marcus

Försök med despotify med python bindings

Jag spenderade mestadelen av kvällen med att programmera lite pyQT/pyKDE med despotify python-bindings.

Till en början tänkte jag “Gud vad lätt detta måste vara. Bara att skriva lite pythonkod och så spelar den min musik.”

Och i 90% av fallet var det så också. Det gick enkelt att söka och klistra in i en ListWidget, skapa action på signaler som dubbelklick för att spela.

Men…. När uppspelningen börjar fryser fönstret tills låten är klar vilket är lite konstigt, ifall man kör test.py (i despotify/src/bindings/python/) går verkar den skapa sin egna tråd och gå vidare.

Vilket den även gör här, men inte på samma vis. När musiken börjar spela kommer det fram felmeddelande i terminalen som säger:

  • QMetaMethod::invoke: Unable to invoke methods with return values in queued connections
  • QObject ::startTimer: QTimer can only be used with threads started with QThread

Visst, hade jag använt något av de objekten hade jag förstått att det kunde gå fel. Men det gör jag inte (ivf inte medvetet).

Mitt första försök till lösning var såklart att skapa en egen tråd till spytify där den kan få hänga sig hur mycket den vill. Sagt och gjort, men det hjälper inte, MainWindow hänger sig lik förbaskat!

Nästa försök var att göra spytify global och därmed utesluta den direkt ut MainWindow-funktionerna, men det fungerade ej heller.

Och nu som sista grej var att koppla bort KDE helt och bara köra pyQt, men lika mycket stopp där.

Jag har inga idéer kvar.

Hade varit jättetacksam för hjälp med det här.
Sources: http://github.com/marcusfollrud/KSpot/

Screenshot

Ang. (de)Spotify

Jag har länge varit ett fan av despotify-gänget och deras fantastiska entusiasm när det gäller att få spotify på skrivbordet med öppen kod.

För någon månad sedan skapade dom bindings till både python och ruby, men fortfarande finns där inte någon klient till skrivbordmiljöerna (förutom om man gillar java…). Vilket har fått mig att tänka:

Hur svårt är det att skapa en klient som använder libdespotify och som sen bygger på exempelvis python?
Vilket fick mig att tänka ännu ett steg. Jag programmerade just pyKDE för min plasmoid (okej, den kunde blivit bättre), och även om jag inte är killer på det så kanske det går att lära sig relativt lätt. För python är ju trots allt inget direkt svårt språk. Någon mer som är sugen?

Detta tål att täna på, precis som allt annat. Jag måste först få igång mitt blomprojekt, då jag har alla delar. Så fort det är klart ska plasmoiden bli lite bättre, med stöd för taggar, hämta kategorier, ladda upp bilder i mediabiblioteket och göra KTextEditor-bakgrunden vit!

Det kanske redan finns en despotifyklient till KDE? Tipsa gärna isåfall.

Publish to WordPress Plasmoid

Vill du blogga på din wordpressblogg utan att aktivt gå in via din webbläsare?

Isåfall har jag en lösning att erbjuda dig 🙂

Publish to WordPress Plasmoid är en plasmoid till KDE4 som enkelt låter dig skriva ett blogginlägg utan att gå in direkt på själva bloggsidan.

Den är väldigt enkelt skriven och är baserad på pyKDE och wordpresslib.

Just nu erbjuder den inget annat än det mest simpla. Att skapa ett inlägg med enbart en titel och text.

Funktioner som skulle kunna integreras är taggar,kategorier och inmatning av bilder. Men, det har jag inte gjort i denna release.

Vill du testa den?
Ladda ner här

Kolla källkoden på github (GPL licensierad):
http://github.com/marcusfollrud/Publish-to-Wordpress-plasmoid/tree/master

Kontaka mig gärna ifall du skulle vilja hjälpa till med något!
mail: marcus.follrud<canelbull>gmail.com

Skapandet av en Plasmoid

Jag har sagt det innan, jag säger det relativt ofta, jag säger det igen:
KDE är fantastiskt!

Detta inlägget kommer lite sent p.g.a jag har mestadelen av kvällen suttit och programmerat en plasmoid för att skapa inlägg till wordpress bloggar (bland annat min egen).

Det är inget som är svårt, att skapa en plasmoid. Man har alla möjligheter till att göra det. Du kan skapa en plasmoid om du har kunskaper inom:

  • Javascript
  • C++ (QT)
  • Python
  • Ruby

Många som någon gång sysslat med utveckling kan något av de här språken. Eller iallafall någolunda förstå sig på dem, vilket var KDE-utvecklarnas tanke när Plasma skapades; att göra det enkelt för alla att skapa tillägg! De har verkligen lyckats, för särskilt svårt är det inte!

Plasmoiden kommer att fungera väldigt enkelt. Du lägger in den, konfigurerar efter din bloggadress + credentials och voila. Sen är det bara att skriva :-).

Jag har tyvärr ingen screenshot att lägga upp just nu (Sitter med Linux Mint på min AAO, som inte riktigt gillar KDE), men uppdaterar inlägget imorgon!

Projektet finns ute på github.com för den som vill kolla koden 🙂
Länk: http://github.com/marcusfollrud/Publish-to-Wordpress-plasmoid/tree

Ha en bra kväll/natt
Marcus

Vattna blommorna – Del 5

Det blev inte så mycket programmerat igår, men lite grann fick jag till iaf.

Konsten att förstå sig på en PIC-processor kräver att man läser en massa dokument. Och Microtec har dokument för sina Pic:ar, men de vill givetvis inte skriva något annat än assembler.

Men SDCC verkar inte ha några exempel, än de man surfar efter. Mina skills är helt enkelt inte de bästa när det gäller PIC-programmering generellt. Har jag tagit mig vatten över huvudet, eller komme jag klara det efter lite tid? Vi får se, men jag ger mig inte så fort =).

Jag hittade ett projekt som hette i4uC, som är ett öppen källkodsbaserat IDE för Mikroprocessor som använder SDCC och där PIC16F690 stöds. Det gick inte så bra att installera i ubuntu, så jag får göra det i Arch lite senare, som ivf är en miljö med många nya paket och inte 3 år gamla. Det får bli en senare utmaning.

Det var ett litet sidorpår. Jag gjorde en del programmering igår, bland annat testade jag RC-utgångarna för att få leddarna att lysa. Man använder egentligen bara en variabel för att sätta igång de olika, där 0x00 är alla avstända och 0x0F är alla 4 tända. Kombinationerna ser ut såhär:

Hex	Led1	Led2	Led3	Led4
0x00
0x01	x
0x02		x
0x03	x	x
0x04			x
0x05	x		x
0x06		x	x
0x07	x	x	x
0x08				x
0x09	x			x
0x0a		x		x
0x0b	x	x		x
0x0c			x	x
0x0d	x		x	x
0x0e		x	x	x
0x0f	x	x	x	x

Jag gjorde tested enkelt genom att bara skriva lite kod som ändrar hexkoden och väntar 100ms:

#include 

typedef unsigned int word;

word at 0x2007 __CONFIG = (_INTRC_OSC_NOCLKOUT & _CP_OFF & _WDT_OFF & _BOR_OFF & _PWRTE_ON & _MCLRE_OFF & _IESO_OFF & _FCMEN_OFF);
void delay_ms(long ms)
{
    long i;

    while (ms--)
        for (i=0; i < 100; i++)
            ;
}

void main () {
	TRISC = 0x00;	/* PORTC, All outputs */
	PORTC = 0x00;
	while (1)
	{
	 PORTC = 0x00;
	 delay_ms(100);
	 PORTC = 0x01;
	 delay_ms(100);
	 PORTC = 0x02;
	 delay_ms(100);
	 PORTC = 0x03;
	 delay_ms(100);
	 PORTC = 0x04;
	 delay_ms(100);
	 PORTC = 0x05;
	 delay_ms(100);
	 PORTC = 0x06;
	 delay_ms(100);
	 PORTC = 0x07;
	 delay_ms(100);
	 PORTC = 0x08;
	 delay_ms(100);
	 PORTC = 0x09;
	 delay_ms(100);
	 PORTC = 0x0a;
	 delay_ms(100);
	 PORTC = 0x0b;
	 delay_ms(100);
	 PORTC = 0x0c;
	 delay_ms(100);
	 PORTC = 0x0d;
	 delay_ms(100);
	 PORTC = 0x0e;
	 delay_ms(100);
	 PORTC = 0x0f;
	 delay_ms(100);
	}
}

Efter det är det bara att kompilera med SDCC och skicka ut genom PicKit2:

$ sdcc -mpic14 -p16f690 -V main.c && pk2cmd -B/usr/share/pk2/  /PPIC16F690 -Fmain.hex -M -T

Nu ska jag iväg till mina föräldrar. so long.

Vattna blommorna – Del 4

Det blev aldrig något blogginlägg igår, sorry! Har satt som mål att skriva något ivf varje dag, så jag inte tappar fokus. Men, även om jag glömde skriva igår har jag inte tappat fokus =).

PicKit

Vid lunchtid igår åkte jag ner till NovaLund och köpte mig ett PicKit2, Supermikrobrytare, Relä, Kabel och annat sådant trevligt som varje tekniknördig man kräver för tillfredsställning!
Berättade lite om mitt projekt för clerken (Svenskt ord här tack) som tyckte det lät roligt, och även han hade haft planer på att göra ett, men som aldrig blivit av 🙂 (tänka sig, det finns fler som snackar utan verkstad).

Nåväl, efter jobb blev det hem och prova det nya kittet, och till min besvikelse så vill MikroChip enbart skriva sin kod i assembler. Assembler är sååå 1980… :). Jahapp, ut och kolla på nätet vad det fanns för några bra grejer som kunde kompilera C-kod och som kunde köras i min PIC16F690 (som medföljde). Och efter lite sökande på nätet hittade jag att 16f690 inte var särskilt väl anpassad för att skriva C-kod. GAH!

En PIC18F2550
En PIC18F2550

Det fick bli iväg till kjellan igen och köpa mig en annan PIC. Denna gången var det inte en kunnig/intresserad clerk dock, utan det fick bli standard-väla-personalen där kunskapen sträcker sig till DLINK == ROUTER. Nåväl, jag var rätt säker på vad jag skulle ha, men behövde veta ifall den passa, vilket han inte visste (Nu ska jag nog inte vara så hård mot honom egentligen, han sa att det var hans första dag! Han löste det galant med att hämta delen och lova att det gick att returnera ifall den inte passade).  Jag hade två alternativ på PIC:ar, PIC18F2550 & PIC18F4550. 4550 såg ut att vara alldeles för stor, så det fick bli 2550 som jag läst skulle vara bra för C-kod. Jag betalar 79:-, kör hem glatt tillsammans med Angie (som snällt följde med som sällskap :), kommer hem och ser att den har 4 pinnar för mycket…. Jag höll på att bli tosig! Det var väll fanken vad svårt det skulle vara att få tag i något som fungerar!

Mer forum. Kan man öht skriva sitt program i C eller måste man skriva det i assembler. Läser något om SDCC, klickar och blir överlycklig. Ett öppenkällkodsprojekt för Mikroprocessorer! Jippi! Dom har lagt in stöd för de flesta, och Microchips PIC:ar är påväg in!

Installerar, börjar koda men inser att det inte var så väl dokumenterat när det gällde på hur man skulle göra. Nåja! Det ordnar sig säkert. Det gäller bara att hitta rätt i pic16f690.h filen.

Just nu ser min kod ser ut enligt följande:

#include <pic16f690.h>

void main(void){
//Jaaadåå vi har ett c-program som görs om till assembler och därefter till binärkod!
//Work in progress haha

}

Så, ikväll, tillsammans med lite rötjut kan det bli mycket kodat!

Hoppas Andjelka inte tycker jag är en pina för jag nördar mig…

Mer rapport ikväll!
Marcus

Vad är "open source" för dig?

Öppen källkod, engelska Open Source, eller öppen programvara, är datorprogram där källkoden är tillgänglig att använda, läsa, modifiera och vidaredistribuera för den som vill. Detta gör att användaren kan försäkra sig om att programmet gör vad det ska, eller anpassa det till sina behov. Sådana modifikationer erbjuds vanligen tillbaka till den ursprunglige upphovsmannen, som kan välja att göra dem till en del av den officiella versionen.

Öppen källkod är dock inte nödvändigtvis gratis, som i fallet med freeware. Men genom att man har rätt att ändra och kopiera i den gör att den oftast är gratis eller har lågt pris. När öppen programvara kostar mer brukar ingå support eller stängda program.

Texten ovan är kopierad rakt av från Wikipedia.se där det informeras om vad öppen källkod, rent tekniskt betyder.

De flesta av er känner säkert till båda uttrycken “Open source” och “Free software“, som skiljer sig lite grann. Personligen har jag alltid varit mer en “Open source”-människa än en “Free software”-människa. Mest pågrund av att jag aldrig känt mig tvingad till att bara köra saker som är GPL-licensierade. Sen gillar jag inte riktigt Stallman, men jag vill inte gå in på politik och dålig skäggväxt.

Jag fullkomligt älskar tanken med att källkoden till det man använder och tycker är bra finns tillgänglig för alla att kika lite på. Det ger mig friheten att ändra lite på det jag inte tycker om, samt att det inspirerar till att själv hjälpa till, komma med idéer, fixa någon bugg och liknande. Man blir involverad och mer hjälpsam (Dvs, lite bättre människa!)

För att nämna tre projekt som verkligen betyder något för mig så har vi:

  1. KDE
    • bättre skrivbordsmiljö finns inte (enligt mitt tycke), och dess utvecklare går verkligen på hala linan med vassa idéer som blir hur bra som helst, varje gång
  2. PocketTwit
    • Litet smidigt öppen källkodsbaserat twitterprogram för din Windows mobile, fungerar väldigt bra och har många extragrejer integrerade.
  3. VLC
    • Hur bra är det inte att kunna spela nästintill allt?

Vad är open source för dig?
Vilka 3 program baserade på open source värderar du högt?

Trevlig kväll
/marcus