Re: basic [OFF]

2007-10-17 bef zés khraath
 Éppen ezeket kellene kerülni. Persze nem a Linux kernelben, mert azt 
 kifejezetten
 gcc-re írják. Nyilván van rá ok - ezt nem tudom.

Persze, hogy van rá ok. A szabvány nem dogma rendszer, hanem olyan szabályok
összesége, ami (elméletben) biztosítja a hordozhatóságot, és a nyelv működését.
Pont ezért nem tilthatnak, vagy szabályozhatnak mindent, mert az akár nyelv
használhatóságát is veszélyeztetné egyes platformokon, vagy akár összeségében
is.
Például a szabványokban legtöbbször egyes algoritmusokra (mint rendezés, 
keresés),
csak az van megszabva, hogy milyen gyors legyen, és nem maga a megvalósítás.
Ezzel lehetőséget adnak a fordítók íróinak, hogy platformtól, esetleg
helyzettől függően más és más megvalósítást használjanak, ami a program
hordozhatóságát, sebeségét igen csak javítja, de akár ugyan ennyi gonddal is
járhat.
Na meg a szabványban is vannak kiskapuk, és még ahol nincsenek, ott is lehet
máshogy értelmezni a leírtatkat.
Nem nagyok a fordítók közötti különbségek, és ha ismerünk egy ilyen problémát,
akkor nem tart a legtöbbször öt percnél tovább átírni a kódot.
Elég ritka, hogy keresztplatformos fejlesztésen kívül máshol is megjelenének
konkrét problémaként ezek kivételek, bár a legtöbb fordító (lásd gcc) pontos
listát vezet róluk.

 Attól, hogy valahol találunk egy új lehetőséget, még nem kell okvetlenül 
 használni.
 Csak komoly indokkal. Minden új lehetőség visszafelé inkompatibilitást  okoz.

Nem csak új nyelvi elemekre vannak ilyen kivételek. Például Cpp-ben a
sablonok feldolgozására több model is létezik, és nem ma került a sablon
a nyelvbe.

Khraath

_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: basic [OFF]

2007-10-16 bef zés khraath
Szia

 A TP 6.0 (~1997) mar tudott OOP-t. Lehet, hogy nem tanitottak,
 vagy tanultak, de mar tudta. En is C/C++ -t hasznalok (most),
 de azert igaz, ami igaz.
 Hogy a GNU Pascal tudja-e, az passz.

Dolgoztam Delphis cégnél, és akkor Object Pascalt is megnéztem.
Én voltam a hülye, mert nem írtam, hogy az OOP alatt én a 
Simulás viselkedés alapú OOP-t értem(lásd C++), márpedig az Object Pascal 
nem ezt a szemléletet követi. Tényleg csak egy réteg a strukturált 
rész felett.
A viselkedés alapú szemlétet lényege pont az, hogy egy objektumot 
NEM az adattagok, hanem a viselkedése(függvényei) határoznak meg. Ezért 
lehet a C++-ban elrejteni az adatagokat még a gyermek osztályok elől is
(igaz, nem teljesen),ami egy bázis osztálynál nagyon jól jöhet, 
és persze ezért lehet függvényobjektumokat létrehozni.

Khraath
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: basic

2007-10-16 bef zés khraath

 Mert? Pascalban is van pointer, ha jól emlékszem, szóval olyan
 rekordokat kell tárolni a veremben, aminek egyik mezője tárolja a
 típust, a másik az értékre mutató pointert. Persze Java-ban sokkal
 egyszerűbb lenne megcsinálni, mert van reflection - viszont nem a
 reflection-nel kell elkezdeni a programozás tanítását.

Igen. Akár C-ben, de hol az adat biztonság fordítási időben? Persze
futás időben lehet hiba üzenetet írni, ha mégis valami gond van, de
attól gond nem múlik el. Ha egy repülőtéri irányító rendszerhez kellene
írnom egy hasonló szerkezetet, akkor biztosan nem választanám ezt a
módszert, hanem valami olyan megoldást keresnék, ami nem lenne egyenes
út a Repülő katasztrófák sorozatba.
Itt nem a példa megoldása volt a lényeg, hanem, hogy még az általánosan
használható nyelvek, mint a Pascal, sem mindenhatóak. Ne is beszéljünk
az olyan nyelvekről, mint a Prolog.

 Mert? Pascalban is lehet rávezető feladatot adni, struktúrális nyelven
 is lehet objektum-orientáltan programozni, a
 f(object, data);

 és a
 object-f(data);

Nagyon sok a különbség a kettő között. Lehet, hogy nem látod, de sok van.
Az, hogy írás módban nagyon hasonlít, és a végeredmény azonos lesz, nem
jelenti, hogy a működés is megegyezik.
Itt van rá egy példa:
f(object, data)
Eddig jó, de ha mondjuk több Object típus is létezik (pl GUI-ban
több féle widget is van), akkor vagy megírsz egy külön függvényt
mindegyikhez, vagy mutatót adsz át. Na már most, a kód használóját
mi akadályozza meg, hogy Objectként adjon át egy nem Objectet?
Semmi. A fordító se fog szólni. Persze f-ben ellenőrízheted a dolgot, de
szinte biztos, hogy egy hiba üzenet lesz és kész. De még f hívása előtt
se mész semmire azzal, hogy tudod, hogy nem Object. Megoldani nem tudod,
csak jelezni a problémát.
Másik oldal: mi garantálja, hogy f nem vágja tönkre objectet? Honnan tudom,
hogy csak a data mezőhöz nyúlt?
Cpp-ben például ez(f(data)) egy virtuális függvény lesz, ami egyrészt
biztosítja, hogy bármely Object leszármazott saját megvalósítást adjon
f-nek, és persze garantált, hogy object egy Object (vagy leszármazottja).
Ha véletlenül (vagy hanyagságból) benézed mégis a dolgot, akkor a fordító
biztos leáll hibával. Mivel az object saját f-jét hívtad, így nagyon
valószínű, hogy nem rontja el magát.
Tanúság: jól megirt osztály szerkezet nem csak a végfelhasználótól, hanem
még a karbantartótól, és más kód felhasználóktól is véd (azaz magadtól ;)).

Khraath
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: basic [OFF]

2007-10-16 bef zés khraath
 Mire gondolsz?

 A C nyelv 1974-ben jelent meg fordító és a Unix forrásprogram formájában.
 1976-ban pedig az első C könyv  (Kernighan-Ritchie), amit kvázi szabványnak
 lehet tekinteni. 1989 végén az ANSI szabvány, .

 Változó láthatóságban nem volt  különbség, legfejlebb a függvénydeklarációk
 bővültek ki felfelé (majdnem) kompatibilisen, és a változó deklarációk egy
 kicsit (pl. const).


Azért voltak ott más változások is, és sajnos a szabvány csak egy dolog.
Például a // nem volt benne a szabványban (talán most sincs), és mégis
szinte minden fordító ismeri. A hangsúly a szintén van. Persze ott a
-, és a . operátorok kérdése. Ezek jelentése is változik fordítónként.
Aki fejlesztett kereszt-platformra, és több fordítót is kellett használni,
biztos találkozott ilyen hibával.
Számunkra nem jelentős egyik sem, de képzeld magad egy első programot író
középiskolás helyébe, aki nem tudja, hogy miért nem működik a könyvbeli
példa. Gondolj bele, hány órát ültünk az első időben egy hiba felett, mert
nem tudtuk, hogy a fordító éppen miért sír. A C fordítók sokszor félrevezető
hiba üzenetet adnak, és sok tapasztalat kell, hogy tudjuk, mikor miért jelenik
meg egy hiba üzenet. Ezen a levelező listán is minden 5-6 szállból egy valami
fordítási hibával foglalkozik. Szinte minden forrásból telepítésnél
vannak figyelmezezések (a kernelben is).
Sokkal jobb egy olyan nyelven kezdeni, ahol nincsenek ilyen kezdő buktató
problémák.
Első időben amúgy sem a gyors, megbízható program az elsődleges cél, hanem
a működkő program. Első programomnál nem nagyon foglalkoztatott, hogy 0.1
másodpercet javíthatnék rajta, ha más rendezést használok, vagy nem
szabadítottam fel magam után megfelelően az erőforrásokat (nem tudtam róla :)).
Most meg 3 napig nézegetek egy láncolt listát, hogy hogyan lehetne még gyorsabb
a létrehozás, meg a szürés, és miként tudnék még néhány kilobyte memóriát
spórolni a new hívásokból, hogy biztosan elég legyen a memória az összes 
elemnek. Vagy milyen új memória kezelőt készítsek, hogy ha elfogy mégis 
tudjak valamit felszabadítani.

Khraath
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: basic [OFF]

2007-10-16 bef zés khraath
 Ez szerintem csak elony. Lehet hogy a nyelv kesobb konvertal ide/oda, de
 indulaskor legyen tisztaba a kulonbozo formatumok elonyeivel es
 hatranyaival. Kulonosen azzal, hogy valassza ki a feladathoz illot.

Előny, ha olyan nyelvre lépsz tovább, ahol ez fontos, mint a C, vagy Java, de
mi van azokkal, akik PHP-val folytatják? Nekik fontos tudni, hogy a C-ben csak
a blokk elején deklarálhatsz változót? Vagy, egy C-snek, hogy a Javaban hogyan
vezetünk be egy új függvényt, és hogyan kell megadni a kivételeket? Vagy melyik
stream átalakítás után mi lesz az eredmény?
Vagy egy Java programozó tudja, hogy az enum-ok hogy kerülnek a memóriába
Cpp-ben? Vagy, hogy a bitset hogyan működik, és hogyan lesz tárolva?
Természetes, hogy egy függvénynek a használat előtt legalább deklarálva kell
lennie, vagy a változók sem a semmiből tűnek elő, de a többit elég később
megtanulni az adott nyelvnél.
Teljesen igazad van, ha egy adott nyelvet, és annak oktatását nézzük, de
álltalánoságban nem várhatod el még azt sem, hogy az ősnyelvek viselkedését
ismerjék a programozók, vagy a piacon éppen felfutott nyelvek minden apró
szeszélyével tisztába legyenek.

Szerintem a tanár dolga, hogy az adott nyelv ilyen sajátoságait elmondja,
vagy általánosan beszéljen arról, hogy az általában minden nyelvben
megtalálható típusok (char, int, float) közül egy adott problémánál mit
érdemes használni. Fejlődni meg gyakorlással, forrás olvasással, és a
referencia bújással lehet. Referenciában ott a szabály, a forrásokban
pedig különböző megoldások, a gyakorlat meg eldönti, hogy éppen mi
a jó.

Khraath
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: basic [OFF]

2007-10-16 bef zés khraath
 Mire gondolsz? Nem találkoztam ilyennel. Minden C könyvben benne van,
 hogy 
 
 x - yugyanaz, mint   (*x).y
Ha jól emlékszem (régen volt, még nem mingw-t használtam és volt Windows a 
gépemen) a Visual Studio 6 alatt volt gondom. Szerinte nem, és át kellett 
írnom az összes x-y-t (*x).y -ra.
Sajnos a hiba üzenetre nem emlékszem.
Amúgy is mindegy, mert a könyveket a fordítók készítői nem olvassák, csak mi, 
és sajnos a könyvek írói sokszor a fordítókat nem használják, amiket mi... 
Csak azért ezt írtam, mert mély nyomot hagyott bennem, hogy éjjel kettőkor 
reboot után az elvileg kész programmal még volt egy jó félórás köröm.
De, ha jobban megnézed, akkor most is van, hogy nem csak platform, hanem 
fordítóhoz kapcsolódó függőségek/makrók vannak a programok kódjában.
Vagy info gcc-ben szét nézzel. Sok helyen előfordúl (főleg Cpp-s részekben), 
hogy a Borland modelt követjük, vagy éppen ATT-t. Már pedig valami 
különbségnek kell lennie, ha különböző modelek létetznek a szabványra.

Khraath
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: basic [OFF]

2007-10-16 bef zés khraath
 Igen :) Most magyaraztam valakinek, hogy  miert kerul egy sql tabla
 varchar mezojebe 0, amikor a bemeno ertek _51...
 Nem ertette, hogy a php-ban egy kifejezesben a string atalakul integer-e,
 majd vissza.  Nem tudom min not fel, de foleg a php miatt nem volt
 tisztaban a tipusok jelentosegevel.
Sajnos ez igaz, de akár Pascal alatt is nevelkedhetett, mert ezt már 
a php dokumentációban kellett volna megnéznie, és nem tette, ami ugye 
valamit elárúl :D.

 A masik ilyen klasszikus hiba, amire pl a C forditok haklisak, ha
 inicializalatlan valtozokat hasznal. Ez ez is hordozhatosag, mert senki
 nem garantalja, hogy az uj valtozo csupa 0 bitekbol fog allni.
Hát ez nagyon igaz. Én is -Wall -pedantic -kal fordítok, amíg fejlesztek. 
Jogosan is szól, már volt nekem is ilyen hibám figyelmetlenség miatt.
 
 Oktattal mar? En foleg egyetemistakat es felnoteket tanitottam/tanitok. De
 nagyon massziv idokorlatok vannak. Ha jol kitalalt feladatot kap, akkor
 gyakorolni fog oran kivul is. De nagyon nehez am jol kitalalt tanpeldat
 csinalni: ne legyen tul mesterkelt, hajanal fogva elocibalt, de ne is
 legyen tul bonyolult...
Megnyugtatok mindenkit, hogy csoportokat még nem vezettem téves ösvényekre.
De tanított már egy-tíz tanár, és kevesebben voltak a jók, mint a rosszak.
Gondolom ezért se akartam soha órát tartani. Túl nagy a felelőség, és nem 
hiszem, hogy jól tudnék oktatni.
Abban viszont igazad van, hogy kevés az idő. Egy gyakorlatnak 2-4 órásnak 
kellene lennie, mint más szakokon a laboroknak, de nekünk csak 50 perc 
jutott (minusz katalógus).
 
 Ez nagyon sok idot igenyel a tanartol is, es sajnos neki is egyre kevesebb
 van. 80-100 diakbol 2-nek annyira kell a tanar, hogy felevente fel orat
 beszelgessenek, es ekkor a tanar tereli, kesz. Ok ugyis  tudnak
 programozni. A tarsasag 60%-a az eletben nem fog tudni programozni (bar
 esetleg programozo lesz...), de legalabb erzi, hogy milyen nehezseges
 vannak, es mesterember szinten megoldja/elkeruli/el tudja mondani
 masoknak, hogy mi a baj.
Sajnos több, mint 60%. Mível rövid a gyakorlat, és a zh sok helyen 
gépnél van, vagy definiciókat, meg hasonlókat kell vissza böfögni
(aminek persze lenne értelme, ha lenne gyakorlati kérdés is). 
Öszintén bevalom, hogy én is írtam másnak kötelező programot, és nem 
titok, hogy egyes kollégisták gyakorlatilag kötelező program írásával 
szerzik a sörre valót, így minden diákokon múlik, ha nem akar 
tanulni, akkor nem is kell, mert egy jó puskával, és egy kis anyagi 
befektetésel meg lehet a féléve (és van pofájuk jobb jegyet szerezni, 
mint aki készült rendesen :@).

Khraath
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: basic

2007-10-16 bef zés khraath
 Ha mindenféle típust lehet betenni a verembe, akkor minden nyelven le
 kell kezelned ezt a hibát.
Nem voltam elég pontos. A mutató átalakításból adódó hibát megspórolhatod,
és ezt a hibát mindig programozó követi el, és nem a fordítója, vagy
a felhasználója. Például Cpp-ban, ha kicsit ügyes vagy, akkor megoldható,
programozói hanyagságból (rossz dokumentálás, vagy annak figyelmetlen
olvasása) ne tuszkolj be valami olyan dolgot, ami nem oda való. Pontosabban
megpróbálhatod, de valószínűleg egy hiba üzenet lesz a jutalmad. Javaban
ehhez hasonlót még nem csináltam, de gondolom ott is van valami jelzés.

 Pedig az általános nyelv pont attól általános, hogy mindenfélét lehet
 benne írni :-) Persze nem célszerű mondjuk Fortranban írni adatbázist,
 de lehet.
Pont erre gondoltam én is :P.

 Megírok különböző függvényeket és mutatókat adok át. Nézd meg pl. a
 GTK-t, grafikus objektum orientált library C-ben. Nem szép, de működik.
Köszönöm, nézem folyamatosan, bár ha tehetem inkább a gtkmm-et nézem ;).
Ráadásul nem csak működik, hanem nagyon jól is működik. Mióta használom
nincs GUI problémám, ha Windowson is működnie kell a programnak.
Az API rondának ronda, de vannak rondábak is.
 
 Miért Object-et kellene elfogadni? Az említett GTK-ban pl. GtkWidget*
 típust lehet átadni, vagy GtkButton* típust, vagy amit akarsz.
Hát igen... Amit akarsz... Múltkor is csináltam egy ilyen bakit, és nem
nagyon értettem, hogy miért nem működik úgy, ahogy én szeretném :P.
Nem figyeltem oda, és a nagyon_hosszu_sok_parameteres_fuggvenynek egy
phulye_nevu_valtozo_mert_meg_ez_nem_volt adtam át, és egy másik hasonlót
kellett volna :D. Nagyon jó a Gtk-s megoldás, csak éppen igen nagy a
kódja, és annyit nem akartam írni, és a problémát csak részben oldja meg.
 
 C-ben is el lehet rejteni az struktúra mezőit.
Teljesen igaz, de ha Gtk megoldást összehasonlítod a gtkmm-es wrapper
megoldással, akkor látni fogod, hogy a kettő közül a gtkmm a
jobb ebből a szempontból :D (főleg a dialógusoknál, mint a FileChooser).

Abban viszont teljesen igazad, hogy lehet jó objektum orientált könyvtárat
írni egy struktúrált nyelvben is, de ha nem muszáj, akkor nem próbálkoznék
vele. Iszonyatos lusta vagyok, és nem bonyolítom az életem, ha nem muszáj.
Ahol sebeség kell, oda írok egy C függvényt, ahova egy jó adatbázis, oda
egy Cpp-s osztály szerkezetet. Szerencsémre ezt a két nyelvet jól lehet
kombinálni (extern, szállkezeléssel, processzekkel).

Khraath
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: basic

2007-10-15 bef zés khraath
Szia!

 a logo-t nem ismrem tulzottan, meg alapozashoz talan a basic a legjobb.

Régen tényleg így volt, de ma már inkább a Pythont ajánlanám a tényleges 
alapozáshoz.
Nagyon egyszerű rajta tanulni, és az objektum orientált programozást is 
lehet vele oktatni. Persze, ez igaz a PHP-ra, vagy Delphire is, de 
szerintem (és ez tényleg személyes vélemény) ezeken a nyelveken nem lehet a 
megfelelő viselkedés alapú gondolkodást elsajátítani(pl. PHP3), ami a későbbi 
C++-hoz szükséges (már ha ebbe az irányba haladnátok tovább).
Plusz a Pythont oktatásra találták ki :P.
Ja, grafikus megoldás lehet a PyGtk, ami persze (mint minden Gtk 
változat/wrapper) keresztplatformos.

Ha nagyon kicsikről van szó, akkor én is a logot ajánlom.
Linuxon elég sok megvalósítás van.
pl. a KTrutle (KDE base-ben van elvileg, ovisoknak), 
vagy a lhogho - http://lhogho.sourceforge.net/,
végül a usblogo - http://www.cs.berkeley.edu/~bh/logo.html

Khraath
-- 
khraath [EMAIL PROTECTED]
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: basic

2007-10-15 bef zés khraath
Szia!

 Hmm. Az ovisok nemhogy angolul nem tudnak, de olvasni se.
 A python meg jó oktatásra, de NAGYOBBAK oktatására.

Nem volt korcsoport kikötve. Bár a basic miatt általános iskolára tippelnék.
Valóban nem tudnak az ovisok olvasni. De angolul biztosan nem kell megtanulni 
senkinek. A python.hu-n olyan jó leírások, és referenciák vannak magyarul, hogy
erre semmi szükség. Bár cpp-ből lennének ilyen jó anyagok!
Amúgy meg, aki tud gépelni, az pont annyira olvasni is tud. Ez az egy biztos,
mert Spectrummal kezdtem (pontosabban a bátyám), és én is tudtam használni.
Sőt! Azon írtam meg az első programomat... 

A KTrutle inkább játék, mint igazi nyelv. Nem hiszem, hogy a krumplifej bácsi 
és a pingvin öltöztető mellé egy bonyolult magas absztrakciókra képes nyelv 
került... Bár lehet, hogy tévedek, sose használtam.

A legjobb az lenne, ha a közép iskolák átálnának Pascalról Pythonra, vagy 
Javara, mert valljuk be a Pascal felett eljárt az idő... Magasabb 
absztrakciókra 
alkalmatlan sajnos. Középiskolában én is szerettem, de azóta sokat tanultam,
főleg azt, hogy nagyon sok rossz szokást a Pascal miatt vettem fel, amiről 
nehezen szoktam csak le... Ezért se szoktam kezdésnek a Javat, vagy Pascalt
ajánlani, mert a kezdők egyből felveszik a rossz szokásokat, mint az 
interfacek halmozása, öröklés használata ott is, ahol beágyazást is 
használhatna, na és persze a kedvencem:
Repül a kivétel: ki tudja hol áll meg? Ki tudja hol áll meg s kit hogyan talál 
meg?
El is szokás kapni, amit eldobtunk. Ez az első, amit mindenki elfelejt, pedig 
nem
véletlenül kell megadni a kivételeket a deklarációban...

-- 
khraath [EMAIL PROTECTED]
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: basic

2007-10-15 bef zés khraath

 Ez ugye vicc? Amit pascalban nem lehet megírni, azt egyátalán nem lehet
 megírni...

Légy szives, ha lehetne, definiálj egy absztrakt tárolót. Mondjuk egy sima 
vermet, amiben bármilyen számtípust tárolhatsz. Futtás időben legyen a 
feltöltés valós, egész, és mondjul komplex számokkal véletlenszerűen.
Persze feltétel a helyes visszaolvasás (helyes típusba). Valószínüleg 
ki lehetne préselni a megoldást, de egy jó darabig eltartana, és az 
adatbiztonsággal is gondok lennének, ami ebben az esettben a legfontosabb.
 
Nem vagyok Pascal ellenes. De objektum orientáltság vagy generál 
programozás oktatására alkalmatlan. Mível a vezető nyelvek objektum 
orientáltak, magas színtű elvonatkoztatásra képesek, így elég nehéz 
Pascal után hirtelen váltani. Egyre inkább kimarad a C, mint ugró 
deszka, és ez sokszor meg is látszik (a fennti példa C-ben egy jó
félóra alatt megoldható). Nekem nem gond, de amíg sokan kardoskodnak 
a Pascal mellett, főleg olyanok, akik nem programozó, hanem más, mérnőki
szakra járnak/jártak (nekik tényleg nagyon hasznos a Pascal), addig sokkal 
nehezebb lesz a váltás.
Nem túl kellemes első évesen Pascal után Objektum orientáltságot, 
generál programozást tanulni. Főleg, mint tudjuk a mai egyetemi oktatás: 
tanulj otthon, 45 perc gyakorlat, 5 perc késés (tanár), 10 perc 
katológus, többi meg Windows start.
A legyen Pascal, ne legyen Pascal vita egyetlen vesztese az, aki elvileg a 
legérintettebb: a programozó, és így később a felhasználói.

A C nyelv nem kezdőnek való, a gyerek sem vadász késsel tanul meg enni.
A Delphit pedig meg kell fizetni ugye. Mert komponensek nélkül valahogy 
nem az igazi... Amúgy is a Pascalos Hanoi tornyai hagyományt követve elég 
sok hiba van a függvénykönyvtárban... :D

 oriasi hibat
 kovetnek el azzal, hogy matekoznak az info oran 

Nem olyan nagy hiba a matekozás. Az a baj, hogy matematikailag vezetnek le 
mindent. Az algoritmusok nagyon fontosak, és ezekhez kell a matematika. 
Minden program szívében ott van egy adatbázis, néhány számítás, és valójában 
ez határoza meg egy program minőségét, és nem a 3D-s csilogó külső. Jó példák 
erre a játékok. Ha jól van megírva a motor, akkor a minimum követelményen is 
szépen fut (Imperium Galactica, Haegemonia, stb.), ha meg szar, akkor szagat, 
sír még az optimum alatt is. Elég sokat optimalizálok, de még soha nem 
kezdtem a fájl menüben :D.
Az lenne a jó, ha nem a sin függvényt kellene elkészíteni, hanem egy 
tetszőleges rekurziv trigonometrikus függvényt megoldása lenne a feladat. 
Tárolók készítéséhez, és adatok feldolgozásához, szűréséhez 
elengedhetetlen az alapvető adatszerkezetek, és algoritmusok ismerete.

Khraath 
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: basic

2007-10-15 bef zés khraath
 tart az emberke fejeben.  Egy java vagy c++ class-ban mar elveszik a sok
 hatterinfo mellet a lenyeg.

Javaban igazad van, de C++-ban nem, csak éppen az MSDN-hez vagytok szokva.
Jól megirt osztályok mellett pont a lényegre lehet koncentrálni. Csak 
arra kell figyelni, hogy mire készül az osztály (konténer, bázis, konkrét, 
stb.), és a minimális osztály felületre.
pl: 
void Database::refresh_tables()
{
std::for_each(tables_.begin(),tables_.end(),std::mem_fun(Table::refresh));
}
Ennél elvonatkoztatottaban, tömörebben nehéz fogalmazni, és szerintem a lényeg 
elég jól látszik.
Ugyanez C-ben (Gtk-hoz hasonló módszer):
int refresh_database_tables(Database* db)
{
  int ret = 0;
  for(int i = 0; i  get_tables_size(db); ++i) {
 if ((ret=refresh_table(get_databse_table(db,i)))!=0)
   return ret;
  }
  return ret;
}
Természetesen mindent meg lehet objektum orientált programok, vagy nyelvek
nélkül oldani, még mindig az asm a legjobb nyelv. A jól megirt OO program segít 
a fejlesztőnek munka közben. A gond csak az, hogy C++-ban is sokszor látom, 
hogy ugyanúgy egy függvényben van minden összezsúfolva, mint 
régen a rosszul megirt C programokban. 200 soros függvények mellett 
nem csoda, hogy nem lehet átlátni az egészet.
Módszer igen egyszerű: az alacsony színtű műveleteket próbáljuk meg kezelő-
osztályokban elrejteni, és később ezeket használni, és a megfelelő függvény-
objektumokat.
Sokat használok C-t, de ha egy programomban adatbázisra van szükségem, akkor 
biztosan C++-ban kezdek neki. Persze soha nem fogok C++-ban drivert írni, 
vagy stream titkosítót, de az nagyon is valószínű, hogy a titkosítóhoz 
készítek valami wrappert, és használni fogom a C++-os adatbázisomban 
titkosításra.

Pascal tényleg jó első nyelvnek, csak utána nem Javara, vagy C++-ra kellene 
ugrani, hanem egy kis C-t, Pythont esetleg PHP tanulni, és úgy váltani.

Megfeletkeztél a görgetősávról! Az nagyon fontos! Már első órán le kell 
diktálni a gyerekek vonalas füzetébe! ;) De utáltam ezeket a marhaságokat.
Néha nagyon hiányzik a magnó dörmögése, na meg a kék képernyő, amit még 
akkor senki se utált.
Első Linuxomat is azért raktam fel (gcc-s kötelező programok mellett), hogy
egy kis sebeséget leheljek a gépembe és elüzzem a kék halát. Két tányér 
levest benyomtam, mire volt egy startmenüm, most meg egy pohár teát sincs 
időm behozni (ugyanaz a gép még mindig, csak 5 év telt el :D).

Khraath
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux


Re: xdm nem jelentkeztet be

2007-03-28 bef zés khraath
On Fri, 23 Mar 2007 07:12:27 +0100
Kispál Zsolt [EMAIL PROTECTED] wrote:

 Sziasztok!
 
 Nemrég telepítettem magamnak egy Gentoo-t (2006.1) és az a probléma, 
 hogy grafikus bejelentkezésnél
 az xdm bekéri a felhasználónevet és a jelszót de nem jelentkeztet be. 
 Egy pillanatra elsötétül a képernyő
 majd újra feldobja a jelszókérő panelt üresen.
 
 Ha lelövöm az X szervert és bejelentkezek parancssorba, majd onnan 
 startx akkor semmi gond, indul a
 windowmanager.
 
 Biztos, hogy nem a jelszóval van probléma mert a parancssorba elsőre be 
 tudok lépni :-)).
 
 Gentoo fórumon találtam is hasonló problémával küzdő embert, de az ott 
 javasolt beállítások nekem mind
 megvannak a probléma mégis jelentkezik.
 http://forums.gentoo.org/viewtopic-t-456222-highlight-xdm.html
 
 K7S8X ~ # equery l -i sessreg
 [ Searching for package 'sessreg' in all categories among: ]
 * installed packages
 [I--] [ ] x11-apps/sessreg-1.0.0 (0)
 
 
 K7S8X ~ # cat /usr/lib/X11/xdm/Xsetup_0
 #!/bin/sh
 # $Xorg: Xsetup_0,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
 #xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed 
 -exitOnFail
 
 K7S8X ~ # cat /etc/X11/xdm/Xservers
 # $Xorg: Xserv.ws.cpp,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
 #
 # Xservers file, workstation prototype
 #
 # This file should contain an entry to start the server on the
 # local display; if you have more than one display (not screen),
 # you can add entries to the list (one per line). If you also
 # have some X terminals connected which do not support XDMCP,
 # you can add them here as well. Each X terminal line should
 # look like:
 # XTerminalName:0 foreign
 #
 :0 local /usr/bin/X vt7
 
 K7S8X ~ # cat /etc/conf.d/xdm
 # Tell X to always start on VT7. Otherwise it autodetects the first 
 available
 # VT, which means it has to wait until all gettys are started so it 
 doesn't suck
 # up a VT that should have had a login prompt (very slow).
 # If XSTATICVT is on, the login manager will start as soon as possible 
 during
 # the boot process. If you want X to dynamically start on the first 
 unoccupied
 # VT after all gettys have started and you are using xdm, also remove 
 the vt7
 # from /etc/X11/xdm/Xservers.
 XSTATICVT=yes
 
 # What display manager do you use ? [ xdm | gdm | kdm | entrance ]
 # NOTE: If this is set in /etc/rc.conf, that setting will override this one.
 DISPLAYMANAGER=xdm
 
 
 Ráadásul a logokban se látok olyan hibaüzenetet amire tudnék keresgélni 
 a neten.
 
 K7S8X ~ # cat /var/log/xdm.log
 _XSERVTransSocketOpenCOTSServer: Unable to open socket for inet6
 _XSERVTransOpen: transport open failed for inet6/K7S8X:0
 _XSERVTransMakeAllCOTSServerListeners: failed to open listener for inet6
 
 X Window System Version 7.1.1
 Release Date: 12 May 2006
 X Protocol Version 11, Revision 0, Release 7.1.1
 Build Operating System: UNKNOWN
 Current Operating System: Linux K7S8X 2.6.19-gentoo-r5 #1 SMP Fri Mar 16 
 11:55:02 CET 2007 i686
 Build Date: 15 March 2007
 Before reporting problems, check http://wiki.x.org
 to make sure that you have the latest version.
 Module Loader present
 Markers: (--) probed, (**) from config file, (==) default setting,
 (++) from command line, (!!) notice, (II) informational,
 (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
 (==) Log file: /var/log/Xorg.0.log, Time: Fri Mar 23 07:25:50 2007
 (==) Using config file: /etc/X11/xorg.conf
 xkb_keycodes { include xfree86+aliases(qwerty) };
 xkb_types { include complete };
 xkb_compatibility { include complete+ledscroll(group_lock) };
 xkb_symbols { include pc(pc104)+us+group(toggle) };
 xkb_geometry { include pc(pc104) };
 FreeFontPath: FPE /usr/share/fonts/misc refcount is 2, should be 1; 
 fixing.
 xkb_keycodes { include xfree86+aliases(qwerty) };
 xkb_types { include complete };
 xkb_compatibility { include complete+ledscroll(group_lock) };
 xkb_symbols { include pc(pc104)+us+group(toggle) };
 xkb_geometry { include pc(pc104) };
 K7S8X ~ #
 
 
 Minden ötlet jól jönne.
 
 Köszönettel
 
 Kispál Zsolt
 _
 linux lista  -  linux@mlf.linux.rulez.org
 http://mlf2.linux.rulez.org/mailman/listinfo/linux
Lehet, hogy meg se próbál bejelentkezni :D?
Van a $HOME-ban .xsession? Mert az xdm nem .xinit-et használ.
Amúgy, ha az Xsetup_0 -ban az xconsole elől kiveszed a commentet, akkor 
biztosan lesz egy terminálod:
#!/bin/sh
# $Xorg: Xsetup_0,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed 
 -exitOnFail

[EMAIL PROTECTED]
_
linux lista  -  linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux