Pull to refresh
-11
0
Рогин Василий @roginvs

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

Send message

Как я сдала IELTS в 2023 году и подтвердила свой уровень Advanced

Level of difficultyEasy
Reading time7 min
Views9.1K

Dear Habr, I am writing to share my experience... ой, кажется, я переобучилась на вариантах части Writing. В общем, я пишу эту небольшую статью, чтобы поделиться личным способом сдачи международного экзамена по английскому языку, рассказать о подготовке, мотивации и издержках.

Let's go!
Total votes 6: ↑4 and ↓2+2
Comments10

Как перестать переусложнять и начать жить

Level of difficultyEasy
Reading time10 min
Views43K

Мое наблюдение состоит в том, что мы — разработчики и продукты, сильно переусложняем, осознанно или нет, но всякие «„Архитектурные комитеты“, „Планирования“, „Апрувы у 50 отделов“ и деплои в 2-часовые окна, простыни текста сопровождающие простейшие фичи — это просто какой‑то бич современной разработки. Умные дяди с 20 летним опытом за плечами, с невозмутимыми лицами сутки напролет на созвонах обсасывают простейшие вещи вроде замены кнопки. Что это? Следствие усложнения программного обеспечения или засилие не тех людей не на тех местах? Или следствие входа в индустрию новичков, стремящихся простое сделать сложным?

В статье мы разберем что такое „переусложнение“, дадим ему определение и на реальных примерах разберем во что это выражается и как с этим бороться.

Читать далее
Total votes 72: ↑65 and ↓7+58
Comments173

Каков C++ в gamedev'e?

Level of difficultyEasy
Reading time11 min
Views27K

Хотел написать продолжение к статье Что почитать игровому программисту? про использование С++ в игровых движках, но размышления свернули куда-то не туда.

Завороженно смотрю как и какими темпами идет развитие языка в последние годы, и понимаю, что получить и особенно применить возможности С++20/3 в разработке игр и движков получится хорошо, если с опозданием лет эдак в пять, как раз на следующее поколение консолей, если вообще получится. Сейчас плюсы в игрострое зависли где-то между 14 и 17 стандартом, Сони только-только выкатила свою версию компилятора с полной поддержкой 17 стандарта, а учитывая реактивность игровых студий в изменении кор пайплайнов, что-то новое начнут только в новых проектах. Менять коня, т.е. компилятор посреди разработки игры равносильно стрельбе не только по ногам себе, но и соседям программистам: работает - не чини.

Если смена компилятора и стандарта не даст гарантированного прироста скорости работы больше 5%, то бюджет и людей я не одобрю. (с)

Знакомство с кодовой базой больших движков дает понимание уровня и объёмов кода в продакшене и в тулзах, и ситуация вырисовывается такая, что эти объемы стали в индустрии, что называется "too big to fall", т.е. написать что-то новое, уровня движков вроде Unity/Unreal/Dagor на другом языке, будь он хоть в тысячу раз безопаснее и в десять раз быстрее не получится, но попытки конечно делаются. И чем дальше продолжается поддержка существующих проектов на плюсах, тем меньше возможности выбора остается.

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

По техдолгам будут платить наши джуны
Total votes 85: ↑84 and ↓1+83
Comments59

Электронные подписи. Но что мы знаем о мультиподписях?

Level of difficultyEasy
Reading time5 min
Views3.6K

Небольшое введение в технологии MPC и мультиподписей.

Краткое описание набора протоколов и используемой реализации мультиподписи.

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments0

STM32. Процесс компиляции и сборки прошивки

Level of difficultyEasy
Reading time30 min
Views20K
Многие из начинающих разработчиков софта для микроконтроллеров реализуют свои проекты исключительно в средствах разработки, которые предоставляются производителем. Многое скрыто от пользователя и очень хорошо скрыто, из-за чего некоторые воспринимают эти процессы сродни настоящей магии. Я, в свою очередь, как человек в пытливым умом и природной любознательностью, решил попробовать собрать проект без использования IDE и различного рода автоматизаций.

Так родилась идея для этой статьи: не используя ничего, кроме текстового редактора и командной строки, собрать проект мигания светодиодом на отладочной плате STM32F0-Discovery. Поскольку я не до конца понимал, как происходит процесс компиляции и сборки проекта, мне пришлось восполнять пробелы в знаниях. Разобравшись с этим вопросом, я подумал — а почему бы не рассказать другим об этом?

Всем кому интересно — добро пожаловать под кат! 🙂

Читать дальше →
Total votes 124: ↑123 and ↓1+122
Comments67

Кеннеди. Договориться можно обо всем (конспект)

Level of difficultyEasy
Reading time1 min
Views1.4K

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

1) Не стесняться предлагать свои условия. Твердо установленных цен не существует, всегда есть пространство для переговоров.

2) Менять не цену, а пакетное предложение. Например, если тебя просят снизить цену, то сделать это можно, но только вместе с изменением других условий (состава работ, сроков выполнения, сроков платежей и др.). Слово “ЕСЛИ” в переговорах намного более полезно, чем слово “НЕТ”. Можно идти на уступки, но никогда нельзя это делать в одностороннем (тем более превентивном) порядке. 

3) Стараться не выставлять себя финальным ЛПР, а иметь за спиной, пусть даже придуманного, но “принципала”, на которого можно сослаться для изменения условий

4) С другой стороны —  всегда стараться самому вести переговоры именно с тем, кто фактически принимает решения.

5) Выявлять и учитывать позиции и интересы другой стороны (позиция —  то, что мы хотим, интересы —  почему именно). Помнить и ориентироваться на свои интересы. 

6) При любом соглашении заранее продумывать возможные “что мы будем делать, если …”

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

Другие книги в тему: Фишер. Переговоры без поражений; Кемп. Сначала скажи “Нет”, Ури. Договорись с собой и другими достойными оппонентами; Паттерсон. Трудные диалоги (конспект по ссылке) и Розенберг. Язык жизни. Ненасильственное общение (конспект по ссылке)

Читать далее
Total votes 6: ↑3 and ↓30
Comments1

Объявление и инициализация переменных в C++

Level of difficultyMedium
Reading time41 min
Views17K


Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это шестая статья из серии, список предыдущих статей приведен в конце в разделе 7. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Данная статья посвящена объявлению и инициализации переменных.


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


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

Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments48

Состояние WebAssembly – 2023 и 2024

Level of difficultyMedium
Reading time12 min
Views7.8K

Автор статьи Жерар Галлан известен как автор книги “WebAssembly in Action”, выпущенной Manning в 2018 году. Существует перевод его книги на русский “WebAssembly в действии” (Питер, 2022). Предыдущий обзор Состояние WebAssembly в 2022-23 годах опубликован автором в январе 2023 года. — Прим. переводчика.

Добро пожаловать в 2024 год и в нашу статью о текущем состоянии WebAssembly (Wasm)! В этой статье я займусь тем, что посмотрю, что произошло в 2023 году. Затем я выскажу свои мысли о том, что может произойти в текущем году.

Читать далее
Total votes 17: ↑16 and ↓1+15
Comments13

Просто о Stable Diffusion: никакой магии

Level of difficultyEasy
Reading time15 min
Views10K

Если вы не провели последние два года на ферме в Сибири, вы, вероятно, слышали о Stable Diffusion или пробовали генерировать изображения с помощью моделей, вроде Dall-e или Midjourney. Они становятся все лучше каждый день, и по качеству уже сравнимы с людьми, а во многих аспектах даже лучше (например, им не нужно платить).

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

Читать далее
Total votes 53: ↑43 and ↓10+33
Comments28

Почему эффективной сове не выгодно нанимать даже тушканчика (а увольнять, наоборот, выгодно)

Reading time8 min
Views59K

Открываю с утра новости, а там – ни разу не было и вот опять:

Нехватку (высококвалифицированных низкооплачиваемых) специалистов выявили благодаря опросу Института экономической политики им. Гайдара (ИЭП), с результатами исследования ознакомился РБК.

Население при этом: ну да ну да.

Весной 2023 года только 2% сообщили, что в связи с СВО у них выросла зарплата, за последний год материальное положение в той или иной степени улучшилось у 15%, тогда как ухудшилось у 33%, поскольку увеличились текущие расходы (39%), а некоторые (7%) потеряли часть сбережений и/или доходов. Савин, Институт социологии РАН. «Вестник РУДН. Серия: Социология», №4, 2023

Читать далее
Total votes 231: ↑208 and ↓23+185
Comments138

История одной уязвимости в Google Chrome

Level of difficultyMedium
Reading time11 min
Views15K

Эта статья посвящена уязвимости, которую мне удалось обнаружить в браузере Google Chrome в конце прошлого года, а также рассказывает об истории её возникновения. Уязвимость существовала в течение продолжительного периода и была устранена 31 октября 2023 года. Компания Google оценила её в 16000$

Читать далее
Total votes 58: ↑57 and ↓1+56
Comments27

Почему новым сотрудникам платят больше, чем работающим давно?

Reading time7 min
Views113K

Один из самых поучительных моментов в моей карьере случился, когда я узнал, что новый коллега зарабатывает больше меня. Однажды я без задней мысли спросил его: «Какая у тебя зарплата?» Когда я услышал, что она на 40 тысяч долларов в год больше моей, то ощутил обиду, ревность и недооценённость. Как человек, имеющий ту же должность и тот же опыт, может получать на 40% больше меня? После этого открытия я начал раньше уходить из офиса, оправдывая это тем, что мне не платят справедливо. В конце концов, несколько месяцев спустя я ушёл из компании. Она предложила мне контроффер, пообещав повышение и увеличение зарплаты, но тогда я чувствовал себя оскорблённым.

Так почему же компании так поступают? Они намеренно стремятся вызвать у своих сотрудников недовольство? Они действительно думают, что работники не узнают об этой ситуации? Или они считают, что мы всё равно останемся, ведь они одни из самых лучших работодателей в мире? Позже я поработал какое-то время в отделе оплаты труда и увидел, «как делают колбасу», так что хочу поделиться размышлениями о том, почему новым работникам платят больше и почему лучший способ добиться улучшения зарплаты — перейти в новое место.
Читать дальше →
Total votes 149: ↑145 and ↓4+141
Comments273

Важные аспекты Unicode, о которых должен знать каждый разработчик JavaScript

Level of difficultyMedium
Reading time22 min
Views7.9K


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


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


Приложив определенные усилия, прочитав кучу статей — я постепенно начал понимать что к чему, и это оказалось не так уж трудно. Хотя, некоторые статьи приходилось перечитывать раза по 3.


Как оказалось, Unicode — это универсальный и удобный стандарт, но работать с ним может быть непросто из-за множества абстрактных терминов.


Если у вас есть пробелы в понимании Unicode, то сейчас самое подходящее время их заполнить! Заварите себе вкусный чай или кофе ☕. И давайте погрузимся в удивительный мир абстракций, символов, астралов (astrals) и суррогатов (surrogates).


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


Вы также узнаете, как JavaScript взаимодействует с Unicode и какие трудности могут возникнуть на этом пути.


А также, каким образом новые функции из ECMAScript 2015 могут помочь в решении этих проблем.


Готовы? Давайте начнем!

Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments6

Теория игр за 15 минут

Level of difficultyEasy
Reading time15 min
Views54K

Многие из вас, я уверен, слышали о теории игр в какой-то момент своей жизни. Если вы хотите выглядеть умным и произвести впечатление на свою девушку — просто упомяните «игру с нулевой суммой» или «эволюционную стратегию», и ваши шансы отвести её домой сегодня вечером только что подскочили на 50%. Или вы можете использовать теорию игр, чтобы принимать решения в инвестировании своих денег (чтобы их полностью потерять и разориться) или, например решая, на какой девушке жениться (что также очень вероятно вас разорит). Как видите, это очень полезная теория.

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

Читать далее
Total votes 109: ↑106 and ↓3+103
Comments27

Нельзя писать безопасный код на C++ без санитайзеров

Level of difficultyEasy
Reading time5 min
Views19K

С++ видится мне огромным франкенштейном: очень уж много разнообразных способов описать свои намерения. В добавок к этому язык пропагандирует политику zero-cost abstractions, из которой следует (помимо прочего), что программист в ответе за все свои действия. Однако, работая с большими кодовыми базами, становится крайне тяжело держать в уме различные тонкости языка, которые держать в уме нужно — иначе Undefined Behavior.

В данной статье хочу рассказать о трех интересных случаях UB, с которыми столкнулся при разработке на С++. Не думаю, что опытным разработчикам примеры из статьи будут полезны, но, полагаю, что начинающим разработчикам смогу показать на своем примере, как не стоит писать код на C++.

Читать далее
Total votes 40: ↑32 and ↓8+24
Comments157

Что нам недодали в C++

Level of difficultyMedium
Reading time12 min
Views23K

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

Читать далее
Total votes 85: ↑83 and ↓2+81
Comments177

Малоизвестные и интересные особенности C и C++

Level of difficultyMedium
Reading time43 min
Views45K

В C и C++ есть особенности, о которых вас вряд ли спросят на собеседовании (вернее, не спросили бы до этого момента). Почему не спросят? Потому что такие аспекты имеют мало практического значения в повседневной работе или попросту малоизвестны.

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

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

Читать далее
Total votes 161: ↑160 and ↓1+159
Comments61

Удаленка. Утопия или возможность?

Level of difficultyEasy
Reading time4 min
Views17K

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

Делюсь своими лайфхаками, наработанными 10 годами опыта.

Читать далее
Total votes 27: ↑15 and ↓12+3
Comments89

Оценка эффективности схем разделения секрета

Level of difficultyMedium
Reading time9 min
Views1.5K

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

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments0

4 миллиарда операторов if

Level of difficultyMedium
Reading time7 min
Views111K

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

В современном мире, где ИИ постепенно заменяет программистов, отнимая у них работу и совершая переворот в том, как мы подходим к рассуждениям о коде, нам, возможно, следует быть более открытыми к мыслям людей, недавно пришедших в нашу отрасль? На самом деле, показанный выше код — идеальный пример компромисса между временем и задействованной памятью. Мы жертвуем временем и в то же время памятью и временем компьютера! Поистине чудесный алгоритм!

Поэтому я решил изучить эту идею проверки чётности числа при помощи одних сравнений, чтобы понять, насколько хорошо она работает в реальных ситуациях. Я сторонник высокопроизводительного кода, поэтому решил реализовать это на языке программирования C, потому что он и сегодня остаётся самым быстрым языком в мире с большим отрывом от других (благодаря гению Денниса Ричи).

Читать далее
Total votes 376: ↑359 and ↓17+342
Comments153
1
23 ...

Information

Rating
Does not participate
Location
Великий Новгород (Новгород), Новгородская обл., Россия
Date of birth
Registered
Activity