elmdentica release 0.0.1

As some of you may know, I’m writing an identi.ca client with Elementary for the OpenMoko. This, is it’s first release. It’s almost totally unusable, right now, in great part due to a documentation that could be better (I’m looking at you, Elementary…), but you can already get a gist of what is can do.

Anyway, in the interest of release early, release often, here’s a first working release, 0.0.1:

I won’t hope you enjoy because it’s really crappy, now, but it loads in a jiffy 🙂

In defense of FSF’s Swindle campaign

Some don’t like that FSF is criticizing Amazon for defrauding users of their freedoms with Kindle.

FSF is calling it Swindle, so some guy say it’s whine-like name calling, for instance as in “Andy-Mandy”.

This reveals that this guy, at best, doesn’t know his English. It’s a totally appropriate* accurate wordplay, just check the definition of Swindle:

  • victimize: deprive of by deceit; “He swindled me out of my inheritance”; “She defrauded the customers who trusted her”; “the cashier gypped me when he gave me too little change”
  • the act of swindling by some fraudulent scheme; “that book is a fraud”

See?

Well, at least I hope Andy Lester’s criticism is not because he may have something to gain from Amazon

* so I’m not a native English speaker…

XBMC for Fedora 11

Ok, not yet RPMS but these instructions should work flawlessly as is on Fedora 11.

Firstly, you should add the rpmfusion repositories to your machine, then install a few packages so your build will work:

sudo yum -y install \
        SDL* glew glew-devel libmad-devel tre tre-devel \
        libogg libogg-devel libvorbis libvorbis-devel \
        boost boost-devel bzip2-devel bzip2-libs fribidi* \
        lzo lzo-devel mysql-libs mysql-devel jasper jasper-devel \
        faac faac-devel enca enca-devel hal hal-devel hal-libs \
        cmake gperf nasm libXmu-devel fontconfig-devel \
        freetype-devel libXinerama-devel pcre-devel gcc-c++ \
        sqlite-devel curl-devel libsamplerate-devel libcdio-devel \
        pulseaudio-libs-devel avahi-devel ffmpeg-devel libmad-devel \
        a52dec-devel libdca faad2-devel libmpeg2-devel libass-devel \
        libvorbis-devel libogg-devel libmpcdec-devel flac-devel \
        wavpack-devel python-devel subversion

This will allow for a lot of the dependencies to be made external, which is a good thing!

Now, to fetch the repository of XBMC (well, let’s use the latest, but theses instructions should work with a stable release source package):

mkdir ~/svn ; cd ~/svn
svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/branches/linuxport/ xbmc

It will take a short while to fetch everything, depending on your connection, you may even be better off having a coffee or some tea.

Now you should go into the  ~/svn/xbmc/XBMC/ directory and run configure. My run installs xbmc on /opt/xbmc and enables some external dependencies. Unfortunately, even with the required dependencies some of the options need changes not yet available in the official packages, so we’ll be using some internal versions instead. Don’t worry about it, we’ll just specify the ones which will be external.

Unfortunately, mysql-libs doesn’t supply a “generic” path for the shared object file, so we’ll also need to “hack” its existence before running xbmc’s configure:

sudo ln -s /usr/lib/mysql/libmysqlclient.so.16.0.0 /usr/lib/libmysqlclient.so

./configure --prefix=/opt/xbmc \
  --enable-external-libmad \
  --enable-external-liba52 \
  --enable-external-libmpeg2 \
  --enable-external-libass \
  --enable-external-libvorbis \
  --enable-external-libogg \
  --enable-external-libmpcdec \
  --enable-external-libflac \
  --enable-external-libwavpack \
  --enable-external-python \

This will result in the following output, at the end:

------------------------
  XBMC Configuration:
------------------------
  Debugging:    Yes
  Profiling:    No
  Optimization: Yes
  OpenGL:       Yes
  VDPAU:        No
  Joystick:     Yes
  XRandR:       Yes
  PCRE Support: Yes
  MID Support:  No
  ccache:       No
  PulseAudio:   Yes
  FAAC:         Yes
  DVDCSS:       Yes
  Avahi:        Yes
  External Libraries:   No
  External FFmpeg:      No
  External libmad:      Yes
  External liba52:      Yes
  External libdts:      No
  External libfaad:     No
  External libmpeg2:    Yes
  External libass:      Yes
  External libvorbis:   Yes
  External libogg:      Yes
  External libmpcdec:   Yes
  External libflac:     Yes
  External libwavpack:  Yes
  External Python:      Yes
  prefix:       /opt/xbmc
------------------------

Unfortunately, make failed due to some problem with accessing libjpeg internals. The official package doesn’t contain all you need, so you have to use hack XBMC’s code in order to force using the internal version of libjpeg:

make
In file included from tif_ojpeg.c:35:
/usr/include/jpeglib.h:1096:55: error: jpegint.h: No such file or directory
tif_ojpeg.c: In function ‘OJPEGPreDecode’:
tif_ojpeg.c:1414: error: dereferencing pointer to incomplete type
tif_ojpeg.c:1424: error: dereferencing pointer to incomplete type
tif_ojpeg.c:1425: error: dereferencing pointer to incomplete type
tif_ojpeg.c:1426: error: dereferencing pointer to incomplete type
tif_ojpeg.c:1428: error: ‘DSTATE_INHEADER’ undeclared (first use in this function)
tif_ojpeg.c:1428: error: (Each undeclared identifier is reported only once
tif_ojpeg.c:1428: error: for each function it appears in.)
tif_ojpeg.c:1508: error: dereferencing pointer to incomplete type

Even though it looks awful, just fix tif_ojpeg with this patch file and run make again.

After this, you run make install to install into /opt/xbmc, and if you want to have an X session that launches XBMC automatically, then you can also add

sudo ln -s /opt/xbmc/share/xsessions/XBMC.desktop /usr/share/xsessions/

Now you can create a guest account and launch the computer automatically into that user, running XBMC.

Import VCF contacts into Paroli

Om2009’s telephony application is Paroli, and it uses it’s own contacts database. Ingvaldur Sigurjonsson made a script to import VCF contacts but it wouldn’t work on most of my contacts, which were imported via Bluetooth about two years ago.

Since some had CRLF and others had LF as line terminators (ok, some VCF contacts were hand-made, as it’s a very nice contacts backup format which you can grep, etc…), I hacked the script to handle both cases, but mostly, to handle the case when the phone_info list had only one element, which the script wouldn’t take in account resuling in about 150 contacts lost from 270.

It also doesn’t take in account PREFerred phone numbers, so I removed then with the following command:

sed -i -e 's,;PREF,,' *.vcf

As it is likely helpful to others, here it is under a title which will surely be picked up by search engines for this issue: vcf2paroli

Do you enjoy the results?

Successfully imported 270 contacts!
Successfully imported 270 contacts!

There two things I didn’t like:

  1. it imported multiple times the same contact if it has more than one phone number
  2. clicking on the die produced the expected result but with a bug: some buttons are hidden (so I registered bug #180)
Oops! They don't fit at all! #180
Oops! They don't fit at all! #180

eMusic customer? What does Sony/eMusic deal means?

So I heard lots of rumors about eMusic service changes for existing customers due to the deal they made with Sony. Not wanting to rely on rumors, I wrote eMusic’s customer service asking if there are any changes:

I wish to know whether the Sony/eMusic deal means my 65 downloads per month will be reduced, or maintained at a higher price.

If either happens, I’m seriously considering to cancel my subscription.

Pretty harsh words, but I already didn’t like feeling “enticed” into upgrading my subscription when they previously reduced the number of downloads per subscription. I upgraded so I would come on the up side, rather than NOT upgrading and then wishing to upgrade later on and be screwed due to the reduced download number.

What ended up happening? I upgraded so I gained an advantage, but new customers were screwed, getting a worse deal.

So eMusic answered me!

Thank you for contacting eMusic Customer Support.

Current members will see no change. Prices for new members will change. We’re doing this for two reasons. To help attract new labels and bring back those we all miss and keep us where we need to be as a business.

We really appreciate your being an eMusic subscriber and look forward to providing you with the best value in music downloads.

So if you’re a current customer and the number of downloads changes, you better formally complain at the European level. You were screwed.

It’s sad to see “higher costs” to customers as being an attracting factor for labels. It really shows how much they don’t care for us, only their already quite rich purses, which need a constant feeding.

It’s also sad to see eMusic feels like their business is at stake. It shows how music stores at at the mercy of the major labels for achieving profitability. It also shows how the major labels screw the customer in terms of choice. Stores close down due to costs, and lower sales if they don’t get some of the major hits. This will lead to less choice of the available music selection.

Ok, I replied with my understanding…

Ok, so this means eMusic will not be as attractive to new customers. Is that a way to keep in business?

Hope I’m proved wrong, though.

Which they apparently forwarded to their Marketing Director:

We appreciate that you took the time to give us this feedback.  I’ll make sure our Marketing Director is aware of your email so he’s up to speed on your comments.

We hope that this issue does not impact your enjoyment of eMusic.

It doesn’t impact my enjoyment of eMusic, only for new customers, and with a negative value of impact.

Identi.ca updates for Tue, 2 Jun 2009…

At Tue Jun 02 07:24:04 +0000 2009, @ruiseabra said:
Dvorak replaced every Microsoft product with something better … this quasi-criminal behavior stands alone as reason enough http://www.dvorak.org/blog/2009/05/30/microsoft-cannot-be-trusted/
At Tue Jun 02 13:17:01 +0000 2009, @ruiseabra said:
♻ @glynnmoody: utiliza Windows? Então o Twitter está a tornar-se num pesadelo de segurança: http://bit.ly/VDwpA #security #twitter #windows
At Tue Jun 02 19:58:42 +0000 2009, @ruiseabra said:
How can yum waste so much memory? Can’t even install anything on my !olpc !fedora 🙁
At Tue Jun 02 19:59:10 +0000 2009, @ruiseabra said:
!olpc !fedora even with openbox as WM, there’s still some garbage wasting memory away.

Identi.ca updates for Mon, 1 Jun 2009…

At Mon Jun 01 19:11:19 +0000 2009, @ruiseabra said:
Na SIC Notícias estão a falar de um Software que custa mais de mil € para os cegos utilizarem computador. E se instalassem um GNU/Linux?
At Mon Jun 01 19:12:38 +0000 2009, @ruiseabra said:
Os GNU/Linux mais populares vêm com software de apoio aos invisuais TOTALMENTE GRATUITO. Não desperdicem € melhor gastos noutras coisas!
At Mon Jun 01 19:15:00 +0000 2009, @ruiseabra said:
@sicnoticias: o Software Livre tem SW de apoio aos invisuais TOTALMENTE GRATUITO, porque não fazem um artigo sobre isso?
At Mon Jun 01 19:27:29 +0000 2009, @ruiseabra said:
Acho que a merda de software (feito em Microsoft tech, claro) de questionários da Netcabo não funciona bem com o Firefox…
At Mon Jun 01 19:37:00 +0000 2009, @ruiseabra said:
Era o Perdidos e Achados, email enviado 🙂

Identi.ca updates for Sun, 31 May 2009…

At Sun May 31 12:01:54 +0000 2009, @ruiseabra said:
@include tuturutu
At Sun May 31 14:24:07 +0000 2009, @ruiseabra said:
cjb’s 20090528.img copy-nanded to my !olpc failed to boot, let’s hope 20090525 fares better…
At Sun May 31 14:30:55 +0000 2009, @ruiseabra said:
Nopes, it didn’t 🙁 !olpc
At Sun May 31 15:07:01 +0000 2009, @ruiseabra said:
@bugabundo awesome. A pity that stream doesn’t seem to work for me.
At Sun May 31 18:21:20 +0000 2009, @ruiseabra said:
!olpc !fedora Was suffering from a little bug which appears to disappear after a few boot retries (took about 4 for me). Now let’s save mem

Identi.ca updates for Sat, 30 May 2009…

At Sat May 30 19:00:48 +0000 2009, @ruiseabra said:
Wondering why !ubuntu ships a borked #tsclient 🙁
At Sat May 30 19:07:33 +0000 2009, @ruiseabra said:
@bugabundo I mean it even has borked pt translation that doesn’t have some of the reported bugs upstream.
At Sat May 30 19:07:54 +0000 2009, @ruiseabra said:
@bugabundo I mean, Ubuntu’s .po file has serious bugs in pt translation
At Sat May 30 19:08:21 +0000 2009, @ruiseabra said:
well, gnome support build is fixed now, so I see no reason for the package mainteners in Ubuntu to properly upgrade.
At Sat May 30 19:14:58 +0000 2009, @ruiseabra said:
@spam: new spammer on the block: @adtrackzpro
At Sat May 30 19:15:35 +0000 2009, @ruiseabra said:
@bugabundo we should hire some people to do translations full-time
At Sat May 30 19:23:41 +0000 2009, @ruiseabra said:
@bugabundo tenho teu quê??
At Sat May 30 19:24:00 +0000 2009, @ruiseabra said:
Integrated !ubuntu ‘s patch 13 for #tsclient
At Sat May 30 19:26:38 +0000 2009, @ruiseabra said:
Integrated !ubuntu ‘s patch 15 for #tsclient
At Sat May 30 19:27:39 +0000 2009, @ruiseabra said:
!ubuntu ‘s patches 18 and 28 for #tsclient are no longer relevant.
At Sat May 30 20:30:18 +0000 2009, @ruiseabra said:
Ahhh… nada como um duche de água fresca para relaxar deste dia onde vi 37 no termómetro ☺
At Sat May 30 20:30:39 +0000 2009, @ruiseabra said:
@bugabundo não faço a menor ideia 🙂
At Sat May 30 20:32:12 +0000 2009, @ruiseabra said:
@spam: new #spammer on the block: acdc998
At Sat May 30 21:34:39 +0000 2009, @ruiseabra said:
Integrated !Ubuntu ‘s patch 29 for #tsclient
At Sat May 30 21:36:57 +0000 2009, @ruiseabra said:
Integrated !Ubuntu ‘s patch 14 for #tsclient
At Sat May 30 21:53:39 +0000 2009, @ruiseabra said:
@daw thanks for the tip, I thought I was! 🙂