Recherches et git

27 juillet 2018

Vous cherchez quelque chose de particulier sur GitHub?  Peut-être est-ce aussi disponible sur GitLab.  Ou sur BitBucket?

Au lieu de chercher à 3 endroits, utilisez donc l’outil de recherche BitHubLab !


Les revues de code

4 avril 2018

Pour faire de bonnes revues de code, il existe cette checklist!


Le blogue de Steven Pigeon

2 octobre 2017

Ce blogue est un heureux mélange de mathématiques, d’informatique, d’optimizations, de programmation et d’algorithmes!  Un autre des blogues que j’adore : Harder, Better, Faster, Stronger.


Étude sur les langages de programmation et la qualité du code

2 octobre 2017

Un excellent article sur une étude comparative de divers langages de programmation et la qualité (selon divers critères) de chacun de ceux-ci.  L’étude a analysé 728 projects, 63 million de lignes de code, 29000 programmeurs, 1.5 million de commits dans 17 languages de programmation de projets hébergés sur GitHub.

On regrettera toutefois que Smalltalk (ou Pharo) n’ait pas été inclus dans l’étude mais ce sera pour une prochaine fois!

Mon petit doigt me dit qu’en fait de qualité, de taille du code source, de bogues et des autres paramètres étudiés, Smalltalk aurait torché tous les autres langages mentionnés dans l’étude!


Radix Sort

8 août 2017

C’est un article qui date mais, parfois, il est bon de revisiter les algorithmes de base, ne serait-ce que pour les avoir encore bien en tête quand le jour viendra où vous en aurez besoin pour un problème bien particulier!  Parce que les cours universitaires, ils commencent à être loin loin loin dans mes pensées!

Le radix sort revisité!


Apprendre à programmer

10 mai 2017

Vous désirez apprendre et/ou apprivoiser un langage de programmation, un système d’exploitation, une base de données, un shell, etc ?  Vous y songez sérieusement mais vous craignez d’avoir à installer une tonne de trucs sur votre ordinateur pour satisfaire votre curiosité?  Vous y songez mais, malheureusement, ce que vous désirez n’est pas disponible pour votre système d’exploitation?  Vous y songez mais l’installation de tout ce qu’il vous faudrait vous semble compliquée?

Ne cherchez plus! TutorialsPoint.com vous offre l’environnement en ligne CodingGround !  Tous les environnements en ligne ainsi que les tutoriels en ligne sont gratuits en plus!

Qu’est-ce que CodingGround ?  C’est un environnement de développement minimal en ligne vous permettant d’éditer, de compiler et d’exécuter du code.  C’est une machine virtuelle qui vous offre aussi un shell Linux et un browser (pour tester votre PHP, HTML ou CCS par exemple). Pour les environnements qui le supportent, il est également possible de changer les options de compilation. On peut aussi ouvrir simultanément plusieurs fichiers source, scripts, shells, browsers, etc.

CodingGround vous offre en plus de sauvergarder, importer, exporter, partager et lire tous vos projets avec GitHub, DropBox, OneDrive et GoogleDrive!  Vous pouvez aussi simplement garder tous vos projets sur votre ordinateur!

Quels sont les langage de programmation, les systèmes d’exploitation, les bases de données, les outils de développements que CodingGround offre?  Une tonne!

Liste des terminaux (shell) en ligne

Liste des IDE en ligne

 

 

 

 

 


Commodore 64 et… Windows!

13 avril 2017

Vous pleurez toujours votre Commodore 64 tant aimé?  Et si on vous disait qu’il est possible d’écrire des programmes pour le Commodore 64 sur Windows?

Précipitez-vous ici pour tout savoir!


Nettoyer les données avec OpenRefine

13 avril 2017

Un autre excellent article sur l’utilisation d’OpenRefine.


Les plaques du Congo

28 mars 2017

Comment générer une clef séquentielle et incrémentale composée d’une partie numérique et d’un suffixe lettré?

Comme c’est une situation souvent rencontrée et que les gens détestent habituellement s’attaquer aux procédures stockées et/ou évitent d’utiliser leur langage de programmation favori (pour avoir une solution à 100% en SQL), j’ai pensé vous montrer le problème qu’on m’a demandé de résoudre en SQL et ma solution (qui peut facilement être adaptée aux problèmes similaires)…

Dans le cas qui nous intéresse, il s’agit de plaques d’immatriculation de la République du Congo (format CEMAC).


/*
En supposant la définition suivante

CREATE TABLE plaques(plaque VARCHAR(10));

Et le format de plaque d'immatriculation suivant :

RC-0000-AA
RC-0001-AA
...
RC-9999-AA
RC-0000-AB
RC-0001-AB
...
RC-9999-AZ
RC-0000-BA
...
RC-9999-BZ
RC-0000-CA
RC-0001-CA

Comment générer le prochain numéro 
de plaque d'immatriculation disponible?
*/

SELECT 
    CONCAT(prefixe, 
          '-', 
          LPAD(IF(numero=9999, 0, numero+1), 4, '0'), 
          '-', 
          IF(numero=9999, prochain_suffixe, suffixe)
    ) AS nouvelle_plaque
FROM
(
SELECT 
    MID(plaque, 1, 2) AS prefixe, 
    (MID(plaque, 4, 4) + 0) AS numero, 
    MID(plaque, 9, 2) AS suffixe, 
    IF( MID(plaque, 10, 1)='Z', 
        CONCAT(CHAR(ASCII(MID(plaque, 9, 1)) + 1), 'A'), 
        CONCAT(MID(plaque, 9, 1), CHAR(ASCII(MID(plaque, 10, 1)) + 1))
    ) AS prochain_suffixe
FROM 
    plaques
ORDER BY 
    suffixe DESC, numero DESC
LIMIT 1
) t


La performance de votre queue

19 mars 2017

Ça y est?  J’ai toute votre attention? :)

Ces temps-ci je planche sur un problème relié à la performance de queues de messages (file d’attente de messages, file de messages, message queue).  Heureusement, plutôt que d’avoir à expérimenter par essais et erreurs ou à simuler le système final, les mathématiques sont venues à la rescousse.

Deux articles hyper-utiles sur la performance des queues de messages : le premier ici et le second ici.

Et pour ceux que ça intéresse, il est également possible de télécharger gratuitement un document PDF sur le sujet ici.