Search
Write a publication
Pull to refresh
2
0
Сергей Викторыч @SpyDeX

ПО (разработка, разработка и ещё раз разработка)

Send message

«Используй Силу машинного обучения, Люк!» или автоматическая классификация светильников по КСС

Reading time15 min
Views5.8K
«Сила машинного обучения среди нас, методы её окружают нас и связывают. Сила вокруг меня, везде, между мной, тобой, решающим деревом, лассо, гребнем и вектором опорным»
Так бы, наверное, мне сказал Йода если бы он учил меня пути Data Science.

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

В прошлых двух статьях мы решали задачу классификации источников света по их спектру (на Python и C# соответственно). В этот раз попробуем решить задачу классификации светильников по их кривой силе света (по тому пятну которым они светят на пол).

Если вы уже постигли путь силы, то можно сразу скачать dataset на Github и поиграться с этой задачей самостоятельно. А вот всех, как и я новичков прошу подкат.

Благо задачка в этот раз совсем несложная и много времени не займет.

Читать дальше →

Немного о доморощенном

Reading time2 min
Views4.9K
Очень часто люди пользуются предпонятиями, или псевдопонятиями. Поэтому они легко бросаются словами, не понимая их смысла. Я часто слышу возгласы подростков против доморощенных программ. Но давайте немного поразмышляем, что такое доморощенное и с чем его едят.
Читать дальше →

5 правил работы с суммами

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


Читать дальше →

Методы разработки потока программного обеспечения датчиков движения, работающих с Arduino

Reading time9 min
Views13K
Привет, Хабр! Хочу предложить реализацию двух подходов разработки программного обеспечения датчика движения, работающего совместно с платой Arduino. Ни датчик движения [1], ни Arduino [2]. в дополнительной рекламе не нуждаются.

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

Основным датчиком который будем использовать является датчик движения PIR [3].

PIR датчики небольшие, недорогие, потребляют меньше энергии и совместимы с аппаратными платформами, такими как Arduino.

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


Кроме того понадобятся светодиоды: зеленый и красный. Шнуры, резисторы и макет: для завершения соединений понадобится пучок проводов и макет. Также понадобятся два резистора на 220 Ом и один 10 кОм.

Следующим составляющим будет плата Arduino: плата Arduino Uno. Для связи платы Arduino с компьютером используем кабель USB.
Читать дальше →

Твой софт никому не нужен. Или почему разработка ПО требует свежего подхода

Reading time3 min
Views33K
image

Статья о том, что иногда надо смотреть на свой продукт не как на «добро», а скорее «неизбежное зло».

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

Читать дальше →

Как же вы задолбали со своими оповещениями

Reading time4 min
Views69K
В одиночку против индустрии.

image

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

Я смотрю на свой телефон и вижу что-то вроде этого:

image
Facebook: Джон, вы знаете Бена Гленна?

Да, я знаю Бена. Отличный парень. Но если честно, мне не надо добавлять его в друзья. Мы разговаривали в офисе от силы три или четыре раза, я не считаю необходимым делиться с ним своей личной жизнью. Кроме того, сейчас 9:35 утра, я опаздываю на работу, и последнее, о чём я сейчас думаю, — это новые друзья на Facebook.

Очистить.
Читать дальше →

Как написать свой первый Linux device driver

Reading time7 min
Views62K
Здравствуйте, дорогие хабрачитатели.

Цель данной статьи — показать принцип реализации драйверов устройств в системе Linux, на примере простого символьного драйвера.

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

Это моя первая статья, пожалуйста не судите строго!

P.S

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

Часть 1 — Введение, инициализация и очистка модуля ядра.
Часть 2 — Функции open, read, write и trim.
Часть 3 — Пишем Makefile и тестируем устройство.

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

Итак, начнем.
Читать дальше →

Использование различных метрик для кластеризации ключевых запросов

Reading time12 min
Views14K
Технологии определяют результат. Компания Calltouch давно приняла для себя эту истину. 
Наш старший продакт-менеджер Федор Иванов mthmtcn написал материал об использовании различных метрик для кластеризации ключевых запросов.

Введение


На сегодняшний день инструменты по оптимизации конверсий в контекстной рекламе широко используются как прямыми рекламодателями, так и агентствами. Мы в компании Calltouch уже больше года ведем разработку своего инструмента по оптимизации ставок в контекстной рекламе. Основная цель оптимизаторов – расчет таких ставок для ключевых слов, выставление которых позволило бы достичь тех желаемых ключевых показателей $(KPI)$, которые установлены в качестве цели оптимизации. Классическим примером такой постановки задачи является оптимизация по $CPA\:\:(Cost\:Per\:Action)$. В данном случае основная цель оптимизатора – получение как можно большего числа конверсий (целевых действий) так, чтобы средняя стоимость этого действия не превосходила установленного целевого ограничения $CPA$. Также существуют такие стратегии оптимизации, как максимизация $ROI\:\: (Return\:of\:Investment)$, привлечение максимума конверсий при заданном бюджете рекламных кампаний и т. д. 

Читать дальше →

Миграция схемы данных без головной боли: идемпотентность и конвергентность для DDL-скриптов

Reading time10 min
Views32K
Язык SQL и реляционные базы с нами уже более сорока лет. За это время стандарт SQL прошёл через множество ревизий, и, судя по всему, процесс развития на этом не останавливается. Реляционные базы в качестве хранилищ данных десятилетиями царствовали безраздельно, царствуют и поныне, и лишь только в последнее время их немного теснят альтернативные подходы.

SQL практически всемогущ, если вопрос касается извлечения данных. (Не все знают, но одним SQL-запросом можно графически построить множество Мандельброта). Но одна проблема продолжает быть в нём концептуально не решена: проблема миграции схем данных.

image
Читать дальше →

Новый алгоритм шифрования NASH

Reading time4 min
Views16K
Предложен оригинальный новый алгоритм блочного шифрования, предназначенный для реализации на широко распространенных микроконтроллерах общего назначения. Алгоритм «NASH» основан на принципах современной «легковесной криптографии», но использует управляемые сдвиги, что позволяет при сохранении уровня стойкости ограничиваться меньшим числом раундов, повышая скорость обработки данных.
Читать дальше →

Помедленнее, мы записываем: 10 новых применений API QIWI Кошелька, которые предложил Хабр

Reading time2 min
Views6.1K
На прошлой неделе мы решили поощрить креатив хабражителей и напомнить про наше новое API QIWI Кошелька, проведя конкурс идей по его применению. Который, в свою очередь, является прологом к конкурсу решений QIWI API Contest, который пройдёт 23 сентября в Москве.



Как и обещали, мы отобрали и публикуем 10 наиболее перспективных, на наш взгляд, предложений, которые можно успешно воплотить в жизнь с использованием открытого API QIWI Кошелька, и призываем разработчиков смело их разбирать и записываться с ними на наш конкурс — приём заявок закрывается уже в пятницу, 15 сентября.
Читать дальше →

Как понять, что ваша предсказательная модель бесполезна

Reading time15 min
Views27K

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


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


image


Этот текст не призван прорекламировать какую-нибудь компанию. Он основан на практике анализа данных в компании ООО "Ромашка", которая никогда не существовала и не будет существовать. Под "мы" я подразумеваю команду из себя и моих воображаемых друзей. Все сервисы, которые мы создавали, делались для конкретного клиента и не могут быть проданы или переданы иным лицам.


Какие модели и для чего?


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

Читать дальше →

Руководство по материалам электротехники для всех. Часть 2

Reading time12 min
Views46K
Продолжение руководства по материалам электротехники. В этой части продолжаем разбирать проводники: Железо, Золото, Никель, Вольфрам, Ртуть.
image

Добро пожаловать под кат (ТРАФИК)
узнать о материалах

Проект российского шлема виртуальной реальности VRD закрыт

Reading time2 min
Views25K
Здравствуйте, уважаемые читатели Geektimes! Поскольку период подписки корпоративного блога у нас заканчивается, то я решил этим воспользоваться и сообщить о закрытии проекта российского шлема виртуальной реальности VRD публично таким образом.



Подробности

15 лет в ISDEF: опыт старейшего участника

Reading time4 min
Views1.6K
Если вы мечтали когда-нибудь посетить конференцию, где не требуется подбирать очередной элегантный костюм на двух пуговках, чтобы угодить запросам высшего общества, и где общение будет непринужденным, то ISDEF — это выбор для вас.
Читать дальше →

Машинное обучение руками «не программиста»: классификация клиентских заявок в тех.поддержку (часть 1)

Reading time19 min
Views28K

Привет! Меня зовут Кирилл и я алкоголик более 10 лет был менеджером в сфере ИТ. Я не всегда был таким: во время учебы в МФТИ писал код, иногда за вознаграждение. Но столкнувшись с суровой реальностью (в которой необходимо зарабатывать деньги, желательно побольше) пошел по наклонной — в менеджеры.


image

Но не все так плохо! С недавнего времени мы с партнерами целиком и полностью ушли в развитие своего стартапа: системы учета клиентов и клиентских заявок Okdesk. С одной стороны — больше свободы в выборе направления движения. Но с другой — нельзя просто так взять и заложить в бюджет "3-х разработчиков на 6 месяцев для проведение исследований и разработки прототипа для…". Много приходится делать самим. В том числе — непрофильные эксперименты, связанные с разработкой (т.е. те эксперименты, что не относятся к основной функциональности продукта).

Одним из таких экспериментов стала разработка алгоритма классификации клиентских заявок по текстам для дальнейшей маршрутизации на группу исполнителей. В этой статье я хочу рассказать, как "не программист" может за 1,5 месяца в фоновом режиме освоить python и написать незамысловатый ML-алгоритм, имеющий прикладную пользу.

Читать дальше →

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

Reading time12 min
Views71K


Два года назад я начал негласно исполнять роль iOS-lead в компании Touch Instinct и формированием стабильной работы iOS-отдела. Спустя полгода это трансформировалось в официальную должность. Из-за отсутствия опыта у меня возникало огромное количество проблем, которые вызывали жжение в области верхней части кресла. Это происходило из-за ряда факторов:


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

Если вы стали лидом и первоначальная эйфория сменилась небольшим горением и унынием, то пара советов не будет лишней.

Читать дальше →

О культуре разработки в группах программистов

Reading time5 min
Views33K
«Почему ж всё так плохо?» — каждый раз я задаюсь этим вопросом, когда приходится иметь дело с очередным кодом, продуктом или API, созданными для внутренних нужд в непрофильной организации.

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

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

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

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

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

Читать дальше →

История предсказания переходов с 1 500 000 года до н.э. по 1995 год

Reading time18 min
Views44K
Это приблизительная расшифровка лекции о предсказании переходов (предсказании ветвлений) на localhost, новом цикле лекций, организованном RC. Выступление состоялось 22 августа 2017 года в Two Sigma Ventures.

Кто из вас использует ветвления в своём коде? Можете поднять руку, если применяете операторы if или сопоставление с образцом?

Большинство присутствующих в аудитории поднимают руки

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

Цель моего выступления — объяснить, как и почему процессоры осуществляют предсказание переходов, а затем вкратце объяснить классические алгоритмы предсказания переходов, о которых вы можете прочитать в современных статьях, чтобы у вас появилось общее понимание темы.
Читать дальше →

Как работает рекурсия – объяснение в блок-схемах и видео

Reading time4 min
Views210K
Представляю вашему вниманию перевод статьи Beau Carnes How Recursion Works — explained with flowcharts and a video.


«Для того чтобы понять рекурсию, надо сначала понять рекурсию»

Рекурсию порой сложно понять, особенно новичкам в программировании. Если говорить просто, то рекурсия – это функция, которая сама вызывает себя. Но давайте попробую объяснить на примере.


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


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


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




Какой подход для Вас проще?

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity