Jak si udělat štokrle z palet

Dnes si ukážeme, jak si vyrobit štokrle a jak pomocí něj můžeme předcházet hemeroidům nebo zácpě. Štokrle je malá stolička, kterou si při návštěvě velké strany vysunete zpod toaletní mísy, sednete si na mísu a nohy si položíte na štokrle. Tím pádem bude pro vás vykonání potřeby přirozenější.

Budeme potřebovat palety, které si nařežeme a sešroubujeme k sobě dle libosti. Přibližné rozměry jsou 40 x 20 x 20 cm. Udělejte si to jak chcete. Výřez je pro umístění pod toaletu, když štokrle nepoužíváte.

Pak to natřeme balakrylem a je to!

Ale pokud nechcete být hipster, můžete si koupit originál :)

Jak si udělat monitoring teploty na Raspberry Pi

Nechcete přece, aby vám začal Raspberry hořet, že?

V tomto článku si vytvoříme jednoduchý bashový skript, který budeme spouštět cronem a když teplota Raspberry překročí určitou mez, pošle nám o tom email. Je to spíš pro zajímavost, než že by to mělo reálný užitek :)

Odesílání emailů

Nejprve si nainstalujeme ssmtp abychom mohli odesílat emaily:

sudo apt-get install ssmtp
sudo apt-get install mailutils

Upravíme konfiguraci. Já například využívám UPC internet, takže mě stačí zadat jejich veřejný, zdarma dostupný SMTP server. Plus hostname, z toho budou emaily chodit. Tuto doménu si pak ve vašem emailu dáte na whitelist aby emaily z Pi nepadaly do spamu.

sudo nano /etc/ssmtp/ssmtp.conf
mailhub=smtp.dkm.cz
hostname=vase-domena.cz

Skript pro měření teploty procesoru

Založíme si soubor temperature.sh a jeho obsah bude následovný. Je to pečlivě vypiplaný kus skriptu, který jsem splácal metodou pokus omyl. Bash není má silná stránka.

#!/bin/bash

val=$(vcgencmd measure_temp | egrep -o '[0-9]*' | head   -1 |  bc -l)
max=60

if [ "$val" -gt "$max" ]; then
    echo "$val" | mail -s "RPI - Teplota" vas@email.cz
fi

Dáme mu práva na spouštění:

chmod +x temperature.sh

A můžeme otestovat (doporučuju snížit teplotu třeba na 30 kvůli testování):

sh temperature.sh

Pravidelná kontrola cronem

Budeme jej spouštět cronem každých 5 minut. Editaci cronu spustíme tímto příkazem:

crontab -e
*/5 * * * * sh /home/pi/temperature.sh

Tak a je to :)

Jak si udělat media server z Raspberry Pi

Dnes si ukážeme, jak si udělat media server ve vaší lokální síti. Použijeme k tomu Raspberry Pi a software MiniDLNA.

Instalaci Raspberry jsem popsal už v prvním článku ze série Raspberry.

Jak se k Raspberry připojit přes Sambu a nahrát si do ní soubory (třeba film) jsem popsal v druhém článku.

Nyní si ukážeme instalaci MiniDLNA serveru. Abychom mohli média z Raspberry sdílet v naší síti a přehrávat si je třeba na Xboxu, mobilu, notebooku nebo chytré televizi.

Instalace MiniDLNA

MiniDLNA je open source program využívající protokol UPnP. Jeho instalace je primitivní:

sudo apt-get update 
sudo apt-get upgrade 
sudo apt-get install minidlna

Konfigurace MiniDLNA

V minulém díle jsme si vytvořili v Raspberry složku /home/pi/share, kterou nyní využijeme jako zdroj médií. Otevřeme si konfigurační soubor:

Otevřeme si konfigurační soubor v editoru “nano”:

sudo nano /etc/minidlna.conf

A na konec souboru můžeme psát vlastní nastavení. Pozor dejte na řádek media_dir – to bude ta naše slavná sdílená složka.

inotify=yes
media_dir=/home/pi/share
merge_media_dirs=yes

Uložíme pomocí Ctrl+X a následně Y.

A jsme ready

MiniDLNA nastartujeme jako službu tímto příkazem.

sudo service minidlna start

Ještě se ujistíme aby se služba automaticky nastartovala při zapnutí Raspberry.

sudo update-rc.d minidlna defaults

Tak a je to. Nyní máme v lokální síti funkční media server, ke kterému můžeme přistupovat odkudkoli. Například pokud máme Xbox One nebo počítač s Windows 10, použijeme aplikaci Films & TV (Filmy a TV pořady). Přepneme se na “Servery médií” a uvidíme média na Raspberry.

Jak si udělat sdílené úložiště z Raspberry Pi

Dnes si ukážeme, jak si udělat sdílený disk ve vaší lokální síti. Použijeme k tomu Raspberry Pi a software Samba.

Připojení k Raspberry

Instalaci jsem popsal už v minulém článku.

Nastartujeme příkazovou řádku (cmd) a připojíme se příkazem:

ssh pi@raspberrypi

Instalace Samby

Použijeme Sambu – tím pádem budeme moci z Windows přistupovat do souborového sytému Raspberry.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install samba samba-common-bin

Konfigurace Samby

Vytvoříme si složku /home/pi/share, která bude sdílená.

mkdir /home/pi/share

Otevřeme si konfigurační soubor v editoru “nano”

sudo nano /etc/samba/smb.conf

A na konec souboru můžeme psát vlastní nastavení. Hlavně definici sdílené složky – její cestu, název atd.

[share]
path = /home/pi/share
writeable=Yes
create mask=0777
directory mask=0777
public=no

Uložíme pomocí Ctrl+X a následně Y.

Samba uživatel

Vytvoříme si Samba uživatele, pro jednoduchost ho nazveme pi (stejně jako defaultně vytvořený unixový uživatel na Raspberry). Zeptá se nás to na heslo tak si nějaké zvolíme.

sudo smbpasswd -a pi

Sambu restartujeme:

sudo service smbd restart

Jdeme se připojit

Nyní ve Windows průzkumníku zadáme cestu (a nebo se tam proklikáme přes Síť):

\\RASPBERRYPI\pi

Vyplníme uživatelské jméno, které jsme si vytvořili (pi) a zvolené heslo. A jsme tam, v domovské složce Raspberry (/home/pi/share).

Jak si udělat webový server z Raspberry Pi

Raspberry je malinký počítač, který můžete využít ke spoustě věcí. My si ukážeme, jak si na něm postavit vlastní webový server. Nebude mít žádné grafické rozhraní, ovládat ho budeme jako správní nerdové přes příkazovou řádku.

Moje krásné Raspberry Pi 3B+ v krabičce z 3D tiskárny

Instalace Raspbianu

Pokud už Raspbian (speciálně upravená verze Linuxu) nainstalovaný máme, zkontrolujeme jen, že máme povolené SSH. Pokud ne tak:

  • Stáhneme si Raspbian Lite a rozbalíme ho. Získáme tím .img soubor.
  • Dále si stáhneme Win32 Disk Imager a stažený .img soubor “vypálíme” na Micro SD kartu.
  • Na kartě vzniknou dva oddíly a na tom s názvem “boot” vytvoříme prázdný textový soubor (bez přípony) s názvem “ssh”. Tím povolíme SSH připojení.
  • Kartu můžete vyndat z počítače a vložit do Raspberry, které už máme připojené ethernetovým kabelem k síti (ke stejné jako jsme my na velkém počítači) a do elektriky.

Připojení k Raspberry

Nastartujeme příkazovou řádku (cmd) a připojíme se příkazem:

ssh pi@raspberrypi

Výchozí heslo je “raspberry”. Předpokládám, že máte novou verzi Windows 10, které mají integrovaného ssh klienta, jinak použijte třeba Putty. A jsme tam!

Instalace Apache

Jako webový server použijeme Apache2 – nehynoucí klasiku. Trojicí příkazů systém zaktualizujeme a nainstalujeme Apache:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2

A máme v podstatě hotovo!

Testujeme

Nyní se z našeho velkého počítače podíváme, jestli webový server běží. Přejdeme na adresu http://raspberrypi/ a pokud vidíme tohle, tak jo!

Několik tipů na závěr

Obsah defaultní stránky webserveru upravíme (v jednoduchém editoru nano) příkazem:

sudo nano /var/www/html/index.html 

Editor zavřete (a uložíte změny) stisknutím kombinace Ctrl + X a pak Y.

Pokud bychom chtěli mít webserver dostupný i z venkovního internetu, je to taky celkem jednoduché, ale pozor na bezpečnost. V podstatě musíte na routeru nastavit “port forwarding”, čili budete otevírat určité porty (v našem případě port 80) venkovnímu internetu. Nastavení se liší u každého routeru. Pak budete moci k Raspberry přistupovat odkudkoli, pokud budete znát IP svého routeru. Případně si na něj můžete nasměrovat doménu.

Doporučuji si změnit výchozí heslo. Můžete tak udělat pomocí utilitky:

sudo raspi-config

Bezpečnost webového serveru je široké téma. Doporučuji nainstalovat fail2ban.

Jak jednoduše zautomatizovat testování webové stránky – Selenium a Webdriver

Po každé větší změně v projektu, případně rovnou při každém releasu je vhodné otestovat základní funkčnost aplikace. End-to-End testování přímo v prohlížeči je jednou z možností a je s tím podle mě sranda.

End-to-end testing is a methodology used to test whether the flow of an application is performing as designed from start to finish.

https://www.techopedia.com/definition/7035/end-to-end-test

Co budeme potřebovat?

Facebook Webdriver si stáhneme přes composer, Selenium a ChromeDriver si stáhneme klasicky a naše složka bude vypadat takto:

Píšeme test

Založíme soubor test.php, ten může vypadat nějak takto:

<?php

use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\WebDriverDimension;
use Facebook\WebDriver\WebDriverBy;
use Facebook\WebDriver\WebDriverExpectedCondition;

require_once 'vendor/autoload.php';

// config
$host = 'http://localhost:4444/wd/hub';
$options = new ChromeOptions();
$options->setExperimentalOption('prefs', ['download.default_directory' => 'c:/temp']);
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);

// create driver and resize window
$driver = RemoteWebDriver::create($host, $capabilities, 5000); 
$driver->manage()->window()->setSize(new WebDriverDimension(1360, 768));

// start testing this URL
$driver->navigate()->to("https://www.skoula.cz/");

// click on some element
$driver->findElement(WebDriverBy::cssSelector('.menu-item-1233 a'))->click();

// check URL if we are there already
$driver->wait(5, 500)->until(
    WebDriverExpectedCondition::urlContains('projekty')
);

// is there some element?
if ($driver->findElements(WebDriverBy::className('entry-title'))) {
    echo "ok";
} else {
    echo "ko";
}

A jak probíhá testování?

  1. Nejprve si spustíme Selenium Server – stačí spustit stažený .jar soubor.
  2. Pak spustíme náš test.php – ať už v prohlížeči nebo přes konzoli.

Jak to vypadá v praxi vidíte na tomto videu. Není zrychlené :)

Celý tento mini projekt si můžete stáhnout zde.

Lepší editace videa – Filmora

Pokud vám ke stříhání videa nestačí aplikace Fotky pro Windows 10, bude asi potřeba zainvestovat. Já vybíral z Filmory a Adobe Premiere Elements a nakonec jsem vybral první jmenovanou (ve verzi 9).

https://filmora.wondershare.com/filmora-2018/images/shared/filmora-9/filmora-9-box.png

Filmora je relativně hezký program, který jednorázově stojí $60 a nebo s ročním předplatným $40. Obsahuje klasicky panel s obsahem, panel videa a časovou osu (až 100 vrstev). Líbí se mi, že se v ní dají dělat pokročilé věci ale stále jednoduše.

Kromě spousty efektů a filtrů, předpřipravené hudby, titulků, rámečků (to se tak nějak očekává) obsahuje i pokročilé funkce, například green screen effect.

Editace videa ve Windows 10

Movie Maker byl zkrátka nepřekonatelný program pro jednoduchou editaci videa. Když jsem hledal jeho nástupce, nejvíc se mi osvědčil OpenShot Video Editor, který má ale typicky hnusné uživatelské rozhraní.

Ve Windows 10 existuje aplikace Fotky, která slouží primárně pro prohlížení obrázků a to i těch uložených na OneDrivu. Trošku nešikovně je do ní zakomponovaný program Editor videa.

Ten je ale skvělý na takovéto rychlé sestříhání videa. Přidáte si titulek, nasázíte tam videa, případně si je trošku nastříháte, vyberete předpřipravenou písničku a je to. Samozřejmě ještě přidáte nějaký ten 3D efekt – explozi, déšť atd včetně možnosti ukotvení na určitý bod obrazovky. Všechno je krásně jednoduché a celý program má hezký moderní vzhled.

Tablet se zobrazenou aplikací Fotografie a editorem videí.

Mrzí mě na něm jediná věc a tou je absence nějaké časové osy pro vkládání hudby. Je to zkrátka daň za jednoduchost.

Videa na svůj YouTube kanál přidávám celkem často a poslední dobou jsou “sestříhaná” právě v tomto programu.

Dva užitečné nástroje pro automatické vylepšení PHP kódu – ECS a Rector

Prvním z nich je Easy Coding Standard. Nainstalujete si ho klasicky přes composer (ať už do vašeho projektu nebo bokem) a jednoduše spustíte v konzoli:

vendor/bin/ecs check src --level clean-code --fix

Příklad výše spustí ECS pro adresář src, pomocí volby –level si určíme, co se má opravovat (je tam přednastavených mnoho configů) a pomocí –fix určíme, že se to má rovnou opravit, ne jen vypsat.

Dalším zajímavým nástrojem je Rector. Prezentuje se jako nástroj pro upgradování, případně pro migraci mezi frameworky ale umí i jiné věci – například odstraňovat “dead code” čili pozůstatky kódu, který se nikdy neprovede. Instalace probíhá opět přes composer a spustit ho můžeme následovně:

vendor/bin/rector process src --level dead-code

Příklad výše spustí Rector nad adresářem src a rovnou ho nechá opravovat kód. Pokud přidáme volbu –dry-run, kód se neopraví, nejprve tedy budete mít možnost vidět výsledky operace.

Pro seznam configů můžete spustit:

vendor/bin/rector levels