Category: Informatique
Easy kernel upgrade on Debian / Ubuntu
- prerequisites: sudo apt-get install build-essential kernel-package
-
download the latest kernel source zip archive from kernel.org
-
extract the archive and get to the extracted folder
-
copy the kernel config file from the existing system to the kernel tree: cp /boot/config-
uname -r
.config or other customized config file in /boot. If /boot is empty, config can be found in proc : zcat /proc/config.gz > /usr/local/src/linux-4.4.97/.config) -
bring the config file up to date: make oldconfig (for big version gap :
yes '' | make oldconfig
(all default values, should be checked) -
adjust build settings if necessary: make menuconfig (requires libncurses)
-
clean the kernel source directory: make clean
-
build: make deb-pkg LOCALVERSION=custom -j core (for multicore, number of used cores)
-
install deb files (image, header, libc), then reboot: cd .. && dpkg -i linux-(…)
More details: https://wiki.ubuntu.com/KernelTeam/GitKernelBuild
TN3 Gallery for WordPress – Important installation note
Maybe you get blank images after ajax uploads using the TN3 gallery WordPress plugin.
A table of the TN3 WordPress plugin database schema has a FULLTEXT index and it has not been created if you use InnoDB as default engine. Therefore, to solve the problem:
- use MyISAM as default engine for new tables OR
- add “) DEFAULT CHARSET=utf8, ENGINE = MyISAM;” at line 108 of wp-content/plugins/tn3-gallery/tn3-gallery.php + trash previously created tables if necessary + disable and re-enable the plugin OR
- execute this script on the database to add only the missing table (if you use InnoDB as default engine) :
CREATE TABLE IF NOT EXISTS `wp_tn3_fields` (
`docid` bigint(20) NOT NULL,
`name` varchar(20) NOT NULL,
`value_type` varchar(10) NOT NULL,
`value_text` text,
`value_date` datetime DEFAULT NULL,
`value_number` decimal(20,8) DEFAULT NULL,
`value_bool` char(1) DEFAULT NULL,
`value_comp` text,
PRIMARY KEY (`docid`,`name`),
KEY `ind_val_text` (`value_text`(100)),
KEY `ind_val_date` (`value_date`),
KEY `ind_val_number` (`value_number`),
KEY `ind_val_bool` (`value_bool`),
FULLTEXT KEY `ind_ft` (`value_text`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
codeigniter 2 ciunit
Tuto with db struct:
After installing Zend on Ubuntu 11.10
/usr/bin$ sudo mv php php_old
/usr/bin$ sudo ln -s /usr/local/zend/bin/php php
To enjoy php-cli without warnings… using the correct bin.
TOra 2.1.3 ac Oracle sous Windows
L’essentiel : http://celemotan.wordpress.com/2008/10/22/instantclient/
Mais il y a de petites lignes à lire tout en bas…
Trash le stub oci.dll qui est dans le dossier d’install de TOra si bêtement, comme moi, on a coché la case pour l’installer.
Les 5 types de programmeur
Au cours de mes voyages et aventures en programmation j’ai rencontré beaucoup d’ennemies étranges, et même des alliés étrangers. J’ai identifié au moins cinq sortes de guerriers du code différentes, certains font de merveilleux compagnons d’armes, tandis que d’autres semblent déjouer chacun de mes plans.
Néanmoins ils ont tous leur place au panthéon du développement d’applications. Sans un mélange sain de ces différents styles de programmation vous trouverez probablement vos projets soit trop longs à réaliser, soit pas assez stables, soit trop parfaits pour des humains ne les envisagent.
Le programmeur “ruban adhésif”
Le code n’est peut être pas joli, mais merde, il marche !
Le programmeur perfectionniste et toqué
Vous voulez faire quoi à mon code ?
Ce mec ne se soucie pas des deadlines et des budgets, ils sont insignifiants au regard de la forme d’art qu’est la programmation. Quand vous recevez enfin le produit fini, vous n’avez pas d’autre choix que vous soumettre à la gloire magnifique et à la radieuse beauté du code parfaitement formaté, non, d’une beauté parfaite, qui est si efficace que tout ce que vous pourriez lui faire ne ferait rien d’autre que diffamer un chef-d’œuvre. Il est le seul qualifié pour travailler sur son code.
Le programmeur anti-programmation
Je suis programmeur, merde. J’écris pas du code.
Son monde a une vérité toute simple ; écrire du code, c’est mal. Si vous devez écrire quelque chose, c’est que vous le faites mal. Quelqu’un d’autre a déjà fait le boulot alors contentez vous d’utiliser son code. Il vous racontera à quel point sa pratique du développement est plus rapide, même s’il met autant voir plus de temps que les autres programmeurs. Mais quand vous obtiendrez le projet, il ne contiendra que 20 lignes de code réel et sera très facile à lire. Il ne sera pas très rapide, pas très efficace, ou pro-compatible, mais il aura été réalisé avec le minimum d’effort requis.
Le programmeur pas impliqué
Qu’est-ce que vous voulez de plus ? Ca marche, non ?
Le gars qui ne peut pas se foutre plus de la qualité, c’est pour lui le boulot de quelqu’un d’autre. Il accomplit les taches qu’on lui demande de faire, et rapidement. Vous n’aimerez peut être pas son travail, les programmeurs le détestent, mais la direction et les clients l’adorent. Malgré la douleur qu’il vous causera dans le futur, il maintiendra les deadlines à lui seul de sorte que vous ne pourrez vous moquer de lui (peu importe à quel point vous en ayez envie).
Le programmeur théorique
Bien, c’est une possibilité, mais en pratique ceci pourrait être une meilleure alternative.
Ce mec est plus intéressé par les différentes options qui s’offrent à lui que par ce qui devrait être fait. Il va passer 80% de son temps à observer sa machine le regard vide à réfléchir aux moyens d’accomplir une tache, 15% de son temps à se plaindre des deadlines intenables, 4% de son temps à affiner les options, et 1% de son temps à écrire du code. Quand vous obtiendrez le produit final ça sera toujours accompagné de la phrase : “Si j’avais eu plus de temps, j’aurais pu le faire correctement”.
Où vous situez vous ?
Personnellement, je me serais classé dans les perfectionnistes. Et vous, quel type de programmeur êtes vous ? (…)
Source : http://stevenbenner.com/2010/07/the-5-types-of-programmers/
Python web
- Python / Apache
- Bases web Python
- Django web framework
- Django dev server from external IP: python manage.py runserver 0.0.0.0:8000
Aide-mémoire configuration de Pine / Alpine
Deux champs requis dans la config : envoi et réception.
- smtp-server : server:port/cryptoprotocol/user=username/novalidate-cert
- inbox-path : server:port/cryptoprotocol/user=username/novalidate-cert
Exemple :
- smtp-server : stmp.gmail.com:443/tls/user=username
- inbox-path : imap.gmail.com:993/ssl/user=username
Pour retenir les mots de passe : touch .pine-passfile
Pense-bête – Debian – Compiler un noyau Linux
– Le principal : http://pyfourmond.free.fr/Compilation-Noyau-Linux.htm
– Si la partition racine n’est pas trouvée (“Waiting for root file system”), ça m’est arrivé pour une vm, il faut préciser le UUID de la partition racine dans /boot/grub/menu.lst :
root=/dev/xxxx
=>
root=UUID=xxxx-xxxx-xxxx-xxxx
Pour obtenir cet identifiant :
/sbin/blkid
Plus d’infos : http://forum.debian-fr.org/viewtopic.php?f=8&t=18271