Search
Write a publication
Pull to refresh
21
0
Антон Аникин @ColorPrint

User

Send message

Побеждаем злой вулкан с Rails и RGeo​

Reading time3 min
Views5.2K

Автор: Сергей Зиновьев

Многие мобильные и веб-приложения включают в себя разные географические данные, ведь мы сталкиваемся с картами практически везде. Так, они используются в разных социальных приложениях — от геосоциальных сетей вроде Foursquare до сервисов по поиску попутчиков вроде BlaBlaCar. Google, Microsoft, Yahoo и многие другие IT-гиганты предоставляют свой API для простых операций: отображение карт, маркеров на этих картах и проведение наиболее востребованных вычислений. Популярный фреймворк для быстрой разработки Ruby on Rails часто используется для разработки геоинформационных систем (ГИС) и веб-приложений с использованием картографических данных. На простом примере продемонстирую, какие проблемы могут ждать при использовании пространственных данных и как их избежать в Ruby on Rails-приложении.

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



Итак, мы разрабатываем приложение, и в какой-то момент необходимо добавить функцию поиска кратчайшего прямого расстояния между двумя географическими точками. Казалось бы, ничего сложного? Как бы не так! В своем блоге, в серии записей под тегом GeoRails, Дэниэл Азума приводит пример, когда неумение работать с пространственными данными может привести к трагедии.

Дэниэл предлагает нам рассмотреть следующую гипотетическую ситуацию. Представьте самолет, которому нужно совершить рейс из Сан-Франциско в Афины во время очередного извержения ТогоСамогоВулканаКоторыйНевозможноПроизнести в Исландии. Задача летчика — спланировать маршрут так, чтобы пролететь на безопасном расстоянии от вулкана. Также ему нужно знать длину маршрута, чтобы заправить самолет достаточным количеством топлива. Чтобы верно все рассчитать, командир воздушного судна делает запрос в центр организации воздушного движения.
Читать дальше →

P2P в браузере

Reading time10 min
Views22K

Автор: Александр Трищенко


Я расскажу о своем хобби — организации видеотрансляций в браузере по технологии WebRTC (Web Real-Time Communication — веб-коммуникация в режиме реального времени). Этот проект с открытым исходным кодом Google активно развивает с 2012 г., а первый стабильный релиз появился в 2013 г. Сейчас WebRTC уже хорошо поддерживается самыми распространенными современными браузерами, за исключением Safari.

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

Если мы используем WebRTC, мы решаем следующие проблемы:

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

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

ComputerVision (Ruby & OpenCV)

Reading time9 min
Views14K

Автор: Людмила Дежкина, Senior Full Stack developer

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

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

  • интерпретация изображений;
  • калибровка камеры по эталону;
  • устранение оптических искажений;
  • определение сходства;
  • анализ перемещения объекта;
  • определение формы объекта и слежение за объектом;
  • 3D-реконструкция;
  • сегментация объекта;
  • распознавание жестов.


Сейчас OpenCV используется во многих сферах. Вот несколько интересных примеров:

  1. Google:
    1. Google self-driving car — в беспилотных автомобилях Google OpenCV используется для разработки прототипа распознавания окружающей обстановки;
      (сегодня построенная система основывается преимущественно на LIDAR — в связи с трудностями распознавания при плохом освещении)
    2. Google Glass — в этих очках 3D-реконструкция изображения построена на OpenCV;
    3. Google Mobile;

  2. Робототехника и Arduino;
  3. Промышленное производство — иногда какой-нибудь завод делает на OpenCV систему подсчета деталей или что-то вроде того.

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

Альтернативы смерти: как победить старение

Reading time11 min
Views80K


Как современная молекулярная биология смотрит на феномен старения? Как пытаются старение изучать, есть ли надежды на замедление или даже остановку этого процесса? Этим вопросам была посвящена лекция биолога Александра Панчина, с которой он выступил на прошедшем в офисе Mail.Ru Group научно-популярном лектории Set Up.
Читать дальше →

Как неавторизованные идиоты чинят ноутбуки Apple

Reading time2 min
Views95K

Метод тыка и здравый смысл




Apple не поощряет ремонт в неавторизованных мастерских у сторонних специалистов. При малейшей неисправности технику следует нести в сервис-центр Apple. Чтобы затруднить самостоятельный ремонт, компания использует нестандартные комплектующие, уникальные винты и отвёртки, приклеивает аккумулятор к корпусу и т.д. Apple немало зарабатывает на продаже услуги AppleCare+, сохраняя замкнутую экосистему по ремонту и обслуживанию ноутбуков, смартфонов и планшетов. Замена треснувшего стекла стоит $149, аккумулятора в телефоне — $79, в ноутбуке — от $129 до $199 и так далее.

В таких условиях некоторые граждане, которые не разбираются в технике Apple, не имеют необходимой документации, всё равно пытаются провести ремонт. И даже предлагают услуги на платной основе. Один из таких умельцев по имени Луис Россманн (Louis Rossmann) из компании Rossmann Repair Group записал видео под названием «Как неавторизованные идиоты чинят ноутбуки Apple». Это довольно самокритично с его стороны.
Читать дальше →

Завершено самое масштабное исследование влияния ГМО на здоровье человека

Reading time3 min
Views249K
Генетически модифицированные организмы (ГМО) — организмы, чей генотип искусственно изменён при помощи методов генной инженерии. Изменения внесены целенаправленно, например, в случае сельскохозяйственных культур — повышение урожайности, улучшение вкуса и питательных ценностей продуктов, устойчивости к вредителям и т.д.

В 2015 году генетически модифицированные культуры составили 99% собранного в США урожая сахарной свеклы, 94% соевых бобов, 94% хлопка и 92% кормовой кукурузы.

В мире 12% всех пахотных земель занято ГМ-культурами.

С 1970-х годов учёные изучают потенциальные риски, связанные с использованием ГМО. Чтобы прояснить этот вопрос, Американские академии наук, техники и медицины организовали самое масштабное на сегодняшний день исследование почти 900 научных статей, опубликованных за последние 30 лет, на тему влияния ГМ-культур на организм человека и окружающую среду. Анализ статей продолжался два года комитетом из 50 учёных, исследователей и специалистов от сельского хозяйства и биотехнологий. Документ рецензировали 26 независимых экспертов.
Читать дальше →

Smart плинтус 1.0

Reading time3 min
Views76K


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

Американским генетикам удалось победить ВИЧ в организме животных

Reading time2 min
Views21K
image

Исследователи из медицинской школы им. Льюиса Каца при Темпльском университете объявили о победе над вирусом иммунодефицита человека при помощи генной инженерии. Им удалось удалить ДНК вируса из организма животного. Это – критический шаг на пути к созданию лечения ВИЧ.

Вирус иммунодефицита впервые был открыт в начале 1980-х годов. Он является инфекционным и передаётся посредством биологических жидкостей заражённого человека к здоровому через повреждения кожи или слизистой. Генетики установили, что вирус впервые образовался где-то в районе 1920-х годов в Западной и Центральной Африке южнее Сахары, и передался от обезьян к человеку. Самый первый зарегистрированный случай появления ВИЧ в крови датирован 1959 годом – именно тогда у пациента взяли кровь, в которой в дальнейшем обнаружили этот вирус.

Вирус вызывает синдром приобретённого иммунодефицита – он поражает клетки иммунной системы, в результате чего она перестаёт нормально работать и не может успешно бороться с заболеваниями.
Читать дальше →

4 пути юного регионального разработчика, которые я прошел в студенческие годы

Reading time7 min
Views36K
Я рос в депрессивном поселке городского типа, где большинство парней, повзрослев, выбирало путь уверенной деградации. Лет с 11 меня преследовал страх, что я буду таким же, как это большинство.



Но в 13 лет родители купили мне компьютер, и жизнь начала меняться: я быстро стал местным эникейщиком, у которого взрослые дяди и тети спрашивали, как установить “виндоус на процессор”. В 15 я задался вопросом, как написать свою игру. Спросил двоюродного брата, который уже стал “уважаемым человеком” и делал сайты в Москве. Брат привез учебник Лафоре по C++ и сказал: “Осваивай программирование”.

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

Распознаем лица на фото с помощью Python и OpenCV

Reading time6 min
Views168K

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

Что нам понадобится:
• Установленный Python 2.7 с библиотеками NumPy и PIL
• OpenCV 2-й версии

Здесь ссылка на материал по установке всех необходимых компонентов. Установка всего необходимого не составит труда.
Читать дальше →

Сервер приложений 1С на Linux

Reading time13 min
Views229K
Двигатель прогрессаВ последнее время, всё чаще и чаще меня начинает душить жаба.
Большая, зелёная, она угнездилась где-то внутри и формирует категорическое нежелание платить за что либо, даже если это не мои личные деньги! Не платить вообще, или же по максимуму минимизировать затраты там, где это возможно.
И если ко всему прочему, необходимо организовать работу с 1С в малой или средней компании, при ограниченном бюджете, то напрашивается желание собрать сервер из того что есть и накатить на него что-нибудь бесплатное.
Это всё к тому, что совсем необязательно покупать для 1С-сервера, лицензии от MS Windows Server+Terminal Cals и MS SQL сервер. Также необязательно рассматривать различные утилиты бэкапа и прочего софта реализующего все фишки работы терминального сервера 1С.

Сравнение платного и бесплатного софта (без учета железа) взято по большей части отсюда, по примеру данной статьи и на данный момент выглядит так:
Наименование Стандартное лицензирование (руб.) Вариант Linux + Postgres SQL (руб.)
Лицензии Windows
Windows Server 2012 Std. 45012 0
MS Windows Terminal Services Client Access License 2012 Single Language 1-device NoLevel OLP 102960 (20x78) 0
Лицензии 1С
1С: Предприятие 8.3.Лицензия на сервер (x86-64) 86400 86400
1С: Предприятие 8.3 Клиентская лицензия на 20 рабочих мест 78000 78000
Лицензии SQL
Лицензия на сервер MS SQL Server Standard 2012 Runtime для пользователей 1С: Предприятие 8 13381 0
Клиентский доступ на 20 рабочих мест к MS SQL Server 2012 Runtime для 1С: Предприятие 8 117748 0
Итого 443501 164400
Экономия 0 279101

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

JPoint 2016: Быстрее, выше, производительнее

Reading time7 min
Views10K
В прошлом году московская Java-конференция JPoint прошла с таким размахом (тысяча человек, четыре зала, именитые спикеры), что казалось, дальше расти некуда. Но JPoint 2016 показал: есть куда. Конференция оказалась настолько масштабнее, что даже на обработку фотографий с неё ушло много времени (поэтому наш текст запоздал настолько, что на Хабре раньше успел появиться обзор глазами участника от dbelob). Под катом — все подробности о том, как это было.



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

Каково это — быть разработчиком, когда тебе сорок

Reading time18 min
Views230K
Примечание от переводчика:

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



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

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

image

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

Я дебютировал в роли разработчика программного обеспечения в 10 часов утра 6 октября 1997 года, в городе Оливос, к северу от Буэнос-Айреса, в Аргентине. Был понедельник. Не так давно я праздновал свой 24-й день рождения.

Мир в 1997 году


Тогда он был немного другим. На веб-сайтах не было предупреждений об использовании cookie. Новаторскими в сети были сайты вида Excite.com, а моим любимым поисковиком был AltaVista.

Мой электронный ящик имел вид kosmacze@sc2a.unige.ch и был расположен на личном веб-сайте, который размещался по адресу http://sc2a.unige.ch/~kosmacze. Тогда мы еще оплакивали принцессу Диану, а Стив Джобс только-только вернулся на роль CEO и убедил Microsoft «вбросить» в Apple Computer 150 миллионов долларов. Digital Equipment Corporation подала в суд на Dell, останки Че Гевары вернули на Кубу, только начался четвертый (!) сезон «Друзей». Был убит Джанни Версаче, скончались Мать Тереза, Рой Лихтенштейн и Жанна Кальман. Люди зависали за Final Fantasy 7 на PlayStation, будто бы были наркоманами, Би-Би-2 начал вещание телепузиков, а Кэмерон только собирался показать миру свой «Титаник».
Читать дальше →

DNS Google больше не поддерживает Round Robin DNS

Reading time3 min
Views40K

Раньше, когда надо было распределить нагрузку на несколько серверов, мы прописывали несколько A-записей с одним именем в DNS-зоне, и все работало. Запросы клиентов распределялись примерно поровну. Особенно актуален такой способ балансировки был для раздачи статитического контента.

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

Как перезагрузить сервер?

Reading time6 min
Views135K
Abstract: описание видов ребута, рассказ про sysrq, ipt_SYSRQ, ipmi, psu.

Как перезагрузить сервер? — Это вопрос, который обычно задают ну очень начинающим пользователям, которые путаются между halt, shutdown -r, reboot, init 6 и т.д.

Опытный администратор уточнит вопрос: «а что с сервером не так?» Разные виды отказов серверов требуют разных видов ребута — и неверно выбранный вариант приведёт к тяжелейшим последствиям, из которых визит в веб-морду IPMI/DRAC/iLO с целью «доперезагрузить» будет самым лёгким. Самым тяжёлым в моей личной практике была командировка эникейщика в соседний город. С целью «нажать ребут» на одиноко стоящем сервере.

В этой статье: что мешает серверу перезагрузиться и как ему помочь.

Начнём с теории ребута.

При выключении или перезагрузке сервера менеджер инициализации (в большинстве современных дистрибутивов — systemd, в эксцентричной Ubuntu 14.04 до сих пор upstart, в архаичном хламе — sysv-init) в определённом порядке посылает всем демонам команду «выключись». И большинство демонов (например, СУБД, вроде mysql) знают, как выключаться правильно. Например, закончить все транзакции, сохранить все несохранённые данные на диск и т.д. Для in-memory СУБД, наподобие redis, это и вовсе может быть критичным: не сохранил — потерял.

Старые системы иницализации ждали неограниченно долго каждый из инит-скриптов. Например, если «шутник» добавил вам в «stop» веточку «sleep 3600», то ваш сервер будет перезагружаться час с хвостиком. А если там цифра поболе, или просто программа, которая не хочет завершаться, то и ребут никогда не закончится.
Читать дальше →

Обзор true Android TV на примере Sony 55w807c

Reading time5 min
Views61K
Решил объединить в одну статью обзор телевизора и Android TV. Тяжело их разнести (где кастомизация Сони, а где родные фишки Google).
Ожидание, когда же google или sony прекратят пилить бюджеты найдут деньги на обзор Android TV, видимо может быть бесконечным.
Купил месяц назад сей девайс при переезде, так что внемли люд гиковый, чего несет нам Google без мишуры маркетинговой.
Начнем с девайса и перейдем к сладкому.


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

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

Reading time8 min
Views88K


В нашем блоге на Хабре мы не только рассказываем о развитии своего продукта — биллинга для операторов связи «Гидра», но и публикуем материалы о работе с инфраструктурой и использовании технологий.

Недавно мы писали об использовании Clojure и MongoDB, а сегодня речь пойдет о плюсах и минусах денормализации баз данных. Разработчик баз данных и финансовый аналитик Эмил Дркушич (Emil Drkušić) написал в блоге компании Vertabelo материал о том, зачем, как и когда использовать этот подход. Мы представляем вашему вниманию главные тезисы этой заметки.
Читать дальше →

Странные вопросы на собеседованиях 2016

Reading time2 min
Views49K
Канада

1. Что последнее вы искали в Гугле?
2. Какой герой «Игр престолов» вам нравится больше всего?
3. Если бы сидели рядом с одним человеком на трансатлантическом авиарейсе, кто бы это был?
4. Как бы вы посчитали количество красных машин в городе?
5. Если бы вы были кухонной утварью, то чем именно и почему?
6. Как бы вы потратили последние свои 24 часа на Земле?
7. Чувствуете себя иногда полиэтиленовым пакетом?
8. Мы встретились с вами в лифте, и у вас есть время до 10-го этажа убедить меня взять вас на эту работу. Поехали!
9. Если бы вы были Премьер-министром на один день, какой закон вы бы изменили и почему?
10. Как бы вы перемешали колоду карт?

США

1. Когда хот-дог
Читать дальше →

За и против: Когда стоит и не стоит использовать MongoDB

Reading time5 min
Views94K


Разработчик и сотрудник проекта CouldBoost.io Наваз Дандала (Nawaz Dhandala) написал материал о том, почему в некоторых случаях не стоит использовать MongoDB. Мы в «Латере» развиваем биллинг для операторов связи «Гидра» и уже много лет работаем с этой СУБД, поэтому решили представить и свое мнение по данному вопросу.
Читать дальше →

О бедной XWiki замолвите слово — 2

Reading time12 min
Views19K
image

В первой части статьи я рассказывал о том как сделать стандартный интерфейс более комфортным, однако с тех пор утекло достаточно воды, что бы вышли как новые версии xWiki-движка, так и поменялся интерфейс в сторону улучшения юзабилити. По этому в новой статье я предлагаю обсудить тюнинг и более тонкую настройку xWiki для портативного клиента (на базе связки Jetty и HSQLDB). Оговорюсь сразу, я не считаю это лучшей реализацией из возможных, но учитывая удобство развертывания портативной версии (скопировал в нужную папку и запустил), считаю что для индивидуальной работы или работы небольшого коллектива в спартанских условиях — это лучший вариант.

Добро пожаловать под Cut
Подробности

Information

Rating
9,037-th
Location
Волгоград, Волгоградская обл., Россия
Date of birth
Registered
Activity