TensorFlow GPU

Ох и провозился я тут с удалением/установкой TensorFLow. Со вчера был запущен один тестовый нейро-проектик, но сегодня решил его стопорнуть — закралось подозрение, что у меня все только на CPU работатает, а не на GPU. Как-то не хватает привычного громкого жужжания всех кулеров, как было тогда, когда я раньше на ноуте tensorflow гонял. Открыл System Information в “Process Hacker” - в разделе GPU нулевая активность. И это при том, что CPU дико нагружен - даже система стала не особо отзывчивая.

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

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

AutoSSH on WSL

Сижу такой, настраиваю на удаленном сервере работу скрипта, который через ssh-туннель делает запрос к сервису, который у меня дома локально под WSL работает. Так вот, запускаю lynx 127.0.0.1:port, чтобы проверить, что туннель выключился. Но он, почему-то, работает… Делаю netstat -lntp|grep port, получаю PID, затем kill PID. lynx 127.0.0.1:port … Хм. Все еще работает… Повторяю действие несколько раз, убиваю каждый раз новый ID процесса. Тоннель все еще работает. Чешу репу… И тут осознаю всю ржачность ситуации.

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

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

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

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

Копирование на выбор...

Настраивал сеqчас линукс-терминал “Terminator”. А настройки там на русском языке сами включились. И вот смотрел я на чекбокс “Копирование на выбор” и думу думал… Вот что это могло бы быть? :) Даже мысль появилась - вдруг при копировании какие-то варианты будут предлагаться… хотя это чуднО как-то было бы. А после того, как понял, что теперь нормально заработало авто-копирование в буфер при выделении мышкой - осенило! :) Это так чудно перевели “Copy on selection”.

Про режимы в Midnight Commander

Офигеть. Башку чуть не сломал, пытаясь понять почему у меня сервер игнорит запись в /etc/hosts и резолвит домен напрямую через сетевой интерфейс. Даже не выдержал - ребутнул сервак :) Не помогло. Смотрю дальше, смотрю. Дай-ка, думаю, заменю табуляцию на пробел в строчке типа: 127.0.0.1 <-->some.domain.com И охреневаю. У меня где-то при копировании \t заменился на набор символов “<–>“. :))) Во делаааа…

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 для автоперевода.