Такты, стеки, два колеса
1.35K subscribers
487 photos
26 videos
4 files
342 links
О технологиях, научной фантастике, программировании и схемах.

Навигация по каналу: https://t.me/clockstackwheels/3

Чат канала: https://t.me/joinchat/VNhNF1NF70dkFgUX
Download Telegram
Программисты пока могут не бояться ИИ.

В Росатоме работать с ИИ-агентами было нельзя, а вот тут в 2ГИС это даже поощряется, и компания сама оплачивает нужные доступы и лицензии. Практически любые модели на выбор, чаты, Copilot и так далее. Поэтому я попробовал выполнять прям настоящую энтерпрайзную работу при поддержке ИИ, и вот что скажу.

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

И тут начинаются проблемы.

Во-первых, в большинстве компаний предметная область нигде целиком не формализована в виде какого-то текста, который можно было бы передать в контекст. Я бы сказал, что единственный более-менее полный документ, описывающий предметную область программы — исходный код этой программы. И хорошо, если она сделана по какому-нибудь DDD, а если там хаотичные процедуры с высоким зацеплением?

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

#dev
316🤔9👍8💯4🤓1
Forwarded from Гришкин блог
Тут неистово завирусился мой твит с жалобой на современные ущербные UX-практики на примере Яндекса, и в процессе срача в комментах я, наконец, смог сформулировать своё главное требование к "нормальным" интерфейсам: интерфейс никогда не должен брать инициативу на себя. Абсолютно никогда. Не существует вообще таких случаев, когда это было бы допустимо.

Как познакомить пользователя с новыми фичами в приложении или на сайте? Нет, не модалками при запуске, как это делают, например, Яндекс и Discord, потому что модалки вылезают по инициативе самого приложения мешают, блин, им пользоваться, требуя прервать поток мыслей и подумать отдельно, как бы это убрать побыстрее, чтобы вернуться к тому, что ты хотел сделать. И даже не тултипы или поповеры, как любит делать гугл, потому что они тоже вылезают по инициативе самого приложения, и тоже часто закрывают нужные тебе элементы.

Самый оптимальный способ — интегрировать информирование об обновлениях в UX самого приложения. Например, собственно, телеграм так делает — после обновления клиента тебе приходит системное сообщение с описанием новых фич. И сторисы ещё. В соцсети это может быть плашка в ленте (прокручиваемая вместе с лентой) или уведомление (но ни в коем случае не пуш). ВК при Дурове знакомил пользователей с новыми фичами через маленькие плашки под левым меню со ссылками на страницы с подробным описанием изменений, тоже очень хорошо. Я такое даже в Smithereen сделал вот недавно.

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

Пора бы мне, всё-таки, добавить себе в резюме, что я не только программист, а ещё и специалист по user experience :)
👍3414💯3
Друг делал уборку у себя и обнаружил мою книжку. Двадцать лет у него хранилась. Именно с неё де-факто началось моё изучение программирования. Первые две части про то, как во флэше рисовать, а вот третья — о программировании на ActionScript 2 (тогда ещё), причем очень подробно, с самых основ.

До сих пор считаю убийство Флэша одним из наиболее деструктивных и вредных для человечества действий компании Apple.

Кстати, изучать программирование на движущихся графических объектах было прям очень вдохновляюще. Ничто не давало такую мотивацию, как созерцание того, как тела летают по экрану согласно заданному тобой принципу.

Еще в комплекте с Флэшем был набор демок, и, запуская каждую из них, я думал "Хочу уметь так делать!". Одна из мечт, которые сбылись полностью.

#dev
27🔥11👍3
Ровно три года назад в этот день я сделал тотально неверное предсказание относительно развития рынка гаджетов. Я тогда написал, что складные экраны — это Next Big Thing — и мы все будем ходить с ними уже совсем скоро. Потом я купил складной Huawei Mate Xs2, и проходив с ним чуть больше года, вернулся на обычный форм-фактор.

Вот мы в 2025, складные смартфоны всё ещё нишевые игрушки, а предсказание не просто не сбылось, но даже динамики в эту сторону не видно. Моя мысль была такая: на смартфонах неудобно выполнять ряд повседневных задач (например, набирать длинные тексты), неудобно делать рабочие манипуляции с документами, писать код, монтировать видео, верстать, моделировать в 3D и так далее. И для всего этого не хватает только удобного ввода/вывода, потому что и мощности железа и потенциальных возможностей софта давно уже достаточно. Складные экраны должны были стать первым шагом к появлению более удобного вывода (а про ввод было непонятно).

Но вместо улучшения UX для работы рынок продолжил уверенное движение в сторону entertainment-возможностей. Нужно отредактировать таблицу? Пошёл нахер, открывай ноутбук. Монтаж видео на смартфоне? Ты, должно быть, долбанулся. Писать код? Ха-ха-ха. Даже проблему с написанием текстов решили элегантно: подсадили народ на вертикальные видео и сторисы. В этом отношении очень забавно видеть тех, кто скринит в сторисы свои заметки, чтобы типа таким образом вести текстовый блог. Вот только при чтении нужно или держать экран пальцем (чтобы сторис не перелистнулась), или пропускать половину. Рынок и массовый потребитель недвусмысленно даёт понять, что акцент совсем на другие форматы.

В итоге даже чтобы вырезать из картинки кусочек и состыковать два оставшихся, мне нужен компьютер с клавиатурой и мышью. И, по-видимому, этот тренд с нами надолго. Да, мы уже видели случаи, когда из-за инерции какой-то подход становится мейнстримом, хотя он в основе своей неверный (например, превращение HTML+JS в средство написания полноценных программ), и за этим следуют десятилетия костылей, компромиссов и Стокгольмского синдрома.

Буду надеяться, что AR-очки, эмулирующие монитор, станут следующей попыткой достичь перемен. Сейчас вроде как эта область активно развивается, и следующее поколение таких устройств уже можно будет покупать и использовать.

#gadgets
418🔥3😢1
Мне нравится, как эволюционирует мульти-материальная 3D-печать.

Самый обычный 3D принтер подаёт через разогретое сопло пруток с пластиком и с помощью перемещения сопла наносит этот пластик слой за слоем на стол, чтобы получилась деталь. В какой-то момент стало интересно попробовать печатать более чем одним материалом в рамках одной детали. Например, чтобы моделька получилась разноцветная, но не только. Можно печатать пластиками с разными физическими свойствами: поддержки, которые растворяются в воде, вставки из более мягкого или более твёрдого пластика и так далее.

И рынок стал пробовать кучу принципиально разных подходов. Что, если сделать два сопла на одной печатной голове? Попробовали, но неактивное сопло задевало за деталь, да и больше двух уже проблематично. Помните, может, авторучку с несколькими цветами? У меня была даже в детстве ручка с десятью (!) цветами, крутейшая вещь для школьника того времени, правда неудобная жутко.

Окей, а если две печатающие головы на одной рельсе? Появилась система IDEX (independent dual extrusion), и неплохо себя показала: например, печатать два зеркальных объекта можно с той же скоростью, что и один. Но, опять же, больше двух уже не сделаешь, а рельса становится слишком тяжёлой.

В массы пошло такое решение: давайте каждый раз будем просто автоматически перезаправлять пруток. Человек ведь может между печатями вытащить пруток одного цвета и вставить другой, с другим материалом и цветом. Давайте ставить печать на паузу и делать этот процесс автоматически. Это дёшево с точки зрения конструкции (сам принтер почти не меняется), и это не ограничивает количество материалов.

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

И вот мы пришли к сменным печатным головам целиком. Всё по заветам ТРИЗ: один принтер печатает одним цветом, а что печатает двумя цветами? Два принтера. Давайте думать, как сделать два принтера в одном. Да, вообще ЧПУ-станки со сменными инструментами уже не новость, но, насколько я помню, в основном там меняется фреза. Часто ли встречаются станки, меняющие, скажем, весь шпиндель целиком?

В общем, тут у Цифровой Фабрики вышла первая серия обзоров на модификацию Voron с таким принципом. Я уже глянул, стоит в сборке 400к, что вполне ожидаемо (и даже я бы сказал дешевле ожиданий) для такого аппарата. Посмотрим, куда эта тема отправится в будущем. #gadgets

https://vkvideo.ru/video-226299087_456239121
12🔥5
Вот такой ляп в четвёртой серии «Чужой: Земля». Персонаж, который должен быть супер гением, цитирует третий закон Артура Кларка, но почему-то приписывает его Азимову. Вроде бы никакие сюжетные особенности не должны в этом месте допускать именно ошибку персонажа. Я даже переключился на оригинал, чтобы убедиться, что это не косяк переводчика.

Тогда что это? Ошибка сценариста, которую прозевал режиссёр, монтажёр, звукач и сам актёр? Причём, это же не какое-то нишевое знание. Законы Кларка вообще попса в кинофантастике, особенно третий, его очень любят в Голливуде, даже в каких-то Трансформерах был. #fiction
😁91👍1🔥1👏1
Media is too big
VIEW IN TELEGRAM
Trigger warning: скрепы.

TL;DR: Я сделал механическую игрушку на российский конкурс, и это была очень сложная инженерная задача.

Несколько месяцев назад Российское Общество «Знание» объявило конкурс «Родная Игрушка»: нужно было отправить идею какой-нибудь куклы, модельки, конструктора, настолки итд, которая впоследствии может производиться в России и обладать соответствующим культурным или научным колоритом. Было подано что-то около 22 тысяч идей, я отправил две. В следующий тур вышло несколько сотен, в том числе внезапно одна из моих — заводная подводная лодка, которая плывет не вперед, как существующие заводные игрушки для ванны, а прям погружается и всплывает. Связал я это не с военными подлодками, а с научными глубоководными аппаратами, по которым у России несколько мировых рекордов. Вы знали, например, что Кэмерон брал наши глубоководные «Мир-1/2» для съемок Титаника? А еще они первыми достигли дна Северного Ледовитого Океана.

После отбора вы попадали в этап моделирования, где нужно было сделать 3D-модель, чертежи, спецификацию, описание и так далее. Здесь я уже не обошелся без помощи профессиональных 2D и 3D художников. Заказал эскизы и моделирование внешнего вида, а сам уже в Компасе дорабатывал нужные элементы для сборки.

Моделирование отсекло ещё значимый процент участников, где-то 70-80 человек в пяти категориях вышли на этап создания прототипа. И вот тут я скажу вам, сложно передать, сколько хитрых инженерных задач пришлось решить по пути. Проект оказался одним из самых сложных (и одним из самых интересных) в моей практике. Вообще, айтишнику полезно поработать с материальным миром, изобилующим погрешностями и допущениями.

Герметичность корпуса, например, испытывает противоположные воздействия при движении в среде вверх и вниз — швы, не пропускающие при погружении, начинают пропускать при всплытии. Разница в два грамма балласта на таких масштабах влияет на плавучесть очень значительно, поэтому балласт должен легко регулироваться (я остановился на двух отсеках с ружейной дробью). Мультипликатор заводного механизма пришлось перепроектировать пять раз, попутно печатая фотополимером зубчатые колеса с модулем пол миллиметра. Сделать фотополимер цветным с устойчивостью к воде — офигенно непростая задача с не самым очевидным решением: в жидкий раствор с нужным базовым оттенком подмешивается пигмент для эпоксидных смол, и только потом печатается на чуть увеличенной засветке. Сделать полностью прозрачное стекло не вышло, но и текущая частичная прозрачность получилась не сразу. Даже у жетонов был десяток итераций, чтобы они не оказались слишком тяжелыми, и чтобы металлическое ядро для захвата магнитом не было слишком далеко от стенок. Добавьте сюда подбор шага и размеров винта, сложности работы с моделью такой формы, летнюю жару, из-за которой постоянно забивался подающий механизм принтера...

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

#gadgets #diy #hobby
10🔥111👍1714❤‍🔥3👏3🏆1
39🔥26👏20👍8❤‍🔥2
В общем, да, в комментах уже спалили, что я в итоге взял призовое место в своей номинации :) Теперь, если «Знание» сможет довести свои планы до конца, то быть тиражу игрушки. Практически год работы не впустую!

Финал очень понравился. Считаю правильным решением сделать именно выставку, а не, например, индивидуальные презентации участников перед жюри. Во-первых, на презентации всё равно всего не покажешь. Во-вторых, и это важнее, харизма и уверенный тон нередко позволяют побеждать одной презентацией, не имея вообще работоспособного продукта. На хакатонах такое сплошь и рядом. Да что там хакатоны, в Кремниевой Долине инвестиции в десятки миллионов долларов тоже частенько дают за умение на уши присесть, а потом мы получаем Humane AI Pin.

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

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

Понятное дело, что прототипы от подрядчиков оказались в итоге не подходящими для демонстрации на выставке. Они выглядели примерно как надо, но механизм не то, что не приводил к нужному результату — ось винта вообще не была соединена с ведомой шестернёй, заводной ключ отваливался, а на развесовку и герметичность я даже проверять не стал. Так и получилось, что в сложных номинациях «Конструктор», «Техническая игрушка», «Сборная модель» — если человек не занимается самоделками, не имеет личной мастерской, не договорился ни с каким бизнесом на мелкий тираж, то представить хороший прототип он не мог. В каком-то смысле то, что задумывалось, как конкурс идей, превратилось в конкурс мастеров. Хотя, конкретно я видел его конкурсом мастеров с самого начала. Никто не воплотит вашу идею и ваше детище лучше, чем вы сами!
5🔥3913👍12
На финале при этом быстро решались все проблемы и реализовывались хотелки. Организаторы профинансировали всем билеты и гостиницу (хорошую), а на месте готовы были помочь с чем угодно. У меня игрушка для ванн, я запросил аквариум, и его действительно купили и поставили. Не будь воды, демонстрировать лодку было бы бесполезно, а так и эксперты увидели, и дети с удовольствием поиграли. Всего представили, кажется, 59 стендов в пяти номинациях, но возможности посмотреть остальные у меня, к сожалению, не было. День был очень насыщенный, внимания прям много. Невероятно понравился состав экспертов: умные и приятные люди, преподаватели, профессора, деятели образовательной и воспитательной сферы, представители производств. Разных возрастов, у многих свои дети. Кто-то прям говорил, что его/её ребёнок точно хотел бы такую игрушку. Оценивали все аспекты: одни смотрели на дизайн, другие на интересность, третьи на физические параметры или экономику. Понравилась беседа с женщиной инженером-конструктором, прям обсудили близкие темы.

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

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

Если доведут до тиража, напишу тоже об этом. И вообще было бы круто посмотреть изнутри на какое-нибудь такое производство. Очень надеюсь на экскурсию на завод и вообще участие в процессе.

#gadgets #diy #hobby
5👍66🔥398🥰4
Выступил на DotNext сегодня, уже второй раз в жизни. Вообще, во времена хайпа ML и нейросетей было любопытно подать доклад, который рассказывает о том, как обойтись БЕЗ нейросетей и сделать всё на привычных алгоритмах. Видимо, не один я устал от ИИ, народу было достаточно, прошло вроде хорошо.

Сходил на четыре других доклада, и, пожалуй, с точки зрения докладов этот год лично для меня один из лучших, потому что два прям очень зашли: увидел то, что хотел по темам, всеобъемлюще, с ответами на возникающие в процессе вопросы. Вообще, нередко авторы боятся показывать совсем азы и тривиальные вещи — возможно, чтобы доклад не казался слишком простым. Но вот мне при введении в любую новую технологию или новый подход часто не хватает как раз основ. Чтоб прям с фундамента разжевали. И тут наконец-то такое было.

А вот со стендами дела похуже, имхо — из известного бигтеха только Озон и Контур. Завтра второй день, пойду подробнее посмотрю, что там. И да, снова сама конференция не предложила никакие тематические наклейки, и непонятно, что клеить на ноутбук :)

#dev
536👍11🔥9🥰1
Несколько лет назад на конференции TechTrain я впервые сыграл в Code in the Dark. Два разработчика параллельно садятся за компьютеры, запускается таймер. Дается картинка, которую нужно сверстать в HTML, но важный нюанс: ты не видишь результат до самого конца, пока не отправишь своё решение. Вёрстка вслепую. Если где-то поехало, можешь вообще всё сломать, но не узнаешь об этом. Мне очень понравилось, но я никак не мог придумать, как бы подобное соревнование выглядело для бэкенд-разработчиков.

А тут вот на стенде Контура была версия как раз для бэкендеров: даётся набор данных, отражающий валидные вводы и выводы для неизвестных юнит-тестов, и нужно закодить функцию, которая пройдёт эти тесты.

Сыграл дважды, один раз догадался о принципе, но не смог реализовать (видеть вывод твоей функции нельзя, вслепую я не учёл важный краевой случай), а второй раз решил с небольшой подсказкой от организаторов. В общем, это как задача с литкода уровня Easy, но саму задачу ты не видишь, только правильные кейсы.

Мне понравилось. Нужно на вечеринках с коллегами играть :)

#dev
14🔥8👍3🤔1
Вернор Виндж — «Глубина в небе».

Этого автора мне посоветовали очень давно, но смущали противоречивые отзывы. И, надо сказать, природа этих отзывов ясна: на самом деле первую треть книги я постоянно путался в событиях и персонажах. Возможно, это проблема перевода на русский, а, может, автор и сам так пишет, но местами сюжет идёт таким галопом, что за ним сложно поспевать. Иронично, что хронологической основой повествования является способность разумных существ безопасно ложиться в анабиоз на практически любой промежуток времени (и таким образом перескакивать его).

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

Но это просто базис местной вселенной. Сам сюжет сосредоточен вокруг попытки установки контакта с другой расой — разумных пауков, находящихся на уровне развития примерно нашей середины 20-го века. У людей при этом есть серьёзнейший внутренний конфликт между двумя группами. Повествование переходит от людей к паукам и обратно. Интересный эффект: пауки воспринимаются ближе к читателю, потому что их цивилизация похожа на известный нам реальный мир, а люди выглядят настоящими инопланетянами со своими кораблями и нестандартным обществом.

Из крутых идей стоит упомянуть особый вирус, который отключает у человека амбиции, эмоции и личностные стремления, но оставляет концентрацию, профессиональные навыки и тягу к деятельности. Таких людей можно толпами сажать решать любые задачи вместо компьютеров (если точнее, то вместе с компьютерами — аналога ИИ в романе нет совсем). Вопросу о том, в какой степени это является рабством, посвящена изрядная часть рассуждений автора устами героев. Да и в остальном Виндж прям очень богат на идеи. Как будет вести себя озеро в сверхнизкой гравитации? Почему рой нанороботов, распылённых в атмосфере, кардинально меняет ведение беседы? Какими проблемами обладает компьютерная программа, которую дополняют функциями уже тысячу лет (эта тема мне особенно понравилась)?

Я бы сказал, что в хорошем смысле уставал от многообразия мыслей и событий в этой книге, поэтому слушал её дольше обычного. Но, как закончил, сразу купил другой роман автора (о нём тоже будет, что рассказать). Так что советовать однозначно могу, но чтиво не назвать лёгким и развлекательным, я вас предупредил.

#fiction
1🔥219👍6🤝1