Как стать автором
Обновить
3
0.2
eugene pazhitnov @pazhitnov

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

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

Топ-10 советов о том, как увеличить скорость загрузки страницы

Время на прочтение8 мин
Количество просмотров233K
Я думаю ни для кого не секрет, что скорость загрузки страницы влияет на множество факторов. Если кто-то не в курсе, то вкратце скажу следующее, что скорость загрузки влияет не только на то, дождется ли посетитель, когда загрузится Ваш сайт, но и на SEO оптимизацию. Ведь на сегодняшний день уже многие поисковые системы при ранжировании сайтов, начали учитывать скорость загрузки страницы. Поэтому чем быстрее будет грузиться Ваш сайт, тем больше посетителей Вы можете получить с поисковых систем, а, следовательно, и больше денег на этом заработать.

Поэтому в этой статья я решил собрать топ-10 советов о том, как же можно увеличить скорость загрузки веб-странички и сайта в целом. Статья не претендует на гениальность и рассчитана на новичков.
Читать дальше →
Всего голосов 141: ↑80 и ↓61+19
Комментарии61

dklab_multiplexor: постоянное Javascript-соединение с сервером в условиях сотен тысяч онлайн-клиентов

Время на прочтение4 мин
Количество просмотров6.7K
Dklab_multiplexor — это инструмент, который позволяет держать одновременно сотни тысяч долгоживущих открытых HTTP-соединений с сервером. Например, если на вашем сайте находится одновременно несколько сот тысяч посетителей, каждый из них может быть связан с сервером постоянным соединением, установленным из JavaScript. Это например, полезно при организации онлайн-чатов или мгновенных уведомлений.

Dklab_multiplexor не претендует на полную универсальность или исключительность (кстати, если знаете аналоги, близкие по простоте к multiplexor-у, пишите в комментариях). Это лишь простейший инструмент, который наконец-то дошли руки опубликовать.

Зачем это нужно?


Предположим, посетители вашего сайта могут посылать друг другу сообщения. Если получатель в момент отправки находится на сайте (просматривает какую-либо страницу), ему немедленно выдается уведомление (всплывающее окошко на JavaScript).

Данную задачу можно решить двумя способами.
  1. Неправильный способ. Раз в 10 секунд делать из JavaScript запрос на сервер для проверки, не появилось ли новых сообщений. Этот метод не работает, если на сайте одновременно находится очень большое количество пользователей, т.к. нагрузка на сервер растет слишком быстро. Кроме того, потребление трафика пользователем также оказывается крайне высоким.
  2. Правильный способ. Устанавливать постоянное и длительное соединение с сервером, ожидая поступления данных через него. Если сообщений нет, соединение просто держится открытым на протяжение нескольких минут. Если соединение по каким-либо причинам закрылось, оно вновь открывается. В итоге и трафика потребляется мало, и нагрузка на сервер оказывается невелика. Так работает GMail, Мой Круг и т. д., и именно на этом принципе построен dklab_multiplexor.
+-------------------+                    ------------------ 
| Сервер обработки  |                   |                  |   <===WAIT=== Клиент A
| и базы данных     |  ======IN=======> |   Мультиплексор  |   <===WAIT=== Клиент B
| (e.g Apache + PHP |                   |                  |   <===WAIT=== Клиент C
+-------------------+                    ------------------ 
(указаны направления установления TCP-соединений).
Читать дальше →
Всего голосов 103: ↑97 и ↓6+91
Комментарии108

Простой чат с помощью Channel API на Google App Engine для Python

Время на прочтение10 мин
Количество просмотров5.7K
Представляю вашему вниманию вольный перевод статьи под названием "A Simple Chat using the Channel API". Так же я решил немного добавить своего кода.

Сегодня мы представляем вам новую статью для Google App Engine посвященную Сhannel API, которое появилось в декабре 2010 года в релизе 1.4. С этого момента стала возможной отправка сообщений напрямую с сервера клиенту и обратно без использования polling.
Поэтому стало достаточно просто реализовать чат на Google App Engine. Процесс реализации описан под катом.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии13

Hastebin: самый простой способ сохранения заметок и фрагментов кода

Время на прочтение1 мин
Количество просмотров15K
Если вам не нравится стандартный pastebin или навороченный ideone.com, то опубликовать фрагмент кода можно и альтернативным способом. Знакомьтесь: Hastebin, веб-приложение с базовым функционалом pastebin, но в хакерском стиле. Просто вставьте текст и нажмите «Сохранить». Необязательно даже запускать браузер, потому что из Linux или OS X можно отправить текст на сервер командой из консоли (URL скопируется в буфер обмена).

Как говорится, сделано гиками для гиков: тут и минималистский интерфейс, похожий на терминал, и поддержка горячих клавиш:
Ctrl+S — сохранить
Ctrl+N — новый текст
Ctrl+D — сделать дубликат и редактировать
Ctrl+Shift+R — сохранить в plain text

Разумеется, есть подсветка синтаксиса, нумерация строк и всё остальное, что полагается подобному веб-приложению.
Читать дальше →
Всего голосов 40: ↑35 и ↓5+30
Комментарии29

HTML KickStart — еще один способ быстро создать интерфейс своего веб-приложения

Время на прочтение1 мин
Количество просмотров27K
Не один раз в комментариях замечал что народ негодует по поводу того, что веб-разработчики стали злоупотреблять использованием Bootstrap от Twitter. Признаюсь, я и сам успел закончить несколько небольших веб-приложений с использованием этого набора скриптов и стилей. Я не против использования Bootstrap от Twitter, я против злоупотребления этим когда есть столько хороших альтернатив. Я почти каждый день натыкаюсь на интерфейсы, построенные на Twitter Bootstrap, и это начинает напрягать. Последней каплей для поиска альтернативы стало изменение интерфейса биллинг панели моего хостера на шаблон Bootstrap. В этой записи я хотел бы немного рассказать про одну из альтернатив — HTML KickStart.
Читать дальше →
Всего голосов 147: ↑140 и ↓7+133
Комментарии45

Грамотная настройка сервера отправки почты для скриптов PHP, настройка функции mail()

Время на прочтение8 мин
Количество просмотров274K
В этом топике вы узнаете, как грамотно настроить, сервер исходящей почты и в частности функцию mail() в PHP. Сам являюсь жутким педантом. Люблю, что бы везде было все на своих местах, не терплю халтуры. Увидев один раз полную чушь в заголовках письма со своего сервера я разобрался с этим кардинально и безоговорочно. Под грамотной настройкой я подразумеваю такую, которая удовлетворяет потребности спам фильтров крупных почтовых систем, и просто выглядело красиво и осмысленно.

Как известно протокол SMTP не подразумевает никаких средств защиты от спама и аутентификации пользователя, поэтому крупными и не очень компаниями были придуманы «фиксы» безопасности протокола.
Если вы устанавливаете выделенный сервер с доменом размещенным на нем, очень рекомендуется выполнить данные настройки, что бы все было как надо.

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

Название заголовка выбрал именно такое, так как вначале своего пути я искал что-то вроде этого. Настраивать будем postfix, php, dns (ptr, spf), и другое.

Эта статья будет интересная людям, настраивающим выделеные сервера, но не менее интересна для обычных программистов.
К слову данную инструкцию я использую для своих проектов. Системы автоматизированного получения приглашений и получения виз в страны Шенгена: https://goingrus.com/ru, весь софт крутится на виртуальной машине.

Подробности под катом
Читать дальше →
Всего голосов 97: ↑71 и ↓26+45
Комментарии73

Упаковщик для dsniff.db

Время на прочтение1 мин
Количество просмотров1.5K
Доброе время суток.

Поставив для экспериментов dsniff, через пару суток обнаружил, что он насобирал невероятное количество мусора от всяких разных банерных сетей и лог работы стало невозможно читать.
Поискав в интернете скрипты редактирования лога решил написать свой.
Читать дальше →
Всего голосов 12: ↑6 и ↓60
Комментарии4

Топ-5 самых впечатляющих книг, которые должен прочесть каждый разработчик ПО

Время на прочтение3 мин
Количество просмотров380K
Не так давно промелькнула ссылка на достаточно свежее (осень 2011) англоязычное голосование со скромным названием "самая впечатляющая книга, которую должен прочесть каждый разработчик программного обеспечения" и описанием:

Если бы вы могли вернуться в прошлое, к самому началу своей карьеры разработчика и сказать самому себе: «прочитай именно эту книгу», в самой начале своей карьеры разработчика, какую бы книгу вы рекомендовали?

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

Однако в данном небольшом посте я возьму на себя смелость перечислить ТОП-5 тех самых книг, победивших в голосовании, переведенных на русский язык. И дать небольшие комментарии, ведь книги действительно этого достойны. Да, лично я бы поменял некоторые места, однако положимся на «мнение зала» ресурса Stack Overflow.
Читать дальше →
Всего голосов 236: ↑219 и ↓17+202
Комментарии182

Простая минималистская реализация сложных JavaScript приложений

Время на прочтение12 мин
Количество просмотров8.7K
Я хочу описать простой минималистский подход к разработке сложных JavaScript приложений. Из внешних библиотек будут использоваться только jQuery и мой js-шаблонизатор, причём из jQuery используются только $.ready(), $.ajax() и $.proxy() — т.е. суть не в библиотеках (их тривиально заменить на предпочитаемые вами), а в самом подходе.

В основе подхода лежат две идеи:
  1. JavaScript виджеты — небольшие модули, каждый из которых «владеет» определённой частью веб-странички (т.е. всё управление этой частью странички происходит исключительно через методы этого модуля, а не через прямую модификацию DOM — инкапсуляция). Виджет отвечает исключительно за функциональность, но не за внешний вид; поэтому прямая модификация части DOM, которым «владеет» виджет, снаружи виджета допускается — но только для чисто дизайнерских задач (для архитектуры и общей сложности приложения нет принципиальной разницы между коррекцией внешнего вида через CSS или jQuery).
  2. Глобальный диспетчер событий. Взаимодействие между виджетами осуществляется путём посылки сообщений глобальному диспетчеру (слабая связанность, паттерн Mediator/Посредник), а уже он принимает решение что с этим сообщением делать — создать/удалить виджеты, дёрнуть методы других виджетов, выполнить дизайнерский код, etc. В отличие от динамического подхода к обработке событий (когда обработчики конкретного события добавляются/удаляются в процессе работы) статический диспетчер сильно упрощает понимание и отладку кода. Безусловно, есть задачи, для которых нужны именно динамические обработчики событий, но в большинстве случаев это избыточное усложнение, поэтому всё, что можно, делается статическими обработчиками.

Читать дальше →
Всего голосов 63: ↑58 и ↓5+53
Комментарии42

Фото и видеофайлы в домашней коллекции — обработка и хранение

Время на прочтение5 мин
Количество просмотров3.7K
Предисловие

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

Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии13

Makefile — умные шелл-скрипты для Джанго

Время на прочтение4 мин
Количество просмотров8.6K
Make — одна из базовых утилит Юникса, есть на каждой юниксовой машине, и, к сожалению, неизвестная многим веб-разработчикам. В этой стате я покажу, как она может упростить работу, а сначала — постановка проблемы.

Как не держать всю эту схему в голове?
Всего голосов 42: ↑39 и ↓3+36
Комментарии27

Оптимизация Ubuntu (и прочих Linux-ов) под SSD

Время на прочтение4 мин
Количество просмотров205K
Доброго времени суток всем читающим. В данной мини-статье мне хотелось бы собрать и рассмотреть основные моменты оптимизации работы (и, конечно, продления жизненного цикла ) твердотельных накопителей. Практически всю информацию можно легко найти в сети, но тут я попытаюсь упомянуть пару подводных камней.
Читать дальше →
Всего голосов 128: ↑118 и ↓10+108
Комментарии109

Asterisk + UniMRCP + VoiceNavigator. Синтез и распознавание речи в Asterisk. Часть 4

Время на прочтение7 мин
Количество просмотров7.9K
VoiceNavigator Asterisk UniMRCP

Часть 1
Часть 2
Часть 3

В четвертой части, как и было обещано, рассмотрим ограничения и недостатки Asterisk как голосовой платформы и особенности его взаимодействия с VoiceNavigator.
Голосовая платформа – это программно-аппаратный комплекс с функциями синтеза и распознавания речи, позволяющий создавать решения, направленные на оптимизацию работы контакт-центра, усовершенствование работы с клиентами и построение систем голосового самообслуживания.

Asterisk голосовой платформой в чистом виде не является, т.к. работа с серверами синтеза и распознавания не является его основной задачей и реализуется посредством UniMRCP. Поэтому часть недостатков и ограничений связана именно с реализацией работы в UniMRCP.

Среди больших и известных голосовых платформ, использующихся в колл-центрах для построения СГС, стоит отметить Avaya Voice Portal, Genesys Voice Platform, Siemens OpenScape CCVP, Cisco Unified CCX, Voxeo, Voxpilot.
Информации в Рунете очень не много, как и специалистов по данным продуктам с соответствующим уровнем компетенции. Используются в больших колл-центрах, стоимость соответствующая, и доступна она только для больших компаний.
Если будет интерес к какой-то из платформ, готов написать о них отдельно.

Два основных недостатка, существующие в Asterisk+UniMRCP — это отсутствие поддержки VoiceXML и неработающий barge-in для синтеза речи.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии3

Учимся писать userscript'ы

Время на прочтение7 мин
Количество просмотров291K
Доброго времени суток всем желающим приобщиться к миру пользовательских скриптов (они же userscript, userJS, юзерскрипты).

В этой статье я хочу поведать о том, что такое юзерскрипты, c чем их едят и, главное, как их готовят!

Внимание: предполагается минимальное знание javascript.
На практике доказано: юзерскрипты может писать человек, не знакомый с программированием, но обладающий усидчивостью и желанием изучить javascript!
О том, что такое javascript и как с ним обращаться, можно узнать на javascript.ru.
Поехали!
Всего голосов 144: ↑134 и ↓10+124
Комментарии44

Настройка сети в OpenWRT

Время на прочтение4 мин
Количество просмотров264K
В этой статье я расскажу о том как настроить сеть в OpenWRT. В частности расскажу о том как сделать несколько SSID на одной радиокарте, настроить WPA2-Enterprise, поднять VLAN и как настроить программный свитча(swconfig).
Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии35

Получаем бесплатный SSL сертификат

Время на прочтение4 мин
Количество просмотров516K
Привет, хабр!

О StartSSL я узнал от небезызвестного lissyara, в связи с чем ему очень благодарен.

Для начала расскажу, что же за зверь это. Как известно, SSL сертификаты выдаются центрами сертификации, чьи корневые сертификаты хранятся в хранилище сертификатов браузера\ОС (либо другого ПО, использующего SSL). Цена на большинство сертификатов зашкаливает, и платить приходится за каждый сертификат. Но у StartSSL весьма интересный подход — сами сертификаты у них бесплатные, вы платите только за проверку вашей личности.

Так же не может не радовать наличие русскоязычной поддержки.
Читать дальше →
Всего голосов 136: ↑123 и ↓13+110
Комментарии134

Codecademy: 200 тыс. юзеров, 2,1 млн уроков за первые 72 часа работы

Время на прочтение1 мин
Количество просмотров2.6K
Невероятный успех продемонстрировал стартап Codecademy, который обучает новичков программированию на JavaScript с помощью бесплатных интерактивных уроков. Уроки осуществляются в приложении с простым и интуитивно понятным интерфейсом. Ещё одна особенность проекта — регистрация на сайте не требуется, пока вы не закончите парочку первых уроков.

В первые три дня сайт привлёк 200+ тыс. активных пользователей (считаются те, кто зашёл на сайт и запустил приложение), количество законченных уроков составило ≈2,1 млн, пишет TechCrunch.

Созданный за две недели стартап пока что предоставляет сервис бесплатно, но в будущем должен придумать какую-то бизнес-модель, чтобы окупать расходы на хостинг.
Всего голосов 62: ↑56 и ↓6+50
Комментарии45

Оповещения из Zabbix телефонным звонком

Время на прочтение2 мин
Количество просмотров16K
Всем привет.
Я давно использую zabbix и давно читаю хабр.

Мысль научить заббикс разговаривать голосом посещала меня давно, и даже делал систему которая чудным голосом сообщала ночным саппортам что случилось.
Сегодня я прочитал пост mxx про nagios`ом по телефону и меня срочно настигла мысль привинтить это к моей системе.

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

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

Пять бесплатных инструментов для выбора цветовой схемы сайта

Время на прочтение2 мин
Количество просмотров233K
Один из самых важных факторов при создании уникального и узнаваемого дизайна — цвет. Грамотный выбор цветовой схемы может определить успех или провал сайта. Когда посетитель бросает первый взгляд на веб-страницу, то выбранные вами цвета посылают ему мгновенное сообщение об этой странице. К счастью, существует много инструментов, которые помогут выбрать правильную цветовую схему. Вот пять лучших из них.
Читать дальше →
Всего голосов 148: ↑134 и ↓14+120
Комментарии41

Открываем внутренний API сервиса SMS24X7 для разработчиков

Время на прочтение2 мин
Количество просмотров2.3K
сервис sms-рассылок sms24x7Давать доступ во «внутреннюю кухню» сервисов становится хорошим трендом: Гугл, Яндекс, Mailchimp и многие другие открывают API для работы даже с «внутренними» функциями своих сервисов. Спустя месяц после запуска SMS24X7.RU мы гордостью представляем Вам полное API к нашему сервису. Наша компания всегда старалась быть немного впереди игроков на рынке смс-рассылок и поэтому первые создали API, включающее СМС-шлюз и все функции для работы с настройками, адресной книгой и СМС-рассылками. Одним словом — абсолютно со всем!

Надо отметить, что архитектурное решение по введению API в качестве backend'а для нашего WEB-сервиса СМС-рассылок доставило нам небольшую головную боль. Зато позволило естественным образом отделить процесс разработки WEB-интерфейса. Таким образом, всё, что есть в сервисе оказалось доступно через API.

Допустим, что рассказывать о том, зачем нужен СМС-шлюз никому не надо. Все эти СМС-напоминания, СМС-уведомления и СМС-информирование изрядно утомляют, когда заставляют, в основном, не по делу звенеть и дергаться Ваш телефон. Но как быть, если надо разместить форму сбора мобильных номеров на сайте, интегрировать СМС-рассылки к заказчику в личный кабинет или отобразить у себя статистики по использованию СМС-шлюза? Ответ простой — используйте наше API.

Далее про API, создание документации на Doxygen и уникальное предложение по смс-шлюзу
Всего голосов 65: ↑53 и ↓12+41
Комментарии112

Информация

В рейтинге
2 676-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность