Search
Write a publication
Pull to refresh
0
Richard_Ferlow @Richard_Ferlowread⁠-⁠only

User

Send message

Byrobot: квадрокоптер для Чака Норриса и 6d-мышление

Reading time4 min
Views18K
Когда несколько лет назад в руки попался первый вертолетик, сразу возникла мысль: «Дайте второй, посмотрим кто кого!»


(Вес квадрокоптера Drone Fighter 25г, батарейки 8г)

Недавно корейцы порадовали — в Москве появились специально заточенные под файтинги квадрокоптеры (Drone Fighter), причем неубиваемые (несколько раз на полной скорости втыкал его в стену — ему все равно, совал палец в лопасти — винт слетает и легко ставится на место. Очень важный момент — снимает страх ошибки/поломки дрона, что существенно повышает фан и мотивацию учиться, эдакий вариант save/load в реальном мире. А так же допускает режим файтинга в стиле «таран»)

Что порадовало:
  • Драки. Наконец-то драки.
  • Нагрузка на мозг. Прям таки чувствуются, как образуются новые нейронные связи.
  • Девушкам нравится. Можно подлетать (отвлекать от проекта) и вызывать их улыбки
  • Стабилизация. В идеале, если не предпринимать действий, вертолет висит в той точке в которой оставил.
  • Два режима управления: с абсолютной системой координат (право-лево относительно пилота) и относительной (право-лево относительно курса квадрокоптера)
  • Сальто. (Плюс мегакрутое автоматическое управление тягой двигателей и автовыравнивание после маневров)
  • Видеокамера. HD-видеокамера (5г)
  • Много запасных батареек позволяет летать непрерывно
  • Неубиваемость. Не паришься совершенно про то, что кто-то куда-то врезался (у меня за час полетов около 100 "(по)падений" в стену/столб/цветок/кошку)
  • Удобная инструкция с подготовительными и мастерскими полетными заданиями


На Хабре уже писали про 20 профессий будущего, одна из них — «Оператор дрона». Так же на Хабре есть дельные рекомендации начинающим пилотам дронов. В Воронеже уже готовят таких специалистов с 2013 года. Так что покупайте себе своим детям квадрокоптер. Это исключительно в образовательных целях.

Под катом описание системы боя Drone Fighter, несколько фоток и много видео
Читать дальше →

Новый LittleBits — теперь банановый (на самом деле с Wi-Fi)

Reading time3 min
Views52K
Свершилось! LittleBits (набор электроники для начинающих), наконец, получил доступ в Интернет. Обширная коллекция магнитных модулей пополнилась долгожданным передатчиком CloudBit. Если кто не в курсе, LittleBits – это что-то вроде LEGO для взрослых. LittleBits представляет собой наборы модульных блоков электронных компонентов из категории «сделай сам».



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

Web-разработка на Python глазами PHP-программиста

Reading time7 min
Views177K

Введение



В статье хотелось бы поднять вопросы отличия использования Python для web-разработки по сравнению с оной на PHP. Надеюсь, статья не приведет к холиварам, так как она вовсе не о том, какой язык лучше или хуже, а исключительно о технических особенностях Python.
Читать дальше →

jQueryUI timePicker — виджет для выбора времени

Reading time4 min
Views31K
image В процессе работы над корпоративным проектом нередко приходится переключаться на задачи разработки пользовательского интерфейса. Конечно, для реализации фронт-энда мы уже давно не изобретаем велосипеды, а используем готовые компоненты. Казалось бы, на все случаи жизни уже есть свой плагин, но недавно я с удивлением обнаружил, что для поля выбора даты существует огромное количество реализаций элементов-календарей, а вот поле выбора времени как-то обходится стороной.

Не знаю, то ли я плохо искал (на plugins.jqueri.com есть только один подобный — KitKatClock, но он несколько «недоработан»), то ли искать не хотел, то ли и в правду до такого элемента никому дела нет. В общем, поскольку часть интерфейса, которую я разрабатывал, была ориентирована на заполнение полей пальцем (целевая аудитория устройств — инфокиоски) или, реже, мышкой, а полей для ввода времени было предостаточно, я решил родить еще один никому не нужный jquery-плагин.
интересующихся прошу под кат

Наводим порядок: как организовать работу в ходе создания сайта. (Часть 1)

Reading time4 min
Views12K
Немного не по теме

Заручившись согласием ilusha_sergeevich мы планируем размещать на Хабре переводы некоторых статей, ссылки на которые он приводит в публикациях «Несколько интересностей и полезностей для веб-разработчика» в разделе «Западные мысли или что стоило бы перевести на Хабре». На самом старте этого начинания мы хотим поинтересоваться у сообщества о степени его целесообразности (опрос в конце статьи).

Собственно, сам текст

К сожалению, мы использовали слово «организовать» в названии. «Тушите свет» — это, вероятно, то, о чем подумали многие. Организованность – это немного скучно, но крайне важно. Возможно, стоит рассмотреть это понятие в контексте.

Давайте представим, что мы делаем сайт для модного арт-кафе «Beat». Это атмосферное место с картинами 20-х годов на стенах, живым джазом и богатым покровителем, но у них все еще нет собственного сайта. Они нанимают вас, чтобы исправить ситуацию. Как талантливый дизайнер, вы уверены, что сможете создать фантастический сайт, но у них есть множество идей о функционале и вы не совсем уверены в том, как организовать все файлы, необходимые для вашего сайта.
Читать дальше →

Ремонт шлейфа LEGO NXT

Reading time6 min
Views44K
Статья описывает один из возможных способов кустарного ремонта графитового шлейфа LCD управляющего блока LEGO Mindstorms NXT. Адресована тем, кому уже не помогает подкладывание под шлейф свернутых бумажек, резинок или магическое действо с прогреванием конденсаторов на плате кнопок управления (какая то сложная магия, я так и не смог понять в чем заключается её сакральный смысл).
Также статья может быть полезна тем, у кого перестал работать экран любимого калькулятора, брелка автомобильной сигнализации, швейной машинки и других устройств, ремонт которых в специализированных мастерских по каким-то причинам невозможен или нецелесообразен. Написана непрофессионалом для непрофессионалов, для ремонта будут использованы общедоступные материалы и инструменты. Осторожно, в тексте статьи много больших фотографий посредственного качества.
Читать дальше →

Все начинается с анонса на Хабре

Reading time2 min
Views6.1K
Привет Хабр! Путь многих стартапов от идеи до коммерчески успешных проектов начинается с анонса на Хабре. Для кого-то анонс является хорошим подспорьем для быстрого роста, для других – поводом еще раз углубиться в разработку и улучшить свой продукт.

image

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

Mikrotik автоматическое переключение на резервный канал для динамического ip адреса (выдаваемого по DHCP)

Reading time6 min
Views53K


Приветствую, Хабр! В связи с плохим качеством линии меня попросили настроить автоматическое переключение на резервный канал. Для этой цели предоставили роутер MikroTik RB 951Ui.

Думал, что проблем не возникнет… Всего-то настроить проверку канала и маршруты. Но, к сожалению, оба провайдера выдают IP динамически. Сначала я попробовал подставить в маршрут название интерфейса, но пинг не проходил. Прочитав несколько статей, включая зарубежные сайты, но не нашел решения проблемы, которое мне подошло бы. Пришлось знакомится с RouterOS по ближе, а в частности с созданием скриптов…

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

Выбор поставщика решения двухфакторной аутентификации. Часть 1 из 2

Reading time7 min
Views24K
Итак, уже для многих не секрет, что простая парольная аутентификация не защитит ваши данные от рук злоумышленника. Дело тут не в длине пароля и не в том, как часто вы его меняете. Простой фишинг или вирус на вашем компьютере передаст ваш сложный двадцати-символьный пароль тому, кто его ждет. О сколько вы мучились, вводя его каждый раз в окно логина, потому что хранить его в файле или кеше браузера небезопасно.


О решении проблемы уже все наслышаны. Конечно, речь идет о применении мультифакторной аутентификации (MFA). Факторами могут выступать знания, предметы или биометрические данные (недостаткам биометрии я планирую посвятить отдельную статью). Чаще всего применяется двухфакторная аутентификация, которая использует привычный пароль, а также еще один одноразовый (OTP). Он может быть доставлен пользователю различными способами и действует только для одного сеанса аутентификации. Также, в современных алгоритмах генерации паролей TOTP (по времени) и OCRA (по запросу) время действия одноразового пароля ограничено 30 или 60 секундами, что значительно усложняет задачу злоумышленнику. Способы доставки или автономной генерации существуют различные: от распечатанных списков паролей на карточках или чеках из банкоматов, SMS-сообщений до использования специальных устройств генерации OTP — токенов.
Читать дальше →

Автоматическое подключение сетевых МФУ с возможностью сканирования [Часть 2]

Reading time13 min
Views96K

Kyocera M2035dn, Xerox WorkCentre 3615 и 6505DN


Как и обещал в первой части, за которую я успешно получил инвайт в песочнице, в этой заметке я покажу как подключить сетевые МФУ Kyocera M2035dn, Xerox WorkCentre 3615 и 6505DN, а в конце статьи добавлю небольшой бонус с которым любой скрипт связанный с сетью становится лучше.



Как бы небыли прекрасны гомогенные инфраструктуры, пусть даже в части принтеров и мфу, реальность зачастую ставит свои условия. В то время как пользователи сами в полный рост подключали и успешно сканировали с некогда проблемных МФУ HP, в компанию приехал японский гость — Kyocera M2035dn.

Kyocera M2035dn


Приехал как всегда не в мое уютное админское логово, а сразу на объект и как и мфу от HP, в глаза его я, если честно, даже не видел.
Первым делом качаем драйвер и смотрим содержимое… ба, знакомые все люди:



Есть пометка о том, что подключение сетевое (network) и есть ID!
Узнать что делать со всем этим

Создаем портфолио на основе фотографий из Instagram

Reading time11 min
Views54K


Здравствуй, дорогой хабрадруг! В этом уроке мы создадим простой сайт-портфолио, который будет базироваться на фотографиях из вашего аккаунта в Instagram. Дизайн сайта сделал Tomas Laurinavicius, и он получился у него простым, функциональным и просторным. Итак, начнем.

Скачать исходники | Демо
Читать дальше →

Особенности загрузки объектов из карты формата KML на карту Яндекса

Reading time2 min
Views16K
В API Яндекс.Карт есть средства для загрузки географических данных в формате XML. API поддерживает карты в двух форматах: YMapsML и KML. В документации по технологиям Яндекса есть пример, илюстрирующий работу с этим форматами.

Глядя на этот пример, можно предположить, что с точки зрения API оба формата эквивалентны, и работа с ними ничем не отличается. Тем более Яндекс предоставляет конструктор карт, в котором каждой карте автоматически назначаются ссылки на оба формата. Эти ссылки отличаются только суффиксом. Карта в формате YMapsML оканчивается на символ /, а адрес той же карты в формате KML на конце содержит символы ".kml".

Независимо от формата XML загрузка геообъектов будет выглядеть так:
var map = new ymaps.Map("map", {
    center: [-25.89, 135.32],
    zoom: 4,
    controls: ["zoomControl"]
});

var url = "http://maps.yandex.ru/export/usermaps/4c4r9MAwI8DLmJKv1H--R0_bvQmHNLDz/";

ymaps.geoXml.load(url).then(function (res) {
    map.geoObjects.add(res.geoObjects);
});


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

Пример загрузки YMapsML
var url = "http://maps.yandex.ru/export/usermaps/4c4r9MAwI8DLmJKv1H--R0_bvQmHNLDz/";

ymaps.geoXml.load(url).then(function (res) {
    res.geoObjects.each(function (obj) {
        if (obj.properties.get("name") == "Бассов пролив") {
            obj.options.set("strokeColor", "0066ffff");
        }
    });
    map.geoObjects.add(res.geoObjects);
});



Оказывается, что если мы заменим адрес на формат KML, то данный код работать не будет, потому что коллекция объектов, загруженная из формата KML отличается от той, что получается при загрузке YMapsML. При загрузке KML получается коллекция объектов, состоящая из одного геобъекта, который сам является коллекцией. И вот этот вложенный объект уже содержит геообъекты, нарисованные на карте.

Поэтому для обработки коллекции, загруженной из KML надо написать вот такой код:

Пример загрузки KML
var url = "http://maps.yandex.ru/export/usermaps/4c4r9MAwI8DLmJKv1H--R0_bvQmHNLDz.kml";

ymaps.geoXml.load(url).then(function (res) {
    res.geoObjects.each(function (obj) {
        obj.each(function (nested) {
            if (nested.properties.get("name") == "Бассов пролив") {
                nested.options.set("strokeColor", "0066ffff");
            }
        });
    });
    map.geoObjects.add(res.geoObjects);
});


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

Практическое применение FlexBox

Reading time10 min
Views368K
Привет, хабр!

Одним прекрасным вечером, не предвещающим ничего интересного, в наш чатик поступило предложение от автора публикации «Переводим в код 5 действительно полезных шаблонов адаптивной разметки», написанной им весной 2012 года, написать статью-ремейк, но с применением FlexBox и сопутствующим пояснением что и как работает. После некоторой доли сомнений, интерес глубже разобраться в спецификации все таки победил и я благополучно сел верстать те самые примеры. В ходе погружения в эту область стало выясняться множество нюансов, что переросло в нечто большее чем просто переверстать макетики. В общем в данной статье хочу рассказать о такой чудесной спецификации, под названием «CSS Flexible Box Layout Module» и показать некоторые ее интересные особенности и примеры применения. Всех кому интересно, любезно приглашаю под хабракат.
Читать дальше →

Автоматическое подключение сетевых МФУ с возможностью сканирования [Часть 1]

Reading time8 min
Views173K

HP LaserJet 1522, 1536, 3052/3055, 300/400 Color...


Я думаю, многим системным администраторам известны описанные в заголовке мфу, отличаются они, в первую очередь, не очень удобной установкой и от этого имеют дурную славу. Однажды, копируя на очередной компьютер сквозь узкий канал пакет fullsolution для мфу весом около 300 мегабайт, идея разобрать этот инсталлятор и автоматизировать установку вылезла попапом на глаза — работу пришлось приостановить.



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

Три вещи, о которых забывают начинающие оптимизаторы конверсии

Reading time8 min
Views20K
Когда начинающие оптимизаторы приступают к работе, они, как правило, увлекаются заманчивыми перспективами, предложенными A/B тестированием, и начинают экспериментировать, меняя цвета кнопок и задумываясь о том, как лучше составить тексты. Но все это по отдельности может принести улучшение результатов не более чем на 30-50% Если вы не такой гигант торговли, как «Амазон», вам придется сделать гораздо больше, чем просто поменять цвета кнопок. Что именно? Об этом — далее в переводе статьи от Smriti Chawla!
Читать дальше →

Тестирование производительности форков Mysql на реальных данных

Reading time4 min
Views45K

Введение


Назрел апгрейд системы web сервера, на котором с 2007 года крутился сайт интернет-магазина на самописном движке mysql 5.1 + perl + apache + nginx.

Как обычно, при росте посещаемости все стало упираться в базу данных. Стал выбирать новую базу данных, совместимую с текущей. Выбирал из Mysql 5.5, Mysql 5.6, MariaDB 10, Percona Sever 5.6.

После длительного изучения бенчмарков стало понятно, что нужно тестировать производительность на реальных данных. Во-первых, в большинстве случаев сравнивали InnoDB и XtraDB, во-вторых — тестировали в основном бешеные нагрузки на монстр-серверах, интересные мне показатели находились на узеньком участке графика, где обычно ничего не было понятно.
Читать дальше →

Писать скрипты для Mikrotik RouterOS — это просто

Reading time6 min
Views231K
RouterOS — сетевая операционная система на базе Linux. Данная операционная система предназначена для установки на аппаратные маршрутизаторы Mikrotik RouterBoard. Также данная система может быть установлена на ПК (или виртуальную машину), превращая его в маршрутизатор. Изначально довольно богатая функционалом ОС нет нет да и удивит отсутствием какой-нибудь нужной фишки из коробки. К сожалению, доступ к Linux-окружению очень сильно ограничен, поэтому, «это есть под Linux» абсолютно не равнозначно «это есть в RouterOS». Но не надо отчаиваться! Эта система предоставляет несколько возможностей для расширения своего функционала. Первая — самая простая и нативная — это возможность писать скрипты на встроенном языке.
В данной статье, в качестве примера будет рассмотрен скрипт, преобразующий DNS-имена в списки IP-адресов (address lists).
Зачем он может быть нужен? Многие сайты используют Round Robin DNS для распределения нагрузки (а некоторые и не только для этого). Чтобы управлять доступом к такому сайту (создать правило маршрутизации или фаервола) нам потребуются все IP-адреса, соответствующие этому доменному имени. Более того список IP-адресов по истечении времени жизни данной DNS-записи (в данном случае речь идёт об A-записи) может быть выдан абсолютно новый, поэтому информацию придётся периодически обновлять. К сожалению в RouterOS нельзя создать правило
блокировать все TCP соединения на порт 80 по адресу example.com
на месте example.com должен быть IP-адрес, но как мы уже поняли, example.com соответствует не один, а несколько IP-адресов. Чтобы избавить нас от мучения создания и поддержки кучи однотипных правил, разработчики RouterOS дали возможность создавать правило так:
блокировать все TCP соединения на порт 80 по любому адресу из списка с именем DenyThis
Дело осталось за малым — автоматически формировать этот самый список. Кто ещё не утомился от моей писанины приглашаю под хабракат.
Читать дальше →

Звоним на мобильные телефоны из браузера с записью разговоров

Reading time6 min
Views80K


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

Или другой сценарий — входящий в компанию звонок. Как здорово, когда ты в качестве клиента звонишь на безликий 8800 и девушка на том конце телефона отвечает тебе приятным голосом — здравствуйте, Алексей (подставить_свое_имя)! Это производит потрясающий эффект. Когда вместо «назовите себя, номер паспорта и имя кота, информация грузится — послушайте шестую симфонию Моцарта» оператор уже поднимая трубку знает, как вас зовут и видит по вам всю информацию. Сервис, что и говорить.

Но есть ли возможность реализовать такую систему без погружения в дебри настройки АТС — максимально быстро и минимальной кровью? Желательно еще, чтобы все разговоры записывались для целей контроля и обучения сотрудников. Ответ — конечно, погнали под кат.
Читать дальше →

Несколько интересностей и полезностей для веб-разработчика #32

Reading time5 min
Views51K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

ICEcoder



Это не просто песочница, а полноценный open source редактор в вашем браузере. Вообще существуют десктопные версии, но по-моему, наибольшие внимание разработчики уделают веб-версии. ICEcoder поддерживает HTML, CSS, LESS, SASS, JS, Coffee, PHP, RonR, Python, C/C++/C#, Java, Lua, Rust, SQL, Markdown, всего более 60 языков! Фичи: возможность совместной работы с кодом, Emmet, LiveReload, работа с БД, колопикер, diff tool, линтеры и еще целое множество удачных интерфейсных решений. Повторюсь — это все в вашем браузере!

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

Оптимизация для начинающих, или о пользе профилирования

Reading time5 min
Views18K
Попалась мне задача написать на PHP оптимальный алгоритм вставки нового значения в упорядоченный массив. Причем аргументировано доказать, что именно этот алгоритм лучший. Для этого предлагалось написать три варианта и выбрать из них лучший. Конечно же я знаю, что лучший метод поиска — бинарный, но раз сказали доказать, что он лучший, так и быть, напишу еще два. С таким настроем и уверенностью в будущем результате я и принялся кодить.

Что из этого получилось приглашаю начинающих программистов почитать, а опытных обсудить.
Читать дальше →

Information

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