Mám takový dojem, že na nějaké VŠ, kde pracují s databázemi Microsoft
SQL Server (a nejspíš jako povinný předmět, tak s nimi studenti pracují
nedobrovolně) teď začíná zkouškové, protože mé články o nich jsou
abnormálně populární. Za celý rok po nich neštěkne ani pes a teď i 3
hodnocení, dotazy v diskuzi nebo dotazy na fóru denně.
Kdyby náhodou nějaký student ČVUT (který navštěvuje menzu) chtěl
skript, který mu každý den zkontroluje že má v systému menz (agata)
dostatečné množství peněz a pokud ne, tak pošle email s informací že
peníze dochází, tak dejte vědět. Můžu poslat. Je napsaný v pythonu a
phantom.js, takže to dokáže běžet jak pod Windows, tak pod Linuxem.
Ideální je to spouště každý den cronem. Například mě to běží každý
den ve 2 ráno na raspberry pi. Prostě nikdy se nestane že přijdete do menzy
a jste bez peněz, protože o tom že se blížíte do stavu "bez peněz" vám
příjde včas email (například když stav peněz klesne pod 200, ale hodnotu
si můžete nastavit vlastní).
Můj Mikrotik tvrdí, že moji (dnes již nefunkční) Lumii viděl naposledy
před 49696 dny (tedy v roce 1882). Hmmmm. Asi toho zažila víc než jsem si
myslel.
Ta místní komercializace je už nechutná. Bodovy systém se zvrtnul a
začátečnické články zde jsou nyní za body, všude milion reklam. A to co
na mě baflo teďkom je fakt síla.
Že nemáte rádi, když musíte ošetřovat možné zalomení řádku CR,
někdy LF, někdy CRLF? Vývojáři Unicode si řekli, že problém jednou
provždy vyřeší a vyřešili to tak, že zvedli další dva znaky.
No teda nevim. Zálohovat kód pomocí Dropboxu postaveném nad
sofistikovanými síťovými protokoly prakticky bez možností snapshotu s
komentářem. Stav zálohy je indikován sofistikovaně pomocí ikonek u
souboru, jejichž funkcionalita je závislá na souborovém průzkumníku a
navíc jsou aktualizované s přesnosti +- 10 sekund když se daří, takže
dost možná často nereflektují skutečný stav. To mi teda ve srovná s
přímočarým gitem připadá jako jednoduchost sama.
Načítal cca 50. pokaždé stejných tříd pomocí MEF v každé instanci.
Načítání jsem udělal statické a pouze jednou, takže to ušetřilo,
zejména při běhu unit testů obrovské množství času.
// Maximum size of tokens/trivia that we cache and use in quick scanner.// From what I see in our own codebase, tokens longer then 40-50 chars are// not very common.// So it seems reasonable to limit the sizes to some round number like 42.privateconstint MaxCachedTokenSize = 42;
Většinou když vyvíjíte aplikaci a spadne, tak to je prostě průser. Já
jsem to povýšil na nový level. Moje vícevláknová aplikaci spadne hned 2×
po sobě! Windows zobrazí hlášku že neodpovídá, dáte ukončit a pak se
objeví ten stejný dialog ještě jednou, protože v Dispatcher crashne i
druhé vlákno.
Aplikaci s GUI, která docela pravidelně zprostředkovává data v jiném
vlákně a vrací je do GUI. Musí být zajištěno pořadí, že vlákna
skončí (nebo alespoň se použije správný výsledek) v takovém pořadí v
kterém byla vytvořena. A to mi nefungovalo.
Na serveru root.cz chybí obdoba místního článku "Jak začít". V
diskuzi, kdy se začátečník ptal "Jak začít" mu byl doporučen jazyk
haskell a diskuze pokračovala o monádách
Dokumentace k současnému VS SDK má v PDF 2114 stránek. Mnohem
užitečnější je však dokumentace k VS SDK z verze 2005. Která má
necelých 47 tisíc stránek formátu A4. VS 2017 na VS 2005 staví, takže je
to podobné.
Asi jsem přišle na způsob jak znásilnit IntelliSense. Docela by mě
zajímalo, jestli možnost rozdělit IntelliSense na dvě části je někde
reálně a užitečně použita?
Dneska jsem se rozhodl analyzovat naši domácí síť. Poměr otevřených
spojení po HTTPS vs HTTP vypadá docela dobře, horší je to s IPv6, kterou
poskytovatel neřeší.
Můžeš si o tom přečíst dokumentaci. Dá se stáhnout v PDF, má 17 MB a
2113 stránek formátu A4. Sem tam sice odkáže do nějaké jiné dokumentace,
ale jinak je to docela ucelené zajímavé čtení.
Visual Studio SDK používá pro označování textu styly, které se nějak
identifikují. Identifikují se naproste nejintuitivnějším způsobem -
stringem. Můžeš si nadefinovat svoje vlastní nebo použít výchozí. Škoda
že oficiální seznam výchozích neexistuje. na obranu Microsoftu je třeba
říct, že v závislosti na nainstalovaných doplňcích je v každé verzi VS
a to i napříč stejnou verzí třeba v různých edicích vždycky jiná sada
"výchozích". Tím že MS implementuje VS SDK s pomocí MEF tak to není
takový problém si celý seznam výchozích nechat vypsat. Ony ty stringy jdou
odhadnout intuitivně a tak jsem intuitivně odhadl že pro seskupování
souvisejících bude vhodné označení "bracematching". Zjistil jsem, že jsem
odhadoval skoro správně. Takový styl sice existuje a vypadá cca. jak má,
ale ne úplně. Všechny ostatní editory Visual Studia používají jiný a
"bracematching" si snad uživatel ani nemůže nakonfigurovat. "bracematching"
je takový vybledlý, asi se používal kdysi. Nejspíš je tam z legay důvodů
aby se nějaké 3rd party moduly nerozbili. Tak jsem tedy hledal dál a našel
"brace matching", ten už vypadá OK, ale i tak jem s jeho hledání strávil
asi 20 minut.
Dnes jsem nainstaloval nový build Windows 10. Stejně jako u předchozí
čisté instalace i tentokrát jsem byl překvapen. Zatímco minule jsem byl
překvapen, jak to všechno dokázali zmrvit, dneska jsem se divil hned 2×.
Jednak jsem přemýšlel, jestli je možné, že to všechno opravili a za
druhé jestli instance operačního systému za 8 minut (od bootu instalační
flashky po zobrazení plochy) je fór nebo to fakt jde. Zjistil jsem že to fakt
jde. Linux se s minimálně dvojnásobným časem může jít bodnout a pokud
ještě něco stahuje z netu, tak to může zabalit rovnou.
Instalace naprosto bezproblémová, nainstaloval se na správný disk (což
před 2 buildy nezvládl), systém je funkční, samozřejmě svižný, všechno
jede. Tři drobné zádrhely. Jednou mi nefungoval taskbar, který jsem asi
rozbil mým reg skriptem pro jeho konfiguraci. Podruhé se mi po spuštění PC
objevila chyba neplatné uživatelské jméno nebo heslo ještě před
přihlášením, což asi způsobila moje dramatická změna uživatelského
jména ve verzi Home, kde to oficiálně nejde. Při druhém spuštění už
normálně. A do třetice: poprvé jsem zažil problémy s instalací ovladače
NVIDIA z Windows Update, který skončil chybou, po restartu už instalace
prošla). Všechny tři problémy snadno vyřešila metoda vypnout a zapnout
(systém jsem kvůli instalaci programů stejně několikrát instaloval, takže
problémy se fixnuly ještě než jsem je začal řešit).
Navíc mi přijde systém trochu hezčí, takže za mě win win.
Používám ten jejich download tool. Obvykle to nechávám stahovat přímo
na flashku, ale letos jsem stahoval ve škole, takže ISO (přes media creation
tool) a doma přehrál.
Aktualizace se stahoval jedna, netrvala déle než minutu.
Ovládací panely tam jsou a nejspíš ještě budou. Staré ovládací
panely umožňovali, že si tam 3rd party aplikace (třeba Java, ImDisk, atd)
mohli přidat svoje položky, což nové neumí, takže si myslím, že staré t
s námi ještě hodně dlouho budou. Nové jsou stále vylepšovány, i přesto
stále na některé věci (i systémové) je třeba použít staré. Nově však
například jde z nového ovládacího panelu nastavit hostname, což se kdysi
muselo dělat přes staré.
Už taky budu muset reinstallovat, minule jsem vybral špatné iso a zjistil
to až po dvou týdnech, když se začal systém postupně mrvit, a už se mi
nechtělo znova všechno instalovat, takže jenom záplatuju nebo ignoruju
Odkud to bereš? Já když sem naposled použil ten jejich download tool, co
stáhne a rovnou vypálí na flashku, tak sem další dva dny instaloval
aktualizace (čekal sem že čerstvě stažený od MS by mohlo být
aktuální).
Btw, sou tam ještě pořád ovládací panely?
A přitom je to easy peasy, jen je třeba znát lookbehind a lookahead, resp.
v jejich negativních variantách a prodrbat se sérií escaování. Pokud si
odmyslíme PHP escapování tak regex vypadá
(?<!\\)\\(?!\\)
protože zpětné lomeno se musí v regexu escapovat, tak je tam pokaždé
2×, když si to odmyslíme, regex bude vypadat následovně
(?<!\)\(?!\)
Ty první závorky jsou lookbehind, což řeší, že obsahu nesmí
předcházer \ a ty druhé závorky jsou lookahead, který zase řeší, že
obsahu nesmí následovat \ a samotný obsah musí být \. Tzn. hledá to
všechny \, které nejsou sami odescapovány nebo neescapují jiné lomeno. Tzn.
\n vybere \ před n, ale \\ nevybere nic (protože pro první \ selže
negativní lookafter a pro druhé lookbehind).
Visual Studio 2017.3 je něco mezi dobrodružstvím, častým překvapením a
přehlídkou chybových hlášek o kterých jsem nevěděl, že existují či
loterií jestli se na po 6 restart podaří správně inicializovat nástroje
pro správu verzovacího systému, či bude restartovat po sedmé. Škoda že
neexistuje jednoduchá možnost downgrade na 2017.2.
když už na SSH zkoušíte brute force, tak to dělejte jen pokud je ten
port otevřený. https://www.abuseipdb.com/…5.152.162.13 například
útočí i na servery se zavřeným portem 22. Zajímala by mě
úspěšnost.
chyba je jednoduchá. PHP na Windows můžete buď instalovat instalátorem a
pak ho odinstalátorem odinstalovat nebo ho můžete prostě rozbalit ze zipu,
zavést do IIS a odinstalovat ho tak, že ho smažete a odeberete vazbu z IIS.
Pokud vazbu však ručně neodeberete...
Hurá!! Našel jsem jazyk který ode mě získává titul Král jednoduché
přenositelnosti napříč platformami. Je jím ...
...
...
...
...
Python
Na rozdíl od node.js, phantom.js a PHP na Debianu a Raspbianu funguje
úplně stejně jako na Windows (ale jako fakt úplně, není třeba změnit ani
řádek kódu, ani jeden). Dokonce i volání z cronu funguje naprosto (ale
opravdu) stejně jako volání z terminálu. Prostě boží. Simple. Stupid.
Nechápu jak to ti ostatní dělají, že při volání z cronu se vždycky
něco pose*e.
V PHP jsem s přenositelností moc problémů neměl, jen jednou tam jinak
fungovalo lockování souborů, ale to by bylo v Pythonu asi taky, když to
dělá OS. Co ti tam nešlo?
Autoloader by to nenačítal, někam bys to zašil a jen bys nahradil ten
řádek s eval za řádek s require tohoto souboru. eval je to samé jako bys
někde vygeneroval soubor s tím kódem a pak zavolal require, také spustí
kód.
Mohl, ale pak by můj autoloader (primární) to načítal při spouštění
testů, kde musí být načtena ta správná originální třída autoloaderem
PHPUnit. Přišlo mi jako cesta menšího zla udělat toto, než podmínkovat o
jaký běh se jedná. Jadna taková podmínka v tom systému už je a jako fakt
jedna stačí...
Linuxem jsem si rozbil zavaděč Windows, tak jsem ho ručně opravil a po
úspěšném nabootování mě čeká další překvapení. 1 desktop.ini
vpravo, druhý vlevo, tak jsem jeden odstranil. naivně jsem čekal, že když
je na desktopu nějaký bug že se soubor zobrazuje 2× odstraněním jednoho
zmizí i druhý, ale nestalo se tak. Těžko říct jestli je tedy bug i v
mazání soubor.