Humour (142)

16 janvier 2019


GRANT, REVOKE et MySQL 8.0

16 janvier 2019

Si vous comptez prochainement utiliser MySQL 8.0, vous devriez réviser tout ce que vous savez sur les droits d’accès, les commandes GRANT, REVOKE, CREATE USER et les rôles! Un excellent résumé ici.

 


Travailler à distance

16 janvier 2019

Travailler à distance, c’est possible et souvent souhaitable et même bénéfique!  Un excellent article sur le sujet ici.

Pour rester dans le même thème, il y’a ce café à Montréal qui semble sur mesure pour coder!


Advent of Code 2018

5 décembre 2018

Vous avez besoin d’un petit défi amusant, question de vous remuer les méninges un peu d’ici à Noël ?

Il existe Advent of Code 2018, une série de 25 problèmes informatiques que vous pouvez résoudre dans le langage de programmation de votre choix! Un problème par jour, 2 parties à résoudre par problème!

À chaque jour, un nouveau problème est dévoilé.  Chaque participant a le même défi mais avec des données en entrée différentes.  Une fois le problème résolu, on vous propose une seconde colle à partir du même problème et de votre même jeu de données!  Le hic, c’est que parfois les algorithmes et les structures de données employées pour résoudre la première partie du problème ne conviennent tout simplement pas pour la seconde partie.  Bref, une espèce de torture mentale de laquelle on devient vite accro!

Et tant qu’à y être, pourquoi ne pas profiter de l’occasion pour apprendre un nouveau langage de programmation ?  Comme Smalltalk avec Pharo ?


Humour (137)

3 décembre 2018


Baselines & Pharo

3 décembre 2018

Comment ça fonctionne les baselines en Pharo?  C’est expliqué en détail ici !


Analyser votre code

29 novembre 2018

Vous êtes friands de métriques quant à votre code?

Il y a ce tout nouveau package, DMMetrics, qui analyse les dépendances dans votre code Pharo avec plusieurs métriques.


SQL et Git

29 novembre 2018

Un excellent article sur la gestion des requêtes SQL avec Git!  Par ailleurs, le blog de Caitlin Hudon vaut amplement le détour!


Fragments (2)

20 novembre 2018

On définit grossièrement la persistence multiplicative par le nombre de fois qu’on peut multiplier les chiffres d’un nombre entre eux jusqu’à ce que le résultat ne comporte qu’un seul chiffre.

Par exemple:

679 ->  6 * 7 * 9 = 378
378 ->  3 * 7 * 8 = 168
168 ->  1 * 6 * 8 = 48
48 ->  4 * 8 = 32
32 ->  3 * 2 = 6

On dira donc que le nombre 679 a une persistence multiplicative de 5.

Le code Pharo ci-bas sert à trouver la persistence multiplicative d’un nombre.

| persistence residu |

"Trouver la persistence multiplicative du nombre 277777788888899"
residu := 277777788888899.

persistence := 0.
[ residu > 9 ]
    whileTrue: [ residu := residu printString 
                               inject: 1 
                               into: [ :mul :each | mul * each digitValue ].
                 persistence := persistence + 1 ].
persistence inspect

Pour des méthodes plus performantes, il y a cet excellent papier (en anglais) qui explique quelques astuces et également celui-ci en français..

 


collapseSpaces

20 novembre 2018

Besoin d’éliminer les espaces multiples pour les remplacer par un seul?  J’ai ce qu’il vous faut!

 

SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES';
DROP FUNCTION IF EXISTS collapseSpaces;

DELIMITER //
CREATE FUNCTION collapseSpaces ( stringparam VARBINARY(255))
RETURNS VARBINARY(255)
DETERMINISTIC
LANGUAGE SQL
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'Returns a string with all spaces replaced/merged by/into a single space character'

BEGIN
DECLARE newString VARBINARY(255);
DECLARE hasChanged TINYINT UNSIGNED;
DECLARE oldLength TINYINT UNSIGNED;

SET hasChanged = 1;
SET newString = stringparam;
SET oldLength = CHAR_LENGTH(stringparam);

WHILE hasChanged DO
SET newString = REPLACE(newString, ' ', ' ');
SET hasChanged = (oldLength != CHAR_LENGTH(newString));
SET oldLength = CHAR_LENGTH(newString);
END WHILE;

RETURN newString;
END
//

DELIMITER ;
SET SQL_MODE=@OLD_SQL_MODE;