Showing posts with label work. Show all posts
Showing posts with label work. Show all posts

Wednesday, August 18, 2010

dream job


:(

Azt hiszem, maradok még programozó... holnapig, akkor megint rákeresek :)

Tuesday, August 17, 2010

how to kill a dragon (internet meme)

There's a beautiful princess, prisoner in the highest tower of a castle, guarded by a mighty dragon, and a fearless knight must rescue her…

This is how each language would manage to rescue the princess from the hands of the dragon

  • Java - Gets there, finds the dragon, develops a framework for dragon anihilation with multiple layers, writes several articles about the framework… But doesn't kill the dragon.
  • .NET - Gets there, sees the idea of the Java developer and copies it. Tries to kill the dragon, but the monster eats him.
  • C - Arrives, looks down at the dragon, pulls out his sword, beheads the dragon, finds the princess… And ignores her to see the last checkins of linux kernel cvs.
  • C++ - Creates a basic needle, and gathers funcionality until he has a complex sword that he can barely understand… He kills the dragon, but gets stuck crossing the bridge because of memory leaks.
  • COBOL - Arrives, sees the dragon and thinks that he is too old to kill a monster that big and rescuing the princess, so he leaves.
  • Pascal - He prepares for 10 years to create a dragon anihilation system… When the moment comes, he discovers the program can only take lizards as an entry.
  • VB - Builds a dragon destruction weapon based on several components, jumps to the back of the dragon and in the most critical time he discovers that the sword works only on rainy nights…
  • PL/SQL - Gets data from other dragon slayers, creates tables with n ternary complexity relations, tridimensional data, OLAP, takes 15 years to process the information… And by then, the princess became a lesbian.
  • Ruby - Arrives with massive fame, saying he is the best at anything and when he faces the dragon, he shows a lame motion picture of himself killing a dragon… The dragon eats him out of boredom.
  • Smalltalk - Arrives, analyzes the dragon and princess, turns around and leaves, they are way too inferior.
  • shell - Creates a very powerful dragon slaying weapon… But in the moment of truth, he can't remember how to use it.
  • shell(2)- The guy approaches the dragon with a two line script that kills, cuts, disembowels, impales, chops to pieces and packs the beast, but when he runs it the script grows, it fattens, irritates and puts alcohol in the fire of the dragon…
  • Assembler - He thinks he's doing the right and most efficient things… But he writes an A instead of a D and kills the princess to end up f***ing the dragon.
  • Fortran - Arrives and develops a 45-thousand-code-line-solution, kills the dragon, meets the princess… But she calls him a weakling and runs after the Java programmer who was elegant, and also rich.
  • FOX PRO - Develops a dragon killing system. It's gorgeous and works on the outside, but it's really patched inside, so when he runs the dragon anihilator, he realizes he forgot to index the DBFs.
  • PROCESS ANALYST - Approaches the dragon with two tons of documentation, develops the unified dragon-killing process, he develops a DFD to free the princess and marry her, convinces the dragon that it's the best for him and it won't hurt. When he executes the process, he estimates the effort and the damage he will cause with a plan signed by the Pope, Buddha and Michael Jackson. Then he buys a couple of nukes, 45 cannons, an aircraft carrier and hires 300 heavily armed men… When all he needed was the sword he was holding in his hand in the beginning…
  • CLIPPER: Sets up a routine that loads a codeblock array to insult the dragon, serenade the princess, load the sword in memory, beat the crap out of the dragon, clean the mess, prepare a raspberry milkshake for the princess, make love to her, take a bath, start the car, put it some gas and come back home. When he runs it, he gets a "Bound Error: Array Access" and the dragon eats him with fries.
  • Lisp, where the famous knight-errant, after speaking with numerous experts in dragon-killing, and modeling the knowledge they posess, he programs the system, and when he runs it he realizes he forgot a bracket (bender the offender).
  • HTML: Mounts a web on famous swords used to kill dragons, but he ignores the W3C standards. When he meets the dragon, he finds out the code isn't compatible with his browser, so he's left swordless. The dragon eats him as an appetizer.
  • Prolog: Thinks he needs a weapon to kill the dragon. Searches in a catalog for 182014 weapons. By the time the princess dies of her age, he's achieved to know how to make every weapon starting with A: Atomic Bombs, Anti-Air Weapons, Arches, Ammunition, Axes...
  • PHP: Creates a web page that when he executes it would eliminate the $dragon selecting from a weapons databese in MySQL over an Apache server. Nevertheless he forgot the WHERE in the DELETE query and kills the princess, the dragon, the peasants, the witch, the sorceror and the programmer himself.
  • JavaScript: The programmer tries to kill the great green dragon that spits fire throug his mouth. He creates a script that will delete the dragon when he loads a webpage, to create seconds after, some damsels to throw him flowers and make clapping sounds. Unfortunately he didn't take into account the DOM structure of the lizard, also known as Mozilla, and the only thing he gets is to fill his console of errors and that the Book of Mozilla tells how he was devoured.
  • ActiveX: The programmers create a tunnel to enter the dragon's lair from the castle and run a program that will kil the dragon from a safe and prudential distance. The dragon discovers the tunnel, eats the workers who dug, the dragon slayers, and enslaves every servant in the castle. The castle becomes a dragon-breeding place, full of little dragons that the dragon sends in pop-ups to other castles. The untasty remains of the knights are put in cans of Spam and sent to other castles as well as a warning. (aquelquesiente)
  • Basic. He creates a weapon able to kill paper dragons, but no matter how they improve it, they discover it's not good enough to kill any dragon bigger than a baby poodle.
  • Matlab: They create a loop that calculates the trajectories to shoot a giant arrow at the dragon. The program works flawlessly. What they need now are the voluntaries caoable to launch tha arrow with the necessary strength and accuracy.
  • Videogame Programmer : Spends two years programming a state-of-the-art sword with shaders and all. When the time comes to kill the dragon, he finds that half the knights aren't strong enough to raise the sword. Then someone programs a patch that reveals the sex scenes with the princess and Hillary Clinton makes it a scandal.

Wednesday, August 11, 2010

in your face

select to_date (to_char (SYSTIMESTAMP, 'YYYY-MON-DD HH24.MI.SS'), 'YYYY-MON-DD HH24.MI.SS') AS MY_DATE from DUAL;

Mert ezt mindíg elfelejtem, mint az ALTER SESSION SET CURRENT_SCHEMA=sémanév -et

Tuesday, August 10, 2010

english lessons - überversion

1x megkérdeztem az angol tancsit, hogy specific, business language-et nyomjunk már. Bár az rtl-néé is tanított angolt, nem tudta mit mondjon.

Pedig van geekspeak, akkor lennie kell sales speaknek is. Más néven található meg a google-ben, de maradjunk annyiban, hogy ha egy igazán jó előadót hallgatsz, akkor csak azt kell leírnod, hogy az alábbiakat hányszor használta. Amúgy a TED-en van egy hasonló elemzés arról, hogy mi a sikeres TED speak titka :)))

to win us a team

they gonna measure us a team

in business stand point of view
the most critical piece
on time on target (a másik sorrendben is megy)
need be more manageable
really committed
keep it under control
keep delivering on time
achieving XXX
on the other side of the equation
review what is the best option to get that goal
gonna be on track
at the end of the (period)
the problems that need to be fix
based on a document, written by X team
we need to relocate the resources and have a detailed plan
to really plan
thats gone be the hard part of the discussion
it is critical (deadline-hoz közeledve egyre többet és egyre tagoltabban kell mondani)
we are on the same team

Tuesday, July 27, 2010

issue tracking

Van úgy, hogy ahelyett, hogy a QA-nak megmondják, hogy 'dógozzá baze', inkább igazat adnak.
Faszé kell már egy bug trackerbe a buggal kapcsolatos infót beírni. A szegény QA-snak végig kell olvasnia a kommentjeimet, hogy mikor mi történt a buggal, pedig ő leszarja.
Más kérdés, hogy mondjuk mikor az ügyfél kérdez, hogy mi van a buggal, akkor ott van bent a bug trackerbe, hogy éppen kinél áll a dolog, vagy hogy jé, el ne felejtsük már, hogy az SQL patch még nincs kész...

Szóval mostantól
A/ lokál gépen egy téixté fájlban managelem ezt
B/ outlookban draft maileket irogatok, hogy hogy áll a bug
aztán a végén beteszem attacsmentként, hogy azért mégis lehessen már tudni, hogy mi történt.

Hozzátenném, hogy a bugfix kommentjében kötelezően van egy olyan mező, hogy 'comment to QA', szóval elég lenne nekik a FIX-el jelölt kommenteket olvasni... de gondolom szólt nekik a boss, hogy baze, olvasd már végig az issue kommenteket, aztán ezek meg ideszóltak az én bossomnak, hogy hát ők nem bírják már az olvasást, inkább ne írjak sokat, mert akkor nem kell olvasni.

/facepalm

mondtam, hogy jó, majd akkor úgy teszem be a bug trackerbe a dolgot, hogy ne legyen azon a részen, amit el kell olvasniuk. Mert a bug trackeléséről mégse mondanék le... később még jól jöhetnek az ilyen dolgok, hogy mi történt a buggal menet közben...


bug

tracker

............................................________........................
....................................,.-‘”...................``~.,..................
.............................,.-”...................................“-.,............
.........................,/...............................................”:,........
.....................,?......................................................\,.....
.................../...........................................................,}....
................./......................................................,:`^`..}....
.............../...................................................,:”........./.....
..............?.....__.........................................:`.........../.....
............./__.(.....“~-,_..............................,:`........../........
.........../(_....”~,_........“~,_....................,:`........_/...........
..........{.._$;_......”=,_.......“-,_.......,.-~-,},.~”;/....}...........
...........((.....*~_.......”=-._......“;,,./`..../”............../............
...,,,___.\`~,......“~.,....................`.....}............../.............
............(....`=-,,.......`........................(......;_,,-”...............
............/.`~,......`-...............................\....../\...................
.............\`~.*-,.....................................|,./.....\,__...........
,,_..........}.>-._\...................................|..............`=~-,....
.....`=~-,_\_......`\,.................................\........................
...................`=~-,,.\,...............................\.......................
................................`:,,...........................`\..............__..
.....................................`=-,...................,%`>--==``.......
........................................_\..........._,-%.......`\...............
...................................,<`.._|_,-&``................`\..............

Tuesday, April 27, 2010

Tudjátok, egy olyan jó kis helyre

Mák bisztró, Vigyázó Ferenc utca.
Vapiano.

Amúgy meg teljesen beleestem az O.S.I. Radiology című számába.. is.. de bármi jöhet a Blood című albumukról. A Be The Hero-hoz meg kéne csinálni videoklippet. Kicsit olyan hatással volt rám, mint anno a King Crimson, vagy mi.
Ami nem tetszik az a sterilitása, egy érzelemmentes stúdioalbum, látszik, hogy a zenét nem elég tanulni, át is kell élni :) Szeretem, ha az érzékszerveket átmozgatja a zene, ez a fülre különösen igaz.
Meg kell dolgoztatni a kis Fourier analitikust. ^^

Friday, April 23, 2010

teszt

/facepalm

Ha modosit az ember egy szerver oldali kódot, miért nincs egy olyan tool/opcio, hogy a referenciákon keresztül megkeressük azt, hogy milyen interface metódusokat hívva érhető el a kód?

Aztán onnan már csak egy lépés listázni azokat a teszteket, amik meghívják azokat az interface metódusokat (vagy ha egy sincs, akkor nagy felkiáltójel a coverage-be) és a kiccsávó tudja, hogy milyen teszteket kell megfuttatni commit előtt...

Most én vagyok a hülye, vagy mindenki abszott megcsinálni ezt a tool-t az adott verziókontrolhoz? :) a changeset és egy AST elemzés megmondaná, akár meg is futtathatná...

/fail :)

Monday, March 1, 2010

wroom wroom, itt a tavasz

Itt a tavasz
Új monitort kaptam a régi helyett, és most aztán olyan széles a látómezőm, hogy elfárad a szemem, mire végignézem az 1440+1680 x 900+1050 -es két monitort :)

Na, megyek, mert egy labelt kéne berakni 2 helyre 3 napja, és még nem csináltam meg. Igaz, leimplementáltam közben 3 hiányzó cuccot, és átrendeztem a kódot, hogy lehessen normálisan maintainelni :)

Friday, February 19, 2010

sherlock

A bűnöző agyával gondolkozni. Ez a titka sherlocknak.
Bugot fixálok.

Megpróbálok az elkövető agyával gondolkozni.

Ha elkapom, kinyíromafaszbaaszemetet


:)

Tuesday, February 16, 2010

idézném Gábort

Ha nincs elromolva, ne javítsd meg.

Monday, February 15, 2010

tame the monsta

Mivel van egy olyan monster query ami az sql developert megfekteti, mikor sql beautifyer-t nyomok rá, ezért rá kelltt jönnöm, hogy mit lehet eclipse-ben csinálni, hogy egy 6k-s select átlátható legyen (formázva 15137 byte :)

Watch expression-ba lehet ilyent:

new org.hibernate.pretty.Formatter("select * from dual").format()

Na most a selectcsillagfromduál helyére berakom a mostát éééés..... fasz eclipse levágta a szöveg felét. Na mindegy, az már csak substringelés, de a dolog működik.

Friday, February 12, 2010

formok

Na jó, ez most szakmai lesz. Picit.
Amikor van egy formod, amiről a user submittálhat adatokat, nem kéne a teljes cuccot elszubmittolni, mert az megafaszság, rühellem utálom és phüjj phüjj.

  1. amihez nem nyúlt a user az nem megy sehova.
  2. amihez hozzányúlt a user, de a végeredmény az, ami volt, az nem megy submitra
  3. a mezőnek mindíg több értéke van, mint egy. Van egy current value, original value, default value, possible values. És akkor még nem is mondtam, hogy multiselectes, ugye... 
  4. Ha a user a default value-t állítja be, akkor az egy spéci dolog, mert az nem ugyanaz, mint a default value aktuális értéke.
  5. A default value jöhet több helyről is, és számit hogy honnan. Lehet rendszer szintű, ha site szintű, ha csoport szintű stb... ez akkor válik izgalmassá, ha a defaultot piszkálják. A user ha a default-ot választja, akkor nem annak aktuális értékét választja, hanem azt, hogy "legyen az, ami szokott lenni."
  6. A settingeket jó, hogy egy képernyáre külön kitesszük, de könyörgöm, ahogy tooltipet is lehet csinálni, úgy a mezőhöz is mehet a contextbe, hogy ennek honnan jön a default value-ja, és leeht azt inenn szerkeszteni, vagy átmenni a settings-be és pont ott megállni, ahol ez az érték van.
  7. A koncepció az, hogy a form összefog mezőket, azok összes tulajdonságával együtt.
  8. A default value egy mezőben megjelenhet, de azt nem kéne a value-ba beleírni, mert ez egy renderelési issue. Amikor submittálom akkor LEHET, hogy be kell égetni a value-ba a default value-t, mert a submit idején ez fixálódik, hiszen ha kitöltötte a lottót, akkor az onnantól fix, hiába változtatja a kedvenc számait...
Sok beszédnek sok az alja, a lényeg, hogy a adattal menjen már át a viselkedés is, mert az adatnak nem az a típusa, hogy date, hanem az, hogy születési évszám.

Na ezért volt egy nagy fasz, aki a különböző osztályokat jávában final-ba tette. Köszönjük. Na ezért van az, hogy vannak olyan függvények, amik listákat meg objec-eket fogadnak egy u.n. erősen típusos nyelvben. Nem kell mindennek típust csinálni, de elgondolkodtató, hogy a pl az időszak az egy osztály, ami nem a date-et terjeszti ki, holott pedig kéne. A másik dátum lehet, hogy nincs is beállítva. Az a másik dolog, hogy soha nem kellett volna a long mellé Long-ot csinálni. Ugyanazt ábrázolják, és csak a tárolásban különböznek, amit meg egy bussines logic-ot író csóka pont leszar. Ha kell a performance, akkor úgyis megírom assembly-ben :P Java-ban amúgy sem egy leányálom a bináris logikát effektíven leporgramozni, mert ugye a nyelv jó, az implementáció meg ezen a ponton tragikomédiába fullad.

Friday, February 5, 2010

van szabad állás

Ha valaki érdekel magánba dobjon meg egy email-al, forwardolom majd a feladónak.
--------------
 
Sziasztok,
keresek ügyvezetői asszisztenst belvárosi munkahelyre, napi 8 órában.
Magas szintű angol nyelvtudás alapfeltétel, mellette francia illetve német előny!
 
Dinamikus, kedves, stb..:-) kolléga jelentkezését várom.
 
Ha valakit érdekel, elküldöm a leírást, illetve önéletrajzok is jöhetnek:-)
 
köszi a segítséget,

Monday, January 25, 2010

regression

Hát, sokféle felosztása létezik a projectek fázisainak, de igazából nem jók a megközelítések :) nyilván :)

Mi most a regressziós fázisban tartunk, amikor a legtöbb fejfájást a regressziós bugok adják, és mire egyet kinyírok, jön egy másik. Ez akkor következik be, mikor már elég nagy a code base, elég kevés a teszt, és elég sok ember mozog a különböző funkciók között, mert ugye bárkit ráraknak X területre annélkül, hogy tudná, hogy milyen apró disznóságok derültek ki menet közben ott...

Wednesday, January 20, 2010

time and a half


A yahoo-n találtam ezt, de nem értettem. Ehhez persze kell az a tudás, ami miatt sikeres egy kém, pl. Ismerni kell a helyi kiszólásokat, mint a helyi baseball csapat eredményeit :)
Persze a google ebben is segít megtalálni az értelmet.

A lényeg a lényeg, hogy van ott még egy-két jópofa képregényke.

Monday, December 7, 2009

obassza meg, elfogyott az időm

Basszus, dec9-től szabin vagyok. Azt hittem, még egy csomó bugot ki fogok tudni fixálni, de nem. :'(
Tudom, hülye vagyok, de akkor is :'(

más tollával

hm... a 'fixed indirectly' nem más, mint más tollával ékeskedni :)
Na jó, elárulok egy trükköt, amit én is alkalmazok néha (most pont olyan bugot fixálok, ami ha megvan, akkor mások is lezárhatnak bugokat):

A defektrohasztásos technika.

Bizonyos bugok olyanok, hogy már párszor meg volt fixálva, random user által, de időnként újra felbukkan, ráadásul központi komponensben, amihez nem fér hozzá az ember. Ilyenkor nem erre a bigra, hanme másikra kell koncentrálni, mert a központi komponenst úgyis egy másik team javítja. A régi mondás szeirint nem szabad levadászni a haragosaidat, mert ha eleget vársz, a folyó úgyis partra sodorja a tetemeiket idővel, így az ilyen típusú bugoknál is csak ki kell várni, amíg központilag meg nem javítják a dolgot, és lehet lezárni a bugot :)
Na, fixálok, hogy mások élvezhessék a munkám gyümölcsét :)

tip of the iceberg - gems of architectural fuckups - java

Basically when you see something in the code you should start thinking about the motivations of the programmer who put that there.
For example when you see a loop with System.out.println(...) in part of the initialization code you can be sure that someone
  1. was checking if all the stuff was initialized
    1. this means that something wasn't initialized
    2. it is not trivial how to do it
    3. people have no guidelines/was not educated about the framework they using
    4. someone who should know about what developers do has no idea
    5. some may found a workaround already and done the initialization in some other way
    6. bonuses will be paid to people who will fix the code when the management understands that it is to be rewritten.
    7. no one was performing code reviews / peer reviews
    8. log4j was not configured/used properly in that project as no one cares about maintenance
  2. the developer has a taste for quick and dirty methods
    1. he was hired so this method of work is accepted/encouraged
    2. he has no support for doing the things in a civilized manner
    3. he was never blamed for doing so and his check in-s are not supervised
    4. most likely more than one developer let it pass as they was no intention/instruction to remove it (it is somebody else's problem)
    5. deadlines are rated more important than quality
    6. the customer has no idea what is going on, just pays a lot of money without having enough control over the project. 
    7. #5 means that the customer has project managers hired for the project
  3. At this point no one ever checked the code for such fragments (System.out.println) thus most likely we have some other nasty problems ahead.
    1. bug fixes can be trivial but most of them can't be estimated
    2. the IT department of the customer will ask the business to extend the budget sooner or later
    3. if the product is business critical then it will have a new version developed, typically the programming platform will be blamed.
At this point you should understand that there are more than one people to blame for someone's commit. If you think pinpointing the one with SVN blame is the solution then you just don't get it.

And just for clarification: it wasn't me :) I'm just bringing the news about the 300.

Tuesday, November 17, 2009

állás

van pár haverom, aki munkát keres, van grafikus, programozó, gépész...
szóval ha valakinek kell ember, pingeljen meg :)