Vlákno názorů k článku Začněte s Céčkem v Linuxu od Lubos Odraska - Nikdo z vas sem nenapsal rozumnou pripominku. Akorat...

  • Článek je starý, nové názory již nelze přidávat.
  • 23. 6. 2006 11:41

    Lubos Odraska (neregistrovaný)
    Nikdo z vas sem nenapsal rozumnou pripominku. Akorat si honite sve programatorske ega a snazite se ostatnim vnutit, ze VY jste ten nejlepsi programator a suerlinuxak. zrovan jsem prisel z diskuze ze zive.cz o windows vista a byl jsem zenchucenej. linuxaci tam akorat hazou spinu na win a zadny rozumny argument. opravdu jak maly deti... sam se radim k lilnuxove komunite, ale KDY UZ PROBOHA VYROSTEM?
  • 23. 6. 2006 12:21

    anonymní
    presne tak, v tejto diskusii picuju len prijebany matfyzaci ktory v zivote hovno dokazali a honia si nad zdrojakmi napisany7mi podla ansi C :)

    clanok je napisany vyborne, kto ma zaujem o ccko ten si vsetko potrebne dostuduje samostudiom

    dufam ze sa autor neda odradit tymito debilkami a bude pokracovat. clanok je napisany bez zbytocnych dristov a je lahko zrozumitelnyu aj pre bezneho uzivatela.

    naco by mal niekto citat 800 stranovu knihu o C ak si moze pozret 80 stranovu ze ?
  • 23. 6. 2006 14:02

    Biktop (neregistrovaný)
    Speciálně vám dvěma radím - vykašlete se na programování. Mluví z vás neschopnost něco kloudně napsat a komplexy vůči každému, kdo toho zvládnul více než vy. Ta narážka na matfyz je více než výmluvná - nejspíš další zakomplexovaný jedinec, který nezvládnul ani tu elementární matematiku, která se tam v prvním roce učí. Vždycky a v každé oblasti budou fušeři, průměrní a mistři. Vy patříte patrně do té první skupiny. Když bude truhlařinu učit nějaký fušér, taky se zástupci ostatních dvou skupin ozvou. Když už něco vykládat, tak pořádně! Nebo raději vůbec. Zvláště když se nejedná o oblast, která by trpěla zoufalým nedostatkem dokumentace, knížek a tutorialů.
  • 23. 6. 2006 15:05

    lolo (neregistrovaný)
    nemas ani paru do ktorej skupiny patrim pusa :)
    hovori zo mna akurat hnev, pretoze ludia sa sem snazia nieco vytvorit ale partia super turbo ultra genialnych hackerov a mega hyper fajnych programatorov ho hned zjebe aky je debil a ze nemal nic pisat
    samozrejme , nech nik nic uz nepise na root zavrieme to tu
    posledny nech zhasne svetlohttp://www.root.cz/clanky/zacnete-s-ceckem-v-linuxu/nazory/94617/odpovedet/
  • 23. 6. 2006 15:07

    anonymní
    kdeze, ja som VS uspesne skoncil,, preto viem ake individua (ktori tomu rozumeju tak po abstraktnej stranke a chyba im zdravy rozum a usudok) tam studovali.
  • 23. 6. 2006 15:19

    Kurt (neregistrovaný)
    Nic proti priteli, mozna nezvolili spravnou formu, ale trefili se nicmene presne do cernyho. Ty a tobe podobni je presne sorta rozumbradu, ktery kazdymu kdo ma o neco zajem (programovani, fyzika, chemie, cokoli) danej predmet svejma kecama neuveritelne rychle znechuti. Zrejme ti uslo, ze pointa celyho clanku neni jak psat v C ale "proste kdyz napisete gcc -g tak to udela tohle a kdyz v gdb napisete break tak to udela onohle. Zbytek si zjistete sami more" Proste takovej kickstart. Osobne mam taky za sebou jaderku ale tenhle geekovskej pristup jsem nemoh ani cejtit. A nemyslim si, ze bych to na poli programovani moc daleko nedotahnul... To ze me ale nedela kafrala a kibice!
  • 23. 6. 2006 16:19

    Biktop (neregistrovaný)
    Tak samozřejmě, taky je to určitá cesta. Je to jako stavět systémem "klidně to dělej blbě, vykašli se na olovnici, na tu zahradní zídku to stejně nebude mít takovej vliv, ale hlavně stav" nebo hrát na hudební nástroj stylem "nějak to chytni a něco z toho vyluzuj, hlavně že to nějak hraje". Nebo - když říkáš, že jsi z jaderky - "klidně se vykašlete na ověřování přepokladů té a té věty, hlavně že vám něco vyjde". Tak s tímhle přístupem bys hochu z tý školy letěl hned v prvním jáhru, taky jsem jejím absolventem a moc dobře si pamatuju na zkoušky z matematiky. Ten kámen úrazu přijde přesně v tý chvíli, kdy je třeba postavit něco většího nebo zahrát něco složitějšího nebo spočítat něco netriviálního. Svým přístupem mi připomínáte jistou nejmenovanou učebnici jazyka C, v níž příklady nefungovaly nebo dělaly něco jiného, případně jejich popis byl naprosto zcestný. Kam jste se kdo v programování dostal, to teda soudit nehodlám, jen se toho upřímně děsím. Pár programů od lidí typu níže - "nemám čas ani chuť ošetřovat výjimečné stavy programu" - už mi rukama prošlo. Hrůza se v tom zorientovat, funguje to tak na dobrý slovo, prostě prasárna. Škoda času a peněz, pokud to chce někdo o něco rozšířit nebo jinak modifikovat, je třeba to napsat celé znova. To je přesně výsledek onoho "hlavně že to nějak funguje a že tě baví programovat".
  • 23. 6. 2006 17:25

    anonymní
    a) clanok nie je o tom ako pisat program v ccku
    b) nie su to skripta z ccka

    musis si uvedomit ze tie priklady su pre ludi co si raz za cas nieco z dlhej chvile naprogramuju, nejaku databazu, ovladanie krokoveho motora cez LPT a pod.
    tychto ludi so spartanskym pristupom len zbytocne odradis.

    pre kopec stredoskolakov je tento clanok vyborny navod, neskorsie ked sa dostanu na VS pochopia viac.
  • 23. 6. 2006 18:41

    disorder (neregistrovaný)
    > pre kopec stredoskolakov je tento clanok vyborny navod, neskorsie ked sa dostanu na VS pochopia viac.

    preco az ked sa dostanu na VS? keby som mal cakat na VS, aby som vedel viac, tak by som musel cakat cez 5 rokov. na C som presiel z Pascalu uz na ZS a vobec si nemyslim, ze u niekoho kto uz "programoval v jiném operačním systému" by bol problem s pochopenim.
  • 24. 6. 2006 9:34

    ShaCK (neregistrovaný)
    Ano mas pravdu, a proto by ten program mel splnovat normu! Proc kdyz je to teda "jen tak" pro radost to ma byt blbe?
  • 24. 6. 2006 9:33

    ShaCK (neregistrovaný)
    Navíc to platí jako u tebou zminovaneho hudebniho nastroje, zlozvyky se teeeezko odnaucuji ...
  • 24. 6. 2006 9:32

    ShaCK (neregistrovaný)
    To rozhodne nedela, ale taky te tam mohli naucit, kdyz jsi takovy Pan Studovany, ze programy se musi psat dle norem!!! Pan Virius by ti za tohle dal!
  • 25. 6. 2006 17:01

    bez přezdívky
    A pokud by takto pristupoval k algebre tak by ho Pytlicek s Humhalem svorne ruku v ruce vynesli v zubech az na Karlak ;)
  • 25. 6. 2006 12:46

    bambas (neregistrovaný)
    TAk to se pletes kamo. Ja se psanim kody zivim. ale nechapu co to sem tahas. jak muzes soudit nekoho, aniz ho znas, popr. videl jeho praci? To spis TY trpis nejakym komplexem. A co se tyce literatury o C, ty uz bylo napsano mraky. A autor clanku se na literaturu odkazuje hned na zacatku. Zrejme autor nemyslel tento clanek a srrial jako ucebnici C, ale jak programovat v C pod linuxem. hawk
  • 25. 6. 2006 12:51

    Jakub Hegenbart
    Takže až v nějakém televizním pořadu pro automobilisty budou "jen předvádět nový Ford", klidně přejedou babičku na přechodu, protože to nebude "o tom, jak správně jezdit", ale "o tom, jak jezdit ve Fordu"?

    Živíš se v práci přejížděním babiček? :)* ;-)
  • 27. 6. 2006 11:49

    Novinsky (neregistrovaný)
    Souhlasím s Vami kdo prirovnava C k zabijeni Babicek (navic si asi nikdy nevsiml, ze v techto poradech opravdu predpisy porusuji) neni blb ale kolosalni blb !

    Asi by se melo do techto poradu taky napsat ze kazi ridice, kdyz parkuji na prechodu , jezdi rychle nebo stoji v krizovatce. No hruza ! Prece neni dulezite ze ten Ford ma ABS, ale ze jel rychle to si jiste kazdy divak hned vsim a zapsal.

    Nad nekterym prirovnanim clovak opravdu zasne !
    No reknu Vam v ty televizy to je jako kdyz reknete, ze program co neni presne podle normy zabije babicku.
  • 23. 6. 2006 12:54

    ShaCK (neregistrovaný)
    Pokud povazujes vyborny clanek kde jsou hned 3 chyby v nejtrapnejsim hello world programu, tak to potes a do programovani se radsi neser :-D matfyzaci jo? Jsem z obchodky, to snad vylucuje to,ze jsem programator? NE! Autor necht si prosim dopredu zjisti, jakym stylem se pisi programy v C pod Unixem SPRAVNE!!! Kdyby takhle programoval kazdy tak to bude pekna prasarna...
  • 23. 6. 2006 13:11

    anonymní
    ok, nebbude prasarna, ale nebudu aplikacie. s takymto pristupom bude mat linux vzdy 0,00000001 % uzivatelov a minimum aplikacii bude portovanych (desktopovych)

    sa zobud, vsetky komercne aplikacie su prasarna, skor ci neskor to pride aj na linux. nie kazdy ma cas/chut zasierat/formatovat/komentovat/osetrovat vynimky kodu.

    3 chyby v nejtrapnejsim hello world programu - pozri sa ako sa vyucuje programovanie na skolach, potom zmenis nazor.


    este jeden joke:

    High School/Jr.High
    =====================

    10 PRINT "HELLO WORLD"
    20 END

    First year in College
    =====================

    program Hello(input, output)
       begin
         writeln('Hello World');
       end.

    Senior year in College
    =====================

    (defun hello
        (print
         (cons 'Hello (list 'World))))

    New professional
    =====================

    #include <stdio.h>
    void main(void)
    {
       char *message[] = {"Hello ", "World"};
       int i;

       for(i = 0; i < 2; ++i)
         printf("%s", message[i]);
       printf("\n");
    }

    Seasoned professional
    =====================

    #include <iostream.h>
    #include <string.h>

       class string
       {
       private:
         int size;
         char *ptr;

       public:
         string() : size(0), ptr(new char('\0')) {}

         string(const string &s) : size( s.size)
         {
           ptr = new char[size + 1];
           strcpy(ptr, s.ptr);
         }

         ~string()
         {
           delete [] ptr;
         }

         friend ostream &operator <<(ostream &,
                                   const string &);
         string &operator=(const char *);
       };

       ostream &operator<<(ostream &stream, const string &s)
       {
         return(stream << s.ptr);
       }

       string &string::operator=(const char *chrs)
       {
         if (this != &chrs)
         {
           delete [] ptr;
          size = strlen(chrs);
           ptr = new char[size + 1];
           strcpy(ptr, chrs);
         }
         return(*this);
       }

       int main()
       {
         string str;

         str = "Hello World";
         cout << str << endl;

         return(0);
       }

    Master Programmer
    =====================

    [
       uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
       ]
       library LHello
       {
           // bring in the master library
           importlib("actimp.tlb");
           importlib("actexp.tlb");

           // bring in my interfaces
           #include "pshlo.idl "

           [
           uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
           ]
           cotype THello
        {
        interface IHello;
        interface IPersistFile;
        };
       };

       [
       exe,
       uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
       ]
       module CHelloLib
       {

           // some code related header files
           importheader(<windows.h );
           importheader(<ole2.h );
           importheader(<except.hxx );
           importheader(" pshlo.h");
           importheader("shlo.hxx");
           importheader("mycls.hxx");

           // needed typelibs
           importlib("actimp.tlb");
           importlib("actexp.tlb");
           importlib("thlo.tlb");

           [
           uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
           aggregatable
           ]
           coclass CHello
        {
        cotype THello;
        };
       };

       #include "ipfix.hxx"
       extern HANDLE hEvent;
       class CHello : public CHelloBase
       {
       public:
           IPFIX(CLSID_CHello);

           CHello(IUnknown *pUnk);
           ~CHello();

           HRESULT  __stdcall PrintSz(LPWSTR pwszString);

       private:
           static int cObjRef;
       };

       #include <windows.h>
       #include <ole2.h>
       #include <stdio.h>
       #include <stdlib.h>
       #include "thlo.h"
       #include " pshlo.h"
       #include "shlo.hxx"
       #include "mycls.hxx"

       int CHello:cObjRef = 0;

       CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
       {
           cObjRef++;
           return;
       }

       HRESULT  __stdcall  CHello::PrintSz(LPWSTR pwszString)
       {
           printf("%ws\n", pwszString);
           return(ResultFromScode(S_OK));
       }


       CHello::~CHello(void)
       {

       // when the object count goes to zero, stop the server
       cObjRef--;
       if( cObjRef == 0 )
           PulseEvent(hEvent);

       return;
       }

       #include <windows.h>
       #include <ole2.h>
       #include "pshlo.h"
       #include "shlo.hxx "
       #include "mycls.hxx"

       HANDLE hEvent;

        int _cdecl main(
       int argc,
       char * argv[]
       ) {
       ULONG ulRef;
       DWORD dwRegistration;
       CHelloCF *pCF = new CHelloCF();

       hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

       // Initialize the OLE libraries
       CoInitiali, NULL);

       // Initialize the OLE libraries
       CoInitializeEx(NULL, COINIT_MULTITHREADED);

       CoRegisterClassObject(CLSID_CHello, pCF,
           CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE,
           &dwRegistration);

       // wait on an event to stop
       WaitForSingleObject(hEvent, INFINITE);

       // revoke and release the class object
       CoRevokeClassObject(dwRegistration);
       ulRef = pCF->Release();

       // Tell OLE we are going away.
       CoUninitialize();

       return(0); }

       extern CLSID CLSID_CHello;
       extern UUID LIBID_CHelloLib;

       CLSID CLSID_CHello = {
               /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
           0x2573F891,
           0xCFEE,
           0x101A,
           { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
       };

       UUID LIBID_CHelloLib = {
               /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
           0x2573F890,
           0xCFEE,
           0x101A,
           { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
       };

       #include <windows.h>
       #include <ole2.h>
       #include <stdlib.h>
       #include <string.h>
       #include <stdio.h>
       #include "pshlo.h"
       #include "shlo.hxx"
       #include "clsid.h"

       int _cdecl main(
       int argc,
       char * argv[]
       ) {
       HRESULT  hRslt;
       IHello        *pHello;
       ULONG  ulCnt;
       IMoniker * pmk;
       WCHAR  wcsT[_MAX_PATH];
       WCHAR  wcsPath[2 * _MAX_PATH];

       // get object path
       wcsPath[0] = '\0';
       wcsT[0] = '\0';
       if( argc   1) {
           mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
           wcsupr(wcsPath);
           }
       else {
           fprintf(stderr,
                   "Object path must be specified\n");
           return(1);
           }

       // get print string
       if(argc   2)
           mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
       else
           wcscpy(wcsT, L"Hello World");

       printf("Linking to object %ws\n", wcsPath);
       printf("Text String %ws\n", wcsT);

       // Initialize the OLE libraries
       hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);

       if(SUCCEEDED(hRslt)) {

           hRslt = CreateFileMoniker(wcsPath, &pmk);
           if(SUCCEEDED(hRslt))
        hRslt = BindMoniker(pmk, 0, IID_IHello,
                         (void **)&pHello);

           if(SUCCEEDED(hRslt)) {

        // print a string out
        pHello->PrintSz(wcsT);

        Sleep(2000);
        ulCnt = pHello->Release();
        }
           else
        printf("Failure to connect, status: %lx", hRslt);

           // Tell OLE we are going away.
           CoUninitialize();
           }

       return(0);
       }

    Apprentice Hacker
    =====================

    #!/usr/local/bin/perl
    $msg="Hello, world.\n";
    if ($#ARGV >= 0) {
       while(defined($arg=shift(@ARGV))) {
         $outfilename = $arg;
         open(FILE, ">" . $outfilename)
               || die "Can't write $arg: $!\n";
         print (FILE $msg);
         close(FILE) || die "Can't close $arg: $!\n";
       }
    } else {
       print ($msg);
    }
    1;

    Experienced Hacker
    =====================

    #include <stdio.h>
    #define S "Hello, World\n"
    main(){exit(printf(S) == strlen(S) ? 0 : 1);}

    Seasoned Hacker
    =====================

    % cc -o a.out ~/src/misc/hw/hw.c
    % a.out

    Guru Hacker
    =====================

    % cat
    Hello, world.
    ^D

    AXE System programmer
    =====================

    LL0:
             .seg    "data"
             .seg    "text"
             .proc 04
             .global _main
    _main:
             !#PROLOGUE# 0
             sethi   %hi(LF26),%g1
             add     %g1,%lo(LF26),%g1
             save    %sp,%g1,%sp
             !#PROLOGUE# 1
             .seg    "data1"
    L30:
             .ascii  "Hello, World\012\0"
             .seg    "text"
             .seg    "data1"
    L32:
             .ascii  "Hello, World\012\0"
             .seg    "text"
             set     L32,%o0
             call    _strlen,1
             nop
             mov     %o0,%i5
             set     L30,%o0
             call    _printf,1
             nop
             cmp     %o0,%i5
             bne     L2000000
             nop
             mov     0,%o0
             b       L2000001
             nop
    L2000000:
             mov     0x1,%o0
    L2000001:
             call    _exit,1
             nop
    LE26:
             ret
             restore
            LF26 = -96
             LP26 = 96
             LST26 = 96
             LT26 = 96
             .seg    "data"

    0000000 0103 0107 0000 0060 0000 0020 0000 0000 0000020 0000 0030 0000
    0000
    0000 0054 0000 0000 0000040 033f ffff 8200 63a0 9de3 8001 1100 0000
    0000060
    9012 2000 4000 0000 0100 0000 ba10 0008 0000100 1100 0000 9012 2000 4000
    0000 0100 00 ba10 0008 0000100 1100 0000 9012 2000 4000 0000 0100 0000
    0000120 80a2 001d 1280 0005 0100 0000 9010 2000 0000140 1080 0003 0100
    0000
    9010 2001 4000 0000 0000160 0100 0000 81c7 e008 81e8 0000 0000 0000
    0000200
    4865 6c6c 6f2c 2057 6f72 6c64 0a00 4865 0000220 6c6c 6f2c 2057 6f72 6c64
    0a00 0000 0000 0000240 0000 000c 0000 0608 0000 006e 0000 0010 0000260
    0000
    060b 0000 006e 0000 0014 0000 0286 0000300 ffff ffec 0000 0020 0000 0608
    0000 0060 0000320 0000 0024 0000 060b 0000 0060 0000 0028 0000340 0000
    0186
    ffff ffd8 0000 004c 0000 0386 0000360 ffff ffb4 0000 0004 0500 0000 0000
    0000 0000400 0000 000a 0100 0000 0000 0000 0000 0012 0000420 0100 0000
    0000
    0000 0000 001a 0100 0000 0000440 0000 0000 0000 0020 5f6d 6169 6e00 5f70
    0000460 7269 6e74 6600 5f73 7472 6c65 6e00 5f65 0000500 7869 7400
    0000504

    % axe_generate -f system.uhdl
    Application 'Exchange' generated
    2324042350000000 source code lines
    No Errors detected.
    Hardware retrieval...done OK
    Certification Test...done OK
    Packing..............done OK
    Delivery.............done OK
    Application 'Exchange' delivered to customer 23456000 bytes/sec.
    End processing, 2345 seconds.

    Ultra high level programmer
    =====================

    system.uhdl :

    SYSTEM
       CREATE ScreenWin
         SIZE 20000000/Unit=One
         DESTINATION Order.dest[One]
         OUTPUT CHARACTER['Hello world']
       END
    END

    New Manager
    =====================

    10 PRINT "HELLO WORLD"
    20 END

    Middle Manager
    =====================

    mail -s "Hello, world." bob@b12

    Bob, could you please write me a program that prints "Hello, world."? I
    need
    it by tomorrow.

    ^D

    Senior Manager
    =====================

    % zmail all

       I need a "Hello, world." program by this afternoon.

    Chief Executive
    =====================

    % message
       message: Command not found
       % pm
       pm: Command not found
       % letter
       letter: Command not found.
       % mail
       To: ^X ^F ^C
         help mail
       help: Command not found.
       >what
       what: Command not found
       >need help
       need: Command not found
         damn!
       !: Event unrecognized
       >exit
       exit: Unknown
       >quit
       %
       % logout

       Bipppp ! Mrs. Thompson? Please page Tommy for me. NOW!
  • 23. 6. 2006 14:28

    Biktop (neregistrovaný)
    "sa zobud, vsetky komercne aplikacie su prasarna, skor ci neskor to pride aj na linux. nie kazdy ma cas/chut zasierat/formatovat/komentovat/osetrovat vynimky kodu."

    Tak tohle může napsat jen naprostý diletant! Měl byste se věnovat raději nějaké jednodušší práci, na programování zjevně nemáte.
  • 23. 6. 2006 14:33

    ShaCK (neregistrovaný)
    Presne tak :)

    nie kazdy ma cas/chut zasierat/formatovat/komentovat/osetrovat vynimky kodu == ne kazdy muze a mel by byt vubec programator, ze ano
  • 23. 6. 2006 14:32

    ShaCK (neregistrovaný)
    Aha, takze podle tebe kdyz teda vsichni ostatni pisou jak prasata tak ty muzes taky jo? to je super, pak tedy kdyz ostatni odhazuji odpadky na ulici tak ja budu taky? No s tvou filosofii si bez pouzivat windowsy, taky ti spousta lidi rekne pouziva je kazdy :-D

    Dik za joke, je dobrej :) ikdyz link misto dlouhyho postu by bodnul vic priste
  • 23. 6. 2006 16:02

    anonymní
    Tak ta poznamka o matfyzakoch bola dost uboha. Mozete sa pochvalit konkretnou skolou, podla ktorej studentov takto zovseobecnujete? Ja poznam niekolko matfyzakov, ktori by strcili mnozstvo komercnych programatorov do vrecka napriek tomu, ze vedia pisat C podla normy.

    Rozculuju ma ludia, ktori si vylievaju zlost a riesia komplexy na forach, pricom "v zivote hovno dokazali". Budem len rad, ak som sa vo vas zmylil.

    Sudiac podla vasho prispevku, k slovenskej gramatike mate podobny vztah ako k ANSI norme C.
  • 24. 6. 2006 1:21

    Jakub Hegenbart
    Připomínka, že autorem uvedený kus kódu je silně nekorektní, není rozumná připomínka. No dobře, to si zapamatuju. :-D
  • 25. 6. 2006 14:34

    Niobi (neregistrovaný)
    ja ti odpovim na tvou otazku lide, ktery se chovaj tak jak tito nevyrostou nikdy a ti chytrejsi z nich vyrostou az nebude na co hazet spinu > z toh vypliva az nebude zadny jiny OS jak Tux :-)