Как стать автором
Обновить
0
0
Чернышков Константин @Chode

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

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

Запускаем сторонний код в песочнице

Время на прочтение8 мин
Количество просмотров5.7K
Как гласит статья из Википедии, Песочница — механизм для безопасного исполнения программ. Песочницы часто используют для запуска непротестированного кода, непроверенного кода из неизвестных источников, а также для запуска и обнаружения вирусов.

Представим, что у нас стоит задача: есть какой-то проект и пользователи могут под него писать свои скрипты (виджеты, дополнения, плагины). Мы хотим, чтобы пользовательские скрипты не делали ничего плохого (кража кук это меньшее, что они могут сделать).

В статье пойдет речь об атаках, которые могут совершать злоумышленники и о методах безопасного выполнения стороннего кода.
Читать дальше →
Всего голосов 97: ↑92 и ↓5+87
Комментарии25

Полнотекстовый поиск в InnoDB

Время на прочтение12 мин
Количество просмотров37K
Привет, Хабрачитатель!
Полнотекстовый поиск данных в InnoDB – это известная головная боль многих разработчиков под MySQL / InnoDB. Для тех, кто не в курсе дела я объясню. В типе таблиц MyISAM есть полноценный полнотекстовый поиск данных, однако сама таблица исторически имеет ограничения, которые являются принципиальными в отдельных проектах. В более «продвинутом» типе таблиц InnoDB полнотекстового поиска нет. Вот и приходится мириться бедным разработчикам либо с ограничениями MyISAM, либо с отсутствием поиска в InnoDB. Я хочу рассказать о том, какие есть способы организовать полноценный поиск в InnoDB без магии и исключительно штатными средствами. Также будет интересно сравнить скоростные характеристики каждого способа.
Читать дальше →
Всего голосов 79: ↑73 и ↓6+67
Комментарии55

PHPUnit+Netbeans

Время на прочтение4 мин
Количество просмотров10K
Здравствуйте.

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

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

В крупных конторах для этого есть специальные люди, которые занимаются тем, что пишут unit-тесты.

Меньшие конторы, фрилансеры этим грешат, да и на маленьких проектах это не всегда нужно. Согласитесь, если класс на 100 строк, то писать тесты на 200 строк кажется лишней тратой времени.

Тем не менее, не буду вдаваться в подробности кому надо кому нет.

Я хочу показать как можно клево тестировать код на NetBeans с удобным GUI.
Читать дальше →
Всего голосов 69: ↑58 и ↓11+47
Комментарии40

Git Wizardry

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


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

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

Читать дальше →
Всего голосов 89: ↑66 и ↓23+43
Комментарии76

Легко и непринуждённо: почта и Jabber для пользователей вашего сайта

Время на прочтение12 мин
Количество просмотров14K
Допустим, вы развиваете какой-нибудь сайт в интернете. У вас есть постоянные пользователи, кто-то заходит к вам от случая к случаю. И вы конечно же ищете способы удержания аудитории на вашем сайте, придумывая всякие оригинальные функции и оттачивая до блеска интерфейс. Почему бы тогда не использовать имя вашего сайта в качестве экспортной монеты? Можно ведь предоставить вашим пользователям в качестве дополнительного бонуса почтовый адрес и соответствующий адрес Jabber в вашем домене.

Конечно, я не предлагаю становится очередным провайдером почты. Это глупо, когда есть такие игроки, как gmail.com и yandex.ru. Кроме того, вы естественно можете использоваться услуги вышеупомянутых Google и Yandex для подключения своего домена к их сервисам. Но тогда вы не получите никакой интеграции с вашей базой пользователей и никакого контроля над доступной функциональностью.

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

Подробнее...
Всего голосов 114: ↑102 и ↓12+90
Комментарии66

Аутичный onPHP: обзор

Время на прочтение10 мин
Количество просмотров7K
Приветствую, хабралюди.

onPHP OnPHP — это фреймворк, как не трудно догадаться, написанный на PHP. Как и любой подобный инструмент он обладает своими преимуществами и недостатками и, как я считаю, первых у него больше.

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

Читать дальше →
Всего голосов 81: ↑58 и ↓23+35
Комментарии84

База GeoIP – страны и города

Время на прочтение1 мин
Количество просмотров73K
При разработке одного проекта встала задача – определить по IP-адресу посетителя его страну и город, на русском языке. Поиск готового решения оказался безуспешным – русскоязычные базы стран можно найти (например, wipmania.com), но баз городов нет. Помощь пришла из-за границы, в лице англоязычного maxmind.com. База была приведена к нормальному состоянию (MySQL) и частично переведена на русский язык с помощью нескольких справочников (~6,000 названий, с учетом городов-тезок ~15,500).   Результат этой работы доступен для свободного скачивания.
Читать дальше →
Всего голосов 120: ↑101 и ↓19+82
Комментарии134

Фанатам фреймворка Kohana — сделал клон репозитория (155+ модулей для v.3)

Время на прочтение1 мин
Количество просмотров3.2K
imageФанатам фреймворка Kohana — сделал клон репозитория (155+ модулей для v.3)

Если знаете еще модули для KO3 (пришлите в приват)

Текущие модули:
Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии18

Удачная модель ветвления для Git

Время на прочтение10 мин
Количество просмотров990K
Перевод статьи Vincent Driessen: A successful Git branching model

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



В качестве инструмента управления версиями всего исходного кода она использует Git.

Читать дальше →
Всего голосов 180: ↑171 и ↓9+162
Комментарии105

Web-сервер на Debian GNU/Linux для начинающих

Время на прочтение1 мин
Количество просмотров19K
Web-сервер на Debian GNU/Linux для начинающих» для начинающих
Руководство рассчитано на пользователей, которые собираются впервые использовать Debian GNU/Linux после работы с MS Windows.

Установка и использование web-сервера на Debian GNU/Linux, рассмотренное в данном руководстве, ориентированы на разработчиков веб-приложений и сайтов, использующие домашний компьютер в качестве платформы для разработки.

«Web-сервер на Debian GNU/Linux для начинающих» содержит в себе четыре главы:

* Часть 1: установка и настройка Debian GNU/Linux;
* Часть 2. Установка и настройка web-сервера;
* Часть 3. Установка и настройка Drupal;
* Часть 4. Установка и работа с Drush.

Подробное содержание
Всего голосов 93: ↑66 и ↓27+39
Комментарии73

“Одинокий разработчик желает познакомиться”. cofounder.ru: дэйтинг-сервис для стартаперов

Время на прочтение3 мин
Количество просмотров2.1K
Допустим вам не повезло, вы не учитесь в нормальном вузе, у вас нет знакомых инвесторов, а большинство ваших друзей слишком заняты игрой в веселую ферму. А у вас есть идея проекта, вы хороший разработчик и вы хотите найти партнера или даже собрать команду. Вы можете пойти на free-lance.ru, где вы найдете много отличных профессионалов, которые готовы решить любые ваши задачи, но… конечно за деньги. Мало кто из обычных фрилансеров согласится работать за долю в бизнесе, бесплатно, без каких-либо гарантий на успех. Среди общего списка придется долго искать или создавать объявление и ждать пока кто-то вас найдет сам.

Что же вы будете делать? Все знают слово нетворкинг: вы общаетесь на тематических форумах, пишете на хабрахабр, заводите блог, приходите на встречи, конференции, знакомитесь с новыми людьми, ваш круг общения расширяется и вместе с ним увеличивается возможность выбирать. Чем больше у вас связей с людьми из вашей области, тем лучше. Например, в Штатах, проводятся конференции для стартаперов, билет на который может стоить от $2000 и выше, хотя ценность контента не особенно велика. Что ценно там — это возможность с кем-нибудь познакомиться. Петя вас знакомит с Васей, Вася с Федей, а с Федей вы однажды создаете компанию. Ну или просто пьете пиво по пятницам — это как повезет.
Читать дальше →
Всего голосов 116: ↑114 и ↓2+112
Комментарии99

Как поймать «поток», и как сделать так, чтобы он не сорвался

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

Вступление


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

Читать дальше →
Всего голосов 223: ↑212 и ↓11+201
Комментарии130

F3: маленький PHP-фреймворк с огромными возможностями

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


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

Fat-Free чем-то похож на известный Ruby-фреймворк Sinatra. Автор Fat-Free помешан на минимализме и чистоте кода, что положительно отразилось на этом простом каркасе для разработки самых разнообразных приложений.

Fat-Free состоит из одного файла и весит всего 55KB. При этом фреймворк обладает таким функционалом: специфический и довольно удобный шаблонизатор, гибкое кеширование, автоматическая защита от спама, интегрированные средства для юнит тестов, профайлер кода.

Он настолько маленький и быстрый, что даже может использоваться для контроля траффика Web-сервера.

Это, также, единственный фреймворк, который защищает Ваше приложение от хотлинкинга и DoS атак.
Читать дальше →
Всего голосов 172: ↑152 и ↓20+132
Комментарии102

Установка для «чайников»: nginx + php-cgi + mysql + eaccelerator + memcache на Debian 5.0 «lenny»

Время на прочтение7 мин
Количество просмотров78K
Данная заметка является шпаргалкой для новичков в установке нормально работающего комплекса, описанного в заголовке. Все пункты установки протестированы несколько раз на разных vds, поэтому проблем с нехваткой чего-то быть не должно, как это обычно бывает, когда ставишь что-то по мануалам, надерганных из разных источников. Подробно описания настроек и «тюнинга» в заметке нет, т.к. это всё очень индивидуально и требует понимания что, как и зачем делается, а это невозможно охватить в одной даже очень большой шпоре.
Читать дальше →
Всего голосов 76: ↑56 и ↓20+36
Комментарии78

6 способов убить Ваши сервера — познаем масштабируемость трудным путем

Время на прочтение5 мин
Количество просмотров18K
Узнать, как отмасштабировать Ваше приложение, не имея при этом никакого опыта, — это очень нелегко. Сейчас есть много сайтов, посвященных этим вопросам, но, к сожалению, не существует решения, которое подходит для всех случаев. Вам по-прежнему необходимо самому находить решения, которые подойдут под Ваши требования. Так же, как и мне.

Несколько лет назад ко мне пришел мой босс и сказал: «У нас есть новый проект для тебя. Это перенос сайта, который уже имеет 1 миллион посетителей в месяц. Тебенеобходимо его перенести и убедиться, что посещаемость может вырасти в будущем без всяких проблем.» Я уже был опытным программистом, но не имел никакого опыта в области масштабируемости. И мне пришлось познавать масштабируемость трудным путем.
Читать дальше →
Всего голосов 158: ↑148 и ↓10+138
Комментарии73

Memcached — стратегия кеширования

Время на прочтение6 мин
Количество просмотров17K
Хочу поприветствовать хабросообщество. Из приятных впечатлении при регистрации на Хабре — так это атмосфера сказочности, которая бывает только в старых добрых сказках из советского Кинофильма.
Итак, слезы умиления прошли, приступаем. Ниже топик, который привел к инвайту на Хабр.

Memcached применяется для кеширования данных. Это делается для того, чтобы избежать лишних обращений к базе данных, т.е. в Memcached сохраняют результаты запросов. Это ускоряет работу сайта и уменьшают время выдачи страниц.
Кеш кроме преимуществ имеет свои недостатки. Одна из проблем кеша — это его актуальность. В режиме работы «только чтение» трудностей не возникает. Если же мы имеем дело с данными, которые изменяются, или изменяются часто, то эффективность кеширования резко падает.
Читать дальше →
Всего голосов 59: ↑38 и ↓21+17
Комментарии88

Кэширование и memcached

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

Этим постом хочу открыть небольшую серию постов по материалам доклада на HighLoad++-2008. Впоследствии весь текст будет опубликован в виде одной большой PDF-ки.



Введение


Для начала, о названии серии постов: посты будут и о кэшировании в Web’е (в высоконагруженных Web-проектах), и о применении memcached для кэширования, и о других применениях memcached в Web-проектах. То есть все три составляющие названия в различных комбинациях будут освещены в этой серии постов.
Читать дальше →
Всего голосов 76: ↑75 и ↓1+74
Комментарии72

Обзор CMS по категориям

Время на прочтение19 мин
Количество просмотров85K
В мире существуют тысячи CMS для самых разных целей, самого разного качества, самой разной перспективы, стоимости, распространённости и так далее. Серьёзно опробовать их все — нереально. Поэтому когда я только знакомился с миром движков для сайтов, выбирать приходилось наугад. Ниже я опишу свои впечатления от знакомства с теми или иными движками для тех или иных целей. К некоторым приложу краткое описание особенностей, впечатление о прочих состоит только из заглядывания в админку. Заметки эти составлялись и редактировались в течении долгого времени, но сейчас я решил, что лучше опубликовать их в нынешнем виде, чем ещё полгода-год по чуть-чуть редактировать не добавляя ничего принципиально нового.
Преимущество отдаётся бесплатным движкам. Платные будут рассматриваться только для сравнения или от безысходности, т.е. если нет бесплатных аналогов. Также ограничение на технологии: php. О движках на перле и питоне я не более чем слышал, на шарпе и джаве имел дело с самописными.
Итак, рассматриваются
Читать дальше →
Всего голосов 198: ↑164 и ↓34+130
Комментарии215

Установка и настройка Django на «боевом» сервере с CentOS 5

Время на прочтение6 мин
Количество просмотров12K
Я делаю на Django Энциклопедию языков программирования, о которой уже писал на Хабре. За время работы сайта выяснилось, что нужен свой выделенный сервер для большей производительности и стабильности. Пока что взял дешевый сервер с 1.8 ГГц процессором и 512 Мб памяти.

В этой статье я расскажу об установке и настройке на этом сервере Django с mod_python для Apache, с кэшированием memcached и lighttpd для статических файлов.
Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии14

Обновление «странички для счастливых обладателей IE6»

Время на прочтение1 мин
Количество просмотров7.1K
Публикуется по просьбе mdss, который доработал мою версию заглушки для IE6.
Все благодарности лично ему.

IE6 Notice
Читать дальше →
Всего голосов 158: ↑124 и ↓34+90
Комментарии253

Информация

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