Мой выбор остановился на простецкой игре - виселице, запускаемой в консоли, которую я решил написать на С++. Здесь я хочу рассказать о том, как я её реализовал, что использовал и т.д.
Пользователь
Файл дескриптор в Linux с примерами
Конечно же я ответил, что посмотрю, чем занято это место и если возможно, то почищу место.
Тогда интервьюер спросил, а что если на разделе нет свободного места, но и файлов, которые бы занимали все место, ты тоже не видишь?
На это я сказал, что всегда можно посмотреть открытые файл дескрипторы, например командой lsof и понять какое приложение заняло все доступное место, а дальше можно действовать по обстоятельствам, в зависимости от того, нужны ли данные.
Интервьюер прервал меня на последнем слове, дополнив свой вопрос: «Предположим, что данные нам не нужны, это просто дебаг лог, но приложение не работает из-за того, что не может записать дебаг»?
«окей», — ответил я, «мы можем выключить дебаг в конфиге приложения и перезапустить его».
Интервьюер возразил: «Нет, приложение мы перезапустить не можем, у нас в памяти все еще хранятся важные данные, а к самому сервису подключены важные клиенты, которых мы не можем заставлять переподключаться заново».
«ну хорошо», сказал я, «если мы не можем перезапускать приложение и данные нам не важны, то мы можем просто очистить этот открытый файл через файл дескриптор, даже если мы его не видим в команде ls на файловой системе».
Интервьюер остался доволен, а я нет.
Тогда я подумал, почему человек, проверяющий мои знания, не копает глубже? А что, если данные все-таки важны? Что если мы не можем перезапускать процесс, и при этом этот процесс пишет на файловую систему в раздел, на котором нет свободного места? Что если мы не можем потерять не только уже записанные данные, но и те данные, что этот процесс пишет или пытается записать?
Вы не умеете играть в Героев 3: 13 карт S-размера, которые вы не пройдете за вечер
Впервые Герои появились в моей жизни лет в 7. Как сейчас помню, зимние каникулы, тётя, старше меня на 16 лет (невероятно взрослая и крутая, слушает Металлику, у нее даже есть косуха), запускает с диска «Герои Меча и Магии III: Полное собрание». Я в предвкушении устраиваюсь сзади на диване, впереди лучшие часы для нас двоих. Для меня Геройский стрим (поиграть меня пустят только через пару лет), а для неё — несколько часов тишины.
За последние 15 лет моя игра в «Герои» не сильно менялась. Ну, сложность повыше, ну, компов побольше. Те же автосгенерированные карты, только сбоку. Если нападать, то на армию не сильно больше моей. Если магия, то жахнуть от души «Цепью молний», на крайний случай «Армагеддон», (если Черные Драконы есть). Но смысл один: строим Ратушу, захватываем Лесопилку, подбираем сундучок, скупаем прирост, отвоёвываем замок у компа. Приелось.
Сразу скачивать карту XXL-убийцу самооценки было стрёмно, а узнать, как играют тру-пацаны — интересно. Оказалось, некоторые картоделы давно уже создают карты-пазлы, с боями на
Я веду ламповый Telegram-канал GameDEVils и блог на Substack . Заглядывайте в гости, я делюсь там материалами про геймдизайн, разработку и историю игр ^__^
10 инди игр от новых авторов
Я связался с 10 разработчиками инди игр и они предоставили информцию о своем творении. Игры совершенно разные - как проработки качества, так и жанры. Составом команд и бюджетов. Некоторые из них поделились цифрами о том, сколько вложили денег в разработку. Будет интересно, приятного чтения!
Еще я создал канал в Telegram: Быть Инди, где делюсь информацией о новинках и их заработке. И YouTube канал, где можно посмотреть эту статью с живыми кадрами :-)
Не отписался — без памяти остался
Речь пойдёт про мощный инструмент, реализующий собой подход реактивного программирования и в разы упрощающий разработку — RxJS. В частности разберём один момент, про который нужно не забывать при использовании этой библиотеки, а именно — отписки.
Да, да, этот базовый момент может упускаться разработчиком, и это в свою очередь может привести к утечке памяти — об этом далее.
Почему Notion
Год назад я написал статью под названием "Почему не Notion". Вот ссылка на эту статью. Причина создания той статьи заключалось в том, что я активно искал сервис для ведения заметок, планировщик и всё такое. Я попробовал использовать для своих целей этот сервис. В результате и родилась та статья.
Но статья статьей, а поиск удобного сервиса не прекратился. И вот я снова обратил свой взор на Notion. Я уже знал примерно, чего я хочу, как это должно выглядеть и решил дать ему второй шанс.
Я не буду расписывать его + и -, не буду рассказывать, как им пользоваться. Тут я расскажу, как я по-новому увидел Notion.
И так, моя метафора.
Представьте себе рабочий кабинет, в котором все продумано его хозяином. Стол, стул, сзади в стене книжные шкафы с нужной литературой, слева папка с почтой, справа блокнот с записями, под столом тумбочки с разными полезностями, в столе выдвижной ящик с инструментами, на самом столе бумаги, канцелярские принадлежности, компьютер, калькулятор, телефон. Все находится там, где надо хозяину, под рукой и имеет интуитивно понятный доступ.
Вот все это и есть Notion. Так же, как и кабинет, обустройство Notion под себя требует времени, усилий, проб, ошибок, переделок, настроек, надстроек и т.п. Всё это занимает не один день и даже не месяц. Для того, чтобы система заработала как часы надо эти часы придумать, создать и настроить.
Если вы решите освоить Notion, то вам понадобится терпение, фантазия, логика и всё такое. И если вы сможете с ним подружиться, то этот Метаморф вознаградит вас сполна. Notion не блокнот, не таблица, не БД и т.п. Он полноценное рабочее место, которое каждый создает и настраивает под себя. Вы никогда не встретите 2 одинаковых Notion. Даже если за основу вы возьмете чей-то шаблон, то очень скоро вы переделаете этот шаблон так, что от первоначального не останется и следа.
cors-anywhere на чистом конфиге nginx
Если вы сталкивались с CORS, то знаете всю ту боль, которую испытывает разработчик, когда нужно сходить к API на другом домене. Если конфигурация сервера не доступна для настройки, то использовали какое-нибудь решение на основе не менее популярного решения cors-anywhere.
Почему бог ломает симметрии
Первыми это обнаружили шумеры. Шумеры — это те самые ребята, которые 6 тысяч лет назад изобрели кучу полезного: колесо, плуг, письменность, классовое общество, цветные ткани, бубенчики. В том числе они изобрели календарь. Это сегодня календарь нужен чтобы не пропустить день рождения коллеги или деловую встречу, а праздники — это очередной повод выпить. А тогда нужно было знать, когда сеять пшеницу, когда собирать урожай, когда готовиться к розливу рек, когда высохнут дороги после наводнения, чтобы пойти резать соседей, ну или пойти торговать с ними. Праздники также были сугубо практического назначения, по ним отмерялось начало или окончание очередного этапа сельхоз работ. И выпить на праздники как же без этого (пивоварение тоже они изобрели). Кстати у шумеров была шестидесятеричная система счета и именно они разделили час на 60 минут, а минуты на 60 секунд. Так что теперь вы знаете кого проклинать, когда мучаетесь, переводя километры в час в метры/секунды.
Что нужно знать, чтобы быть синьором?
В последнее время случилась (и продолжает случаться) тьма публикаций про кадровый голод в айти, про переоценённость синьоров, недооценённость всех остальных, про золотые горы, скандалы, интриги и конский перекос баланса фракции "программисты". Ну, короче, вы сами всё читали и вполне себе в теме. Так вот, в сим опусе хочется вспомнить, а ктож такой синьор и что ему крайне желательно знать, чтобы синдром самозванца не накрывал и чтобы окружающие уважали и на поклон за советом приходили.
Компилятор C# 10, .NET 6 и интерполяция строк
К старту курса по разработке на C# делимся материалом из блога .NET о том, как компилятор C# 10 и .NET 6 упрощают программирование, как они обращаются с форматированием, а также о причинах конкретных решений команды .NET. И это далеко не всё. За подробностями приглашаем под кат.
Как я исправлял Tiobe index
Эта история случилась в 2015 году. Тогда я написал статью для своего сайта на болгарском языке. А в прошлом году, я решил подтянуть свои знания в русском языке. И сделал этот перевод в качестве упражнения.
Ну и решил опубликовать. Конечно осовременил и укомплектовал картинками.
Надеюсь, эта почти детективная история вам понравится.
Рассказ о том, как работает Tiobe index, как это связано с ассемблером и о моей маленькой роли во всем этом.
Как муравьи решают проблемы коммивояжёров
В математике и программировании порой используются необычные названия явлений, объектов и алгоритмов. Но почти всегда такие названия позволяют быстро понять суть описываемых сущностей. Возьмём, к примеру, широко известную задачу о коммивояжёре — найти кратчайший путь между заданными точками. И действительно, сразу представляется себе коммивояжёр, которому нужно обойти все дома в небольшом городке, но при этом затратить минимум усилий и времени. Для решения этой задачи используются разные алгоритмы, один из них называется «муравьиным». Для того, чтобы разобраться с этим алгоритмом, нам для начала нужно присмотреться к поведению муравьёв в их необычном организованном мире.
Как белорусы уже 30 лет делают искусственный интеллект при помощи ТРИЗ
«Это не программисты, это не разработчики, это — камикадзе.»
- Минские студенты в 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 фунтов и в Лондоне купил лицензионный язык «Пролог» (пожалуй, единственный лицензионный пакет на территории бывшего СССР). «Пролог» тогда был запрещённым к экспорту в страны СССР.
Эти ребята с фотографии тогда только что окончили радиотехнический институт и школу молодого изобретателя и с радостью начали писать на «Прологе». Они не знали, что на этом языке не было написано ни одной промышленной системы.
Через год профессору Ковальски, создателю языка «Пролог», показали рабочую систему и он не поверил, что она работает. Это был первый промышленный софт на «Прологе».
.NET, что с тобой происходило в 2021?
Конец декабря, многие подводят свои итоги, а мы решили оглянуться и посмотреть, что хорошего (и не очень) случилось в мире .NET-разработки за этот год, и спросили об этом наших разработчиков.
Из хорошего называли появление рекордов в С# 9, и выход С# 10, а в топе, конечно же, релиз .NET 6 с долгосрочной поддержкой. До выхода шестой версии у нас уже много веб-сервисов работало на .NET 5, в том числе и в монолите. Теперь ко всем «фишкам» пятой версии добавляются преимущества новой.
Платформа становится всё кросплатформеннее и кросплатформеннее (возможно, благодаря этому в последнее время наблюдается рост интереса к C#). В .NET 6 сильно улучшилась производительность, появилась поддержка Apple Silicon (мы недавно писали, почему так рады этому), новые API и много других полезностей.
Внутреннее устройство Pinned Object Heap в .NET
Как вам известно, в .NET 5 появился новый вид кучи — Pinned Object Heap (POH, Куча Закрепленных Объектов). В отличие от других видов кучи, эта доступна разработчикам явно (что не характерно для сборщика мусора). В этой статье я объясню внутреннее устройство POH, чтобы вы лучше понимали сценарии ее использования.
Vulkan. Руководство разработчика. Текстурирование
Привет! Я перевожу руководство Vulkan Tutorial на русский язык и выкладываю переводы на Хабр. Оригинал руководства можно найти здесь.
Сегодня я перехожу к новому разделу Текстурирование (Texture mapping). Первая глава раздела, переводом которой я собираюсь с вами поделиться, называется Images.
2. Краткий обзор
3. Настройка окружения
4. Рисуем треугольник
- Подготовка к работе
- Отображение на экране
- Графический конвейер (pipeline)
- Отрисовка
- Пересоздание swap chain
5. Вершинные буферы
6. Uniform-буферы
7. Текстурирование
- Изображения
- Image view и image sampler
- Комбинированный image sampler
8. Буфер глубины
9. Загрузка моделей
10. Создание мип-карт
11. Multisampling
FAQ
Хватит отдавать Гуглу ваши данные. Десять альтернатив для Google Analytics
4 сентября 1998 года Сергей Брин и Ларри Пейдж основали компанию Google. На заре своего существования Google представляла собой «фирму одного продукта», притом продукт получился настолько крутым и классным, что быстро пошатнул рыночные позиции конкурентов. Однако перенесемся на 23 года вперед. Современный Google — это уже давно не поисковая система. Вернее, не только поисковая система. Это огромная транснациональная и очень эффективная рекламная платформа, целый завод по производству денег, использующий в качестве сырья пользовательские данные. Но стоит ли делиться с этой платформой теми самыми данными? На этот счет есть разные мнения.
Как мы ИИ учили новости понимать
Все мы хотим быть в курсе происходящего поэтому часть своего времени тратим на чтение новостей, и сейчас все чаще новости приходят не из новостных сайтов или газет, а из каки-то телеграм-каналов. В итоге, через какое-то время, оказывается, что ты подписан на десяток(а может и на десятки каналов), которые постоянно что-то пишут – как следствие, тратится либо огромное количество времени на то, чтобы "что-то не пропустить". Но если посмотреть – большинство из них пишут примерно об одном, просто по-разному. Так и пришла идея научить ИИ отбирать новости, которые действительно являются главными. Конечно, есть разные ТОП-ы, вроде Яндекс.Новостей или что-то вроде итогов дня от какого-то уважаемого СМИ, но везде есть нюансики. В этой статье я постараюсь описать эти нюансики и что у нас получилось, а что нет.
Почему линукс использует swap-файл
Жажда тюнинга может завести в неведомые дебри. И, пожалуй, едва ли не самая частая неправильная оптимизация - отключение swap-файла. Если прикинуть частоту, с которой эта ошибка встречается, то, наверное, она входит в негласный top-10 (а может и top-5) самых распространенных, самых бесполезных и самых вредных оптимизаций - потому что swap-файл это одна из самых интересных, сложно понимаемых и недооцененных сущностей в подсистеме управления виртуальной памятью.
Почему теорию Максвелла так трудно понять?
Перевод эссе профессора Фримана Дж. Дайсона, в котором он пытается объяснить причину контринтуитивности таких понятий как "поле".
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность