Pull to refresh
0
0
Олег Серебряков @Bandicoot

User

Send message

Каково это: строить бизнес в разработке, когда тебе 40

Reading time8 min
Views22K
Кадр из фильма «Перекрёсток» (1986)

Я родился в 1981-м, так что в прошлом году мне стукнуло 40. Если верить Википедии, это первый год поколения Y (миллениалов). Миллениалов обычно ассоциируют с претенциозным характером, и в моём случае так оно и есть. Родители кучу раз говорили мне, как тяжело им приходилось работать и идти на жертвы, чтобы обеспечить для меня достойное образование. Из этого следовало, что мне следует как можно лучше учиться и усердно трудиться, что я и делал (спасибо вам за совет, мама и папа ✝). И вот чему я научился. Это моя история о росте, обязанностях и пределах.
Читать дальше →
Total votes 74: ↑64 and ↓10+54
Comments51

Система типов — лучший друг программиста

Reading time8 min
Views31K

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

Значение в string не лучший тип для записи адреса электронной почты или страны проживания пользователя. Эти значения заслуживают гораздо более богатых и специализированных типов. Мне нужно, чтобы существовал тип данных EmailAddress, который не может быть null. Мне нужна единая точка входа для создания нового объекта этого типа. Он должен валидироваться и нормализироваться перед возвратом нового значения. Мне нужно, чтобы этот тип данных имел полезные методы наподобие .Domain() или .NonAliasValue(), которые бы возвращали для введённого foo+bar@gmail.com значения gmail.com и foo@gmail.com. Эта полезная функциональность должна быть встроена в эти типы. Это обеспечивает безопасность, помогает предотвращать баги и существенно повышает удобство поддержки.
Читать дальше →
Total votes 120: ↑118 and ↓2+116
Comments90

Как я писал компилятор С++. Пересказ спустя 15 лет

Reading time8 min
Views52K
15 лет назад не было Хабрахабра, не было фейсбука, и что характерно, не было компилятора С++, с выводом диагностических сообщений на русском. С тех пор, вышло несколько новых стандартов С++, технологии разработки сделали гигантский скачок, а для написания своего языка программирования или анализатора кода может потребоваться в разы меньше времени, используя существующие фреймворки. Пост о том, как я начинал свою карьеру и путем самообразования и написания компилятора С++, пришел к экспертному уровню. Общие детали реализации, сколько времени это заняло, что получилось в итоге и смысл затеи — тоже внутри.

image
Читать дальше →
Total votes 114: ↑109 and ↓5+104
Comments117

Разбираемся в необычной проблеме с WiFi

Reading time4 min
Views36K

Что?


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


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

Эта проблема возникла примерно во время моего переезда через всю страну из штата Вашингтон в Южную Каролину, поэтому было слишком много факторов, чтобы с лёгкостью выявить источник. Однако в основном проблема влияла только на игры и аудио-/видеозвонки, поэтому я особо не обращал на неё внимания.

На протяжении последней пары месяцев я постепенно пытался разобраться, что происходит, но до сегодняшнего дня мне этого сделать не удавалось.
Читать дальше →
Total votes 151: ↑149 and ↓2+147
Comments96

Как я в зеленом банке архитектором работал

Reading time10 min
Views35K

Привет, друзья!

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

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

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

Читать далее
Total votes 99: ↑92 and ↓7+85
Comments77

Как прогресс ухудшил жизнь продвинутых пользователей (и как это исправить)

Reading time7 min
Views41K

Я не люблю нытьё «раньше трава была зеленее» и в целом рад техническому прогрессу. Но считаю, что вместе с развитием компьютеров произошли и некоторые перемены, которые ухудшили жизнь «продвинутых пользователей» (power users) в угоду массовому пользователю. Перемены, которые мешают людям использовать технологии максимально эффективно.

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

Что-то в тексте может показаться спорным, поэтому хочу уточнить: хотя этот пост размещён в блоге компании, мнение только моё личное.

Читать далее
Total votes 155: ↑151 and ↓4+147
Comments487

Почему массивы начинаются с нуля

Reading time7 min
Views57K
Самое очевидное объяснение: индекс — это смещение относительно начала массива. Так элементы массива легче адресовать в памяти.

Проверим это на C.

#include <stdio.h>
int main()
{
    int data[3] = {1, 2, 3};
    int i = 0;
    printf("Array address: %p\n", data);
    do {
        printf("Array[%u] = %p\n", i, (void *)(&data[i]));
        i++;
    } while(i < 3);
}

Получим результат:

Array address: 0x7ffd7c514a6c
Array[0] = 0x7ffd7c514a6c
Array[1] = 0x7ffd7c514a70
Array[2] = 0x7ffd7c514a74


Как первый (нулевой) элемент, так и сам массив находятся по одному и тому же адресу, поскольку 0-й элемент удалён на 0 элементов от начала. Эта связь между указателями и массивами в C настолько тесная, что их даже можно рассматривать вместе.

Однако это ответ на вопрос «зачем», а не «почему». Нумеровать массивы с нуля стали не сразу. Удивительно, но развитие такого простого вопроса не умещается в предложении или абзаце.
Читать дальше →
Total votes 122: ↑121 and ↓1+120
Comments204

Воспоминание о будущем? Что делать, когда булка хлеба стоит четверть фломастера

Reading time6 min
Views38K

Я пишу эти строки поздней осенью 2022 года, когда официальный уровень инфляции в Западной Европе перевалил порог десяти процентов, а в некоторых странах восточной Европы - двадцати. Сравнение реальных прошлогодних и нынешних цен на важнейшие товары и услуги позволяет предположить, что официальная статистика лукавит и уровень инфляции намного выше. Стоят Европа, США, Россия на пороге гиперинфляции? Я не берусь судить.

В этой статье я хочу поделиться воспоминаниями о своих личных соприкосновениях с гиперинфляцией. К ИТ это имеет не очень большое отношение. Хотя и тогда мы пытались заниматься ИТ.

Читать далее
Total votes 196: ↑186 and ↓10+176
Comments527

Как стиральная машина управляет двигателем. Часть I — подключение двигателя и алгоритм стабилизации

Reading time8 min
Views50K


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

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

Электронная начинка современных бытовых приборов, особенно если речь идёт не о наколенной сборке в мастерской дядюшки Ли, а известных брендах, представляет собой чудеса оптимизации. Занимаясь ремонтом, я попутно подсматриваю достойные внимания технические решения, улыбаюсь замечая промахи проектировщиков. Временами их бывает крайне сложно объяснить чем то иным, кроме как требованиями маркетологов вносить в конструкцию элементы “планового устаревания”.

Погода на дворе не очень, очередной прототип отправляется на опытную эксплуатацию, почему бы не рассказать о чём то интересном? Давно я не писал на Хабр!
Почему двигатель, почему стиральные машины?
Ответ под катом
Total votes 105: ↑103 and ↓2+101
Comments284

Эмиграция 2022

Reading time15 min
Views55K

По сведениям Forbes Россию после 21 сентября покинули около 700 тысяч граждан. Ещё примерно 400 тысяч выехало за весну и лето, что в два раза больше аналогичного периода прошлого года. Вычитаем туристов, которые потом вернулись в Россию. Это число можно оценить по тому, сколько человек возвращалось в прошлые годы. И в сумме получается больше 800 тысяч мигрантов меньше, чем за год. Это сопоставимо с эмиграцией времён развала Советского Союза, тогда за 10-15 лет – со времён перестройки и до конца 90-ых – страну покинуло по разным оценкам от миллиона до полутора миллионов человек. Это большие цифры, которые точно повлияют на будущее, поэтому сегодня я бы хотел поговорить об эмиграции.

Читать далее
Total votes 159: ↑123 and ↓36+87
Comments347

Yii3 Overview 1. Вступление

Reading time6 min
Views13K

Yii3 – пакетный фреймворк. А это значит, что вы можете использовать библиотеки из фреймворка в отвязке от экосистемы Yii. Например, такие пакеты можно подключить к Yii 2, Symfony, Laravel, к проекту без фреймворка или в любой другой PHP-проект.

В этой серии статей разберемся с основами "тройки", принципами построения фреймворка, готовыми библиотеками, инструментами для разработки, рассмотрим готовые шаблоны и demo приложения.

Кстати, чтобы следить за прогрессом существующих пакетов в Yii3 есть отдельная страничка: https://www.yiiframework.com/status/3.0.

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

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

Reading time18 min
Views26K

Это - полный разбор алгоритма подписи на эллиптических кривых (ECDSA), который является ключевым элементом большинства блокчейнов (типа Bitcoin, Ethereum, ...). С примерами кода и реализацией с полного нуля. Всё сведено к уровню школьной математики, а читать код не обязательно!)

Читать
Total votes 83: ↑83 and ↓0+83
Comments35

Зачем тебе, бабка, тестовое

Reading time4 min
Views52K

Это не было работой мечты - просто приличный вариант, где обещали развитие. И я откликнулась в полной уверенности, что подхожу по навыкам под требования вакансии процентов на 90. Я позвонила даже - поговорили, и Александр спросил, готова ли я выполнить тестовое. Я очень нехотя уточнила, что тестовое я посмотрю, ну а потом как выйдет. Тестовые как раз обсуждались в моей предыдущей статье, я там дискуссию перечитывала раз десять.

Но. Я рассматривала только эти варианты: мне присылают тестовое, и я решу его выполнить - или решу не выполнить.

Читать далее
Total votes 164: ↑150 and ↓14+136
Comments389

Как я хакнул Ethereum кошелек друга за 26 минут на MacBook M1 Pro

Reading time5 min
Views32K

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

Слышали про уязвимость найденую в Profanity, инструменте для генерации Ethereum кошельков?

В этой статье я рассказываю, как реализовал взлом и подобрал приватный ключ к кошельку моего друга на MacBook M1 Pro (16 Гб) за 26 минут.

Ого. Как это?
Total votes 66: ↑65 and ↓1+64
Comments44

Многопоточность Java. #неОпятьАСнова #javaJunior #javaCore

Reading time11 min
Views48K

Эта статья, как и все последующие – моя попытка структурировать полученные знания в процессе изучения Java. Здесь тезисно собрана вся основная информация по теме и те формулировки, которые показались мне наиболее удачными и понятными.
Это мой конспект, если хотите.

Статья будет полезна тем, кто изучает или повторяет основы Java Core.
И тем, кто готовится к собеседованию.

Читать далее
Total votes 23: ↑21 and ↓2+19
Comments10

Блин! Да не сложно похудеть! Даже работая в IT

Reading time5 min
Views46K

Очень хочется выругаться прямо в текст! Прочитал длинную статью про похудение. Да вот она - Почему похудеть, работая в ИТ, так сложно. Хотел бы я увидеть фото автора в полный рост. Сомневаюсь что он в хорошей форме.

Первое что меня возмутило и зацепило - это сам заголовок. Смысл который этот заголовок несёт. Сразу понятно что автор будет обосновывать сложность процесса. Приведёт массу доводов, формул, исследований, ссылок. Это же — Хабр. Тут так положено.

А ещё то кол-во лайков к посту. Люди, вы серьёзно? Вы серьёзно хотите верить в то, что жиреть за компом - это неизбежно, а похудеть нереально?

В статье автор был так убедителен, что я сам чуть было не поверил. Но вовремя вспомнил что сам похудел с 96кг до 82кг следуя одному правилу - 16/8. За 3 месяца, а не за всю жизнь, как пишет автор. Вес полгода стоит на этой отметке, а в спортзал я так и не записался.

Читать далее
Total votes 139: ↑123 and ↓16+107
Comments234

Как алкоголь влияет на мозг. Углубляясь в нейробиологию

Reading time6 min
Views53K

Ром для старого пирата — это приговор. А как насчет нормального и здорового человека? Цель материала изучить не столько влияние ударной дозы во время пьянки, сколько эффект от регулярного и умеренного пития. Хотя про то, как литрами выпитый алкоголь влияет на мозг, и прав ли был доктор Ливси, мы тоже поговорим.

Читать далее
Total votes 127: ↑119 and ↓8+111
Comments260

Эволюция архитектуры интернет-телефонии Quadcode

Reading time11 min
Views2K

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

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

Наблюдения программиста в возрасте

Reading time3 min
Views70K
В колледже люди говорили мне, что я начну карьеру с написания кода, но в конечном счете приду к тому, что буду просить других писать код под свои идеи. В честь того, что это предсказание оказалось полностью неверным, вот некоторые произвольные соображения от сорокалетнего программиста, который размышляет над ходом своей карьеры.
Читать дальше →
Total votes 157: ↑147 and ↓10+137
Comments161

Кровь и бетон. Как не надо писать

Reading time8 min
Views41K

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

К чёрту. Варианты закончились. Чтобы не терять времени, перейдем к оскорблениям.

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

Читать далее
Total votes 253: ↑224 and ↓29+195
Comments183

Information

Rating
Does not participate
Location
Новочебоксарск, Чувашия, Россия
Date of birth
Registered
Activity