Articles

Installer Haskell sur ChromeOS

Image
Pourquoi Haskell ? Haskell est un langage de programmation purement fonctionnel qui se distingue par sa rigueur mathématique et sa puissance expressive. Si vous souhaitez explorer une approche différente et plus formelle de la programmation, Haskell est un excellent choix.  Grâce à sa typologie stricte, son évaluation paresseuse et ses abstractions de haut niveau, il représente un paradigme unique dans le monde du développement logiciel. En apprenant Haskell, vous serez exposé à de nouveaux concepts qui élargiront votre compréhension de la programmation. Pourquoi ChromeOS ? Avec l'évolution de ChromeOS, Google a introduit un mode Linux, souvent appelé "Crostini", qui permet aux utilisateurs d'exécuter une machine virtuelle Linux directement sur leur Chromebook. Cette fonctionnalité a ouvert la porte à de nombreuses nouvelles utilisations pour les Chromebooks. Activer le mode Linux sur ChromeOS est aussi simple que d'aller dans les paramètres et de cliquer sur &quo

Interroger vos documents PDF avec GPT-4

Image
C'est quoi un LLM ? Un LLM (Large Language Model) est un modèle informatique avancé qui a été entraîné pour comprendre et manipuler le langage humain.  En termes simples, c'est comme un programme informatique qui apprend à parler, lire et écrire dans différentes langues.  Il fait cela en analysant d'énormes quantités de textes provenant de diverses sources, comme des livres, des articles et des sites Web.  Grâce à cet apprentissage, il devient capable de répondre à des questions, de rédiger des textes et même de mener des conversations avec les utilisateurs. Un exemple de LLM est ChatGPT, qui est basé sur l'architecture GPT-4 d'OpenAI. Comment utiliser un LLM avec mes données ? Comment augmenter au mieux les LLM avec nos propres données privées ? Un paradigme qui a émergé est l'apprentissage contextuel (l'autre est le finetuning), où nous insérons le contexte dans l'invite d'entrée.  De cette manière, nous profitons des capacités de raisonnement du L

Problèmes avec IIS et le certificat R3 expiré de Let's Encrypt

Image
J'utilise LetsEncrypt pour générer des certificats pour mes sites sous Windows 2012R2 et 2016. Cela fonctionnait très bien, jusqu'à l'expiration récente du certificat intermédiaire R3, le 29 septembre 2021. Il y a des malheureusement des problèmes avec IIS ; les certificats de mes sites sont à jour, mais lors de la construction de la chaîne de certificats qu'il envoie, il préfère l'ancien certificat intermédiaire R3 désormais expiré.  En effet, un certificat SSL est vérifié au moyen d'une chaîne de confiance. Le point de départ de cette chaîne est l'autorité de certification racine (root CA). Une CA peut émettre de multiples certificats électroniques, structurés en arborescence. Un certificat racine est le certificat au sommet de l'arborescence de certification. Sa clé privée est utilisée pour signer les autres certificats. Tous les certificats immédiatement sous le certificat racine héritent de la confiance de cette racine. Dans le cas de Let's Encr

Installer SQL Server 2019 sur Linux Mint 20

Image
Installation de SQL Server Importer les clefs publiques GPG de Microsoft : wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - Ajouter le repository de Microsoft SQL Server pour Ubuntu : sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)" Lancer l’installation sudo apt-get update sudo apt-get install -y mssql-server   Configuration de SQL Server Lancer la configuration sudo /opt/mssql/bin/mssql-conf setup Choisir un mot de passe et l’édition 2 (développeur) Tester si le service SQL Server tourne Taper : systemctl status mssql-server –no-pager Résultat : mssql-server.service - Microsoft SQL Server Database Engine      Loaded: loaded (/lib/systemd/system/mssql-server.service; enabled; vendor preset: enabled)      Active: active (running) since Thu 2021-01-14 08:58:21 CET; 25min ago        Docs: https://docs.microsoft.com/en-us/sql/linux    Main PID: 948 (sqlservr)       Tasks: 174      Mem

Créer une page de recherche avec Vue.js et ASP.NET Web API

Image
A l'heure des frameworks front-end conventionnels comme Angular, Riot, Ember ou React, j’ai décidé de m’intéresser à Vue.js. Vue est un framework javascript développé par un ancien développeur de Google, Evan You, qui se veut accessible, versatile et performant. Le principal avantage de Vue est à mon sens sa capacité d'intégration progressive dans une application existante. Il est également le projet ayant reçu le plus de "likes" sur GitHub en 2016 et 2017. A titre de démonstration, voici un petit exemple d'un champ de recherche dynamique. Pour la partie back-end, j'ai créé une petite API REST à l'aide des ASP.NET Web API . Mais j'aurais tout aussi bien pu utiliser Node.js, SQLite et Express (voir mes précédents articles à ce sujet). Création du back-end 1. Créez un nouveau projet de type "Empty MVC application" puis WebAPI dans Visual Studio 2010, 2013, 2015 ou 2017. 2. Implémentez les classes suivantes. Le code est très basique,

A script for rebuilding all table indexes in SQL Server

For a DBAs maintaining multiple databases, monitoring the disk fragmentation and rebuilding the indexes for individual database is quite time consuming task.  Rebuilding an index drops and re-creates the index. This removes fragmentation, reclaims disk space by compacting the pages based on the specified or existing fill factor setting, and reorders the index rows in contiguous pages. Here is a script that will rebuild all the indexes for all the tables in your SQL Server database. This script can be used in a maintenance plan and can be executed in a scheduled job. USE your database name here DECLARE @TableName varchar(255) DECLARE TableCursor CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_type = 'base table' OPEN TableCursor FETCH NEXT FROM TableCursor INTO @TableName WHILE @@FETCH_STATUS = 0 BEGIN DBCC DBREINDEX(@TableName,' ',90) FETCH NEXT FROM TableCursor INTO @TableName END CLOSE TableC

Blockchain: Préparer son environnement de développement avec MultiChain

Image
Cet article n’a pas pour vocation de présenter une nouvelle fois les concepts de la blockchain, mais plutôt d’aborder cette technologie du point de vue du développeur. Deux approches s’offrent à vous : utiliser un réseau de nœuds existants (Ethereum, Hyperledger, Azure BaaS) et y greffer vos transactions ou contrats, ou bâtir votre propre réseau. Cette seconde solution s’appliquera nettement mieux à un projet de blockchain privée. Car, rappelons-le, la blockchain est avant tout un système de stockage de données décentralisé, sécurisé et fonctionnant sans organe central de contrôle. Pour mes propres expérimentations, j’ai choisi la plateforme MultiChain, qui offre le double avantage d’être Open Source et de proposer des API dans de nombreux langages de développement (Node.JS, C#, Python, Go). Son déploiement est également extrêmement simple (xcopy). La communauté est très active et offre un très bon support. La documentation est assez complète. Mais vous devrez maîtriser un minim