blog

Másfél nap

import javax.jcr.Node;

final Node child = ...;
if (child != null) {
	child.remove();
	log.debug("Removing child [path = " + child.getPath() + "]");
}

Mi a hiba a fenti kódban? Válasz hajtás után.

Költségtérítéses anomáliák: helyzetjelentés

Az ügy húzódik, egyelőre állítólag visszaraktak mindenkit államilag finanszírozott képzésre, valamint kérték az EHK állásfoglalását.

Kármán egy év után

Úgy tűnik, mióta nem vagyok egyetemista, egyre többet publikálok az egyetemről. Ezt az írást most találtam, még valamikor a tavasszal kezdtem hozzá, azóta itt kallódott a gépemen. A helyzetleírások is akkori állapotot tükrözik, nem nagyon tudom, mi változott azóta.

Mikor valaki megkérdezi, hogy „na és, milyen az új Kármán”, általában visszakérdezek: jót vagy rosszat akarsz hallani? Most az utóbbiról lesz szó, a jó dolgokról már írtam korábban, és azon a fronton nem sok változás történt.

Az 2007/08-as két két félév során megtapasztalhattam, hogy milyen utcafronton lakni. Szörnyű. Egyetlen előnye, hogy nincs erkélyről behúzó dohányfüst. Helyette van soksávos, dübörgő Irinyi utca az ablak alatt, visító fékes éjszakai busszal és hajnalban ordibáló, sikítozó részegekkel, kipufogó nélküli motorosokkal. A Zöld Pardon mindenen áthatoló basszusairól már nem is szólva.

Ettől még a Schönherzes 14büfé mellett is jobb volt lakni, ők legalább hétvégén kussoltak. Meg ott reggel lehetett aludni. Itt az sem megy mindig, mert a majdnem minden reggel felbőgő, zsúrkocsi méretű robottakker (takarítógép) hangja ellen az ajtó nem véd. A koli másik végéről is idehallatszik. Az Old's-os, ablak alatti teraszra vagy aulába szervezett, és a kolisok magánbulijairól inkább nem is írok. Tíz év kolesz után kezdek besokallni.

Mint említettem, fejlődés nem sok történt, de annyit azért el lehet mondani, hogy szereltek zárat a konyhaszekrényekre. Kulcsot már nem osztottak hozzá. Legalábbis nálunk, az első emeleten. Ha már konyha: a használt sütőolajat is csak ebben a BME kollégiumban nem gyűjtik külön (ami az egyetem elvileg legmodernebb kolija). Bár időnként eltűnnek a konyhában hagyott flakonok, üvegek, de ki tudja hová...

A melegvízzel ismét vannak problémák, már megint nem egészen mondható az alapfelszereltség részének. Mondjuk a normális fűtés sem. Azért olyan nincs, hogy napokig-hetekig hiánycikk a melegvíz, de az is elég zavaró, ha csak fél zuhanyzás közben nincs. Mondjuk mikor lemosnád magadról a szappant.

A fűtést februárban lecsavarták a korábbi nem tudom hány (>22) fokról 22 fokra. Egyik napról a másikra. A megfigyelések szerint sok ablak volt nyitva a fagyos téli éjszakákon is. Végül is jogos, a gázszámla állítólag a felére esett vissza. A változtatás menete viszont kissé bicskanyitogató. Semmi értesítés. Csak fagyunk megfele, egyik napról a másikra. Pedig lehetett volna pár naponként 1 fokkal csökkenteni a hőmérsékletet, és ha már csak pár ablak van nyitva (vagy elértük a 22 fokot), akkor abbahagyni. Így viszont egyetlen értelmes állása maradt a radiátor szelepének: teljesen nyitva. Ekkor van 22 fok.

A 22 fokban nagyon lehet érezni, hogy az ablakon lévő szellőztető miatt huzatos a szoba. A szellőzés nem lenne baj, de az ablak alatt ülve nem túl kellemes. A bal kezem fázik a folyamatosan beáramló hideg levegő miatt, a jobb kezemnek ugyanakkor akár melege is lehet. Ugyanígy az asztal két végét megfogva is érezhető a hőmérséklet-különbség.

Ezen kívül volt még pár ügy, ami borzolta a kedélyeket az idén.

Tárgyi visszafejlődésre is van példa. A zuhanyzóban leszedték a függönyöket, mert mocskosak voltak. Vissza nem rakják, mert a PPP-szerződésben nem volt szó a pár éve felújított vizesblokkokról, az üzemeltető meg drágán vállalná a zuhanyfüggönyök üzemeltetését. Monopolhelyzet. Persze most az egyetemet kellene inkább utálni, ők írtak alá a rossz szerződést. Marad a börtönfeeling.

Ágyneműcsere-fronton is történtek változások. Alaposan megnézik, hogy nem-e foltos, mikor visszaviszed. Ez oké, ha nem lehet kimosni és selejtezni kell, akkor teljesen jogos a kirótt tétel. Lehetne azt a pénzt jobb helyre is költeni. De könyörgöm, ne csak ekkor szóljanak már, hanem figyelmeztessenek átvételkor is, hogy nézd meg öreg, mert távozás után reklamációt nem fogadunk el. Nem tették, bár szerencsére kicserélték nagy szentbeszéd keretében a foltosan kapott paplanhuzatot. Aztán a cseredarabot még jó, hogy helyben megnéztem. Az is ugyanolyan foltos volt. 1:1.

Februárban volt beiratkozás a tavaszi félévre. A félév 4-én kezdődik, de ha eddig még nem laktál koliban, akkor csak 14-én tudsz beköltözni. Ja, hogy addig vannak előadások és laborok is? Na és?

A bürokratikus beiratkozási ceremónián való részvétel az itt lakóknak is kötelező volt. Pár órás sorban állás. Hiába maradok ugyanabban a szobában, akkor is ezerrel kell adminisztrálni, kulcsot leadni, majd rögtön újra felvenni. Egy „Hogyan toljunk el pár ezer mérnökórát” versenyen biztos díjat érne.

Ruhát szárítani továbbra sincs hol. A szobába nem sok fér. A folyosóra kitett ruhaszárítót használó hallgatókat pedig a tűzvédelmi bírsággal fenyegetik. TTNY-ben legalább van egy mosószoba erre a célra néhány szárítóval. Biztos akadna itt is egy.

A szobába is folyamatosan bejárkálnak. Havonta jönnek FIR reléket ellenőrizni (de minek?). Volt ablakpucolás is, időpontra való feliratkozással. Miért nem tudják ezt nyáron csinálni, amikor nem ezer kollégistát piszkálnak? Rejtély.

Decemberben volt kolis fórum. Megkértek minket arra is, hogy az utcafront lehetőleg legyen egységes, ne ragasztgassunk ki alufóliát az ablakra, mert hát déli oldal, süt a nap ezerrel, de ezt mutatjuk a világnak, legyen már szép. Erre az egyik srác elmesélte, hogy nyáron hajmosás után megtörölközik, de olyan meleg van, hogy a szobakilincs is forró, és mire végigér a szobán már újra teljesen leizzadt. Ezután kért javaslatot, hogy mit csináljanak a meleg ellen, ha a fóliázást nem szeretnék. Nem kapott. De azért ne fóliázzunk.

Továbbá még azt is megtudtuk, hogy a vezetők bírják az irodájukban a meleget. Aztán valaki megjegyezte, hogy éjszaka azért csak nem alszanak ott. A másik mellékes dolog, hogy a földszintet még valamennyire takarják a fák, míg a második emelettől fentebb ez nem igazán mondható el.

Van itt még pár ergonómiai „apróság”, ami előjött a hónapok alatt.

Hogyan lehet olyan lámpát eladni (és megvenni...), ami tíz perc után megfoghatatlanul forró lesz? Lehet ugyan forgatni, de szénné égeti az ember kezét. A búra gyakorlatilag egyben van az izzóval. Egyesek szerint szétrobban az égő. Biztató alatta alduni. A kapcsológomb elérése is nagy odafigyelést igényel a forró lámpatest miatt.

A székek ülőkéje vacak. Pár centivel hátrébb kellett volna hegeszteni őket, mert így nem lehet úgy ülni rajtuk, hogy rendesen támassza az ember derekát. Vagy ha mégis, akkor lelóg az ember hátsó fele, az ülőke széle pedig kemény és eléggé vág is. Féléveket meg nem helyes testtartással ülni... A székek másik részének meg a háttámlája (gyári)hibás, de azokat sem cserélik.

Egy lakberendező hallgatótársam nagyon fogta a fejét, mikor meglátta, hogy lakószobába fénycsövet raktak. Én nem értek hozzá túlzottan, de lehet benne valami.

Kaptunk házirendet, kirakták a porta mellé. Szép, nagy, A0 körüli plakát. Rögtön két nyelven is. A helyválasztás is tökéletes: a forgóvillák mellé. Elég ha egy ember leáll olvasni, máris dugó fog keletkezni. Egyébként kétlem, hogy bárki is végigolvasta volna valaha.

Emlékszem, az első napok egyikén még végigjártuk a szintet női WC után kutatva. Nem találtunk. Most ezt megoldották:

A vizesblokk egyik WC-fülkéjét kijelölték nőinek.

A bejárat mellett még mindig kis k a Kármán. Gondolom majd akkor cserélik nagybetűsre, ha a Schönherz is kék lesz.

Tudnék a hallgatókra is panaszkodni. Az igénytelenül otthagyott mellékhelyiség és konyha mindennapos látvány. Ha lenne a Kétfarkú Kutya Párttól illetékes a koliban, biztos plakátolna, hogy „A WC-kefét direkt nem használjuk”.

A hosszú hétvégéknek célszerű az elején főzni, mert a végére már olyan állapotba kerül a főzőlap és környéke, hogy nincs gusztusom rátenni az edényem. Az ajtót csapkodó, éjszaka hangosan zenét hallgató lakókról inkább nem írok.

A múltkor találtam egy írást a koli felújításáról az Építészfórumon. A cikk nem is túl érdekes, a hozzászólásokat viszont érdemes elolvasni. Egyet emelnék csak ki:

„A felújításhoz készültek tendertervek, melyek be lettek költségelve. A PPP konstrukcióban rendelkezésre álló keret alapján válogattak a felújítandó feladatrészek között. Az árnyékolás az első körben ki lett húzva minden tiltakozásom ellenére. Laktam az épületben, tudom ez mit jelent.
A Zöld tanárúr tanszékén dolgozom, oktatom az árnyékolás fontosságát, de általában süket fülekre találok. A jelszó: nem lényeg, vagy majd szellőztetünk.”

Lehet szidni az üzemeltetőt is, de szerintem az egyetem is legalább ugyanannyira ludas bizonyos kérdésekben.

Mínuszpont

Emlékszem, még fősulin az Adatbázisok 1. című tantárgy egyik ZH-ján azért vontak le tőlem néhány pontot, mert a tanár túl nagynak találta a személyeket tartalmazó táblában a név mező maximális hosszát. Igazság szerint hozzá se nyúltam az Access alapértelmezett 50 karakteres értékéhez, amit a tanár viszont a 25-re cserélt.

Ma meg azt olvasom, hogy egy angol srác a következőre változtatta a nevét: „Captain Fantastic Faster Than Superman Spiderman Batman Wolverine The Hulk And The Flash Combined”. Ehhez már az 50 karakter is kevés lenne.

Szoftveres RAID partíciók elérése Ubuntu CD-vel

A régebbi Ubuntu verziók (pl.: 6.06) a CD-ről való bootolás után rögtön létrehozták a szoftveres RAID partíciókhoz tartozó eszközfájlokat (/dev/md*), ami nagyon kellemes egy esetleges rendszerösszeomlás utáni helyreállítás esetén. A 8.04-es verzió viszont már nem így működik, ott a következő parancsokkal lehet előcsalni a /dev/md* eszközöket:

sudo apt-get install mdadm
sudo mdadm --assemble --scan

Az mdadm csomag nincs rajta a lemezen, úgyhogy internetelérés szükséges az apt-get sikeres futtatásához.

InputStream JAXB-n át

A múltkor JAXB-vel kellett átvinnem egy InputStream-et is tartalmazó osztályt. Neten nem találtam rá semmi értelmeset, így lásd lentebb az én megoldásom.

Az InputStream szerializálásához egy adapterosztályt írtam, ami bájttömbbé alakítja az InputStream-et, illetve ugyanezt megteszi a másik irányba is. A bájttömböt pedig már tudja a JAXB is kezelni. Ezután már csak a szerializálandó osztály InputStream mezőjét kell a következőképp annotálni:

@XmlJavaTypeAdapter(InputStreamAdapter.class)
private InputStream data;

Az adapterosztály pedig a következő:

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

import javax.xml.bind.annotation.adapters.XmlAdapter;

/**
 * JAXB Adapterosztály InputStream-ek szerializálásához.
 * 
 * @author palacsint
 */
public class InputStreamAdapter extends XmlAdapter<byte[], InputStream> {

    @Override
    public byte[] marshal(final InputStream inputStream) throws Exception {
        return inputStreamToByteArray(inputStream);
    }

    @Override
    public InputStream unmarshal(byte[] byteArray) throws Exception {
        return new ByteArrayInputStream(byteArray);
    }

    public static byte[] inputStreamToByteArray(final InputStream inputStream) throws IOException {
        final ByteArrayOutputStream out = new ByteArrayOutputStream(4096);
        try {
            final byte[] buffer = new byte[1024];

            int len;
            while ((len = inputStream.read(buffer)) >= 0) {
                out.write(buffer, 0, len);
            }
        } finally {
            inputStream.close();
            out.close();
        }
        return out.toByteArray();
    }
}

Persze ilyenkor a kiolvasás miatt elvész az adat az InputStream-ből.

Exporting non-public type through public API

Adott a következő Java fájl:

package package2;

public class Callee {
    public InnerClass m1() {
        return new InnerClass();
    }

    public void m2(final InnerClass innerClass) {
    }
}

class InnerClass {
    public void m3() {
    }
}

Vegyük észre, hogy az InnerClass default elérési módosítóval rendelkezik, így csak a package2 csomagon belül látható.

És egy másik csomagban lévő kódrészlet, ami az előbbieket használja:

final Callee callee = new Callee();
callee.m1();
callee.m1().m3();
callee.m2(null);

A fenti három metódushívásból van-e olyan, amelyik fordítási hibát okozni? Ha igen, akkor mely, illetve melyek azok?

Válasz hajtás után.

A HSZK-s e-mail cím megszűnése

A nyáron kaptam egy levelet a HSZK-tól, amiben a következő részlet is szerepelt:

A NEPTUN rendszerbol erkezett adatok szerint az On allami tamogatasu 
kepzesen a hallgatoi jogviszonya megszunt, igy szabalyzatunk 
ertelmeben a "km648" temaszamat az URAL2 szerveren megszuntetjuk.
Erre 2008. oktober  1-en kerul sor.

Rendben is van a dolog.

Október elseje után kíváncsiságból kipróbáltam, hogy mi történik, ha a régi címemre próbálok írni. Azt vártam volna, hogy kapok rögtön egy válaszlevelet a mailer-daemon-tól, ami tájékoztat arról, hogy a cím nem létezi. Ehelyett nem kaptam semmit. A levél megy a /dev/null-ba, a feladó pedig azt gondolhatja, hogy a címzett válaszra sem méltatja. Írtam a support-nak problémáról. Gyorsan válaszoltak, illetve egyúttal azt is beállították, hogy legyen egy "550 User deleted" válasz.

Ezután kipróbáltuk kolléga szintén elsejével megszűnt címére írni. Ott is elvész a levél. Aztán újabb support-kör után kiderült, hogy a hibajavítás nem univerzális, mindenkinek külön kell kérni.

Egyébként érdekes ez a törölgetős megoldás, az ELTE-re pár félévet járt ismerősnek még mindig működik az ELTE-s e-mail címe.

A HSZK-s címet egyébként nem használtam túl gyakran, egy pár év múlva megszűnő e-mail cím nem túl hasznos. Egyedül talán arra jó, hogy gáz esetén hivatkozási alapot képezhet az egyetemi ügyeknél, ha nem működik.

Egyetem mondja: költségtérítés

Érdekes levelet kapott nemrég az egyetemtől az a néhány 2005-ben kezdett kieges, aki még próbálja javítani a korábban említett statisztikát: átsorolták őket költségtérítéses státuszba. Fellebbezni csak két okból lehet: vagy elszámolták az aktív félévek számát, vagy rossz a beiratkozás évszáma a Neptunban. Legalábbis a kiküldött levél szerint. A dolog igazi élét az adja, hogy pont arra a szabályzatra hivatkoznak, amibe másfél éve explicit belevetettük a HK segítségével, hogy a kiegnél a 6+2 állami félév legyen érvényben, ne csak úgy implicit bújjon meg a sorok között ez a rész. Úgy látszik, az egyetem mégsem, khm, szeret annyira minket... illetve – akkor ugye erősen pesszimistának és bizalmatlannak tűnve az egyetemmel szemben – volt értelme ezzel nyüstölni a HK-t. Még akkor is, ha nem az eredeti négy, hanem hat félév után akarják átsorolni fizetősre a kiegeseket.

finalize

Vajon meghívja-e a GC a finalize() metódust, ha a konstruktorban kivételt dobunk? Válasz hajtás után.

Tartalom átvétel