Personal notes on my HTPC setup

Posted on novembre 7, 2009 by admin.
Categories: Linux, Matériel, je suis hot..

System:

Intel Core2 Duo E8400, 3.0gHz
2Gb RAM
1Tb Hard Disk
Asus P5N7A-VM Motherboard with:

  • nForce 710i All-integrated Chipset
  • GeForce 9300M Graphics Card compatible with nVidia CUDA, PhysX and VDPAU
  • 4 video outputs: VGA, DVI, HDMI and DisplayPort (sadly, DP is video-only here)

This is my personal basic HTPC system. Not exactly the latest tech, nor the roaring beast some of us geeks may dream to have, but it decodes 1080p x264-compressed, 5.1-channel video files without so much as a hiccup… if configured correctly. And it wasn’t a walk in the park, more like a good hike with some slippery rocks here and there.

First: VDPAU is a b*tch. It requires pretty new drivers, which are, fortunately, already available for the karma-filled Karmic Koala Ubuntu distribution. Before even -trying- to HTPCize the setup, you need the video drivers and the VDPAU extensions. Look for vdpau in synaptic.

Second: VDPAU is a b*tch, the return! XBMC, my personal favorite HTPC software stack, supports VDPAU stably with the nightly builds; you need to use a Personal Package Archive because of this. Add

deb http://ppa.launchpad.net/team-xbmc-svn/ubuntu karmic main

to your repositories so that you can apt-get the latest XBMC build.

Third: Don’t approach PulseAudio with a 10-foot pole!

Fourth: To get sound outputted to your receiver or TV through the HDMI plug without losing quality, put this in your /etc/asound.conf file:

pcm.!default {
  type plug
   slave {
       pcm "hdmi"
   }
}

You’ll also have to tell XBMC to use the default sound card and force sound output through hdmi (note the no-caps). That’s in XBMC’s system settings, for the audio hardware. Poke around and find it… If you’re here reading this, it means you know your way through computer stuff :P

Fifth: Install

xbmc-standalone

so you can use XBMC as your desktop environment. That way, your system can dedicate everything to its media centre tasks.

There we go. That covers the basics of my currently-working setup that pushes a DTS-enabled compressed movie’s DTS feed directly to my receiver. Feel free to contact me for more info.

EndNote: Yes, Eric, you pwned me. You get a beer and a cookie next time you’re in Montreal.

Cachez cette vieille antenne que je ne saurais voir…

Posted on septembre 1, 2009 by admin.
Categories: Uncategorized.

Tel est le discours classique de n’importe qui ayant troqué la bonne vieille antenne métallique, signe des temps anciens, pour la câblodistribution telle que distribuée par Vidéotron, Rogers, Shaw ou Cogeco, et je ne parle ici que des distributeurs en Ontario et au Québec. Tel est le discours de ceux qui n’ont pas encore adopté le câble, faute de moyens ou de situation géographique reculée (certains chanceux ayant gagné la couverture du câblodistributeur sur une simple partie de golf… classique.). Tel est le discours… de ma mère.

Et ils sont tous tombés dans le panneau. Ou du moins, ils sont en bonne voie d’avoir un gros « reality check » technologique.

Depuis maintenant deux ans tout au plus, il y a dans la région du grand Montréal quelques antennes diffusant, et ce n’est pas une blague, un signal numérique sur les ondes hertziennes. Et pas n’importe quel signal numérique: c’est du vrai, du beau, du gros HD. Si si, le format qui vous permet de voir les pores de Brittneh! Bon d’accord, c’est pas du 1080p (en fait c’est du i, mais passons), mais c’est tout de même amusant de voir qu’on peut encore se servir de ces bonnes vieilles ondes pour diffuser de la vidéo et du son d’extrêmement haute qualité.

C’est pas parfait, je l’avoue: la neige a troqué sa place pour de la corruption au décodage, donc des fois le son et/ou la vidéo partent. J’en conviens, c’est chiantissime. Mais c’est tout de même mieux ça que de payer 40$ par mois pour le simple fait d’écouter la SRC (CBC-F), Télé-Métropole (TVA, pour ceuxsses qui l’écoutent – et eux ne diffusent pas encore en HD par les airs… Voir: TVA+Québécor), V/TQS, TQc et RDI (ce dernier diffusant en direct sur Internet, voyez-vous ça)… Ainsi que NBC, WCAX, FOX, PBS et quelques autres chaînes américaines, si vous êtes chanceux.

Sur un tout autre ordre d’idées: on a installé une antenne chez mes parents ^^

Une façon d’utiliser QSignalMapper efficacement

Posted on mars 29, 2009 by admin.
Categories: Eclipse, Koro, Programmation, Qt, je suis hot..

Bon, je ne m’en cacherai pas, je suis un addict de la programmation. J’adore programmer, j’en mange, j’en rêve (ou presque), etc… Et je travaille aussi présentement (avec Cyphermox pour ne nommer que celui-là) sur un projet personnel qui ne décolle pas encore, mais qui a du potentiel… Enfin bref. L’une de mes décisions de conception est d’utiliser un système de fonctionnalités par greffons (plugins), de façon à plus ou moins forcer une bonne division encapsulée des fonctions par objet. Cette approche a le mérite d’économiser un peu sur la mémoire et de ne pas avoir à rechanger le programme au complet parce que y’a un programmeur naze qui a mal compilé la dernière version de la librairie et que ça envoie un password en texte clair sur paypal. Cette décision m’a permis de développer une expertise côté chargement de greffons avec Qt… Mais qu’en est-il du déchargement de greffons? Y a-t-il un moyen de décharger des greffons de la mémoire tout en gardant le greffon dans la totale ignorance de son parent? … Eh bien oui! J’ai utilisé une fonctionnalité de Qt appelée QSignalMapper pour réussir à assigner une fonction de déchargement unique à chaque greffon chargé en mémoire. Fun times, mais ce n’est pas de tout repos.

Tout premièrement, sachez que QSignalMapper est awesome.

Deuxièmement, mon approche pour utiliser QSignalMapper a été de faire un objet d’ »attribution de signaux ». Il possède un constructeur qui prend en entrée un pointeur vers l’objet de « cleanup »; un pointeur char* vers la fonction à appeler pour se débarasser des objets qui lui seront attribués; et le classique pointeur vers le parent, présent dans tout QObject. Après, pour la destruction des objets en tant que tel, il y a une fonction qui prend en entrée une Action (de menu ou de bouton, tant que le signal « triggered() » est lancé) et un pointeur QObject vers l’objet à détruire. Cette-dite fonction créera un AUTRE objet, que j’ai appelé « ActionPluginBridge », et qui est là pour les besoins de « pureté » et de mémoire des signaux à attribuer. De cette façon, je peux « nettoyer » le QSignalMapper au complet à chaque nouvelle attribution. En faisant ça, c’est autrement plus facile d’être sûr que c’est bien attribué et à toutes fins pratiques stable (vive les foreach, soi dit en passant).

Vous avez maintenant ci-haut la structure que j’ai utilisée pour utiliser une même fonction plusieurs fois en gardant l’encapsulation intacte et en ne me faisant pas c…à écrire du code superflu. Là faut juste que je réussisse à faire déguerpir les objets sans crahser… ;)

Code available on request. Évidemment sous GPL, bande de capitalissssssss.

Commentaires spéciaux:

Patrick K. Gauthier: C’est peut-être « impur » comme approche mais je suis comme tu le sais obsédé par le platform-neutre, donc chut. Et ça va compiler sur Linux, Darwin et Windows, donc DOUBLE-chut.

Tablettes, convertibles et autres portables à écran tactile

Posted on janvier 19, 2009 by admin.
Categories: Matériel, Programmation, je suis hot..

Bon, finalement, je prends le temps de m’arrêter à écrire ce billet. Ça fait très longtemps que l’idée des TabletPC (de tous genres, évidemment) me trotte dans la tête, depuis les ardoises classiques (un ordinateur complet avec seulement un écran tactile pour le contrôler) jusqu’aux convertibles, à la mode depuis quelques années, qui sont des ordinateurs portables classiques avec un écran (tactile, évidemment) qui se tourne et se replie sur le clavier pour donner une « feuille » sur laquelle on écrit. Je trouve la deuxième option intéressante, car elle offre deux façons distinctes d’utiliser l’ordinateur. Alors, je commence ce billet, un peu le fruit de mes réflexions et désirs d’acquisition :P

Premièrement, comme énoncé plus tôt, l’idée des tablettes m’intéresse depuis que j’ai découvert que la technologie existait – il y a donc de cela un peu moins de 5 ans. Pouvoir prendre des notes de cours sur un bloc-notes électroniques qui n’est aucunement salissant, a une empreinte écologique un peu moins dommageable que d’utiliser un bloc-notes papier+crayon+taille-crayon (disons qu’à la longue ça fait assez gros comme feuilles à recycler à l’université) et sur lequel on peut écrire relativement n’importe où (c’est dur en dessous, pas comme un bloc-notes classique, il FAUT une surface dure pour eux!) est assez intéressant comme principe. De ce fait, la prochaine acquisition que je planifie comme ordinateur portable personnel sera une tablette « lettre US » – non une tablette basée « netbook », car celles-ci sont en planification présentement.

Status update (encore? wtf…)

Posted on novembre 11, 2008 by admin.
Categories: Linux, Uncategorized, je suis hot., meuh.

1- Yeah, STAGE. J’ai un stage chez Ericsson Canada… Et il est de 8 mois! NICE. Je vais essayer de me faire un nom tiens :)

2- je suis en fusil contre Linux, blog post à venir.

3- J’ai finalement changé ma atheros AR5418agn pour une intel 4965agn. Mieux pour linux. Surtout avec les sleepmode. Là faut juste que je réussisse à ce que la souris se soumette à ma volonté – va pas être facile ça!

Status Update

Posted on octobre 20, 2008 by admin.
Categories: Uncategorized.

1- Nouvelle feature de mon domaine: jvais me mettre un petit laconica sur miniblog.cybikbase.com au cas où ça me tente pas d’écrire. Je sais pas bloguer correctement, foutez-moi la paix!

2- New: Entrevues de stage cette semaine et la semaine prochaine. À date, y’a Axa (mtl) et la CSDA (repentigny). L’un est hot, l’autre awesome.

Solution pour un bogue dans Eclipse + QtIntégration

Posted on août 20, 2008 by admin.
Categories: Eclipse, Programmation, Qt.

Comme certains d’entre vous le savent, j’essaie de coder en C++ avec QT. J’ai toujours des problèmes avec mes interfaces de développement… Sauf en Windows, que j’ai tout récemment, et totalement, lâché.

L’un de mes derniers problèmes est survenu tout récemment (en date du 20 août). Le 18 août, tout fonctionnait bien avec Eclipse. L’intégration chargeait, tout affichait, blah. Le 19, après moult installations, y’a quelque chose qui, manifestement, s’entêtait à ne pas fonctionner, preuve en est, tout sauf IntégrationQT chargeait.

Le bogue est bien simple mais cryptique à SOUHAIT: QtIntegration, pour une raison ou une autre, est TOTALEMENT incompatible avec GTK-Qt-engine (nom de paquet gtk-qt-engine et/ou gtk-qt-engine-kde4, sous Intrepid Ibex et/ou Hardy Heron, selon les dépôts). Vous n’avez qu’à désinstaller la bête par synaptic ou avec « sudo apt-get remove gtk-qt-engine gtk-qt-engine-kde4″.

Si vous voulez tout de même avoir une apparence attrayante aux yeux (qui n’en veut pas!), vous pouvez charger « gnome-settings-daemon » au démarrage de KDE (System Settings -> Advanced -> Autostart).

Final Fantasy XIII sur 360!

Posted on juillet 17, 2008 by admin.
Categories: Uncategorized.

OH MON DIEU VÉNÉRÉ (même si je ne vénère présentement aucun dieu) QUE JE SUIS HEUREUX. Je suis un nerd fini et un amateur de Final Fantasy. Donc, FF13 sur ma console « principale » est un RÉEL PLAISIR, vu que j’aime pas sony.

FF13 sur 360!

Gotomeeting!

Posted on juillet 4, 2008 by admin.
Categories: Uncategorized.

GotoMeeting

Choses intéressantes

Posted on juin 13, 2008 by admin.
Categories: Uncategorized.

1- Faut absolument que je me fasse des cartes d’affaires. Qqn a une idée?

2- Faut aussi que je me fasse un sous-site plus professionnel… Un blogue comme page d’accueil, ça se fait pas à part chez www.nioutaik.fr … :P

Bonne journée!