Offroad

Chris' blog

Offroad header image 4

Articles de 'fr'

exporter iPhoto dans des dossiers

2010/04/14 12:33 · Aucun Commentaire

iPhoto est bien sympa mais il a des limites, à commencer par le fait qu’il n’exporte pas dans des dossiers. Si on utilise les outils d’exportation on se retrouve avec toutes les photos dans un seul dossier !

grace aux commentaires sur cette page j’ai utilisé le script python suivant qui a fonctionné sur ma configuration :

  • Mac OS 10.6.3 (Snow Leopard), avec le python intégré
  • iPhoto 8.1.2

Je l’ai enregistré dans un fichier nommé “export-iphoto.py” dans le dossier “documents” de l’utilisateur “chris”, puis en lançant le terminal pour l’executer (en réalité je crois qu’on peut se contenter de double cliquer dessus, mais j’aime bien le mode ligne de commande :) ) :

cd /Users/chris/Documents
python export-iphoto.py

Voici le contenu du fichier export-iphoto où il faut bien prendre soint de changer ces 2 lignes
albumDataXml="/Users/YOURUSERNAME/Pictures/iPhoto Library/AlbumData.xml"
targetDir="/Volumes/share/pictures"

export-iphoto.py :

from xml.dom.minidom import parse, parseString, Node
import os, time, stat, shutil, sys

def findChildElementsByName(parent, name):
result = []
for child in parent.childNodes:
if child.nodeName == name:
result.append(child)
return result

def getElementText(element):
if element is None: return None
if len(element.childNodes) == 0: return None
else: return element.childNodes[0].nodeValue

def getValueElementForKey(parent, keyName):
for key in findChildElementsByName(parent, "key"):
if getElementText(key) == keyName:
sib = key.nextSibling
while(sib is not None and sib.nodeType != Node.ELEMENT_NODE):
sib = sib.nextSibling
return sib

albumDataXml="/Users/chris/Pictures/iPhoto Library/AlbumData.xml"
targetDir="/Volumes/FAT/pictures"
copyImg=True #set to false to run with out copying files or creating directories

print "Parsing AlbumData.xml"
albumDataDom = parse(albumDataXml)
topElement = albumDataDom.documentElement
topMostDict = topElement.getElementsByTagName('dict')[0]
listOfRollsArray = getValueElementForKey(topMostDict, "List of Rolls")
masterImageListDict = getValueElementForKey(topMostDict, "Master Image List")

#walk through all the rolls (events)
for rollDict in findChildElementsByName(listOfRollsArray, 'dict'):
rollName = getElementText(getValueElementForKey(rollDict, "RollName"))
print "\n\nProcessing Roll: %s" % (rollName)

#walk through all the images in this roll/event
imageIdArray = getValueElementForKey(rollDict, "KeyList")
for imageIdElement in findChildElementsByName(imageIdArray, 'string'):
imageId = getElementText(imageIdElement)
imageDict = getValueElementForKey(masterImageListDict, imageId)
modifiedFilePath = getElementText(getValueElementForKey(imageDict, "ImagePath"))
originalFilePath = getElementText(getValueElementForKey(imageDict, "OriginalPath"))

sourceImageFilePath = modifiedFilePath

modifiedStat = os.stat(sourceImageFilePath)
basename = os.path.basename(sourceImageFilePath)
year = str(time.gmtime(modifiedStat[stat.ST_CTIME])[0])
targetFileDir = targetDir + "/" + year + "/" + rollName

if not os.path.exists(targetFileDir):
print "Directory did not exist - Creating: %s" % targetFileDir
if copyImg:
os.makedirs(targetFileDir)

targetFilePath = targetFileDir + "/" + basename
iPhotoFileIsNewer = False

if os.path.exists(targetFilePath):
targetStat = os.stat(targetFilePath)

#print "modified: %d %d" % (modifiedStat[stat.ST_MTIME], modifiedStat[stat.ST_SIZE])
#print "target : %d %d" % (targetStat[stat.ST_MTIME], targetStat[stat.ST_SIZE])

#why oh why is modified time not getting copied over exactly the same?
if abs(targetStat[stat.ST_MTIME] - modifiedStat[stat.ST_MTIME]) > 10 or targetStat[stat.ST_SIZE] != modifiedStat[stat.ST_SIZE]:
iPhotoFileIsNewer = True
else:
iPhotoFileIsNewer = True

if iPhotoFileIsNewer:
msg = "copy from:%s to:%s" % (sourceImageFilePath, targetFilePath)
if copyImg:
print msg
shutil.copy2(sourceImageFilePath, targetFilePath)
else:
print "test - %s" % (msg)
else:
sys.stdout.write(".")
sys.stdout.flush()

albumDataDom.unlink()

[Lire la suite →]

Tags: apple · fr · IT

Mac OS 10.5 & 10.6 : accent manquant dans Helvetica et Helvetica Neue

2010/03/30 17:50 · Aucun Commentaire

Sur Leopard et Snow Leopard, les polices systèmes sont restaurées dès qu’on essai de les supprimer.

Ainsi il est sacrément embattant de remplacer les polices Helvetica et Helvetica Neue qui ont pourtant le défaut majeur de ne pas intégrer les accents Français lorsqu’on exporte au format PDF à partir d’Adobe InDesigne, Photoshop, Illustrator…

J’ai trouvé sur la doc fournie par Extensis Universal Type Client (version réseau de Suitecase) une procédure permettant de les supprimer afin de pouvoir enfin les gérer via notre logiciel de gestion des polices :

  1. Ouvrir une session où l’utilisateur est Administrateur sur le Mac concerné
  2. Ouvrir le livre des polices
  3. Choisir “Livre des polices” > “Préférences
  4. Désactiver “M’avertir si les polices système changent
  5. Copier le dossier suivant vers un endroit où il sera en sécurité :
    /System/Bibliothèque/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.Framework/Versions/A/Resources/ProtectedFonts
    note : ne jamais supprimer votre copie de sauvegarde du dossier “ProtectedFonts“, pour le cas où vous auriez besoin de ces polices dans le futur
  6. Ouvrir le dossier ProtectedFonts original et y supprimer Helvetica et HelveticaNeue
  7. Entrer un login administrateur lorsqu’il le demande
  8. Ouvrir /System/Bibliothèque/Fonts et y supprimer Helvetica et HelveticaNeue
  9. Ouvrir votre gestionnaire de police (Extensis dans notre cas) et activer EN PERMANENCE vos versions d’Helvetica et Helvetica Neue
  10. Redémarrer votre ordinateur

extensis_helvetica

Explications : le contenu du dossier ProtectedFonts de Leopard et Snow Leopard assure que les polices qui s’y trouvent ne soient jamais supprimé du dossier /System/Library/Fonts . En effet il les restaure aussi vite qu’on essai de les supprimer. Ayant rencontré plusieurs Mac inutilisable après l’effacement de polices du système avant la version 10.5, je suis très content qu’une telle sécurité empêche les graphistes de faire du ménage eux-même.

Malheureusement, il vaudra tout de même qu’une police Helvetica et Helvetica Neue soit toujours disponible (grâce au gestionnaire de police utilisé), sinon le fonctionnement du système n’est pas assuré

[Lire la suite →]

Tags: apple · fr · IT

Mac OS X : comment ajouter manuellement une imprimante Windows partagée

2010/03/17 19:16 · 3 Commentaires

Ajouter une imprimante Windows sur Mac est très simple quand on peut parcourir les workgroup. Mais lorsque le listage ne fonctionne pas pour quelque raison que ce soit… on est bien embêtée !

Il existe en fait un bouton “Options avancée…” que l’on peut ajouter dans la barre de menu qui permet d’accomplir un ajout manuel. Tout est très bien expliqué sur le site du support d’apple

Mac OS X v10.5 ou ultérieur

  1. Choisissez Préférences Système à partir du menu Apple.
  2. Choisissez Imprimante & Fax à partir du menu Présentation.
  3. Cliquez sur le bouton + pour ajouter une imprimante.
  4. Appuyez sur la touche Contrôle tout en cliquant sur l’icône « Par défaut » (ou toute autre icône de la barre d’outils), puis choisissez Personnaliser la barre d’outils à partir du menu contextuel qui apparaît.
  5. Faites glisser l’icône Options avancées (l’engrenage) dans la barre d’outils.
  6. Cliquez sur Terminé.
  7. Cliquez sur l’icône Options avancées, ajoutée à la barre d’outils.
  8. Choisissez Windows dans le menu contextuel Type.
  9. Dans le champ URL, saisissez l’adresse de l’imprimante suivant l’un des formats ci-dessous :smb://groupe_de_travail/serveur/nom_de_partage
    smb://serveur/nom_de_partage/

[Lire la suite →]

Tags: apple · fr · IT · network · Server · windows

Copier un profile utilisateur sous Windows 7

2010/02/12 21:30 · 1 Commentaire

Vous aviez l’habitude de créer des profils par défaut sur Windows ? vous allez voir une mauvaise surprise sur Windows Seven : le bouton “Copier dans…” est grisé !

J’ai trouvé comment le réactiver grâce à cette page : http://www.yamprod.net/index.php?post/2009/11/09/Copier-un-profil-utilisateur-sous-Windows-7

 Il existe un petit utilitaire nommé “Windows Enabler” qui va vous permettre d’activer le bouton  “Copier dans…”

 le fichier d’install windows_enabler copié sur mon blog

Note Octobre 2011: ce petit programme ne semble pas fonctionner aujourd’hui sur un Windows 7 Familial avec toutes les mises à jour

[Lire la suite →]

Tags: fr · IT · windows

inviter à l'élévation windows 7 familiale

2010/02/06 15:40 · Aucun Commentaire

Pour installer le touchpad toshiba sur un Windows 7 Familial (Windows Seven Home), j’avais le message m’invitant à aller dans la stratégie de sécurité locale pour permettre l’affichage d’ inviter à l’élévation lors de la détection d’une installation.

secpol.exe (l’utilitaire de configuration de la stratégie de sécurité local) n’existant pas sur les versions Familiale, il faut aller activer ce genre d’option dans la base de registre. Dans notre cas, il faut passer à “1″ le DWORD suivant :

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\EnableInstallerDetection

[Lire la suite →]

Tags: fr · IT · windows

Bolivia coming soon…

2010/02/01 15:35 · Aucun Commentaire

bolivia

Il va bien falloir que je pense à raconter ici mon voyage en Bolivie, aller je m’engage sinon je reporterais sans fin !

C’est vraiment le pays le plus bluffant que j’aurais découvert.

rando

Et puis il faudra bien que je vous raconte comme j’ai moi même été sous le charme de ma propre région catalane quand je l’ai faite visiter à mes amis Parisiens. Grandir dans un endroit aussi sympa, ça n’a pas de prix

[Lire la suite →]

Tags: Bolivie · fr · france · life · travel

Déplacer Bibliothèque iTunes

2010/01/06 16:26 · 1 Commentaire

Dans les préférences d’iTunes on peut changer l’emplacement où sont stockés les “medias”. Mais finalement ça ne déplace pas l’emplacement où sont stockées les applications ou les sauvegardes de l’iphone.

Si comme nous votre dossier “Mes documents” est limité en espace, cela pose un gros soucis.

L’astruce trouvée ici consiste à :

  • D’abord, fermez iTunes.
  • Ensuite faites votre plus beau couper / coller du dossier iTunes (celui de la bibliothèque pas le programme hein ) vers l’emplacement de votre choix, pour moi une autre partition.
  • Lancer iTunes depuis l’exécutable tout en maintenant SHIFT gauche enfoncé.

Chez nous c’est le dossier Mes Documents\Musique\itunes  au complet que nous avons déplacé vers c:\itunes puis dans les préférences d’itunes nous avons indiqués que les “Médias” doivent être stockés dans c:\itunes\itunes media

[Lire la suite →]

Tags: apple · fr · IT · windows

VPN Microsoft via Netasq

2009/09/19 17:32 · 1 Commentaire

En ces jours où la grippe A se répend, nous avons changé de système VPN afin de l’installer plus facilement chez tout un chacun.

Ca sera du PPTP avec le login de l’AD à présent, c’est tout de même plus facile et ça fonctionne avec tous les systèmes. Même si sur Mac j’ai du cocher la case “envoyer tout le trafic sur la connexion VPN” dans les options avancées afin que ça fonctionne enfin sur notre serveur VPN en windows 2003, et pas sur le serveur VPN en windows 2008, allez savoir pourquoi.

Ma partie du travail n’a concerné que les reglages des firewalls et les tests sur différents clients, et les Netasq n’ont vraiment pas été faciles sur ce coup là. Un Netasq F60 et un F200, les 2 ont eu le même soucis : ça ne passe pas à l’authentification si on ne fait du nat que sur PPTP.

Après avoir tout essayé, une seule solution :

  1. faire du MAP BIDIRECTIONNEL
  2. faire tout le filtre au niveau des règles de filtrage ou je n’ai autorisé que le port PPTP et le protocol GRE.

[Lire la suite →]

Tags: fr · IT · network · Server · windows

La redirection Mes Documents echoue parfois

2009/07/13 12:12 · Aucun Commentaire

Avec active directory, on apprécie de rediriger le dossier Mes Documents sur un lecteur réseau afin de retrouver le même dossier sur tout ordinateur. D’autent plus qu’avec un ordinateur portable, la synchronisation assure automatiquement le relais quand on est en déplacement.

Malheureusement, d’une façon qui paraissait aléatoire, parfois la redirection était absente.

J’ai trouvé sur le site de microsoft la solution :

  1. Chargez la Stratégie de groupe appropriée du domaine.
  2. Cliquez sur Configuration utilisateur, cliquez sur Paramètres Windows, puis cliquez sur Redirection de dossiers.
  3. Cliquez avec le bouton droit sur le composant Redirection de dossiers approprié, puis cliquez sur Propriétés.
  4. Cliquez sur le paramètre De base sous l’onglet Cible, puis sous Paramètres, désactivez la case à cocher Accorder à l’utilisateur des droits exclusifs sur le nom de dossier.
  5. Enregistrez les paramètres, puis quittez.

mais en fait ça ne me plaisait pas. J’ai gardé cette option et j’ai préféré supprimer l’option “Déplacer le contenu de Documents vers le nouvel emplacement”.

image-4

Cela a résolu le soucis. Il faut dire que le message d’erreur trouvé dans l’observateur d’évènement était :

La redirection du dossier Mes documents a échoué. Les fichiers pour le dossier redirigé n’ont pas pu être déplacés vers le nouvel emplacement. Le dossier est configuré pour être redirigé vers <\\Serveur\PERSO\%USERNAME%\Mes documents>. Les fichiers ont été déplacés de <C:\Documents and Settings\username\Mes documents> vers <\\Intranet\PERSO\username\Mes documents>. L’erreur suivante est survenue lors de la copie de <C:\Documents and Settings\username\Mes documents\Ma musique> vers <\\Serveur\PERSO\username\Mes documents\Ma musique> :
Cet ID de sécurité ne peut être défini en tant que propriétaire de cet objet. .

Pour plus d’informations, consultez le centre Aide et support à l’adresse

[Lire la suite →]

Tags: fr · IT · network · Server · windows

Contacts Gmail sur votre carnet d'adresse Mac

2009/06/22 14:54 · 1 Commentaire

Quand on a un iphone/ipod touch ou qu’on a appliqué l’astuce pour activer la synchro gmail on peut utiliser la fonctionnalité de synchronisation des contacts avec GMail.

Malheureusement elle ne se synchronise qu’à chaque synchro itunes. Autant dire jamais si vous n’avez pas d’iPhone ou iPod. Il existe tout de même une commande pour la lancer manuellement à partir du terminal :

/System/Library/PrivateFrameworks/GoogleContactSync.framework/Versions/A/Resources/gconsync –sync com.google.ContactSync –syncmode pullthetruth

Avec cette commande, GMail aura toujours la priorité sur les infos du carnet d’adresse. Cela vous évitera de faire la grave erreur que j’ai faite, j’ai lancé la commande inverse, celle qui remplace le contenu des contacts gmail par votre carnet d’adresse (qui était vide dans mon cas).

/System/Library/PrivateFrameworks/GoogleContactSync.framework/Versions/A/Resources/gconsync –sync com.google.ContactSync –syncmode fast

Il ne reste plus qu’à programmer votre Mac pour lancer automatiquement cette commande toutes les heures, mais avec le mode “refresh”, afin d’avoir une vrai synchro :

crontab -e

et dedans; afin d’excuter à toutes les heures piles notre commande, on y met :

0 * * * * /System/Library/PrivateFrameworks/GoogleContactSync.framework/Versions/A/Resources/gconsync --sync com.google.ContactSync --syncmode refresh --username login@gmail.com --password votre_mot_de_passe

Malheureusement j’ai du inclure le username et le password en claire parce que le crontab ne savait pas le récupérer dans le trousseau :

“2009-06-22 15:00:00.442 gconsync[852:613] failed to retrieve from keychain”

[Lire la suite →]

Tags: apple · fr · IT