OData & ngTable : un duo de choc

Publié par Fabrice Michellonet sous le(s) label(s) , , , le 12 décembre 2016

Dernièrement, j’ai pas mal fait joujou avec OData.
C’est quand même super plaisant de pouvoir requêter une source de données via une URL et avec une richesse proche de ce que l’on connait avec du SQL.
Une fois n’est pas coutume je ne vais pas parler de .NET mais plutôt partager avec vous un bout de javascript qui met en évidence la facilité avec laquelle vous pourrez brancher des tables ngtable avec votre backend odata.

Trêve de bavardage, on passe au code :



Pour cette illustration, j'ai utilisé le web service services.odata.org qui expose la base Northwind (sample Microsoft) que l'on a tous croisés un jour.

Juste un mot sur le code, évidemment c'est le service odataTableService qui fait la glue entre OData et ngTable; c'est lui qui permet de réaliser les filtrages et les sorts. Une fois que ce service est disponible dans votre app, regardez avec quelle simplicité, votre controller peut créer une table :

$scope.tableParams = odataTableService.createTableParams({
      endPoint: 'http://services.odata.org/V3/Northwind/Northwind.svc/Products'
    });

Je me demande vraiment pourquoi OData n'a pas plus que ça le vent en poupe.

Packager un projet SQL pour Octopus

Publié par Fabrice Michellonet sous le(s) label(s) , , le 1 septembre 2016

Que ce soit manuellement ou de manière automatique, lorsque l'on parle de déploiement il va nous falloir définir un package de déploiement.

Dans l'univers Octopus, les packages de déploiement sont des fichiers avec une extension .nupkg. Voyons comment en créer un pour un projet de Base de données.

Ajouter une dépendance vers Octopack


Octopack est l’utilitaire que nous allons utiliser pour générer ce package de déploiement. Démystifions le terme, octopack produit un fichier qui n’est autre qu’un zip, contenant les fichiers à déployer ainsi qu’un ensemble de métadonnées et potentiellement des scripts powershell.
Bref, rien de bien extraordinaire.

Pour l’installer dans notre projet de base de données, nous allons utiliser Nuget, qui est un gestionnaire de dépendances très performant et bien connu des développeurs. Cependant il n’est pas facilement accessible lorsqu’on travailler sur un projet SQL/SSIS/SSRS/SSAS.

Pour tromper Visual Studio nous allons commencer par ajouter un projet C# de type console pour faire simple



Ajoutons sur ce projet C# une dépendance vers Octopack.



Dans la nouvelle fenêtre on cherche le package Octopack, et on l’installe.



Après avoir acquitté la fenêtre de preview d’install, la fenêtre «Output» de visual Studio devrait vous confirmer que l’installation s’est bien passée.



Il aurait été formidable de pouvoir l’installer directement dans notre projet de base, mais nous allons devoir transpirer un peu plus pour arriver à nos fins.
Ready ?? Ouvrons le fichier csproj de l’application console et copions la portion de msbuild qui correspond à Octopack



Puis, copions la discrètement dans notre fichier sqlproj, de la même manière à la fin de celui-ci.
Un petit rebuild pour vérifier que tout fonctionne toujours bien… et TADAM y’a toujours pas de package de déploiement généré.

Créer le package


Bon si vous avez été un peu curieux, vous aurez remarqué que la portion de msbuild que l’on a copiée a pour but d’importer un autre fichier msbuild (qui se trouve dans le répertoire packages\OctoPack.3.4.1\tools\OctoPack.targets)

En baragouinant un peu le msbuild, on comprend assez vite que la variable RunOctoPack est initialisée à false et c’est elle qui déclenche ou non la génération du package.

Alors évidemment, une solution possible est de modifier cette variable à true. Néanmoins cela induit qu’un package de déploiement sera créé a chaque build du projet. Ce n’est vraisemblablement pas ce que vous souhaitez.

Je vous propose plutôt d’ouvrir une console DOS et une fois dans le répertoire du projet, tapez la commande suivante :

msbuild ContinuousBI.Sql.sqlproj /t:Build /p:RunOctoPack=true

Si tout s’est bien passé vous devriez avoir une sortie similaire a celle-ci :



Cette fois ci, si vous jetez un œil dans le sous-dossier obj/octopacked de votre projet vous y découvrirez un fichier .nupkg qui est le package de déploiement

A quoi ressemble mon package ?


Pour aller un peu plus loin nous pouvons jeter un œil à ce qui a été produit pour nous par Octopack.
Je vous propose d’utiliser nuget package explorer
Ouvrez le et glissez déposez le fichier .nupkg, vous devriez obtenir un résultat semblable à celui-ci.



C’est confirmé, le dacpac issu de la compilation à bien été reconnu ; il est embarqué dans package de déploiement.

Nous verrons dans le prochain post comment le déployer avec Octopus.

Prolific usb to ttl et windows 10

Publié par Fabrice Michellonet sous le(s) label(s) , le 11 mai 2016



Dernièrement j'ai ressorti ma BeableBone Black histoire de faire une peu de veille techno. J'vous raconterai un de ces quatre en quoi monter une boite peut vite cramer tout votre temps libre, mais c'est pour la bonne cause.



Bref pour en revenir à la Beagle, je ressors mon câble série que j'utilise pour me connecter à la console. Je fais les branchements et go sur le site de Prolific pour récupérer le dernier driver pour Windows 10.

Tiens! bizarre, même après un reboot je n'ai toujours rien qui s'affiche dans mon terminal.
En creusant, je m'aperçois que le driver du câble n'est pas reconnu.



S'en suit plusieurs tentatives de réinstallation et de reboot infructueuses.

Je cherche un peu sur Internet, pas mal de personnes ont des soucis avec des versions contrefaites acheté sur des sites asiatiques. Le mien vient de chez Adafruit, et il fonctionnait parfaitement il y a quelques mois, sur Windows 8.

Ho... tiens réessayons sur cet ancien PC. Ca fonctionne parfaitement!
Énorme je récupère l'installer du driver qui se trouve sur ce dernier;
Je repasse sur mon PC équipé de Windows 10, désinstalle le driver en place, reboot, installe l'ancien driver (fonctionnant sur Windows 8) et surprise, ca fonctionne.

Si ça c'est pas de l'obsolescence programmée! Honteux!
Rien que pour ça, je vous recommande plutôt d'investir dans un câble concurrent comme ce FTDI. J'en possède un également et fonctionne tout aussi bien.

Du coup, je vous dépose le driver fonctionnel, ici. J'espères que cela pourra aider quelqu'un.

Tiens, en prime je poste ici le schéma de branchement du câble Prolific avec la beagle.
  • Le fil noir va sur le pin 1 (GND)
  • le fil vert sur le pin 4 (RECEIVE)
  • le fil blanc sur le pin 5 (TRANSMIT)
Ne branchez surtout pas le fil rouge, c'est du 5V, vous grilleriez la beagle!!