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

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

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

Как организовать отправку push-уведомлений на айфон

Время на прочтение5 мин
Количество просмотров21K
В Surfingbird мы используем пуш-уведомления, чтобы сообщать нашим пользователям срочные новости и просто информировать их об интересных материалах за день. Уже в первые недели тестов пуши показали свою огромную эффективность в плане увлечения ретеншена. Этому есть логичное объяснение – телефон у пользователя всегда с собой, в метро, в туалете, на совещаниях и т. д. Когда юзеру приходит пуш, все его внимание концентрируется на этом уведомлении.

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

image
Читать дальше →
Всего голосов 39: ↑28 и ↓11+17
Комментарии15

Бизнес-план: немного о конкурентах

Время на прочтение2 мин
Количество просмотров2.1K
Продолжая писать бизнес-план интернет-магазина ноутбуков, составил список прямых конкурентов.

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

Работая над списком конкурентов собрал немного дополнительной информации, которой хочу поделиться. Эта же информация послужила основой составления рейтинга для определения самых-самых конкурентистых конкурентов.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии43

Взломать Wi-Fi за 10 часов

Время на прочтение12 мин
Количество просмотров1.5M
Еще не так давно казалось, что беспроводная сеть, защищенная с помощью технологии WPA2, вполне безопасна. Подобрать простой ключ для подключения действительно возможно. Но если установить по-настоящему длинный ключ, то сбрутить его не помогут ни радужные таблицы, ни даже ускорения за счет GPU. Но, как оказалось, подключиться к беспроводной сети можно и без этого — воспользовавшись недавно найденной уязвимостью в протоколе WPS.


Читать дальше →
Всего голосов 304: ↑294 и ↓10+284
Комментарии164

Как стать миллионером в AppStore или немного формул про продвижение и продажи. Часть 1

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

Схема успеха



Джон, мы потеряли два листа математических выкладок! Что делать?
Как обычно, Билл… напиши: «отсюда с очевидностью следует…»


image

Чтобы прочитать некраткую сопроводительную записку к схеме – добро пожаловать под кат.

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

Не баг-трекер, а…

Время на прочтение7 мин
Количество просмотров76K
Настоящий IT-шник всегда любит сварить «кашу из топора». А если этой кашей еще и получается вкусно накормить коллег, то выходит вообще замечательно.

По долгу службы мне постоянно приходится сталкиваться с различными инсталляциями bug и issue-трекеров (далее просто баг-трекеров) и среди них попадалось довольно много нестандартных решений. Что-то мне приходилось разворачивать самому, что-то я «подсмотрел» у клиентов, но поделиться наблюдениями было бы полезно.



С этой темой я уже выступал на конференции SQADays, но для тех, кому лениво смотреть 18 минут видео, все будет кратко расписано в статье.

Сварить кашу из баг-трекера!
Всего голосов 39: ↑36 и ↓3+33
Комментарии29

В поисковой строке Рамблера можно не только писать — но и говорить

Время на прочтение2 мин
Количество просмотров19K
Привет %USERNAME%!

Google Chrome начиная с 11 версии получил возможность распознавания речи в тегах input;
Раз уж возможность есть, грех ее не использовать :)

Теперь в поисковой строке рамблера можно не только писать — но и говорить.


Как это работает
Всего голосов 97: ↑71 и ↓26+45
Комментарии56

Как создать вебсайт для мобильных устройств

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

Стили


User Agent

Один из способов включения стилей для мобильного устройства — это использование User Agent, которую получает сервер от клиента.
Этому может помочь набор скриптов: code.google.com/p/mobileesp, а также сервис от яндекса api.yandex.ru/detector
При работе с User Agent только одна проблема — это постоянно появляющиеся новые User Agent.
Читать дальше →
Всего голосов 133: ↑128 и ↓5+123
Комментарии43

Profiling PHP Applications With xdebug

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

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

Время на прочтение2 мин
Количество просмотров54K
Тот факт, что 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:


Читать дальше →
Всего голосов 95: ↑85 и ↓10+75
Комментарии38

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

Время на прочтение10 мин
Количество просмотров57K
В 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 секунд вполне достаточно).
Читать дальше →
Всего голосов 91: ↑87 и ↓4+83
Комментарии83

Load average

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

Linux program top

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

Договор. Поисковая оптимизация сайта

Время на прочтение10 мин
Количество просмотров38K
В продолжение темы о договорах хочу представить вам договор на SEO, который мы используем в нашем Интернет-агентстве.

Одна из ключевых проблем договора на SEO — за что же собственно берем деньги? Существуют три основные точки зрения. 1. за позиции в топе 2. за трафик с поисковиков 3. за работу в целом.
Брать деньги с клиентов за позиции – неверная позиция для оптимизатора. Глюки поисковика, смена алгоритма, результат работы лишь через 2-3 месяца. Все это не то, что способствует прибыли организации. К тому же такой вариант исключает предоплату. Выводить в топ по конкурентным тематикам, вкладывая деньги компании нет никакого желания.
Вариант с оплатой за посетителей более приемлемый. Но опять же как быть с предоплатой? Первые два месяца работать за счет собственного бюджета, пока посетителей мало или нет вообще?
Третий вариант – оплата за проведенный комплекс работ, наиболее интересен для seo-компании. Мы делаем – это, это и это. За эффект отвечаем своим опытом, репутацией, но никак не юридически.
Для тех, кто спросит: «а как же гарантии?» Я отвечу: а никаких 100% гарантий нет и быть не может. Оптимизатор как крестьянин – землю вспашет, засеет, удобрения подкинет когда надо. А вот требовать гарантий урожая с него смысла нет – слишком много зависит от погодных условий (погреет ли Яндекс-красно-солнышко).
Единственное, что остается заказчику – подбирать более опытных крестьян. А лучше колхоз. И смотреть на предыдущие урожаи (портфолио).
И еще один любимый мною пример. Все смотрели передачу «Тачки на прокачку» на MTV, где делают тюнинг старым авто? Так вот так же и с сайтом – оптимизатор может его прокачать, форсировать движок, а попадет ли машина (сайт) в гонке в топ10 – какие тут гарантии?

Теперь собственно, договор. Некоторые пункты прокомментирую ниже.
Читать дальше →
Всего голосов 44: ↑36 и ↓8+28
Комментарии92

Борьба с DDOS и DOS на уровне nginx

Время на прочтение1 мин
Количество просмотров8.2K
FreeBSD, сетевая Intel fxp, порт 100Мбит, polling, http accept-filter
в sysctl:

sysctl kern.maxfiles=90000
sysctl kern.maxfilesperproc=80000
sysctl net.inet.tcp.blackhole=2
sysctl net.inet.udp.blackhole=1
sysctl kern.polling.burst_max=1000
sysctl kern.polling.each_burst=50
sysctl kern.ipc.somaxconn=32768
sysctl net.inet.tcp.msl=3000
sysctl net.inet.tcp.maxtcptw=40960
sysctl net.inet.tcp.nolocaltimewait=1
sysctl net.inet.ip.portrange.first=1024
sysctl net.inet.ip.portrange.last=65535
sysctl net.inet.ip.portrange.randomized=0

Читать дальше →
Всего голосов 48: ↑45 и ↓3+42
Комментарии42
2

Информация

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