Les Coccinelles

pondělí, června 26, 2017

Wemos D1 and Xively.com

AFAIK there's no Arduino/Wemos library for posting (PUTing actually) data to Xively.com. So let's create the PUT by our own! I'm using ESP8266HTTPClient as client. It can't handle https connection to Xively, but this is not centrifuge for enhancing uranium... On the Xively side, you can limit perms to update only, source ip...

  String payload = "{ \"current_value\": \"" + String(temp1,2) + "\", \"id\": \"my-channel-name\" }";
  http.begin("http://api.xively.com/v2/feeds/my-feed-id/datastreams/my-channel-name/");
  http.addHeader("X-ApiKey", "my-X-ApiKey");
  int httpCode = http.PUT(payload);
  // check httpCode if you want to
  http.end();

středa, dubna 01, 2015

Limits of ssh-agent on Mac OS

When executing task using our custom SSH-based tool from some kind of (linux) jump box, I got "lost ssh-agent" error from about 1/3 hosts and the tool could not connect to those hosts.  Found out that this happens only when using ssh-agent from Mac OS machine; it works fine on Ubuntu and Fedora machines. Logs and even running ssh-agent in debug mode don't show anything suspicious. Use of powerful weapons sudo dtruss -p `pgrep ssh-agent` was much more helpful: "accept from AUTH_SOCKET: Too many open files". So let's have look at Mac OS limits... Short version, there are three levels of limits:  ulimit, launchd and sysctl.

$ ulimit -n
  2560
$ launchctl limit maxfiles
  maxfiles    256            unlimited
$ sysctl -a | grep files
  kern.maxfiles: 12288
  kern.maxfilesperproc: 10240
  kern.num_files: 4681

All values looks fine, except launchctl's maxfiles. After increasing to reasonable value using sudo launchctl limit maxfiles 1024 unlimited (and restarting ssh-agent) it finally works! To persists this settings, use for example this:

cat >> EOF | sudo tee /Library/LaunchDaemons/limit.maxfiles.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
  <dict>
  <key>Label</key>
  <string>limit.maxfiles</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/launchctl</string>
    <string>limit</string>
    <string>maxfiles</string>
    <string>2048</string>
    <string>unlimited</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>ServiceIPC</key>
  <false/>
</dict>
</plist>
EOF

(use of /etc/launchd.conf doesn't work in 10.10.2 anymore)

pátek, ledna 31, 2014

Google Spreadsheet Feed and new Google Sheets

Do you know that you can easily get list of all your documents stored on Google Drive? You can use URL like https://spreadsheets.google.com/feeds/spreadsheets/private/full and you will get feed of all your spreadsheets. There's more URLs like this... Cute, isn't it? The bad part of this is that it shows you only "old-time" sheets, not the new ones which were launched in December 2013. It's still unsupported feature according to Google Support. I wish I knew that before yesterday's night: the feed contained sheets I created few days ago, but not the one from yesterday.

What does that mean to you?
You can't edit this file via Spreadsheets API, that means directly from command line or using any of existing libraries and tools (like gspread or gdata-python-client).

Workaround
To get over it, try to disable new Google Sheets completely (they mention unsupported API there too, dammit) or just duplicate one of your older document, created before new Sheets...

pátek, září 20, 2013

Hromadné úpravy fotek v Google Picasa pomocí picasa.ini

Potřeboval jsem k několika stovkám fotek doplnit jednotný popisek, který by se zobrazoval na FB a G+ (Picasa). Jenže jak na to, když Picasa umí editovat popisky jen fotku po fotce? Naštěstí jde použít malý hack s pomocí .picasa.ini uloženým v adresáři s daným albem. To jsou "metadata", která Picasa používá. Uvozovky jsou na místě, protože tento soubor může i nemusí existovat, může být neaktuální apod. Metadata jsou totiž uložena z části přímo v samotných souborech, ale hlavně v databázi, kterou si Picasa vede (a picasa.ini používá jen když ji opravuje). Změny do tohoto souboru se obvykle nijak neprojeví, ale naštěstí existuje způsob jak k tomu Picasu donutit...

Popis formátu souboru je díky reverznímu inženýrství popsán, což napoví o možných úpravách.

Postup:

  • všem upravovaným fotkám přidat hvězdičku (aby šly poznat v ini souboru)
  • zavřít Picasu
  • picasa.ini:
    • nahradit (přidat ke) star=yes potřebnou operaci (třeba caption=muj popisek
    • uložit a zavřít
  • touch * (pro změnu času přístupu/modifikace souboru, způsobí znovunačtení v Picase)
  • otevřít Picasu

pondělí, září 09, 2013

Bash, Hiera, pole...

Opět něco z kategorie "až zase budu potřebovat"... How to convert cmdline Hiera array into Bash array.

Hiera volaná z příkazové řádky vrací pole jako ["prvek", "prvek"], což není úplně to nejlepší pro Bash. Rychlá pomoc:
ARR=(`hiera neco | sed -e 's/[],"[]//g'`)
echo "${ARR[0]} - ${ARR[1]}"

sobota, dubna 13, 2013

Dětská výbava

Začínáme rozprodávat dětskou výbavu. Jako první kousek nabízíme dětské lehátko do vany značky Bébé-jou. Originální popis: Pro bezpečnější, pohodlnější a příjemnější koupání miminek. Určeno pro děti od narození do 8 mi měsíců.Kvalitní holandský výrobek. Pestré barvy a pevný plast. Atestováno. Nabízí dítěti správnou oporu a rodičům usnadňuje jeho držení při koupeli. Lehátko je vyvinuto pro použití s termovaničkou i vaničkou Bébé-Jou, ale lze je použít při koupání ve velké vaně nebo na cestách. Lehátko je vybaveno nastavitelnou opěrou a upevňovací přísavkou.
Cena: 200,- (původně: 400,-)



čtvrtek, listopadu 01, 2012

Česká pošta se nepoučí

I zaradoval jsem se, když Česká pošta představila nové způsoby doručování. Nadšení netrvalo dlouho.

Zásilka první

Balík do ruky, odesílaný v pátek. Paní za přepážkou mi ho doporučila mj. z toho důvodu, že ho adresát dostane druhý den. Ze zajímavosti jsem se zeptal jestli to tedy bude i zítra, v sobotu. Ano, bude. Ne, nebylo. Dostal ho v úterý.

Zásilka druhá

Odesilatel mě v pondělí informoval o tom, že balík odešle následující den, tj. v úterý a doručen by mi měl být ve středu. Dokonce mi přišla i sms od ČP, která to potvrzovala a na formulare.cpost.cz že si můžu změnit datum doručení. Na tomhle webu nemají validní certifikát, což je asi inspirace státní sférou... Balík překvapivě ve středu nepřišel. Sledování zásilky raději neuvádí časy jednotlivých záznamů, takže nevím kdy se balík dostal do Brna a ani kdy je zásilka připravována k doručení. Hlavně že ČP se hrdě bije v prsa, že "S adresátem neustále komunikujeme" (produktová stránka Balíku Do ruky). To že jde o balík Do ruky se dozvím jen z nějakých vysvětlivek na konci stránky. Asi už netřeba komentovat.

Nepraktické, nečitelné, nepoužitelné. Parametry svých služeb nedodržují, web si neumí udělat (to si prostě neumí otevřít web USPS, FedEx, DHL a inspirovat se?). Tak snad ten balík přijde aspoň dnes a snad to sklo nebude rozbité...

Update: balík opět nedorazil, nevím proč.

čtvrtek, ledna 19, 2012

Mac

Už skoro týden si zvykám na nový firemní notebook MacBook Pro. Na UI jsem si zvykl celkem snadno (i když je tady pořád dost věcí které jdou mimo mě nebo mi přijdou nelogické), ale dnes jsem se konečně pořádně dostal k terminálu a začal jsem se dost děsit. Pro jistotu jsem si sepsal co všechno bych si rád poladil. Pro zkušeného Jablíčkáře (a pro Google) to asi bude hračka, ale ještě jsem se k tomu prostě nedostal.
  • Tilda - Jak se píše tilda (kromě alt + n)? Vlevo nahoře na klávesnici mám paragraf. Řešení: Klávesa napravo od levé Shiftu (s obrázkem pipe a lomítka)
  • Terminál
    • Page Up / Down - Řešení: Shift + Fn + šipky
    • Home, End - Shift s Fn sice v terminálu funguje, ale ne třeba ve vimu. Řešení: ^ a $
    • Kódování, locale - Při ssh na vzdálený stroj křičí o zkontrolování locale. Řešení: zakomentovat SendEnv v /etc/ssh_config
    • Screen - Nějaká doporučená a vyzkoušená konfigurace pro screen?
  • Hibernace - Jak snadno uspat stroj na disk ne do paměti? Řešení: nainstalovat Deep Sleep.
  • SSH klíče - Jdou ssh klíče vložit do klíčenky? Řešení: normálně se nakopírují do .ssh a při prvním použití je nabídnuto uložení hesla ke klíči
  • Klávesnice - Proč Apple dělá jen ty malé bezdrátové klávesnice? Malé myslím počtem kláves... Tyhle ořezávky mě nebaví.
  • Aplikace - Co všechno se hodí doinstalovat? Skype, Adium, Chrome a ??? Chybí mi třeba wget (ano, je tu curl).

pondělí, října 24, 2011

Pilujeme Ubuntu

Už před nějakou dobou jsem upgradoval náš starý domácí stroj: koupil jsem novou desku, procesor, paměti a to všechno nacpal k původním diskům a mechanikám. Plán dobrý, ale boot se jaksi protáhl. A co je horší, optická mechanika nebyla systémem detekována. Tedy byla, ale jen ve Win a ne v linuchu. Takže znovu otevřít case a hledat...

Jumpery byly nastavené správně (dvě zařízení, nastavená na master a slave). První poznatek byl, že nový motherboard (byť v nějaké premiové verzi) už skoro nepočítá s PATA, které se připojuje přes nějaký modul. Má konektorem normálně na desce a dá se v BIOSu vypínat. Kromě on/off tam toho ale moc nebylo. Chvilku jsem si ještě hrál s kabelem a různým zapojením, ale nic nepomohlo. Nakonec jsem to zabalil, protože nic víc smysluplného mě nenapadlo a hlavně BIOS i Win mechaniku viděli.

Dmesg nic moc neprozradil, Gůgl aspoň naznačil. Problém je snad v ovladačích: každá mechanika potřebuje svůj. Přímo v jádře je ale jen jeden a ten druhý se použije až později jako modul. Což je problém. Jádro jsem si sice upravil a překonfiguroval, ale stejně. Možná jsem udělal něco špatně, víc času jsem už neměl a hlavně jsem už dost dlouho nepálil.

Trošku jsem doufal, že se problém vyřeší s novým jádrem v Ubuntu 11.10 a ono (nečekaně) ne. Vrhl jsem se znovu do hledání příčiny a tentokrát to šlo velmi rychle: stačilo úplně vyhodit jumpery (použít tedy možnost Cable Select) a problém zmizel. Jak trapné.

V logu se ale pořád objevovala zmínka o tom, že se kvůli kabelu používá jen UDMA/33:
[    2.296713] ata1.00: ATAPI: HL-DT-STDVD-RAM GSA-H54L, 1.00, max UDMA/66
[    2.334561] ata1.01: ATA-7: ST3320620A, 3.AAF, max UDMA/100
[    2.334563] ata1.01: 625142448 sectors, multi 0: LBA48 
[    2.334567] ata1.00: limited to UDMA/33 due to 40-wire cable
[    2.334569] ata1.01: limited to UDMA/33 due to 40-wire cable
[    2.348686] ata1.00: configured for UDMA/33
[    2.409383] ata1.01: configured for UDMA/33

Kabel mám samozřejmě v pořádku. Naštěstí jde libata vnutit, že jde o 80 žílový kabel a to pomocí kernel boot parametru libata.force (popis je v dokumentaci kernelu). Ubuntu používá Grub2, které je sice neskutečně skvělé, ale taky složité. Stačilo naštěstí upravit /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash libata.force=5:80c,7:80c"
Tento přepínač nastaví force režim 80 žílového kabelu pro všechna zařízení pověšené na ata5 a ata7. Samozřejmě je možné možné určit přímo zařízení (7.1) nebo nespecifikovat zařízení. Pak je nastavení obecné. Na konci je dobré aktualizovat grub pomocí sudo update-grub

Pokud jsem to pochopil správně, tak z 80 žílového kabelu se používá stejně jen půlka a zbytek je kvůli přeslechům. Takže je teoreticky (a podle komentářů i prakticky) možné používat vyšší přenosové rychlosti i na starších kabelech s polovičním počtem vodičů. Vyzkoušel bych to, ale už jsem asi všechny vyhodil.

A bylo po problému, boot za pár vteřin:
[    2.304704] ata5: FORCE: cable set to 80c
[    2.304710] ata5.00: ATAPI: HL-DT-STDVD-RAM GSA-H54L, 1.00, max UDMA/66
[    2.344526] ata5.01: ATA-7: ST3320620A, 3.AAF, max UDMA/100
[    2.344529] ata5.01: 625142448 sectors, multi 0: LBA48 
[    2.360655] ata5.00: configured for UDMA/66
[    2.419339] ata5.01: configured for UDMA/100

Až mě jednou tohle hraní přestane bavit, tak si koupím Mac ;)

čtvrtek, října 20, 2011

Zasílání balíků do USA, díl 2.

Malé doplnění k předchozímu příspěvku na toto téma. Tentokrát jsme do Států (konkrétně do Missouri) neposílali celý kroj, ale jen rukávce se šátkem a boky. Zrovna jsem se obrátil na DHL, které jsme použili posledně, ale i když byla krabice o poznání menší a lehčí, tak cena klesla velmi málo a přesáhla hodnotu obsahu. Místo 8.000 Kč by poštovné vyšlo na cca 6.000 Kč, což rozhodně není výhra. Naštěstí (pro kupující) se ukázalo, že na rukávce nespěchají, takže jsem oprášil seznam z prvního příspěvku. A hned první přepravní společnost -- Česká pošta -- chtěla za přepravu jen cca 500 Kč. S DHL by sice zásilka dorazila během velmi krátké doby, ale za neskutečné peníze oproti cennému balík od ČP.

Podle samotné ČP by měl balík dorazit během 14 dnů, některé komentáře různě na webu říkají 6-10 dnů. Přičemž obojí je v tomto konkrétním případě přijatelné, včetně rezervy. Reálná zkušenost jsou dva týdny (14 kalendářních dnů).

Všechno má svou druhou stranu: na rozdíl od DHL, která přijela na zavolání a vyplnila si prakticky všechno sama, je potřeba si na poště vyzvednout podací lístek se spoustou různě barevných kolonek a všechno si pěkně nachystat. I když by se dalo očekávat že je potřeba vyplnit všechno, tak dost políček zůstane prázdných.

Při podání mi na poště ještě strčili zelenou celní průvodku, která už byla naštěstí jenom jednobarevná a měla podstatně míň kolonek. Na ni jsem uvedl obsah, přibližnou váhu a u ceny mi bylo řečeno, že je to jedno. Uvidíme co na to celní. Balík by ani nemuseli otevírat, protože už z rentgenu by měli jasně vidět "textil" uvnitř. Na kroji snad nebudou hledat přelepené značky Abibas a Puna ;).

Občas prý nějaký balík posílaný přes ČP nedorazí, obvykle prý "zmizí" ze světa hned po příletu do Států. Pojištěný ho samozřejmě máme.

Trošku jsem se lekl v okamžiku, kdy se objevily tyhle zprávy:
  • Zásilka dne 12.09.2011 převzata vyměňovací poštou v zemi určení (Spojené státy americké).
  • Zásilka celně neprojednána
  • Zásilka dne 13.09.2011 celně propuštěna do další přepravy v zemi určení.
Ale k žádným potížím se clem nedošlo... Informace se objevovaly se vzájemným odstupem větším než jeden den, takže uvedená data neodpovídají datu zobrazení. Např. po "převzetí" se cca 5 dnů nic nedělo a mě se už začal vybavovat naznačený scénář o zmizení zásilky.

Ještě poznámka ke službě Track&Trace, která rozhodně stojí za to. Informace o cestě zásilky obsahuje celkem 7 položek, z nichž tři jste už viděli, jedna je o podání, další o doručení a pak ještě dvě velmi stručně popisují cestu do US (přeprava k vyměňovací poště a odeslání z Prahy do US).

Zásilka v pořádku dorazila, za zlomek ceny jiných přepravců. Ale i tak má ČP na čem pracovat.