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

Následně v menu klikneme na položku Odeslat 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.

Napíšeme 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

Windows 10: automatické zapnutí Num Lock po zapnutí

Ve Windows 10 je defaulně po zapnutí PC vypnutý Num Lock. Pokud máte v hesle číslo, příhlásíte se až na druhý pokus 🙂

Jak zapnout Num Lock po startu PC?

Tuto vlastnost je nutné změnit v registru. Zmáčkněte klávesu Win+R pro spuštění programu a do okna zadejte regedit. Potvdíte klávesou ENTER.

Ve stromu jděte na následující umístění: HKEY_USERS\.DEFAULT\Control Panel\Keyboard kde upravíte InitialKeyboardIndicators na Údaj hodnoty: 2

Po restartování je Num Lock zapnutý 🙂

Stále nefunguje?

Pokud toto nezabralo, jděte do nabídky Start -> vyhledejte Ovládací panely ve kterých pokračujte do Hardware a Zvuk -> Možnosti napájení.
Vlevo zvolte Nastavení tlačítek napájení a nahoře klikněte na Změnit nastavení, které není k dispozici.
V otevřeném okně odškrtněte položku Zapnout rychlé spuštění (doporučeno).

w10-numlock

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

Android – jak změnit barvu Chrome záhlaví

Chrome od verze 39 na telefonech Android dokáže změnit barvu záhlaví prohlížeče a přidat logo. Změnu uděláte velice jednoduchou syntaxí. Kód uvedený níže přidáte do tagu tagu <header>:

Navíc můžete přidat také ikonu v rozumném rozlišení (192 x 192px):

Výsledek:

chrome-color-page chrome-color-task

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

Honneywell Dolphin 75e

Do práce jsme vybírali mobilní terminál, který bude mít hardwarovou čtečku čárových kódu. Po prozkoumání nabízených zařízení nám zůstaly pouze zařízení s OS Android (snad s tím W10 ještě zahejbe ale asi to potrvá). Nakonec jsme vybrali Honneywell Dolphin 75e ale pro ten nefungují oficiální ovladače. WTF?

Nakonec jsem to obešel takto a ovladače fungují:

  1. přesvědčte se že máte nainstalovány ovladače pro Google USB Driver
    doolphin75e_1
  2. Úprava android_winusb.inf
    Soubor android_winusb.inf jsem v mém případě nalezl na: C:\Users\pc-x\AppData\Local\Android\sdk\extras\google\usb_driver\android_winusb.infProvedeme jeho editaci a za sekce Under both the [Google.NTx86] [Google.NTamd64] přidáme:
  3. Ve Správci zařízení zvolíme na neznámém zařízení Aktualizace software ovladače… a vybereme Vyhledat ovladač v počítači kde zvolíme cestu:

    vyskočí upozornění, že Windows nemůže oveřit vydavatele tohoto software, to potvrdíme a ovladače máme nainstalované 🙂

ADB

Nyní když máme ovladače, můžeme použít adb příkazy.

 

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

Window 7: jak smazat instalaci Windows 10 a nabídku na upgrade

Pokud neplánujete upgrade na Windows 10 a dochází vám volné místo na disku, máte možnost smazat staženou instalaci Windows 10. Instalace Windows 10 se stáhnou do PC bez vědomí uživatele a my si ukážeme jak se instalace zbavit. Stažená instalace má přibližně 6GB, tak proč se jí nezbavit když neplánujete upgrade?

Jak smazat staženou instalaci Windows 10

Pokud již máte staženou instalaci Windows 10 ve svém počítači (otravuje vás upgrade na Windows 10), jděte na Tento počítač -> disk C na který klikneme pravým tlačítkem a vybereme vlastnosti. Na první záložce s názvem Obecné klikneme na tlačítko Vyčištění disku. Jsou nám nabídnuty soubory které je možné smazat. Na tomto místě máte první možnost jak udělat volné místo na disku. Pro smazání W10 je nutné kliknout na tlačítko Vyčistit systémové soubory

w10-1

Zobrazí se nám další okno kde hledejte položku Dočasné instalační soubory systému Windows. Pokud potvrdíte, počítač bude chvíli chroupat a posléze je místo uvolněno 🙂

 

w10-2

Odstranění nabídky na upgrade Windows 10

w10-3

Spustíme Ovládací panely -> Windows Update

w10-4

Klikneme na Zobrazit historii aktualizací a poté Nainstalované aktualizace

w10-5

Odinstalujeme aktualizaci KB3035583 a restartujeme PC

w10-6

Už máme skoro hotovo 🙂 Nyní musíme aktualizaci KB3035583 skrýt aby se již příště nenainstalovala. V Ovládací panely -> Windows Update dáme Vyhledat aktualizace

Mezi důležitými aktualizacemi naleznete naši oblíbenou KB3035583 🙂 Klikněte na ni pravým tlačítkem a zvolte Skrýt aktualizaci

Další (jednodušší) způsob je použít program GWX Control Panel

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

Android jak na služby (services)

Pokud v Androidu vykonáváte větší množství operací, není vhodné tuto práci dělat v hlavním vlákně aplikace. Tuto práci musíte udělat v novém vlákně (AsynsTask) nebo ve službě (services). Dnes si ukážeme jak udělat jednoduchou službu.

Na rozdíl od aktivit běží služby na pozadí a nepotřebují uživatelské rozhraní. Služba běží paralelně s hlavním vláknem. Klasickým příkladem služby je přehrávač hudby na pozadí. Když hudba hraje, uživatel se může přepnout do jiné aplikace a přehrávání hudby se nepřeruší. Klasickým případem je stahování/odesílání dat z internetu, práce s databází, zpracování velkých souborů, přehrávání hudby,…

Služby je nutné registrovat v AndroidManifest.xml

Poslední dobou se mi líbí přístup definování volání služby jako statickou metodu přímo v service:

Metodou runMyService spustíme službu, která vynutí zavolání metody onHandleIntent kde se podle proměnné action rozhodne jaká z úloh se bude provádět (v budoucnu se předpokládá více činnosti pro službu).

Zavolání služby je pak jednoduché:

 

 

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

WordPress – jak v PHP nastavit cron (wp_cron)

Dnes si ukážeme jak v pluginu pro WordPressu nastavit wp_cron. Cron je script (ve WP světě funkce) který se spustí vždy v požadovanou dobu.

Jediné případné použití je na hostingu, který nepodporuje cron, nebo má omezený počet úloh pro cron. Wp_cron totiž funguje tak, že když přijde návštěvník na web, podívá se zda uplynula doba na spuštění cron úlohy. Pokud doba uplynula spustí cron úlohu a poznamená si čas kdy tato úloha byla naposledy spuštěna aby věděl kdy ji spustit příště.

To je fajn ale má to několik nedostatků:

  • Pokud na Váš web za celý den nepřijde žádný člověk, nevykoná se cron pro hourly četnost ani jednou (normálně by se vykonal 24x)
  • Pokud máte cron úlohu, která se vykonává dlouho, návštěvník který tuto úlohu “spustil” musí počkat než doběhne aby se mu zobrazila požadovaná stránka

Raději doporučuji spouštět kód klasickým cronem.

Ukázka nejjednoduššího cronu, který se vykoná každou hodinu – odesílá email:

Cron pro WordPress plugin

U pluginu je nejrozumnější cron zapnout při aktivaci pluginu. Nezapomeňte cron opět odebrat při deaktivaci pluginu.

Jak zjistím, že plugin byl aktivován nebo deaktivován?

Jednoduché, ale stálo mne to dost vlasů 🙂 Finální kód pro plugin:

Doufám, že pomůže 🙂

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