Как стать автором
Поиск
Написать публикацию
Обновить
38
0.1

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

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

Как работает компьютер: глубокое погружение (на примере Linux)

Уровень сложностиСложный
Время на прочтение48 мин
Количество просмотров188K



Введение


Я делала много вещей с компьютерами, но в моих знаниях всегда был пробел: что конкретно происходит при запуске программы на компьютере? Я думала об этом пробеле — у меня было много низкоуровневых знаний, но не было цельной картины. Программы действительно выполняются прямо в центральном процессоре (central processing unit, CPU)? Я использовала системные вызовы (syscalls), но как они работают? Чем они являются на самом деле? Как несколько программ выполняются одновременно?


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


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


Более удобный формат статьи.

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

Open Source: ключевые вызовы для разработчиков

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров4.7K


Привет, Хабр! Меня зовут Саша Белоцерковский, я евангелист-архитектор из VK Tech, а еще раньше — из Microsoft, где волонтерил в качестве лидера глобального Open Source-сообщества. Я очень люблю Open Source, люблю людей, которые работают в нашем большом сообществе. 
Читать дальше →

Бизнес-ключ и суррогатный ключ нужны оба

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

Пару дней назад я агитировал всеми уважаемого эксперта в хранилищах данных за новый стандарт суррогатных ключей UUIDv7 для высоконагруженных систем. И я получил от него ответ, что суррогатные ключи не нужны, а нужны лишь бизнес-ключи (естественные ключи). Этот абсурдный ответ заставил меня написать ответное письмо, а затем и эту статью.

Читать далее

Можно ли оставаться анонимным внутри государства, которое закрыло весь внешний Интернет?

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

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

Читать далее

Залипнуть в старые игры: или ностальгии псто

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

Вы играли в детстве в компьютерные игры? Нет, не в «Марио» на «Денди», а в обычные игры для РС? Наверняка да. А это значит, что нет-нет, да возникнет ностальгия по прежним временам, когда можно было провести вечер за Doom или «Цивилизацией». На худой конец, даже за Tetris.

К сожалению, множество старых залипательных игр сегодня уже недоступны – они просто не будут нормально работать на современном железе. Но есть несколько игровых проектов, которым их поклонники подарили новую жизнь.

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

Вы любите играть в Герои 3, а ваша половинка вас: 6 карт для свиданий

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров23K


После прошлого поста с подборкой хадкорных карт(Вы не умеете играть в Героев 3: 13 карт S-размера, которые вы не пройдете за вечер), из комментов узнала, что некоторые любят поиграть в альянсе со своей половинкой.

У меня в Героях 3 было идеальное свидание. Мы с 8 вечера до 8 утра сидели у меня в офисе, ели пиццу и рубились в альянсе на большой карте против злобного ИИ, который нашел себе Крылья Ангела и прятался за горным перевалом, а мы вылавливали его с Оковами Войны. Сложных боев там не было, но чувство «родства душ» от решения общей задачи возникло потрясающее.

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

  • отличаются от автосгенерированных (потому что просто надоело, хочется крафта/лора/разнообразия);
  • маленького [S] или среднего [M] размера (потому что хочется играть один вечер, а не весь вечер, всю ночь, всё утро, и ещё пару дней «чинить» режим дня);
  • с альянсом для двоих игроков (потому что разводиться после каждого PvP — так себе квест).

Я веду ламповый Telegram-канал GameDEVils и блог на Substack . Заглядывайте в гости, я делюсь там материалами про геймдизайн, разработку и историю игр ^__^
Читать дальше →

Реверс-инжиниринг интеллекта персонажей: как спроектировать НЕтупого Волдеморта

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


Сказать, что всем надоели клише в играх — уже клише. Я искала, что полезно почитать про нарратив. Нашла «Краткое руководство по умным персонажам» от Элиезера Юдковского, автора «Гарри Поттер и Методы Рационального Мышления».

Оригинал статьи на 18,5к слов. После первого часа мозг закипел и молил пощадить его. Видимо, мозг не в курсе, что мы — умный персонаж. Решила сделать конспект, как шпору в универе, чтобы в памяти осталось. Старалась как могла, ужалась до 1,3к слов, это уже ~5 минут чтения, а не 2-3 часа.

Но сначала версия на 3 секунды:

  • Умный персонаж не поступит глупее, чем вы.

А вот на 30 секунд чтения:

  • Чтобы не писать глупостей, пробуйте писать от первого лица.
  • Очки, худоба, неуверенность с девушками и много умных слов — самый отстойный способ показать интеллект.
  • Чтобы уважать персонажа, особенно злодея, мысленно привяжите его к знакомому, чей интеллект уважаете.
  • Причина ошибок умных персонажей — хорошая и продуманная идея не сработала на все 100% как планировал персонаж (и ожидал читатель).
  • Чтобы поставить героя с интеллектом перед «настоящим» моральным конфликтом, выберите два близких вам конфликтующих идеала. Сомневайтесь, который из двух идеальнее. Еще сомневайтесь. Готово.
  • Запишите все доводы в пользу Злодея так, чтобы последователи Злодея не догадались бы, что это писал не Злодей.
  • Если ваш персонаж превосходит целый мир, опишите причины.
  • Не используйте научные термины, объясняйте суть.


Я веду канал в Telegram GameDEVils и блог на Substack . Подписывайтесь, я делюсь там материалами про геймдизайн, разработку и историю игр.

Ниже мой вариант краткого содержания на ~5 минут чтения (но без примеров из «Наруто» и канонического «Гарри Поттера», как в оригинале).
Читать дальше →

Анатомия игры: строение файловой системы на примере Elden ring и не только

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


Добрый день, уважаемые хабражители. С вами снова Людмила Хигерович. Но сегодня мы не будем говорить непосредственно о 3D-модельках и тонкостях моделирования. Вместо этого немного отвлечемся и познакомимся с устройством архивов одной из самых популярных игр этого года и номинанте на премию Game of the year — Elden Ring, а также сравним её строение с другими играми.

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

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

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

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

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

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

Я веду ламповый Telegram-канал GameDEVils и блог на Substack . Заглядывайте в гости, я делюсь там материалами про геймдизайн, разработку и историю игр ^__^
Читать дальше →

Не обманывайте себя: вы не «исправите это потом»

Время на прочтение4 мин
Количество просмотров7.5K
Недавно я одобрил pull request от коллеги с таким описанием: «Сделано костыльно, но мне не хватает сегодня времени реализовать это лучше». И тогда я задумался: когда же будет устранен этот «костыль»? На память приходит много случаев, когда я сам или мои коллеги отправляли в работу код, который нас не вполне устраивал (с точки зрения простоты поддержки, качества, чистоты, из-за проблем с функциональностью, неважного пользовательского опыта и т.д.). С другой стороны, воспоминаний о том, как мы реально возвращались к чему-то и вносили необходимые изменения, у меня гораздо меньше.

Где-то я читал (к сожалению, сейчас не могу найти источник) такую мысль: «Чем дольше что-либо остается неизменным, тем меньше вероятность, что оно изменится в будущем». Иными словами, начиная с того момента, как мы отправили в релиз «костыль», шансы на то, что он будет исправлен, неуклонно снижаются с течением времени. Если сегодня мы его не устраним, завтра вероятность станет ниже. Послезавтра она еще снизится, через неделю – еще, через месяц – еще…

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

От Skype до WebRTC: как мы организовали видеосвязь через веб

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


Видеосвязь — основной способ общения преподавателя и студента на платформе Vimbox. Мы давно отказались от Skype, перепробовали несколько сторонних решений и в итоге остановились на связке WebRTC — Janus-gateway. Некоторое время нас все устраивало, но все же некоторые негативные моменты продолжали вылезать. В итоге было создано отдельное направление по видео.


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

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

Spring Boot — OAuth2 и JWT

Время на прочтение13 мин
Количество просмотров101K
Салют, друзья! Уже завтра стартуют первые занятия в новом потоке курса «Разработчик на Spring Framework». В связи с этим традиционно делимся полезным материалом по теме.



В этой статье мы изучим использование OAuth2 и JWT совместно со Spring Boot и Spring Security.

Сервер авторизации (Authorization Server)


Сервер авторизации (Authorization Server) является наиболее важным компонентом в архитектуре безопасности Web API. Сервер авторизации действует как единая точка авторизации и позволяет вашим приложениям и HTTP endpoints определять функции вашего приложения.

Сервер ресурсов (Resource Server)


Сервер авторизации предоставляет клиентам токен доступа для доступа к HTTP Endpoints сервера ресурсов (Resource Server). Сервер ресурсов — это коллекция библиотек, которая содержит HTTP Endpoints, статические ресурсы и динамические веб-страницы.
Читать дальше →

Docker: вредные советы

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


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


Читаешь детям «Вредные советы» Григория Остера, и видишь, как легко и непринужденно до них доходит, что так делать нельзя.


О том, как правильно писать Dockerfile, написана куча статей. Но мне не попадалось инструкций, как писать неправильные Dockerfile. Восполняю этот пробел. И, может быть, в проектах, которые я получаю на поддержку, таких докерфайлов станет меньше.

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

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

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

Андрей Копылов, наш технический директор, любит, активно использует и пропагандирует Docker. В новой статье он рассказывает, как создать пользователей в Docker. Правильная работа с ними, почему пользователей нельзя оставлять с root правами и, как решить задачу несовпадения идентификаторов в Dockerfile.

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

MVCC-4. Снимки данных

Время на прочтение9 мин
Количество просмотров35K
Рассмотрев вопросы, связанные с изоляцией, и сделав отступление об организации данных на низком уровне, мы в прошлый раз подробно поговорили о версиях строк и проследили, как изменяется служебная информация в заголовке версии при различных операциях.

Сегодня мы посмотрим на то, как из версий строк получаются согласованные снимки данных.

Что такое снимок данных


Физически в страницах данных могут находиться несколько версий одной и той же строки. При этом каждая транзакция должна видеть только одну (или ни одной) версию каждой строки так, чтобы вместе они составляли согласованную в ACID-смысле картину данных на определенный момент времени.

Изоляция в PostgreSQL строится на основе снимков данных (snapshot): каждая транзакция работает со своим снимком данных, который «содержит» данные, которые были зафиксированы до момента создания снимка, и не «содержит» еще не зафиксированные на этот момент данные. Мы уже видели, что изоляция при этом получается более строгая, чем требует стандарт, но не лишенная аномалий.
Читать дальше →

USB панель управления космическим кораблем своими руками

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

Здравствуйте, дорогие читатели!

Пришла мне тут одна идейка, а не собрать ли пульт управления космическим кораблем. На USB. С нативной поддержкой драйверов. Custom HID. Чтобы воткнул и всё работает, без всяких танцев и бубнов. В итоге, получился некий монструозный «геймпад» для космических симуляторов. В общем, судите сами.
Читать дальше →

Виды моделирования. Основы скульптинга, ретопологии и развертки

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


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

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

О простых вещах-сложно. Письмо химика 3D-печатнику. Растворители для пластмасс и защита от них

Время на прочтение15 мин
Количество просмотров109K
DIY посвящается...

Одним из наиболее часто задаваемых вопросов в моей консультационной практике являются вопросы связанные с растворением/склейкой пластмасс с помощью всевозможных органических растворителей. В последнее время произошел настоящий всплеск интереса к химии высокомолекулярных соединений, связанный с появлением доступных 3D принтеров и необходимостью ориентироваться в «чернилах» для них (т.е. полимерных нитях-филаментах). Лишний раз убеждаюсь в том, что ни один, даже самый продвинутый «музей науки» с эффектным шоу не может так заставить IT-шника интересоваться пластмассами, как собственный 3D-принтер. Так что, читатель, если тебе хоть раз приходилось думать чем склеить пластмассу, которую не клеил default-ный суперклей, если мучали сомнения по поводу растворения поддержек свежеотпечатанной детали, да и просто интересно, чем можно отмыть клей от магазинного ценника на подарке — прошу под кат. Также настоятельно рекомендую страницу отправить в закладки не только тем, кто часто занимается склеиванием пластмасс, но и всем тем, кому часто приходится работать с различными растворителями/разбавителями. Делалось для себя — подарено Хабру!

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

Информация

В рейтинге
6 812-й
Откуда
Магнитогорск, Челябинская обл., Россия
Дата рождения
Зарегистрирован
Активность