Archiv autora: Jan Rydval

Jak jsem se zbavoval BCC

Kdo mi je dal?

Dokonce i ČT vysílala o Bitcoinu (dále jen BTC) při příležitosti jeho rozdělení, nebo spíše oddělení měny, která se nazývá Bitcoin Cash (dále jen BCC). Vzhledem k tomu, že nová měna sdílí transakční historii (záznamy v blockchainu) s původním Bitcoinem, je každý vlastník BTC i vlastníkem BCC. Tedy pokud BTC vlastnil v okamžiku oddělení nové virtuální měny.

A tak jsem se stal šťastným vlastníkem několika BCC. Můj rychlokvašený názor získaný při četbě dvou článků na telefonu v tramvaji je, že je to truc čínských těžařů BTC a nemá moc šancí na dlouhý život. Tak jsem se rozhodl, že se zkusím BCC zbavit a třeba za ně pořídit BTC.

Mám BTC uloženy v pěněžence CoPay a BitPay abych mohl utrácet z telefonu i počítače. Dokonce jsem nedávno koupil i první věc v reálném světě, kterou jsem zaplatil BTC – firewall na můj Mac. No, software pro Mac, tedy ten reálný svět nebyl až tak reálný… Ale příště plánuju nákup televize na Alze. A první nákup je to tehdy, pokud nepočítám nákup kafe a cideru v Paralelním Pilisu.

Jak se k nim dostat?

Že jsem vlastníkem BCC jsem tedy věděl i to, že se k nim mohu dostat, neboť znám tzv. seed mé BTC peněženky a peněženka BCC může vytvořit správné privátní klíče nutné pro nakládání s BCC právě díky této znalosti.

Moje nedůvěra k BCC a software okolo je značná, a tak jsem vytvořil novou peněženku pro BTC a „úspory“ do ní přelil. Pokud by totiž uniklo z BCC peněženky něco, co by uniknout nemělo, pak bych mohl snadno přijít o vše i ve světě BTC, pokud bych používal peněženku vyrostlou ze stejného semínka.

Ve virtuálním stoji (to začíná vypadat na paranoju, žejo?) jsem si nainstaloval Electron Cash peněženku a jal se do ní ťukat slova seedu. Ale ono nic. Nebere to. Seed CoPay/BitPay je dle BIP44. U Electronu max BIP39. Ty BIPy jsem něco jako RFC nebo JSR nebo ISO xyz – dohody a standardy.

Tak jsem pomocí služby na: https://bitwiseshiftleft.github.io/sjcl/demo/ dešifroval export peněženky BitPay:

A dostal se tak k xprv klíči peněženky. To je seed přechroustaný na číslo. Ten jsem zadal do Electron Cash a nějak čekal, že to bude fungovat. Úplně nevím, proč vlastně ne. Měl jsem za to, že xprv není na derivační metodě privátních klíčů závislé a že rozdíl mezi BIP44 a BIP39 je právě způsob vzniku xprv.

No nic, Nezbývalo než to vzít per-partes. Vygeneruju si klíče k BCC adresám sám a zadám je přímo do BCC peněženky. Ještě že existuje služba https://bip32jp.github.io/english/ kde si lze klíče při znalosti xprv generovat doalelujá. Jen stačí vybrat derivation path BIP44 a pak si hrát s indexem klíče až se trefíte do těch adres, kde je nějaký zůstatek. Pěkná práce vyžadující dvě lahve bílého. A to jsem trefoval jen 5 adres zvyšováním keypair index:

Nakonec jsem je našel. Zbývalo jen převést ty divné nevlastní děti (BCC) na Bittrex. Neprve zkušebně jeden a pak šup další…  Až tam dojdou, tak s nima něco ošklivého udělám:

Prodám je za BTC nebo LTC. Myslím, že tento graf ukazuje, že lépe dříve, než později:

Dobrou noc.

 

 

SaveSave

SaveSave

SaveSave

Elektro?

První jízdy s elektrovozem

Školka za Vltavou a práce všude možně – tato kombinace u nás vyústila v pocit, že potřebujeme druhé malé auto do rodiny. Lákalo nás Mini i Fiat 500. A pak jednou odešla našemu autu spojka těsně před dovolenou, a tak jsem toho využil jako záminky k půjčení si elektroauta. Teď už vlastně neuvažuji o jiném malém vozu, než takovém, který jezdí na elektrony.

První byl Nissan Leaf

Na krátkou dovolenou na chalupě jsme tedy vyrazili se zapůjčeným Nissanem Leaf. Cesta vedla přes Plzeň zpět ke Zbirohu a vyžadovala trochu logistiky, aby byla realizovatelná s vozem, který má reálný dojezd kolem 120km. Tedy 120km když se při mačkání plynu (tady to s plynem nemá už vůbec nic společného, tak spíš akcelerátoru) kontrolujete jen do té míry, aby vás jízda ještě bavila.

Na dovolené je i akceptovatelné, že nabíjení u běžné – tedy ne-rychlo – nabíječky trvá desítky minut a můžete si alespoň dát zmrzlinu nebo oběd. U rychlo nabíječky je to hukot a za 30m je skoro plno i při velmi prázdné baterii.

Dobíjení Nissan Leaf u chalupy

Nechtělo se mi Leafa moc vracet. Akcelerace je výborná. Pěstování stromečků na displeji palubní desky (rostou rychlostí dle úspornosti vaší jízdy) je zábava. Rekuperace dává pocit, že nevyhazuji energii z okna a zbytečně ji neměním v teplo a ošoupání brzdových destiček. A do kufru se vejde 12″ dětské kolo a taška.

Na druhou stranu pokud bych pospíchal, tak bych asi nabíjení nechápal jako možnost olízat nanuka, ale prudilo by mě to děsně. 120km je prostě málo.

Druhá byla i-trojka

Záměr pořídit si auto na baterky jsem začal brát vážně a vyzkoušel si trochu jinou ligu. BMW i3. Cíl byl tentorkát takový, že bych si na něj s Leafem netroufl. Višňová v Jižních Čechách, asi 140km cesty z Prahy.

BMW i3

Leaf vypadá zvenku a uvnitř jako normální auto. Nenadchne, neurazí a mě se líbil. i3 vypadá jako UFO. Obrovská ale uzoučká kola. Dveře otevírané od sebe. Palubka z recyklované umělé hmoty a jakýchsi vláken z rychle rostoucích stromů. Klasický BMW displej i způsob ovládání velkým kolečkem, na které se dají prstem psát písmena. A místo CHAdeMO konektoru pro rychlonabíjení prý modernější Combo2.

Původně jsem chtěl jen čistě elektrickou verzi, ale dostal jsem nakonec i3 s REXem. Tedy s Range EXtenderem. Je to malý beznínový motor, který dovede nabíjet baterku a přidá dojezdu 200km na baterii  dalších 150km. Ten koncept má pár pěkných vlastností – otáčky spalovacího motorku jsou regulovány podle rychlosti jízdy a to proto, aby zvuk motoru byl pod hlukovou jízdní clonou. Tedy aby nebyl slyšet. Zkoušel jsem si ho pustit jen cvičně – vzhledem k dojezdu jsem jej nepotřeboval – a nikdy jsem ho za jízdy skutečně neslyšel. REX je vlastně něco, co zabírá místo, zvyšuje hmotnost a většinou to člověk nepotřebuje, ale je to dobrá pojistka proti uvíznutí na cestě.

Zajímavý je také koncept „one pedal feeling“.  Dělá z auta sekačku na trávu. Pokud povolíte plyn nad určitou míru, začne auto poměrně razantně zpomalovat až zastaví. Když jsem se s tím naučil trochu jezdit, tak jsem ani po Praze nepotřeboval mačkat brzdu a na semaforech zastavoval jen ovládáním plynu.

Do kufru se sice dětské kolo nevejde, ale vejde se tam velká dětská plastová tatrovka. Taška pak už ne.

Co si vybrat?

Prostornější a usedlejší Leaf s menším dojezdem nebo jeho očekávanou novou verzi s prodlouženým?

BMW které zaujme novými nápady jak věci dělat?

Ještě mám chuť si vyzkoušet Fiat 500e a ohlášený Opel Ampera-e s dojezdem skoro 400km… Pak se uvidí. Stejně skončím u TSInova kola 🙂

SaveSave

Suricata IDS and Turris Omnia

The main reason why I bought Turris Omnia was the ability of the device to run LXC containers and the fact that my old Linksys E3200 router had problems with its 5GHz Wifi stability. I also looked for a platform that would be able to satisfy my needs for a device which would be able to run Suricata IDS for my home network.

I tested Raspberry Pi for this purpose and it worked quite well. The only problem is the fact that you need to mirror your traffic against the device in a certain way. And I had a problem to find the way. Ok, I have a switch allowing me to mirror the traffic from port or ports to another port towards Raspberry. But I have some wired and some wireless devices and placement of the switch into my network infrastructure wouldn’t be simple when I (read Raspberry) need to see all the traffic.

But back to the topic. I installed the Turris device and worked fine. Except the fact that the first thing I had to do was to take tongs and tighten a nut. Otherwise I wouldn’t be able to attach an antenna to a wobble connector. I used several four-letters-words during this simple operation as I had just bought a device with a really high price tag and I expected premium product not a DIY device.

OK,  back to the topic again. I also created an LXC container with Debian Linux and installed Suricata. Literally in minutes. Everything worked as expected. The only problem was the fact that Suricata didn’t see all the traffic. Only broadcasts and multicasts and traffic originating or terminating on the LXC container’s IP address. It was quite obvious that the Suricata is not able to switch all the needed places into promiscuous mode. I played with veth/bridge/phy setup of the LXC container for more that a few hours. But without any luck.  And you can be sure that Google was my best friend.

Finally I gave up and realised that I cannot mirror/TAP all the traffic just by configuring LXC networking and manually modifying promiscuous modes of host’s interfaces. And in that moment I found daemonlogger.

I modified the LXC configuration of my Suricata container to:

# Network configuration
lxc.network.type = veth
lxc.network.link = br-lan
lxc.network.flags = up
lxc.network.name = eth0
lxc.network.veth.pair = veth-deb
lxc.network.script.up = /usr/share/lxc/hooks/tx-off
lxc.network.hwaddr = e2:17:79:92:68:e5

lxc.network.type = veth
lxc.network.flags = up
lxc.network.name = eth1
lxc.network.veth.pair = veth-mon
lxc.network.script.up = /usr/share/lxc/hooks/tx-off
lxc.network.hwaddr = e2:17:79:92:68:e6

And installed deamonlogger into Turris host and started it:

# opkg install daemonlogger
# daemonlogger -i br-lan -o veth-mon

Now I could start Suritaca inside of the LXC container:

# /usr/bin/suricata -c /etc/suricata/suricata.yaml -i eth1

And it worked. Probably iptables can be also used to achieve the same goal. But to be honest I am not a friend of iptables. If you know how to mirror traffic using another and more elegant way, please share it with me.

Next steps will be:

  • set an autostart of the all needed components, LXC hooks will be probably the right mechanism.
  • Install another LXC container with ELK stack to visualise and analyse collected Suricata’s data.

I will be back. Soon or never. Good night.

Proč mám rád Fitbit i po měsíci

Dlouho jsem uvažoval, zda si něco takového jako activity monitor pořídit. Nakonec mi business case vyšel když jsem řekl, že mě to povede k většímu pití vody. A navíc jsem pracovně potřeboval nějaká skutečná data pro IBM Fitness IoT Cloud.

První dojmy

Nevyžaduje to IT specialistu pro zprovoznění a nastavení. Žádné párování telefonu nebo počítače s náramkem. Tedy s výjimkou prvního párování, ale to je spíše propojení náramku s účtem a je pak přes účet sdílené s ostatními zařízeními. Tedy po instalaci aplikace na telefon a přihlášení se k účtu už telefon náramek najde a provede synchronizaci bez nutnosti něco nastavovat a párovat na úrovni Bluetooth.

Je to pohodlné na nošení. Po počátečních problémech s citlivostí uživatelů na materiály při dlouhodobém nošení a po provedení materiálové změny, která již proběhla, jsem u své verze žádný problém po měsíci téměř neustálého nošení nezaznamenal. Pásek je dostatečně žužloidní a pohodlný jak při těsnějším nošení ve dne, tak i volnějším, které volím na noc.

Je to zábavné. A skutečně dost motivační. Zvláště po přidání pár lidí do kontaktů je pak snaha vyhrát a mít co nejvíce kroků za týden znát. Úplně zpočátku mě to dokonce vedlo k podvečerním vycházkám s mrňousem, abych ještě na poslední chvíli nějaké kroky urval.

Rozsáhlý ekosystém fitbitu. Pokud uživatel chce používat bezdrátovou váhu a nechce fitbitovou, pak klidně může použít Withings váhu, která umí i měřit CO2 v ložnici a účet si připojit. Zrovna tak pro evidenci přijatých kalorií lze propojit i jiné webové portály, třeba MyFitnessPal. Využití českých kalorických tabulek bohužel vyžaduje ruční přenos kalorií, ale i to lze. Aktivity lze automaticky importovat z Endomonda, což používám. Zajímavé může být i propojení přes ifttt s dalšími systémy a aplikacemi a třeba si vzbuzením rozsvítit žárovku, nebo do souboru na Gdrive uložit parametry spánku…

O čem je řeč

Teď zpět k samotnému náramku. Rozhodl jsem se pro Fitbit Charge HR. Chtěl jsem něco, co budu dost lehké na téměř neustálé nošení a tomu bohužel Fitbit Surge neodpovídá. A současně něco, co umí měřit nepřetržitě srdeční tep. A tomu neodpovídají nižší typy.

Původně jsem preferoval zařízení od Garminů, neboť s jejich sportovními hodinkami Fenix jsem fakt spokojený. Ale neměli jiný způsob měření tepu než hrudní pás. Až nyní mají i optické snímání na zápěstí. Ale jen jako samostatné zvláštní zařízení – tedy doplněk.

Teď už jsem rád, že jsem se rozhodl pro fitbit. Hlavně kvůli jejich webovému portálu, pěkné aplikaci pro iOS i Android, která pracuje i na Blackberry 10 a možnosti široké integrace dalších služeb.

A jedno foto, jak vypadá Charge HR po měsíci častého, nicméně zatím opatrného nošení. Slovy: lehké ošoupání hran, žádné viditelné šrámy.

Fitbit Charge HR
Fitbit Charge HR

Je to přesné?

Otázka, zda je měření Fitbitem přesné mě dost trápila. Měl jsem pocit, že když něco stojí víc než málo, pak by to mělo být hóóódně přesné. Recenze ale ukazovaly, že na 100% to přesné není. I moje současné pozorování odpovídá na tuto otázku „je to poměrně přesné, ale ne úplně a ne vždy“. Typicky je 100km jízda autem započítána jako pár desítek kroků. Vyběhnuté schodiště naopak není rozpoznáno jako schodiště vůbec. Srdeční tep v porovnání s hrudním pásem, což je věc, kterou jsme prováděl za běhu, celkem sedí, jen se trochu opožďuje – asi je to výsledkem průměrování měření za delší dobu, aby se vyloučily nahodilé chyby.

Vadí to, že to není úplně přesné? Mě už ne. Měření jsou porovnatelná mezi jednotlivými dny a s jinými uživateli. A spíš něž o přesnost jde o motivaci a zábavu. A v této oblasti to prostě funguje.

A závěrem pro porovnání stejný běh na kopeček a zpět podle Fitbitu a Endomonda na Blackberry (tedy krokoměr s HR vs GPS):

Fitbit vs Endomondo

Jeníkův „Social Day“

Včera jsem (já Jeník, 1 rok a kousek starý) dostal injekci. Hodně mikroorganismů. Sice mrtvých nebo slabých, ale pořád dost cizích na to, aby bylo nutné uspořádat seznamovací večírek a nejít spát. Dokonce došlo na horečku páteční noci. A když nejdu spát já, nejde nikdo.

Ráno jsem se rozhodl, že po noci, která nebyla, vzdám další pokusy o usnutí a půjdu se trochu obtisknout do sociálních sítí.

Začnu snídaní. Maminku jsem nechal spát a vyrazil s řidičem kočárku na afterparty do kavárny Cheecup. Abych po sobě nechal nějakou sociální stopu checknul jsem se na Foursquare (viz Foursquare):

Foursquare

Zbaštil jsem řidiči půl panini s tuňákem a čtvrt croasantu, pokusil se mu vylít kapučíno a nadrobil souvislou vrstvu do výše lýtek všech hostů.

Venku svítilo sluníčko a dávalo smysl se vydat na Vyšehrad. Pustil jsem Endomondo pro záznam trasy (viz Endomondo):

Endomondo

Vyrazili jsme na Vyšehrad (viz Wikipedia) a cestou na skoro pustém Vyšehradě vyfotili rotundu statého Martina (viz Instagram) a zaútočili na nepřátelský portál (viz Ingress):

Rotunda svatého Martina

Dobrá náladička z večírku trvala a tam jsem zamířil na Náplavku na trhy a nechal si natočit krátký šot z poslechu kapely od řidiče, což odpovídá nízké kvalitě práce s kamerou (viz. Youtube):

Uviděl jsem nůši a pro případ, že  by v budoucnosti mohli existovat lidé, kteří nevědí jak vypadá si ji vyfotil (viz Dropbox).

Nůše

Tak teď ještě trochu propagace na Facebooku (viz Facebook) a Twitteru (viz Twitter) a obtisk je hotový. Kam se hrabou rodiče, maximálně se mi snaží obtisknout modrou nohu na čtvrtku (viz Flickr).

Nožička
Váš Jeník na blogu (viz tento Blog)

Deploying a report to BIRT on Bluemix

Ok, I have BIRT up and running but there is only example report that’s nice but not so useful.

I haven’t found a simple way how to deploy a rptdesign report definition to the already installed Bluemix/BIRT site. Just the way described below. If you know how to do it easily, please let me know.

I created folder report in the same directory as is birt.war located (please see previous post) and copied my report (say Temperature.rptdesign) into this folder and then packed the report design file into birt.war file and updated the application on the bluemix:

jan@Cake : ~/Downloads/birt-runtime-4_4_0
 $ jar -uvf birt.war report/Temperature.rptdesign
 adding: report/Temperature.rptdesign(in = 68687) (out= 6158)(deflated 91%)
jan@Cake : ~/Downloads/birt-runtime-4_4_0
 $ cf push Birt -p birt.war
 Updating app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 Uploading Birt...
 Uploading from: /Users/jan/Downloads/birt-runtime-4_4_0/toPush/birt.war
 1.6M, 185 files
 OK
 Stopping app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 Starting app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 0 of 1 instances running, 1 starting
...
 1 of 1 instances running
 App started
 Showing health and status for app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 requested state: started
 instances: 1/1
 usage: 512M x 1 instances
 urls: Birt.stage1.mybluemix.net
 state since cpu memory disk
 #0 running 2014-09-24 02:08:49 PM 0.0% 211.9M of 512M 198.5M of 1G

It works:

BIRT Report

But it’s not elegant neither fast. Hopefully I will discover another way how to deploy report definitions to the BIRT engine…

Installing BIRT on Bluemix

Short summary: It cannot be easier to make the visualisation and reporting tool called BIRT working on Bluemix… More precisely to run engine and viewer on Bluemix. You will still need BIRT designer have installed on your PC.

Download BIRT Runtime.

Unpack:

jan@cake : ~/Downloads
 $ unzip birt-runtime-4_4_0-20140611.zip
Archive: birt-runtime-4_4_0-20140611.zip
 creating: birt-runtime-4_4_0/
...

Login into your Bluemix account using web interface and create Birt application using Java Liberty Runtime. But this step is not probably needed.

Login to Bluemix using CF:

$ cf login

and push from the directory where you have just unpacked the BIRT runtime:

jan@cake : ~/Downloads/birt-runtime-4_4_0
 $ cf push Birt -p birt.war
 Updating app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 Uploading Birt...
 Uploading from: /Users/jan/Downloads/birt-runtime-4_4_0/birt.war
 2M, 185 files
 OK
 Stopping app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 Starting app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK
 0 of 1 instances running, 1 starting
...
 1 of 1 instances running
 App started
 Showing health and status for app Birt in org jrydval@post.cz / space dev as jrydval@post.cz...
 OK

Point your browser to just created application:

BIRT

Done…

IoT Cloud MQTT message to Speech

For demo purposes and to be able to check if the messages are coming from the IoT cloud without looking at the screen all the time I created super simple Node-RED flow that receives messages from IBM’s IoT cloud and log them in the debug tab of the Node-RED UI and in parallel it parses JSON format of the messages to obtain value of the „temp“ property which is then passed to OS X say command.

It can be easily modified to pick another property value just by modifying „JSON and parse“ node.

Screen Shot 2014-09-04 at 13.34.43

 

You can import the flow using „Import -> From Clipboard“ menu item of Node-RED and by pasting the following text and modify your broker details:

[{"id":"7649d216.89b62c","type":"mqtt-broker","broker":"kbrhh.messaging.internetofthings.ibmcloud.com","port":"1883","clientid":"a:kbrhh:viewer2"},{"id":"482fa4c4.b7d05c","type":"debug","name":"Show message","active":true,"console":"false","complete":"true","x":343,"y":62,"z":"948d5198.6b72b","wires":[]},{"id":"a07e3b0c.5f81c8","type":"mqtt in","name":"Receiver","topic":"iot-2/type/sensor-type/id/+/evt/event1/fmt/json","broker":"7649d216.89b62c","x":93,"y":129,"z":"948d5198.6b72b","wires":[["482fa4c4.b7d05c","e9a50fa3.165af"]]},{"id":"e9a50fa3.165af","type":"function","name":"JSONify and parse","func":"msg = JSON.parse(msg.payload)\ntemp = msg.d.temp\ntemp = Math.round(temp * 10)/10;\nreturn {\"payload\": \"Temerature is \" + temp + \" degrees of Celsius\" }","outputs":1,"x":344,"y":199,"z":"948d5198.6b72b","wires":[["4de9ed0c.b21614"]]},{"id":"4de9ed0c.b21614","type":"exec","command":"/usr/bin/say","append":"","useSpawn":"","name":"Say","x":578,"y":258,"z":"948d5198.6b72b","wires":[[],[],[]]}]

You can also change the voice by modifying say command from:

/usr/bin/say

to:

/usr/bin/say -v <voice name>

You can list available voices by entering command

/usr/bin/say -v ?

into terminal.

The flow requires Node-RED installed on a OS X machine.

Home automation as a weekend project using IBM’s Clouds – part 2

Today we will connect the MQTT bus that is core part of IoT Cloud to the MongoDB using Node-RED flow.

The goal is to have the values – that are sent by our simulated device – stored in our database to be able to display them to an user.

We need to add MongoDB to our Bluemix application. Pokračování textu Home automation as a weekend project using IBM’s Clouds – part 2