Pull to refresh
13
0.1
Александр Соловец @mbait

Пользователь

Send message

Сложение двух чисел с плавающей запятой без потери точности

Reading time 9 min
Views 77K
Здравствуйте, друзья, как вы думаете, если мы напишем такой код:

s = a+b;
z = s-a;
t = b-z;

то не кажется ли вам, что в результате его выполнения получится, что t=0? С точки зрения привычной математики действительных чисел это и правда так, а вот с точки зрения двоичной арифметики с плавающей запятой в переменной t будет кое-что другое. Там будет то, что спасает нас от потери точности при сложении чисел $a$ и $b$. Кого интересует данная тема, прошу под кат.

Total votes 139: ↑137 and ↓2 +135
Comments 172

Разблокируем интернет с помощью Mikrotik и VPN: подробный туториал

Reading time 3 min
Views 147K

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

В качестве VPN я выбрал SoftEther: он настолько же прост в настройке как и RRAS и такой же быстрый. На стороне VPN сервера включил Secure NAT, других настроек не проводилось.

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

Настройка производилась на примере RB3011UiAS-RM на прошивке версии 6.46.11.
Теперь по порядку, что и зачем.
Читать дальше →
Total votes 71: ↑67 and ↓4 +63
Comments 75

Как я добился обещанного гигабита, использовав Mikrotik + мозг

Reading time 5 min
Views 173K

100 мегабит в секунду от предыдущего провайдера начал сильно замедлять рабочий процесс, поэтому я начал искать провайдера с нормальной скоростью. В моем доме, из быстрых был только МГТС, на чем я и остановился. Провели интернет быстро, два дня между заявкой и кабелем в квартире, оставили большую бухту оптики, за что спасибо…
Читать дальше →
Total votes 87: ↑85 and ↓2 +83
Comments 108

Минимальное PWA

Reading time 6 min
Views 21K

Какие характеристики должны быть у web-приложения, чтобы соответствовать критерию "прогрессивное"? Понятно, что, как и обычные web-приложения, прогрессивные строятся на базе "большой тройки" web-технологий - HTML/CSS/JS. Но что именно делает web-приложения прогрессивными?

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

Читать далее
Total votes 31: ↑29 and ↓2 +27
Comments 11

Детекторы углов

Reading time 18 min
Views 109K
Мне интересна обработка изображений, в особенности работа с особыми точками. Ища информацию по детекторам углов, я не нашел достаточно большого обзора этих алгоритмов на русском языке. Поэтому я решил исправить ситуацию, написав эту статью. План статьи следующий:

  • Введение
  • Свойства особых точек
  • Детекторы углов
    • Moravec
    • Harris
    • Shi-Tomasi
    • Förstner
    • SUSAN
    • Trajkovic
    • FAST
    • CSS
    • Детектор, основанный на глобальных и локальных свойствах кривизны
    • CPDA
  • Выводы



Читать дальше →
Total votes 118: ↑116 and ↓2 +114
Comments 28

Зрение для робота на Raspberry Pi: карта глубин

Reading time 11 min
Views 36K
image

Нынче все технологии «дроностроительства» активно дешевеют. Кроме одной: получение карты окружающего пространства. Тут есть две крайности: либо дорогие лидары (тысячи долларов) и оптические решения для построения карты глубин (много сотен долларов), либо совсем копеечные решения типа ультразвуковых дальномеров.
Поэтому возникла идея на базе недорогой Raspberry Pi с одной камерой сделать решение, которое окажется в пустующей нише и позволит получать карту глубин «за недорого». Причем сделать это на простом языке программирования типа Python, чтобы это было доступно новичкам для экспериментов. Собственно, о своих результатах я и хотел рассказать. Получившиеся скрипты с примерами фоток можно запускать и на десктопе.

Читать дальше
Total votes 43: ↑42 and ↓1 +41
Comments 23

Опубликован код алгоритма Predator

Reading time 1 min
Views 11K
Хотя сам Зденек Катал был против, но исходные коды его алгоритма отслеживания объектов в видеопотоке Tracking-Learning-Detection (aka Predator) всё-таки попали в открытый доступ. Судя по всему, они были какое-то время выложены на сайте автора и кто-то успел сделать копию. А поскольку код публиковался под лицензией GPL 2.0, то не осталось никаких препятствий для его дальнейшего распространения.

Проект TLD на github: 1, 2, 3, 4, 5

Основная часть сделана на Matlab и его относительно легко можно транслировать в C за пару дней.

Сам трекинг осуществляется методом Лукаса-Канаде и с помощью OpenCV.
Total votes 71: ↑69 and ↓2 +67
Comments 51

Памятка по базовой верстке статьи для Хабра без использования Markdown-разметки

Reading time 5 min
Views 46K
На Хабре, по меркам старожилов, я совсем недавно, всего два года, но пишу активно, по возможности каждый день. Так вот, читая статьи, да и просто прокручивая ленту свежих публикаций как на Хабре, так и на GT, я понял, что многие просто не могут совладать с версткой текста и, как следствие, достаточно часто годные публикации хоронятся их же авторами из-за нечитабельности текста. Или отпугивает кривая КДПВ, или еще что произойдет.

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

Картинка Для Привлечения Внимания и выравнивание по левому краю


Так уж сложилось, что вся лента Хабрахабра выровнена по левому краю. По этой причине опытные авторы небольшие изображения оставляют слева или используют картинки шириной в 800-1000 px. Отдельно хочется заметить, что чуть ли не лучшим является соотношение КДПВ 2 к 1, т.е. изображения 800х400 px. Подобная пропорция позволяет SMM-щику соц. сетей не изгаляться с вашей картинкой (а то и вовсе искать что-то другое, более подходящее по размерам), а использовать оригинал, не нарушая задумки автора.
Читать дальше →
Total votes 67: ↑61 and ↓6 +55
Comments 44

Как масштабировать Ruby-приложения

Reading time 3 min
Views 13K
Основная цель нашей работы состоит в том, чтобы сделать IaaS простым и понятным даже для тех, кто не сталкивался с ИТ-сферой. Поэтому мы проводим постоянную оптимизацию всех систем и рассказываем о том, что нам удалось сделать, в нашем блоге на Хабре.

Пара примеров:


Сегодня мы решили взглянуть на западный опыт и кратко проанализировать тему масштабирования приложений. Нас привлекло руководство Нейта Беркопека (Nate Berkopec), эксперта по Ruby.

Читать дальше →
Total votes 26: ↑18 and ↓8 +10
Comments 14

Google Cloud Endpoints на Java: Руководство. ч. 1

Reading time 15 min
Views 23K
Google Cloud Endpoints — это надстройка над Google App Engine (GAE) для создания API для веб и мобильных приложений, делающая разработку проще и включающую в себя «из коробки» защиту от DoS-атак, OAuth 2.0 аторизацию, веб-интерфейс для тестирования API, SSL, атоматическую масштабируемость (сайт не упадет под хабра-эффектом), а также возможность использования сервисов доступных в Google App Engine (отсылка и прием электронной почты и XMPP-сообщений, загрузка данных из Интернет (URL Fetch service), задачи по расписанию (Task Queues and Scheduled Tasks) и др.)

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

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

Фреймворк Objectify предоставляет удобные стредства для работы со базой данных встроенной в GAE, а модуль angular-google-gapi для подключения веб-приложения на AngularJS c авторизацией пользователей.

Под катом много картинок и текста, и предполагается, что читатель знаком с Java Servlets.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 3

Google Cloud Endpoints на Java: Руководство. ч. 2 (Frontend)

Reading time 26 min
Views 8.3K
Часть первая: Google Cloud Endpoints на Java: Руководство. ч. 1
Часть третья: Google Cloud Endpoints на Java: Руководство. ч. 3
Часть четвертая: Работа с базой данных в Google App Engine/Google Cloud Endpoints на Java: фреймворк Objectify
Часть пятая: Google Cloud Storage c Java: изображения и другие файлы в облаках

В первой части мы рассмотрели создание проекта на Google Cloud Endpoints с Java, в этой статье речь пойдет о создании фронтенда к нашему API.

В дополнение к инструментам, использовавшимся в первой части, нам понадобится:

AngularJS, и начальное общее представление о том как он работает, опционально Bootstrap или Foundation.

Простейший веб-сервер на локальной машине для тестирования, и сервер для деплоя приложения.
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 2

Google Cloud Endpoints на Java: Руководство. ч. 3

Reading time 4 min
Views 7K
предыдущие части:
Google Cloud Endpoints на Java: Руководство. ч. 1
Google Cloud Endpoints на Java: Руководство. ч. 2 (Frontend)

Работа с версиями


Google App Engine предоставляет возможность загрузить до 10 различных версий приложения.
Одна из них (по умолчанию — первая загруженная) является основной (default) и доступна по основному адресу приложения, и соответственно по адресу собственного домена(ов).
Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Comments 0

Кинетическая скульптура «Сизиф» из LEGO Technics

Reading time 2 min
Views 19K
image

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

Фигура находится на красивом постаменте, у которого даже есть барельефы, отражающие разные периоды жизни мифического героя. Для изготовления фигуры используется 475 деталей. Джейсон конструировал своего «Сизифа» при помощи специального ПО, поэтому на сайте имеется как список деталей, так и сгенерированная в красивом виде подробная инструкция по самостоятельному изготовлению скульптуры.


Ролик о скульптуре и подробное пояснение схемы работы
Читать дальше →
Total votes 35: ↑33 and ↓2 +31
Comments 4

От первого электровелосипеда своими руками – до перспективного стартапа. Истории сотрудников REG.RU

Reading time 16 min
Views 131K


Технический директор REG.RU Валерий Студенников попытался решить транспортную проблему лично для себя, а затем превратил своё хобби в интересный стартап.

Представляем вашему вниманию рассказ основателя Electron Bikes о том, как сделать мощный электровелосипед своими руками, почему любителей скорости не устраивают существующие модели байков и до какой скорости может разгоняться обычный с виду велосипед.
Читать дальше →
Total votes 42: ↑38 and ↓4 +34
Comments 50

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

Reading time 6 min
Views 27K

Предисловие


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


Файлы с реализованным примером можно скачать в архиве.


UPD 07.03.2019: Доступна обновленная версия примера для MATLAB 2015b с комментариями на английском языке.

Определим вопросы и ответы
Total votes 16: ↑15 and ↓1 +14
Comments 20

OTRS 4.0.10. Ставим на Ubuntu + AD + Kerberos + SSO (Часть первая)

Reading time 18 min
Views 57K
Вииду того, что статья и так получилась слишком большая, а к тому же хочеться добавить к ней её пару нюансов разбиваю её на несколько частей, и дальнейшие дополнения буду публиковать как отдельные части.

Часть первая: подготовка системы
Часть вторая: установка и настройка OTRS
Часть третья: исправляем косяки прикручиваем плюшки

Вместо введения


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

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

На самом деле проблема всех этих мануалов в том, что всё вроде бы так же как у тебя, но где-то чуть-чуть не та версия пакета, чуть чуть не такая структура AD и т. д. Вот из-за всех этих чуть чуть и не складывается цветок каменный. Одним словом методом проб и ошибок, чтений документации и анализа мануалов был выработан свой, вполне рабочий метод, который я и хотел бы изложить.
Для тех кому интересно, добро пожаловать под кат
Total votes 16: ↑15 and ↓1 +14
Comments 8

Генерация классической музыки с помощью рекуррентной нейросети

Reading time 3 min
Views 31K
В наше время обучаемые нейросети творят удивительные вещи, но эксперименты в этой области продолжают открывать нечто новое. Например, программист Даниэль Джонсон (Daniel Johnson) опубликовал результаты своих экспериментов по применению нейросетей для генерации классической музыки.

К сожалению, на GT нельзя встроить аудиофайл, поэтому приходится давать прямую ссылку, чтобы послушать один из результатов: http://hexahedria.com/files/nnet_music_2.mp3.

Как у него это получилось?
Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Comments 46

Акции: первый серьезный опыт

Reading time 7 min
Views 41K
Мой первый опыт инвестирования случился еще в школе, у нас уже появился dial-up, а спустя некоторое время и первые компании, предлагающие торговать на Forex. Отношение в тот момент ко всей этой торговле было исключительно игровое – я совершал сделки без особого анализа, используя самые простые индикаторы уровней на графике цены. Спустя годы я пришел «взрослую биржу».

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

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

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


Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Comments 67

Спектры расстояний простых наборов и их объединений (часть 2)

Reading time 7 min
Views 7.1K
В первой части мы взяли в руки молоток (спектр матрицы Грина) и опробовали его на паре гвоздей (наборе из трех точек). Пока я возился с этими спектрами, возникло предложение к производителям строительных рулеток. Надо с обратной стороны измерительной ленты добавить параболическую шкалу (сантиметры в квадрате). Поскольку квадраты расстояний здесь просто кишат, а обычные (линейные) расстояния выглядят жалким частным случаем. При строительстве дачи такой рулеткой можно будет проверять прямоугольность углов, ну и прочие инварианты для расстояний между точками в пространстве и на плоскости.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 0

Information

Rating
2,511-th
Location
Владивосток, Приморский край, Россия
Registered
Activity