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

C#, C++, Lua

Send message

Иероглифы — хаос или система? Разбираемся из чего они состоят, как работают и в чём их сила

Level of difficultyEasy
Reading time15 min
Views54K

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

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

Заходите, будет интересно

Почему больше не стоит писать для Рунета

Reading time10 min
Views60K

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

Читать далее

Process Memory Map

Reading time3 min
Views7.8K

Я программист, а то что я еще и реверсер - ну... так совпало. И как любому из людей занимающимся реверсом мне всегда не хватает функционала отладчика. Постоянно приходится допиливать под конкретную задачу какие-то утилитарные вещи и однажды...
Однажды я решил - хватит, каждый раз пилить новое достаточно утомительно, а что если взять и объединить все наработки в один инструмент и пользоваться именно им!
Это будет скорее рекламный пост - но не спешите минусовать, возможности утилиты, о которой пойдет речь, а называется она Process Memory Map, весьма обширны, и возможно вам понравится :)

Итак - что это такое? Она похожа на всем известный инструмент от Марка Руссиновича VMMap (которая кстати частично основана на коде Джефри Рихтера), её задача проанализировать сторонний процесс и вытащить из него максимум данных, о которых она знает.

Читать далее

Новый год и Atari 2600

Level of difficultyMedium
Reading time16 min
Views5K

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

Например, «гифт» — поздравление с днём рождения. Или же более актуальное прямо сейчас: новогодние поздравления. Признаться, я и сам не раз делал подобные вещи. Например, в предыдущий раз я пожелал всем незабываемого нового 2020 года. И так как дата публикации очередной статьи пришлась на конец декабря, это прекрасный повод снова поздравить читателей таким образом, а заодно и рассказать о том, как это сделано.
Читать дальше →

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

Level of difficultyEasy
Reading time10 min
Views22K

Продолжим наш рассказ о том, как странная компания нерядовых людей со стрёмными тараканами в голове сделали суперхит — и навсегда изменили всю индустрию геймдева. В прошлый раз мы оставили наших главных героев, Джона Кармака и Джона Ромеро, на пути в мрачный луизианский город Шривпорт. Их, как талантливых и перспективных разработчиков игр, ждала работа на компанию Softdisk. Вряд ли кто-то из них мог тогда представить, что всего через несколько лет они превратятся в живых классиков игровой индустрии — но первые образы и наброски будущего шедевра уже начинали клубиться в их головах. И некоторые черты Doom можно было заметить уже в их ранних творениях!

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

Читать дальше →

Производственный календарь в PostgreSQL

Level of difficultyEasy
Reading time6 min
Views13K

Новый Год уже совсем на носу, а значит нужен свежий производственный календарь в базе данных PostgreSQL. Но как совершенно обленившийся IT-шник, заводить его руками не хочется. Хочется, чтобы вызовом одной функции он сразу появился. Ну а уж из этой функции можно его сохранить в табличку и спокойно использовать до следующего Нового Года. А тогда опять просто вызвать вызвать функцию и с чистой совестью отрапортовать о выполненной работе. Цель статьи - показать возможности COPY ... FROM PROGRAM и простейшие приемы парсинга XML в PostgreSQL.

Читать далее

Unreal Engine 5: Nanite — Z-тест для самых маленьких

Level of difficultyMedium
Reading time6 min
Views5.3K

Доброго времени суток,

Неожиданной для себя, обнаружил, что по какой-то причине, присутствует не так много содержательных статей о работе технологий Unreal Engine 5 на русском языке. Я решил исправить эту несправедливость. И чтобы не повторятся с англоязычными статьями или небольшим количеством статей на русском, я буду рассматривать, почему именно Nanite даёт преимущество. С большим уходом вглубь работы видеокарты и оптимизаций.

В первой части, я рассматриваю работу алгоритма отсечения окружения, в частности, реализацию Теста Глубины, в Unreal Engine 5.

Читать

Разработка под Symbian: SDK

Reading time2 min
Views4.8K
Речь пойдет о платформе Series 60, позже переименованной в S^1.

Это обзорная статья, если немного сумбурная — извините. Только-только исправил все ошибки в postinker elf2e32, её описание и ссылка на гитхаб — в конце статьи.
image
Читать дальше →

Гений 21 века. Чем сейчас занимается Фабрис Беллар

Level of difficultyEasy
Reading time9 min
Views59K
Некоторые программисты настолько хорошо известны, что не нуждаются в особом представлении. Наверное, Фабрис Беллар — самая яркая звезда современности. Автор мультимедийного комбайна FFmpeg, эмулятора QEMU и десятков других полезных программ — абсолютный гений и пример программиста 100х, который в одиночку принёс больше пользы миру, чем многие корпорации с сотнями разработчиков. В общем, все знают Фабриса — про него ещё была статья на Хабре двенадцать лет назад…

… Но по просьбам молодых читателей мы решили вернуться к этой теме. Оно и к лучшему, ведь Фабрис многое сделал за это десятилетие, особенно в области нейросетей.
Читать дальше →

11lc — инновационный компилятор для нового языка программирования

Reading time23 min
Views18K
Данная статья посвящена находящемуся на стадии проектирования компилятору 11lc. В ней перечисляются наиболее яркие особенности этого компилятора.

Отсутствие скрытой неэффективности


Это свойство скорее языка программирования 11l, нежели компилятора. Однако оно настолько важно и настолько отличает язык 11l от C++, D или даже Nim, что я решил разобрать его подробно в данной статье.

Уолтер Брайт, создатель языка D, писал:
Templates in C++ have evolved from little more than token substitution into a programming language in itself. Many useful aspects of C++ templates have been discovered rather than designed.

Так вот, как я считаю, нечто похожее произошло и с семантикой перемещения (move semantics). И в C++ и в D она появилась достаточно поздно, и если бы эти языки проектировались с опорой на семантику перемещения изначально, то в них было бы гораздо меньше скрытой неэффективности (hidden inefficiency). О чём идёт речь? Рассмотрю это на примере C++.
Читать дальше →

Мой вам подарок к Новому году или как наконец запустил то, что надо было давно запустить…

Level of difficultyMedium
Reading time6 min
Views40K

КДПВ


Немножко истории


Начну с истории вопроса.


Очень давно я написал Fresh IDE – навороченнoe IDE для программирования на ассемблере, а точнее на FlatAssembler.


Fresh IDE долгие годы меня полностью устраивал, поэтому я с перерывами выпустил 2 главные версии и начал просто его использовать, время от времени внося какие-то исправления и изредка новые функции.


Когда перешел полностью на Linux, оказалось, что Fresh IDE прекрасно работает под WINE, и я продолжил им пользоваться без угрызений совести. В процессе даже удалось исправить несколько багов WINE (вот, вот и вот).


Как бы то ни было, но я начал писать библиотеку для переносимости ассемблерных программ между Linux и Windows (и KolibriOS). Одновременно с этим задумался и над тем, чтобы сделать Fresh IDE переносимым. Из-за архитектуры библиотеки, огромная часть кода уже и так была переносимой. А точнее все, что не касалось GUI. К сожалению, GUI был полностью написан на Win32 API и его нельзя просто так перенести на другие платформы.


Поэтому и пришлось начинать все сначала. И третья версия Fresh IDE писалась почти с нуля.

Читать дальше →

Еще один год из жизни ReactOS

Reading time6 min
Views17K

Здравствуйте, дорогие друзья!

Вот и заканчивается 2023 год. В этой статье я хочу продолжить начатую в 2021 году традицию вспоминания наиболее важных событий из жизни ReactOS за год. То что статьи не появляются на Хабре, не значит что система мертва. Медленно, но верно, в ReactOS реализуются разные фичи и исправляются баги. И в данной статье мы рассмотрим что произошло в жизни системы в 2023 году.

Читать далее

Носители английского языка — худшие коммуникаторы в мире

Level of difficultyEasy
Reading time5 min
Views38K

Носители языка — худшие коммуникаторы в мире

В комнате, полной людей, для которых язык не является родным, «нет никаких шансов на понимание». Возможно, это их язык, которым они владеют, но послание часто теряется.

Читать далее

Как разогнать ЖК монитор

Level of difficultyEasy
Reading time5 min
Views14K

Что же подразумевается под разгоном матрицы монитора? Подразумевается увеличение частоты обновления монитора со стандартных 60 Гц и на сколько получится — 70-75, бывает и 120, и даже 150 Гц (!). Зачем это нужно? Чтобы повысить плавность картинки. Что означает, что частота обновления монитора — 60 Гц? Это означает, что картинка на экране меняется ровно 60 раз в секунду. При этом видеокарта может выдавать как меньшее количество fps, так и большее. Если количество кадров, выдаваемых видеокартой, меньше частоты обновления, то, значит, какой-то кадр будет дважды (а то и трижды) выведен на экран, что может привести к ощутимым задержкам. Если же количество кадров, выдаваемых видеокартой, больше частоты обновления монитора, то получится так, что на экран будет выдаваться сразу два-три кадра, что приведет к артефактам:

Читать далее

Создание простого и работоспособного генетического алгоритма для нейросети с Python и NumPy

Level of difficultyMedium
Reading time6 min
Views14K

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

У меня никогда не получалось найти такой алгоритм и чтобы он работал, и был простым, и его можно было использовать, поэтому я приступил к созданию своего легкого, простого, прекрасно работающего Genetic Algorithm.

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

Вначале нам потребуется импортировать модули:

Читать далее

Синхронизация операций в .NET на примерах

Level of difficultyMedium
Reading time3 min
Views16K

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

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

Читать далее

Я изучал иностранный язык 3 месяца с DuoLingo. Почему это не самый эффективный инструмент для изучения языка

Level of difficultyEasy
Reading time5 min
Views109K

Уже чуть более трех месяцев я учил испанский язык  с помощью тренажера DuoLingo. Это первая часть эксперимента. Моей целью было оценить объем знаний и перспективы использования DuoLingo изучающими иностранный язык.

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

Читать далее

Какие вопросы я задаю на собеседовании QA Junior+

Level of difficultyEasy
Reading time15 min
Views67K

Привет Хабр! Меня зовут Иван, сегодня поговорим о вопросах на собеседованиях Джуну+ (от 6 месяцев работы) и узнаем как ответить на них не как ChatGPT. Я как инженер по ручному и автоматизированному тестированию провожу собеседования на роль Junior+ QA (с дальнейшим ростом в автоматизаторы). Делюсь своим списком вопросов и ответов, которые я ожидаю услышать.

Придумывать заново велосипед не собираюсь. Поэтому ниже список ресурсов на вопросы для подготовки к собесу QA. К сожалению ресурсы предоставляют не все ответы, в том числе не все правильные.

База для Junior QA

1. Что такое тестирование?

Сравнение ожидаемого результата с фактическим результатом ПО. Тестирование это не поиск багов!

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

Подготовиться к собесу

Хочется странного — шифрование и протокол Gemini

Level of difficultyMedium
Reading time8 min
Views6.8K

Сегодня речь пойдет НЕ о новомодной нейросети, не о космической программе NASA, не о созвездии Близнецов, и даже не об очередной криптобирже. Интернет-протоколу Gemini не повезло с названием, его все время путают с чем-то другим.

А протокол интересный, дело в том, что он (1) минималистичный, как Gopher, а значит, (2) удобный для создания самодельных компьютерных программ, работающих с ним, (3) радикально защищает читателя от скриптов, всплывающих окон и прочего, при этом (4) заточен на параноидальную приватность и безопасность, и еще там (5) непривычный подход к шифрованию канала передачи данных, о чем сейчас и поговорим.

Через колючки к звездам

Information

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