• ú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í
    _BENNY
    _BENNY --- ---
    POTRAT: to snad ma smysl jen v pripade ze se ty cinnosti nejak opakuji. ale kdyz potrebujes kazdou chvili koukat na neco jineho, tak zase skoncis u psani (nehlede na to ze i ty makra se ani napoprve nenapisou samy), misto abys proste prisel, kouknul a hned videl. zdrzuje to.

    XCHAOS: mozna se jen blbe vyjadrujes ;)
    POTRAT
    POTRAT --- ---
    _BENNY: tak pokud se nechces upsat, tak si muzes nadefinovat makra prece, v tom je velky plus gdb
    XCHAOS
    XCHAOS --- ---
    _BENNY: v podstatě toto bylo celé jádro mojí kritiky gdb ... ale ty za to samé dostaneš palečky nahorů, zatímco já palečky dolů :-)
    FLEGMA
    FLEGMA --- ---
    _BENNY: jj, toto mam radsi taky orbis pictus. Ale vlakynka jsou nekdy hnus, obzvlast kdyz zakaznik nahlasi race condition, ktera se objevi jednou za tisic let a ne a ne ji nasimulovat, nejlip jeste zatuchlej kod po predchudci a bez logu a k tomu bug s critical prioritou, aby mel pan Murphy radost.
    _BENNY
    _BENNY --- ---
    FLEGMA: jasne ze gdb umi temer vse co je k debugovani potreba. ale problem je kdyz potrebujes dynamicky vytvaret a disablovat breakpointy a stepovat a koukat kde zrovna jses ve zdrojaku a prip. v assembleru a na aktualni stav registru a threadu a ke kazdymu callstack atd... to se proste upises nez neco uvidis. ale jak rikam, nekomu to nevadi, koneckoncu to muze byt jen projev me vlastni neschopnosti :)
    FLEGMA
    FLEGMA --- ---
    _BENNY: Na tohle jsou dobry conditional breakpointy a jestli me pamet nesali, tak to GDB umi.
    ISTEVE
    ISTEVE --- ---
    jako anecdotal evidence muzu uvest ze mi to nikdy problemy nedelalo, a jako statistiku to, ze gdb je stale pomerne popularni nastroj... ale treba jsem jen jeden z bandy nerdu:]

    ...tak ci onak je to ale v podstate jedno, at uz clovek voli klikaci UI nebo textovy, oboji jsou to porad dost silny nastroje ktery maj ultimatne pomoct developerovi. A je picovina se jim vyhejbat, pac trivialni printf debugging to v zadnym pripade ani omylem nenahradi.
    _BENNY
    _BENNY --- ---
    s terminalem nemam problem pokud mi jde o to vypsat kontext, z nej neco vycist a pokracovat dal. ale stepovat uvnitr vicero multithreadovych procesu na terminalu a sledovat vsechno deni rucnim psanim kazde blbiny, to je fakt honirna, kterou delat odmitam. nicmene si dovedu predstavit nerda, kteremu je presne tento zpusob prace prirozeny :D ja si docela potrpim na uhledne visualno.
    ISTEVE
    ISTEVE --- ---
    Mas pravdu, chtelo by to svitivej 3d interface a mavani rukama, pac to je efektivnejsi... ;]

    ...nicmene flamebait stranou, debugovani v terminalu je stale lower latency a higher bandwidth nez jakykoliv klikaci UI, coz klikaci UI vynahrazuje daleko min steep learning curve. Vidim to jako tradeoff, jako spousta dalsich veci. Nevidim to jako vec "minulosti" a "co se slusi a patri v roce 2012".
    FLEGMA
    FLEGMA --- ---
    DAVIDOWITCH: tjn, ale debugovat v roce 2012 v terminalu mi prijde stejnej sadomasochismus jako psat kod ve vimu.
    FLEGMA
    FLEGMA --- ---
    DAVIDOWITCH: Pisa je nejvic linux a C guru, kteryho znam, POSIX a kernel zna snad nazpamet, vzdycky mi dokazal odpovedet. Je to renesancni clovek, se podivej na jeho stranky, multioborovej vyvojar. Taky nam daval vtipny ukoly, treba grabnout jeho jmeno ze zdrojaku GCC nebo hacknout zabezpeceni debianovy site. Logicky je to fanousek open source...
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    FLEGMA: Ten eclipse frontend mel teda jeste loni pomerne dost much. Kdykoliv sem tim tahal nejaky slozitejsi veci s templatama, tak spadl/ukazoval kraviny. Takze sem skoncil u gdb v terminalu. (Ani nevim ze to ma vlastni debugger, takze nemuzu soudit).

    A Pisa je vtipnej typek, kdyz sem mel prednasku o tom jak se dela VFX do filmu, tak se mne pak ptal na pouzivanej software, byl prekvapenej ze tam neni nic open source a vesmes mne zacal presvedcovat ze proprietalni software je neudrzitelnej a melo by se prejit na open source. Coz mi u softu kterej ma hrozne slozitej vyvoj a velmi omezeny pouziti prislo vtipny :-)
    FLEGMA
    FLEGMA --- ---
    XCHAOS: A remote debug je jako nejakej vyssi luxus v cecku ? Teda to musite trpet :-)
    FLEGMA
    FLEGMA --- ---
    XCHAOS: Taky to nemusis pouzivat oldschoolove v terminalu, i kdyz videl jsem experta ze stary skoly, co s tim fakt umi (Pavel Pisa z FELu http://cmp.felk.cvut.cz/~pisa/ - je to magor v dobrym slova smyslu, spoluautor GCC, C/Linux/elektro guru) a debugoval pomoci milionu klavesovejch zkratek snad rychlejc nez ja normalne v IDEcku.

    Na ty mensi a jednoduchy veci nebo jednorazovky (ca kod na jednu obrazovku) asi okej bez debugu, jinak bych pouzil eclipse, ma frontend pro gdb aj interni debugger. Driv jsem ladil kod v Borland C++, ale to bylo na widlich a uz je to asi mrtvej produkt.

    Pro me je debug primo soucast vyvoje (pisu teda v jave), JVM ma hotswap, coz mi umoznuje si za behu do aplikace dopisovat kod. Na vetsi zmeny, ktery hotswap nezkousne nebo na reload konfiguraku ruznejch frameworku, mam JRebel, bez nej si uz serverovej vyvoj nedokazu predstavit. Spori to spoustu casu, protoze nemusim kvuli kazdy drobnosti otacet aplikac.
    XCHAOS
    XCHAOS --- ---
    DANIELSOFT: jak říkám, já si nějaký čas hrál s xwpe a rhide. pochopitelně po zkušenostech s omezeními v DOSu se mi hrozně líbilo, že můžu krokovat třeba i síťovou aplikaci běžící na serveru... moje kritika se týkala právě méně než nulové uživatelské přítulnosti čistého gdb :-)

    _BENNY: já to úplně chápu... současně ale nevyvíjím komerční aplikace, od kterých bych šířil jen binárky, a podobná situace se u mě neděje moc často. popravdě... trochu něco jsem v posledních pár letech programoval, tedy nejen v C - ale nejčastější způsob komunikace s klientem/uživatelem byl vždy ten, že jsem si vyžádal dodání vstupních dat, které daný problém dokázaly reprodukovat (a tady jsem tedy dokonce byl nucen i hledat chyby po jiných, párkrát). klienta, která dodá coredump, si sice představit umím... ale prostě žádné takové kšefty teď nemám.
    DANIELSOFT
    DANIELSOFT --- ---
    tak kdyz si clovek nad "gdb" nainstaluje "ddd", tak je to o neco pristupnejsi a pohodlnejsi - a pritom clovek neprijde o moznost zadavat primo do gdb commandy, pro ktere v ddd neni gui cudlik
    _BENNY
    _BENNY --- ---
    ono treba kdyz ma clovek pruser nad hlavou a nasranej zakaznik je schopen dodat pouze crashdump, tak veci jako gdb nebo windbg docela uvita. i kdyz to prostredi je fakt desny, zaplatpanbuh za nej :)
    POTRAT
    POTRAT --- ---
    XCHAOS: ja teda s gdb pracuju skoro kazdej den a nemuzu si ho vynachvalit ;)
    XCHAOS
    XCHAOS --- ---
    _BENNY: ale kdo tady mluví o "zanevření"... spíš jsem už dlouho nevyvíjel tak rozsáhlý projekt, který by debugování potřeboval.

    s gdb se pracuje opravdu dost blbě - to je celé, co jsem tím chtěl říct.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: A prozenes to alespon valgrindem, treba?
    _BENNY
    _BENNY --- ---
    XCHAOS: drasticke opatreni je zanevrit na techniky debuggingu kvuli jednomu gdb. hranicici s omezenosti :)
    Kliknutím sem můžete změnit nastavení reklam