понедельник, 29 сентября 2014 г.

Bitrix Framework. Пример с пустым компонентом.

Как известно, компонент - основной способ вывода информации в Bitrix Framework. Соответственно именно работа с ним дает максимальные возможности по изменению условий вывода данных и изменению (добавлению) функционала системы. Но иногда функционала стандартных компонентов для реализации нужной задачи нам не хватает, либо же модификация их представляется достаточно трудоемкой и так и хочется написать свой компонент для реализации определенной задачи, либо же реализовать нужный функционал на чистом PHP. На самом деле редко кто читает документацию от Битрикс, а в данном случае она может быть очень полезной. Я не зря привел здесь картинку иллюстрирующую как именно работает стандартный компонент. Перво-наперво, перед тем как делать что-то - я бы все равно рекомендовал прочитать раздел Работа с компонентами из учебного курса Разработчик Bitrix Framework, уделив при этом особое внимание разделу Пример с пустым компонентом. Именно там разобрана типичная ошибка начинающих разработчиков Битрикс - использование PHP в явном виде в теле страницы.


Что же нам предлагается в этом уроке? Использовать вызов пустого компонента system.empty, а необходимые действия производить в обработчике result_modifier.php, соответствующего шаблона. И все бы хорошо, вроде и документация есть, и пример можно посмотреть. Да вот беда - компонента system.empty попросту нет в стандартной поставке Битрикс ;) В чем же подвох? Посмотрите внимательно на вызов этого компонента в уроке, он описан как bitrixonrails:system.empty. Т.е. это не компонент стандартной поставки Битрикс, иначе был его вызов был оформлен как bitrix:имя_компонента, а некий bitrixonrails. Причем что это, где это брать и т.п. - про все это в официальной документации ни слова. Ну да благо есть Google, Яндекс и иже с ними. BixtrixOnRails - это проект, который посвящен разработке различных утилит, компонентов, модулей, шаблонов, которые помогут разрабатывать веб-проекты на Bitrix CMS (PHP).

Собственно в этом же SVN можно взять и "исходные коды" пустого компонента:

svn checkout http://bitrixonrails.googlecode.com/svn/trunk/ bitrixonrails-read-only

Либо скачать архив отсюда. Ну а далее - все просто. Создаем в папке /bitrix/components на сайте подпапку bitrixonrails и уже в нее копируем подпапки system.empty и system.empty.complex. После чего пример приведенный в уроке с пустым компонентом заработает. Если вы рассмотрите этот пример, то наверняка поймете смысл того, как работают компоненты. Ну и напоследок, небольшая статья - Компоненты Битрикс. Создание простого компонента, в которой иллюстрируется как создать простой компонент Битрикс. Как мы видим - ничего сложного. Можно под собственные нужды делать отдельные компоненты, а можно использовать вызов пустого компонента system.empty логика работы которого будет описана в нужном шаблоне в файла result_modifier.php.

пятница, 26 сентября 2014 г.

Нельзя вот так, просто взять и встроить картинку в HTML ...

На написание этой заметки меня вдохновила только что прочитанная статья на Хабре. Была она вовсе не про картинки, а про описание поисковых расширений и улучшение контекстного поиска в браузере. Но заканчивалась она чем-то вроде ... если вы не хотите искать, то вот сервис для преобразования картинок в base64. Для тех кто не в курсе могу рассказать, что современные браузеры в <img src="..."> понимают не только URL картинки, но и конструкцию вида data:image/jpeg;base64, собственно то же поддерживается и в CSS разметке. Т.е. картинку можно вставить непосредственно в HTML, либо CSS файл, прямо в SRC, предвартельно преобразовав ее в base64. Зачем это нужно? Ну например при создании различных анимированных меню, всякие состояния кнопочек, которые отображаются в картинках можно разместить прямо в CSS. За счет этого, к примеру, уменьшается количество запросов к web-серверу ... представьте себе что у вас на странице 30 различных мелких вариантов кнопок и т.п., это 30 запросов к web-серверу для 30 файлов. А можно их все разместить в одной CSS или HTML ... Ну да не будем отвлекаться. Увидел я этот онлайн сервис ... и мне тут же вспомнились инструменты разработчика Google Chrome. в которых как раз была такая функция - Copy image as data URL ...


И, собственно, без всякого онлайна ваша картинка будет преобразована. К слову, до этого мне очень нравились аналогичные инструменты в Opera Dragonfly (когда Opera была еще на движке Presto), но постепенно начал привыкать к Ctrl-Shift+I в Google Chrome. На этой счастливой ноте я пожалуй пойду смотреть The Signal ... Кстати, картинка к нему в этом посте вставлена именно как DATA URL. Можете посмотреть исходный код этой страницы ... 

четверг, 25 сентября 2014 г.

Alcatel One Touch Pixi 4007D за 990 рублей

Сегодняшний наш мини-обзор будет посвящен телефону Alcatel One Touch Pixi 4007D, хотя в общем смысле даже обзором эту заметку назвать наверное нельзя. Просто, как факт - рассказать вам о том что такой аппарат существует. В последнее время компанией Alcatel было представлено достаточно много бюджетных аппаратов на Android'е, различающихся разве что внешне, т.к. аппаратная начинка была примерно одинаковой, в том плане, что различались лишь вендоры и модели чипсетов. По производительности же данные устройства были примерно идентичны. Не исключением стал и Alcatel OT-4007D. На момент написания этой заметки этот аппарат можно приобрести по акции от МТС за 990 руб. в салонах Связной (полная стоимость аппарата - 1990 руб.)

Смартфон Alcatel One Touch Pixi 4007D - бюджетная модель с 3,5-дюймовым сенсорным экраном, поддержкой двух сим-карт и возможностью подключения высокоскоростного 3G-интернета. Вариантов исполнения всего два - белый и голубой. OT-4007D оснащен 3.5" TFT дисплеем с разрешением HVGA 320 x 480 пикселей.

Сердцем аппарата является чип MediaTek MT6575 - это решение включает процессор ARM Cortex A9, функционирующий на тактовой частоте 1 ГГц, модем с поддержкой сетей 3G/HSPA, а также предусматривает использование в качестве операционной системы Android 4.0 (Ice Cream Sandwich). Однако, на этом аппарате по-умолчанию предустановлен Android 2.3 Gingerbread, что не соответствует "современным трендам". Если верить популярным форумам по мобильной тематике, то прошивок кроме версии Android 2.3.6 на телефон не существует. Впрочем это компенсируется наличием различных "кастомов". Но вернемся к железу. Внутренняя память представлена 512 Mb EMMC и 256 Mb RAM, что откровенно мало по современным меркам. Что касается лично меня, я бы вообще не рассматривал в качестве варианта возможной покупки устройства обладающие меньше чем 1 Gb RAM (оперативной памяти), в противном случае при работе с большинством современных приложений - гарантируются "подтормаживания" и зависания устройства. Однако, несмотря на эти недостатки акционная цена аппарата в 990 руб. для некоторых - может быть одним из основополагающих факторов при выборе. Правда, тут необходимо учитывать условия акции, т.е. необходимость подключения тарифного плана Smart Mini в МТС за 1000 руб.

Вообщем в качестве резюме - аппарат уже архаичный, но ввиду привлекательной цены, а также совместно проводимой МТС + Связной акции - вполне может быть приобретен кем-то в качестве обычной "звонилки" или рабочего аппарата, а-ля телефон + почта + новости. С полным обзором Alcatel One Touch Pixi 4007D можно ознакомиться на сайте Mobile Review здесь, на страницах интернет-магазина Связной - тут. Ну и наконец на официальном сайте производителя - OneTouch Pixi 4007D.

четверг, 18 сентября 2014 г.

Полезняшки от Ocean. Или Ключевалка 1.0 ...

Сегодня, бродя по интернету в поисках одного нужного мне софта, наткнутся на интересный сайт - http://oceansoft.narod.ru/ , собственно ресурс создан аж в 2004 году, судя по новостям. Но вот одна из программ, представленная на нем, показалась мне интересной. ПО Ключевалка, разработанное Ocean Software предназначено для проверки ключей различных кодов. И хотя в описании заметна некоторая тавтология - программа действительно может оказаться полезной в ряде случаев. В частности, по введенному ИНН она может проверить его правильность, а также отобразить информацию о налоговой инспекции, выдавшей данное свидетельство, то же самое касается и номеров ОГРН/ОГРНИП. Несмотря на то что база налоговых инспекций в программе, видимо датируется 2004 годом, предоставленная информация может оказаться полезной, даже в плане проверки правильности (т.е. теоретической возможности существования такого номера ИНН или ОГРН). То же самое касается и банковских счетов. В Ключевалке есть возможность по введенному номеру счета и БИК получить информацию о банке. Чтобы далеко не ходить за примером возьмем реквизиты ООО НКО «Яндекс.Деньги» и введем их в программу (БИК 044579444 Корр/счет 30103810800000000444). Программа безошибочно определила, что тип счета - корреспондентский, валюта счета - рубли, а банк в котором открыт счет - РайффайзенБанк. Помимо этого в программе есть возможность проверки валидности номера кредитной карты, а также определения ее типа (Visa, Maestro и т.п.) ... Аналогичные функции предусмотрены предусмотрены для проверки номера страхового свидетельства пенсионного фонда, и различных типов штрих-кодов (EAN-13, EAN-8, UPC-A, UPC-E) с определением принадлежности к определенной группе товаров.

Казалось бы, подобный функционал реализован в массе других приложений, но согласитесь иметь под рукой такой универсальный "калькулятор", т.е. "ключевалку" - иногда может оказаться полезным. Программа абсолютно бесплатна и распространяется по принципу FreeWare. Скачать ее можно на официальном сайте автора. Вот такой вот мини-обзор мини-утилиты ... ) Может кому-нибудь данная информация окажется полезной.

Вышел новый защищенный мессенджер BitTorrent Bleep Alpha

Команда Bittorrent продолжает радовать нас новинками. Совсем недавно мы рассматривали использование P2P клиента Bittorrent Sync для синхронизации данных и вот теперь нам доступно новое приложение - защищенный мессенджер Bleep (пока доступна Alpha версия).

Общение с друзьями, семьей и коллегами сейчас стало проще чем когда-либо. Существует масса различных способов коммуникации - Skype, Viber, ICQ, Mail.Ru Agent, Jabber, VK, Одноклассники и этот список можно продолжать бесконечно. Но так ли оно безопасно? Интернет способствует свободному обмену инофрмацией, но зачастую мы жертвуем конфиденциальностью ради удобства. Взять хотя бы ту же самую почту, думаю ни для кого не секрет, что некоторые почтовые сервисы сканируют вашу переписку в автоматическом режиме для сбора данных о ваших предпочтениях, например, для показа контекстной рекламы и т.п. И хотя это вызывает справедливое возмущение пользователей, выражающееся в судебные процессы в стиле "Пользователи vs. Корпорация", а также общественные компании за охрану частной жизни, неприкосновенности переписки и т.п. Так или иначе - при использовании подобных сервисов - никто от этого не застрахован. Плюс, во многих странах есть законы, по которому компании обязаны предоставить правоохранительным органам доступ к содержимому вашего почтового ящика или переписки. Да и хранение персоональных данных, той же переписки, на различных "облачных сервисов" делает их лакомым кусочком для атак злоумышленников. Что же делать и как быть спросите вы? И разработчики из BitTorrent отвечают ... именно над этим они и работают.

В конце июля разработчики из BitTorrent рассылали приглашения на участие в тестировании альфа-версии их нового P2P мессенджера Bleep. После закрытого альфа тестирования вышла в свет публичная версия, опробовать которую может любой желающий. На официальном сайте Bleep  уже доступны для скачивания версии клиента под Windows, Mac и Android. Для регистрации в Bleep можно использовать номер мобильного телефона, электронную почту, или режим "инкогнито", без предоставления какой-либо персональной информации. На данный момент поддерживаются голосовые вызовы и отправка текстовых сообщений для онлайн-контактов, также есть возможность импорта адресной книги Google и возможность пригласить друзей через email, SMS, QR код или публичный ключ. Также можно использовать одну и ту же учетную запись Bleep на Android и ПК и получать сообщения одновременно на все устройства.

Как заявляют разработчики: "Every message sent through Bleep is fully encrypted, end to end, and only stored locally on your device, ensuring privacy with every message. Users can also easily delete their encrypted message history, leaving no trace of conversation behind."

Т.е. каждое сообщение передаваемое через Bleep передается между собеседниками в зашифрованном виде и хранится только на локальных устройствах, обеспечивая конфиденциальность каждого сообщения (т.е. Bleep использует P2P архитектуру и не хранит пользовательские данные на своих серверах). Пользователи также легко могут удалить свою зашифрованную историю сообщений, не оставляя таким образом никаких следов своей переписки.

Честно говоря приложение под Android я еще не пробовал, хотя оно уже доступно в Google Play - Bleep (alpha). А вот PC версию установил. В самом начале нам предлагается ввести ник и адрес электронной почты, либо пройти регистрацию через номер телефона или же использовать режим "Инкогнито", собственно так, как и было заявлено. Лично я выбрал вариант регистрации на e-mail, после чего на указанный мной адрес электронной почты был отправлен код подтверждения (Bleep Authorization Token) ... Т.к. контактов Bleep в моем списке пока еще нет, то собственно опробовать приложение в работе пока не удалось, я обязательно сделаю это позже, когда мои знакомые присоединятся к Bleep и постараюсь рассказать тут о результатах тестирования ... Пока же могу показать только интерфейс приложения (выглядит это достаточно аскетично):


Ну а с другой стороны, нужно ли мессенджеру больше?

среда, 17 сентября 2014 г.

Небольшой эксперимент с JavaScript в блоге



Javascript Crypt Example
Crypt:
Res:
Собственно выяснилось, что платформа Google Blogger позволяет использовать JavaScript и формы в теле постов, что можно использовать для создания интерактивных форм и т.д. и т.п. Возьмем небольшую теоретическую задачу. Допустим у нас есть строка из Hex-символов, максимальной длиной положим 10 символов в строке. Необходимо проXORить каждый из этих симоволов с 0xFF и вывести результат в виде ASCII. К примеру, для входной строки 9B9A9C949A8DD18C8A, результатом будет - decker.su. Расположенная слева форма, как раз проделывает вышеописанную операцию с помощью JavaScript. 5 минут гугления справочника по JS, ловкость рук ... и форма готова ) Может быть кому-нибудь пригодится.

понедельник, 15 сентября 2014 г.

Мегафон Login 3. Модифицированный Recovery.

Не так давно в статье Как получить root на Мегафон Login 3 (MT4A)? мы писали о модифицированном оригинальном recovery с отключенной проверкой цифровой подписи update.zip, позволившим получить root на планшете (с помощью заливки специального update.zip, который помещал в /system/xbin файлы su и daemonsu). Т.к. CWM для Login 3 собрать пока не получается (вернее он собирается, но изображение на экране с деффектами, видимо надо крутить graphics.c), я решил немного покопать в сторону оригинального recovery. Итак, давайте задумаемся, а зачем собственно нам cwm? Чтобы делать backup'ы раздела system и пользовательских данных, и восстанавливать их в случае чего. Однако, той же возможности, правда, наверное в менее удобном варианте можно добиться и через обычный recovery, слегка подправив его. Итак, что мы знаем о recovery и adb ... то что когда устройство загружено в recovery - adb не работает. А что если модифицировать recovery так, чтобы когда устройство находится в нем были доступны на чтение и запись system и userdata, да причем с правами root? Сказано - сделано. Встречайте вторую версию мода оригинального recovery.

Ключевые возможности:
  1. Отключена проверка цифровой подписи update.zip, т.е. можно заливать кастомные update.zip для оригинального recovery. Т.е. все то же самое что было в Recovery NoSigCheck / Decker.
  2. При загрузке в Recovery работает adbd (т.е. можно подключиться через adb с ПК)
  3. adbd работает в режиме root (!)
  4. Примонтированы /system и /data, причем они доступны для чтения / записи.
  5. Интегрирован busybox (/sbin/busybox) ... для тех кто в курсе - это открывает вообще неограниченные возможности, netcat, tar и т.д. и т.п.
Ссылка на сам recovery: https://yadi.sk/d/9dJv-X5bbUVEv (прошивать через fastboot)

p.s. Может помочь в случае когда вы нечаянно что-то удалили с планшета и после этого он не загружается. Также, на основе данного recovery вполне можно делать скрипты для восстановления, а-ля tar -cvf /sdcard/system.ext4.tar /system для backup'а раздела system, и tar -xvf ... для восстановления. Правда так как sd-карточки у меня под рукой нет, то монтируется ли sdcard корректно или нет - возможности проверить не было.
p.p.s. Методика использования - прошиваем recovery через fastboot, загружаемся в recovery, делаем adb shell и получаем root доступ к /system и /data ...

(!) Ну и конечно помните, что ответственность за испорченное оборудование, в результате неумелых действий / нелепых случайностей / случайных удалений каких-то файлов, некорректной установки прав доступа и т.п. - целиком и полностью лежит только на вас. Если вы не уверены в своих силах, поверьте, вам не нужен root доступ из recovery!

Q&A:

Q. Как сделать backup раздела system во внутреннюю память планшета?
A. adb shell "/sbin/busybox tar -cvf /data/media/0/system.ext4.tar /system"
Q. Как восстановить backup раздела system из внутренней памяти?
A. adb shell "/sbin/busybox tar -xvf /data/media/0/system.ext4.tar"

Естественно все это, загрузившись в модифицированный recovery.

Q. Как примонтировать флешку в recovery?
A. adb.exe shell "mkdir /sdcard1 & mount -t vfat -o rw /dev/block/mmcblk1p1 /sdcard1" , после чего флешка будет доступна в /sdcard1

Q. Как отмонтировать флешку в recovery?
A. adb.exe shell "umount /sdcard1 & rmdir /sdcard1"

Q. Как сделать backup раздела system на флешку?
A. adb shell "/sbin/busybox tar -cvf /sdcard1/system.ext4.tar /system"

Q. Как восстановить backup раздела system с флешки?
A. adb shell "/sbin/busybox tar -xvf /sdcard1/system.ext4.tar"