• ú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 --- ---
    ISTEVE: no prostě vím o řadě firem, kde by tenhle problém řešili přikoupením RAMěti pro databázový server (reps. přikoupením paměťové kapacity v cloudu) :-) (citation je profesní tajemství, takže nebude)
    ISTEVE
    ISTEVE --- ---
    XCHAOS: [citation needed]
    XCHAOS
    XCHAOS --- ---
    REDGUY: pochopitelně. škoda, že je to tady offtopic :-)

    Google chybu moc dobře zná, a je to moje oblíbená kategorie výsledků: "problém má i hodně jiných lidí"

    řešení je ale prosté, milý Watsone:

    select * from guestbook where id in (SELECT id FROM guestbook WHERE (UNIX_TIMESTAMP(datum) + 3600*24 < UNIX_TIMESTAMP(NOW()) AND hodnoceni >= 0) ORDER BY id DESC) limit 64;

    prostě to bude o tom, že SQL předstírá, že je všemohoucí Bůh (resp. vševidoucí vědma) a že má na dotazy dostatek paměti. Ale pochopitelně nemá - a to už i u překvapivě krátkých tabulek, co do počtu záznamů - problém je prostě v tom, že celkový obsah tabulky se už nevejde do paměti, i když by to vadit nemělo, protože v té WHERE podmínce se s daným sloupcem vůbec nepracuje.
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Tak na externi database engine bych se klidne spolehl. Co to ma spolecnyho s MySQL ale nevim :-)

    XCHAOS: Takze tvoje reseni je rict "sorry, mame plno"? To urcite potesi spoustu lidi. Bych zavedl i jinde. Treba ze v zadnem momente nesmi bejt nainstalovano vic nez 100k instalaci Debianu, aby to pohodlne zvladaly servery s packages.

    XCHAOS: Aha, nezaregistroval sem. Distribuovany vypocty v heterogennim prostredi jsou celkem easy, akorat te to dost omezi v tom co muzes pocitat. Nejakej number crunching (mersene primes, SETI, protein folding), kde mas queue veci co je treba individualne zpracovat je easy. Treba i ta moje 3D grafika se na to da dobre napasovat (no, obcas).
    Ale je spousta veci ktery naprosto neudelas, coz je vetsina velkejch fyzikalnich simulaci (nasobeni obrovskejch matic), protoze tam si potrebujou jednotlivy vypocetni nody vymenovat data a v momente kdy se naprosto nemuzes spolehnout nejen na vykon, bandwidth a latenci, ale ani na to ze ti tu masinu nekdo neodpojil, tak si to radsi spocitas lokalne.
    REDGUY
    REDGUY --- ---
    XCHAOS: Zkousel jsi to googlovat? Prvni link co jsem nasel rika "repair table". Cili saskovani s gdb mi prijde krapet predcasne.
    REDGUY
    REDGUY --- ---
    XCHAOS: tak to bude záležitost provozovatele daného node, rozhodnout se jaké množství uživatelů jeho systém zvládá. 8)))

    Jo, to zni skvele. Takze kdyz se budu chtit prihlasit do tvoji site, budu muset hledat provozovatele nodu, kterej je duveryhodnej, spolehlivej a ma zrovna volno? To zni skvele 8))

    mě se na cloud computingu něco dost zásadním způsobem nelíbí - co konkretne?

    svoje osobní data bych především chtěl mít uložené na vlastní hardware A SOUSČASNĚ je zpřístupnit - aha. A kolik desetin procenta zbytku lidstva chce totez? Kolik lidi se chce srat s provozovanim vlastniho serveru, zejmena kdyz alternative je proste napsat "plus.google.com" do browseru? Jak spolehliva by byla sit tvorena nodama provozovanejma nahodnejma joudama?
    XCHAOS
    XCHAOS --- ---
    REDGUY: tak to bude záležitost provozovatele daného node, rozhodnout se jaké množství uživatelů jeho systém zvládá.

    mě se na cloud computingu něco dost zásadním způsobem nelíbí - neříkám, že neexistují aplikace, kde něco podobného má smysl, ale nelíbí se mi to, pokud se bavíme o každodenním použití dat - např. sociální sítě, uložení osobních dat.

    svoje osobní data bych především chtěl mít uložené na vlastní hardware A SOUČASNĚ je zpřístupnit. nebráním se cacheování někde jinde, zálohování je spíše žádoucí - ale současně třeba chci mít u sebe uloženou zpětnou vazbu od jiných uživatelů (komentáře, hodnocení).
    XCHAOS
    XCHAOS --- ---
    REDGUY: tak to bude záležitost provozovatele daného node, rozhodnout se jaké množství uživatelů jeho systém zvládá.

    mě se na cloud computingu něco dost zásadním způsobem nelíbí - neříkám, že neexistují aplikace, kde něco podobného má smysl, ale nelíbí se mi to, pokud se bavíme o každodenním použití dat - např. sociální sítě, uložení osobních dat.

    svoje osobní data bych především chtěl mít uložené na vlastní hardware A SOUSČASNĚ je zpřístupnit. nebráním se cacheování někde jinde, zálohování je spíše žádoucí - ale současně třeba chci mít u sebe uloženou zpětnou vazbu od jiných uživatelů (komentáře, hodnocení).
    XCHAOS
    XCHAOS --- ---
    wow, tak tedy debugování TÉHLE chyby bych chtěl vidět :-) aneb zdrojáky MySQL budou určitě bomba :-)

    SELECT count(0) FROM guestbook WHERE hodnoceni>0 ORDER BY id DESC LIMIT 64;
    ... v pohodě.

    SELECT count(0) FROM guestbook WHERE hodnoceni>-1 ORDER BY id DESC;
    ... v pohodě.

    SELECT count(0) FROM guestbook WHERE hodnoceni>-1 ORDER BY id DESC LIMIT 64;
    ... SQL session úplně vytuhne, resp. pokud tam nedám kumulativní funkci count() ale třeba *, tak to hodí ERROR 1030 (HY000): Got error 134 from storage engine

    .... no, je to tady úplně offtopic, jen se těším, až někdo překompiluje mysql s debug info a vrhne se na to s gdb :-) (data do tabulky případně dodám)
    VYHULENY_UFO
    VYHULENY_UFO --- ---
    XCHAOS: programatoru jako je napriklad D. Knuth je fakt malo. malokdo dokaze napsat aplikaci tak, aby se nemusela za poslednich 25let vyrazne menit. ano mluvim o TeX a tam by se dalo hovorit o zivotnosti programu.
    vetsina dnesnich programatoru vidi programovani jako teoreticke hledani nekonecne lehkeho letadla s nekonecnym vykonem a doletem.
    REDGUY
    REDGUY --- ---
    XCHAOS: tohle třeba řeší i takové nastavení pravidel přijímání nových uživatelů do víceuživatelského systému (reps. jejich dat), aby se ten růst zpomalil dávno předtím, než by bylo nutné přidat HW : Chces rict, ze problem s mizernym vykonem budes resit tim, ze proste nedovolis vic uzivatelu/dat a proste budes lidi posilat do prdele? Opravdu, opravdu tohle myslis vazne?
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: ve skutečnosti, spíš jsem začal úplně nové téma, než že bych někam odbočoval.

    je pravda, že distribuované výpočty mě zajímají daleko více v heterogením prostředí - co se týká administrace nebo vlastnictví hardware - než v homogenním prostředí.
    XCHAOS
    XCHAOS --- ---
    TENCOKACISTROMY: to je samozřejmě pravda - ale tohle třeba řeší i takové nastavení pravidel přijímání nových uživatelů do víceuživatelského systému (reps. jejich dat), aby se ten růst zpomalil dávno předtím, než by bylo nutné přidat HW.

    Představ si to jako životnost nějakého předmětu osobní spotřeby z hlediska života člověka: rozdíl mezi životností výrobku 60 vs. 120 let může být zcela zásadní :-)
    XCHAOS
    XCHAOS --- ---
    No, právě jsem se u MySQL dopracoval na "Got error 134 from storage engine" - a to má ta tabulka teprve trapných 11326 záznamů. Takže nevím, jestli je vždy taková výhra spoléhat na externí databázový engine :-)
    ISTEVE
    ISTEVE --- ---
    Scaling is hard, let's go prematurely optimize instead.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    ALMAD: Nehlede na to, ze i kdyz to bude naprogramovany tou nejvic efektivni metodou, stale to jeste nezarucuje, ze nebude potreba skalovat pomoci pridavani HW.
    REDGUY
    REDGUY --- ---
    XCHAOS: ale pokud by si byl schopen i sémantické, nikoliv jen syntaktické analýzy :-) - mozna nez zacnes priste zase vtipkovat, zjisti si co znamena "syntakticka" a co "semanticka" analyza.

    tak ti dojde, že obrat "na druhou stranu" znamená, že uvedené aplikace pokládám za protiklad "komerční služby" - coz mi samozrejme dochazi. Akorat mi to prijde dost pitome rikat, ze .tar.gz balik WordPressu je "protiklad" napriklad blogger.com. Tedy, v urcitem smyslu je to samozrejme pravda, ale stejne tak je pravda rikat, ze GM Electronics je "protiklad" Sony Electronics, protoze kdyz jdu do GME muzu si tam koupit soucastky z kterych si potom postavim radio podobne tem co prodava Sony. Jasne, na konci je v obou pripadech zesilovac, ale cilova skupina je _zatracene_ jina, tak jina ze srovnani dost ztraci smysl.

    Wordpress je pro nerdy, co mermomoci musi mit svuj vlastni server. Blogger.com je pro 99.99% zbylych lidi, co proste chteji mi svuj blog a nepodstatne technicke detaily jsou jim ukradene. postfix/squirrelmail je email pro nerdy, gmail (seznam, yahoo...) je pro vsechny ostatni co proste chteji funkcni email.

    Samozrejme, tezko to analyzovat dal, protoze porad nejsi schopen napsat co vlastne prosazujes (novej email? novej blogovej system? co vlastne?) a pro jistotu ignorujes otazky na blbaboly cos napsal (" jediný poskytovatel té služby na celé planetě"). A uz vubec nemluvim o tom, ze jsi porad nevysvetlit, kde by ty tvoje "predkompilovane sql" "michalo kartama" (sorry, ale ideologicke kecy o "podvratnem software" nepocitam).
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: A v takovym momente, kdy tahas data ne po optice z jinyho patra, ale pres internet z ruznejch koutu sveta ti predkompilovany SQL dotazy pomuzou skalovat jak?
    Nebo si uplne odbocil od toho tematu a ted jde o to ze bezna distribuovana aplikace (ala treba Skype) by nemela bejt psana v PHPku ale v Ccku?
    ALMAD
    ALMAD --- ---
    // OT
    XCHAOS: No psal jsi, že spíš než škálovat by se mělo psát v kompilovaných jazycích. Já jenom říkám, že čístá rychlost se afaik spíš řeší víc nodama.

    Ty říkáš, že cíl je být tak kompilovaně efektivní, že víc/tolik nodů nepotřebuješ.

    Já se jenom ptám, jestli jsi schopen svoji kompilovanou službu zrychlit dvojnásobně přes noc (viz slajd), to je celé.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: v podstatě, jediné, čím se chci odlišovat od těch komerčních služeb, je vlastnická struktura jednotlivých nodů. jinak počítám s tím, že by jednotlivé nody řešily i otázku cachování (např. když folowuješ někoho na jiném nodu na druhém konci světa, tak se to natáhne jako RSS feed a jeho obsah se nacacheuje na tvém nodu, apod.)
    XCHAOS
    XCHAOS --- ---
    REDGUY: je to tu offtopic... ale pokud by si byl schopen i sémantické, nikoliv jen syntaktické analýzy :-) tak ti dojde, že obrat "na druhou stranu" znamená, že uvedené aplikace pokládám za protiklad "komerční služby".
    Kliknutím sem můžete změnit nastavení reklam