Как стать автором
Обновить
11
0

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

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

Колхозинг* Mikrotik RB2011UiAS-2HnD-IN: внешние антенны и другие прибамбасы

Время на прочтение19 мин
Количество просмотров62K
*Здесь колхозинг означает DIY или сделай сам. Этимологию слова и связь с земледельческой техникой см. ниже.

Аннотация
Подключение внешних антенн Wi-Fi к Mikrotik RB2011UiAS-2HnD-IN: как, зачем и нужно ли? Полезные бюджетные опции для минироутера. Проблемы с USB-модемами, скрытые дефекты активных удлинителей USB, методы выявления и устранения данных неприятностей.

Что делает в меру усталый айтишник на даче?
Настраивает он Интернет, не иначе...


Mikrotik RB2011UiAS-2HnD-IN — на редкость удачный телекомбайн для SOHO, который пользуется популярностью почти пять лет без изменений, эдакая бюджетная красно-чёрная акулка в мини-эволюции телекома. Я настолько влюбился в это устройство, что решил превратить его в легкий сетевой кроссовер, но материала, как это бывает, набралось на небольшую публикацию. DISCLAIMER: усиленные внешние антенны (на фото) далеко не всегда улучшают качество связи по причинам, изложенным далее.



Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии20

Dokkur – первый PaaS из России

Время на прочтение3 мин
Количество просмотров16K
Привет, Хабраюзеры!
Мы – небольшая команда разработчиков из четырёх человек, и хотим представить на ваш суд свою PaaS, аналог Heroku.

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

Попробовав Heroku в качестве решения, мы поняли, что такое качество и удобство. Единственное, что кусалось – цены. Поэтому около 4-х месяцев назад мы поставили цель сделать свою собственную платформу. И мы ее сделали. Знакомьтесь: Dokkur – первый полноценный PaaS из России!

image

Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии67

Обработка sms на куче одинаковых gsm модемов без насилия над udev

Время на прочтение3 мин
Количество просмотров13K
Дано:
Есть бухгалтерия, которая работает с множеством коммерческих организаций. Банковские web-клиенты шлют коды подтверждения для той или иной банковской операции в виде sms. Одинаковые GSM модемы воткнуты в USB хаб Linux сервера. На сервере установлен пакет smstools3 для приёма и обработки sms и пакет usb_modeswitch для правильного определения модемов через udev.

Задача:
Организовать приём sms и их подачу бухгалтерам. Помечать приходящие смс наименованием организации.

Проблемы:
Модемы китайские, без индивидуальных серийных номеров и нет возможности их различить с помощью правил udev. При перезагрузке сервера или перестановке того или иного модема происходит переименование этих устройств.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии18

Yet another инструкция по получению ssl-сертификата Let's Encrypt

Время на прочтение3 мин
Количество просмотров31K
Тема получения сертификата Let's Encrypt уже подымалась на хабре (см. тут), да и в сети можно найти много рецептов разного качества.

Читал я и ужасался: одни пишут, что то нужно nginx или apache остановить («на пару минуточек всего»), другие предлагают файлы подкладывать в папку веб-сервера (в соседней ssh-сессии), третьи — о том, как важно соблюсти правильный Content-type для файлов проверки домена…

Давайте попробуем обойтись без всего этого: чтобы не было мучительно больно ни на стадии установки, ни очередном продлении — даже если придётся обновлять сразу много доменов. Собственно, вот и вся цель моей небольшой заметки: это не пошаговый степ-бай-степ, не длинная теоретическая статья о том, как функционирует Let's Encrypt — просто описывается правильный на мой взгляд подход, который будет правилен для конфигурации любой сложности.

Вся суть в двух словах: пусть Let's Encrypt запустит веб-сервер на 9999 порту, а мы допишем конфиг nginx, чтобы он пробросил запрос на этот бекенд. Кому интересны детали — прошу под кат
Читать дальше →
Всего голосов 31: ↑27 и ↓4+23
Комментарии15

Учебное пособие по кэшированию, часть 1

Время на прочтение5 мин
Количество просмотров99K
Довольно подробное и интересное изложение материала, касающегося кэша и его использования. Часть 2.

Автор, Mark Nottingham, — признанный эксперт в области HTTP-протокола и веб-кэширования. Является председателем IETF HTTPbis Working Group. Принимал участие в редактировании HTTP/1.1, part. 6: Caching. В настоящий момент участвует в разработке HTTP/2.0.

Текст распространяется под лицензией Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.

От переводчика: об опечатках и неточностях просьба сообщать в личку. Спасибо.
Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии17

Учебное пособие по кэшированию, часть 2

Время на прочтение9 мин
Количество просмотров170K
Вторая часть довольно подробного и интересного изложения материала, касающегося кэша и его использования. Часть 1.

Автор, Mark Nottingham, — признанный эксперт в области HTTP-протокола и веб-кэширования. Является председателем IETF HTTPbis Working Group. Принимал участие в редактировании HTTP/1.1, part. 6: Caching. В настоящий момент участвует в разработке HTTP/2.0.

Текст распространяется под лицензией Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.

От переводчика: об опечатках и неточностях просьба сообщать в личку. Спасибо.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии2

Аутентифицируем запросы в микросервисном приложении с помощью nginx и JWT

Время на прочтение4 мин
Количество просмотров42K
Стараясь оставаться в тренде и следуя веяниям моды веб разработки, последнее веб приложение я решил реализовать как набор микросервисов на ruby плюс “толстый” клиент на ember. Одна из первых проблем, вставших перед мной была связана с аутентификацией запросов. Если в классическом, монолитном, приложении все просто, используем куки, сессии, подключаем какой-нибудь devise, то тут все как в первый раз.

Архитектура


За базу я выбрал JWT — Json Web Token. Это открытый стандарт RFC 7519 для представления заявок (claims) между двумя участниками. Он представляет из себя структуру вида: Header.Payload.Signature, где заголовок и payload это запакованые в base64 json хэши. Здесь стоит обратить внимание на payload. Он может содержать в себе все что угодно, в принципе это может быть и просто client_id и какая-то другая информация о пользователе, но это не очень хорошая идея, лучше передавать там только ключ идентификатор, а сами данные хранить где-то в другом месте. В качестве хранилища данных можно использовать что угодно, но мне показалось, что redis будет оптимальным, тем более что он пригодится и для других задач. Еще один важный момент — каким ключем мы будем подписывать наш токен. Самый простой вариант использовать один shared key, но это явно не самый безопасный вариант. Коль скоро мы храним данные сессии в redis, ничто не мешает нам генерировать уникальный ключ для каждого токена и хранить его там же.

Понятно, что генерировать токены будет сервис отвечающий за авторизацию, но кто и как будет их проверять? В принципе можно проверку затолкать в каждый микросервис, но это противоречит идеи их максимального разделения. Каждый сервис должен будет содержать логику обработки и проверки токенов да еще и иметь доступ к redis. Нет, наш цель получить архитектуру в которой все запросы приходящие в конечные сервисы уже авторизованы и несут в себе данные о пользователе (например в каком-нибудь специальном заголовке).
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии16

Аутентификация на основе JSON Web Token в Django и AngularJS: часть вторая

Время на прочтение8 мин
Количество просмотров19K
В первой части мы рассмотрели, что для формирования JSON Web Token необходимы: сериализаторы и представления.

Теперь мы создадим шаблоны и поработаем над сервисами для аутентификации и получения данных.

Bower, менеджер пакетов для web-приложений


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

Предполагается что у вас уже установлен Node.js. Для установки bower просто выполните следующую команду:
$ npm install -g bower

Примечание: Возможно понадобятся права администратора.
Для того чтобы изменить каталог по умолчанию, в который bower будет устанавливать пакеты, в корне вашего проекта создайте файл с названием “.bowerrc ” и добавьте в него следующие строки:
{
    "directory": "static/bower_components"
}

Мы указали каталог “static”, чтобы эти компоненты были доступны в Django.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии3

jQuery Video Extend — расширение возможностей HTML5 видео плеера

Время на прочтение3 мин
Количество просмотров25K
Часто вижу, что владельцы сайтов и разработчики используют видео-плееры вроде VideoJS, Flowplayer, Uppod и т.д., но очень редко вижу стандартные HTML5 плееры на сайтах. Мне это кажется странным, ведь обычные плееры в браузерах тоже выглядят очень симпатично. Что есть у стандартного «браузерного» видео плеера:

  1. Стильный дизайн. Зависит от браузера, но везде на хорошем уровне.
  2. Поддержка самого популярного формата — Mpeg4 (H.264) (Chrome, Firefox, IE, Safari, Opera).
  3. Очень удобное API — http://www.w3.org/2010/05/video/mediaevents.html
  4. Быстрая работа и поддержка мобильных устройств.

Почему же такие плееры не популярны? Вот список возможных причин:

  1. Нет простого способа добавить свой логотип.
  2. Нет поддержки FLV видео, которое часто ещё встречается.
  3. Нет возможности ставить метки на видео и создавать свои расширения.
  4. Нет возможности менять внешний вид и стиль плеера.

С последним пунктом сложнее всего, но довольно редко эта возможность используется и на плеерах, о которых я писал в начале. Чаще используется первая стандартная тема оформления. Первые три пункта я решил восполнить, написав jQuery плагин, так появился Video Extend.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии13

Обзор способов и протоколов аутентификации в веб-приложениях

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


Я расскажу о применении различных способов аутентификации для веб-приложений, включая аутентификацию по паролю, по сертификатам, по одноразовым паролям, по ключам доступа и по токенам. Коснусь технологии единого входа (Single Sign-On), рассмотрю различные стандарты и протоколы аутентификации.

Перед тем, как перейти к техническим деталям, давайте немного освежим терминологию.

  • Идентификация — это заявление о том, кем вы являетесь. В зависимости от ситуации, это может быть имя, адрес электронной почты, номер учетной записи, итд.
  • Аутентификация — предоставление доказательств, что вы на самом деле есть тот, кем идентифицировались (от слова “authentic” — истинный, подлинный).
  • Авторизация — проверка, что вам разрешен доступ к запрашиваемому ресурсу.


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

Аналогично эти термины применяются в компьютерных системах, где традиционно под идентификацией понимают получение вашей учетной записи (identity) по username или email; под аутентификацией — проверку, что вы знаете пароль от этой учетной записи, а под авторизацией — проверку вашей роли в системе и решение о предоставлении доступа к запрошенной странице или ресурсу.

Однако в современных системах существуют и более сложные схемы аутентификации и авторизации, о которых я расскажу далее. Но начнем с простого и понятного.
Читать дальше →
Всего голосов 48: ↑48 и ↓0+48
Комментарии20

Реализация Single Sign On в Symfony2 приложении

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

Что такое Single Sign On?


Single Sign On — это технология, с помощью которой пользователь, будучи аутентифицированным на удостоверяющем центре (далее Identity Provider, IdP), будет автоматически аутентифицирован на другом сервисе (далее Service Provider, SP или Consumer[1-N]) этой компании.

Механизм Single Sign On используют такие сайты, как ХабраХабр, Yandex, Google. Приемущества такого подхода к аутентификации пользователей очевидны:

  • Пользователь вводит пароль только 1 раз
  • Или вовсе не вводит пароль на IdP, если там был использован вход через социальную сеть или с использованием OpenID
  • Автоматически аутентифицируется на всех проектах компании
  • Данные пользователя могут плавать между сервисами от IdP до SP прозрачно для пользователя

Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии21

Умный кроп на основе энтропии

Время на прочтение2 мин
Количество просмотров26K
Во многих веб-приложениях существует необходимость автоматического кропа — будь то вырезание аватарки из загруженного фото, превью крупных изображений или создание миниатюр в больших галереях.



Но машины все еще не люди, и далеко не всегда будет вырезана нужная область. Старые способы типа вырезать миниатюру 100х100 из левого верхнего угла или из центра отходят на второй план, и на арену выходит смарт-кроп.
Читать дальше →
Всего голосов 47: ↑30 и ↓17+13
Комментарии17

Инфраструктура разработки приложения на PhoneGap для iOS и Android

Время на прочтение11 мин
Количество просмотров45K
Сегодня я расскажу вам о нашем опыте разработки кросс-платформенных мобильных приложений на основе PhoneGap/Cordova. В проекте используются такие технологии, как HTML5, CSS3 и Angular.js. Grunt применяется в качестве task manager’а, позволяющего упростить и ускорить выполнение рутинных задач. Все сборки компилируются локально во время процесса разработки.


Источник: build.phonegap.com

Когда версия готова к этапу тестирования, она компилируется с помощью PhoneGap Build и загружается на Ubertesters — сервис дистрибуции мобильных приложений, который позволяет проводить тестирование быстро и эффективно на всех подключенных устройствах. Приложение поддерживает минимум iOS 6 и Android 4.1 (87.5 % доля рынка).
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии20

Что такое хорошо: как мы разрабатывали критерии для оценки качества вёрстки веб-проектов

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


На Хабре уже было немало материалов о том, как проводить качество вёрстки веб-проектов (вот отличная статья на эту тему) — как правило, речь в таких топиках идёт о коммерческих сайтах. В ходе развития образовательного проекта HTML Academy мы также столкнулись с необходимостью выработки критериев для оценки работ учеников.

Очевидно, что учить нужно так, чтобы потом люди (не все из которых «технари») могли приходить в компании и работать «правильно» — то есть создавая вёрстку, которая красиво выглядит и не требует больших усилий по поддержке. Процесс создания списка универсальных критериев для оценки занял довольно длительное время и был сопряжён с рядом трудностей. Сегодня мы расскажем о том, что же у нас в итоге получилось.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии47

Чистим HTML-код при вставке текста из MS Word в HTML5 WYSIWYG редактор (contenteditable)

Время на прочтение5 мин
Количество просмотров24K
Здравствуйте!

При написании своего WYSIWYG редактора возникла проблема копирования текста из Ворда. Собственно проблем три:
  • Ворд вставляет много мусорного html кода, который необходимо чистить
  • Для представления списков Ворд почему-то использует параграфы вместо тегов UL и LI
  • Собственно как определить, что вставленный текст является вставленным из Ворда.

В общем, для решения этих проблем, был написан jquery-плагин, полный исходный код которого доступен в конце статьи. Пример использования:

$(‘#editor’). msword_html_filter();

Плагин вешается на событие keyup и проверяет, является ли исходный код внутри редактора вставленным из Ворда, если да, то запускается функция очистки. В результирующем html прибивается все что только можно – неразрывные пробелы, атрибуты style и align, теги span, все Mso-классы, пустые параграфы.

Детали реализации под катом.

UPD Демо на CodePen

Читать дальше →
Всего голосов 55: ↑52 и ↓3+49
Комментарии18

Chrome: популярные расширения для разработчиков

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

Рекомендуемые расширения инструментов разработчика Chrome для бОльшего удовольствия от процесса отладки и разработки.
Читать дальше →
Всего голосов 37: ↑32 и ↓5+27
Комментарии11

Администрирование компьютеров в локальной сети до загрузки операционной системы

Время на прочтение4 мин
Количество просмотров72K
Привет, хабрахабр! Эта моя первая статья и посвящена она удаленному администрированию. Надеюсь, что она будет интересна не только системным администраторам, но и просто продвинутым юзерам, так как использование некоторых компонентов может вам пригодиться.

В основном речь пойдет об администрировании компьютеров до загрузки операционной системы. Когда количество компьютеров невелико, на поддержку их работоспособности не требуется много человеческих ресурсов. С расширением парка компьютеров, их обслуживание становится более затратным. В моем случае, организация обладает около 100 компьютеров. Переустановка операционных систем, восстановление образов операционных систем занимает много времени. Мне приходилось обслуживать каждую единицу техники отдельно. Поэтому, встала задача разработать систему, которая упростит жизнь администратора и увеличит количество свободного времени, которое можно потрать на более интересные вещи.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии28

Загрузочный сервер — как загрузочная флешка, только сервер и по сети

Время на прочтение12 мин
Количество просмотров450K
Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!

Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.

Вот такое меню встречает нашу команду инженеров при загрузке с PXE



Под катом вас ждет описание всех настроек, а так же небольшой сюрприз.
Поехали!
Всего голосов 141: ↑138 и ↓3+135
Комментарии82

Анонсирован Zend Framework 3 Roadmap

Время на прочтение1 мин
Количество просмотров19K
imageОбсуждение идей и предложений для Zend Framework 3 идет достаточно давно, и вот наконец Zend решились на анонс новой версии фреймворка.

Zend Framework 3 будет эволюцией ZF2, с фокусом на три главных момента — простоту, повторное использование кода и производительность.

В первоочередные планы входит:
  • выделение компонентов фреймворка в индивидуальные, версионируемые проекты (привет, Symfony!);
  • особый упор будет сделан на HTTP сообщения, которые будут приведены в соответствие с PSR-7;
  • существующий full stack MVC фреймворк будет обновлен и начнет зависеть от новых независимых компонентов для повторного использования и упрощения. ZF2 MVC проекты можно будет с минимальными усилиями перенести на новую версию, для чего подготовят гайд по миграции;
  • использование концепции middleware, знакомой многим по Ruby / Python, а так же PHP-фреймворкам Slim Framework и StackPHP, в качестве более легкой альтернативы энтерпрайз-стеку фреймворка MVC (пример того, о чем идет речь);
  • возможность использования Apigility в качестве middleware;
  • оптимизация под PHP 7, при этом будет поддерживаться PHP начиная с версии 5.5;
Читать дальше →
Всего голосов 21: ↑18 и ↓3+15
Комментарии24

Утверждён профстандарт менеджера ИТ-продуктов

Время на прочтение1 мин
Количество просмотров28K
Министр труда Российской Федерации утвердил профессиональный стандарт Менеджера продуктов в области информационных технологий, который в 2013-м году разработала рабочая группа по созданию профстандарта, сообщил Денис Бесков на сайте Школы управления продуктами.

Стандарт может стать основой для разработки:

  • Должностных инструкций;
  • Текстов вакансий;
  • Корпоративных профилей компетенций;
  • Планов профессионального развития;
  • Сертификационных программ и тестов;
  • Коммерческих учебных программ;
  • Федеральных образовательных программ.


С текстом стандарта можно ознакомиться по ссылке (*.pdf).
Читать дальше →
Всего голосов 37: ↑30 и ↓7+23
Комментарии82
1
23 ...

Информация

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