-
GAMEPOD.hu
Új hozzászólás Aktív témák
-
amargo
addikt
válasz Jim Tonic #3224 üzenetére
Ha jól láttam sehol nem írtam olyat, hogy nem lehet, miért ne lehetne?
De a new szerinted mire való?Szerk
Más:
Én még a C# ot is szoktam ajánlani kezdőknek, de a java is ugyan olyan jó választás.
(Szerintem)
Egy OOP nyeven kezdve sem fog elsőnek az osztályokkal játtszani, ha még azt sem tudja mi az, majd eljut oda idővel, de sokkal könyebb ezeken a nyelveken elkezdeni, mert alád dolgozik a fordító, a nyelv adotságai miatt sok mindennel elsőnek "nem kell törődni".[ Szerkesztve ]
“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
Karma
félisten
válasz Jim Tonic #3943 üzenetére
A var kell.
if (randominteger = 1) answer= ""
Ezt a sort biztosan elcseszted. Így már értelme is van:
if (randominteger == 1) answer= ""
A másik sor jónak tűnik, ha 0 és 19 között akarsz pszeudo-véletlenszámot generálni. Ha a 20-as is lehetséges érték, akkor 21-gyel kell szoroznod.
[ Szerkesztve ]
“All nothings are not equal.”
-
nvyktor
aktív tag
válasz Jim Tonic #5264 üzenetére
Addig a pontig, amíg nem használsz előre definiált dolgokat, tárolt eljárásokat, miegymást alig van különbség, hiszen mindkettő SQL.
Néhány apróbb eltérés van, pl.:
MSSQL: SELECT TOP 10 oszlop FROM tabla
MySQL: SELECT oszlop FROM tabla LIMIT 10
Oracle: SELECT oszlop FROM tabla WHERE sorszam (ROWNUM) <= 10Ezekre viszont gugli barátunk 2 perc alatt választ ad.
Ha komolyabb szintű a felhasználás (tárolt eljárások, rutinok, stb.) akkor nagyobb az eltérés, érdemes előtte utána nézni.
És arra is érdemes figyelni, hogy a fejlesztő környezetedbe integrálva legyen az MSSQL. Gondolok itt arra, ha pl php alól kéne ms-t hívni, akkor a php.ini-t (is) szerkeszteni kellhet. Tehát a fejlesztés kezdetekor érdemes írni egy print "hellóvilág"; szintű programocskát, ami teszteli az adatbázis kapcsolatodat, hogy ne a fejlesztés során derüljön ki, ha valami ott nem stimmel. Sok fejtörést lehet vele megspórolni.
Védd a fákat! Egyél hódot...
-
-
Jester01
veterán
válasz Jim Tonic #5378 üzenetére
A sorok csökkentése egyáltalán nem biztos, hogy gyorsabb vagy olvashatóbb kódot eredményez.
Felesleges változók? Ha attól olvashatóbb lesz a kód, akkor miért ne. A fordító meg úgyis kioptimalizálja. Persze az egyáltalán nem használt változók tényleg feleslegesek, de azok tipikusan kód módosítások után szoktak bentfelejtődni.
Jester
-
Jester01
veterán
válasz Jim Tonic #5382 üzenetére
A felesleges változó felesleges hely a memóriában...
Mármint, ha nem lesz kioptimalizálva.Senki nem mondta, hogy gyorsabb lesz
Én nem ma kezdtem, de máig találok módot a sorok csökkentésére, van, hogy le is felezem.
Akkor miért is csökkented a sorok számát, ha nem lesz gyorsabb vagy legalább olvashatóbb.Ha ezt előadod a felvételin, jó eséllyel nem vesznek fel.
Én szoktam felvételiztetni És ha valaki bármit előad amit értelmesen meg tud indokolni akkor az nem kizáró tényező, sőt, előny.Mit? Ismered az összes fordítót? Pszeudokódban ír, lehet, hogy abszolút nem képes optimalizálni a fordító, mert nem is ismered.
Viszont az összes hétköznapi gyakorlatban előforduló fordító tudja ezt. Pszeudokód hatékonyságát meg amúgy is csak algoritmus szintjén nézzük. Nyilván nem hasraütésszerűen vette fel a változót, hanem olvashatóság céljából. Példa:double map_coefficient = Ze/(Ze+Z_airbox+Zt);
// Add a one second lag to manifold pressure changes
double dMAP = (TMAP - p_ram * map_coefficient) * dt;
TMAP -=dMAP;A map_coefficient nyilván "felesleges változó" mivel egyszerűen bele lehetne másolni a dMap képletbe (amit aztán szintén tovább lehetne másolni a TMAP képletbe). Mégis, így olvashatóbb, főleg mivel fizikai jelentése is van.
Jester
-
Jester01
veterán
válasz Jim Tonic #5384 üzenetére
A kódodból ítélve nem sebesség orientált vagy
Pedig de. Az egyébként nem az én kódom volt, és bármelyik C fordító tök optimálisra fordítja le. Amúgy gyanítom kicsit jobban értek hozzá, mint te. Azért ne menjük el személyeskedés és e-pénisz verseny felé.
És mint írtam, a kevesebb utasítás gyorsabb.
Inkább hadd idézzek akkor az intel optimization manualból, hátha annak hiszel:
Assembly/Compiler Coding Rule 31. (ML impact, M generality) Avoid using
complex instructions (for example, enter, leave, or loop) that have more than four
µops and require multiple cycles to decode. Use sequences of simple instructions
instead.Ez például azt jelenti, hogy x86 assemblyben az enter 8,0 utasítás lassabb mint az őt helyettesítő push ebp; mov ebp, esp; sub esp, 8 3 utasítás (ami 3 sor is, tipikusan) . Előbbi egyébként 4 byte, utóbbi 6 byte gépi kód.
Vagy ezt, ugyanonnan:
Assembly/Compiler Coding Rule 49. (H impact, ML generality) If it is
necessary to extract a non-aligned portion of stored data, read out the smallest
aligned portion that completely contains the data and shift/mask the data as
necessary. This is better than incurring the penalties of a failed store-forward.Ez például azt jelenti (akár C szinten is), hogy érdemesebb lehet shift (<<) és mask (&) műveletekkel dolgozni egy látszólag tök egyszerű byte olvasásnál is!
Ezek ugye erősen architektúra-függő dolgok, tehát pszeudokód szinten nincs értelme róluk beszélni. De mondok másik példát. Ha van egy általános kódod ami mondjuk x sor és mindig működik, de van egy másik kódod ami mondjuk y sor de bizonyos (gyakori) esetekben sokkal gyorsabb, akkor megéri olyanra írni a függvényed, hogy előbb z sorban ellenőrzi a feltétel fennállását és az alapján dönt, hogy melyik verzió fusson. Ilyen eset lehet például aligned/unaligned memória vagy egy adott blokkméret (jellemzően például képfeldolgozásnál, de már a mezei memcpy is a legtöbb esetben így működik). Így az x+y+z soros kód mégis gyorsabb lesz az esetek többségében.
Még vadabbat mondok, általában a rövid kód a legegyszerűbb és legáltalánosabb, ha pedig hatékonyságra gyúrsz akkor sokszor a kifinomultabb adatszerkezet és algoritmus nagyobb kódot és nagyobb memóriafelhasználást is jelent. Példa erre, ha C-ben szeretnél kulcs-érték párokat tárolni. A legegyszerűbb egy tömb, amibe a triviális módon beszúrsz és törölsz, a keresés pedig lineáris. Ez lássuk be elég egyszerű, rövid, nem használ felesleges memóriát és nem utolsósorban dög lassú. Ha nekiállsz helyette egy hash táblát implementálni, az sokkal több sor kód lesz, több gépi kód is, lesz neki memória overheadje és ennek ellenére gyorsabb is lesz (megfelelő hash függvény esetén). Az is köztudott, hogy a kis memóriahasználatra és/vagy kódméretre optimalizálás természetétől fogva nehezen összeegyeztethető a sebességre optimalizálással (bár nyilván vannak kivételek). Extrém példa: ha akarod, tömörítheted az egész program memóriát, ezzel csökken a memória használat de ugyanakkor minden bizonnyal lassul is, kivéve ha ettől befér a fizikai memóriába és nem kell lapozni. Kevésbé extrém példa: a linux kernel szereti processzor cache line határra igazítani a kritikus adatszerkezeteket. Még kevésbé extrém példa: már a C fordító is igazítja a struktúrák elemeit:
$ cat >t.c
#include <stdio.h>
int main()
{
struct { int a; unsigned char b; unsigned char c; } x;
struct { unsigned char b; int a; unsigned char c; } y;
printf("%d %d\n", sizeof x, sizeof y);
return 0;
}
$ gcc -Wall -m32 t.c && ./a.out
8 12Ugye a második esetben az a mező előtt van 3 byte padding, továbbá mindkét esetben van a végén is még. Ha ezek nem lennének, akkor kevesebb memóriát használna a program viszont esetleg lassabb lenne. Bizonyos architektúrákon nem is futna, vagy hibásan (pl. atomi műveleteknél).
Nem ettől lesz felesleges egy változó. Az teljesen mást jelent. Pl. részeredmények tárolása.
Oké, akkor minden bizonnyal elbeszélünk egymás mellett. De a példában az pont egy részeredmény volt. Most akkor ez felesleges vagy nem? Lásd még: premature optimization.[ Szerkesztve ]
Jester
-
Jester01
veterán
válasz Jim Tonic #5386 üzenetére
Ilyen sorok után már nem szoktam tovább olvasni a hozzászólást.
Köszönöm, hogy ezúttal nyilvánvalóan kivételt tettél.
Az Inteles példád pedig pont engem igazol, csak továbbra sem sikerült megértened, miről beszéltem.
Tényleg nem értem. Ezt írtad betű szerint: "a kevesebb utasítás gyorsabb." Erre hoztam rögtön a két példát az intel doksiból, amikor a kevesebb utasítás nem gyorsabb. Akkor mégis hogy igazol téged?
De maradjunk a tőled idézett fenti mondatnál, és akkor úgy is felesleges folytatnunk a megbeszélést, ha ennyibe nézel.
Én ugye épp békejobbot nyújtottam, hogy talán maradjunk a szakmai résznél és ne azzal vágjunk fel, hogy "fejlesztek egy cégnél, ahol majdnem 20e ember dolgozik". Ha ez neked nem megy, akkor lehetőleg tényleg tartózkodj a válaszolástól és ne piszkálódj ilyen "pont engem igazol" odavetett állításokkal, mert ezekre én viszont továbbra is fogok reagálni, tényekkel, amíg lehet. Lásd fentebb.
Jester
-
Jester01
veterán
válasz Jim Tonic #5389 üzenetére
Valóban nem kellett volna azt a megjegyzést tennem, amiért ezúton elnézésedet kérem.
A többiben továbbra sem értünk igazán egyet. Tényleg elkanyarodtam a pszeudokódtól, ami azért volt mert bevallásod szerint a saját nem-pszeudokódodat is úgy optimalizálod, hogy minél rövidebb legyen és úgy állítod be, mintha a kevesebb utasítás gyorsabb is lenne. Erre próbáltam ellenpéldákat hozni, az intelest azért mert konkrét, de a többi amit általánosságban mondtam szerintem helytálló még pszeudokód esetén is. Ha valaki pszeudokódban hatékony de alkalmasint hosszabb kódot mutat be (és meg tudja indokolni) az nálam pozitívum, továbbá feltételezhető, hogy az egyszerűbbet is meg tudta volna csinálni.
A gyakorlatban minden bizonnyal neked is már megvannak a kialakult szokásaid, amik feltehetően az adott környezetben működnek is. Én leginkább csak azt akartam leszögezni, hogy az optimalizálást általánosságban nehogy úgy képzeljék el az emberek, hogy ami rövid az gyors és kész.
Jester
-
n00n
őstag
válasz Jim Tonic #5428 üzenetére
Virtualbox, vmware?
Sajnos egy ilyen kényelmetlen megoldás nem játszik.
Elkeveredett a forráskód. Az elég komolyan hangzik.
Mit kell tudni a programnak? Lehet, hogy pár óra alatt megírható javaban, és akkor ott használod, ahol akarod.Ilyenen én már meg sem lepődök.
Nem nagy tudású a program, végül is abban maradtunk a céggel, hogy felfogadunk egy programozót aki megírja az alkalmazást cross-platformra, így később nem eshetünk, hasonló hibába.
-
bucsupeti
senior tag
válasz Jim Tonic #5492 üzenetére
az amatőr srác én vagyok. nem írtam sehol hogy nincs ennél jobb megoldás.
Egyébként mit értesz offline rendszer alatt? Mert az ott leírt rendszer eléggé online.
Biztosan kell szerver? Akarsz szerver oldalon programozni?
Egyébként a Firebird is tud triggert is meg tárolt eljárást. Ha más okból kell szerver akkor My SQL!
Ha a kliensben akarod megírni az üzleti logikát is akkor simán jó a Firebird, ha nincs túlságosan nagy (többszázezer rekordos) adattábláid![ Szerkesztve ]
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
Sk8erPeter
nagyúr
válasz Jim Tonic #5492 üzenetére
Hár ez igen kellemetlen, hogy pont azt amatőrözted le, aki segített neked az előbb... Egyébként elolvastam a cikket, nem látom be, miért lenne "amatőr" azért, mert nem azokat a megoldásokat javasolta, amikre Te gondoltál, hanem amik neki beváltak, baromságot sehol nem beszélt. Hát igen, jobb ha az ember kétszer meggondolja, miket ír fórumon.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Jim Tonic #5495 üzenetére
Én elhiszem neked. Amúgy ja, az rohadt idegesítő, hogy Chrome-ban nem lehet beállítani, hogy az épp aktív fül mellett nyissa meg az új tabon megnyitandó linket, ne dobja már a kilencvenharmadik megnyitott tabom mögé, miközben Operában ugyanez hatszáz éve beállítható, és ezek szerint Firefox-ban is...
Sk8erPeter
-
ArchElf
addikt
válasz Jim Tonic #5696 üzenetére
Láttam már olyan rendszert, ahol fájl alapú log tárolás volt (nem adatbázisban, hanem indexelt szöveges fájlok, 100.000 rekordonként kölön fájlba, külön indexekkel) és elég gyorsan működik. Persze nem interpreteres nyelv van mögötte, hanem (szerintem) c és c#.
AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
válasz Jim Tonic #5700 üzenetére
az adatbázis motor is úgy csinálja
például a vsam-ot feltalálták már vagy 30 éve.inkább az itt a kérdés, hogy nekiáll minden beeső problémánál újra meg újra feltalálni a kereket, annak minden költségével vagy vesz a bótban kész kereket (=sql szerver) és hajtja.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
amargo
addikt
válasz Jim Tonic #5697 üzenetére
"Ma már csak a BME szül viszonylag megbízhatóan jó programozókat, a többi iskolából kb. egyforma tudással jönnek ki a diákok."
Bár tény, hogy a progmat sokat hígult, de én még mindig inkább az, mint BME.“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
Lacces
őstag
válasz Jim Tonic #5708 üzenetére
Én is hozzászólnék a témához
Igen, ki mennyit tanul magától... Ezen van a hangsúly, az Egyetemeken, meg amúgy is csak maradi tanár van, aki csak szívatni tud, de köze nincs a tanultaknak a melós helyre.
Meg mindenhol mást erőltetnek.
Nálunk van komputer grafika, Adatbázis sáv, meg Mesterséges intelligencia. PTI-n
Komputer, valami 20 évvel ezelőtti technológiákat, eljárásokat követelnek tőlünk. OpenGL, ugyanmár nekik az ismeretlen fogalom tanítani. (itt jobb a BME vagy más egyetem).
Adatbázis, meg a helyi cégeknek jó... Ott eltud vele helyezkedni az illető.
Mesterséges Intelligencia, az kemény. Viszont annyit, hogy több tárgyat oktatnak ebben a témakörzben, mint a pl.: az ELTE-n, vagy BME-n. Talán az SZTE az amelyik a legjobb lehet.
És ez BSc szakon nem rossz mondjuk. De általános Java vagy .NET programozás az tényleg híg itt. Bár most volt olyan bekeményítés az egyik prog tárgyból, hogy csak úgy lett meg az aláírás, hogy félig megtanultam programozni. (A másik felét magamnak kell megszerezni).
Bár én MSc-n jobban szimpatizálok a PE-vel (Pannon Egyetem), mert tetszik, hogy mérnök informatikusként tanulhatok egy picit Nano technológiát, meg pár érdekességet, meg folyamatirányítás.Engem nem vonz az egyetem hírneve, hanem inkább a szakirány, hogy mibe tudok belekóstolni, kipróbálni. BME-ből is csak egy 2 szakirány érdekel, a többi nem
DE-ről (Debreceni Egyetem)
Én egyszer hallottam ezt Mérnökinfós és PTI-snél, hogy a különbség annyi, hogy a pti-s sokat tököl a megtervezéssel, addig a mérnökinfós, neki esik és kódol ész nélkül.
De engem nem érdekel, hogy ki hol végzett. Lehet valaki anyagilag nem tud megengedni egy Budapesti egyetemet... (drágább mint vidék). Ez is lehet az oka.
Én csak azokat gyűlölöm, akik folyton azzal villognak, hogy hol végeztek.... Hogy én ELTE-s én meg BME-s vagyok, és nagy az arcuk... Én tuti nem villognék ilyennel, ha esetleg felvesznek oda majd MSc-n... Meg alapjáraton nem is vagyok ilyen.De nem offolok tovább
-
Gyuri16
senior tag
válasz Jim Tonic #5721 üzenetére
ertem mit mondasz, en felhoznam az analitikus gondolkozas es tarsai kozhelyet, mert szerintem fontos. tehat, hogy egy kicsit kontextusba helyezzem a mondanivalom: utolso eves hallgato vagyok elmeleti informatikan, es oktobertol dolgozok felallasban iskola mellett (azelott is csinaltam kisebb dolgokat, de most rendesen). a ceg ahol vagyok kevesbe formalis, tehat nem rajzolunk folyamatabrakat, nincs sokszintes hierarchia, hanem egy egesz projektet visz egy csapat (es ez tetszik is nekem).
amit szerintem az iskola adott:
1. gyorsan tudok alkalmazkodni uj dolgokhoz: elso heten ahogy munkaba alltam kaptam olyan dolgot amit eletemben nem lattam (es mas se a cegnel, ezert adtak nekem, amig betanulok). meg kellett vele birkozni. azutan mar programozasban szinten kaptam feladatot, es egy reszet olyan nyelven kellett csinalni amivel nem talalkoztam addig. nem tudok arra tamaszkodni, hogy az osszes ilyen konkret feladatra felkeszit az iskola.
2. jol tudok analizalni a problemakat. miutan megvoltak a kezdo korok, rambiztak egy nagyobb munkat, amihez nekem kellett utananezni az elmeleti reszenek is (nem egy brutalis dolog, de sokat segitett, hogy pl tudtam, miert jo a sik felosztasara quadtreet hasznalni..), es megtervezni az egeszet. ennel a resznel nem sokat segitett volna, hogy tudok valamilyen konkret technologiat - mint emlitettem, egy szamomra ismeretlen nyelven kellett megoldanom. erre viszont felkeszitett az, hogy eveken at nehez feladatokat kellett megoldanom, megha elvont modellekben is.ehhez hozzatartozik termeszetesen, hogy kozben kepzem magam, hogy implementalni is tudjam amit akarok, viszont ugy latom, hogy ezt konnyebb es gyorsabb konyvekbol es kollegaktol elsajatitani mint azt a gondolkozasmodot amit az iskolaban probalnak belenknevelni.
azzal amit ArchElf ir egyetertek, valoszinuleg a megoldas az, hogy jobban szetosszak az alap es mesterkepzest. nem tudom nalatok mennyire mukodik az elv, nalunk csak felosztottak valahogy a regi 5 eveset, es nem sokan vannak akik otthagynak 3 ev utan az iskolat. tehat valahol meg kell kulonboztetni azokat az embereket akik uzemeltetni, felugyelni, azaz nem ujat alkotni, hanem a meglevoket hasznalni akarjak, es azokat akik az e mogott rejlo problemak erdekelnek. nekem a velemenyem tovabbra is az, hogy a gyakorlati tudas skatulya tul nagy ahhoz, hogy mindenre felkeszithessen az egyetem, ezert tobb ertelmet latom annak, hogy specifikus kepzeseket vegezzen az ember, ilyenekbol van egy rakas, es tobbnyire a munkaltatok is nagyra ertekelik.
utolso gondolat pedig, hogy nyilvan mindannyian mast csinalunk, es mast varunk el az iskolatol. en ugy erzem jol valasztottam, bar ezt igazabol csak evek mulva mondhatom majd jogosan. egyenileg kell eldonteni, mivel is akarunk foglalkozni, valasztani egy iskolat ami megadja az alapot, es aztan "Könyvek, böngészés, gyakorlás, évek."
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz Jim Tonic #5724 üzenetére
munkaban elsodlegesen javaban programozunk. hozza kellett tanulnom flexben interfacet gyartani. ezen kivul van tapasztalatom mas nyelvekben is, de egyik se teljesen profi: c, c++, pascal, delphi, python, linuxos shell scriptek, webes dolgok (php, html, css), compiler generalok (flex, yacc/bison). boldogulok adatbazisokkal is, de ezen meg van mit fejleszteni (keves dologhoz hasznaltam egyelore bonyolultabb dolgokat).
Nem vagyok egoista, csak uborkagyalu!
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Üzletből,DELL garanciával, Dell XPS 9310 2in1 ultrabook, i7-1165G7/32RAM/1TBSSD/13,4"UHD TOCH
- Üzletből, gyártói garanciával, Lenovo Yoga Slim 7 Pro, i5/16GBRAM/512GBSSD/14,1" 2,8K OLED
- Realme GT Neo2 5G 256GB
- M.2 2280 256GB SSD-k eladók Ingyen posta
- DELL WD15 Type-C Fekete +130W Töltő Ingyen szállítás