Как стать автором
Обновить
0
Richard_Ferlow @Richard_Ferlowread⁠-⁠only

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

Отправить сообщение

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

Время на прочтение4 мин
Количество просмотров18K
Когда несколько лет назад в руки попался первый вертолетик, сразу возникла мысль: «Дайте второй, посмотрим кто кого!»


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

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

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


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

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

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

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



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

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

Время на прочтение7 мин
Количество просмотров177K

Введение



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

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

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

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

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

Время на прочтение4 мин
Количество просмотров12K
Немного не по теме

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

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

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

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

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

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

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

Время на прочтение2 мин
Количество просмотров6.1K
Привет Хабр! Путь многих стартапов от идеи до коммерчески успешных проектов начинается с анонса на Хабре. Для кого-то анонс является хорошим подспорьем для быстрого роста, для других – поводом еще раз углубиться в разработку и улучшить свой продукт.

image

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

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

Время на прочтение6 мин
Количество просмотров53K


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

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

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

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

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


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

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

Время на прочтение13 мин
Количество просмотров96K

Kyocera M2035dn, Xerox WorkCentre 3615 и 6505DN


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



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

Kyocera M2035dn


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



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

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

Время на прочтение11 мин
Количество просмотров54K


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

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

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

Время на прочтение2 мин
Количество просмотров16K
В 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

Время на прочтение10 мин
Количество просмотров368K
Привет, хабр!

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

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

Время на прочтение8 мин
Количество просмотров173K

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


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



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

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

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

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

Время на прочтение4 мин
Количество просмотров45K

Введение


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

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

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

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

Время на прочтение6 мин
Количество просмотров230K
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
Дело осталось за малым — автоматически формировать этот самый список. Кто ещё не утомился от моей писанины приглашаю под хабракат.
Читать дальше →

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

Время на прочтение6 мин
Количество просмотров80K


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

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

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

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

Время на прочтение5 мин
Количество просмотров51K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

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, линтеры и еще целое множество удачных интерфейсных решений. Повторюсь — это все в вашем браузере!

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

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

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

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

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность