По итогам поста, сделанного в июле 2009 и продолжительным испытаниям, мы пришли к простой и оптимальной для нас схеме межсайтовой авторизации.
User
phpDaemon — фреймворк асинхронных приложений
6 min
44KСегодня речь пойдет о phpDaemon — асинхронном модульном демоне-фреймворке, который берёт на себя обработку I/O (libevent) и другие низкоуровневые задачи, присущие демонам. С его помощью легко писать правильные сетевые приложения с блэкджеком и шлюхами.
Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самыйволшебный пендаль новый протокол от Google. И клиенты mysql, memcached, mongodb… И многое другое, полный список под катом. Работать с сетью действительно просто. Программист средней руки может написать, к примеру, IRC-бота за считанные часы.
В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
Из коробки идут сервера FastCGI, HTTP, CGI, FlashPolicy, Telnet, WebSocket (!) — да-да тот самый
В качестве наглядного примера я реализовал вот этот чат на phpDaemon + WebSocket + MongoDB + jQuery. Он наглядно демонстрирует преимущества этой технологии: доставка сообщений мгновенна, накладные расходы при обмене данными минимальны, высока производительность, приложение масштабируется горизонтально. Исходники этого чата (в данный момент 17 кб). Прошу заметить, чат тестировался и работает в Chrome, FF, IE6+, Iron, Safari.
+84
Сервер на стероидах: FreeBSD, nginx, MySQL, PostgreSQL, PHP и многое другое
16 min
40K![Нравится мне эта картинка, у меня, вот никогда такие красивые графики в какти не получались =(](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg84.imageshack.us%2Fimg84%2F9446%2Fbtdmd8.png%22)
Введение
С момента написания мной предыдущей статьи по оптимизации этой связки прошло довольно много времени. Тот многострадальный 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
Побит рекорд самого короткого кода по определению IE
1 min
3.3KБез малого год назад, я уже писал (http://habrahabr.ru/blogs/javascript/50544/) о самом коротком способе определение браузера Internet Explorer, но вот некто Aleko нашел еще более короткий вариант:
Всего 5 байт. Пример использования:
-[1,]
Всего 5 байт. Пример использования:
if(-[1,]){
alert("Not IE!");
}
+160
Страничка для счастливых обладателей IE6
1 min
6.1KНаконец-то и я решился… Все новые проекты отныне будут иметь спец-страницу для Internet Explorer 6.
Изучив аналогичные решения в Интернете, решил создать свою страничку. Русский текст наскреб понемногу с разных проектов и отредактировал на свой вкус. Дизайн осознанно и намерено использовал майкрософтовский, чтобы хоть как-то повысить планку доверия для тех несчастных, что до сих пор сидят на IE6. Надеюсь, меня за это не осудят, тем более сделано это исключительно для многострадальных клиентов Майкрософта.
Изучив аналогичные решения в Интернете, решил создать свою страничку. Русский текст наскреб понемногу с разных проектов и отредактировал на свой вкус. Дизайн осознанно и намерено использовал майкрософтовский, чтобы хоть как-то повысить планку доверия для тех несчастных, что до сих пор сидят на IE6. Надеюсь, меня за это не осудят, тем более сделано это исключительно для многострадальных клиентов Майкрософта.
+125
Ubuntu Server на домашнем компьютере. Раздадим интернет, скачаем torrent
4 min
50KВ последнее время все больше и больше входят в моду домашние сервера, используемые для хранения контента, закачки торрентов, да и просто для раздачи интернета. Не так давно, воодушевившись обзорами домашних серверов, из подручных средств был собран домашний сервер:
Жесткий диск: 500Gb
Материнская плата на 478 сокете
Процессор: Pentium 4 — 2.6Ghz HT
Все это в стареньком корпусе…
![image](http://tamerlaan.ru/us.png)
Итак, что мы имеем:
•Домашний сервер
•Городскую локальную сеть, выдающую интернет посредством VPN соединения
Использовать сервер как средство хранения контента
Возможность скачки торрентов
Раздача интернета всей семье посредством VPN
Жесткий диск: 500Gb
Материнская плата на 478 сокете
Процессор: Pentium 4 — 2.6Ghz HT
Все это в стареньком корпусе…
![image](http://tamerlaan.ru/us.png)
Итак, что мы имеем:
•Домашний сервер
•Городскую локальную сеть, выдающую интернет посредством VPN соединения
Задачи:
Использовать сервер как средство хранения контента
Возможность скачки торрентов
Раздача интернета всей семье посредством VPN
+30
Чему я научился в Майкрософт
9 min
6KTranslation
Проработав пять лет в различных командах в Майкрософт я вынес несколько вещей, о которых я даже не подозревал, когда оканчивал колледж. Основные ценности, чему я научился, вынесенные уроки, причина моего крика на друзей, как ни называй, они сослужили мне хорошую службу.
Некоторые из этих вещей специфичны для Майкрософт, но большая часть найдет применение в любой командной/корпоративной среде. Некоторые из них сложны – из-за них тебя могут уволить (а может и хуже), если ты не знаешь, что делаешь.
Некоторые из этих вещей специфичны для Майкрософт, но большая часть найдет применение в любой командной/корпоративной среде. Некоторые из них сложны – из-за них тебя могут уволить (а может и хуже), если ты не знаешь, что делаешь.
+190
Создание треков «Smack My Bitch Up» и «Voodoo People» в Ableton
1 min
11KКак сделать легендарные треки Prodigy «Smack My Bitch Up» и «Voodoo People» в Ableton. Видео описывают, образцы которые были использованы в этих замечательных треках.
UPD.
UPD.
+63
Список Javascript библиотек для рисования графиков и диаграмм 2
2 min
37KПродолжаем тему визуализации данных в интернете.
Предыдущие топики:
Предыдущие топики:
- Изумительные диаграммы с новым Chart контролом
- Визуализация направленных графов в вебе
- Список Javascript библиотек для рисования графиков и диаграмм — habrahabr.ru/blogs/javascript/79960 (публикация в блоге — msug.vn.ua/blogs/akrakovetsky/archive/2010/01/04/javascript-charting-libraries.aspx)
+42
Знай откуда пришел пользователь
2 min
18KКогда вы открываете свой проект вы начинаете писать о нем везде, в том числе и на хабре.
Сервисы статистики типа Google Analytics дадут вам общую оценку трафика, а именно сколько посетителей пришло с какого ресурса. Можно настроить цели(goals) и отследить регистрации или покупки, но этого часто бывает недостаточно.
А что если вам нужна статистика о том откуда идут более активные пользователи или пользователи которые создали больше всего тем на форуме за какой-то промежуток времени, или сделали больше всего покупок в вашем интернет магазине. Вариантов может быть много и такие данные сервисы аналитики уже дать нет смогут.
Сервисы статистики типа Google Analytics дадут вам общую оценку трафика, а именно сколько посетителей пришло с какого ресурса. Можно настроить цели(goals) и отследить регистрации или покупки, но этого часто бывает недостаточно.
А что если вам нужна статистика о том откуда идут более активные пользователи или пользователи которые создали больше всего тем на форуме за какой-то промежуток времени, или сделали больше всего покупок в вашем интернет магазине. Вариантов может быть много и такие данные сервисы аналитики уже дать нет смогут.
+25
Highcharts: Красивые, динамические чарты за 5 минут!
2 min
66K![image](https://habrastorage.org/getpro/habr/post_images/f1b/30c/00d/f1b30c00dc27d45c0c4b70b6a774c6ef.jpg)
Highcharts — библиотека для создания чартов написанная на JavaScript, позволяет легко добавлять интерактивные, анимированные графики на сайт или в веб-приложение. На данный момент чарты поддерживают большое количество диаграмм линейных, круговых, колоночных рассеивающих и многих других типов.
![](https://habrastorage.org/getpro/habr/post_images/f56/d05/23c/f56d0523c6f5acfde4f779386e35a7d0.png)
Минимальная версия для IE составляет 6+. Также браузеры поддерживающие Canvas элемент, и в некоторых случаях SVG для графического рендеринга.
+125
+85
436% безрисковой доходности за 2 года? Легко!
4 min
1.1K![](http://www.online812.ru/2009/08/27/006/title.jpg)
Немного истории
Сентябрь месяц. Занимаясь продвижением одного из наших проектов, нам в голову приходит мысль создания одного сервиса, сильно упрощающего работу пиарщика. Недолго думая, за пару недель мы собрали бета-версию, и в октябре сервис уже перешел в коммерческую стадию. Выйдя в том же месяце на прибыль в $1000 мы озадачились развитием сервиса и перешли в стадию активных поисков инвесторов.
Дальше интереснее…
+150
ЧТО смотреть, ГДЕ скачать, КОГДА выйдет DVDRip?
3 min
4.7K![](http://strangecompany.ru/habr/logo.gif)
![](https://habrastorage.org/getpro/habr/post_images/820/73a/bfe/82073abfe7ba2acd6dde8d2baaefd213.gif)
В отличие от других статей в блоге «Я пиарюсь», чтобы узнать, о каком сайте эта, придётся зайти под хабракат. Можно этого не делать и не забивать свободное место в мозгу ещё одним названием, но тогда ты не узнаешь, как, например, найти в рунете лучшие фантастические комедии за последние два года, узнать, когда появится HD-рип Аватара или гд
+232
RTM Context Autocomplete Menu
5 min
1.9KОднажды я зашел на rememberthemilk.com и понял, что хочу такое же контекстное autocomplete меню в свой проект. В результате получился небольшой jquery плагин, который хочу презентовать в этом посте. Работает в ie6+, opera, safari, firefox, chrome (тестировал в последних версиях). В кратце расскажу в чем суть «контекстного» меню в RTM-стиле.
Это меню присоединяется к input-элементу, но, в отличие от обычных autocomplete меню, оно «всплывает» не для ввода всего значения элемента, а для какой-то логической части поля ввода. При этом меню позиционируется непосредственно под автодополняемым текстом. Вот как это выглядит:
![image](https://habrastorage.org/getpro/habr/post_images/f86/58e/f09/f8658ef09e562bc800d1ba977bc8a469.png)
Лицензия проекта — MIT / beerware.
Скачать библиотеку с примерами можно тут: js-context-autocomplete.googlecode.com/files/js-autocomplete-v5.tar
Последнюю ревизию забираем тут: svn checkout js-context-autocomplete.googlecode.com/svn/trunk js-context-autocomplete-read-only
Кому интересно поучаствовать в проекте — пишите в личку.
Временное online-demo (upd)
Под катом интересные моменты реализации, описание функциональности, примеры, список известных багов и фич для реализации.
Это меню присоединяется к input-элементу, но, в отличие от обычных autocomplete меню, оно «всплывает» не для ввода всего значения элемента, а для какой-то логической части поля ввода. При этом меню позиционируется непосредственно под автодополняемым текстом. Вот как это выглядит:
![image](https://habrastorage.org/getpro/habr/post_images/f86/58e/f09/f8658ef09e562bc800d1ba977bc8a469.png)
Лицензия проекта — MIT / beerware.
Скачать библиотеку с примерами можно тут: js-context-autocomplete.googlecode.com/files/js-autocomplete-v5.tar
Последнюю ревизию забираем тут: svn checkout js-context-autocomplete.googlecode.com/svn/trunk js-context-autocomplete-read-only
Кому интересно поучаствовать в проекте — пишите в личку.
Под катом интересные моменты реализации, описание функциональности, примеры, список известных багов и фич для реализации.
+62
Путь от успешного стартапа до большой компании
5 min
2.2KНа Хабре довольно часто публикаются статьи о том, как правильно раскрутить свой стартап (например, вот эта статья). Но я пока еще не встречал статей о том, что делать со стартапом после того, как он успешно запущен и раскручен, поэтому я решил восполнить этот пробел и написать про статью про историю одного сферического стартапа в вакууме. Статья не обходится без выводов, базируется на реальном жизненном опыте и находится под катом.
С Новым Годом! С Новым Счастьем!
С Новым Годом! С Новым Счастьем!
+95
7+ превосходных инструментов для оптимизации изображений
5 min
105KTranslation
Перевод статьи 8 Excellent Tools for Optimizing Your Images
К сожалению на момент перевода один из сервисов перестал работать. Но хабровчане предложили еще много хороших решений!
Одним из самых простых способов уменьшить время отклика страниц на вашем сайте является оптимизация изображений.
Есть несколько бесплатных инструментов помогающих уменьшить и оптимизировать изображения. В этой статье вы найдете удобные инструменты для создания картинок для веба настолько маленьких по весу, насколько это возможно.
Обзор инструментов — под катом.
К сожалению на момент перевода один из сервисов перестал работать. Но хабровчане предложили еще много хороших решений!
Одним из самых простых способов уменьшить время отклика страниц на вашем сайте является оптимизация изображений.
Есть несколько бесплатных инструментов помогающих уменьшить и оптимизировать изображения. В этой статье вы найдете удобные инструменты для создания картинок для веба настолько маленьких по весу, насколько это возможно.
Обзор инструментов — под катом.
+70
Хакерская флешка из микросхем BIOS'a
3 min
27KНаглядевшись на всевозможные корпуса для флешек, как коммерческие так и ди-ай-вайные, прочитав некоторое количество статей по модингу, родилось непреодолимое желание попробовать себя в данном виде творчества (разобрать, сломать, собрать). Это желание совпало еще с одним непреодолимым желанием — избавится от родного корпуса моего девайса USB Flash Drive.
Отискав в комнате угол заваленный более древними достижениями IT-индустрии начал сканировать сии вещи на флешко-корпусоподобные элементы.
– Ага, взявши в руки одну из материнок, мой взгляд практически сразу же упал на чип BIOS'а, вроде подходит, вроде все просто. Ринулся в гуглояндекс. Однако мой поиск не завершился просмотром кучи фотографий и чтением мануалов изготовления этих гик-накопителей.
Поэтому цель данного поста устранить это недоразумение. Тем более, что в результате кастомайзинга, получится вполне добротная вещь.
Отискав в комнате угол заваленный более древними достижениями IT-индустрии начал сканировать сии вещи на флешко-корпусоподобные элементы.
– Ага, взявши в руки одну из материнок, мой взгляд практически сразу же упал на чип BIOS'а, вроде подходит, вроде все просто. Ринулся в гуглояндекс. Однако мой поиск не завершился просмотром кучи фотографий и чтением мануалов изготовления этих гик-накопителей.
Поэтому цель данного поста устранить это недоразумение. Тем более, что в результате кастомайзинга, получится вполне добротная вещь.
+114
Feedback для интернет-магазина, моя практика
10 min
5.3KК уже написанному на хабре топику "Мелочи решают все".
Прочитал топик. Согласен со многим написанным там. Но… Я занимаюсь интернет-магазинами давно, и с более или менее постоянной занятостью. Если конечно мне в жизни больше нечем заняться, хотя даже в подобные моменты я занимаюсь интернет-магазинами. Речь в посте пойдет о том как заработать больше на обратной связи с заказчиком, клиентом… ээ «customer» :) И так дальше под катом. Кстати, извините за большое количество текста… но по другому в письменном виде не получается.
Прочитал топик. Согласен со многим написанным там. Но… Я занимаюсь интернет-магазинами давно, и с более или менее постоянной занятостью. Если конечно мне в жизни больше нечем заняться, хотя даже в подобные моменты я занимаюсь интернет-магазинами. Речь в посте пойдет о том как заработать больше на обратной связи с заказчиком, клиентом… ээ «customer» :) И так дальше под катом. Кстати, извините за большое количество текста… но по другому в письменном виде не получается.
+71
Немного советов начинающим и не очень
6 min
4.7KНемного воды
Разрешите представиться — фрилансер-дизайнер с опытом работы чистым фрилансером всего полтора месяца.
Профессиональный опыт работы в вебе — более 6 лет. Именно эти шесть лет позволили мне сейчас стать тем, кем являюсь и окончательно выбрать вектор своего движения.
Когда полтора месяца назад я встал на этот путь — мне думалось, что в начале будет безумно тяжело, тем более, что вокруг столько опытных коллег по цеху, с которыми мне тягаться будет просто невозможно.
Но, как оказалось, я ошибался. Потому-то как минимум 50% фрилансеров просто не понимают каких-то прописных истин, о которых я и хочу поведать далее.
+133
Information
- Rating
- Does not participate
- Location
- Алма-Атинская обл., Казахстан
- Date of birth
- Registered