Feed aggregator

Распилил шеринговый повербанк Energo, за который заплатил «штраф за утерю». Что внутри и стоило ли оно денег

Habr.com - Mon, 08/17/2026 - 12:30

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

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

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

Читать далее

Недельный геймдев: #291 — 16 августа, 2026

Habr.com - Mon, 08/17/2026 - 12:30

Из новостей: продажи Against the Storm достигли 2 миллионов копий, Meccha Chameleon разошлась тиражом в 20 миллионов копий, Epic Games продала ArtStation и Sketchfab, Supermassive Games объявила о сокращениях.

Из интересностей: Quasimorph — когда сложность это творческий замысел, как перестать бояться и полюбить ассемблер, простая 2D-трава на WebGPU, на пути к Unity 7.

Читать далее

CI — это не Jenkins. Зачем, как, чем — и цена отказа

Habr.com - Mon, 08/17/2026 - 12:27

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

Читать далее

Как перестать имитировать Agile и начать получать результат

Habr.com - Mon, 08/17/2026 - 12:15

На Хабре немало статей о том, почему Agile не работает. И в большинстве из них авторы справедливо отмечают, что ритуалы превратились в формальности, Scrum выродился в бюрократию, команды имитируют активность. Всё так.

Я хочу поговорить про другое - про глубинные причины неудач во внедрении Agile и конкретные способы наконец-то получить от методологии тот результат, который она способна дать.

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

Эта статья — не про то, что Agile плох. Она про то, как сделать его работающим.

Читать далее

Vec и Vec — это две разные функции. И линкер это не чинит

Habr.com - Mon, 08/17/2026 - 12:05

Привет, Хабр!

У меня есть для вас очень простой способ испортить себе вечер. Поставьте cargo-llvm-lines, запустите на своём проекте и посмотрите не на первую колонку, а на вторую, которая называется Copies. Сверху почти наверняка будет core::ptr::drop_in_place, дальше что-нибудь из Vec, потом хвост от serde. И напротив каждой строчки будет стоять не единица.

Обычная реакция в этот момент: ну да, дженерики, зато быстро, а одинаковые копии потом схлопнет LLVM. Часть действительно схлопнет. Только не тем механизмом, о котором вы подумали, и точно не тем, который вы включили в Cargo.toml.

В статье узнаем откуда берутся копии, почему Vec<u32> и Vec<i32> в бинарнике сливаются в одну функцию, а Vec<u32> и Vec<u64> не сольются ни при каких настройках, что от этого видно в именах символов, как с той же проблемой воюет сам std и куда делась полиморфизация, которую пять лет ждали как лекарство.

Читать далее

Как я ускорил TypeScript-типы в 15.7 раза

Habr.com - Mon, 08/17/2026 - 12:03

Иногда TypeScript думает мучительно долго. У меня это вылезло не самым приятным способом: @_chenglou — он работал над React, ReasonML и ReScript, а сейчас над Midjourney — завёл в моей библиотеке схем issue «Large TS types cause type inference slowdown».

Ну… неприятно. Но я знал, что в системе типов TS люди собирали и не такое, вплоть до Doom, — значит, тормоза лечатся, а не заложены в фундамент.

Дальше всё оказалось довольно механически. Сначала тесты на типы, чтобы ничего не сломать молча: оптимизация типов легко превращает { a: string } в { a?: string }, и никто вам об этом не сообщит. Потом замеры через @ark/attest от создателей ArkType — он считает, во сколько инстанцирований типов обходится выражение, и фиксирует это как бейзлайн, который дальше можно занести в CI. И только после этого — сама оптимизация.

Фикс в итоге оказался на одну строчку. S.Output матчился по всему типу Schema<…> — большому объекту с перегрузками, пересечённому с юнионом всех вариантов схемы, — хотя готовый тип всё это время лежал в соседнем поле ~standard. Достаточно было заглянуть сразу туда.

Извлечение типа стало дешевле в 15.7 раза и перестало зависеть от размера схемы. В статье — таблица со всеми замерами до и после, код тестов и бенчмарков и рецепт, который можно применить к своему проекту.

Читать далее

Римская империя: дороги и дома

Habr.com - Mon, 08/17/2026 - 12:01

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

Следы Рима сохранились и в языке. Тысячи слов латинского происхождения вошли в европейские языки — непосредственно из латыни или через другие языки. Например, в русском это «текст», «армия», «университет», «документ», Роман — и тысячи других слов.

Читать далее

C++29 — начало. Встреча ISO C++ в Брно

Habr.com - Mon, 08/17/2026 - 12:01

Привет! На связи Антон Полухин из Техплатформы Городских сервисов Яндекса. Недавно в Брно состоялась встреча международного комитета по стандартизации языка программирования C++, в которой я принимал активное участие. В этот раз началась работа над C++29 и как раз о новинках и хочется рассказать.

Читать далее

Loop Engineering: почему цикл легко собрать и трудно остановить

Habr.com - Mon, 08/17/2026 - 12:00

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

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

Слоган "хватит промптить кодинг-агентов, проектируйте циклы" собрал миллионы просмотров и оброс гайдами "как печатать альфу 24/7". Я полез смотреть, что там под мемом, и за пару месяцев собрал поверх своей обвязки собственный цикл. Переписывал столько раз, что перестал считать.

Читать далее

Еще три интересные логические задачи

Habr.com - Mon, 08/17/2026 - 11:56

Продолжаю публикацию интересных задач на логику с красивым решением.

Формулировка:

3 честных рациональных инопланетянина (А, Б, В) стоят в колонне. В видит А и Б; Б видит только А; А не видит никого. На каждого надет колпак либо синего, либо зеленого, либо красного цвета, количество колпаков того или иного цвета не ограничено. Договорившись об общей стратегии, они по очереди (начиная с В) называют возможный цвет своего колпака. Цель - гарантировать, чтобы минимум двое ответили верно.

Решение:

Воспользуемся арифметикой по модулю 3 (будем считать остатки от деления на 3, соответствующего количеству цветов). Участники заранее присваивают каждому цвету число - красный = 0, синий = 1, зеленый = 2. Инопланетянин В видит двоих перед собой (Б и А). Он складывает их числа и называет цвет, который соответствует остатку от деления суммы на 3. Например, В видит у Б - синий (1), у А — зеленый (2). 1 + 2 = 3. Остаток от деления 3 на 3 равен 0. В говорит: «Красный» (код числа 0). Б слышит «Красный» (0) и понимает: «Мой цвет + цвет А делится на 3 без остатка». Затем он смотрит на А. Допустим, Б видит, что на А — зеленый колпак (2). Единственное число, которое при сложении с 2 дает число, делящееся на 3 — это 1. Б понимает, что он — Синий (1), и уверенно это произносит. А слышал код от В (0) и ответ от Б (1) и понимает, что на нем колпак зеленого цвета (2).

Данный метод работает для любого количества цветов и любого количества инопланетян.

Читать далее

Linux 7.2

Linux.org.ru - Mon, 08/17/2026 - 11:42

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 7.2. Среди наиболее заметных изменений: механизм потоковой передачи данных USB4STREAM, оптимизации производительности btrfs, xfs и ext4, продолжение удаления кода для поддержки CPU i486, возможность создания вложенных планировщиков SCHED_EXT, снижено потребление памяти в подсистеме подкачки, ускорены неименованные каналы, поддержка расширений Intel MBEC и AMD GMET в KVM, удаление протокола AppleTalk, начальная поддержка HDMI 2.1 FRL в драйвере AMDGPU.

( читать дальше... )

 , ,

Who's online

There are currently 1 user and 6 guests online.
Syndicate content