• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    XCHAOSANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API
    /* Toto je klub především pro lidi, pro které je programování jednou z mnoha massive multiplayer online počítačových her, které lze hrát.
        V tomto klubu hrozí sémantická hereze a nezdravě vysoký obsah syntaktického cukru. Nevhodné pro algoritmické diabetiky.
        Od účastníků debaty se předpokládá automaticky přístup k instalovanému GNU C: sudo apt-get install build-essential
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    C (programovací jazyk)#C99 Heslo na české Wikipedii
    Jazyk C - Základy praktického programování V Praze 2oo7 pro SSPŠ Tomáš Harvie Mudruňka a kolektiv - jak si programování v C představuje většina lidí
    http://stevenkobes.com/ctest.html C Programming Puzzlers - nepouštějte se do flamewars v tomhle klubu, pokud neuhodnete aspoň polovinu správně!
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://en.wikipedia.org/wiki/C99 C99 is a modern dialect of the C programming language.
    http://cprogramminglanguage.net/ C programming language
    http://cprogramminglanguage.net/c-programming-language-tutorial.aspx C programming language - úvod
    http://en.wikipedia.org/wiki/Criticism_of_the_C_programming_language C makes it easy to shoot yourself in the foot. (ještě že ne do hlavy...)
    http://en.wikipedia.org/wiki/C_preprocessor
    http://gcc.gnu.org/onlinedocs/gcc/Variadic-Macros.html C99 makra s proměnným počtem argumentů - __VA_ARGS__
    http://gcc.gnu.org/onlinedocs/gcc/ GNU C Compiler
    http://gcc.gnu.org/onlinedocs/gcc-4.2.2/gcc/Optimize-Options.html
    http://bellard.org/tcc/ Tiny C Compiler - prý C99 compliant (min. umí __VA_ARGS__) - vhodný pro skriptování v C - umí #!/usr/bin/tcc -run
    http://en.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest - pokud jste neviděli tohle, tak jste ještě neviděli opravdu nečitelný C zdroják
    http://bellard.org/otcc/ Obfuscated Tiny C Compiler - z tohohle vtípku vznikl Tiny C compiler
    http://en.wikipedia.org/wiki/ANSI_C Jak se střelit do nohy standardizovaným způsobem.
    http://eli-project.sourceforge.net/c_html/c.html ANSI C Specification
    http://www.lysator.liu.se/c/ Různý ANSI C bordel
    http://www.cs.rit.edu/~ats/books/ooc.pdf Object Oriented Programming with ANSI-C - a pak že to nejde
    http://en.wikipedia.org/wiki/Longjmp co jsou to setjmp()/longjmp() knihovní funkce (pro všechny, podle kterých to bez C++ try { } catch() ... nejde)
    http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/dcdc710c27f47c72 C neumí správně počítat (?)
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    http://www.fastcgi.com/ FastCGI is simple because it is actually CGI with only a few extensions.
    http://www.metalshell.com/source_code/18/Mysql_Select.html How to do a simple connection and select with mysql
    http://xmlsoft.org/ The XML C parser and toolkit of Gnome
    http://curl.haxx.se/libcurl/ libcurl - the multiprotocol file transfer library
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    https://dev.arachne.cz/svn/cll1h SVN/Trac jazyka C<<1 (user-friendly nadstavba nad ANSI C99 - ve stylu JQuery vs. JavaScript)
    Benchmark iterace a serializace stringů v různých jazycích vs. v C
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        moderátor se velice zhruba řídí zvyklostmi moderace, která kdysi platila v řadě konferencí sítě FidoNet ... C != 0xdead */
    rozbalit záhlaví
    XCHAOS
    XCHAOS --- ---
    _BENNY: hele, to je složitý... v současný fázi to dělám asi hlavně pro sebe.

    to máš tak: kdysi jsem měl jakýsi vlastní framework, který jsem používal asi 5 let, a opravdu do něj byl (ke konci životního cyklu) schopen přidávat docela vychytané věci, které recyklovaly maximum toho, co už jsem měl hotové.

    srovnej si třeba jen desktopová prostředí pro linux. takové GNOME nebo KDE vs. LXDE (je pravda, že lxrandr neumí zatím nastavit plochu přes víc monitorů :) ale jinak je LXDE geniální). LXDE zabírá rezidentně v RAM asi 8 MB, window manager Openbox k tomu navíc asi 4 MB.

    námatkou teď jsem v Gnome (kvůli externímu monitoru na netbooku): nautilus 19M gnome-panel 12 M clock-applet 10m (sic! LXDE prostě má u hodin konfigurovatelný parametr, kterým je formátovací string pro strftime... a nepotřebuje na to žádný aplet). evolution-alarm zabírá 7 MB a to jsem si vůbec instalaci balíku evolution nevyžádal, a nikdy ho nepustil. update-notifier 10 MB gweather-applet 15 MB (když to vidím, tak tu předpověď počasí v Praze na Ruzyni asi oželím :)

    Ale čert vem linuxový desktop... ten peníze nevydělává, a geekové si ho občas neuroticky zoptimalizují, a pak zase z nudy pustí kde co. O to nejde. Já mám ale určité tušení - např. z pozorování toho, kolik paměti zabírají jednotlivé procesy Apache, pokud se v nich aktivuje mod_php a v něm nějaký běžně dodávaný opensource CMS (či jiný bast) - že by šlo webové aplikace psát třeba o řád efektivněji, než dnes.
    _BENNY
    _BENNY --- ---
    XCHAOS: no ale ty stejne neprogramujes, ty zatim jen vymyslis zaklady programovaciho jazyka, pokud to dobre chapu. tak delas to teda jen pro sebe nebo i pro nekoho jineho? pro koho?
    XCHAOS
    XCHAOS --- ---
    REDGUY: dobře... ale ty víš o někom, kdo by se skutečně UČIL programovat podle manuálových stránek ? v jakém pořadí je pak podle tebe má studovat, nebo jak si to představuješ ?

    samozřejmě, že manuálové stránky jsou výborný zdroj pro toho, kdo aspoň trochu ví, co hledá... ale než víš, co hledáš, tak musíš mít nějaký počáteční záchytný bod... mezi hello world ! a jakýmkoliv použitelnějším programem je obrovský kus cesty.
    XCHAOS
    XCHAOS --- ---
    _BENNY: ...a musí mi o něco jít ? mají snad lidi, jejichž motivace není čistě racionální (nebo možná je, ale není to v daný moment zjevné pro ně, nebo pro někoho dalšího), zakázáno programovat ? :-)

    REDGUY: vycházím jen z toho, že jako pro začátečníky je "lepší než Ruby" prakticky cokoliv :-)

    ne fakt... někomu, kdo to myslí s programováním vážně, a současně je začátečník, bych asi doporučil Python. jenže kdo říká, že to všichni začátečníci musí myslet s programováním vážně ?

    Pokud si uvědomíte, kolik lidí začne a skončí s nějakým bastlením v PHP, tak sakra: co je tak špatného na mém bastlení ? (kromě toho, že jsem už 10 let nic v Céčku nereasnul, když nepočítám jeden obskurní úzce specializovaný bastl bez jakéhokoliv GUI ?)
    REDGUY
    REDGUY --- ---
    XCHAOS: kde je realloc() nějak hezky srozumitelně vysvětlený - wut? Co na nem potrebujes "hezky srozumitelne" vysvetlit?

         The realloc() function tries to change the size of the allocation pointed to by ptr to size,
         and returns ptr.  If there is not enough room to enlarge the memory allocation pointed to by
         ptr, realloc() creates a new allocation, copies as much of the old data pointed to by ptr as
         will fit to the new allocation, frees the old allocation, and returns a pointer to the allo-
         cated memory.  If ptr is NULL, realloc() is identical to a call to malloc() for size bytes.
         If size is zero and ptr is not NULL, a new, minimum sized object is allocated and the original
         object is freed.  When extending a region allocated with calloc(3), realloc(3) does not guar-
         antee that the additional memory is also zero-filled.


    A hotovo.
    REDGUY
    REDGUY --- ---
    XCHAOS: "kdo chce dobře placenou práci, tak šup pryč z tohohle klubu" - uplatenni se na trhu neni zdaleka jen o dobre placene praci. Je to o praci ktera te bavi, kde pracujes s prima lidma a tak dale - treba i na open source projektu. Existuji tisice FOSS projektu v C++. Kolik jich je v Cll1? Nula nebo jeden, pokud pocitam i verzi Cll1 kterou ty sam oznacujes za obsolete. Kde mam vetsi sanci ze najdu zajimavou praci? Slozite pocty 8)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: u mě to mělo dost historický důvody, to jsme už rozebírali (ne na všech platformách je to efektivní nástroj... ). a kromě toho, všechny učebnice C se už v 90tých letech snažily co nejrychleji přejít od základů C k vysvětlování výhod C++

    fakt by mě zajímal příklad nějaké učebnice C, kde je realloc() nějak hezky srozumitelně vysvětlený... a vlastně by mě zajímalo, odkud se tady kdo to C vlastně učil, když jsme u toho.
    REDGUY
    REDGUY --- ---
    XCHAOS: Aha. Takze transformace z "kandidat do OCC" pres "jazyk pro zacatecniky" pokracuje do "jazyk pro velke projekty ve kterych budu pracovat ja a rada dalsich lidi, kteri umi C++ ale s kterymi nebude mozne se dohodnout na pouzivani urcite podmnoziny C++", ano?

    Cili predpokladas, ze existuje nejaka nenulova mnozina lidi, co (a) umi C++, (b) chteji s tebou spolupracovat na nejakem vetsim projektu a zaroven (c) jsou ochotni misto prace v C++, ktere umi a zvladaji, investovat znacne mnozstvi casu do uceni se tveho bastlu a pouzivat ho? Rozumim tomu dobre?
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    No mne spis nez vicerozmerny pole prekvalipa neznalost reallocu, coz mi prijde jako naprosto zakladni zalezitost jakyhokoliv trochu efektivniho programovani.
    Kazdopadne, pokud jdes smerem na webovy vyuziti, proc se vic nezameris na nejaky multicore a multimachine ficury, nez tam cpat neco co kdyz bude clovek potrebovat, tak si napise ve vyssim jazyce?
    _BENNY
    _BENNY --- ---
    XCHAOS: pokud ti nejde o byznys, o co ti teda jde? o promysleny akademicky proof-of-concept zjevne taky ne.
    XCHAOS
    XCHAOS --- ---
    ad to uplatnění jednotlivých programátorských dovedností na trhu - tak TOHLE je slovo do pranice ! mimochodem - kde jsem říkal, že chci pomoci uplatnění někoho na trhu práce ? kdo chce dobře placenou práci, tak šup pryč z tohohle klubu... dale lepší se jít učit programovat v C++ a pak se nechat zaměstnat v nějakám High Frequency Trading teamu, nebo tak něco... v tom jsou velké peníze... v tom co já vymýšlím určitě ne...
    XCHAOS
    XCHAOS --- ---
    ISTEVE: myslel jsem si, že využívám, ale nedávno sem někdo hodil odkaz na jakýsi onilne test (myslím jsem dal odkaz do záhlaví) - a musím říct, že třeba s vícerozměrnými poli lze opravdu dělat pekelné věci :-)

    tedy... opravdu nejsem žádný C guru... a vím o pár featurách, které spíše ignoruju, a určitě jsou nějaké, které vůbec neznám.

    REDGUY: problém je, že programování není tak docela sólová činnost... a ostatní kolem mě tyto featury používat budou. já je nebudu chápat a z toho vznikne, ehm... mnoho sefgaultů a core dumpů, přinejmenším :-)
    REDGUY
    REDGUY --- ---
    REDGUY: s/plytvat pri uceni/plytvat casem pri uceni/
    ISTEVE
    ISTEVE --- ---
    XCHAOS: To skoro rikas, jako kdyz by C++ open source byl vzacnost ;]

    Mimochodem, vazne vyuzivas vsechny featury C?;) Nebo je ignorujes, stejne jako bys je mohl ignorovat u C++?
    REDGUY
    REDGUY --- ---
    XCHAOS: že v C++ jsou věci, co nepotřebuju - no a? Vadi nejak? Skodi nejak? Omezujou te nejak? Nikoliv. Tak v cem je problem? Proc proste nepouzivas v C++ to co chces a zbytek neignorujes?

    já se chci zaměřit spíš na ty, co ještě C++ neumí a tudíž jsou ochotní dělat za méně nebo dokonce zadarmo - tohle nedava smysl hned ze dvou duvodu. Za prve: jeste pred chvili jsi tvrdil, ze tvym cilem je Obfuscated C Contest. A ted najednou delas jazyk zamerenej na zacatecnikuy? Uz jsem to jednou psal, ale znova: poradne nadefinuj co vlastne delas, jinak je jakakoliv debata nesmyslna - a to tvoji vinou. Samozrejme, nemusim asi zduvodnovat svoji teorii ze to nikdy poradne neudelas, protoze neustale meneni cile je tvoji zasadni argumentacni technikou a zpusobem uhybani pred kritikou, ze? 8))

    No a za druhe: Takze ty chces pomoct programatorum - zacatecnikum, kteri protoze poradne neumi C++ musi brat hure placenou praci tak, ze je nechas plytvat pri uceni tveho jazyka, takze nakonec budou umet tvuj nekompatibilni bastl s velmi omezenou funkcnosti a nulovym rozsirenim, coz jejich uplatneni na trhu _vubec_ nepomuze? Prijde ti to jako pricetny plan?
    XCHAOS
    XCHAOS --- ---
    REDGUY: já jsem neřekl, že chci něco, co v C++ nejde... spíš to od začátku říkám naopak... že v C++ jsou věci, co nepotřebuju...

    (.. anavíc C++ programátoři jsou od hodiny většinou dost draze placení a já se chci zaměřit spíš na ty, co ještě C++ neumí a tudíž jsou ochotní dělat za méně nebo dokonce zadarmo :-) což je pro open source hnutí taky důležité..)
    REDGUY
    REDGUY --- ---
    XCHAOS: že '+' je v C vždy jen nějaký druh matematické operace - zatímco v C++ to může být téměř cokoliv Jestli je tohle tvuj jediny argument, pak je tady samozrejme snadna pomoc: vis ze te vubec, ale vubec nic nenuti overloading v C++ pouzivat? Ze z nej muzes pouzivat jen to co chces - a mam velmi intenzivni pocit, ze to co chces od sveho jazyka C++ zcela bez problemu splnuje (resp. je mnohem snazsi naucit ho to nez to slozite roubovat na C). Nebo si myslis neco jineho? Ktere vlastni chces mit ve svem jazyce, ktere v C++ nejsou/nejdou?
    XCHAOS
    XCHAOS --- ---
    ANT_39: lojban neznám, ale esperanto vnímám jako vceklu fascinující záležitost.

    (BTW, dobrý nápad by bylo rozšířit Google translate i na programovací jazyky ... :-)
    ANT_39
    ANT_39 --- ---
    XCHAOS: Primer s prirozenymi jazyky kulha. Kdyz uz, tak to, co delas, je vylepsovani esperanta smerem, kde uz je lojban (treba strojova analyza, nebo se ti libi zasobnikove operace), ale lojban samotny nechtes, protoze je divnej.
    XCHAOS
    XCHAOS --- ---
    REDGUY: Záhlaví se od poslední návštěvy nezměnilo. ... aneb http://en.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest

    ... víceméně, jde mi jen o to, že tajně doufám, že můj výtvor do této soutěže jednou někdo přihlásí. stačí ? :-)
    XCHAOS
    XCHAOS --- ---
    MAZA: já jsem neřekl, že je něco POTŘEBA.

    mě prostě C++ nějak nebere, a zajímám se o spolupráci s lidma, které taky nebere. zajímavé je, že kdyby šlo o lidské jazyky, tak bys neřešil, že někdo studuje němčinu a jiný francouzštinu a jiný španělštinu.

    samozřejmě... můžeš zpochybňovat, že se někdo bude snažit psát v němčině milostnou poezii a jiný bude chtít ve francouzštině velet nějakým vojenským jednotkám a ještě někdo další bude ve španělštině chtít dojednávat vysoce abstraktní mezinárodní finanční transakce.... já ani nijak neříkám, že je C extra vhodné pro to, s čím si hraju... ale pořád věřím, že bude existovat určitý omezený okruh lidí, kterým to přijde zajímavé.

    (víceméně: já nemám jiný argument pro preferenci C před C++, než je tem, že '+' je v C vždy jen nějaký druh matematické operace - zatímco v C++ to může být téměř cokoliv, podle typu objektu, pro který ten operátor přetížíte - sice chápu, že se někomu jinému přesně kvůli tomuto C++ líbí.. jenže mě se přesně kvůli tomuto nelíbí)
    Kliknutím sem můžete změnit nastavení reklam