Pull to refresh
84
0.1
Пётр @Error1024

Разработчик

Send message

地形图非线性保密处理算法, или что не так с картами Китая на спутниковых снимках

Reading time8 min
Views87K

Китай — это не просто другая страна. Это другой мир. Необязательно ехать туда, чтобы убедиться в этом. Иногда достаточно зайти в интернет. Например, использовать Google Maps или другие сервисы, чтобы открыть карту Китая. И тогда можно заметить, что расположение объектов (дорог, рек, достопримечательностей и многого другого) на карте и на спутниковых снимках, мягко говоря, не совпадает.

В этой статье хотелось бы рассказать, почему происходит такая путаница и что из этого следует.
Читать дальше →
Total votes 165: ↑161 and ↓4+197
Comments144

Delta-Rle-Huffman (DRH) Texture Format

Reading time8 min
Views3.1K

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

Внимание! В статье много картинок.

Кому интересно, добро пожаловать под кат!
Total votes 31: ↑30 and ↓1+40
Comments16

Compiler Explorer — уникальный проект для исследования компилируемого кода

Level of difficultyMedium
Reading time7 min
Views8.6K
Этот пост посвящён замечательному инструменту, полезному для каждого, кто интересуется компиляторами или архитектурой компьютеров. Это Compiler Explorer, который я в дальнейшем будут называть CE.

CE — потрясающий инструмент. Если вы с ним не знакомы, то прервите чтение и перейдите на веб-сайт CE, где вы увидите примерно такой экран:

Предупреждение: вы забираетесь в «кроличью нору», на которую можете потратить несколько часов своего времени.


В основе CE лежит очень простая идея. Достаточно ввести исходный код в левую панель, и сайт мгновенно покажет вам на правой панели скомпилированный результат (обычно на языке ассемблера).

CE поддерживает 69 языков, более двух тысяч компиляторов и широкий спектр архитектур, включая x86, arm, risc-v, avr, mips, vax, tensa, 68k, PowerPC, SPARC и даже древний 6502.

То есть теперь для просмотра результата работы компилятора достаточно открыть godbolt.org и скопировать туда блок кода.

Это само по себе удивительно, но у CE есть гораздо больше возможностей. Это инструмент, который должны знать все интересующиеся компиляторами и архитектурами компьютеров. В статье мы сможем лишь поверхностно рассмотреть функции CE. Вам стоит самим перейти на сайт CE и попробовать всё самостоятельно.
Читать дальше →
Total votes 60: ↑58 and ↓2+74
Comments12

Ода хейта C++

Level of difficultyEasy
Reading time12 min
Views20K

Я люблю С++. Это мой основной язык разработки на работе и в домашнем проекте. Я люблю его за скорость, за гибкость и близость к железу. Используя его, я понимаю "что происходит внутри". Я учился на нем программировать, и когда я пишу программы я "думаю на С++".

Я работаю в геймдеве, где С++ все еще популярен и ценится за все эти качества. Так же я много работал с C#, Lua, Python, немного JS и PHP. В общем, есть с чем сравнить.

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

В этой статье я хочу излить душу, за что я ненавижу С++. Мне от этого станет легче, возможно кому-то еще. Не стесняйтесь писать свой хейт (или защиту), устроим групповой сеанс терапии (или холивар)

Дисклеймер: Не стоит относиться слишком серьезно к этому тексту. Он наполнен душевной болью, и направлен лишь на релаксацию и сброс напряжения

Читать далее
Total votes 99: ↑81 and ↓18+80
Comments310

Хабр, GPT, корпоративные блоги и БМЛы: оцениваем глубины ужаса

Level of difficultyEasy
Reading time5 min
Views14K

Я не испытываю ненависти ни к корпоративным блогам, как таковым, ни к большим языковым моделям в целом. А вот к мусорному контенту, созданному левой пяткой ради ссылок на сайт или телеграм-канал - испытываю, и еще как. И как раз вот тут встретились два одиночества - ленивые копирайтеры мусоропроизводители и генеративные сети. Получилась, как вы понимаете, вовсе не конфетка.

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

За подробностями, результатами, ужасом и даже кодом на VB.NET приглашаю под кат!

Читать далее
Total votes 208: ↑204 and ↓4+258
Comments106

Почему для меня так важен алгоритм CORDIC

Level of difficultyMedium
Reading time8 min
Views12K

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

Перейду сразу к делу и скажу, почему я так сильно люблю этот алгоритм, а затем займёмся изучением принципов его работы. По сути, фактические операции CORDIC весьма просты — как я уже сказал, это сдвиги и сложение — но выполняет он их путём комбинирования векторной арифметики, тригонометрии, доказательств сходимости и продуманных техник компьютерных наук. Лично я считаю, что именно это имеют ввиду, описывая его природу, как «элегантную».
Читать дальше →
Total votes 83: ↑83 and ↓0+109
Comments27

Рассвет и закат мобильного программирования

Reading time10 min
Views23K

Представьте, что вы сидите на скучнейшем уроке литературы: кто-то спит, кто-то рисует в тетради, кто-то чатится в ICQ, кто-то проходит очередной уровень Gravity Defied, а вы люто набираете на своём Sony Ericsson программу на Бейсике, которая случайным образом выводит имя одного из одноклассников и какой-нибудь слегка обидный неправдивый факт о нём. Наконец, последние строчки дописаны, вы запускаете программу и показываете её соседу по парте, потом телефон уходит на другой ряд и… к концу урока добрая половина класса уже потирает ладони, чтобы хорошенько отвесить вам подзатыльников за такие приколы. Но последствия не так важны, как эйфория от того, что путь мобильной разработки для вас только-только начинается.

Это был 2006 год. У многих из нас ещё не было ПК, зато были мобильные телефоны с небольшими экранами, ограниченный доступ в Интернет и много свободного времени, которое хотелось потратить на реализацию какой-нибудь идеи.

Читать далее
Total votes 77: ↑77 and ↓0+95
Comments51

Разбор вердикта суда в отношении разработчика Tornado Cash

Level of difficultyEasy
Reading time8 min
Views13K

В результате беспрецедентного судебного разбирательства Алекс Перцев, ключевой разработчик инструмента для обеспечения приватности на базе Ethereum под названием Tornado Cash, был приговорен сегодня к более чем пяти годам тюремного заключения за свою работу над проектом. Вынесенный приговор был максимальным, запрошенным прокуратурой, и стал первым приговором разработчику, создавшему децентрализованный инструмент достижения приватности с использованием криптовалют.

Читать далее
Total votes 63: ↑56 and ↓7+65
Comments259

Цифровая антиутопия: Темное будущее развлекательной индустрии

Reading time8 min
Views8.7K

Президент (дедушка Байден) каждый год выступает с речью "О положении дел в стране", но это просто дремота. Просто посмотрите на своих достойных представителей, которые с трудом держат глаза открытыми. Это потому, что они уже слышали все это раньше. Мы тоже слышали. В политике мало что меняется. И уж точно не кандидаты.

Больше разнообразия на моей местной заправке, где, по крайней мере, я могу выбирать из трех видов топлива и пяти вкусов Big Gulp.

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

Вот почему нам нужна речь "О состоянии культуры". Мое прошлогоднее выступление цитировали и цитируют, и тогда оно было абсолютно верным, но сейчас оно уже устарело, как справочная служба ChatGPT-1 в яхт-клубе "Скучающая обезьяна".

На самом деле, 2024 год может стать самым стремительным и опасным временем для креативной экономики. И это будет так, независимо от того, что произойдет в ноябре. Так что давайте окунемся внутрь.

Я хочу рассказать вам, почему развлечения мертвы. И что придет им на смену.

Читать далее
Total votes 42: ↑39 and ↓3+45
Comments44

Копаемся в встроенном приложении камеры старого Xiaomi. Часть 2

Level of difficultyMedium
Reading time22 min
Views4.4K

Попытаемся отреверсить и заглянуть в реализацию фото-эффектов приложения камеры Xiaomi 8 летней давности

[Начать реверс!]
Total votes 7: ↑7 and ↓0+7
Comments6

Автомашинист. Оживляем «автопилот» для электрички

Level of difficultyMedium
Reading time9 min
Views5.9K
Приветствую всех!
Думаю, каждый из нас хоть раз в жизни ездил на электричке. Многие наверняка даже не подозревали о том, что даже на древних таких машинах в нашей стране может существовать автоматическое управление. И вот ко мне в руки попал именно такой девайс, на поверку оказавшийся не просто блоком автоведения, а куда более интересным устройством.



Итак, в сегодняшней статье речь пойдёт об одном весьма примечательном девайсе, устанавливаемом на наших поездах. Узнаем, как он работает, и попробуем его запустить. Традиционно будет много интересного.
Читать дальше →
Total votes 56: ↑56 and ↓0+67
Comments50

Самодельный ленточный микрофон

Level of difficultyMedium
Reading time20 min
Views9.8K

В последние годы странно всплыла тема ленточных микрофонов. Их, казалось бы, давно списанные в запасники истории, внезапно полюбили музыканты и звукорежиссеры, и все их фатальные недостатки (нехватка отдачи на высоких частотах, специфический характер звучания, малая чувствительность и проч.) внезапно стали превозносить, как достоинства. И... их стали делать. Причем — во всех ценовых категориях. Справедливости ради, надо сказать, что ленточный микрофон при всех тонкостях, конструктивно и технологически, наверное, самый простой из возможных. Вся его конструкция — это магнитная система и гофрированная ленточка из алюминиевой фольги. И это, пожалуй, единственный микрофон, который можно сделать буквально на коленке. Вот этим мы и займемся. Сразу скажу: получить сразу микрофон «мирового уровня» будет непросто. Но не боги горшки обжигают. Здесь — только начало этого пути.

Читать далее
Total votes 73: ↑73 and ↓0+88
Comments23

Все про композитинг в X11 | Linux

Level of difficultyMedium
Reading time13 min
Views5.3K

Приветствую, читатели хабра! Вы когда-нибудь задумывались над тем, что скрывается за красотой и динамичностью вашего рабочего стола? Какие компоненты реализовывают анимации и различные графические эффекты: блюр, тень, скругления, прозрачность? В X11 есть одна очень интересная программная единица - композитор. В этой статье мы получим общее понимание того, что это такое, как реализовано и для чего используется. Также, немного поговорим о том, как Xorg хранит информацию для отрисовки, затронем front/back буферы и узнаем, как компоненты рабочего стола обмениваются информацией между собой.

Читать далее
Total votes 24: ↑24 and ↓0+28
Comments15

Российский ноутбук Ricor Compi 100: привет из 90-х

Level of difficultyEasy
Reading time10 min
Views15K

Сегодня предлагаю совместить ностальгию и экскурс в историю с компьютерной некромантией. На днях мой коллега Михаил Синельников @m_sinelnikov поделился интересным образцом истории отечественного ИТ — Ricor Compi 100. Явно старый компьютер, больше похожий на игрушечные китайские пластиковые телефоны‑раскладушки, продававшиеся ближе к 2000-годам, или на «чемоданчики» iBook.

Копнув чуть глубже, я узнала, что это учебный ноутбук, выпускавшийся с 1996 года. Но информации в сети о нем мало, и нет как таковых цельных историй и обзоров, кроме одного единственного. Решили с Михаилом объединить усилия и написать расширенный материал‑оду этому забавному образцу российского ИТ.

Читать далее
Total votes 77: ↑72 and ↓5+96
Comments54

“Строка бога”/идеальный промт, часть 3, продолжение про ИИ-генераторы музыки

Level of difficultyEasy
Reading time11 min
Views1.9K

“Человек создан для счастья, как птица для полета” В. Г. Короленко из его рассказа “Парадокс”

Здравствуйте, уважаемые читатели!

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

Сегодняшняя статья будет состоять из двух частей:

1.      Практическая часть. Описание процесса генерации музыки “от А до Я”.

Идеальный запрос - Как создать музыку, которую можно будет слушать месяцами?

2.      Серьезный вывод о текущем состоянии и перспективах развития отрасли и не только.

Читать далее
Total votes 10: ↑6 and ↓4+8
Comments19

Как новый компилятор K2 ускоряет компиляцию Kotlin на 94%

Level of difficultyMedium
Reading time10 min
Views11K

Привет, меня зовут Мялкин Максим, я занимаюсь мобильной разработкой в KTS.

Не за горами выпуск новой версии Kotlin 2.0, основной частью которого является изменение компилятора на K2. 

По замерам JB, K2 ускоряет компиляцию на 94%. Также он позволит ускорить разработку новых языковых фич и унифицировать все платформы, предоставляя улучшенную архитектуру для мультиплатформенных проектов.

Но мало кто изучал, как работает K2, и чем он отличается от K1. 

Эта статья освещает нюансы работы компилятора, которые будут полезны разработчикам для понимания, что же JB улучшают под капотом, и как это работает.

Читать далее
Total votes 62: ↑62 and ↓0+68
Comments16

Разбираемся с стейблкойном на TON или как ваши средства могут заблокировать

Level of difficultyEasy
Reading time6 min
Views5.4K

19 апреля на конференции Token2049 после выступления Павла Дурова было объявлено о появлении стейблкойна от Tether в сети TON - USDt. Так как это централизованный стейблкойн эмитент подобного токена должен иметь контроль над средствами пользователей для соответствия требований регулятора, например, блокировать средства пользователя. В данной небольшой статье я расскажу как устроены токены на TON и какие возможности есть у эмитента стейблкойна.

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

Как устроены смарт-контракты в сети TON

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

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

Читать далее
Total votes 12: ↑10 and ↓2+15
Comments17

Редактор зелий

Level of difficultyEasy
Reading time3 min
Views7.5K
Принёс вам немного странного! Последний месяц я занимался разработкой конструктора зелий. В результате у вас появился инструмент в котором можно с минимумом усилий за минуту соорудить себе добротную склянку для игры или статьи о магии. ✨✨✨



Cсылка на редактор

Подробности под катом!
Total votes 79: ↑78 and ↓1+94
Comments8

Без холивара «переписать все на Go»: проблема переносимости в Python и ее решение

Level of difficultyMedium
Reading time19 min
Views15K

На скриптовых языках удобно разрабатывать… И на этом удобство заканчивается. Вне машины разработчика начинаются проблемы. Особенно если вы пишете какой-то прикладной тулинг — cli-утилиты, вспомогательные приложения в вашем SDK и прочее. Вы даже не можете рассчитывать на то, что у пользователя будет pip, чтобы он смог поставить все ваши зависимости, вам все нужно организовать самостоятельно.

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

Если вам покажется, что в чем-то я ошибаюсь, добро пожаловать в комментарии. Буду рад услышать любые альтернативные точки зрения. Кроме, как я уже отметил в заголовке, рекомендации переписать все на Go/Rust/You name it :) Этот холивар мы уже проходили.

Читать далее
Total votes 70: ↑70 and ↓0+78
Comments34
1
23 ...

Information

Rating
2,415-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity

Specialization

Software Developer, Траблшутер