Blog migrated to Hexo

This blog has been migrated from WordPress to Hexo.

For the blog migration, I wrote a powershell script called wp-hexo-convertor, which is available on GitHub.

Prior to migration, the WordPress blog was converted to a static version. The wp-hexo-convertor utility was then used to generate posts and redirect pages for Hexo. These redirects are essential to prevent the loss of organic traffic from Google search.

The redirects are implemented via the hexo-generator-alias plugin. I created a GitHub fork that uses the url_for function instead of full_url_for.

Opt-In List Manager 1.6.105

by Vitaly, Thursday, March 19th, 2020

Version 1.6.105 of the Opt-In List Manager has been released.

What’s New

Extract And Clean

  1. Clean Mail Lists: Remove empty fields (columns).
  2. Clean Mail Lists: Custom field (column) delimiters.
  3. Clean Mail Lists: The number of output columns. If the source row contains less than the specified number of columns, the list manager will add missing columns (blank). If the source row contains more than the specified number of columns, the list manager will cut extra columns.

Merge E-Mail Lists

  1. Keep Email Duplicates (remove full duplicates only).

Misc. Utilites

  1. Replace blanks with the specified text.
  2. Replace the matched regular expression pattern with the specified text.
  3. You can specify field (column) numbers to modify (add prefix, suffix or replace the text).
  4. Calculate SHA1, SHA-256 and SHA-512 hash values.

Websites Loader 1.21

by Vitaly, Monday, December 16th, 2019

Version 1.21 of the Websites Loader 1.21 released.

What’s New

Replace Rules has been added. Replace rule applies to HTML content and allows, for example, replace one domain by another.

Each rule consist of the pattern, which is regular expression, and the replacement value. Matching text will be replaced with the replacement value.

Replacement value can contain references to matching groups. Example:

Pattern: (https?://)?(localhost/)
Replacement value: $2
Subject: http://localhost/aaa
Result: localhost/aaa

Tags: load, Regular Expression, website

Opt-In List Manager 1.3.95

by Vitaly, Thursday, December 12th, 2019

Version 1.3.95 of the Opt-In List Manager has been released.

What’s New

Extracting emails from the various sources has been improved. Now it can extract emails from:

  • Archive files. Supported formats (file extensions): ZIP, JAR, EXE (self-extracted archives), TAR, GZ, TGZ, CAB, BZ2, TBZ.
  • XLSX files (Microsoft Excel Open XML Format Spreadsheet).
  • XLS files (Excel 97/2003).

oilm-archive-processing

Tags: Archive, GZIP, TAR, XLS, XLSX, ZIP

MaxMind DB Reader for Delphi

by Vitaly, Friday, October 25th, 2019

The MaxMind DB file format is a database format that maps IPv4 and IPv6 addresses to data records using an efficient binary search tree.

MaxMind provides variety APIs for lookup IP information in their database: for C, C#, Go, Java. But, unfortunately, API for Delphi is missed. MMDB Reader project solves this omission.

Tags: Delphi, Geo IP, IP, MaxMind, MMDB, Reader

Double-asterisk

by Vitaly, Friday, September 21st, 2018

New versions of Copy Manager and ZIP Manager support the double asterisks in source patterns.

The double asterisk (**) followed by backslash (\) will cause to recursive inclusion of files from all subdirectories.

Example. Directory structure:

path\f1\
path\f1\a1\
path\e2\
path\e2\a1\
path\e2\b2\

Pattern path\*\*.txt matches *.txt files in subdiretories path\f1\ and path\e2\ (but NOT in path\, path\f1\a1, path\e2\a1\, path\e2\b2\).

Pattern path\**\*.txt matches *.txt files in path\ and in all subdirectories (path\f1\, path\f1\a1\, path\e2\, etc.).

Pattern path\f**\*.txt matches *.txt files in all subdirectories of path\ starting with f: path\f1\, path\f1\a1\ (but NOT in path\, path\e2\, etc.).

Pattern path\**\a1\*.txt matches *.txt files in path\f1\a1\ and path\e2\a1\.

Tags: Double-asterisk