Archive for octobre, 2007

Xpath, recherche d’une valeur distincte

Si par une nuit d’automne vous cherchez à avoir les langues disponibles dans un fichier XML il faut bien sur penser à XPATH.
Imaginez ce fichier XML :

<document>
<title lang="en">My Title</title>
<title lang="fr">Mon titre</title>
<title lang="sp">Mi titulo</title></document>
<filename lang="fr">F1D60989-2A54-E4F1-8C54B87302968CAC.zip</filename>
<filename lang="en">F1D60999-2A54-E4F1-8A0B3600396F6522.pdf</filename>

Afin de récupérer les titres des langues spécifique il vous faut connaitre les langues disponibles.

<cfscript>
XMLsearch=XmlParse(XMLContent);
SearchTranslations=XmlSearch(XMLsearch, "//*[not(@LANG =preceding-sibling::*/@LANG)]/@LANG");
</cfscript>
<cfdump var="#SearchTranslations#" />

Ensuite il est possible de récupérer un élément suivant la langue, de faire une boucle par langue, à vous de voir. Attention ceci ne semble prendre de la ressource, ne pas utiliser avec des gros documents XML.

Références:
http://www.perfectxml.com/XPathDotNet.asp
http://www.w3schools.com/xpath/

Chrome ou mercure

Une pochette de 1981 du Groupe Silver Platinum et une autre du groupe Daft Punk en 2001. Deux trés belles typos avec une composition similaire et un effet de métal liquide (chrome ou mercure) sur un fond gris avec des effets des lumières. La pochette des Daft Punk est plus aboutie.

Silver Platinum - 1981 - Silver Platinum ()
Silver Platinum - 1981 - Silver Platinum (SRI)

Daft Punk - 2001 - Discovery (Virgin Records)
Daft Punk - 2001 - Discovery (Virgin Records)

IIS 6 sur un chemin réseau avec un “pool d’application”

Mais qu’est ce qu’il raconte ? Voici le problème, nous sommes lundi et comme tous les lundis vous voulez enregistrer des fichiers reçus via un formulaire web publié avec Coldfusion 7 sous IIS 6 vers un autre lecteur réseau sur un autre serveur dans la DMZ via le réseau. La phrase est un peu longue mais en prenant votre souffle ça va passer. On ne vous le dira jamais assez, lisez la documentation ! Euh oui merci mais la documentation en ligne vraiment je n’y comprends rien pourriez vous me répondre. Soit ! Je n’ai pas trés envie de vous faire un dessin.

  1. Créer d’un compte utilisateur sur les serveurs (serveur cible et serveur web) avec le même nom
  2. Partager le dossier de destination (serveur cible)
  3. Ajouter les droits en lecture/écriture à l’utilisateur créé précédemment dans les permissions du partage (serveur cible)
  4. Ajouter ce compte dans le groupe IIS_wpg (serveur web)
  5. Ajouter les droits en lecture/écriture l’utilisateur créé précédemment dans les permissions du dossier (serveur web)
  6. Créer un “application pool” (serveur web)
  7. Séléctionner l’identité créée précédemment pour l’application pool (serveur web)
  8. Changer les paramètres du dossier sur votre console IIS, créer une application, choisir l’application pool (serveur web)
  9. Ajouter les droits en lecture/écriture sur le dossier avec l’application au groupe IIS_wgp (serveur web)
  10. Ajouter les droits en lecture/écriture sur le dossier windows/temp/ au groupe IIS_wgp (serveur web)
  11. Vérifier bien les permissions sur les dossiers cibles

Il est maintenant possible avec un CFFILE d’enregistrer sur un serveur distant le fichier envoyé :

1
<cffile action="Upload" filefield="form.file" destination="\\serveurdistant\upload\" nameconflict="MakeUnique"></cffile>

Notes :

Accounts used for application pool identity should also be distinct from anonymous accounts and individual accounts for site authors and owners. Accounts used for anonymous access or for site authors and owners should not be added to the IIS_WPG group because doing so would grant those accounts access to directories that are shared among application pools such as the compression cache and ASP template cache.

Si vous configurez application pools avec une identity autre que Network_Service et que votre application utilise des scripts CGI, vous devez ajouter sur le compte local les droits suivant au compte de l’application avec Gpedit.msc :

  • Adjust memory quotas for a process (SeIncreaseQuota)
  • Replace a process at token level (SeAssignPrimaryToken)

Resources : IIS 6, Windows Server 2003 SP1, Coldfusion 7
Références :
www.microsoft.com/technet
rbazinet.wordpress.com
www.microsoft.com/technet

CFFILE, écrire un fichier en utf-8

Ecrire dans un fichier le contenu d’une variable en UTF-8 cela paraissait pourtant simple avec le tag CFFILE. Malgrés une lecture et une relecture de la documentation je ne trouve pas de solution. Je me retrouve avec un fichier html sans BOM et avec un mauvais encodage.

Et pourtant il est possible de spécifier l’encodage des caractères dans un CFFILE :

 <cffile action="write" file="myfile.html" output="#MyContent#" charset="utf-8"></cffile>

Toujours en se référent à la documentation nous pourrions aussi utiliser ceci :

 <cfprocessingdirective pageencoding="utf-8"></cfprocessingdirective>

Et enfin cela trouvé sur un blog pour les plus aventureux :

<cfscript>
function fileWriteUTF8(sFilePath, sInput){
	// declare jWrite object
	var jWriter = "";
	// create the file stream
	var jFile = createobject("java", "java.io.File").init(sFilePath);
	var jStream = createobject("java", "java.io.FileOutputStream").init(jFile);
	// output the UTF-8 BOM byte by byte directly to the stream
	jStream.write(239); // 0xEF
	jStream.write(187); // 0xBB
	jStream.write(191); // 0xBF
	// create the UTF-8 file writer and write the file contents
	jWriter = createobject("java", "java.io.OutputStreamWriter");
	jWriter.init(jStream, "UTF-8");
	jWriter.write(sInput);
	// flush the output, clean up and close
	jWriter.flush();
	jWriter.close();
	jStream.close();
</cfscript>

Resolu !
Version : Coldfusion 7.02
Références :
blog.pengoworks.com
www.niederhausen.net
livedocs.adobe.com
livedocs.adobe.com
fr.wikipedia.org

Rap au féminin en 1979

Deux des tout premiers enregistrements de rappeuses, Lady B de Philadelphia en 1979 sur le label TEC Records et Paulette Winley & Tanya Winley de Harlem.

Lady B - 1979 - To The Beat Y’all (TEC Records)


Lady B - 1979 - To The Beat Y’all (TEC Records)

 

Paulette Winley & Tanya Winley - 1979 - Rhymin’ And Rappin’ (Paul Winley Records)


Paulette Winley & Tanya Winley - 1979 - Rhymin’ And Rappin’ (Paul Winley Records)

Référence :
en.wikipedia.org/wiki/Lady_B.
October 2003, All Music Guide to Hip-Hop: The Definitive Guide to Rap and Hip-Hop, Backbeat Books
2005, Colin Morris, Celebrating Harlem’s Hip-Hop History

 

On aime ou on n’aime pas

Belle mise en scène sur la pochette de l’album de Rick James, auto-proclamé roi du Du punk Funk, sur l’album “Throwin’ Down” de 1982, sur le label Motown. La photo est de Ron Slenzak, lettrage de Ron Larson. Peut être une inspiration de “Conan le Barbare”, film sorti en 1981. J’aime bien.

Rick James 1982 - Throwin’ Down
Pochette de l’abum de 1982 de Rick James : Throwin’ Down


Rick James - 1982 - Hard To Get (Motown)




Commentaires récents