
Приветствую, коллеги! Меня зовут ProstoKirReal, и сегодня мы продолжим наше путешествие по модели OSI, обсудив сетевой уровень (L3). Этот уровень отвечает за маршрутизацию данных между различными сетями.
Software Engineer, Bachelor of Computer Science
Отображение текстовой информации — наверное, самая базовая и важная часть многих Android-приложений. В данной статье пойдет речь о TextView. Каждый разработчик, начиная с «Hello World», постоянно сталкивается с этим элементом пользовательского интерфейса. Периодически в работе с текстом приходится задумываться о реализации различных дизайнерских решений или улучшении производительности при отрисовке экрана.
Я расскажу об устройстве TextView и некоторых тонкостях работы с ним. Основные советы были взяты из докладов прошедших Google I/O.
LLM и ASCII art - казалось бы взаимоисключающие понятия. Какое отношение лингвистическая модель может иметь к графическим образам?
Модель не "видела" никаких изображений, как слепой от рождения человек, и не обучалась обрабатывать информацию этого типа. В ее модели мира не может быть визуальных образов в принципе. Если уж сравнивать модель со слепым человеком, то корректнее было бы сказать, что этот человек еще и совершенно глухой и полностью парализованный, не способный получать ни звуковую ни тактильно-осязательную информацию. Зато у него есть фантастический нейро-интерфейс, с помощью которого ему прямо в мозг загрузили мегатонны текстовой информации. Может ли у такого человека сформироваться картина мира с визуальными образами как-бы сама собой или как некий побочный результат?
Меня зовут Егор Марюшко, я архитектор решений в «Ростелеком Информационные Технологии». Год назад на конференции "Игра в анализ" я подробно рассказывал о значимости и особенностях трассировки требований в проекте. Статья написана по мотивам моего доклада и поможет быстро разобраться в вопросе трассировки требований и внедрении её в повседневную работу. Послушать и посмотреть сам доклад можно тут.
В жизни многих программистов наступает момент, когда хочется понять как же работает процессор на самом деле, а не в абстрактных схемах высокоуровневых компонентов. У меня возник такой вопрос некоторое время назад, но все материалы которые я находил по этой теме либо были очень специализированными, требующими хорошего понимания электротехники и опыта работы со схемами дискретной логики, либо общие описания, пропускающие многие этапы, и оставляющие лишь смутное представление о том как же всё-таки тысячи транзисторов должны превратиться в работающий процессор.
Для этого я решил написать статью собирающую мой опыт попыток разобраться в этом вопросе, понятным языком, в то же время не пропуская ничего, чтобы после прочтения читатель мог воссоздать процессор из простейших элементов.
В данной статьей мы пройдем путь создания процессора от единичного транзистора до работающего 8-битного процессора, и напишем свой ассемблер для него.
В прошлой статье я рассказал, как использование серверов времени (NTP и NTS) решает проблему манипуляцией временем транзакции в блокчейне Hyperledger Fabric (CVE-2024-45244). И к каким финансовым последствиям приводит атака на примере концепта вымышленного уязвимого смарт-контракта, имитирующего цифровой финансовый актив. Концепт-код для защиты от атаки был написан на Go. Поэтому он не применим для смарт-контрактов Hyperledger Fabric, написанных на других языках (Java, JavaScript, TypeScript). Поэтому, я решил сделать Оракул времени: смарт-контракт, который будет источником времени для других смарт-контрактов. Это позволит использовать оракул времени смарт-контрактами, написанными на других языках. Оракул времени доступен в исходном коде.
В этой статье убедимся, что оракул устойчив к атаке "человек посередине" (при использовании NTS). Для атаки будем использовать утилиты netsed (для подмены не зашифрованных данных) и mitmproxy (для подмены сертификата TLS). А также убедимся, что данные протокола NTP подменить возможно. Читатели, которые не знакомы с блокчейном Hyperledger Fabric, могут представить, что оракул времени - это некий API-сервис, возвращающий текущее время (посредник между клиентом и NTP/NTS сервером).
В мире, где информация постоянно обновляется, а найти что-то можно с молниеносной скоростью, встаёт вопрос: а нужны ли вообще книги для программистов? Ведь в интернете есть множество бесплатных обучающих материалов, туториалов, видеоинструкций и чатов на базе генеративного искусственного интеллекта, которые, казалось бы, могут полностью заменить традиционные источники знаний — книги.
Однако, на мой взгляд, книги всё ещё остаются важным и незаменимым инструментом для изучения программирования, особенно для новичков. В этой статье я, Бартенев Евгений, автор и техлид курсов «Python-разработчик» в Яндекс Практикуме, расскажу, почему я так считаю. А также поделюсь своей подборкой книг как для начинающих разработчиков, так и для тех, кто уже пишет код не первый день.
Чемпионат Европы 2024 года громко называют чуть ли не самым технологичным футбольным турниром в истории. Причина простая: для ускорения игры и минимизации ошибок арбитров организаторы использовали искусственный интеллект, а также другие современные разработки.
Я бросил себе вызов: симулировать 1000000 (миллион) частиц на чистом Javascript на телефоне, используя только CPU и добившись 60 FPS.
Поехали.
Задача не особо сложна, если выполнять всю работу на GPU, но правило гласит, что нужно пользоваться только CPU, при этом работая на JS, так что никакого WASM.
В конце февраля на Бали прошел фестиваль Lampu, организованный по принципам знаменитого Burning Man. По его традиции, участники самостоятельно создают инсталляции и арт-объекты.
Мы с друзьями из кемпа 19:19, вдохновившись идеей католических исповедален, придумали сделать свой AI Confession Room, где любой желающий мог бы поговорить с искусственным интеллектом.
AI-хайп, честно говоря, слегка задолбал. Кажется, что все вокруг только и делают, что оптимизируют свою работу с помощью AI и в ус не дуют. Все эти возвышенные презентации про amazing и awesome инновации от людей, которые слабо себе представляют, чем энкодер отличается от декодера и почему трансформеры в нейросетях не сражаются с автоботами, мало того, что набивают оскомину и отнимают время, так еще и погружают в грёзы бизнес-руководителей и создают крайне завышенные ожидания.
Вспоминаю, как на одном обмене опытом со стартапами они чётко делились на 2 группы: первая – с менеджерами про невероятные инновации и всеобщее благоденствие, а вторая – с инженерами, которые с красными глазами рассказывали, что так и не смогли победить галлюцинации, что окно контекста заканчивается очень быстро и что для того, чтобы на нормальном продакшн использовании вся эта магия заработала, нужны огромные инвестиции в инфраструктуру, оркестратор, агенты, векторные базы, кратковременную и долговременную память и так далее. Поэтому хотелось собрать в одном месте понятное руководство и для разработчиков, пробующих LLM-ки для своих задач, и для людей из бизнеса, чтобы погрузить в контекст.
Если вбить слово «С# разработка» в поисковую строку, можно найти огромное количество курсов по данному направлению. Проблема в том, что все курсы являются платными и, как правило, имеют ценник в несколько десятков тысяч рублей.
Чтобы разбавить засилие платных курсов, мы подготовили для вас программу обучения «C#-разработчик с нуля», которая состоит только из бесплатных материалов.
Всем привет! Меня зовут Артём и я backend-разработчик компании SimbirSoft. На протяжении восьми лет я работаю на Node.js. Сегодня хочу поделиться опытом поиска утечек памяти при gRPC-вызовах в Node.js + Nest.js. В частности, речь пойдет об отладке утечки памяти при взаимодействии между микросервисами. Статья будет полезна backend-разработчикам, которые работают с Node.js и gRPC.
Несмотря на то, что в интернете много материалов про поиск утечек памяти, все реальные примеры сводятся к устранению искусственного глобального массива. Поэтому я решил рассказать о своем опыте.
Одной из задач, которую ставил перед нами клиент, был поиск и устранение утечки памяти при работе микросервисов. Задача была открыта уже давно, но не было четкого понимания, как ее решать. Судя по описанию, было несколько API, при вызове которых отделы DevOps и QA наблюдали сильный рост памяти при мониторинге системы и тестировании соответственно. В дополнении к REST API присутствовали gRPC-методы.
Привет, Хабр! Меня зовут Давид, я C#-разработчик в SimbirSoft. В современном программировании эффективное управление ресурсами и контроль за выполнением задач становятся ключевыми аспектами для создания надежных и масштабируемых приложений. В C# одним из важнейших инструментов в для достижения этих целей является механизм Cancellation Token. Эта концепция позволяет разработчикам изящно и безопасно управлять долгосрочными или ресурсоемкими операциями, обеспечивая возможность их отмены по требованию.
В этой статье мы погрузимся в мир Cancellation Token в C#, исследуя его роль, принципы работы и практическое применение. Мы обсудим, как эта технология позволяет разработчикам улучшить производительность и надежность их приложений, а также — как избежать распространенных ошибок при работе с асинхронными операциями. Подробно рассмотрим примеры кода, демонстрирующие использование Cancellation Token в различных сценариях, что сделает наше обсуждение не только теоретически насыщенным, но и довольно практичным для программистов любого уровня.
Если бы в JavaScript действительно работала сборка мусора, большинство npm-модулей удаляли бы сами себя сразу после установки.
Сегодня мы поговорим о крайне важной, но порой недооцененной теме — кешировании в браузере.
Кеширование — это процесс сохранения копий файлов в локальном хранилище браузера, чтобы в последующем загружать их оттуда, а не с сервера. Так можно избежать лишних задержек и снизить нагрузку на сервер, т.к большинство ресурсов, таких как CSS-файлы, скрипты и медиаконтент, не нуждаются в повторной загрузке при каждом новом посещении страницы.
В статье рассмотрим несколько основных методов кеширования, таких как использование HTTP заголовков Cache-Control
, ETag
, и If-Modified-Since
, а такжеLocalStorage
.