Jak jsem nasadil Let’s Encrypt 2

Možná si ještě vzpomínáte na můj první článek o tom, Jak jsem nasadil Let’s Encrypt. Jo, nebyl příliš jednoduchý ale zase jste věděli co se vám na serveru děje. Dneska ukáži jednodušší způsob: Cerbot.

Instalace

Automatická instalace certifikátů a nastavení Apache:

Pokud jste konzervativní a nechcete aby vám Cerbot zasahoval do konfigurace Apache, přidejte k příkazu certonly:

Po spuštění se zobrazí průvodce, který požaduje váš e-mail a nalezne všechny virtualhosty na serveru a nabídne pro ně vygenerování certifikátů. Vyberete ty, které chcete použít.

Certifikáty jsou poté vygenerovány do: /etc/letsencrypt/live/www.jmeno-domeny.cz/fullchain.pem

Obnovení platnosti certifikátu

Let’s Encrypt vydává certifikáty s platností 90 dní. Obnova certifikátů se provádí příkazem:

If that appears to be working correctly, you can arrange for automatic renewal by adding a cronor systemd job which runs the following:

 

SdílejteShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

Debian 9: jak nastavit IPv6

Pokud váš poskytovatel připojení internetu nabízí IPv6, zde je ukázka nastavení. Tato konfigurace se provede i po restartu serveru.

vim /etc/network/interfaces

Aby se změna projevila, je nutné restartovat interface

Pokud jsme přihlášeni přes Putty, bude spojení přerušeno a je nutné se znovu připojit.

Správnou konfiguraci zjistíme příkazem:

Správné nastavení ověříme pingem:

 

SdílejteShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

Debian 9 (stretch) – instalace php 7.1

V poslední verzi Debianu Stretch je defaultně php 7.0, pokud potřebujete novější 7.1, je možné jej bez kompilace zdrojových kódů nainstalovat přes balíčky:

SdílejteShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

Jak jsem nasadil Let’s Encrypt

Dnes si prakticky ukážeme jak zprovoznit Let’s Encrypt na vlastním serveru s Debianem a Apache. Let’s Encrypt je továrna na certifikáty zdarma.

Instalace Let’s Encrypt

Zastavíme Apache

Přesvědčíme se že na portu 80 nic neposlouchá:

Vygenerování certifikátu

  1. zadáme email
  2. souhlasíme s podmínkami
  3. zadáme doménová jména pro která chceme certifikát (example.com, www.example.com, app.example.com)

Opět spustíme Apache

Certifikáty byly vytvořeny do složky:

Do Apache pak stačí pouze přidat (základní nejjdnodužší nastavení):

vim meducina.cz-ssl.conf:

Přidáme tuto konfiguraci:

Restartovat Apache a je to 🙂

Ovšem doporučuji Apache nastavit pořádně. K tomu pomůže Generator Mozilla Security (musel jsem povolit a2enmod headers). Takto mi to funguje

Přesměrování na https

Veškerý traffic přesměrujeme na http

 

Obnova certifikátů

Doporučuji si udělat symlink aby příkaz letsencrypt-auto fungoval kdekoliv z příkazové řádky:

Certifikáty jsou vystavené pouze s platností 90 dnů! Zároveň je doporučováno je každých 60 dnů obnovit. Aktualizace certifikátů zatím stále není k dispozici, ale certifikát obnovíme opětovným spuštěním příkazů uvedených výše.

 

Pravidelná aktualizace certifikátů

Abychom nemuseli myslet na pravidelnou aktualizaci certifikátů, přidáme záznam do cornu, který nám je bude automaticky aktualizovat:

Obnovu certifikátů budeme spouštět každý první den v sudém měsíci ve 4:00 ráno:

To je vše. Není nutné restartovat Apache

Ovšem lepší je dát do cronu pouze 1 script, který bude automaticky obnovovat certifikáty:

vim /root/letsencrypt-renew

Nastavit oprávnění pro spouštění:

 

SdílejteShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

Bower + Grunt + Colorbox

Dnes vám naznačím jak do projektů přidávám knihovny třetích stran  a jak spojuji css a js soubory, které následně minifukuji. Ukážeme se to na pluginu Colorbox který používám pro zobrazení detailu fotek v pop-up okně.

Nainstalujeme Colorbox přes bower:

Grunt task pro Colorbox

Pro zkopírování souborů používám balíček grunt-contrib-copy a pro minifikaci css do jednoho souboru grunt-contrib-cssmin:

Nejdůležitější část souboru Gruntfile.js:

Tím se nakopírují ohrají obrázky obrázky z ./bower_components/jquery-colorbox/example3/images/ do www/css/image, soubor bower_components/jquery-colorbox/example3/colorbox.css se zmnifikuje a připojí k souboru www/css/main.css a soubor bower_components/jquery-colorbox/jquery.colorbox-min.js připojíme k zminifikovanému souboru www/js/compiled.min.js

Do souboru s JS přidáme inicializaci Colorboxu (v mém případě main.js):

Parametr {rel:’gal’} označuje že se jedná o galerii. Pokud bude více odkazů s class=”colorbox” půjde mezi fotkami přepínat a nebude se muset pop-up okno zavírat.

Odkazu s obrázkem přidáme classu colorbox:

A je to 🙂

SdílejteShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

Android: jak na responzivní zobrazení komponent na celou výšku displeje

Pokud budete chtít zobrazit komponenty rovnoměrně na celou výšku displeje, můžete využít ConstraintLayout. Jedná se o nový layout, který je dostupný v Android Studiu. Nezapomeňte ošetřit malé displeje, aby se komponenty na displej vešly.

constraint-layout

Kód pro inspiraci:

 

SdílejteShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

WordPress jak na shortcode

Namotivován ze včerejší WPkonference sedám ke stroji a jdu vylepšit můj plugin pro fotogalerii rajče. Plugin nyní zobrazuje naposledy vytvořené galerie s úvodní fotkou. Rozhodl jsem se použít shortcode pro zobrazení celé galerie.

Shortcode je příkaz který na svém místě zavolá funkci a zobrazí html kód. Například následující shortcode by zobrazil fotogalerii [forogalerie]. Shortcode můžeme používat ve stránce i příspěvku.

Jak použít shortcode

Pro zpracování takto definovaného shorcode:

Použijeme nejjednodušší metodu:

Příkazem add_shorcode definujeme nový shortcode. První parametr označuje název shortoce ( [rajce-galerie … ) a druhý parametr je název funkce, která se zavolá pro tento shortcode.

Ve funkci si můžeme sáhnout na parametry uvedené u shortcode, kde definujeme defaultní hodnotu, pokud parametr není uveden. V mím případě NULL:

Pak už si s parametry můžeme dělat co chceme 🙂

SdílejteShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

Leptání plošného spoje v domácích podmínkách

Již pěknou řádku let mi doma leží chemikálie pro leptání plošných spojů. Největší překážka pro mne byl osvit desky UV zářením. Při použití UV trubic pro mne byl výsledek vždy nejistý. Proto jsem investoval do trochu sofistikovanějšího řešení a koupil osvitovou jednotku na plošné spoje, se kterou je výroba plošných spojů v domácích podmínkách jednoduchá.

Desky pro plošný spoj máchám v plastových krabičkách na potraviny. Tyto krabičky jsou levné a mají výhodu, že se nechají uzavřít.

Osvit plošného spoje

Vytištěný plošný spoj (tisknu klasicky, žádné otáčení) na obyčejném papíře nastříkám sprejem Transparent 21. Správně otočím a plošný spoj a ozařuji 9minut 30 vterin (defaultní nastavení UV jednotky). Pokud leptám větší plochu spoje, klidně postříkám papír přímo na desce (osvit trvá docela dlouho a Transparent 21 se rychle odpařuje). Pro větší plošné spoje je ovšem nutné vytisknout plošný spoj na fólii – nemusí se stříkat sprejem Transparent 21 a výsledek je lepší.

Vývojka

Vývojku používám kupovanou již naředěnou: Vývojka obsahuje hydroxid sodný 1,5%

Vyvolávám v roztoku při pokojové teplotě. Roztoku mám v nádobě cca 0,5cm. Okamžitě po vložení do čerstvého roztoku (mědí nahoru) se začnou zobrazovat cestičky plošného spoje. Za 3 minuty by mělo být hotovo. Ovšem já vyčkávám déle, dokud neuvidím všechny cestičky bez šumu. Čekám cca 6 minut. A kádinkou občas pohybuji aby se k destičce dostala nenasycená vývojka a odplavily nečistoty. V úplně čistém roztoku 3minuty stačí, možná až moc (některé písmo je hůře vidět).  Jakmile se už nic neodpouští, pryč s tím. Udělal jsem pokus a za minutu vyndal, i to je asi moc 🙂 I ve starším roztoku 0,5 minuty stačí.

K manipulaci s destičkou plošného spoje používám fotografické kleště. Nikdy nesahejte to roztoků rukou bez jakéhokoliv nástroje! Destičku vyndám, omyji pod tekoucí studenou vodou a do sucha osuším.

Leptání v chloridu železitém FeCl3

Chlorid železitý FeCl3 není nebezpečný ale zanechává obtížně odstranitelné hnědé skvrny, které se na oblečení po čase změní v díry. Rukama do roztoku nesajte. Ani nedoporučuji železné kleště/nůžky pro manipulaci s destičkou plošného spoje. Po práci ruce důkladně umyjeme a ošetříme krémem.

K destičce plošného spoje udělám z elekrikářské lepenky madla pro snadnější manipulaci. Leptám v leptacím roztoku.

Leptám s použitím fotografické misky do které naliji cca 0,5 cm chloridu železitého. Plošný spoj za madla položím na hladinu (mědí dolů). Nejprve položím 1 hranu a postupně celý spoj aby pod ním nevznikla “bublina”. Suchý plošný spoj plave na hladině. Rozpuštěná měď klesá ke dnu.

Leptání v žádném případě neurychlujte štětcem! Doporučuji občas kontrolovat v jakém stavu se nachází leptání.

Leptám při pokojové teplotě (čím vyšší teplota tím rychlejší leptání). V čerstvém chloridu železitém trvá leptání cca 20 minut. Ke konci leptání je vidět prosvítání motivu. Leptám do té doby než zmizí “červené” pozadí.

Mytí & finální úprava

Vyleptaný plošný spoj důkladně omyjeme vodou a mýdlem abychom odstranili zbytky leptacího roztoku. Poté desku osušíme. Měděné plošky potřeme štětečkem s lihem (Aceton 700ml) a umyjeme pastou na nádobí Toro. Po těchto procedurách je neprodleně nutné nanést ochranný lak aby nedošlo k oxidaci mědi. Lak nanáším štětečkem. Mnohonásobně jednoduší (ale samozřejmě dražší než ochranný lak nanášený štětečkem) než nanášení laku štětečkem je použít sprej FLUX SK10

SdílejteShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

Jak publikovat Windows 10 aplikaci do Store

Povedlo se mi publikovat mou první aplikaci ve Windows Store 🙂 Jedná se o můj klasický HelloWorld 🙂 https://www.microsoft.com/cs-cz/store/apps/motor-cb/9nblggh4v9ft

Tady jsou mé poznámky a poznatky k celému procesu.

Nejprve je nutné se přihlásit Microsoftím účtem: https://dev.windows.com/cs-cz

V řídícím panelu klikneme na tlačítko Vytvořit novou aplikaci :  (https://dev.windows.com/cs-cz/registration/AccountInfo). Při prvním spuštění toho kroku je nutné vyplnit údaje o autorovi aplikace a zaplatit jednorázový poplatek 365,-Kč (částka se ještě navýší o daň = cca 77,-Kč). Celkem tedy 442Kč. Platbu je možné provést přes kreditní kartu nebo PayPal.

Vytvořenou UWP (Universal Windows Platform) aplikaci a vyexportujeme ji přímo z Visual Studia. Klikneme na projekt pravým tlačítkem a vybereme Store ->Create App Packages … :

store1

store2

Poté je ještě nutné spustit App Certification Kit – jedná se o testy, které se samy vykonají a otestují základní funkčnost aplikace. Po dokončení těchto kroků máme k dispozici soubor s aplikací:

Documents\Visual Studio 2015\Projects\MotorCB\MotorCB\AppPackages\MotorCB_1.1.6.0_x86_x64_arm_bundle.appxupload

Ten nahrajeme na https://developer.microsoft.com/cs-cz/dashboard/overview a doplníme povinné údaje.

store3

A pak už jen čekat 🙂 Mou první aplikaci schválili za necelé 2 dny. Při tomto procesu se opět na aplikaci spouští testy.

Každý další upgrade aplikace je většinou schválen do 24hodin a do dalších 24 hodin se změny projeví ve Windows Store.

store4

Záseky při publikování aplikací

Šipka zpět

Tohle jsem nepochopil, ale programátor si musí ošetřit funkčnost šipky zpět 🙂 Úprava spočívá v přidání těchto řádků:

Otevření URL ve webovém prohlížeči

 

SdílejteShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

Android: layout pro různá zařízení

Pokud si přejete zobrazit různý layout pro telefon, 7″ tablet a 10″ tablet určitě vám pomohou tyto poznámky.

Starý a již nepreferovaný způsob:

  • layout výchozí složka – v té máte základní layout
  • layout-large pro 7″ tablet (funguje pro emulátor Nexus 7)
  • layout-xlarge pro 10″ tablet (funguje pro emulátor Galaxy Tab 10.1)

Nový preferovaný způsob je vybrání layoutu podle hodnoty dp

Jednotka dp (density independent piuxel) vyjadřuje fyzickou velikost displeje. a je definován vztahem:

  • 320dp: typické rozlišení pro telefon (240×320 ldpi, 320×480 mdpi, 480×800 hdpi, atd.).
  • 480dp: phablet – něco mezi telefonem a tabletem (480×800 mdpi).
  • 600dp: 7” tablet (600×1024 mdpi).
  • 720dp: 10” tablet (720×1280 mdpi, 800×1280 mdpi, atd)

Šablony pro zůzně velká zařízení

  • sw600dp = nejmenší rozměr (smallestWidth) 600dp – použije se pokud nejmenší rozměr displeje je alespoň 600dp – bez ohledu na to zda je to šířka nebo výška
  • w600dp = šířka displeje 600dp
  • h600dp = výška displeje 600dp

Příklad: Nexus 6 se má velikost displeje 5,96″ a Quad HD v rozlišení 2560 x 1440 (493 ppi). To odpovídá ~ 730 x 410 dp

Vaše zařízení můžete dohledat na adrese http://www.emirweb.com/ScreenDeviceStatistics.php

Typická zařízení

  • Nexus 7: 1280 x 800 px (961 x 600 dp) / tvdpi / Large screen
  • Nexus 10: 2560 x 1600 px (1280 x 800 dp) / xhdpi / XLarge screen

Pokud tedy chci layout pro Nexus 7, založím ve složce app\src\main\res\layout-w600dp\ požadovaný layout

Pro Nexus 10 založím v app\src\main\res\layout-w720dp\ požadovaný layout

SdílejteShare on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone