VMware Fusion

VMware est sans doute l’une des premières solutions de virtualisation de postes que je connaisse. A l’époque il n’existait que pour les PCs (VMware Workstation) et était gratuit. Cela fait quelque année qu’il existe sous OSX sous le nom de VMware Fusion… mais payant! Et depuis que je suis passé sous Virtualbox qui est multiplateforme et gratuit je ne m’y suis pas intéressé plus que ça puisque je suis passé sous Linux et Mac. Mais par curiosité je voulais re-tester VMware… et je suis tombé sur pas mal de site qui propose de clé d’activation. Parfait pour un test! Pensez à l’acheter si vous pensez finalement l’utiliser définitivement!!!

un des sites: http://appnee.com/vmware-fusionpro-78-all-versions-universal-license-keys/

Copie au cas où le site venait à disparaitre.

// Working License Keys //

Group License Keys
Fusion/Pro 7
1 HYCTT-5L9RQ-44T8L-C1RG5-K2GPC
ZZAX9-UR1QM-M4MQ0-5RYQ6-6C539
LVGJ3-KHW30-M4MRU-T3N7E-RCX43
NYZ5L-HDV3T-44HKM-WW952-227Y1
4VJHT-2YWWP-04J4M-HV4ZE-X378E
2 VZ15K-DKD85-M85EP-W4P79-XAAU4
VU50A-2UW9Q-M88UY-D7MQX-ZG8X8
VG7WU-41G97-48D8Y-X5PQZ-MLHZA
VA5MK-49E1H-488NP-ENXXG-M28X6
YZ3TU-AHWE2-0892Q-YWYET-Q7UDD
GV5DK-8RDDJ-484GQ-FZNNG-Y2UYA
CU74A-6ZE0J-489WP-YXZ59-W70W2
CG500-47EEM-08EAQ-GGW7Z-QP2VD
CF7X2-FFFEP-48DQZ-ZFQEE-QAUVF
GV1MA-DPW57-0894Y-H4NZT-X6KC2
3 4V4RD-4RJ96-NZRH1-2U354-2AX0T
1Y03W-2M00J-VZM38-YJ17P-83LMU
MA6MD-DFHDN-UZ7M9-LT2QM-CA2LC
5G4DD-FKJEN-7ZV01-QR2XP-2AK7N
MU2YY-42LD0-2ZQW9-0T1NH-1CY0N
4 5G19L-13E7E-H4MWT-54DGP-5LQZ1
1VWJV-540AV-H4HNR-HW2QK-DYZ23
TAWWT-9HKW4-H4NM6-57UN3-66E6E
EYWDT-WHW7Y-H4WRR-8EMX0-0AGNE
ZFHN1-D2DGE-44HRH-7NC5H-1GG49
5 UAA8V-PE0FQ-M4NU4-D1ZEQ-3Q7YC
UGM99-03A0G-M4W33-CEXGK-67GG7
RY2R1-QTFRK-M4J42-FPHQU-5PQJ7
Fusion/Pro 8
1 FY75A-06W1M-H85PZ-0XP7T-MZ8E8
ZY7TK-A3D4N-08EUZ-TQN5E-XG2TF
FG1MA-25Y1J-H857P-6MZZE-YZAZ6
2 FV3WK-0XFEP-081DY-DQYEX-NZ8Z8
3 FY7N2-6RGD2-081XZ-UYWQC-ZPKCA
4 FA3RK-FHGD5-M88TZ-V4WEZ-MVAW0
FU75U-4KD5L-0845Z-JEXNZ-MLKD8
UV7XK-4PXEJ-080WY-4WXQT-NC0ZF
VC79R-6NF81-M84XZ-VNW5G-NKUW8
GC1HA-01Z14-H8D2P-04NNZ-Z6RY0

// Download URLs //

Edition Official Trial Installer
VMware Fusion 8
VMware Fusion 8 Pro

Activer les produits microsoft

Je ne vous ai rien dit…

http://www.microsoft-toolkit.com/

Comment ça marche?

http://freemicrosofttoolkit.com/

Sinon dans Google cherchez: « Microsoft toolkit »

 

Mais je ne vous ai toujours rien dit….

Windows:

https://www.microsoft.com/fr-fr/software-download/

Office

http://www.olitech.fr/telecharger-iso-microsoft-office-all-versions-32-bits-64-bits.php

 

Clonezilla Live et PXE

Si vous avez une erreur « stalled » avec Clonezilla Live et PXE, ce qui suit peut vous aider.

Pour que clonezilla live focntionne en PXE il est nécessaire de modifier le initrd.img

En effet par défaut la commande tftp utilise une option qui ne fonctionne pas chez moi: -b 65464

Il faut donc la supprimer. Pour cela on va utiliser la FAQ de Clonezilla ici

une fois copié dans un répertoire temporaire on décompresse le initrd.img

xzcat initrd.img | cpio -idm

 

Ceci fait il éditer le fichier: /lib/live/boot/9990-mount-http.sh et modifier les lignes 35 et 36 pour supprimer/commenter et les remplacer par

#log_begin_msg "Trying tftp -g -b 65464 -r $rfile -l ${dest}/$lfile $ip"
#tftp -g -b 65464 -r $rfile -l ${dest}/$lfile $ip
log_begin_msg "Trying tftp -g -r $rfile -l ${dest}/$lfile $ip"
tftp -g -r $rfile -l ${dest}/$lfile $ip

Une fois terminé recompressez le tout

find . | cpio --quiet -o -H newc | xz -c -9 --check=crc32 >  ../initrd.img

 

Reload d’une page web avec du javascript

Voici une méthode pour recharger automatiquement la page de votre site coté utilisateur. Contrairement à la balise meta qui fixe un délai pour recharger ici on va déterminer quand on veut la période!

il faut pour cela que la page à recharger soit en php et inclure ce code

 
// Reload page
// a une date et heure donnée
//Date(year, month, day, hours, minutes, seconds, milliseconds);
refreshPageNextDayAt(new Date(2015,11,15,12,05));
// a une heure donnée vi un fichier inclu contenant un timestamp
//refreshPageNextDayAt(<?php include_once('refreshtime.inc'); ?>);
// Recharge la page
function refreshPageNextDayAt(_date) {
    var _now = new Date();
    
    if (typeof _date === "object"){
        
        var refreshDate = _date;
    }
    
    if (typeof _date === "number" && _date < 24){
        var refreshDate = new Date(_now.getFullYear(), _now.getMonth(), _now.getDate()+1,_date);
    } else {
        var refreshDate = new Date(_now.getFullYear(), _now.getMonth(), _now.getDate()+1,3);
    }
    
    if (typeof _date === "number" && _date > _now){
        var refreshDate = _date;
    }
    
    //alert(refreshDate);
    if (typeof _date === "object"){
        setTimeout(function() { window.location.reload(true); }, refreshDate.getTime()-_now.getTime());
    } else {
        setTimeout(function() { window.location.reload(true); }, refreshDate -_now.getTime());
    }
}

La fonction refreshPageNextDayAt() prend en paramètre une date (et heure) qui sera la date de reload de la page. Si vous mettez cette date dans un fichier via votre interface d’admin ou autre vous pouvez forcer le reload de la page de votre visiteur.

 

Client serveur avec event-stream « server-sent events »

C’est quoi le event-stream??? Ben je ne connaissais pas jusqu’à hier!!! Je l’ai découvert en cherchant une solution pour pousser la mise à jour d’une page vers le visiteur qui est en train de la consulter. Et ceci sans faire un timing de reload mais en realtime.

A la base je bossais sur un projet d’écran d’affichage. L’idée est que l’écran doit être automatiquement mise à jour quand le gestionnaire de l’écran modifiait les slides qui défilent. (Je vais bientôt mettre le projet sur GitHub).

Comment ça marche le event-stream?

C’est un peut comme du client-serveur. Le browser du visiteur (dans mon cas le panneau d’affichage) est le client. Le site hébergé sur le serveur est la partie serveur. Jusque là normal. Mais habituellement si on veut que les informations s’actualisent le visiteur doit faire un F5 ou Ctrl+R ou Ctrl+F5. Problème… moi je n’ai personne pour faire à la mano cette action sur mon écran sans clavier à 3 mètres de haut sur le mur! Et bien là c’est le serveur qui pousse (en continue) les modifications vers le browser qui lui reste à l’écoute en permanence. Il n’y a pas de connexion comme le WebSocket. Voici les sites qui m’ont permis de comprendre le fonctionnement:

https://developer.mozilla.org/fr/docs/Server-sent_events/Using_server-sent_events

http://www.html5rocks.com/en/tutorials/eventsource/basics/?redirect_from_locale=fr

http://www.developerdrive.com/2012/03/pushing-updates-to-the-web-page-with-html5-server-sent-events/

Pour aller au plus simple, un example. On va créer 3 pages: client.php, sendMsg.php et admin.php. Le répertoire qui contient ces pages devra être en lecture et écriture par le serveur web (www-data, apache…)

On va modifier du contenu à partir de la page admin.php, ce contenue sera poussé par sendMsg.php vers la page visitée (client.php) par un utilisateur.

Le serveur (sendMsg.php)

<?php

header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

/**
 * Constructs the SSE data format and flushes that data to the client.
 *
 * @param string $id Timestamp/id of this connection.
 * @param string $msg Line of text that should be transmitted.
 * 
 */
function sendMsg($id, $event,$retry,$msg) {
  echo "id: $id" . PHP_EOL;
  echo "event: $event" . PHP_EOL;
  echo "retry: $retry" .PHP_EOL;
  echo "data: $msg\n\n" . PHP_EOL;
  echo PHP_EOL;
  ob_flush();
  flush();
}

if (is_file('check.txt')) {
    $serverTime = time();
    sendMsg($serverTime,'refreshMe','1000','1');
    sleep(5);
    unlink('check.txt');
}

?>

Que fait ce script:

il envoie (stream) le message ($msg) en continue en demandant au client de le consulter toutes les secondes (1000).
Il émet pendant 5 secondes (sleep) , c’est l’existence du fichier check.txt qui déclenche ou arrête le stream.

Le client (client.php)

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    
    <?php include_once('include.inc'); ?>
    
    <script type="text/javascript">
        if (!!window.EventSource) {
          var source = new EventSource("sendMsg.php");
        } else {
          alert('Navigateur incompatible!!');
        }

        source.addEventListener('refreshMe', function(e) {
          if (e.data == 1){
              source.close();
              setTimeout(function(){location.reload()},5000);
            }
        }, false);
    </script>
</body>
</html>

Que fait ce script:

Il affiche le contenu du fichier include.inc. Ce fichier étant modifié par admin.php, il le recharge à chaque fois que la page est actualisée (reload). Le rechargement est déclenché quand la valeur ‘1’ est envoyée par sendMsg.php qu’il écoute en continue (grâce à EventSource)

La page d’admin (admin.php)

<?php
if($_POST['check'] == 1){
    touch('check.txt');
    file_put_contents('include.inc', $_POST['message']);
}
?>


<!DOCTYPE>
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>
    
<form action="#" method="post">
    <input id="message" name="message" type="text">
    <input id="check" name="check" type="hidden" value="1"> 
    <input id="input" type="submit" value="refresh">          
</form>

</body>
</html>

Que fait le script:

On saisi du texte qui sera écrit dans include.inc qui sera chargé par la page vue par le visiteur ET déclenchera le stream en créant le fichier check.txt.

Et voilà, à vous de tester et l’intégrer à vos besoins.

Premier pas avec Git

Après avoir hésité entre SourceForge, FusionForge, Subversion(SVN), j’ai finalement opté pour Git (GitHub). Parce que j’utilise Linux et qu’il me semble à premier vue plus simple. Mais c’est totalement arbitraire comme choix. Le temps me dira si c’est un bon choix pour mon usage. Je me suis beaucoup basé sur la documentation française de Git pour ce choix et sur la page de Christophe Ducamp. Voici donc pour mémo les principales commandes pour un usage basic.

1 – Installer Git

Il faut biensure installer git sur votre machine. Je ne vais pas réinventer la roue et faire de la paraphrase alors lisez documentation officielle.

2 – Paramétrages

Comme c’est un mémo, je vais mettre ici les étapes à faire. Pour plus de détails voir la documentation.

Dans un terminal saisir:

git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

Le user.name c’est votre pseudo ou nom de développeur qui apparaitra pour le suivi des validations de votre code.

Les user.mail… vous l’avez deviné?

Petit conseil utilisez votre pseudo et votre mail de votre compte GitHub si vous en avez déjà un.

Vous pouvez faire le reste de la configuration comme mentionné dans la documentation, mais ces 2 lignes suffisent.

 3 – Créer un dépot (ou repository)

Git s’utilise de 2 façons: en local et/ou sur un serveur. Pour mon cas je veux utiliser git pour versionner mon code sur un serveur distant, donc je passe directement à ce type d’usage.

Il y a 2 cas de figures:

Le clonage: j’ai déjà un dépot de code sur un serveur, plutot dans le cas ou je veux récupérer un dépot d’une autre personne pour faire un fork.

La création: je veux créer mon dépot perso ou en rappatrier un existant sur un serveur (GitHub)

a – Le clonage

Le clonage va importer le répertoire du projet principal (master) que vous souhaitez dans le répertoire local où vous etes actuellement. Dans le répertoire du projet importé il y aura un répertoire caché (.git) qui contient TOUTES les informations concernant le projet de la branche master (historique, versions, indexes, etc…) Pour cela on saisi dans un terminal git clone [url].git

 git clone https://github.com/beemoon/boxSyn.git

ATTENTION on ajoute à la fin de l’url le suffixe « .git »

 b – La création (en local)

Ici on crée un nouveau projet vide en local. Pour cela on crée un répertoire, on initialise un projet (répertoire caché) git, on indexe tous les fichiers du projet puis on valide l’indexation (commit). Le commit valide le changement de code. On le verra dans un autre article mais les 2 dernières commandes sont importantes pour la prise en compte de toutes les modifications de code. Ici on le fait pour initialiser le projet.

mkdir monprojet
cd monprojet
git init
git add .
git commit –m 'version initiale du projet'

 4 – Ajouter un dépot (serveur) distant.

En ajoutant un dépot distant on va exporter notre code pour le sauvegarder ou simplement pour partage son code. On va biensure utiliser GitHub !!!

Dans un terminal saisir git remote add [nomcourt] [url].git

git remote add boxsync https://github.com/beemoon/boxSync.git

Le nom court est un alias. Par défaut (si on en met pas) il s’appelle « origin »

5 – Importer un projet du serveur en local.

C’est un peu comme le clone SAUF que ici on importe une branche quelconque du serveur dans la branche master locale de votre machine. Il ne clone pas le projet (dossier caché) « .git » du serveur mais importe seulement les fichiers. On peut l’utiliser à la fin de la section 3b plus haut.

git pull master https://github.com/beemoon/boxSync.git

 

L’usage de git clone et git pull est très basique ici. Ils seront utilisés de façon plus complexe pour des forks ou des branches d’un projets. Mais ce n’est pas le sujet ici car c’est pour un niveau plus avancé d’utilisation de Git.

Maintenant qu’on a un projet on peut travailler avec git et GitHub. (prochain article)

Réduire une partition Windows Seven

Il est possible que vous aillez besoin de réduire la partition C: de votre Windows Seven. Mais voilà vous après maintes et maintes tentatives vous n’arrivez pas à réduire en-dessous d’une certaine taille ALORS que vous savez que vous pouvez largement encore diminuer la taille de votre partition !!!! La cause? votre $MFT, mémoire virtuelle et autre restauration système. Meme après avoir fait tout ce que vous avez trouvé sur le net (défrag, paramétrage…) vous etes toujours bloqué. J’ai testé plusieurs méthodes (PerfectDisk Pro version d’essai) avec succès mais la PLUS simple et en plus gratuit est AOMEI. Pour les connaisseurs c’est un peu du GParted.

Biensure pensez à d’abord défragmenter le disque avec par exemple AUSLOGIC ou l’outil de Windows. Ensuite installez AOMEI.

Sélectionner dans le menu de gauche le redimensionnement de disque et diminuer la taille de votre en glissant le curseur.

Appliquez le traitement avec le bouton en haut à gauche. Ça va redémarrer la machine et faire le travail avec le reboot de Windows

Et voilà

Déprotection des feuilles excel

Après de jours de recherche sur une solution pour supprimer la protection des feuilles excel j’ai enfin touvé LA perle rare !!! En effet on trouve des programmes en tout genre qui demande de payer sans etre sure que ça marche ou avec une version de demo qui ne fonction que sur le fichier excel fourni. Heureusement que ça marche sur leur fichier vu qu’il connaise leur mot de passe !!! J’ai vouu tester un script linux mais pas moyen d’installer les dépendances car trop vieux. Et finalement j’ai trouvé une extension à excel (password_2007_2010.xlam) qui s’installe donc dans excel et apparait dans la bare des menu. On ouvre le fichier dont les feuilles sont protégées et un lance la déprotection via le menu et hop magique.

merci à son auteur: http://www.straxx.com/free-excel-password-remover-2012

download: http://www.straxx.com/excel/password_2007_2010.zip ou ici

 

Faire son ISO perso de Seven

Vous avez votre CD Seven et vous faite souvent des ré-install. Vous voudriez personnaliser votre CD? Alors lisez !

I – Créer son ISO de base

Il faut tout d’abord copie l’intégralité du CD/DVD sur votre machine dans un répertoire (par exemple: Seven_src), facile!!!

Après il vous faut un programme pour créer un ISO à partir du répertoire source (Seven_src). Pour cela j’utilise CDImage GUI: http://unattended.msfn.org/unattended.xp/view/web/15/

Évidemment c’est mieux de tester son ISO!!! Donc une machine virtuelle est la bienvenue, moi j’utilise VirtualBox.

Voilà une fois que le test d’installation de votre ISO de base (identique à votre CD/DVD) fonctionne sur machine virtuelle (VM) on va passer à la personnalisation de l’ISO.

Seven : Offline Activation

Besoin de réinstaller souvent votre Seven sur une nouvelle machine (changement/test de carte mère)? Normalement Il est autoriser d’activer 3 fois la clé en « online » après il faut appeler Microsoft pour réactivation. La solution c’est de le faire en « offline » en ayant sauvegardé AVANT les fichiers nécessaires de votre ancienne installation.

source: http://www.neowin.net/forum/topic/940836-can-i-install-windows-7-as-many-times-as-i-want/page__p__593192158#entry593192158

With this you can offline activate your legal copy of windows 7.
You need to save a copy of pkeyconfig.xrm-ms and tokens.dat that is activated once.
they are placed in:
C:\Windows\System32\spp\tokens\pkeyconfig
C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform

Then create a cmd file with this text in Notepad, and place it in the same folder where the two files are.
You can only use the pkeyconfig.xrm-ms and tokens.dat on the same PC they belongs too.
Create a cmd file with this text in Notepad.
Put in your own Serial no. where the XXXXX-XXXXX-XXXXX-XXXXX-XXXXX is

@echo off

net stop sppsvc

takeown /f « %SystemDrive%\Windows\System32\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms »
icacls « %SystemDrive%\Windows\System32\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms » /grant administrators:F /t
del /F /Q « %SystemDrive%\Windows\System32\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms »
copy « pkeyconfig.xrm-ms » « %SystemDrive%\Windows\System32\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms »

takeown /f « %SystemDrive%\Windows\SysWOW64\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms »
icacls « %SystemDrive%\Windows\SysWOW64\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms » /grant administrators:F /t
del /F /Q « %SystemDrive%\Windows\SysWOW64\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms »
copy « pkeyconfig.xrm-ms » « %SystemDrive%\Windows\SysWOW64\spp\tokens\pkeyconfig\pkeyconfig.xrm-ms »

takeown /f « C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat »
icacls « C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat » /grant administrators:F /t
del /F /Q « C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat »
copy « tokens.dat » « C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat »

net start sppsvc

slmgr.vbs -ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX