Search
Write a publication
Pull to refresh
1
0
jj_killer @jj_killer

User

Send message

Использование Vim для редактирования простого текста

Reading time5 min
Views20K
Про Vim сказано и написано более чем достаточно. Но большинство материалов представляют собой либо самые первоначальные сведения, либо же советы матерых профессионалов. В результате для того, чтобы приспособить редактор для решения стоящих перед пользователем задач, приходится перелопатить кучу мануалов. Перед осознанием масштаба необходимой работы, нужен нешуточный стимул, чтобы решиться на такое. И вполне может возникнуть резонный вопрос: а зачем мне это? Помимо того, что интересно «пощупать» редактор, о котором столько разговора, должно быть что-то еще?

Конкретно для меня стимулом явилась возникшая сложность при работе с переводами. Проблема заключалась в следующем: несмотря на разрешение экрана в 1920х1200 сделать так, чтобы оба текста располагались перед глазами, было практически невозможно. Да и дергаться мышью туда-сюда, управляясь с полосами прокрутки, запоминая положения текстовых фрагментов, довольно таки неудобно. Консольный текстовый редактор, управление которым осуществляется клавиатурой, представлялся для меня логичным решением. Оставалось только разобраться в нем и из огромного массива информации выбрать только то, что нужно.

Забегая вперед, скажу, что информацию пришлось собирать фактически по крупицам. Основное направление в использовании Vim в качестве редактора «для программистов» привело к тому, что вопросам обработки «простого» текста уделяется мало внимания. В конце-концов, с поставленной задачей, как мне кажется, удалось справиться.
Читать дальше →

Собираем GIMP-2.7 из GIT своими руками

Reading time6 min
Views186
GIMP — это мощный редактор растровой графики с открытым кодом, основной конкурент Adobe Photoshop на платформах, где его нету. Да и там где есть, в принципе, тоже свою долю пользователей держит уверенно.



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

К тому же, библиотеки гимпа собираются через autogen, что позволит читателю в будущем не бояться исходников, в которых команда ./configure выдает Not Found.

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

ОСТОРОЖНО: ТРАФИК!

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

7 шагов для систематизации процесса дизайна и разработки

Reading time6 min
Views4.4K
Систематизация означает создание процессов или предопределенного набора мер, которые предназначены для ускорения выполнения трудоемких и повторяющихся задач.

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

Как сделать сайт более iPhone-совместимым за 5 шагов

Reading time2 min
Views55K
Тот факт, что iPhone предлагает наиболее развитый мобильный браузер среди мобильных платформ, пожалуй, ни у кого не вызовет сомнений. Однако не все знают, что довольно небольшими усилиями можно сайт сделать еще более дружественным к тем, кто смотрят его на iPhone или iPod Touch.

Ниже предлагаются простые 5 шагов, с которых можно начать, на примере сайта WHOIS Digger.

Шаг 1. Аналог favicon.ico

Когда пользователь создает ссылку на ваш сайт в виде иконки в SpringBoard, iPhone автоматически формирует картинку из скриншота страницы. В результате почти всегда получается неразборчивая каша, которая на гордое звание «иконки для iPhone» никак не тянет. Пропишите этот тег в заголовке страницы:

<link rel="apple-touch-icon" href="res/iphone_icon.png" />

и добавьте соответствующую картинку res/iphone_icon.png размером 57х57 пикселов. iPhone сам добавит скругленные углы и полукруглый блик, сделав вашу иконку похожей на остальные.

Вот так выглядит исходная картинка и иконка на рабочем столе iPhone:


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

Подводные камни при использовании кэширования в nginx

Reading time10 min
Views58K
В web-сервер и reverse-proxy nginx встроены очень мощные возможности по кэшированию HTTP-ответов. Однако в ряде случаев документации и примеров не хватает, в результате не все получается так легко и просто, как хотелось бы. Например, мои конфиги nginx-а местами написаны кровью. Этой статьей я попробую немного улучшить ситуацию.

В этой статье: а) подводные камни при полностраничном кэшировании; б) кэширование с ротацией; в) создание динамического «окна» в закэшированной странице.

Я буду предполагать, что вы используете связку nginx+fastcgi_php. Если вы применяете nginx+apache+mod_php, просто замените имена директив с fastcgi_cache* на proxy_cache*

Если выбирать, кэшировать ли страницу на стороне PHP или на стороне nginx, я выбираю nginx. Во-первых, это позволяет отдавать 5-10 тыс. запросов в секунду без каких-либо сложностей и без умных разговоров о «высокой нагрузке». Во-вторых, nginx самостоятельно следит за размером кэша и чистит его как при устаревании, так и при вытеснении нечасто используемых данных.

Кэширование всей страницы целиком


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

Шустрая гляделка для Nautilus'а

Reading time3 min
Views4.1K
В своих бесконечных поисках найти быструю гляделку графических файлов, наткнулся на замечательную программу Gloobus, которая наверняка порадует счастливых обладателей нетбуков с Линуксом на борту. Сразу оговорюсь, затачивается все под файловый менеджер Nautilus, но никто не мешает прикрутить это чудо к чему угодно.

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

Создание расширения FireFox для начинающих

Reading time8 min
Views49K
В данной статье представлена пошаговая инструкция по разработке простейшего расширения для FireFox.
Это частичный перевод оригинальной статьи.

Это не моя статья, а моего друга (его мыльце: templar8@gmail.com). Он очень хочет попасть на Хабр. У меня самого не хватает кармы для инвайта.
Текст статьи

Memcached. Как найти ключи по паттерну?

Reading time6 min
Views9.6K
Доброе утро|день|вечер|ночь, %username%!

При использовании Memcached, иногда могут возникнуть вопросы: «А как посмотреть все ключи Memcached?» или «Как найти все ключи по маске „*“ или „sql_*“ ?»
Вот тогда открываются мануалы и начинается поиск такой функции, но, к сожалению, такой не оказывается :-(
Потом начинается Гугление… И там особо ничего нет :-(
А потом начинается поиск незадокументированных возможностей :-) и тут «Ура! Нашел!»

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

Кеширование FastCGI-запросов в nginx

Reading time2 min
Views28K
Доброе утро, Хабр!

В данной статье я приведу пример конфигурации nginx для кеширования FastCGI-запросов. При желании его можно использовать его для защиты от хабраэффекта, частично от DDoS'а и, как вариант, для облегчения жизни сервера с высокой нагрузкой.
Читать дальше →

Использование bash completion в командной строке, собственных скриптах и приложениях. Часть 1

Reading time2 min
Views58K
Часть 2

Системный администратор — человек ленивый. Обычно он старается сделать максимум работы, приложив минимум усилий, а для этого зачастую требуется автоматизировать многие рутинные процедуры. Например — набор полных имен хостов при создании ssh-соединения, или же длинных аргументов некоторых команд :)

Сегодня я попробую рассказать про использование такого функционала шелла как bash completion.
вам интересно?

Shrew бесплатная альтернатива Cisco VPN Client

Reading time2 min
Views140K


Столкнулся с проблемой установки Cisco VPN Client на Windows 7 да еще к тому же x64,
если на Windows 7 x86 с шаманским бубном можно запустить, то на x64 все попытки будут тщетны(Cisco почти принципиально не хочет делать x64 Vpn Client).

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

Видео урок по пайке и демонтажу. Продолжение

Reading time1 min
Views35K
Начало тут

Теперь покажу как можно орудовать паяльным феном:

В роли фена у меня Актаком АТР-4501:
image
Это просто фен, является полной копией фена QUICK (о чем и не скрывает). Стоит дороговато — раза в два дороже супер популярных в народе Lukey 852D, но качество зато на уровне и не скачет от изделия к изделию.

В прошлом топике меня спросили как запаивать память SSOP корпусах (например как в роутерах) — спрашивали, отвечаем. Это, правда, не память, это конвертер USB-UART, но корпус у него с аналогичным шагом, разве что ножек поменьше.
Читать дальше →

Организация HTTP-туннеля на примере утилит для работы с MySQL

Reading time2 min
Views24K
Если вы не знаете, что такое HTTP-туннель, для управления MySQL предпочитаете десктопное приложение вместо веб-интерфейса и выполняется одно из следующих условий:

  • у вас есть возможность выхода во внешний мир только через HTTP-прокси
  • в вашей сети установлено ограничение на возможность работы только с 80 портом
  • хостинг-провайдером разрешено работать с базой только через локалхост


то эта небольшая заметка для вас.
Читать дальше →

Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое

Reading time16 min
Views40K
Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(

Введение


С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный 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. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...

Typedia, энциклопедия шрифтов

Reading time1 min
Views1.9K
Недавняя блогозапись, являющая собою азбуку веборазработчика, стала для меня поводом перечитать блог «I Love Typography». И что же? — тотчас, во блогозаписи «Encyclopædic type» от 29 августа, мне повстречалася новость о важном недавнем событии: начинается создание сетевой энциклопедии Typedia, которая будет содержать сведения о шрифтах и словолитнях, коллективно накапливаемые сообществом.

[Typedia]

Использование snort для блокирования атак скрипт-киддисов

Reading time3 min
Views14K
Данная статья не претендует на полноту описания системы snort, а всего лишь предлагает пользователю готовое решение для защиты своего сервера от маленьких шаловливых ручек.
Я лично ставил всё это дело на OpenBSD, но от смены системы суть не меняется.

Лирическое отступление

snort (http://snort.org) — система обнаружения атак (NIDS) для сетей ipv4 на базе libpcap. Сам по себе — обычный tcpdump. Но к нему можно создавать правила, по которым он будет блокировать вредный траффик и создавать события безопасности (alert).
У меня стоит связка snort-сенсоров, связанных между собой через коллектор на базе дописанного prelude (http://prelude-ids.org). Все правила написаны собственноручно.
Результаты (по статистике работы за 4 месяца):
Ложных срабатываний — около 2% (средний траффик — 120 мбит/сек).
Блокировок за день — около 15.
Количество пропущенных атак — 0 (после внедрения системы безопасности ни один сервер не был взломан. Под защитой стоят хостинг и VDS).
В дополнение дописаны модули автоабьюса по базе данных RIPE и блокировки траффика на корневой циске.

Итак, имеем:
Некий сервер с установленным на нём snort-inline (в случае *BSD устанавливается из портов, в случае Linux'а — из исходников с указанием опции --enable-inline).
Для начала настраиваем сам snort (для вашей ОС пути могут отличаться — смотрите дефолтный конфиг). /etc/snort/snort.conf
конфигурация

Азбука WEB-разработчика

Reading time4 min
Views13K
Небольшой список, самых, на мой взгляд, полезных сайтов для любого WEB-разработчика, интересующегося сферой веб дизайна, верстки и программирования. Думаю каждый среди этого списка найдет для себя сайты, которые надолго войдут в его ленту RSS.

AA List Apart




A List Apart содержит лучшие советы и мнения от лидирующих умов индустрии.
Читать дальше →

AvisoSMS. Мы открылись!

Reading time2 min
Views10K
Здравствуйте! Представляем новый удобный сервис для рассылки SMS, которую можно интегрировать в Ваш проект. Прошел месяц с тех пор, как мы пригласили хабравчан протестировать наш сервис. За это время многое поменялось в лучшую сторону. Теперь мы готовы предложить самое функциональное API для интеграции в Ваши проекты. Помимо прочего, расширили спектр услуг и понизили цены. Обо всем этом, а также новых протоколах отправки сообщений, партнерской программе и SMS-биллинге читайте дальше.

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

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity