Pull to refresh
0
0
Станислав @Ctacus

User

Генеральная уборка в компании

Reading time 8 min
Views 47K


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

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

А знаете, что такое большая компания? Это когда ты не знаешь в лицо кого-то. Когда в команде есть люди, которые работают по должностным обязанностям без понимания, для чего нужна их работа. Когда простая задача «напечатайте табличку с текстом в магазин» начинает гулять по согласованиям и решается за 22 дня. Реальный случай. Это когда договор подписывается 4 месяца. И куча других приколов звериного оскала бюрократизма.

Разгребать всё это… хм, ну, скажем, увлекательно.
Читать дальше →
Total votes 159: ↑154 and ↓5 +149
Comments 299

Моделирование динамических систем: введение

Reading time 9 min
Views 23K

Предисловие


Трудно переоценить значение компьютерного моделирования в современном мире. Давным давно канули в Лету времена, когда траектории выведения спутников на околоземную орбиту вычислялись толпой девушек-расчетчиц с «Феликсами» наперевес (была такая вычислительная машина). Сегодня скромных размеров ящик около вашего рабочего стола решает все мыслимые и немыслимые задачи. Но есть одно «но».



Состояние инженерного образования, не знаю, как там в столицах, а здесь, на периферии, выглядит в контексте данного вопроса удручающе. Винить тут стоит подход к преподаванию в вузах таких дисциплин как «Численные методы решения инженерных задач на ЭВМ», «Математическое моделирование в %нужное впишите сами%» и прочих. Эта беда инженерного образования вытекает из того факта, что в курсах, подобным перечисленным, порой напрочь отрублены междисциплинарные связи. У обучаемого не складывается в голове цепочка: фундаментальная теория -> практическое применение -> инструмент решения задачи.

У меня давно зрела мысль написать цикл, в котором будет разобрано по полочкам всё то, что мы называем современным математическим моделированием. Но сделать это просто и доступно для тех, кто только начинает познавать эту необъятную дисциплину современной науки. Что из этого выйдет, неизвестно, но тех кому стало интересно я приглашаю под кат.
Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Comments 36

Автоматизированный помощник приготовления шашлыка «E-Mangal»

Reading time 7 min
Views 37K
Кушать подано! Садитесь жрать, пожалуйста!
Джентльмены удачи

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

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

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

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

image

Подробности ниже. Много больших фото.
Total votes 78: ↑77 and ↓1 +76
Comments 94

Закон Гей-Люссака, коллоидные растворы и сопромат для идеальных профитролей

Reading time 10 min
Views 47K

Дополнение: В конце поста есть обновленные рекомендации.

Внесем легкую нотку научного безумия в традиционную кулинарию. Сегодня мы поговорим о некоторых следствиях из уравнения Менделеева-Клайперона и коллапсе газовых пузырей при изменении температуры. А еще затронем особенности молекулярных цепей крахмала и те коллоидные растворы, которые он образует. Просто ковыряться в уравнениях скучно, поэтому совместим приятное с полезным. Создадим идеальный профитроль. Сегодня у нас два основных объекта для изучения — заварное тесто и заварной крем со взбитыми сливками. Естественно, все это безобразие мы будем творить исключительно во славу науки. Ну и заодно разберемся в тех процессах, которые не описываются в кулинарных книгах.

В конце концов, зря я что ли потратил 28 яиц и пару недель на эксперименты?
Читать дальше →
Total votes 137: ↑137 and ↓0 +137
Comments 151

Отслеживаем Millenium Falcon с помощью TensorFlow

Reading time 7 min
Views 7.6K


На момент написания этой статьи большинство крупных технологических компаний (вроде IBM, Google, Microsoft и Amazon) предлагают простые в использовании API визуального распознавания. Аналогичные инструменты предлагают и более мелкие компании, например, Clarifai. Но никто из них не предлагает средств по обнаружению объектов (object detection).
Total votes 26: ↑23 and ↓3 +20
Comments 6

Как мы делаем карту для тех, кто делает карту

Reading time 8 min
Views 23K


Продуктами 2ГИС пользуются 30 млн горожан. Чтобы огромный набор данных попал к конечному пользователю, мы используем множество внутренних продуктов, о которых очень редко рассказываем.

Однажды на Хабре уже была статья о нашем внутреннем продукте — векторном редакторе геометрий. Чудеса нейминга привели нас к трём точкам — Fiji. До них проект назывался так: «Новая карта» → «Новая новая карта» → «Новая новая новая карта». Три года назад мы приступили к реализации Fiji и рассказали о прототипировании UI, сегодня — погрузимся в технические детали и расскажем о том, как создать быстрый и надежный ГИС-редактор.
Вот так
Total votes 44: ↑38 and ↓6 +32
Comments 41

Библиотека быстрого поиска путей на графе

Reading time 8 min
Views 34K

Привет, Друзья!


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


Пример использования на огромном графе:



Поиграться с демо можно здесь


В библиотеке используется мало-известный вариант A* поиска, который называется NBA*. Это двунаправленный поиск, с расслабленными требованиями к функции-эвристике, и очень агрессивным критерием завершения. Не смотря на свою малоизвестность у алгоритма отличная скорость сходимости к оптимальному решению.


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

Читать дальше →
Total votes 114: ↑112 and ↓2 +110
Comments 53

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

Reading time 15 min
Views 25K

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


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


image


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


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


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

Читать дальше →
Total votes 38: ↑36 and ↓2 +34
Comments 5

Прокачиваем домофон протоколом MQTT для управления с телефона

Reading time 4 min
Views 122K
Всем привет. Расскажу немного про свою последнюю междуделку — доработку домофона WiFi-модулем NodeMCU. Заранее прошу прощения за выбор модуля — всех уже, наверное, достала эта ESP’шка…

Конечно, работу ClusterM с его автоответчиком никому не переплюнуть, но такой функционал я считаю излишним. Мне, с рождением дочки, лишь понадобилось бесшумно открывать домофон гостям, чтобы не стоять у трубки и не ждать входящего звонка, который наверняка разбудит малую. Да и себе иногда легче открыть дверь с телефона, нежели лезть за ключами и прикладывать таблетку туда-сюда, чтобы она сработала (у меня очень сильно тупит панель в подъезде). Проект получился небольшой, так что в статье тоже не так много букв, зато есть фотографии.
Читать дальше →
Total votes 80: ↑80 and ↓0 +80
Comments 85

Используйте Stream API проще (или не используйте вообще)

Reading time 7 min
Views 178K

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


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

Читать дальше →
Total votes 71: ↑71 and ↓0 +71
Comments 50

Нейросетевая игра в имитацию

Reading time 25 min
Views 43K

Здравствуйте, коллеги. В конце 1960-ых годов прошлого века Ричард Фейнман прочитал в Калтехе курс лекций по общей физике. Фейнман согласился прочитать свой курс ровно один раз. Университет понимал, что лекции станут историческим событием, взялся записывать все лекции и фотографировать все рисунки, которые Фейнман делал на доске. Может быть, именно после этого у университета осталась привычка фотографировать все доски, к которым прикасалась его рука. Фотография справа сделана в год смерти Фейнмана. В верхнем левом углу написано: "What I cannot create, I do not understand". Это говорили себе не только физики, но и биологи. В 2011 году, Крейгом Вентером был создан первый в мире синтетический живой организм, т.е. ДНК этого организма создана человеком. Организм не очень большой, всего из одной клетки. Помимо всего того, что необходимо для воспроизводства программы жизнедеятельности, в ДНК были закодированы имена создателей, их электропочты, и цитата Ричарда Фейнмана (пусть и с ошибкой, ее кстати позже исправили). Хотите узнать, к чему эта прохладная тут? Приглашаю под кат, коллеги.

Читать дальше →
Total votes 75: ↑75 and ↓0 +75
Comments 32

Что намазать на зубы, чтобы они не выпали

Reading time 8 min
Views 193K


Хорошо зафиксированный пациент в анестезии не нуждается

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


  • Как правильно мазать зубы пальцем?
  • Хорошо ли растворяются пломбы в кислоте?
  • Почему больно, когда сверлят зубы дрелью без анестезии?
  • Зачем мазать зубы зеленкой?
  • Лечение кариеса на дому
  • Глубокое микрофторирование эмали

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

Читать дальше →
Total votes 209: ↑206 and ↓3 +203
Comments 693

Создание шейдеров

Reading time 27 min
Views 185K
Освоить создание графических шейдеров — это значит взять под свой контроль всю мощь видепроцессора с его тысячами параллельно работающих ядер. При таком способе программирования требуется другой образ мышления, но раскрытие его потенциала стоит потраченных усилий.

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


Сцена из Minecraft, до и после добавления нескольких шейдеров.

Задача этого туториала


Иногда программирование шейдеров представляется загадочной чёрной магией и его часто понимают неправильно. Существует множество примеров кода, демонстрирующих создание невероятных эффектов, но в которых практически нет объяснений. В своём руководстве я хочу восполнить этот пробел. Я сосредоточусь в основном на базовых принципах создания и понимания кода шейдеров, чтобы вы смогли с лёгкостью настраивать, сочетать или писать свои собственные шейдеры с нуля!
Total votes 105: ↑105 and ↓0 +105
Comments 27

Устранение перспективных искажений и разгибание кривых строк на фотографиях книжных разворотов

Reading time 6 min
Views 18K
В прошлый раз в статье «Поиск линии корешка на фотографиях книжных разворотов» мы обещали рассказать о том, что случается с фотографией книжного разворота после этого, а именно — про устранение перспективных искажений и разгибание кривых строк текста. Без этого получить качественные результаты OCR практически невозможно.

Итак, считаем, что мы уже нашли на фотографии линию корешка, воспользуемся этим знанием, чтобы определить ваниш-точки для страниц разворота (vanishing point). Ваниш-точки – это точки схождения параллельных прямых в перспективной проекции книги на плоскость изображения. Они обе должны располагаться на продолжении этой линии, но для каждой из страниц положение точки может быть свое. Схематически это показано на следующей иллюстрации (на самом деле, это лог для отладки). Линия корешка выделена красным, линии, пересекающиеся в ваниш-точках, – зеленым.


Читать дальше →
Total votes 65: ↑65 and ↓0 +65
Comments 13

Разве Tesseract распознаёт медленно?

Reading time 8 min
Views 15K

Работу каждой программы можно ускорить минимум в десять раз

Рабочая установка разработчиков Smart Engines

Мы расскажем о нескольких приемах ускорения распознавания с помощью OCR Tesseract. Всё рассказанное было использовано в реализации проекта, смысл которого состоял в классификации большого числа образов страниц деловых документов (таких документов как паспорт, договор, контракт, доверенность, свидетельство о регистрации и т.п.) и сохранении результатов в электронном архиве. Часть алгоритмов классификации была основана на анализе собственно образов страниц, а часть – на анализе извлечённых из образа текстов. Для извлечения текстов было необходимо распознавание с помощью OCR.

Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Comments 8

Поиск линии корешка на фотографиях книжных разворотов

Reading time 5 min
Views 18K
При съемке книжного разворота с помощью камеры мобильного устройства неизбежно возникают некоторые из нижеперечисленных дефектов (а возможно, что и все сразу):

• цифровой шум,
• тени и блики,
• расфокусировка и смаз,
• перекос,
• перспективные искажения,
• кривые строки,
• лишние объекты в кадре.

Обработка таких фотографий для последующего OCR – довольно трудоемкая задача даже для человека, хорошо владеющего навыками работы в Photoshop. Как быть, если мы хотим это сделать автоматически, с помощью программы? Сразу оговоримся, что подробное описание всех этапов алгоритма сделало бы публикацию чересчур объемной, поэтому мы сейчас расскажем только о том, как решать одну из подзадач – найти линию корешка на таких фотографиях. О том, как устранять тени и блики на фотографиях мы уже рассказывали. Про устранение цифрового шума написано много статей. А про автоматическое исправление перспективы и кривых строк мы расскажем в следующий раз.
Читать дальше →
Total votes 40: ↑39 and ↓1 +38
Comments 20

Щелевая съёмка: реализация на bash (ffmpeg + imagemagick)

Reading time 3 min
Views 26K
Не помню что и почему я искал в интернете несколько дней назад, но я наткнулся на интересную статью с необычными фотографиями. А позже на еще одну статью, где описывалась реализация алгоритма создания таких фотографий на python. После прочтения меня заинтересовала эта тема и я решил провести вечера майских праздников с пользой для себя, а именно реализовать алгоритм «конвертирования» видео в щелевое фото. Правда, не на питоне, но подручными средствами на bash'е. Но обо всем по порядку.
Читать дальше →
Total votes 26: ↑26 and ↓0 +26
Comments 57

AlphaGo против Ли Седоля: итоги и оценки профессиональных игроков в го

Reading time 19 min
Views 31K
Вчера в Сеуле в гостинице Four Seasons прошла последняя пятая игра матча го. Каждая из них целую неделю плотно освещалась на Geektimes. В серии кто-то победил, но вряд ли подобное заинтересовало бы посетителя русскоязычного сайта о высоких технологиях и науке, если бы не один факт.

Играл Ли Седоль, обладатель девятого профессионального дана, один из лучших мастеров го в мире. Его оппонентом стала система компьютерного го AlphaGo, разработка Google DeepMind. До начала матча считалось, что ни один продукт не способен обыграть мастера высокого уровня. Но ИИ одержал победу со счётом 4:1.

Интересна скорость, с которой AlphaGo отточила го. Ещё в прошлом октябре системе для показательного матча скормили игрока куда слабее. Спустя пять месяцев она обходит одного из лучших. Похоже, что мы достигли 1997 года в шахматах, когда компьютер впервые обыграл действующего чемпиона в матче. С того момента шахматные программы улучшили навыки до такого уровня, что человек больше не способен выиграть у них в нормальных условиях.

Ожидает ли подобное го? Стоит ли бояться силы искусственного интеллекта? Мне удалось получить комментарии и ответы, которые предоставили вице-президент «Российской федерации го» и президент «Спортивной федерации го Санкт-Петербурга» Максим Подоляк, профессиональные игроки в го и многократные чемпионы Европы Илья Шикшин (первый профессиональный дан) и Александр Динерштейн (третий профессиональный дан).
Читать дальше →
Total votes 47: ↑46 and ↓1 +45
Comments 113

Хороших книг пост

Reading time 2 min
Views 70K


А давайте давайте соберём здесь хорошие книги, которые просто стоило собрать.
Суть в том, что просто давно стоило сложить хорошие книги в одном посте, чтобы было что прочитать в дороге — или просто для души.
Читать дальше →
Total votes 84: ↑72 and ↓12 +60
Comments 392

Книга Стивена Вольфрама «Элементарное введение в язык Wolfram Language»

Reading time 15 min
Views 21K

Перевод поста Stephen Wolfram "I Wrote a Book—To Teach the Wolfram Language".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации

Книга «Элементарное введение в язык Wolfram Language» доступна для вас в печатной форме, бесплатно в Интернете, а также в других формах.



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

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

Результат — книга Элементарное введение в язык Wolfram Language, вышедшая сегодня в печать. Она также свободно доступна в Интернете, и в других формах.


Читать дальше →
Total votes 24: ↑20 and ↓4 +16
Comments 7

Information

Rating
Does not participate
Location
Россия
Registered
Activity