Déc 07

Quelques étapes pour faire du reamping avec un POD HD500

Mise en place:

  • connecter l’interface audio au DAW et le configurer correctement
  • connecter la sortie s/pdif du POD HD500 à l’entrée s/pdif de l’interface. Configurer le POD HD500 afin d’envoyer un signal « brut » (dry) sur la sortie s/pdif.
  • connecter les sorties analogiques du HD500 aux entrées de l’interface. Idéalement, utiliser les connexions XLR balancées.
  • ne pas connecter le HD500 via USB

Enregistrement:

  • sélectionner le preset HD500 à utiliser pour le monitoring lors de l’enregistrement.
  • armer une piste pour l’enregistrement dans le DAW et sélectionner l’entrée s/pdif comme entrée pour la piste
  • optionnellement, si l’on souhaite enregistrer la version avec effets (wet), armer une autre piste (stéréo) et sélectionner les entrées analogiques comme entrées de la piste
  • jouer et enregistrer la prise

Reamping:

  • connecter une des sorties mono de l’interface à l’entrée Guitar ou Aux du HD500. Utiliser un autre canal que celui/ceux actuellement utilisé(s) pour les sorties analogiques du HD500.
  • router le signal brut (dry) dans le DAW vers la sortie analogique de l’interface utilisée ci-dessus.
  • sélectionner sur le HD500 le preset à utiliser pour le reamping, et configurer l’entrée du preset sur le HD500 pour correspondre à l’entrée physique utilisée (Guitar ou Aux)
  • armer une nouvelle piste stéréo dans le DAW pour enregistré le signal « réampé ». Sélectionner les entrées analogiques de l’interface pour l’enregistrement, en supposant que les branchements sur les entrées analogiques sont toujours en place
  • adapter le preset HD500 selon les désirs, et répéter la procédure de réamping jusqu’à ce que le résultat soit satisfaisant.
Fév 02

Afin de gérer un problème de droits, j’ai eu besoin d’avoir la liste des utilisateurs de la base de données avec leurs droits effectifs sur les différents objets.

Cette question a déjà été posée sur Stack Overflow et une des réponses me donne exactement ce dont j’ai besoin !

    --1) List all access provisioned to a SQL user or Windows user/group directly
    SELECT
        [UserType] = CASE princ.[type]
                         WHEN 'S' THEN 'SQL User'
                         WHEN 'U' THEN 'Windows User'
                         WHEN 'G' THEN 'Windows Group'
                     END,
        [DatabaseUserName] = princ.[name],
        [LoginName]        = ulogin.[name],
        [Role]             = NULL,
        [PermissionType]   = perm.[permission_name],
        [PermissionState]  = perm.[state_desc],
        [ObjectType] = CASE perm.[class]
                           WHEN 1 THEN obj.[type_desc]        -- Schema-contained objects
                           ELSE perm.[class_desc]             -- Higher-level objects
                       END,
        [Schema] = objschem.[name],
        [ObjectName] = CASE perm.[class]
                           WHEN 3 THEN permschem.[name]       -- Schemas
                           WHEN 4 THEN imp.[name]             -- Impersonations
                           ELSE OBJECT_NAME(perm.[major_id])  -- General objects
                       END,
        [ColumnName] = col.[name]
    FROM
        --Database user
        sys.database_principals            AS princ
        --Login accounts
        LEFT JOIN sys.server_principals    AS ulogin    ON ulogin.[sid] = princ.[sid]
        --Permissions
        LEFT JOIN sys.database_permissions AS perm      ON perm.[grantee_principal_id] = princ.[principal_id]
        LEFT JOIN sys.schemas              AS permschem ON permschem.[schema_id] = perm.[major_id]
        LEFT JOIN sys.objects              AS obj       ON obj.[object_id] = perm.[major_id]
        LEFT JOIN sys.schemas              AS objschem  ON objschem.[schema_id] = obj.[schema_id]
        --Table columns
        LEFT JOIN sys.columns              AS col       ON col.[object_id] = perm.[major_id]
                                                           AND col.[column_id] = perm.[minor_id]
        --Impersonations
        LEFT JOIN sys.database_principals  AS imp       ON imp.[principal_id] = perm.[major_id]
    WHERE
        princ.[type] IN ('S','U','G')
        -- No need for these system accounts
        AND princ.[name] NOT IN ('sys', 'INFORMATION_SCHEMA')

UNION

    --2) List all access provisioned to a SQL user or Windows user/group through a database or application role
    SELECT
        [UserType] = CASE membprinc.[type]
                         WHEN 'S' THEN 'SQL User'
                         WHEN 'U' THEN 'Windows User'
                         WHEN 'G' THEN 'Windows Group'
                     END,
        [DatabaseUserName] = membprinc.[name],
        [LoginName]        = ulogin.[name],
        [Role]             = roleprinc.[name],
        [PermissionType]   = perm.[permission_name],
        [PermissionState]  = perm.[state_desc],
        [ObjectType] = CASE perm.[class]
                           WHEN 1 THEN obj.[type_desc]        -- Schema-contained objects
                           ELSE perm.[class_desc]             -- Higher-level objects
                       END,
        [Schema] = objschem.[name],
        [ObjectName] = CASE perm.[class]
                           WHEN 3 THEN permschem.[name]       -- Schemas
                           WHEN 4 THEN imp.[name]             -- Impersonations
                           ELSE OBJECT_NAME(perm.[major_id])  -- General objects
                       END,
        [ColumnName] = col.[name]
    FROM
        --Role/member associations
        sys.database_role_members          AS members
        --Roles
        JOIN      sys.database_principals  AS roleprinc ON roleprinc.[principal_id] = members.[role_principal_id]
        --Role members (database users)
        JOIN      sys.database_principals  AS membprinc ON membprinc.[principal_id] = members.[member_principal_id]
        --Login accounts
        LEFT JOIN sys.server_principals    AS ulogin    ON ulogin.[sid] = membprinc.[sid]
        --Permissions
        LEFT JOIN sys.database_permissions AS perm      ON perm.[grantee_principal_id] = roleprinc.[principal_id]
        LEFT JOIN sys.schemas              AS permschem ON permschem.[schema_id] = perm.[major_id]
        LEFT JOIN sys.objects              AS obj       ON obj.[object_id] = perm.[major_id]
        LEFT JOIN sys.schemas              AS objschem  ON objschem.[schema_id] = obj.[schema_id]
        --Table columns
        LEFT JOIN sys.columns              AS col       ON col.[object_id] = perm.[major_id]
                                                           AND col.[column_id] = perm.[minor_id]
        --Impersonations
        LEFT JOIN sys.database_principals  AS imp       ON imp.[principal_id] = perm.[major_id]
    WHERE
        membprinc.[type] IN ('S','U','G')
        -- No need for these system accounts
        AND membprinc.[name] NOT IN ('sys', 'INFORMATION_SCHEMA')

UNION

    --3) List all access provisioned to the public role, which everyone gets by default
    SELECT
        [UserType]         = '{All Users}',
        [DatabaseUserName] = '{All Users}',
        [LoginName]        = '{All Users}',
        [Role]             = roleprinc.[name],
        [PermissionType]   = perm.[permission_name],
        [PermissionState]  = perm.[state_desc],
        [ObjectType] = CASE perm.[class]
                           WHEN 1 THEN obj.[type_desc]        -- Schema-contained objects
                           ELSE perm.[class_desc]             -- Higher-level objects
                       END,
        [Schema] = objschem.[name],
        [ObjectName] = CASE perm.[class]
                           WHEN 3 THEN permschem.[name]       -- Schemas
                           WHEN 4 THEN imp.[name]             -- Impersonations
                           ELSE OBJECT_NAME(perm.[major_id])  -- General objects
                       END,
        [ColumnName] = col.[name]
    FROM
        --Roles
        sys.database_principals            AS roleprinc
        --Role permissions
        LEFT JOIN sys.database_permissions AS perm      ON perm.[grantee_principal_id] = roleprinc.[principal_id]
        LEFT JOIN sys.schemas              AS permschem ON permschem.[schema_id] = perm.[major_id]
        --All objects
        JOIN      sys.objects              AS obj       ON obj.[object_id] = perm.[major_id]
        LEFT JOIN sys.schemas              AS objschem  ON objschem.[schema_id] = obj.[schema_id]
        --Table columns
        LEFT JOIN sys.columns              AS col       ON col.[object_id] = perm.[major_id]
                                                           AND col.[column_id] = perm.[minor_id]
        --Impersonations
        LEFT JOIN sys.database_principals  AS imp       ON imp.[principal_id] = perm.[major_id]
    WHERE
        roleprinc.[type] = 'R'
        AND roleprinc.[name] = 'public'
        AND obj.[is_ms_shipped] = 0

ORDER BY
    [UserType],
    [DatabaseUserName],
    [LoginName],
    [Role],
    [Schema],
    [ObjectName],
    [ColumnName],
    [PermissionType],
    [PermissionState],
    [ObjectType]
Jan 15

Kunal Chowdhury a publié sur son blog un graphique représentant en un coup d’œil les évolutions du langage C#.
Il y détaille également ces évolutions.

Il peut être intéressant d’avoir ce graphe sous la main !
Evolution of C# (1.0 - 6.0) - www.kunal-chowdhury.com

Source : http://www.kunal-chowdhury.com/2016/01/csharp-basics.html

Jan 12

Une petite astuce que j’ai croisé sur comment calculer l’âge facilement sur Sql Server:

select (0 + CONVERT(char(8),GETDATE(),112) - CONVERT(char(8),'19921015',112)) / 10000

Le fait de diviser par 10000 calcule la différence des années (suite à la transformation du format YYYYMMJJ en nombre) tout en prenant en compte le nombre de jours depuis le début de l’année. On donne ainsi juste une représentation décimale croissante au nombre de jours depuis le début de l’année, cette représentation peut être arbitraire, tant que c’est croissant.

Donc les décimales résultant de la soustraction ne signifient pas grand-chose en elles-mêmes (ça n’indique pas l’intervalle en nombre de jour par exemple).

Jan 12

Logo Visual Studio 2012Maintenant qu’une grosse partie du code des projets autour du Framework .Net est disponible, il peut être intéressant de pouvoir le consulter facilement pendant que l’on développe. Aujourd’hui, utiliser le raccourci F12 (« Go To Definition ») sur une méthode du Framework affiche uniquement les métadatas de la classe et de la méthode (notamment sa signature).

Le plugin Ref12 permet de remplacer cela par l’ouverture d’une page web pointant sur le site de Microsoft regroupant les sources du Framework et qui affiche les sources de la méthode et de la classe correspondante.