Algorithmique impérative/sommaire
Photographie/Fabricants/Fodor
Fodor était un fabricant néerlandais.
Guide du MOOC/Concevoir
Concevoir un MOOC en utilisant les médias sociaux.
La conception d'un MOOC dépendra de votre cible d'audience. Plusieurs options et d'outils sont effectivement possibles pour configurer un MOOC. Suivant les intentions poursuivies, les outils retenus peuvent être différents pour obtenir l'architecture visée. Si le public visé est connu, il est peut-être intéressant d'utiliser les outils que ces participants utilisent déjà. Sinon, il est sans doute important de privilégier l'accessibilité et la facilité d'usage. Choisir les outils qui permettent une expérience d'apprentissage optimale (= plus courant, plus simple, technologiquement aisé) est essentiel pour les publics les moins avertis technologiquement.
A cette époque du web participatif, sélectionner les outils pour un cours en ligne peut être exigeante. On peut dégager malgré tout, un ensemble d'outils de base vraiment simples pour démarrer un MOOC. La liste ci dessous n'est en rien exhaustive mais donne un aperçu d'options déjà testées.

Livre de cuisine/Mousse aux fruits
Cette recette de mousse aux fruits fonctionne bien avec les fruits rouges (fraises, myrtilles, etc.).

Programmation Python/Regex
Les expressions régulières en Python nécessitent d'importer le module natif "re", ou bien l'installation du module externe "regex" si besoin des regex Unicode tels que codice_1.
import re
chaine = "12345"
if re.compile('[0-9]+').match(chaine):
 print "Entier positif"
Recherche.
import re
chaine = "Test regex Python pour Wikibooks francophone."
if re.compile('Wikibooks').search(chaine):
 print "Position du mot Wikibooks : "
 print re.search(u'Wikibooks', chaine).start()
 # Affiche "23"
 print re.search(u'Wikibooks', chaine).end()
 # Affiche "32"
Pour voir le motif compilé : codice_7
import re
chaine = "Wikilivre regex Python pour Wikibooks francophone."
print (re.findall(r"Wiki\w+", chaine))
Les parenthèses imbriquées permettent d'indiquer des mots facultatifs au sein d'un . Ex :
import re
chaine = "Wikilivre regex Python pour Wikibooks francophone."
regex = ur'(Python pour Wikibooks)'
print re.search(regex, chaine).start() # 16
regex = ur'(Python (pour )*Wikibooks)'
print re.search(regex, chaine).start() # 16
regex = ur'(Python pour (les )*Wikibooks)'
print re.search(regex, chaine).start() # 16
group().
Pour accéder aux résultats des groupes de capture, utiliser codice_10 en partant de 1 (0 étant le match du motif entier) :
import re
chaine = "Wikilivre regex Python pour Wikibooks francophone."
s = re.search(ur'(Wiki[a-z]*).*(Wiki[a-z]*)', chaine)
if s:
 print s.group(0)
 # Affiche 'Wikilivre regex Python pour Wikibooks'
 print s.group(1)
 # Affiche 'Wikilivre'
 print s.group(2)
 # Affiche 'Wikibooks'
Flags.
Le comportement de certaines expressions peut être reconfiguré en ajoutant un "flag" en paramètre des méthodes.
re.IGNORECASE.
Ignore la casse. Ainsi dans l'exemple précédent nous pouvions aussi faire :
 s = re.search(ur'(wiki[a-z]*).*(wiki[a-z]*)', chaine, re.IGNORECASE)
re.MULTILINE.
Par défaut, les caractères "^" et "$" désignent le début et la fin de tout le texte. Or, en mode multiligne, un "^" en début de re.search() considérera le début de chaque ligne, et "$" leurs fins.
Pour partir uniquement du début de la chaîne globale, il faut alors ne plus utiliser "re.search()" mais "re.match()".
re.DOTALL.
Par défaut, codice_11 et codice_12 s'arrêtent aux retours chariot (\n). Pour qu'ils englobent ces retours à la ligne, il faut appeler codice_13. Exemple :
 if re.search(regex, text, re.MULTILINE| re.DOTALL):
Remplacement.
import re
chaine = "Test regex Python pour Wikibooks francophone."
chaineTriee = re.sub(r' ', "_", chaine)
print chaineTriee
Pour remplacer certains éléments en conservant ceux placés entre parenthèses, il faut les désigner par \1, \2, \3...
import re
chaine = "Test regex Python pour le livre Python de Wikibooks francophone."
chaineTriee = re.sub(r'(.*)livre (\w+)(.*)', r'\1livre "\2"\3', chaine)
print chaineTriee
Remarque : si les paramètres (\1, \2...) sont remplacés par le symbole �, vérifier que la chaine regex est bien encodée avec r.
Exemple : remplacement de la balise "font color=" par "span style=font-size:".
 text = ur'<font color=green>Vert</font> / <font color=red>rouge</font>'
 regex = ur'<font color=([^>]*)>'
 pattern = re.compile(regex, re.UNICODE)
 for match in pattern.finditer(text):
 print u'Remplacement de ' + match.group(0) + u' par <span style="font-color:' + match.group(1) + u'">'
 text = text.replace(match.group(0), u'<span style="font-color:' + match.group(1) + u'">')
 text = text.replace('</font>', u'</span>')
 raw_input(text)
Exemples de formules.
page = u', '
regex = ur'(|.)*[^}]*'
raw_input(re.sub(regex, ur'\2', page).encode(config.console_encoding, 'replace'))
Pour indiquer un nombre précis d'occurrences, utiliser "{nombre}". Ex :
import re
chaine = 'w.1, ww.2, www.3, wwww.4'
print re.sub(ur' w{3}\.', ' http://www.', chaine)
 w.1, ww.2, http://www.3, wwww.4
Idem pour une plage de nombres : {min,max}.

Programmation Java/Regex
En Java, la validation d'une chaîne de caractères peut se faire en utilisant la méthode statique codice_1 de la classe codice_2 :
import java.util.regex.*;
public class Exemple
 public static void main(String[] args)
 System.out.println(Pattern.matches("[0-9]+", "12345")); // true
 System.out.println(Pattern.matches("[0-9]+", "12ABC")); // false
Syntaxe.
Les expressions rationnelles en Java nécessitent le package "java.util.regex".
Recherches.
La classe "Pattern" offre la fonction "matches" qui renvoie un booléen : true (vrai) si la chaîne complète correspond à l'expression régulière, false (faux) sinon.
import java.util.regex.Pattern;
public class Regex
 public static void main(String[] args)
 String chaine1 = "Test regex Java pour Wikibooks francophone.";
 System.out.println(Pattern.matches("[a-z]* Wikibooks",chaine1));
 System.out.println(Pattern.matches("[a-zA-Z ]* francophone\\.",chaine1));
 Affiche :
 false
 true
La classe "Matcher" permet de trouver les résultats d'une expression avec différentes méthodes :
L'exemple ci-dessous affiche tous les mots en gras qu'il trouve dans l'extrait de texte au format HTML suivant :
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class TestRegex
 public static void main(String[] args)
 String chaine = "Test <b>regex</b> <i>Java</i> pour <b>Wikibooks</b> francophone.";
 Pattern p = Pattern.compile("<b>([^<]+)</b>"); // Capture du contenu entre <b> et </b> (groupe 1)
 Matcher m = p.matcher(chaine);
 while (m.find())
 System.out.println(m.group()); // Tout le motif
 System.out.println(m.group(1)); // Le contenu entre <b> et </b>
Affiche :
Remplacements.
On peut utiliser la méthode codice_3. Exemple pour les retirer les espaces : codice_4.
Exemple avec "Matcher" :
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Regex {
 public static void main(String[] args) {
 String chaine = "Test <b>regexé</b> <i>Java</i> pour <b>Wikibooks</b> francophone.";
 Pattern p = Pattern.compile("<b>([^<]+)</b>");
 Matcher m = p.matcher(chaine);
 System.out.println(m.replaceAll(""));
/* Affiche :
Test <i>Java</i> pour francophone.

Dictionnaire de philosophie/L
Photographie/Fabricants/Pentax/Pentax LX

Commentaires.
L'appareil est sorti pour célébrer le 60e anniversaire de la marque, d'où LX, 60 en chiffres romains.