Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.
Americký výrobce čipů Nvidia získal od vlády prezidenta Donalda Trumpa souhlas s prodejem svých pokročilých počítačových čipů používaných k vývoji umělé inteligence (AI) H20 do Číny. Prodej těchto čipů speciálně upravených pro čínský trh by tak mohl být brzy obnoven, uvedla firma na svém blogu. Americká vláda zakázala prodej v dubnu, v době eskalace obchodního sporu mezi oběma zeměmi. Tehdy to zdůvodnila obavami, že by čipy mohla využívat čínská armáda.
3D software Blender byl vydán ve verzi 4.5 s prodlouženou podporou. Podrobnosti v poznámkách k vydání. Videopředstavení na YouTube.
Open source webový aplikační framework Django slaví 20. narozeniny.
V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.
Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.
Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.
Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.
Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
wget www.seznam.cz --06:13:25-- http://www.seznam.cz/ => `index.html' Resolving www.seznam.cz... 194.228.32.3 Connecting to www.seznam.cz|194.228.32.3|:80... connected. HTTP požadavek odeslán, program čeká na odpověď ... 200 OK Délka: neudáno [text/html] [ <=> ] 31 595 --.--K/s 06:13:25 (5.98 MB/s) - `index.html' saved [31595]Potřebuji získat to index.html. Pokud bych tento výstup poslal rourou, např.
wget http://www.seznam.cz 2>&1|grep saved|sed -e 'blabla', tak sice získám název, ale přijdu tím o ostatní omáčku z wgetu. Potřeuji i tu omáčku i ten název... Dík za tip!
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
wget http://www.seznam.cz 2>&1|tee /dev/stderr|grep saved
07:00:11 (6.83 MB/s) - `index.html.31' saved [31612]
dá to index.html deb http://ftp.cz.debian.org/debian jessie main contrib non-free
$ echo "07:00:11 (6.83 MB/s) - \`index.html.31' saved [31612]" 07:00:11 (6.83 MB/s) - `index.html.31' saved [31612] $ echo "07:00:11 (6.83 MB/s) - \`index.html.31' saved [31612]" | \ sed -e "s:[[:print:]]*\`::" -e "s?' saved \[[[:digit:]]*\]??g" index.html.31
-O file
--output-document=file
wget $URL 2>&1 | tee /dev/stderr | grep saved | awk '{ print(substr($5, 2, length($5)-2)); }'Dík všem a hlavně Davidovi
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
file=$(wget $url 2>&1 | sed -n "2{h;s/.*\`\(.*\)'$/\1/p;g};w /dev/stderr")
wget http://seznam.czstáhne něco jiného než
wget http://seznam.cz/index.htmlAle přitom název souboru bude v obou případech 'index.html'. Takže buď ten název souboru známe (je součástí URL) nebo ho neznáme a pak je to index.html. Nebo jsou nějaké výjimky?
#!/usr/bin/env python import sys,os,urlparse,urllib2 conn = urllib2.urlopen(sys.argv[1]) realurl = conn.geturl() parsed = urlparse.urlsplit(realurl) url_path = parsed[2] # Here is the path filename = os.path.split(url_path)[1] if not filename: print 'No filename available, using "index.html"' filename = 'index.html' file(filename, 'w').write(conn.read())Jestliže se pokusím stáhnout
http://kf.fyz.fce.vutbr.cz/pub/bletak to název souboru nenajde a stáhne to do "index.html". Zatímco
http://kf.fyz.fce.vutbr.cz/pub/blaobsahuje konkrétní název souboru, ačkoli to z pouhé adresy nelze poznat. No a v tomto případě se použije název "bla". Zrovna tak to udělá i wget.
ahoj 2 slunce 3 moře 1 člověk 5 atd...
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
wget -q -O- ... | sed ... | ...Případně pokud by se jednalo o slušný web, mohl byste k vyčištění použít
xsltproc
.
#!/usr/bin/env python import os,sys,elementtree.ElementTree, urllib2 words = {} def add_to_words(text): for word in text.split(): try: words[word] += 1 except KeyError: words[word] = 1 def find_text(elem): text = elem.text if text: add_to_words(text) for e in elem: find_text(e) conn = urllib2.urlopen(sys.argv[1]) doc = elementtree.ElementTree.parse(conn).getroot() conn.close() find_text(doc) for k in words: print "%d: %s" %(words[k], k)Kéž by všechny stránky byly v XHTML strict...
chorchoj:14:22:02 ~$ wget -q abclinuxu.cz chorchoj:14:22:26 ~$ tidy -xml index.html line 18 column 1 - Error: unexpected </head> in <meta> line 56 column 98 - Error: unexpected </a> in <img> line 57 column 6 - Error: unexpected </div> in <img> line 77 column 1 - Error: unexpected </div> in <img> line 77 column 7 - Error: unexpected </div> in <img> line 96 column 25 - Error: unexpected </form> in <input> 0 warnings, 51 errors were found! Not all warnings/errors were shown. This document has errors that must be fixed before using HTML Tidy to generate a tidied up version. To learn more about HTML Tidy see http://tidy.sourceforge.net Please send bug reports to html-tidy@w3.org HTML and CSS specifications are available from http://www.w3.org/ Lobby your company to join W3C, see http://www.w3.org/ConsortiumZkoušel jsem i víc stránek - na každé je nějaký problém. Neznáte někdo nějaký jiný způsob, jak z HTML udělat well-formed XML?
#!/usr/bin/env python import os,sys,elementtree.ElementTree, urllib2 words = {} def find_text(elem): for word in elem.text.split(): words[word] = words.get(word, 0) + 1 for e in elem: find_text(e) url = 'http://www.w3schools.com/xml/plant_catalog.xml' conn = urllib2.urlopen(url) doc = elementtree.ElementTree.parse(conn).getroot() conn.close() find_text(doc) w = [(y,x) for x,y in words.items()] w.sort() for num, word in w: print "%d: %s" %(num, word)... ale jinak to trpí tím samým neduhem co předchozí verze.
w = [(y,x) for x,y in words.items()] w.sort() for num, word in w: print "%d: %s" %(num, word)jde v Python 2.4 nahradit
for word, num in sorted( words.iteritems(), key=lambda x: x[::-1], reverse=True ): print "%d: %s" %(num, word)Principiálně je to totéž jako
w = [(y,x) for x,y in words.iteritems()] w.sort() for num, word in w: print "%d: %s" %(num, word)Ale vypadá to víc perlish :) (jinak to použití
iteritems
místo items
by mělo ušetřit trochu paměti, ještě trošku paměti by mělo ušetřit
for word in sorted( words.iterkeys(), key=lambda x: (words[x], x), reverse=True ): print "%d: %s" %(words[word], word)ale tam už bude kulhat rychlost) Aneb správný perlista dokáže napsat perlový kód v jakémkoli jazyku
Pichi varuje: Tento příspěvek není kritika, jen má sloužit jako studijní materiál.
w = [(y,x) for x,y in words.iteritems()] del words #šetříme pamětí w.sort() for num, word in w: print "%d: %s" %(num, word)
lynx -dump www.abclinuxu.cz \ | sed -e 's/[^a-z0-9]\+/ /g' -e 's/[ \t]\+/\n/g' \ | sort \ | uniq -c \ | sort -n
Tiskni
Sdílej: