SOL Talks
62 subscribers
38 photos
5 videos
2 files
97 links
Этот канал умер. Мой новый: @cpplastic
Download Telegram
Вот это в натуре крутая штука: αcτµαlly pδrταblε εxεcµταblε (APE). Чувишка написала либу для C, с помощью которой можно сделать кроссплатформенный бинарь. Ну то есть в натуре кроссплатформенный: ничего не надо перекомпилировать, никакой виртуальной машины в нём нет. Просто берёшь и запускаешь, и оно работает и в линуксе, и в винде, и в макоси. Хеллоу ворлд весит 16 КБ.

А ещё этот бинарь по совместительству может быть zip-архивом, в который можно заэмбеддить сорцы бинаря, например 🤯 How cool is that‽ ) С таким раскладом хеллоу ворлд становится 256 КБ, но это всё равно очень мало по современным меркам.

Короче, впечатляюще весьма. Почитайте.
👍1
SOL Talks
После выходных в самый раз написать про отдых. В Германии есть такая тема: в воскресенье нихрена не работает. Ну, кроме музеев разве что. Магазины закрыты все, дела не порешать и т.д. Сначала это сильно бесит, особенно после Украины, где можно и в три часа…
Раз уж сегодня в Германии выходной, а вчера я вообще впервые проскипал что-то написать, то сегодня кратко напишу (снова) про отдых: традиционно для себя — с точки зрения программиста и менеджера. Подписчиков у меня мало, но вдруг хоть кому-то будет полезным.

С программированием и отдыхом в общем-то всё просто в теории, но это сложно принять и начать использовать. Сколько раз я ловил себя на мысли «ну сча точно уже скомпилится, и хватит на сегодня» часа в три ночи — не сосчитать. И сидел до рассвета по итогу. Основная причина тут контекст, конечно, точнее боязнь его на следующий день потерять, а с ним и т.н. «состояние потока», дай бог Чиксентмихайи здоровьечка.

Ответственно заявляю, что это всё херня. Мозг устаёт достаточно быстро, но незаметно. Опыт показал, что программировать 2–3–4 часа в день, а потом просто забивать и заниматься своими делами или не заниматься ничем, гораздо продуктивнее, чем, тупя в экран, пытаться родить следующую строку кода после десятичасового «марафона». Меня последнее неизменно приводит к микровыгоранию, когда после работы в таком режиме в течение двух — трёх недель долгое время не хочется открывать редактор вообще, а то и комп включать.

Короче, лучше мало, но регулярно.
1
SOL Talks
Раз уж сегодня в Германии выходной, а вчера я вообще впервые проскипал что-то написать, то сегодня кратко напишу (снова) про отдых: традиционно для себя — с точки зрения программиста и менеджера. Подписчиков у меня мало, но вдруг хоть кому-то будет полезным.…
С менеджментом всё гораздо сложнее, особенно в самом начале при переходе от чисто инженерной должности в даже частично управленческую. Всё дело в том, что руководители, которые вас промоутят, часто забывают упомянуть, что задач теперь будет на порядок больше, чем физически можно успеть.

Вчера вы были программистом с понятным скоупом, и вы знали, что если его сделать, то это хорошо, а если не сделать, то плохо. Теперь вы стали менеджером, задач стало больше, и вы всё так же думаете, что если вы не сделаете их все, то работу свою вы «не тянете». Это несомненно заблуждение! Но пока вы будете идти сначала к осознанию этого, а потом к поиску и оттачиванию скиллов для решения типа приоретизации, тайм-менеджмента, делегирования и т.д., есть огромный шанс, что из-за накопленного стресса вы просто решите, что менеджмент — это не для вас.

Подробнее о причинах и средствах решения я черкану в следующий раз, а сейчас у меня один простой, но важный совет: закончили рабочий день — не думайте о работе. Обучение этому незаменимосу навыку занимает некоторое время, но вместе с очевидным рабочим днём в рамках 8 часов максимум это даёт поразительный результат.

Для справки: возможно, вам знакомо состояние, когда вы сильно воодушевлены своими задачами, постоянно думаете о работе, делаете всё с бо́льшим энтузиазмом, нежели обычно, забили на ранее привычные активности (хобби, игры, спорт, прогулки) в пользу работы и т.д. Да-да, это приносит удовольствие и тешит мыслями «наконец-то я нашёл работу по душе!». Так вот, поздравляю, это первая стадия эмоционального выгорания. Первый звоночек 🛎️, так сказать.
Я большой поклонник устройств с экранами на электронных чернилах. У меня даже есть три читалки от PocketBook. Да-да, многие говорят, мол, нах надо, если есть лопатофон/айпад, но я не понимаю, как можно всерьёз сравнивать экран, выедающий глаза, с экраном, который выглядит практически как бумага.

Большой проблемой технологии долгое время оставался refresh rate — очень уж медленно картинка обновлялась. И не то чтобы это невозможно было решить. Просто компания E-ink занимала монопольное положение на рынке благодаря патентам, поэтому в отсутствие конкуренции прогресс стоял на месте.

Изредка, впрочем, появлялись технологии типа IMOD-экранов Mirasol с нормальным рефреш-рейтом и даже какими-то цветами благодаря использованию подхода, похожего на структуру крыла бабочки, некоторые из которых, как известно, не имеют пигмента, а выглядят цветными чисто благодаря преломлению света в чешуйках. Mirasol, правда, был куплен Qualcomm, и последний их ныне, кажется, похоронил. По крайней мере в консьюмерских девайсах я их не вижу.

Но и сроки патентов E-ink, судя по всему, подошли к концу, потому что то и дело появляются новые компании, желающие оторвать кусок залежавшегося пирога.

Например, китайская компания Dasung долго тизерила монитор на основе электронных чернил и наконец вышла на Indiegogo. Это просто пушка, я считаю! Код на таком писать наверное збс. И рефреш-рейт приемлемый.

Да, 2k денег за 25''-монитор — как-то дохуевато, канеш. Но придётся брать может в будущем появятся более доступные варианты.
Пока все пишут в основном про электромобили, меня больше интересуют электромотоциклы (или электроциклы?). Ну, просто потому что мотоцикл — это вообще прикольно. Но с электро, конечно, пока что не очень зашло у индустрии.

Во-первых, есть LiveWire от Harley-Davidson. У этой конторы и так дела не оч в последнее время, а покупать сомнительной эстетики мот за 30к — тем более выбор энтузиастов. Это, судя по всему, не последняя модель, потому что недавно они анонсировали создание одноименного суббренда.

Во-вторых, есть Zero Motorcycles. У них ассортимент побольше, вид более привычный, цена доступнее и характеристики норм. Но как-то уныленько всё равно.

Есть ещё какие-то китайские нонеймы. Есть скутеры и прочие SuperSoco, но их в расчёт не берём — они маленькие и скучные.

Основной проблемой, само собой, является батарея. Yamaha, Honda, Piaggio и KTM даже в консорциум объединились, чтобы создать единый стандарт сменных батарей для мотоциклов. Это позволит не сёрбать три часа кофеёк на станции зарядки, а просто сменить аккум и поехать дальше.

И недавно Husqvarna, которая ныне принадлежит тому же KTM, к этому консорциуму присоединилась, а заодно и представила концепт электробайка E-Pilen! Чем мне нравится Husqvarna, так это дизайном. У конторы очень длинная история в мотоциклостроении, а последние их модели выглядят как офигительная комбинация классических форм в футуристичном стиле. Я даже в натуре рассматривал Vitpilen 701 для покупки, но дашборд там ублюдочный, портит весь вид.

Посмотрим, конечно, что из всего этого получится. Я бы не прочь пересесть на электро, но пока что и с ДВС норм 😅
Это тот самый Харлей. Ну такое…
Это моты от Zero. По-моему, ещё хуже предыдущего, но хотя бы не 30к (а 20 😂)
Это Husqvarna Vitpilen 701 с двигателем внутреннего сгорания.
И собсно концепт электрического E-Pilen. Очень похож на ДВС-собрата. Офигенский дизайн, я считаю!

А, да, проблемка только в том, что в нём 10 л.с. и 100 км рейндж 😂😂😂 Вообще не серьёзно.

С другой стороны, Хонда тоже с маленьких и слабых мотоциклов начинала больше чем полвека назад, и посмотрите, где она сейчас. Я думаю, это достаточно правильный и менее рискованный подход для завоевания рынка.
И правда норм:
Forwarded from VW Tooltips & works
https://www.nextptr.com/
Классный блог по С++, много современных штук обозревает
Все современные [десктопные] операционки базируются на вещах, придуманных более чем полвека назад. И в основном это, конечно, хороший фундамент — умели тогда люди подумать наперёд. Но как же бесит тема с переменными окружения — терпеть их не могу!

Чаще всего приходится сталкиваться с ними при настройке среды разработки (не обязательно IDE: даже если у вас пакован мутных скриптов и утилит — это всё ещё среда разработки, пусть и не «интегрированная»). Но бывают кейсы и в прикладном использовании.

Во-первых, эти переменные глобальные. Это как хорошо, так и плохо, но чаще последнее. Всё дело в том, что переменные окружения могут клэшиться: для одной проги вам переменную нужно выставить в какое-то значение, а для другой наоборот снять. Это, конечно, решается разными сессиями, но сильно ухудшает UX: теперь нужно помнить, что какая утилита ожидает, и работать в «правильном» энвайрменте. И если для консольного барахла терпимо ещё хоть как-то — всё равно терминал запускать — то для UI-ного говно полное. Чтобы мне запустить прогу православным дабл-кликом с выставленной в определённое значение переменной окружения, нужно городить какой-то колхоз с ярлыком на скрипт, ставить ему симпатичную иконку и т.д. Или есть способ проще?

Во-вторых, что собсно есть «правильное» окружение? Узнать это не представляется возможности ровно никак, кроме чтения документации к проге. Причём документация может быть устаревшая.

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

Вместо всего этого можно было бы просто сделать нормальные конфиг-файлы. Да хоть тот же JSON. Это решает третью проблему с ходу. Как решить вторую? Ну, при дистрибуции программ, полагающихся на конфиг, есть два подхода: давать пустой конфиг и описывать возможные флаги в доках, что полный ебланизм, конечно, либо давать максимально полный конфиг, который содержит в себе всё, что можно менять, с установленными дефолтами. Во втором случае уже не выйдет просто забыть его проапдейтить, как документацию, потому что работать-то не будет.

Как решить конфигами первую проблему? Всё-таки, если у меня 100 прог, и каждой нужно прописать одну и ту же переменную окружения, я сейчас это делаю один раз. Хотелось бы эту фичу сохранить. Ну, можно решить это скоупами, как некоторые уже делают. Их должно быть как минимум три: системный (вероятно, рид-онли), юзерский, где можно что-то заоверрайдить, и «локальный», который можно положить в любую папку и поменять для всего, что вы запускаете из неё.

Тут важный момент: часто делают так, что глобальный конфиг максимально полный, а юзерский/локальный, где вы собсно что-то переопределяете, пустой. Это супернеудобно. Я бы юзерский/локальный делал полной копией глобального, чтоб было видно, что вообще можно менять, но для тех переменных, которые не хочется оверрайдить, ставил бы какой-то inherit или типа того.

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

Теперь пара примеров моего использования переменных окружения:

Я задеплоил телеграм-бота на Heroku. Естественно, я не могу в конфиге, который туда положил, указать некоторые вещи по типу всяких токенов и credentials. Но можно в админке хероку это передавать через криптованные переменные окружения. Могла ли бы хероку делать то же с конфиг-файлами? Вообще изи: просто генерить для моего контейнера глобальный конфиг точно так же, и вуаля.

Второй пример: есть у меня две проги для редактирования видео от разных производителей. И обе на Qt, судя по dll-кам. В винде у меня стоит 125% масштаб, потому что экран небольшой, но резолюшн высокий. Так вот одна прога рисует UI в 100%-масштабе, а вторая в 200%-масштабе. Это потому что с HiDPI в Qt-приложениях никто (кроме меня 😎) нормально работать не научился, даже сами кьютишники. Ну хоть переменными окружения можно зарешать.

Такое кароч.