Hlavní navigace

Vlákno názorů k článku Parser bankovních výpisů aneb hrátky s Ragel od VM - Poustet s nazvem vstupniho souboru jako s parametrem: #!/usr/bin/perl...

  • Článek je starý, nové názory již nelze přidávat.
  • 15. 2. 2008 16:31

    VM (neregistrovaný)
    Poustet s nazvem vstupniho souboru jako s parametrem:
    #!/usr/bin/perl -w
    
    my $row;
    do { $row=<> } while $row !~ /^\s*$/;
    $row=<>;
    my @headers=map {$_=~/^"(.+)"$/ ? $1:$_} split ',',$row;
    while( $row=<> )
    {
        my @data=map {$_=~/^"(.+)"$/ ? $1:$_} split ',',$row;
        printf "%s\n", join ', ', (map {"'".$headers[$_]."' => '".$data[$_]."'"} (0..@data-2));
    }
    
  • 15. 2. 2008 16:56

    bez přezdívky
    LOL

    No to je úžasné, a ten Perlový zdroják je dokonce už rovnou i zašifrovaný! :-)

    Pánové (a dámy tedy samozřejmě též), tak kdo z vás to napíše první jako one-liner?

    Ale vážně: ne, v tom projektu opravdu nebylo cílem naparsovat jenom ten uvedený formát, jenom do řetězců a už s tím dál nic nedělat.
  • 15. 2. 2008 17:17

    VM (neregistrovaný)
    V tom pripade jsem se v tom trosku ztratil - prozradte mi, co ten vas program dela navic? Priznavam se, ze Ruby neumim, a ze takovyhle kousek Perlu je pro me daleko srozumitelnejsi.
  • 15. 2. 2008 18:07

    bez přezdívky
    Nic ve zlém, jen mi přišlo usměvný, že se spousta diskutujících snaží najít různá řešení jednodušší, kratší nebo taková, aby se vyhnula použití KA. Ale ten článek opravdu nebyl míněn jako soutěž v programování, ani jako snaha o nalezení co nejstručnějšího algoritmu pro daný konkrétní případ.

    A v čem se náš přístup liší? Pokud ze sebe vydoluju ještě nějaké zbytky znalostí Perlu (teď za to neručím, s Perlem jsem už pár let nedělal), tak mám pocit, že přeskakujete tu první část souboru a parsujete jen tu druhou. Nicméně hlavní rozdíl vidím v tom, že pokud budu mít se současným řešením výkonnostní problém nebo budu chtít rozšířit třídu parsovaných souborů, tak s Ragelem se mi zdá flexibilnější pro nějaké řešení - ale berte to jako IMHO.

    Doufám, že mi odpustíte to rýpnutí do Perlu, ale s Perlem mám vždy trochu pocit, že zdroják je buď zašifrovaný nebo alespoň prohnaný přes nějaký "obfuscator". Ale jistě, kdo s ním víc dělá, většinou nemá problém.
  • 15. 2. 2008 19:54

    VM (neregistrovaný)
    Porad v tom zadne vyhody nevidim - misto par radku to je nekolik stranek, ktere delaji prakticky to same (ano, prvni cast jsem preskocil, ale jeji parsovani by byl jeden radek navic). Navic to reseni v Ruby potrebuje knihovnu, kdezto to perlove si vystaci se zakladnimi jazykovymi konstrukcemi - tim padem odpada potreba knihovnu mit, inicializovat atd.

    Vykonnostni problemy by se u toho perloveho moc vyskytovat nemely - Perl je na podobne zpracovani optimalizovany, a dosahuje u podobnych uloh vykonu srovnatelneho s programy psanymi v C. Pokud si dobre pamatuju, tak Pavel Satrapa tohle meril, a zjistil, ze napriklad pri grepovani v textu Perl dokonce prekona specializovany program grep. Jinak ma kod linearni slozitost, jedine neefektivity ktere vidim jsou odstranovani uvozovek pomoci regularniho vyrazu, a to, ze se parsovana data prochazeji dvakrat (stipani podle carek, a odstranovani uvozovek), i kdyz by je teoreticky stacilo projit jednou. Takze pocitam, ze reseni vykonnostnich problemu u zmineneho programu v Ruby bude o priblizovani se k vykonu toho perloveho. No ale proc to nenapsat rovnou optimalne, zvlast kdyz je to tak jeste kratsi...

    No a pokud budete chtit rozsirit tridu parsovanych souboru, je to v obou pripadech na predelani programu. Tohle parsuje cokoliv typu <smeti> <prazdny radek> <seznam hlavicek> <csv data>, kdyz z toho budete chtit udelat napriklad parser CSV obsazeneho v XML, tak musite jeste pouzit prislusnou XML knihovnu...

    Co se te prehlednosti tyce - dobre, regularni vyrazy byvaji celkem neprehledne, ale ve slozitych konstrukcich na mnoho radek se clovek ztrati taky spolehlive.

    No dobre, asi to kazdy bereme jinak. Jen se marne snazim pochopit duvody, proc takovehle reseni muze nekomu pripadat lepsi...
  • 16. 2. 2008 3:29

    Rejpal (neregistrovaný)
    "Navic to reseni v Ruby potrebuje knihovnu, kdezto to perlove si vystaci se zakladnimi jazykovymi konstrukcemi - tim padem odpada potreba knihovnu mit, inicializovat atd."
    To bude nějaký omyl, to řešení žádnou knihovnu nepoužívá - tedy pokud pomineme skutečnost, že se samo do knihovny dá zabalit. Ragel není knihovna, aby nedošlo k mýlce. :-)
  • 15. 2. 2008 18:52

    bez přezdívky
    PERL je zvláštní. Vždycky si říkám, jestli se autorovi kódu zasekl shift. Zápis je sice úsporný, ale k čemu to, když je nečitelný? Když jsem psal v PERLu, za měsíc jsem musel horko těžko luštit, co jsem vlastně napsal. Samozřejmě nic proti vkusu jeho uživatelů. Kdybych celý život používal vi a mastil regexpy, možná by i mě PERL přišel intuitivní.
  • 15. 2. 2008 19:04

    VM (neregistrovaný)
    To ze je zapis usporny je dulezite - nemusite lustit nekolik stranek kodu, staci nekolik radek. Lepe se v tom pak orientuje, i kdyz kazda radka vyzaduje vice pozornosti, a lepe se to i ladi. Ano, regularni vyrazy jsou casto necitelne, ale kdyz to napisete bez nich, tzn. rozepisete do slozitych jazykovych konstrukci, tak je to taky necitelne, a krom toho jeste neefektivni a neprehledne.

    Jinak na problemy jako tenhle je Perl jako delany. Pouzite reseni mi prijde jako kanon na vrabce. Takhle jsem psal, kdyz jsem se ucil programovat.

    Programovaci jazyk jako Perl mi prijde dost intuitivni - na rozdil od tech ukecanych v nem na jednu myslenku nemusim nasat pul stranky kodu.
  • 15. 2. 2008 21:31

    bez přezdívky
    PERL se lépe ladí? No, to bych fakt neřekl.

    Dnes je takový trend mít jazyky ukecané. Je to dobré v tom, že se snáze učí, snáze se kód čte, a celé je to jednodušší. Ten prastarý zvyk z počátků oboru, kdy se každému speciálnímu znaku přiřadil nějaký význam, je za námi. Já říkám naštěstí. Uživatelé unixů to možná nesou nelibě, nevím.

    Regexpy mají při parsování samozřejmě smysl. Nevýhody jsou ale zjevné. Regexp má po čase problémy přečíst i autor, natož kdokoliv jiný. I triviální konstrukce typu /s/\//\\/g je daleko méně čitelná, než s.ReplaceAll("/","\").

    Perl vám může přijít intuitivní, jen pokud jste v něm opravdu zběhlý. Jenže dostatečně zběhnému člověku přijde intuitivní cokoliv, včetně vi.
  • 15. 2. 2008 21:54

    VM (neregistrovaný)
    Opravdu nesouhlasim s tim, ze se ukecanejsi jazyk snaze uci, snaze cte, a ze je to cele jednodussi.
    Za tri roky profesionalniho programovani v Jave jsem spise zjistil, ze v ukecanem jazyku se jednoducha vec zapise do nekolika velkych souboru. Pokud k tomu neni perfektni dokumentace, tak se v tom vubec neda vyznat uz jen kvuli rozsahu vysledneho kodu. Nehlede na to, ze pres ukecane jazykove konstrukce neni videt to podstatne.
  • 16. 2. 2008 0:25

    bez přezdívky
    Já naposledy vážněji psal v Javě před cca 10 lety (tedy nevážně, ono to tehdy moc vážně nešlo), takže dnešní Javu až tolik neposoudím. Faktem ale je, že je důležité kód správně strukturovat, jinak se snižuje přehlednost.

    Vy nevidíte přes ukecaný jazyk podstatné věci, a já nevidím skrz změť !@#$%^&*() znaků, co vlastně kód dělá. Obojí se dá překousnout, ale myslím si, že nečitelný kód musí člověk louskat dlouho a často, než "prohlédne". Můj názor je, že člověk nepostižený historickými jazyky s nimi má větší problém, než opačně.
  • 16. 2. 2008 10:35

    bez přezdívky
    S tím si dovolím nesouhlasit. Je samozřejmě na každém, jaký zvolí prostředek a jak s ním naloží. A je samozřejmě možné, že někdo kód v Javě přetříduje a zbytečně překomplikuje. Nicméně pokud správně zvolí názvy identifikátorů, je kód obyčejně docela srozumitelný i bez dokumentace a tu snad všichni píšeme, nebo ne? Pokud někdo pojmenovává proměnné i, j, k, s a třídy MyClass, je to něco jiného.

    To podstatné samozřejmě vidět je, protože člověk postupuje od celku k detailu a ty detaily jsou podstatné jenom zřídka.
  • 15. 2. 2008 22:14

    Biktop (neregistrovaný)
    > Ten prastarý zvyk z počátků oboru, kdy se každému speciálnímu znaku přiřadil nějaký význam, je za námi. Já říkám naštěstí. Uživatelé unixů to možná nesou nelibě, nevím.

    Ono je dnes třeba rozlišovat programování a programování. Neustále říkám, že dříve vyráběl nábytek jen truhlář. Pak přišla strojní velkovýroba, ale truhlář zůstal. Zůstal tu proto, že to, čím se zabývá on, je přeci jen trochu jiná liga, než ta velkovýroba. A s programováním je to přesně to samé. Naši klienti netvoří tak početnou skupinu, jako u těch druhých, ale vyžadují fajnovou práci a jsou ochotni si za ni náležitě připlatit. Směšovat naše nástroje s těmi určenými pro ty druhé je jako srovnávat počítačem řízené frézy s hoblíkem, cidlinou, rašplí - s tím se každý nenaučí, ale když už se to naučí, tak s tím dokáže to, co ti druzí s těmi svými elektrickými frézami nikdy.
  • 16. 2. 2008 0:44

    bez přezdívky
    To by mě zajímalo, v čem spočívá fajnovost té práce. Je to něco jako restaurování starožitností? S tím se dá srovnat třeba psaní v COBOLu. Ne, teď vážně. Na tomhle světě je třeba psát obrovskou spoustu kódu, abychom uspokojili tu explozi poptávky po službách našeho oboru. Je tedy důležité používat takové jazyky, které se snadno učí, a ve kterých se dá rychle a efektivně tvořit. Podobně dokud počítače používala velmi omezená skupina lidí, nebyl problém je ovládat přes command line. Dnes s počítače pracuje i obsluha ve videopůjčovně, a dokonce nemá na pracovišti žádného admina, takže interface musí vypadat úplně jinak. Podobně s těmi jazyky.

    Na druhé straně PERLu přiznávám, že když už se ho člověk naučí, je to svým způsobem sympatický jazyk, a v některých věcech celkem silný. Bohužel se dnes méně zabýváme posouváním stringů, a více děláme takové ty tanečky okolo objektů, komponent apod.
  • 16. 2. 2008 18:14

    Biktop (neregistrovaný)
    >Je to něco jako restaurování starožitností? S tím se dá srovnat třeba psaní v COBOLu.

    Budete se divit, ale i takové věci. Je tu software, který vznikal poměrně dávno, často běží na hardwaru podobných charakteristik, ale neustále se používá a existuje mnoho důvodů, proč ho zatím používat i nadále. Ale např. takovou atomovou elektrárnu taky neřídí dvoujádrový nabušený procesor, stejně jako raketoplán, jejich řídící software se nepíše v Javě a rozhodně to není z historických důvodů. Příkladů se najde řada.

    > Na tomhle světě je třeba psát obrovskou spoustu kódu, abychom uspokojili tu explozi poptávky po službách našeho oboru. Je tedy důležité používat takové jazyky, které se snadno učí, a ve kterých se dá rychle a efektivně tvořit.

    O tom jsem mluvil - to je ta "sofwarová velkovýroba".

    >nebyl problém je ovládat přes command line. Dnes s počítače pracuje i obsluha ve videopůjčovně, a dokonce nemá na pracovišti žádného admina, takže interface musí vypadat úplně jinak. Podobně s těmi jazyky.

    Jenže jsou oblasti, kde se vystačí s tou command line a raději se budoucí obsluha pošle na důkladné proškolení, než aby se generovaly statisíce řádků kódu potenciálně zatíženého chybou (čím víc kódu, tím víc chyb). A vývoj takového softwaru se obvykle nesvěřuje lidem, kteří mají problémy zvládnout tradiční programovací jazyk. Asi byste nešel na operaci oka, kterou provádí laser řízený programem, který napsal člověk, jenž za uplynulý půlrok zvládnul nějaký ten "moderní" ultra jednoduchý jazyk určený k "ultra efektivnímu" psaní kódu, aniž by měl přehled o tom, co se vlastně pod tou slupkou všechno děje.

    A to je právě ten rozdíl. Mezi spotřebním softwarem a softwarem, na jehož efektivitě a spolehlivosti záleží životy nebo obrovské sumy peněz.
    Proto domnívat se, že zmiňovaným věcem v počítačovém průmyslu odzvonilo, může jen člověk, který o tomto oboru ve skutečnosti nemá přehled. Možná třeba právě taková programátorská rychlokvaška, která se před půlrokem naučila Javu a myslí si o sobě, že se z něj tak stal počítačový expert ;-)
  • 16. 2. 2008 18:46

    tukan (neregistrovaný)
    Musím říct, že s tímhle příspěvkem souhlasím na 1000%, v každém bodě. Jen bych dodal, že rychlokvašky nejsou nutně jen lidi s půlroční zkušeností v Javě. Moje zkušenost je, že u člověka co začal s Javou (neberu Pascal a C ve školách jako programování) a píše v Javě (viz sféra podnikových aplikací a jejich čvičopičí tvůrci) tak půl roku nebo čtyři roky - není v tom rozdíl. Jejich schopnosti začínají a končí u slepování předprogramovaných komponent.
  • 16. 2. 2008 23:30

    bez přezdívky
    Dobře vím, že existují i aplikace v COBOLu. Pár jsme jich migroval do jiného prostředí (typicky .NET). A také vím, že například na space shuttle jsou GPC odvozené od IBM System/360, SW psaný v HAL/S, je tam i veliká spousta PC HW běžího na MS-DOSu atd. Historie je všude kolem nás, proto hovořím o restaurování starožitností. V těchto případech jde zjevně o historické důvody. Údržba je takové věci je dražší, než údržba novějšího kódu, ale na druhé straně levnější, než nahrazení novou technologií.

    Vyjma "obecného" IT existují samozřejmě i velmi specializované obory. Například life-critical systémy typu řízení jaderného reaktoru. Kupodivu managed jazyky typu C# mají v této oblasti veliký potenciál, protože umožňují formální verifikaci nejen návrhu, ale i kódu. Ale to se bavíme o trochu jiné třídě SW, než parsování bankovních výpisů :)

    Jsou asi oblasti, kde je command line výhodou. Uvědomte si ale, že i dobře proškolená obsluha se uklepne. A kde se začne přemýšlet nad tím, na kolik vyjde školení obsluhy, a na kolik údržba prastarého systému, skončí se často u GUI stavěného podle Fittsova zákona. Podotýkám, že kritické systémy typu řízení letového provozu jsou čistě grafické.
    http://en.wikipedia.org/wiki/Fitt's_Law

    Systémy typu řízení laseru při operaci oka zpravidla nepíší lidé, kteří mají za sebou jen půl roku školení, nebo mají problémy zvládat programovací jazyk. Přesto existuje hromada případů, kdy software psaný skalními profíky v "tradičních" jazycích selhal. Mnohdy díky stupidním chybám, viz overflow při přetypování u Ariane 5 flight 501 (ztráta údajně DM 1.2G).

    Kudivu právě banky, kterými protékají obrovské částky, jedou hromady SW psaného ve všem možném, včetně Javy, .NETu a Visual Basicu.

    Spolehlivost SW je věcí více faktorů. Jde o celý řetězec plánování, developmentu, verifikace, QA atd. Kompetence zúčastněných je jistě jedním z klíčových prvků. Ale zdá se mi, že zaměňujete použitý jazyk za kompetenci programátora.
  • 16. 2. 2008 20:19

    tukan (neregistrovaný)
    No nevím jak moc znáte Perl, ale já když dělám cokoli netriviálního (tedy pokud nejde jen o nějaký filtr), tak je všechno objekt. Dalo by se říct, že Perl sám o sobě doporučuje/podporuje objektový přístup. Některé jeho složitější konstrukty/funkce jsou dostupné jedině objektově (viz tied objects). Z jakéhokoli modulu uděláte objekt jedním řádkem.

    Po pravdě, Perl je vůbec nejhutnější jazyk co znám (aktivně používám). Tím myslím možnost vyjádřit svůj záměr co nejrychleji a přitom v podstatě přirozeným jazykem. Přijde mi, jako by se lidi podívali na verzi z r.1980 a z toho pohledu jej hodnotili dnes. Víte, že polovina z 10 nejnavštěvovanějších sajt současného Internetu je postavená na Perlu? Na javě jedna a na .NET žádná. Málokterý jazyk je tak univerzální a přitom efektivní a stabilní. Používat Perl jako lepší awk = zahodit 99% jeho možností.

    Stejně tak je to i s modulárností toho jazyka. Perl interpret můžete taky jednoduše integrovat do vlastních aplikací v nižším jazyce, atd, atd. Pro GUI programování je mnohem lepší než nějaká Java. Kromě toho, že takové GUI je rychlostí někde jinde než loudavý SWING nebo SWT, odpadají typické Javové problémy s vlákny, je možné cokoli prostě upravit a okamžitě bez rekompilace používat. Naopak ale můžete Perl zkompilovat do nativní binárky a skrýt tak svoji implementaci mnohem lépe než v Javě, kterou si dokáže bez problému dekompilovat kdokoli. Po čistě teoretické jazykové stránce má ve skutečnosti v konstruktech a principech, které podporuje, Perl nad Javou nebo C# převahu.

    Nezapomínejme, že jazyk je jen jazyk. Jak v něm vypadají programy, jak jsou rychlé, pomalé nebo špatně napsané - nic z toho není v moci Perlu ani jiného jazyka ovlivnit. Že někteří v Perlu píšou "prasácky"? Proč ne, je to jejich volba. Pokud jazyk umožňuje tak širokou škálu možných přístupů, tak je to jedině dobře. To neznamená, že v něm nemůžete psát jako v Javě. Nemyslím, že restriktivní jazyk je lepší jazyk - naopak. Dává vám totiž menší volnost, což často znamená víc práce pro vás. Kdo je tak moudrý, že si může dovolit hodnotit programátorské potřeby všech a za všech situací? A kdo je tak hloupý, že takovému přístupu může přitakávat?

    Když chci mít něco rychle hotové, použiju Perl. V Javě nebo C# by mi to zabralo 10x tolik času. Ale když chci psát modulárně, objektově a tvořit reusable kód - můžu! O tom to je, o volnosti.

    Stejná volnost stojí z části za úspěchem Linuxu oproti Windows. V Linuxu můžete jeden problém řešit mnoha způsoby. Ve Windows na to je jedna cesta, tak jak se ji rozhodli vytvořit a prosadit tvůrci systému. Ten druhý přístup nemám rád, svazuje mě. Přestože mi Linux poskytuje větší volnost a třeba i volnost udělat ještě horší řešení než je to ve Windows, tak důležitá je možnost volby. Nakonec, klidně můžu i Linux obsluhovat klikáním jako ty Wokna. Chápete?
  • 16. 2. 2008 23:53

    bez přezdívky
    Nejsem velký znalec Perlu, protože mě odpuzuje právě ta nečitelnost. Navíc jeho praktické užití je pro mě prakticky nulové (unixových systémů je kolem mě málo, na Windows máme jiné - a podle mě lepší - prostředí).

    Když chci mít něco rychle hotové, používám VBA či VBS (taková obdoba používání bashe a awk na unixech), na většinu ostatního C#. Pokud je to nutné, dovedu psát třeba v ASM, Perlu a dalších, ale z vlastní vůle tak nečiním.

    O Javě jsem diskutoval jinde, třeba zde: http://www.root.cz/diskuse/2555/181743/vlakno/#o184303
    V krátkosti považuji Javu za pěkný jazyk, ale špatnou platformu. GUI v Javě je pomalé, a vůbec psát GUI aplikaci v Javě je na pováženou. Ovšem raději bych použil Javu, než Perl. Konkrétně Perl/Tk se mi fakt nelíbí. Já jsem zmlsaný těmi věcmi typu IDE, debugger, GUI designer atd. Není to samozřejmě nutnost, ale šetří to čas, tedy pomáhá za stejnou dobu vydělat více peněz (a proto tu práci děláme, že).

    S úspěchem Linuxu proti Windows bych nesouhlasil. Linux dnes nahrazuje profi unixy, na desktopu (kde jich nikdy moc nebylo) i na serverech. Ale jako úspěch proti Windows bych to neviděl. Osobně mám rád, když se jednoduché věci dělají jednoduše. A když existuje nápověda, lokalizace, dokumentace, příklady a tutorialy. Linux je fajn na hraní, když člověk nemá co dělat. Já potřebuji pracovat. Natáhnout IDE, napsat kus kódu, a mít po ruce kvalitní dokumentaci. A když už něco píšu, rád slepím hotové komponenty, pokud je to efektivní (nehodlám například psát vlastní OCR nebo reporty). Chci také snadno přehrát video nebo DVD, koupit hru a bez problémů si jí zahrát atd. Počítače jsou dnes jako voda, elektřina nebo mikrovlnka. Musí "prostě fungovat". Jako obor v tom máme co dohánět, a Linux nám v tom moc nepomůže.
  • 17. 2. 2008 8:57

    Pavel Stěhule

    Když chci mít něco rychle hotové, používám VBA či VBS (taková obdoba používání bashe a awk na unixech), na většinu ostatního C#. Pokud je to nutné, dovedu psát třeba v ASM, Perlu a dalších, ale z vlastní vůle tak nečiním

    VBA je hodně pěkná technologie - ale není samostatná, je svázána s Microsoft Office - pokud potřebuji dostat data do databáze, tak protlačovat je tam skrz Excel je klasické drbání levou rukou (a bohužel se tak děje dost často). VBS je extrémně prostoduchý a pomalý jazyk - i když zmíněné parsování by se v něm asi zvládlo taky, a hlavně už je opravdu artefakt. Jinak, když v Unixu chcete mít něco rychle hotového, tak právě sáhnete po sedu, awku nebo třeba Pythonu - kdy dokážete s textovými daty poměrně čarovat (pokud víte jak na to). A pokud potřebujete výkon nebo robustnost, tak sáhnete spíše po Yacu. Obě platformy poskytují +/- podobné možnosti, GUI designer, debugger, IDE existují pro Perl, pro Python o Javě nemluvě. Mimochodem pomalost Javy už je naštěstí mýtem - v 6 zapracovali (konečně) a i k mému překvapení aplikace nad Javou 6 jedou srovnatelně s .NETem. Pokud mohu říci svůj názor - řekl bych, že dochází docela k zajímavé konvergenci - pár komerčních balíků komponent existuje jak pro .NET tak pro Javu. Historie o.s. do deseti let skončí. Nikoho moc nebude zajímat co je vespod. Pokud se bude volit mezi o.s. pak na základě politických rozhodnutí a nikoliv na základě technických kritérií, protože ta vzhledem k výkonu hw budou neadekvátní. V blogu Marka Olšavského se můžete dočíst, že k OSS se přiklánějí technicky zdatnější uživatelé, jelikož jim OSS poskytuje větší prostor pro seberealizaci a také nevýhody OSS jsou pro ně minoritní. Ostatní uživatelé budou preferovat uzavřený kód, kdy výhody OSS jsou pro ně nepodstatné (nedokáží je využít) a nevýhody markantní (a takových i mezi vývojáři bude většina). Takže nějaké preference tu budou, nicméně budou subjektivní - nikoliv objektivní. Co se týče přiblížení se IT obci - Linux už své udělal - bez webů a bez internetu by rozhodně počítače nebyly v každé rodině. A to ostatní - mám takový pocit, že nikdo moc neví jak dál - revoluce skončily, teď už se pokračuje evolučně, a přiznám se, že je mi jedno, jestli mám v mobilu Linux nebo Microsoft, pokud mi mobil jede a nezdržuje.

  • 17. 2. 2008 13:47

    bez přezdívky
    VBA není jen věc Office, umí ho i jiná prostředí. VBS je v VBA velmi podobný, a umožňuje použít COM (tedy skriptovat MS Office, když na to přijde). Excel je pro mě podobný nástroj, jako na unixech řekněme vi+awk+perl+sql client.
    Jestli tvrdíte, že Java 6 má zajímavý výkon, někdy to zkusím. Přímné překvapení (tj. realita lepší očekávání) vždy potěší.

    Že historie OS skončí, to tvrdil Sun, když uváděl Javu. Shodneme se ale na tom, že současný vývoj je spíše evoluční. Revoluci očekávám od systému typu Singularity (tedy zásadní zvýšení spolehlivosti), nebo od zásadní změny pojetí UI. Jistě jste viděl třeba ta dema, kde zavoláte na ústřednu, a virtuální asistentka vás pomocí dialogu mluveným slovem umí přepojit, naplánovat s vámi meeting, posunout naplánovaný meeeting apod.

    Zatím jsem neměl v ruce mobil (resp. XDA) s Linuxem, je to pořád velmi exotická věc. Protože jsem pragmatik (jako většina lidí), platforma XDA mě netrápí, pokud můžu nosit Outlook v kapse, existují pro něj důležité aplikace (pocket office včetně Excelu, GPS navigace typu TomTom, slovníky, klient IS apod), a nejlépe je tam i možnost snadného vývoje aplikací.
  • 15. 2. 2008 22:24

    polymorpheus (neregistrovaný)
    jenomze na vsechno neni metoda pomete treba tento prikladek:
    s = "some /relative/path"
    puts s.gsub(/ \//, ' ') 
    #  "some relative/path"
    
    tady zadne s.ReplaceAll("/"," ") nepomuze a vlastne ve stejne logice mozna mel postupovat autor clanku - stacilo treba nacist dany soubor do stringu (coz by snad nemel byt problem, tedy podle toho, jak jsou ty soubory velke), pomoci split na prazdnem radku jej rozdelit na dve casti, a tyto dve casti pak jednoduse zpracovat (viz reseni od VM, tusim - ty regexy jsou jednoduche a stejne by vypadaly i v Ruby, vlastne cele reseni by v Ruby bylo dost podobne, i kdyz celkove o dost citelnejsi) vysledkem jsou datove struktury (pole), obsahujici napriklad string " - 1 000 ", ktery se da zpracovat treba takto:
    " - 1 000 ".gsub(' ', '').to_i
    
    takze fakt jednoduche, a o znalost Perlu ani tak nejde - spis jde o to, aspon trichu umet regularni vyrazy, nic vic, nic min