IT Insights
662 subscribers
767 photos
4 videos
3 files
1.07K links
Новости разработки, технологий, немножко науки и техники
Download Telegram
10 лет

XKCD 1425 (Tasks) сегодня исполняется десять лет. Один из величайших XKCD всех времен. Удивительно, что задача «проверить, изображена ли на фотографии птица» прошла путь от PhD-уровня до тривиально вполне простого решения (с помощью LLM со зрением, или CLIP, или ResNet+ImageNet и других).
Clean Architecture (чистая архитектура, все для проекта любого размера, принципы, мышление)

Как создать чистую архитектуру и написать чистый код? Какие есть паттерны? Как их применять? Почему все их понимают по-разному? Можно ли их представить без привязки к конкретному языку? Почему для кого-то они не работают? Uncle Bob нас обманул? Их надо использовать в маленьком проекте, скрипте или огромных энтерпрайз решениях? Как бороться со сложностью в наших проектах и делать так, чтобы затраты на внесение новых изменений были оптимальны с его ростом? Можно ли построить монолит на миллионы строк и остаться в здравом уме?

На эти и другие каверзные вопросы мы будем отвечать и рассуждать в этом видео. Будет очень много рисунков с отвязкой от конкретных имплементаций на конкретном языке, где это возможно. Где нет - приведем код. Где-то польем воды, как без этого; а то хейтерам не будет работы :) В целом тут все, что нужно знать, как применять и на какой стадии проекта. Когда их пременение дает профит, а когда сильно мешает и усложняет код. Очень много про decoupling & cohesion, на которых мы построим рассуждения почти на всех уровнях абстракции. Первые главы много и нудно говорят про мышление, которое потом красной нитью абстракций будут пронизаны все остальные главы. Не забудем про SOLID и некоторые другие принципы. Упомянем случаи, когда SOLID приводил к сложноподдерживаемой лапше, а когда делал код красивым и понятным. Где-то кринжанем немного. Все как мы любим))

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

Видео: https://www.youtube.com/watch?v=WlCDcr8JYFU
Hotwire Native

Hotwire Native - это веб-фреймворк для создания нативных мобильных приложений. Он позволяет разработчикам создавать экраны на HTML и CSS и повторно использовать их на любой платформе. Hotwire Native предоставляет разработчикам полный доступ к базовым SDK и API для iOS и Android сразу после их выхода. Это позволяет небольшим командам создавать высокофункциональные, красивые и устойчивые мобильные приложения без головной боли и сложностей, связанных с традиционной нативной разработкой.

Сайт: https://native.hotwired.dev/
Где мы находим радость?

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

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

Но под этими обсуждениями процессов и организационных проблем скрываются более личные вопросы: «Почему управление продуктом/руководство продуктом так изнурительно, так эмоционально тяжело? Может, мне стоит заняться чем-то другим (более легким)?» В более широком смысле: «Где я нахожу удовлетворение, признательность и радость в этой своеобразной работе?»

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

Статья: https://www.mironov.com/joy/
Harper

Harper - это программа для проверки грамматики английского языка. Я создал его после многих лет борьбы с недостатками конкурентов.

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

LanguageTool хорош, если у вас есть свободные гигабайты оперативной памяти и вы готовы загрузить набор данных n-грамм объемом ~16 ГБ. Помимо требований к памяти, LanguageTool показался мне слишком медленным: на вычистку даже документа среднего размера уходило несколько секунд.

Именно поэтому я создал Harper: это программа для проверки грамматики, которая соответствует моим потребностям. Он не только проверяет документ за миллисекунды и занимает меньше 1/50 части памяти LanguageTool, но и полностью приватен.

Harper даже достаточно мал для загрузки через WebAssembly.

Harper на GitHub: https://github.com/elijah-potter/harper
Трудно писать код для компьютеров, но еще труднее писать код для людей

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

А теперь давайте поднимемся на ступеньку выше. Давайте попробуем написать код для людей!

Я должен пояснить, что я имею в виду. Я говорю о коде, с которым будут взаимодействовать другие люди. Точнее, я говорю об искусстве создания радостных фреймворков, библиотек, API, SDK, DSL, встроенных DSL или, может быть, даже языков программирования.

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

Статья: https://erikbern.com/2024/09/27/its-hard-to-write-code-for-humans.html
👍2
Выгодоприобретатели блокировки Youtube

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

Статья: https://habr.com/ru/articles/847008/
Когда в автомобиле нет системы GNSS…

Кто бы мог подумать, что в современном авто аж с 4 полноценными экранами (приборка, проекция, центральный экран, экран пассажира) и настоящим андроидом на головном устройстве, производитель мог выпилить навигацию? Удивительно, но факт - Geely Monjaro (купленный у официального дилера (далее ОД)). Как потом выяснилось, Geely Atlas - в той же ситуации.. Возможно, есть и другие авто на российском рынке, которые по каким-то причинам обделены этой важной и необходимой функциональностью.

Непорядок. Надо исправлять.

Статья: https://habr.com/ru/articles/847304/
3 совета для улучшения читабельности кода

В этой статье вы узнаете 3 простых совета, которые помогут сделать вашу кодовую базу более качественной и читабельной:

• Используйте ранние возвраты
• Избегайте отрицаний в условных выражениях
• Создавайте значения и переменные как можно позже

Статья: https://apptractor.ru/info/articles/3-soveta-dlya-uluchsheniya-chitabelnosti-koda.html
Пишите больше «бесполезных» программ

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

Статья: https://apptractor.ru/info/articles/pishite-bolshe-bespoleznyh-programm.html
Как Discord сократил Websocket трафик на 40%

В Discord мы постоянно думаем о том, как улучшить наши сервисы и повысить производительность. Ведь чем быстрее работает наше приложение, тем быстрее вы сможете вернуться к своим друзьям и разговорам!

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

Статья: https://discord.com/blog/how-discord-reduced-websocket-traffic-by-40-percent
Мы вступаем на неизведанную территорию математики

Теренс Тао, профессор математики из Калифорнийского университета, которого многие считают величайшим математиком в мире, недавно опубликовал свои впечатления от модели o1 OpenAI, сравнив ее с посредственным, но не совсем некомпетентным аспирантом. Эта статья содержит отредактированную расшифровку интервью с Тао, в котором он описывает своего рода «математику промышленного масштаба» с поддержкой ИИ, в которой ИИ выступает в качестве смазки для гипотез и подходов математиков к раскрытию новой информации. Такой подход позволяет сохранить человека в центре внимания, используя сильные стороны как людей, так и машин.

Интервью: https://www.theatlantic.com/technology/archive/2024/10/terence-tao-ai-interview/680153/
👍1
Виртуализация iOS на Apple Silicon

В этой статье я рассказываю о том, как мне удалось добиться виртуализации iOS на компьютерах Apple Mac, попутно исследуя многие внутренние компоненты.

Статья: https://nickb.website/blog/virtualizing-ios-on-apple-silicon
🔥2👍1
DOS Navigator: заходим в файловый менеджер, которому исполнилось 33 года

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

Статья: https://habr.com/ru/companies/ru_mts/articles/849100/
Случайные мысли о 15 годах в программной инженерии

Я работал в разных компаниях, начиная от неизвестных стартапов и заканчивая крупными компаниями из Кремниевой долины, похожими на FAANG, а также в разных других компаниях размером между ними. Без особого порядка, просто делюсь некоторыми вещами, которые я узнал, и которые могут быть полезны другим.

Статья: https://apptractor.ru/info/articles/sluchaynye-mysli-o-15-godah-v-programmnoy-inzhenerii.html
Моя первая игра на Carimbo, моим самодельным игровым движком, для моего сына

Спустя некоторое время я решил возобновить работу над своим игровым движком.

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

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

Движок был написан на C++17, а игры - на Lua. Движок предоставляет некоторые примитивы для Lua VM, которая, в свою очередь, координирует всю игру.

Статья: https://nullonerror.org/2024/10/08/my-first-game-with-carimbo/
Как завалить проект и карьеру: 10+ вредных советов разработчику от менеджеров и сеньоров

Недавно мы в «Лаборатории Касперского» провели онлайн-митап, где технические менеджеры и разработчики из команды Mobile Dev давали вредные советы про работу и карьеру. В частности, коллеги объясняли, что нужно сделать, чтобы поджечь релиз и затормозить свое развитие, и какие рабочие сигналы игнорировать, чтобы постоянно жить в хаосе.

Статья: https://habr.com/ru/companies/kaspersky/articles/826178/
👎2
Письмо

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

Статья: https://mikefisher.substack.com/p/writing
👍3