Elmdentica release 0.3.0

Elmdentica is getting better all the time 🙂

  1. the toolbar is no longer out of the screen
  2. the timeline now displays (cacheable) icons in the nice bubbles
  3. libcurl is being called with object reuse, which optimizes downloads a bit

So here’s the complementary screenshot, followed by the download links:

Release 0.3.0 in action...
Release 0.3.0 in action...

New elmdentica dev screenshot

Hi, I’m slowly starting to get a better hold on Elementary, once I fix the obvious problem in the screenshot below, I hope to release 0.1.0 tomorrow:

elmdentica now has a nice scrolling friends timeline...
elmdentica now has a nice scrolling friends timeline...

Elmdentica 0.0.2 Screenshot

Hi, by popular request, here’s a screenshot of elmdentica in action. Yes, it’s not pretty, I know… as I learn Elementary (or people make patches) it’ll get improved… 🙂

0.0.2 in action...
0.0.2 in action...

elmdentica release 0.0.2

Ok, a new quick release of elmdentica. Biggest changes are some steps towards a better timeline display, and support for identi.ca errors (as wrong user or password data, for instance).

Get it here while it’s hot (and unusable) 🙂

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.