• ú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í
    HAPPPY_MAAN
    HAPPPY_MAAN --- ---
    BUKIN: hele jsi tu spatne, na toto bych se zeptal napr. v [ JAVA ] kde by mozna par lidi o jBPM neco mohlo vedet
    BUKIN
    BUKIN --- ---
    Kamarádka prosí o pomoc a poradu:

    Jakým způsobem lze v jBPM zjistit seznam procesů, které
    jsou v něm aktuálně k dispozici a je možné je spouštět a jaké všechny
    informace lze o těchto procesech z jBPM získat?
    Nás však bude zajímat hlavně tzv. procesní virtuální stroj (Process Virtual Machine = PVM), tedy nástroj ve kterém lze namodelované procesy spouštět...
    ANT_39
    ANT_39 --- ---
    FREAZ: Napises normalni makefile, vlezes do build adresare a napises
    make VPATH=../src/ -f ../src/Makefile

    To s tim linkovanim do bin moc nerozumim, proc je potreba, ale obecne budes mit targety typu $(BINDIR)/libble.so.0: x.o y.o z.o, a melo by to delat, co ma.

    Nedavno jsem neco takoveho psal pro svuj vikendovy hack https://github.com/pmachata/reflection , je tam petiradkovy configure a Makefile.in, ktery dohromady nedelaji nic vic, nez ze automatizuji to s tim VPATH. Skutecny makefile je v refl.mk.
    FREAZ
    FREAZ --- ---
    Ahoj, nemate nekdo nejakej peknej odkaz na clanek, kde by bylo vysvetleno, jak udelat Makefile, tak aby bral zdrojaky ze src, buildnul je do slozky build a nalinkoval do bin? Ted jsem se s tim hodinu trapil a nejde to.. Diky
    XCHAOS
    XCHAOS --- ---
    BUKIN: no, sice je tu ještě C++ klub, tohle je spíš o C ... ale nechápu tu negativní moderaci, ptát se na takovéhle věci sem patří spíš, než dřívější trollování.

    potřeboval bych upřesnit, co na tom má být implementováno v C++ ... to hledání teroristů doufám ne :-)
    BUKIN
    BUKIN --- ---
    Úkol je letos jiný, tohle je loňský příklad...
    Nedomnívám se, že by bylo třeba to psát za ni, ale spíš ji pomoci a poradit...neumí dokonale česky...
    Ujali byste se?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUKIN: Tenhle priklad znam :).
    Hele, ale tam toho po ni budou chtit vic. Jestli to za ni ma nekdo udelat uz prvni semestr, co bude delat ty dalsi?
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    BUKIN: Tohle uz padlo na OSY bud loni nebo predloni, at se podiva na wiki (a da zatracenyho majzla na ten anti-opisovaci system co tam ma).
    BUKIN
    BUKIN --- ---
    Našel by se tu někdo, kdo by mé kamarádce poradil a pomohl s úkolem na FIT ČVUT?
    Úkol asi tohoto typu, přesné zadání potom mailem...

    : jazyk C++, prgramator musi umit psat program, ktery využíva vlákna, napriklad: implementovat část programu, která bude žádat o snímky ze scanneru, ve získaném snímku bude vyhledávat hledané teroristy z databáze a o výsledcích hledání bude informovat pracovníka. Naší snahou je zpracovávat co nejvíce snímků a co nejrychleji...

    Pošta, předem moc děkuji a omlouvám se za spam...
    XCHAOS
    XCHAOS --- ---
    sice to tady řešíme "ne nutně C++", ale stejně... současně s C++ 11 se objevilo i C11, takže je to celkově zajímavé sledovat

    Stroustrup reveals what's new in C++ 11 | Application Development - InfoWorld
    http://www.infoworld.com/d/application-development/stroustrup-reveals-whats-new-in-c-11-187051?page=0,0
    XCHAOS
    XCHAOS --- ---
    BLAMI: tohle je jistě maximálně ontopic... je to ale API ke knihovně, která by ušetřila volání commandline API, budiž... ale je k tomu i nějaký uživatelský frontend?

    co si zákazníci žádají, je minimálně restart, jako bonus pak 2-3 další věci. spouštět to přes commandline je relativně snadné... faktem je, že vlastně by stačil přímo přístup přes ssh na xen konzoli, ale já to chci udělat přeci jen nepatrně elegantnější - proto snaha dobastlit tam ty ncurses...
    BLAMI
    BLAMI --- ---
    REDGUY: hlavne pokud mame hotove funkcni a bezpecne reseni jako treba libvirt + selinux (na kterym delaj lidi, kteri bezpecnosti a programovani rozumi)
    REDGUY
    REDGUY --- ---
    XCHAOS: já se o tom asi chci bavit s někým jiným, než s id REDGUY, ach jo... - Holt asi smula. Hadam ze nikdo jinej na tebe nema nervy. No, muzes si za to sam 8)
    XCHAOS
    XCHAOS --- ---
    já se o tom asi chci bavit s někým jiným, než s id REDGUY, ach jo...

    ale je fakt, že ncurses taky moc nevěřím. spíš se to udělá, že ta samotná akce bude provádět přes sudo a ta věc s ncurses poběží sama o sobě pod normálním userid. (ono to má i jiný důvod: poslední zbylé bezpečnostní opatření pro ssh je potom mít roota bez hesla, jen přes su od vybraných userů - a zakázat přes ssh login bez hesla: jenže my tam root heslo zřejmě stejně potřebujeme, z určitých důvodů)

    (podotýkám, že v současné verzi to dělá JENOM reboot a žádné ncurses tam nejsou)
    REDGUY
    REDGUY --- ---
    XCHAOS: že to administrátor neumí nainstalovat - ach jo. To co jsem psal _vubec_ neni o tom "že to administrátor neumí nainstalovat". Bud to nechapes, nebo strawmanujes. Ale to je jedno. Kdo chce kam, pomozme mu tam. Nezbyva nez pogratulovat k tomu, jak dobre sis dokazal zaridit ze ti za tohle je nekdo ochotnej zaplatit 8))

    A ne, poustet nejakej ncurses bastl, navic napsanej tebou, pod rootem, kdy k nemu ma pristup kdejakej uzivatel a na masine hostujici VM pro kdovikolik zakazniku bych si _fakt_ netroufl. Kdyz uz, tak webova sluzba s proverenou autentifikaci, omezenim request rate a jednoduchy ale bytelnym suid skriptem. Nebo jestli nemas rad webovy sluzby, tak i pres to ssh, ale zase s tim ze se uzivatel loguje na jeden vyhrazenej neprivilegovanej ucet, spolecnej pro vsechny zakazniky s naslednym rozlisovanim pres ssh klic. Ale proc to delat pricetne kdyz to jde udelat vizionarsky, ze? 8))
    XCHAOS
    XCHAOS --- ---
    REDGUY: to je diskutabilně pravda, nicméně tady je spíš kritické mít v sshd povolené přihlášení roota (protože se to dává jako shell uživatelům s taky-uid-0). tedy když už se to vůbec spustí (což není samozřejmé), pokládám to fakt za triviální.

    ale zase nechci, aby se ten uživatel vůbec mohl dostat na šel. (jako jo... přes nějakou on-demand konfiguraci sudo by to mělo jít taky, diskutabilně... tohle je záležitost programování, ne administrace... ale v zásadě nejbezpečnější mi to přijde udělat v C, než jako nějaký interpretovaný skript v něčem, kde budu doufat, že uživatel ten skript nemůže nějak přerušit...). takže i když by ten uživatel měl vlastní uid - pořád bych použil tenhle skript, akorát by se to volalo přes sudo. (což možná přeci jen udělám)

    ano, zajímají mi na tom ty bezpečnostní aspekty. ne trollování o chybějící chybové hlášce - tady není potřeba řešit čistě hypotetický problém že to administrátor neumí nainstalovat - tady se řeší, jestli je nahrazení shellu jednoúčelovou binárkou potenciální bezpečnostní díra, nebo ne.
    XCHAOS
    XCHAOS --- ---
    XCHAOS: brrr, to menu je ohavné... to jsem fakt čekal něco aspoň na úrovni těch textových ansi-barevných menu co dělá program dialog... uff
    REDGUY
    REDGUY --- ---
    XCHAOS: Hele, nejde o to jestli se to instaluje blbuvzdorne nebo ne. Jde o to, ze kdyz neco poustim na produkci, tak z toho chci dobrou diagnostiku. Protoze kdyz se pak neco casem posere, tak proste takovahle nulova diagnostika znamena, ze stravim mnohem vic cashu hledanim co se vlastne rozbilo. Nekdo omylem smaznul /usr/sbin/xm? Tak kurva ten program musi rict "Nepodarilo se mi spustit /usr/sbin/xm, protoze file not found", ne tise pokracovat a tvarit se ze je vsechno v poradku.

    A btw: extra binar a jemu odpovidajici extra polozka v /etc/passwd pro kazdyho uzivatele, navic aliasovana na roota? HAHAHAHAHA.
    XCHAOS
    XCHAOS --- ---
    REDGUY: no v podstatě... v té fázi ve které to je, se opravdu nepředpokládá, že by se to instalovalo nějak "blbuvzdorně" - protože jméno restartovaného serveru se před kompilací píše přímo jako #define, tak tak opravdu není ve fázi, kdy bych řešil chybové hlášky: kdo to umí editovat a zkompilovat, měl by umět i zkontrolovat co do toho napsal. asi bych v první řadě uvažoval o externím konfiguračním souboru, a pak teprve o chybových hláškách, kdybych řešil tohle...

    to, že to případně skončí bez chybové hlášky i čehokoliv jiného, je sice asi pro někoho potenciálně nepříjemné... ale není to zrovna bezpečnostní díra. spíše jsem se chtěl ujistit, že neexistuje žádná mizivá pravděpodobnost, že sshd z nějakého obskurního důvodu na základě nějaké nedokumentované enviroment proměnné spustí místo shellu uvedeného v /etc/passwd nějaký naprosto náhodně zvolený program... prostě uvažuju, jestli je bezpečné pouštět uživatele až takhle daleko.

    (ale zase moc netuším, jak jinak to udělat... především jim vůbec nechci dávat ssh... samozřejmě čistší je možná povolit jim sudo na tu jedinou binárku a nepouštět tohle pod rootem? ... nevím, nejsem admin...)
    REDGUY
    REDGUY --- ---
    XCHAOS: a jakou jinou chybovou hlášku navrhuješ vypsat - hm, nevim. Co treba "Oh shit, something's borken"? Anebo, pozor, opet vysoce radikalni myslenka pouzivaji super-advanced techniky, co treba pouzit funkci perror? Ale pravda, to je zase jedna z tech novinek co jsou v unixu jenom par desitek let 8))

    hostitelský stroj, na kterém by se nepodařil např. fork() by v první řadě ani po navázání ssh spojení nebyl schopný spustit tenhle skript Jo, jasne. Protoze mezi spustenim tohohle bastlu a pokusem o fork se nemuze stat nic co by forkovani znemoznilo. A execl se povede taky vzdycky, protoze ten spoustenej binar je vzdycky na svym miste a vzdycky ma spravny prava a...
    XCHAOS
    XCHAOS --- ---
    REDGUY: no, popravdě... hostitelský stroj, na kterém by se nepodařil např. fork() by v první řadě ani po navázání ssh spojení nebyl schopný spustit tenhle skript... a jakou jinou chybovou hlášku navrhuješ vypsat? co se dále může nepodařit?

    je fakt, že lidi tohle budou mít tendenci spouštět, když se něco rozbije. na hostitelském serveru s XEN virtuály ale neběží kromě toho sshd nic... a když se tam něco rozbije tak, že ani fork() ani exec(), tak se to především ani nedostane tak daleko, aby se tenhle skript spustil.

    takže buď ti leží na srdci duševní zdraví tak hloupého admina, který si to nainstaluje, aniž by chápal, co a proč vlastně dělá... a nebo patříš k těm lidem, co se neustále vrací z ulice zpět do bytu zkontrolovat, jestli vypli vodu v koupelně, zhasli a zamkli :-)
    Kliknutím sem můžete změnit nastavení reklam