Как стать автором
Обновить
4
0.1
Vasiliy Polyakov @invasy

Software Engineer

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

Как не надо проверять размер массива в С++

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

Как часто вам приходится сталкиваться с конструкцией sizeof(array)/sizeof(array[0]) для определения размера массива? Очень надеюсь, что не часто, ведь на дворе уже 2024 год. В заметке поговорим о недостатках конструкции, откуда она берётся в современном коде и как от неё наконец избавиться.

Читать далее
Всего голосов 84: ↑83.5 и ↓0.5+83
Комментарии103

Минимализм / Минималист / TMUX.config

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

Заметили, что мир становится намного красочнее, пестрее, ярче и контрастнее?

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

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

В ИТ мире тоже происходит такой сдвиг, программы для разработки (IDE) походят больше на елку с гирляндой или какие-то детские квесты из 2000-х. Странность заключается в том, что центр внимания программиста смещается со знаний, на все что угодно, но только не на написание качественного кода, изучения алгоритмов или разобраться как же все таки работает Garbage Collector (.Net мем). Становятся популярны какие-то странные супер фичи будущего, выбор красивой подсветки ошибок, умные помощники и т.д. Но самое странное все начинают называть себя экспертами всех этих ценностей.

https://github.com/paulbuzakov/tmuxconfig

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

Как собрать контейнер и не вооружить хакера

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

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

Привет, Хабр! Это Алексей Федулаев и Антон Жаболенко из Wildberries. Мы работаем в сфере информационной безопасности (ИБ) уже больше 10 лет.

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

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

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

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

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Всего голосов 506: ↑498 и ↓8+490
Комментарии351

10 самых распространенных проблем при линтинге Dockerfile'ов

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

Весной 2023 года разработчики Depot добавили в свой сервис возможность проверять Dockerfile'ы при каждой сборке.

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

Читать далее
Всего голосов 36: ↑35 и ↓1+34
Комментарии4

Заблуждения джунов о том, кто такие сеньоры

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

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

Вспоминаю время, когда я ещё плохо владел терминалом. У меня возникли какие-то проблемы с дистрибутивом Linux. Что-то не монтировалось правильно или появлялись ошибки разрешений для файлов, в которых я не мог разобраться самостоятельно, поэтому попросил помощи у одного из сеньор-разработчиков. Величественность и грация, с которой он обращался с Vim и его командами, вдохновляла, это запомнилось мне навсегда. А ещё я захотел стать таким же, как он: быстрым, эффективным, всезнающим гуру. Реальность оказалась гораздо более приземлённой, но и в каком-то смысле приносящей бóльшую отдачу.

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

CSS для печати на бумаге

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

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

В этой статье я объясню основы CSS, управляющие внешним видом веб-страниц при печати, и дам пару советов, которые могут вам помочь в этом.

Читать далее
Всего голосов 30: ↑29 и ↓1+28
Комментарии17

Фантомное питание для микрофона

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


Привет, Хабр! Большинство распространённых аудиоинтерфейсов имеют всего два входных канала, которые обычно используются как левая и правая половина стереосигнала или два канала моно. Например, для микрофона и гитары.

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

В свою очередь, микшеру необходим микрофонный предусилитель с балансным входом, фантомным питанием и фильтром верхних частот, отсекающим низкочастотные шумы, прежде всего, от вентиляторов. Именно такое устройство мы сегодня изучим и соберём.
Заодно узнаем, какие бывают микрофоны
Всего голосов 44: ↑43 и ↓1+42
Комментарии12

Популярные конфигурационные опции для работы с git

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

Привет! Я всегда мечтала, чтобы в инструментах для работы с командной строкой заранее сообщалось, насколько популярны те или иные конфигурационные опции, предусмотренные в них, например:

o    «В принципе, никто этим не пользуется»

o    «Этой опцией пользуется 80% аудитории, стоит ознакомиться»

o    «У этой опции предусмотрено 6 возможных значений, но в реальной практике применяется всего 2 из них».

Так что я решила спросить пользователей Mastodon, какие у них любимые опции конфигурации git:

А какие опции git config вы больше всего любите выставлять? В настоящее время у меня в ~/.gitconfig установлены только git config push.autosetupremote true и git config init.defaultBranch main, вот интересуюсь, а что выставляют другие люди.

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

Далее перечислю их по порядку, при этом (очень примерно) попытаюсь начать с наиболее популярных.

Все описанные опции документированы на странице man git-config, а также на этой странице.

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

Интерпретатор Brainfuck на Brainfuck

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

Когда-то давно, году в 2013-м, на глаза мне попался следующий код:

>>>+[[-]>>[-]++>+>+++++++[<++++>>++<-]++>>+>+>+++++[>++>++++
++<<-]+>>>,<++[[>[->>]<[>>]<<-]<[<]<+>>[>]>[<+>-[[<+>-]>]<[[
[-]<]++<-[<+++++++++>[<->-]>>]>>]]<<]<]<[[<]>[[>]>>[>>]+[<<]
<[<]<+>>-]>[>]+[->>]<<<<[[<<]<[<]+<<[+>+<<-[>-->+<<-[>+<[>>+
<<-]]]>[<+>-]<]++>>-->[>]>>[>>]]<<[>>+<[[<]<]>[[<<]<[<]+[-<+
>>-[<<+>++>-[<->[<<+>>-]]]<[>+<-]>]>[>]>]>[>>]>>]<<[>>+>>+>>
]<<[->>>>>>>>]<<[>.>>>>>>>]<<[>->>>>>]<<[>,>>>]<<[>+>]<<[+<<
]<]

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

Мне всегда было безумно интересно узнать, как он работает. И теперь я решил наконец-то это сделать!

Читать далее
Всего голосов 120: ↑118 и ↓2+116
Комментарии20

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

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

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

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Всего голосов 216: ↑214 и ↓2+212
Комментарии77

Анализ системы защиты от ботов на примере letu.ru

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

Анализ системы защиты сайта от ботов на примере letu.ru с использованием javascript reverse engineering.

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

Как работает сеть в контейнерах: Docker Bridge с нуля

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

В этой статье мы собираемся разобраться со следующими вопросами:

* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?

* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?

* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?

* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?

* Как реализовать публикацию портов, подобную Docker?

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

Как я устроился в Амазон и перестал переживать за свой английский

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

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

Меня зовут Андрей Столбовский, последние 5 лет я работал в Яндексе, а в прошлом году перешёл в Амазон и теперь работаю Software Development Manager в AWS Redshift – это мой первый полноценный опыт работы в международной компании. 

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

Итак, поехали. 

Поехали!
Всего голосов 282: ↑279 и ↓3+276
Комментарии160

Программисты всё вымирают и вымирают

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

Да вымереть не могут.

Откуда это всё пошло? Чем так условные «программисты» не угодили? И почему именно программисты?

Читать далее
Всего голосов 397: ↑385 и ↓12+373
Комментарии583

Айтишницы, айда рожать

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

Совсем недавно мы призывали вернуться на родину всех, кто уехал от мобилизации, рассказывая о том, как родное государство печётся о работниках сферы ИТ. Однако нельзя забывать: по российским законам тотально военнообязанными являются мужчины, в то время как призвать могут только тех женщин, у которых есть военно-учетная специальность. Значит ли это, что целая половина населения и заметное число занятых в ИТ женщин останутся без отеческой заботы правительства?

Нет, нет и ещё раз нет!

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

Читать далее
Всего голосов 190: ↑134 и ↓56+78
Комментарии965

Виза талантов в Великобританию для IT-специалистов: зачем нужна и как получить

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

Сейчас существует несколько тип виз и програм, благодаря которым Великобритания привлекает сильных специалистов в страну. Одна из наиболее привлекательных для IT-специалистов - виза талантов, также известная как Global Talent Visa UK. Она даёт возможность жить и работать в стране от 3 до 5 лет в зависимости от типа визы: Global Talent или Global Promise (об этом позже). Затем эту визу можно продлить или получить ПМЖ (Indefinite leave to remain). А через 5-6 лет после получения визы вы сможете податься на гражданство. 

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

Внутренний Я(ндекс)

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

В этой статье я хочу описать (часть) моего опыта взаимодействия со структурой, именуемой в дальнейшем «яндекс», с точки зрения работника. Опишу собеседования и этап «входа».

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

Читать далее
Всего голосов 469: ↑463 и ↓6+457
Комментарии288

16-, 8- и 4-битные форматы чисел с плавающей запятой

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

Уже лет 50, со времён выхода первого издания «Языка программирования Си» Кернигана и Ритчи, известно, что «числа с плавающей запятой» одинарной точности имеют размер 32 бита, а числа двойной точности — 64 бита. Существуют ещё и 80-битные числа расширенной точности типа «long double». Эти типы данных покрывали почти все нужды обработки вещественных чисел. Но в последние несколько лет, с наступлением эпохи больших нейросетевых моделей, у разработчиков появилась потребность в типах данных, которые не «больше», а «меньше» существующих, потребность в том, чтобы как можно сильнее «сжать» типы данных, представляющие числа с плавающей запятой.

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

Читать далее
Всего голосов 132: ↑131 и ↓1+130
Комментарии99

Как выбрать первую механическую клавиатуру. Пособие для новичка

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

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

В статье отвечу на вопросы о том, что такое HotSwap board, что за проценты в размерах клавиатур и зачем нужна крутилка на некоторых из них. А так же помогу определиться с тем, какую клавиатуру вам искать.

Читать далее
Всего голосов 31: ↑30 и ↓1+29
Комментарии102
1
23 ...

Информация

В рейтинге
3 135-й
Откуда
Россия
Зарегистрирован
Активность

Специализация

Software Developer, Backend Developer
Lead
C++
Python
Scala
Linux
High-loaded systems
CI/CD
Designing application architecture
Development management