Как стать автором
Обновить
26
0
Тензин Константин @tenzink

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

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

Вы точно хотите пойти программистом в gamedev?

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

Хочу вас огорчить, программисты не делают игры - их делают дизайнеры и арт. Можно уволить программиста и на его место придет другой и через условные месяц-два-полгода начнет закрывать таски не хуже. Если увольняется дизайнер, его монстр, пушка или контент повисает без хозяина и без "видения". Если её не перехватил сосед (а у соседа свой монстр), то в большинстве случаев его работа просто уходит в стол и монстра пишут заново на тех же ассетах и принципах, но заново.

Если увольняется арт-директор, который несет "видение" проекта, то проекту становится очень плохо, в большинстве случаев визуально он изменится до неузнаваемости, хотя ассеты могут быть те же самые. Программисты делают всё, кроме самой игры: рендер, звук, физику, сеть, AI, инверсную кинематику, поиск пути и т.д. Можем подискутировать в комментариях.

O, тепленькая пошла!
Всего голосов 217: ↑213 и ↓4+258
Комментарии234

Чем хорош Rust для продакшена?

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

За последние годы интерес к Rust значительно вырос. Отчасти этому способствовало то, что ведущие участники технологической индустрии, такие как Microsoft, Google и Amazon рассказали о своём опыте использования этого языка в реализации критических систем.

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

Будучи консультантом по Rust, я имел возможность работать со многими компаниями: как крупными, так и малыми. В итоге я понял, что организации в первую очередь ценят продуктивность, стабильность и удобство при долгосрочной поддержке, а не производительность.
Читать дальше →
Всего голосов 53: ↑47 и ↓6+67
Комментарии23

Решаем задачу асинхронного ввода-вывода с библиотекой Asio

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

Привет, Хабр! Меня зовут Илья Казаков, я C++ разработчик в команде систем хранения данных  компании YADRO, одна из моих задач — реализация эффективных IO-bound программ под Linux. 

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

Узнать больше →
Всего голосов 14: ↑13 и ↓1+15
Комментарии22

Тот самый датасет, где архитектор чуть не сошёл с ума

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

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

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

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

И вот на «берём данные с датчиков» мы споткнулись в первый раз. Архитектор, умный адекватный мужик, привыкший работать с синтетическими данными и чистой математикой, чуть не сошёл с ума на нашем реальном производстве.

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

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

  • Невозрастающей.
  • Немонотонной.

В смысле, что это в принципе физически невозможно, но часто происходит. Ещё могут быть скачки во времени и другие нарушения причинно-следственной связи.
Читать дальше →
Всего голосов 52: ↑51 и ↓1+62
Комментарии42

BTRFS для самых маленьких

Время на прочтение22 мин
Количество просмотров137K
Доброго времени суток, Хабравчане.  Я работаю в компании Veeam Software и являюсь одним из разработчиков нашего решения для бэкапа линукс систем. По роду занятий мне довелось столкнуться с BTRFS. Совсем недавно она перешла из статуса «еще не пригодно» в статус «стабильна». И пока её первые пользователи в сети обсуждали проблемные места и вопросы стабильности, мы в Veeam тыкали её палочкой и пытались бэкапить. Получалось, мягко говоря, не очень — слишком уж она другая, не похожая на традиционные файловые системы. Пришлось изучить немало аспектов и собрать множество граблей, прежде чем научились с ней работать. В процессе изучения BTRFS сумела произвести на меня впечатление как в хорошем смысле, так и не очень. Уверен, она не оставит равнодушным ни одного айтишника из мира линукс: одни будут плеваться, другие восхвалять.

Если вы слышали об этой файловой системе, но не знаете, зачем она, интересуетесь подробностями или ищете, с чего начать знакомство с ней — приглашаю под кат.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии59

Эйчары такие противные девочки, которые отказывают из-за цвета глаз: найм глазами IT-рекрутера

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

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

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

Читать далее
Всего голосов 81: ↑54 и ↓27+42
Комментарии366

Фаззинг с AFL++. Знакомство

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

Для реверсера, пывнера и бинари ресерчера очень важно уметь фаззить, поэтому данные статьи посвященны новичкам, которые только начинают фаззить и знакомятся со зверьком - AFL++.

Фаззинг (fuzzing) — техника тестирования программного обеспечения, часто автоматическая или полуавтоматическая, заключающаяся в передаче приложению на вход неправильных, неожиданных или случайных данных. Предметом интереса являются падения и зависания, нарушения внутренней логики и проверок в коде приложения, утечки памяти, вызванные такими данными на входе. Фаззинг является разновидностью выборочного тестирования, часто используемого для проверки проблем безопасности в программном обеспечении и компьютерных системах. (Wikipedia)

Упражнение 1 - Xpdf

В этом упражнении мы проведем фаззинг просмотрщика Xpdf PDF. Цель - найти сбой для CVE-2019-13288 в XPDF 3.02.

Чему вы научитесь

После выполнения этого упражнения вы будете знать основы фаззинга с помощью AFL

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

Как я пять лет назад начал выходить на новый уровень дохода и как у меня это до сих пор не получилось

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

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

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

Читать далее
Всего голосов 95: ↑77 и ↓18+76
Комментарии95

Как устроено автоматическое удаление мёртвого кода в Meta*

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

В фреймворке Systematic Code and Asset Removal Framework (SCARF) компании Meta* есть подсистема выявления и удаления мёртвого кода.

SCARF использует статический и динамический анализ программ для выявления кода, мёртвого с точки зрения как бизнеса, так и языков программирования. Этот фреймворк автоматически создаёт запросы изменений, удаляющие мёртвый код, выявленный при помощи анализа программ, таким образом, минимизируя трудозатраты разработчиков.

В своём предыдущем посте об автоматическом выводе из эксплуатации продуктов мы говорили о сложностях этого процесса, а также о созданном Meta* решении под названием Systematic Code and Asset Removal Framework (SCARF). В качестве примера мы рассмотрели Moments — приложение обмена фотографиями, запущенное Meta в 2015 году и закрытое в 2019 году. В статье говорится о том, как SCARF помогает в проведении процесса вывода из эксплуатации благодаря его функциям управления рабочим процессом. Мы сказали, что SCARF экономит время разработчиков, выявляя правильный порядок задач для очистки продукта, и указали, что можно заблокировать автоматическую очистку при наличии межсистемных зависимостей. Это естественным образом приводит нас к следующему вопросу: как автоматически разблокировать SCARF при наличии кода, ссылающегося на ресурс?
Читать дальше →
Всего голосов 28: ↑25 и ↓3+34
Комментарии2

Это база: нюансы работы с Redis. Часть 1

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

Привет! Меня зовут Петр и мы в компании Nixys очень любим Redis. Эта база используется, если не на каждом нашем проекте, то на подавляющем большинстве. Мы работали как с разными инсталляциями Redis, так и с разными версиями, вплоть до самых дремучих, вроде 2.2. Несмотря на то, что в Интернете очень много статей и докладов по этой БД, мы в своей практике достаточно часто встречаемся с непониманием некоторых основных концепций Redis и со стороны разработчиков, и со стороны системных администраторов.

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

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

Обзор книги «С++ 20 в деталях»: доступно, но не для джунов

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

Привет, Хабр! Меня зовут Дмитрий Луцив, я работаю в СПбГУ на кафедре системного программирования, веду ряд IT-дисциплин на математико-механическом факультете в лабаратории компании YADRO и помогаю вузам актуализировать образовательные программы под задачи индустрии.

Я давно не программировал на С++, но стараюсь не отставать от изменений, происходящих в языке. Книга «C++ 20 в деталях» заинтересовала меня личностью автора (на секунду, это Райнер Гримм) и возможностью познакомиться с новым источником знаний о «плюсах». Решил ее прочитать, чтобы понять, кому материал будет полезен и могу ли я его рекомендовать. Под катом расскажу, что в книге хорошего, а что можно было бы сделать лучше, а также дам список дополнительных источников для специалистов разного уровня.

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

Роль HR в борьбе с профессиональным выгоранием

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

Привет, Хабр!

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

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

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

Читать далее
Всего голосов 15: ↑8 и ↓7+3
Комментарии12

Что будет с оборотнем, если отправить его на Луну?

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

Сейчас мы находимся в самом разгаре страшного сезона — Хэллоуин уже не за горами. Мало того, (28 октября) наступает полнолуние, так что самое время обсудить проблему оборотней — или, как её называют в научной литературе, ликантропический принцип.

Все мы знакомы с легендой. Оборотни в полнолуние приобретают форму волка и жаждут охоты, особенно когда добычей становятся люди. Здесь нет необходимости вдаваться в подробности. Более подробную научную информацию можно найти у Вагнера, 1941, Лэндиса, 1981, и, особенно в отношении поражения молодых жертв, в Дэниела, 1985.

Гипотезы о научных основах изменений многочисленны, но, к сожалению, эмпирические исследования немногочисленны. (И это неудивительно, учитывая уровень смертности среди наблюдателей). Медицинские журналы время от времени публикуют спекулятивные работы по биологии ликантропического превращения, но, опять же, достоверных данных мало. Эта проблема усугубляется тем, что полученные после смерти особи возвращаются в человеческий облик, что необратимо изменяет ДНК и биохимию всех извлечённых образцов.

Читать далее
Всего голосов 36: ↑34 и ↓2+44
Комментарии20

Виды баз данных. Большой обзор типов СУБД

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

Часто, в обзорах видов баз данных упоминают реляционные и “другие”, “NoSQL” и т.д., либо приводят самые основные типы СУБД (базы данных), забывая о редких. В данной статье я постараюсь описать максимально полно виды баз данных и привести примеры конкретных реализаций. Разумеется, статья не претендует на всеохватность и классифицировать базы данных можно по разному, в том числе по типам оптимальной нагрузки и т.д., но надеюсь, она даст базовое представление о видах СУБД и принципах их работы.

В статье мы рассмотрим следующие типы баз данных:

Читать далее
Всего голосов 38: ↑36 и ↓2+38
Комментарии16

С 31-го февраля в России полностью запретят VPN

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

Как вам заголовок, а? Как вам такой подарочек на Рождество? 

Нет, это неправда, это шутка такая.

Не с 7-го января запретят. С другого числа запретят.

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

AmneziaVPN снова на связи!

Читать далее
Всего голосов 468: ↑126 и ↓342-193
Комментарии200

Мнение три года спустя: стоил ли того переход с JavaScript на Rust?

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

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

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

Спустя три года, выполнив несколько развёртываний в продакшен, написав электронную книгу и выпустив примерно сто пакетов на crates.io, я решил, что настало время поделиться своими мыслями о Rust.

Читать далее
Всего голосов 40: ↑39 и ↓1+53
Комментарии64

Как в 180 000 раз ускорить анализ данных с помощью Rust

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

В этой статье я опишу одно из последних своих дерзновений в сфере оптимизации производительности с помощью Rust. Надеюсь, что в ней вы откроете для себя какие-то новые приёмы для написания быстрого кода на Rust.
Читать дальше →
Всего голосов 58: ↑52 и ↓6+68
Комментарии12

Создаем свой VPN с защищенным от блокировок протоколом AmneziaWG, или WireGuard на максималках

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


Всем привет! Возможно уже совсем скоро разные новостные и  IT-ресурсы будут подчищать информацию о способах обхода блокировок. А пока этого не случилось, запасаемся полезными гайдами и разворачиваем свои собственные VPN с защищенными от блокировок протоколами. Расскажу как это сделать, как изменилась Amnezia и как мы защитили WireGuard от блокировок.

Читать далее
Всего голосов 91: ↑89 и ↓2+111
Комментарии123

Куда девать 300 багов: автоматизация бэклога и RICE для багов

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

POV: Вы только что начали работать над новым проектом и встретились с небольшой проблемой — в бэклоге багов обнаружилось 300+ открытых тасок. Первая реакция — недоумение, отчаяние и боль от увиденного. «Ну ничего, – думаете вы, – это же как раз то, зачем я нужен этой компании, сейчас я им всё пофикшу!».

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

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

Самый научный гайд по сну

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

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

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

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

Читать далее
Всего голосов 103: ↑97 и ↓6+121
Комментарии134

Информация

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