LPG generálás OSX-en Eclipse-ből

Megnyertem egy parser frissítésének és karbantartásának feladatát. Igen, ez remekül hangzik. Ahogy az is.

A parser az LPG parser generátorral készült, méghozzá annak az 1.0-s változatával. Most már van 2-es is, ami természetesen nem kompatibilis a régivel (legalábbis generált kód szintjén semmiképp sem – többek között más java package-et használ). Miután nem sokkal release előtt kaptam meg, frissíteni most biztos nem lehet (később meg valószínűleg úgyis kellene).

Na, tehát ott tartottam, hogy 1-es verzió. Minden nagyon szép, minden nagyon jó, mindennel meg vagyok elégedve, úgyhogy módosítottam a grammar fájlt. Na, ideje újragenerálni a kódot. És itt jön a feketeleves: az LPG parser generátor régi verziójához csak egy Windows-os exe fájl van, azzal lehet futtatni. Természetesen forráskód is van, de még a makefile is a Visual C++ fordítóra van kihegyezve. Szóval lefordítani macerás.

Nem is kezdem el, mert feltehetőleg csak ideiglenes megoldás kell (max. 1-2 év 😀 ). Ugyanakkor cél, hogy a megoldás integrálódjon az Eclipse-be, azaz néhány klikkeléssel sikerüljön a programot elindítani. A lehetőségeim: wine vagy VMware.

Az utóbbi nem tetszene, mert relatíve sok erőforrást eszik, ráadásul egyszerűen csak a VMware alatt futó Eclipse példánnyal lehetne összekapcsolni, amelynek a gyorsbillentyűi teljesen mások, mint a natív Mac-es példányé.

Szóval lehet reménykedni, hogy a wine-osok jó munkát végeztek. És szerencsém van, mert az lpg.exe gond nélkül futtatható vele.

Most már csak az Eclipse integráció van hátra. Ennek remek eszköze az External Tools eszköz (megjegyzés: natív Windows-on is csak így lehet futtatni az lpg.exe-t Eclipse-ből – nincs jobb támogatás) a Run menüben.

Létrehozhatunk egy saját eszközt, amelynek felparaméterezéséhez használhatjuk az Eclipse különböző változóit. Számunkra ehhez kettőre van szükség:

  • [cci]${resource_loc}[/cci]: az aktuálisan kijelölt erőforrás elérhetősége a fájlrendszerben (nem workspace-relatív módon!)
  • [cci]${container_loc}[/cci]: az aktuális erőforrást tartalmazó mappa elérhetősége (szintén nem workspace-relatív módon)

Az LPG parser generátor számára fontos a munkakönyvtár beállítása, ide fogja generálni a fájlokat. A többi adat kitöltése magától értetődő, ezért csak egy képernyőfotót illesztek be róla.

LPG futtatása Wine segítségével az aktuális fájlra
LPG futtatása Wine segítségével az aktuális fájlra

Az LPG futásához három dologra van szükség: a nyelvtan fájlra vagy fájlokra, az include fájlokra és a template fájlokra. Ezek lehetnek mind a munkakönyvtárban (ez a helyzet, ha saját sablonokat használunk), vagy pedig környezeti változók által kijelölt mappában, esetleg paraméterként is át lehet adni.

Szerintem a legtisztább a környezeti változók használata, ezért az Environment fülön felvettem az [cci]LPG_INCLUDE[/cci] és az [cci]LPG_TEMPLATE[/cci] környezeti változókat, azokat a megfelelő mappákra irányítva.

Ezután a futtatás gombra kattintva jött a varázslat: a wine az OSX-es útvonalakat lefordítja a Windows-os program számára érthető formátumra (megfigyelhetőek az Y:\ kezdetű útvonalak a szöveges kimeneten – amik természetesen megjelennek az Eclipse Console view-ban), és az ugyanilyen formátumban készülő fájlok megjelennek az OSX-es mappában. Sőt, a környezeti változókra is igaz ez. Nagyon cool.

A technológiával két kisebb gondom van: nem tudom az LPG-t így a .g fájl jobb gombos menüjéből futtatni (nincs ott külső eszköz futtatásához lehetőség), és nem működik a megoldás, ha nem a Navigator view aktív a Run external tool használatakor (természetesen akkor sem, ha nem a .g fájl van kijelölve, de ez természetes :D). Van ezekre valakinek valami ötlete?

Hibakeresés: LaTeX ábrafelirat probléma

Nemrég volt szerencsém egy idegesítő LaTeX feature-höz (ugye nem bug, hanem feature). Miután visszafejteni a hiba okát elég macerás volt, ezért gondoltam, megosztom itt is.

Megkérdezték tőlem, van-e ötletem, mitől lehet az, hogy egy ábra hivatkozásánál a számot miért jeleníti meg teljesen más stílusban, mint a többi ábrahivatkozást, ill. mint az ábra feliratát. A probléma úgy jelentkezett, hogy Figure 9. számú ábra (ez az elvárt formátum), míg a hivatkozása Figure 4.4 formátumban jelent meg.

A hivatkozásokat a LaTeX vissza tudta fejteni, semmiféle hibaüzenet nem jelent meg, csak rosszul jelent meg a sorszám. Nagyon látványos hiba sem volt a kódban, többszöri átolvasás után (lényegében hasonlóan nézett ki, mint a többi ábrabeillesztés).

Megpróbálgatva kihagyni elemeket, áthelyezni a kritikus ábrát, illetve hivatkozást sikerült rájönni, hogy a LaTeX valami miatt a fejezet/szakasz-számot jeleníti meg az ábra sorszáma helyett.

Innen már egy gyors Google megadta a megoldást: http://www.leancrew.com/all-this/2008/09/latex-figure-captions/ , ill. az oldalon keresztül a következő lap: http://en.wikibooks.org/wiki/LaTeX/Labels_and_Cross-referencing#Fixing_wrong_labels

A megoldás lényege a következő: semmilyen körülmények között ne legyen a [cci_latex]\label[/cci_latex] címkeparancs a [cci_latex]\caption[/cci_latex] feliratparancs elé. A feliratparancs belsejébe vagy a feliratparancs utánra nyugodtan kerülhet.

A végére beszúrok egy javasolt mintát kép beillesztésére, ami ezt a hibát elkerüli (a forrás a TeXlipse plug-in sablon gyűjteménye:

[cc_latex]\begin{figure}[htp]
\begin{center}
\includegraphics[width=${figureWidth}]{${filename}}
\caption[${labelInTOC}]{${figureCaption}}
\label{${figureLabel}}
\end{center}
\end{figure}[/cc_latex]

A TeXlipse editor ezt a mintát automatikusan beilleszti, ezért nekem nehéz ezt a hibát elkövetnem, de másnak még hasznos lehet. Remélem, van, akinek a megoldás megosztásával

Ultimate Excel bug

Tudom, hogy az én számból ez nem hangzik túl értékesnek, mert helyből nem szeretem túlságosan a Microsoft programjait, de ma sikeresen szembesültem az abszolút mélyponttal eddig: a Microsoft Excel a fájl helyi nevével azonosítja belül a megnyitott munkafüzeteket.

Vagy legalábbis valamikor ezt csinálhatta. Mással nem tudom megmagyarázni a zx’s diatribe mai bejegyzését. Az Excel figyelmeztette a szerzőt, hogy nem nyithat meg két azonos nevű fájlt, még ha különböző mappában is vannak.

Ez még engem is teljesen meglepett, pedig tudhatnám, hogy az élet nem fenékig tejfel.

Ami reményre ad okot, hogy a screenshot alapján Office 2003 lehet, és talán a 2007-ben nincs meg ez a bug. Ha valakinek van kedve/lehetősége, és teszteli vele, akkor kíváncsi vagyok az eredményre.

Ami viszont sok reményre nem ad okot, hogy ugyanez a probléma fennáll a Mac-es változatban is… Szánalmas.

New major release: 0.7.0

Today I created a new release from Debug Visualisation.

The new release is called 0.7.0, as it introduces major new features:

  • Preliminary support for Filtering nodes: similar to the Logical Structures feature it is possible to define the structure, and only visualise that (e.g. in case of Lists only the content should be depicted, not the other attributes).
  • Drill in: it is possible to define a new top-level element instead of the Local Context, and hide other items.

There are also some minor updates, such as the reintroduction of the Simulated cooling layout algorithm.

On the other hand most changes are not visible in the user interface, but the revamped code should allow us to create some new features in the next service releases.

We recommend the update for everybody. Some technical information:

  • After some fighting with the update site project the category information is lost. I have no idea of the cause.
  • There is a new feature present in the update site: the Java Filter project defines filters for some items in the collections API.

Web usability kérdés

Nemrég olvastam Krugtól a Don’t make me think (magyarul Ne törd a fejem címen elérhető). Nekem határozottan tetszett, noha  egy Szoftverergonómia kurzus után sok újat nem mondott.

A könyv példákon mutatja meg, hogy mit is jelent a használhatóság a weblapok tervezése közben, nagyon olvasmányos módon, sokféle példával. Kifejezetten dícsérte például az Amazont (amivel személy szerint kevés használat után egyet kell, hogy értsek, jól megtervezték).

Hogy miért is jutott eszembe? Mert egy fárasztó nap után apukám ismét szembesített a magyar web egy igazi gyöngyszemével. Január óta havi program, hogy apukámnak gondja van a villanyóraállás bejelentésével. Korábban telefonon próbálkozott, de ott kb. 50 jegynyi értelmetlen számsort újra és újra betölteni finoman szólva is kellemetlen feladat.

Természetes ötlet, hogy akkor használjuk az internetes kitöltést. Ma megnéztem, hogy apukám hogy csinálja. A Firefox kezdőoldalán a google-be beírja, hogy elmu.hu (ez is megér egy misét, de ezen tegyük túl magunkat), majd pár kattintáson és rövid időn belül a keresett oldalra kerül.

Oldal közepén link, hogy Mérőállás bejelentése. Rákattint (elvégre ezt akarja csinálni). Ki látja, hogy mi volt a gond az oldallal? (Élőben látható itt 2009. 09. 01. este: http://ugyfelkapu.elmu.hu/meroallas_rogzites )

A mérőállás bejelentő oldal - Bejelentkezés szükséges
A mérőállás bejelentő oldal - Bejelentkezés szükséges

A helyes megfejtést hozzászólásban várom. További minősítést majd akkor adok az oldalról, ha már lenyugodtam.