Keep Da Link

To content | To menu | To search

Thursday, August 7 2008

Installation de Gentoo 2008.0 sur une dedibox XL

Dedibox à l'heure actuelle ne fournit qu'une version 2007.0 de Gentoo en 32 bits.
Les core duo 2 sont des cpus 64bits en emulation amd64, voici les étapes à suivre pour installer une 2008.0 en 64bits:

Installer d'abord ubuntu en 64 bits pour avoir un rescue en 64 bits oui c est nul ...
Choisissez un partionnement qui ressemblera à votre future installation cela vous évitera de devoir le refaire à la main.

Une fois l'installation terminé, lancez la console de secours par l'interface dedibox, connectez vous

EDIT: ATTENTION dans mon exemple la swap est sur /dev/sda1 et mon / sur /dev/sda2, rien ne vous oblige à suivre le même partionnement, l'installation est la même que pour gentoo standard, la seule nuance réside dans le fait de faire cela a distance sans live cd, et d'avoir un kernel qui boot correctement.

mkdir /mnt/gentoo
mount /dev/sda2 /mnt/gentoo
cd /mnt/gentoo/
wget ftp://ftp.free.fr/pub/Distributions_Linux/Gentoo/releases/amd64/2008.0/stages/stage3-amd64-2008.0.tar.bz2
tar xvjpf stage3-amd64-2008.0.tar.bz2 
rm stage3-amd64-2008.0.tar.bz2 
wget ftp://ftp.free.fr/pub/Distributions_Linux/Gentoo/snapshots/portage-20080806.tar.bz2
tar xvjf portage-20080806.tar.bz2 -C /mnt/gentoo/usr

Editez /mnt/gentoo/etc/make.conf pour y faire figurer les infos suivantes:

CFLAGS="-march=nocona -O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j3"
GENTOO_MIRRORS="ftp://ftp.free.fr/mirrors/ftp.gentoo.org/ "
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
cp -L /etc/resolv.conf /mnt/gentoo/etc/
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
export PS1="(chroot) $PS1"
emerge --sync

Editez /etc/locale.gen

en_US ISO-8859-1
en_US.UTF-8 UTF-8
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15
fr_FR.UTF-8 UTF-8
locale-gen
cp /usr/share/zoneinfo/Europe/Paris /etc/localtime
emerge gentoo-sources
cd /usr/src/linux

Pour le kernel il vous faut le module r8169 pour la carte réseau, et choisir Core duo 2 cpu Family 6, voici un fichier de config pour le kernel-2.6.25-gentoo-r7 qui fonctionne.

Editez /etc/fstab

/etc/fstab
/dev/sda2               /               ext3            noatime         0 1
/dev/sda1               none            swap            sw              0 0

Attention chez moi la swap est en début de disque en général, vous avez un /boot et un / qui peuvent être ailleurs voir la doc d'install de gentoo.
Editez /etc/conf.d/hostname

Editez /etc/conf.d/net

dns_domain_lo="nobugware.com"
config_eth0=( "88.191.xx.xx netmask 255.255.255.0 brd 88.191.xx.255" )
routes_eth0=( "default via   88.191.xx.1" )

Editez /etc/hosts

emerge -uDv system
emerge reiserfsprogs mirrorselect metalog ...
rc-update add metalog default
emerge vixie-cron
rc-update add vixie-cron default
crontab /etc/crontab
Editez /boot/grub/grub.conf
default 0
timeout 30

title Gentoo Linux

root (hd0,1)
kernel /boot/bzImage root=/dev/sda2

Ici encore attention chez vous le root n'est peut être pas sda2 ni (hd0,1)

grub>  root (hd0,
 Possible partitions are:
   Partition num: 0,  Filesystem type unknown, partition type 0x83
   Partition num: 1,  Filesystem type is ext2fs, partition type 0x83

grub>  root (hd0,1)
 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... failed (this is not fatal)
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,1)"... failed (this is not fatal)
 Running "install /boot/grub/stage1 (hd0) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded
Done.
emerge openssh
rc-update add sshd default
rc-update add net.eth0 default

Configurer /etc/conf.d/clock
Ajouter un passwd root eventuelement
emerge sudo et le configurer

useradd -m -G users,wheel,audio -s /bin/bash john
passwd john
umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
reboot

Vous avez une Gentoo 2008.0 64 bits sur votre dedibox XL.

Merci Juju pour les tests :)

Wednesday, July 23 2008

Django Newforms et Newforms admin

Newforms, aussi appelé forms, est la nouvelle API permettant de gérer les formulaires web de Django, en opposition a oldforms qu'il ne faut plus utiliser.

Django forms library Doc à jour de forms aka newforms, même si vous utilisiez régulièrement newforms de nouvelles parties y ont été ajoutées: Média qui permet d'associer des éléments css et js à un widget newforms (enfin !!) et les formsets qui permettent d'avoir plusieurs fois le meme form dans une page, pour par exemple répéter un formulaire d'insertion dynamique.

Newforms-admin branch, est une branche de développement pour réécrire django.contrib.admin: l'interface d'admin de Django avec newforms précédemment cité, cette branche a été mergé au trunk Django le 18/07/08 7967, celle ci est considérée comme alpha, (béta début aout, stable pour début septembre avec Django 1.0).
Le wiki de NewformsAdminBranch et la FAQ newforms admin

Django admin doc La nouvelle doc qui décrit le fonctionnement de django.contrib.admin (le nouveau donc avec newforms) :)

Une vidéo de migration vers newforms-admin

Liens Django

DebugFooter middleware with syntax highlighting and code inspection

django-logging Ce n'est pas une nouveauté mais c est tjs bien utile pour debugger vos applications

Abstract Base Classes vs Model Table Inheritance

django-ajax-validation Modifie vos forms pour qu'ils valident le contenu de chaque champs en javascript donc coté client (tout en continuant à le faire aussi coté server), pour newforms

Interactiv debugger in Django

Présentation DJango au RMLL 2008 Petite presentation sympa pour découvrir Django et en francais

Friday, July 11 2008

Changement de serveur en 41mn

Suite à deux pannes (planté sans raison) de cette machine: une dédibox, j'ai fait un changement de serveur en espérant obtenir une dedibox v2, mais ces capitaloprolos de proxad n'ont pas changé, plus tu es ancien plus tu galères, (j'avais la SD-124) !

Bref après trois essais de dedibox, (puisque celles qui restent sont défectueuses), en voici une qui fonctionne mais comme j'étais pressé j'ai préféré mettre une Ubuntu à l'arrache, en place d'une Gentoo:

00:49:52 up 41 min, 1 user, load average: 0.01, 0.00, 0.00

41mn plus tard ce blog refonctionnait.

Alors certes je suis un Unbuntuiste convaincu pour le desktop, mais je ne l'étais pas vraiment pour un serveur remote perso, que l'on souhaite maintenu en production plusieurs années.
Malgré les chemins à la con, apache qui n'est plus apache, aptitude qui raconte sa vie, cela fonctionne vite et bien.

Je remettrai quand même une Gentoo sur ma future dedibox XL, livrée dans six mois si tout se passe bien, parce que j'ai pu upgrader des gentoo pendant trois ans sans panne, parce que je peux avoir le paquet que je veux avec la version que je veux sans devoir apprendre les .deb .rpm .bullshits, parce que cela reste plus proche d'un BSD qu'autre chose, parce que j'ai l'impression de devoir me justifier sous peine de me faire traiter de frimeur :)

Vivement opensolaris + gentoo portage, ca existe presque Nexenta ...

Merci Daniel pour les raccourcis de ces tordus d'Ubuntu ;)

Saturday, July 5 2008

PS3 video playing via DLNA streaming with firmware 2.40, and mkv streaming

In the long list of strange problems with 2.40 firmware...

Video playing from the network just stop working, I have used eyeconnect on my mac, for 3 months without any problem, but since the 2.40 firmware, it complains about a network problem each time playing a video.

That's why I'm trying a new (free) solution Mediatomb, an opensource DLNA server, for Unix/mac.

First intall macports and issue a sudo port install mediatomb in a terminal.

Start mediatomb a first time: /opt/local/bin/mediatomb wait two seconds then kill it with Control + C.

Edit the file config.xml file which is in your home in a subdir called .mediatomb (you can browse this dir with the finder just type open .mediatomb in terminal.

Change it to yes

<protocolInfo extend="no"/><!-- For PS3 support change to "yes" -->

Uncomment this line, remove <!-- and -->

      <!-- Uncomment the line below for PS3 divx support -->
      <!-- <map from="avi" to="video/divx"/> -->

After <import hidden-files="no">, paste this:

     <filesystem-charset>UTF-8-MAC</filesystem-charset>
     <metadata-charset>UTF-8-MAC</metadata-charset>

Run mediatomb, if you have multiple interface run /opt/local/bin/mediatomb -e en1 or just /opt/local/bin/mediatomb

Fire up your browser on the url given by mediatomb, in fact http://youlocalip:49153, browse and add the directories you want to share.

Don't forget to deactivate the web GUI, for security purpose.
<ui enabled="no"/> in config.xml or set a login password.

And the great news on the fly mkv conversion is working !! (tested with 720p mkv) to do that:
Create a file called /opt/local/bin/mediatomb-transcode-video:

#!/bin/bash

FFMPEG_PATH="/opt/local/bin/ffmpeg"
INPUT="$1"
OUTPUT="$2"
VIDEO_CODEC="mpeg2video"
VIDEO_BITRATE="4096k"
VIDEO_FRAMERATE="25"
AUDIO_CODEC="mp2"
AUDIO_BITRATE="192k"
AUDIO_SAMPLERATE="48000"
AUDIO_CHANNELS="2"
FORMAT="dvd"

exec "${FFMPEG_PATH}" -i "${INPUT}" -vcodec ${VIDEO_CODEC} -b ${VIDEO_BITRATE} \
-r ${VIDEO_FRAMERATE} -acodec ${AUDIO_CODEC} -ab ${AUDIO_BITRATE} -ar ${AUDIO_SAMPLERATE} \
-ac ${AUDIO_CHANNELS} -f ${FORMAT} - > "${OUTPUT}" 2>/dev/null

chmod a+x /opt/local/bin/mediatomb-transcode-video

Change <transcoding enabled="no"> to yes.

And add a transcode mapping : <transcode mimetype="video/x-matroska" using="video-common"/>

Add the profile video common:

              <profile name="video-common" enabled="yes" type="external">
                <mimetype>video/mpeg</mimetype>
                <accept-url>yes</accept-url>
                <first-resource>yes</first-resource>
                <accept-ogg-theora>yes</accept-ogg-theora>
                <agent command="/opt/local/bin/mediatomb-transcode-video" arguments="%in %out"/>
                <buffer size="10485760" chunk-size="262144" fill-size="524288"/>
              </profile>

and mkv map: <map from="mkv" to="video/x-matroska"/>

Your PS3 is now playing MKV.

Here is my config file: config.xml, don't forget to change the path for your home.

EDIT: thx prune for the comment, but you still remains a hobbit ;)

Monday, June 23 2008

Download du moment

Songbird 0.6 Songbird est un lecteur multimédia multiplateforme basé sur firefox, compatible avec certaines radios en ligne comme the hype machine, interessant malgré le thème très laid de l'application

Openoffice 3.0 beta La version 3.0 d'Openoffice, avec une version native pour Mac, est déjà utilisable, et surtout beaucoup plus rapide qu'avant, elle permet entre autre l'import et l'édition de PDF via une extension Menu Tools - Extension Manager

Quartz PDF pour firefox 3 Cet addon permet de lire les pdf dans firefox sans lancer preview dans une autre fenetre (mac os only) via Fred.

Firebug 1.2b3 Si vous faites un peu de dev web il vous faut absolument firebug (1.2 pour firefox 3.0)

blacktree-secrets Activer ou désactiver les fonctions cachées de plusieurs applications Mac Os X, via Fred

Interclue 1.5.6 Interclue est un pluggin Firefox 3 qui vous permet de prévisualiser le lien sur lequel vous passez

Shareaholic Partagez vos liens vers différents réseaux sociaux

Sunday, June 22 2008

De retour de Vacances

petra

Touu toutou touuuu touu toutou, ta dada taa tadadaaaa.

La suite bientôt sur vos écrans

Sunday, June 8 2008

PyQt 4.4 on Mac Os X with Qt 4.4

Qt is a multiplateform GUI framework written in C++, but it has bindings for several language including Python.

Let's try it on Mac os X:

Download and install

First download a tool called sip: sip-4.7.6.tar.gz Qt 4 itself: qt-mac-opensource-4.4.0.dmg and PyQt-mac-gpl-4.4.2.tar.gz

As you can see trolltech is providing binaries for Mac, but riverbanks (who developp the Python bindings) only provide sources.

There are some docs for PyQt, the PyQt Classes reference and the PyQt and PyKDE wiki but the main documentation is the C++ one from Trolltech

Install the Qt package it will install components in:

  • Qt Designer, Qt Linguist: /Developer/Applications/Qt
  • Qt Documentation: /Developer/Documentation/Qt
  • Qt Examples: /Developer/Examples/Qt
  • Qt Plugins: /Developer/Applications/Plugins
  • Qt Frameworks: /Library/Frameworks
  • Qt Libraries: /usr/lib
  • qmake, moc, uic, etc.: /Developer/Tools (symlink to /usr/bin)

Compiling sip

tar zxvf sip-4.7.6.tar.gz
cd sip-4.7.6
python configure.py
make
sudo make install

Compiling PyQt

tar zxvf PyQt-mac-gpl-4.4.2.tar.gz 
cd PyQt-mac-gpl-4.4.2/
python configure.py
make -j 2

sudo make install

Testing

In the PyQt compilation directory you still have an example directory just try:

python examples/widgets/analogclock.py

cappyqt.jpg

Displaying is really fast and responsive, many tools are provided like a GUI designer which can be translated to python, the API is really nice and well integrated on all plateforms, but ...

The downsides

  • Qt is GPL it means all your code needs to be published if you plan to distribute your application, which is good cause the framework will live with the community, if you want a commercial solution Qt has a dual license, you can pay for that but PyQt also have a dual paying license, which make the global solution really expansive.

- page 1 of 25