Échec de sauvegarde Gitlab et objets LFS

Lors d’une récente sauvegarde du contenu de mon Gitlab en vue d’une mise à jour, j’ai vu apparaître une erreur déjà rencontrée lors d’une précédente sauvegarde.

rake aborted!
Errno::ENOENT: No such file or directory @ realpath_rec - /home/git/gitlab/shared/lfs-objects

N’ayant pas à ma connaissance d’objets LFS à sauvegarder, j’ai donc ajouter un paramètre pour éviter la tentative de sauvegarde de ces objets avec SKIP=lfs. On obtient donc la commande suivante :

sudo -u git -H bundle exec rake gitlab:backup:create SKIP=lfs RAILS_ENV=production

Maj : Ce problème est résolu à partir de Gitlab 8.3.

[SQL] DROP CREATE « pattern » (MSSQL)

Simple reminder for a working drop-create pattern in SQL (Successfully used with MSSQL).

Log modification in table _chgLog first.

INSERT INTO _chgLog ([Date], [Version], [txt], [Type])
    VALUES (GETDATE(), '0.0.1', 'Update example', 0)
GO

If object exists, we drop it before doing anything (But do not drop table unless you don’t care about data).

IF OBJECTPROPERTY(object_id('example'), N'IsProcedure') = 1
    DROP PROCEDURE [dbo].[example]
GO

Other interesting parameters for function objectproperty are the following (more to be found here) :

  • IsInlineFunction
  • IsProcedure
  • IsScalarFunction
  • IsTable
  • IsTableFunction
  • IsTrigger
  • IsView

Then, we create the object.

-- =============================================
-- Author: vvision
-- Create date: 22/03/2016
-- Description: <Description>
-- =============================================

CREATE PROCEDURE [dbo].[example]
  @id INT,
AS
  SELECT *
  FROM [dbo].[example]
  WHERE id = @id
GO

Finally, we give permissions to users if needed.

GRANT EXECUTE ON [dbo].[example] TO [user] AS [dbo]
GO

 

On another subject, to alter a table, we can use:

IF COL_LENGTH('table','newField') IS NULL
BEGIN
  ALTER TABLE [dbo].[table] ADD newField VARCHAR(128) NULL
END

Blender : Modifier le centre d’un objet (version avant 2.80)

La problématique est la suivante : comment modifier le centre d’un objet 3D dans Blender ?

Cas pratique : Dans l’utilisation des modélisations faite dans Blender dans un moteur de jeu comme Unity, sa position est définie par le centre de l’objet et ses coordonnées (x=0,y=0,z=0).

Dans le cas présent nous voulons pouvoir placer des arbres de différentes tailles sur des blocs de sol à une position donnée. Le centre de l’objet doit donc être placé au bas de ceux si et le socle de l’arbre rapproché le plus possible de l’origine de l’axe perpendiculaire à l’axe de pousse de l’arbre dans le cas présent.

Place aux images et aux explications !

  1. Ouvrez votre objet et passez en « Edit Mode » en appuyant sur Tabulation par exemple, sélectionnez le Vertex (le sommet) clic droit, puis appuyez sur la touche Espace et écrivez « Snap « , une liste devrez apparaître dans laquelle vous sélectionnerez « Snap Cursor To Selected » (Je vous laisse essayer les autres options pour les découvrir par vous même)SnapCursorTo
  2. Ensuite repassez en Object Mode en ré-appuyant sur Tabulation. Une fois fait allez sur votre droite dans l’onglet « Tools » et sélectionnez « Set Origin », « Origin to 3D Cursor »OriginTo3DCursor
  3. Maintenant passez en vue de côté en appuyant sur 1 ou 3 et déplacez votre objet sur l’axe voulu jusqu’à la limite voulue !ToTheAxe
  4. Voilà vous avez déplacer l’Origine de l’objet en un point voulu :)
    Astuce si vous voulez déplacer plus au centre (ici du tronc) votre origine vous pouvez dupliquer un vertex seul, le placer au centre et refaire la manipulation

Création simple avec Inkscape : Bannière

Voilà ce matin l’envie de faire une bannière propre pour Unicoda m’est venue. Et tant qu’à faire autant vous faire profiter de quelques trucs et astuces, c’est par là :

Si besoin, téléchargez Inkscape.

Ce que vous pouvez réaliser en 5 minutes

Logo Unicoda

  1. Ouvrez Inkscape, puis allez dans « Propriétés du document… »
    Propriétés
  2. Dans les propriétés du document, modifiez les paramètres de taille, ici pour les bannières WordPress de 2016 la taille est de 1200x280px (pixels)
    PropriétésDuDocument
  3. Vous pouvez en bas de l’onglet sélectionner un fond uni pour éviter d’avoir à créer un rectangle de la couleur désirée en fond. Pour cela cliquez sur le bandeau de la couleur de fond qui ouvrira le panel à gauche « Couleur de fond »
    CouleursFond
  4. Maintenant il vous faut ajouter votre texte, pour cela cliquez sur cette icône « A » puis paramétrez comme bon vous semble
    Ecrire
  5. Si le panel de paramétrage qui devrait se trouver sur la droite de la zone de dessin n’est pas ouvert vous pouvez l’ouvrir en cliquant sur le bouton « T » qui se trouve dans la barre latérale de droite
    Ouvrir les panels
  6. Pour redimensionner le texte facilement cliquez en mode sélection (F1) ou l’icône pointeur de souris au haut de la barre latérale de gauche, puis pour garder les bons rapports hauteur / largueur maintenez la touche contrôle et déplacer une des flèches se trouvant dans les coins de la sélection
    Redimensionnement
  7. Dans le panel de droite se trouve le bouton « Aligner et distribuer des objets » qui vous permet d’ouvrir l’onglet suivant. Cet onglet permettra d’aligner le texte « relativement à : » sélectionnez ici « Page » puis centrez le texte selon l’axe vertical et horizontal. Voilà votre texte est centré il ne vous reste plus qu’à enregistrer en svg et exporter en png « Fichier -> Exporter une image png… »
    Aligner
  8. Voilà c’est fini pour aujourd’hui ! J’espère que l’explication est assez détaillée.

Modules Firefox pour 2016

J’ai effectué récemment un nettoyage de mon navigateur Firefox, vérifié les paramètres et surtout, revu les modules installés. Voici donc ma sélection en ce début d’année.

  • HTTPS-Everywhere : Redirige automatiquement les requêtes vers HTTPS pour de nombreux sites. Proposé par l’EFF.
  • uBlock Origin : Bloqueur de nuisance et de pisteurs. Son empreinte mémoire est plus légère que les autres modules du même type.
  • Ghostery : Blocage supplémentaire de script. GhostRank désactivé. Plutôt efficace et clair en ce qui concerne les éléments bloqués. Pas encore trouvé d’autres alternatives satisfaisantes.
  • KeeFox : Pour interfaçage avec Keepass. Facilite la gestion des mots de passe.
  • FlagFox : Indique la localisation du serveur au niveau de la barre d’adresse. Recherche par base de données interne d’IP avec mise à jour mensuelle de la base. Pas de requête externe à chaque site visité. Permet d’avoir une vague idée des lois qui concerne le serveur auquel on accède.
  • Dark Youtube Theme : Un thème noir pour Youtube c’est tellement plus agréable.
  • FT DeepDark : Un thème noir pour Firefox.