Search
Write a publication
Pull to refresh
0
Василь Бєляєв @VXPread⁠-⁠only

C#, C++, Lua

Send message

Неожиданное взаимодействие предсказания ветвлений и подсистем памяти

Reading time10 min
Views7.3K

Это 15-я статья в серии, посвящённая оптимизации подсистем памяти. Остальные доступны здесь (англ.).

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

Простой production-ready генератор студийных фото продуктов

Level of difficultyMedium
Reading time12 min
Views3.9K

В данной статье мы рассмотрим простой пример готового к запуску в продакшн приложения с генеративным пайплайном. Расчет идет на возможность простого масштабирования и распределения вычислений на GPU.

Читать далее

Как я пытался писать функциональные компоненты без хуков на react

Level of difficultyEasy
Reading time6 min
Views9.3K

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

Читать далее

К 30-летнему юбилею DOOM: как два садиста, психопат и мормон создали одну из величайших игр в истории? Часть 3

Level of difficultyEasy
Reading time6 min
Views21K

Продолжим наш рассказ о том, как несколько весьма своеобразных программистов создали великий и ужасный Doom. Мы уже поговорили о непростом детстве двух Джонов, главных героев нашей истории, и рассказали, как Кармак и Ромеро начали писать игры. Затем — как они встретились в депрессивном и криминальном городе среди луизианских болот, работая на компанию Softdisc. Теперь же наши герои дозрели до мысли о том, чтобы писать крутые игры вместе — тем самым встав на скользкую дорожку серьёзного геймдева. Они ещё не знали, куда именно она их приведёт, но были полны энтузиазма, жажды создания крутейших игр, а также фантазий самого мрачного характера. Впрочем, их первое совместное творение получилось совсем не мрачным — и некоторых членов команды это буквально выморозило!

Все части цикла статей о создании DOOM:
Читать дальше →

Как я поднял свой сервер без возможности выставить для него статический IP адрес

Level of difficultyEasy
Reading time3 min
Views38K

Родился я в одном городе, позже переехал жить в другой. В родном городе остался ПК, который стоит без дела. В один прекрасный день решил я из него сделать многофункциональную удаленную машину: чтобы и кодить, и файлы хранить, и сайты/ботов хостить. Идея мне понравилась, я накатил на машину линукс, поставил все валявшиеся без дела диски и начал все это проверять. Но тут оказалось, что в родительском доме интернет тариф не поддерживает возможность установки статического IP адреса по умолчанию - адрес выдается провайдером в случайные моменты времени. Это означало, что я не мог, например, хостить какой-нибудь сервер на этой машине. Более того, я даже банально не мог к ней по SSH подключиться после смены ее адреса.

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

Читать далее

Почему с каждой новой версией Windows от нее усиливается усталость

Reading time6 min
Views83K

Привет! Меня зовут Васьен и я пользуюсь Windows уже 24 года. Большие боссы из Майкрософт молодцы и соображают, что делают. Тут и удачные инвестиции, развитие самых различных направлений и стремление захватить как можно больше рынка (хотя куда уж больше?). Но мне, простому смертному пользователю, искренне не понятно, что же в последнее время делает Майкрософт со своим главным продуктом – операционной системой, которой я как раз и пользуюсь более двадцати лет. И поймал себя на мысли, что все больше новостей вокруг новых версий ОС вызывает раздражение, а от новых версий ОС возникает какая-то усталость и мне стало интересно разобраться, с чем же это связано?

Читать далее

Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?

Level of difficultyMedium
Reading time10 min
Views16K
image


Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!
Читать дальше →

Пишем веб-приложение вместе с ChatGPT и Stable Diffusion

Level of difficultyEasy
Reading time5 min
Views17K

Всем привет! Ни для кого не секрет, что ChatGPT 4, получившая развитие в прошлом году, уже активно внедряется в обиход разработчиков. Во время новогодних каникул я решил испытать новинку, и попробовать разработать совместно с ботом небольшое веб-приложение на базе Angular 17. Что из этого вышло, читайте далее.

Читать далее

Измерение и оценка характеристик волоконно-оптической трассы

Reading time4 min
Views9.3K

При организации каналов связи с пропускной способностью более 10Гбит/с или при запуске сwdm-, dwdm-систем по старым оптическим кабельным линиям, на портах активного оборудования часто возникают crc-ошибки. Устранить эти ошибки заменой sfp-модулей, портов получается не всегда. Приходится идти в историю улучшения характеристик кабельных участков.

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

Так как «правильно» снять рефлектограмму и оценить качество трассы?

Читать далее

Как я наконец осуществил мечту заняться разработкой игр

Level of difficultyEasy
Reading time7 min
Views25K

Начало 2024 года. У меня на руках демка игры, над которой я работал последние полгода. Ещё год назад я занимался разработкой мобильных приложений и сидел на хорошей зарплате, а сейчас я безработный инди-разработчик! Но как так вышло?

Читать далее

Зелёная энергетика: последняя надежда или большой обман?

Reading time9 min
Views22K

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

И всё бы хорошо, но красивая картинка не всегда соответствует действительности. Разберёмся, почему из-за высокого спроса на батареи портится питьевая вода в Андах, а мода на солнечные батареи создала токсичные свалки. И почему не всегда она такая зелёная эта зелёная энергетика.

Читать далее

Почему typeof null === «object» в современном прочтении

Reading time6 min
Views8.1K

Задача унарного оператор typeof возвращать строковое представление типа операнда. Другими словами, typeof 1 вернет строку "number", а typeof "" вернет "string". Все возможные значения типов, возвращаемых оператором typeof изложены в спецификации ECMA-262 - 13.5.1. По задумке, возвращаемое, оператором, значение должно соответствовать принятым в той же спецификации типам данных. Однако, при детальном рассмотрении, можно заметить, что typeof null должен возвращать "object", не смотря на то, что Null - это вполне себе самостоятельный тип, он описан в разделе 6.1.2. Причина тому - обычный человеческий фактор, или, попросту, невинная ошибка в коде. Как эта ошибка могла случиться, попробуем разобраться в этой статьей.

Читать далее

Закон больших чисел и закон больших грабель

Level of difficultyEasy
Reading time9 min
Views14K

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

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

Бросать не будем, все брошено до нас

Press F. Что из мира IT мы потеряли в 2023 году

Reading time12 min
Views33K

2023 год стал годом больших технологических достижений. Мы стали свидетелями роста популярности ChatGPT и других моделей генеративного искусственного интеллекта, Apple наконец-то выпустила свою долгожданную гарнитуру XR — Vision Pro, Sony выпустила новый контроллер Access для PS5, было открытие Сферы в Лас-Вегасе и много других инноваций в роботехнике, энергетике, 3D-печати, производстве электроники и в области квантовых компьютеров. Но ничто не вечно, особенно в Кремниевой долине. И пока одни празднуют успехи, есть продукты и услуги из мира IT, для которых год был не просто неудачным, а фатальным.

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

Читать далее

Эльфы и пингвины: что такое ELF и как он работает в Linux?

Level of difficultyEasy
Reading time37 min
Views32K

image


Всем привет! С вами как всегда я, Аргентум. Сегодня я расскажу и поведаю вам древние тайны, которые хранят горные старцы-сисадмины — тайны об эльфах, и как они взаимодействуют с древним народцем пингвинов. Дамы и господа, встречайте — статья о работе ELF и двоичных файлов в Linux!


Что такое ELF? Чем он отличается от PE в Windows? И многие другие ответы на ваши вопросы.


Перед тем как погрузиться в технические детали, будет нелишним объяснить, почему понимание формата ELF полезно. Это позволяет изучить внутреннюю работу операционной системы. Когда что-то пошло не так, эти знания помогут лучше понять, что именно случилось, и по какой причине. Также возможность изучения ELF-файлов может быть ценна для поиска дыр в безопасности и обнаружения подозрительных файлов. И наконец, для лучшего понимания процесса разработки. Даже если вы программируете на высокоуровневом языке типа Go или Rust, вы всё равно будет лучше знать, что происходит за сценой.


Итак, зачем изучать ELF?


  • Для общего понимания работы операционной системы
  • Для разработки ПО
  • Цифровая криминалистика и реагирование на инциденты (DFIR)
  • Исследование вредоносных программ (анализ бинарных файлов)
Читать дальше →

Chaos Engineering Enterprise Version. Часть 1

Level of difficultyEasy
Reading time4 min
Views2K

Всем привет! Я давно планировал написать цикл статей на тему Chaos Engineering, чтобы рассказать о том, как его запускать, пилотировать и, конечно, масштабировать. Я обладаю большим опытом и знаниями, которые помогут запустить эту практику в «жестком» и сложном Enterprise, когда у нас идут релизы, а команд десятки. Частично мы уже делились этой информацией на конференциях CodeFest, ArchDays, DevOops conf, TechLead, но здесь мы еще попробуем систематизировать и подать концентрированно.

Читать далее

Становится ли ПО хуже?

Level of difficultyEasy
Reading time9 min
Views16K

Недавно я наткнулся на пост Никиты Прокопова Software disenchantment. Он заставил меня вспомнить пост Мацея Цегловски The Website Obesity Crisis и множество других статей подобного типа. Среди людей, пишущих о разработке ПО, возникает всё более широкий консенсус о том, что приложения становятся больше, медленнее и забагованнее. И это в эпоху, когда оборудование должно позволить нам писать быстрее, меньше и надёжнее. DOOM, вышедший в 1996 году, можно запустить в тесте на беременность и на сотне других неожиданных устройств. Тем временем, современные чат-приложения, работая в фоновом режиме, занимают полгигабайта ОЗУ (или больше), а иногда полностью зависают даже на самом мощном железе.

Вышеупомянутые посты по этой теме состоят примерно на 80% из справедливой и разумной критики, а на 20% из оторванного от реальности ворчания.

Большинство разработчиков понимает, что глупо спрашивать «это ОС для смартфонов, что в ней может быть сложного?» или «моё приложение для работы с электронными таблицами в 90-х занимало 10 килобайт, тогда почему Factorio весит целый гигабайт?» Если вы не присутствовали при разработке, то не сможете оценить все её проблемы и сложности.

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

Почему же мы этого не делаем?
Читать дальше →

Может ли нейро-сотрудник на базе ChatGPT звонить по обычной телефонной линии?

Level of difficultyMedium
Reading time8 min
Views9K

Продолжаем создавать нейро-сотрудников на базе ChatGPT и пробовать их в разных каналах коммуникаций.

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

Читать далее

Beyond Good & Evil: История недооцененного шедевра Ubisoft

Reading time9 min
Views4.5K

В 2022 году игра Beyond Good & Evil 2 официально стала самой долго разрабатываемой игрой в истории, обойдя Duke Nukem Forever, ее пытаются создать уже 15 лет. При этом фанаты продолжают ждать. А собственно, откуда такой ажиотаж? Ведь первая часть игры стала коммерческим провалом Ubisoft. Давайте посмотрим на оригинальную Beyond Good & Evil и попробуем разобраться, чем же она так полюбилась фанатам, и почему крупная компания-разработчик продолжает вкладывать миллионы долларов в ее создание.

Читать далее

Современный язык международного общения

Level of difficultyEasy
Reading time6 min
Views29K

Поводом для написания этого поста стал топик на этом же подсайте.

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

Начну с цитаты из поста: >В чем сила, брат?" У иероглифического письма есть ряд преимуществ по сравнению с более известными нам алфавитными языками...

У иероглифов нет преимуществ, есть огромные огромные недостатки. У нас есть алфавит. ребенок может в день не сильно напрягаясь учить по 5 букв. На изучение алфавита английского языка в этом случае ребенок потратит 5 дней, в русском - 7. Даже без участия учителя, подрюкавшись годик-другой, ребенок научится бегло читать книги. Его грамотность будет околонулевая, без знания правил и словарных слов он будет делать множество ошибок. Но, грубо говоря, для общения с другими носителями языка он получил необходимый базовый минимум за неделю. Написать "мама и папа я вас люблю" ребенок уже сможет. Или любой величины текст, на который ему хватит терпения.

А иероглифы - это "набивка" годами тысяч очень странных знаков, причем логика их рисования очень сложная. Горы - ну ок, это можно запомнить и вспомнить. Слон? Тут уже никакой логики не хватит, чтобы понять, как из упрощенной картинки слона извлечь иероглиф. Получается, что для чтения или написания базового разговорного минимума нам, англичанам, испанцам и т.д. хватит что то в районе недели (ну ок, казахам - 9 дней), а китайцам - несколько лет. Нам не надо знать, как пишется конкретное слово. Нам достаточно уметь разговаривать на языке и знать алфавит. Ребенок после недельного обучения идет по улице и меееедленно начинает читать ЛЮБОЕ слово. А китаец, умея разговаривать на языке, через неделю обучения идет и видит вокруг себя такую же незнакомую белиберду, изредка встречая знакомые 3 десятка слов.

Читать далее

Information

Rating
Does not participate
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity