Development

Программерский детектив

Итак, пока я тут доделал парсер-конвертер html-статей в набор предложений (с помощью BeautifulSoup4, различных регулярок и NLTK.tokenize - для подачи на вход нейросети на TensorFlow) и доволен чистотой результата, решил сделать паузу и, все-таки, написать эту забавную и поучительную историю. Программерский детектив Приятно наблюдать как недавно собранный компьютер “перемалывает” всеми 8(16) ядрами нужную мне задачу. Вот только я не ожидал, что придется перезапускать это так много раз. В последний раз так мозг закипал, наверное, только когда нужно было сделать динамический пересчет релокейшенов загруженного модуля win32.

Написал переключалку языков на CAPSLOCK

Вчера вдруг осознал, насколько удобней будет переключать RUS/ENG не привычным CTRL+SHIFT, а клавишей CAPS LOCK, учитывая, что я использую слепой 10-типальцевый метод и для русского, и для английского текста. (Тогда пальцы не нужно будет центрировать заново каждый раз) Как оказалось, в Windows 10 нельзя выбрать такой вариант. Но есть некоторые сторонние программки для этого дела. И тут мне захотелось самому быстренько такую зафигачить. Сначала кое-как вымучил такую утилитку на Go. Офигел от кривости этого всего кода, с кучей обвязок для Win32 API.

Тыжпрограммист

Столкнулся с такой проблемой при подключении PC->DVI->HDMI к телевизору Philips - какое бы я разрешение не выставил, после перезагрузки телевизор мне пишет “разрешение не поддерживается” (или “нет сигнала). Тестировал и под Linux Mint/Ubuntu - все идентично глючит. И после некоторого гугления обнаружил, что многим известна такая проблема. Вроде бы, это все как-то связано именно с NVIDIA картами и Philips TV. И решений каких-то не существует. Кто-то вообще телевизор в магазин возвращал.

Django-агрегатор

Тестирую вторую версию полностью автоматического новостного Django-агрегатора , где не только короткая выжимка “сути” новости в виде анонса, но и HTML страница со статьей (из любого источника), из которой выкушен весь мусор, но остается основное HTML форматирование. А по содержанию это 30% от оригинала. В этот раз взял для теста хайповую тематику - криптовалюты. :) bitcoin.icexp.com (udp: уже выключил). Правда, тут получаются слишком короткие “выжимки”, потому блок твиттера надо поменьше ставить.

Зарелизил Ping Wrapper

Добавил вчера “исправляльщик пингера” на сайт (+ бинарник под Windows) Ну и на GitHub исходник на GO тоже. :) Заодно попробовал сбилдить и потестить под Linux на VPS-ке. Все работает так, как и задумывалось. Это радует. Кстати, хорошо, что я еще вовремя вспомнил про то, что под Windows и Linux разные сепараторы путей в переменной $PATH - точка с запятой и двоеточие, соответственно.

Оживил privacy-formula.com

Наконец, спустя много лет заменил заглушку на http://privacy-formula.com/ на что-то интересное. :) Теперь там автоматический агрегатор новостей на тему “privacy”. Парсятся разные источники. Сначала одна библиотека извлекает главный контент со страницы (ищет саму статью), потом другая делает text summarizing - короткую выжимку именно значимых предложений. Ну а сам сайт на Django в виде 1 страницы в анонсами статей, где по ссылке “подробнее” отправляет на нужный ресурс. Кстати, повесил еще плагин от Google для автоперевода.

Решил сменить IDE

Решил попробовать сменить IDE. Ведь удобнее, если на всех языках можно фигачить в привычной среде. А тут оказалось, что под VS Code еще и плагинов куча полезных. Для начала сразу скачал и установил шрифт Fira Code. И включил в редакторе использование лигатур. Недавно на хабре статья просто попалась. :) А так бы и не задумывался о таком. Для Go меня приятно удивило автоматическое добавление (и ведение) импортов при упоминании в коде.

Шутка дня

День еще только начался, а у меня уже шутка дня. :) Написал вчера на Go “обертку” для ping, чтобы она автоматически убирала http:// и пинговала домен, вместо того, чтобы выдавать ошибку “адрес не найден”. А то бывает такое, если адрес копировать из адресной строки браузера: ping http://google .com Т.е. просто параметры фиксятся и передаются дальше в настоящий ping.exe А сейчас добавил путь к папке с этим wrapper-ом ping.exe в PATH. Запускаю - что за ерунда.

Ради эксперимента переписал один свой скрипт с Python на Go

Ради эксперимента переписал один свой скрипт с Python на Go (с использованием “горутин”). Смысла особо в этом не было, так как там узкое место - операции с диском, но захотелось немного познать Go. Замерил время выполнения на тестовых данных. Для начала запустил первый раз для того, чтобы все закешировалось. Потребовалось где-то 2 минуты. Затем уже попеременно запускал то на Python, то скопилированный exe на Go. Python 3.6 (в один поток) ~ 12 секунд

Нейросеть - ценитель

Задумался про нейросеть, которая сможет предсказывать художественную ценность фотографий. А, оказывается, Гугл уже и тут успел. :) Еще пишут, что Adobe вообще уже запустили в Lightroom функцию авто-коррекции фото на базе ИИ несколько месяцев назад. https://tproger.ru/news/google-neural-network-nima/