Kontakt

Portfolio: Ostryweb @ Instagram.

středa 20. března 2019

Loop app with Freestyle Libre + MiaoMiao via Spike



  1. Download Loop app - Spike branch and follow building and installing instructions:
    https://loopkit.github.io/loopdocs/build/overview/
    All errors should be covered here: https://loopkit.github.io/loopdocs/build/build_errors/
  2. Turn on RileyLink
  3. Install and setup Spike app (contains setup wizard - connect to MiaoMiao and link to Loop)
  4. Setup Loop app (connect to pump and set Spike as data source for glucose monitor)


related videos:



úterý 12. února 2019

Force refreshing of style changes in Wordpress template (style version as css file attribute)

What we want to achieve is to "force" refreshing of style.css of our template after changes.

Usually this is made by adding template version number as a parameter of the stylesheet, so in the HEAD section the output looks something like this:



If we change 1.0.1 to 1.0.2 browsers should download the new version. Now we want to make it simple, and there is a version parameter already present in any Wordpress theme's style.css in its header part, so why not use that? Logically if we make changes in the stylesheet, we should also increment its version number.

To get the stylesheet HTML output as mentioned above, modify enqueuing of the stylesheet in functions.php like this:



Be aware that you shouldn't have style.css inserted into Wordpress output in any other way. Sometimes it can be "hardcoded" in head.php or other template files.. Check the output HTML if it contains only one line of style.css link tag and that it is the one with the version number...

pondělí 15. května 2017

Pass values from shortcode in Contact Form 7

I'm releasing this article because it took me a few hours to find the solution, though it is very simple. The internet is full of references to Contact Form 7 Dynamic Text Extension plugin, which is not necessary, in fact I wasn't able to achieve what I wanted with it and pure CF7 plugin was enough.

The task was to pass the values from the Wordpress template script to Contact Form 7 form. PHP template script creates the correct Contact Form 7 shortcode with generated values and the result is form with pre filled fields with these values. In my case I then used CSS styling to make the fields look like regular text, as Contact Form 7 has no function to simply output the values without creating the form fields (AFAIK).

In the Wordpress Contact Form 7 admin - create a form and add fields like this (I'm adding more then one as an example). The default:shortcode_attr parameter means that the prefilled value is expected to be passed from the shortcode. You have also other options, which can be multiple and are processed one after another until the value is passed (see this for details). I'm also adding readonly parameter as I will use the value as regular text, not real input field.



In Wordpress template I generate the form:



And to be able to pass the values to these custom variables, also this piece of code has to be added to your Wordpress template's functions.php file. You need to change the names of the fields to match both form in admin and shortcode in template script:



The resulting CF7 form will have two fields (here field-one and field-two) pre populated with the text "This can be dynamic" and "This can be also dynamic".

čtvrtek 7. května 2015

Galerie fotek z Instagramu na vašem webu

Aktualizace: Jelikož Instagram změnil systém API a zrušil některé přístupové body, je aktuálně systém použitelný jen omezeně a už ho nelze použít přesně, jak je popsáno v článku.

Vzhledem k nutnosti pozastavení projektů Ostravagram, Girls of Ostrava a Guys of Ostrava, prezentuji vlastnosti systému pro případné další zájemce.

Všem děkuji za přízeň, projekt Ostravagramu dokonce přilákal pozornost masmédií, což vyústilo v článek na Deníku, nebo reportáž v České Televizi. Lence děkuji specielně za trpělivost při výběru fotek pro Guys of Ostrava.

Pozastavení proběhlo díky kombinaci nedostatku času a vzrůstajícímu množství spamu na Instagramu v rámci hashtagu #ostrava. Problém je zjevný z následujícího aktuálního obrázku stavu.

Aktuálně při zobrazení #ostrava na Instagramu v rámci prvních 20 fotek je: 7 fotek spamu sítě uživatelů zjevně jednoho prodejce padělků kabelek. 3 fotky reklamy na jiné produkty. 10 normálních fotek od uživatelů. Při tomto stavu se není možno probírat horama kabelek a jednou za 4 várky vybrat zajímavé foto uživatelů. Bohužel rozhraní Instagramu neumožňuje filtrovat více než jeden hashtag, takže se kabelek a podobných není aktuálně možno při výběru zbavit.


Tento problém ale nemusí být přítomen u jiných hashtagů, takže systém jako takový může být stále užitečný nezměněnou měrou. I nadále fungují například liberecgram.cz anebo www.stodolni.info/foto/.

Následuje praktické vysvětlení, jak systém funguje.

1/ vytvoříte si speciální účet na Instagramu pro tyto účely (nazvěme ho uživatel Pepa)
2/ domluvíme se na nasazení systému, budu po Vás požadovat pár úkonů v rámci Instagramu
3/ praktické nasazení vyžaduje čistě HTML hosting, netřeba PHP, ani databáze.
Nejlevnější řešení je k dispozici už za 65kč ročně včetně domény (cena bez práce při nasazení).
Pokud doménu a hosting již vlastníte, platíte jen za práci při nasazení.
3/ přihlášeni jako Pepa si jakýmkoliv způsobem najdete foto, které chcete zobrazit v galerii na webu
4/ olajkujete ho ("to se mi líbí")
- tímto způsobem plníte svou galerii. Možností je více, můžete zobrazovat například jen vlastní fotky, fotky autorem označené nějakým tagem atp.


Pokud byste rádi něco podobného umístili na své stránky a vybírali si fotky dle svého, ozvěte se na hynek@ostryweb.cz a domluvíme se na podmínkách.

sobota 24. ledna 2015

Change Facebook page category to "Event" or non-listed category


So you want to change the Facebook Page to something that is not listed in the Page category dropdown? I will show you step by step how to do this.

Long story short - what you have to do is to make the About setting form to reveal the Sub-category setting. This often reqires to "unlock" the Address setting first and add a valid address. I will show this on an example with a Page set up as a "Concert Tour" category, but It's applicable to any other setting.


1/ I have a page under "Concert Tour" category and I'm not happy with it, as it's a page for a music festival. The closest category to music festival in the available list is an "Event". I will want to change the page to this. In the initial stage, I have no way to do it, as the "Event" category is not listed.

2/ We need to "unlock" the Address settings - therefore we need some category, which has this option - I will use "Musician/Band".



3/ After the save, the About settings page expands to a lot of new editable items. We are interested in the Address field. It is crucial to enter address that Facebook/Bing understands, therefore I recommend first choosing "Located inside another Place" option. This will allow you to search and select valid address from the list.


4/ So I saved the address and voila, now I have Subcategories option! There I can select anything listed on the big category list, which can be seen at the end this article and which contains almost 900 options. Also you can choose three of them here.




5/ After this I can delete the entered address (mine got erased after selecting the Subcategory anyway), and also I can turn back the main category setting! So I'm turning back to "Concert Tour". The "Event" setting stays intact.



So what exactly is there to choose from? This is a list taken on January 2015, the updated list can be pulled from Facebook in Graph API Explorer with the query search?type=place_topic&topic_filter=all




P.S.: don't forget to visit our psytrance festival UFO BUFO Facebook page, which is finally tagged as an "Event", not a "Concert Tour".. ;)

pátek 22. března 2013

Upravená pravidla pro Facebook Pages

Předchozí Pravidla zakazovala jakékoliv smysluplné a logické využití velké (851×315 v tuto chvíli) fotografie v záhlaví. V nových Pravidlech jsou skoro všechna omezení pryč.

Facebook ustoupil a fotka v záhlaví může obsahovat „Call to Action“, upozornění na Like/Líbí, nabídky zboží, cenové informace či adresy.

Dál samozřejmě platí to, že obrázek nesmí být zavádějící a nesmí porušovat něčí práva. Stále nesmíte vybízet k tomu, aby lidé vaši fotku v záhlaví použili pro svou osobní Timeline. A jediným omezením je, že fotka nesmí obsahovat více než 20 % textu.
Celý článek je k přečtení na lupa.cz

úterý 22. ledna 2013

Padání Chrome při ukládání a praskání zvuku streamu

Před nějakým časem mi začal prohlížeč Chrome padat kdykoliv jsem chtěl provést nějakou akci se souborovým systémem. Tedy uložit soubor (rsp. otevřít dialog kam soubor ukládat), otevřít soubor atd. Bylo to frustrující protože jediná věc, která fungovala, bylo vyvolat ukládání jako první událost po spuštění browseru a to dříve, než otevřu jakoukoliv stránku. Pak se vše dělo korektně.

Tento stav setrvával několik měsíců, takže jsem se toto dokonce naučil dělat při každém spuštění jako správný Homo Sapiens. Není nic horšího, než když kliknete na odkaz a uvědomíte si, že jste onu proceduru po startu neudělali, tudíž za pár milisekund vás pozdraví hláška o pádu.

pád Chrome při ukládání

Obvzlášť oblíbená varianta je při stahování ze serverů, které Vás nutí čekat půl minuty, aby naservírovaly Captchu, následuje pád a po obnovení server hlásí, že jste vyčerpali přidělenou kapacitu a můžete to zkusit znovu až za hodinu. Tomuto stavu nepomohla ani reinstalace. Ale jak říkám, člověk se naučí.

Od určitého updatu Chrome se mi začala dít druhá nepříjemnost - u streamovaného videa se objevovalo praskání zvuku. Někdy videa (stream, youtube, čt...) jela v pořádku, ale od nějaké akce začala praskat a hotovo. Stejný problém měli s Chromem rodiče na úplně jiném stroji, konfiguraci a parametrech připojení k internetu. Když se ta samá stránka otevřela ve Firefoxu, vše jelo korektně.

Řešením obou problémů v mém případě bylo zakázání jedné z knihoven Flashe v prohlížeči (neptejte se, jak Flash souvisí s ukládáním souborů). Tedy do adresního řádku Chromu stačí napsat about:plugins a najede stránka s výpisem modulů, se kterými Chrome zachází. Vpravo nahoře je pak rozbalovací odkaz "+ Podrobnosti", kterým se rozbalí detaily.

U pluginu Adobe Flash Player pak stačilo kliknout na odkaz "deaktivovat" u souboru pepflashplayer.dll, celý blok pak zšedne.



Toť vše. Žádný další problém se zvukem videí a žádný problém při ukládání souborů. Zároveň si nejsem jist, k čemu knihovna slouží, protože i obsah ve Flashi jede dále normálně.

Snad to někomu taky pomůže.