Pull to refresh
84
0
Пётр @Error1024

Разработчик

Send message

Графика древности: пятая волна. Sega Saturn и Sony PlayStation (часть 2/4)

Level of difficultyMedium
Reading time25 min
Views13K

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

История успеха консолей пятого поколения началась в 1993 году с консоли 3DO, но настоящая битва за внимание геймеров была впереди. Пятое поколение не только определило саму форму современных игр, но и смену главных действующих лиц — компаний, задающих тренды.

Сегодня рассмотрим две главнейшие платформы поколения, Saturn от некогда великой, но начинающей стремительно терять полимеры Sega, и PlayStation от новичка в индустрии видеоигр — Sony. Заодно узнаем кое-что про концептуальное противостояние квадов и треугольников, а также про необычные сложности в реализации эффектов полупрозрачности.
Читать дальше →
Total votes 57: ↑56 and ↓1+77
Comments19

5000 TON, 100 ТГ-премиум, геймификация и розыгрыш. Как Дуров в свой крипто-Кошелёк под Новый год новых юзеров зазывал

Level of difficultyEasy
Reading time5 min
Views8.6K

Телеграм сделал свой кошелек для криптовалют. Продвинуть его решили с помощью розыгрыша (любимый способ Дурова, он так все свои проекты делал). Я, как геймификатор, взялся посчитать и разобраться — сколько для него это стоило, какая была механика у акции и какие по пути были допущены ошибки.

• 17 000 "победителей";
• 170 000$ пополнений;
• 35 000 подписок на канал.

Расследование: как они это сделали, что интересного под капотом и почему нужно брать такой пример на карандаш.

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

Fragment и Toncoin сегодня

Level of difficultyEasy
Reading time5 min
Views7.1K

Шалом, Хабр! 27 октября 2022 года состоялся запуск некастодиальной свободной биржевой платформы Fragment от самого Павла Дурова, все сделки на которой проводятся в криптовалюте Toncoin. И вот что с ним стало спустя год...

Читать далее
Total votes 7: ↑4 and ↓3+2
Comments15

Telegram собирает и продает МТС личные данные своих пользователей, или не все так плохо?

Level of difficultyEasy
Reading time5 min
Views6.8K

МТС теперь имеют возможность таргетинга рекламы в Telegram Ads с помощью номеров телефонов клиентов МТС (Но у них нет партнерства c Telegram). Это значит что МТС сможет настраивать свою рекламу в Telegram Ads так, чтобы их реклама была видна только клиентам МТС. И после этого многие пользователи Telegram стали жаловаться на то что теперь Telegram будет собирать личные данные и использовать их для таргетинга рекламы, хотя Telegram заявлял что он будет всегда бесплатным, без рекламы и платных подписок, но в 2022 году это изменилось...

Продает ли Telegram личные данные юзеров?
Total votes 11: ↑6 and ↓5+3
Comments28

Скам-империя братьев Дуровых

Reading time3 min
Views92K

Это будет короткая статья о моем непосредственном знакомстве с криптовалютой TON, биржей виртуальных телефонных номеров Fragment и Телеграм-кошельком @Wallet. Мне хватило недели, чтобы их протестировать и понять суть игры. Следите за руками.

Читать далее
Total votes 135: ↑57 and ↓78-5
Comments145

Теорема об одурачивании людей или как не стоит верить уловкам маркетинга в безопасность приложений на примере Telegram

Level of difficultyEasy
Reading time8 min
Views38K

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

Читать далее
Total votes 69: ↑53 and ↓16+50
Comments153

Адаптация Qt-приложений под мониторы высокой чёткости. Часть 1

Reading time15 min
Views17K

В связи с техническим прогрессом рынок мониторов постоянно обновляется моделями с повышенным разрешением, плотностью пикселей и/или размером экрана. Году в 2010 стандартным монитором можно было считать экземпляр 19’’ c разрешением WXGA++ (1600*900) и фактической плотностью пикселей 97 DPI (dots per inch). Сейчас (2021 год) стандартным монитором, думаю, можно признать экземпляр 24’’ c разрешением Full HD (1920*1080) и плотностью пикселей 92 DPI. Под «стандартным» я понимаю тот монитор, который стоит на рабочем месте у большинства работающего люда: инженеры, бухгалтеры, переводчики и т.д. (при этом, конечно, «стандартность» — это субъективная и приблизительная оценка). Относительно новые и отчасти нишевые модели (для фотографов, видеографов, геймеров) имеют характеристики: 4K UHD (3840*2160) и 28’’ (157 DPI) или UWQHD (3440x1440) и 34" (109 DPI) или QHD (2560x1440) и 27" (109 DPI) или UWHD (2560x1080) и 29" (96 DPI). Таким образом, наблюдается рост в связанных группах признаков: разрешение+размер экрана, или разрешение+плотность пикселей, или даже разрешение+плотность пикселей+размер экрана. На рынке ноутбуков в плане экранов похожая ситуация – растет разрешение+плотность пикселей.

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

Что касается высокой чёткости (большой плотности пикселей), то в ОС Windows давно есть такие настройки, как масштабирование шрифта и изображений (масштаб экрана), которые применяются для увеличения слишком малых элементов GUI на мониторах с высокой чёткостью (High DPI). Также есть поддержка в платформе Qt (с нюансами, об этом далее). Однако способно ли Ваше, конкретное ПО их адекватно учитывать, применять?

Читать далее
Total votes 20: ↑20 and ↓0+20
Comments6

Перехватываем запуск любого приложения в Windows и пытаемся ничего не сломать

Reading time14 min
Views51K

Если вы много занимаетесь отладкой приложений под Windows — вы, возможно, слышали о таком замечательном механизме, как Image File Execution Options (IFEO). Одна из предоставляемых им возможностей позволяет отлаживать приложение в условиях, более приближенных к боевым. Записав в нужное место в реестре специальный ключик, мы можем вместо программы автоматически запускать её отладчик, позволяя ему делать свои отладочные дела. Однако кто сказал, что этот механизм (фактически — перехвата запуска чего угодно) можно использовать только в подобных целях? Эта статья вовсе не об использовании вещей по назначению.


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

Читать дальше →
Total votes 49: ↑48 and ↓1+47
Comments21

Темная сторона Open Source

Reading time7 min
Views16K

"Вносите вклад в открытый исходный код, это лучшее, что со мной случилось!" - все чаще и чаще слышу я в Twitter в последнее время. Хотя я не возражаю против самого высказывания, мне кажется, что в нем непреднамеренно (или намеренно) упускается приличная часть правды о вкладе и авторстве открытого кода. Это похоже на то, как если бы вы рекомендовали туристический маршрут, с которого в конце концов открывается незабываемый вид, но при этом вы не упоминаете о том, сколько трудностей и подготовки требует этот поход.

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

Читать далее
Total votes 27: ↑25 and ↓2+29
Comments62

Российская микроэлектроника — два года спустя

Level of difficultyHard
Reading time9 min
Views100K

За эту статью попрошу благодарить патриотично размороженных граждан в целом, и @WebPeople (регистрация 2012, разморожен с первым комментарием 8 июл 2023 в 20:47) в частности. Глобальное потепление, ничего не поделать.

В мае 2022 в комментариях @hippohood отметился не имеющим аналогов текстом:
Примерно опишу мыслительный процесс позитивно (патриотично) настроенных граждан.

Оборудование можно сделать и самим, но пока можно и просто привезти серым импортом. Оборудование выглядит примерно как большой ящик с дырками, включённый в розетку; в одну дырку складываешь кремний, в другую заливаешь фоторезистор. Под третью дырку надо подставить ведро - в него будут ссыпаться чипы. Вёдра мы делать умеем (хотя и импортируем сейчас, но чертежи-то остались), фоторезистор научатся намешивать в Зелинограде; с кремнием разберемся, не всё сразу. Надо ещё заранее заказать в Китае переходник с европейской розетки на нормальную - лучше сразу 3 или 4, они постоянно горят. Вроде все ясно.

Читать далее
Total votes 564: ↑539 and ↓25+599
Comments451

Графические нейросети. Лицензии и правила использования

Level of difficultyEasy
Reading time2 min
Views2.3K

Ровно 10 месяцев назад я выпустила сравнительный обзор нескольких популярных нейронок. В нём затронула тему лицензирования контента. С тех пор многое изменилось, и я решила выкатить обновление инфы по части прав и условий использования сервисов:

Читать далее
Total votes 9: ↑7 and ↓2+9
Comments0

Кошелек Дурова, или Telegram, который становится первым мировым супераппом

Level of difficultyEasy
Reading time8 min
Views90K

О том, как Павел Дуров и Илон Маск взяли курс на борьбу за власть над всем миром: WeChat, глобальные платежные системы и провал Цукерберга.

Читать далее
Total votes 54: ↑37 and ↓17+32
Comments131

Как калькуляторы вычисляют синус?

Level of difficultyEasy
Reading time3 min
Views55K

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

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

Читать далее
Total votes 77: ↑75 and ↓2+95
Comments52

Это слишком опасно для C++

Reading time6 min
Views34K

Некоторые паттерны стало возможно использовать на практике только благодаря безопасности Rust по памяти, а на C++ они слишком опасны. В статье приведён один такой пример.

Работая над внутренней библиотекой, написанной на Rust, я создал тип ошибок для парсера, у которых должна быть возможность сделать Clone без дублирования внутренних данных. В Rust для этого требуется указатель с подсчётом ссылок (reference-counted pointer) наподобие Rc.

Поэтому я написал свой тип ошибок, использовал его как вариант ошибок fallible-функций, и продолжил двигаться дальше.

Читать далее
Total votes 58: ↑45 and ↓13+51
Comments108

Хакаем спортивные часы

Reading time4 min
Views5.5K

Введение



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

Ну а я считаю, что это одни из самых лучших потребительских цифровых часов со сверхнизким энергопотреблением в мире!

Позвольте мне объясниться…

Спецификации


Это Timex m851. В них установлены 8-битный CPU Seiko SC188, 48 КБ ROM, 2 КБ RAM и матричный дисплей 42x11.

CPU спроектирован с расчётом на работу со сверхнизким энергопотреблением — одной батарейки хватает на три года!

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


А что это за контакты сбоку? Это USB. Естественно, можно синхронизировать информацию наподобие встреч и тому подобного (для этого есть удобная Linux-библиотека).

И вот что интересно — у часов есть SDK, и он на удивление хорош!

Достаточно ввести $ cc helloworld.c и загрузить код в часы.

Изначально я не думал, что влюблюсь в эти часы — мастер разработки, который Timex предоставлял в эпоху Windows XP, был ужасен. Однако оказалось, что он просто управляет находящимся внутри тулчейном в стиле UNIX.

А если его вытащить, то хакинг становится довольно увлекательным занятием!
Читать дальше →
Total votes 29: ↑28 and ↓1+37
Comments13

Бардак в GNOME — это не случайность

Level of difficultyMedium
Reading time13 min
Views53K

GNOME удалось добиться, казалось бы, невозможного: это самая ограниченная по возможностям и раздутая десктопная среда для Linux. Но это не просто случайность. Это результат высокомерия и дилетантства основных разработчиков, превративших архитектурные решения GNOME в шедевр хаоса. Чтобы лучше понять, что происходит, давайте проанализируем некоторые из примеров. Даже если ни один из них не затрагивает непосредственно вас, стоит понять modus operandi ведения проектов GNOME и то, как они вредят сообществу Linux.
Читать дальше →
Total votes 134: ↑126 and ↓8+149
Comments273

Каков C++ в gamedev'e?

Level of difficultyEasy
Reading time11 min
Views28K

Хотел написать продолжение к статье Что почитать игровому программисту? про использование С++ в игровых движках, но размышления свернули куда-то не туда.

Завороженно смотрю как и какими темпами идет развитие языка в последние годы, и понимаю, что получить и особенно применить возможности С++20/3 в разработке игр и движков получится хорошо, если с опозданием лет эдак в пять, как раз на следующее поколение консолей, если вообще получится. Сейчас плюсы в игрострое зависли где-то между 14 и 17 стандартом, Сони только-только выкатила свою версию компилятора с полной поддержкой 17 стандарта, а учитывая реактивность игровых студий в изменении кор пайплайнов, что-то новое начнут только в новых проектах. Менять коня, т.е. компилятор посреди разработки игры равносильно стрельбе не только по ногам себе, но и соседям программистам: работает - не чини.

Если смена компилятора и стандарта не даст гарантированного прироста скорости работы больше 5%, то бюджет и людей я не одобрю. (с)

Знакомство с кодовой базой больших движков дает понимание уровня и объёмов кода в продакшене и в тулзах, и ситуация вырисовывается такая, что эти объемы стали в индустрии, что называется "too big to fall", т.е. написать что-то новое, уровня движков вроде Unity/Unreal/Dagor на другом языке, будь он хоть в тысячу раз безопаснее и в десять раз быстрее не получится, но попытки конечно делаются. И чем дальше продолжается поддержка существующих проектов на плюсах, тем меньше возможности выбора остается.

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

По техдолгам будут платить наши джуны
Total votes 74: ↑73 and ↓1+83
Comments59

Костыли из 90-х и принцип HTML First

Level of difficultyMedium
Reading time7 min
Views13K

Кадр из презентации Frontmania 2022: Kilian Valkhof — Stop using JavaScript for that

Недавно на Хабре публиковался перевод статьи «Вам не нужен для этого JavaScript» с примерами, где код JS легко заменить на HTML.

На самом деле возврат к основам HTML, простым сайтам и читаемому коду без сложных фреймворков — довольно популярная идея. Сейчас всё больше сайтов создаётся по принципу HTML First.
Читать дальше →
Total votes 59: ↑55 and ↓4+76
Comments37

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

Level of difficultyMedium
Reading time18 min
Views24K

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.

Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.

(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go

Читать далее
Total votes 38: ↑38 and ↓0+38
Comments20

Делаем RPG на Go: часть 0

Level of difficultyMedium
Reading time7 min
Views14K

Один из самых частых вопросов в нашем сообществе разработке игр на Go — это с чего начать.


В этой серии статей мы будем изучать движок Ebitengine и создадим RPG в процессе.


Читать дальше →
Total votes 32: ↑31 and ↓1+36
Comments8

Information

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

Specialization

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