Как стать автором
Обновить
23
0
Jameson @Jameson

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

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

Шлюз+шейпер для домашней сети на Ubuntu

Время на прочтение4 мин
Количество просмотров30K
Моя домашняя сеть разрослась до количества трех компьютеров. В связи с чем началась дележка: кто будет качать первым.
Иногда даже страничка в ФФ открывается по 2-3 минуты, так как на соседнем компе во всю качает торрент.
Советом системных администраторов (то есть мной) было принято решение создать шлюз c шейпером который будет динамически делить канал на всех.
Ну начнем
Читать дальше →
Всего голосов 82: ↑69 и ↓13+56
Комментарии50

35 свежих и полезных jQuery плагинов

Время на прочтение6 мин
Количество просмотров46K
Быстрый и мощный jQuery может помочь дизайнерам и разработчикам в создании прекрасных интерактивных сайтов, которые будут привлекательными и совместимыми с большинством из браузеров. Ваш сайт будет и интересным и развлекательным. Навигация, галереи и слайдшоу являются теми компонентами, которые могут блистать на вашем сайте.

Данная статья содержит 35 полезных и свежих jQuery плагинов сфокусированных на навигации, галереях, слайдшоу, календарях, табуляции и т.д., которые уменьшат время и требуемые усилия для увеличения количества посетителей вашего сайта.
Читаем дальше...
Всего голосов 101: ↑80 и ↓21+59
Комментарии26

Бэкапим без расходов

Время на прочтение9 мин
Количество просмотров4.5K
image
Бэкапы — это вечная проблема: то объемы данных сумасшедшие, то вообще забываешь про них. В своем предыдущем проекте dvice.ru (он пока закрыт, так что без ссылки) я допустил досадную ошибку в самом начале его запуска. Я написал небольшой крон, который в 12 часов ночи удалял всех неактивированных пользователей, зарегистрировавшихся больше 24 часов назад. Но я ошибся в запросе и потерял данные пользователей, которые зарегистрировались до первого запуска этого запроса. Слава Богу, у меня были все данные в сессиях, поэтому я восстановил всех тех, кто логинился и ставил галку на чекбоксе — запомнить меня. Обидно и глупо, но на ошибках учатся. Поэтому перед запуском своего крайнего проекта — inwhite.ru, я сделал систему бэкапов.

Бэкапы делались и копились, старые удалялись, и все было отлично. Пока внезапно я не понял, что страдаю полной фигней. Бэкапы-то я делаю, а вот забирать — не забираю. Объемы данных, лежащих на моем VPS, не такие большие, но по почте тоже особо не наотправляешься. Покупать еще один VPS и складывать туда все по FTP/SVN/CVS/SSH не особо хочется, хотя тоже вариант интересный.

До вчерашнего дня я был озадачен мыслью: а как все же забирать эти данные? И вот вечером меня осенило.
Читать дальше →
Всего голосов 101: ↑88 и ↓13+75
Комментарии41

Вычисляем плохих ботов

Время на прочтение1 мин
Количество просмотров2.9K
image
Это ничуть не руководство к действию, а только лишь некоторые мои умозаключения, которые не являются истиной в последней инстанции.
Итак, давайте рассмотрим ситуацию, когда по сайту лазят боты и занимаются там разными неприглядными делами: сканируют, спамят через формы, грабят контент и так далее. Но по сайту могут пройтись и хорошие роботы — с поисковых систем, которых обижать нельзя. Необходимо определить плохих ботов и заблокировать их.

Итак, ряд простых, но полезных советов
Всего голосов 78: ↑62 и ↓16+46
Комментарии52

Откуда действительно берутся посредственные сайты

Время на прочтение4 мин
Количество просмотров961
Я не то что не согласен с предыдущим оратором, я просто долгое время принимал участие в создании посредственных сайтов. Не в рунете конечно, но здесь у нас происходит такая же фигня.

Сперва стоит определиться, и далее не путать посредственные сайты с откровенно идиотскими сайтами. Первые вроде как ничего сами по себе, но особого восторга не вызывают, юзабилити где-то на среднем уровне, косячки вылезают и прочие неудобства. В общем, клиенту нравится, а гордиться таким сайтом никто не будет. Другое дело идиотские сайты — это большинство поделки фрилансеров-недоучек, у которых единственный плюс, что они стоят 2 тыщи рублей штука. Последние я не рассматриваю.

Итак, процесс создания посредственного сайта…

Читать дальше →
Всего голосов 109: ↑96 и ↓13+83
Комментарии138

Откуда берутся посредственные сайты?

Время на прочтение4 мин
Количество просмотров1.6K
image
Автор изображения: wiseacre.

Кто виноват?


Кем бы вы ни были: фрилансером, сотрудником веб-студии, заказчиком сайта или просто сторонним наблюдателем — наверняка вы задавались вопросом «Откуда в русском интернете столько плохих сайтов?». Кто виноват в том, что в рунете много сайтов с неудобной навигацией, непродуманной типографикой, бестолковыми текстами и неряшливыми картинками. Работники студий? Фрилансеры? Клиенты? Давайте копнем глубже и посмотрим на процесс создания сайтов в различных студиях.
Читать дальше →
Всего голосов 79: ↑57 и ↓22+35
Комментарии72

Мотивация удаленных сотрудников

Время на прочтение4 мин
Количество просмотров11K
В IT индустрии все чаще встречаются проекты с распределенными командами. Это удобно — спецификация, код, баги, мануалы легко перемещаются из одного конца планеты в другой за доли секунд. Это выгодно — аутсорсинг проектных процессов, будь то разработка, тестирование или саппорт, в Индии или Китае обойдется в 3–5 раз дешевле аналогичных сервисов в странах Европы или США.

Никого не удивишь проектом, в котором сейлз, маркетинг и бизнес анализ находятся в Англии, разработка в России, тестирование и саппорт — в Индии. Компания, в которой я работал, специализировалась именно на таких проектах. Наиболее слабыми местами в них, я бы назвал коммуникации внутри проекта и мотивацию его участников. Эта статья описывает эффективный подход к решению этих проблем в проектах с распределенной командой.

Читать дальше
Всего голосов 143: ↑134 и ↓9+125
Комментарии69

Load average

Время на прочтение2 мин
Количество просмотров95K
Наблюдая выводы таких команд, как top, htop, uptime, w и, возможно, других, пользователь наверняка обращал внимание на строку load average:

Linux program top

Читать дальше →
Всего голосов 166: ↑151 и ↓15+136
Комментарии58

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

Время на прочтение16 мин
Количество просмотров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. Минусы оптимизации

Кому что-нибудь из этого списка интересно, жмём сюда...
Всего голосов 375: ↑368 и ↓7+361
Комментарии105

Текст любой ценой: RTF

Время на прочтение14 мин
Количество просмотров86K
Что ж продолжим наши изыскания на предмет получения текста из различных форматов данных. Не так давно мы с вами научились вытаскивать текст из zipped-xml-based файлов (odt и docx), а также, в начале этой недели, из pdf. Сегодня мы продолжим с обещанным rtf.

Rich Text Format (он же rtf), вы могли бы подумать, достаточно забытый, хотя и не очень сложный формат представления текстовых данных. Что ж, относительно несложный для получения текста, но за свою историю: от своей первой версии до текущей 1.9.1 — он приобрёл под 300 страниц официально документации и огромное количество надстроек, которые в большей степени нам будут мешать при получении plain text'а. Попробуем их обойти…
Читать дальше →
Всего голосов 67: ↑60 и ↓7+53
Комментарии49

PHPUnit+Netbeans

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

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

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

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

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

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

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

Текст любой ценой: DOCX и ODT

Время на прочтение4 мин
Количество просмотров62K
Недавно возникла задача получения чистого текста из различных форматов документооборота — будь-то документы Microsoft Word или PDF. Задача была выполнена даже с чуть более широким списком возможных входных данных. Итак, этой статьёй я открываю список публикаций о чтении текста из следующих типов файлов: DOC, DOCX, RTF, ODT и PDF — с помощью PHP без использования сторонних утилит.

Читать дальше →
Всего голосов 113: ↑98 и ↓15+83
Комментарии60

Анализ рынка ноутбуков с помощью Python

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

Введение



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

Начнём



diy-03-425[1] Для анализа нам необходим набор данных, к сожалению я не смог обнаружить веб-сервисы у российских он-лайн магазинов ноутбуков, поэтому мне пришлось скачать прайс-лист одного из них (я не стану называть его) и вытащить из него цены и основные параметры (по-моему мнению таковыми являются: частота процессора, диагональ монитора, объем оперативной памяти, размер жесткого диска и объем памяти на видео-карточке). Далее я провёл некоторый анализ по следующим вопросам:
Читать дальше →
Всего голосов 87: ↑79 и ↓8+71
Комментарии26

Защищаемся от HTTP DDoS и прочих Хабраэффектов

Время на прочтение5 мин
Количество просмотров10K
Простой способ защиты от HTTP DDoS — включить syn-cookies и заблокировать подонков. Но что делать если атакует 5к-10к хостов да еще и с динамическими IP? Тут нам на помощь придет frontend-backend архитектура c промежуточным кэшированием! Почему с промежуточным кэшированием? А потому что в моем случае от шквала запросов от frontend'а backend умирал унося за собой систему.
Читать дальше →
Всего голосов 160: ↑152 и ↓8+144
Комментарии55

Profiling PHP Applications With xdebug

Время на прочтение8 мин
Количество просмотров41K
Добро пожаловать в третью статью о xdebug. Уже сейчас вы должны были попробовать xdebug, если нет, сделайте это сегодня ;-).
В первой статье рассказывалось о том, как установить и настроить xdebug, описывались некоторые простейшие возможности, такие как улучшение вывода функции var_dump() или вывод трассировки стека вызовов при получении сообщения об ошибке. Во второй части мы рассмотрели такую возможность xdebug как трассировку. Трассировка содержит все вызовы функций и методов в программе, время запуска, опционально размер памяти, передаваемые и возвращаемые параметры. Лог трассировки может помочь вам понять пути выполнения сложной программы. Вместо того чтобы вставлять отладочный код внутрь программы, вы включаете или выключаете трассировку в тем места где нужно, а потом используете утилиты подобные grep или собственно написанные приложения на PHP для анализа лог файла.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии17

Читаем руководства в цвете

Время на прочтение1 мин
Количество просмотров1.7K
Учитывая, что День системного администратора только раз в году, а так хочется побольше ярких дней, давайте внесем немного цветов в серые будни доблесных бойцов невидимого фронта! :)

Раскрашиваем будни системного администратора...
Всего голосов 76: ↑68 и ↓8+60
Комментарии32

Ускоряем запуск браузера FireFox

Время на прочтение2 мин
Количество просмотров36K
Ещё давно приметил, что мой любимый инструмент, запускается значительно шустрее после установки, чем после многомесячного, активного использования браузера. Заметил, но как распорядится этим знанием мыслей не было. И вот, только что наткнулся на полезную тему, где описано это узкое место, а также дан ещё один совет по ускорению запуска браузера.

И так узкое место при запуске это загрузка .sqlite, базы данных вашего профиля. При интенсивной работе с Фоксом, базы разрастаются, в них появляются «пустые места», ну и главный недостаток, файл базы данных становится сильно фрагментированными. Для решения подобной проблемы существует специальная команда «очистки», точнее операция пересоздаёт файл базы, но уже без пустых мест. Для этого нужно проделать следующее:
Читать дальше →
Всего голосов 219: ↑206 и ↓13+193
Комментарии215

Siege — утилита для нагрузочного тестирования веб-серверов

Время на прочтение7 мин
Количество просмотров81K
Надеюсь, что данный материал будет кому-нибудь полезен.

Siege – это утилита для нагрузочного тестирования веб-серверов. Она была создана для того чтоб дать разработчикам возможность проверить ресурсоёмкость своего кода в условиях, максимально приближенных к реальным. Так же Siege может имитировать обращения к сайту сразу нескольких пользователей. Это позволяет держать сервер как бы «под осадой» долгое время. Количество запросов, произведённых при «осаде», рассчитывается из общего количества пользователей и количества их обращений к серверу. Например 20 пользователей, обратившись по 50 раз, создают в общей сложности 1000 запросов. Результат, выводимый программой после тестирования, включает в себя время затраченное на проверку, общее количество переданной информации ( включая заголовки ), среднее время ответа сервера, его пропускную способность и число запросов на которые пришёл ответ с кодом 200. Эти данные формируются и выдаются при каждой проверке. Подробно они описываются ниже. Siege имеет 3 основных модели работы – режим регрессионного тестирования, режим имитации Интернета и режим грубой силы. Программа считывает порцию ссылок из конфигурационного файла и обращается к ним по очереди ( режим регрессионного тестирования ) или случайно ( имитация интернета ). Или же пользователь может указать один единственный адрес к которому будут производиться все обращения – режим грубой силы.

UPD: спасибо за плюсы, перенес в тематический блог.
Читать дальше →
Всего голосов 76: ↑74 и ↓2+72
Комментарии67

«Безопасные» шрифты

Время на прочтение1 мин
Количество просмотров38K
Задался недавно вопросом, какие шрифты можно без зазрения совести и страха развалить дизайн сайта использовать на последнем.

Нашел несколько полезных ссылок, спешу поделиться с теми, кто еще не успел найти подобное.
пять штук
Всего голосов 62: ↑50 и ↓12+38
Комментарии34

Безопасная загрузка изображений на сервер. Часть первая

Время на прочтение10 мин
Количество просмотров137K
В данной статье демонстрируются основные уязвимости веб-приложений по загрузке файлов на сервер и способы их избежать. В статье приведены самые азы, в врят-ли она будет интересна профессионалам. Но тем неменее — это должен знать каждый PHP-разработчик.

Различные веб-приложения позволяют пользователям загружать файлы. Форумы позволяют пользователям загружать «аватары». Фотогалереи позволяют загружать фотографии. Социальные сети предоставляют возможности по загрузке изображений, видео, и т.д. Блоги позволяют загружать опять же аватарки и/или изображения.

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

Проводимые тесты показали, что многие веб-приложения имеют множество проблем с безопасностью. Эти «дыры» предоставляют злоумышленникам обширные возможности совершать несанкционированные действия, начиная с просмотра любого файла на сервере и закачивания выполнением произвольного кода. Эта статья рассказывает об основных «дырах» безопасности и способах их избежать.
Читать дальше →
Всего голосов 77: ↑69 и ↓8+61
Комментарии57

Информация

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