Issue-2017.04.21

Тел. +7 904 707-11-25
E-mail: yudenisov{at}aport2000.ru

Категория «16+»

Мой сайт   Визитка на Мемиане

[Выпуск 21.04.2017]

 

[[25.04.2017]]

Сегодня (наконец-то) полностью закончил писать код макросов по генерации ssl сертификатов для сайтов. Программа (скрипт на языке Perl) получились небольшими, компактными, но универсальными Особо горжусь подпрограммой для перевода файла JSON из произвольного вида в канонический, программу на языке PERL для «обрезания» лидирующих и концевых пробелов, а также «костыль» к программам на языке Perl (реализованный через функцию eval) для подстановки в строку символов скалярных и векторных переменных перед их записью в текстовый файл.

Насчёт последнего остановлюсь поподробнее. Как известно, при выводе строки символов, помещённых в двойные кавычки, происходит подстановка значений скалярных и векторных переменных, имена которых (начинающиеся со знака «$») встречаются в этой строке. Но в данные, выводимые из символьных переменных, значение которых было определено вне пределов этой программы (например, путём ввода данных из файла), такая подстановка не производится. Я нашёл способ, как осуществить эту подстановку значений, при помощи двух строк кода. Но, следует отметить, что этот код работает только при выводе значений переменных на экран либо в файл, и не применимо для переменных, находящихся в памяти интерпретатора Perl.

Пусть $String – это наша переменная, которую мы хотим вывести на экран с подстановкой в неё значений других имеющихся у нас переменных (их имена, количество и содержание для нас не существенны). Тогда вводим дополнительно переменную $TmpMessage, в которую запишем код инструкции вывода нашей строки $String на экран. Затем вызовем функцию eval. Вот следующие две строчки кода её реализации:

$TmpMessage = «print \»».$String.»\»;»;

eval TmpMessage;

Вывод строки без подстановки был бы таким:

print $String;

С помощью всех этих средств мне удалось реализовать на языке Perl довольно сложную задачу: автоматическую генерацию командных файлов и файла конфигурации openssl для пользовательского набора каталогов для файлов сертификата, имён файлов сертификата и информации сертификатов по-умолчанию. Фактически это является инсталлятором программ для генерации сертификатов OpenSSL, данные для которых выбираются из файла JSON. Файл JSON выбран потому, что его легко редактировать «ручками», и для него легко написать программу для заполнения значений на любом языке программирования. Потому что поддержка JSON есть во всех современных языках программирования высокого уровня.

Также есть заинтересованность от одного клиента в раскрутке его образовательной программы через YouTube и социальные сети. У меня, слава богу, с этим всё в порядке. 🙂

Смотрел на сайт, который сделала С.М. Глозману для его музея самоваров одна дизайнерская студия. Сайт весьма и весьма средний, оригинальным его дизайн не назовёшь (похоже, все сайты делаются этой студией на одном «движке»). К «уникальному дизайну студии» можно отнести сворованные в Интернете русские народные фоны и узоры, да сам уникальный контент, который был предоставлен заказчиком. Но боже, как можно его было так изуродовать! В качестве основного шрифта используется мелкая гарнитура Times New Roman, что является нарушением патента Microsoft. Современные сайты в основном построены на шрифтах от Google. Я такие сайты делал десять лет назад для своего удовольствия. А дизайн шаблонов у этой студии — с 20 летним «душком». Такой дизайн был привлекателен только на заре Интернета. Сейчас же в моде минимализм. Но дело даже не в дизайне. На сайте вообще нет социальных функций! Счётчик, если есть, то он очень глубоко запрятан, я его не нашёл. А ведь с его помощью нужно оценивать эффективность работы сайта. На сайте нет ни одного «жучка», социальной кнопки или seo анализатора Форма обратной связи также является устаревшей, похоже, работники музея работают по технологиям 19 века. Для молодёжи такой сайт будет скучным. А ведь музей несёт в себе культурно-историческую функцию, которая должна заинтересовать себе, в том числе, и молодёжь. Но сайт разработан явно не для молодёжи! Вердикт: в таком виде сайт, безусловно, мастдайный. Непонятно, за что эта студия выставила счёт в 50 тысяч рублей, тогда как я сделаю такой сайт один в один за 500 рублей. Больше за такую халтуру мне брать стыдно!

 

[[23.04.2017]]

[23.04.2017 21:19:55]

Сегодня через Интернет купил себе сервер HP Proliant DL120 G6 и жёсткий диск для него. Сервер я купил «с рук» на авито, не самый мощный, но всё-таки Hewlett-Packard. Сервер б/у, на нём, как я понял, работала 1C бухгалтерия, но сейчас он оказался организации не нужен. Я купил его за половину стоимости, естественно, без гарантии. Мне обещали его привезти. Сервер в итоге мне обошёлся дешевле смартфона.

Диск же я купил в DNS, Western Digital, 1 Tb. Такого диска хватит для всех моих нужд на сервере. В ближайшее время его нужно будет забрать.

На сервер я установлю операционную систему Microsoft Windows Server 2016 и всё программное обеспечение для хостинга. Я уже продумал, где он у меня будет стоять, и как работать. 🙂

Появился интерес ко мне как к создателю сайтов и хостинга. Сегодня мне с Юлы позвонил один из клиентов, назвался Рафом, ему нужен Интернет-магазин. Очень хочет встретиться со мной. Не знаю, насколько платёжеспособен его интерес и серьёзны намеренья. Если встречаться с ним, то надо встретиться на нейтральной территории, например, в кафе.

 

[[22.04.2017]]

Сегодня наконец-то научился нормально настраивать на своём компьютере SSL сертификаты на веб-сервере Apache. Технология простая:

  1. Следить, чтобы все привязки протокола http были валидными. Это примерно то же самое, что и для нешифрованного протокола;
  2. Назначать разным веб-серверам разные порты по умолчанию;
  3. Смотреть, чтобы для каждого сервера использовался только один сертификат. При этом многие браузеры требуют, чтобы сертификат выпускался специально для каждого сайта, с указанием url сайта во владельце сертификата.

С выпуском сертификатов проблем у Вас быть также не должно. Для начала нужно создать файл openssl.conf, в котором следует прописать:

  1. Пути до мест хранения сертификатов, их публичных и закрытых ключей, списков отзывов сертификатов и экспортируемых сертификатов;
  2. Полное путевое имя для файлов корневого сертификата (его публичного и закрытого ключа), файла серийного номера ключа и порядкового номера отзыва сертификата. Внимание! Эти имена являются переменными величинами, которым Вы потом присваиваете значения во время генерации корневых сертификатов. Так что Вам может понадобиться изменить эти значения в дальнейшей работе;
  3. Значения по умолчанию в подсказках сертификата. Этот пункт необязательный, но он намного уменьшает время создания нового сертификата или перевыпуск старого;
  4. Длина ключа шифрования сертификата по умолчанию стоит значение 2048, но Вы можете уменьшать и увеличивать это значение. Увеличение длины ключа ведёт к повышенной надёжности шифрования, но одновременно увеличивает нагрузку на сервер, а также большая длина ключа может не поддерживаться операционной системой клиента.

После создания файла конфигурации можно воспользоваться любыми инструкциями по генерации сертификатов, переименовывая в процессе работы промежуточные файлы. У меня есть задумка написать программу, которая автоматически бы генерировала файл openssl.conf, дерево каталогов сертификатов, сами имена сертификатов и сам *.cmd файл для создания сертификатов. Реализовать такую программу на языке Perl – проще простого. Хочется только знать, как в Perl реализована поддержка JSON.

 

[[20.04.2017]]

Сегодня я разбирался с CLI интерфейсом домашних маршрутизаторов. Выяснил для себя интересную вещь. Оказывается, CLI домашних маршрутизаторов, независимо от производителя, мало различаются, если они имеют префикс NBG. Этот же префикс имеют некоторые маршрутизаторы Cisco. А изучить командный язык для них не так сложно, к тому же в операционных системах маршрутизаторов есть подсказка по работе с командами при нажатии на компьютере клавиши Tab.

Немного непонятно, возможна ли конфигурация промышленных маршрутизаторов через локальную сеть. Раньше перенастройка маршрутизатора требовала локального подключения к нему через com порт. Но сейчас у большинства компьютеров нет такого порта… 🙁 Однако благодаря COM порту безопасность маршрутизатора была на высоте, ведь физический доступ к маршрутизатору практически всегда закрыт…

В настоящее время я установил на свой компьютер Archivarius 3000 и индексирую его базы данных.

 

[[19.04.2017]]

[19.04.2017 22:24:35]

Сегодня «в черновую» закончил работу над новой версией веб-приложения «ContactSheet_3.1». Оно является дополненным приложением «cs3», расположенного на gitHub’е по адресу http://github.com/yudenisov/cs3/ . Новая версия отличается расширенным набором параметров:

  • конкретизировано наличие именно мобильного телефона;
  • добавлены ссылки на социальные сети для сохранённых контактов;
  • добавлена запись значений по умолчанию для пустых контактов;
  • предусмотрено место под код для проверки занесённых данных перед их записью в базу данных;

В будущем планируется написать код проверки и код визуализации данных при просмотре списка контактов. Также предполагается убрать ограничение на 255 записей, сортировку списка контактов по алфавиту, возможность публикации списка контактов. Но для начала нужно отладить существующий код, чтобы у пользователя вообще не было вопросов по добавлению, редактированию и удалению данных.

С добавлением данных у меня возникли проблемы, которые я решил не сразу. Дело в том, что у меня не работал SQL запрос на вставку данных INSERT. Вначале я грешил на то, что у меня никак не обрабатываются запросы на добавление пустых значений. Но даже после того, как я разрешил базе данных использовать пустые значения и задал средствами PHP значения по умолчанию, скрипт не заработал. Переменные передавались, код вызывался, исключения не возникали. У меня было подозрение, что ошибка была в SQL запросе, но это подтвердилось только с третьей попытки. Ошибка была элементарная: при перечислении списка полей была пропущена запятая. Но это я обнаружил только тогда, когда скопировал запрос из скрипта в оболочку MySQL «1 в 1» и изменил значения переменных в области VALUE на удовлетворяющие условиям. И надо такому случиться, что при копировании данных я только на третий раз при подготовке данных не «исправил» случайно ошибку! После вставки запятой всё заработало! Но надо же, ошибочный SQL запрос вообще не генерировал никакого исключения! 🙁

Завтра иду фотографировать и записывать Юлькиного Львёнка. Надо же, чем меньше мне нравится Юля, тем большую симпатию я испытываю к её сыну.

 

[[18.04.2017]]

В результате работы над документированием приложения themeframe для создания тем на WordPress у меня появились свежие мысли, какие нужно сделать дальнейшие изменения в проект, чтобы приложение нормально работало. После применения изменений пакет заработал! Теперь у меня есть инструмент с полным контролем над темами WordPress!

Привожу ссылку для скачивания проекта:

https://github.com/yudenisov/themeframe Переработанная версия программы themeframe, которая теперь может работать с php 7.1 и WordPress 4.7.3.

Themeframe – приложение для создания тем на WordPress, которое не требует установленного движка, устанавливается как локальный сайт, имеет множество настроек интерфейса темы. В настоящее время интерфейс программы – англоязычный, но всё сделано на хорошем и понятном английском языке. Программа предназначена для веб-мастеров.

 

[[16.04.2017]]

[16.04.2017 19:37:20]

Сегодня установил на свой компьютер (в очередной раз :)) программы корпорации Altova. На этот раз я ещё скачал дополнения к программам с их официального сайта.

До этого, вчера, я установил на свой компьютер программу Easy GIF Animator. Превосходная программа именно для редактирования GIF анимации.

Скоро с меня спишут средства за Microsoft Office 365. Надо узнать поточнее, какая это будет сумма. А ещё предстоящие расходы – покупка сервера… Вернее, его сборка из подручных средств. Опять обращусь за помощью к Н.Е. Нюнько.

[16.04.2017 10:48:07]

Сегодня устанавливал на виртуальную машину VMWare Workstation новые операционные системы Microsoft Windows Server. Установка прошла на редкость спокойно, без сбоев и затруднений. Активация также прошла без затруднений. Для активации необходимо:

  1. Скачать и распаковать набор программ KMS Tools Portable от Ratibor последних версий;
  2. Запустить программу, выбрать модуль KMS Auto Net;
  3. Перейти в этом модуле на вкладку «Программы» и последовательно нажать кнопки «Запустить KMS Сервис» и «Загрузить GVLK ключ».
  4. Дождаться успешного завершения процедуры, и закрыть программу KMS Auto Net;
  5. Запустить программу KMS Auto Lite, в главном окне нажать кнопку «Активировать»;
  6. Дождаться сообщения об успешной активации и закрыть все программы.
  7. Нажать сочетание клавиш Win+Pause и убедиться, что Windows активирована.
  8. В случае отсутствия активации повторите пункты 2-7 с несколькими изменёнными параметрами, а именно:
    • Измените способ активации переключателем в KMS Auto NET и KMS Auto Lite;
    • Введите другой валидный ключ от Вашей операционной системы;
    • На время активации отключите антивирус и брандмауэр;
    • Проверьте, имеет ли Ваша операционная система префикс VL, и, если нет, найдите другой дистрибутив;
    • Попробуйте установить сервис активации на quemu вручную, без использования автоматики KMS Auto Net. Для этого потребуется скачать другой дистрибутив KMS, более старый.

После установки и активации попробуйте заблокировать автоматическое обновление Windows, хотя это крайне не рекомендуется из соображений безопасности. Лучше устанавливать все обновления вручную, скачивая их из Интернета.

После установки выяснилось, что новая версия сервера работает не в пример быстрее и устойчивее, чем предыдущая. Кто бы мог ожидать… 🙂

Добавить комментарий