• ú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 --- ---
    REDGUY: tak samozřejmě... jestli se něco vejde do paměti, nebo ne, to během compile-time nevím. nicméně třeba by pomohlo vidět ten vygenerovaný kód, abych viděl, co od toho čekat, nebo tak?

    prostě je víc způsobů, jak přemýšlet o nějaké aplikaci - skriptování vs. kompilovaná aplikace, SQL dotazy vs. nativní storage, objektový vs. neobjektový návrh aplikace, apod. - já hledám nějaký nový level, na který se posunout, protože se zatím plácám uprostřed stejného bastlení, jaké probíhá masově všude kolem mě (a představuje masivní plýtvání zdroji, podle mě)

    REDGUY: viz upřesňující zmínka o in-house vývoji :-)
    REDGUY
    REDGUY --- ---
    XCHAOS: protože se předem dovím, že jsem napsal dotaz, který třeba nejde jednoduše překompilovat, či tak něco - co myslis tim "jednoduse prekompilovat"? Nechces spis rict "dostatecne zoptimalizovat"? To se sazmorejme nedozvis ani v tvem pripade, protoze ta optimalizace zalezi na databazi a tu behem compile time nemas. Takze, co "tak neco"?
    XCHAOS
    XCHAOS --- ---
    REDGUY: jo, REPAIR table pomohlo, to je fakt :-)
    REDGUY
    REDGUY --- ---
    XCHAOS: Sorry, ale fakt nechapu co se vlastne snazis rict. Nejdriv placas neco o tom, ze je ostuda kdyz ma mysql problemy kdyz cela tabulka nevejde do pameti i kdyz se se sloupcema nepracuje (wtf, mimochodem), ted najednou rikas ze velikost sloupcu nehraje roli. Co se vlastne snazis rict? Ze to mas rozbity a netusis proc? Zkousel jsi ten repair table, jak jsem psal? Jakej storage engine ma ta tabulka?
    XCHAOS
    XCHAOS --- ---
    ISTEVE: faktem je, že s velikostí paměti vs. tabulky to nejspíš souvisí, protože chyba se začala projevovat až od určitého množství záznamů - a i výsledky které mi našel na tenhle MySQL error Google naznačují to samé - že se to začalo projevovat až po řádově podobném množstvím záznamů (přes 10 000).

    a faktem je, že cosi, co se projevuje až od určitého množství záznamů, ti většina adminů bude řešit přiobjednáním paměti (zvlášť pokud vývoj aplikace neprobíhá in-house, což je u opensource/free software velmi běžné, citatation doufám not needed :-)
    XCHAOS
    XCHAOS --- ---
    REDGUY: prospěje mě - protože se předem dovím, že jsem napsal dotaz, který třeba nejde jednoduše překompilovat, či tak něco :-)

    jde o to, že nemám rád, když mi něco přestane fungovat za běhu. to se normálně děje sysadminům, ne programátorům.
    ISTEVE
    ISTEVE --- ---
    XCHAOS: V tom pripade doufam ze neurazi, kdyz to budu povazovat za bullshit vycucanej z prstu -- at uz tebou jakozto back story, nebo autorama reseni "prikoupime pamet", nebo (coz povazuju za nejpravdepodobnejsi) si spojujes dve veci ktery spolu nesouvisej.

    XCHAOS: "evidentne"? [citation needed], ale ponevadz odmitas dat solidni dukaz, pak nejen ze to neni evidentni, ale jako bonus to smrdi bullshitem
    XCHAOS
    XCHAOS --- ---
    REDGUY: měl jsem tam blbých 10 000 záznamů a snažím se vydedukovat, co je tam naprogramované blbě. Což není snadné a velikost sloupců v tom velkou roli hrát nebude:

    mysql> SELECT id FROM guestbook WHERE (UNIX_TIMESTAMP(datum) + 3600*24 < UNIX_TIMESTAMP(NOW()) AND hodnoceni >= 0) ORDER BY id DESC LIMIT 64;ERROR 1030 (HY000): Got error 134 from storage engine
    REDGUY
    REDGUY --- ---
    XCHAOS: Podle mě se to otázky pre-kompilace SQL dotazů docela dotýká porad cekame az nam vysvetlis cemu presne ta kompilace prospeje a jak moc.
    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)
    REDGUY
    REDGUY --- ---
    XCHAOS: u MySQL evidentně hraje roli to, zda se celý obsah tabulky vejde do paměti - Chces rict, ze si myslis ze kdyz mam 10GB tabulku a 1GB pameti, tak s ni MySQL neumi pracovat? Opravdu se snazis rict hole?
    XCHAOS
    XCHAOS --- ---
    REDGUY: ano, skutečně mi to překvapilo. Nicméně potom už neprošel ani ten s nulou, tak to asi byla nějaká zanedbatelná náhoda (šlo prostě o množství výsledků v dotazu, kterých je pro lépe a lépe hodnocené komentáře logicky méně a méně).

    Pokud ale dělám jen SELECT id FROM... tak se ta data se kterými dotaz pracuje do paměti bohatě vejdou a dotaz je navíc velice svižný.

    Podle mě se to otázky pre-kompilace SQL dotazů docela dotýká - i když jen letmo - protože jak je vidno, tak SQL není tak chytré, jak se snaží předstírat (aspoň MySQL ne)... prostě fakt rád bych zase dělal na kompilovaném projektu, kde některé věci jsou jasné předem a ne až za běhu.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: mno, viz předchozí: u MySQL evidentně hraje roli to, zda se celý obsah tabulky vejde do paměti i v případě, že WHERE formule s danými sloupci nepracuje. Velice trapné :-)

    Jinak já nikoho omezovat nehodlám, ale taky mě nějak z principu nesednou centralizovaná clusterová/cloudová řešení - ne, že bych je chtěl zakazovat, ale prostě se mi je nechce implementovat. To, na co si stěžuješ je asi stejné, jako když ti u Apache nebo MySQL (viz předchozí) dojde paměť. To se děje dnes a denně a lidé používající na takové platformně dnešní CMS bastly jsou v takovém případě tak jako tak v koncích.

    Opravdu nechápu, proč by měly statisíce až miliony lidí používat chybný neoptimalizovaný kód na např. dvojnásobném množství clusterovaných serverů, než by mělo být nezbytně potřeba :-)
    REDGUY
    REDGUY --- ---
    XCHAOS: Sorry, ale jestli tenhle dotaz:

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

    projde, zatimco

    SELECT count(0) FROM guestbook WHERE hodnoceni>-1 ORDER BY id DESC LIMIT 64;

    vytuhne, tak nejde o nejaky predstirani, ale proste je nekde neco rozbity. Ne ze by me to MySQL prekvapilo, ale stejne.
    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í).
    Kliknutím sem můžete změnit nastavení reklam