Recherche sur le blog

jeudi 4 août 2016

[Windows] Forcer l'Anniversary Update

Si comme beaucoup d'autres vous n'avez reçu aucune notification de la part de Windows Update pour réaliser l'installation de la mise à jour 1607 "Anniversary Update" pour Windows 10 (ou si vous obtenez l'erreur 0x80080008), vous pouvez récupérer l'assistant de mise à niveau à l'adresse suivante: article #12387 du support Microsoft.


Cliquez sur "Obtenir la mise à jour anniversaire", téléchargez et enregistrez l'utilitaire sur votre machine, lancez-le puis suivez les différentes étapes à l'écran. L'installation complète devrait prendre aux alentours des 45 minutes, voire un peu plus en fonction de la vitesse de téléchargement.

Sachez également qu'après installation vous avez 10 jours pour effectuer une restauration de la build 10586.xx en cas de problème.

[Java] Log d'un repository SVN

Tout d'abord, télécharger SVNKit sur svnkit.com (lien ici). Choisir la version "standalone" puis décompresser les librairies qui se trouvent dans "\lib", à l'aide de WinRAR ou 7zip par exemple.

Ajoutez ensuite les différentes archives JAR à votre projet. Clic droit sur le projet dans Eclipse -> Properties -> Java Build Path, onglet Libraries. Cliquez sur le bouton "Add Library", choisissez "User Library". Indiquez un nom et sélectionnez les fichiers précédemment extraits. 

Dans le code, il faut réaliser les manipulations suivantes : 
DAVRepositoryFactory.setup();
On indique que l'on va interroger un repository SVN dont on renseignera l'URL, en HTTP ou HTTPS.
String ls_url = "http://xxx.com/svn/mySVN";
String ls_username = "";
String ls_password = "";
Il faut ensuite définir quelques variables dont l'URL, le nom d'utilisateur et le mot de passe. Dans le code d'exemple ils sont en dur mais on peut imaginer les récupérer par une saisie utilisateur.

On va maintenant s'identifier.
sUrl = SVNEncodingUtil.autoURIEncode(ls_url);
SVNRepository repo = SVNRepositoryFactory.create(
   SVNURL.parseURIEncoded(sUrl)); 
ISVNAuthenticationManager authManager = 
   SVNWCUtil.createDefaultAuthenticationManager(
   ls_username, ls_password.toCharArray());
repo.setAuthenticationManager(lo_authManager);
On doit donc :
  • Instancier un objet SVNRepository à l'aide de la fabrique SVNRepositoryFactory. On passe en paramètre un objet SVNURL.
  • Créer un gestionnaire d'authentification à l'aide de la classe SVNWCUtil. On passe en paramètre de la fonction le nom d'utilisateur et le mot de passe (ce dernier étant passé sous forme de tableau de caractères).
  • Une fois celui-ci créé, on le lie au repository. 
On peut savoir quelle est la dernière révision en appelant
SVNDirEntry entry = repo.info(".", -1);
Pour récupérer les entrées entre deux révisions on procède comme suit :
Collection<SVNLogEntry> colLogEntries = null;
colLogEntries = repo.log(new String[] {""}, null, 
   lStartRevision, lEndRevision, true, true);
On déclare d'abord une collection dans laquelle on pourra stocker le résultat. Ensuite, on appelle la fonction "log" sur notre repository précédemment créé. On passe en paramètre un tableau vide (chemins cible), la valeur nulle pour le second paramètre (qui attend une collection), la révision de début, la révision de fin, et deux flags ("changed paths" - pour lister tout ce qui a été modifié, et "strict node"). Voir plus de détails dans la documentation.

Astuce : on peut aussi utiliser getDatedRevision(Date date) pour retrouver un numéro de révision correspondant à la date donnée en paramètre, ou du moins proche de celle-ci.

Parcourir la collection récupérée.
for(SVNLogEntry entry : colLogEntries)
{
  System.out.println(logEntry.getRevision());
  System.out.println(logEntry.getAuthor());
  ...
}
On peut afficher différentes informations (auteur, message, numéro de révision, date). Dans cette boucle, on peut en rajouter une autre : 
Set<String> changedPathsSet = 
      logEntry.getChangedPaths().keySet();
for (String sFullPath : changedPathsSet) 
{
  SVNLogEntryPath entryPath = 
    (SVNLogEntryPath) logEntry.getChangedPaths()
     .get(sFullPath);
  System.out.println(entryPath.getPath());
  System.out.println(entryPath.getType());
  ...
}
Ce qui va permettre d'afficher les chemins des fichiers modifiés et le "type" de modification (M = modified, A = added, D = deleted). Reste à afficher tout cela de manière bien plus sympa que dans une simple console...

Et pour fermer proprement la session :
repo.closeSession();
Voilà, c'est tout pour aujourd'hui !

lundi 1 août 2016

[Windows] Upgrade gratuit toujours possible

Alors que la date limite de mise à jour gratuite est dépassée, on apprend d'après de nombreuses sources, que l'upgrade gratuite vers Windows 10 est toujours possible. En effet, Microsoft a lancé un programme permettant aux utilisateurs des outils d'assistance (ergonomie, reconnaissance vocale, narrateur, etc) de migrer, et ce sans opérer d'autres vérifications sur la machine. Cela concerne bien sûr les versions 7 et 8/8.1.


Comment faire ? Il vous suffit de vous rendre sur la page officielle de cette offre, puis de télécharger l'exécutable mis à votre disposition (cliquez sur le bouton "Mettre à niveau maintenant").  Une fois l'outil enregistré sur votre machine, exécutez-le et cochez simplement la case assurant que vous utilisez bien tous ces outils. L'installateur se chargera du reste !

Le site WinBeta indique qu'il serait même possible de modifier ... la date et l'heure du PC pour pouvoir profiter de la mise à jour à l'aide de l'outil GWX. Et le plus drôle dans tout ça, c'est que ça semble fonctionner ! Microsoft n'aurait mis qu'une simple vérification de date que du côté client ? A voir si cette astuce fonctionnera toujours dans les jours à venir.

Sources

Comptoir-Hardware
Kitguru