Всем давно известно, что jQuery легко расширяем. Сегодня мы добавим новый селектор — :regex.
User
Coroutines в PHP и работа с неблокирующими функциями
18 min
81KTutorial
Translation
Одним из самых больших нововведений в PHP 5.5 будет поддержка генераторов и корутин (сопрограмм). Генераторы уже достаточно были освещены в документации и в нескольких других постах (например в этом или в этом). Сопрограммы же получили очень мало внимания. Это гораздо более мощный, но и более сложный для понимания и объяснения, инструмент.
В этой статье я покажу как реализовать планировщик задач с использованием корутин, чтобы вы поняли, что с ними можно делать и как их применять. Начнем с нескольких вступительных слов. Если вы считаете, что вы уже достаточно хорошо знаете как работают генераторы и корутины, тогда можете сразу перейти к разделу «Совместная многозадачность».
Суть генератора в том, что это функция, которая возвращает не просто одно значение, а последовательность значений, где каждое значение выброшено одно за другим. Или, другими словами, генераторы позволяют вам реализовать итератор, без лишнего кода.
В этой статье я покажу как реализовать планировщик задач с использованием корутин, чтобы вы поняли, что с ними можно делать и как их применять. Начнем с нескольких вступительных слов. Если вы считаете, что вы уже достаточно хорошо знаете как работают генераторы и корутины, тогда можете сразу перейти к разделу «Совместная многозадачность».
Генераторы
Суть генератора в том, что это функция, которая возвращает не просто одно значение, а последовательность значений, где каждое значение выброшено одно за другим. Или, другими словами, генераторы позволяют вам реализовать итератор, без лишнего кода.
+95
10 дистрибутивов Linux специального назначения
2 min
224KTranslation
Прелесть Linux в том, что можно сделать дистрибутив под любые запросы. Требуется лишь время и желание. Многие популярные дистрибутивы Linux — результат работы отдельных энтузиастов или групп, недовольных имеющимся набором опций. Вот некоторые из дистрибутивов Linux специального назначения.
1. Parted Magic OS: дистрибутив для восстановления дисков и работы с разделами, который поддерживает более десяти файловых систем и включает различные утилиты для «переноса, копирования, создания, удаления, расширения и сжатия дисковых разделов. Клонирование дисков и осуществление полного бэкапа. Тестирование дисков на возможность сбоя в будущем. Поиск сбойных секторов. Тестирование производительности компьютера. Безопасная полная очистка диска без возможности восстановления. Доступ к незагружаемым HDD для восстановления важных данных».

1. Parted Magic OS: дистрибутив для восстановления дисков и работы с разделами, который поддерживает более десяти файловых систем и включает различные утилиты для «переноса, копирования, создания, удаления, расширения и сжатия дисковых разделов. Клонирование дисков и осуществление полного бэкапа. Тестирование дисков на возможность сбоя в будущем. Поиск сбойных секторов. Тестирование производительности компьютера. Безопасная полная очистка диска без возможности восстановления. Доступ к незагружаемым HDD для восстановления важных данных».

+96
Google Play не взломан, однако бесплатно совершать покупки в приложениях можно
1 min
446KУважаемые хабровчане, как и обещали, мы с madkite выкладываем в общий доступ хак in-app покупок и проверок лицензий для Google Play. Все, что от вас нужно — рутованное устройство на Android. Работает на телефонах, планшетах, плеерах и даже телевизорах! Смотрим видео:
+43
SMS-вымогатель в виде набора плагинов для браузеров
8 min
59KНа днях наткнулся на свежий SMS-вымогатель в виде набора плагинов для браузеров. Как он попал на машину точно сказать не могу, но что у него внутри разберу. Штука свежая, от пятого числа этого месяца, если судить по датам компиляции плагина для IE.


+90
Установка зашифрованной (TrueCrypt) Windows при Ubuntu по умолчанию
6 min
63KTutorial
Нужно: поставить на одну машину одновременно Windows и Ubuntu таким образом, чтобы нельзя было посмотреть содержимое Windows, не имея пароля. CD-ROM'а нет, USB Only.
Работа с виртуалкой из под Ubuntu не понравилась по многим причинам, основная — существенные проблемы производительности.
Решено: ставить параллельно 2 операционки (Windows & Ubuntu) таким образом, что по умолчанию грузится Ubuntu, а Windows размещается на загрузочном разделе.
Работа с виртуалкой из под Ubuntu не понравилась по многим причинам, основная — существенные проблемы производительности.
Решено: ставить параллельно 2 операционки (Windows & Ubuntu) таким образом, что по умолчанию грузится Ubuntu, а Windows размещается на загрузочном разделе.
+52
-8
«Оцифровываем» каптчу единого реестра сайтов, защищающего людей от информации
3 min
24KTutorial
Совсем недавно открылся портал Единого государственного реестра сайтов. Отдельно от всего прочего мне приглянулась очень слабая каптча, и я решил её побороть.
Подобными вещами я уже занимался, правда, не в таком масштабе. Если вам интересно, как получить КПД распознавания в 57% используя только GNU/Bash, imagemagick и Tesseract-ocr, добро пожаловать под кат.
Нижеследующая инструкция может быть легко модифицирована под любые другие подобные слабые каптчи.
Подобными вещами я уже занимался, правда, не в таком масштабе. Если вам интересно, как получить КПД распознавания в 57% используя только GNU/Bash, imagemagick и Tesseract-ocr, добро пожаловать под кат.
Нижеследующая инструкция может быть легко модифицирована под любые другие подобные слабые каптчи.
+53
Сравнение адаптивных CSS фреймфорков: Bootstrap, Foundation и Skeleton
1 min
105K
Недавно Brian Haveri в блоге vermilion.com сделал отличное наглядное сравнение популярных CSS-фреймворков (статья), которые можно использовать для разработки адаптивных сайтов.
За последний год мне удалось поработать со всеми этими фреймворками: Bootstrap, Foundation и Skeleton, и могу сказать, что в свое время такая табличка сохранила бы кучу времени. Поэтому я перевел ее на русский язык, добавив немного своих комментариев. Надеюсь будет полезно хабровчанам.
+67
Подборка инструментов для эффективной frontend разработки
3 min
101KВ эту прекрасную пятницу осмелюсь предложить хабрасообществую небольшую подборку приложений, предназначенных для увеличения продуктивности во время работы с фронтэндом. Если ваш любимый апп здесь не представлен — добро пожаловать в комментарии!
Form Builder

Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
Form Builder

Этот прекрасный генератор форм поможет вам в создании красивейших CSS логин-боксов и прочих input вещей, при минимальных временных затратах. Помимо форм на сайте этого проекта можно создавать и другие не менее красивые CSS элементы, в том числе кнопки и ленты.
+190
MySQL. Выбор случайных строк в один запрос
3 min
19KЧто имеем?
Есть слабенький ноутбук, таблица на несколько миллионов строк и нужно выбирать разное количество случайных строк в одном запросе. Дальнейшие выборки нас не интересуют.
Таблица(test) имеет следующую структуру:
- — pk_id ( первичный ключ )
- — id ( поле заполненное разными числами )
- — value ( поле заполненной с помощью rand() )
Первичный ключ не имеет дыр и начинается с 1.
+36
Как правильно мерять производительность диска
14 min
353KTutorial
abstract: разница между текущей производительностью и производительностью теоретической; latency и IOPS, понятие независимости дисковой нагрузки; подготовка тестирования; типовые параметры тестирования; практическое copypaste howto.
Предупреждение: много букв, долго читать.

Очень частой проблемой, является попытка понять «насколько быстрый сервер?» Среди всех тестов наиболее жалко выглядят попытки оценить производительность дисковой подсистемы. Вот ужасы, которые я видел в своей жизни:
Это всё совершенно ошибочные методы. Дальше я разберу более тонкие ошибки измерения, но в отношении этих тестов могу сказать только одно — выкиньте и не используйте.
Предупреждение: много букв, долго читать.
Лирика

Очень частой проблемой, является попытка понять «насколько быстрый сервер?» Среди всех тестов наиболее жалко выглядят попытки оценить производительность дисковой подсистемы. Вот ужасы, которые я видел в своей жизни:
- научная публикация, в которой скорость кластерной FS оценивали с помощью dd (и включенным файловым кешем, то есть без опции direct)
- использование bonnie++
- использование iozone
- использование пачки cp с измерениема времени выполнения
- использование iometer с dynamo на 64-битных системах
Это всё совершенно ошибочные методы. Дальше я разберу более тонкие ошибки измерения, но в отношении этих тестов могу сказать только одно — выкиньте и не используйте.
+139
Google’s Mod_Pagespeed вышел из беты
1 min
13K
Для тех, кто как я, не знал, что такое mod_pagespeed — это модуль для Apache, собравший в себе очень много механизмов оптимизации. На страничке приводятся:
- Оптимизация изображений, их ресайз и компрессия
- Сращивание и минификация JS и CSS
- Отложенная загрузка JS и изображений
И многое-многое другое.
+32
Производительность VPS: сколько вешать в граммах?
4 min
21K
Чтобы разобраться в вопросе со всей нужной глубиной, мы провели тестирование производительности более-менее одинаковых тарифных планов от наиболее популярных российских провайдеров на одной из самых популярных коммерческих платформа в России для создания сайтов – 1C-Битрикс. Почему на ней? Причин довольно много: и стандартная установка базового сайта, и наличие тарифных планов «специально подобранных», да и просто существование определенного набора пакетов «Окружения Битрикс», которые гарантируют относительно равноправное участие различных площадок в тестировании (когда мы можем сравнивать производительность без учета специфики операционной системы или серверного окружения).
+6
Перехват видео в браузере или TCP сниффер под Windows на коленке (часть вторая)
8 min
14KЭто обещанное дополнение к моему предыдущему посту, в котором рассказывается про альтернативную технику установки ловушек на функции. Одним из недостатков реализации ловушек в предыдущем посте было постоянное переписывание кода в начале перехваченной функции. В качестве альтернативы было упомянуто решение, которое не требовало бы постоянной перезаписи. Принципиальная схема его работы предоставлена здесь:

Исходники, детали и пояснения под катом…

Исходники, детали и пояснения под катом…
+31
Перехват видео в браузере или TCP сниффер под Windows на коленке (часть первая)
19 min
40KОднажды, не очень давно, мне порекомендовали фоновую качалку потокового видео под названием Jaksta, которая позволяет записывать потоковое видео на диск прямо во время просмотра YouTube, Facebook видео, GoogleVideo и так далее. В результате ее установки я получил стойкий BSOD при каждой загрузке Windows. Переключившись в Safe Mode я снес нафиг это творение, но возникли вопросы.
Краткое изучение софтины показало что она устанавливет NDIS Miniport драйвер, который конкретно в моей системе стал умирать при загрузке. «Нафига такие сложности?», подумал я и решил поэкспериментировать с реализацией перехвата потокового видео из браузера без всяких драйверов.
Краткое изучение софтины показало что она устанавливет NDIS Miniport драйвер, который конкретно в моей системе стал умирать при загрузке. «Нафига такие сложности?», подумал я и решил поэкспериментировать с реализацией перехвата потокового видео из браузера без всяких драйверов.
+79
Оптимизация графики для Retina-экранов
7 min
213KTranslation
После недавнего выпуска Retina MacBook Pro и The new IPad, экраны с увеличенной плотностью пикселей начали активно входить в нашу жизнь. Что это значит для веб-разработчиков?
Для начала разберемся в терминологии.

Для начала разберемся в терминологии.
Физические пиксели

+120
Доступ к Skype API используя PHP на *nix системах
4 min
41KЕще давно я хотел иметь свой автоответчик или бота для скайпа, называйте как вам угодно. В гугле я ничего найти не мог, да еще из-за того, что я пользуюсь Ubuntu, задача становилась сложнее в несколько раз. А если учесть, что я знаю только PHP, и то, не очень хорошо, моя мечта становилась нереальной.
Но недавно, просматривая официальную документацию по API скайпа, я обратил внимание на «D-BUS messaging», не знаю, почему я раньше не обращал на него внимание. Разобравшись со всем, я наконец сделал то, что давно хотел! Я получил доступ к Skype API на PHP. Об этом я и хочу рассказать в своей статье.
Но недавно, просматривая официальную документацию по API скайпа, я обратил внимание на «D-BUS messaging», не знаю, почему я раньше не обращал на него внимание. Разобравшись со всем, я наконец сделал то, что давно хотел! Я получил доступ к Skype API на PHP. Об этом я и хочу рассказать в своей статье.
+83
Пять способов вызвать функцию
5 min
374KTranslation
Мне часто приходится сталкиваться с JavaScript-кодом, ошибки в котором вызваны неправильным понимаем того, как работают функции в JavaScript (кстати, значительная часть такого кода была написана мной самим). JavaScript — язык мультипарадигменный, и в нем имеются механизмы функционального программирования. Пора изучить эти возможности. В этой статье я расскажу вам о пяти способах вызова функций в JavaScript.
+124
Написание программ на PHP с использованием fork()
5 min
38KПараллельные программы на PHP
Раньше заголовок темы был «Написание многопоточных программ на PHP». В PHP есть ровно один «нормальный» способ писать приложения, которые используют несколько ядер/процессоров — это fork(). О прикладном использовании системного вызова fork() в языке PHP и расширения pcntl я и расскажу. В качестве примера мы напишем достаточно быструю параллельную реализацию grep (со скоростью работы, аналогичной
find . -type f -print0 | xargs -0 -P $NUM_PROCS grep $EXPR
).+67
Information
- Rating
- Does not participate
- Registered
- Activity