Google : big brother n’était qu’un prototype

Ça fait des mois, des années qu’on vous le dit, Google ne vous veut pas du bien, Google vous espionne, Google est un danger pour votre vie privée, pour celle de vos proches, amis, contacts, collègues, etc. Et plus on laisse faire, plus c’est difficile d’effacer ses traces (c’est même à peu près impossible).

L’idée est donc de recenser sur cette page (qui je mettrai à jour au fur et à mesure de mes découvertes) :

  • ce que Google sait de vous (de cette façon, ce sera plus concret)
  • comment continuer à vivre normalement (connecté au monde) en utilisant des services alternatifs.

Ce que Google sait de vous

Services alternatifs

  • Baïkal

Migration de NexusDB à PostgreSQL avec pgDAC

Ce projet est énorme : il vise à remplacer NexusDB par PostgreSQL dans toutes mes applications (déployées en clientèle) en utilisant les composants pgDAC (qui sont fabuleux). Je recense ici toutes les astuces, trucs à ne pas oublier, etc.

TPgConnection

Ne pas oublier de définir :

Options / UseUnicode = True

Conversion des données

Conversion des DDL (définitions des tables)

Je joue la simplicité : j’ai acquis, il y a quelques années, Database Workbench qui permet de faire Extract DDL et récupérer ainsi les définitions de toutes les tables. Reste à convertir certains types de données :

+-------------+--------------------+
| Type Nexus  | Type PostgreSQL    |
+-------------+--------------------+
| AutoInc     | Serial primary key |
| ShortString | VarChar            |
| DWord       | Int                |
+-------------+--------------------+

Conversion des données

J’utilise le composant TCRBatchMove (dans l’onglet Data Access). Je définis 2 tables, nxMigration reliée à la nxDatabase, l’autre pour pgMigration reliée à la PGConnection.

Dans CRBatchMove1, la source est la table NXmigration, la destination est PGmigration. Attention à définir FieldMappingsMode à mmFieldName au cas où l’ordre ne serait pas rigoureusement le même.

Puis le code suivant pour transférer les données :

procedure TFmain.Button1Click(Sender: TObject);
var sl:TStringList;
    i: Integer;
begin
  sl:=TStringList.Create;
  Try
    DM.dbclefs.GetTableNames(sl);
    for i := 0 to sl.Count - 1 do begin
      DM.nxMigration.TableName:=sl[i];
      DM.pgMigration.TableName:=sl[i];
      DM.CRBatchMove1.Execute;
    end;
    ShowMessage('Done !');
  Finally
    sl.free;
  End;
end;

À peaufiner un peu pour mettre à jour les séquences :

alter sequence clilog_id_seq restart with 81;

Accélérer Locate

pgQuery.IndexFieldNames:='champ1;champ2';

Réparer la complétion dans Delphi

Initialement publié sur StackOverflow

Vérifier que la ligne DCCUnitAlias ne manque pas dans le fichier .dproj du projet :

<PropertyGroup Condition="'$(Base)'!=''">
    <DCC_DependencyCheckOutputName>aida.exe</DCC_DependencyCheckOutputName>
    <DCC_UnitAlias>WinTypes=Windows;WinProcs=Windows;$(DCC_UnitAlias)</DCC_UnitAlias>
</PropertyGroup>

Si vous ne la voyez pas, faites une sauvegarde du fichier .dproj et ajoutez la ligne manquante au bon endroit : <PropertyGroup Condition="'$(Base)'!=''">