Я встречал в сети много tutorial'ов по установке своего сервера git как на gitweb, так и на webdav, но, увы, они либо были только по одному из вышеназванных пунктов, не освещая другой, либо банально не работали. Вчера возникла необходимость поднять свой сервер репозиториев. Потратил пару часов — поднял, теперь хочу поделиться опытом, потому что считаю проблему актуальной :)
Пользователь
Первые шаги к вселенной MeteorJS
6 min
48K
Если вы интересуетесь клиентским программированием, то как и я, вероятно, могли слышать о Meteor, уже не новом веб-фреймворке, который относится к набирающим популярность, так называемым «фулл-стек» фреймворкам. О нем уже писали на Хабре, чтобы не дублировать информацию, можно почитать здесь или тут. Я довольно давно слышал о метеоре, но все никак не решался его пощупать. И вот, пришли очередные выходные, и я снова наткнулся на него. В этот раз я решил честно попробовать, что это такое. Может быть, этот пост даст кому-то небольшой толчок к началу изучения или хотя бы знакомства с этим инструментом. Тогда это было бы не зря.
Disclaimer: может вызвать зависимость.
Давайте же сделаем первые шаги к освоению meteorjs, добро пожаловать под кат.
+27
HHVM, Nginx и PHP (а также Laravel)
5 min
46KTutorial
Translation

HHVM (или HipHop Virtual Machine) — это виртуальная машина, предназначенная для выполнения программ, написанных на PHP. Использует технологию JIT компиляции для увеличение скорости выполнения байткода.
Вступление
Как и в большинстве моих статей, я буду использовать Ubuntu 12.04 LTS как сервер для установки нашего добра. Однако, мы вполне можем установить это все на Mac с помощью Brew (nginx и hhvm). Информация об установке HHVM на другие платформы (включая новые версии Ubuntu) может быть найдена здесь.
Ну что же, поехали!
+28
Python: вещи, которых вы могли не знать
8 min
314KPython — красивый и местами загадочный язык. И даже зная его весьма неплохо, рано или поздно находишь для себя нечто такое, что раньше не использовал. Этот пост отражает некоторые детали языка, на которые многие не обращают внимание. Сразу скажу: многие примеры являются непрактичными, но, оттого, не менее интересными. Так же, многие примеры демонстрируют unpythonic стиль, но я и не претендую на новые стандарты — я просто хочу показать, что можно делать вот так.
+101
Примеры xpath-запросов к html
4 min
532KXpath — это язык запросов к элементам xml или xhtml документа. Также как SQL, xpath является декларативным языком запросов. Чтобы получить интересующие данные, необходимо всего лишь создать запрос, описывающий эти данные. Всю «черную» работу за вас выполнит интерпретатор языка xpath.
Очень удобно, не правда ли? Давайте посмотри какие возможности предлагает xpath для доступа к узлам веб-страниц.
Очень удобно, не правда ли? Давайте посмотри какие возможности предлагает xpath для доступа к узлам веб-страниц.
+53
RabbitMQ tutorial 3 — Публикация/Подписка
5 min
116KTutorial
Хочу продолжить серию перевода уроков с официального сайта. Примеры будут на php, но их можно реализовать на большинстве популярных ЯП.
В предыдущей статье было рассмотрено создание рабочей очереди сообщений. Было сделано допущение, что каждое сообщение будет направлено одному обработчику(worker). В этой статье усложним задачу – отправим сообщение нескольким подписчикам. Этот паттерн известен как "publish/subscribe" (публикация/подписка).
Чтобы понять этот шаблон, создадим простую систему логирования. Она будет состоять из двух программ – первая будет создавать логи, вторая считывать и печатать их.
В нашей систему логирования каждая программа подписчик будет получать каждое сообщение. Благодаря этому, мы сможем запустить одного подписчика на сохранение логов на диск, а потом в любое время сможем создать другого подписчика для отображения логов на экран.
По существу, каждое сообщение будет транслироваться каждому подписчику.
Публикация/Подписка
В предыдущей статье было рассмотрено создание рабочей очереди сообщений. Было сделано допущение, что каждое сообщение будет направлено одному обработчику(worker). В этой статье усложним задачу – отправим сообщение нескольким подписчикам. Этот паттерн известен как "publish/subscribe" (публикация/подписка).
Чтобы понять этот шаблон, создадим простую систему логирования. Она будет состоять из двух программ – первая будет создавать логи, вторая считывать и печатать их.
В нашей систему логирования каждая программа подписчик будет получать каждое сообщение. Благодаря этому, мы сможем запустить одного подписчика на сохранение логов на диск, а потом в любое время сможем создать другого подписчика для отображения логов на экран.
По существу, каждое сообщение будет транслироваться каждому подписчику.
+25
Highly Available кластер RabbitMQ
6 min
76KTutorial
Знакомимся с RabbitMQ
Переводы на хабре:
RabbitMQ tutorial 1 — Hello World
RabbitMQ tutorial 2 — Очередь задач
RabbitMQ tutorial 3 — Публикация/Подписка
Сразу дополню некоторые недочеты. И кратко повторю основные термины.
Принцип работы архитектуры использующей rabbitMq

+16
Создание ознакомительного поискового движка на Sphinx + php
5 min
105KTutorial
Предыстория
Раньше для поиска по сайту мы использовали обычный fulltext поиск. Но в определенный момент он перестал нас устраивать и мы решили опробовать альтернативную технологию поиска: Sphinx. К сожалению, у сфинкса совсем нет русской документации, поэтому эта статья — аналог статьи Build a custom search engine with PHP, только на русском языке и для моего локального окружения (windows 7, mysql/php)
Статья состоит из 4 частей:
- Краткий рассказ про подготовку базы для поиска.
- Рассказ про первоначальную установку и настройку сфинкса
- Индексирование базы и тестовый поиск из командной строки
- Тестовый поиск из php
+64
MySQL шпаргалки
3 min
827KЧасто, когда разрабатываешь сайт, замечаешь, как на одни и те же грабли наступают разработчики при проектировании базы данных.
Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.
Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.
+171
Шпаргалка по Redis
8 min
410KTutorial
Про Redis (официальный сайт, материалы на Хабре) написано много, но мне до сего дня не хватало материала, который послужил бы шпаргалкой по его практическому использованию, а так же справочником по базовым теоретическим моментам. Постараюсь заполнить этот пробел в богатой базе знаний Хабра.
Я поставил перед собой цель показать возможности Redis с помощью примеров кода. После публикации приму любые предложения по улучшению материала.
Здесь используется общение с сервером через консольный клиент, но, основываясь на приведенных примерах, можно легко найти реализацию этих примеров в клиентских библиотеках на вашем любимом языке.
Redis — хранилище данных в формате «ключ-значение». Факты о ключах:
Про типы данных Redis есть отдельная хорошая статья: «Структуры данных, используемые в Redis».
Я поставил перед собой цель показать возможности Redis с помощью примеров кода. После публикации приму любые предложения по улучшению материала.
Здесь используется общение с сервером через консольный клиент, но, основываясь на приведенных примерах, можно легко найти реализацию этих примеров в клиентских библиотеках на вашем любимом языке.
Ключи
Redis — хранилище данных в формате «ключ-значение». Факты о ключах:
- Ключи в Redis — бинарно-безопасные (binary safe) строки.
- Слишком длинные ключи — плохая идея, не только из-за занимаемой памяти, но так же и в связи с увеличением времени поиска определенного ключа в множестве в связи с дорогостоящим сравнением.
- Хорошая идея — придерживаться схемы при построении ключей: «object-type:id:field».
Типы данных Redis
- Строки (strings). Базовый тип данных Redis. Строки в Redis бинарно-безопасны, могут использоваться так же как числа, ограничены размером 512 Мб.
- Списки (lists). Классические списки строк, упорядоченные в порядке вставки, которая возможна как со стороны головы, так и со стороны хвоста списка. Максимальное количество элементов — 232 — 1.
- Множества (sets). Множества строк в математическом понимании: не упорядочены, поддерживают операции вставки, проверки вхождения элемента, пересечения и разницы множеств. Максимальное количество элементов — 232 — 1.
- Хеш-таблицы (hashes). Классические хеш-таблицы или ассоциативные массивы. Максимальное количество пар «ключ-значение» — 232 — 1.
- Упорядоченные множества (sorted sets). Упорядоченное множество отличается от обычного тем, что его элементы упорядочены по особому параметру «score».
Про типы данных Redis есть отдельная хорошая статья: «Структуры данных, используемые в Redis».
+39
Конкурс: Telegram для Windows Phone — 3 млн. рублей в первом туре
1 min
9.1K
Всем-всем-всем, кто интересуется разработкой под Windows Phone!
Количество пользователей Telegram и регистраций в мессенджерах на базе протокола MTProto активно растет и в ноябре достигло миллиона человек.
В честь этого Павел Дуров объявил о запуске конкурса среди разработчиков под Windows Phone. Теперь у вас есть замечательная возможность провести начало зимы и зимние каникулы с пользой для себя, своего кошелька и пользователей WP.
Задача — создать мессенджер на базе открытого протокола MTProto под Windows Phone. Участвовать может любой желающий.
Призовой фонд первого тура — 3 миллиона рублей.
Срок проведения — с 25 ноября 2013 до 9 января 2014 года.
Ссылки
Станица конкурса: dev.stel.com
VK-группа для обсуждения: vk.com/durovschallenge
+10
Графы для самых маленьких: Dijkstra или как я не ходил на собеседование в Twitter
6 min
107KНе так давно наткнулся на статью о том, как Michael Kozakov не смог решить алгоритмическую задачу на собеседовании в Twitter. Решение этой задачи — почти в чистом виде один из самых стандартных алгоритмов на графах, а именно, алгоритм Дейкстры.
В этой статье я постараюсь рассказать алгоритм Дейкстры на примере решения этой задачи в несколько усложненном виде. Всех, кому интересно, прошу под кат.
В этой статье я постараюсь рассказать алгоритм Дейкстры на примере решения этой задачи в несколько усложненном виде. Всех, кому интересно, прошу под кат.
+45
Как работает Passport.js
4 min
120KTutorial

PassportJS — это middleware для авторизации под node.js. Passport поддерживает авторизацию с помощью огромного количества сервисов, включая «ВКонтакте» и прочие твиттеры. Список сервисов можно просмотреть здесь. Я хочу немного рассказать о том, как работает этот middleware на примере самой обычной авторизации с помощью логина и пароля.
Для самых нетерпеливых — готовый проект можно посмотреть здесь.
+14
Raspberry Pi: измеряем влажность и температуру с помощью DHT11/DHT22
5 min
225K
+20
Алгоритм Ахо-Корасик
8 min
106KВступление
В посте я постарался избежать сложных дефиниций и строгих матетематических доказательств, а некоторые вещи вообще понятны интуитивно. Алгоритм удобно разбивается на взаимосвязные части, поэтому и уловить принцип его работы не должно составлять труда.
Начальное описание
Алгоритм Ахо-Корасик реализует эффективный поиск всех вхождений всех строк-образцов в заданную строку. Был разработан в 1975 году Альфредом Ахо и Маргарет Корасик.
Опишем формально условие задачи. На вход поступают несколько строк pattern[i] и строка s. Наша задача — найти все возможные вхождения строк pattern[i] в s.
Суть алгоритма заключена в использование структуры данных — бора и построения по нему конечного детерминированного автомата. Важно помнить, что задача поиска подстроки в строки тривиально реализуется за квадратичное время, поэтому для эффективной работы важно, чтоб все части Ахо-Корасика ассимптотически не превосходили линию относительно длинны строк. Мы вернемся к оценке сложности в конце, а пока поближе посмотрим на составляющие алгоритма.
+62
Релиз Phalcon 1.2.0
7 min
5.5K
Мы рады объявить о релизе новой версии Phalcon.
Прошло чуть больше двух месяцев с момента выпуска предыдущей версии, и команда разработчиков представляет один из самых больших и серьёзных релизов быстрейшего фреймворка для PHP написанного как Си-расширение.
Новая версия содержит множество новых функций, исправлений ошибок и оптимизаций. Мы также обновили сайт и готовимся к большим обновлениям документации и описания API.
Нововведения Phalcon 1.2.0:
- Динамические пути для скомпилированных шаблонов Volt
- Расширение возможностей Volt
- Ссылки для статичных и динамических путей в Phalcon\Mvc\Url
- Phalcon\Mvc\View\Simple
- Улучшена работа с JSON
- Поддержка Many-To-Many в ORM
- Работа с виртуальными внешними ключами
- Минификация Javascript и CSS
- Запрет переменных (литералов) в PHQL
- Расширены возможности Partials
- Использование Phalcon\Tag как сервиса
- Макросы в Volt
- BadMethodCallException вместо предупреждений
- Компонент отладки
Скачать
Новый девиз
Благодарности
+30
PHP IPC — Межпроцессное взаимодействие в PHP
6 min
29K
Целью данной заметки является ознакомление PHP-разработчиков с возможностями межпроцессного взаимодействия в данном языке. Заметка не предполагает во всех деталях рассказать о каждой из возможностей, деталях реализации или показать рабочие примеры кода.
Поскольку задача распараллеливания рано или поздно появляется у любого программиста, то данная заметка была задумана отправной точкой, с которой можно начать своё путешествие в мир увлекательного
+37
JetBrains — разработка под Android для лентяев
1 min
79KХотите изучить разработку пoд Android, но лень читать большие книги с кучей теории? JetBrains подготовила курс из 12 уроков для быстрого старта. Темы уроков:
* Getting Started
* UI Designer
* Minimally Interactive
* Lifecycle
* More Activities
* List Views
* HTTP
* Storage
* Menus
* Dialogs
* Preferences
* Publishing
* Getting Started
* UI Designer
* Minimally Interactive
* Lifecycle
* More Activities
* List Views
* HTTP
* Storage
* Menus
* Dialogs
* Preferences
* Publishing
+82
Google представил Coder
2 min
31KКомпания Google представила Coder – проект, превращающий ваш Raspberry Pi в Web-сервер для обучения программированию на Javascript, HTML и CSS.
Coder спроектирован для создания, изменения и запуска простых web-приложений. Приложения, созданные с помощью Coder, используют стандартные для web инструменты: HTML, CSS и Javascript, и могут быть запущены прямо в браузере. Проект представляет собой видоизменённый образ Raspbian, предоставляемый под лицензией Apache 2. Код проекта написан на JavaScript, а серверная часть выполняется с использованием Node.js.
Coder спроектирован для создания, изменения и запуска простых web-приложений. Приложения, созданные с помощью Coder, используют стандартные для web инструменты: HTML, CSS и Javascript, и могут быть запущены прямо в браузере. Проект представляет собой видоизменённый образ Raspbian, предоставляемый под лицензией Apache 2. Код проекта написан на JavaScript, а серверная часть выполняется с использованием Node.js.
+62
RESTful API на Node.js + MongoDB
16 min
260KTutorial
Я, будучи разработчиком мобильных приложений, часто нуждаюсь в backend-сервисах для хранения пользовательских данных, авторизации и прочего. Конечно, для подобных задач можно использовать BaaS (Parse, Backendless, etc…). Но свое решение — это всегда более удобно и практично.
И я все же решил изучить совершенно неизвестные для меня технологии, которые сейчас весьма популярны и позиционируются, как легко осваиваемые новичками и не требующие глубоких знаний и опыта для реализации масштабных проектов. Вот и проверим вместе, может ли неспециалист написать свой эффективный и правильный бэкенд.
В данной статье будет рассмотрено построение REST API для мобильного приложения на Node.js с использованием фреймворка Express.js и модуля Mongoose.js для работы с MongoDB. Для контроля доступа прибегнем к технологии OAuth 2.0 с помощью модулей OAuth2orize и Passport.js.
Пишу с позиции абсолютного новичка. Рад любым отзывам и поправкам по коду и логике!
И я все же решил изучить совершенно неизвестные для меня технологии, которые сейчас весьма популярны и позиционируются, как легко осваиваемые новичками и не требующие глубоких знаний и опыта для реализации масштабных проектов. Вот и проверим вместе, может ли неспециалист написать свой эффективный и правильный бэкенд.
В данной статье будет рассмотрено построение REST API для мобильного приложения на Node.js с использованием фреймворка Express.js и модуля Mongoose.js для работы с MongoDB. Для контроля доступа прибегнем к технологии OAuth 2.0 с помощью модулей OAuth2orize и Passport.js.
Пишу с позиции абсолютного новичка. Рад любым отзывам и поправкам по коду и логике!
Содержание
- Node.js + Express.js, простой web-сервер
- Error handling
- RESTful API endpoints, CRUD
- MongoDB & Mongoose.js
- Access control — OAuth 2.0, Passport.js
+38
Information
- Rating
- Does not participate
- Location
- Украина
- Date of birth
- Registered
- Activity