Portál AbcLinuxu, 30. dubna 2025 17:17

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
27.7.2010 15:19 ext3fs
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin
Na text bash + awk,sed,grep... Na nizkourovnove veci C.
27.7.2010 15:23 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Díky za názor. Bash se mi dost hodí např. pro psaní PKGBUILDů v Arch Linuxu. A co tedy Python nebo Perl?

belisarivs avatar 27.7.2010 15:33 belisarivs | skóre: 22 | blog: Psychobláboly
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Python doporucuje Eric S. Raymond pro zacatky v programovani. Mozna by stal za zvazeni.
IRC is just multiplayer notepad.
27.7.2010 15:36 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Asi do něj půjdu. Ještě si to pořádně rozmyslím. Díky.

28.7.2010 19:52 Bystroushaak
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Python FTW! Perl je obcas dost write-only jazyk.
28.7.2010 20:20 ::: | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
pokud mas trochu sebekontrolu tak neni problem psat v perlu citelne. A na zpracovani textu (jak psal autor blogu) je lepsi nez python...
29.7.2010 10:53 Martin Mareš
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Jak říká staré přísloví, opravdoví programátoři dokáží psát fortranské programy v libovolném programovacím jazyce :-)
27.7.2010 15:39 CEST
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
ten grep a sed na jednodussi veci; awk kdyz chci vypsat urcita pole (radek je rozdeleny pomoci mezer), na slozitejsi veci perl. Zjistil jsem, ze misto psani 6 rour stylem cat | grep | sed | grep | cut | grep | sort .... je lepsi napsat jeden perl -aF'/regexp/' -ne '....' (pripadne jeste awk, v tom se da taky dost tvorit, ale proste PCRE jsou PCRE:-))

Python bych chtel taky rad zacit, ale jak casto namitam, dost mi nesedi. A nevim vubec, jestli jde pouzit python v pipe, protoze pokud se nepletu, tak oddelovace prikazu jsou entery a bloky se vytvari odsazovanim, takze netusim, jak by se oboje delalo na cmdline. Jde python spustit na cmdline jako filter podobne jako perl? Neco jako cat | python -e '....'?

To C na nizkourovnovy veci je dobry. Ale pokud v tom nechces programovat, tak staci se naucit zakladni "strukturu", funkce najdes v manualu a na nejakej kod holt musis umet myslet. Nechapu otazku "jak ziskat algoritmus":-)
27.7.2010 15:53 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Nechapu otazku "jak ziskat algoritmus":-)

Mě by hlavně zajímalo, jestli existuje třeba nějaká kniha už "vynalezených algoritmů" -- tedy jejich slovní popis v té knize... Např. v učebnicích matematiky jsou popisovány různé algoritmy.

Heron avatar 27.7.2010 15:59 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
jestli existuje třeba nějaká kniha už "vynalezených algoritmů"

Existuje. VŠ skripta. Nejsou tam tedy všechny alg. ale ty veřejné a dostatečně používané ano.

27.7.2010 17:31 lok
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Wroblewski rulez. Jinak zkus se podivat na http://www.algoritmy.net/. Je to docela pekne a jako zaklad bych rekl ze pouzitelne.
27.7.2010 17:35 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Vypadá to dobře. Děkuju.

27.7.2010 17:49 little-drunk-jesus | skóre: 14
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Pokud to myslis vazne a chces se tomu venovat vice, doporucuji projit si vsechny dily The Art of Computer Programming.
Chytrex avatar 29.7.2010 17:27 Chytrex | skóre: 30 | Bohumín
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Mám ji taky doma a fakt stojí za přečtení..
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..
29.7.2010 00:14 ulysses
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Knihy: TAOCP, SICP (i online - to je urcite MUST READ, po tomhle uz budes navzdy "rozdelovat a panovat")

Internetove zdroje: NIST DADS, ACM Collected Algorithms a CS papery (na netu jich najdes mraky, jen vedet kde - napr. arXiv.org, DSPACE.MIT.EDU aj.).

Enjoy.
29.7.2010 00:16 ulysses
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
PS: dej bacha, at se z tech vsech paperu neposeres jako ja. Travim na tom skoro veskerej svuj volnej cas a skutecne programovani jaksi posledni dobou slo stranou. ;)
28.7.2010 08:49 mimi.vx | skóre: 37 | blog: Mimi.VX | Praha
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
jde , a bez broblemu
USE="-gnome -kde";turris
27.7.2010 18:25 ::: | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
regarding awk, sed - podle me je lepsi se na tyhle pidi nastroje vykaslat a hned se naucit perl. jednoduchy veci v nem udelas uplne stejne jednoduse a kdyz pak potrebujes neco slozitejsiho tak nemusis stracet cas ucenim se dalsiho nastroje...
27.7.2010 19:59 P.
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Znalost SED+AWK+textutils jde ruku v ruce se znalosti BASH.
29.7.2010 00:29 ulysses
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Na jednoduche parsovani textu pouzij/se nauc zatracene dobre standardni unixove nastroje (sh, ed, sed, awk, grep, tr atd...). Uc se unix postupne praci, nikoli sprtanim parametru. Existuji manualove stranky, Google a IRC!

Na slozitejsi parsovani textu rozhodne vyuzij Perl, ale dodrzuj zvyklosti a stabni kulturu (popr., kdyz bude nejhur, tak existuje neco jako PerlTidy).

Na nizkourovnove veci rozhodne ANSI C (ANSI! Ne K&R, ne "buhvijaky nestandardni C", ale ANSI C). Dodrzuj kernelovskou stabni kulturu, je vcelku rozumna.

Jestli se chces zabyvat CS (Computer Science), tak se nauc LISP anebo Scheme (viz SICP), popr. Haskell. Prozijes mnoho bezesnych noci v cestovatelske horecce. :)

Slozitejsi projekty, ktere nevyzaduji C se docela dobre pisi v Perlu (i kdyz napsat si to od piky v ANSI C je taky fajn).

Upozornuju te, ze mas ale cas vymezeny jen a pouze delkou trvani tveho zivota. Snaz se byt peclivy programator, ne perfektni. Snaz se vyhnout vecem jako jsou memory-leaky a podobne. Nesnaz se nikdy hledat "idealni" datovou strukturu apod, protoze "premature optimization is the root of all evil!" Cti dokumentaci, pouzivej standardni knihovny, udrzuj kod portabilni atd. Dokonalej programator z tebe nikdy nebude. I ti nejvetsi geniove delaji v programech chyby (casem najdes papery, kde je presne popsano proc to tak je). VZDY DODRZUJ STANDARDY anebo programuj pod Plan 9. :)
Chytrex avatar 29.7.2010 17:30 Chytrex | skóre: 30 | Bohumín
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
+1
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..
27.7.2010 15:39 R
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin
Dobre je vediet nejaky skriptovaci jazyk (PHP, Python...) a nejaky skutocny programovaci (C, C++).
Heron avatar 27.7.2010 15:56 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin

Na tohle jsou IMHO nejlepší VŠ skripta z fakulty matematické informatiky. Algoritmická matematika, algoritmy a datové struktury a podobná témata. Je dobré si napsat (v nějakém hodně low level jazyku) seznamy a stromy různých typů a k nim všechny operace (asi nejlepší způsob na zažití pointerů (směrníků, ukazatelů) a práci s pamětí). Určitě hash tabulky a řadící algoritmy pro čísla i řetězce. Určitě vlákna a komunikaci mezi procesy. Zkrátka všechno to, co už bylo známo někdy v 70 letech. To jsou nutné základy.

Ne, že by to pak člověk v praxi běžně programoval, to opravdu ne, ale když pak ví jak to funguje uvnitř, tak umí použít vhodnou knihovní funkci správným způsobem (tj ví, co je k čemu vhodné). A je schopný si tu knihovní fci napsat či přizpůsobit svým potřebám.

Heron
27.7.2010 16:04 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Moc děkuju. Ta skripta si pořídím a pokusím si je nastudovat.

Jaké minimum znalostí (vzdělání) je nutnou podmínkou pro učení se z těchto skript?

Heron avatar 27.7.2010 16:15 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Střední škola. Průmyslovák už něco z toho zná.

Hmm, zkusil jsem pohledat něco ke stažení v PDF, ale nedaří se.

Heron avatar 27.7.2010 16:24 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
http://www.inf.upol.cz/download/study/materials/Z%C3%A1kladn%C3%AD%20Algoritmy.pdf

Je to ale bída :-(, Večerka má 10x kvalitnější skripta.

http://www.fit.vutbr.cz/study/courses/TIN/public/Texty/oporaTIN.pdf

27.7.2010 16:39 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Ještě jednou díky.

27.7.2010 16:40 CEST
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
No, hlavne ve skriptech a v knizkach budou pravdepodobne jenom ty idealni algoritmy. Kdyz se pak ale zacne skutecne programovat, tak se zjisti, ze ty algoritmy jsou sice presne a funkcni, ale bohuzel taky dost pomale. A pak je nutny zacit premyslet a taky vyuzit ruzne matematicke vedomosti a zjistit, kde se pripadne da vypocet zjednodusit nebo vypustit a nebo prepsat pomoci celociselne aritmetiky nebo pouze bitovymi operacemi. A to uz se nejlip studuje ze zdrojaku druhych, pokud zdrojaky k dispozici jsou.
27.7.2010 17:00 Vskutečnosti Saýc | skóre: 7
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Nooooo. Ne tak uplne. Rozhodne bych nikomu nedoporucil zkouset optimalizovat ceckovy kod bez toho, aby si napred precetl tohle: http://www.fefe.de/know-your-compiler.pdf protoze kod ktery nekdo zkousel optimalizovat byva casto o mnoho pomalejsi a necitelny. Jinak ej to pochopitelne neco jineho, kdyz nekdo dela kryptoakcelerator v FPGA, ale o tehle urovni se snad nebavime.

27.7.2010 23:21 al-Quaknaa | skóre: 13 | blog: al_quaknaa
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Já bych doporučil skripta z MFF - ADS1 a ADS2. Nálepky "MFF" bych se nebál, myslím, že jsou skripta zpracována velmi přístupně :)

28.7.2010 14:23 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Já bych zase doporučil Introduction to Algorithms. ADS1 i ADS2 jsou na této knize založené a kniha samotná mi připadala ještě mnohem přístupnější než zmíněné přednášky. Je to ucelený průvodce většinou toho, co člověk při běžném userspace programování může potkat. Zároveň to není tak obsáhlé a zdlouhavé jako Knuth. Je tam úvodní část se značením a se všemi potřebnými základními znalostmi. Řekl bych, že české středoškolské vzdělání pro nastudování algoritmů z této knihy stačí. (Sám ale takovou zkušenost nemám, protože jsem ji četl až na MFF.)

28.7.2010 17:55 Martin Mareš
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Alespoň ta přednáška z ADS1/2, o které tu byla řeč, na Introduction to Algorithms ani moc založená nebyla. Ono je to dílo sice monumentální, ale psané tak rozvleklým způsobem, že bych to podle něj přednášel ještě dneska :-)

To už spíš doporučuji knižku Dasgupta, Papadimitriou, Vazirani: Algorithms (odkaz viz zmíněný web ADS1/2, je dostupná i online).
28.7.2010 22:36 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Ten způsob se mi zdál rozvleklý možná v 1. ročníku navazujícího magisterského studia. To ale bude tím, kolik diskrétní matematiky a algebry už člověk tou dobou zná. Řekl bych, že někomu bez informatického vzdělání, kdo se potřebuje jenom občas něco dozvědět o jednom konkrétním algoritmu, může (zdánlivě) rozvleklý styl výkladu hodně pomoct.

29.7.2010 10:54 Martin Mareš
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
To asi ano. Ale pokud se někdo chce naučit "informatickému myšlení" a umět navrhovat vlastní algoritmy, je takový styl výkladu dost zabijácký.
27.7.2010 16:57 Vskutečnosti Saýc | skóre: 7
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Muzu doporucit i podivat se na iTunesU -- daji se tam stahnout prednasky algoritmu z MIT, a i kdyz to zacina teorii (O notace a tak), je to zajimave. A s tim co rika ten profesor na zacatku, ze "pokud chcete byt dobrym programatorem, muzete budto deset let denne programovat, nebo rok denne programovat a udelat kurz algoritmu na univerzite" zcela souhlasim. Cesky se daji sehnat aji skripta k predmetu DSA (datove struktury a algoritmy) z elektrofakulty CVUT (jmenuji se tusim "programovaci techniky"), nebo ekvivalenty z jinych univerzit.

Dalsim krokem je logika, grafy, automaty a gramatiky, ale to uz jsou drsnejsi veci. Je to ale dulezita teorie (kazdy TCP spojeni je komunikace automatu, kazda GPSka a idos pouziva grafy, kazdej predkladac pracuje s nejakou gramatikou, a tak).

27.7.2010 16:58 Vskutečnosti Saýc | skóre: 7
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

A kupodivu jsem nenasel videoprednasky z teorie grafu nebo prekladacu, skoda, chtel jsem si to zopakovat.

anyone avatar 28.7.2010 10:15 anyone | skóre: 1 | Červený Kostelec
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Přednášky z teoretické informatiky na FEL ČVUT jsou na

http://www.civ.cvut.cz/info/info.php?&did=591
27.7.2010 17:19 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Díky. Právě ČVUT mě napadlo z pohledu skript (učebnic) jako první. Ty anglické materiály se taky budou hodit.

27.7.2010 19:22 ...............23 | skóre: 15 | blog: Various Stuff blog
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
MIT kopu svojích prednášok uploaduje rovno na YouTube, napríklad túto z Introduction to Algorithms
27.7.2010 17:06 Vskutečnosti Saýc | skóre: 7
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

A jeste bych nakoukl sem: http://cw.felk.cvut.cz/doku.php/courses/a4b33alg/literatura_odkazy je tam prehled knizek z oblasti algoritmu vcetne popisu na co se ktera hodi a podobne. Da se tam taky snadno doklikat k prednaskam, ale nejsem presvedcen ze k primarnimu pochopeni latky ti k necemu budou.

27.7.2010 16:17 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin
Kvůli podobným potřebám vznikl Perl. Na práci se strukturovanými textovými soubory neznám nic lepšího, osobně ho používám téměř na jakékoliv skriptováním spolu s bashem.
Jardík avatar 27.7.2010 16:48 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Perl vznikl kvůli potřebě dalších závislostí a rozesral se do všeho možného, dneska bez něj ani nezkompilujete základ GNU/Linuxu.
Věřím v jednoho Boha.
Jakub Lucký avatar 27.7.2010 19:59 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Jo... A co teprve takové make...
If you understand, things are just as they are; if you do not understand, things are just as they are.
Jardík avatar 27.7.2010 21:14 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Tak make zrovna moc závislostí nemá a je to pidi program...
Věřím v jednoho Boha.
Jakub Lucký avatar 27.7.2010 21:38 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Ale skoro všichni na něm závisí... Jako na Perlu...
If you understand, things are just as they are; if you do not understand, things are just as they are.
27.7.2010 16:21 Filip
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin
Kombinace Pythonu a C se mi zdá na (moje) běžné činnosti nejvhodnější. V Pythonu jde snadno dělat věci od jednoduchého filtru na text přes různé grafické utility až například po program matematicky zpracovávající a zobrazující signál z osciloskopu. C pak využívám na úlohy, co musí běhat rychle a na programování mikrokontrolerů. Zároveň jsou to jazyky velmi rozšířené a s trochou dodatečné péče s nimi lze tvořit multiplatformní a docela nenáročné aplikace.
27.7.2010 16:36 CEST
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
"V Pythonu jde snadno dělat věci od jednoduchého filtru na text"

Pokud bys tuhle diskuzi jeste cetl, napis sem prosim alternativu ke tail -F /var/log/apache2/access.log | grep -i 'get /mainpage'. Diky. Fakt by me zajimalo, jak se to da udelat v pythonu. Perl by byl tail -F /var/log/apache2/access.log | perl -ne 'print if m,get /mainpage,i;'.
Jardík avatar 27.7.2010 16:53 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Nejdříve chceš alternativu k tail -F /var/log/apache2/access.log | grep -i 'get /mainpage' a pak ti najednou stačí alternativa k grep -i 'get /mainpage'?
Věřím v jednoho Boha.
27.7.2010 18:08 CEST
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Reagujes opravdu muj zapisek nebo jsi nekde spatne kliknul na "Odpovedet"?

Proste chtel bych videt, jak se v pythonu udela jednoduchej textovej filter ve stylu program | grep ..., podobne jako by se to v perlu udelalu program | perl -e '...'.
27.7.2010 18:50 Radek Novacek | skóre: 3
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Treba takhle?
import sys

for line in sys.stdin.readlines():
    if sys.argv[1] in line:
        print line.rstrip("\n")
27.7.2010 19:08 CEST
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Jo, presne, a ted to zapis v cmdline, podobne jako PROGRAM-GENERUJE-OUTPUT | perl -ne 'print if m,hledany regexp,i;' | PROGRAM-ZPRACOVAVA-INPUT

Jde tenhle tvuj kod prepsat do nejakeho tvaru jako PROGRAM-GENERUJE-OUTPUT | python -e 'import sys\nfor line .....' | PROGRAM-ZPRACOVAVA-INPUT ???

Jde mi o to, jestli se python da opravdu pouzivat jako jednoduchy cmdline filtr textu nebo se musi psat script do vlastniho souboru. S perlem a dalsima cmdline utilitama totiz muzu napsat jeden bash script, kterej pak bude obsahovat treba i nekolik perl skriptu:
#!/bin/bash

PROGRAM-GENERUJE-OUTPUT \
| grep NECO \
| sed NECO \
| perl -ne '
    ZPRACUJE NECO SLOZITEJSIHO;
    dalsi command;
    dalsi command;
    stale je to prehledny perl kod;
  ' \
| grep DALSI-NECO \
| awk 'NECO-V-AWKU' \
| perl -ne '
    druhy slozity perl kod;
    ale porad prehledny;
  '
Jasne, kdyz uz je to jeden bash script, tak by se misto toho dal napsat jeden python script, kterej vsechny ty grepy, sedy, awky a perly nahradit, ale proc nahrazovat grep -i X nejakym slozitym cyklem s vytvarenim objektu regexp, kdyz to grep umi sam jednoduse.

Navic mne opravdu spis zajima ta pouzitelnost na cmdline.
27.7.2010 20:03 Radek Novacek | skóre: 3
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Tak jsem si to vyzkoušel a není to nic moc. Jednoduchý věci se dají udělat, např:
cat soubor | python -c 'import sys; print "".join([line for line in sys.stdin.readlines() if sys.argv[1] in line])' text
Složitější věci jsou už horší. Cyklus už se těžko píše na jeden řádek (nesmí být před ním příkaz končící středníkem - nevím proč) a musí se odsazovat...
27.7.2010 22:14 CEST
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Takze pyhon umi -c pro zadani kodu na cmdline, jak vidim. Ale s temi bloky to bude opravdu dost spatne, kdyz se jinak nez odsazovanim udelat nedaji. To do jedny cmdline asi zapsat nepujde. A proto preferuju perl.
David Šmíd avatar 28.7.2010 07:39 David Šmíd | skóre: 10 | blog: dsmid
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
A proč to chceš do jednoho řádku ? Vadí tenhle zápis něčemu ?
cat soubor | python -c '
import sys

for line in sys.stdin.readlines():
    if sys.argv[1] in line:
        print line.rstrip("\n")
' text


Jediné "intuitivní" rozhraní je bradavka. Všechno ostatní se musíte naučit. -- Bruce Ediger, o uživatelském rozhraní
28.7.2010 16:10 CEST
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Samozrejme, tenhle zapis nicemu a snad ani nikomu nevadi a vadit nemuze:-) Ve skriptu by to vlastne takhle resit slo, to je pravda. Nicmene v na cmdline bych radsi jednoradkovy zapis. Ikdyz ono se to da taky editovat v pohode, a pri pouziti fc v bashi se to muze krasne editovat jako script.
28.7.2010 10:16 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Takze pyhon umi -c pro zadani kodu na cmdline, jak vidim. Ale s temi bloky to bude opravdu dost spatne, kdyz se jinak nez odsazovanim udelat nedaji. To do jedny cmdline asi zapsat nepujde. A proto preferuju perl.
cat soubor | python -c 'import sys; print("".join(l for l in sys.stdin if sys.argv[1] in l))' text
On na tom ten Python na tom od verze 2.5 není nijak špatně. Viz třeba moje reimplementace vítěze čtvrté kategorie z The Fifth Obfuscated Perl Contest v Pythonu. Celý kód od print až poslední závorku je v podstatě jeden řádek.
When your hammer is C++, everything begins to look like a thumb.
28.7.2010 15:12 CEST
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Chapu to teda dobre, ze python sice na jednu cmdline pomoci -c zapisu, ale nejaky vetsi struktury tam nenacpu? Neco jako for ($i=0;$i<10;$i++) { if ($i>7) { DELEJ1; } elsif ($i>5) { DELEJ2; } else { DELEJ3; }; };? Je to opravdu tak, ze python umi na cmdline vykonat pouze jeden prikaz (ikdyz muze byt slozitejsi)?

Jinak ten zapis l for l in sys.stdin if sys.argv[1] in l se mi dost libi:-)
28.7.2010 16:13 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Ne, jak bylo řečeno, za -c může následovat libovolný řetězec včetně odsazení. Ale to asi není moc praktický zápis.

V zásadě lze v Pythonu řetězit výrazy za sebe, cykly se dají nahradit stručnými seznamy, nebo generátorovými výrazy, funkce je také možné psát na jeden řádek a tu hromadu else-if jde nahradit za několik vnořených ternárních operátorů. Ale Python je na psaní one linerů tak šíleně nepraktický jazyk, že se to nehodí na nic jiného, než na programátorské hraní. A Perlí ekvivalent bude pětkrát kratší a dost možná, že i čitelnější.
When your hammer is C++, everything begins to look like a thumb.
27.7.2010 19:36 kolcon | skóre: 15 | blog: kolcon
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

ja nevim, mne ten python prijde proste divny, necitelny... kdyz vidim zdrojak, spolehlive

me to odradi to cist... navic ta vec "formatovani mezerami" mi prijde uchylna...

zlaty perl (kdyz se napise citelne)

27.7.2010 20:12 Radek Novacek | skóre: 3
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Mně právě přijde mnohem čitelnější než ostatní jazyky. Třeba ten kód v perlu o par komentářů výše:
print if m,get /mainpage,i;
Jak pozná někdo, kdo s perlem nedělá, co to má dělat?
Python, když se nepoužívají extra finesy, je čitelnější, protože je víc ukecaný...
Jakub Lucký avatar 27.7.2010 21:41 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Na velké aplikace je určitě v tomhle Perl nepraktický... Ale jako nepřenášená efektivní náhrada shellu si myslím že je právě proti Pythonu zlatý, protože prostě "There are many ways to do it" a některé i za cenu čitelnosti (ale tu na jednorázovou konverzi nepotřebuju) ultra-krátké a efektivní...
If you understand, things are just as they are; if you do not understand, things are just as they are.
28.7.2010 06:47 CEST
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Souhlasim, ale i na velke veci se da perl pouzit. Perl ma moduly, takze lze kod logicky delit na casti. Perl emuluje objekty (stejne jako vetsina dalsich jazyku), takze jde delat i vetsi objektove programovane projekty. V perlu lze pouzit min. perl-tk, takze lze psat i GUI aplikace. Ja ale samozrejme pouzivam perl taky primarne jako filtr, obcas jako slozitejsi filtr. Na GUI bych pouzil spis Javu kvuli prenositelnosti.

A mimochodem, spravne je to TIMTOWTDI - There Is More Than One Way To Do It:-)
28.7.2010 06:42 CEST
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Tak samozrejme, kdyz nekdo nebude delat s pythonem, tak taky nepozna, co ten kod dela. Pokud ma clovek trosku o programovani prehled, tak pozna oboje.

Tak ten kod print if m,get /mainpage,i; je jenom kratsi a jednodussi prepis if (/get \/mainpage/) { print $_; }. Potom je vsechno jasne, print a if bez reci, a slash znamena regexp. Jinak struktura toho prvniho zapisu presne vyjadruje myslenku "tiskni kdyz najdes regular" = print if /.../.

Naopak tvuj kod, jestli se nepletu, protoze python opravdu neznam tak moc, odstranuje enter z kazde radky, bych v perlu napsal jednoduse perl -pe 'chomp;'. A ted by mel nekdo nezavisly urcit, co je citelnejsi.

Ukecanost nemusi vzdy prinaset citelnost. Misto aby clovek videl v kodu ten dulezity prikaz, tak je okolo spousta balastu, napr. v tom tvem kodu ten import sys je tam opravdu hodne navic ve smyslu, ze pozadovanou funkci nema nic spolecneho, neni to prikaz, ktery by skutecne neco zpracovaval, ale pouze zapina nejakou funkcionalitu. Kdyz na kod bude koukat neznaly, tak bude premyslet, co tam ten import dela.

Libi se mi, ze python vynucuje formatovani tim, ze bloky rozeznava podle odsazeni. To je urcite skvela myslenka, protoze neformatovanej kod je necitelnej, ikdyby byl napsanej v super jednoduchym jazyku. Bohuzel s tim odsazovanim to python nedomyslel, pokud nekdo zmixuje taby a space, tak se tezko hleda chyba v odsazeni, protoze dve radky muzou byt odsazene vizualne stejne, ale kazda pomoci ruzneho poctu mezer a tabu. Pak kompiler nemusi ani hodit chybu, ale program proste nefunguje, jak by mel.
28.7.2010 13:22 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Bohuzel s tim odsazovanim to python nedomyslel, pokud nekdo zmixuje taby a space, tak se tezko hleda chyba v odsazeni, protoze dve radky muzou byt odsazene vizualne stejne, ale kazda pomoci ruzneho poctu mezer a tabu. Pak kompiler nemusi ani hodit chybu, ale program proste nefunguje, jak by mel.
Python bere tab == 8 mezer, takže tento kód
def foo():$
        i = 42$
^Ireturn i$
$
print foo()$
je syntakticky v pořádku. Samozřejmě tohle nefunguje, pokud má někdo v editoru nastavené jiné tabstop.
When your hammer is C++, everything begins to look like a thumb.
28.7.2010 11:17 Martin Mareš
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Podle stejné logiky byste zavrhl angličtinu proto, že když ji neznáte, tak nevíte, co anglická věta znamená :-)
Marek Bernát avatar 29.7.2010 21:23 Marek Bernát | skóre: 17 | blog: Arcadia
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Pekný pokus o vtip, ale programovacie jazyky a reálne jazyky sú, čo sa syntaktickej a sémantickej komplexity týka, úplne inde, takže tá analógia bohužiaľ nefunguje. Otázka je, do ktorej z tých kategórií patrí Perl :-)

physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
28.7.2010 06:51 CEST
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Aha, tys me spatne pochopil. Ano, chci nahradit pouze ten grep, ale chtel bych videt celej napsanej celej ten prikaz tail | python. Abych proste videl, jak do pythonu neco pustit pres pipe.
27.7.2010 16:44 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin

Co má programování textových filtrů společného s kernelem???

27.7.2010 17:15 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

No... Pramálo. :-)

Jardík avatar 27.7.2010 16:50 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin
Nauč se assembler, ten se hodí vždy.
Věřím v jednoho Boha.
27.7.2010 17:02 Vskutečnosti Saýc | skóre: 7
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Assembler mu bude k nicemu bez znalosti organizace dat (primy kod, doplnkovy kod, atd), bez toho aby vedel jak funguji jednotlive casti procesoru a bez toho aby rozumel pipeliningu, VLIW a podobnejm vecem. Coz jsou tak tri semestry VS studia.

No, prehanim, na jednocipy mu to staci, ale pro programovani na i386 nic moc.

27.7.2010 17:22 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Díky za tip. Pokud ale dobře rozumím, tak aby člověk mohl pracovat v assembleru, tak musí znát, jak funguje "železo", což moc nevím.

27.7.2010 18:35 ::: | skóre: 14 | blog: e_lama
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
jardika neposlouchej, ten ma iq tyqe...

problem s asm je ze je prakticky u kazdyho procesoru jinej... Takze pri programovani v asm bys stravil vetsinu casu neustalym prepisovanim jednoho programu...

ucit se asm ma smysl jenom v hodne specifickejch situacich - kdyz programujes backend prekladace, nebo kdyz programujes nejakej jednoduchej jednocip (ale i tam bych pouzil C pokud je to aspon trochu mozny...)
Grunt avatar 28.7.2010 11:57 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
+1.

Céčko a Assembler a všechnu tu omáčku mezi tím.

Jinak na ten Linux by mohly stačit nějaké základy Céčka a nějaká knížka o tom jak to v jádře funguje (třeba od Luka).
Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
27.7.2010 16:57 krotitelODS
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin
po mnozstvi nesmyslnych blogu z posledni doby jsem s nadeji otevrel tento ....
27.7.2010 17:13 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
No jak vidíte, jde to i bez toho vašeho :-)
27.7.2010 17:32 lok
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
... a rekl jsem si, ze pod nej musim napsat hodnotny komentar. :-)
27.7.2010 18:48 krotitelODS
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
... ale pak jsem si uvedomil, ze to za me urcite nekdo prevezme ...
27.7.2010 20:14 lok
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Dobry :-) Proc ne, uznavam, ze me prispevky pod tvymi asi nikdy nebyly hodnotne. Asi to bude tim, na co reaguji. :)
27.7.2010 17:26 Vskutečnosti Saýc | skóre: 7
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin

Jinak co se tyka tech algoritmu. Dulezita vec je, ze nejlepsi algoritmus neexistuje. Existuji algoritmy vic a min vhodne na nejaky problem. Proto se jich uci tolik.

Nekdy je od toho programator uplne odstinen (treba v ruby nebo pythonu), nekdy tak napul (u Javy budu rozhodovat, jestli muj seznam je pole nebo spojovy seznam, nebo jestli mnozina je strom nebo hashtabulka), nekdy to musi clovek skoro psat sam (v C, treba), ale casto to byva dulezite.

27.7.2010 19:29 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin
Přečetl jsem dost diskusí/dotazů a na práci s prostým textem to hodně lidí vidí na Python nebo Perl.

Perl je na to pravděpodobně lepší, ale oboje bude fungovat.
tedy např. se aspoň trochu orientovat v Linuxu (mám na mysli Linux jako jádro).
Kupte si knihu např. Understanding the Linux Kernel, Second Edition
Vlastně bych se chtěl zeptat, jak získat algoritmus... Ptám se proto, že nejvíc asi budu žít z algoritmů, které vymysleli "chytřejší" lidé-programátoři.

Stáhnete nebo koupíte si modul (knihovnu, kus přepoužitelného programu) a přečtete si dokumentaci jak to použít. Například pro jazyk Perl existuje spousta takových modulů na síti CPAN.
V podstatě všude je zdůrazňováno, že programovací jazyk se vybírá podle toho, co s ním chceme naprogramovat -- na co ho chceme použít.

To jistě, ale ve výsledku můžete použít všechno na všechno. Doporučuji se nejprve důkladně seznámit s jedním jazykem/prostředím a na tom pak stavět další znalosti.
In Ada the typical infinite loop would normally be terminated by detonation.
27.7.2010 20:18 P.
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin
Taky je potřeba zohlednit uplatnitelnost jazyka na trhu práce. U C/C++ je výborná, stejně jako u Javy. U Pythonu a Perlu je poptávka výrazně menší. BASH se vyžaduje všude, kde je UNIX (pokud někde požadují "základy Linux", myslí tím základy programování v shellu).
28.7.2010 12:04 Pavel
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
ABAP, mrknete na platy ABAPistu :) ne ze to ted vsichni pujdete delat!!!!
28.7.2010 13:24 P.
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Co je na ABAPu tak drahe? Ze ho umi malo lidi nebo co? Pritom dle syntaxe je to stupid jazyk...
28.7.2010 15:08 krotitelODS
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
problem je dostat se k prvnim projektum, ale jinak je to samozrejme silene nadhodnocene. Zrovna tak, jako ODS, Klaus, Slavie, matfyz, dalnice ...
28.7.2010 15:36 Pavel
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Malo lidi, typ projektu, kde se SAP pouziva, nestaci JEN znalost ABAPu, mel bys znal cely ekosystem SAPu... +ten jazyk je dost balast, takze se v nem zrovna moc dobre nedela a spoustu lidi odradi
Rezza avatar 28.7.2010 14:02 Rezza | skóre: 25 | blog: rezza | Brno
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
U nas se Pythonistum trhaji rucicky ;-)
28.7.2010 14:29 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Kvůli Anakondě? ;-)
When your hammer is C++, everything begins to look like a thumb.
28.7.2010 14:45 kolcon | skóre: 15 | blog: kolcon
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

to neni spatny napad, cim min rucicek, ti min kodu v pythonu :D

28.7.2010 15:18 P.
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
tady v praglu po pythonu chcipl pes
28.7.2010 12:54 Trained.Monkey | skóre: 12 | blog: monkey
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin
Na skoly v cechach se vykasli. Najdi si nejake pohodlne misto, tam se zasij a studuj a studuj. Za rok/dva bude nekde uplne jinde.
28.7.2010 14:11 Tomáš
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin
Nauč se SQL. Ten má v principu jenom tři příkazy: select, update, delete

Dá se s tím uživit :-) a to je hlavní.
28.7.2010 14:45 kolcon | skóre: 15 | blog: kolcon
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

insert by se taky hodil, ne? ;)

28.7.2010 15:02 krotitelODS
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
insert je az od senior database specialist, pro junior si vystaci s tema trema, jak psal kolega.
28.7.2010 16:04 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Copak insert! Ale co takové jmelí^Wview, nebo index.
When your hammer is C++, everything begins to look like a thumb.
28.7.2010 16:09 s0 | skóre: 32 | blog: nejchytřejší kecy | prágl
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
to už je podle výše uvedené logiky práce "enterprise solution architecta", ne?
Kuolema Kaikille (Paitsi Meille).
28.7.2010 22:04 pozortucnak | skóre: 21 | blog: vecny_windowsar
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Odpovědět | Sbalit | Link | Blokovat | Admin
Já bych rád nějak proniknul do funkcionálního programování... Všude píšou že funkcionál programování je o funkcích ale jak v těch funkcích myslet/uvažovat? Jednoduchý příklad - textový editor nebo datová struktura, například lineární spojový seznam - jak by se to dalo napsat např v Haskell?

Si prostě nějak nedokážu přestavit programování bez klasických (měných) proměnných...

Jinak k Perlu a k Pythonu - jak je to s kompatibilitou Python 3 / Python 2.6? Jak je to s kompatibilitou Perl 6 / Perl?
Jsem mimořádně obtížný případ
28.7.2010 22:26 Někdo jiný | skóre: 18 | blog: Někde jinde
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Zrovna ten seznam je pro Haskell trochu špatný příklad, protože to je jedna ze základních struktur. Nějaké příklady se dají najít třeba v tomto návodu, například RPN kalkulačka. Další úžasný zdroj (i s příklady) je Real World Haskell.

Na první pohled (dobře, asi i na druhý) to vypadá dost děsivě, ale když se člověk nelekne a neuteče, tak to začne dávat smysl :)
29.7.2010 00:44 ulysses
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
Potrebujes pochopit, co je vubec program. Precti si SICP. Odpoved na tvoji otazku je tam jako nikde jinde (IMHO).
29.7.2010 00:45 ulysses
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním
BTW: ve funkcich vlastne myslis celej zivot, jen o tom jeste nevis. :)
Marek Bernát avatar 29.7.2010 21:30 Marek Bernát | skóre: 17 | blog: Arcadia
Rozbalit Rozbalit vše Re: Zamyšlení nad vzděláním a programováním

Stačí po dobu jedného roku každé ráno pri úsvite slnka odriekavať axiómy lambda kalkulu (stačí toho pôvodného od Churcha). Potom sa dostaví osvietenie a budeš všade okolo seba vidieť už len funkcie :-)

physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.