Jak například využít API COINBASE PRO

Co je to vlastně to API?
Jednoduše řečeno jedná se o způsob jakým vykonávat (v případě Coinbase) operace nad portfoliem vzdáleně z prostředí své aplikace, případně svého scriptu.

Co konkrétně můžu dělat?
Vše co se dá dělat je zdokumentováno, ale abych vás čtenáře takto neodbyl, tak příkladem jsou metody (funkce) pro získání přehledů produktů, za kolik se aktuálně obchodují, data k vykreslení candle grafů, správa objednávek a mnoho dalších.

Co konkrétně používám?
Na API jsem se napojil, abych si v budoucnu mohl vytvořit (naprogramovat) svoji investiční strategii a tu automatizovat. Protože, jak jsem dříve psal, je třeba sledovat výkyvy ceny, ty analyzovat a na základě toho nakupovat a prodávat. A když to nějak svedu já, tak v případě dostatku dat a možnosti algoritmizace, může počítač vyhodnocovat situaci například co pět sekund včetně noci a ne jako já jen několikrát denně. Ale aktuálně je to velké sousto, protože jsem se nad tím zamyslel a uvědomil si s čím vším podvědomě pracuji a jak na to nahlížím. A to co se dá nazvat intuicí by bylo potřeba nahradit velkým množstvím matematiky, kterou bych si musel osvěžit, případně nastudovat (o tom snad jindy :-))…
Takže jsem si aktuálně zvolil menší konkrétní cíl, který mi ale usnadní usnadnit jeden konkrétní případ užití (anglicky „Use case“, takže budu používat jen zkratku UC)…

Můj případ užití
Pokud vidíte v grafu několik opakujících se vlnek, které mají maximum někde kolem 1,3 EUR (pro kryptoměnu Ox (ZRX)) a minimum klesá někde k hodnotě 1,2 EUR, tak je fajn si nastavit nákup v režimu LIMIT a nemuset to stále sledovat. Můj návyk je, že si určuji, jaký chci mít náklad na jeden obchod, abych diverzifikoval riziko a následně si určím jaký chci mít výnos při prodeji. Takže například chci nakoupit přesně za 500 EUR a následně nastavit prodej na 510 EUR, zde již po odečtení FEE, takže čistý výnos 10 EUR. O tom jsem více psal v dříve publikovaném článku. Problém je ten, že v režimu LIMIT se takto naplánovat transakce nedá. Jako vstupní pole jsou „jednotková cena za kryptoměnu“ a „počet jednotek, které chci koupit“. No a nyní se dostávám k té pointě, že si tento jednoduchý formulář mohu přetvořit k obrazu svému a na pozadí si dopočítat počet kupovaných jednotek tak, abych se dostal na těch kýžených 500 EUR.

Objednávkový formulkář v režimu LIMIT
Objednávkový formulář v režimu LIMIT – zadána cena 1,2 EUR/ks a počet 400 ks, ale cena je 481,68 EUR. A takto bych musel iterovat nebo na kalkulačce počítat tak dlouho, dokud bych se nedostal na 500 EUR.

Můj formulář je ale přesně takový, jaký vyhovuje mému UC.
Vlastní formulář
Vlastní formulář, kde zadám přesně co chci a na pozadí se mi provede výpočet a založí daná objednávka.

Co je na pozadí?
Základem je jednoduchá třída pro komunikaci s Coinbase API:

<?php
 
class CoinbaseExchange {
	protected $key;
	protected $secret;
	protected $passphrase;
 
	protected $endpoint = 'https://api.pro.coinbase.com';
	protected $timestamp;
 
	public function __construct($key, $secret, $passphrase) {
		$this->key = $key;
		$this->secret = $secret;
		$this->passphrase = $passphrase;
		$this->timestamp = time();
	}
 
	private function signature($request='', $body='', $method='GET') {
		$body = is_array($body) ? json_encode($body) : $body;
		$what = $this->timestamp.$method.$request.$body;
 
		return base64_encode(hash_hmac("sha256", $what, base64_decode($this->secret), true));
	}
 
	public function sendRequest($request, $body='', $method='GET', $auth=false) {
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $this->endpoint.$request);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		if (strcasecmp($method, 'POST') === 0) {
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
		}
		curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
 
		if ($auth) {
			$headers = array();
			$headers[] = "Content-Type: application/json";
			$headers[] = "CB-ACCESS-KEY: " . $this->key;
			$headers[] = "CB-ACCESS-SIGN: " . $this->signature($request, $body, $method);
			$headers[] = "CB-ACCESS-TIMESTAMP: " . $this->timestamp;
			$headers[] = "CB-ACCESS-PASSPHRASE: " . $this->passphrase;
			curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
		}
 
		$output = curl_exec($ch);
 
		if(curl_getinfo($ch, CURLINFO_HTTP_CODE) !== 200) {
			return $output;
		}
 
		curl_close($ch);
		return $output;
	}
}
?>

A pak implementace volání konkrétního requestu, dle dokumentace:

$cb = new CoinbaseExchange(KEY, SECRET, PASSPHRASE); // získáte při registraci
 
$totalPrice = (int)$_POST['totalPrice'];
$fee = 0.0035;
$price = (double)$_POST['price'];
$size = round(($totalPrice - ($totalPrice * $fee)) / $price, 2);
 
$request = '/orders';
$body = array(
    "size" => "$size",
    "price" => "$price",
    "side" => "buy",
    "product_id" => "ZRX-EUR"
);
 
$response = $cb->sendRequest($request, $body, 'POST', true);
 
echo $response; // json message, dá se dále zpracovat

Záměrně jsem kód hodně zjednodušil, aby z něho bylo patrné to podstatné. Například $fee, se dá také načítat aktuálně pomocí API, ale další řádky by zápis jen učinily nepřehledným.

Ta kouzelná formule, kterou „aplikace“ dělá za mě je tento řádek,

$size = round(($totalPrice - ($totalPrice * $fee)) / $price, 2);

kde vycházím z cílové investice např. 500 EUR ($totalPrice), odečtu fee a ze zbytku zjistím, kolik mohu koupit jednotek.

Doufám, že jsem vysvětlil význam API a nastínil základ pro implementaci pro službu COINBASE PRO.

Jako obvykle, kdyby byl jakýkoliv dotaz nebo připomínka, tak komentáře jsou vám k dispozici.

Jak vydělávat na kryptoměnách – od teorie k praxi

Včera jsem psal jak si hlídat kdy nakoupit a kdy prodat. Zní to jednoduše, ale dneska znázorním, jak jsem obchody realizoval reálně.

Znázornění průběhu ceny BTC během dne
Znázornění průběhu ceny BTC během dne

Když to člověk vidí zpětně, tak si odvodí, že ideální by bylo nakoupit v cca 15:45 za cca 24 300 € a prodat v cca 21:50 za cca 26 200 €. Při investici 1 000 € bych získal 0,04100893 BTC (poplatek za transakci 0,35 %, tedy 3,5 €) a při prodeji bych získal 1 070,67 € (3,5% poplatek ve výši 3,76 € je již odečten). Vydělal bych 70,67 €, což je cca 1 840 Kč (přepočteno na REVOLUTu). Pěkně!

Realita ale není tak růžová. Pojďme ale postupně…

Je úterý 27. 1. 2021 cca 13:00 a vývoj BTC vypadá následovně (jedná se o výřez prvního grafu).

Vývoj BTC 27. 1. 2021 cca 13:00
Vývoj BTC 27. 1. 2021 cca 13:00

Co asi tak si řekl můj investorský úsudek? Kupuj!
V 13:04:37 jsem za cenu 25 327.28 € nakoupil 0,01967270 BTC. Jak jsem popisoval včera, okamžitě jsem nastavil prodej na LIMIT za 26 015,05 €, tedy tak, abych na tom vydělal 10 € po odečtení poplatků.

Prvních pět minut situace vypadala tak, že jsem odhadl minimum a brzy budu mít peníze zpět. Ale za dalších pět byla situace následující (jedná se o výřez prvního grafu).

Vývoj BTC 27. 1. 2021 cca 13:15
Vývoj BTC 27. 1. 2021 cca 13:15

Takže v 13:17:30 jsem přikoupil dalších 0,01976658 BTC za jednotkovou cenu 25 206,99 €. Opět jsem nastavil na prodej za cenu 25 891,50 € se stejnou strategií, tedy abych vydělal 10 €.

A nyní bylo nutno jen čekat…

Dočkal jsem se (nebo snad ?) v 21:18:37 pro druhou transakci a v 21:26:41 pro transakci první a vydělal jsem 20 €.

Všechny tři transakce jsem zanesl do denního průběhu pro lepší orientaci.

  • zelená je hypotetická transakce, při které bych vydělal přes 70 € (viz popis výše)
  • červená je první reálná transakce
  • žlutá je druhá reálná transakce

Znázornění průběhu ceny BTC během dne s vyznačením transakcí
Znázornění průběhu ceny BTC během dne s vyznačením transakcí

Co vy na to?

Jak v excelu odmazat entry v textu – podruhé (po 10 letech)

Článek na toto téma jsem již napsal před deseti lety.

Je proto celkem paradox, že když jsem to cca před měsícem potřeboval opětovně řešit, tak jsem znovu hledal způsob jak to udělat. V tu chvíli mi to nepřišlo nijak zajímavé, ale po tom co jsem včera narazil na tento svůj starý zápisek, tak jsem se přece jen rozhodl ho sepsat…

K věci…
Tentokráte jsem nalezl jinou možnost a to tu, že stačí vyvolat dialogové okno „Najít a nahradit“ například pomocí klávesové zkratky Ctrl+H.

Dialogové okno "Najít a nahradit"
Dialogové okno „Najít a nahradit“

A dále v poli „Najít“ stisknout klávesovou zkratku Ctrl+J. Ta vloží do pole netisknutelný znak ENTERu.

Dále si stačí už jen zvolit, za co chcete tento znak nahradit. Například za mezeru.

Hotovo.

Jak vydělávat na kryptoměnách – třeba na Bitcoinu (BTC)

Nejsem žádný krypto-investiční specialista a popíšu jen způsob, který sám aplikuji. Stejně tak nejspíše nepoužiji 100% správné názvosloví, ale myslím, že pro pochopení bude moje terminologie dostatečná a hlavně jasná.
Tento text volně navazuje na předchozí článek o investování pomocí burzy COINBASE PRO.

Jak vydělávat na kryptoměnách?

  1. Investice do nenápadných altcoinů (někdy se také nazývají shitcoiny) – investice spočívá v tom, že zainvestujete do nějakého levného COINu a doufáte, že vystřelí vzhůru. K tomuto jen takto ve zkratce. Tím se nechci zabývat.
  2. Dlouhodobé držení kryptoměny (tzv. HODLování). – ti co HODLují (zkomolenina slova HOLD (držet)), tak jen nakupují a neprodávají ve vidině, že v budoucnu vydělají balík. Tímto se taky dneska nechci zabývat.
  3. Čekání na prudký vzestup. – toto je oblíbená strategie. Čekat, až začne nějaká profláknutá kryptoměna (např. Bitcoin (BTC), Ethereum (ETH), …) prudce růst, nakoupit a pak na vrcholu prodat. Je to způsob, na kterém se dá relativně bezpečně vydělat velká spousta peněz za krátkou dobu.
    BTC vzestup červenec 2020 - leden 2021
    Růst ceny BTC červenec 2020 – leden 2021

    Tímto se ale taky dneska nebudu zabývat.

  4. Vychytávání „lokálních“ poklesů a následných vzestupů. – Je to způsob, kdy i ve chvíli, kdy dlouhodobě cena kryptoměny klesá, se dá stále vydělávat. ANO, toto chci dneska popsat.

Vychytávání „lokálních“ poklesů a následných vzestupů
I v případě, kdy cena kryptoměna ustavičně klesá, tak je možné na takové měně vydělávat.
BTC - pád mezi 20. 1. 2021 a 27. 1. 2021
Pád ceny BTC mezi 20. 1. 2021 a 27. 1. 2021

Stačí dostatečně zvětšit výřez a jde vidět, že například dneska mezi dvacátou a dvacátoudruhou hodinou stoupla cena za 1 BTC z 24 500 € na 26 000 €.
Růst ceny BTC mezi 20:00 a 22:00
Růst ceny BTC mezi 20:00 a 22:00

To by si ale každý řekl: „A jak jsem to měl vědět.“. Ano to by byla správná úvaha, ale co bylo důležitější, byl vývoj před dvacátou hodinou.
Ten vypadal následovně.
Vývoj kurzu BTC mezi 17:30 a 20:00
Vývoj ceny BTC mezi 17:30 a 20:00

Takže pokud si předchozí dva vývoje spojíme, tak dostaneme…
Vývoj ceny BTC mezi 17:30 a 22:00
Vývoj ceny BTC mezi 17:30 a 22:00

Nyní si asi každý položí otázku jak bezpečně investovat
Není nic jako 100% bezpečná investice. Vždy to je „hra“ a to u kryptoměn to platí mnohonásobně více než u jiné komodity. Pokud toto riziko akceptujete, tak je dobré si stanovit určitou míru rizika, které chcete při obchodování podstoupit.
Osobně investuji ve stejných blocích, aby se mi v tom dobře orientovalo. Tento blok může být třeba 100 €.

Konkrétní příklad z investice na COINBASE PRO:
Pokud bych dokázal nakoupit ve chvíli, kdy byl bitcoin z příkladu výše nejlevnější (20:00 za 24 500 €), tak za 100 € nakoupím 0,00406760 BTC a za poplatky burze zaplatím 0,35 € (aktuálně můj poplatek je 0,35 % při nákupu i prodeji). Z toho jasně plyne, že abych okamžitě neprodělal, tak musím stejné množství BTC prodat za 100,70 €, což znamená, že cena za 1 BTC musí stoupnout na minimálně 24 670 €. Tedy o 170 € oproti nákupu (24 500 €). Ale moje strategie není jen nakupovat a prodávat, ale vydělávat! A vydělávám tak, že nakoupené BTC okamžitě nastavím do automatické fronty, kde předem vypočtu za jakou cenu je musím prodat, abych vydělal 2 % (tedy 2 €). Ve zmíněném příkladu to je hodnota 25 165 €, tedy o 665 € více než cena za kterou jsem nakupoval (24 500 €). A v tuto chvíli se o daný obchod nemusím starat. Pokud ale mám čas a všimnu si tohoto vzestupu (nemusí být okamžitý), tak transakci mohu stáhnout z automatu a ručně si počkat na maximum (které samozřejmě musím odhadnout). Kdybych prodal nakoupených 0,00406760 BTC v 22:00 za maximálních 26 000 €, tak z prodeje získám 105,39 €, což je výdělek 5,39 € (tedy 5,39 % za dvě hodiny).

Je to směšně málo? Cca 5 % za dvě hodiny? A co když nebudete investovat po 100 € blocích, ale po 1000 € blocích? A co když taková příležitost nebude jedna denně, ale třeba tři denně? Tedy budete schopni s jednou „tisícieurovkou“, kterou otočím za den 3x, vydělat více než 150 €? Hmm…

Není všechno zlato co se třpytí
Abych byl férový, tak nutno podotknout i úskalí:

  • Je třeba mít na to čas a hlídat vývoj. Osobně se mi zdaleka nepodaří odchytit všechny tyto výkyvy během dne.
  • Je třeba mít dostatečný kapitál. Stává se, že si myslím, že daný pokles je TEN, který zapříčiní následný vzestup a následně cena klesne ještě níže. Možnost je dále nakupovat, případně čekat až se první obchod dokončí. K jakým různým situacím tu může dojít je asi zřejmé.
  • Ne vždy vychytáte nejnižší hodnotu a na druhé straně tu nejvyšší. Takto zpětně se o tom píše pěkně, ale je to trochu ruleta. Já ve většině případů jsem na sebe přísný a nastavím prodej do automatu tak, abych měl konstantní výdělek (zmíněné 2 %). Samozřejmě by byla jiná situace, kdyby byla daná kryptoměna dlouhodobě na vzestupu.
  • Dokonce se může stát, že vám některá investice dlouhodobě uvízne v „drahém pásmu“. Možnosti jsou buď prodat se ztrátou, pokud si myslíte, že reinvesticí daných prostředků ztrátu budete schopni pokrýt. Nebo na tuto částku nasadíte 2. strategii zmíněnou v úvodu článku. Případně se tu opět dají vymyslet další reálně situace a stejně tak jejich řešení…
  • Pokud to myslíte vážně, tak nemá cenu toto provádět s kapitálem 100 Kč. Sice výdělek bude procentuálně stejný, ale stojí ta ztráta času za to, abyste za den vydělali 6 Kč? Pokud to budete mít jen jako hru, tak prosím…

Jako obvykle se budu těšit na jakékoliv podněty či dotazy v diskuzi. Toto téma vnímám jako velice široké a naopak záběr v tomto článků je velice úzký.

Příště zkusím popsat prostředí COINBASE PRO

Daně a živnostník pohledem člověka, který mluví vaší řečí

Dvanáct let jsem živnostník. Za tu dobu jsem si většinu daňových přiznání řešil sám a hledal jsem odpovědi na otázky, které musí řešit dříve nebo později každý z nás.
Jelikož jsem občas narazil na to, že ani „daňoví specialisté“ (nebo jim říkejme účetní) NEVÍ jak se některé věci dělají správně, tak jsem se rozhodl své zjištění jednoduše sepsat do přehledného výčtu.

  1. Jak vypočítat částku, kterou mám za daný rok danit?
    Mýtus: Daním to co jsem v daném roce vyfakturoval.
    Pravda: Daním to co jsem za daný rok OBDRŽEL na účet.
    Tedy pokud jsem vystavil fakturu 21. 12. 2020 a peníze na účtu budu mít 6. 1. 2021, tak tato částka spadá až do daňového přiznání za rok 2021.
  2. Kdy se stávám plátcem DPH z důvodu příjmu nad 1 000 000 Kč ročně?
    Mýtus: Když v daném roce vyfakturuji 1 000 000 Kč nebo více.
    Pravda: Když za období jakýchkoliv dvanácti po sobě jdoucích měsíců přesáhne fakturace 1 000 000 Kč. A pozor! Tady se to počítá podle DUZP ne podle peněz na účtu (aby se to nepletlo).
    Tedy pokud moje příjmy budou dlouhodobě nicotné a dejme tomu od srpna 2019 budu pravidelně fakturovat 100 000 Kč, tak budu muset příslušnost k DPH řešit po deseti měsících (tedy jedenáctý měsíc) tedy v červnu 2020.

A ještě pár dobrých doporučení…

  • Pro podnikatelskou činnost používejte speciální účet. Minimálně se vám zpřehlední toky a v případě potřeby něco dokazovat finančnímu úřadu nemusíte ho pouštět do svého soukromí. Osobně dlouhodobě používám mBank.
  • Číslujte faktury v transparentní souvislé řadě. Třeba ve formátu RRRRXXX, kde RRRR je aktuální rok a XXX je číselná řada od 001 do 999. Pokud dojde na lámání chleba a FÚ uvidí nějakou díru, tak opět zbytečně na sebe upozorňujete. V případě, kdy potřebujete fakturu stornovat a stornováním by vám vznikla díra, tak založte novou s významově stejnými, ale zápornými položkami a dejte si tam poznámku, že se jedná o storno.

Pokud to tu bude číst nějaký profík, tak hned ho napadne spousty úskalí, proč to co jsem napsal nebude vždy a všude platné. Ale pokud jste opravdu jen živnostník typu „pracuji – posílám faktury – chodí mi platby“, tak to platit bude.

A ještě úvaha na konec… Jistě je pro hodně z vás pohodlné si daně nechat udělat od někoho cizího, ale pamatujte, že odpovědnost za správnost máte vždycky vy. Takže je dobré minimálně o některých základních věcech vědět.

Pokud napíšete své postřehy do komentářů, tak budu rád…

Převod bitcoinů z COINBASE na český účet v korunách s minimální ztrátou hodnoty pomocí účtu u REVOLUT a COINBASE PRO

Ti co využívají investice do kryptoměn u COINBASE jistě jednou budou řešit otázku, jak dostat peníze zpět s minimální ztrátou.

Kde ztráta vzniká?

  1. Převod kryptoměny na EURa u COINBASE
    COINBASE si účtuje 1,5% jako poplatek za transakci.
  2. Převod EUR na koruny
    Jak jsem již zmiňoval v předchozím článku, tak různé služby mají různě (ne)výhodné převodní kurzy.

Jak ztráty obejít?

Ad 1.
Pokud již máte zainvestováno u COINBASE, tak není nic jednoduššího než převést kryptoměny ZADARMO na službu COINBASE PRO, kde poplatky činí jen 0 – 0,25%. Rozdíl je v tom, že služba COINBASE je jen směnárna, ale COINBASE PRO je burza. Ano zní to příliš neznámě, ale věřte, že pro drobné investory, jako jsem třeba já, není v používání žádný velký rozdíl.

Ad 2.
Mi se osvědčil následující postup.
Peníze jsem si v EURech poslal na svůj účet u REVOLUT. Jelikož mám jen standardní plán účtu, tak mám limit pro bezplatnou směnu jen v hodnotě ekvivalentu 25 000,- Kč měsíčně. Což nemusí vždy stačit. Takže jsem tentokráte opět zadarmo převedl požadovanou částku ke směně kamarádovi, který má METAL plán účtu a má tedy možnost neomezené směny. Po směně mi peníze, tentokráte již v korunách poslal zpátky a ty jsem pak už bezproblémově poslal do české banky na účet vedený v korunách. Krom výhody toho, že ušetříte na poplatcích za převody, spočívá hlavní výhoda v tom, že REVOLUT má velmi výhodné kurzy pro převody a když budete převádět větší obnosy, tak už tu ztrátu nebo zisk hodně pocítíte.

Co se týče rychlosti, tak převod z COINBASE na účet REVOLUT proběhl online. Převod mezi účty tam i zpět u REVOLUT, taky online. A poslední převod z účtu REVOLUT do české banky trval dva dny.

Příkladem.
Mám na COINBASE BCT v hodnotě 1 000 EUR.
Po převodu BTC na EUR mi zůstane 985 € (ztráta 15 EUR).
Dále pokud bych peníze převedl na český účet u AirBank, a převedl je k dnešnímu dni, tak bych za 985 EUR získal 25 214,03 Kč. Zanedbávám případné poplatky za převody v cizí měně.

Pokud to samé udělám úspornějším postupem viz popis výše, tak z 1 000 EUR dostanu při směně BTC na EUR minimálně 997,5 EUR a po převodu EUR na Kč u REVOLUT 26 291 Kč.

Právě jsem jen vhodnou volbou služby vydělal více než 1 000 Kč.

A co když tam těch BTC nebudu mít jen v hodnotě 1 000 EUR, ale třeba v hodnotě 5 000 EUR. Hmm?

Napište prosím do komentářů, pokud máte nějaké lepší postupy…

Operátor NEBO v PHP a jeho specifické použití

Výchozí situace:
Mám cyklus, kde volám funkci, která mi vrací TRUE nebo FALSE a potřebuji vědět, zda alespoň jeden průběh vrátil TRUE.

Možná to pro PHP experty nebude žádná novinka, ale pro mě jsem přišel sice na odhadnutelnou, ale i tak zajímavou konstrukci, kterou možná všichni neznáte.

$state = false;
foreach ($array as $value) {
	$state |= setParam($value); // operátor |=, funkce setParam vrací true|false
}

Není to pěkné?

Jak rozdělit a spojit velký soubor v linuxu

Výchozí situace:
Mám velký soubor, který chci archivovat například na FTP, ale pohodlnější je nahrávat menší soubory, než řešit jeden velký…

Rozdělení tedy provedeme následovně:

admin@NAS:~$ split -b 1G zaloha.zip zaloha_part_ --verbose
admin@NAS:~$

Příkaz split zajistí samotné rozdělení.
Parametr -b 1G určuje, jak velké soubory vytvářím.
Dále je uvedena cesta OD a kam, kde na konci zaloha_part_ říkám, jak se mají jmenovat výsledné soubory.
A konečně parametrem – -verbose sděluji, že má být ukecaný výstup, abych věděl že se něco děje.

Výstup příkazu:

admin@NAS:~$ split -b 1G zaloha.zip zaloha_part_ --verbose
creating file ‘zaloha_part_aa’
creating file ‘zaloha_part_ab’
creating file ‘zaloha_part_ac’
creating file ‘zaloha_part_ad’
creating file ‘zaloha_part_ae’
admin@NAS:~$

Výpis adresáře:

admin@NAS:$ ls -lah
total 5.1G
drwxr-xr-x 2 admin users 4.0K Aug 15 16:19 .
drwxrwxrwx 6 admin users 4.0K Aug 15 16:16 ..
-rw-r--r-- 1 admin users 1.0G Aug 15 16:17 zaloha_part_aa
-rw-r--r-- 1 admin users 1.0G Aug 15 16:18 zaloha_part_ab
-rw-r--r-- 1 admin users 1.0G Aug 15 16:18 zaloha_part_ac
-rw-r--r-- 1 admin users 1.0G Aug 15 16:19 zaloha_part_ad
-rw-r--r-- 1 admin users 1.0G Aug 15 16:20 zaloha_part_ae
admin@NAS:~$

Komu by vadily písmena u rozdělených souborů, může zvolit přepínač -d (- -numeric-suffixes) a mít tak číselné přílohy.

admin@NAS:~$ split -b 1G -d zaloha.zip zaloha_part_ --verbose
creating file ‘zaloha_part_00’
creating file ‘zaloha_part_01’
creating file ‘zaloha_part_02’
creating file ‘zaloha_part_03’
creating file ‘zaloha_part_04’
admin@NAS:~$

Výpis adresáře, pak vypadá:

admin@NAS:$ ls -lah
total 5.1G
drwxr-xr-x 2 admin users 4.0K Aug 15 16:19 .
drwxrwxrwx 6 admin users 4.0K Aug 15 16:16 ..
-rw-r--r-- 1 admin users 1.0G Aug 15 16:17 zaloha_part_00
-rw-r--r-- 1 admin users 1.0G Aug 15 16:18 zaloha_part_01
-rw-r--r-- 1 admin users 1.0G Aug 15 16:18 zaloha_part_02
-rw-r--r-- 1 admin users 1.0G Aug 15 16:19 zaloha_part_03
-rw-r--r-- 1 admin users 1.0G Aug 15 16:20 zaloha_part_04
admin@NAS:~$

Spojení je pak už jednoduché…

admin@NAS:$ cat zaloha_part_* > zaloha_new.zip
admin@NAS:$

Jak vidno bez jakéhokoliv výpisu…

Pro kontrolu, že výchozí a konečný soubor je stejný provedeme kontrolu spočtením MD5 HASHe obou souborů.

admin@NAS:$ md5sum zaloha_new.zip
ac8a22b805cd2078b40222f72b218e87  zaloha_new.zip
admin@NAS:~$
admin@NAS:$ md5sum zaloha.zip
ac8a22b805cd2078b40222f72b218e87  zaloha.zip
admin@NAS:~$

Jak prosté, milý Watsone! :)

Poznámka: Je to celkem přímá cesta k řešení. Pokud byste potřebovali jen trochu něco jiného nebo jinak, tak je třeba si tu svoji cestičku prošlapat či prozkoumat co jsem přesně kde použil a proč.

Porovnání kurzu dolaru Revolut vs. PayPal

Stručně a jasně. Úkol zněl poslat někam 100 $. Buď jsem mohl nechat konverzi Kč na USD nechat na PayPalu – výchozí možnost nebo změnit a nechat to na kartě.

Výsledek?

PayPal 1 Kč = 0,0412810 USD
Revolut 1 Kč = 0,0430 USD
Čtěte: Za jednu korunu dostanu X USD.

Takže, pokud potřebuji vyměnit 100 USD, tak mě to bude stát:
PayPal 2422,4219,- Kč
Revolut 2325,5814,- Kč

100,- Kč najít na cestě za pár minut…

A pokud si nyní zaregistrujete Revolut kartu, tak získáte navíc 300,- Kč jen tak.

Zaokrouhlování ceny s DPH – po novelizaci 2019

Nevím proč, ale nenašel jsem relevantní informace, jak toto nové zaokrouhlování konkrétně implementovat a tak jsem si zjistil nějaké detaily a sepsal tento kratičký blog.

Konkrétní situace, která mě zajímá:
– cenu počítám z ceny bez DPH
– požaduji platbu hotovostí (je třeba zaokrouhlovat)

Jaká byla situace dříve?
Pokud byla cena bez DPH 150 Kč, tak se DPH spočítalo jako 150 * 1,21 (pro DPH 21%) a tedy cena s DPH byla 181,5 Kč. Pokud jste dále platili hotovostí, tak se cena zaokrouhlila na 182 Kč. A těch 0,5 Kč zůstalo bez zdanění!
Ale úředník si řekl, že to je jasný únik příjmů z daní a co se tedy stalo. Tento zaokrouhlený padesátník, je třeba dále rozdělit na výši základu a daň. Tedy 0,5 Kč si ještě musíme rozdělit na část základu a část k zdanění. To uděláme jako 0,5 * 0,21 = 0,11 Kč a tedy nový základ daně nebude 150 Kč, ale 150 + (0,5 – 0,11) = 150,39 Kč.

Samozřejmě existuje i případ, kdy tímto způsobem stát o daň připravíme. Jestli bude díky této úpravě celkově v plusu či v mínusu, ale říct nedokážu…

Celé!


Upozornění: Autor článku není žádný daňový specialista. Informace výše uvedené podává, tak jak je našel, pochytil a pochopil a také jak jim bezmezně věří.