Читать дальше →
User
Защита от XSS в Rails 3
4 min
3.5KTranslation
Скорее всего вы уже знаете о том, что в Rails 3 по умолчанию добавлена защита от XSS атак. Это значит, что отныне вам никогда не придется вручную фильтровать ввод пользователя используя хелпер
Тем не менее, всё не так просто, как кажется на первый взгяд. Рассмотрим следующий код:
h
, потому что рельсы всегда будут делать это за вас.Тем не менее, всё не так просто, как кажется на первый взгяд. Рассмотрим следующий код:
Привет <strong>друзья</strong>!
<%= tag(:p, some_text) %>
<%= some_text %>
+21
Печать книг по программированию в домашних условиях
1 min
28KЧестно говоря, никогда не любил читать техническую литературу с экрана. Художественную — сколько угодно — читал и с компа и с телефона и, как вот уже лет 5-6, с КПК (хотя, бесспорно, всегда отдавал предпочтение книгам бумажным). А вот техническую — хоть ты тресни — только с бумаги воспринимаю.
Печатать на A4 — может и клево, но непонятно как потом скреплять, степлер не берет, дырокол тоже ругается, прочих средств под рукой обычно нету.
Печатать на A4 — может и клево, но непонятно как потом скреплять, степлер не берет, дырокол тоже ругается, прочих средств под рукой обычно нету.
+144
WebSockets — полноценный асинхронный веб
7 min
347K
Что же такого интересного сулит нам технология? На мой взгляд, WebSocket — это самое кардинальное расширение протокола HTTP с его появления. Это не финтифлюшки, это сдвиг парадигмы HTTP. Изначально синхронный протокол, построенный по модели «запрос — ответ», становится полностью асинхронным и симметричным. Теперь уже нет клиента и сервера с фиксированными ролями, а есть два равноправных участника обмена данными. Каждый работает сам по себе, и когда надо отправляет данные другому. Отправил — и пошел дальше, ничего ждать не надо. Вторая сторона ответит, когда захочет — может не сразу, а может и вообще не ответит. Протокол дает полную свободу в обмене данными, вам решать как это использовать.
Я считаю, что веб сокеты придутся ко двору, если вы разрабатываете:
— веб-приложения с интенсивным обменом данными, требовательные к скорости обмена и каналу;
— приложения, следующие стандартам;
— «долгоиграющие» веб-приложения;
— комплексные приложения со множеством различных асинхронных блоков на странице;
— кросс-доменные приложения.
+198
Бинарное обновление FreeBSD 6.2 до 8.0
8 min
14KГода два назад я поднимал знакокому сервер для трекера местной локалки. Вопрос выбора ОС не стоял в принципе, естественно FreeBSD, а версия была взята актуальная на тот момент — 6.2 i386. Но вот состоялся релиз FreeBSD 8.0, и я решил попробовать обновиться до 8-й версии на этом сервере, все равно трекер уже полмесяца не работал из-за битой базы при очередном внезапном отключении питания, а за сервером никто не следил, поэтому пару часов даунтайма никому не помешают.
+67
Ext.Календарь
1 min
2.8K
Протестировано в IE, FF, Chrome.
Товарисчь anotherpit подсказывает, что в Opera все тоже работает
+26
Нагрузочное тестирование «по-быстренькому»
3 min
212KМожет кому будет интересно как «по-быстрому» провести нагрузочное тестирование своего веб-приложения.
Подробности под катом
Подробности под катом
+78
Сделаем шрифты в KDE 4 красивыми
2 min
29KПо умолчанию, в моём дистрибутиве (OpenSuse 11.2), шрифты в KDE 4 выглядели совсем плохо. Честно, мне даже немного обидно стало, когда подошёл один маковод и сказал: «Линукс, линукс, даже шрифты нормальные сделать не могут».
Однако ситуацию можно очень легко исправить. В итоге всё будет выглядеть вот так.
Однако ситуацию можно очень легко исправить. В итоге всё будет выглядеть вот так.
+20
Gource — визуализируем историю работы над проектом
1 min
23KСпешу рассказать хабрасообществу о, относительно новом, дьявольски завораживающем проекте Gource которое еще не упоминалось. Это приложение позволяет визуализировать историю изменений в системе контроля версии. Отрисовывает невероятно красиво при помощи OpenGL.
+57
Про Git на пальцах (для переходящих с SVN)
8 min
280KГод назад мы с командой решили перейти с SVN на Git. Зачем это было надо — писать не буду, т.к. на эту тему уже и так много написано. А хочу я описать типичные алгоритмы работы, понятные человеку, который долгое время пользовался SVN. Ниже — памятка, написанная для команды год назад, чтобы легче было мигрировать. Надеюсь, кому-нибудь пригодится.
+170
Divine Project – автоматическое создание сайта из PSD шаблона
1 min
12K
Это мой первый пост, а потому попрошу сильно не ругать =)
Я думаю, кто-то из вас рано или поздно сталкивался с задачей сделать для своего сайта уникальный дизайн, но, увы, это не так просто осуществить, как хотелось бы. Но с помощью DIVINE всё становиться гараздо проще. Дизайнерам теперь не нужно владеть HTML, CSS и понятием о том, как устроены темы для WordPress
+31
Brain Fuck Scheduler — ставим за 5 минут
3 min
11KО новом планировщике задач для Linux на Хабре уже написали вот тут. Весьма эпатажный «трейлер» с xkcd к новому планировщику, и не менее веселый FAQ, пробудили интерес. Расспросил знакомых, кто ставил, чтобы поделились впечатлениями — никто не ставил, ибо «влом ядро новое ставить» или «я подожду, пока оно в мейнстриме появится». Поставил и попробовал сам, и для тех кто хочет сделать то же самое — краткое руководство для Ubuntu 9.04, с описанием потенциальных граблей.
В качестве тизера, скажу лишь, что полноэкранное видео на youtube действительно не тормозит и система стала отзывчивее и шустрее.
Итак, дабы не быть голословным, приступим. Предполагается, что у вас установлена Ubuntu 9.04 (Jaunty).
В качестве тизера, скажу лишь, что полноэкранное видео на youtube действительно не тормозит и система стала отзывчивее и шустрее.
Итак, дабы не быть голословным, приступим. Предполагается, что у вас установлена Ubuntu 9.04 (Jaunty).
+52
Что такое Pimpl по версии Qt, и с чем его едят!
12 min
40KВступление.
Часто в документации от Qt встречается термин Pimpl. Кроме того, те кто хоть немного копался в исходном коде Qt часто видел такие макросы как: Q_DECLARE_PRIVATE, Q_D. А также встречал так называемые приватные заголовочные файлы, название которых заканчивается на "_p.h".
В этой статье я попробую приоткрыть ширму за всей это структурой.
Pimpl, что это?
Pimpl — Pointer to private implementation. Это одно из названий паттерна программирования. Еще его называют чеширским котом — «Cheshire Cat» (это название мне больше нравится). В чем суть этого паттерна? Основная идея этого паттерна — это вынести все приватные члены класса и, в не которых случаях, функционала в приватный класс.
Отсюда название «чеширский кот» — видно только улыбку, а все остальное остается невидимым, но оно несомненно есть :-) Кто не помнит этого замечательного кота, может обратится к первоисточнику, к книге Льюиса Кэрролла «Алиса в стране чудес». Очень интересная книга, особенно если читать в оригинале.
Что это дает?
+44
+111
А давайте подружимся с SSH
7 min
3.3KМногие мои знакомые так или иначе используют протокол SSH (заходя на свои роутеры, веб хостинги и непосредственно на собственные компьютеры дома и в офисе), при этом не все об этом знают.

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

Я расскажу о нескольких стандартных возможностях, не открою ничего нового и сакраментального администраторам, но простые пользователи существенно упростят себе работу и, возможно, даже начнут активнее пользоваться этим великолепным протоколом.
В этой заметке вы узнаете:
- как прописать псевдонимы для соединений
- как настроить авторизацию без пароля
- как передавать файлы по SSH
- как запускать графические приложения по SSH
- а так же получите общие советы по опциям SSHD
+169
Подборка плагинов к jQuery
2 min
5.8KВдогонку к этому посту, решил выложить еще одну неплохую и достаточно свежую подборку.

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

jReject — это простой способ сообщить пользователю, что его браузер устарел, предлагая скачать последние версии популярных браузеров. Внешний вид легко настраивается через CSS, а всплывающее окошко может отображаться как после загрузки страницы, так и по вызову определенных событий на ней.
+81
Пункт «Properties» будет убран из контекстного меню браузера Firefox (но можно использовать расширение)
1 min
1.5KМногие пользователи Файерфокса давно знают о том, что из контекстного меню (то есть из того, которое появляется, если правой клавишею мыши жмякнуть по странице) можно выбрать пункт «Properties» — и тем вызвать список свойств элемента страницы, жмякнутого мышою.
Например, еслижмякнутый элемент — это картинка-гиперссылка, то можно вызвать примерно вот какое окошко:
![[окошко свойств картинки-гиперссылки]](https://habrastorage.org/getpro/habr/post_images/c68/ac1/802/c68ac180236eed277c0c05201fa3bf3f.png)
Однако же некоторым другим пользователям Файерфокса и это окно, и этот пункт в контекстном меню не были ни за чем нужны.
Так что, некоторое время подумавши, программисты Фонда Мозиллы вообще убрали этот пункт напрочь(и из Firefox 3.6, и из Firefox 3.7).
Для тех же пользователей, которым будет всерьёз недоставать этого пункта (а я уверен, что среди веборазработчиков на Хабрахабре таких много!..), предназначается новоерасширение — «Element Properties», которое возвращает в Firefox желаемый подпункт контекстного меню и соответствующее ему диалоговое окошко.
Будьте готовы.
Например, если
![[окошко свойств картинки-гиперссылки]](https://habrastorage.org/getpro/habr/post_images/c68/ac1/802/c68ac180236eed277c0c05201fa3bf3f.png)
Однако же некоторым другим пользователям Файерфокса и это окно, и этот пункт в контекстном меню не были ни за чем нужны.
Так что, некоторое время подумавши, программисты Фонда Мозиллы вообще убрали этот пункт напрочь
Для тех же пользователей, которым будет всерьёз недоставать этого пункта (а я уверен, что среди веборазработчиков на Хабрахабре таких много!..), предназначается новое
Будьте готовы.
+48
+9
20 Fantastic Latest jQuery Plugins
3 min
7.1KTranslation
Этот пост содержит коллекцию великолепных предпоследних плагинов и обучающих пособий, которые смогут добавить искру креативности в ваш дизайн

Перевод этой статьи

Перевод этой статьи
+37
Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое
16 min
40K
Введение
С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный Pentium 4 c 512Мб памяти, обслуживающий одновременно до тысячи человек на форуме и до 150,000 пиров на трекере уже давно покоится на какой-нить немецкой, свалке, а клуб сменил уже не один сервер. Всё сказанное в ней всё ещё остаётся актуальным, однако есть вещи которые стоит добавить.
Статья большая, так что будет поделена на логические блоки:
0. Зачем вообще что-то оптимизировать? 1. Оптимизация ОС (FreeBSD) 1.1 Переход на 7.х 1.2 Переход на 7.2 1.3 Переход на amd64 1.4 Разгрузка сетевой подсистемы 1.5 FreeBSD и большое кол-во файлов 1.6 Softupdates, gjournal и mount options 2. Оптимизация фронтенда (nginx) 2.1 Accept Filters 2.2 Кеширование 2.3 AIO 3. Оптимизация бэкенда 3.1 APC 3.1.1 APC locking 3.1.2 APC hints 3.1.3 APC fragmentation 3.2 PHP 5.3 4. Оптимизация базы данных 4.1 MySQL 4.1.1 Переход на 5.1 4.1.2 Переход на InnoDB 4.1.3 Встроеный кеш MySQL - Query Cache 4.1.4 Индексы 4.2 PostgreSQL 4.2.1 Индексы 4.2.2 pgBouncer и другие. 4.2.3 pgFouine 4.3 Разгрузка базы данных 4.3.1 SphinxQL 4.3.2 Не-RDBMS хранилище 4.4 Кодировки 4.5 Асинхронность Приложение. Мелочи. 1. SSHGuard или альтернатива. 2. xtrabackup 3. Перенос почты на другой хост 4. Интеграция со сторонним ПО 5. Мониторинг 6. Минусы оптимизации
+361
Information
- Rating
- Does not participate
- Location
- Россия
- Date of birth
- Registered
- Activity