Search
Write a publication
Pull to refresh
17
18.6
Alexander Kardapolov @akardapolov

User

Send message

Инструменты Data Science как альтернатива классической интеграции ИТ систем

Reading time6 min
Views14K
В настоящий момент уже можно считать, что страсти по Big Data и Data Science немного утихли, а ожидание чуда, как обычно, было сильно скорректировано реальностью физического мира. Самое время заняться конструктивной деятельностью. Поиск тем на Хабре по различным ключевым словам выдал крайне скудный набор статей, поэтому я решил поделиться тем опытом, который был накоплен в части практического применения инструментов и подходов Data Science для решения повседневных задач в компании.
Читать дальше →

Модификация программы и что лучше менять: исполняемый код или AST программы?

Reading time11 min
Views15K
Принципы в заметке общие для почти любого языка программирования и системы исполнения, но акцент будет на jvm. Рассмотрим два основных подхода по модификации программы:

  • манипуляции с исполняемым кодом программы после компиляции или во время загрузки кода;
  • изменение исходного кода перед компиляцией.


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

10 вещей, которых вы не знали о Java

Reading time8 min
Views106K
Итак, вы работаете на Java с самого её появления? Вы помните те дни, когда она называлась «Oak», когда про ООП говорили на каждом углу, когда сиплюсплюсники думали, что у Java нет шансов, а апплеты считались крутой штукой?

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

Аппаратное ускорение корпоративных вычислений

Reading time7 min
Views5.7K
“Ускоренные вычисления” (Accelerated Computing) – модель вычислений, при которой в тандеме с традиционными CPU применяются узкоспециализированные сопроцессоры (“ускорители”). Основной задачей сопроцессоров является высокопараллельное выполнение интенсивной вычислительной нагрузки и высвобождение ресурсов CPU для других нужд приложения (“offloading”).

Хорошими примерами таких “ускорителей” могут служить GPU от NVIDIA или сопроцессоры Xeon Phi, без которых не обходится практически ни один проект в сфере научных или инженерных вычислений. Однако в корпоративном секторе подобные технологии практически не применялись (если не считать использование GPU в фермах виртуализации рабочих мест).
Читать дальше →

8 советов для более эффективной работы с Git

Reading time3 min
Views46K

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




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


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

Распознавание образов в R с использованием сверточных нейронных сетей из пакета MXNet

Reading time8 min
Views15K
Это подробная инструкция по распознаванию образов в R с использованием глубокой сверточной нейронной сети, предоставляемой пакетом MXNet. В этой статье приведен воспроизводимый пример, как получить 97,5% точность в задаче распознавания лиц на R.

image

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

Сколько нужно нейронов, чтобы узнать, разведён ли мост Александра Невского?

Reading time6 min
Views25K

image


Введение.


На той неделе darkk описал свой подход к проблеме распознавания состояния моста(сведён/разведён).


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


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


В последние несколько лет сильную популярность обрели нейронные сети, как алгоритм, который умудряется в автоматическом режиме извлекать признаки из данных и обрабатывать их, причём делается это настолько просто с точки зрения того, кто пишет код и достигается такая высокая точность, что во многих задачах (~5% от всех задач в машинном обучении) они рвут конкурентов на британский флаг с таким отрывом, что другие алгоритмы уже даже и не рассматриваются. Одно из этих успешных для нейронных сетей направлений — работа с изображениями. После убедительной победы свёрточных нейронных сетей на соревновании ImageNet в 2012 году публика в академических и не очень кругах возбудилась настолько, что научные результаты, а также програмные продукты в этом направлении появляются чуть ли не каждый день. И, как результат, использовать нейронные сети во многих случаях стало очень просто и они превратились из "модно и молодёжно" в обыкновенный инструмент, которым пользуются специалисты по машинному обучению, да и просто все желающие.


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

Почему теория струн не является научной теорией

Reading time4 min
Views49K


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

Сейчас у струнных теоретиков нет объяснения тому, почему существует три больших пространственных измерения и время, а остальные измерения микроскопические. Предположения на этот счёт делаются самые разные.
— Эдвард Уиттен


Существует много способов определения науки, но один из тех, с которым могут согласиться, пожалуй, все – описывает науку, как процесс, в результате которого:
собираются знания по поводу естественных процессов или конкретного явления;
выдвигается проверяемая гипотеза, содержащая естественное, физическое объяснение этого явления;
эта гипотеза проверяется и либо подтверждается, либо опровергается;
строится более общий каркас, или научная теория, описывающая гипотезу и делающая предсказания других явлений;
она в свою очередь также проверяется и либо подтверждается, в случае чего начинаются поиски новых явлений, которые можно проверить (обратно на 3-й шаг), или опровергается, в случае чего выдвигается новая проверяемая гипотеза (обратно на 2-й шаг).

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

Именно так всегда продвигалась наука, признаём мы это или нет. Гелиоцентризм пришёл на смену геоцентризму, потому что он объяснял явления, которые не мог объяснить геоцентризм, включая:
  • луны Юпитера;
  • фазы и относительные размеры Венеры и Марса в разное время года;
  • периодичность кометных орбит.

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

Эффективное использование Github

Reading time13 min
Views127K

Github — важная часть жизни современного разработчика: он стал стандартом для размещения opensource-проектов. В «2ГИС» мы используем гитхаб для разработки проектов web-отдела и хостинга проектов с открытым кодом.

Хотя большинство из нас пользуются сервисом практически каждый день, не все знают, что у него есть много фишек, помогающих облегчить работу или рутинные операции. Например, получение публичного ключа из URL; отслеживание того, с каких сайтов пользователи приходят в репозиторий; правильный шаринг ссылок на файлы, которые живут в репозиториях гитхаба; горячие клавиши и тому подобное. Цель этой статьи — рассказать о неочевидных вещах и вообще о том, что сделает вашу работу с гитхабом продуктивнее и веселее (я не буду рассматривать здесь работу с API гитхаба, так как эта тема заслуживает отдельной статьи).


Содержание



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

Удивительный план по выращиванию денег на деревьях

Reading time23 min
Views22K


Однажды, около пяти лет назад, Фрэнк Нолво, немногословный коренастый шкипер с верховий реки Сепик, на севере Папуа – Новой Гвинеи, проснулся и отправился в город. У 42-хлетнего Нолво было девять детей. Он работал над пристройкой к дому, и ему требовались стройматериалы.

Если вы живёте в верховьях Сепик, вы не можете просто сходить в магазин. Нолво вышел из своей деревни Кагиру рано утром. Как и у других групп домов с пальмовыми крышами по реке, в Кагиру нет электричества, мобильной связи и дороги, соединяющей её с другими местами. Даже по стандартам Папуа – Новой Гвинеи, регион считается слишком жарким, бедным и сложным для проживания. Во время дождя наступает наводнение. Во время засухи ручьи пересыхают, и люди со своими каноэ оказываются в ловушке. Чтобы дойти куда-нибудь, нужно идти несколько дней. По безжалостным географическим причинам экономическое развитие в верховьях Сепик буксовало тысячи лет. А ещё там очень, очень много крокодилов.

Целый день проведя на воде, Нолво достиг Амбунти, большой деревни с населением в 2000 человек, где он переночевал. Следующим утром он двинулся дальше. Нолво считался среди местных процветающим и влиятельным человеком. Кроме лодки, у него была должность председателя района, в который входят 30 деревень, включая Кагиру. Но и для него путешествие было серьёзным предприятием. Одного горючего пришлось израсходовать на почти на 1000 кина [около 20 000 руб]. К обеду второго дня Нолво пришвартовал лодку и сел на грузовик, направлявшийся в Вевак, столицу провинции. Это и была цель его поездки, находившаяся в четырёх часах езды от берега. Именно на рынке в Веваке, покупая материалы, Нолво встретился с ещё одним главой района в верховьях Сепик, Дэвидом Салио, пригласившим его на встречу в местном отеле, посвящённую торговле квотами на выбросы CO2.
Читать дальше →

Vulners — Гугл для хакера. Как устроен лучший поисковик по уязвимостям и как им пользоваться

Reading time9 min
Views99K


Часто нужно узнать всю информацию о какой-нибудь уязвимости: насколько найденный баг критичен, есть ли готовые сплоиты, какие вендоры уже выпустили патчи, каким сканером проверить наличие бага в системе. Раньше приходилось искать вручную по десятку источников (CVEDetails, SecurityFocus, Rapid7 DB, Exploit-DB, базы уязвимостей CVE от MITRE/NIST, вендорские бюллетени) и анализировать собранные данные. Сегодня эту рутину можно (и нужно!) автоматизировать с помощью специализированных сервисов. Один из таких — Vulners, крутейший поисковик по багам, причем бесплатный и с открытым API. Посмотрим, чем он может быть нам полезен.
Читать дальше →

Методические заметки об отборе информативных признаков (feature selection)

Reading time39 min
Views23K
Всем привет!

Меня зовут Алексей Бурнаков. Я Data Scientist в компании Align Technology. В этом материале я расскажу вам о подходах к feature selection, которые мы практикуем в ходе экспериментов по анализу данных.

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

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

image
Источник.

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

Более 60 инструментов для мониторинга Windows

Reading time8 min
Views291K
В предыдущей статье был составлен список из 80 инструментов для мониторинга Linux системы. Был смысл также сделать подборку инструментов для системы Windows. Ниже будет приведен список, который служит всего лишь отправной точкой, здесь нет рейтинга.


читать дальше

Интерполяция: рисуем плавные графики с помощью кривых Безье

Reading time4 min
Views43K
Доброго времени суток, харбачитатель.

В этой статье мне хотелось бы рассказать об одном придуманном когда-то алгоритме (или скорее всего — переизобретённом велосипеде) построения плавного графика по заданным точкам, используя кривые Безье. Статья была написана под влиянием вот этой статьи и очень полезного комментария товарища lany, за что им отдельное спасибо.

Постановка задачи
Есть массив Y-ков точек, расположенных равномерно по оси X. Нужно получить плавный график, который проходит через все заданные точки. Пример на рисунке ниже:



Всех, кому интересно, прошу под кат.
Читать дальше →

Аппаратный ускоритель нейросети подключается по USB

Reading time2 min
Views16K


Американская компания Movidius известна как разработчик аппаратного ускорителя нейросетей Myriad 2 VPU и поставщик микросхем для системы искусственного интеллекта GoogleNet.

После оптимизации и подготовки бинарника в фирменном фреймворке Fathom Deep Learning Software Framework нейросеть эффективно работает на ускорителе Myriad 2 с энергопотреблением менее 1 Вт. Такие микросхемы идеально подходят для роботов, мультикоптеров, смартфонов, видеокамер наблюдения, шлемов дополненной реальности — любых гаджетов, где пригодится распознавание объектов, распознавание речи, трекинг объектов, навигация и т.д.

Одновременно с фреймворком Fathom компания Movidius сегодня на саммите Embedded Vision Summit в Калифорнии впервые показала публике ускоритель-на-флешке Fathom Neural Compute Stick — первый в мире прибор такого рода. Здесь вообще всё сразу готово к применению. Флэшка со встроенным ускорителем Myriad 2 просто вставляется в любое устройство с USB-портом.
Читать дальше →

От шедулера к планировщику

Reading time7 min
Views16K
См. две другие статьи этой группы — Делаем многозадачность и Преемптивность: как отнять процессор.

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

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

Как я уже говорил, шедулер — это просто функция, которая отвечает на вопрос: какую нить и на сколько времени поставить на процессор.

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

Говоря о шедулере нельзя не сказать о приоритетах.

Приоритет — свойство нити (или процесса) влияющее на конкуренцию этой нити с другими нитями за процессор.

Приоритет обычно описывается парой <класс приоритета, значение приоритета внутри класса>.
Читать дальше →

День рождения Ершова

Reading time17 min
Views23K
«Элитарность программистов представляется мне очевидной и в этом представлении является интереснейшим вызовом человечеству в целом.»
— Андрей Петрович Ершов



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

Дональд Кнут вспоминал: «Это началось еще когда я был студентом последнего курса. Тогда только появилась книга Андрея «Программирование для БЭСМ», и мы, группа студентов, смогли убедить преподавателя русского языка включить её в курс в качестве одного из двух сборников текстов для изучения научной лексики».

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

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

А это Ершов и МакКарти если что:
image

Пагинация списков в Android с RxJava. Часть I

Reading time13 min
Views41K
Часто при разработке клиента мы сталкиваемся с задачей отображения какой-либо информации с сервера, базы данных или еще чего-нибудь в виде списка. И при прокручивании списка данные должны автоматически подгружаться и вставляться в список незаметно для пользователя. У пользователя вообще должно сложиться впечатление, что он скроллит бесконечный список.

В данной статье я бы хотел рассказать вам о том, как сделать автоподгружаемый список простейшим в реализации для разработчика и максимально эффективным и быстрым для пользователя. А также о том, как нам в этом здорово поможет RxJava с ее главной догмой — «Everything is Stream!»
Читать дальше →

Разбираемся с многопоточностью в RxJava

Reading time10 min
Views59K

Когда описывают преимущества RxJava, всегда упоминают об удобстве организации работы многопоточного приложения средствами RxJava. То, как использовать операторы subscribeOn и observeOn, можно прочитать практически в каждой статье, посвященной основам RxJava. Например, здесь хорошо описаны случаи, когда использовать методы subscribeOn и когда observeOn. Однако, на практике часто приходится сталкиваться с проблемами, для которых нужно более глубокое понимание того, что именно делают методы subscribeOn и observeOn. В этой статье я хотел бы рассмотреть ряд вопросов, которые иногда возникают при использовании этих операторов.
Читать дальше →

Улучшаем работу в консоли или как я написал команду sshcdvim

Reading time3 min
Views13K
Наверняка многие делали так, как на картинке, но вот только у них при этом выдалась ошибка типа «файл не найден». Давайте исправим эту проблему, чтобы при таких очевидных опечатках происходило именно то, что вы хотели. То есть, когда вы пишете «ssh <dirname>», происходил заход в директорию <dirname> и наоборот, когда вы делаете «cd <hostname>» происходит заход по ssh. Ну и заодно сделаем то же самое для vim, чтобы 2 раза не вставать.

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

Information

Rating
788-th
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity