Консольные утилиты для работы с mmdb

11/Июль/2020 mmdbgeoip2mmdblookup

Первым делом стоит проверить дату сборки, используем утилиту mmdb-dump-metadata от MaxMind
https://github.com/maxmind/MaxMind-DB-Reader-perl/tree/master/bin

Свежесть == Актуальность

mmdb-dump-metadata --file /usr/src/geoip2/GeoLite2-City.mmdb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  GeoLite2 City database
  type:                  GeoLite2-City
  languages:             de
                         en
                         es
                         fr
                         ja
                         pt-BR
                         ru
                         zh-CN
  binary format version: 2.0
  build epoch:           1,589,304,163 (2020-05-12 17:22::43 UTC)
  IP version:            6
  node count:            3,790,930
  record size:           28 bits
Консольные утилиты для...

Ничего необычного, просто ноутбук

20/Май/2020 laptopsony-vaio

Вентилятор ноутбука
Вентилятор ноутбука 4128x3096
SL_20200520_135937.jpg
Высохшая термопаста
Высохшая термопаста 4128x3096
SL_20200520_141548.jpg
Высохшая термопаста
Высохшая термопаста 4128x3096
SL_20200521_155357.jpg


Ничего необычного, просто...

Сборка динамических модулей geoip2 для nginx

14/Май/2020 nginxgeoip2

Сильно не люблю держать на сервере что-либо собранное самостоятельно.
Посему сборка модуля производится на ноутбуке, с тем же debian 10, а на сервер копируются только два динамических модуля.

Некоторые из необходимых пакетов
apt install libmaxminddb-dev libgeoip-dev libperl-dev

Пакет из репозитория собран со следующими параметрами, которые понадобятся при сборке модуля nginx -V

Сборка динамических модулей...

Интерактивный поиск для jekyll на jquery и json

18/Апрель/2020 jekylljqueryjson

Серверная часть

search.json

1
2
3
4
5
6
7
8
9
10
---
layout: null
---
[{% for post in site.posts %}{
      "title"    : "{{ post.title | escape }}",
      "category" : "{{ post.categories | join: ', ' }}",
      "tags"     : "{{ post.tags | join: ', ' }}",
      "url"      : "{{ site.url }}{{ post.url }}",
      "text"     : "{{ post.content | strip_html | remove:  '"' | strip_newlines | truncate:100 }}"
    }{% unless forloop.last %},{% endunless %}{% endfor %}]

Добавляем блок поска в нужные шаблоны в _layouts

1
2
3
4
  <div class="sb">
    <label for="searchbox">Быстрый поиск по сайту</label>
    <div class="is"><input type="text" name="search" id="searchbox" size="20" maxlength="20" value="Fast Search" class="inputbox" /></div>
  </div>
Интерактивный поиск для...

Оптимизация количества глифов шрифта для применения в web

12/Март/2020 fontforgeglyphpyftsubsetwofffont

Выбираем нужные глифы 1590x814 PTSansNarrowRegular.png
fontforge glyphs

Необходимые пакеты apt install fontforge и pip install fonttools.

Определимся с необходимыми глифами, нужна латиница, кириллица, спецсимволы, включая некоторые символы греческого (ΣΩαβγμ), аналоги греческого, схожие в начертании, но имеющие другие коды (∆∑µ), и ещё немного, которые могут где-нибудь использоваться в тексте или как элементы заменяющие графику (♪♫♬).

Почему несколько вариантов глифов с разными кодами?

Потому что символ µ (mu U+00b5) и греческая буква μ (mu U+03bc) в расширенных шрифтах могут иметь свой глиф с разным начертанием, или наоборот, общий глиф, где схожие символы по начертанию ссылаются на один глиф. Или, например, греческая Σ (Sigma U+03a3) не то же самое, что символ ∑ (summation U+2211).
Но, возможно, у вас на экране эти символы выглядят одинаково.

Оптимизация количества глифов...
Страница 12 из 14