Archives de la catégorie Trucs & Astuces

Bad idea: get a read lock while holding a write lock

Under Linux, the following code hangs in the second execution of the loop at the time the write lock is acquired. pthread_rwlock_t lock; fprintf(stderr, « Init\n »); pthread_rwlock_init(&lock, NULL); for(int i = 0; i < 2; ++i) { fprintf(stderr, « Get Write lock\n »); pthread_rwlock_wrlock(&lock); fprintf(stderr, « Get Read lock\n »); pthread_rwlock_rdlock(&lock); fprintf(stderr, « Release Read lock\n »); pthread_rwlock_unlock(&lock); fprintf(stderr, « Release Write lock\n »); […]

, , , ,

4 commentaires

Support de Time Machine sur le NAS Synology

Une des grandes nouveautés associées à la dernière version du firmware des NAS Synology (DSM 2.2) est le support de Time Machine. Le NAS pourrait donc être utilisé comme un équivalent d’une Time Capsule, à moindre coût. Voici les résultat du premier essai…

, ,

Un commentaire

Snow Leopard contre NAS Synology

Depuis la mise à jour du MacBook de Leopard vers Snow Leopard, la copie de certains fichiers vers le NAS ne fonctionne plus. Enquête et solution…

,

Pas de commentaire

Comment forcer Safari à ouvrir tous les liens dans un nouvel onglet ?

Par défaut, chaque fois qu’un lien a l’attribut target= « _blank », Safari ouvre une nouvelle fenêtre (comportement normal d’un browser sans tabs), là où les autres ouvrent un nouveau tab. Heureusement, on peut changer ce comportement en utilisant la commande: defaults write com.apple.Safari TargetedClicksCreateTabs -bool truedefaults write com.apple.Safari TargetedClicksCreateTabs -bool true

Pas de commentaire

Namespace clash in IE

In JavaScript, in Internet Explorer, you cannot declare a global variable that has the same name as the id of any element on the same web page. If you try and then try to use any method on that object, you get a « object does not support method » error. Why? Because, in Internet Explorer, the […]

, ,

Pas de commentaire

Don’t declare a variable called args in Ext.onReady function

Recently, I was trying the following: Ext.onReady(function() { var args = someMethod(), v = args.v; if (v) { … } … }Ext.onReady(function() { var args = someMethod(), v = args.v; if (v) { … } … } Quite strangely, the v variable was always getting the undefined value. The reason is in fact very simple: […]

Pas de commentaire

A savoir: une classe qui étend une classe dynamique doit elle-même être dynamique

Comme indiqué dans Extending the Array class, une classe qui étend une classe dynamique doit elle-même être dynamique sous peine de ne pas fonctionner. public class MyArray extends Array { // … }   public function test() : void { var myArray:MyArray = new MyArray; myArray.push({ text: "test" });   var x:Object = myArray[0]; // […]

, ,

Pas de commentaire

Utiliser les polices Windows Vista sous Linux et les faire reconnaître dans Acrobat Reader for Linux

Windows Vista et Office 2007 apportent une nouvelle série de polices appelées Cambria, Calibri et j’en passe. Ces polices ne sont pas incluses dans le package msttcorefonts. Pour les installer, il est nécessaire de télécharger le Power Point Viewer 2007 (qui contient aussi les nouvelles polices), de le décompresser avec cabextract et de copier les […]

, , , ,

Pas de commentaire

Transfert de photos automatique vers Foto.com

Quoi de plus fastidieux que de transférer des photos numériques vers le labo de développement. Le programme suivant permet d’automatiser ce transfert afin de pouvoir l’effectuer en dehors du browser. Il remplace donc avantageusement l’applet Java proposée par le site. Ce programme interagit avec le site de développement de photos numériques http://www.foto.com. Il effectue automatiquement […]

, ,

2 commentaires

Pré-traitement de photos numériques lors de l’importation

Cette procédure a deux buts : donner un nom standardisé à toutes les photos ; appliquer la rotation détectée par l’appareil photo. Le but principal de cette procédure est de nommer de manière uniforme et univoque les photos numériques. Pour ce faire, elle renomme le fichier (dont le nom original comporte généralement un numéro de […]

,

Pas de commentaire