Как стать автором
Обновить
2
0
Мухин Игорь @mukhinid

Пользователь

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

Максимально простая игра на C++ (в консоли)

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров16K

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

Читать далее
Всего голосов 10: ↑8 и ↓2+8
Комментарии26

Файл дескриптор в Linux с примерами

Время на прочтение14 мин
Количество просмотров108K
Однажды, на одном интервью меня спросили, что ты будешь делать, если обнаружишь неработающий сервис из-за того, что на диске закончилось место?

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

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

Интервьюер прервал меня на последнем слове, дополнив свой вопрос: «Предположим, что данные нам не нужны, это просто дебаг лог, но приложение не работает из-за того, что не может записать дебаг»?

«окей», — ответил я, «мы можем выключить дебаг в конфиге приложения и перезапустить его».
Интервьюер возразил: «Нет, приложение мы перезапустить не можем, у нас в памяти все еще хранятся важные данные, а к самому сервису подключены важные клиенты, которых мы не можем заставлять переподключаться заново».

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

Интервьюер остался доволен, а я нет.

Тогда я подумал, почему человек, проверяющий мои знания, не копает глубже? А что, если данные все-таки важны? Что если мы не можем перезапускать процесс, и при этом этот процесс пишет на файловую систему в раздел, на котором нет свободного места? Что если мы не можем потерять не только уже записанные данные, но и те данные, что этот процесс пишет или пытается записать?
Читать дальше →
Всего голосов 136: ↑136 и ↓0+136
Комментарии20

Вы не умеете играть в Героев 3: 13 карт S-размера, которые вы не пройдете за вечер

Время на прочтение11 мин
Количество просмотров62K

Впервые Герои появились в моей жизни лет в 7. Как сейчас помню, зимние каникулы, тётя, старше меня на 16 лет (невероятно взрослая и крутая, слушает Металлику, у нее даже есть косуха), запускает с диска «Герои Меча и Магии III: Полное собрание». Я в предвкушении устраиваюсь сзади на диване, впереди лучшие часы для нас двоих. Для меня Геройский стрим (поиграть меня пустят только через пару лет), а для неё — несколько часов тишины.

За последние 15 лет моя игра в «Герои» не сильно менялась. Ну, сложность повыше, ну, компов побольше. Те же автосгенерированные карты, только сбоку. Если нападать, то на армию не сильно больше моей. Если магия, то жахнуть от души «Цепью молний», на крайний случай «Армагеддон», (если Черные Драконы есть). Но смысл один: строим Ратушу, захватываем Лесопилку, подбираем сундучок, скупаем прирост, отвоёвываем замок у компа. Приелось.

Сразу скачивать карту XXL-убийцу самооценки было стрёмно, а узнать, как играют тру-пацаны — интересно. Оказалось, некоторые картоделы давно уже создают карты-пазлы, с боями на подумать знание поведения ИИ, с использованием багов игры или просто на хитрую логистику. Таких карт-загадок меньше и они не очень популярны, но я нашла 13 шедевров Heroes Might and Magic III S-размера. (Будет очень много скриншотов).

Я веду ламповый Telegram-канал GameDEVils и блог на Substack . Заглядывайте в гости, я делюсь там материалами про геймдизайн, разработку и историю игр ^__^
Читать дальше →
Всего голосов 187: ↑178 и ↓9+220
Комментарии106

10 инди игр от новых авторов

Время на прочтение9 мин
Количество просмотров8.6K

Я связался с 10 разработчиками инди игр и они предоставили информцию о своем творении. Игры совершенно разные - как проработки качества, так и жанры. Составом команд и бюджетов. Некоторые из них поделились цифрами о том, сколько вложили денег в разработку. Будет интересно, приятного чтения!

Еще я создал канал в Telegram: Быть Инди, где делюсь информацией о новинках и их заработке. И YouTube канал, где можно посмотреть эту статью с живыми кадрами :-)

Читать далее
Всего голосов 12: ↑10 и ↓2+12
Комментарии1

Не отписался — без памяти остался

Время на прочтение5 мин
Количество просмотров8.6K

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

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

Читать далее
Всего голосов 8: ↑7 и ↓1+9
Комментарии4

Почему Notion

Время на прочтение2 мин
Количество просмотров25K

Год назад я написал статью под названием "Почему не Notion". Вот ссылка на эту статью. Причина создания той статьи заключалось в том, что я активно искал сервис для ведения заметок, планировщик и всё такое. Я попробовал использовать для своих целей этот сервис. В результате и родилась та статья.

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

Я не буду расписывать его + и -, не буду рассказывать, как им пользоваться. Тут я расскажу, как я по-новому увидел Notion.

И так, моя метафора.

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

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

Если вы решите освоить Notion, то вам понадобится терпение, фантазия, логика и всё такое. И если вы сможете с ним подружиться, то этот Метаморф вознаградит вас сполна. Notion не блокнот, не таблица, не БД и т.п. Он полноценное рабочее место, которое каждый создает и настраивает под себя. Вы никогда не встретите 2 одинаковых Notion. Даже если за основу вы возьмете чей-то шаблон, то очень скоро вы переделаете этот шаблон так, что от первоначального не останется и следа.

Читать далее
Всего голосов 12: ↑5 и ↓7-1
Комментарии46

cors-anywhere на чистом конфиге nginx

Время на прочтение5 мин
Количество просмотров24K

Если вы сталкивались с CORS, то знаете всю ту боль, которую испытывает разработчик, когда нужно сходить к API на другом домене. Если конфигурация сервера не доступна для настройки, то использовали какое-нибудь решение на основе не менее популярного решения cors-anywhere.

Не одним CORS едины
Всего голосов 10: ↑9 и ↓1+9
Комментарии13

Почему бог ломает симметрии

Время на прочтение9 мин
Количество просмотров52K

Первыми это обнаружили шумеры. Шумеры — это те самые ребята, которые 6 тысяч лет назад изобрели кучу полезного: колесо, плуг, письменность, классовое общество, цветные ткани, бубенчики. В том числе они изобрели календарь. Это сегодня календарь нужен чтобы не пропустить день рождения коллеги или деловую встречу, а праздники — это очередной повод выпить. А тогда нужно было знать, когда сеять пшеницу, когда собирать урожай, когда готовиться к розливу рек, когда высохнут дороги после наводнения, чтобы пойти резать соседей, ну или пойти торговать с ними. Праздники также были сугубо практического назначения, по ним отмерялось начало или окончание очередного этапа сельхоз работ. И выпить на праздники как же без этого (пивоварение тоже они изобрели). Кстати у шумеров была шестидесятеричная система счета и именно они разделили час на 60 минут, а минуты на 60 секунд. Так что теперь вы знаете кого проклинать, когда мучаетесь, переводя километры в час в метры/секунды. 

Читать далее
Всего голосов 167: ↑149 и ↓18+169
Комментарии197

Что нужно знать, чтобы быть синьором?

Время на прочтение11 мин
Количество просмотров90K

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

Ну-ка, ну-ка...
Всего голосов 165: ↑147 и ↓18+151
Комментарии258

Компилятор C# 10, .NET 6 и интерполяция строк

Время на прочтение24 мин
Количество просмотров18K

К старту курса по разработке на C# делимся материалом из блога .NET о том, как компилятор C# 10 и .NET 6 упрощают программирование, как они обращаются с форматированием, а также о причинах конкретных решений команды .NET. И это далеко не всё. За подробностями приглашаем под кат.

Читать далее
Всего голосов 27: ↑25 и ↓2+25
Комментарии60

Как я исправлял Tiobe index

Время на прочтение9 мин
Количество просмотров4.8K

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


Ну и решил опубликовать. Конечно осовременил и укомплектовал картинками.


Надеюсь, эта почти детективная история вам понравится.


Рассказ о том, как работает Tiobe index, как это связано с ассемблером и о моей маленькой роли во всем этом.

Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии64

Как муравьи решают проблемы коммивояжёров

Время на прочтение9 мин
Количество просмотров17K

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

Читать далее
Всего голосов 41: ↑41 и ↓0+41
Комментарии4

Как белорусы уже 30 лет делают искусственный интеллект при помощи ТРИЗ

Время на прочтение4 мин
Количество просмотров57K
image

«Это не программисты, это не разработчики, это — камикадзе.»

  • Минские студенты в 1987 году во главе с Валерием Цуриковым принялись программировать «Изобретающую машину» — софт, который бы усиливал интеллект инженеров и помогал изобретать. Кооператив был успешен и захватил 95% рынка бывших в странах СССР.
  • Когда СССР прекратил существовать, Валерий Цуриков перебрался в Бостон и основал свой «стартап» в 1992 году: Invention Machine Corp. Им заинтересовались Samsung, Boeing, NASA, Sony, Procter&Gamble.
  • В 1998 году журнал NASA провел опрос среди подписчиков и по результату голосования «Изобретающая машина» стала «the most innovative product in USA».
  • В 2012 году IHS inc купила Invention Machine Corp за 40 миллионов долларов.


30 лет назад Валерий Цуриков в спортивной сумке провез через границу 5000 фунтов и в Лондоне купил лицензионный язык «Пролог» (пожалуй, единственный лицензионный пакет на территории бывшего СССР). «Пролог» тогда был запрещённым к экспорту в страны СССР.

Эти ребята с фотографии тогда только что окончили радиотехнический институт и школу молодого изобретателя и с радостью начали писать на «Прологе». Они не знали, что на этом языке не было написано ни одной промышленной системы.

Через год профессору Ковальски, создателю языка «Пролог», показали рабочую систему и он не поверил, что она работает. Это был первый промышленный софт на «Прологе».
Читать дальше →
Всего голосов 68: ↑44 и ↓24+33
Комментарии209

.NET, что с тобой происходило в 2021?

Время на прочтение6 мин
Количество просмотров17K

Конец декабря, многие подводят свои итоги, а мы решили оглянуться и посмотреть, что хорошего (и не очень) случилось в мире .NET-разработки за этот год, и спросили об этом наших разработчиков.

Из хорошего называли появление рекордов в С# 9, и выход С# 10, а в топе, конечно же, релиз .NET 6 с долгосрочной поддержкой. До выхода шестой версии у нас уже много веб-сервисов работало на .NET 5, в том числе и в монолите. Теперь ко всем «фишкам» пятой версии добавляются преимущества новой.

Платформа становится всё кросплатформеннее и кросплатформеннее (возможно, благодаря этому в последнее время наблюдается рост интереса к C#). В .NET 6 сильно улучшилась производительность, появилась поддержка Apple Silicon (мы недавно писали, почему так рады этому), новые API и много других полезностей.

Что ещё запомнилось
Всего голосов 46: ↑46 и ↓0+46
Комментарии22

Внутреннее устройство Pinned Object Heap в .NET

Время на прочтение7 мин
Количество просмотров19K

Как вам известно, в .NET 5 появился новый вид кучи — Pinned Object Heap (POH, Куча Закрепленных Объектов). В отличие от других видов кучи, эта доступна разработчикам явно (что не характерно для сборщика мусора). В этой статье я объясню внутреннее устройство POH, чтобы вы лучше понимали сценарии ее использования.

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии3

Vulkan. Руководство разработчика. Текстурирование

Время на прочтение18 мин
Количество просмотров5.5K


Привет! Я перевожу руководство Vulkan Tutorial на русский язык и выкладываю переводы на Хабр. Оригинал руководства можно найти здесь.

Сегодня я перехожу к новому разделу Текстурирование (Texture mapping). Первая глава раздела, переводом которой я собираюсь с вами поделиться, называется Images.

Содержание
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии3

Хватит отдавать Гуглу ваши данные. Десять альтернатив для Google Analytics

Время на прочтение7 мин
Количество просмотров21K


4 сентября 1998 года Сергей Брин и Ларри Пейдж основали компанию Google. На заре своего существования Google представляла собой «фирму одного продукта», притом продукт получился настолько крутым и классным, что быстро пошатнул рыночные позиции конкурентов. Однако перенесемся на 23 года вперед. Современный Google — это уже давно не поисковая система. Вернее, не только поисковая система. Это огромная транснациональная и очень эффективная рекламная платформа, целый завод по производству денег, использующий в качестве сырья пользовательские данные. Но стоит ли делиться с этой платформой теми самыми данными? На этот счет есть разные мнения.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+30
Комментарии22

Как мы ИИ учили новости понимать

Время на прочтение11 мин
Количество просмотров7.6K

Все мы хотим быть в курсе происходящего поэтому часть своего времени тратим на чтение новостей, и сейчас все чаще новости приходят не из новостных сайтов или газет, а из каки-то телеграм-каналов. В итоге, через какое-то время, оказывается, что ты подписан на десяток(а может и на десятки каналов), которые постоянно что-то пишут – как следствие, тратится либо огромное количество времени на то, чтобы "что-то не пропустить". Но если посмотреть – большинство из них пишут примерно об одном, просто по-разному. Так и пришла идея научить ИИ отбирать новости, которые действительно являются главными. Конечно, есть разные ТОП-ы, вроде Яндекс.Новостей или что-то вроде итогов дня от какого-то уважаемого СМИ, но везде есть нюансики. В этой статье я постараюсь описать эти нюансики и что у нас получилось, а что нет.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии11

Почему линукс использует swap-файл

Время на прочтение8 мин
Количество просмотров100K

Жажда тюнинга может завести в неведомые дебри. И, пожалуй, едва ли не самая частая неправильная оптимизация - отключение swap-файла. Если прикинуть частоту, с которой эта ошибка встречается, то, наверное, она входит в негласный top-10 (а может и top-5) самых распространенных, самых бесполезных и самых вредных оптимизаций - потому что swap-файл это одна из самых интересных, сложно понимаемых и недооцененных  сущностей в подсистеме управления виртуальной памятью.

Читать далее
Всего голосов 89: ↑79 и ↓10+90
Комментарии409

Почему теорию Максвелла так трудно понять?

Время на прочтение11 мин
Количество просмотров33K

Перевод эссе профессора Фримана Дж. Дайсона, в котором он пытается объяснить причину контринтуитивности таких понятий как "поле".

Читать далее
Всего голосов 41: ↑41 и ↓0+41
Комментарии41

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность