iAU71

          -- We don't have any record of you going
             to school. Who taught you how to read?
          -- My dad teaches me.
          -- You're actually quite a bit
             ahead of where you need to be,
             but school is about social skills too,
             not just intellectual ones.

          Leave no Trace, 2018, 00:27:39


## ФИЛЬТРЫ

1. Фильтр средствами императивного языка

  sh
  awk
  perl
  python
  php
  powershell

Это пошаговая инстукция того, как получить требуемый результат. Для изучения и автоматизации написания кода попробуйте Flowgorithm

  Инструменты -> Показать исходный код

Зто значит, что для сдачи экзамена EUCIP вам понадобится язык EPL, для работы с Unix -- Bash, c Windows -- PowerShell, изучать основы программирования (2-й год обучения) вы скорее всего будете на С#, перейдя в другую школу понадобится Java или Python, а мы сейчас займемся PHP.

2. фильтр регулярными выражениями

  +sed
  +grep
  +sls (PS*)

Намного лаконичнее, чем подход 1., но хуже читается. Возьмите за правило, вместо notepad использовать ed, искать с помощью grep, чаще использовать sed, awk, perl, чем обеспечите себе необходимое количество практики.

------
*) PS> cat .\doc.txt | sls -Pattern (cat .\regex.txt)
   где используются алиасы:
   PS> get-Alias  -Definition Get-Content
   cat -> Get-Content
   ..
   sls -> Select-String
------

3. SQL фильтры

Почти как разговорный английский. Вначале данные тщательно структурируются (есть целая наука СУБД -- системы управления базами данных). Теперь при решении задачи, основное время уйдет на то чтобы склеить их обратно (шутка:).


## Упражнение: Эхо

На виртуальной машине BioServer (Ubuntu 1804), работают следующие демоны ( systemctl status <service>, press 'q' to exit)

  Apache2 + mod PHP7 (port 80)
  mysql              (port 3306)
  sshd               (port 22)

Запустить скрипт

exercise.php

  <?php
  echo "<h1>{$s}</h1>";
  ?>

Для чего в браузере позвать

  http://localhost:8080/template.php

Подробности в заметке "Установка WEB приложений на PHP сервер"

Настройка apache для показа ошибок в PHP скриптах:

  # find / -name php.ini
  /etc/php/7.2/apache2/php.ini
  /etc/php/7.2/cli/php.ini
  # cat /etc/php/7.2/apache2/php.ini | grep '^display_err\|^err'
  error_reporting = E_ALL
  display_errors = On

Note: Обязательно почитайте https://ryanstutorials.net/


## ПЕРВООЧЕРЕДНЫЕ ЗАДАЧИ

1. и 2. Распознавать true 1 false 0 как Boolean, написать регулярное выражение для валидации, написать функции is_bool, to_bool

  https://lzone.de/examples/PHP%20preg_match

3. и 4. Распознавать cтроку цифр как integer. Знак числа. Переполнение. Написать регулярное выражение для валидации, написать функции is_integer, to_integer.

  шпаргалка:

    <?php
    if (preg_match( '/^[0-9+-][0-9]*$/', trim( $s, ' ')))
        echo "DA-DA-DA";
    else
        echo "NO MATCH"
    ?>

5. и 6. Распознавать cтроку цифр [0-7] как восьмеричное целое. Знак числа. Переполнение. Написать регулярное выражение для валидации, написать функции is_octal, to_octal.

  шпаргалка:

    /^[0-7+-][0-7]*$/

7. и 8. Распознавать cтроку цифр [0-9A-F] как шестнадцатиричное целое. Знак числа. Переполнение. Написать регулярное выражение для валидации, написать функции is_hex, to_hex.

  шпаргалка:

    /^[0-9A-F+-][0-9A-F]*$/

9. и 10. Распознавать cтроку цифр [01] как двоичное целое. Знак числа. Переполнение. Написать регулярное выражение для валидации, написать функции is_binary, to_binary.

  /[01]+$/

11. и 12. Распознавать cтроку вида -31.09e15, как double. Знак числа и знак экспоненты. Переполнение. Написать регулярное выражение для валидации, написать функции is_double, to_double.

13. Парсить строку на числа, разделитель -- пробел(ы)

14. Парсить строку на слова, разделитель -- любой знак препинания.

15. Какие символы, кроме букв и цифр, встречаются в тексте?

16. Штрих-код записан как: толстая черная полоска -- 1, тонкая черная полоска -- 0, толстая белая полоска -- пробел. Прочитать штрих-код, если известны алфавит и кодировка символов для этого алфавита.

17. Вывести пол и дату рождения по введенному вымышленному "isikukood":

  в:[1-6] г:[0-9]{2} м:(0[1-9]|1[12]) д:(0[1-9]|[12][0-9]|3[01]) ..


## ПРИЛОЖЕНИЕ А. ЧАСТОТНЫЙ АЛФАВИТ АНГЛИЙСКОГО ЯЗЫКА

  https://eng4school.ru/the_alphabet
    /687-chastota-vstrechaemosti-bukv.html

  cat freq | awk '{ print $2, $1; }' | sort -nr | \
  awk '{ print $2; }' | tr -d '\n'

  etaoinshrdlcumwfgypbvkxjqz

Также см. {1}{2}

------

  {1}. .. 450 million word Corpus of Contemporary American English, which is the only large and balanced corpus of American English.

    http://corpus.byu.edu/coca/

  {2}. Top 5000.

    https://www.wordfrequency.info/free.asp


## ПРИЛОЖЕНИЕ Б. ЧАСТОТНЫЙ АЛФАВИТ РУССКОГО ЯЗЫКА (ПО НКРЯ).

  +--------------------------------------------+
  |Номер       |Буква|Частотность|Частотность %|
  |------------+-----+-----------+-------------|
  |1 1         |о    |0,10983    |10,983%      |
  |------------+-----+-----------+-------------|
  |2 10        |е(ё) |0,08496    |8,496%       |
  |------------+-----+-----------+-------------|
  |3 11        |а    |0,07998    |7,998%       |
  |------------+-----+-----------+-------------|
  |4 100       |и    |0,07367    |7,367%       |
  |------------+-----+-----------+-------------|
  |5 101       |н    |0,067      |6,7%         |
  |------------+-----+-----------+-------------|
  |6 110       |т    |0,06318    |6,318%       |
  |------------+-----+-----------+-------------|
  |7 111       |с    |0,05473    |5,473%       |
  |------------+-----+-----------+-------------|
  |8 1000      |р    |0,04746    |4,746%       |
  |------------+-----+-----------+-------------|
  |9 1001      |в    |0,04533    |4,533%       |
  |------------+-----+-----------+-------------|
  |10 1010     |л    |0,04343    |4,343%       |
  |------------+-----+-----------+-------------|
  |11 1011     |к    |0,03486    |3,486%       |
  |------------+-----+-----------+-------------|
  |12 1100     |м    |0,03203    |3,203%       |
  |------------+-----+-----------+-------------|
  |13 1101     |д    |0,02977    |2,977%       |
  |------------+-----+-----------+-------------|
  |14 1110     |п    |0,02804    |2,804%       |
  |------------+-----+-----------+-------------|
  |15 1111     |у    |0,02615    |2,615%       |
  |------------+-----+-----------+-------------|
  |16 10000    |я    |0,02001    |2,001%       |
  |------------+-----+-----------+-------------|
  |17 10001    |ы    |0,01898    |1,898%       |
  |------------+-----+-----------+-------------|
  |18 10010    |ь    |0,01735    |1,735%       |
  |------------+-----+-----------+-------------|
  |19 10011    |г    |0,01687    |1,687%       |
  |------------+-----+-----------+-------------|
  |20 10100    |з    |0,01641    |1,641%       |
  |------------+-----+-----------+-------------|
  |21 10101    |б    |0,01592    |1,592%       |
  |------------+-----+-----------+-------------|
  |22 10110    |ч    |0,0145     |1,45%        |
  |------------+-----+-----------+-------------|
  |23 10111    |й    |0,01208    |1,208%       |
  |------------+-----+-----------+-------------|
  |24 11000    |х    |0,00966    |0,966%       |
  |------------+-----+-----------+-------------|
  |25 11001    |ж    |0,0094     |0,94%        |
  |------------+-----+-----------+-------------|
  |26 11010    |ш    |0,00718    |0,718%       |
  |------------+-----+-----------+-------------|
  |27 11011    |ю    |0,00639    |0,638%       |
  |------------+-----+-----------+-------------|
  |28 11100    |ц    |0,00486    |0,486%       |
  |------------+-----+-----------+-------------|
  |29 11101    |щ    |0,00361    |0,361%       |
  |------------+-----+-----------+-------------|
  |30 11110    |э    |0,00331    |0,331%       |
  |------------+-----+-----------+-------------|
  |31 11111    |ф    |0,00267    |0,267%       |
  |------------+-----+-----------+-------------|
  |32 100000   |ъ    |0,00037    |0,037%       |
  +--------------------------------------------+

------

## ПРИЛОЖЕНИЕ в. ЧАСТОТНЫЙ АЛФАВИТ ЭСТОНСКОГО ЯЗЫКА

  https://www.sttmedia.com/characterfrequency-estonian

           1         2
  123456789012345678901234567
  ABDEFGHIJKLMNOPRSTUVZÄÕÖÜŠŽ
  AEISTLUNKDOMRVGHJPÄÕBÜÖFZŠŽ

  Character	  Frequency
  A						12,77%
  E						10,82%
  I						9,53%
  S						7,57%
  T						7,51%
  L						6,23%
  U						5,66%
  N						5,35%
  K						4,72%
  D						4,41%
  O						4,08%
  M						3,88%
  R						2,76%
  V						2,33%
  G						1,97%
  H						1,81%
  J						1,79%
  P						1,64%
  Ä						1,36%
  Õ						1,24%
  B						0,82%
  Ü						0,78%
  Ö						0,29%
  F						0,14%
  Z						0,04%
  Š						0,02%
  Ž						0,01%


## НАШЕЛ НА http://4tob.ru/aforizm

а. Настоящий дипломат всегда знает, что спросить, когда не знает, что ответить.

б. Если убить убийцу, количество убийц не изменится.

в. Существует два типа юристов: те, кто знает закон, и те, кто знает судью.

г. Совесть -- это тихий голос, напоминающий, что за тобой могут подсматривать.

д. Экзистенциальный ужас современного человека не в том, что тот смертен, а в том, что айфон-то с собой не заберешь.

е. Ленивые все делают быстро. Чтобы поскорее отделаться от работы. И делают качественно. Чтобы потом не переделывать.

ж. Девушки -- самые добрые в мире существа, они могут простить любого парня, даже если он ни в чем не виноват.

з. Иногда кажется, что весь мир против тебя. Но это всего лишь кажется. На самом деле миру на тебя наплевать.

и. В жизни главное не лениться. Захотел поспать -- поспи.

й. Сначала ищешь справедливость. Потом другую работу.

к. Рассказчику анекдотов нужна хорошая память и твердая вера в отсутствие памяти у других.

л. Мужская верность -- женат уже в третий раз, а любовница всё одна и та же.

м. Лучший способ проснуться знаменитым -- это уснуть знаменитым.

н. Плаванье -- это не спорт. Плаванье -- это способ не утонуть.

о. Теория отличается от практики тем, что в теории теория и практика идентичны, а на практике это не так.

п. Мастерство программиста не в том, чтобы писать программы, работающие без ошибок, а в том, чтобы писать программы, работающие при любом количестве ошибок.

р. Чтобы сделать человеку хорошо, нужно сначала сделать ему плохо, а потом так, как было.

с. Девушки не изменяют, они сравнивают.

т. Воспитание -- процесс устранения своих личных недостатков у своих детей.

у. Даже если вас съели, у вас есть два выхода.

ф. Алкоголь не помогает найти ответ. Он помогает забыть вопрос.

х. Если вас мучает совесть по ночам, спите днем.

ц. Если долго смотреть на девушку, можно увидеть, как она выходит замуж.

ч. В конце всё будет хорошо. Если не всё хорошо -- значит еще не конец.

ш. Трудно искать черную кошку в тёмной комнате, особенно если там ротвейлер.

щ. Единственное место, где любовь встречается раньше, чем секс, -- это словарь.

ъ. Не нужно бежать от снайпера, только умрешь уставшим.

ы. Человек ко всему привыкает, даже к виселице: подергается, подергается... и привыкнет.

ь. Если вы спорите с идиотом, то, скорее всего, тоже самое делает и он.

э. Настоящие женщины не выходят замуж за настоящих мужчин. Потому что настоящая женщина с первого раза не соглашается, а настоящий мужчина два раза не предлагает.

ю. Лидер -- это тот, кто первым достигнет дна пропасти.

я. Если над Вами постоянно смеются -- значит, Вы приносите людям радость.
