вторник, 26 октября 2021 г.

Веб-сервер на базе Raspberry Pi Zero W. Часть 2: Установка HTTP-сервера

И снова здравствуйте! 

В прошлый раз мы установили на нашу "малинку" Rapberry Pi OS и подготовили ее для дальнейшей настройки для работы в качестве полноценного web-сервера. И сегодня пришло время установить на нее "сердце" любого веб-сервера - сервер HTTP(S). 

Тот, кто уже не первый раз работает с Linux системой, может предположить, что мы будем устанавливать популярный в веб-разработке HTTP-сервер Apache, но это не так. Принимая во внимание ограниченные аппаратные ресурсы Raspberry Pi Zero W, нашей задачей является использование программного обеспечения, потребляющего как можно меньше этих самых "ресурсов". И из всего доступного многообразия HTTP-серверов, самыми производительными и "легковесными" можно считать два их них - Lighttpd и nginx. У каждого из них есть и свои "плюсы" и свои "минусы" и, пожалуй, сложно отдать предпочтение какому-то одному из них - ибо каждый из них хорош по-своему. Что использовать на "боевом" сервере решает уже администратор, исходя из специфики размещаемого веб-контента и ожидаемой модели обращения к серверу. 

Сегодня же мы будем устанавливать и настраивать HTTP-сервер nginx. Почему? Просто потому, что данный HTTP-сервер с каждым годом набирает все большую популярность во всех сегментах веб-серверов от "домашних" до высоконагруженных промышленных и знакомство с ним будет определенно не лишним ;-). 

Чтож, приступим!  

четверг, 17 июня 2021 г.

Автоматическое монтирование сетевого диска в ОС Linux

В процессе создания и конфигурирования своего тестового веб-сервера на базе Raspberry Pi Zero W, у меня возникла задача монтирования сетевого ресурса (сетевого диска), размещенном на другом устройстве моей домашней сети - своеобразном NAS. Типичный подход для ОС Linux - организация к нему доступа через описание точки монтирования в файле fstab оказался несколько несостоятельным. Сетевая "шара", бесспорно, монтировалась и можно было спокойно с ней работать, но до первого "сетевого инцидента". Стоило только Raspberry Pi переподключиться к точке доступа Wi-Fi, как сетевой диск сразу становился недоступен. Приходилось заново "передергивать" fstab, чтобы система восстановила к нему доступ. 

Такое положение дел, естественно, мало кого устроит. Но решение нашлось, и это решение - один из юнитов systemd

понедельник, 14 июня 2021 г.

Веб-сервер на базе Raspberry Pi Zero W. Часть 1: Организационная.

В прошлый раз мы установили операционную систему Raspberry Pi OS на нашу "малинку", подключили ее к сети Wi-Fi и смогли даже удаленно зайти на нее по протоколу SSH. Сегодня мы продолжим дальше настраивать наш миниатюрный web-сервер. Но прежде чем мы перейдем к установке и конфигурированию программ и служб, непосредственно связанных с работой web-сервера, необходимо завершить настройку самой "системы". В частности:

  • сменить пароль по умолчанию на свой.
  • сменить имя пользователя на своё (опционально). 
  • сменить имя компьютера на своё (опционально).
  • установить скрипт автоматической проверки необходимости перезагрузки системы после очередного обновления программного обеспечения.
  • установить свою временную локаль (часовой пояс).
Итак, задачи определены, перейдем непосредственно к реализации.

четверг, 6 мая 2021 г.

Веб-сервер на базе Raspberry Pi Zero W. Часть 0: Подготовительная.

Наверное, уже практически не найдется такого человека, мало-мальски увлекающегося компьютерной тематикой, который не знает о существование таких одноплатных компьютеров как Raspberry. Своим появлением, при относительной дешевизне, эти одноплатники породили целый бум в отрасли подобных девайсов. И сейчас рынок одноплатных компьютеров на базе ARM насчитывает уже десятки аналогичных устройств. Можно упомянуть и таких фруктовых подражателей как Orange Pi и Banana Pi, а так же весьма интересный проект от Hardkernel как ODROID и десятки и десятки других. Какие-то из них дешевле, какие-то более производительные, какие-то даже собраны на базе процессора x86 (что не ARM, конечно же), в общем, выбрать есть из чего, главное четко понимать - для каких целей приобретается устройство. 

Но по моему субъективному мнение, Raspberry Pi остается самым "стабильным" устройством в плане используемой элементной базы и, что не маловажно, в контексте софтверной поддержки разработчиком железа своего продукта. Из всех аналогичных устройств, что попадали в мои руки, Raspberry Pi требовало минимальных "танцев с бубном" чтобы заставить ее работать так, как требуется. При этом максимальный аптайм насчитывал практически год работы (отключения происходили в рамках незапланированного отключения электричества, либо во время отпуска). 

Так в последующей небольшой серии заметок я хотел бы поделиться своим опытом по "превращению" Raspberry Pi Zero W в полноценный web-сервер, основное назначение которого - конфигурирование и отладка скриптов.

суббота, 13 марта 2021 г.

Windows 10, RDP, принтеры!

Картинка из открытых источников

Обратилась тут ко мне на днях одна небольшая организация помочь решить проблему с печатью на локальном принтере в сессии RDP. По словам молодого специалиста - эникейщика, который, можно сказать, сопровождает парк машин данной организации, после апгрейда "сервера" и перевода его на Windows 10, у пользователей сеанса RDP стали возникать проблемы с определением их локального принтера. Да-да, вы не ослышались, на сервере стоит именно Windows 10, а несколько сессий RDP реализовано через популярную утилиту RDP wrapper


суббота, 26 ноября 2016 г.

Социальный инжиниринг на Авито до взлома Сбербанк Онлайн доведет

И снова, здравствуйте!

Фото из Интернета
Сегодня речь пойдет не совсем об информационных технологиях, а, скорее, об одном способе получения несанкционированного доступа к одной популярной банковской информационной системе - Сбербанк Онлайн

Каждый из нас или практически каждый, хоть раз, да пользовался сервисом Avito для продажи или покупки своего или чужого :-) имущества. Объявлений - тысячи, пользователей еще больше. 

суббота, 5 ноября 2016 г.

Коварный pixel!

Последние несколько недель я занимаюсь, если так можно выразиться, "саморазвитием" - создаю некое подобие интерактивного портала на PHP + JavaScript. Ну, а чтобы жизнь совсем уж медом не казалась, клиентскую часть решено было создавать исключительно с применением чистого JavaScript. Бесспорно, мне известно, что существуют различные библиотеки на JS, призванные облегчить жизнь web-девелопера, но для меня это больше "спортивный интерес", достичь требуемой функциональности безо всякой посторонней "химии" ;-).

Так в своей работе я подошел к моменту, который, наверное, возникает у каждого кодера под веб - создание некоего "модального окна" с элементами формы. 

суббота, 5 октября 2013 г.

Квест: собрать Qt 5.1.1 с помощью GCC (MinGW) 4.8.1

Да гранаты у него не той системы
(с) к/ф "Белое солнце пустыни"

Сразу хочу предостеречь желающих пройти этот "квест" до конца - сил у меня выполнить его не хватило :-). 

Давно ничего не "компилировав" большое-здоровенное, решил пересобрать библиотеку Qt5 ... на версию, так сказать, по-новее. Ознакомившись на сайте, что бинарный пакет идет сразу с компилятором MinGW с версией GCC 4.8, смело обновил свой с 4.7.2 до 4.8.1. Проделав все подготовительные процедуры, приступил к сборке ICU.... и тут выпала первая сложность - компиляция оборвалась с ошибкой, что не найдено определение "stat",

воскресенье, 17 февраля 2013 г.

Сборка Qt5 из исходников компилятором MinGW (дубль два)

- Ок. Что вам нужно еще, кроме  чуда?
- Оружие. Много оружия.
Matrix (c)

Как и было обещано, в конце января увидел свет новый релиз Qt5, который уже полностью поддается компиляции MinGW, о чем было извещено в блоге Qt-project, а так же размещен на странице загрузки бинарный выпуск Qt5 совместно с MinGW (GCC 4.7). Парни сдержали и другое свое слово, снабдив штатную сборку версией MinGW с GCC поновее, чем версией 4.4. Итак, случилось чудо и всем, кто не желает время тратить на самостоятельную компиляцию библиотеки, ничего не мешает скачать подготовленный бинарник (кстати, уже с последней версией Qt Creator'а) и творить, творить .... :-). Остальным же предлагаю ознакомиться с моим "крестным путем" сборки Qt5, глядишь, что пригодится ;-). (Про сборку Qt4 Вы всегда можете прочитать тут.)

среда, 26 декабря 2012 г.

Модульная елка. Модульный Qt.

Наступает самое чудесное время любимое взрослыми и детьми - Новогодние праздники. Предлагаю и Вам не оставаться в стороне и порадовать своих коллег или близких (на худой конец, можно и себя любимого/любимую) вот такой интересной елочкой сделанной по технике модульного оригами. Создание композиции поможет скоротать рабочее время (только тс-с-с-с ;-)) и повысить новогодний "спирит"! А сказать "спасибо" за предоставленную схему, можно и нужно Татьяне Просняковой - мастеру своего дела! 

Праздник то волшебный, глядишь и под такую ель Дед Клаус Мороз положит какой-нибудь интересный подарок :-). Вот так вот нежданно-негаданно, парни из Qt-project & Digia преподнесли нам всем подарок и выпустили релиз Qt5. Что тут говорить... многие его ждали и, очевидно, дождались. Новшеств много, и тот кто в "теме" уже почувствовал запах "наживы" :-), кто же не следит за развитием библиотеки - предлагаю пройти по приведенной ссылке и ознакомиться с пресс-релизом. Только вот сторонникам свободного ПО (читай "пользующимся компилятором MinGW"), ведущим свою разработки в ОС Windows (как-то странно звучит, не находите? :-)), переходить на новую версию пока не рекомендую. 

Во-первых, на странице загрузки библиотеки отсутствует бинарная сборка компилятором MinGW.

среда, 12 сентября 2012 г.

Не iPhone'ом едины!

Эх, пришлось мне тут давеча посвятить свое драгоценное время выбору нового телефона для своей "второй половинки". Покупка техники это, бесспорно, всегда приятного для такого фаната электроники как я... но вот тенденции современного рынка мобильных аппаратов меня просто разочаровали. Все производители телефонов как с ума посходили в своих стремлениях "примазаться" к стилю "а-ля йаМобилко". Стоят на прилавках как братья близнецы и все ... "лопаты" ... которым "чемодан батареек" не доложили :-). Нет, я совершенно не хочу "оскорбить" ни каких-либо брендов, ни трендов... я просто высказываю свое ИМХО, так что зачехлите назад свои "топоры" и "мечи" - сечи не будет ;-). 

Побегав по магазинам и замучив интернет, телефон мы конечно купили, а вот увидеть гипотетическую замену своему агрегату я так и не смог. Железо, конечно же, обновилось, экраны стали больше и лучше, NFC вот появилось ... правда непонятно пока к чему его приложить :-). Только, ЧТО же получается в итоге - то ли телефон навороченный, то ли КПК с интегрированным телефоном? Да еще вот и Nokia сделала "ход конем" сделав ведущей платформой Windows Phone, убив тем самым последние надежды получить качественную новинку от финского производителя на MeeGo или той же Symbian.

Менять телефон, рано или поздно, все равно придется - нет ничего вечного в этом мире, но пока я пошел по "другому пути" и расширил функциональность (если можно так выразиться) своего Nokia 5220 сторонними бесплатными Java MIDP приложениями. С кратким обзором которых и предлагаю Вам ознакомиться, вдруг найдете для себя что-то полезное :-).

четверг, 6 сентября 2012 г.

Лечим "кракозябры" в консоли сборки Qt Creator под Windows

Добрый день, друзья!

Не понятно? Вот и с Qt Creator'ом так - о чем он там пишет на "русском" в консоли сборки - черт его знает... :-). Хотя здесь только "половина" его вины, а именно нежелание разработчиков "пофиксить" ситуацию, когда вывод вызываемого в консоли mingw32 идет в кодировке ibm866, а сам Qt Creator работает в кодировке cp1251. Конечно, проблемы нет для англоязычных разработчиков (ну и для тех, у кого "локаль" на ПК установлена в одной из вариации "английской"), но что же делать нам, истинным патриотам своего языка? :-) 

На форумах, посвященных Qt, есть несколько тем с означенной проблемой и парочкой возможных путей решения, основная идея которых это замена конфигурационных файлов самого Qt Creator'а перед его компиляцией либо уже пропатчивание готового исполняемого файла. Больше всего решений связано с заменой файла jom.exe, ранее пропатченным одним умельцем b-s-a (например, тут можете ознакомиться более подробно). Хотя это, по сути, справедливо для компилятора от Visual Studio, а у нас тут все же mingw32 :-). 

Поэтому, если Вам не помогли способы описанные на ресурсах указанных выше, предлагаю ознакомиться и с моим решением данной проблемы... "костыльным" решением ... но имеющим право на существование ;-).

среда, 5 сентября 2012 г.

Возвращение электробуратино или еще два слова про электронные кошельки

И снова здравствуйте!!

Сегодня я хотел бы вернуться к теме начатой более года назад и поговорить об электронных кошельках. Не шуточная борьба, очевидно, происходит на рынке электронных переводов после принятия ФЗ от 27.06.2011 г. № 161-ФЗ "О национальной платежной системе". Тут тебе и различные банки и операторы сотовой связи подтянулись - все хотят получить свой "кусок пирога". Оно и понятно - рынок электронных платежей в 2011 году составил порядка 125 млрд. рублей - хороший "пирожок", не правда ли ;-)? В сети даже проскальзывала информация, что Сбербанк России собирается прикупить себе систему "электронных кошельков" и в качестве претендентов назывались известные нам Яндекс.Деньги и RBK Money. Но, видимо, ничего из этого не срослось и Сбербанк задумал запустить свою собственную систему под брендом "Ракета". Да и сама Яндекс.Деньги, с недавних пор, стала выдавать своим пользователям совершенно бесплатно (за доставку почтой только 99 руб. берут) банковские карты привязанные к счету в системе (совместный проект с банком "Тинькофф. Кредитные системы."). Все борются за "клиента" :-), осталось только нам (клиентам) определиться со своим выбором. А выбирать действительно есть из чего.

Так, за время прошедшее с момента публикации предыдущей заметки, мне удалось ознакомиться не менее чем с восемью другими системами и о трех из них, наиболее симпатизирующих Вашему покорному слуге, я хотел бы рассказать. Это белорусская EasyPay, платежная система "Единый кошелек" входящая в состав мультисервиса W1, и примелькавшаяся всем нам своими терминалами QIWI ("QIWI кошелек").

Ну что ж.... "Сестра! Скальпель, зажим... приступаем!!!..." ;-)

суббота, 18 августа 2012 г.

Даешь интернет по Bluetooth!

Одолжили мне тут как-то, на недолго, попользоваться USB адаптером bluetooth "Tekram" TM-308. Не то, чтобы он мне был особо нужен, просто решил "расшарить" интернет с ПК (Windows 7) на нетбук (Windows 7). Что из этого получилось, читайте дальше ... :)))

Перво-наперво, обладателей подобных бюджетных девайсов я хотел бы предостеречь от утраты идущего в комплекте диска с ПО - храните его - это спасет вам, в последующем, не мало нервов. Так, мое устройство досталось мне безо всякого ПО и я, полагая, что умудренная драйверами Windows 7 сделает все сама, подключил его к компьютеру ...

вторник, 14 августа 2012 г.

Qt снова меняет "хозяина"

Не прошло и пяти лет "мои юные любители прекрасного" Qt, как среда снова сменила владельца. Как многие и предполагали еще в прошлом году - им стала компания Digia, ранее уже приобретшая бизнес коммерческого лицензирования. Теперь же Digia принадлежит ВСЕ - и лицензии и табуретки :-). К чему приведет эта покупка покажет ближайшее будущее, но уже сейчас заявлена поддержка новых платформ Android, iOS и всеми нами ожидаемой Windows 8 ;-). Очевидно дела у Digia действительно идут так хорошо, как написано... либо у Nokia так плохо, как не говорят. Отказ финского производителя полностью от Qt выглядит как реализация "неугодных" активов и, я не удивлюсь, если новых моделей телефонов с поддержкой Qt мы уже не увидим. Зато как все многообещающе начиналось... ох и ах :-).

Тем не менее, среда Qt от этого только выигрывает, по мнению многих пользователей, так как снова получает ориентир не desktop. Осталось только проверить это временем! ;-)

пятница, 3 августа 2012 г.

Сборка Qt из исходников компилятором MinGW

С самого первого своего знакомства с Qt меня не покидало желание самостоятельно скомпилировать эту библиотеку. Однако, постоянно отпугивали возможные сложности связанные с этим процессом - настройка среды, предварительная конфигурация и т.д. и т.п. Достаточно проще было взять на сайте уже бинарный пакет и клепать свои "калькуляторы" :-). Но в один момент "небеса разверзлись" и "перст указующий" дал понять, что пользоваться компилятором GCC 4.4 уже не модно и пора переходить на версию поновее. Тут то и пришлось снова вернуться к идее самостоятельной компиляции Qt, поскольку бинарная версия с сайта (собранная GCC 4.4) наотрез отказывалась работать с последней версией MinGW (оно то и понятно - GCC 4.6). Как оказалось, процесс этот несложный, поэтому я и решил поделиться своим HowTo с такими же страждущими как я - дабы не пугались они "гнева праведного".... т.е. сложностей, а экспериментировали и развивались :-).
Приступим...
MinGW. Выбор пакетов для установки

вторник, 29 мая 2012 г.

Qt Creator - ни релиза, без сюрприза!

В то время, когда вся наша огромная страна, а частью и все бывшие союзные республики, отмечали День победы (за что еще ОДНО ОГРОМНОЕ СПАСИБО нашим дедам, отцам, бабушкам и матерям, которые этот день "приближали как могли"), неугомонные программисты из команды Qt выпустили в свет новую версию Qt Creator - 2.5.0.

Как обычно заявлен внушительный список изменений и дополнений, а так же парочка новых плагинов (один из которых, судя по фамилиям, написали наши соотечественники - Дмитрий Савченко и Василий Сорокин). Но основное изменение, как мне видится, затронет Windows пользователей инструментария Qt. Исходя из замечания для пользователей MinGW, кое в моем вольном переводе можно озвучить как:

суббота, 28 января 2012 г.

PHPclasses.org - тут живут классы PHP.

Пришлось мне как-то помогать коллеге "по цеху" создавать ма-а-а-аленький веб-портал на PHP. И в одном из блоков нужно было создать аналог, привычного всем GUI-программистам, табличного компонента с возможностью просмотра и редактирования данных. Конечно же, речь сразу пошла о Web 2.0, AJAX и т.д. и т.п. Но если это стало нужно нам, то это скорее всего требовалось и кому-то еще (кто же не любит похалтурить и воспользоваться плодами трудов другого человека? ;-)) - вот так поискав в Интернете я и вышел на замечательный сайт PHPclasses.org.
Название ресурса говорит само за себе - PHP классы. И классы там действительно есть и они действительно написаны на PHP :-). Создатели этих наработок такие же программисты как мы и, кстати, ничего не мешает вам самим разместить там свой собственный "имба"-класс :-))

четверг, 19 января 2012 г.

Кодируем видео для HTML5

Я более чем уверен, что все уже в курсе о Web 2.0 и HTML5 и о их победном шествии по просторам Интернета :-). Кто же не знает какие "плюшки" дарует нам новый стандарт, рекомендую посетить сайт HTML 5 Demos and Examples, что бы самим все увидеть и "пощупать". Некоторые вещи очень интересны и особенно долгожданный тег <video>. Я не буду рассказывать о текущих перипетиях идущих вокруг вопроса о том, какой в итоге кодек должен быть использован для тега <video> - об этом вы сами можете прочитать пройдя по ссылке на Википедию. Я хотел бы поделиться способом относительно быстрой конвертации в формат WebM - наиболее перспективного кандидата для официального закрепления за званием "кодек тега <video>".
И в этом деле нашим помощником будет набор свободных библиотек для работы с видео/аудио - ffmpeg. Поскольку ffmpeg является кросс-платформенным программным обеспечением - кодирование видео с его помощью получается достаточно универсальным решением. Скачать данный пакет вы можете со страницы загрузки проекта. Пользователи Windows обратите внимание, что скачать ffmpeg вам необходимо от сюда (не знаете какую версию качать? тогда скачивайте версию "static" - один монолитный файл).
Как и все аццко-интересное в мире свободного софта, ffmpeg консольная утилита, а значит "командная строка" нам в руки :-). Но не пугайтесь любители графических программ - много "набирать" не придется - разработчики ffmpeg уже за нас постарались и заранее создали необходимые шаблоны кодирования видео, в том числе и WebM. Все что нам потребуется - так это в командной строке выполнить команду:

ffmpeg -i input_file -f webm output_file

где, input_file - имя видео-файла, который необходимо перекодировать в формат WebM; output_file - имя выходного файла в формате WebM. Например:

ffmpeg -i my_video.avi -f webm my_video.webm

Согласитесь - очень просто и не затейливого, а самое главное - бесплатно ;-).
Конечно же, не только для кодирование в формат WebM вы можете использовать ffmpeg. Возможности его широки и узнать о них вы всегда сможете вызвав справку (ключ "-h"), уж извините, ибо чтобы о них всех, даже вкратце, рассказать - потребуется писать отдельные статьи :-).
На сегодня все ... пойду кодировать свою видео-коллекцию... всякого кино :-)

среда, 18 января 2012 г.

Карты всякие нужны, карты всякие важны!

[Image]
Все мы, пользователи Интернета, люди "продвинутые" (раз уже смогли в "сеть" выйти :-)) и атрибутами современности нас уже не удивишь - будь то "планшетник" или виртуальная банковская карта. Некоторые "адепты сети" даже работают в ней и зарабатывают деньги, в то время как другие оставляют их, пользуясь интернет-магазинами и прочими on-line "радостями". С учетом бурно развивающейся интеграции сетевой коммерции с классическим банковским сектором (чего только стоит принятый закон "О национальной платежной системе", определяющий, в том числе, и операции с электронными деньгами) у пользователей Интернета появляется все больше и больше возможностей использовать банковские карты для расчетов в сети. Где-то напрямую, а где-то посредством электронных кошельков. Свою особую актуальность связка "электронный кошелек - банковская карта" приобретает, конечно же, для людей занимающихся "сетевым" заработком (фрилансеры и иже с ними). Но сегодня речь не об этом, сегодня я хотел бы затронуть вопрос доступных (читай "бесплатных" ;-)) банковских карт, которые мы можем использовать для своей "финансовой" активности в Интернете - работой с электронными кошельками. Полагаю не стоит затрагивать тему опасности использования основной карты для работы в сети? Кардеры и "кул хацкеры" не дремлют :-). Если же вы не задаетесь вопросом "где взять бесплатную банковскую карту", и вас устраивает любая карта, то читать этот пост далее вам, скорее всего, будет не интересно. Для тех же, кто не "ворочает миллионами" в Интернете, и не желает тратиться на дополнительную карту для расчетов в сети, предлагаю свой мини-обзор возможных карточных продуктов :-).