2011. április 28., csütörtök

2011. április 26., kedd

undefined

Re: Munkaerotipusok

Ugyes Szorgos Magabiztos
X X X mindenki utal, nem tudtad?
X X orokre csicska maradsz, hahaha!
X X miattad utal itt dolgozni mindenki
X akar inni is elkezdhetsz
X X ugyan mar, senki nem vesz komolyan
X mekkora LUUUZER!
X kussojja'
o bazmeg...

2011. április 19., kedd

Munkaerő típus: az okos

Van az a fajta ember, aki mindent tud, mindent jobban tud, egy dolgot kivéve: figyelni a többiekre.
Az ilyen ember egyébként nagyon hasznos is egyben, mert kell akinek vannak elképzelései, van ötlete, tud érvelni, egy apróságnak tűnik csupán, hogy nagyon tenyérbemászó a viselkedése, de ez valójában sokkal rosszabb, a kommunikációt jelentősen gátolja. Hibázni az ilyen ritkán szokott, beismerni, hogy hibázott, azt pedig soha.

Munkaerő típus: ki ha én nem

Az ilyen emberek általában el vannak tévedve, hogy mi ami tényleges munka és siker és mi nem. Általában mások dolgoznak helyettük, ha épp nincs senki aki "terelje" őket, akkor gyorsan pánikba esnek, a feladat nagyságát és bonyolultságát, no meg a rossz körülményeket okolják. Aztán ha nagy segítséggel, vagy mondjuk egy 10 perces munkát 3 nap alatt megcsinálva végeznek az adott feladattal, akkor jön a következő fázis, hogy megoldottam látjátok, na aki a király, esetleg mail mindenkinek, hogy ő bizony elkészült a feladattal. Az ilyenek hajlamosak teljesen elfelejteni a kapott segítség megköszönését. Mindez egy újabb "hatalmas" feladat megkapásáig tart, amikor ismét a pánik jön. Ilyen ismétlődéssel telnek napjaik.

Munkaerő típus: feladatkiosztós

Feladatkiosztós extends ÉnMegABátyám
Merthogy ez se tud sokat: "akkor ezt nézzük, hogyne persze". Mások megcsinálják helyette, ő meg a meetingen bejelenti, hogy megcsináltuk. Ilyen is kell, ez nem annyira negatív figura, de ha csinálna is valamit előbbre tartana a munka.

Munkaerő típus: én meg a bátyám

Én meg a bátyám mindent tudunk, de mindent a bátyám ugye. Kurva lelkes, mindent hogyne csinálom, menjünk, haladjunk, csak hát, a tempó mégsem az igazi.
Ilyen emberek tipikus mondatai:
  • Persze, hogyne, szívesen tanulok újat. (Ez mindig bevethető, mert minden új neki)
  • Ezt nem én csináltam, de szívesen megnézem. (Persze hogy nem ő csinálta, semmit se csinált)
  • Ezt már olyan régen csináltam, hogy nem emlékszem, meg kell tanulnom újra. (Valakivel megcsináltatta, aztán most bajban van, főleg, ha az a valaki nincs a közelben.)
  • Meg kell nézni itt mi a helyzet. (A helyzet az drága barátom, hogy azt se tudod, miről van szó)
Legyek önkritikus: én mindegyik mondattal dolgoztam már...úgy értem hallottam másoktól...

Munkaerő típus: kulccsal a kezébe szaladgálós

Nah egyik ismerősöm ismerőse, aki télleg nem én vagyok, ilyen lakatos szerű üzemben dolgozott, lényeg, mikor fogytán volt a munka, és a főnökök így figyelték az embereket, hogy kitől válhatnának meg szituban, azt magyarázta nekem:
"Reggel felveszek egy kulcsot meg egy kalapácsot és a kajálásig azzal mászkálok körbe, így mindenki láthatja, hogy dolgozok...délután meg csak elmegy valahogy".

Fiktív

A most következő "munkaerő típus" bejegyzések teljesen fiktív személyekről szólnak, kitaláció az egész, bármilyen egyezés bármilyen létező jó munkásemberrel pusztán a véletlen műve.

Collections, Arrays

Azt vettem észre pályafutásom során, hogy sok esetben ciklusokat írunk meg bűvészkedünk, amikor tömbökről (arrays), vagy listákról, halmazokról... (collections) van szó, de miért is?
Van 2 remek osztály, amiben csomó hasznos eljárás van, akiket csak használni kellene.
Na írok néhány példát:

Arrays.binarySearch
Arrays.copyOf
Arrays.copyOfRange
Arrays.sort
Arrays.fill
Arrays.asList
...
vagy

Collections.asLifoQueue
Collections.binarySearch
Collections.fill
Collections.max
Collections.min
Collections.shuffle
Collections.frequency
Collections.sort
Collections.synchronizedList
Collections.swap
...

Lófaszt fogok leírást ezekhez idemásolni, meg kell nézni az API-t, talán kedvcsinálónak elég ennyi, használjuk ezeket!

HTML tag-ek

Adott egy TinyMCE-vel szerkesztett HTML dokument reszlet, amit bizonyos esetekben HTML tag-ek nelkul szerettem volna megjeleniteni.

Pl ebbol:
<p>Hello <span class='name'>Sanya</span>!<p><p>What the racetrack?</p>
ezt:
Hello Sanya! What the racetrack?

Bonyi? Persze, hogy nem:
def strip_tags(html):
    p = re.compile(r'<.*?>')
    return p.sub('', html)

2011. április 15., péntek

Re: Python

Pythonban hasonlo a helyzet. Az egyesevel konkatenalas lassu, helyette a join fukcio javasolt.

Lassu:
r = ""
s = "x"*25
for i in range(0, 20):
    r += s
Gyors:
s_lst = ["x"*25]*20
r = "".join(s_lst)
Az elso verzio lefuttatasa 5000x 0.04 mp-ig, a masodike 0.01mp-ig tartott.

Par szintaktikai erdekesseg(?) a kod reszletekbol:
  • ", ".join(["hello", "bello"]) ==> "hello, bello"
  • "hello"*2 -> "hellohello"
  • [1, 2, 3]*3 -> [1, 2, 3,1, 2, 3]

Stringek előállítása

Java 6-tal string-ek kezelésének sebessége témakör. String-eket szeretnénk összefűzni, valami oknál fogva sokat.
2 megoldást hasonlítok össze:
  • string-ek konkatenálása: str1 + str2
  • StringBuilder osztály használata: sb.append(str1).append(str2)
A próba során 20 darab átlagosan 25 hosszú string-et, 5000 szer egymás után fűzök, az eredmény:
  • 203360 ms
  • 31 ms
Javaslom a StringBuilder használatát...

Java kód:

String all = "";
final int count = 5000;

// String concat example
long t = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
for (String s : STRINGEK) {
all += s;
}
}
System.out.println((System.currentTimeMillis() - t) + " ms");

// StringBuilder example
t = System.currentTimeMillis();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < count; i++) {
for (String s : STRINGEK) {
stringBuilder.append(s);
}
}
all = stringBuilder.toString();
System.out.println((System.currentTimeMillis() - t) + " ms");