Вот и прошло почти два месяца с последних изменений.
Время было потрачено:
для ожидания некоторой стабилизации апстрима, так как, по сути, они требовали писать абсолютно новый код для реализации текущего функционала, а в условиях сильных и фатальных изменений, переписывать свой код на каждый чих… у меня столько времени нет.
ну и изучался новый код, когда выпадало время, плюс раздумья - как применить функциональность и для серверного режима работы CMake.
Так как код отвергли, а это, по сути, написанная с нуля реализация старого функционала, то он был взят за основу новых изменений. Ну как основу - 99%.
Есть и изменения. Малой кровью была создана обёртка поверх Server Mode Reader’а, которая предоставляет всего его внутренние профиты за исключением классического вида дерева файлов.
Соответственно изменения, сделанные для старого ридера (Tealeaf Reader), который используется для версий CMake младше 3.7, в части отображения всех файлов, добавления, удаления и переименования теперь применимы и для Server Mode Reader.
Сразу же был найден и первый баг: неправильно обрабатываются дефайны из CMAke (add_definition()).
Патч уже отослан, у себя в коде изменений делать не буду, подожду, пока попадёт в апстрим, потом засинхронизируюсь.
Функциональность же передачи Toolchain файлов выла дропнута. Можно делать настройки через Kit или же вручную создать параметр CMAKE_TOOLCHAIN_FILE и задать нужный. Главное не забудьте сделать Build -> Clear CMake Configuration после этого. Ну и будьте готовы, что парсер C++ вас перестанет понимать, как минимум, частично.
Пакеты для Ubuntu 14.04 и 16.04 и производных уже доступны через
PPA. Не забываем внимательно читать описание репозитория.
В ближайших планах подготовить ветку для стабильной версии QtC - 4.2. Там окажется только текущая функциональность и нового появляться не будет (если только кто-то не возьмёт её на сопровождение). Есть вероятность, что серверный режим будет выключен, так как он требует много смежных изменений и бекпортирования. Явные косяки тоже будут переноситься. В будущем, планирую саппортить только текущую версию QtC. Для старых не планирую даже исправления ошибок переносить. На всё это нужно время.
Если кто-то предложит варианты, как делать пребилды плагина для официальных версий QtC в автоматическом или полуавтоматическом режиме, буду рад выслушать.
Начиная с Tx30 Lenovo дропнули старую клавиатуру на ноутбуках серии ThinkPad, что очень грустно, так как новая в части предоставляемой раскладки просто не выдерживает критики. Одно расположение клавиши Print Screen чего только стоит - ощущение, что клавиатура для ярых скриншотеров, не меньше. С другой стороны, расположение PgUp/PgUp значительно более удобнее, нежели на классике.
Помимо сокращения числа рядов клавиш, сократилось и их количество. К примеру, нет вышеозначенных в заголовке клавиш. При этом официальная документация на сайте
говорит о том, как эту функциональность можно получить. Скопирую табличку сюда:
Клавиша
Комбинация
Break
Fn+B
SysRq
Fn+S
Scroll Lock
Fn+K
Pause
Fn+P
Данные комбинации не зависят от операционки, судя по всему, генерируются самим контроллером, так что должны работать и в консоли и в иксах без каких-то телодвижений.
Собственно вопрос, а чего бы эти значения не нанести на сами клавиши?
Ииии важное замечение, как работать с
SysRq в Linux:
Нажимаем Alt
Нажимаем Fn
Нажимаем S
Отпускаем S
Отпускаем Fn
Нажимаем нужно командную клавишу (например S для синхронизации дисковых буферов, P - для распечатки регистров или C для паники :)
Отпускаем нажатые клавиши в любом порядке или, не отпуская Alt, нажимаем следующую командную клавишу
ВАЖНО: простое нажатие Alt+Fn+S+буква ни к чему не приведут.
Ревью
https://codereview.qt-project.org/#/c/180827/ расставило точки над i:
“Project View == Build System View”, билд система не может отображать все файлы проекта? Значит не будем показывать. Билд система не предоставляет возможности добавлять, переименовывать и удалять файлы в проекте? Значит не будем даже пытаться предоставить возможность это делать. Не удобно? Ничего, целостность концепции важнее.
Хотя… мне одному кажется, что абстракции тут текут? Ведь Project View сам по себе подразумевает именно проект?
Да, моё решение тоже не верх совершенства, даже так - костыль. Но он же реально помогает в условиях отсутствия более приличной альтернативы…
Ну и обоснование всего одно: “Я боюсь баг-репортов”.
Неприятно, что у меня куча идей, а код из-за сервер-мода будет очень сильно меняться ещё, теперь держать кодовую базу в актуальном состоянии будет всё сложнее (более тяжёлые мёржи).
В любом случае, сейчас будет перезагрузка кода, потому как для новой кодовой базы, по сути, написан новый код. Сейчас буду думать, как наименьшей кровью в истории перенести новые изменения. Скорее всего придётся заревертить все прошлые мои изменений, привести master в состояние идентичное qtc-master, после чего просто сделать новый комит.
Ну а родной менеджер начнёт поддерживать данную функциональность, только кода CMake Server Mode сподобится на это. Удачи в ожидании :) Особенно при том условии, что конкуренты (KDevelop, Clion) это умеют делать.
SSL Everywhere. С HTTP настроен редирект на HTTPS.
Сертификаты от
Let’s Encrypt, получение и обновление сертификатов через
CertBot.
Работать будет с браузерами, которые умеют Server_Name_Indication|SNI
, т.е. в пролёте древние Андроиды на 2.3.7, всякие IE6-IE8, HTTP клиенты в Java 6u45 и 7u25.
Первоначальный рейтинг C тюнился до A+ по следующим статьям:
Ссылки на банеры, в частности картинки пришлось утянуть себе, так как доступны только по HTTP
Воспользоваться миграционными тулами Disqus, что бы восстановить комментарии к статьям (URL Mapper, предварительно запросив текущий список и обработав его скриптом)
Счётчики G+ слетели. Как их чинить для новых страниц - хз.
Обновочка. Продал свой 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 руб.
Прошлой зимой потёк бензонасос горелки. Потёк внезапно и в походе, хорошо был баллон газа.
Протечка случилась по зазору вращающегося штока на насосе для прикручивания шланга.
Как оказалось, уплотнительная резинка растянулась. Готовых рем-комплектов на али не оказалось, пришлось мерить кольца и искать уже конкретные экземпляры.
Для начала небольшой словарь, которые поможет искать нужные номиналы:
OD - внешний диаметр
ID - внутренний диаметр
CS - толщина кольца
Запрос стоит формировать как-то так: “oil rubber ring CS ###mm”, подставляя нужную толщину.
Самих номиналов колец оказалось 4 штуки: кольца внутри проблемного штока (4 штуки), хоть и похожи, он сам шток конический и два чуть больше. Итак:
OD 12мм, ID 8мм, CS 2мм - 2 штуки (диаметр посадочного места 8.2мм)
OD 12.5мм, ID 8.5мм, CS 2мм - 2 штуки (диаметр посадочного места не замерил, потом обновлю)
OD 6мм, ID 3мм, CS 1.5мм - 6 штук (диаметр посадочного места 3.1мм) - это уплотнители на штоке шланга (4 штуки) и в насосе (2 штуки)
OD 33мм, ID 26мм, CS 3.5мм - 2+ штук - уплотнительные кольца на резьбе пробки бутылки и самом насосе, диаметр может варироваться, там главное придавить их.
До сего момента речь шла, практически, о 100% доступных читалок для PDF.
А вот теперь, перейдя по ссылке, неплохо бы иметь возможность вернуться назад, к той точке, откуда мы пришли.
Внезапно, но это, казалось бы простое требование просто фантастически прореживает стройные ряды просмотрщиков!
После длительных поисков и переборов остался такой набор:
Кроссплатформенные
Как это не парадоксально, но это PDF.js иными словами - Firefox. И он, пожалуй, единственный.
Linux
Тут тоже нет разнообразия, единственный представитель, который умеет эту простую фичу - KDEшный Okular. Evince и производные что-то пытаются делать, но работают очень странно. Другие не умеют вовсе.
Windows
Кто сказал - Acrobat Reader? Нет! Он не умеет. Из опробованных мной, с неперегруженным интерфейсом, только два варианта: STDUViewer и Sumatra PDF. Первый подглючивает временами, остановился на втором (на работе). Foxit Reader тоже, вроде, умеет, но его новомодный интерфейс мне непонятен и неприятен.
UPD: Сегодня появилась
статья на Хабре, где человек соединил Qt, QWebEngineView и PDF.js, вот репозиторий на GitHub:
Если у вас до сих пор проводка по квартире алюмишкой в полтора квадрата - озадачьтесь установкой меди. И зарисуйте схему проводки.
Не чурайтесь использовать разделительный трансформатор для титана, стиральной машины и т.п.
УЗО
Если ваша сеть не TN-S, то сделайте (наймите того, кто сможет!) хотя бы TN-C-S. Следите, что бы заземляющий ноль не был подключен на тот же “орех”, что и остальные. А лучше, что бы у вас было два своих подключения на нулевой провод в щитке: один для нуля, другой - для защитного зануления. Ещё лучше: требуйте от своей управляйки модернизации сети. В конце концов, часто то, что нам подсовывают под кап-ремонтом, им не является. Замена коммуникаций - это уже часть его.
На работе приходится сидеть в Windows по ряду причин, но очень неудобно, что нет привычного переключателя раскладок клавиатуры по CapsLock.
Перебрал несколько вариантов: специализированные утилиты (сайты большинства умерли (привет Recaps, Keyla) за исключением, пожалуй
Capslang), правка реестра Windows (
https://habrahabr.ru/post/305658/, не понравилось), использовал PuntoSwitcher (стрельба из пушки по воробьям ради только переключалки, плюс досадно глючил временами).
В результате остановился на варианте с AutoHotkeys и эмуляцией нажатия клавиш переключения раскладки. Кроме того, учёл, что в рабочей сессии VirtualBox переопределять клавишу не нужно (для других VM код будет похожим). В результате получился такой скрипт:
Немного накопилось, что не подошло, что хочется поменять, а что уже заменилось, поэтому выставляю:
Лот 1: (Б/У) Навигатор Garmin GPSMAP 62s, в полной комплектации, с картами ДВ, Домашних вулканов Камчатки, Кодара, Тункинских гольцов на Восточном Сайне и района Белухи на Алтае, цена вопроса 15000 рубУШЁЛ
Существуют хорошие практики программирования и их стоит изучать. Часть из них применима не всегда. Часть стандартов хорошо себя зарекомендовала, но стоят денег, например MISRA C++, но, помимо цены, ещё и достаточно консервативен и покрывает только язык до стандарта C++11 (выпущен в 2008 году).
Ниже список, на мой взгляд, хороших источников, которые хорошо иметь под рукой и регулярно пробегаться глазами:
The C++ Core Guidelines - естественно на первом месте, руководство от, можно сказать, создателей, корифеев языка. Основные составители Бьярне Страуструп, Герб Саттер и, конечно, сообщество. Развивается оперативно и быстро адаптируется под новые фишки стандарта.
И стоит помнить, что есть практики, есть стандарты, но не стоит выключать свой мозг и обкладываться паттернами, бустом и прочими непотребствами, если вам нужно вывести всего лишь “Hello, world!”.