Как стать автором
Обновить
5
0
Богданов Глеб Олегович @bogdanov_go

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

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

Работа с библиотекой OrnaJS

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


OrnaJS — свободная JavaScript библиотека для динамической стилизации HTML элементов без прямого написания JS или CSS кода. Стилизация осуществляется методом прибавления классов к HTML элементу, как и в привычных CSS-библиотеках. В отличие от СSS-библиотек, Orna не ограничена количеством ранее прописанных в ней классов, а работает как парсер, динамически обрабатывает класс и задает стиль. Стилизация в OrnaJS основана по принципу Atomic CSS, из чего следует, что вид элемента создается по частям (атомам), но не одним классом. Орну можно сравнить с атрибутом style в HTML, но с наследованием, сокращениями и событиями. Имя Orna сокращение от Ornament (украшение). В первые два месяца после публикации, хотя Орна предлагает нестандартный метод стилизации страниц, ее успели скачать более 2000 разработчиков, что говорит о растущей популярности динамической стилизации.
Читать дальше →
Всего голосов 31: ↑10 и ↓21-11
Комментарии19

О том, как мы на PHP запускали настоящий MS Excel и что из этого вышло

Время на прочтение6 мин
Количество просмотров28K
Не секрет, что зачастую PHP-программистам приходится решать задачи, весьма далёкие от бытового представления о «веб-разработке». Развитие языка в последние годы привело к тому, что PHP всё чаще считают языком общего назначения, пригодным не только для сайтов, но и для других задач.

Одну из таких «других» задач мне с коллективом пришлось решать совсем недавно. Мы решили поделиться «картой граблей» с теми, кто, возможно, пойдет по этому же пути.

Дано


  • Многие наши партнёры (скажем прямо — это крупные банки) любят считать что-то в Excel. Причем «любят» — это очень нежно сказано. Сложнейшие скоринговые модели могут быть «запрограммированы» в Excel, в файле из сотни листов с десятками макросов
  • Перевести «программы», написанные в Excel на какой-либо язык программирования — практически нереально. Это займет уйму времени, а проблема постоянного обновления и проверки корректности делает такую задачу и вовсе нерешаемой


Требуется


  • Основная информационная система нашей компании написана на PHP. Она содержит в себе как веб-интерфейсы, так и множество консольных сервисов и воркеров.
  • С этими «программами» в Excel нужно как-то взаимодействовать из консольных приложений на PHP — передавать в них данные, обсчитывать, получать результаты

Некоторое время нам хватало возможностей популярной библиотеки PHPExcel. Но когда от бизнеса поступило очередное требование «нужно, чтобы работали макросы, и еще бы хорошо всё это сохранять в PDF», стало понятно, что выбранный путь — тупиковый. Нужно не парсить файлы xlsx, не имитировать просчёт, и даже не использовать Open Office, а научиться взаимодействовать с «настоящим» Microsoft Excel.


Что из этого вышло - под катом
Всего голосов 50: ↑46 и ↓4+42
Комментарии102

Бюджетный стартовый набор Arduino

Время на прочтение3 мин
Количество просмотров48K
У меня более 10 лет стажа в IT-индустрии, но как радиолюбитель — я полнейший нуб. Как и многих в последнее время, меня заинтересовали возможности Arduino. Но не в качестве крутого устройства по управлению всем вокруг, а больше в качестве программируемого конструктора и развлечения.

Самое очевидное решение для таких как я — взять готовый набор в нарядной упаковке, с красочной инструкцией и здоровенным ценником. Но если хочется немного сэкономить, то приходится с головой нырять в мир радиоэлектроники и наверстывать недостающие знания. И только после нескольких потраченных вечеров начинаешь понимать, что и где стоит заказывать.

Итак, если вы хотите собрать бюджетный набор с ардуинкой, пригодный для прохождения большинства уроков, а времени для изучения рынка нет, то последующий текст для вас.
Читать дальше →
Всего голосов 24: ↑16 и ↓8+8
Комментарии39

Мониторинг торрентов и автоматическая скачка

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

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


Main Page


Веб приложение написано на Python 2 (с поддержкой Python 3). Оно позволяет добавлять новые торренты для мониторинга, автоматически скачивать новые серии и добавлять их в торрент клиент.


Мы им пользуемся на постоянной основе с конца прошлого года, а 1 мая 2016 мы выпустили первую релизную версию, которая без каких-либо сбоев крутится до сих пор на cubietruck в docker контейнере.


За подробностями того как оно работает внутри прошу под

Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии50

ORM на php для MySQL, реальность (часть первая)

Время на прочтение8 мин
Количество просмотров36K
После долгих поисков интересующей меня библиотеки на php для связи с MySQL сел и написал свою, наиболее подходящую для использования в проектах. Данная тема займет небольшой цикл статей, который будет полезен не только профессиональным разработчикам веб-приложений, но и начинающим. Следует отметить, что представленная ниже ORM библиотека, которую, кстати, я назвал kitty, является результатом долгих мучений и не является обязательной библиотекой всех проектов.

Библиотека по моему видению должна иметь два файла (по крайней мере на начальных этапах):
  • файл библиотеки — kitty.php;
  • файл объектного изображения модели базы данных — modeldb.php.

Читать дальше →
Всего голосов 39: ↑10 и ↓29-19
Комментарии59

Как стать профессиональным веб-разработчиком: практическое руководство

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

Дорога длинна и трудна, но интересна и полезна!

Статья задумывалась как практическое руководство для желающих стать профессиональным веб-разработчиком. Я уже более 20 лет пишу код для веба. Я ежедневно работаю с веб-разработчиками и помогаю им. В статье я опишу, что вам нужно выучить, когда вам нужно это выучить и где взять информацию (чаще всего даже бесплатно). Затем я дам совет по получению реального опыта, и что самое важное – по получению денег за написание кода.

По статье разбросано множество ссылок на бесплатные и важные ресурсы. Для простоты я собрал их в PDF и разбил по категориям. Мне не платят за упоминания сайтов, ссылки на которые я привёл – я всего лишь хочу порекомендовать вам лучшие ресурсы, чтобы помочь вам достичь вашей цели.

Что нужно помнить:

1. Статью разрешается пролистывать

Руководство может помочь вам вне зависимости от вашего положения на дороге к профессиональной разработке. Прокрутите его к тому заголовку, который лучше всего описывает ваше сегодняшнее положение, и читайте оттуда. Если вы только начали этот путь, или пока размышляете об этом – последуйте совету Короля из «Алисы в стране чудес»:

Начните с начала, и продолжайте, пока не дойдёте до конца; и там уже остановитесь.
Читать дальше →
Всего голосов 49: ↑38 и ↓11+27
Комментарии129

Реализуем http/2 server push с помощью nghttp2

Время на прочтение3 мин
Количество просмотров21K
Всем привет, сегодня я расскажу о том, как настроил server push на своём сайте и добился увеличения скорости рендеринга страниц. Для начала о том, что же такое server push в HTTP/2. Это технология, позволяющая серверу «протолкнуть» дополнительные данные клиенту, в момент запроса основного документа. То есть в обычной ситуации запрашивает браузер html-страничку, затем обрабатывает её и приходит к выводу, что ему для корректного отображения необходимо подгрузить дополнительные файлы: стили, скрипты, изображения. После чего скачивает их и отображает конечный результат. Server push позволяет отправить дополнительные файлы уже в момент получения основного документа, и они уже будут иметься в кэше, когда они потребуются браузеру. За счёт этого возрастает скорость загрузки сайта.

На этот раз схема будет следующая:



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

Машинное обучение вместо DPI. Строим классификатор трафика

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

Вряд ли можно представить мир современных сетевых технологий без DPI (deep packet inspection – глубокий анализ пакетов). На нём держатся системы обнаружения сетевых атак, львиная доля политик безопасности корпоративных сетей, шейпинг и блокировка пользовательского трафика оператором связи – да-да, чтобы выполнять требования Роскомнадзора, средства DPI обязан иметь каждый провайдер.

И всё-таки, при всей своей востребованности, DPI имеет некоторые недостатки. Главный из них в том, что средствам DPI необходимо видеть полезную нагрузку анализируемых пакетов. А что делать, когда клиент использует шифрование? Или, например, если у нас нет DPI здесь и сейчас, но в перспективе потребуется проводить какой-то анализ текущего по сети трафика – тогда нам остаётся только сохранять всю полезную нагрузку для последующего анализа, что очень неудобно.

В данной статье я хочу предложить альтернативный способ решения одной из главных задач DPI – определения протокола прикладного уровня – на основе очень маленького количества информации, при этом не сверяясь со списком широко известных портов (well-known ports) и не глядя в полезную нагрузку пакетов. Вообще.
Читать дальше →
Всего голосов 33: ↑32 и ↓1+31
Комментарии22

Sparrowdo — простой инструмент управления конфигурациями

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

Здравствуйте! В данной статье хотел бы рассказать о простом инструменте управления конфигурациями — Sparrowdo. Скажу сразу, что система Sparrowdo базируется на использовании так называемых Sparrow плагинов, o которых мною был уже написан ряд статей на habrahabr.ru


image image


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

Веб авторизация доменного пользователя через nginx и HTTP Negotiate

Время на прочтение6 мин
Количество просмотров61K
    Намедни встала задача — обеспечить прозрачную авторизацию пользователей домена в CRM, собственно Microsoft давным давно разработал для этих целей метод аутентификации HTTP Negotiate, это все замечательно работает на IIS и Windows Server, а у нас за плечами Samba4 в роли Primary Domain Controller и проксирующий веб сервер nginx. Как быть?

    В сети куча информации по организации подобной схемы для Apache2 & AD на базе Windows, а вот пользователям nginx приходится собирать все по крупицам, информации кот наплакал. В базовой поставке Nginx нет подобного функционала. Благо люди не пали духом и история началась в мейл рассылках nginx в 2009 году, где один американский товарищ из Огайо нанял разработчика на RentACoder для запиливания модуля с подобным функционалом. Ребята форкнули подобный модуль для апача, прикрутили его к nginx и результаты работы выложили на github, где модуль время от времени допиливался разными людьми и в итоге принял роботоспособный вид. Последнюю версию можно получить на гитхабе.


В данном руководстве я расскажу как заставить работать nginx с SPNEGO модулем и samba4.

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

Краудфандинг для самых маленьких (ч. 1)

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

Краудфандинг — относительно молодое явление, успевшее завоевать огромную популярность за рубежом, пришедшее к нам всего пару лет назад. Как это ни странно, но очень многим до сих пор не понятна основная суть данного явления и даже предназначение краудфандинговых платформ. Других мучают вполне объяснимые опасения, поэтому они предпочитают обходить эти платформы стороной. Для того, чтобы пролить свет на данное явление и развеять сложившиеся вокруг него мифы и легенды, я решил посвятить этому серию статей. Я не являюсь представителем той или иной краудфандинговой платформы и не рекламирую какие-либо краудфандинговые ресурсы.
Читать дальше →
Всего голосов 6: ↑4 и ↓2+2
Комментарии11

Дистанционное открытие брокерского счета через портал Госуслуг: зачем и как это сделать

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


Вопрос сохранения и приумножения собственных сбережений всегда актуален. Биржа, а в частности фондовый рынок, является доступным способом получения дополнительного источника дохода.

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

В сегодняшнем материале мы рассмотрим, для каких целей нужно открывать брокерский счет, и представим исчерпывающую инструкцию о том, как это сделать через Госуслуги.
Читать дальше →
Всего голосов 27: ↑16 и ↓11+5
Комментарии73

Конструкция и принципы работы Arcserve UDP – программного продукта для резервного копирования и восстановления данных

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

Эта статья написана для тех, кто хочет познакомиться, а возможно и попробовать в действии современный продукт для резервного копирования и восстановления данных Arcserve Unified Data Protection, или коротко, Arcserve UDP. Продукт можно без проблем загрузить с сайта разработчика – www.arcserve.com и спокойно гонять в течение месяца без всяких лицензионных ключей. Но не всё в нём лежит на поверхности, поэтому позвольте мне разъяснить некоторые тонкости архитектуры и функционирования Arcserve UDP.

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии8

Как открывать заблокированные провайдером сайты и скрытые onion-сервисы в основном браузере (Firefox)

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

А заодно поддержать проект Tor без особых затрат


Я – давний поклонник сети Tor и тех возможностей, которые она предоставляет. Я предпочитаю посещение сайтов без надзора сверху, без ограничений, накладываемых некими личностями, пытающимися контролировать мою жизнь. И мне нравится наличие скрытых сервисов, хотя я практически и не пользуюсь ими, — но сам факт возможности запуска такого сервиса радует внутреннего криптоанархиста.

Поэтому у меня всегда запущен набор эксперта, который я настроил на работу промежуточным узлом – таким образом я вношу скромный вклад в поддержку сети Tor. В настройках узла можно ограничить максимальный трафик, который будет отъедаться на нужды сети.

Конечно, наивысшую приватность обеспечивает использование системы Whonix, а кому это неудобно – хотя бы ходят по сайтам через Tor Browser. Но я чту уголовный кодекс, и скрываться так сильно у меня нет причин – просто иногда хочется зайти на сайт, на который мой провайдер закрыл доступ, или же открыть сервис с доменом .onion

Поскольку запускать каждый раз для этой цели Tor Browser не очень удобно, браузерами Opera и Яндекс я не пользуюсь, а распространённые антиблокировочные решения (friGate и проч.) у меня почему-то не заработали — я разработал свою систему, позволяющую открывать как заблокированные сайты, так и скрытые сервисы.
Читать дальше →
Всего голосов 17: ↑14 и ↓3+11
Комментарии35

Как отключить автоматическое проигрывание видео в популярных браузерах

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

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

Однако не все пользователи согласны с такой политикой. Несогласные с этим пользователи, считавшие дурным тоном сайты с играющей на них музыкой (а были в 90-х – 00-х годах и такие), теперь считают, что видео не должно запускаться автоматически, а стартовать только по запросу пользователя.

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

Специально для них блогер Мартин Бринкман [Martin Brinkmann] подготовил подборку способов запрета на автоматическое проигрывание видео для разных браузеров. Учтены видео, использующие Flash, и HTML5-варианты.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии25

Разворачиваем Cisco ISE в среде Hyper-V и не только

Время на прочтение4 мин
Количество просмотров13K
Обучение в ИТ — это процесс перманентный. ИТ специалист просто обязан учиться каждый день, чтобы не только узнать что-то новое, но и не растерять старое. И раз уж я начал свою статью с темы обучения, хочу поблагодарить команду проекта «CCIE за год» за прекрасную возможность подготовиться к экзамену CCIE в команде единомышленников и под чутким руководством грамотных специалистов/тренеров.
В процессе подготовки к экзамену 300-208 SISAS из трека CCNP Security придется разбираться с таким продуктом сетевой безопасности как Cisco Identity Service Engine. Изучив теорию, обязательно захочется перейти к практике. Для этого отлично подойдет виртуальная машина. Но образ виртуальной машины доступен только для VMWare, что, в принципе, не является проблемой, но привносит некоторое неудобство. Например, у меня установлено 2 ОС — Windows 10 и Ubuntu 15.10, и я предпочитаю использовать нативный Hyper-V в Windows или интегрированный в GNS3 VirtualBox в Ubuntu. В этом случае можно воспользоваться вариантом чистой установки Cisco ISE с образа iso, доступного на сайте cisco.com.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Интерполяция: рисуем плавные графики с помощью кривых Безье

Время на прочтение4 мин
Количество просмотров42K
Доброго времени суток, харбачитатель.

В этой статье мне хотелось бы рассказать об одном придуманном когда-то алгоритме (или скорее всего — переизобретённом велосипеде) построения плавного графика по заданным точкам, используя кривые Безье. Статья была написана под влиянием вот этой статьи и очень полезного комментария товарища lany, за что им отдельное спасибо.

Постановка задачи
Есть массив Y-ков точек, расположенных равномерно по оси X. Нужно получить плавный график, который проходит через все заданные точки. Пример на рисунке ниже:



Всех, кому интересно, прошу под кат.
Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии54

Автономный ftp-client с докачкой файлов

Время на прочтение6 мин
Количество просмотров16K
Хочу поделиться своим опытом в разработке автономного ftp клиента.

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

Итак, требования к клиенту следующие:

  1. Опрос ftp-сервера на наличие новых файлов и их последующая загрузка.
  2. В случае внезапной остановки загрузки (будь то обрыв соединения, или упадёт система, на которой стоит мой ftp-клиент), закачка должна продолжиться при первой возможности.
  3. Ограничение скорости загрузки (это связано со стоимостью трафика по GSM).

Если интересен мой способ решения задачи, прошу под кат!
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии3

MDI i5 — портативный DLP проектор на Android

Время на прочтение12 мин
Количество просмотров20K
Сегодняшний обзор посвящен DLP проектору MDI i5. На самом деле это непросто проектор, в него интегрирован TV-box на современном железе, аккумуляторная батарея и динамики.

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

image
Читать дальше →
Всего голосов 15: ↑11 и ↓4+7
Комментарии6

Топ 20 бесплатных инструментов мониторинга дисков

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

1. TestDisk


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



Примечание: PhotoRec ето связанное с TestDisk приложением. С его помощью возможно восстановить данные в памяти цифровой камеры на жестких дисках и компакт-дисках. Кроме того можно восстановить основные форматы изображений, аудиофайлы, текстовые документы, HTML-файлы и различные архивы.

Читать дальше →
Всего голосов 41: ↑25 и ↓16+9
Комментарии35

Информация

В рейтинге
Не участвует
Откуда
Челябинск, Челябинская обл., Россия
Дата рождения
Зарегистрирован
Активность