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] Можно ли считать его валидным? Если нет — объясните почему?
При обновлении рабочей системы до Red Hat Enterprise Linux 6.6 или CentOS 6.6, правила доступа SELinux для nginx меняют структуру. Новые правила могут не повлиять на nginx со стандартным конфигом, однако различные пользовательские конфигурации могут быть заблокированы и придется вручную прописывать разрешения для них. Далее будут описаны некоторые проблемы, с которыми можно столкнуться при обновлении до RHEL/CentOS 6.6 и рекомендации… Читать далее »
В настоящее время фреймворки, ориентированные на frontend-разработку растут как грибы после дождя. К сожалению, количество далеко не сразу переходит в качество. Действительно стоящими можно назвать не больше десятка. Рассмотрим возможности и особенности пятерки лучших из них. Каждый фреймворк имеет как сильные, так и слабые стороны, и может быть ориентирован на выполнение конкретных задач. Для простого небольшого проекта нет необходимости использовать… Читать далее »
Велико разнообразие мобильного веб-мира: десятки браузеров, их версий, размеров экрана, недокументированных возможностей, ошибок и разных проблем. Поэтому нужно постоянно самосовершенствоваться, осваивать новые технологии. Надеюсь, что вы найдете в этой статье пару тройку полезных вещей для себя. 1. HTML5 на полный экран В браузерах android — встроенном до версии 4.3 и других, например Chrome, существует только одно решение данной проблемы. Ширина и… Читать далее »
Что такое LAMP LAMP — это устоявшееся понятие, означающее набор программного обеспечения с отрытым кодом, предназначенный для работы веб-сервера. Аббревиатура содержит в себе: linux (операционная система), apache (один из самых распространенных http-серверов), mysql (сервер реляционных баз данных) и php (скриптовый язык программирования). Возьмем готовый vps-сервер с установленным debian 7, соответственно, linux у нас уже есть.
Мне, как привыкшему к многооконным графическим интерфейсам пользователю, порою бывает не комфортно в спартанской консоли linux. Частично меня спасает файловый менеджер midnight commander, похожий на виндовые norton commander/far. Легкий, быстрый и удобный, содержит простой текстовый редактор mcedit, помогает редактировать текстовые файлы без напрягов. Если при попытке запустить mc на своей linux-системе, вы видите нечто подобное: root@deb01:~# mc -bash: /usr/bin/mc: No such file… Читать далее »
Самым распространенным способом удаленного управления в unix/linux мире является протокол ssh. Для подключения к свежеустановленному серверу или рабочей станции с debian 7 (впрочем, как и других версий) нужно установить сервер ssh, а для подключения к другим компьютерам — ssh клиент. Устанавливаем ssh сервер Воспользуемся широко распространенным и бесплатным пакетом openssh: root@deb01: ~# apt-get install openssh-server Reading package lists… Building dependency tree…… Читать далее »
Из коробки CentOS имеет ограничение числа одновременно открытых файлов и запущенных процессов: [admin@nix-tips.ru ~]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 3732 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512… Читать далее »
Пару лет назад, я работал в одно команде php-разработчиков и перед нами предстояла цель определиться, какой php-фреймворк выбрать, чтобы можно было целиком на него положиться и продуктивно работать в дальнейшем. Мы провели большое количество исследований и в финал вышла сладкая парочка Symfony2 и Yii 1.1.14. В итоге мы остановиться на Yii. Он показался нам более подходящим для нового проекта и предстоящее изучение… Читать далее »
В этой заметке опишу некоторые моменты, с которыми приходится сталкиваться в процессе установки RHEL/CentOS 7.0. Информация больше будет полезна начинающим администраторам и пользователям linux. Настройка сетевого адаптера Для начала, нужно настроить параметры сетевого подключения. NetworkManager Text User Interface — nmtui, утилита для настройки сети с интуитивно-понятным графическим интерфейсом. Серверные машины чаще всего используют статическую настройку ip адреса сетевых интерфейсов. # nmtui… Читать далее »
Я не являюсь радикальным сторонником суровой консоли, но не редко приходится сталкиваться с необходимость упаковать/распаковать файлы zip, tar, tar.gz или tar.bz2 в консоли Linux RHEL/CentOS. Поэтому оставлю здесь памятку для себя. А может и еще кому-то пригодится. ZIP: упаковать и распаковать zip архив в linux/rhel/centos Упаковываем файлы в архив zip: # zip -r archive-name.zip directory_name
Использование всех возможностей CSS3 позволяет создавать улетные интерактивные сайты. 3D-трансформация, keyframe-анимация, градиенты, блоки разметки — отличные инструменты, но они требуют большого объема работы от разработчика. Различные браузеры имеют разную поддержку как инновационных, так и ставших уже привычными возможностей css3. Пример того, что я имею ввиду: [css].rotated-element { -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }[/css] Для поддержки свойства transform всеми современными… Читать далее »
Sass — мощный инструмент, но он, как любая власть, позволяет легко собой злоупотреблять. Одна из самых популярных ошибок — создание mixin, которые не нужны, на самом деле. Я сейчас имею ввиду не идеи вроде: «А давайте-ка, изобразим икосододекаэдр на чистом css3«, они имеют право на свой кусок почвы под солнцем. Я говорю о бесполезных миксинах, которые никому не приносят пользы. Префиксы Border-Radius… Читать далее »
В работе над каждым следующим проектом, я узнаю что-то новое о javascript. Мое последнее невероятное открытие принесло мне знание о значимости атрибута name функций в javascript. JSHint — интересная штука, имеет одну особенность: сообщения анализатора кода. Результат анализа кода, включает в себя информацию об объектах-функциях, содержащихся в коде: [js]jshint(‘function myFn() {}’); console.log(jshint.data().functions); /* [{ name: ‘myFn’, param: undefined, line: 1, character: 15,… Читать далее »
На протяжении последних шести лет, браузер Google Chrome активно развивается и новые версии появляются достаточно часто. Не так давно был выпущен новый Chrome 39 и вы, возможно, уже успели его установить. Я выделил для себя несколько приятных и парочку сомнительных изменений. ECMAScript 6 генераторы Генераторы — специальные функции, описываемые function*, которые создают итерации. Итератор — это объект, содержащий метод next(),… Читать далее »
В дополнение к богатым возможностям php по работе с массивами, Yii 2.0 предлагает ArrayHelper, который позволяет более эффективно обращаться с массивами. Получение значений Получение одного значения Получение значений элементов массива, объекта или другой сложной структуры, с использованием стандартных методов php очень часто встречается. Всегда необходимо проверить существование нужного ключа в массиве с помощью isset и тогда получить значение или вернуть значение… Читать далее »
Введение Данное руководство раскрывает лучшие практики разработки http+json api. Основы Обязательное использование TLS Требуйте подключение с использованием TLS, без исключений. Не вижу смысла даже объяснять, почему полезно TLS и чем опасен отказ от его использования. Просто возьмите за привычку использовать TLS всегда, когда это возможно. В идеале, просто отклоняйте любые не TLS запросы, не отвечая на запросы на порт 80,… Читать далее »
По-умолчанию, все системные диалоги 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… Читать далее »
Зачастую перед разработчиками встает задача реализации пакетного ввода данных для пользователя. Нужно предоставить пользователю возможность создания нескольких сущностей одной модели и сохранения их разом. Чаще всего для реализации подобной задачи используется html-таблица, отсюда и название: табличный ввод. Вариант 1 Использовать готовые решения, например TabularForm widget. Вариант 2 Запилить собственную реализацию табличного ввода в Yii 2.0.
Должно быть, это одна из самых часто возникающих, и в тоже время, очень простая задача для реализации в Yii 2.0. Зачастую мы сохраняем дату/время в базе данных в одном формате, а вывести на экран ее нужно в другом формате. Многие уходят огородами и изобретают свои велосипеды. Ниже представлены несколько простых советов, которые помогут в освоении работы с данными в формате… Читать далее »