В этом посте я хотел бы поделиться не совсем обычным, для мира PHP, способе построения приложения, если угодно — архитектурой. Данный подход позволяет средствами PHP увеличить количество обрабатываемых запросов в разы. Так же я поделюсь своими наработками в этом направлении. Конечно данный подход не бесплатен, в плане требований к коду, но давайте всё по порядку.
Роман «Balancer» Каршиев @Bal
Пользователь
Чеклист по оптимизации VPS на PHP/Mysql/Nginx
3 мин
45KКак обеспечить более высокую производительность VPS сервера, который работает на Nginx + PHP + Mysql? В этой статье приведен чеклист основных настроек, которые позволят существенно оптимизировать работу сервера. Настройка займет не более 10 минут и не требует ничего, кроме редактирования конфигурационных файлов.
0
Из-за программного бага задержали более 200 авиарейсов: не летайте выше 65535 футов
2 мин
58K
Самолёт-разведчик американских ВВС вызвал серьёзный сбой в программном обеспечении центра управления воздушным движением Калифорнии, из-за чего пришлось задержать вылеты сотен гражданских рейсов в нескольких аэропортах юго-западного региона США и внепланово посадить самолёты, которые направлялись в этот регион, сообщает агентство NBC News.
Хотя официальные агентства не предоставили исчерпывающей информации о причинах сбоя, но неофициальные источники говорят, что дело в новой системе мониторинга трафика, которую установили в некоторых аэропортах Калифорнии и которая ошибочно попыталась предотвратить столкновение самолёта с коммерческими авиарейсами.
+39
Замолвим слово об отладке и профилировании [PHP]
5 мин
40KТуториал
Все идет от лени. Вы получили чужой очень большой проект в котором нужно сделать небольшие правки, или же написали скрипт и сразу не очевидно, что в нем еще требует оптимизации. Как быть? Читать и анализировать код, выводить каждый шаг на экран или в файл (var_dump() и т.д.) не всегда эффективно, ведь можно воспользоваться средствами отладки, которых на сегодняшний день очень много. Кратко перечислю часто встречающиеся…
+27
Использование графа, как основы для создания рубрикатора
6 мин
11KОпределения
В этой статье я опишу способы создания, и использования рубрикаторов, в основе которых лежит структура графа.
Рубрикатор, категоризатор, каталог категорий, предметный указатель, индекс. Для удобства будем считать, что все эти термины описывают примерно одно и то же. А там, где будут существенные отличия, мы будем явно на них указывать.
Информационный элемент – чаще всего файл, но в общем случае любая информация представленная как единое целое.
Введение
Рубрикаторы используются для решения самых разнообразных задач:
- Для ускорения поиска и облегчения навигации по большим массивам информации.
- Для пометки (тегирования) информации с целью организации выборок по определенным рубрикам
- Для сортировки информации по:
областям знаний (физика, математика, биология)
способам использования (Книги — читать, музыка — слушать, фильмы — смотреть)
принадлежности (папки мои и общие документы)
важности (папки inbox и spam) и т.п.
+21
Автоматическое определение рубрики текста
5 мин
24KВведение
В предыдущих статьях, посвященных организации данных в виде рубрикатора (Использование графа, как основы для создания рубрикатора и Проблемы, подстерегающие любого создателя рубрикаторов) были описаны общие идеи по организации рубрикатора. В этой статье я опишу один из возможных алгоритмов автоматического определения тематики текста на основе заранее подготовленного графа-рубрикатора. При этом я сознательно избегаю сложных формул, чтобы донести идею, лежащую в основе алгоритма, максимально просто.
Подготовка данных рубрикатора
Для начала определимся с тем, в каком виде мы будем готовить данные для рубрикатора.
- 1. Рубрикатор – это граф, а не дерево
- 2. Текст, тематика которого определяется, может быть отнесен к нескольким рубрикам одновременно
- 3. Для каждого соотнесения с рубрикой указывается коэффициент точности определения рубрики
- 4. Тематика текста определяется для каждого текста отдельно, и не зависит от того как были определены рубрики других текстов ранее
Последний пункт нуждается в небольшом пояснении. Независимость определения тематики текста очень хороша, когда не требуется последующая сортировка результатов. Когда тексты просто отнесены к рубрики или нет. Но при наличии в рубрике нескольких текстов, наверняка возникнет необходимость отсортировать их по критерию наилучшего попадания в рубрику. В данной статье этот вопрос опущен для ясности.
Алгоритм определения тематики текста, кратко
Описываем рубрикатор. Извлекаем из исследуемого текста ключевые слова, описанные в рубрикаторе. В результате извлечения получаем кусочки разорванного и чаще всего несвязного графа. Используем волновой (или любой другой, по желанию) алгоритм для «дотягивания» извлеченных кусочков графа до вершины «всё». Анализируем и выводим результаты.
+29
Слайд-дупликатор своими руками
3 мин
67K
Для пересъемки пленочных негативов и позитивов применяют сканеры и слайд дупликаторы.
Как и у многих рожденных в СССР, у меня есть коробка, в которой лежат старые пленки и слайды. Давно собирался их переснять на цифру, вернее давно собирался сделать дивайс для пересъемки, и в конце концов собрался.
Для начала сделал поиск по инету. Нашлись и самоделки и фабричные варианты. Некоторые неоправданно сложные, некоторые не очень удобные для изготовления и использования…
Собранная информация позволила родить конструкцию своего варианта.
+35
BaseX. Неизвестная NoSQL Вселенная
6 мин
15K
Далеко-далеко, где-то на краю Галактики, я обнаружил весьма впечатляющее NoSQL решение…
Любовь, апатия, ненависть, восхищение, гордость, гнев, радость — именно такие эмоции были у меня целый год. Чем больше я изучал этот продукт, тем сильнее были чувства.
Маркетинговая затравка от авторов звучит примерно так:
BaseX является очень легковесной, высокопроизводительной и масштабируемой XML базой данных с XPath/XQuery 3.0 процессором, который имеет полную поддержку W3C Update и Full Text спецификаций. Интерактивный и дружественный графический интерфейс позволяет легко изучать ваши XML документы
Звучит весьма вкусно, но реальность, как всегда, больно-больно ударяет по самым незащищенным местам
+8
Hadoop, часть 2: сбор данных через Flume
10 мин
25KТуториал

В предыдущей публикации мы подробно рассмотрели процесс развертывания кластера Hadoop на базе Cloudera. В этой статье мы хотели бы подробно рассказать о методах и инструментах для сбора данных в Hadoop. Загрузить данные в систему можно как с помощью простого копирования в HDFS, так и с помощью специальных инструментов.
+19
Трансформация идеи в процессе развития проекта Meople
2 мин
5.4KBe smart at what you like!
Как ни крути, а для начала любого дела нужна эта самая идея. Пусть даже и не совсем осознанная в самом начале, на уровне подсознания. Обычно толчком к её появлению является желание сделать что-то удобное и полезное, а в случае со стартапом, еще и своими мозгами и руками.
Так вот, в нашем случае хотелось как раз “для себя”. Сама по себе идея агрегатора какой-либо информации (новостей, сообщений и т.д.) не нова. А как обстоят дела с такими приложениями для социальных сетей? Ведь в современной жизни редко когда можно обойтись одним аккаунтом в одной сети.
По данным исследований более 2,8 миллиардов аккаунтов зарегистрировано в социальных сетях по всему миру. 4 из 5 интернет-пользователей проверяют свои источники 1-2 раза в день. Около 60% из них имеют более 2 активных аккаунта и 2-3, которые посещают время от времени. И нам кажется, что пользователи ограничены в осуществлении кросс-сетевых операций.

Примечание:
По данным статистики, которую уже успел собрать наш проект Meople.Net, вот так выглядят самые популярные комбинации социальных сетей:

Если у вас аккаунты в двух сетях — нужно открыть два окна в барузере, или два приложения на устройстве. И тут, рано или поздно, встает вопрос удобства. Плюс к этому, есть чаще посещаемые нами сети и те, в которые наш визит не такой частый. Но и там может появится информация, которая очень важна для вас, хочется как минимум быть в курсе событий.
Вот и захотелось сделать нахождение в нескольких социалках максимально удобным.
И вот идея трансформировалась в проект, который позволяет аккумулировать и управлять информацией, получаемой и передаваемой из одной социальной сети в другую. Это реализует возможность оперировать информацией для нас, как для пользователей.
Как ни крути, а для начала любого дела нужна эта самая идея. Пусть даже и не совсем осознанная в самом начале, на уровне подсознания. Обычно толчком к её появлению является желание сделать что-то удобное и полезное, а в случае со стартапом, еще и своими мозгами и руками.
Так вот, в нашем случае хотелось как раз “для себя”. Сама по себе идея агрегатора какой-либо информации (новостей, сообщений и т.д.) не нова. А как обстоят дела с такими приложениями для социальных сетей? Ведь в современной жизни редко когда можно обойтись одним аккаунтом в одной сети.
По данным исследований более 2,8 миллиардов аккаунтов зарегистрировано в социальных сетях по всему миру. 4 из 5 интернет-пользователей проверяют свои источники 1-2 раза в день. Около 60% из них имеют более 2 активных аккаунта и 2-3, которые посещают время от времени. И нам кажется, что пользователи ограничены в осуществлении кросс-сетевых операций.

Примечание:
По данным статистики, которую уже успел собрать наш проект Meople.Net, вот так выглядят самые популярные комбинации социальных сетей:

Если у вас аккаунты в двух сетях — нужно открыть два окна в барузере, или два приложения на устройстве. И тут, рано или поздно, встает вопрос удобства. Плюс к этому, есть чаще посещаемые нами сети и те, в которые наш визит не такой частый. Но и там может появится информация, которая очень важна для вас, хочется как минимум быть в курсе событий.
Вот и захотелось сделать нахождение в нескольких социалках максимально удобным.
И вот идея трансформировалась в проект, который позволяет аккумулировать и управлять информацией, получаемой и передаваемой из одной социальной сети в другую. Это реализует возможность оперировать информацией для нас, как для пользователей.
+11
Смотрим на мир глазами рака-богомола: ближний инфракрасный диапазон
7 мин
205KА вы думали, мы только чайники умеем делать? Не-а.

Мы все привыкли к тому, что цветы красные, черные поверхности не отражают свет, кока-кола непрозрачная, горячим паяльником нельзя ничего осветить как лампочкой, а фрукты можно легко отличить по их цвету. Но давайте представим на минутку, что мы может видеть не только видимый диапазон(хи-хи), но и ближний инфракрасный. Ближний инфракрасный свет — это вовсе не то, что можно увидеть в тепловизоре. Он скорее ближе в видимому свету, чем к тепловому излучению. Но у него есть ряд интересных особенностей — часто совершенно непрозрачные в видимом диапазоне предметы отлично просвечиваются в инфракрасном свете — пример на первой фотографии.
Черная поверхность плитки прозрачна для ИК, и с помощью камеры, у которой снят с матрицы фильтр можно рассмотреть часть платы и нагревательный элемент.

Мы все привыкли к тому, что цветы красные, черные поверхности не отражают свет, кока-кола непрозрачная, горячим паяльником нельзя ничего осветить как лампочкой, а фрукты можно легко отличить по их цвету. Но давайте представим на минутку, что мы может видеть не только видимый диапазон(хи-хи), но и ближний инфракрасный. Ближний инфракрасный свет — это вовсе не то, что можно увидеть в тепловизоре. Он скорее ближе в видимому свету, чем к тепловому излучению. Но у него есть ряд интересных особенностей — часто совершенно непрозрачные в видимом диапазоне предметы отлично просвечиваются в инфракрасном свете — пример на первой фотографии.
Черная поверхность плитки прозрачна для ИК, и с помощью камеры, у которой снят с матрицы фильтр можно рассмотреть часть платы и нагревательный элемент.
+259
Модуль nginx для борьбы с DDoS
6 мин
67KМногие сталкивались с таким явлением как DDoS атака методом HTTP флуда. Нет, это не очередной туториал по настройке nginx, хочу представить свой модуль, работающий как быстрый фильтр между ботами и бэкэндом во время L7 DDoS атаки и позволяющий отсеивать мусорные запросы.
+138
Почему мы перешли на Marionette.js
6 мин
39KЕсли глянуть на историю развития десктоп приложений, видно, что она начиналась с мощных серверов, которые могли слать экраны текста тонким клиентам. Тонкие клиенты давали команду, которую обрабатывал сервер и потом слал новый экран обратно клиенту.
С течением времени, оборудование стало дешевле и мы пришли к текущей модели, когда клиент делает значительную часть работы, а общается с сервером только для того, чтобы получить информацию, сохранить информацию или дать команду, которая должна быть запущена в защищенном, контролируемом окружении.
С течением времени, оборудование стало дешевле и мы пришли к текущей модели, когда клиент делает значительную часть работы, а общается с сервером только для того, чтобы получить информацию, сохранить информацию или дать команду, которая должна быть запущена в защищенном, контролируемом окружении.
+46
Спасем крупнейшую медиатеку в рунете. Вся база rutracker у Вас на компьютере
10 мин
195K
В контексте последних законов, событий и тенденций как никогда очевидна ценность рутрекера как базы данных различного контента, а не как конкретного ресурса. К сожалению все мои призывы к администрации рутрекера предоставить общедоступный, полный, удобный дамп их базы наткнулся на полное непонимание с их стороны. Выкладывать нечто, что они называют зашифрованной «базой» — я не считаю решением проблемы по причинам, изложенным в вышеприведенных ветках обсуждения и продублированным ниже.
К сожалению, решить проблему своими силами у меня не хватило ни времени, ни, будем откровенны, знаний. Но, к счастью, мои слова возымели действие на людей, которые и тем и другим обладают. В итоге эти люди организовались и сообща сделали то,
Прежде, чем перейти к технической части и ссылкам, хотел бы добавить, что весь смысл этой затеи в том, чтобы как можно больше людей сохранили эту базу к себе. Поэтому очень Вас прошу, скачать данные по ссылкам ниже (желательно использовать торрент) и оставаться на раздаче как можно дольше. Скорее всего в будущем база будет обновляться, но этот момент еще не продуман до конца.
+258
Генератор случайных котов за 8 шагов
8 мин
76K
Доброго времени, Хабр!
Я всегда очень любил котов, и любил их рисовать, особенно морды кошачьи. Чуть изменишь форму, линию — и совершенно другое выражение, другое настроение. У меня листы А4 были изрисованы под предел. И тут мне недавно стукнуло в голову — а что если сделать генератор морд котов? Чтобы нажал на кнопочку и тебе выкинется случайная морда кота. Как можно более случайная и интересная. Давайте же посмотрим, как же сделать такую штуку.
Прошу под кат, любители котов.
+162
[Перевод] Средний доход разработчика в зависимости от языка программирования
2 мин
58KДобрый день, уважаемые читатели Хабра. Как часто вы смотрите за актуальностью той или иной платформы? Если вы хороший специалист, то, наверное, всегда. Если же нечасто – пожалуй, пора начать это делать. Мы подготовили перевод исследования американского блогера Бена Подгурски (Ben Podgursky), позволяющего понять уровень оплаты программистов, в зависимости от языков программирования. Бен использовал в качестве источника данные пользователей на GitHub. Данный пост набрал большой рейтинг на Hacker News.

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

Стереотипов о разработчиках различных языков очень много, но мне было любопытно, насколько они соответствуют действительности.
-1
Хакаем Transcend WiFi SDHC карту памяти
10 мин
147KПеревод

С недавнего времени я стал счастливым обладателем карты памяти Transcend WiFi SD, которая позволяет мне передавать фотографии с моей «зеркалки» (которая вообще то Sony NEX, зато компактная) на любое устройство с WiFi за несколько секунд. А так как мне нравится делать фотографии и делиться с ними на лету, то SD карточка, умеющая без проводов передавать картинки на мой телефон, кажется прекрасным решением. И это было так! (хотя всё еще так). Мобильное приложение может… не, должно быть получше (зачем скачивать 7МБ картинку для просмотра, чтобы потом ЕЩЕ раз скачать её, нажав на «Скачать»?), но вообще оно делает своё дело!
+148
Шахматы на чистом sed
3 мин
48K
Его, в основном, используют для всяких мелких нужд в bash-скриптах — заменить одну строку на другую, что-то удалить и так далее. Если говорить терминами более привычных языков, в «седе» доступны две строковые переменные, в одной из которых можно что-нибудь проверять, заменять, а со второй только обмениваться данными из первой, метки, команды переходов на метки и группировка команд, плюс ещё несколько менее полезных директив.
Вот на этом безобразии я решился написать шахматы, причём такие, чтобы можно было бы играть с компьютером.
+177
Клиент Яндекс.Диска для Linux. Консольный
8 мин
117KСегодня мы представляем долгожданный клиент Яндекс.Диска для Linux. Можно было бы даже сказать «специально для Хабрахабра», так как ни одно упоминание Диска здесь не обходилось без вопросов о клиенте для Линукса.
У него есть вся основная функциональность, которая есть у клиентов для OS X и Windows, и даже больше (симлинки!), и одна особенность — он консольный.

Ниже читайте о том, как он настраивается, что конкретно умеет, и о том, как именно он устроен и что в нём было непросто сделать.
У него есть вся основная функциональность, которая есть у клиентов для OS X и Windows, и даже больше (симлинки!), и одна особенность — он консольный.

Ниже читайте о том, как он настраивается, что конкретно умеет, и о том, как именно он устроен и что в нём было непросто сделать.
+168
Dr. Tariff (тарифы и баланс): Как я стал помогать людям экономить на мобильных затратах
6 мин
68K
Сегодня я расскажу вам, как создавалось бесплатное приложение Доктор Тариф (Dr.Tariff). Это ассистент, который анализирует статистику ваших разговоров и подбирает идеальный тарифный план. После запуска приложение подробно изучит историю ваших разговоров и других затрат, чтобы сказать, можете ли вы тратить меньше. За одну неделю мы своими силами попали в ТОП-10 бесплатных приложений в рубрике «Финансы».
+82
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность