CategoryNezařazené

TypeScript: Cannot find name ‚module‘.

Pokud si v nějakém typescriptovém modulu s vašim zdrojákem dovolíte tohle:

Okamžitě na vás začně kompilér upozorňpvat, že nemůže najít název modelu.


Chyba je jasná: TypeScript neví nic o CommonJS modulu, na kterém staví NodeJS a na který se ve zdrojáku odvoláváte.

Řešení

Korektním řešením je doinstalování balíčků s NodeJS typy:

For loop v TS, JS (performance)

V ES6 je nově for of loop, který iteruje nad čímkoliv, co umí iterovat, jako je např. pole a objekt.
A to mě vedlo ke krátkému a opravdu jednoduchému testu, ve kterém jsem si ověřil výkonost jedotlivých for loop konstrukcí.

Výsledky

Env NodeJS Safari Chrome Firefox
Create time 497 209 507 2793
For in 1421 7606 1534 6575
For of 11 36 31 10643
For 11 46 34 8724

Všechny časy jsou v ms.

Několik rychlých závěrů

  • Firefox už dlouho nepoužívám a do testu jsem jej vložil jen pro úplnost. Pozitivní zjištění: o nic jsem nepřišel…
  • Je super, jak je NodeJS opravdu dobře zoptimalizovaný a na prováděný kód téměř nemá žádný vliv prostředí.
  • Chrome: V8 společná s NodeJS je znát. Výkonový rozdíl vyplývá z prostředí ve kterém kód běží a dá se pochopit.
  • Safari má vlastní JS engine SquirrelFish, který je opravdu dobrý…

Poznámka na závěr

Ze zvědavosti jsem chtěl takto otestovat i PHP.

Při pokusu vytvořit pole s 10.000.000 čísly (tak jak jsem to dělal v JS) jsem se dočkal chybové hlášky Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 134217736 bytes) in /Users/pepa/test/looptest/test.php on line 7 a tím jsem testování v PHP odpískal.

Pravdou je, že jsem ještě zkusil zmenšít velikost vytvářeného pole na 10.000, tedy tisíckrát meněí. Jo! Pole se vytvořit podařilo. Pak jsem se zarazil. Tohle chceš vážně testovat?

nodejshosting.cz

Výpočet GEO vzdálenosti v JavaScriptu

Výpočet dle Haversine formula

Základy CURL

Pokud píšete nějakou REST aplikaci a potřebujete nějak komunikovat se serverem, a tím myslím třeba něajak efektivně mu posílat data, a třeba i dávkově, a nevyhovuje vám HTTPie nevyhovuje, nebo inklinujete k něčemu tradičnímu, pak rozhodně zkuste CURL.

CURL je moncný nástroj, který toho umí mnohem víc, než jen odesílání POST requestů. Samozřejmostí je modifikace hlaviček a například také SSL komunikace.

Clock cycles consumed by typical system tasks

L1-cache 3 cycles
L2-cache 14 cycles
RAM 250 cycles
Disk 41,000,000 cycles
Network 240,000,000 cycles

Autor: Ryan Dahls

NodeJS: parsování příkazové řádky

Až do teď jsem pro přístup k parametrům příkazové řádky používal npm balíček optimist, nicméně teď v novém projektu jsem se ze zvědavosti poohlédl po jiných balíčcích, abych se ujistil že používám ten nej (ať už je to v jakémkoliv úhlu pohledu), nebo našel nějaký nový, modernější, lepší, zase nějaký ten nej balíček.

Našel jsem pěkný, stručný článek s přehlednou tabulkou shrnující základní vlastnosti asi nejpoužívanějších npm balíčků.

Pokud chcete jen parsovat nějaký argument, pak asi nejlepší volbou budem minimist, pokud chcete zkusit něco nového, koukněte na yargs, ale pokud potřebujte opravdu robustní řešení kde čeho na příkazové řádce, včetně povinných parametrů a já nevím čeho všeho, bude tou správnou volbou commander.

Optimist nedopadl asi nejlépe, a tak jej najradím za jiný balíček…
Vítězem krátkého porovnání se stal minimist. Srovnával jsem i rychlost zpracování parametrů na příkazové řádce (nic složitého) a minimist byl nejrychlejší. Dalším jeho kladem je minimální závislost, respektive absolutní nezávislost, ni jiných balíčcích.

Vnímání latence uživatelem

Zpoždění Reakce uživatele
0–100 ms Okamžik
100–300 ms Malé postřehnutelné zpoždění
300–1000 ms Počítač pracuje
1 s a více Přepnutí mentálního kontextu
10 s a více Vrátím se později…

WEBSITE DOWNLOADER

WEBSITE DOWNLOADER: Download all the source code and assets of any website.
Stačí zadat URL a emailovou adresu kam bude poslán komplentní, zabalený web.

Hackers

hackers620

Hackers

© 2018 pepa.holla.cz

Theme by Anders NorénUp ↑