Microsoft oznámil, že WSL kontejnery (WSLC) aneb linuxové kontejnery ve Windows Subsystem for Linux (WSL) jsou již obecně dostupné. Současně popsal jejich architekturu.
openSUSE Leap 16.1 vstoupil do RC fáze. Nově lze instalovat jako standardní systém (Standard) nebo jako neměnný systém s atomickými aktualizacemi (Immutable). Samostatná neměnná distribuce openSUSE Leap Micro končí.
Byl vydán Mozilla Firefox 157.0. S nejvýraznější vizuální proměnou za poslední roky. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 157 bude brzy k dispozici také na Flathubu a Snapcraftu.
Rodina produktů Raspberry Pi se rozšířila o Raspberry Pi Smart Display Module. Deska pro Raspberry Pi Compute Module 5 se zasouvá přímo do displejů dle specifikace Intel SDM. Cena desky je 30 dolarů.
Byla vydána nová verze 2.56.0 distribuovaného systému správy verzí Git. Přispělo 104 vývojářů, z toho 39 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.
Hackerská skupina ShinyHunters oznámila průnik do informačních systémů FBI, prostřednictvím zero-day zranitelnosti v platformě Oracle PeopleSoft, kterou úřad využívá mimo jiné pro náborový portál FBIJobs.gov. Útočníci tvrdí, že získali až 3 TB dat o současných i bývalých zaměstnancích a uchazečích o práci. Jako důkaz zveřejnili vzorek přibližně 5 000 záznamů obsahující jména, adresy, telefonní čísla, data narození, čísla
… více »Doba kompilace linuxového jádra se díky rychlejšímu hardwaru a optimalizacím kbuildu snižuje k deseti sekundám. Nejnovější patche Lorenza Stoakse (vznikají i s pomocí SI) zkrátily na testovacím stroji dobu sestavení z dlouhých 22 vteřin na pouhých 15, a to bez použití RAMdisku. Testovací systém tvořily dva procesory AMD EPYC 9575F (oba dohromady poskytují celkem 128 jader a 256 vláken), čtyřiadvacet 64GB DDR5-6400 paměťových modulů a
… více »Před rokem a půl vývojáři postmarketOS informovali, že pro projekt hledají nové jméno. Včera bylo oznámeno: postmarketOS se nově jmenuje Nura.
Hra Factorio dorazila na Printables. Hned teď si můžete stáhnout 65 různých modelů a nechat celou mimozemskou planetu oživnout na svém stole.
GNU Project Debugger aneb GDB byl vydán ve verzi 18.1. Podrobný přehled novinek v souboru NEWS.
Ďakujem za tip.
Jdu se shánět pro z shellu.
Na rozdiel od bash-u si zsh výsledky vyhľadávania po sebe pekne „uprace“ a po pustení príkazu nebude doplňovanie nikde v histórii.
Nevšiml jsem si, že by mi bash při použití autocompletion ukládal do historie něco jiného než příkaz, který jsem nakonec opravdu odeslal.
time (i=0; while [ $i -lt 100000 ]; do i=$((i+1)); done)
atd.
$ time (i=0; while [ $i -lt 100000 ]; do i=$((i+1)); done) real 0m3.343s user 0m3.200s sys 0m0.080s $ time (i=0; while [[ $i -lt 100000 ]]; do i=$((i+1)); done) real 0m1.847s user 0m1.780s sys 0m0.060s $ time (i=0; while [[ $i -lt 100000 ]]; do ((i++)); done) real 0m1.566s user 0m1.490s sys 0m0.070sTo posledne len pre zaujimavost, ze rozne sposoby zapisu nie su uplne rovnake, ale maju vplyv na rychlost. Samozrejme vacsinou to vyznam nema, ako som sa naucil v praci - co sa vykonava konstantny pocet krat je rychle a co sa alokuje na konstantnu velkost je male. Pri realnych obrovskych casoch a obrovskych datach je nejaka rychlost inicializacie a velkost konstatnych struktur doslova zanedbatelna. Ale uz som programoval v bashi vascie veci, kde mi tento suborovo-textovy nastroj tak ulahcoval zivot, ze sa mi to prepisovat do C nechcelo. A tam ma vyznam pouzit o o znak viac alebo menej a opvlyvnit rychlost o citelu dobu. A uvazovat, ze spustanie noveho procesu je az posledna moznost ako nieco vyriesit.
Ale uz som programoval v bashi vascie veci, kde mi tento suborovo-textovy nastroj tak ulahcoval zivot, ze sa mi to prepisovat do C nechcelo.
Na tieto prípady skôr používam python / perl. Malý benchmark tu:
time perl test.pl real 0m0.014s user 0m0.010s sys 0m0.003s time python test.py real 0m0.049s user 0m0.040s sys 0m0.007s time (i=0; while [ $i -lt 100000 ]; do i=$((i+1)); done) #bash real 0m1.940s user 0m1.850s sys 0m0.057s time (i=0; while [[ $i -lt 100000 ]]; do i=$((i+1)); done) #bash real 0m1.004s user 0m0.953s sys 0m0.043s
$ time (i=0; while [[ $i -lt 100000 ]]; do i=$((i+1)); done) real 0m0.889s user 0m0.830s sys 0m0.040sJeste rychlejsi varianta:
$ time (i=0; while (( i < 100000 )); do ((i++)); done) real 0m0.811s user 0m0.760s sys 0m0.040s
time for((i=0; i < 100000;)); do ((i++)); donetrva cca polovicu z toho, co
time (i=0; while [ $i -lt 100000 ]; do i=$((i+1)); done)ale slo mi o porovnanie co najpodobnejsieho prikazu, aby z toho sla vyvodit rychlost shellu a nie optimalizacia programatora. Pretoze fakt optimalizacia je
i=100000
).
Ale presto diky za testiky na vasich masinkach - asi zsh vyzkousim (to reverse case-insensitive hledani v historii me vazne zajima). Jinak na me starsi masince bash 0m1.030s a zsh 0,610 (vybrane nejlepsi casy ze 4 mereni).
Aspoň sa tak dokopem k tomu aby som skutočne rozumel tomu čo konfigurujem
${?/#0/}, takze nerusi, ak bolo vsekto OK. A je to bez spustania noveho procesu. Niekde tu by mala byt v historii diskusia, kde som bol tymto osvieteny, ale uz ju neviem dohladat.
Takze moj prompt riesi hodne veci:
PS1='\[\033[01;32m\]\u@\h \[\033[01;36m\]\W \[\033[01;31m\]${?/#0/}\[\033[01;36m\]\$ \[\033[00m\]'
a samotna idea bez farbiciek:
PS1='\u@\h \W ${?/#0/}\$ '
PS1='%n@%m %~ %0(?..%?)$ '
PS1='%B%F{green}%n@%m %F{cyan}%~ %F{red}%0(?..%?)%F{cyan}$ %f%b'
ls **/foo*.cpp # ** matchuje rekurzivne do libovolne hloubky adresaru; btw ** je podporovan i ve vim-u ls **/foo*(.) # (.) na konci globu znaci jenom regulerni soubory ls **/foo*(/) # (/) na konci globu znaci jenom adresare ls (#i)*foo* # (#i) je case-insensitive match ls foo*~foo*bar # ~ je vyjimka - vsechny foo*, ale ne ty, ktere matchuji foo*barzmv je prejmenovavaci utilita s zsh globbingem a capture groups (do ~/.zshrc pridat na zapnuti 'autoload zmv'):
zmv 'DSCN([0-9]).jpg' 'Tajny_plan_na_dobyti_mesice_$1.jpg' # veci v zavorkach se substituuji za $1, $2, ...
zmv '(*)' '${(L)1}' # vyraz ${(L)} lowercasuje operand - vhodne pri mixu souboru pochazejicich z ruznych OS
Perlicka - automaticke parsovani optionu z ./configure i se zobrazenim napovedy k optionum. Napr. kdyz si nepamatuji --with or --enable:
./configure --with<TAB>
)? A proce maji takovehle "advanced" shelly jako zsh tendenci vymyslet nove speciality namisto pouziti ERE?
shopt -s globstar a 4. chce shopt -s nocaseglob
<pre class="brush: ..."> s jazykem, který ten udělátor nezná. Asi si napíšu GreaseMonkey skript, který všechny ty "brush: ..." nahradí starým dobrým "kod", stejně mi to přijde přehlednější než ty barvičky.
Tiskni
Sdílej: