Как стать автором
Обновить
72
0
Alexander Komarov @izard

software optimization

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

Прогнозирование продаж Python. Как находить и сглаживать выбросы с помощью фильтра Хэмплея

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

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

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

Начнём мы с первого метода – фильтра Хэмплея. В этой статье речь пойдёт именно о нём. Я постараюсь как можно проще рассказать о его особенностях и показать всё на наглядных примерах. Приступим.

Читать далее
Всего голосов 15: ↑12 и ↓3+13
Комментарии14

Как всё успевать: 10 проверенных принципов борьбы с хаосом задач

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

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

За долгие годы работы в IT такие методики и принципы выработались и у меня. Например, «Принцип пустого почтового ящика». Или «Принцип постепенного проявления». Они проверены временем и помогают мне успешно ориентироваться в окружающем потоке задач. В этой статье я хочу поделиться с вами этими принципами. Возможно, какие-то из них покажутся вам полезными и пригодятся.

Читать далее
Всего голосов 42: ↑39 и ↓3+45
Комментарии26

Бюджет потерь USB 3.2

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

Откуда столько названий стандартов USB? Какие допустимые потери сигнала в кабеле по спецификации, и почему почти никто ей не следует? Как измерить потери в дифференциальной линии и не продать почку?

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

Страх и ненависть в спецификации USB
Всего голосов 122: ↑121 и ↓1+154
Комментарии60

Доктор, что это за **** у меня на коже?

Время на прочтение13 мин
Количество просмотров36K
Скажу сразу: я не врач.

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

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

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


Элвис болел диабетом, так что ему были знакомы кое-какие из кожных проявлений, о которых сегодня пойдёт речь

Дело всё в том, что любые высыпания могут оказаться как реакцией иммунитета на новый фрукт, так и кожным маркером, который сигнализирует о том, что серьёзное внутреннее заболевание уже появилось или вот-вот дебютирует. И нам приходится снова и снова объяснять, что мазь не спасёт от основной причины заболевания.
Читать дальше →
Всего голосов 85: ↑66 и ↓19+60
Комментарии37

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

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

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


Слева видно три импланта, ставших виновниками гнойного расплавления нервной и костной тканей

Чтобы вы не питали иллюзий, сразу отмечу основные вещи:

  • У них есть срок службы. Обычно он составляет 20–25 лет, после чего нужно будет сделать «капремонт». Собственно, поэтому в цену хорошего импланта входит поддержка производителем 25 лет, иначе есть шансы не обнаружить комплектующие и вырывать его, а потом ставить новый. Так себе удовольствие.
  • Искусственные зубы нужно чистить. Да, они искусственные, но вот бактерии на них прилетают вполне себе живые.
  • Не стоит пропускать ТО: это та же самая полугодовая гигиена, что для живых зубов, но другими инструментами (без металла).
  • Требования к домашней чистке у имплантированных зубов выше, чем у «родных»: нужны ирригатор, ёршики и нить.

Разумеется, мы время от времени встречаем пациентов, забывших про «ТО рта», но этого случая не было бы в обучающих, если бы всё пошло как обычно. Так что осторожнее: ниже будут кровь и разные органы на фото, особенно в той части, где «пошло не по плану».
Читать дальше →
Всего голосов 64: ↑58 и ↓6+74
Комментарии78

В Data Science не нужна математика (Почти)

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

Привет, чемпион!

Ребята с «вышкой» всё время умничают, что в Data Science нужна «математика», но стоит копнуть глубже, оказывается, что это не математика, а вышмат.

В реальной повседневной работе Data Scientist'а я каждый день использую знания математики. Притом очень часто это далеко не «вышмат». Никакие интегралы не считаю, детерминанты матриц не ищу, а нужные хитрые формулы и алгоритмы мне оперативнее просто загуглить.

Решил накидать чек-лист из простых математических приёмов, без понимания которых — тебе точно будет сложно в DS. Если ты только начинаешь карьеру в DS, то тебе будет особенно полезно. Мощь вышмата не принижаю, но для старта всё сильно проще, чем кажется. Важно прочитать до конца!
Читать дальше →
Всего голосов 109: ↑102 и ↓7+129
Комментарии87

Способы хранения графа в памяти компьютера

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

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

Читать далее
Всего голосов 39: ↑36 и ↓3+42
Комментарии19

Возрождение простых сайтов. Статика, 0kB JS, ничего лишнего

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

Как мы обсуждали в прошлый раз, удручающее ожирение сайтов и софта вернуло моду на простые, маленькие проекты. И сейчас происходит своеобразный ренессанс веба 90-х, вплоть до стиля Geocities (такой был бесплатный хостинг) и веб-страниц в виде PDF. Таковы примеры самореализации. У каждого человека — уникальный сайт, который отличается от остальных и отражает его личность.

Статический сайт можно выполнить в одном файле HTML, а динамический — в одном бинарнике (под катом). Тенденция видна везде. Современные фреймворки даже хвалятся «0кБ JavaScript» по дефолту, а браузеры внедрили технические усовершенствования, которые во многом аннулируют преимущества использования SPA.
Читать дальше →
Всего голосов 86: ↑80 и ↓6+95
Комментарии72

Принимаем «Голоса» на КВ — инструкция по применению

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

Во времена позднего СССР существовала довольно пародоксальная ситуация - пресса публиковала только пропаганду и одобренную партией официальную информацию, имеющую мало общего с реальностью, но все кто хотел, могли купить радиоприемник и слушать "Би Би Си", "Голос Америки" и прочие станции. СССР пытался эти передачи глушить (мачты "глушилок" кстати до сих пор стоят в Питере, хотя провода вроде как давно сняты), но получалось это плохо.

Если ситуация вдруг кажется вам знакомой - добро пожаловать под кат.

Читать далее
Всего голосов 64: ↑62 и ↓2+82
Комментарии100

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

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

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

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

Перейти с Linux на macOS и не сойти с ума

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

Ноутбук — главный девайс в моей жизни, я провожу за ним бо́льшую часть суток. Он должен быть лёгким, компактным и мощным. Долгое время лидером по этим параметрам был Dell XPS 13, но всё поменялось с выходом MacBook Air на процессоре M1.

Air всего на 100 граммов тяжелее XPS 13, но примерно в три раза мощнее, автономнее и не нуждается в активном охлаждении. Никогда не думал, что скажу подобное про технику Apple, но MacBook Air — самое крутое устройство в своей весовой категории на рынке, оставившее конкурентов далеко позади.

Я фанат Линукса, эта операционная система для меня больше, чем просто окружение. Это философия, новостная повестка и постоянный предмет обсуждения. Поэтому сама идея отказа от Linux в пользу другой ОС меня всегда отталкивала. Да и тот эпизодический опыт, когда приходилось что-то делать в macOS, был эмоционально неприятным.

Но появление M1 посеяло во мне зерно сомнений: мой ноутбук больше не был самым крутым и навязчивой мыслью было то, что я отказываю себе в чём-то большем. Это зерно прорастало и проросло: я купил MacBook Air с 16GB ОЗУ и 512GB SSD, с удивлением обнаружив, что он ещё и стоит дешевле моего XPS. Впереди меня ожидали настройка окружения, борьба с Docker, грусть от отсутствия привычного автодополнения в консоли и много чего ещё.

Читать далее
Всего голосов 106: ↑101 и ↓5+126
Комментарии382

Приключения микропроцессора в СССР: 8 бит

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

Мы живем в удивительное время: компьютеры окружают нас со всех сторон. Любимый смартфон, ноутбук на работе, медицинские приборы, браслеты и часы. Умные рекламные табло, самокаты и автомобили. 

В основе каждого такого устройства лежит тот или иной микропроцессор. А простой микрокомпьютер размером со спичечный коробок (на базе Atmega или STM32) можно положить в карман или установить в качестве дверного звонка. Мы живем в будущем, не особенно-то его замечая. Но до начала 1980-х ни один советский радиолюбитель даже мечтать не мог о домашнем персональном компьютере.

Сегодня мы попробуем взглянуть на первые микропроцессоры, применявшиеся на территории нашей страны. Первая статья нашего небольшого цикла будет целиком посвящена 8-битным CPU, которые так или иначе выпускались на территории Советского союза и СНГ.

Читать далее
Всего голосов 68: ↑66 и ↓2+83
Комментарии146

Как выжить после крушения?

Время на прочтение11 мин
Количество просмотров30K
(www.goodfon.ru, Автор: Juliannaa)

Кораблекрушение, авиакатастрофа… Этот сюжет многократно обыгран во множестве разнообразных фильмов, игр и массовой культуре. Хотя большинство людей, так или иначе, слышали о подобном, но не имели к этому отношения (к счастью). В этой статье мы попробуем обсудить, как выжить современному человеку, в случае крушения, в безлюдном месте, а также дать знать о своей ситуации с помощью разных способов (в том числе, построив «радиопередатчик из ничего»).
Читать дальше →
Всего голосов 68: ↑57 и ↓11+66
Комментарии122

Как писать bash-скрипты надежно и безопасно: минимальный шаблон

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

Скрипты на Bash. Как много в этом слове. Любому разработчику рано или поздно приходится их писать. Почти никто не скажет "да, я люблю писать bash-скрипты", и поэтому этой теме уделяют мало внимания.

Я не буду пытаться сделать из вас эксперта в Bash, а просто покажу минимальный шаблон, который поможет сделать ваши скрипты более надежными и безопасными.

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

Intel 4004 — процессор, изменивший мир

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

50 лет назад, 15 ноября 1971 года компания Intel представила процессор 4004. Трудно переоценить значимость этого события, именно с этой даты началась эра архитектуры x86, которую мы знаем и сегодня.

Поздравляю компанию Intel с этой знаменательной датой!

Далее будет немного истории, много теории, ещё больше практики и оригинальных фот.

Вперёд и с песней..
Всего голосов 62: ↑60 и ↓2+77
Комментарии33

Как определить C и C++-программистов по коду, который они пишут

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

Так уж случилось, что я пишу код для разных IoT-железок, связанных с электричеством, типа зарядных станций автомобилей. Поскольку аппаратных ресурсов, как правило, вполне достаточно, то основным фокусом является не экономия каждого байта и такта процессора, а понятный и надежный код. Поэтому в проекте разрабатывают под Embedded Linux и в качестве основного языка используют C++ в его современном варианте - C++17, активно поглядывая на фичи из стандарта 20-го года и новее.

Иногда запускаются новые проекты на той же платформе, с теми же процессами и с переиспользованием многих уже существующих компонентов, и тогда в эти проекты мы ищем программистов, с учетом вышесказанного - программистов на C++. В embedded, тем не менее, чистый C все еще очень популярен, и нередко собеседоваться на вакансию C++ Developer'а приходят именно сишники. Логика у человека простая: языки, на первый взгляд, довольно близкие, базовый синтаксис одинаков, про ООП кандидат что-то слышал, и значит, основная база уже есть и он сможет легко освоить C++ за 21 день в процессе работы, поэтому можно наплести про "с C++ тоже работал", начать писать на "Си с классами" и все получится.

Но нет, не получится.
Всего голосов 89: ↑65 и ↓24+62
Комментарии404

Пять лучших киберпанк-аниме

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

Очень скоро киберпанк как жанр отметит своё сорокалетие. Почему он появился именно в США начала 80-х, и почему при этом с первых дней стал настолько «японским» – мы уже говорили . Как он породил целую группу жанров, и сам понемногу из актуальных размышлений о будущем стал формой ретрофутуризма – тоже.

И всё же в обоих этих статьях огромный массив японского киберпанка лишь упоминался. А ведь он во многих отношениях даже больше и значимее, чем на родине жанра, в США. Киберпанк не просто так получил массу японских черт ещё у американских авторов. Сами японцы уже в 80-е буквально влюбились в новый жанр, и принялись в нём активно работать. Однако если киберпанк в США – это преимущественно фильмы и книги, то в стране Восходящего Солнца его основными воплощениями стали манга и аниме, комиксы и мультипликация с японской спецификой.


За сорок прошедших с начала 80-х лет японцы сделали десятки, если не сотни, аниме-произведений в жанре киберпанка. И некоторые из них прочно вошли в золотой фонд жанра. Списков топ-10 и так далее в сети хватает – но многие из них крайне поверхностны, кратки и написаны «для галочки» без особого вникания в предмет.
Так что почему бы не попробовать сделать свой вариант, копнув чуть глубже?
Всего голосов 64: ↑57 и ↓7+76
Комментарии126

Расставляем стандартные ячейки (заметки постороннего)

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

Натолкнувшись на статью “Уничтожим монополию …”, автор, как человек пусть от EDA очень далёкий, но от природы любознательный, не поленился пройтись по ссылкам и невольно поймал себя на мысли, что одно из основных технических решений — использование рядов стандартных ячеек (standard cell layout) — выглядит довольно спорно.

Да, такое расположение интуитивно понятно, ведь мы пишем и читаем похожим образом, кроме того, технологически просто располагать ячейки именно рядами, так удобно стыковать шины VDD и GND. С другой стороны, при этом возникает непростая комбинаторная задача, требуется разрезать схему на линейные куски и расположить эти куски таким образом, чтобы (грубо) минимизировать общую длину соединений.

И конечно же возник вопрос, нет ли альтернативных решений, … вот что если …
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии14

Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля — TL, MT

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

В последнее время на Хабре стали чаще появляться посты о том, как хорош Telegram, как гениальны и опытны братья Дуровы в построении сетевых систем, и т.п. В то же время, очень мало кто действительно погружался в техническое устройство — как максимум, используют достаточно простой (и весьма отличающийся от MTProto) Bot API на базе JSON, а обычно просто принимают на веру все те дифирамбы и пиар, что крутятся вокруг мессенджера. Почти полтора года назад мой коллега по НПО "Эшелон" Василий (к сожалению, его учетку на Хабре стёрли вместе с черновиком) начал писать свой собственный клиент Telegram с нуля на Perl, позже присоединился и автор этих строк. Почему на Perl, немедленно спросят некоторые? Потому что на других языках такие проекты уже есть На самом деле, суть не в этом, мог быть любой другой язык, где еще нет готовой библиотеки, и соответственно автор должен пройти весь путь с нуля. Тем более, криптография дело такое — доверяй, но проверяй. С продуктом, нацеленным на безопасность, вы не можете просто взять и положиться на готовую библиотеку от производителя, слепо ему поверив (впрочем, это тема более для второй части). На данный момент библиотека вполне работает на "среднем" уровне (позволяет делать любые API-запросы).


Тем не менее, в данной серии постов будет не так много криптографии и математики. Зато будет много других технических подробностей и архитектурных костылей (пригодится и тем, кто не будет писать с нуля, а будет пользоваться библиотекой на любом языке). Итак, главной целью было — попытаться реализовать клиент с нуля по официальной документации. То есть, предположим, что исходный код официальных клиентов закрыт (опять же во второй части подробнее раскроем тему того, что это и правда бывает так), но, как в старые времена, например, есть стандарт по типу RFC — возможно ли написать клиент по одной лишь спецификации, "не подглядывая" в исходники, хоть официальных (Telegram Desktop, мобильных), хоть неофициальных Telethon?

Ответ на этот вопрос неоднозначен
Всего голосов 187: ↑182 и ↓5+177
Комментарии240

Кто он — убийца JavaScript?

Время на прочтение8 мин
Количество просмотров60K
Некоторые языки программирования — это языки, которые любят разработчики. Некоторые языки программирования лишь терпят. Для многих программистов JavaScript попадает в последнюю категорию, являясь языком, который нужно понимать каждому, кто пишет клиентские части веб-проектов, но таким, который никто не обязан любить.

Десять лет назад очевидно было то, что JavaScript имеет все шансы, так сказать, править миром. За эту честь сражались и другие платформы — такие, как Java, Flash и Silverlight. Всем этим трём платформам нужны, для работы в браузерах, специальные плагины. Все три меняют HTML-подход к формированию интерфейсов на что-то другое. Это позволило им уйти далеко вперёд от JavaScript в плане возможностей. Например — они умели проигрывать видео, выводить анимацию, рисовать что-то на экране. Всё это другие платформы поддерживали задолго до появления стандартного тега <video>, механизмов CSS-анимации и HTML-элемента canvas. Но всё это стало причиной их краха. Так, когда в мире начался бум мобильного интернета, и когда это было учтено в HTML, другие платформы оказались не у дел.



Ирония есть и в том, что происходит сейчас. В то самое время, когда JavaScript царствует в мире веб-разработки, появился один проект, вроде бы не особенно масштабный, который, когда-нибудь в будущем, способен стать убийцей JavaScript. То, о чём мы тут говорим, началось с экспериментальной технологии asm.js. Как это может выглядеть? Прежде чем ответить на этот вопрос — давайте немного притормозим и поговорим о современном положении дел.
Читать дальше →
Всего голосов 75: ↑59 и ↓16+43
Комментарии288

Информация

В рейтинге
Не участвует
Откуда
München, Bayern, Германия
Дата рождения
Зарегистрирован
Активность