Hatred's Log Place

DON'T PANIC!

Jan 9, 2017 - 1 minute read -

SSL на блоге

SSL Everywhere. С HTTP настроен редирект на HTTPS.

Сертификаты от Let’s Encrypt, получение и обновление сертификатов через CertBot.

Работать будет с браузерами, которые умеют Server_Name_Indication|SNI , т.е. в пролёте древние Андроиды на 2.3.7, всякие IE6-IE8, HTTP клиенты в Java 6u45 и 7u25.

Первоначальный рейтинг C тюнился до A+ по следующим статьям:

Результат: https://www.ssllabs.com/ssltest/analyze.html?d=htrd.su&hideResults=on

Что пришлось менять и что поломалось:

  • Ссылки на банеры, в частности картинки пришлось утянуть себе, так как доступны только по HTTP
  • Воспользоваться миграционными тулами Disqus, что бы восстановить комментарии к статьям (URL Mapper, предварительно запросив текущий список и обработав его скриптом)
  • Счётчики G+ слетели. Как их чинить для новых страниц - хз.
  • Что ещё отвалилось. Иначе невозможно :)

Dec 30, 2016 - 2 minute read - туризм maps

Garmin GPSMAP 64s

Обновочка. Продал свой GPSMAP 62s, как более неподдерживаемый. Плюс хотелось GLONASS. Зачем только не совсем понимаю :)

Отличия пока только визуальные: 62s мне достался практически сразу после выхода, и у него была детская болячка - скрипел корпус. 64s появился в 2014 году и корпус более крепкий. А вот резиновая заглушка для USB и антены на новом навигаторе доверия не внушает. Ещё более тактильная отдача на кнопках при нажатии.

Внутри место под флешку развернули на 90 градусов, теперь шансов, при доставании батареи, что флешка отойдёт меньше. А проблем с этим было две только среди моих знакомых (вторая - при мне быстро решили, но я уже про беду знал). Проявляется - карта то появляется, то исчезает.

Заявлено более короткий срок жизни от батареи. Минимальное время включения подсветки экрана увеличено с 5 сек до 15.

В этой модели можно заряжать аккумуляторы от USB. С одним “но”: внутри батарейного отсека появилась кнопка, что бы зарядка началась, нужно, что бы она была нажата. Автоматически это может сделать фирменный пак аккумуляторов, которые “сшит” общей рубашкой. Эта рубашка и зажимает кнопку. Типа, что бы беспечный пользователь не начал заряжать щелочные батарейки.

К сожалению, погонять чисто GLONASS на приборе не получится, доступные режимы: GPS, GPS+GLONASS. Чисто GLONASS - нет. А очень бы хотелось.

Теперь по ценам… Не покупайте у наших барыг! Типичная цена на навигатор в России - 25000 руб. Плюс минус. Самая маленькая найденная - около 20к руб. Добавьте судя стоимость доставки - от 500 до 1500 руб. (особенно, если хочется быстрее получить). А вот покупка и доставка с Амазона (я выбрал дорогую доставку UPS за 37$) вышла примерно в 15800 руб. (получил в руки за 1.5 недели). Что даже дешевле покупки мною предыдущего навигатора 62s - он мне обошёлся в 15900 руб., а ведь происходило это существенно раньше и по совсем другому курсу доллара. Так-то. Продавец: https://www.amazon.com/gp/product/B00HWL9AS8/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1. Карту памяти купил уже тут, отдал за 32Гб около 1000 руб.

Dec 22, 2016 - 2 minute read - life туризм

Уплотнительные кольца для BRS-8

Прошлой зимой потёк бензонасос горелки. Потёк внезапно и в походе, хорошо был баллон газа.

Протечка случилась по зазору вращающегося штока на насосе для прикручивания шланга.

Как оказалось, уплотнительная резинка растянулась. Готовых рем-комплектов на али не оказалось, пришлось мерить кольца и искать уже конкретные экземпляры.

Для начала небольшой словарь, которые поможет искать нужные номиналы:

  • OD - внешний диаметр
  • ID - внутренний диаметр
  • CS - толщина кольца

Запрос стоит формировать как-то так: “oil rubber ring CS ###mm”, подставляя нужную толщину.

Самих номиналов колец оказалось 4 штуки: кольца внутри проблемного штока (4 штуки), хоть и похожи, он сам шток конический и два чуть больше. Итак:

  1. OD 12мм, ID 8мм, CS 2мм - 2 штуки (диаметр посадочного места 8.2мм)
  2. OD 12.5мм, ID 8.5мм, CS 2мм - 2 штуки (диаметр посадочного места не замерил, потом обновлю)
  3. OD 6мм, ID 3мм, CS 1.5мм - 6 штук (диаметр посадочного места 3.1мм) - это уплотнители на штоке шланга (4 штуки) и в насосе (2 штуки)
  4. OD 33мм, ID 26мм, CS 3.5мм - 2+ штук - уплотнительные кольца на резьбе пробки бутылки и самом насосе, диаметр может варироваться, там главное придавить их.

Варианты на Ali:

Ссылка на аналогичную проблему:

Раньше была возможность купить комплект:

но сейчас китаец не продаёт. Найти аналогичный - не смог.

Смущает только больший номинал колец в ремкомплекте для Kovea Booster+1 - https://primalp.com/posuda-gorelki/gazovye-aksessuary/kovea-remkomplekt-dlya-kb-0603/ (кстати его можно попробовать использовать, заказать в Тибете, например).

Dec 21, 2016 - 1 minute read -

О PDF-просмотрщиках

Немного о наболевшем.

В PDF, обычно, распространяется документация.

В документации, обычно, есть перекрёстные ссылки.

По ссылкам неплохо иметь возможность переходить.

До сего момента речь шла, практически, о 100% доступных читалок для PDF.

А вот теперь, перейдя по ссылке, неплохо бы иметь возможность вернуться назад, к той точке, откуда мы пришли.

Внезапно, но это, казалось бы простое требование просто фантастически прореживает стройные ряды просмотрщиков!

После длительных поисков и переборов остался такой набор:

  • Кроссплатформенные
    • Как это не парадоксально, но это PDF.js иными словами - Firefox. И он, пожалуй, единственный.
  • Linux
    • Тут тоже нет разнообразия, единственный представитель, который умеет эту простую фичу - KDEшный Okular. Evince и производные что-то пытаются делать, но работают очень странно. Другие не умеют вовсе.
  • Windows
    • Кто сказал - Acrobat Reader? Нет! Он не умеет. Из опробованных мной, с неперегруженным интерфейсом, только два варианта: STDUViewer и Sumatra PDF. Первый подглючивает временами, остановился на втором (на работе). Foxit Reader тоже, вроде, умеет, но его новомодный интерфейс мне непонятен и неприятен.

UPD: Сегодня появилась статья на Хабре, где человек соединил Qt, QWebEngineView и PDF.js, вот репозиторий на GitHub:

Dec 21, 2016 - 1 minute read -

Системы заземления TN-S, TN-C, TNC-S, TT, IT

Наглядная статья: Системы заземления TN-S, TN-C, TNC-S, TT, IT

Ну и несколько замечаний по теме проводки:

  • Если у вас до сих пор проводка по квартире алюмишкой в полтора квадрата - озадачьтесь установкой меди. И зарисуйте схему проводки.
  • Не чурайтесь использовать разделительный трансформатор для титана, стиральной машины и т.п.
  • УЗО
  • Если ваша сеть не TN-S, то сделайте (наймите того, кто сможет!) хотя бы TN-C-S. Следите, что бы заземляющий ноль не был подключен на тот же “орех”, что и остальные. А лучше, что бы у вас было два своих подключения на нулевой провод в щитке: один для нуля, другой - для защитного зануления. Ещё лучше: требуйте от своей управляйки модернизации сети. В конце концов, часто то, что нам подсовывают под кап-ремонтом, им не является. Замена коммуникаций - это уже часть его.

Dec 15, 2016 - 1 minute read -

Переключение раскладки по CapsLock в Windows

На работе приходится сидеть в Windows по ряду причин, но очень неудобно, что нет привычного переключателя раскладок клавиатуры по CapsLock.

Перебрал несколько вариантов: специализированные утилиты (сайты большинства умерли (привет Recaps, Keyla) за исключением, пожалуй Capslang), правка реестра Windows ( https://habrahabr.ru/post/305658/, не понравилось), использовал PuntoSwitcher (стрельба из пушки по воробьям ради только переключалки, плюс досадно глючил временами).

В результате остановился на варианте с AutoHotkeys и эмуляцией нажатия клавиш переключения раскладки. Кроме того, учёл, что в рабочей сессии VirtualBox переопределять клавишу не нужно (для других VM код будет похожим). В результате получился такой скрипт:

SetTitleMatchMode RegEx
#ifWinNotActive, ^.+ - Oracle VM VirtualBox$
	SetCapsLockState, AlwaysOff
	+CapsLock::CapsLock
	CapsLock::Send, {Ctrl down}{Shift down}{Shift up}{Ctrl up}
#ifWinNotActive
return

Сохраняем, запускаем, пользуемся. Если нужно, добавляем в автозагрузку. CapsLock остаётся доступен по сочетанию Shift+CapsLock.

Справочник по регуляркам: https://autohotkey.com/docs/misc/RegEx-QuickRef.htm

Ссылки по теме:

Dec 3, 2016 - 1 minute read - туризм

Распродажа туристического снаряжения

Немного накопилось, что не подошло, что хочется поменять, а что уже заменилось, поэтому выставляю:

Dec 2, 2016 - 1 minute read - programming c++

C++ и хорошие практики

Существуют хорошие практики программирования и их стоит изучать. Часть из них применима не всегда. Часть стандартов хорошо себя зарекомендовала, но стоят денег, например MISRA C++, но, помимо цены, ещё и достаточно консервативен и покрывает только язык до стандарта C++11 (выпущен в 2008 году).

Ниже список, на мой взгляд, хороших источников, которые хорошо иметь под рукой и регулярно пробегаться глазами:

  • The C++ Core Guidelines - естественно на первом месте, руководство от, можно сказать, создателей, корифеев языка. Основные составители Бьярне Страуструп, Герб Саттер и, конечно, сообщество. Развивается оперативно и быстро адаптируется под новые фишки стандарта.
  • High Integrity C++ Coding Standard - коротко и по делу. Немного пояснения: https://en.wikipedia.org/wiki/High_Integrity_C%2B%2B. Сейчас покрывает C++11. На этот стандарт даёт отсылки MISRA C++ 2008.
  • Все книги из Скотта Майерса из серии Эффективное программирование на C++.

Ну и на затравку: писать надёжный софт на C++ можно - C++ on Mars: Incorporating C++ into Mars Rover Flight Software :wink:

И стоит помнить, что есть практики, есть стандарты, но не стоит выключать свой мозг и обкладываться паттернами, бустом и прочими непотребствами, если вам нужно вывести всего лишь “Hello, world!”.

Nov 21, 2016 - 1 minute read -

Пакеты с отладочными символами для Debian

Пара линков на тему:

Первый описывает базовые подходы для версий debhelper меньше и больше 7. Второй линк описывает новый, рекомендованный подход с автоматическим созданием dbgsym пакетов.

Что бы файлы с отладочной информацией строились в PPA, в настройках (Change details…) нужно включить опции:

[x] Build debug symbols
[x] Publish debug symbols

Nov 3, 2016 - 2 minute read -

Ветки обсуждений в Thunderbird

Просто перечисление нескольких скрытых опций, которые могут оказаться полезными. В дополнение к http://kb.mozillazine.org/Stop_threading_by_subject:

  • mailnews.sort_threads_by_root - если кому-то хочется, что бы при сортировке по дате обсуждений использовалась дата корневого письма, а не самого последнее. Не знаю, кому такое может пригодиться, но полезно знать, на случай, если какое-то расширение изменит эту настройку в true.
  • mail.operate_on_msgs_in_collapsed_threads - управляет поведением на свёрнутых обсуждениях: показывать не-conversation вариант (true - по-умолчанию) или показывает корневое сообщение (false). Так как conversation-вариант попросту нефункциональный в TB, то я использую false.

Теперь ищу способ для:

  • Сделать свернутое обсуждение не просто подчёркнутым но выделенным жирным. Вроде как через пользовательский CSS можно.
  • Сделать так, что бы обсуждение было только с одним уровнем ветвления, а остальные сообщения были в порядке прихода. Для большинства обсуждений важна хронология, а контекст содержится в цитируемом сообщении. Этот бы вариант можно было бы решить группировкой по дискуссии (Group By Discussion), к сожалению поиск в интернете для этого не дал мне результатов (и вопрошание на SuperUser - тоже).

Ну а под катом немного расширений, которые могут показаться кому-то интересными в части организации дискуссий.

Oct 10, 2016 - 1 minute read - projects programming

CMake и Qt Creator: на пути к CMake server mode

В транке появилась пачка изменений, ориентированные на использование CMake Server Mode, в связи с чем плагин теперь может работать только с CMake версии 3.0 и более новым. Тобиас крепко взялся за плагин и будем надеяться, что, как минимум, скоро не будет требоваться:

  1. промежуточная генерация CodeBlocks проекта, дабы распарсить цели, получить список файлов и параметров компилятора.
  2. ручное парсирование файла кеша, для получения списка опций и их изменения.

Пока CMake Server Mode большего не предоставлят: в основном информация, но не изменение её. Так что ожидать автоматическое добавление файла к нужной цели или переименование файла в билд-системе средствами этого нового режима не стоит.

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

И от себя: в CMakeProjectManager2 добавил возможность использовать трюк от cmake, что бы задать варианты возможных значений для какого-то параметра и выводить их при редактировании в виде выпадающего списка. Фичу портировал в апстрим и завёл ревью, кому нужно, голосуйте: https://codereview.qt-project.org/#/c/173340

Про сам трюк:

Если коротко, то в вашем CMakeLists.txt, для задания возможных значений для параметра, нужно добавить конструкцию:

set_property(CACHE OptionName PROPERTY STRINGS PossibleValue1 PossibleValue2 PossibleValue3 ... PossibleValueN)

Ни на что, кроме как для подсказки GUI этот параметр не влияет: CMake не делает валидацию введённых значений, поэтому возможность задать любое другое - остаётся.

Ссылки по теме: