Обновить
59
0
Vladislav Khorev@Mephi1984

Developer

Отправить сообщение

Мир на геодезической сфере: алгоритмы игры Planet

Время на прочтение6 мин
Охват и читатели6.9K
Я уже больше года не писал статей с анализом процедурной генерации в играх. Сегодня мы изучим Planet — игру 2016 года с уютным дизайном, созданную одним из моих любимых разработчиков, Оскаром Сталбергом.


Другие скриншоты



Planet — наполовину технологическое демо, наполовину игра, в итоге создающая настоящую магию. Не так уж просто разобраться, как она работает, однако, к счастью, мне удалось узнать основные подробности из постов в Twitter и статей самого Оскара.
Читать дальше →

Передовой алгоритм стеганографии для более безопасного обмена информацией

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели14K

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

Гармонические колебания

Время на прочтение10 мин
Охват и читатели287K
На хабре было несколько статей по преобразованию Фурье и о всяких красивостях типа Цифровой Обработки Сигналов (ЦОС), но неискушённому пользователю совершенно не понятно, зачем всё это нужно и где, а главное как это применить.


АЧХ шума.

Лично мне после прочтения этих статей (например, этой ) не стало понятно, что это и зачем оно нужно в реальной жизни, хотя было интересно и красиво.
Хочется не просто поглядеть красивые картинки, а так сказать, ощутить нутром, что и как работает. И я приведу конкретный пример с генерацией и обработкой звуковых файлов. Можно будет и послушать звук, и поглядеть его спектр, и понять, почему это так.
Статья не будет интересна тем, кто владеет теорией функций комплексной переменной, ЦОС и прочими страшными темами. Она скорее для любопытствующих, школьников, студентов и им сочувствующих :).
Читать дальше →

[Студентам] Советы изучающим git

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели54K

Периодически от студентов приходят вопросы о работе системы контроля версий Git. Частая причина возникновения этих вопросов — непонимание разницы между репозиторием и обычной папкой.

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

Читать далее

Коннект на ладони

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели4.1K

Всем здравствуйте!

Меня зовут Павел, хочу добавить свои пять копеек к теме dial-up.

Имея слабость к ретро-электронике, в том числе старым КПК, поделюсь опытом выхода в Интернет в 2023 году на наладонном компьютере ASUS MyPal A620 выпуска 2003 года, через dial-up модем подключаемый посредством Compact Flash.

Предпосылкой к графоманскому зуду послужили статьи вот эта, и эта, а также других уважаемых авторов, уделяющих внимание вопросу. Ну и конечно ностальгия личного опыта 2002-2004 годов. Дозвоны до провайдера, ночные сидения — почти халява же!), чаты, аська, форумы, попытки качания музыки и даже видео...

И собственно повод — dial-up модем Pretec CF 56K Modem, который внезапно появился в моей коллекции.

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

Далее

Lock-free структуры данных. Основы: откуда пошли быть барьеры памяти

Время на прочтение22 мин
Охват и читатели106K

Как только я заинтересовался lock-free алгоритмами, меня стал мучить вопрос – а откуда взялась необходимость в барьерах памяти, в «наведении порядка» в коде?
Конечно, прочитав несколько тысяч страниц руководств по конкретной архитектуре, мы найдем ответ. Но этот ответ будет годен для этой конкретной архитектуры. Есть ли общий? В конце концов, мы же хотим, чтобы наш код был портабелен. Да и модель памяти C++11 не заточена под конкретный процессор.
Наиболее приемлемый общий ответ дал мне мистер Paul McKenney в своей статье 2010 года Memory Barriers: a Hardware View of Software Hackers. Ценность его статьи – в общности: он построил некоторую упрощенную абстрактную архитектуру, на примере которой и разбирает, что такое барьер памяти и зачем он был введен.
Вообще, Paul McKenney – известная личность. Он является разработчиком и активным пропагандистом технологии RCU, которая активно используется в ядре Linux, а также реализована в последней версии libcds в качестве ещё одного подхода к безопасному освобождению памяти (вообще, о RCU я хотел бы рассказать отдельно). Также принимал участие в работе над моделью памяти C++11.
Статья большая, я даю перевод только первой половины. Я позволил себе добавить некоторые комментарии, [которые выделены в тексте так].
Передаю слово Полу

Что такое криптовалютная карта и как она работает?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели28K

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

Подробнее, как работают такие карты

Лучшая задача по программированию для собеседования

Время на прочтение7 мин
Охват и читатели75K

Готовиться к собеседованию можно по-разному: смотреть ролики на YouTube, читать документацию, положиться на судьбу и тд. В большинстве случаев кандидатам предложат решить одну или несколько задач. В этой статье вас ждет подробный разбор реальной задачки, рекомендации к ее решению и объяснение ожиданий интервьюера от кандидатов.

Читать далее

STM8L подробное руководство первых шагов

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели21K

Речь пойдет о маломощном микроконтроллере STM8L001J3. Постараюсь подробно рассказать о необходимых шагах для прошивки "hello world" и различных подводных камнях.

Читать далее

Выйди и зайди правильно

Время на прочтение8 мин
Охват и читатели56K

Управлять программистами в ИТ-компании – дело особое. Не сказать, что сильно сложное. Совру, если назову простым. Особое.

Книжек, статей, курсов создано великое множество. Что-то помогает, у кого-то получилось. Собственно, промахнуться с оценкой сложно – отрасль ведь не просто существует, но и весьма активно развивается. Даже в нашей деревне. Значит, как-то, кое-как, с горем пополам, но управление программистами не только возможно, но и получается.

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

Регулярно ИТ-бизнес думает-думает, решает-решает, плюнет, да и снова попробует старый добрый метод: нанять успешного руководителя из другой сферы. Производство, строительство, торговля – ну суть. Оттуда много кандидатов, у них подтверждённый опыт, зачастую – MBA, и они такие прям чёткие всегда! Знают, чего хотят, на что способны, чего им нужно.

Мне этих руководителей всегда искренне жаль – я знаю, что их ждёт, каков будет их путь, почему они в итоге уволятся. Я не семи пядей во лбу, просто в течение многих лет наблюдал их в обеих сферах – ИТ и той, из которой они пришли, где добились успеха. Могу плюс/минус сопоставить контексты, работающий инструментарий, важные и второстепенные личностные качества.

Много раз пытался объяснить, помочь – и начинающим руководителям-варягам, и тем, кто их тащит в ИТ. Никто, разумеется, не слушал. Ну да я уже привык, поэтому сижу себе помалкиваю.

Однако, тут такая история вышла: в ИТ-компанию собралась устроиться некто Ира, хорошая знакомая моего хорошего знакомого. Он, как мог, пытался её отговорить, но не преуспел, т.к. сам работает программистом, и руководителем никогда не был.

Попросил меня. Я предложил формат статьи – и моё мнение услышит, и ваше. В конце концов, вполне возможно, я не прав, как это обычно случается (если верить вашим комментариям).

Итак, погнали. Буду писать, как бы лично обращаясь к Ирине.

Читать далее

Какие документы сопровождают работу нормального фрилансера

Время на прочтение6 мин
Охват и читатели6.9K

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

Читать далее

Как сделать коммерческое предложение

Время на прочтение6 мин
Охват и читатели2.1K

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

Чтобы такого не происходило, чтобы клиент сразу реагировал на запрос фрилансера внятным ответом, нужно обеспечить его грамотным коммерческим предложением (КП). Документом, отвечающим на все его вопросы и не оставляющим выбора: надо заключать сделку с этим замечательным и внимательным специалистом!

И желательно, чтобы КП у клиента появилось на руках в тот промежуток времени, когда он ещё примерно помнит, о чём разговаривал с фрилансером, а не через недельку-другую:)

С удовольствием читаю для вас главу из «Книги нормального фрилансера», отвечающую на вопрос, как такое КП написать.

Читать далее

Две культуры программирования: почему обе из них важны?

Время на прочтение13 мин
Охват и читатели59K
Уже несколько лет я замечаю, что программисты и программистские инструменты делятся на две разные культуры:



Изначально я человек первой культуры и очень долгое время считал вторую несерьёзной. Пару-тройку лет назад я окончательно понял, что ошибался. Многие «старички» ошибаются в ту же сторону, а в последние годы ещё большее число людей ошибаются в обратную. Знакомство с соседней культурой и понимание, почему дела в ней делаются так, как там принято, превратит вас в лучшего разработчика.
Читать дальше →

Сам себе сотовый оператор

Время на прочтение14 мин
Охват и читатели114K
… Кроме типовых для журнала статей, там была статья за авторством некоего «DI HALT» про то, как из двух телефонов и микроконтроллера извлечь кучу лулзов. «Прикольный ник» — подумал мальчик Андрей и перелистнул страницу, ибо ниасилил. А за ней была статья того же автора про то, как скрестить флешку с мышкой. «А вот это нам под силу» — подумал мальчик и убил уже знакомую вам флешку банальной переполюсовкой. Но зато он понял, что электроника — это весело и почти безопасно. — с просторов



Приветствую всех!

Многие из вас наверняка слышали про OsmocomBB. Однако каких-то исчерпывающих мануалов по запуску почему-то крайне мало. Итак, в ходе данной статьи постараемся максимально простым образом запустить собственную базовую станцию из доступных комплектующих. Постараемся разобраться, как сделать так, чтобы оно точно заработало.
Читать дальше →

Современные возможности C++ и проверенные паттерны: активный объект, внешний полиморфизм и корутины

Время на прочтение14 мин
Охват и читатели19K

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

Читать далее

С чего айтишнику можно начать 2023 год?

Время на прочтение5 мин
Охват и читатели17K

Отдохните после 2022 года! На этом можно завершить статью.

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

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

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

Читать далее

Воссоздаем старую компьютерную графику с помощью генеративных моделей

Время на прочтение5 мин
Охват и читатели6.1K

Могут ли современные алгоритмы создавать улучшенные версии старой графики видеоигр с более высоким разрешением?

Последние несколько дней я использовал ИИ-генерацию изображений для воспроизведения одного из кошмаров моего детства. Я использовал Stable Diffusion, Dall-E и Midjourney, чтобы посмотреть, как эти инструменты генерации изображений могут помочь улучшить старую визуальную историю - вступительный фильм к старой видеоигре (Nemesis 2 на MSX). В этом посте описывается процесс и мой опыт использования этих моделей для улучшения графики.

Читать далее

Travel hacking: Покупаем билеты выгодно

Время на прочтение7 мин
Охват и читатели15K

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

Ноябрь — время планирований путешествия на Новый год, как домой, так и на отдых. Покупать билеты можно по-разному. Можно потратить 250000 рублей на полет в Турцию, а можно за 7000 слетать в Таиланд. Так как новогодние перелеты часто «гибкие», можно перебирать разные варианты и системы бронирований, чтобы найти оптимальные даты и пункт назначения. И именно о последних интересностях, а также советах из моих поисков и других путешественников, кто помогал в создании этой статьи, эта статья.

Поехали!

Как создать игру в Telegram за 20 недель и не спиться

Время на прочтение5 мин
Охват и читатели34K

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

Читать далее

Продолжение серии статей про работу исключений в С++ «под капотом»

Время на прочтение3 мин
Охват и читатели3.7K

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

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Бишкек, Кыргызстан, Кыргызстан
Дата рождения
Зарегистрирован
Активность

Специализация

Фулстек разработчик, Разработчик игр
Ведущий
От 550 000 ₽