Search
Write a publication
Pull to refresh
27
0.2

Mission Critical

Send message

Оптимизация графики для Retina-экранов

Reading time7 min
Views213K
После недавнего выпуска Retina MacBook Pro и The new IPad, экраны с увеличенной плотностью пикселей начали активно входить в нашу жизнь. Что это значит для веб-разработчиков?

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

Физические пиксели


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

Классный оконный менеджер — Awesome WM

Reading time4 min
Views168K
imageЗдравствуйте! Прочитав недавно статью про оконные менеджеры в Linux, мне захотелось рассказать всем о менеджере, который был там упомянут — «awesome».
Это тайлинговый windows manager для unix (linux, freebsd, openbsd, netbsd).
Читать дальше →

Полноценное Python приложение на Android

Reading time4 min
Views188K


В этой статье я хотел бы рассказать о том, как создать полноценное приложение на Python для Android. Нет, это не очередной мануал для создания скрипта для sl4a, это мануал по созданию полноценного приложения с UI, возможностью собрать apk и выложить на Android Market. Заодно я хотел бы похвалиться своим первым приложением на google.play, это не hello world, а полезное приложение для фотографов, хотя и узко специализированное.
Читать дальше →

Доступ к Skype API используя PHP на *nix системах

Reading time4 min
Views41K
Еще давно я хотел иметь свой автоответчик или бота для скайпа, называйте как вам угодно. В гугле я ничего найти не мог, да еще из-за того, что я пользуюсь Ubuntu, задача становилась сложнее в несколько раз. А если учесть, что я знаю только PHP, и то, не очень хорошо, моя мечта становилась нереальной.

Но недавно, просматривая официальную документацию по API скайпа, я обратил внимание на «D-BUS messaging», не знаю, почему я раньше не обращал на него внимание. Разобравшись со всем, я наконец сделал то, что давно хотел! Я получил доступ к Skype API на PHP. Об этом я и хочу рассказать в своей статье.

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

Angry Birds. В поисках встроенного редактора уровней

Reading time5 min
Views20K

Часть 0. С которой всё началось


Захотелось мне однажды покопаться в скриптах Angry Birds с одному мне известными целями. Я, конечно, ожидал наткнуться внутри на какие-нибудь интересности, но даже и подумать не мог, что среди них будет вполне рабочий редактор уровней. Сначала я объясню, как я получил такой результат, а в конце статьи приведу описание и скриншоты редактора, опишу простой путь включения редактора.
Читать дальше →

USB TV-тюнеры на rtl2832 — или как услышать в радиоэфире все за 600 рублей

Reading time5 min
Views509K
Давно я собирался купить какой-нибуть универсальный радиоприемник/радиосканер, чтобы полазить по эфиру, послушать о чем говорят ночью матёрые и бородатые радиолюбители…

До недавнего времени, это удовольствие обходилось от 300$ и до бесконечности. Ну а с переходом гос.органов (и России и за бугром) на цифровую (но пока еще не зашифрованную) связь APCO P25 стоимость удовлетворения нездорового любопытства стала ещё выше.

Год назад все изменилось — умельцы выяснили, что многие из продающихся у нас китайских USB TV-тюнеров за 600 рублей — фактически являются универсальным радиоприёмником, на который без каких-либо доработок можно послушать практически все-что угодно в диапазоне 50-900Мгц (если повезет — до 2200Мгц, но там голосом особо ничего не передают): переговоры самолётов с диспетчерами, строителей, такси, жучки в вашей квартире и многое другое.

Под катом я расскажу что и где покупать, как подключить и настраивать, ну и наконец — что можно послушать.
Читать дальше →

Радиоприемник 60-1700 МГц на RTL2832 за 20 баксов или SDR для начинающих

Reading time4 min
Views328K
В этой статье я расскажу о том, как, потратив совсем небольшие деньги и немного времени, получить радиоприемник, способный принимать что угодно в диапазоне 60-1700 МГц (радиостанции, звуковое сопровождение ТВ, радиолюбителей, карманные радиостанции и многое другое). Для этого
мы используем DVB-тюнер на чипе RTL2832, работающий в специальном режиме, который можно приобрести за $20 или даже дешевле.


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

Astra: первый контакт

Reading time3 min
Views34K
Изначально для вещания IPTV использовалась связка sasc-ng (дешифрование закрытых каналов) и getstream (ремультиплексирование и вещание в есть) на серверах и несколько спутниковых ресиверов. Примерно два года назад начал доработку getstream, основная цель — заменить дорогостоящие ресиверы и убрать нестабильный sasc-ng. Со временем этот проект стал известен как getstream_a84 (a84 — было названием моего аккаунта на bitbucket.org, от туда и приклеилось).
Приложение получилось вполне работоспособным, в отличии от sasc-ng не требовалось установки dvbloopback, стабильно работал с системами условного доступа DRE-Crypt и Irdeto.
Примерно год назад появилась необходимость разработать замену для getstream. Основная причина — архитектура getstream не позволяла с лёгкостью добавлять новый функционал. Даже доработка существующего кода доставляла много проблем. Новый проект получил название Astra.
Читать дальше →

Фотографии домашних офисов-3

Reading time1 min
Views48K
Продолжаю подборку фотографий интересных зарубежных домашних офисов, предыдущие хабратопики здесь и здесь. На многих фигурирует продукция Apple и IKEA.



Осторожно, много трафика!
Читать дальше →

WP Creator Calculator 3.0 — создание калькуляторов

Reading time11 min
Views29K
Вышла новая версия плагина! Версия 3.5.



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

Основные изменения:
  • Полностью переписан алгоритм построения формулы
  • Упрощена административная панель
  • Добавлена функция AJAX расчетов
  • Добавлена возможность отправлять письма расчетов
  • Исправлены все недочеты и ошибки предыдущей версии
  • Изменен принцип работы Checkbox
  • Добавлены значения по умолчанию, дабы избегать ошибок “Division by zero”
  • Запоминаются выбранные значения в форме после расчета
  • Добавлено поле jQuery
  • Добавлен Виджет калькулятора
  • Удалены лишние поля: Сортировка (теперь просто сортируем мышкой, Drag and Drop), CSS (у каждого блока и так есть уникальный класс)
  • Изменена структура таблицы в базе

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

HybridAuth — интеграция сайта с социальными сетями

Reading time7 min
Views38K

Введение


На своем сайте на php для авторизации пользователей я в последнее время пользовался сервисом Loginza. Все было очень круто и удобно, но в голове начала зарождаться идея отказа от этого замечательного сервиса и вот почему:

  1. Авторизация пользователей в случае закрытия Loginza или отказа от нее — в этом случае мы потеряем пользователей, в привязанных профилях которых не указан email;
  2. Дополнительная информация, например, ВКонтакте умеет отдавать фото пользователя в нескольких видах, в том числе квадратный аватар. С Логинзой получить эти данные не представляется возможным, сервис сам решает какие данные запрашивать и какие отдавать;
  3. С момента продажи Яндексу Логинза начала умирать: на запросы пользователей никто не отвечает, сервис не развивается, а находится в том виде, в котором был 1-2 года назад.

Встал вопрос замены и использовать альтернативные сервисы желания уже не возникало — никто не представлял возможности «общаться» с соц. сетью напрямую, а расширенные поля профиля обычно включались в платные услуги. Хотелось автономного решения с возможностью гибкой настройки запрашиваемых полей и в итоге я остановился на php библиотеке HybridAuth.
Подробнее о HybridAuth

Генерируем цветной QR-код с логотипом на Java

Reading time4 min
Views34K
Некоторое время назад мне потребовалось генерировать несколько QR-кодов для каждого пользователя системы. А чтобы было интересно сканировать этот код, было решено добавить в него логотип.
QR code example
Как это сделать читайте дальше.

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

Notifus: перенос GMail-писем, на которые вам так и не ответили, во Входящие

Reading time3 min
Views7.2K

Речь пойдет о микросервисе «Notifus», который я вначале делал для собственного использования, а затем выложил наружу. Notifus — это браузерное расширение, добавляющее новый функционал к GMail. Его главная цель — освободить нашу голову от беспокойства: ответят на письмо или нет? Расширение помогает нам «вспоминать» о письмах, на которые мы так и не получили ответа, перенося их обратно во Входящие и помечая непрочитанными.

Для чего же это нужно? Чтобы вы могли вежливо напомнить человеку: вы все еще ждете от него ответа (и, как часто бывает, побудить этим напоминанием к действию).

Мир, увы, несовершенен, и зачастую сценарий переписки с третьей стороной (чаще — вне вашей компании, но иногда и внутри) выглядит так:

  1. Вы пишете письмо с вопросом или предложением.
  2. Проходит неделя, ответа нет. Вы пишете письмо вида «Нет ли новостей?».
  3. Если снова нет ответа несколько дней, то вы пишете еще раз: «Ответьте, пожалуйста! Очень жду.».
  4. И в результате вы, спустя пару недель, наконец получаете ответ на свое письмо.
Читать дальше →

Пассивная XSS на mail.ru и готовый exploit

Reading time3 min
Views14K
Делать было нечего, дело было вечером.

Сидел как-то раз, обычный ничем не выдающийся скрипткидди дома, за своим холодным, но от этого не менее уютным ПК. В последнее время, он любил запихивать во всевозможные формы на форумах и сайтах различный наборов символов, так или иначе предназначенный для одной цели: разрушить html блок поля ввода. Он извращенец, ему доставляло удовольствие помогать людям. Администратор ресурса, будучи поставленным в известность, с его или без его помощи устранял найденную уязвимость, каждый такой случай был для него epic WIN.

Но этот вечер был необычным, потому что он не пошел на очередной форум, или частный сайт, он открыл mail.ru и подумал, почему нет?
Читать дальше →

Подмена файлов в HTTP трафике

Reading time1 min
Views25K
Помимо пассивного прослушивания трафика, MiTM атаки могут предоставить больше возможностей, вплоть до выполнения произвольного кода на стороне жертвы. При этом не требуется эксплуатация уязвимостей, а требуется лишь терпение и подходящие условия. Речь идет о подмене файлов в HTTP трафике.
Читать дальше →

Вынимаем из сундука Native Shell

Reading time2 min
Views7.9K
Продолжая раскопки в закоулках Интернета, представляю на все общее обозрение утилиты Native Shell и NativeCMD. Обе они представляют собой Native приложения — программы, предназначенные для выполнения на операционных системах Windows семейства NT (NT/2000/XP/2003/Vista/7), способные запускаться на раннем этапе загрузки Windows, до окна входа в систему и даже до запуска каких-либо подсистем Windows. Синий экран при загрузке Windows XP, в котором, например, происходит проверка диска и есть тот самый режим. Native приложения используют только Native API.

Чуть ближе к телу

Распаковка Perl2Exe

Reading time7 min
Views7.5K


Одним из наиболее часто используемых продуктов для создания standalone-приложений из perl-скриптов и организации какой-никакой защиты является продукт IndigoStar Perl2Exe. Периодически возникают ситуации, когда исходный код скрипта потерян, а на руках имеется только полученный с помощью этой программы exe-файл, но всенепременно хочется добраться до сорцев. Разберемся, как это сделать.
Читать дальше →

Как сделать веб-сервис для конвертации файлов Excel, Word, TXT и других в PDF в режиме «как вижу»

Reading time5 min
Views17K
Откуда пошла дурацкая привычка сохранять счета, бухгалтерские и финансовые документы в формате MS Excel? Зачем хранить и передавать документы, предназначенные для печати в формате электронной таблицы, если есть специальный формат PDF? Однако, во всех бухгалтерских программах документы в первую очередь обязательно экспортируются в MS Excel и уже потом предлагаются альтернативные способы сохранения документов. От сюда и возникла задача: пусть бухгалтер сохраняет свои документы как хочет, но клиент должен получить их в формате PDF и обязательно точно в том образе, который бухгалтер сваял в шаблоне MS Excel.
В качестве бухгалтерской программы мы использовали бесплатную ВС: Бухгалтерию. (По правде сказать из этой программы можно сразу сохранять документы в PDF, но раз сказали excel, значит – excel.)
Бухгалтер выгружает XLS-файл в определенный каталог на диске, откуда мы должны его забрать, перевести в PDF и сохранить в другой каталог. Все это должно быть реализовано в виде веб-сервиса, то есть клиент должен увидеть и иметь возможность скачать свои pdf-документы в «Личном кабинете» на сайте.

Пути решения:

Первое, что захотелось сделать, – это отыскать готовую библиотеку для PHP или Perl и прямо «на лету» конвертировать файлы.
Такие библиотеки для работы с форматом Excel действительно нашлись, например: PHPExcel, PHPExcelReader, Spreadsheet::ParseExcel и др.
Эти библиотеки действительно хорошо работают, но делают именно то, для чего предназначены: выискивают данные в электронной таблице Excel и оперируют с ними.
Нам же нужно совсем иное – получить экселевскую таблицу в виде как для печати, со всеми картинками с печатями и подписями, с форматами шрифтов, и ячеек.

Второй вариант решения — виртуальный принтер. Суть его в том, что мы открываем файл в подходящей программе и отправляем его на печать, но не на настоящий принтер, а – на виртуальный, который вместо бумаги сохранит в файл, сначала в постскрипт формате ps, а потом сделает из него файл PDF.
Поскольку система ко всему еще и должна функционировать как веб-сервис, я выбрал в качестве платформы Linux с Apache. А в качестве программы, которая умеет открывать все файлы MS Office – бесплатный OpenOffice.org 3.4

Итак, что делаем:

Устанавливаем OpenOffice. В руководстве по по установке конвертера PyODConverter предлагают устанавливать версию OpenOffice.org 2.4 обязательно -headless, но я просто установил OpenOffice.org 3.4 из репозитория и все получилось.
После установки я попробовал запустить программу, но система отказалась, захотев еще Java Runtime Environment. А нужен ли он? Оказалось, что нет. И запускать OpenOffice целиком, чтобы отправить файл на виртуальный принтер вовсе ни к чему. У программы есть прекрасный конвертер в pdf, который легко вызвать из командной строки.

Делается это так:

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

Универсальный валидатор микроразметки в Яндекс.Вебмастере

Reading time2 min
Views25K
В последнее время вебмастера используют семантическую микроразметку все чаще: по нашим данным, сейчас 10% страниц рунета размечены, и это число постоянно растет. А вслед за популярностью микроразметки растет и потребность вебмастеров в дополнительных ее видах. И не только тех, которые поддерживает Яндекс. Именно поэтому мы решили сделать валидатор микроразметки в Яндекс.Вебмастере универсальным. Для начала мы научили его проверять корректность всех типов разметки Schema.org и microdata.

Пример валидации разметки Product (Schema.org):валидатор микроразметки
Небольшая экскурсия в историю

Information

Rating
4,585-th
Registered
Activity