Nedávno jsem chtěl naboostovat sociální sítě mých projektů a protože něco postnout na Facebook je natolik zdlouhavé a otravné, hledal jsem nějaký program (nebo službu, i když já bych ocenil obyčejnou aplikaci…) který by mi umožnil postoval na víc sítí současně. Pro jeden projekt třeba Facebook a Twitter, pro druhý zase Facebook a Instagram atd.
Prakticky všechny služby jsou mezeny na 3 účty zdarma, až nakonec jsem narazil na Postfity (affil odkaz), které umožňuje mít až pět účtů na sociálních sítí.
Je to primárně určené na naplánování a automatické postování příspěvků, ale skvěle se to hodí pro pohodlné psaní na víc sítí naráz. V hezkém rozhraní a na jednom místě si to naplánujete, místo toho abyste překlikávali všechny sítě a postovat tam přes jejich pomalá rozhraní.
Pokud Raspberry používáte jako server, udělat si z něj torrentového klienta/server se přímo nabízí – je stále online a můžeme tedy stahovat dnem i nocí.
Instalace a konfigurace programu Transmission
Je to jednoduché, nainstalujeme si program Transmission. Vše budeme dělat přes konzoli, takže i pokud nemáte nainstalované desktopové prostředí a ovládáte Raspberry přes SSH, ničemu to nevadí.
sudo apt-get install transmission-daemon
Po instalaci se rovnou spustí jako služba. Dočasně ho vypneme příkazem:
sudo systemctl stop transmission-daemon
A začneme konfigurovat. Otevřeme si konfiguračí JSON soubor v oblíbeném editoru nano:
sudo nano /etc/transmission-daemon/settings.json
Uděláme pár změn:
Změníme položku “download-dir” tak aby byla v naší sdílené složce /home/pi/share.
Můžeme si změnit přihlašovací jméno a heslo – “rpc-username” a “rpc-password”. Po uložení souboru se heslo automaticky zahashuje.
“rpc-whitelist-enable” dáme na false – jsme na lokální síti, nebudeme omezovat přístup do našeho programu
Soubor uložíme kombinací Ctrl + X, pak Y. No a máme hotovo.
PS. Já osobně jsem si vytvořil ještě podsložku downloads, tedy /home/pi/share/downloads. A té jsem změnil práva tak, aby do ní mohl Transmission zapisovat. Práva jsem dal velkorysé, opět – jsme na lokální síti.
chmod 777 -R /home/pi/share/downloads
A co teď?
Nyní nám na Raspberry běží torrentový klient Transmission. Ovládat jej budeme přes webové rozhraní. Na počítači nebo na mobilu vyťukáme adresu našeho Raspberry v lokální síti:
Vyplníme zvolené jméno a heslo a jsme tam. Torrent spustíte kliknutím na první tlačítko, zadáte jeho url a je to. Na obrázku vidíte jak naprosto legálně stahuji linuxovou distribuci. Co jste si mysleli??
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 :)
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:
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:
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í:
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.
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).
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:
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.
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.
Facebook PHP Webdriver – PHP knihovna, se kterou budeme testy psát. Doporučuji mrknout do jejich Wiki.
ChromeDriver – driver se kterým budeme ovládat Chrome.
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í?
Nejprve si spustíme Selenium Server – stačí spustit stažený .jar soubor.
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é :)
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).
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.