Pull to refresh
16
0
Роман Илюшин @irsick

Веб програмист

Send message

Как ссориться основателям. Советы юриста и гайд по медиации

Reading time5 min
Views1.8K

Пока Фаундер №1 и Фаундер №2 выясняют отношения, умирает продукт и разваливается команда. Как правильно выйти из кризиса? Чем подстраховаться от будущих конфликтов? Распределяем обязанности и ставим фокус

Читать далее
Total votes 10: ↑3 and ↓7-2
Comments0

Без одной faangи или как я проходил собеседования

Reading time14 min
Views30K

Привет, Хабр! Меня зовут Рустам, работаю программистом 9 лет. 7 лет работал в Контуре и около 2 лет в Яндексе. В этой статье расскажу про свой опыт подготовки и прохождения собеседований в большие технологические компании, поделюсь рекомендациями.

Пробовался в Facebook, Apple, Amazon, Microsoft, Google. Пять попыток: четыре на бэкенд программиста, одна на инженера по инфраструктуре. Два предложения по работе, два отказа, одно потенциальное предложение.

Принял предложение в Amazon. Сейчас в Лондоне.

Читать далее
Total votes 69: ↑66 and ↓3+76
Comments27

Есть ли жизнь без тестов?

Reading time15 min
Views12K
Это история про то, как нам удалось написать довольно сложную business-critical систему, и добиться, чтобы она была стабильной даже без юнит-тестов (WAT?!).
Читать дальше →
Total votes 31: ↑27 and ↓4+29
Comments59

Погромист. Мои самые эпичные провалы за всю карьеру

Reading time13 min
Views104K

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

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

Читать далее
Total votes 231: ↑222 and ↓9+269
Comments204

Как строить карьеру тимлидам и СТО: рефлексия, планирование и карьерный роадмап

Reading time12 min
Views18K
Стать руководителем — один из вариантов развития карьеры разработчика. Но что делать дальше, когда кода в жизни становится всё меньше, а управления всё больше? Мы поговорили с техлидами и СТО о том, что значит, когда очередная галочка в списке целей поставлена и вы уже руководитель небольшой (или очень даже большой) команды. Как правильно развиваться в профессии дальше и что предпринять, чтобы при этом не выгореть самому и не дать выгореть команде.

Выгорел и забухал...
Приятного чтения!
Total votes 19: ↑18 and ↓1+25
Comments4

Как развитие алгоритмов сжатия остановилось 20 лет назад, или о новом конкурсе на 200 тысяч евро

Reading time18 min
Views71K

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

Пост набрал 206 «плюсов», вышел на 2 место топа недели и вызвал оживленную дискуссию, в которой мне больше всего понравился комментарий: «Коммерческого интереса эффективность по сжатию алгоритмов сжатия без потерь сегодня не представляет, в силу отсутствия принципиально более эффективных алгоритмов. Деньги сегодня — в сжатии аудио-видео. И там и алгоритмы другие. Тема сжатия без потерь удобна именно лёгкостью верификации алгоритма, и не слегка устарела. Лет на 20.» 

Поскольку я сам уже 20 лет в области сжатия видео, с ее бурным развитием мне спорить сложно. А вот что сжатие без потерь развиваться перестало… Хотя логика тут понятна каждому. Я до сих пор пользуюсь ZIP, все мои друзья пользуются ZIP с 1989 года — значит, ничего нового не появляется. Так ведь? Похоже рассуждают сторонники плоской земли. ))) Я не видел, знакомые не видели, и даже некоторые авторитеты утверждают, значит, это так! 

О том, как Intel просили меня не прекращать читать курс по сжатию, ибо людей нет новые алгоритмы делать, я в прошлый раз писал. Но тут и Huawei в ту же дуду дует! Вместо того, чтобы раздать призы и должности победителям, а затем успокоиться, поскольку развитие давно встало, эти эксцентричные люди посчитали конкурс крайне успешным и запустили новый с призовым фондом 200 тысяч EUR.

Развивались ли алгоритмы сжатия без потерь в последние 20 лет? Чем закончился прошлый конкурс и на сколько опередили baseline? Сколько денег получили русские таланты, а сколько зарубежные? И есть ли вообще жизнь на Марсе в сжатии без потерь? 

Кому интересно — добро пожаловать под кат! 
Читать дальше →
Total votes 198: ↑197 and ↓1+255
Comments134

ESP 8266: отправка данных на сайт методом Get запроса

Reading time5 min
Views34K

Привет! Это мой первый пост здесь! Решил его написать, чтобы облегчить путь всем начинающим знакомство с ESP 8266. Много времени потратил чтобы разобраться с этой темой и что-то началось получаться. Изначально я отправлял данные в таблицу Googlesheets (об этом надо написать отдельный пост). Но потом захотелось сделать опорный проект - заготовку для дальнейшего развития. Итогом стала данная статья.

Итак, у нас есть ESP-01.

Read more
Total votes 27: ↑11 and ↓16-2
Comments20

Наблюдаемость SRE: пространства имен и структура метрик

Reading time6 min
Views3.2K

Spyglass by Shorai-san

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

Это дает ряд преимуществ: просмотр определенных подмножеств данных, определение метрики с точки зрения ее дочерних элементов и установление соотношений между метриками.

Команда Mail.ru Cloud Solutions перевела статью, в которой рассматриваются свойства пространств имен метрик, позволяющие постепенно увеличивать детализацию запросов и переходить к подмножествам данных, а также просматривать метрику с точки зрения метрик, из которых она состоит. Многие из этих концепций вам знакомы, так как они реализованы в нативных решениях для облачного мониторинга, таких как Prometheus и DogStatsD.
Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments0

Создаем общую кодовую базу

Reading time5 min
Views7.6K


Из проекта в проект мы замечаем, что наш код, выполняет одни и те же функции и выглядит почти одинаково. Это заставляет задуматься — а не выполняем ли мы лишнюю работу, переписывая одно и то же? Мы начинаем копировать классы из предыдущих проектов и все равно понимаем, что делаем что-то не то и оказываемся правы — просто копируя классы из проекта в проект, мы запросто можем что-то потерять/заменить/затереть, а если еще наша команда ведет несколько проектов одновременно, то обнаружение ошибок в заимствованных классах потребует изменений вручную во всех проектах. Устав наступать на эти грабли, мы решаем, что нужен общий код, который будет расшариваться на все наши проекты и любые изменения в нем будут легко подтягиваться. Да, мы создаем свою библиотеку переиспользуемых компонентов! О разных способах организовать свою библиотеку, о всех плюсах и минусах подходов вы узнаете под катом :)

Читать дальше →
Total votes 12: ↑7 and ↓5+2
Comments1

Проекты, которые не взлетели

Reading time7 min
Views49K
Cloud4Y уже рассказывал про интересные проекты, разработанные в СССР. Продолжая тему, вспомним о том, какие ещё проекты имели неплохие перспективы, но по ряду причин не получили широкого признания или вообще были положены под сукно.

АЗС
Читать дальше →
Total votes 67: ↑50 and ↓17+33
Comments375

Как в 1995 году писали игры для Sega Saturn

Reading time8 min
Views14K
Это документ, написанный мной в 1995 году, когда я работал над первой игрой студии Neversoft: Skeleton Warriors. Это была первая игра, в которой я не использовал язык ассемблера 68K.

Фото сделано примерно в то время. Комплект разработчика (dev kit) («Small Box» и ICE) стоит справа от меня.


Состояние игры


В представленном ниже документе вкратце описывается состояние кода Skeleton Warriors для Sega Saturn, а также упоминаются некоторые из множества аспектов, которые нужно было ещё сделать.

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

Также я немного рассказываю о встраивании данных (файлы .GOV и .GOB) в программу, и о том, что мы будем делать в будущем.

Оборудование для разработки


Наша целевая платформа — Sega Saturn, имеющая два Risc-микропроцессора SH2 и один 68000. Пока мы используем только основной процессор Master SH2, вспомогательный slave SH2 будет использоваться, когда мы разберёмся, как это сделать. 68000 применяется для управления звуковым чипом, нам не пришлось писать для него код, потому что он будет использовать предоставленную Sega звуковую библиотеку.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments8

Авиакатастрофа в Шереметьево: исторические аналогии

Reading time5 min
Views88K
Изобилие камер в современном мире привело к двум следствиям. Во-первых, снятая с множества ракурсов авиакатастрофа в Шереметьево практически никого не оставила равнодушным. Во-вторых, в публичном пространстве оказалось множество инструментальных свидетельств того, что произошло. Но почему это произошло может показать только расследование, которое займет время. И вместо того, чтобы без толку гадать о причинах, которые мы должны вскоре узнать, лучше вспомнить похожие случаи из истории авиации. Потому что расширение кругозора способствует менее эмоциональной и более взвешенной оценке произошедшего.


Кадр с одной из камер
Total votes 158: ↑147 and ↓11+136
Comments1212

Задержка ввода на ретро-консолях и эмуляторах

Reading time7 min
Views24K


TL;DR В статье описывается известная проблема задержки ввода (input lag), которая проявляется при попытках играть в старые игры на современном железе: эмуляторах ретро-консолей, bluetooth-геймпадах и т.д. Иногда задержки настолько большие, что играть становится невозможно. Я опишу свой путь поиска приемлемой конфигурации для запуска моих любимых игр.

С волной популярности одноплатных компьютеров RaspberryPi, OrangePi многие знакомые накупили себе их пачками. Не придумав что с ними делать, они начали лепить из них ретро-консоли на базе эмулятора RetroArch и дистрибутива Recallbox. Когда я попробовал поиграть на этом в свои любимые игры детства я был удивлен: "Как я мог в это играть?". Физика игр казалась какой-то неправильной, ощущение отвратительное. Спустя время мне рассказали, что все дело в задержке ввода, которая на первый взгляд не ощущается как задержка, а именно как другая физика.

Оказалось, что проблема давно известна среди консольных гиков и ее активно исследуют. Я разберу чужие исследования и попытаюсь замерить задержку своего сетапа.
Читать дальше →
Total votes 67: ↑67 and ↓0+67
Comments19

Глобальное обновление отображения результатов Lamptest.ru

Reading time2 min
Views8.9K
Сегодня я рад представить вам полностью переработанную страницу отображения результатов тестирования светодиодных ламп на Lamptest.ru. Динамическое обновление таблицы, умный поиск, всплывающие подсказки, управление столбцами, наглядное отображение типа лампы — это далеко не все изменения.

Читать дальше →
Total votes 65: ↑64 and ↓1+63
Comments7

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

Reading time17 min
Views59K
Категория управляемых смарт-устройств в «рубрике» умный дом уже близка к тому, чтобы перестать поддаваться исчислению и систематизации, и отдельные прогнозы пока еще указывают на рост интереса пользователей к этой нише.



Из-за высокой конкуренции среди производителей стала заметна тенденция к созданию отдельных дешевых элементов, не входящих в какую-либо систему, а автономно работающих в паре с собственным софтом. Сегодня практически все время про них: управляемые смарт-девайсы для умного дома: свет, электричество, экология и видеонаблюдение. Выбираем среди дорогих и дешевых.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments23

Node.js в бою (создание кластера)

Reading time9 min
Views71K
Когда вы используете приложения на node.js в продакшене, вам приходится задумываться о стабильности, производительности, безопасности и удобстве поддержки. Данная статья описывает мои мысли о лучших практиках использования node.js в бою.

К окончанию данного руководства вы получите систему из 3 серверов: балансировщик (lb) и 2 сервера приложений (app1 и app2). Балансировщик будет следить за доступностью серверов и распределять между ними траффик. Серверы приложений будут использовать комбинацию systemd и кластеризации node.js для балансировки траффика между несколькими процессами ноды на сервере. Вы сможете выкатывать код с помощью одной команды со своей машины, и при этом не будет перерывов в обслуживании или необработанных запросов.
Все это можно представить в виде схемы:


Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments17

Повышаем отказоустойчивость системы на nodejs

Reading time5 min
Views38K
Отказоустойчивость системы на nodejs
3 года назад я поверил в будущее nodejs и начал кампанию по имплементации этого языка в самые “проблемные” сервисы нашего проекта. У нас все получалось — нагрузка падала, стабильность повышалась. Но все же были грабли, о которых захотелось рассказать.

Это не исчерпывающее руководство к действию, просто я делюсь своим опытом, если вы профи в nodejs можете дописать в коментах свои рекомендации, на которые я с удовольствием сошлюсь в статье.
Читать дальше →
Total votes 43: ↑36 and ↓7+29
Comments48

Трюки с CSS-анимациями: мгновенные изменения, отрицательные задержки, анимация transform-origin и другое

Reading time14 min
Views221K
Применяя CSS-анимации в повседневной работе, я постепенно выработал привычку экспериментировать с ними в свободное время. Постоянно пытаясь реализовать очередную интересную задумку с использованием как можно меньшего числа элементов HTML, я обнаружил немало способов сделать с помощью CSS довольно неочевидные вещи. В этой статье я хочу поделиться некоторыми из них.

Быстрое изменение состояния посреди анимации

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

@keyframes toggleOpacity {
  50% { opacity: 1; } /* Turn off */
  50.001% { opacity: 0.4; }

  /* Keep off state for a short period */

  52.999% { opacity: 0.4; } /* Turn back on */
  53% { opacity: 1; }
}

Вот как я использовал этот приём для имитации мигающей неоновой вывески с помощью прозрачности и свойства text-shadow:


Читать дальше →
Total votes 213: ↑211 and ↓2+209
Comments23

Обзор бесплатных сервисов для веб-разработки

Reading time4 min
Views143K
Пост является личной подборкой полезных и нужных онлайн сервисов, которые позволяют бесплатно (или условно бесплатно) создавать действительно крутые вещи и разворачивать их в Сети. Не претендую на новизну или на полноту, но буду счастлив, если кому пригодится.

Всем нам иногда хочется попробовать новую идею, запилить какой-нибудь сайтик про манулов, но чтоб обязательно на node.js, хайлоад реди, с мемкешем, монго, фейловером и с претензией на мировое господство. У меня для Вас хорошие новости: благодаря щедрости проклятых западных капиталистов всё это можно получить совершенно бесплатно.
Читать дальше →
Total votes 157: ↑136 and ↓21+115
Comments113

14 инструментов для веб-дизайна и веб-разработки на 2014 год

Reading time3 min
Views155K
Вместе с WEB движущимся семимильными шагами (адаптивным дизайном, CSS препроцессорами, постпроцессорами и другими вещами) может оказаться проблемой попытка не отставать от чего-то нового и полезного.
Ниже Вы найдете 14 инструментов, 7 для веб-дизайнеров и 7 для веб-разработчиков, которые помогут веб-сайту перерасти из концепции в действительность.
Читать дальше →
Total votes 42: ↑26 and ↓16+10
Comments15
1

Information

Rating
Does not participate
Location
New York, New York, США
Date of birth
Registered
Activity