Грязный код
Этим эссе я также не пытаюсь убедить вас писать грязные программы. Скорее, я хочу показать, что таким образом можно писать достаточно хорошее программное обеспечение, и, надеюсь, предложить некоторый баланс в обсуждении методологии программного обеспечения.
Три «грязные» практики кодирования, которые я собираюсь обсудить в этом эссе, таковы:
• (Некоторые) Большие функции - это хорошо, на самом деле
• Предпочитайте интеграционные тесты юнит-тестам
• Сокращайте количество классов/интерфейсов/концептов
Статья: https://htmx.org/essays/codin-dirty/
Этим эссе я также не пытаюсь убедить вас писать грязные программы. Скорее, я хочу показать, что таким образом можно писать достаточно хорошее программное обеспечение, и, надеюсь, предложить некоторый баланс в обсуждении методологии программного обеспечения.
Три «грязные» практики кодирования, которые я собираюсь обсудить в этом эссе, таковы:
• (Некоторые) Большие функции - это хорошо, на самом деле
• Предпочитайте интеграционные тесты юнит-тестам
• Сокращайте количество классов/интерфейсов/концептов
Статья: https://htmx.org/essays/codin-dirty/
👍1👎1
Как масштабировать большую кодовую базу
Масштабирование кодовой базы - неотъемлемая и неизбежная часть развития софтверной компании.
Возможно, вы слышали множество терминов, которые используются для ответа на этот вопрос: монолит, монорепо, микрофронтенд, федерация модулей и т. д.
Мы в Vercel помогли тысячам крупных организаций развить их кодовые базы, и у нас есть свое мнение об оптимальном способе создания программного обеспечения.
В этом посте мы расскажем о типичных проблемах, возникающих при масштабировании кодовой базы с течением времени, о полезных инструментах с открытым исходным кодом, которые можно использовать, а также о лучших практиках и архитектурных паттернах, которым следует следовать.
Статья: https://vercel.com/blog/how-to-scale-a-large-codebase
Масштабирование кодовой базы - неотъемлемая и неизбежная часть развития софтверной компании.
Возможно, вы слышали множество терминов, которые используются для ответа на этот вопрос: монолит, монорепо, микрофронтенд, федерация модулей и т. д.
Мы в Vercel помогли тысячам крупных организаций развить их кодовые базы, и у нас есть свое мнение об оптимальном способе создания программного обеспечения.
В этом посте мы расскажем о типичных проблемах, возникающих при масштабировании кодовой базы с течением времени, о полезных инструментах с открытым исходным кодом, которые можно использовать, а также о лучших практиках и архитектурных паттернах, которым следует следовать.
Статья: https://vercel.com/blog/how-to-scale-a-large-codebase
Lights Out: запись с веб-камеры ноутбука без индикации
В этом репозитории собраны инструменты, позволяющие получить программный контроль над светодиодом веб-камеры на ThinkPad X230 без физического доступа к ноутбуку. Они были созданы в качестве практической демонстрации того, что вредоносное ПО может записывать видео через веб-камеру без индикации светодиода.
Это работает через перепрошивку веб-камеры по USB (веб-камера X230 подключена по USB внутри), чтобы добавить возможность произвольно управлять светодиодом. Этот подход, вероятно, затрагивает и многие другие ноутбуки, поскольку подключение веб-камеры по USB и возможность ее перепрошивки - общая схема для всех производителей ноутбуков.
Репозиторий: https://github.com/xairy/lights-out
В этом репозитории собраны инструменты, позволяющие получить программный контроль над светодиодом веб-камеры на ThinkPad X230 без физического доступа к ноутбуку. Они были созданы в качестве практической демонстрации того, что вредоносное ПО может записывать видео через веб-камеру без индикации светодиода.
Это работает через перепрошивку веб-камеры по USB (веб-камера X230 подключена по USB внутри), чтобы добавить возможность произвольно управлять светодиодом. Этот подход, вероятно, затрагивает и многие другие ноутбуки, поскольку подключение веб-камеры по USB и возможность ее перепрошивки - общая схема для всех производителей ноутбуков.
Репозиторий: https://github.com/xairy/lights-out
GitHub
GitHub - xairy/lights-out: Tools for controlling webcam LED on ThinkPad X230
Tools for controlling webcam LED on ThinkPad X230. Contribute to xairy/lights-out development by creating an account on GitHub.
This media is not supported in your browser
VIEW IN TELEGRAM
Tether - редактор кода со спецэффектами
Внутри:
• Ускоренный на GPU рендеринг текста с помощью Metal + CoreText
• Плавный и эффектный рендеринг текста со сглаживанием
• Поддержка шрифтовых лигатур
• Связки клавиш Vim / модальное редактирование
• Подсветка синтаксиса + инкрементный синтаксический разбор с помощью tree-sitter
Репозиторий: https://github.com/zackradisic/tether
Внутри:
• Ускоренный на GPU рендеринг текста с помощью Metal + CoreText
• Плавный и эффектный рендеринг текста со сглаживанием
• Поддержка шрифтовых лигатур
• Связки клавиш Vim / модальное редактирование
• Подсветка синтаксиса + инкрементный синтаксический разбор с помощью tree-sitter
Репозиторий: https://github.com/zackradisic/tether
🔥1😐1
Почему не стоит указывать сертификаты в своем профиле
Мы также увидели, что в целом сертификаты несут негативный сигнал и что эти результаты сохраняются даже на все более благоприятном для работодателей рынке труда в 2023 году (другими словами, хорошие кандидаты не стали вдруг указывать сертификаты в своих профилях, чтобы их заметили).
Как мы и ожидали, эти реалии создают неудачную петлю обратной связи. Рекрутеры, как правило, превыше всего ценят карьеру и образование, а значит, они реже общаются с нетрадиционными кандидатами. Когда они видят профили нетрадиционных кандидатов с сертификатами, то, поскольку они все равно не собирались с ними разговаривать, со временем у них возникает негативная ассоциация с этими сертификатами.
Более того, учитывая, что люди, указывающие сертификаты, чаще всего показывают худшие результаты на собеседованиях, когда рекрутеры выбирают породистых кандидатов, имеющих сертификат, и те показывают худшие результаты, эта негативная ассоциация только усиливается.
Статья: https://apptractor.ru/learn/pochemu-ne-stoit-ukazyvat-sertifikaty-v-svoem-profile.html
Мы также увидели, что в целом сертификаты несут негативный сигнал и что эти результаты сохраняются даже на все более благоприятном для работодателей рынке труда в 2023 году (другими словами, хорошие кандидаты не стали вдруг указывать сертификаты в своих профилях, чтобы их заметили).
Как мы и ожидали, эти реалии создают неудачную петлю обратной связи. Рекрутеры, как правило, превыше всего ценят карьеру и образование, а значит, они реже общаются с нетрадиционными кандидатами. Когда они видят профили нетрадиционных кандидатов с сертификатами, то, поскольку они все равно не собирались с ними разговаривать, со временем у них возникает негативная ассоциация с этими сертификатами.
Более того, учитывая, что люди, указывающие сертификаты, чаще всего показывают худшие результаты на собеседованиях, когда рекрутеры выбирают породистых кандидатов, имеющих сертификат, и те показывают худшие результаты, эта негативная ассоциация только усиливается.
Статья: https://apptractor.ru/learn/pochemu-ne-stoit-ukazyvat-sertifikaty-v-svoem-profile.html
👍1
Тримодальный характер зарплат разработчиков
Эта статья, написанная в 2021 году, хоть и фокусируется на Европе, а конкретно на Нидерландах, на самом деле очень актуальна и по сей день и для других стран, в том числе и для России (за некоторыми исключениями). Она очень хорошо, например, отвечает на классические вопросы к статьям со статистикой зарплат вида "Где вы такие зарплаты находите, никто из моих знакомых столько не получает!" и вполне объясняет, почему большинство работников мало заметили уход международных компаний с российского рынка.
Статья: https://habr.com/ru/articles/862758/
Эта статья, написанная в 2021 году, хоть и фокусируется на Европе, а конкретно на Нидерландах, на самом деле очень актуальна и по сей день и для других стран, в том числе и для России (за некоторыми исключениями). Она очень хорошо, например, отвечает на классические вопросы к статьям со статистикой зарплат вида "Где вы такие зарплаты находите, никто из моих знакомых столько не получает!" и вполне объясняет, почему большинство работников мало заметили уход международных компаний с российского рынка.
Статья: https://habr.com/ru/articles/862758/
Как Google 15 лет создавала культуру сокрытия информации
По словам Google, чтобы минимизировать шансы того, что при рассмотрении иска могут всплыть потенциально компрометирующие комментарии, сотрудники должны воздержаться от необоснованных рассуждений и сарказма, а также «тщательно продумывать» свои слова при общении на «горячие темы». «Не оставляйте комментариев, пока вам не будут известны все факты».
Изменились и технологии внутри компании. В инструменте для мгновенного обмена сообщениями была включена настройка «адвокатская тайна». Неосторожно оброненная фраза удалялась уже на следующий день.
Статья: https://habr.com/ru/companies/ruvds/articles/863004/
По словам Google, чтобы минимизировать шансы того, что при рассмотрении иска могут всплыть потенциально компрометирующие комментарии, сотрудники должны воздержаться от необоснованных рассуждений и сарказма, а также «тщательно продумывать» свои слова при общении на «горячие темы». «Не оставляйте комментариев, пока вам не будут известны все факты».
Изменились и технологии внутри компании. В инструменте для мгновенного обмена сообщениями была включена настройка «адвокатская тайна». Неосторожно оброненная фраза удалялась уже на следующий день.
Статья: https://habr.com/ru/companies/ruvds/articles/863004/
4 способа проводить совещания, которые работают
Если вы проводите весь день на совещаниях:
• Вы теряете время.
• Вы не можете принимать решения.
• Вы не знаете, как делегировать полномочия.
• Вы занимаетесь самолюбованием.
• Вы тратите свой день на перекладывание работы на других.
«
... человек либо митингует, либо работает. Нельзя делать и то, и другое одновременно"
Статья: https://leadershipfreak.blog/2024/11/19/4-ways-to-lead-meetings-that-work/
Если вы проводите весь день на совещаниях:
• Вы теряете время.
• Вы не можете принимать решения.
• Вы не знаете, как делегировать полномочия.
• Вы занимаетесь самолюбованием.
• Вы тратите свой день на перекладывание работы на других.
«
... человек либо митингует, либо работает. Нельзя делать и то, и другое одновременно"
Статья: https://leadershipfreak.blog/2024/11/19/4-ways-to-lead-meetings-that-work/
Программисты ничего не знают (и это нормально)
Почему даже синьоры постоянно что-то учат, никто не может точно оценить задачи, а 80% банковских транзакций обрабатывается сервисами на устаревшем языке программирования?
Статья: https://habr.com/ru/articles/863814/
Почему даже синьоры постоянно что-то учат, никто не может точно оценить задачи, а 80% банковских транзакций обрабатывается сервисами на устаревшем языке программирования?
Статья: https://habr.com/ru/articles/863814/
Проблема 70%: суровые истины о программировании с помощью ИИ
Проведя последние несколько лет погруженным в разработку с помощью ИИ, я заметил интересную закономерность. В то время как инженеры сообщают, что с помощью ИИ они стали значительно продуктивнее, реальное программное обеспечение, которое мы используем ежедневно, не кажется заметно лучше. Что же здесь происходит?
Кажется, я знаю, почему, и ответ раскрывает некоторые фундаментальные истины о разработке программного обеспечения, с которыми нам необходимо считаться. Позвольте мне поделиться тем, что я узнал.
Статья: https://addyo.substack.com/p/the-70-problem-hard-truths-about
Проведя последние несколько лет погруженным в разработку с помощью ИИ, я заметил интересную закономерность. В то время как инженеры сообщают, что с помощью ИИ они стали значительно продуктивнее, реальное программное обеспечение, которое мы используем ежедневно, не кажется заметно лучше. Что же здесь происходит?
Кажется, я знаю, почему, и ответ раскрывает некоторые фундаментальные истины о разработке программного обеспечения, с которыми нам необходимо считаться. Позвольте мне поделиться тем, что я узнал.
Статья: https://addyo.substack.com/p/the-70-problem-hard-truths-about
IT Insights
Проблема 70%: суровые истины о программировании с помощью ИИ Проведя последние несколько лет погруженным в разработку с помощью ИИ, я заметил интересную закономерность. В то время как инженеры сообщают, что с помощью ИИ они стали значительно продуктивнее…
Мой перевод: https://apptractor.ru/info/articles/problema-70-surovye-istiny-o-programmirovanii-s-pomoschyu-ii.html
ИИ не делает наше программное обеспечение кардинально лучше, потому что его качество (возможно) никогда не ограничивалось в первую очередь скоростью программирования. Трудные части разработки программного обеспечения — понимание требований, проектирование поддерживаемых систем, работа с нестандартными ситуациями, обеспечение безопасности и производительности — по-прежнему требуют человеческой оценки.
Что делает ИИ, так это позволяет нам быстрее проводить итерации и эксперименты, что потенциально может привести к лучшим решениям благодаря более быстрым исследованиям. Но только если мы сохраним инженерную дисциплину и будем использовать ИИ как инструмент, а не как замену хорошим практикам разработки ПО. Помните: цель не в том, чтобы быстрее написать больше кода. Она заключается в том, чтобы создавать лучшее программное обеспечение. При разумном использовании ИИ может помочь нам в этом. Но мы сами должны знать, что значит «лучшее» и как этого добиться.
ИИ не делает наше программное обеспечение кардинально лучше, потому что его качество (возможно) никогда не ограничивалось в первую очередь скоростью программирования. Трудные части разработки программного обеспечения — понимание требований, проектирование поддерживаемых систем, работа с нестандартными ситуациями, обеспечение безопасности и производительности — по-прежнему требуют человеческой оценки.
Что делает ИИ, так это позволяет нам быстрее проводить итерации и эксперименты, что потенциально может привести к лучшим решениям благодаря более быстрым исследованиям. Но только если мы сохраним инженерную дисциплину и будем использовать ИИ как инструмент, а не как замену хорошим практикам разработки ПО. Помните: цель не в том, чтобы быстрее написать больше кода. Она заключается в том, чтобы создавать лучшее программное обеспечение. При разумном использовании ИИ может помочь нам в этом. Но мы сами должны знать, что значит «лучшее» и как этого добиться.
AppTractor
Проблема 70%: суровые истины о программировании с помощью ИИ
ИИ не делает наше программное обеспечение кардинально лучше, потому что его качество (возможно) никогда не ограничивалось в первую очередь скоростью программирования.
Теперь я могу запустить модель класса GPT-4 на своем ноутбуке
Новая Llama 3.3 70B от Meta - это настоящая Большая языковая модель класса GPT-4, которая работает на моем ноутбуке.
Всего 20 месяцев назад я был поражен, увидев, что на этой же машине работает модель класса GPT-3. За последние два года качество моделей, работающих на потребительском оборудовании, значительно улучшилось.
Мой ноутбук - это 64-гигабайтный MacBook Pro M2, который я получил в январе 2023 года - через два месяца после первого выпуска ChatGPT. Во всех моих экспериментах по запуску LLM на ноутбуке использовалась эта же машина.
Статья: https://simonwillison.net/2024/Dec/9/llama-33-70b/
Новая Llama 3.3 70B от Meta - это настоящая Большая языковая модель класса GPT-4, которая работает на моем ноутбуке.
Всего 20 месяцев назад я был поражен, увидев, что на этой же машине работает модель класса GPT-3. За последние два года качество моделей, работающих на потребительском оборудовании, значительно улучшилось.
Мой ноутбук - это 64-гигабайтный MacBook Pro M2, который я получил в январе 2023 года - через два месяца после первого выпуска ChatGPT. Во всех моих экспериментах по запуску LLM на ноутбуке использовалась эта же машина.
Статья: https://simonwillison.net/2024/Dec/9/llama-33-70b/
Simon Willison’s Weblog
I can now run a GPT-4 class model on my laptop
Meta’s new Llama 3.3 70B is a genuinely GPT-4 class Large Language Model that runs on my laptop. Just 20 months ago I was amazed to see something that felt …
RAG с нуля
LLM обучаются на большом, но фиксированном корпусе данных, что ограничивает их способность рассуждать о частной или недавней информации. Тонкая настройка (Fine-tuning) - один из способов смягчить эту проблему, но зачастую она не очень хорошо подходит для фактического запоминания и может быть дорогостоящей. Популярным и мощным механизмом расширения базы знаний LLM стала генерация с расширением поиска (Retrieval augmented generation, RAG), использующая документы, полученные из внешнего источника данных, для обоснования генерации LLM с помощью внутриконтекстного обучения.
В этом репозитории есть блокноты, а на YouTube есть плейлист, в которых с нуля рассказывается о RAG, начиная с основ индексирования, поиска и генерации.
GitHub: https://github.com/langchain-ai/rag-from-scratch
LLM обучаются на большом, но фиксированном корпусе данных, что ограничивает их способность рассуждать о частной или недавней информации. Тонкая настройка (Fine-tuning) - один из способов смягчить эту проблему, но зачастую она не очень хорошо подходит для фактического запоминания и может быть дорогостоящей. Популярным и мощным механизмом расширения базы знаний LLM стала генерация с расширением поиска (Retrieval augmented generation, RAG), использующая документы, полученные из внешнего источника данных, для обоснования генерации LLM с помощью внутриконтекстного обучения.
В этом репозитории есть блокноты, а на YouTube есть плейлист, в которых с нуля рассказывается о RAG, начиная с основ индексирования, поиска и генерации.
GitHub: https://github.com/langchain-ai/rag-from-scratch
T-Lite и T-Pro – открытые русскоязычные опенсорс-модели на 7 и на 32 млрд параметров
Сегодня мы открываем две большие языковые модели — T-Lite и T-Pro, над которыми работали последние полгода, их можно скачать с huggingface. Они распространяются под лицензией Apache 2.0. Для адаптации моделей под бизнес-кейсы рекомендуем воспользоваться нашей библиотекой turbo-alignment с инструментами для полного цикла работы над LLM.
Статья: https://habr.com/ru/companies/tbank/articles/865582/
Сегодня мы открываем две большие языковые модели — T-Lite и T-Pro, над которыми работали последние полгода, их можно скачать с huggingface. Они распространяются под лицензией Apache 2.0. Для адаптации моделей под бизнес-кейсы рекомендуем воспользоваться нашей библиотекой turbo-alignment с инструментами для полного цикла работы над LLM.
Статья: https://habr.com/ru/companies/tbank/articles/865582/
Смерть упорных разработчиков
Цепочка, позволяющая младшим разработчикам вырасти в старших, разрушена или, по крайней мере, повреждена. Многие задачи теперь можно автоматизировать, поэтому компаниям не нужно так много младших сотрудников. Разработчики, которые не примут программирование на основе чата в качестве основного способа работы, останутся позади.
Статья: https://sourcegraph.com/blog/the-death-of-the-stubborn-developer
Цепочка, позволяющая младшим разработчикам вырасти в старших, разрушена или, по крайней мере, повреждена. Многие задачи теперь можно автоматизировать, поэтому компаниям не нужно так много младших сотрудников. Разработчики, которые не примут программирование на основе чата в качестве основного способа работы, останутся позади.
Статья: https://sourcegraph.com/blog/the-death-of-the-stubborn-developer
Sourcegraph
The death of the stubborn developer | Sourcegraph Blog
How stubborn developers are getting left behind by refusing to adopt chat-oriented programming (CHOP) as their primary development approach.
Малинка в деле: пять креативных проектов на базе Raspberry Pi
Одноплатные компьютеры от Raspberry Pi Foundation и других производителей стали незаменимым инструментом как для любительских экспериментов, так и для профессиональной разработки и промышленного использования. За годы их существования энтузиасты и инженеры воплотили в жизнь тысячи уникальных идей. Сегодня мы расскажем о свеженьких проектах, которые по праву заслуживают вашего внимания.
Статья: https://habr.com/ru/companies/selectel/articles/865986/
Одноплатные компьютеры от Raspberry Pi Foundation и других производителей стали незаменимым инструментом как для любительских экспериментов, так и для профессиональной разработки и промышленного использования. За годы их существования энтузиасты и инженеры воплотили в жизнь тысячи уникальных идей. Сегодня мы расскажем о свеженьких проектах, которые по праву заслуживают вашего внимания.
Статья: https://habr.com/ru/companies/selectel/articles/865986/
🥴1
13 советов для начинающих разработчиков, которые уже прочитали все остальные советы
Недавно кто-то спросил меня, есть ли у меня советы для начинающих программистов. Сначала я подумал, что это глупый вопрос. Я начал работать всего десять лет назад; многие из подписчиков моей рассылки занимаются программированием дольше, чем я!
Потом я прочитал несколько статей «Советы начинающему программисту» и подумал, что некоторые вещи в них упущены. Итак, вот тринадцать советов для начинающих программистов.
Статья: https://apptractor.ru/info/articles/13-sovetov-dlya-nachinayuschih-razrabotchikov-kotorye-uzhe-prochitali-vse-ostalnye-sovety.html
Недавно кто-то спросил меня, есть ли у меня советы для начинающих программистов. Сначала я подумал, что это глупый вопрос. Я начал работать всего десять лет назад; многие из подписчиков моей рассылки занимаются программированием дольше, чем я!
Потом я прочитал несколько статей «Советы начинающему программисту» и подумал, что некоторые вещи в них упущены. Итак, вот тринадцать советов для начинающих программистов.
Статья: https://apptractor.ru/info/articles/13-sovetov-dlya-nachinayuschih-razrabotchikov-kotorye-uzhe-prochitali-vse-ostalnye-sovety.html