суббота, 28 января 2012 г.

PHPclasses.org - тут живут классы PHP.

Пришлось мне как-то помогать коллеге "по цеху" создавать ма-а-а-аленький веб-портал на PHP. И в одном из блоков нужно было создать аналог, привычного всем GUI-программистам, табличного компонента с возможностью просмотра и редактирования данных. Конечно же, речь сразу пошла о Web 2.0, AJAX и т.д. и т.п. Но если это стало нужно нам, то это скорее всего требовалось и кому-то еще (кто же не любит похалтурить и воспользоваться плодами трудов другого человека? ;-)) - вот так поискав в Интернете я и вышел на замечательный сайт PHPclasses.org.
Название ресурса говорит само за себе - PHP классы. И классы там действительно есть и они действительно написаны на PHP :-). Создатели этих наработок такие же программисты как мы и, кстати, ничего не мешает вам самим разместить там свой собственный "имба"-класс :-))

четверг, 19 января 2012 г.

Кодируем видео для HTML5

Я более чем уверен, что все уже в курсе о Web 2.0 и HTML5 и о их победном шествии по просторам Интернета :-). Кто же не знает какие "плюшки" дарует нам новый стандарт, рекомендую посетить сайт HTML 5 Demos and Examples, что бы самим все увидеть и "пощупать". Некоторые вещи очень интересны и особенно долгожданный тег <video>. Я не буду рассказывать о текущих перипетиях идущих вокруг вопроса о том, какой в итоге кодек должен быть использован для тега <video> - об этом вы сами можете прочитать пройдя по ссылке на Википедию. Я хотел бы поделиться способом относительно быстрой конвертации в формат WebM - наиболее перспективного кандидата для официального закрепления за званием "кодек тега <video>".
И в этом деле нашим помощником будет набор свободных библиотек для работы с видео/аудио - ffmpeg. Поскольку ffmpeg является кросс-платформенным программным обеспечением - кодирование видео с его помощью получается достаточно универсальным решением. Скачать данный пакет вы можете со страницы загрузки проекта. Пользователи Windows обратите внимание, что скачать ffmpeg вам необходимо от сюда (не знаете какую версию качать? тогда скачивайте версию "static" - один монолитный файл).
Как и все аццко-интересное в мире свободного софта, ffmpeg консольная утилита, а значит "командная строка" нам в руки :-). Но не пугайтесь любители графических программ - много "набирать" не придется - разработчики ffmpeg уже за нас постарались и заранее создали необходимые шаблоны кодирования видео, в том числе и WebM. Все что нам потребуется - так это в командной строке выполнить команду:

ffmpeg -i input_file -f webm output_file

где, input_file - имя видео-файла, который необходимо перекодировать в формат WebM; output_file - имя выходного файла в формате WebM. Например:

ffmpeg -i my_video.avi -f webm my_video.webm

Согласитесь - очень просто и не затейливого, а самое главное - бесплатно ;-).
Конечно же, не только для кодирование в формат WebM вы можете использовать ffmpeg. Возможности его широки и узнать о них вы всегда сможете вызвав справку (ключ "-h"), уж извините, ибо чтобы о них всех, даже вкратце, рассказать - потребуется писать отдельные статьи :-).
На сегодня все ... пойду кодировать свою видео-коллекцию... всякого кино :-)

среда, 18 января 2012 г.

Карты всякие нужны, карты всякие важны!

[Image]
Все мы, пользователи Интернета, люди "продвинутые" (раз уже смогли в "сеть" выйти :-)) и атрибутами современности нас уже не удивишь - будь то "планшетник" или виртуальная банковская карта. Некоторые "адепты сети" даже работают в ней и зарабатывают деньги, в то время как другие оставляют их, пользуясь интернет-магазинами и прочими on-line "радостями". С учетом бурно развивающейся интеграции сетевой коммерции с классическим банковским сектором (чего только стоит принятый закон "О национальной платежной системе", определяющий, в том числе, и операции с электронными деньгами) у пользователей Интернета появляется все больше и больше возможностей использовать банковские карты для расчетов в сети. Где-то напрямую, а где-то посредством электронных кошельков. Свою особую актуальность связка "электронный кошелек - банковская карта" приобретает, конечно же, для людей занимающихся "сетевым" заработком (фрилансеры и иже с ними). Но сегодня речь не об этом, сегодня я хотел бы затронуть вопрос доступных (читай "бесплатных" ;-)) банковских карт, которые мы можем использовать для своей "финансовой" активности в Интернете - работой с электронными кошельками. Полагаю не стоит затрагивать тему опасности использования основной карты для работы в сети? Кардеры и "кул хацкеры" не дремлют :-). Если же вы не задаетесь вопросом "где взять бесплатную банковскую карту", и вас устраивает любая карта, то читать этот пост далее вам, скорее всего, будет не интересно. Для тех же, кто не "ворочает миллионами" в Интернете, и не желает тратиться на дополнительную карту для расчетов в сети, предлагаю свой мини-обзор возможных карточных продуктов :-).

четверг, 12 января 2012 г.

QR-код: "мобилизируем" сайт по-японски!

Оказывается, в Японии придумали не только суши, но и технологию графического кодирования информации известную как QR-код (от англ. "Quick Response" - "быстрый отклик"). Возможно вы уже встречали на каких-нибудь сайтах или в журналах похожие картинки:
Пример QR-кода
Подобная матрица черно-белых квадратов и есть не что иное, как QR-код. Техногенные японцы пошли дальше всем нам известного штрих-кода (типа EAN13 на товарах народного потребления) и развили его до технологии, позволяющей кодировать в одном сообщении-изображении свыше 4000-х тысяч национальных символов (поддерживается Unicode). В современной Японии QR-код стал настолько популярным явлением, что даже применяется в ролевых играх ... не садо-мазо, конечно, попроще ... что-то вроде "найди няшку" :-), а также наносится на могилы усопших.
Патентообладатель - компания Denso Wave - не только стандартизировала данную технологию (ISO/IEC 18004:2006 на текущий момент), но и открыла свободный доступ к ней всему сообществу. Т.о. нам совершенно ничего не мешает штамповать "квадратики" и размещать где душе заблагорассудится. А для этого у нас есть очень хорошая площадка - сайт или блог ;-).

пятница, 4 ноября 2011 г.

Qt примеряет Clang.


Бродил тут давеча по сайту Qt и неожиданно для себя набрел вот на этот пост. Оказывается, парни из лаборатории Qt уже достаточно давно примеряют компилятор Clang для своих наработок. Кто не в курсе, Clang – компилятор C/C++ на базе платформы LLVM.  Запись в блоге было забавно читать, учитывая, что основным спонсором разработки Clang выступает компания Apple :-).
Но, если отбросить в стороны всякие мотивы для холиваров, новость то замечательная! Чего только стоит улучшенный разбор синтаксиса, по сравнению с GCC, позволяющий в режиме отладки получать ошибки с позиционированием вплоть до символа.
Собрать саму библиотеку Qt сейчас вам навряд ли удастся, но вот QtCreator попробовать можете. По крайней мере, разработчикам Qt это удалось :-).
Остается лишь понадеется, что работа по заточке Qt под Clang не остановится, и в скором времени у нас появится выбор между GCC и Clang. А выбор – это всегда хорошо. 

среда, 28 сентября 2011 г.

Гигабайт бесплатно? Дайте два!!!

Я думаю, со мной согласятся многие - подарки получать очень приятно... Тем более, если это нужная вещь, а не тот вал хлама, что гости оставляют в день рождения :-). 

Вот так, будучи в отпуске, заскочил в один крупный магазин прихватить живительного напитка для пляжа, пиво, и неожиданно для себя стал обладателем USB флешки "It's Miller Time" объемом 1 Гб. По прибытии домой, на сее устройство был тут же развернут образ Hiren's Boot CD, предварительно, правда, пришлось повоевать с троянской программой (не спрашивайте откуда она там взялась - не знаю ... может быть это тоже часть промо-компании Miller?)... Давно мечтал иметь отдельную "системную" флешку :-))))

Но рассказать я вам хотел, конечно же, не столько о полученном подарке, сколько о ресурсе предоставляющем услуги "виртуальной" флешки - DropBox.

пятница, 1 июля 2011 г.

Qt: сборка плагина QIBASE. Qt + FireBird Embedded.

     Задумал я тут в недавнем прошлом переписать на Qt программу ранее созданную в Visual Basic 6.0. Попутно решил заменить "классический" сервер БД MySQL, используемый сейчас, каким-либо встраиваемым решением. Основная идея задумки - получить кросс-платформенное и портативное приложение. Исключая хранилища данных основанных на файлах, функционал Qt предложил на выбор, по-сути, три возможных решения: 1) SQLite, 2) MySQL Embedded, 3) FireBird Embedded.
     Первым делом, конечно же, было решено задействовать MySQL Embedded. Следуя инструкции, описанной в справочной системе Qt, собрал плагин QMYSQL слинкованный с MySQL Embedded библиотекой. Сборка прошла успешно, тестовое приложение плагин находило, а вот работать категорически отказывалось. Перелопатив десяток "веток" форумов по теме "Qt + MySQL Embedded" вышел на один сайт с подробным описанием манипуляций, необходимых что бы эту связку заставить работать. Правда, почитав представленную информацию, пришлось отказаться от идеи, т.к. один из ключевых моментов - статическая линковка библиотеки MySQL Embedded (что мне категорически не подходит). Не знаю справедливо ли это для пользователей Linux, но то, что и них есть свои проблемы с ее работой это факт (хотя, возможно, им просто не хватало терпения или библиотеки hands.so ;-)). По некоторым слухам, в Qt 4.8 обещают включить отдельно плагин для MySQL Embedded (на момент написания этого очерка в snapshot Qt 4.8 все оставалось как и прежде - один плагин), пока же этого не произошло, для себя я решил "забыть туда дорогу" :-).
     Следующая на очереди была СУБД SQLite. Сразу порадовала ее поддержка Qt прямо "из коробки", а так же внутренняя кодировка данных - UTF-8/UTF-16. Но радоваться долго не пришлось, как оказалось, SQLite регистронезависимый поиск поддерживает только для символов входящих в кодировку ASCII. Для всех остальных предлагается писать свои функции сравнения, либо использовать связку со сторонней библиотекой ICU. Перспектива собирать библиотеку ICU и перекомпилировать SQLite с ее участием ... меня не впечатлила и я решил, предварительно, ознакомиться с FireBird Embedded. Сделал я это точно не зря - и "головняка" меньше и возможностей больше ;-).