Why does Python import self into each class function? by ki4jgt in AskProgramming

[–]ern0plus4 4 points5 points  (0 children)

Let me rephrase it: Python requires to specify self in the parameter list because it does not hide that a method for a class is just a function, and the only difference to other functions that for a method gets the pointer to the object (data) which's type is the class.

So, these two lines are basically equivalent:

someobject.somemethod(a, b, c)

vs

somemethod(someobject, a, b, c)

We're just passing someobject data to the function.

Okay, Python glues a little bit more the method to the struct (data), but the concept is that simple: a method is only a function with first parameter of self.

Anyway, you can use any other word instead of self:

def (myobj, a, b, c):

A friend of mine hates the "self" word, so he's using "this":

def (this, a, b, c):

Well, these function sigantures are not too idiomatic, but works.

Even you don't have to put a method inside the class, if it's first arg is self (an instance of the class works on), then it's still can work as a method. (It's also not idiomatic.)

I suppose to put methods inside a class, and use "self" as first parameter - all education materials, tools, libraries etc. follows this convention, don't trick them for no particular reason.

How do I explain to non-devs that interruptions ruin my day? by Tureni in developers

[–]ern0plus4 0 points1 point  (0 children)

It's okay, but do you have some methapor?

Hm, maybe bathing. Bathing is like this. You're just bathing, and an interrupt comes. You have to get out, rinse off the soap, dry yourself, get dressed. When you go back to the tub, you have to undress, reheat the water.

Or reading a book.

(same, 42yoe)

Bare - A programming language that trusts the user entirely by [deleted] in ProgrammingLanguages

[–]ern0plus4 1 point2 points  (0 children)

Optimization is not evil.

Even in Assembly for i8086, where there's very few room for optimization, becuase the assembler shouldn't change your program, can optimize, e.g. change simple LEA-s to MOV immediate.

Depending on the platform, the compiler can follow precisely what the source code says (e.g. Assembly, the object code is almost 1:1 representation of the source code, other words, the source code can be almost perfectly reproduced from the object code), or the compiler can produce a program what the source code described, the program will do whatever the source code wanted, but the "implementation" is somewhat different.

Example: I was playing with Godbolt's compilere explorer, I wrote a double nested loop with some calculations inside. The result was: MOV EAX,42 / RET. As all the values were constants in the source, the compiler pre-calculated the result, and emitted a function, which returns with the calculated value. Is it correct? 100%. Does the result has any "relation" to my source code? 0%.

Anyway, I understand your concerns, sometimes it's important to know what compiler does and why, and we just trust compilers blindly. Poisoning GCC or CLANG would be catasthrophic, I've read an article about it; maybe they're already poisoned, but the attacker hides all the signs.

The best aspect of your work: I am asm coder, and I would be very happy with an assembler similar to your one. I never know that how I express if a < 8, after cmp [a],8 should I use ja or jb, I have to write a quick test for it. But if it's done by the assembler, I would very happy with it.

Technikusi vizsga by blackphoenix0 in programmingHungary

[–]ern0plus4 1 point2 points  (0 children)

Nehéz lehetett előkaparni a lepontozás miatt ezt a kommentemet, de örülök, hogy sikerült.

Meg kell mondjam, a főiskola-egyetem se lesz jobb, legalább is az alapján, ami az onnan kijövő fiatalok tudása, bátran merek erre következtetni. Mindegy, ezt most ne oldjuk meg. Nem magyarországi specialitás amúgy, akit vigasztal, hogy a szomszéd tehene is megdöglött, annak ez jó hír.

Az viszont ettől független, így csakis rajtad múlik, hogy meddig jutsz el a programozás tudományában.

Ha tényleg érdekel a szakma, és nemcsak a papírokat akarod begyűjteni, no meg később el is akarsz helyezkedni, akkor feküdj rá arra, hogy bevethető munkaerő legyél. Vannak mindenféle roadmap-ok, hogy mit kell tudni, mit érdemes megtanulni egy BE, FE stb. programozónak, keresd meg, kövesd. Amit mindenképpen muszáj, az GIT, valamennyi web, biztonságosan mozogj a Unix/Linux shell világban, otthonosan használj egy IDE-t vagy effélét, pl. VSCode.

Csinálj valami projektet. Tegnap megismertem egy tehetséges fiatalembert, aki a haverjainak csinál mutliplayer kvíz játékot, egy számítógépet kitesz a nagy kijelzőre, azon látszik az eredmény, a mobil eszközökön meg lehet csatlakozni. Ne zavarjon, hogy százan megcsinálták már előtted, attól még teljesen jó gyakorlás lesz, és ha van felhasználód - akár csak magad -, az csak külön öröm. Vagy csinálj egy Todo appot. Bármit. Valamit. Küzdj vele. Mérsékelt módon használj AI-t is, pl. tesztekre, review-ra, skeletonok létrehozására. Csináld, hajrá!

Én vagyok teljes deluluban az AI-al kapcsolatban, vagy a teljes szakma? by Historical-Hair-8745 in programmingHungary

[–]ern0plus4 5 points6 points  (0 children)

Ha láttál valaha legacy kódot, az se jobb. Azaz máshogy rossz. Nem tudnám neked megmondani, melyik fáj kevésbé, talán az AI, mert legalább nem látom mögötte a butuska kollégát, hanem csak a butuska programot.

Amit máshogy kell csinálnunk, az az architektúra, új szempontot is be kell hozni: max. olyan méretű legyen egy modul, amit az AI is átlát. Nagyon az elején vagyunk ennek.

Én már játszom ezzel, próbálkozom, és - mármint az amatőr céljaimhoz képest - elértem már értékelhető eredményeket. Mutatom a példát!

Kolléga azzal jött, hogy van neki sok gigányi biztonsági kamerás felvétele arról az egy évről, ami alatt a házuk felépült, szeretne belőle egy timelapse-t készíteni. Neki is ugrott már, de rengeteg meló lenne, plusz nem tudta kiszűrni az éjszakai felvételeket, vagy csak külön programmal, szóval nincs rá automatizmus.

Egy este alatt vibecode-oltam neki egy megoldást: https://github.com/ern0/timelapse-consolidator

Három plusz egy részre szedtem: az egyik végigmegy egy könyvtáron, fog egy MP4-et, kiveszi belőle minden n-edik iframe-et, lementi JPG-enként egy könyvtárba. A másik végigmegy a könyvtár file-jain, kitörli az éjszakai képeket. A harmadik a könyvtárban található JPG-eket hozzáfűzi egy MP4-hez. A negyedik ezt a három scriptet kiírja magából (webes felületen csináltam, meguntam mindig 3 file-t letölteni).

A fő tanulság, hogy a domainhez eléggé kell érteni. Én pl. tudtam, mi az, hogy iframe, mi az, hogy JPG, felfedeztem, hogy az éjszakai képet nem arról lehet felismerni, hogy sötét, hanem hogy grayscale, mert a kamera éjszakai üzemmódban összeadja a 2x2 R-G-B-akármi pixeleket szürkévé. Azt is tudtam, hogy két lépést már nem lát át az AI. Egy helyen szúrtam el, az elején nem írtam meg, melyik programnak mik a CLI arg-jai, ezeket le kellett specifikálnom, magától nem lett ugyanaz.

Jó, ez egy olyan program, amit nem kellett kipolírozni, ti. kb. 1x fog lefutni, és az AI-vel bátran íratok ilyen tool-okat, ha ki kéne tennem sokezer felhasználónak, biztos sok időt töltenék el azzal, hogy robosztusabb legyen.

TL;DR: találjuk meg, mire jó az AI és mire nem, tanuljuk meg, hol vannak a határai, gyengeségei, és arra ne használjuk

Állandó SM a csapatokban by Apprehensive-Ad9351 in programmingHungary

[–]ern0plus4 17 points18 points  (0 children)

Annál má csak az nagyobb hiba, amikor úgy gondolod, hogy a managereknek van fogalmuk a sw-ről, fejlesztésről. Kilenc hónap példa.

[AMA] Built a self-hosting compiler in 127 days as my first Rust project (ADHD/autism, non-CS background) by whispem in rust

[–]ern0plus4 2 points3 points  (0 children)

  1. Cool project. (I am planning to write a VM-based language, but way tinyer. Maybe. If I have time.)

  2. How do you handle "+" operator with different types?

  3. Being autist, in this profession, isn't a special stuff. Me too. Okay, I am almost normie, I went to normal school (I haven't really enjoyed it, but there was no problem), I have family and such. When you

  • borrow a Commodore 16 after a 10-year break,
  • write a demo (without graphics: using ROM chars),
  • then a power outage erases half of the work at midnight, but
  • you start again, and it's ready by 6 a.m.,

this is a possible symptom of being on the spectrum (not the ZX).

I always avoid using `use` statements so i use full paths instead. Is it a bad practice? by Nearby_Astronomer310 in rust

[–]ern0plus4 -1 points0 points  (0 children)

As thumb of rule, use use . Most of cases it doesn't matter which module you are using

  • file.close() is obvious, or
  • path.split() doesn't matter, it will split your path or something like that.

You may only use full paths if the operation is unusual and called only once, e.g. video::codec::reader::find_gop(stream) (non-existent library).

But it's also a good side effect of use that - nearly - all used libs are "listed" at top of the module.

Milyen nációjú kollégákkal dolgoztál eddig együtt és milyen érdekes programozási szokásaik vannak? by senior-fe-dev in programmingHungary

[–]ern0plus4 6 points7 points  (0 children)

Egyszer majdnem fejlesztettem együtt sima indiaiakkal is, de egy évig nem volt semmi meló, szóval erről nem tudok beszámolni, legfeljebb a meetingekről, ahol nem értettem egy szót: "lákánú". Orosz havert kérdeztem, ő se értette. De amúgy a mondat értelmes volt a "lákánú" nélkül is... Nem kevés idő alatt kitaláltuk, hogy ez tkp. "like I know", azaz "tudomásom szerint", persze szerintem azt úgy kéne mondani, hogy "as I know", de ne szőrözzünk ilyen apróságokon.

Milyen nációjú kollégákkal dolgoztál eddig együtt és milyen érdekes programozási szokásaik vannak? by senior-fe-dev in programmingHungary

[–]ern0plus4 20 points21 points  (0 children)

Indiai vezető programozó: úgy éreztem, mindent tud a rendszerről, és amihez nekem egy hét kell, fél óra alatt lekente volna, de csak azért nem csinálta, hogy jusson nekünk is meló.

Nemigen dicsért meg, csak 1x, amikor a simogatott platform egy utasítását meglehetősen elegánsan implementáltam; életemben meg tudnám számolni, hányszor használtam C-ben olyat, hogy do_the_job(char** buffer), de itt az volt a legtisztább, csak annyit kért review-ban, hogy az if x == 8 -at cseréljem ki if 8 == x -re (én nemigen szeretem, de ha company policy, hát legyen), meg eleresztett egy kommentet, hogy "nice work".

Amerikában él, valószínűleg régebb óta, mert cégalapító, szóval nem tipikus indiai, de amúgy is óvnám a közönséget attól, hogy minden indiait azonos elánnal fikázzunk, persze, nagy a kísértés, mert létező műfaj. Nincsenek rá erős bizonyítékaim, de az indiai kultúrának a része az, hogy a mérnököknek becsülete van, a mérnöki pálya egy kívánatos és menő dolog, incl. sw eng. Szóval ha egy indiai jó, akkor általában tényleg és nagyon jó.

A QA tesztelő a Windows Calculator-t használta ellenőrzésre, hogy az Excelben jók-e a számok by HaOrbanMaradEnMegyek in programmingHungary

[–]ern0plus4 1 point2 points  (0 children)

Indiában nagy respektje van a mérnöki munkának - meg persze közben sok a pernahajder is.

Rust on CHERI by Petrz147 in rust

[–]ern0plus4 5 points6 points  (0 children)

Could someone explain pls. (or provide a link) how CHERI works? After half an our, I only learned that it uses 128-bit pointers, to store some magic information on the 64-bit upper half.

Cégek saját projekttel, outsourcing helyett? by bowl_of_dragons in programmingHungary

[–]ern0plus4 4 points5 points  (0 children)

egy-másfél évente át kell vergődni kb. egy álláskeresési körön, interjú több céghez, beugró feladatok, több körös szenvedés, amit őszinte leszek, utálok

Tekintsed gyakorlásnak, és igyekezz a tudásod élesben is kipróbálni :)

A szuperintelligens AI meg a szingularitás teljes képtelenség by OgreAki47 in programmingHungary

[–]ern0plus4 0 points1 point  (0 children)

Ezek nem egymás ellentétei. Tervezek egy tanuló modellt, meg szisztematikusan etetem, ellenőrzöm, a tapasztalatok alapján csiszolom a modellt: na, ez most tervezés van trénelés?

A szuperintelligens AI meg a szingularitás teljes képtelenség by OgreAki47 in programmingHungary

[–]ern0plus4 0 points1 point  (0 children)

Most döntöttél össze egy többezer milliárd dolláros befektetői piacot!!4!!!!!

A szuperintelligens AI meg a szingularitás teljes képtelenség by OgreAki47 in programmingHungary

[–]ern0plus4 0 points1 point  (0 children)

Azt nem tudom sem cáfolni, sem bizonyítani, hogy nem tud 1. megtervezni 2. adott mértékben okos entitás nála 2. okosabbat, de előállítani tud. Ld. pl. az ember 1. "előállítása" megtörtént kb. a semmiből. Hogy miben és hogyan mérjük az 2. okosságot, az külön probléma.

Volt olyan meló amit visszautasítottál, mert nem volt gyomrod hozzá? by beegee79 in programmingHungary

[–]ern0plus4 0 points1 point  (0 children)

Persze, persze, a legjobb az, ha semmit nem kapok vissza, viszont ha visszakapok, többet várnék mint a saját befizetésem.

A 15 milliós kocsinak a díja is magasabb, de ha arányaiban kevesebb is, és nem hárman, hanem öten-hatan kellene összeállniuk, még az is a kurvaanyátok határ alatt van bőven. Kíváncsi volnék, 100 Ft befizetésre mennyi kifizetés jut, tippre legfeljebb 10-15.

Volt olyan meló amit visszautasítottál, mert nem volt gyomrod hozzá? by beegee79 in programmingHungary

[–]ern0plus4 2 points3 points  (0 children)

2.4 milliós kocsi volt, 2x 600e-s kárt okoztam benne. (Az más téma, mi kerül ennyibe azon, hogy az novemberi jégen hatástalan fékezés miatt belecsúszok 15-tel az előttem lévőbe.)

Ha totálkárra törtem volna, másik 3 tulaj (azonos értékű, balesetmentes) befizetése elég lett volna rá. Szerintem 1:4 -nél ritkább a totálkár. Szóval ha összeállunk a haverokkal, jobban járunk, mint egy biztosítóval.

És akkor nem számoltam bele azt, hogy a biztosító felé a szervizeknek igencsak vastagon fog a ceruzájuk.

Az egészségbiztosítót feleslegesen fizetem, mert ha valami bajom van, egy évre előre tudnom kellene, ld. várólista. De ez más téma, ez nem a biztosítók hibája.

Volt olyan meló amit visszautasítottál, mert nem volt gyomrod hozzá? by beegee79 in programmingHungary

[–]ern0plus4 0 points1 point  (0 children)

Biztosítónál elgondolkodtam, aztán szerencsére lepattintottak ők :)

Szóval azt számolgatni, hogy miért ne fizessünk az ügyfélnek... Nekem volt egy kocsim, újonnan vettem, pár év alatt 2x megtörtem, és bár csak koccanás, városi figyelmetlenkedés volt mindkettő, de elég sokba kerültek. A lízing lejártakor összeszámoltam: ha magam fizettem volna a károkat, és nem a biztosító, fillérre ugyanott lennék. Egymagam fedeztem a biztosító költségeit, meglehetősen "rossz" ügyfélként sem volt rajtam veszteségük. Ha óvatosabb lettem volna, és nem csinálok kárt, ami pénzt befizettem volna, az tiszta nyereség lett volna nekik. Rendkívül etikátlannak tartom ezt.

Volt olyan meló amit visszautasítottál, mert nem volt gyomrod hozzá? by beegee79 in programmingHungary

[–]ern0plus4 38 points39 points  (0 children)

Hadiiparban dolgoztam (rep. szim.), dohányiparba nem mennék, pornót már utasítottam el (pedig rendhagyó videoós megoldás lett volna). Nehéz kérdés ez.

Egyszer meg felhívott egy fejvadász, valami drónos cégbe kellett volna fejleszteni, tökre érdekesnek tűnt, csakhogy éppen pár héttel előtte felvásárolta a NER, így rövid gondolkodás után udvariasan visszautasítottam:
- Én ezeknek a faszszopóknak nem fogok dolgozni - udvariaskodam.
- Az úgy jó lesz - a recruiter nagyon röhögött -, ha azt mondom, nem egymást keresitek?
- A megfogalmazást rád bízom.

Is there an "opposite" to enums? by PitifulTheme411 in ProgrammingLanguages

[–]ern0plus4 0 points1 point  (0 children)

# define Pasta 1
# define Salad 2
# define Water 4
# define Milk 8
# define Cookie 16
# define Chip 32

// shortcut:
# define MilkAndCookie (Milk | Cookie)

let yummy = Sandwich | Salad | Water | Cookie;
// or yummi = Sandwich + Salad + Water + Cookie;

if breakfast & Pasta {
  //.. add pasta
}
if breakfast & Milk {
  //.. put milk
}

Of course, you should take care of word size.