Как стать автором
Обновить
20
0
Алексей @f3ath

Иногда я не программирую

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

Порноиндустрия как пример для медиабизнеса

Время на прочтение1 мин
Количество просмотров2.2K
Журнал «Секрет Фирмы» опубликовал отличное интервью с профессором экономики из Washington University in St. Louis Микеле Болдрином, известным борцом против копирайта. В своих книгах и научных работах Болдрин доказывает, что авторское право — не двигатель прогресса, а его тормоз. В качестве примера он приводит индустрию порнофильмов, в которой копирайт, фактически отсутствует.

«Мы пришли к выводу, что индустрия порнофильмов — это хороший пример того, как был бы устроен мир без копирайта. Формально копирайт существует и в ней, но порнографы никогда особенно не стремились защищать его: суды слишком часто отказывали им в исках. В результате в порнографии мы получили ту модель организации бизнеса, которую копирайт отнял у кинематографа, — говорит Болдрин. — Порноиндустрия намного дружественнее к потребителю, чем традиционный кинобизнес. Фактическое упразднение копирайта в отрасли сделало продукцию гораздо более доступной для клиента. Когда выходит новый порнофильм, он продается через закрытые интернет-клубы по $30-40. Потом фильм появляется на менее дорогих сайтах и в конце концов становится public domain. Это ведь хорошо для покупателя! Люди любят порнографию и хотят потреблять её. В этом отношении она не отличается от какого-либо другого товара».

Кроме того, Болдрин напоминает, что именно благодаря порнобизнесу появились многие технические инновации, в том числе потоковое видео в интернете, электронная торговля, электронные платёжные системы и т.д. Это наглядное доказательство того, что отсутствие копирайта вовсе не препятствует инновационной деятельности, а даже поощряет её.
Всего голосов 101: ↑92 и ↓9+83
Комментарии99

Работаем асинхронно в PHP или история ещё одного чата

Время на прочтение8 мин
Количество просмотров37K
Меня очень радует, как бурно развивается PHP последние несколько лет. Наверное и вас тоже. Появляются постоянно новые возможности, удерживающие энтузиастов оставаться на данной платформе. Чего только стоит недавняя новость о релизе Hack.

Наверняка кто-то прочитав даже заголовок этой статьи ухмыльнется и подумает: «Мсье знает толк в извращениях!». Споры о крутости того или иного языка никогда не утихают, но как бы там ни было, лично я для себя вижу не так уж и много условий смены языка, поскольку люблю выжимать все возможности, прежде чем радикально сменить весь стек. Недавно была публикация о создании чата на Tornado и мне захотелось рассказать о том, как похожую задачу я решал при помощи PHP.

Предыстория

В один прекрасный день решил я познакомиться с WebSockets. Меня заинтриговала технология, хотя не сказать бы, что она появилась только вчера, и это совпало с запуском одного чат-сервиса соционической тематики, который страдал массой недостатков. Это придало мне азарт принять участие в конкурентной гонке. Использование веб-сокетов выглядело принципиально новым и многообещающим решением.
Читать дальше →
Всего голосов 45: ↑32 и ↓13+19
Комментарии19

Почему сотрудники делают глупые ошибки и что с этим делать.Часть 1

Время на прочтение8 мин
Количество просмотров132K
Как-то один из персонажей популярного сериала заявил «Все врут!». И это отчасти правда. И что уж 100% правда, что все лажают. Каждый может вспомнить, когда наши сотрудники не выполнили взятые на себя обязательства, сорвали сроки, что-то сделали — но совсем не то, а иногда лучше бы вообще не проявляли инициативу. К сожалению, лажают не только сотрудники, но и руководители. Самое печальное в этом то, что работают далеко не дураки, но бывают такие глупые epic fail, что и говорить не хочется.



Вариантов, что с этим делать, довольно много. Я бы хотел рассказать об одном из подходов, который в моем случае сработал. По итогу количество косяков и взаимных конфликтов руководитель-подчиненный стало значительно меньше.
Читать дальше →
Всего голосов 84: ↑66 и ↓18+48
Комментарии52

Оптимизируем LIMIT offset

Время на прочтение2 мин
Количество просмотров82K
Везде, где используется LIMIT offset для больших таблиц, рано или поздно начинаются тормоза. Запросы вида

SELECT * FROM test_table ORDER BY id LIMIT 100000, 30

могут выполнятся очень долго. Например, в моем случае, на одном из сайтов кол-во комментариев перевалило за 200к и постраничная навигация по комментариям начала ощутимо тормозить, а в mysql-slow.log все чаще стали попадать запросы с временем выполнения 3-5сек.
Читать дальше →
Всего голосов 77: ↑61 и ↓16+45
Комментарии30

Обзор бесплатных сервисов для веб-разработки

Время на прочтение4 мин
Количество просмотров143K
Пост является личной подборкой полезных и нужных онлайн сервисов, которые позволяют бесплатно (или условно бесплатно) создавать действительно крутые вещи и разворачивать их в Сети. Не претендую на новизну или на полноту, но буду счастлив, если кому пригодится.

Всем нам иногда хочется попробовать новую идею, запилить какой-нибудь сайтик про манулов, но чтоб обязательно на node.js, хайлоад реди, с мемкешем, монго, фейловером и с претензией на мировое господство. У меня для Вас хорошие новости: благодаря щедрости проклятых западных капиталистов всё это можно получить совершенно бесплатно.
Читать дальше →
Всего голосов 157: ↑136 и ↓21+115
Комментарии113

События, которые повлияли на ваше развитие в детстве

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


UPD: игра вышла.

Привет!

Тут такая история. Я заметил, что в какой-то момент стал отмечать для себя важные вещи для развития ребёнка. Например, у меня в детстве был сначала модульный конструктор с мотором, колёсами, батарейками и так далее, а потом – модульный же радиоконструктор. Эти два предмета очень сильно повлияли на то, чем я потом интересовался в будущем.

Ещё пример – в детстве надо обязательно сходить в политехнический и археологический музеи Москвы. Или, например, запомнились такие штуки: первая хорошая НФ, подаренная в 8 лет; дед, научивший меня чертёжному почерку за 15 минут; шахматы каждые выходные; огромная коробка Лего и так далее. И таких событий – тысячи.

У меня просьба. Давайте накидаем важные и интересные вещи, которые можно и нужно сделать с ребёнком до примерно 10 лет. Наверняка ведь у вас есть такие «чекпоинты», которые запомнились.
Читать дальше →
Всего голосов 160: ↑154 и ↓6+148
Комментарии552

Как за неделю подружить gma3600 (intel cedar trail) и linux

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


В подарок отцу был куплен asus x101ch. На первый взгляд шикарный нетбук, особенно в отношении цена-качество. В Евросети я отдал за него скромные 7500 рублей (дело было зимой). Больше всего меня привлекли матовый дисплей, двухъядерный 1.6Ghz Atom и заявленная возможнось просмотра Full HD (1080p), что в большей степени сказалось на выборе его в качестве замены старому eee pc 900. Ослеплённый положительным опытом, полученным от использования Intel Atom на неттопе с Debian 6, и всем вышеперечисленным, я забыл самое главное: изучить вопрос о работоспособности данного девайса в Linux до покупки, за что впоследствии и поплатился…

О пути к дружбе linux и gma3600 под катом...
Всего голосов 69: ↑55 и ↓14+41
Комментарии44

Типажи и анонимные функции в PHP. Кря-кря!

Время на прочтение5 мин
Количество просмотров28K
В данной статье я не буду рассказывать, что такое Типажи, не буду описывать синтаксис, или разбирать всякие тонкости, связанные с разрешением имен и наследованием Типажей. На эту тему на Хабре уже есть фундаментальная статья.
Я хочу лишь показать один маленький, но гордый пример использования типажей совместно с анонимными функциями. В нем не будет ничего технически сложного: всего один типаж и два класса. Практической ценности в нем тоже не очень много, как и в любом модельном примере. Но идея — каким образом можно структурировать и переиспользовать код — на мой взгляд очень ценна.
Заинтересовавшихся прошу под кат.
Читать дальше →
Всего голосов 74: ↑63 и ↓11+52
Комментарии51

Coroutines в PHP и работа с неблокирующими функциями

Время на прочтение18 мин
Количество просмотров79K
Одним из самых больших нововведений в PHP 5.5 будет поддержка генераторов и корутин (сопрограмм). Генераторы уже достаточно были освещены в документации и в нескольких других постах (например в этом или в этом). Сопрограммы же получили очень мало внимания. Это гораздо более мощный, но и более сложный для понимания и объяснения, инструмент.

В этой статье я покажу как реализовать планировщик задач с использованием корутин, чтобы вы поняли, что с ними можно делать и как их применять. Начнем с нескольких вступительных слов. Если вы считаете, что вы уже достаточно хорошо знаете как работают генераторы и корутины, тогда можете сразу перейти к разделу «Совместная многозадачность».

Генераторы


Суть генератора в том, что это функция, которая возвращает не просто одно значение, а последовательность значений, где каждое значение выброшено одно за другим. Или, другими словами, генераторы позволяют вам реализовать итератор, без лишнего кода.
Читать дальше →
Всего голосов 111: ↑103 и ↓8+95
Комментарии57

Хочешь быть iOS разработчиком? Будь им!

Время на прочтение2 мин
Количество просмотров388K
На хабре в прошлом месяце была опубликована статья Конкурс ВК: Мессенджер для Android. Как это было!, в которой автор поделился своими мыслями о конкурсе и опубликовал список ресурсов и статей, которые помогли ему в создании приложения. Так как в последнее время я начал изучать разработку под iOS, то у меня скопилось некоторое количество ссылок, которые могут быть полезны для начинающих. Поэтому я последую его примеру и сделаю то же самое, только для своей платформы. Надеюсь, кому-нибудь они окажутся полезны и сэкономят немного времени.

Читать дальше →
Всего голосов 234: ↑222 и ↓12+210
Комментарии38

Debian: Apt-Pinning на примере php5-fpm и nginx 1.0.4 (Debian way)

Время на прочтение3 мин
Количество просмотров5.9K
Всем Debian'щикам известно, что Debian настолько же стабилен, насколько тормознут на «новинки». В частности, пакета php5-fpm, так многими любимого, в стабильном репозитории до сих пор нет. Решив чуток поискать, как делают люди, понял, что многие собирают его из «сорцов». Мне это как-то стало не по душе. Поэтому сегодня я поставил его в стиле Debian-way, с помощью Apt-Pinning.

Apt-Pinning, вкратце, это технология, которая показывает, из какого репозитория предпочтительнее ставить пакет.
Читать дальше →
Всего голосов 37: ↑32 и ↓5+27
Комментарии18

Архитектура REST

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

Введение


В русскоязычной части Интернета присутствует большое количество статей, посвященных веб-службам на основе SOAP и XML-RPC, но почему-то почти ничего нет про вполне заслуживающую внимания (но менее распространенную) архитектуру RESТ.

В данной статье описываются основы этой архитектуры, возможности и примеры её использования.

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

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

Время на прочтение3 мин
Количество просмотров39K
Жизнь веб-разработчика омрачена сложностями. Особенно неприятно, когда источник этих сложностей неизвестен. То ли это проблема с отправкой запроса, то ли с ответом, то ли со сторонней библиотекой, то ли внешний API глючит? Существует куча различных прилад, способных упростить нам жизнь. Вот некоторые инструменты командной строки, которые лично я считаю бесценными.
Читать дальше →
Всего голосов 227: ↑217 и ↓10+207
Комментарии30

PDO: сериализация, поздняя инициализация и PHPUnit

Время на прочтение1 мин
Количество просмотров1.6K
Здравствуйте. Как известно, PDO не поддерживает сериализацию. С этим связано несколько интересных вещей, в частности сюрпризы с трейсами и невозможность сделать mock от PDO в PHPUnit.

Я активно использую PHPUnit и реализуя в очередной раз паттерн Dependency Injection столкнулся с описанными трудностями создания Mock-объекта от PDO.

И что же получилось?
Всего голосов 15: ↑10 и ↓5+5
Комментарии4

Вложенные запросы при помощи Zend_Db_Select

Время на прочтение2 мин
Количество просмотров6K
    Относительно недавно при написании кода очередной модели, передо мной встала задача использования подзапроса (к примеру в join). При этом уже довольно давно я стараюсь как можно меньше писать запросов «в сыром» виде; использую для этого ООП обёртку Zend Framework. Однако, посмотрев в мануале, API, я, к своему удивлению, не нашёл необходимых средств. Но после обращения непосредственно к коду стало ясно, что вложенный запрос можно сделать очень просто!
Читать дальше →
Всего голосов 30: ↑23 и ↓7+16
Комментарии45

Load average

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

Linux program top

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

Список полезных PHP классов и библиотек

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

Email


  • Swift Mailer
    Swift Mailer легко интегрируется в любое PHP-приложение. Это гибкий и элегантный ООП-подход к отправке писем с множеством функций: отправка эл.почты, используя SMTP, SendMail, Postfix, поддержка серверов и др.
  • PHPMailer
    Лучший класс для работы с эл. почтой. Поддерживает сообщения в цифровой форме, S/MIME шифрование, текстовые и HTML-письма, изображения, поддерживает несколько Email’ов, SMTP-аутентификация.

Читать дальше →
Всего голосов 175: ↑145 и ↓30+115
Комментарии75

Индексы в MySQL: многоколоночные индексы против комбинированных индексов

Время на прочтение9 мин
Количество просмотров118K
Я часто вижу ошибки, связанные с созданием индексов в MySQL. Многие разработчики (и не только новички в MySQL) создают много индексов на тех колонках, которые будут использовать в выборках, и считают это оптимальной стратегией. Например, если мне нужно выполнить запрос типа AGE=18 AND STATE='CA', то многие люди просто создадут 2 отдельных индекса на колонках AGE и STATE.

Намного лучшей (здесь и далее прим. переводчика: а обычно и единственной верной) стратегией является создание комбинированного индекса вида (AGE,STATE). Давайте рассмотрим почему это так.

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

MySQL Performance real life Tips and Tricks. To be continued.

Время на прочтение6 мин
Количество просмотров8K
По заявкам трудящихся решил написать еще одну статью, посвященную оптимизации запросов в MySQL.

В прошлой статье habrahabr.ru/blogs/mysql/38907 рассматривались вопросы оптимизации LIMIT, GROUP BY, COUNT.

В данной статье я немного вернусь к вышеописанному и опишу пару примеров, с которыми столкнулся на проекте недавно, после этого приведу еще пару небольших примеров относительно того что такое хорошо и что такое плохо в MySQL.
Читать дальше →
Всего голосов 86: ↑81 и ↓5+76
Комментарии65

MySQL Performance real life Tips and Tricks

Время на прочтение9 мин
Количество просмотров37K
Пообещал вчера написать статью о реальных случаях оптимизации БД MySQL.
Пришлось сегодня вставать утром пораньше чтобы воплотить обещанное в жизнь.
Централизованное управление мыслями поддерживать еще сложно, поэтому не судите строго за казусы и ляпсусы в моей статье.

В последнее время приходится достаточно часто заниматься оптимизацией производительности сайтов. И как правило «бутылочным горлышком» в производительности работы этих сайтов является именно БД, ошибки как в архитектуре так и в выполнении запросов. Начиная от неправильной расстановки индексов, либо совершенным их отсутствием, неправильным (неэкономным) выбором типов данных под определенное поле, заканчивая абсолютно нелогичной архитектурой БД и такими же нелогичными запросами.

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

Читать дальше →
Всего голосов 147: ↑141 и ↓6+135
Комментарии93

Информация

В рейтинге
Не участвует
Откуда
San Francisco, California, США
Зарегистрирован
Активность