Сообщения

Сообщения за 2014

Fedora 21 минификация JavaScript

При разработке сайтов иногда удобно конечный результат сжать в размере. На компьютере web-разработчика с ОС Fedora 21 можно установить для этого специальный инструмент: sudo dnf install closure-compiler.noarch jarjar.noarch Без установки пакета jarjar  выходит ошибка: /usr/bin/build-classpath: Could not find jarjar Java extension for this JVM /usr/bin/build-classpath: error: Some specified jars were not found После установки можно из консоли сжимать .js файлы. Для текущего каталога команда у меня выглядит так (для файла calculation.js): closure-compiler --compilation_level SIMPLE_OPTIMIZATIONS --js calculation.js --js_output_file calculation-compiled.js В результате мы получим непонятный для человека, но подготовленный для компьютера файл calculation-compiled.js, который по размеру будет почти вдвое легче исходного. Если требуется только проверить файл на наличие ошибок, то можно запустить со следующими параметрами: closure-compiler --compilation_level WHITESPACE_ONLY --js mai

Подключение к Arduino различных элементов

Изображение
RGB светодиод с общим катодом Самая длинная ножка - катод, его подключаем на GND (земля). Остальные ножки отвечают за конкретный свет; их подключаем через резистор на 1 КОм на ШИМ (PWM) выход. Слева от катода одна ножка; отвечает за красный свет; подключаем через резистор, например, на D11. Справа от катода ножка, отвечающая за зелёный свет; подключаем через резистор, например, на D10. Последня ножка отвечает за синий свет; подключаем через резистор, например, на D9. Пример плавного зажигания (и гашение) красного света: int ledRed = 11; int ledGreen = 10; int ledBlue = 9; int brightness = 0;    // how bright the LED is int fadeAmount = 5;    // how many points to fade the LED by // the setup routine runs once when you press reset: void setup()  {   pinMode(ledRed, OUTPUT);   pinMode(ledGreen, OUTPUT);   pinMode(ledBlue, OUTPUT); } // the loop routine runs over and over again forever: void loop() {   // set the brightness of pin 9:   analogWrite(ledRed, brightness);      anal

Mint 16 + Arduino Pro Mini + переходник FT232RL

Изображение
Для большего удобства программирования Arduino Pro Mini приобрёл переходник "5V 3.3V FT232RL USB To Serial 232 Adapter Download Cable Module For Arduino" в замен "PL2303HX USB To RS232 TTL Auto Converter Adapter Module For arduino", соединение через который я описал ранее . Этот переходник позволяет заливать программу сразу без ручного нажимания кнопки Reset на Arduino Pro Mini. Сначала переходник FT232RL подключал к компьютеру через провод USB-удлинитель. Программа прошилась разок-другой, но как-то не всегда сразу. Выходила ошибка "stk500_recv(): programmer is not responding". Посмотрел, как определяется переходник компьютером: sudo mc а потом /var/log/syslog. Увидел, что при подключении к USB компьютера без USB-удлинителя устройство опознаётся правильно и подключается на /dev/ttyUSB0, а вот через удлинитель что-то не так. Теперь про непосредственно подключение переходника FT232RL к плате Arduino Pro Mini. На снимке ниже: FT232RL - DTR ->

Красивое оформление CSS

Изображение
Мне часто приходится работать с CSS-файлами. Нашёлся удобный и быстрый способ приводить эти файлы в единообразный и удобный вид. По инструкции с сайта http://csscomb.com был установлен пакет csscomb: sudo npm --proxy http://<myProxyIP>:<myProxyPort> install csscomb -g Потом сохранил себе созданный на мой вкус файл настроек /home/oleg/Documents/.csscomb.json: { "exclude": ["node_modules/**", "vendor/**"], "verbose": true, "remove-empty-rulesets": true, "always-semicolon": true, "color-case": "lower", "block-indent": " ", "color-shorthand": false, "element-case": "lower", "eof-newline": true, "leading-zero": false, "quotes": "double", "sort-order-fallback": "abc", "space-before-colon": "", "space-after

Подсветка лестницы. Продолжение 1

Изображение
Собираем первую версию прототипа автоматической подсветки лестницы на макетной плате. Эта версия почти полностью соответствует схеме из статьи Автоматическая подсветка лестницы с помощью Arduino . Скетч так же подойдёт тот же за исключением своих показаний освещённости (измеряется в "попугаях"). Что может этот прототип Прототип позволяет зажигать и тушить светодиоды с заданной задержкой при определённом уровне освещённости (не загораются, если светло) и срабатывании одного из двух ультразвуковых дальномеров. Что ещё предстоит добавить Необходимо доработать прототип, чтобы светодиоды загорались плавно (прикрутить ШИМ управление). Нужно сделать режим дежурного света, когда первый и последний светодиоды загораются при снижении освещённости до определённого уровня. Неплохо бы добавить кнопку для переключения режимов работы: всё выключено, полностью включено, автоматический режим, "весёлый" режим мигания (на случай праздника). Самое главное, что выяснилось в пр

Подсветка лестницы

Изображение
Вступление По мотивам проекта автоматической подсветки лестницы с помощью Arduino , который, в свою очередь, создан по мотивам другого проекта , я дополнил и модернизировал схему и код и получил свой вариант. Это мой первый проект на Arduino, поэтому буду описывать всё "для чайников", т.е. что бы мне же было понятно, если позже захочу к этому вернуться. Цель проекта Сделать красивую и функциональную подсветку под ступеньками лестницы на второй этаж в частном доме. В тёмное время суток должна загораться "дежурная" подсветка на первой и последней ступеньке, чтобы их было видно. Во время начала подъёма или спуска кого-либо по лестнице должна загораться подсветка всей лестницы. Также захотелось "весёлый" режим работы подсветки на случай праздника. Что требуется Я использовал китайский аналог Arduino PRO Mini ATMEGA328P 5V 16MHZ в качестве центрального мозга. Датчики: фоторезистор для замера освещённости (у меня Photoresistor GL5516 LDR ), два ульт

Yii 1. Авторизация - пользователи и роли в базе данных

Изображение
Введение Процесс настройки аутентификации и авторизации расписан в нескольких официальных и полуофициальных источниках: http://www.yiiframework.com/doc/guide/1.1/ru/topics.auth http://yiiframework.ru/doc/guide/ru/topics.auth http://yiiframework.ru/doc/cookbook/ru/access.rbac.file Но ни в одном из этих источников нет исчерпывающих рекомендаций для построения авторизации для случая, когда пользователи, роли и прочие правила хранятся в базе данных. Хотя схема для базы данных MySQL входит в поставку Yii: framework/web/auth/schema-mysql.sql Эта схема содержит описание трёх таблиц: AuthAssignment, AuthItem и AuthItemChild. Схема: До этого я завёл таблицы для пользоватлей и ролей: user и user_role: Базовая настройка прав доступа Модель User у меня такая: <?php /**  * This is the model class for table "user".  *  * The followings are the available columns in table 'user':  * @property integer $id  * @property string $username  * @property string $password

Ошибка в phonegap 3.5

Настраивал в Fedora 20 проект с использованием phonegap 3.5. Делал всё по интсрукции  http://phonegap.com/install/ . Но после команды phonegap run android Выходило сообщение об ошибке: [phonegap] adding the Android platform... /home/oleg/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:126 throw e; ^ Package name must look like: com.company.Name { [Error: /home/oleg/.cordova/lib/android/cordova/3.5.0/bin/create: Command failed with exit code 8] code: 8 } [error] /home/oleg/.cordova/lib/android/cordova/3.5.0/bin/create: Command failed with exit code 8   Ошибка упоминается в интернете, но нигде не удалось найти решение. Путём проб и ошибок было выяснено, что проект создался не совсем корректно. А именно, файл config.xml создался внутри директории www, а нужно в корневой директории проета. Так же было установлено, что требуется версия API Android именно 19 (по умолчанию менеджер устанавливает более новую). Перенёс файл и ус

Git за прокси сервером

Для того, чтобы git полноценно заработал за прокси сервером с удалёнными репоиториями, следует установить глобальное значение прокси для git и сделать переопределение протокола git:// на https://. Для этого выполнить две команды по типу таких: git config --global http.proxy http://192.168.0.254:3128 git config --global url."https://".insteadOf git://

Передача файлов через ssh

Для безопасной передачи файлов по сети в Fedora можно, например, воспользоваться консольным файловым менеджером MC или графическим Nautilus . Для подключения в MC : [Левая панель/Shell-соединение] и вводим адрес [<login>@<address>:<port><path - если требуется>] . Нажимаем кнопку Дальше. Появится консольное приглашение ввести пароль. Вводим, жмём Enter и попадаем в нужную директорию на удалённом компьютере. Чтобы добавить в закладки нажимаем [Ctrl + \] и затем "Добавить текущий". Позже можно будет подключаться туда же по нажатию [Ctrl + \] и выбору сохранюшки. В Nautilus то же самое подключение можно организовать через меню "Подключиться к серверу..." и ввести адрес в формате [ssh://<login>@<address>:<port><path - если требуется>] или [sftp://<login>@<address>:<port><path - если требуется>]. После правильного ввода адреса станет доступной кнопка Подключиться. Также выйдет запрос пароля. По

Программы windows 32-bit под wine 64-bit

Для работы программ windows, которые используют файлы Excell или Access под wine'ом нужно установить jet40. Проще всего это сделать через winetricks. Но пакет jet40 рассчитан только на 32-разрядные системы, а wine по-умолчанию в 64-разрядной ОС так же 64-разрядный. Поэтому нужно перевести wine в 32-разрядный режим. Если уже что-то было установлено и это что-то не жалко, то удаляем директорию ~/.wine. Затем выполняем команду в терминале от своего пользователя: WINEARCH=win32 winecfg После этого запускаем winetricks и устанавливаем jet40. После этого можно приступать к запуску программ, которые используют в своей работе элементы пакета MS Office.

Записки по Yii 1

Изображение
Эту статью буду пополнять зарубками на память. Часто бывает так что на какие-то мелочи уходит много времени. Не всегда удаётся нужное отыскать в интернете. Это такой мини-сборник мини-рецептов по Yii. Текстовое поле с маской и текстом по-умолчанию Если в форме требуется вывести подпись (label) и текстовое поле с маской ввода и предустановленной строкой, то тут поможет стандартный виджет Yii CMaskedTextField, определённый в framework/web/widgets/CMaskedTextField.php. Мне понадобилось в предустановленный текст написать цифры, включая "9". А эта цифра предопределена как маска на все числа. Поэтому нужно переодределить числа и "высвободить" для себя девятку. Полный код, готовый для вставки в view-файл выглядит так: <?php      echo $form->labelEx($model,'isbn');      $this->widget('CMaskedTextField', array(          'model' => $model,          'attribute' => 'isbn',          'mask' => '978-5-4

Пишем Extension для Gnome 3

Изображение
Вступление Откуда взялась идея. Однажды пришлось моим родителям пересесть с Windows XP на Linux Mint с KDE. В старой операционке они привыкли пользоваться интернет-телефонией от Sipnet.ru. У этого провайдера есть своя программа Sippoint mini (только под Windows), которая сразу отображает баланс на счёте. Естесственно, в других софтофонах этой фишки нет. API тоже никакого нет. Нужно только лезть на их сайт в свой личный кабинет и там смотреть свой баланс. Не быстро и не удобно (никому не нравится вбивать логины и пароли, - особенно старшему поколению). Нужно было организовать быструю проверку баланса в Sipnet.ru с отображением прямо на рабочем столе. Парсим страницу на bash'е Идея проверки баланса состоит в следующем. Некая программа периодически или по запросу заходит в личный кабинет, находит там баланс и сохраняет его в файл. Потом этот файл можно прочитать либо лично открыв, либо направив на него другую программу, которая удобно покажет баланс. Приступаем к первой части и

Архивирование на Яндекс.Диск автоматоматически

Исходные данные Есть локальный и удалённый компьютеры. Оба работают под управлением Fedora (может быть любые другие Linux). На удалённом компьютере есть папка, с которой часто производится работа на локальном компьютере и поэтому для её сохранности нужно периодически копировать (архивировать) в защищённом виде (копировать будем на Яндекс.Диск). На удалённом компьютере настроен NFS сервер на нужную папку. На локальном компьютере настроено автоматическое монтирование Яндекс.Диска (по инструкции из статьи с Хабра Автозапуск Яндекс.Диска как службы systemd в Fedora 19 ) и удалённого раздела: в файле /etc/fstab (здесь и ниже во вставках обратным слэшем обозначается отбивка строки - в реальном файле нужно писать в одну строку): ... 192.168.0.112:/home/gravis/work /mnt/storage/Документы nfs \ defaults 0 0 В оригинальной инструкции подключения Яндекс.Диска я только заменил в файле /usr/lib/systemd/system/yandex-disk.service Requires=network.target на After=network.target. Это даёт