Pull to refresh
19
0
Дмитрий @Zazza

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

Send message

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

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

Cloudtunes



Cloudtunes один из тех проектов, глядя на которые я не понимаю мотивации разработчиков выкладывать такие наработки в открытый доступ. Не сочтите меня за сугубо меркантильную личность, но данный проект — это грубо говоря клон iTunes в облаке и это просто великолепный сервис. Cloudtunes обеспечивает единый интерфейс для вашей медиатеки, синхронизируя данные между Dropbox, Youtube, Lastfm и тд. Серверная часть написана на Python (Tornado, Celery, Mongo DB, MongoEngine, Redis), а клиентская на CoffeeScript (Backbone.js, SocketIO, Handlebars, Compass, SoundManager).

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

Эквалайзер на JavaScript

Reading time5 min
Views58K
На хабре уже было несколько статей по Web Audio API: создание визуализатора, вокодера и пианино в 30 24 строки. Поиск же по всея интернетам по запросу эквалайзер упорно выдавал туториалы по созданию спектрограмм. (Если заголовок этой статьи сбил вас с толку или вы таки купились на картинку:) и ожидали именно визуализации аудио — вам сюда или вот сюда). Но именно просто эквалайзера я так и не встретил (хотя уверен, что где-то он таки есть). Возможно, это настолько простая задача, что об этом и писать не стоит. Но, в таком случае, почему бы не сделать её ещё проще?


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

Отложенное чтение: OpenSource-альтернатива

Reading time3 min
Views38K


Недавно я открыл для себя удобство отложенного чтения — когда заинтересовавшую статью в сети можно прочитать в любое время, комфортно расположившись c любимым девайсом на диване / пляже / под одиноким деревцем на тропе, ведущей к базовому лагерю у подножья Эвереста. И хотя проприетарных решений для этого хватает (Instapaper, Pocket, Readability), душа настойчиво требовала OpenSource. И вот к какому решению я пришёл после исследования возможных вариантов.
Читать дальше →

25+ видеоуроков по Android для начинающих

Reading time2 min
Views415K

Приветствую вас, уважаемый хабрачеловек!
Предлагаю вашему вниманию бесплатно серияю видеоуроков в котрых рассмотренно базовые понятия разработки под Android.
Читать дальше →

Руководство по собеседованию на вакансию PHP-программиста

Reading time22 min
Views255K
Вездесущий… это определённо то слово, которым можно описать язык PHP по отношению к вебу. Он действительно вездесущ. В настоящее время, среди всех серверных языков программирования, PHP используется наиболее широко. На нём написаны более 80% сайтов, при этом следующий по популярности ASP.NET со своими 17% остаётся далеко позади.



Почему? Что позволило PHP стать настолько популярным и широко используемым? На этот вопрос нет однозначного ответа, но простота использования языка, безусловно, существенный фактор, поспособствовавший его успеху. Новички в PHP могут быстро выйти на достаточный уровень и разместить динамический контент на своих веб-сайтах с минимум познаний в программировании.

Именно в этом и заключается основная проблема поиска высококвалифицированных PHP-разработчиков. Относительно низкий порог вхождения и 20 лет развития языка привели к тому, что PHP-программисты стали такими же вездесущими, как и сам PHP. Многие из них могут на законных основания утверждать, что «знают» язык. Однако разработчики, которые действительно являются экспертами по PHP, способны создавать куда более функциональное, надёжное, масштабируемое и простое в сопровождении программное обеспечение.

Как же отличить тех, кто обладает реальной компетентностью в PHP (не говоря уже о тех, кто входит в 1% наиболее опытных кандидатов) от тех, у кого только поверхностные знания?
Читать дальше →

Руководство по установке и настройке OpenVPN

Reading time34 min
Views1.6M



Когда у нас появились сотрудники, работающие удаленно, пришлось думать над тем, как обеспечить им защищенный доступ к нашим хостинговым серверам, виртуальным выделенным серверам разработчиков Virtual Dedicated Server (VDS), сайтам обеспечения и сопровождения разработки и к другим ресурсам.



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



Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.



В нашей компании сеть VPN позволила предоставить защищенный доступ сотрудников к VDS, играющей роль сервера OpenVPN. И уже для фиксированного IP этого сервера был разрешен доступ к другим ресурсам компании. Попутно на сервере OpenVPN был установлен прокси Squid, что решило все проблемы доступа сотрудников с динамическими IP к защищенным ресурсам компании.



Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.



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


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

Учимся готовить Log4j + Logstash + ElasticSearch + Kibana 3 + Auth (Google OAuth2/BasicAuth/CAS Authentication)

Reading time9 min
Views67K

Задача


Настройка удобного средства для обработки и получения логов.

Условия


  1. Лицензия MIT или Apache 2.0
  2. Возможность приема и обработки многострочных сообщений
  3. Простота в настройке и использовании
  4. Возможность работы с логами из Log4j


Решение


Logstash + ElasticSearch + Kibana 3.
Читать дальше →

30 полезных сервисов для веб-разработчиков и дизайнеров v2

Reading time3 min
Views86K
Предыстория: я веду свой паблик ВК о веб-разработке, в связи с чем я каждый день имею дело с большим количеством материалов о веб-разработке. Однажды (3 месяца назад) мне пришла в голову идея опубликовать на хабре подборку «30 полезных сервисов для веб-разработчика». Тот пост набрал почти 100 000 просмотров, и мне приятно, что он оказался полезен сообществу. С тех пор у меня поднакопилось больше 30 новых сервисов, которые будут полезны как разработчикам, так и дизайнерам. Лучшие из них я собрал в этом посте. Осторожно, под катом много картинок!
Читать дальше →

Мониторинг PostgreSQL + php-fpm + nginx + диска с помощью Zabbix

Reading time11 min
Views36K
Много информации в сети по Zabbix, много и шаблонов самописных, хочу представить на суд аудитории свои модификации.
Zabbix — очень удобный и гибкий инструмент мониторинга. Хочешь — сотню мониторь, хочешь — тысячу станций, а не хочешь — следи за одним сервером, снимай сливки во всех разрезах. Буду не против отдать на github, если кто коллекционирует схожие.

image

Так случилось, что решили мы выложить на хостинг базу данных с оберткой из php-fpm+nginx. В качестве БД — postgres. Мысли собирать данные о работе машины были еще до покупки хостинга — это нужно, это полезно! Волшебным пенделем к внедрению системы послужили тормоза жесткого диска на нашей VDS станции — в начале скриптом каждую минуту кладем время и замерянную скорость в файл, а потом в экселе строим графики, сравниваем как было/стало, снимаем количественную статистику. И это всего один параметр! А вдруг виноват не VDS, а наши приложения, которые на нем работают. Вобщем, мониторить надо много, мониторить надо удобно!
Читать дальше →

Двухпанельный веб-файл менеджер Cloud Commander

Reading time9 min
Views63K
Файловых менеджеров много, но есть один, о котором, думаю, будет многим интересно узнать. Ведь он двухпанельный, работает в браузере, оснащён редактором (с подсветкой синтаксиса) и консолью, состоит из клиента и сервера, а написан на JavaScript/Node.js.



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

Бесплатные SSL-сертификаты для проектов Open Source

Reading time1 min
Views18K
Центр сертификации GlobalSign начал раздавать бесплатно SSL-сертификаты проектам Open Source, которые соответствуют критериям. Это хорошая возможность для тех проектов, до сих пор не имеющих сертификата, получить его. Сертификат действует бессрочно, то есть пока проект соответствует заявленным требованиям.

Требования:
  • Свободная лицензия из списка Open Source Initiative.
  • Действующая поддержка проекта.
  • Соответствие требованиям благонадёжности.
  • Правильная конфигурация SSL (после выдачи сертификата) с получением высшего балла “A” при проверке в SSL Checker.
  • Соглашение со стандартными условиями.
  • Сайт не должен использоваться в коммерческих целях.
Читать дальше →

Maxmertkit. Идеальный css-фреймворк

Reading time29 min
Views48K


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

Требования и задачи


При создании версии 1.0 мне пришлось пересмотреть основные требования к фреймворку:

  • Возможность легко добавить/удалить размер или тему. Json-файл с прописанными темами и размерами для каждого виджета. Таким образом можно конфигурировать фреймворк исправляя json-файл.
  • Модульность. При отключении или добавлении любого виджета фреймворк должен стабильно работать (привет bootstrap).
  • Особое именование классов для избежания переопределения пользовательских классов.
  • Javascript компоненты без jQuery (но с возможностью его использования, если он подключен).


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

Осторожно! Трафик.
Читать дальше →

Менеджеры паролей — краткий обзор

Reading time5 min
Views176K
Записывать пароли в файл txt — уже не то. Правильные пользователи хранят секретную информацию в правильных программах. Мы подготовили обзор пяти менеджеров паролей — удобных и функциональных. Их оценка основана исключительно на личном мнении.

#1 KeePass


www.keepass.info



Мультиязычная бесплатная программа для хранения и генерации паролей с открытым кодом и рядом готовых плагинов — шифрованием, синхронизацией, генерацией произносимых и легко запоминающихся паролей.
Читать дальше →

RESTful API на Yii framework с RBAC и тестами

Reading time19 min
Views30K
Существует множество готовых решений для реализации RESTFul API на Yii framework, но при использовании этих решений в реальных проектах понимаешь что все красиво выглядит только на примерах с собачками и их хозяевами.

Возможно, за время подготовки и написания статьи она немного потеряла актуальность с выходом Yii2 со встроенным фреймворком для создания RESTful API. Но статья по прежнему будет полезна для тех, кто пока не знаком с Yii2, или для тех, кому необходимо быстро и просто реализовать полноценное API для уже существующего приложения.

Для начала приведу список некоторых возможностей, которых мне очень не хватало для полноценной работой с серверным API при использовании существующих расширений:

  1. Одна из первых проблем с которой я столкнулся — сохранение различных сущностей в одной таблице. Для получения таких записей уже не достаточно просто указать имя модели как это предлагается, например тут. Один из примеров такого механизма — таблица AuthItems, которая используется фреймворком в механизме RBAC (если кто-то не знаком с ним — есть замечательная статья на эту тему). В ней содержатся роли, операции и задачи которые определяются флагом type, и для работы с этими сущностями через API мне хотелось использовать url не такого типа:
    GET: /api/authitems/?type=0 - получение списка операций
    GET: /api/authitems/?type=1 - получение списка задач
    GET: /api/authitems/?type=2 - получение списка ролей

    а такого:
    GET: /api/operations - получение списка операций
    GET: /api/tasks - получение списка задач
    GET: /api/roles - получение списка ролей

    Согласитесь, второй вариант выглядит очевиднее и понятнее, тем более для человека не знакомого с фрейморком и устройством RBAC в нем.
  2. Вторая немаловажная возможность — механизм поиска и фильтрации данных, с возможностью задавать условия и комбинировать правила. Например, мне хотелось иметь возможность выполнить аналог такого запроса:
    SELECT * FROM users WHERE (age>25 AND first_name LIKE '%alex%') OR (last_name='shepard');
    

  3. Порой не хватает возможности создания, обновления, удаления коллекций. Т.е. изменение n-ого количества записей одним запросом опять же используя поиск и фильтрацию. Например, зачастую требуется удалить или обновить все записи, попадающие под какое-либо условие, а использовать отдельные запросы слишком накладно.
  4. Еще одним важным моментом была возможность получать связанные данные. Например: получить данные роли вместе со всеми её задачами и операциями.
  5. Конечно невозможно хоть сколько-нибудь комфортно работать с API не имея возможности ограничить количество получаемых записей (limit), сместить начало выборки (offset), и указать порядок сортировки записей (order by). Так же не плохо бы иметь возможность группировки (group by).
  6. Важно иметь возможность для каждой из операций проверять права пользователя (метод checkAccess все в том же RBAC).
  7. Ну и наконец, все это дело нужно как-то тестировать.

В результате анализа примерно такого списка «хотелок» и появился на свет мой вариант реализации API на этом замечательном фреймворке!
Читать дальше →

Octotree: отображение кода на Github в виде дерева

Reading time1 min
Views24K


Github является незаменимым сайтом, на котором разработчики проводят многие часы. Некоторым хочется добавить удобства в повседневную работу. Расширение Octotree для Firefox/Chrome/Safari делает именно то, чего так не хватало на Github, а именно, отображает исходный код в виде дерева.
Читать дальше →

Noisli: онлайн-генератор фоновых шумов, помогающих сконцентрироваться

Reading time1 min
Views182K


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

Сайт Noisli содержит коллекцию фоновых шумов на любой вкус и возможность смешивать их в произвольной пропорции. Здесь есть и звуки природы — шум дождя, плеск воды, пение птиц, шуршание листьев, и звуки техногенного характера — стук колёс поезда, звук работающего вентилятора, и звуки многолюдного кафе. Есть и искусственные белый, розовый и коричневый шум. Коллекция звуков постоянно пополняется.
Читать дальше →

Сравнительный обзор BPM-систем

Reading time11 min
Views113K

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

Нельзя запускать проект, опираясь на возможности наскоро выбранного продукта и обещания вендора, есть масса аспектов, которые нужно обдумать и взвесить. А последствия неправильного выбора и осознание своей ошибки уже во время работы, «на половине пути» может стоить дорого.



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



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

Краткий обзор open source средств резервного копирования

Reading time9 min
Views76K
Средства для резервного копирования информации можно разделить на несколько категорий:
— Для домашнего/офисного применения (резервирование важных документов, фотографий и пр. на NAS либо в облако);
— Для средних и крупных (offline) предприятий (резервирование важных документов, отчетности, баз данных и пр. как на серверах так и на рабочих станциях сотрудников);
— Для малых веб-проектов (резервирование файлов и баз данных с хостинговой площадки либо VPS/VDS на удаленный хост (или наоборот));
— Для крупных веб-проектов с распределенной архитектурой (почти то же самое, что и на offline-предприятиях только с учетом работы в глобальной сети, а не локальной, и как правило с использование open source средств).

С программными продуктами для дома и офиса все достаточно просто есть масса решений как открытых так и проприетарных, от cmd/bash скриптов до решений известных производителей ПО.
В enterprise секторе все достаточно скучно есть масса программных продуктов которые давно и успешно работают на многих предприятиях, в крупных банках и пр, рекламировать никого не будем. Многие из этих продуктов хорошо упростили жизнь системных администраторов, за достаточно «скромные деньги» по меркам некоторых предприятий.
В данной статье более подробно рассмотрим open source решения для резервного копирования веб-проектов разного масштаба, а также проведем тест на скорость резервирования файлов.
Статья будет полезна веб-мастерам, небольшим веб-студиям, ну и возможно даже бывалый админ найдет здесь что-то полезное.
Читать дальше →

15 шаблонизаторов для фронтенд-разработки

Reading time4 min
Views185K

Число JS-библиотек ни в коей мере не уменьшается; наоборот, оно растёт с каждым днём. Когда мы доходим до приложений JS, лучшим выбором оказываются шаблоны, чем полноценные библиотеки, потому что это приводит к более чистому базовому коду и лучшему процессу работы с ними.

Не так давно я писал, что вы могли бы попробовать написать свою библиотеку, когда придёт время. Шаблонизаторы же требуют несколько больших навыков и понимания языка, с которым вы работаете, поэтому лучше полагаться на любой шаблонизатор из имеющихся в списке ниже.
ICanHaz,Hogan,Handlebars,Mustache,Transp-cy,doT,Walrus,Chibi,templayed,ECT,Pithy,T,Nunjuck,Jade,Dust

GitHub Cheat Sheet

Reading time2 min
Views19K
Привет, Хабр! В очередной раз на глаза попался очень интересный репозиторий. Эта шпаргалка по самым тайным и функциональным возможностям Git и GitHub появилась благодаря выступлениям Зака Холмана одну из статей которого я уже переводил Git and GitHub Secrets на Aloha Ruby Conference 2012 и More Git and GitHub Secrets на WDCNZ 2013. Стоит сказать о том, что проект набрал свыше 1000 старов менее чем за 12 часов. Приведу несколько примеров:

Hub — Git Wrapper


Hub — это оболочка над Git, которая сокращает потраченное время на лишнее нажатии клавиш при работе с Git.
$ hub clone tiimgreen/toc
> git clone https://github.com/tiimgreen/toc.git

На hub можно сделать алиас git и все будет выглядеть еще удобнее:
# Remote
$ git remote add rtomayko
> git remote add rtomayko git://github.com/rtomayko/CURRENT_REPO.git

#Fetch
$ git fetch mislav
> git remote add mislav git://github.com/mislav/REPO.git

#Fork
$ git fork
[ repo forked on GitHub ]
> git remote add -f YOUR_USER git@github.com:YOUR_USER/CURRENT_REPO.git


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

Information

Rating
Does not participate
Location
Воронеж, Воронежская обл., Россия
Date of birth
Registered
Activity