Как стать автором
Обновить
15
0
Елчев Евгений @rsi

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

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

Как начать работать с GitHub: быстрый старт

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


Распределенные системы контроля версий (DVCS) постепенно замещают собой централизованные. Если вы еще не используете одну из них — самое время попробовать.

В статье я постараюсь показать, как можно быстро начать экспериментировать с git, используя сайт github.com.

В статье не будут рассмотрены различия между разными DVCS. Также не будет детально рассматриваться работа с git, по этой теме есть множество хороших источников, которые я приведу в конце статьи.
Читать дальше →
Всего голосов 182: ↑165 и ↓17+148
Комментарии51

Пишем плагин для jQuery

Время на прочтение8 мин
Количество просмотров247K
Эта статья призвана дать представление об основных правилах, подходах, дающих наилучшие результаты, и распространённых ошибках, на которые стоит обратить внимание при разработке плагинов для jQuery.
Читать дальше →
Всего голосов 171: ↑138 и ↓33+105
Комментарии67

Как на самом деле работает mod_rewrite. Пособие для продолжающих

Время на прочтение17 мин
Количество просмотров277K
image
Эта статья выросла из идеи продвинутого обучения наших сотрудников технической поддержки работе с mod_rewrite. Практика показала, что после изучения имеющихся в большом количестве учебников на русском языке саппортам хорошо дается решение шаблонных задач, но вот самостоятельное составление правил происходит методом проб и большого количества ошибок. Проблема заключается в том, что для хорошего понимания работы mod_rewrite требуется изучение оригинальной англоязычной документации, после чего — либо дополнительные разъяснения, либо часы экспериментов с RewriteLog.

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

Я предполагаю, что читатель уже знаком с тем, что такое mod_rewrite, и не буду описывать его основы, которые легко найти в интернете. Также нужно отметить, что в статье освещается работа mod_rewrite при использовании его директив в файле .htaccess. Отличия при работе в контексте <VirtualHost> изложены в конце статьи.

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

Почему так происходит?
Читать дальше →
Всего голосов 208: ↑203 и ↓5+198
Комментарии25

Интеграция Zend_Tool в NetBeans

Время на прочтение3 мин
Количество просмотров3.5K
Zend_Tool — замечательный инструмент в составе Zend Framework. В интернетах пишут, что он еще не такой совершенный, как подобные утилиты у конкурирующих фреймворков, но я думаю, что лучше что-то, чем ничего. Утилита представляет собой файл zf.sh в Linux или zf.bat в Windows. Для ее работы надо, чтобы путь к интерпретатору PHP был указан в системной переменной PATH. Для удобства я там же указываю и путь к самой утилите: тогда ее можно вызывать из любого места.

Интерфейс командной строки вещь хорошая — как говорится, feel power at the fingertips. Но не менее удобно иметь такой же функционал в любимой IDE'шке. Кстати говоря, он реализован в Zend Studio — прожорливой и не очень бесплатной, хотя и мощной среде разработки. А для любителей NetBeans разработчики предлагают возможность интегрировать утилиту командной строки в IDE. Когда я ее попробовал активировать, все оказалось неочевидно, хотя и довольно просто, надо было  какое-то время погуглить и поэкспериментировать.

Итак, что нужно, чтобы все работало (под Windows 7 в моем случае):
Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии5

Zend_Db_Table простота в использовании

Время на прочтение6 мин
Количество просмотров5.3K
Мало кто использует этот удивительный класс на полную мощность. О некоторых его скрытых возможностях также мало кто догадывался, как и я до этого момента.
Читать дальше →
Всего голосов 29: ↑17 и ↓12+5
Комментарии44

Несколько полезных сервисов

Время на прочтение2 мин
Количество просмотров125K
Хочу поделиться ссылками на несколько полезных сервисов. Некоторые из них помогут сэкономить время, другие — сделают за Вас незнакомую/нелюбимую работу. Список разбит по категориям, чтобы было легче ориентироваться.

Сервисы опросов
userreport.com (добавил Romanych)
simpoll.ru
webanketa.com (добавил mihass)

Кнопки постинга в социальные сети
Кнопка от Яндекса
addthis.com (добавил UksusoFF)
share42.com
Читать дальше →
Всего голосов 381: ↑355 и ↓26+329
Комментарии108

Эффективная конкатенация строк в .NET

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

Для программистов на платформе .NET одним из первых советов, направленных на повышение производительности их программ, является «Используй StringBuilder для конкатенации строк». Как и «Использование исключений затратно», утверждение о конкатенации часто неправильно понимается и превращается в догму. К счастью, оно не столь деструктивно, как миф о производительности исключений, но встречается заметно чаще.

Было бы неплохо, если бы вы перед прочтением данной статьи прочли мою предыдущую статью о строках в .NET. И, во имя удобочитаемости, дальше я буду обозначать строки в .NET просто строками, а не «string» или «System.String».

Я включил эту статью в список статей, посвящённых .NET Framework в общем, а не в список C#-специфичных статей, так как полагаю, что все языки на платформе .NET под капотом содержат один и тот же механизм конкатенации строк.
Читать дальше →
Всего голосов 52: ↑40 и ↓12+28
Комментарии38

И снова о… LAMP и базово защищённый мини-хостинг своими руками

Время на прочтение9 мин
Количество просмотров56K
Увидев в очередной раз презренный посыл в Google в ответ на вопрос о том, как развернуть собственную LAMP'у, решил написать данный пост. Чтобы хоть как-то разбавить тонны радостных отчётов об успешной установке из блогов, суть которых сводится к одной команде aptitude install blah-blah.

Нет, ну конечно понятно, PHP самый надёжный язык, а все движки сайтов, на нём написанные, являются живым воплощением непробиваемой защиты от взлома. Тогда да — aptitude install apache2 — и будет вам счастье. Не забудьте оставить phpmyadmin по дефолтному адресу, да поставьте какое-нибудь дырявое FTP решето.

Вообще, как оказалось, многие даже не в курсе, что взломав сайт и получив возможность исполнять свой PHP код, злоумышленник на системе с дефотными настройками сможет как минимум прочитать в вашей системе почти что угодно. Оно и понятно — работая с Linux привыкаешь как-то, что по дефолту безопасность находится на вполне достаточном уровне. А тут такая дыра…

В общем — в этой статье в очередной раз описывается банальщина на тему как развернуть LAMP и дать доступ внешним пользователям к файлам и базам ваших сайтов. Т.е. как быстро сделать мини-хостинг своими руками. Однако, в отличие от, хостинг у нас будет хотя бы базово защищённым.

Те, кому тема веб-серверов надоела, возможно смогут найти в статье интересные приёмы многопользовательского ограниченного доступа к серверу по SFTP.

И нет, это не ещё одна статья с описанием установки Linux и выполнением aptitude install apache2. Скорее наоборот: в этой статье я хотел показать фатальную недостаточность данных манипуляций и мягко говоря некомпетентность тех, кто их тиражирует в интернете.
Итак - снова LAMP
Всего голосов 78: ↑47 и ↓31+16
Комментарии76

Раскрываем магию MySQL или о строгости и мягкости MySQL

Время на прочтение15 мин
Количество просмотров136K
Очень часто в интернете встречаюсь со статьями, в которых приводят кучу примеров с якобы странным поведением MySQL по сравнению с другими БД. Чтобы стало понятно, о чём я говорю, приведу несколько примеров:
1. Деление на ноль возвращает NULL вместо ошибки
2. Выход за диапазон допустимых значений неявно приводит число к допустимому значению, а не к ошибке и откату транзакции
3. Вставка неверного типа данных также приводит к неявному преобразованию и успешному выполнению операции
Таких примеров я могу привести огромное число, но цель статьи не сделать очередное собрание высосанных из пальца примеров, а объяснить, почему происходит то или иное действие. Вся эта мистика MySQL давно описана в документации и легко объяснима, в чём вы сможете убедиться сами, прочитав статью до конца.
Для меня эта первая статья на хабре, поэтому я старался писать дотошно подробно. Уверен, что она будет полезна всем, кто работает с MySQL. Большую помощь в написании статьи оказала подготовка к сдаче на сертификат разработчика MySQL, а точнее книга «MySQL Certification Study Guide».
Итак, мой друг, начнём!
Читать дальше →
Всего голосов 69: ↑66 и ↓3+63
Комментарии13

То, что вам никто не говорил о z-index

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

Проблема z-index в том, что многие просто не понимают, как он работает.
Всё, описанное ниже, есть в спецификации W3C. К сожалению, не все её читают.

Описание проблемы:


Итак, пусть у нас есть HTML код, состоящий из 3 элементов.
Каждый из них внутри себя содержит по одному . А каждый , в свою очередь, имеет свой фон: красный, зеленый и синий, соответственно. Плюс ко всему, каждый позиционирован абсолютно левого верхнего края документа таким образом, что он немного перекрывает собой следующий за ним . Первый имеет z-index
, равный 1, у остальных двух z-index не задан.
Читать дальше →
Всего голосов 112: ↑109 и ↓3+106
Комментарии30

Типичные случаи утечки памяти в Java

Время на прочтение4 мин
Количество просмотров74K
Большинству разработчиков известно, что сборщик мусора в Java не является универсальным механизмом, позволяющим программисту полностью забыть о правилах использования памяти и о том, в каких случаях осуществляется его работа. Ниже описаны типичные случаи утечки памяти в java-приложениях, встречающиеся повсеместно.
Итак, о чём должен помнить каждый java-программист.
Читать дальше →
Всего голосов 113: ↑104 и ↓9+95
Комментарии80

Знакомство с Parallax Scrolling

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

Вспомните такие игры, как Mario Bros, Streets of Rage, Mortal Kombat, Turtles in Time или оригинальную игру Moon Patrol. В этих играх техника параллакса наблюдается в тот момент, когда несколько фоновых слоев с различными текстурами двигаются с разной скоростью, что создает эффект трехмерного пространства.

Почему я начал говорить о ретро-играх в статье о веб-разработке? Самым простым ответом мог бы быть «потому что они клевые», но нет. Параллакс-скроллинг является классным дизайнерским концептом, который прокладывает свой путь в мир веб-дизайна. Nike были одними из первых, кто использовал эту технику с большим успехом, когда они наняли маркетинговых гигантов Weiden and Kennedy для разработки их оригинального сайта Nike Better World. Сайт Nike Better World с того времени был обновлен и заменен на новый, однако есть другой сайт, довольно похожий на то, как выглядел первый параллакс-дизайн от Nike — сайт о спортивных напитках Activate.


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

Лучшие доклады девклуба

Время на прочтение1 мин
Количество просмотров4.5K
Привет!
Как вы, возможно, знаете, в Таллинне есть клуб разработчиков DevClub.
По традиции, в декабре обычно выбираются лучшие доклады года.

А на этой странице отдельно собраны лучшие доклады за все годы:
http://www.devclub.eu/people/top-videos/

Главное отличие девклуба от других сообществ разработчиков в том, что девклуб не связан какой-то конкретной темой (будь то Java, Ruby, тестирование и т.п.). Поэтому темы этих видео самые разные: есть и про Java, и про .NET, PHP, JavaScript, а также про управление проектами и IT-бизнес. Есть даже «оффтопики», то есть совсем не связанные с IT темы.

Приятного просмотра!
Всего голосов 15: ↑10 и ↓5+5
Комментарии3

Курс программирования под Android для начинающих

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


Организация Linux Foundation открыла курсы программирования под Android для начинающих. Авторы курса постарались, чтобы можно было за пару часов усвоить навыки разработки под эту платформу.
Читать дальше →
Всего голосов 45: ↑25 и ↓20+5
Комментарии18

Правильные ajax запросы в Drupal 7

Время на прочтение4 мин
Количество просмотров41K
Многие по старинке шлют ajax запросы руками с помощью $.ajax(), в то время как в Drupal для этого есть достаточно гибкий механизм, который позволит переиспользовать готовый код из ядра, и сократить количество JS кода.
Для того что бы начать его использовать, необходимо разобраться с такими вещами как delivery callback, Drupal.ajax и JS-commands.
Читать дальше →
Всего голосов 21: ↑15 и ↓6+9
Комментарии3

Оптимизация производительности SQL Server с использованием индексов

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

Введение


Как известно, индексы повышают производительность аналогично оглавлению или предметному указателю в кнгие. Прочитав несколько статей в интернете и пару глав из книжек, хотелось бы узнать, насколько индексы помогают увеличить скорость выборки данных из SQL Server. Рассмотрим на примере.
Читать дальше →
Всего голосов 17: ↑7 и ↓10-3
Комментарии49

Drupal: пишем свой парсер для Feeds

Время на прочтение5 мин
Количество просмотров13K
Модуль Feeds является очень популярным среди Drupal-разработчиков. Но возникает вопрос, что делать если необходимо несколько расширить его функциональность. В этом нам поможет система плагинов модуля Feeds.
Существует 3 вида плагинов от которых необходимо наследовать новые:
  • FeedsFetcher — плагин сборщика. Cтандартные: HTTP и File Upload. С помощью этого типа плагинов можно добавить новый источник данных.
  • FeedsProcessor — плагин обработки сущностей. Cтандартные: Node processor, Taxonomy term processor, User processor. С помощью нового плагина можно добавить новый обработчик, который будет создавать особенные сущности, не вписывающиеся в стандартный набор.
  • FeedsParser — плагин парсера. Стандартные парсеры в Feeds это XML, CSV и многие другие.

В этой статье я хотел бы остановиться именно на написании модуля парсера, так как довольно часто приходится иметь дело с импортом файлов со специфической структурой.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии3

Nginx+php-fpm+perl под Debian Squeeze

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

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

В качестве теста решил перевести все свои сайты на nginx, до этого все работало на Apache из состава ZendServerCE. Интересно было пробовать насколько сложно будет полностью переехать на новый для себя веб-сервер, ведь используется несколько CMS (DLE, Wordpress, самописныеCMS).

Задачи:
  • базовая работа web сервера — обработка html;
  • запуск php скриптов;
  • корректная работа phpmyadmin для всех сайтов на сервере;
  • запуск cgi и pl скриптов;
  • использование кеширования и подбор оптимальных параметров для увеличения производительности.


Имеем свежеустановленный сервер Debian 6 в минимальной установке из netinstall. И так поехали.
Читать дальше →
Всего голосов 75: ↑50 и ↓25+25
Комментарии66

Онлайн-инструменты для кодеров

Время на прочтение2 мин
Количество просмотров282K
Онлайн-сервисы становятся все популярнее, постепенно усложняя функционал и улучшая интерфейсы. В этой подборке представлены онлайн-инструменты для кодеров.

Cloud9


«Это Google Docs, только для кода» — так говорят о проекте. Облачный сервис вырос из Mozilla Bespin. Основные фишки: SSH, drag-and-drop и возможность разработки оффлайн.

Читать дальше →
Всего голосов 204: ↑191 и ↓13+178
Комментарии55

Настройка Nginx + LAMP сервера в домашних условиях. Часть 1: Настройка frontend — backend

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

Здравствуйте. Недавно я задавал вопрос по поводу создания цикла статей. Вот первая статья.

В этом цикле статей вы узнаете как грамотно настроить LAMP сервер, аля «хостинг только мощней».
Мы будем использовать следующий стек: nginx — apache-mpm-itk — mod_php — mysql — linux/debian.

Буду освещать следующие темы:
  • Настройка frontend — backend
  • Расчет возможностей сервера, настройка mysql и backend
  • Рассказ об опыте на базе intel s3420gp

Совершенно уверенно могу сказать, что настройка LAMP сервера не ограничивается 6-10 командами установки и раскомментирования определенных строчек в файлах настройки.
Пример: по умолчанию nginx не дает возможности закачать на сервер тело запроса больше чем 1M. Если не настроить данный параметр, будет возникать ошибка 414 (Request-URI Too Large), при попытке добавления небольшой серии фотографий.
У apache совершенно противоположное: у него тело запроса по умолчанию не ограничено. Это делает возможным совершать пакости.

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

Мы узнаем о том какие бывают простые атаки и как от них защищаться. Сразу скажу, что при базовой конфигурации frontend в лице nginx — backend apache все равно остается уязвим.

Я практически уверен, что я не смогу уместить все в одну статью. Добро пожаловать под кат.
Читать дальше →
Всего голосов 107: ↑75 и ↓32+43
Комментарии78

Информация

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

Специализация

Mobile Application Developer
Lead