PHP Simple HTTP Server

Ето как лесно и просто да стартирате HTTP Server под PHP:

php -S 127.0.0.1:8080

След което отваряте в браузър http://localhost:8080 и можете да видите как се изпълняват PHP скриптове от папката в която е създаден. Основната разлика в сравнение със сървъра работещ под Python е, че няма показване на папките във директорията. Директно се опитва да намери index.php и ако няма такъв сървъра тържествено обяснява, че не може да достъпи „/“ и връща 404.

PHP Simple HTTP Server

Python Simple HTTP Server

Понякога когато човек работи на Linux сървър и му трябва да си види няколко файла, но без да активира допълнителни клиенти или сървъри. Ето и решението за Python 2:

python -m SimpleHTTPServer 8080

Ако използвате Python 3:

python -m http.server 8080

След което отваряте браузър и пишете това:
http://ip.на.сървъра:8080/път/към/файла.txt

Това е всичко! Когато си свършите работа просто набивате един Ctrl-C на Python. Имайте на предвид, че Python се изпълнява под текущия потребител и наследява всички негови ограничения за достъпи до файловете. Под *nix портове под 1024 могат да се отварят само под root права и затова използваме порт 8080. Ако искате да отворите порт под 1024 ще трябва да използвате sudo, но тогава Python също ще се изпълнява под ниво на root и ще може да има достъп до всички файлове.

Python Simple HTTP Server

OpenVPN benchmark

Как да пресметнем колко е максималната пропусквателна способност на OpenVPN:
openvpn –genkey –secret /tmp/secret
time openvpn –test-crypto –secret /tmp/secret –verb 0 –tun-mtu 20000 –cipher aes-256-cbc

Резултата от втората команда е:

Tue Dec 17 22:27:25 2019 disabling NCP mode (--ncp-disable) because not in P2MP client or server mode
real    0m42.917s
user    0m42.738s
sys    0m0.075s

Приемаме, че командата се изпълнява за 43 секунди. Сега правим следната сметка:
(3200 / секундите) = максималната теоритична пропусквателна способностна OpenVPN в Mbps
При нас е:
(3200 / 43) = 73.41 Mbps

Откъде идва 3200? Това е сумата на числата от 1 до 20000, умножава се по 2 за шифроване/разшифроване и после се умножава по 8 бита и се разделя на 1000000 за да се получи като мегабита в секунда. Резултата показва колко е максималната пропусквателната пропусквателна способност ограничена от процесора (шифриране/дешифриране).

OpenVPN benchmark

OrangePi Zero LTS

OrangePi са пуснали нова версия на техния продукт Zero като вече се казва Zero LTS. Модификацията на LTS се води 1.5, докато аз разполагам със Zero 1.4 и според производителя това решава (най-сетне!) проблема със Wifi модула. Във предходните дизайни заради близоста си до захранването се прави интерференция със Wifi и производителността беше плачевна.

За да го онагледим използваме софтуера wavemon който показва във реално време какво се случва на безжичния интерфейс.

Ето и OrangePi Zero:

Ето и Raspberry Pi 3B:

Както сами виждате при OPi Zero имаме 30% загуба на пакети което води до повторното им изпращане. При RPi 3B няма такива загуби по трасето.

В заключение – ако не искате да си скъсате нервите ползвайте Zero само и единственно по Ethernet и категорично забравете Wifi функционалността му. В противен случай устройството работи 2-3 часа (може и повече, може и по-малко) и после не може да бъде достъпно защото се разкача от Wifi мрежата. Надявам се, че проблема е оправен във версия 1.5.

Обаче 1.5 въвежда и нов проблем:
https://lemariva.com/blog/2019/10/orange-pi-zero-lts-upgraded-alternative-old-raspberry-pis#armbian-buster-336586
Изглежда има някакъв нов проблем, този път със температурния сензор. НЕ Е нормално след работа да показва 10-15 градуса температура на ядрата. Подозирам, че е възможно процесора да е друга ревизия и със някакъв пач за в бъдеще това ще бъде отстранено.

OrangePi Zero LTS

PacktPub безплатни електронни книги

PacktPub като едно от големите издателства пуска всеки ден по една тяхна книга абсолютно безплатно на адрес:
https://www.packtpub.com/free-learning

Единственият недостатък е, че преди време позволяваше да се смъкнат ePub, Mobi и PDF на книгите. Сега вече се отварят само във техния си уеб базиран Reader.

PacktPub безплатни електронни книги

Капан за мишки

Веднъж мишката забелязала, че стопанинът на фермата е сложил капан за мишки. Тя разказала за това на кокошката, овцата и кравата, но те всичките и отговаряли:
– Капанът за мишки е твой проблем, а не наш!
Малко по-късно в капана се хванала змия и ухапала жената на фермера. Опитвайки се да я излекуват, сварили на жената супа от кокошката. После заклали овцата, за да нахранят всички, пристигнали да навестят болната. И накрая заклали кравата, за да нахранят гостите, дошли на погребението.
И през цялото време мишката наблюдавала от дупката си, мислейки за нещата, които са чужд проблем, докато не станат твой!

Капан за мишки

Отпечатване със използване на cups под macOS

Добавяне на принтер:

$ lpadmin -E \
 -p Printer \
 -v ipp://192.168.1.10/ipp/print \
 -P Vendor-Model.ppd

-E разрешава приемането на задачи за отпечатване
-p установява името на принтера
-v път към URI на устройството
-P път към PPD файла със характеристиките на устройството

Проверка на наличните принтери:

$ lpstat -a
Printer accepting requests since Thu Nov 26 18:29:28 2015

Отпечатване на документ:

$ lpadmin -x Printer

Изтриване на принтер:

$ lpadmin -x Printer
Отпечатване със използване на cups под macOS

How to control OrangePi Zero Leds

От известно време търкалям едно OrangePi Zero и сега ще ви покажа как да контролирате вградените му два светодиода (LED). За основа ползвам armbian 5.90 със linux kernel 4.19.57.

Пускане на червения led:
echo 1 > /sys/class/leds/orangepi\:red\:status/brightness
Спиране на червения led:
echo 0 > /sys/class/leds/orangepi\:red\:status/brightness

Аналогично командите за управление на зеления са:
echo 1 > /sys/class/leds/orangepi\:green\:pwr/brightness
echo 0 > /sys/class/leds/orangepi\:green\:pwr/brightness

А ето и нещо по-интересно – автоматично мигане на червения:
echo "heartbeat" > /sys/class/leds/orangepi\:red\:status/trigger
Или мигане на зеления при активност на SD картата:
echo "mmc0" > /sys/class/leds/orangepi\:green\:pwr/trigger

От чисто естетическа гледна точка обаче е по-добре да оставите зеления да е за heartbeat, а червения за mmc0. Другите валидни команди за контрол са:
none mmc0 mmc1 timer heartbeat backlight default-on

How to control OrangePi Zero Leds