Всегда было интересно как мир выглядит с высоты. Что видят птицы, чего не видно на картах googleEarth. Так пришло увлечение мультикоптерами, летать под облаками, фотографировать, снимать видео.
Александр Холодович @kholodovitch
Lead Java backend developer
Астрофотография в каждый дом
6 min
126KДумаю у любого человека, интересующегося космосом — возникала идея купить телескоп, чтобы лично все посмотреть.
Однако суровая реальность вечно портит всю малину: в пределах города – все небо засвечено уличным освещением и турбулентность воздуха высокая. Это означает, что либо придется ограничится самыми крупными и яркими объектами (вроде Луны и Юпитера), либо возить телескоп далеко за город.
Возможное решение проблемы — удаленно-управляемые телескопы большого размера и расположенные в горах. Конечно, возможность видеть все своими глазами это не заменит — но астрофотографии полученные таким образом будет трудно превзойти. Именно на этом способе я и хочу остановиться в этой статье.
Пример того, что получилось: галактика Андромеда, M31 на телескопе Т20
Однако суровая реальность вечно портит всю малину: в пределах города – все небо засвечено уличным освещением и турбулентность воздуха высокая. Это означает, что либо придется ограничится самыми крупными и яркими объектами (вроде Луны и Юпитера), либо возить телескоп далеко за город.
Возможное решение проблемы — удаленно-управляемые телескопы большого размера и расположенные в горах. Конечно, возможность видеть все своими глазами это не заменит — но астрофотографии полученные таким образом будет трудно превзойти. Именно на этом способе я и хочу остановиться в этой статье.
Пример того, что получилось: галактика Андромеда, M31 на телескопе Т20
+214
История создания стартапа и последующая его трансформация в аутсорсинговую контору
7 min
15KПриветствую, хаброжители!
В свете события анонимных дедов морозов пришло время и для моей первой статьи.
К счастью думать о чем написать долго не пришлось. Полагаю, Хабр готов для еще одного поста про постсоветский стартап и хороший опыт с друзьями в бизнесе.
В свете события анонимных дедов морозов пришло время и для моей первой статьи.
К счастью думать о чем написать долго не пришлось. Полагаю, Хабр готов для еще одного поста про постсоветский стартап и хороший опыт с друзьями в бизнесе.
+19
Внутриканальные наушники: все о них
16 min
294K1. Что такое IEMs?
Внутриканальные наушники (англ. In-Ear-Canalphone), еще именуемые как затычки, реже ухо-мониторы или (правильное) IEMs (в дальнейшем в статье будет именно это название, т.к. оно очень лаконичное и нравится автору) — это наушники, внешне очень похожие на вкладыши, но разработанные для максимальной звукоизоляции ушного канала слушателя. Ее (звукоизоляцию) еще называют, звуковая «герметизация», — она имеет две функции: блокировка лишних шумов и формирование звуковой площади (камеры) для достижения полноты звучания. Создает такую герметизацию насадка, надетая на сопло наушника и вложенная в переднюю часть ушного канала. Существуют также наушники, где насадка создана по слепкам ушей владельца, — они называются (у русскоговорящей аудитории) кастомами (англ. Custom molded earplugs), — подобные вещи служат для достижения максимального качества звука и комфорта от прослушивания.
Почему выбирают IEMs? Из-за высокой портативности, качественного звука и способности к блокировке лишних шумов. Некоторые модели уже давно используют аудио-инженеры; музыканты, выступая на сцене. Затычки (в России это название прижилось больше), являются разновидностью IEMs. Когда производители внутриканальных наушников начали клепать их для общего потребителя (поколение iPod), аббревиатура IEMs стала более популярна (не в России), заменив выражение «затычек». Техническим языком правильно «затычки» называть — IEMs. Реже аббревиатура IEMs используется для обозначения внутриканальных наушников высокого качества.
+66
О том, как я доверился своей интуиции и был очень упорным
5 min
62K Бывало ли у вас ускользающее чувство как будто вы на правильном пути? Возможно, вы что-то делали, подсознательно понимая что двигаетесь в правильном направлении, вы ощущали то неуловимое состояние когда «я понятия не имею что сейчас делаю, но мне кажется я на правильном пути». У меня часто бывает такое состояние. Вашему вниманию предлагается скромная история, произошедшая со мной несколько лет назад. Заранее прошу прощения если я где-то неправильно использую технические термины, поправьте меня в комментариях, спасибо.
Собственно, началось все со звонка моей любимой сестры и описания насущной проблемы, которая встала перед ней. А случилось следующее — организация, в которой она работала, год назад заказала создание сайта с 15 виртуальными турами (это там, где используя встроенный flash-плеер вы можете крутить во все стороны и изучать пространство вокруг себя, например, номер в гостинице). В какой-то определенный момент, как вы уже, наверное, догадались, все виртуальные туры на сайте вместо красочных картинок стали показывать ошибку: «Error 20» на красивом белом фоне. С этим и предстояло мне разобраться.
Собственно, началось все со звонка моей любимой сестры и описания насущной проблемы, которая встала перед ней. А случилось следующее — организация, в которой она работала, год назад заказала создание сайта с 15 виртуальными турами (это там, где используя встроенный flash-плеер вы можете крутить во все стороны и изучать пространство вокруг себя, например, номер в гостинице). В какой-то определенный момент, как вы уже, наверное, догадались, все виртуальные туры на сайте вместо красочных картинок стали показывать ошибку: «Error 20» на красивом белом фоне. С этим и предстояло мне разобраться.
+123
Налетай, подешевело: как смартфоны и планшеты теряют в цене при перепродаже
3 min
64KНастоящий гик веяниям моды не подвержен, но против технического прогресса не попрешь: софт и требования к гаджетам меняются так стремительно, что даже топовые модели устаревают максимум за пару лет. Отсюда следует насущная необходимость периодически обновлять парк железок, особенно если речь идет о мобильных устройствах. А что делать с уже ненужным гаджетом? Можно забыть в дальнем ящике стола, можно подарить, а можно и продать. Пройдя этот путь неоднократно, я уже давно при выборе и покупке новой техники задумываюсь о том, как буду ее впоследствии продавать. Специально для своего хабраблога портал «Из рук в руки» подготовил небольшую занимательную аналитику: как быстро и сколько теряют в цене гаджеты – смартфоны и планшеты – и как делать покупки так, чтобы меньше терять на перепродаже.
+35
Неистовые быки: как Wall Street попала в зависимость от «скоростных» торгов. Часть 2
4 min
50KФотография: Bantersnaps (Unsplash.com)
Продолжение первой части, опубликованной ранее в блоге ITinvest. Рассказываем, как развивалась ситуация, когда Wall Street в какой-то момент своего развития решила сделать ставку на технологии высокоскоростных торговых операций. Журналисты Wired в своем расследовании подчеркивают, что в этой области критичными становятся все аспекты ИТ-инфраструктуры, хранения и передачи данных. И если крупнейшие трейдинговые центры США разделает всего несколько сотен миль, в процессе принятия и исполнения решений HFT-трейдерами играет роль каждая десятая миллисекунды.
+64
Используем 32битные библиотеки в 64битных программах
2 min
9.5KМожно ли использовать 32битные библиотеки в 64битных программах? Скорее нет. А если очень нужно? Тогда скорее да!
Для одного проекта мне нужно работать с 32битными проприетарными библиотеками. Под виндой нет проблем — компилируем все в 32 бита и вперед. Но под линуксом дела обстоят хуже. Собирать все в 32 бита и цеплять в RPM 32битные версии свободных библиотек некрасиво, более того у меня есть API для плагинов. Совсем не хочется заставлять юзеров ставить ради несчастного плагина 32битный компилятор. Поэтому я решил сделать переходникиз кота в мышь, который будет вызывать функции из 32битных библиотеке в отдельном процессе. Сначала я хотел сделать его на питоне, но скомпилировать питон в бинарник у меня не получилось. Потом добрые люди на IRC канале PyPy подсказали мне, что можно использовать libffi прямо из C! Дальше дело за малым.
Для одного проекта мне нужно работать с 32битными проприетарными библиотеками. Под виндой нет проблем — компилируем все в 32 бита и вперед. Но под линуксом дела обстоят хуже. Собирать все в 32 бита и цеплять в RPM 32битные версии свободных библиотек некрасиво, более того у меня есть API для плагинов. Совсем не хочется заставлять юзеров ставить ради несчастного плагина 32битный компилятор. Поэтому я решил сделать переходник
+11
Система наблюдения в автомобиле за ним же на Raspberry Pi. Часть 1
4 min
53KВведение
Добрый день.
Однажды я приобрёл Raspberry Pi без каких-то на то целей — как только начались упоминания о нём на хабре. Начал бесцельно запускать фтп-сервера, пробовать Node.js и прочие мелкие серверные дела, пока не приобрёл новый автомобиль. Конечно, заниматься тем, что можно найти на просторах интернета вроде дистанционного открытия гаража я не стал — в силу нормального не знания системы Linux и серверных языков программирования. Автомобиль стал мне дорог и возникла идея — поставить малинку в автомобиль с прикрученными к ней USB девайсами: GPS, Web-камера, 3G-модем — для чего и был куплен 2-ой Raspberry.
В этой статье я опишу подготовку: установку Node.JS, настройку OpenVPN и 3G.
+36
Проблемы снятия регулярных помех в формах с рукопечатным заполнением
9 min
4.8KПривет, Хабр)
Этой статьей мы начинаем серию публикаций о технологиях оптического распознавания (OCR, ICR) и понимания документов, разработанных специалистами компании Cognitive Technologies. Многие из этих решений более 10 лет успешно функционируют в разных организациях и помогают оптимизировать процессы обработки бланков Пенсионного фонда, анкет на получение загранпаспорта, платежных поручений Сбербанка РФ, результатов голосования акционеров Газпрома и десятки других документов.
Сегодня наш рассказ об одной из наиболее сложных и интересных с научной точки зрения проблем, которую приходится решать при распознавании деловых документов, это снятие помех или отделение полезной информации от «мусора».
+24
Как работает автоматическое выделение документа на изображении в программе ABBYY FineScanner?
5 min
16KЧто такое ABBYY FineScanner
ABBYY FineScanner – программа для iOS-устройств, которая может фотографировать документы и обрабатывать снимки так, чтобы получившиеся электронные копии (по сути – сканы) были удобны для работы – чтения, печати или хранения/пересылки в удобочитаемом виде. О выходе первой версии мы писали здесь.
Фотографии документов, получаемые на мобильных устройствах, обладают различными искажениями по сравнению с изображениями, получаемыми из обычного сканера. К таким искажениям относятся: цифровой шум, геометрические искажения, вызванные поворотом документа или наличием перспективы, неравномерность в освещенности, расфокусировка, смаз. Далее мы опишем алгоритм, который позволяет автоматически устранить геометрические искажения документа на изображении.
Весь процесс можно разделить на несколько основных этапов:
1) Уменьшение исходного изображения
2) Выбор наиболее информативного канала
3) Предобработка изображения, выделение контуров
4) Детектирование границ и определение углов документа
5) Проверка полученных гипотез
6) Уточнение координат углов документа
Рассмотрим каждый из этапов подробнее.
+33
Как мы тестируем поиск в Яндексе. Screenshot-based тестирование блоков результатов
5 min
41KЧем крупнее и сложнее становится сервис, тем больше времени приходится уделять тестированию. Поэтому желание автоматизировать и формализовать этот процесс вполне законно.
Чаще всего для автоматизации тестирования веб-сервисов применяется Selenium WebDriver. Как правило, с его помощью пишут функциональные тесты. Но, как всем хорошо известно, функциональные тесты не могут решить задачу тестирования верстки сервиса, что требует проведения дополнительных ручных, зачастую кроссбраузерных, проверок. Как тест может оценить корректность верстки? Чтобы обнаружить регрессионные ошибки верстки, тесту потребуется некоторый эталон, в качестве которого может выступать изображение корректной верстки, взятой, например, с продакшен-версии сервиса. Этот подход носит название screenshot-based testing. Подход этот применяется достаточно редко, и чаще всего верстку все же тестируют вручную. Причина этому – ряд достаточно строгих требований к сервису, к среде выполнения тестов и к самим тестам.
Расширенные ответы сервисов Яндекса в результатах поиска — мы у себя внутри по старой традиции называем их «колдунщиками» — дополнительное звено, в котором что-то может сломаться.
На примере тестирования колдунщиков в поиске мы расскажем, какими особенностями должен обладать тестируемый сервис, какие проблемы возникают у нас при использовании screenshot-based testing, и как мы их решаем.
Чаще всего для автоматизации тестирования веб-сервисов применяется Selenium WebDriver. Как правило, с его помощью пишут функциональные тесты. Но, как всем хорошо известно, функциональные тесты не могут решить задачу тестирования верстки сервиса, что требует проведения дополнительных ручных, зачастую кроссбраузерных, проверок. Как тест может оценить корректность верстки? Чтобы обнаружить регрессионные ошибки верстки, тесту потребуется некоторый эталон, в качестве которого может выступать изображение корректной верстки, взятой, например, с продакшен-версии сервиса. Этот подход носит название screenshot-based testing. Подход этот применяется достаточно редко, и чаще всего верстку все же тестируют вручную. Причина этому – ряд достаточно строгих требований к сервису, к среде выполнения тестов и к самим тестам.
Расширенные ответы сервисов Яндекса в результатах поиска — мы у себя внутри по старой традиции называем их «колдунщиками» — дополнительное звено, в котором что-то может сломаться.
На примере тестирования колдунщиков в поиске мы расскажем, какими особенностями должен обладать тестируемый сервис, какие проблемы возникают у нас при использовании screenshot-based testing, и как мы их решаем.
+64
Eleven — сервис автоматического перевода речи в текст
1 min
12KПривет. Мы, Боря и Полина, расскажем о нашем проекте Eleven.
Мы разрабатываем Eleven — сервис автоматического перевода речи в текст и плагин для Skype. Сервис связывается со Skype во время звонка, обрабатывает голосовой разговор и возвращает пользователю в текстовом виде в течение 5-7 секунд. Текстовый лог разбит на привычные блоки: ваши слова и слова вашего собеседника. Связь со Skype нужна для определения начала и конца разговора.
Идея распознавания речи не нова, и в мире ведётся интенсивная разработка сервисов по голосовому набору с весьма разнообразным функционалом. Наш же продукт предназначен для фрилансеров — разработчиков и дизайнеров — и направлен на повышения удобства в их работе.
Мы разрабатываем Eleven — сервис автоматического перевода речи в текст и плагин для Skype. Сервис связывается со Skype во время звонка, обрабатывает голосовой разговор и возвращает пользователю в текстовом виде в течение 5-7 секунд. Текстовый лог разбит на привычные блоки: ваши слова и слова вашего собеседника. Связь со Skype нужна для определения начала и конца разговора.
Идея распознавания речи не нова, и в мире ведётся интенсивная разработка сервисов по голосовому набору с весьма разнообразным функционалом. Наш же продукт предназначен для фрилансеров — разработчиков и дизайнеров — и направлен на повышения удобства в их работе.
+1
Целимся из пушки
3 min
31KВ статье описан простой алгоритм наведения пушки, когда оси вращения не пересекаются с осью ствола. Быстро найти готовый не получилось – пришлось вспоминать школьные времена. Ну а раз вспомнил – грех не поделиться с остальными. А кто-то где-то, сэкономив время, использует его на создание еще чего-то полезного…
Результат приведенных расчетов используется в аркадной игре. За месяц промахов не было. Если вы разрабатываете симулятор, скорее всего, понадобится что-то более изощренное.
+33
Ускоряем Nginx за 5 минут
5 min
290KПопытайтесь повторить это сами
Как правило, настроенный должным образом сервер Nginx на Linux, может обрабатывать 500,000 — 600,000 запросов в секунду. Но этот показатель можно весьма ощутимо увеличить. Хотел бы обратить внимание на тот факт, что настройки описанные ниже, применялись в тестовой среде и, возможно, для ваших боевых серверов они не подойдут.
Минутка банальности.
yum -y install nginx
На всякий пожарный, создадим бэкап исходного конфига.
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig
vim /etc/nginx/nginx.conf
А теперь можно и похимичить!
+73
Vuforia: немного магии в нашей реальности
5 min
61K Современный мир не перестает радовать нас достижениями технологий, кому как не хабражителям это известно. Я до сих пор отношу всякие шлемы виртуальной реальности к чему-то скорее научно-фантастическому, нежели реальному, несмотря на то, что они уже вполне существуют (достаточно поискать по хабру Oculus Rift). Помимо, если так можно выразится, “чистой” виртуальной реальности все более интересными кажутся проекты по дополнению реальности нашей (Augmented Reality). Нашумевший на Kickstarter проект castAR тому живое доказательство, да и Google Glass хоть и не совсем то, но вполне умещается в термин augmentation.
Одно только НО, Oculus Rift – на сегодня это версия для разработчиков, castAR – вообще только концепт, ну а Google Glass достался только счастливчикам и возможности его сильно ограничены. В общем об охвате широкой аудитории пока говорить не приходится. Зато смартфоны всех сортов поселились в нашей жизни уже повсеместно. Они все замечательные, имеют камеру и достаточно умны, чтобы стать тем самым окошком в реальность дополненную.
В этой статье я расскажу о Vuforia — фреймворке, который позволяет сделать с вашим телефоном нечто подобное. Пост скорее обзорный, чтобы разобраться в терминологии и понять, как все это делается.
Одно только НО, Oculus Rift – на сегодня это версия для разработчиков, castAR – вообще только концепт, ну а Google Glass достался только счастливчикам и возможности его сильно ограничены. В общем об охвате широкой аудитории пока говорить не приходится. Зато смартфоны всех сортов поселились в нашей жизни уже повсеместно. Они все замечательные, имеют камеру и достаточно умны, чтобы стать тем самым окошком в реальность дополненную.
В этой статье я расскажу о Vuforia — фреймворке, который позволяет сделать с вашим телефоном нечто подобное. Пост скорее обзорный, чтобы разобраться в терминологии и понять, как все это делается.
+20
Confederate Express — игра про выживание в тонах сурового ретро, «написанная» мастерами современного пиксель-арта (Kickstarter Campaign)
11 min
63KСтраница проекта на Кикстартер — (Kickstarter link)
Страничка проекта на Фейсбуке — (Facebook link)
Официальный сайт разработчика Kilobite
Твиттер Максима Пашанина Twitter-link
Дебютный трейлер KS кампании Trailer Link
Честно, как на духу, не собирался писать что-либо до завершения еще одного туториала, ибо лучше моей болтовни — хорошая, добрая помощь, вы ясно мне дали это понять (смеется). Но сегодня под вечер увидел эту игру на Kickstarter, и как в случае с SpinTires не удержался. И вовсе не потому, что ее также делают наши соотечественники, и даже не потому, что ролик естественен как пение птиц по утру, но потому, что она… сказочная. И одновременно настоящая. Это не закос (да простят мне подобные формулировки) под ретро, это именно следование заветам, уважение традиций, и одновременно оригинальная подача того чтобы мы знали когда-то и того что мы никак не можем забыть. Предположу, что и не хотим забывать.
Все упомянутое до, пока что мои слова. Чтобы добавить им веса мне пришлось взять у разработчиков небольшое интервью. Чем больше граней имеет камень, тем он лучше играет на свету. Возьмете ли вы на себя труд помочь мне откопать нашу находку?
+106
Разработка нечеткой нейронной сети NEFClass M
4 min
14K Анализ недостатков системы NEFClass показывает, что их причиной является несовершенство алгоритма обучения нечетких множеств NEFClass. Для того что бы исправить это, необходимо заменить эмпирический алгоритм обучения на строгий алгоритм численной оптимизации. Как и оригинальная, так и модифицированная модель NEFClass основывается на архитектуре нечеткого персептрона. Архитектурные различия оригинальной и модифицированной моделей состоит в виде функций принадлежности нечетких множеств, функции t-нормы для вычисления активаций нейронов правил, а также в виде агрегирующей функции (t-конормы), определяющей активации выходных нейронов. Применение численных методов оптимизации требует дифференцируемости функций принадлежности нечетких множеств – условие, которому треугольные функции принадлежности не удовлетворяют. Поэтому в модифицированной модели нечеткие множества имеют гауссовскую функцию принадлежности.
Требование дифференцируемости диктует также вид t-нормы (пересечения) для вычисления активации нейронов правил. В системе NEFClass для этого используется функция минимума; в модификации это произведение соответствующих значений. Наконец, вид агрегирующей функции (t-конормы) для модифицированной модели ограничен только взвешенной суммой. Причина состоит в том, что функция максимума, которая используется в оригинальной системе, не удовлетворяет условию дифференцируемости.
Основное изменение, касается алгоритма обучения нечетких множеств. Целевой функцией в модифицированной системе NEFClass выступает минимизация среднеквадратичной ошибки на обучающей выборке по аналогии с классическими нейросетями
Требование дифференцируемости диктует также вид t-нормы (пересечения) для вычисления активации нейронов правил. В системе NEFClass для этого используется функция минимума; в модификации это произведение соответствующих значений. Наконец, вид агрегирующей функции (t-конормы) для модифицированной модели ограничен только взвешенной суммой. Причина состоит в том, что функция максимума, которая используется в оригинальной системе, не удовлетворяет условию дифференцируемости.
Основное изменение, касается алгоритма обучения нечетких множеств. Целевой функцией в модифицированной системе NEFClass выступает минимизация среднеквадратичной ошибки на обучающей выборке по аналогии с классическими нейросетями
+16
RevealApp — Firebug для iOS приложений
1 min
8.1KДва дня назад вышел RevealApp. RevealApp это MacOS приложение. Он показывает иерархию UI-компонентов приложения в понятном и мощном 3D-представлении и позволяет менять UI на лету. Идея похожа на Firebug или Web Inspector для сайтов.
Возможные применения:
— отладка UI, визуальный поиск непонятных багов в layout и тд;
— знакомство с приложением, написанным другим разработчиком, открываете Reveal и быстро анализируете структуру экранов (отображаются в том числе элементы созданные в runtime);
— дизайнеры (или разработчики под их присмотром) могут тестировать дизайн без перекомпиляции приложения (а давайте подвинем иконку выхода на три пикселя влево).
Reveal используют Flipboard, Artsy, Xamarin и другие.
Возможные применения:
— отладка UI, визуальный поиск непонятных багов в layout и тд;
— знакомство с приложением, написанным другим разработчиком, открываете Reveal и быстро анализируете структуру экранов (отображаются в том числе элементы созданные в runtime);
— дизайнеры (или разработчики под их присмотром) могут тестировать дизайн без перекомпиляции приложения (а давайте подвинем иконку выхода на три пикселя влево).
Reveal используют Flipboard, Artsy, Xamarin и другие.
+19
Настройка I2P Out Proxy
2 min
29KTutorial
Добрый день уважаемые хабраюзеры.
Сегодня я вам предлагаю обсудить создание единого прокси сервера способного в пургу, жару и блокировку оставаться не преклонным и свято блюсти принципы свободы информации, единения и мира во всём мире. Да, да речь пойдет опять об i2p, но уже с позиции серверных настроек.
Представим, что существует добрый самаритянин за границей у которого постоянно включен i2p роутер и он готов нести радость людям создав нам proxy.antizapret.i2p
+7
Information
- Rating
- 5,403-rd
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity
Specialization
Backend Developer, Chief Technology Officer (CTO)
Lead
From 300,000 ₽
Java
Spring Boot
Hibernate
Apache Kafka
RabbitMQ
C#
MySQL
Redis