Как стать автором
Обновить
0
Серёжа @SwampRunnerread⁠-⁠only

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

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

Считаем репутацию пользователей социальных сетей

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

Зачем нужна репутация?


Репутация может отражать множество связей в системе, связей между системами, их величину и актуальность. Репутация — это статус данного элемента в системе, будь-то это конкретный человек, книга, фильм, сайт или что-то другое. Она позволяет конечному пользователю ориентироваться среди большого объема информации, выбирать для себя лучшее, а так же, если он сам является элементом системы как, например, в социальных сетях, самому «показать себя».

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

HTML5 Audio и Game Development: баги браузеров, проблемы и их решения, идеи

Время на прочтение6 мин
Количество просмотров11K
В топике я расскажу о нюансах использования тега <audio> в разных браузерах при разработке игр, о проблемах, с которыми я столкнулся и о том, как их решить. Объяснение будет идти паралельно с написанием обертки для удобной работы.
Читать дальше →

Правильная работа с исключениями в PHP

Время на прочтение4 мин
Количество просмотров69K
В предыдущей статье я предложил свести все «механизмы ошибок» к исключениям, поэтому логично будет объяснить, как правильно работать с исключениями в PHP.
Сначала поясню, почему я выбрал именно исключения, как механизм работы с ошибками:
  1. Исключения — это гибкий, расширяемый метод обработки ошибок;
  2. Это стандартизованный механизм – человеку, не работавшему с вашим кодом, не нужно будет читать мануал, чтобы понять, как обрабатывать ошибки. Ему достаточно знать, как работают исключения;
  3. С исключениями гораздо проще находить источник ошибок, так как всегда есть стек вызовов (trace).

Сразу скажу, что в этой статье я не открываю Америку. Описаны стандартные принципы работы с исключениями плюс некоторые особенности, налагаемые PHP. Полезно будет почитать новичкам, хотя может быть и опытные разработчики найдут что-нибудь новое для себя.
Несколько советов по работе с исключениями:

Underscore.js — библиотека, которая так хороша, что должна быть вне закона

Время на прочтение3 мин
Количество просмотров50K
Каждый, кому приходилось писать объемные куски осмысленного кода на javascript, рано или поздно понимал, что ему многого не хватает в этом языке или просто неудобны некоторые врожденные конструкции. Для сглаживания шероховатостей применяются jQuery, Prototype, MooTools etc. Кто-то уже мало представляет себе, как можно кодить без них. Сегодня я расскажу о еще одной маааленькой библиотечке, которая делает мир javascript-программиста еще прекраснее. Речь пойдет о Underscore.js
Go ahead, make my day

Что интересного нам расскажет EXPLAIN EXTENDED?

Время на прочтение6 мин
Количество просмотров13K
Большинство разработчиков на MySQL знакомы с командой EXPLAIN, однако значительно меньше людей знают о команде EXPLAIN EXTENDED, появившуюся ещё в MySQL 4.1, и ещё меньше умеют ею пользоваться.

EXPLAIN EXTENDED умеет показывать, что же конкретно делает с Вашим запросом оптимизатор MySQL. Для разработчика может быть совсем не очевидно, насколько сильно может отличаться написанный им запрос от того, который в действительности будет выполнен сервером. Этот процесс называется механизмом перезаписи запросов (query-rewrite), и он является частью любого хорошего SQL-оптимизатора. Команда EXPLAIN EXTENDED добавляет дополнительные предупреждения (warnings) к выводу команды EXPLAIN, в том числе и переписанный SQL-запрос.
Читать дальше →

Last.fm Scrobbling

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

Начало работы


В пабле нет ни одной нормальной библиотеки для работы с Last.FM «Submission» API PHP, пришлось разбираться и писать самому…
Для начала Вам необходимо перейти на страницу регистрации вашего API аккаунта.
После ввода всех данных, Вам предоставят 2 ключа: публичный и секретный.
image
Читать дальше →

Алгоритм коллаборативной фильтрации

Время на прочтение2 мин
Количество просмотров16K
Коллаборативная фильтрация (англ. collaborative filtering) — это метод, который даёт автоматические прогнозы исходя из наколенной информации о интересах и вкусах пользователей.

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

jQuery 1.4: 15 новых возможностей

Время на прочтение7 мин
Количество просмотров6.5K
14 января появился на свет jQuery 1.4. Этот релиз содержит множество новых возможностей и улучшений. В этой статье рассматриваются те, которые вы, возможно, найдёте самыми полезными.
Читать дальше →

Знай откуда пришел пользователь

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

Сервисы статистики типа Google Analytics дадут вам общую оценку трафика, а именно сколько посетителей пришло с какого ресурса. Можно настроить цели(goals) и отследить регистрации или покупки, но этого часто бывает недостаточно.

А что если вам нужна статистика о том откуда идут более активные пользователи или пользователи которые создали больше всего тем на форуме за какой-то промежуток времени, или сделали больше всего покупок в вашем интернет магазине. Вариантов может быть много и такие данные сервисы аналитики уже дать нет смогут.

Читать дальше →

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

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

Читать дальше →

Список полезных инструментов для php разработчика

Время на прочтение10 мин
Количество просмотров150K
PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку.
Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода.
Читать дальше →

Автоматическое управление скоростью µTorrent в зависимости от активности пользователя

Время на прочтение3 мин
Количество просмотров90K
В этой статье я бы хотел:
1) Поделиться с вами своей находкой: программой позволяющей изменять скорость популярного торрент-клиента utorrent через параметры командной строки.
2) Показать живой пример использования данной программы (c применением планировщика nncron).

Предистория:
Некоторое время назад захотел я, чтобы utorrent в мое отсутствие за компьютером мог полностью занимать канал, а по моему приходу сокращал бы свои аппетиты, чтобы я мог комфортно пользоваться интернетом.
Подобных настроек слежения за пользователем в самом utorrent я не нашел, и более того, с удивлением обнаружил, что у любимого торрент клиента нет возможности управлять скоростью загрузки/отдачи посредством параметров командной строки.

Однако, порыскав по просторам интернета я смог таки найти программу, сей недочет функций восполняющую: utspeed (v1.0.1.1).
Читать дальше →

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

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

Работа с http через неблокируемые сокеты

Время на прочтение7 мин
Количество просмотров9K
Понадобилось сделать несколько параллельных http запросов на php. Интуиция подсказывала что делается это через неблокируемые сокеты. В интернете в общем то есть несколько готовых классов для работы с ними, но как всегда захотелось легкости и простоты, поэтому был срочно изобретен новый велосипед. Под катом чуть больше 100 строк кода с комментариями и пример использования.

Читать дальше →

8 полезных регэкспов с наглядным разбором

Время на прочтение2 мин
Количество просмотров274K
О мощи и гибкости регулярных выражений написано много, и их использование давно уже является стандартом для различного рода операций над текстом. Пожалуй, чаще всего регэкспы работают при валидации вводимых данных — здесь им практически нет альтернативы, если не считать громоздкий циклический разбор с кучей неочевидных проверок. Начнём с самого простого:

1. Часть ЧПУ (человекопонятный URL)


По сути, слово с дефисами.

Паттерн: /^[a-z0-9-]+$/
short_url

Примеры посерьёзнее

Первоклассным специалистом может стать каждый!

Время на прочтение3 мин
Количество просмотров9.6K
Вы думаете лучшими специалистами в своем деле становятся талантливые и гениальные люди? Нет, быть лучшим — это возможность каждого нормального человека! И у тебя, Хаброжитель, эта возможность тоже есть!
Читать дальше →

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

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

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

UPD: спасибо за плюсы, перенес в тематический блог.
Читать дальше →

Электронное табло

Время на прочтение1 мин
Количество просмотров3.8K
В одном из моих проектов, которому возможно никогда не суждено родиться (из-за отсутствия времени), понадобилось электронное табло.
Но прилагательное «электронное» носит исключительно образный характер. Нужна была реализация электронного табло в Веб, такого, чтобы никого не убило током и визуально было похоже на своих настоящих электрородителей.
Что же получилось?

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

Время на прочтение6 мин
Количество просмотров15K
imageЭта статья — How To, которое поможет вам легко обеспечить миграцию между версиями БД ваших PHP приложений с помощью Phing и dbdeploy.
Читать дальше →

Сказ про то, как я свой интернет-магазин открывал: старт

Время на прочтение3 мин
Количество просмотров2.3K
Предыдущая часть.


Первый капитал мы сколотили продавая «таможенный конфискат». Было у нас где-то по 1000 у.е. на брата.

Мы купили лицензию на avalonshop (ныне shopcms) за 30 у.е. Я нашел дизайнера, который нарисовал страшненькую шапку и перерисовал элементы стандартного дизайна за 50 у.е. И попросил своего старого товарища-программиста поработать “напильничком” — немного изменить шаблон, чтобы нам нравился вид магазина. Обошлось в 50 баксов. По нашим меркам получилось вполне сносно.

Парни мы умные были, поэтому прекрасно понимали, что работать с ограниченным ассортиментом конфиската будет невозможно. И стали искать поставщиков.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Харьков, Харьковская обл., Украина
Зарегистрирован
Активность