Recherche sur le blog

vendredi 26 mai 2017

[Multimédia] Winamp Community Update Pack

Il faut se rendre à l'évidence : on ne verra pas de nouvelle version de Winamp avant un certain moment. Cela fait maintenant un peu plus de 3 ans que le site officiel affiche cette phrase "There's more coming soon". Suite au rachat par les belges de Radionomy en 2014, eux-mêmes détenus à 64,4 % par Vivendi en décembre de l'année suivante, on pourrait penser que les plans ont légèrement changé. Même la page Facebook n'a pas été mise à jour depuis septembre 2015.


La bonne nouvelle c'est que la communauté existante autour du logiciel n'a jamais vraiment dit son dernier mot. En janvier 2016 le site getwacup.com est lancé. L'initiative vient du développeur Darren Owen (alias "Dr. O"). Le but est de continuer à étendre ou améliorer les fonctionnalités de la version 5.666 en remplaçant ou en ajoutant des plugins. 

Pour le moment le pack est en beta. Il faudra s'inscrire sur le forum pour faire partie du programme. La dernière version date de ce mois.

mercredi 17 mai 2017

[Jeux vidéo] L'adaptation TV de The Witcher

Pour beaucoup de livres et de jeux vidéo, une adaptation cinéma finit par voir le jour après quelques années. Dernièrement il y a eu Assassin's Creed, mais cela n'a pas été une franche réussite. C'est maintenant au tour de la série de romans de l'écrivain polonais Andrzej Sapkowski, The Witcher, de subir le même traitement. C'est en effet sur Netflix que l'on retrouvera les aventures du sorceleur


On apprend également que CD Projekt Red n'aura aucun rôle dans ce projet, il faut donc s'attendre à ce que la série soit plus proche des romans que du jeu vidéo lui-même. On a hâte de retrouver Geralt de Riv mettant la pâtée à quelques nekkers !

Sources

mardi 16 mai 2017

[Jeux vidéo] Nouveaux jeux à venir chez Ubisoft

Ubisoft annonce via Twitter - et sans plus de détails - trois nouveaux jeux : Assassin's Creed (Origins ? le nom reste toutefois à confirmer), ainsi que Far Cry 5 et The Crew 2. Cependant, aucune date de sortie n'a été donnée. On peut juste supposer et espérer qu'ils sortent fin de cette année, ou au moins début 2018. 


Ubisoft sera peut-être plus généreux en détails à l'E3, le 12 juin à 22h heure belge.

Sources

Guru3D

[Sécurité] Patch de sécurité pour WannaCry

Le patch de sécurité KB4012598 est disponible depuis hier pour Windows XP, Vista, 8 et 2003 via le catalogue Microsoft Update. Il corrige la faille de sécurité CVE-2017-0145 qui était présente dans le protocole de partage de fichiers SMB "Server Message Block" de Windows. Celle-ci permettait notamment au ransomware WannaCry de se propager via le réseau local sur des machines vulnérables après avoir été téléchargé par l'utilisateur sur son PC. Celui-ci aura fait quelques dégâts dans les entreprises et chez les particuliers durant ces derniers jours...


Pour télécharger le correctif : 
La faille a été corrigée lors du Patch Tuesday du 12 mars 2017 pour les autres systèmes d'exploitation, dont Windows 10.

Voir aussi : outil de déchiffrement WannaKey

Sources

lundi 1 mai 2017

[Windows 10] Le grand dilemme entre vie privée et confort d’utilisation

Tiraillés entre la protection de leurs données et l’envie de les conserver à portée de main, les utilisateurs sont souvent peu conscients qu’elles sont une ressource précieuse, et qu’ils les échangent contre des services de plus en plus poussés.


Grâce au multiplateforme, Windows 10 prend de plus en plus de place dans les foyers. © Fanny Betermier

Depuis 2015 et surement bien avant, Microsoft récolte presque toutes les données de ses utilisateurs. Contrairement à son concurrent Apple, qui reste évasif quant à ce qui est collecté ou pas, Windows est très précis sur ce qui l’est, en atteste leur déclaration de confidentialité : nom/prénom, adresse e-mail, paramètres de configuration des programmes et de l’ordinateur, historique et moteur de recherche, localisation, appels et SMS, contacts, données de paiement, centres d’intérêts, prédiction de texte et commandes vocales, etc. Pour les utilisateurs de Windows 10, tout y passe. Sur un ton clair, explicatif et enjoué, cette déclaration fait passer ce qui semblerait autrement alarmant, pour du confort, de l’avancée technologique, de l’innovation.

Tout ça se fait en toute légalité, puisqu’en étant aussi précis sur les données qui sont collectées, la firme de Redmond, près de Seattle aux États-Unis, respecte parfaitement la législation Européenne en la matière. D’autant plus qu’en installant la nouvelle version de Windows, l’utilisateur marque son accord avec les conditions d’utilisation, qu’il affirme avoir lues, même s’il ne le fait que très rarement. Pourtant, les conditions de la directive de protection des données de la Commission Européenne sont alors respectées. Le bébé de Bill Gates est ainsi juridiquement couvert. En France, ça n’a pourtant pas empêché la Commission Nationale de l’Information et des Libertés de mettre Microsoft en demeure de « cesser la collecte excessive de données et le suivi de la navigation des utilisateurs sans leur consentement » en juillet 2016. Une décision qui ne vaut pourtant que pour la France.

La plus grosse question que pose cette collecte massive de donnée est celle de la publicité ciblée. Selon la déclaration de confidentialité, les données rassemblées sont envoyées à Microsoft, ainsi qu’à ses collaborateurs pour améliorer ses services, mais aussi à des entreprises tierces afin de leur permettre d’envoyer des annonces personnalisées, en fonction de vos gouts. Même s’il affirme ne pas utiliser « ce que vous dites dans les e-mails, les discussions, les appels vidéo ou la messagerie vocale, ni vos documents, photos ou autres fichiers personnels pour vous envoyer des annonces ciblées », cela fait déjà une grande quantité de données. Il est bien entendu possible de désactiver la plupart des paramètres récoltant ces informations. De nombreux sites expliquent même comment faire pas-à-pas, mais il faut pour cela accepter de renoncer à toutes les fonctionnalités intéressantes du système, comme par exemple l’assistant vocal Cortana.

L’illusion du gratuit

Selon le Professeur Pierre Dupont, vice-doyen de l’École Polytechnique de Louvain et co-fondateur du Machine Learning Group de l’UCL « c’est le jeu de l’illusion du gratuit. On utilise de plus en plus de choses qui sont marketées ou crues par les utilisateurs comme gratuites, alors que rien ne l’est dans ce monde. Le prestataire de service doit s’y retrouver quelque part. » C’est le cas même pour Microsoft, pourtant troisième société ayant la plus grande valeur en bourse au niveau mondial. Alors à la sortie de Windows 10 en juillet 2015, la firme de Redmond a décidé de rendre la mise à jour de son système d’exploitation gratuite, pendant un an et pour les détenteurs de Windows 7 et 8.1. Le but était de ne pas se laisser dépasser par les traditionnels concurrents Apple et Google, qui proposaient déjà cette gratuité.

Alors comment continuer à faire entrer de l’argent dans les caisses sans faire payer le client ? En transformant le client, ou plutôt ses données, en produit. Et ils sont nombreux, puisque près de neuf ordinateurs sur dix dans la monde sont équipés d’une des versions de Windows. Attention, la collecte de données par Microsoft n’est pas nouvelle, elle était déjà présente sur la version précédente. Elle n’est pas non plus exclusive à la marque, puisque ses concurrents en font aussi usage. Redmond fait même plutôt bonne figure par rapport à ces derniers.

Du business et de l’innovation

Windows se justifie bien sûr par une amélioration constante de la performance et de l’intuitivité des programmes en fonction de la façon unique dont une personne utilise ses appareils. C’est notamment le cas de Cortana, qui s’adapte à son utilisateur au fil du temps. Et c’est précisément là que se situe la frontière entre les affaires et le progrès. « Ce sont des sociétés commerciales qui pensent à faire du profit », explique le Professeur Dupont, « ça ne veut pas dire qu’il n’y a pas d’innovation. » Car l’assistant vocal apprend, en quelque sorte, grâce à l’évolution des méthodes de Machine Learning, et en particulier du deep learning.

Le deep learning, ou apprentissage profond, est une méthode d’intelligence artificielle basée sur un modèle en forme de réseau neuronal, c'est-à-dire des entités reliées entre elles ayant des impacts différents en fonction de leur valeur. Il fonctionne sur base d’une donnée d’entrée et d’un résultat attendu. Entre les deux, les relations entre les données d’entrée et les résultats sont analysées par un algorithme afin de se combiner pour modéliser le plus précisément ces relations. Le but est que la machine puisse, après une phase d’apprentissage supervisée par l’homme et sur base des données antérieures, arriver à déduire elle-même le chemin à parcourir en fonction de ce qui est recherché. Pour simplifier et comme l’explique Pierre Dupont, c’est comme quand on apprend à conduire : en s’entrainant sur un nombre limité de routes, le but est de pouvoir appliquer ce qu’on a appris pour conduire sur toutes les routes du monde.

Il ne s’agit pas d’une nouvelle technologie. Les fondements du deep learning datent des années 80, mais il n’a pu se développer fortement que très récemment parce qu’il est extrêmement gourmand au niveau des ressources de calcul des ordinateurs et requiert de très larges collections de données pour fonctionner. De telles performances, liées à celles des processeurs graphiques des ordinateurs, étaient jusqu'à présent très couteuses à atteindre et n’ont commencé à se démocratiser que récemment. Voilà pourquoi l’assistant vocal Cortana, une des raisons pour lesquelles Microsoft récolte les données, n’est apparu que sur la version mise à jour de Windows Phone 8.1.

En lui demandant simplement de programmer un rendez-vous avec quelqu’un, il doit comprendre et être capable d’aller vérifier les disponibilités de l’utilisateur dans son calendrier, mais aussi d’envoyer un e-mail à cette personne pour vérifier quand elle est libre,  d’analyser sa réponse pour proposer différentes dates et enfin sauvegarder le rendez-vous dans son agenda. Pour le Professeur Dupont, « L’apprentissage est dans le fait de reconnaitre votre parole. Les systèmes de reconnaissance vocale sont initialisés avec un ensemble de locuteurs type, mais leurs performances s’améliorent s’ils deviennent plus spécifiques à un individu. Sur base de ce feedback reçu par l’utilisateur, l’algorithme d’apprentissage va ajuster le modèle et va permettre aux interactions futures de se passer de mieux en mieux. »

Un futur à portée de main

Toujours selon Pierre Dupont, cette technologie offre de nombreuses perspectives d’avenir dans le domaine de la vie quotidienne, notamment en domotique, c'est-à-dire les systèmes de contrôle des appareils domestiques à distance. Un avenir qui semble se rapprocher à une vitesse folle, puisque Microsoft travaille en ce moment sur le développement de l’assistant domestique HomeHub, afin de concurrencer Amazon et Google sur ce terrain. Microsoft dispose néanmoins d’un avantage sur ses rivaux : celui de pouvoir associer son propre système d’exploitation, un des plus répandus au monde, avec son assistant. Celui-ci devrait, comme ses concurrents, permettre de jouer de la musique à partir de différents logiciels et services de streaming, de répondre à des commandes vocales, de lancer des vidéos sur la télévision, de contrôler la lumière, le thermostat : en somme d’interagir avec tous les objets de la maison, pour peu qu’ils soient connectés. Le tout devrait, toujours grâce au deep learning, apprendre à connaitre son propriétaire.

Cette nouvelle évolution technologique ne laissera sans doute pas de répit à la collecte de données des utilisateurs, mais ils seront tout de même nombreux à accepter ces contraintes. Un choix qui surprend le Professeur Dupont. « Ce n’est pas un danger, mais il y a un risque d’ouverture sur des choses personnelles. Je suis assez frappé par le fait que beaucoup de personnes se déclarent parfois très choqués par le fait que leur vie privée puisse être violée et en même temps, ce sont les premiers à diffuser une grande quantité d’information personnelles et accepter tout ce qu’on leur propose sur un smartphone. » Et ça sera bientôt le cas pour toute leur maison.

Ce que Microsoft nous dit donc, c’est que nos ordinateurs, tablettes, smartphones et bientôt ampoules et frigo, qui interagissent entre eux pour nous rappeler qu’on a un rendez-vous, c’est le futur. En échange, il faut que nos appareils aient accès à nos données. Toutes nos données. Si par contre nous choisissons de décliner l’offre, de ne pas accepter le deal, et que nous souhaitons que notre Personal Computer reste personnel, alors Windows 10 ne devient rien de plus qu’un joli système d’exploitation tout à fait ordinaire.

vendredi 7 avril 2017

[Windows 10] Nouveautés de la Creators Update

Alors que le déploiement de la Creators Update - la nouvelle mise à jour pour le système d'exploitation Windows 10 - est annoncé pour le 11 avril, il est possible de l'obtenir à l'aide d'un assistant que l'on peut télécharger, sur le site de Clubic notamment. Au menu de cette nouvelle build, des améliorations du navigateur Edge, de nouveaux paramètres de confidentialité, une application de dessin en 3D, et même un mode jeu...


Une fois installée, l'utilitaire winver renseigne la build 15063.13. Pas de grande différence notable lorsqu'on arrive sur le bureau, il faut un peu chercher aux différents endroits pour voir ce qui change.

Premièrement, lors d'un clic droit sur le menu démarrer pour afficher le Power Menu (raccourci Win+X), on constate la disparition du raccourci vers l'ancien panneau de configuration. C'est un peu regrettable puisque tout n'a pas encore été migré vers la nouvelle interface de gestion des paramètres, même si Microsoft continue à améliorer celle-ci.

D'ailleurs, c'est ce qu'on remarque en second lieu. L'application native Paramètres adopte deux nouvelles catégories : Applications, et Jeux.


Dans la première, on retrouve les fonctionnalités qui permettent de gérer les applications installées ou les programmes associés à certaines actions par défaut. L'onglet Applications pour les sites web permet d'activer ou de désactiver le lancement d'une application lorsqu'une URL particulière est visitée.


La catégorie Jeux est toute fraiche : celle-ci vous permet de configurer la barre de jeux et les raccourcis pour enregistrer vos sessions de jeux ou démarrer une conversation vocale. Quant à l'onglet Mode jeu, il permet d'activer la nouvelle fonctionnalité du même nom spécialement introduite dans cette mise à jour. Lors de la détection d'un jeu Windows donnera la priorité à celui-ci pour s'assurer de bénéficier des meilleures performances. Il désactivera également les notifications et reportera les mises à jour.

 
Par défaut, le raccourci pour activer la barre de jeux est Win+G. Une fois celle-ci affichée vous pourrez configurer les différents comportements pour le jeu en cours : utilisation du mode jeu, enregistrement de la session de jeu en arrière-plan, etc.

En terme de personnalisation, Microsoft introduit ce qu'on appelle le mode nuit,  ou Éclairage nocturne. L'utilisateur peut définir la température de couleurs qu'il souhaite obtenir et planifier l'activation du mode selon un horaire bien spécifique.

 
Enfin, en ce qui concerne le menu démarrer, il est désormais possible de créer des dossiers regroupant plusieurs tuiles. Il suffit de déplacer une tuile sur une autre, ce qui crée directement un groupe. On répète l'opération pour y rajouter des éléments.

 
Une autre nouveauté de cette version, c'est l'application Paint 3D. Elle permet de créer / manipuler des contenus graphiques en trois dimensions, de transformer une image existante en autorisant la rotation sur les différents axes. Les utilisateurs pourront partager leurs créations sur le site web Remix3D.


Le navigateur Edge a également été mis à jour et peut afficher du contenu en 3D. Le support du HTML5 a, lui aussi, aussi été amélioré : le score au test de fonctionnalités est désormais de 473 contre 460 dans la mise à jour "Anniversaire".


Le navigateur offre désormais la possibilité à l'utilisateur d'afficher une vignette pour chaque onglet ouvert, grâce à la petite flèche située juste à droite de ceux-ci. Pratique : en un coup d’œil il est possible de retrouver une page importante sans avoir à regarder le titre.

Autre fonctionnalité intéressante : les onglets que vous visitez peuvent être mis de côté pour plus tard (voir l'image ci-dessous). Une fois cette opération effectuée l'onglet en cours est remplacé par un onglet vierge.


Les pages mises de côté sont alors reprises dans une barre latérale qu'on peut afficher quand on le souhaite en cliquant sur le bouton dans le coin supérieur gauche. Cliquez sur le bouton "Restaurer les onglets" pour recharger l'ensemble dans le navigateur.


Du côté plus technique, Windows introduit le modèle WDDM 2.2 (Windows Display Driver Model). Les spécifications de ce dernier apportent plusieurs améliorations comme le support de Windows Holographic, le support natif du HDR,... Les constructeurs AMD et Nvidia ont déjà sorti un pilote compatible.

En terme de sécurité, Microsoft introduit le Centre de sécurité Windows Defender, qui regroupe la gestion de l'antivirus, l'analyse des performances et de l'intégrité de l'appareil, le contrôle de la fonctionnalité SmartScreen, la gestion du pare-feu, ainsi que du contrôle parental.

La firme renforce également son outil baptisé Advanced Threat Protection, que l'on retrouve sur la version Entreprise du système d'exploitation.


On terminera par la confidentialité, qui semble avoir été au centre des discussions ces derniers temps. Microsoft semble avoir réduit la quantité des données collectées au sein des applications et du système lui-même. De plus, lors de l'installation, l'utilisateur devra choisir ce qu'il souhaite ou non transmettre. Le reste se configure toujours au sein de l'application Paramètres, dans la catégorie Confidentialité.
  
Sources

The Guardian.
The Register.
Touslesdrivers.

mercredi 22 mars 2017

[Sécurité] No More Ransom!

En parcourant un forum, j'ai découvert un site bien pratique qui pourrait vous être utile en cas d'infection par un ransomware. On en a assez bien parlé mais si vous ne le savez pas encore, ces logiciels malveillants agissent en bloquant bien souvent l'interface utilisateur, incitant alors ce dernier à payer une certaine somme pour retrouver l'accès à son ordinateur et/ou ses fichiers (qui auraient été chiffrés). 

Bien entendu, il n'est pas certain de recevoir la clé une fois le paiement effectué. Après tout, ce sont des arnaqueurs qui répandent ce genre de cochonnerie, il serait mal avisé de leur faire confiance.

C'est ainsi que le site No More Ransom va peut-être réaliser le miracle que vous attendiez ! 

     
La première étape consiste à identifier le type de ransomware qui s'est méchamment incrusté dans votre machine. Le site Malekal regorge d'informations à ce sujet, mais vous pouvez bien entendu utiliser la fonctionnalité Crypto Sheriff du site présenté ci-dessus. Celle-ci nécessite l'une des actions suivantes:
  • Envoyer un fichier sous sa forme cryptée.
  • Transmettre le nom, l'adresse e-mail ou même l'URL du site web, l'adresse bitcoin, qui est indiquée par l'auteur du logiciel malveillant et qui lui permet de recevoir son paiement.
  • Transmettre le fichier texte d'instructions créé par le ransomware, qui porte généralement l'extension TXT.
Une fois cette opération effectuée il faut cliquer sur le bouton "Find out" pour laisser l'outil faire le reste.  
     
La seconde étape consiste à télécharger l'outil de décryptage adéquat et lié au ransomware qui a été installé (et espérons-le, éradiqué à l'heure qu'il est) sur votre PC. Si vous connaissez déjà le doux nom de la crasse qui a osé s'emparer de votre machine, alors vous pouvez directement vous rendre dans la section "Decryption Tools" du site et télécharger le bon fichier.
    
Et si vous n'aimez pas l'anglais, sachez que l'interface est disponible en français ! N'hésitez pas à explorer les autres rubriques comme les questions/réponses (FAQ), les conseils de préventions,... Aujourd'hui l'attaque à l'aide de ransomwares est plutôt répandue ; celle-ci doit être prise au sérieux puisqu'elle touche aussi bien les particuliers que les professionnels.

mercredi 8 mars 2017

[Java] JPA : Fetch dans une requête JPQL

Quand on crée des entités avec la Java Persistence API, on peut spécifier des jointures qui se présentent alors sous forme d'objets liés à d'autres entités, plutôt que sous la forme de variables comme des chaines ou des Long. Voici un exemple de relation entre un client et ses factures.
@Entity
@Table(name = "CLIENT", schema = "maDb")
public class Client implements Serializable
{
   @Column(name = "CLI_ID_CLIENT")
   private Long l_idClient;

   @OneToMany(mappedBy = "objClient")
   private List<Facture> objListFactures;

   ...
}

@Entity
@Table(name = "FACTURE", schema = "maDb")
public class Facture implements Serializable
{
    @Column(name = "FAC_ID_FACTURE")
    private Long l_idFacture;

    @ManyToOne
    @JoinColumn(name = "FAC_ID_CLIENT")
    private Client objClient;

    ...
}
Ce qu'on a fait : 
  • Dans l'entité Client, on a créé une liste de factures, en spécifiant le tag @OneToMany (relation 1-N soit un client peut avoir plusieurs factures) avec pour attribut mappedBy le nom de la variable Client qui a été ajoutée dans notre entité Facture. 
  • Dans cette dernière, on doit spécifier la relation dans l'autre sens, donc avec le tag @ManyToOne (relation N-1, soit plusieurs factures pour un même client). 
  • On doit également ajouter le tag qui indiquera sur quelle colonne on effectue la jointure afin que la relation fonctionne (@JoinColumn + attribut name). Il faut indiquer le nom de la colonne tel que spécifié dans la base de données.
Par défaut, quand on récupérera plusieurs clients, leurs factures ne seront pas immédiatement chargées. C'est ce qu'on appelle "Lazy Loading" qui est le comportement par défaut quand on ne spécifie pas l'attribut fetch au niveau de la relation.

Afin de récupérer les factures lorsqu'on récupère un client, nous avons plusieurs choix qui se présentent à nous :

Spécifier l'attribut "fetch"

On peut spécifier au niveau de la relation, l'attribut fetch avec la valeur EAGER. Cela signifie que pour chaque client on récupérera toujours ses factures, ce qui n'est probablement pas ce que l'on souhaite (attention aux temps d'accès et aux accès en cascade s'il y a d'autres entités liées de cette manière).
@OneToMany(mappedBy = "objClient", fetch = FetchType.EAGER)
private List<Facture> objListFactures;
Accéder à la liste

Lorsqu'on récupère l'objet client depuis la base de données dans notre Session Bean, on peut accéder à la liste pour que son contenu soit chargé.
Client cliFromDb = ... ;  
cliFromDb.getObjListFactures().size();
Créer une requête JPQL

On crée une requête avec la syntaxe JPQL, ce qu'on appelle des "Named queries". Elles sont définies soit dans une méthode que vous aurez pris soin d'écrire, soit directement au niveau de l'entité, à l'aide des tags adéquats.
@NamedQueries({ @NamedQuery(
     name = "Client.findClientByPkWithFactures", 
     query = "select c from Client c left 
        join FETCH c.objListFactures 
        where c.l_idClient = :idClient")
  })
Exemple de classe qui définit des fonctions pour la gestion des clients. Ces fonctions seront appelées depuis notre Session Bean.
public class ClientManager
{
  private EntityManager em;

  public ClientManager(EntityManager em)
  {
     this.em = em;
  }

  public Client findClientByPkWithFactures(Long pId) 
  {
     Query query = em.createNamedQuery(
         "Client.findClientByPkWithFactures")
      .setParameter("idClient", pId);   
     Client res = (Client)query.getSingleResult();
     return res;
  }
} 
Bon développement !

lundi 27 février 2017

[JS] JQuery - Mémo #1 - Sélecteurs

Coché et sélectionné

On utilisera le sélecteur ":checked".
Exemple :
if($('#monChampId').is(':checked'))
{
  ...
}
A noter qu'on pourra utiliser ":selected" pour des listes déroulantes, dans la méthode find par exemple, ou directement comme sélecteur.
$("#maComboId option:selected").text();
Récupération du parent (méthode)
$('#formTest').parent()
Récupère le parent du niveau direct inférieur. On peut aussi spécifier un filtre en tant que paramètre de la fonction, pour s'assurer de la nature du parent choisi.

Sélection par classe
var champ = $('.classe1');
Sélection par ID
var champ = $('#idChamp');
Sélection de champs sur l'attribut "name"
$('element[name="VALUE"]')
On peut notamment utiliser :
  • ^= : commence par.
  • $= : termine par.
  • *= : contient.
La recherche peut être effectuée sur d'autres attributs (ex : id, type).

Traitement appliqué à plusieurs éléments

Utiliser la fonction find sur le parent (par exemple, un formulaire).
$('#formTest').find('input[type=text].classe1, 
   select.classe2').each(function()
{ 
 // Traitement des champs 
 // (utiliser $(this) pour le champ parcouru).
});
On peut envisager d'utiliser des sélecteurs qui contrôlent l'état.
$('#formTest').find('select.classe2:visible:disabled, 
   input[type=radio]:not(:disabled)').each(function()
{ 
 ...
});
Ou même recherche sur un enfant...
$('#formTest').find('div.classe1 > input[type=text]')
  .each(function()
{ 
 ...
});

Plus

Les sélecteurs

[Java] Appel de méthode avec l'API Reflection

Vous avez par exemple deux classes qui possèdent la même méthode (même nom, même signature) mais au moment de l'exécution, vous souhaitez choisir dynamiquement laquelle appeler à l'exécution. L'API Reflection permet d'effectuer cela de manière plutôt simple.

Supposons la classe suivante, "MaClasse1" dans laquelle on a écrit une fonction "getHello", qui prend en paramètres une chaine de caractère, et un nombre quelconque dans un objet de type Long. La fonction retournera C1= suivi du contenu de la chaine. Dans l'exemple nous n'afficherons pas le nombre passé en second paramètre.
public class MaClasse1 
{
  public String getHello(String text, Long nbTest)
  {
    return "C1=" + text;
  }
}
Nous créerons deux classes supplémentaires, appelées "MaClasse2" et "MaClasse3", qui implémenteront la même fonction en retournant cette fois C2 ou C3, tous deux suivis du contenu du paramètre.
Class laClasse = ...;
Object instClasse = laClasse.newInstance();
Class paramTypes[] = new Class[2];
paramTypes[0] = String.class;
paramTypes[1] = Long.class;
Method laMethode = laClasse.getMethod("getListeDestinataire",
  lo_parameterType);
Object paramVal[] = new Object[2];
paramVal[0] = ...;
paramVal[1] = 2L;
System.out.println(laMethode.invoke(instClasse, paramVal));
Ce qu'on a fait :
  • Instancier un objet de classe en spécifiant (par exemple, dans une fonction), la classe (ex : MaClasse1.class) ou avec Class.forName("Class FQN").
  • Créer un tableau contenant les types de paramètres. Ce sera un tableau de classes. Dans notre cas, ce sont des objets classiques, mais on peut aussi utiliser Class.forName().
  • On crée un objet de type Method, en utilisant getMethod() de l'objet Class (pas l'instance). On passe en paramètres le nom de la fonction, et le tableau de types.
  • Créer un tableau, cette fois qui contiendra des éléments Object. 
  • Spécifier les valeurs des paramètres.
  • Appeler la méthode invoke() de l'objet Method, avec en paramètres l'instance de la classe et les valeurs des différents paramètres. 
Ainsi, si on écrit :
 Class laClasse = MaClasse2.class;
 ...
 paramVal[0] = "test";
Lors de l'affichage, on obtiendra "C2=test".

Dans ce petit bout de code on a donné les valeurs aux différents objets en "dur"... Il ne vous reste plus qu'à adapter tout ça ;-) Bon amusement !