L’infrastructure de Twitter

24 novembre 2019

Ouf!  Un article hallucinant sur toute l’artillerie nécessaire pour que Twitter fonctionne!  C’est dément quand on y pense!!!


Smalltalk et les nombres

24 novembre 2019

Je suis tombé sur un autre article intéressant sur l’excellent blogue de John D. Cook où il traite des erreurs possibles de précision quand on effectue des calculs avec des Float ou des Double.

Évidemment, dans le problème énoncé, si on a recours à des calculs en point flottants, Smalltalk n’échappe pas à la situation décrite, comme n’importe quel autre langage de programmation!

Cependant, on a tendance à l’oublier, Smalltalk vient à la base avec une riche hiérarchie sous la classe Number d’aussi loin qu’on se souvienne!  Il y a donc moyen de faire en sorte que l’expression décrite converge vers une solution précise et exacte!  Comment?  Avec des fractions!

C’est symptômatique de chaque Smalltalker, nous oublions trop souvent à quel point les nombres en Smalltalk sont traités de façon transparente, sans que nous ayions besoin de librairies spécialisés pour le « large integer arithmetic » ou les fractions par exemple! Nul besoin de savoir si tel ou tel nombre peut être représenté sur 32 ou 64 bits!  En fait, les LargeIntegers ne sont limités que par la mémoire disponible sur votre ordi! Quel autre langage peut se targuer d’être en mesure de faire les calculs suivants sans avoir besoin de librairies spécialisées ou que votre environnement de développement vous explose en pleine figure??


MySQL Toolkit

7 mars 2019

J’ai finalement fait mon premier vrai commit sur GitHub, MySQL Toolkit.  Ce repository, avec un peu de temps, deviendra une collection de scripts, de fonctions, de procédures stockées et d’un tas d’autres choses utiles lorsque vous travaillez avec MySQL.  Pour l’instant toutefois, il n’y a que des fonctions.

Ce premier commit comprend:

collapse_blanks : Replaces multiple blanks with a single space.
collapse_spaces : Replaces multiple spaces with a single space.
initcap : Returns a character string with the first letter of each word converted to uppercase. This function EXACTLY mimics INITCAP of Oracle.
occurrences : Returns the number of occurrences of a search string inside a source string.
rot5 : Encodes/decodes a string with the ROT5 substitution cipher.
rot13 : Encodes/decodes a string with the ROT13 substitution cipher.
rot18 : Encodes/decodes a string with the ROT18 substitution cipher.
rot47 :Encodes/decodes a string with the ROT47 substitution cipher.
shuffle : Randomly shuffle the characters of a string using the Fisher-Yates (aka Knuth shuffle) algorithm.
to_roman : Converts an integer to its Roman numeral representation.

En attendant mon prochain commit, laissez-moi savoir en commentaire s’il y a des fonctions que vous trouveriez utiles dans MySQL!

 

 

 


Pharo et documentation

27 février 2019

La documentation de Pharo est maintenant ici sur Git !


Compression et MySQL : la suite

27 février 2019

Voici la suite de l’article dont je parlais précédemment ici.


Explore, Expand & Extract : 3X

27 février 2019

3X : une nouvelle idée de Kent Beck, un tout nouveau paradigme expliqué dans un article ici et présenté en conférence dans le vidéo ici.


Git + Emoji

27 février 2019

Une façon intéressante utilisant des emojis pour commenter vos commits dans Git présentée ici !