Архив рубрики: Программирование

Какие библиотеки используются приложением

Команда ldd отображает список библиотек, используемых приложением: [root@p0vidl0]# ldd /usr/bin/mkdir linux-vdso.so.1 => (0x00007fffda1d5000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f295cbb5000) libc.so.6 => /lib64/libc.so.6 (0x00007f295c7f4000) libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f295c592000) liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f295c36d000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f295c169000) /lib64/ld-linux-x86-64.so.2 (0x00007f295cde3000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f295bf4c000)

Транслируем код c++ в assembler

Чаще всего мы используем gcc для компиляции кода c++  в двоичный код. Иногда, в целях отладки, бывает необходимо увидеть промежуточный код на ассемблере, который получается из первоначального исходника. Компилятор gcc можно вызвать с параметром -S для генерации файла с промежуточным кодом на ассемблере. [cpp]gcc -S -c code.cpp[/cpp]

10 самых популярных вопросов по html на собеседованиях

1. Валидация html разметки Рассмотрим следующий код: [html]<figure> <picture> <source media="(min-width: 40em)" srcset="large.jpg 1024w, medium.jpg 640w, small.jpg 320y"> <img src="medium.jpg" alt="Москва ночью"> </picture> <figcaption>Панорама ночной Москвы</figcaption> </figure>[/html] Можно ли считать его валидным? Если нет — объясните почему?

12 трюков html5 для мобильных устройств

Велико разнообразие мобильного веб-мира: десятки браузеров, их версий, размеров экрана, недокументированных возможностей, ошибок и разных проблем. Поэтому нужно постоянно самосовершенствоваться, осваивать новые технологии. Надеюсь, что вы найдете в этой статье пару тройку полезных вещей для себя. 1. HTML5 на полный экран В браузерах android — встроенном до версии 4.3 и других, например Chrome, существует только одно решение данной проблемы. Ширина и… Читать далее »

YII 2.0 VS. LARAVEL

Пару лет назад, я работал в одно команде php-разработчиков и перед нами предстояла цель определиться, какой php-фреймворк выбрать, чтобы можно было целиком на него положиться и продуктивно работать в дальнейшем. Мы провели большое количество исследований и в финал вышла сладкая парочка Symfony2 и Yii 1.1.14. В итоге мы остановиться на Yii. Он показался нам более подходящим для нового проекта и предстоящее изучение… Читать далее »

CSS: Как перестать заботиться о префиксах

Использование всех возможностей CSS3 позволяет создавать улетные интерактивные сайты. 3D-трансформация, keyframe-анимация, градиенты, блоки разметки — отличные инструменты, но они требуют большого объема работы от разработчика. Различные браузеры имеют разную поддержку как инновационных, так и ставших уже привычными возможностей css3.  Пример того, что я имею ввиду: [css].rotated-element { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }[/css] Для поддержки свойства transform всеми современными… Читать далее »

CSS: Зачем нужны не нужные префиксы?

Sass — мощный инструмент, но он, как любая власть, позволяет легко собой злоупотреблять. Одна из самых популярных ошибок — создание mixin, которые не нужны, на самом деле. Я сейчас имею ввиду не идеи вроде: «А давайте-ка, изобразим икосододекаэдр на чистом css3«, они имеют право на свой кусок почвы под солнцем. Я говорю о бесполезных миксинах, которые никому не приносят пользы. Префиксы Border-Radius… Читать далее »

JavaScript: Что в имени тебе моем

В работе над каждым следующим проектом, я узнаю что-то новое о javascript. Мое последнее невероятное открытие принесло мне знание о значимости атрибута name функций в javascript. JSHint — интересная штука, имеет одну особенность: сообщения анализатора кода. Результат анализа кода, включает в себя информацию об объектах-функциях, содержащихся в коде: [js]jshint(‘function myFn() {}’); console.log(jshint.data().functions); /* [{ name: ‘myFn’, param: undefined, line: 1, character: 15,… Читать далее »

Yii2: ArrayHelper

В дополнение к богатым возможностям php по работе с массивами, Yii 2.0 предлагает ArrayHelper, который позволяет более эффективно обращаться с массивами. Получение значений Получение одного значения Получение значений элементов массива, объекта или другой сложной структуры, с использованием стандартных методов php очень часто встречается. Всегда необходимо проверить существование нужного ключа в массиве с помощью isset и тогда получить значение или вернуть значение… Читать далее »

Рекомендации по разработке http json api

Введение Данное руководство раскрывает лучшие практики разработки http+json api. Основы Обязательное использование TLS Требуйте подключение с использованием TLS, без исключений. Не вижу смысла даже объяснять, почему полезно TLS и чем опасен отказ от его использования. Просто возьмите за привычку использовать TLS всегда, когда это возможно. В идеале, просто отклоняйте любые не TLS запросы, не отвечая на запросы на порт 80,… Читать далее »

Yii2: Диалоги confirm в стиле bootstrap

По-умолчанию, все системные диалоги confirm используют стандартный javascript alert(). Однако это немного не вписывается в концепцию сайта на Twitter Bootstrap. Библиотека Bootbox содержит как стандартные методы alert, prompt и confirm, так и метод dialog, создающий модальное диалоговое окно. Метод confirm описан в файле app/vendor/yiisoft/yii2/assets/yii.js: [js]/** * Displays a confirmation dialog. * The default implementation simply displays a js confirmation dialog. * You… Читать далее »

Yii2: Табличный ввод

Зачастую перед разработчиками встает задача реализации пакетного ввода данных для пользователя. Нужно предоставить пользователю возможность создания нескольких сущностей одной модели и сохранения их разом. Чаще всего для реализации подобной задачи используется html-таблица, отсюда и название: табличный ввод. Вариант 1 Использовать готовые решения, например TabularForm widget. Вариант 2 Запилить собственную реализацию табличного ввода в Yii 2.0.

Yii2: Сохранение и отображение даты/времени

Должно быть, это одна из самых часто возникающих, и в тоже время, очень простая задача для реализации в Yii 2.0. Зачастую мы сохраняем дату/время в базе данных в одном формате, а вывести на экран ее нужно в другом формате. Многие уходят огородами и изобретают свои велосипеды. Ниже представлены несколько простых советов, которые помогут в освоении работы с данными в формате… Читать далее »

Yii2: Примеряем Pjax на ActiveForm и GridView

В фреймворке Yii 2.0 встроена поддержка jquery плагина pjax, объединяющего pushState и ajax технологии. Подробнее на гитхабе разработчика. Для примера сделаем возможность добавления новой Заметки в списке заметок без перезагрузки страницы.

Yii2: все плюшки Twitter Bootstrap

Одной из замечательных особенностей Yii 2.0 является встроенная поддержка Bootstrap 3.0 от Twitter. Для вывода компонентов бутстрапа в шаблонах приложения можно использовать виджеты. Виджеты в Yii2 — небольшие блоки кода, которые можно легко многократно использовать для форматированного вывода данных. Как и большинство объектов в Yii 2.0, настройки виджету можно передать в виде массива параметров. Вместо немного монструозного $param = array(‘key1′ =>’value1’,… Читать далее »

Yii2: работа с экземпляром приложения

Одно из основных понятий в фреймворке Yii 2.0 — приложение. В контексте Yii2, приложение — объект, который определяет структуру и и жизненный цикл запросов на веб-сайте. Приложение, так же, может быть и консольным, но мы будем рассматривать веб-приложение. Каждый запрос к Yii-приложению осуществляется через входной скрипт, который настраивает приложение: $application = new yii\web\Application($config); и запускает его: $application->run();

Yii2: Простая реализация RBAC с двумя ролями

Один из самых часто встречающихся вопросов по Yii 2.0 — реализация управления доступом на основе ролей. Поддержка RBAC встроена в Yii2, но она может быть сложновата для реализации начинающими разработчиками, впервые столкнувшимися с этим вопросом при знакомстве с Yii 2.0. Часто бывает достаточно всего двух ролей: Пользователь и Администратор. Эта реализация поможет понять как работает механизм RBAC в Yii2 и… Читать далее »

Yii2: Начало

В данной статье мы установим Yii 2.0, настроим локальную среду для разработки и создадим первое простое приложение из встроенного шаблона basic. Релиз Yii 2.0, новой версии замечательного фреймворка, состоялся 12 октября 2014 года. Установка Yii 2.0 Подробную информацию по установке фреймворка можно найти в соответствующем разделе Документации по Yii 2.0.  Там же можно найти и описание классов и расширений. Русская… Читать далее »

PHP управление Onvif-совместимой купольной IP камерой RVI/Dahua

Недавно появилась необходимость собирать скриншоты с нескольких управляемых PTZ купольных IP камер RVi-IPC52DN20‎. Стандарт Onvif подразумевает взаимодействие с устройством через SOAP интерфейс. Получаем информацию об устройстве Согласно официальной спецификации, на запрос GetDeviceInformation: [xml]<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <GetDeviceInformation xmlns="http://www.onvif.org/ver10/device/wsdl"/> </s:Body> </s:Envelope>[/xml]