Так оказалось, что в своем новом Android телефоне(бюджетная модель) я не смог отыскать приложение “Фонарик“.
Опечалившись, я решил установить фонарик из Google Play. Приложений-фонариков очень много, на любой вкус и цвет. По-этому я решил почитать обзоры и выбрать самый простой. Но начитавшись различных статей об приложениях, которые требуют кучу различных разрешений для своей работы, а затем отправляют конфеденциальную информацию третьим лицам, я на некоторое время стал параноиком и решил сделать приложение Фонарик сам.
Ниже вы можете найти заметки и описание процесса, возможно кому то пригодится.
Инструменты: Intel XDK build 2366.
1. Создаем новый проект HTML5+Cordova
2. Для работы со вспышкой нам потребуется плагин Flashlight-PhoneGap-Plugin. Устанавливаем его следующим образом:
CORDOVA HYBRID MOBILE APP SETTINGS -> Plugins -> Third-party Plugin -> Get Plugin from Web
Указываем следующие настройки:
Name: Flashlight
Plugin ID: Flashlight
Repo URL: https://github.com/EddyVerbruggen/Flashlight-PhoneGap-Plugin.git
Получилось:
app.js выглядет следующим образом:
function FlashlightON() {
window.plugins.flashlight.available(function(isAvailable) {
if (isAvailable) {
window.plugins.flashlight.toggle();
} else {
alert("Flashlight not available on this device");
}
});
}
document.addEventListener("backbutton", function() {
// pass exitApp as callbacks to the switchOff method
window.plugins.flashlight.switchOff(exitApp, exitApp);
}, false);
function exitApp() {
navigator.app.exitApp();
}
Ни DEBUG ни EMULATE не позволяет увидеть работающую программу, надо откомпилировать и залить ее на телефон.
Пример фонарика, созданного в Intel XDK:
23 Июнь
Автор: Lucky Рубрики: Windows Server 2012 R2
Настраивая Windows Server 2012 R2 столкнулся с небольшой проблемой:
Имелась задача, суть которой заключалась в запуске определенного приложения в определенное время. Приложение запущенное вручную работало достаточно быстро, а вот запуск приложения с помощью планировщика приводил к очень медленной работе этого самого приложения(гораздо менее медленной, чем можно было бы позволить).
Приложение активно работает с диском, по сути вся скорость работы приложения упирается в скорость работы дисковой подсистемы.
Проблему удалось локализовать достаточно быстро, производительность приложения при запуске из планировщика задач падала потому, что приоритет процесса этого приложения был “Ниже среднего“.
Приоритет “Ниже среднего” по умолчанию выставляется для всех процессов, запущенных с помощью Планировщика задач. Казалось бы проблема обнаружена и можно просто ее решить, но… Интерфейс Планировщика задач Windows Server 2012 R2 не предоставляет возможности изменить приоритет процесса.
Пришлось искать обходной путь. И он был найден.
Задача в Планировщике задач у нас уже создана. Так что приступаем сразу к действиям по изменению приоритета:
Я для подобных целей использую Notepad++.
Приступаем к редактированию. нас интересует секция <Settings> , в которой находим строку:
<Priority>7</Priority>
7 - соответствует приоритету “Ниже среднего”.
Для изменения приоритета процесса надо изменить это значение.
Значения 4,5,6 соответствуют приоритету “Обычный”. Посмотрите на таблицу и выберите нужный вам приоритет.
Для получения дополнительной информации о приоритетах следует прочитать: https://msdn.microsoft.com/en- us/library/aa383512.aspx
Изменив приоритет с 7 на 6, сохраняем файл.
Теперь нам надо импортировать задачу в Планировщик задач Windows.
Открываем планировщик. Так как в Планировщике задач не может быть двух задач с одинаковым именем, мы первым делом удаляем нашу задачу.
Затем из меню Действие -> Импортировать задачу… импортируем XML файл с измененным приоритетом.
Теперь у нас есть Задача в Планировщике Задач Windows Server 2012 R2 с нужным нам приоритетом и она работает быстро.
22 Июнь
Автор: Lucky Рубрики: Windows Server 2012 R2
Некоторое время назад была произведена замена системного блока. Старый был переведен на другое рабочее место, а с новым обнаружилась странная особенность: Скорость работы одной из программ, используемых на предприятии оказалась ниже ожидаемой. Хоть это было не критично, но визуально скорость была даже ниже, чем до смены системного блока. Причина была найдена, скорость работы программы была значительно увеличена. Причина низкой скорости была в схеме управления питанием. Стоило изменить схему управления питанием с Сбалансированная(Рекомендуется) на Высокая производительность, как скорость выполнения некоторых функций в программе выросла почти в два раза. Конечно такой прирост производительности был обусловлен особенностями программы(использование только одного потока и чувствительность к частоте процессора).
Компьютер работает круглосуточно, но высокая производительность нужна лишь с 8-00 до 18-00.
Если ночью не нужна высокая производительность, то значит ее можно(нужно) снизить для экономии электроэнергии.
Выберим последний вариант, хотя часть решения для последнего варианта подойдет и для второго. Описанные ниже действия будем выполнять в Windows Server 2012 R2(для других ОС Windows действия похожи).
Открываем Расписание выполнения задач (Панель управления -> Система и безопасность -> Администрирование -> Расписание выполнения задач)
Создаем новую задачу (Включение схемы высокая производительность):
На закладке триггеры выставляем нужное нам время и частоту запуска.
На закладке действия:
Действие: Запуск программы
Программа или сценарий: powercfg
Добавить аргументы: -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
Создаем новую задачу (Включение схемы Сбалансированная):
На закладке триггеры выставляем нужное нам время и частоту запуска
На закладке действия:
Действие: Запуск программы
Программа или сценарий: powercfg
Добавить аргументы: -setactive 381b4222-f694-41f0-9685-ff5bb260df2e
Что мы сделали? Мы в определенное время запускаем утилиту powercfg, а параметром setactive указываем нужную нам схему электропитания. Набор букв и цифр за параметром setactive - это идентификатор GUID схемы управления питанием. Идентификатор GUID схемы управления питанием можно посмотреть командой POWERCFG /LIST.
Ну и как вы уже поняли, запуск из командной строки будет выглядеть так:
powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
powercfg -setactive 381b4222-f694-41f0-9685-ff5bb260df2e
Дополнительные сведения о параметрах командной строки можно получить с помощью команд:
powercfg -HELP
powercfg /?
или по ссылке: Параметры командной строки Powercfg
27 Апр
Автор: Lucky Рубрики: Windows Server 2012 R2
К началу статьи имеем в наличии компьютер с установленным Windows Server 2012 R2 Standart ( Сервер с графическим интерфейсом пользователя под архитектуру x64).
Также нам понадобятся:
Тонкий клиент:
Образ Thinstation:
Образ Thinstation мы скачаем с сайта http://nixts.org
Нам нужен вариант PXE на момент написания статьи ссылка для скачивания образа Thinstation: https://sourceforge.net/projects/nixts/files/thinstation-5/pxe/Thinstation-5.4-140415-rdesktop-pxe.zip/download
После установки Windows Server 2012 R2 были установлены драйвера и ничего более.
Мы будем использовать сервер в локальной сети с рабочей группой без домена!
Приступаем к настройке.
Диспетчер серверов -> Настроить этот локальный сервер: Изменяем имя компьютера и рабочую группу. ( эти настройки можете выбрать любые, имя компьютера в дальнейшем будет использовано в настройках, я назову компьютер ServerT, рабочую группу оставлю без изменений WORKGROUP)
Настраиваем Протокол интернета версии 4: устанавливаем статический IP адрес ( я установлю 192.168.0.100), маску подсети, основной шлюз и DNS-сервера (если требуется доступ в интернет).
Перезагружаемся.
Диспетчер серверов -> Добавить роли и компоненты - Запускается мастер добавления ролей и компонентов. В мастере выбираем тип установки: Установка ролей или компонентов,
Выбираем наш сервер, Выбираем роли сервера:
Следующий шаг мастера - Выбор компонентов. На этом шаге мастера мы ничего не выбираем, а жмем кнопку [Далее]
Следующий шаг мастера - WDS - Службы ролей. Выбираем только Транспортный сервер (снимаем галочку с Сервер развертывания)
Следующий шаг мастера - Службы удаленных рабочих столов - Службы ролей. Выбираем Лицензирование удаленных рабочих столов и Узел сеансов удаленных рабочих столов.
На шаге мастера Подтверждение установки компонентов жмем кнопку [Установить]
По окончании установки перезагружаемся.
Создаем на диске C: папку TFTPBOOT (Папку можно создать на любом диске и с любым названием)
В реестре Windows в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\WDSServer\Providers\WDSTFTP добавляем строковый параметр RootFolder и в качестве значения параметра указываем путь к папке, в которой будет находиться образ для загрузки тонкого клиента (в нашем случае C:\TFTPBOOT).
Изменяем содержимое параметра ReadFilter на \* (Этим мы разрешаем загружать конфигурационные файлы из корня каталога tftpboot)
Администрирование -> Службы -> Сервер служб развертывания Windows - Устанавливаем тип запуска - Автоматически и запускаем службу(запускает TFTP сервер)
Распаковываем образ операционной системы для тонкого клиента, скаченный с сайта http://nixts.org в папку C:\TFTPBOOT таким образом, чтобы каталог из архива tftpboot является папкой C:\TFTPBOOT
Диспетчер серверов -> Средства -> DHCP
Для Протокола IPv4 создаем область. Запускается мастер создания области (имя и описание области выбираете по желанию), Далее вписываем начальный и конечный IP адреса, Добавление исключений и задержка не заполняем, Срок действия аренды адреса не изменяем. Настройка параметров DHCP - соглашаемся с предложением настроить, Все шаги оставляем без изменений и на конечном шаге Активируем область.
В параметрах области ( но можно и в параметрах DHCP-сервера, либо в параметрах каждого резервирования ) необходимо настроить следующие параметры:
В только что созданной области создаем резервирования для всех тонких клиентов:
Для примера:
По окончании создания резервирований для тонких клиентов перезапускаем DHCP-Сервер: Администрирование -> Службы -> DHCP-Сервер - Перезапустить службу
Свойства системы -> Удаленный доступ : Убираем галочку с Разрешить подключения только с компьютеров, на которых работает удалённый рабочий стол с проверкой подлинности на уровне сети (рекомендуется) и нажимаем ОК для применения настройки.
В файле c:\tftpboot\thinstation.conf.network изменяем адрес терминал сервера (в моем случае я прописал SESSION_0_RDESKTOP_SERVER=192.168.0.100) и запускаем бездисковую станцию.
Замечание: При добавлении ролей сервера в правила брандмауэра Windows автоматически добавляются разрешающие правила на доступ ко всем службам нами запущенным( DHCP, TFTP, удаленный рабочий стол), если используются брандмауэры сторонних производителей необходимо в их правила внести соответствующие изменения.
Разбираясь с настройками Windows 8 столкнулся с такой проблемой как IPv4-адрес автонастройки со значением 169.254.247.255
Настройки IP адреса были статические, но Windows 8 молча их игнорировал (автоматически подменял ip адрес не обращая внимания на то что ip был прописан вручную 192.168.0.10)
В интернете можно обнаружить решение этой проблемы:
Автоматическая замена ip адреса происходит из-за технологии APIPA (Automatic Private IP Addressing). Эта технология используется операционной системой windows чтобы присвоить компьютеру ip адрес (вида 169.254.x.x), если он не может достучаться до DHCP сервера, указанного в настройках сетевого адаптера.
Для отключения автонастройки IPv4 в Windows 2000/XP/2003/7/8/2008/2012 необходимо добавить параметр типа DWORD с именем IPAutoconfigurationEnabled со значением 0 в раздел реестра:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\Adapter_GUID]
где Adapter_GUID - это идентификатор сетевой карты.
Но в моем случае, автонастройка IPv4 срабатывала по другой причине, в локальной сети уже находился компьютер с таким же ip адресом(192.168.0.10).
Так как Windows не сообщала об дублировании ip адреса, то обнаружить дублирование помог запуск из командной строки: ipconfig /all
Строка с сообщением о дублировании IP адреса выглядела так:
IPv4-адрес. . . . . . . . . . . . : 192.168.0.10(Повторяющийся)
Таким образом, мне потребовалось просто сменить IP адрес с 192.168.0.10 на 192.168.0.101(такого ip точно не было в сети)
Просмотрев в интернете различные видео ролики в стиле Таймлапс(незнаю как правильно его назвать, так как вариантов написания названия этого стиля очень много: Таймлапс, Тайм Лапс, Тайм-лапс, TimeLapse, Time lapse, Time-lapse), мне захотелось сделать подобный видео ролик своими руками.
Но мое желание очень быстро разбилось о неизбежность в виде отсутствия фотокамеры с поддержкой функции интервальной съемки.
Имелся фотоаппарат Nikon L820, но как я уже написал ранее у него напрочь отсутствовала возможность делать интервальную съемку. Поразмыслив над поиском вариантов обхода этой ситуации, я пришел к простому решению: Снять видеоролик и ускорить его.
Фотокамера Nikon L820 имеет ограничение на длинну видеоролика в 29 минут, что конечно же очень плохо, но с этим придется смириться.
Первое, что нам необходимо сделать - это снять видеоролик длинной 29 минут . Делать это лучше всего со штатива, либо необходимо установить фотоаппарат так, чтобы он не подвергался воздействию в виде различных поворотов, толчков и вибраций. В руках неподвижно удержать фотоаппарат на протяжении 29 минут просто не реально.
Для видеоролика желательно выбрать как можно большее разрешение и как можно меньшую частоту кадров. В данном фотоаппарате особо выбора нет, и мне пришлось выбрать разрешение 1920×1080 при 30 кадрах в секунду.
После того как мы отсняли материал нам предстоит задача в ускорении нашего видеоролика. В этом нам поможет программа VirtualDub. скачать эту программу можно с официального сайта http://www.virtualdub.org. На момент написания статьи актуальной версией была 1.10.4
Еще нам понадобятся кодеки, чтобы сохранить наш таймлапс видеоролик. Я использовал Xvid (скачиваем с официального сайта https://www.xvid.com ), но вы при желании можете использовать любой другой
Устанавливаем Xvid.
VirtualDub из коробки не умеет открывать файлы .MOV, а именно в этом формате записывает видеоролики фотоаппарат Nikon L820. Если у вас видеоролик в данном формате, то за решением данной проблемы отправляю вас в ранее написанную мной заметку: Как открыть файл MOV
И так, если проблема открытия видеороликов в формате MOV решена(или у вас этой проблемы не существовало), то переходим к следующему шагу:
Открываем в программе VirtualDub наш видеоролик: File -> Open video file…
В Меню Video необходимо выбрать пункт Full Processing mode
Затем в Video -> Frame Rate… В окне Video frame rate control выставляем настройки:
Change frame rate to(fps): 1800
convert to fps: 30
Подтверждаем настройки нажатием [OK]
Затем в Video -> Compression… выбираем кодек, для сохранения готового видео файла.
Я выбрал Xvid MPEG-4 Codec
Если нажать кнопку [Configure], то откроется окно Xvid Configuration, в котором вы можете выбрать нужные настройки. Я выбрал следующие настройки :
Profile @ Level: Xvid HD 1080
Encoding type: Single pass
Подтверждаем настройки нажатием [OK]
Мой видео ролик будет без звука, по-этому я в Audio выбрал такие настройки:
No audio
Direct stream copy
Всё настроено, осталось только сохранить наш файл. Выбираем пункт меню File -> Save as AVI…, выбираем имя файла и жмем кнопку [Сохранить]
Появляется окно VirtualDub Status
Нам осталось дождаться завершения процесса сохранения файла и просмотреть готовый видео ролик. То что у меня получилось:
04 Фев
Автор: Lucky Рубрики: Программы
Написал небольшую программу для просмотра предельно допустимых цен на лекарственные средства из списка жизненно необходимых и важнейших лекарственных препаратов( так называемого списка ЖНВЛС).
Не секрет, что предельно допустимые цены на лекарства из этого списка можно посмотреть на сайте grls.rosminzdrav.ru. В программе используется Государственный реестр предельных отпускных цен производителей на лекарственные препараты, включенные в перечень жизненно необходимых и важнейших лекарственных препаратов, скаченный именно с этого сайта.
Но что делать если сайт не доступен, отсутствует интернет на рабочем месте или не нравится поиск на сайте? Тогда можно воспользоваться программой Pricelim (Ссылка ведет на страничку с описанием и загрузкой)
Краткая инструкция по работе с программой:
На момент написания этой статьи в программе используется Государственный реестр предельных отпускных цен производителей на лекарственные препараты, включенные в перечень жизненно необходимых и важнейших лекарственных препаратов от 04.02.2015
Программа бесплатна для личного и коммерческого использования!
Я часто использую для простого редактирования видеофайлов программу VirtualDub.
При всех плюсах этой программы, есть и один небольшой минус. Дело в том, что VirtualDub при попытке открыть MOV файл выдает сообщение об ошибке: The file is of an unknown or unsupported file type.
К сожалению, VirtualDub по умолчанию не умеет открывать файлы этого типа(как и некоторые другие).
Решение этой проблемы есть и оно простое: Необходимо и достаточно установить плагин DShowInputDriver, который нам поможет открыть файл MOV, а заодно и некоторые другие.
Скачать его можно по следующей ссылке:
http://www.virtualdub.org/beta/DShowInputDriver-0.93.zip
Предыдущие версии можно скачать по ссылкам:
http://www.virtualdub.org/beta/DShowInputDriver-0.9.zip
http://www.virtualdub.org/beta/DShowInputDriver-0.8.zip
Установка этого плагина достаточна проста:
Directshow плагин позволяет открывать любые форматы, которые открываются плеерами типа MPC, но если все же не открылось, то в систему необходимо установить сплиттер (например Haali) и directshow кодек для формата.
У меня открылось без проблем, но надо сказать что у меня был установлен K-lite Codec Pack 10.9.5 Full, который доставил все недостающее. И при отсутствии K-lite Codec Pack 10.9.5 Full сообщение об ошибке The file is of an unknown or unsupported file type появлялось даже при установленном плагине DShowInputDriver.
Некоторое время назад начал шалить один из компьютеров под управлением Windows Server 2003.
Выглядело это следующим образом: Пропадали все принтеры и было невозможно что-либо распечатать.
На данный момент эта проблема исчезла, но осадок остался… чтоб не забыть и помочь другим пользователям выкладываю свое решение той проблемы(точнее говоря не решение, а временное решение, но нет ничего постояннее временного).
Вернуть все принтеры можно было перезапустив Диспетчер очереди печати из Панель управления -> Администрирование -> Службы или банально перезагрузив компьютер, но постоянно лазить в Панель управления было лень, а тем более перезагружать компьютер было неудобно, так как его использовали в этот момент другие пользователи.
По-этому был создан BAT файл следующего содержания:
net stop spooler
ping 127.0.0.1 -n 5 > nul
net start spooler
Небольшие пояснения:
Строка net stop spooler - Останавливает службу Диспетчера очереди печати.
Строка ping 127.0.0.1 -n 5 > nul - Делает 5 секундную паузу между остановкой и запуском Диспетчера очереди печати.
Строка net start spooler - Запускает службу Диспетчера очереди печати.
Пользоваться этим BAT файлом можно и в других версиях операционной системы Windows: Windows XP, Windows Vista, Windows 7, Windows 8
Сегодня столкнулся с проблемой отсутствия программы Telnet в Операционной системе Microsoft Windows 8.
Набрав по привычке в командной строке telnet 192.168.0.1 получил ответ от операционной системы:
“telnet” не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Это меня немного удивило, хотя я telnet не использовал очень давно и не знал, что в Windows 8 клиент telnet отключен(по умолчанию) и более того отключен он еще со времен Windows Vista/2008, но telnet мне был нужен и я пошел искать суть проблемы.
Итак клиент telnet отключен в Windows 8 из соображений безопасности, но нам он очень нужен, значит, мы его включим.
Наши действия:
Мы активировали клиент Telnet в Windows 8. Отключить клиент telnet можно этим же способом, сняв галочку.
Для любителей командной строки можно посоветовать еще два варианта(я их не пробовал, но должны быть рабочими): [WIN]+[R] - Запуск окна выполнить. Далее вводим “cmd” и жмем [ENTER] и выполняем команды:
Stock Wave AI
stockwaveai.org
Stock Wave AI
stockwaveai.com