Как стать автором
Обновить
2
Артур Соловьев @artur_solovievread⁠-⁠only

Программист

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

Объяснение фильтра Калмана в картинках

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

Я обязан рассказать вам о фильтре Калмана, потому что он выполняет просто потрясающую задачу.

Как ни удивительно, о нём, похоже, знают немногие разработчики ПО и учёные, и это печалит меня, потому что это очень обобщённый и мощный инструмент для объединения информации в условиях присутствия неопределённости. Иногда его способность извлечения точной информации кажется почти магической, а если вы думаете, что я слишком много болтаю, то взгляните на это видео, в котором я показываю, как фильтр Калмана определяет ориентацию свободно плавающего тела, посмотрев на его вектор скорости. Потрясающе!
Читать дальше →
Всего голосов 116: ↑116 и ↓0+116
Комментарии31

Стажёр Вася и его опыт разработки нового API

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

Легко ли разработать новый API? На что обратить внимание, чтобы не ошибиться при реализации, и к каким компромиссам стоит быть готовым?


Привет, Хабр! Меня зовут Иван Ивашковский. Я руковожу группой разработки международных проектов в Яндекс Go. Этот пост — продолжение цикла историй о вымышленном стажёре Васе. Предыдущий материал, про идемпотентность, можно почитать здесь. В посте я расскажу, как Вася разрабатывал API для новой фичи и с какими проблемами он столкнулся в процессе. В конце приведу чеклист с советами, как проверить себя на каждом этапе разработки, если вы решаете похожую задачу.


Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии24

Как устроены технические индикаторы на фондовых рынках

Время на прочтение5 мин
Количество просмотров25K
Любой кто когда-нибудь интересовался фондовыми или криптовалютными рынками видел эти дополнительные линии. И вы наверно слышали мнения от матерых трейдеров о том, что они не работают и как они не используют ничего. Но многим они очень помогают и мой торговый терминал, в который я лениво смотрю раз в день, выглядит примерно как на картинке ниже.

Как же все таки они устроены? И кому это может быть полезно? Вам определенно с этим следует ознакомиться, если:

  1. Вы ими пользуетесь в своей торговле
  2. Вы планируете написать торгового робота
  3. Вы хотите реализовать торговую стратегию сами

технические индикаторы
Читать дальше →
Всего голосов 41: ↑37 и ↓4+33
Комментарии29

Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем

Время на прочтение25 мин
Количество просмотров141K
Привет, меня зовут Костя Кардаманов, я работаю в отделе технологий разработки Яндекса. Обычно такой же фразой я приветствую и кандидатов на собеседовании. А сегодня я хотел бы рассказать вам, как и зачем мы проводим интервью по дизайну систем с бэкенд-разработчиками. Сразу скажу: для фронтендеров, мобильных разработчиков и ML-инженеров подобный тип собеседований применим слабо, так что эти специальности мы здесь обсуждать не будем.

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

Что такое дизайн информационных систем


Основная цель любой IT-компании — производить сервисы, которые решают задачи пользователей. Мы должны уметь собирать элементы системы в единый механизм, который будет эффективно выполнять поставленную цель, и если первый тип собеседований нацелен в первую очередь на проверку необходимого минимума, то интервью про дизайн систем проверяет достаточность навыков кандидата в достижении конечной цели. Далекому от IT пользователю принципы и устройство систем могут казаться бесконечно сложными, но мы, их разработчики, должны иметь (не обязательно детальное) представление о принципах функционирования и роли каждого компонента.

Опытный читатель может сказать — в мире полно платных и бесплатных решений, из которых я могу собрать систему как из деталей конструктора, зачем мне понимать устройство этих деталей?
Читать дальше →
Всего голосов 67: ↑65 и ↓2+90
Комментарии37

Войти вайти в 37 лет, личный опыт

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

Сейчас мне сорок пять, и я наконец получил нормальную фултайм позицию аналитика данных. У меня первый диплом - Провизор по специальности Фармация. Я успел поработать таксистом, разнорабочим на складе лекарственных трав, заготовщиком, владельцем цеха металлообработки и одновременно рабочим в этом цеху. Был фармацевтом за кассой, заместителем заведующей аптекой, владельцем аптеки. Никогда не думал, что буду работать в IT, хотя всегда интересовался этой темой.

В школе у нас был компьютерный класс...
Всего голосов 57: ↑48 и ↓9+52
Комментарии77

5 коротких видеороликов, которые зайдут и профи, и новичку в ИБ

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

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

Самая улыбчивая на рынке ИБ Лера Суворова и пять узких специалистов за пять минут освежат ваши знания и дополнят их своим практическим опытом. Полезно будет и начинающим безопасникам, и перегруженным ИБ-шникам, и ИТ-специалистам, и студентам. Уже ждут просмотров ролики о Deception, защите данных в облаках, киберполигонах, автопентесте и Digital Risk Protection.

Смотреть ролики
Всего голосов 15: ↑12 и ↓3+13
Комментарии1

Ультра быстрый Cron с шагом в миллисекунду, или когда тестовые задания такими прикидываются

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

Давным-давно наш коллега @novar разместил на Хабре статью с описанием вот такого незатейливого ТЗ, полученного им от потенциального работодателя:

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

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

Ах да. Если вы тот самый работодатель, вот готовый код под ваше ТЗ. Правда на Java, а не на C#. Но вы же не думали, что всё будет так просто?

Читать далее
Всего голосов 88: ↑85 и ↓3+99
Комментарии59

ФАС раскрыла картельный сговор. Ответчик — группа компаний Труконф

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

Эта статья является наглядным примером - в какие игры не стоит играть с Федеральной антимонопольной службой Российской Федерации. А также какие схемы трудовых отношений не следует применять в своём бизнесе.

Вчера вечером издание CNews опубликовало новость под заголовком "Лидера российского рынка ВКС поймали на махинациях при многомиллионных закупках Госдумы, Росгвардии, Минздрава"

Формат новости не позволил раскрыть тему целиком, поэтому в данной статье я опишу ситуацию в максимально подробном виде. Будем считать, что новость Cnews была тизером к этой статье.

Почти год длилось расследование ФАС по делу № 077/01/11-16632/2020 о нарушении антимонопольного законодательства. Вначале, Федеральная антимонопольная служба заинтересовалась несколькими конкурсами, участниками которых были малоизвестные компании: ООО «ТДЮС», ООО «Вионикс» и ООО «ВКС Технологии». ФАС выявили подозрительную закономерность в поведении данных компаний при проведении торгов. А именно: заявку на участие подавали все три компании, а до финиша доходила только одна с минимальным падением относительно начальной максимальной цены контракта.
Вот как это отражено в решении ФАС:

Ответчики, подав в ходе рассматриваемых аукционов по одному ценовому предложению, отказывались от дальнейшей конкурентной борьбы друг с другом. В результате снижение по указанным аукционам составило от 0,5% до 2,6 % от НМЦК.

Но, начавшееся расследование выявило целый картельный сговор, во главе которого стоит группа компаний Труконф. В итоге, ответчиками по делу стали такие аффилированные компании как:

ООО «ТДЮС» ИНН 9701057474
ООО «ВКС Технологии» ИНН 7728365024
ООО «Вионикс» ИНН 7728449901
ООО «Труконф» ИНН 7728361647
ООО «Интеграция» ИНН 7728396625

Открытые материалы дела показали, что компания Труконф настолько была уверена в своей безнаказанности, что пренебрегла самой элементарной цифровой гигиеной, за что и поплатилась. Комиссия ФАС проанализировала файлы заявок к десятку конкурсов с участием указанных компаний и обнаружила много интересного и, как выяснилось - противозаконного.

На что обратила внимание комиссия ФАС?
Всего голосов 78: ↑71 и ↓7+88
Комментарии111

Аарон Шварц: как стать продуктивнее

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

Прим. ред: Я сейчас делаю Ontol — это Github для знаний/мудрости. Онтол — это курируемые списки материалов (тексты и видео), которые существенно повлияли на мировоззрение и доступные бесплатно и в 1 клик. Этот текст попадает в онтол «продуктивность». (канал в телеграм: t.me/ontol)

Об Авторе: Аарон Шварц — американский интернет-активист, программист, писатель, хактивист. Умер за свободу информации.

  • В 12 лет создал сайт Info, где каждый мог писать о том, что знает (а другие могли дополнять и комментировать). Это был предвестник Википедии.
  • В 14 лет Шварц стал соавтором спецификации RSS 1.0.
  • Аарон Шварц работал под руководством Тима Бернерса-Ли в составе основной рабочей группы RDF в Консорциуме W3C.
  • Попал на первую программу в Y Combinator со стартапом Infogami, который впоследствии слился с популярным сайтом Reddit.
  • Работал над Open Library и Creative Commons
  • Внес существенный вклад в Markdown.

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

Время имеет разные степени качества. Если я еду в метро и обнаруживаю, что забыл свой ноутбук, то пара абзацев — это всё, что я смогу выжать. Кроме того, трудно сосредоточиться, когда тебя постоянно дёргают. Ну и психологический момент — порой ты окрылён, полон мотивации и готовности работать над чем-то, а порой чувствуешь такое раздражение и усталость, что не можешь делать ничего, кроме как пялиться в телевизор.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+16
Комментарии15

Откровения пьяного старшего инженера

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

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

  • Лучший способ достичь карьерного роста — сменить компанию.
  • Стек технологий на самом деле не имеет значения, потому что в моей области есть примерно 15 базовых шаблонов разработки программного обеспечения. Я работаю с данными, поэтому они не будут такими же, как веб-разработка или embedded. Но все области имеют около 10-20 основных принципов, и технический стек просто пытается упростить эти вещи, так что не переживайте.
  • Есть причина, по которой люди рекомендуют искать работу. Если я недоволен работой, наверное, пора уходить.
  • У меня появилось несколько хороших друзей на всю жизнь в компаниях, с которыми я работал. Мне не нужно это от каждого места, где я работаю. Я был совершенно счастлив, работая в тех местах, где у меня не складывались дружеские отношения с моими коллегами, и я был несчастен в местах, где у меня было несколько хороших друзей.
Читать дальше →
Всего голосов 186: ↑153 и ↓33+170
Комментарии177

Откровения трезвого инженера

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

Ответ на: Откровения пьяного старшего инженера

… Я выскажу свое мнение и значительно короче, наверное.

  1. Работа в нашей отрасли полностью построена на порочных стимулах.
  2. Лучший способ продвинуться по карьерной лестнице — это смена компании. Компании, в которых вы работаете, будут вознаграждать хорошую работу большей работой и ответственностью, а не большим количеством времени и/или денег. Компании, в которые вы переходите, вознаградят вашу предыдущую хорошую работу в других компаниях большими деньгами. На самом деле это не имеет смысла… См. Пункт №1.
  3. Каждый раз, когда я меняю работу, я сокращаю свои обязанности на 50% и увеличиваю зарплату на 50%. На моей первой работе я был очень раздражен, когда новые сотрудники, которые были на моем уровне квалификации, зарабатывали больше, чем я. Теперь другие старожилы в моей компании с таким же уровнем квалификации раздражаются, когда я зарабатываю намного больше, чем они (обратите внимание, что количество смен работы >= 3). На самом деле это не имеет смысла… См. Пункт №1.
Читать дальше →
Всего голосов 116: ↑101 и ↓15+124
Комментарии148

Навыки Senior Engineer, помимо программирования (неполный список)

Время на прочтение2 мин
Количество просмотров8.1K
  1. Как провести собрание. И нет, не болтать больше всех на собрании, а именно провести его.
  2. Как написать проектную документацию, получить отзывы и довести ее до решения в разумные сроки
  3. Как наставлять «младшего» коллегу по команде, инженера в середине карьеры, нового менеджера, которому нужен технический совет
  4. Как порадовать старшего менеджера, который хочет поговорить о технических вещах, которых он на самом деле не понимает, не закатывая глаза и не заставляя его чувствовать себя глупо
  5. Как объяснить техническую концепцию за закрытыми дверями высокопоставленному лицу, слишком смущенному, чтобы открыто признать, что он ее не понимает
  6. Как убедить другую команду использовать ваше решение вместо написания собственного
  7. Как заставить другого инженера сделать что-то для вас, попросив о помощи таким образом, чтобы он почувствовал, что его ценят
  8. Как вести проект, даже если вы не менеджерите никем из людей, работающих над ним
  9. Как заставить других инженеров прислушиваться к вашим идеям, не заставляя их чувствовать угрозу
  10. Как прислушиваться к идеям других инженеров, не чувствуя угрозы
Читать дальше →
Всего голосов 49: ↑25 и ↓24+6
Комментарии29

Откровения кофеин-зависимого инженера: как писать документацию

Время на прочтение8 мин
Количество просмотров7.3K
image
Четыре вида документации распределнные по двум осям: практика-теория и обучение-работа.

Недавно вышли два нашумевших поста:


И многие спрашивали: «Кто-нибудь, пожалуйста, научите меня писать хорошую документацию».
Я не претендую на звание эксперта, но думаю, что хорошо с этим справляюсь.

Я выпил достаточно кофе, и я попытаюсь объяснить то, что знаю.

TL; DR: пишите документацию для решения конкретной проблемы для определенной группы людей, а не только для того, чтобы документация была.

Пишите хорошо


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

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

Самый полезный совет для написания документации — пишите в разговорном стиле. Воспринимать информацию из неформального текста намного проще.

Виды документации


Ладно, теперь вернемся к документации.
Всего голосов 26: ↑18 и ↓8+11
Комментарии6

Тоска по былому Интернету

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

Мне одному кажется, что сегодняшний Интернет скучен и чрезмерно коммерциализирован?

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

Интернет был более интересным, потому что у него было больше индивидуальности. Скажем, вы были нёрдом, и вам нравились «Звездные войны», «Звездный путь», аниме, видеоигры или ролевые игры, вы набирали все, что вам нравилось, и вы получали индивидуально разработанные сайты на Geocities, некоторые хорошо продуманные, некоторые просто вырвиглазные, но каждый был уникален, каждый со своей индивидуальностью. Каждый сайт — признание в любви к конкретному фэндому. Каждый сайт был с любовью снабжен скриншотами, краткими описаниями эпизодов или игр, а также загружен фанфиками и обзорами.
Читать дальше →
Всего голосов 78: ↑67 и ↓11+75
Комментарии253

Пол Грэм: Как работать усердно

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


к/ф «Одержимость»

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

Я знаю одно: если вы хотите делать великие дела, вам придется очень много работать. В детстве я не был в этом уверен. Школьные задания различались по сложности; не всегда нужно очень много работать, чтобы преуспеть. А кое-что из того, что делали известные взрослые, казалось, делалось почти без усилий. Может быть, есть какой-то способ избежать тяжелой работы с помощью чистого таланта? Теперь я знаю ответ на этот вопрос. Нет.

Причина, по которой некоторые предметы казались мне легкими, заключалась в том, что в моей школе были низкие стандарты. И причина, по которой известные взрослые, казалось, делали что-то легко, — это годы практики. Благодаря годам практики кажется, что мастер выполняет работу легко.
Читать дальше →
Всего голосов 13: ↑7 и ↓6+5
Комментарии20

Bitwise — обучающий проект по созданию программного и аппаратного стека компьютера с нуля

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

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

В 2017 году, Per Vognsen - программист с более чем 15-летним стажем, работавший в таких компаниях как NVIDIA и Oculus берет паузу и в марте 2018 стартует амбициозный обучающий проект Bitwise, в котором он собирается разработать и написать весь программно-аппаратный стек для простого компьютера с нуля и запустить его на FPGA. 

Проект должен был включать в себя операционную систему, компилятор, системные библиотеки, а также HDL код для центрального процессора и периферийных контроллеров. Пререквизиты к нему минимальны - свободное владение языком Cи (и немного Python), а также знание некоторых алгоритмов и структур данных из стандартных CS курсов. Все остальное объясняется по ходу написания кода.

Проекты подобные Bitwise можно пересчитать по пальцам (думаю многие еще вспомнят о знаменитом Handmade Hero от Casey Muratori). Автором данного проекта выступает отличный программист, который в формате скринкастов показывает и объясняет каждое решение по ходу написания кода. Этой короткой статьей я бы хотел заполнить пробел и познакомить большее число людей с проектом Bitwise, так как сам извлек из него много нового.

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

Гибкая печатная плата своими руками

Время на прочтение6 мин
Количество просмотров22K
Туториалов по созданию обыкновенных печатных плат на просторах интернета более чем достаточно, а вездесущие китайцы упростили этот процесс до заводского качества. Однако, когда речь заходит о создании гибких плат, тут приходится изгаляться в меру своей смекалки. Хотя, справедливости ради, надо сказать, что и такие вещи китайцы тоже делают, хоть и не дёшево. Но мы будем говорить о ситуации, когда надо вот прямо сейчас и из подручных материалов. Собственно, я непосредственно и столкнулся с такой проблемой и одним из способов ее решения хочу поделиться.

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



В более продвинутом варианте, на нем же распаивают некоторые компоненты. Те, кто разбирал старые сидюки, видел, что весь обвес головки выполнен как раз-таки на такой ГПП. Вот типичнейший пример:
 

Всего голосов 68: ↑65 и ↓3+86
Комментарии23

Грязные трюки видеоигр

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

Бретт Дувилл, LucasArts

В начале 2002 года мы подготавливали Star Wars: Jedi Starfighter к передаче Sony для проверки. У нас оставался один пустячный баг TCR: при загрузке катсцен после миссий отключалась работа аналогового стика контроллера, что приводило и к отключению красного индикатора в центре контроллера. Этот баг проявился, когда мы обновились до версии библиотеки, которую требовала Sony, а программист, который писал и код загрузки видеороликов, и логику процессора ввода-вывода для контроллера, уволился из LucasArts за несколько месяцев до этого.

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

Существует старое выражение: если ты не понимаешь причины, то нельзя утверждать, что ты устранил баг. В данном случае у нас оставалось два-три дня до даты передачи игры Sony, и опоздание оказалось бы серьёзной проблемой. Поэтому я изменил все цвета сброса экрана на чёрный, пометил баг как устранённый и умыл руки. Мы выпустили игру вовремя, и никакие баги TCR больше не появлялись.

Читать далее
Всего голосов 12: ↑11 и ↓1+14
Комментарии9

Более 10 лет ставлю цели на год: рассказываю, как это делать эффективно

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

Меня зовут Павел Комаровский, и я алкоголик занимаюсь саморазвитием уже более 10 лет. Эта статья о том, какой подход к личному целеполаганию я выработал для себя в итоге – надеюсь, она поможет вам избежать ошибок, которых в своё время наделал я.

Я полностью прошёл все стадии грехопадения: в студенческие годы искал сакральные ответы в стопках self-help макулатуры; затем разочаровался и решил, что весь этот «успешный успех» – это разводилово для дурачков (до сих пор уверен, что Наполеон Хилл – шизофреник); позже переосмыслил всё ещё раз и пришёл к своему пониманию того, как может выглядеть саморазвитие с адекватным лицом.

Читать далее
Всего голосов 78: ↑67 и ↓11+81
Комментарии223

Выживание Windows XP x32 на современных ПК c процессором Intel

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

Речь пойдет про платы периода 2016-2021+, т.е. процессоры Skylake и выше. На платформах AMD почти те-же проблемы, но их меньше. Статья не является "пошаговой инструкцией", в основном теория и способы решения проблем

Читать полностью
Всего голосов 46: ↑43 и ↓3+59
Комментарии113

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность