Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.
Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.
Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).
OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.
Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.
R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.
IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.
Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.
Tak jsem dneska našel nějaké odkazy na stahování přes úložiště http://bagruj.cz. Je tam sice captcha, ale jinak to jede rychle, čekací dobu jsem měl vždy 15 sekund, takže jsem si udělal další stahovací skriptík.
Asi k tomu není co dodat, část kódu jsem zkopíroval z down-rapid, část z down-megaupload.
UPDATE 2009/01/10: Tak jsem udělal dvě úpravy. První úprava je ukončení skriptu, pokud skript z nějakého důvodu nedokáže získat URL ke stahování. Druhá úprava mění chování při zadávání captcha kódu a měření čekací doby. Po získání URL captcha se zjistí aktuální čas, dále se stáhne a zobrazí captcha. Na promptu pro čtení captcha kódu se zobrazí i cesta captcha obrázku-pokud by se zobrazily dva captcha obrázky a prompty, tak je těžké identifikovat, který prompt patří ke kterému obrázku, takže zobrazením cesty v promptu bude identifikace jednodušší (gqview, nebo jiný prohlížeč by měl cestu ke captcha obrázku také zobrazovat). Když se přečte captcha kód, tak se zjistí aktuální čas. Pokud již vypršela čekací doba, pokračuje se stažením souboru. Pokud by náhodou uživatel dokázal zadat captcha kód ještě před koncem čekací doby, skript počká zbytek doby a pak se spustí stahování. A měl jsem tam chybku s odpočítáváním-teď už by to mělo odpočítávat dobře.
UPDATE 2009/02/11: Jenom oprava textu v titulku Xdialogu.
#!/bin/bash proxiesfile="$HOME/.download-proxies" if ! [ -e "$proxiesfile" ];then echo "Please, create file $proxiesfile" exit fi allproxylist="$( awk -F '|' '{print $2;}' "$proxiesfile" | tr '\n' ' ' )" sshtunnels="$( awk -F '|' '$1~/^.+$/{print " " $1,$2;}' "$proxiesfile" )" sshtunservers="$( awk -F '|' '$1~/^.+$/{print $1;}' "$proxiesfile" | tr '\n' ' ' )" console=0 if [ $# -gt 0 ];then i=$# while [ $i -gt 0 ];do case "$1" in -a) if [ $# -gt 1 ];then id="$[$2+1]" proxylist="$proxylist $( echo "$allproxylist" | tr -s '[[:space:]]' '\n' | sed -n "${id}p" )" i=$[$i-1] shift 2 else echo "value please" exit fi ;; -d) if [ $# -gt 1 ];then id="$[$2+1]" if [ -z "$proxylist" ] ;then proxylist="$allproxylist";fi proxylist="$( echo "$proxylist" | tr -s '[[:space:]]' '\n' | sed "${id}d" )" i=$[$i-1] shift 2 else echo "value please" exit fi ;; -r) if [ $# -gt 1 ];then rate="--limit-rate=$2" i=$[$i-1] shift 2 else echo "value please" exit fi ;; -p) if [ $# -gt 1 ];then proxylist="$2" shift 2 i=$[$i-1] else echo "value please" exit fi ;; -c) console=1 shift ;; -x) console=0 shift ;; *) v="$1" shift 1 set "$@" "$v" ;; esac i=$[$i-1] done if [ -z "$proxylist" ] ;then proxylist="$allproxylist";fi tmpdir="$( mktemp -d )" echo "TMPDIR: $tmpdir" while [ $# -gt 0 ];do echo "Downloading URL $1" for proxy in $proxylist ;do if [ "$proxy" = "NONE" ];then unset http_proxy else export http_proxy="$proxy" fi echo "HTTP PROXY: $http_proxy" url="$1" o1="$( wget -O - -q "$url" )" o2="$( echo "$o1" \ | perl -e ' undef $/; $a=<STDIN>; if (($b)=($a=~m,<form[^>]+name="f1"[^>]+>(.+?)</form>,is)) { @inputs=(); while ((($input)=($b=~m,(<input[^>]+type="hidden"[^>]+>),is)) and (($name)=($input=~/name="([^"]+)"/is)) and (($value)=($input=~/value="([^"]*)"/is))) { $value=unpack("H*",$value); $value=~s/(..)/%$1/g; push @inputs,sprintf("%s=%s",$name,$value); $b=~s,(<input[^>]+type="hidden"[^>]+>),,is; } print sprintf("post-data:%s\n",join("&",@inputs)); if (($img)=($b=~m,<img[^>]+src="(http://bagruj.cz/captchas/[^.]+.jpg)"[^>]*>,is)) { print "captcha:$img\n"; } if (($wait)=($b=~m,<span[^>]+id="countdown"[^>]*>(\d+)</span[^>]*>,is)) { print "wait:$wait\n"; } }; ' )" captcha="$( echo "$o2" | grep -E '^captcha:' | cut -f2- -d: )" postdata="$( echo "$o2" | grep -E '^post-data:' | cut -f2- -d: )" wait="$( echo "$o2" | grep -E '^wait:' | cut -f2- -d: )" echo "wait: $wait seconds" waitstart="$( date +"%s" )" echo "captcha: $captcha" if [ -n "$captcha" ] && [ -n "$url" ];then wget $rate -q -O "$tmpdir"/cap "$captcha" if [ -n "$DISPLAY" ];then gqview "$tmpdir"/cap >/dev/null 2>&1 & pid="$!" ; fi code="" if [ -n "$DISPLAY" ] && [ $console -eq 0 ];then while [ -z "$code" ];do code="$( Xdialog --no-cancel --title 'Bagruj downloader' --screen-center --stdout --inputbox "Enter the CAPTCHA code\nfor $tmpdir/cap" 10 40 )" ; if [ $? -eq 1 ];then code="-";fi;done else while [ -z "$code" ];do read -p 'Code for $tmpdir/cap ["-" for stop]: ' code;done fi if [ -n "$DISPLAY" ];then kill "$pid" ; fi if [ "$code" != "-" ];then if [ -n "$wait" ]; then realwait="$(( $( date +"%s" ) - ( $waitstart + $wait ) ))" if [ $( date +"%s" ) -le $(( $waitstart + $wait )) ] ; then while [ $( date +"%s" ) -le $(( $waitstart + $wait )) ];do echo -en "waiting $wait seconds [ $(( $waitstart + $wait - $( date +"%s" ) )) ] \r";sleep 1; done ; echo ; fi file="$( wget $rate -O - -q --post-data="$postdata&code=$code" "$url" | perl -e 'undef $/;$a=<STDIN>;if (($b)=($a=~m,<a\s+href="([^"]+)">\1</a>,is)) { print "$b\n"; };' )" if [ -z "$file" ]; then break 2 ; fi echo "url: $file" echo "wget $rate -c '$file'" if wget $rate -c "$file" ; then break ; fi fi fi fi done shift done rm -rf "$tmpdir" else cat <<EndOfInfo ssh tunnels: $sshtunnels proxy list: $( echo "$allproxylist" | tr -s '[[:space:]]' '\n' | nl -v0 -w4 -s' -- ' ) $sshtunservers Usage: $0 [ -a proxynum ] [ -d proxynum ] [ -r rate-limit ] [ -p proxyurl ] [ { -c | -x } ] URL ... -a proxynum add proxy at line proxynum -d proxynum delete proxy at line proxynum in ACTUAL proxy list -r rate-limit limit wget download rate -p proxyurl insert proxy specified by proxyurl -c use console to enter captcha code -x use X dialog to enter captcha code (this is default) URL URL to download EndOfInfo fi
Tiskni Sdílej:
A ja si myslel ze pisu nesrozumitelnej bash :D
A ja si myslel ze pisu nesrozumitelnej bash :D
Pokud tim chces rict, ze se ti ten skriptik zda nesrozumitelnej, tak rekni, co presne nechapes. Jak jsem psal, pokud to nebudou veci RTFM, tak to rad vysvetlim. A to jsi jeste nevidel down-rapid:)
Takhle to vypada jako by bash byla nejaka tezka magie. :D
Sice tam nachazim par veci ktery se me nelibi a ktery bych prepsal ale jinak je to podarena sranda :P
No uznavam ze to taky nejni nejsrozumitelnejsi :P ale furt je to citelnejsi :D
Pockej, pockej. Tady je prevazne na jednom radku jeden prikaz a nemyslim, ze by byly nejak hodne slozity. Nejsem bash-guru a proto pouzivam jenom jednoduchy zakladni veci, takze bych nerekl, ze je to nejak magie (btw, bash magie byla soutezi po drate se suse). Nejvetsi magie je tam ten perl skript, ale proste v perlu je jednodussi parsovat nejakej vetsi text.
Co bys tam treba prepsal? Ja se nebranim tomu ucit se novy veci. Co presne se ti zda, ze neni citelne (krome toho perlu, ale kdyz perl umis, tak i ten perl je jednoduchej)?