Ipari zen

Szak-irodalom. A fejlesztő jajszava haikuban. A technika ördöge avagy a lelketlen vasban a mélyen emberi.

A szoftverfejlesztés művészete és a zen

2010.03.26. 10:26 Ipari zen

A precompiler matrjoska babája

Címkék: c precompiler stringification

A titokról a
fátyol fellebben. Alant
új fátyol lapul.

Sokszor az ember egészen kis probléma megoldásakor szalad bele jókora pofonba. Nálam most egy verziószám kiírása volt az apropó, a feladat az volt, hogy egy végrehajtható kiírja a verziószámát, mindezt C-ben. A verzió főverzió.mellékverzió.inkremens (pl "8.5.3") formátumban kellett volna megjelenjen és a környezet miatt külön-külön volt egy-egy define-nal beállítva, imígyen
#define VERSION_MAJOR 8
#define VERSION_MINOR 5
#define VERSION_INCREMENT 3

Namár most ezt kellett volna egy
"8.5.3"
értékű stringgé konvertálni. Az első próbálkozások váltakozva eredményeztek
"VERSION_MAJOR.VERSION_MINOR.VERSION_INCREMENT"szerű kiírásokat és válogatott fordítási hibákat. Hosszas guglizás után a precompiler # operátor használata (és a precompiler működésének megértése) jelentette a megoldást. Ugyanis a precompiler "matrjoska baba"-szerűen kezdi el értelmezni a makrókat és a # operátorral rá lehet erőltetni egy makró feloldását. Ha csak a makró neve áll ott akkor szimplán behelyettesíti az nevét, ha #név áll ott akkor fel is fejti a makrót. Íme a győztes megoldás:

#define VERSION VERSION_MAJOR.VERSION_MINOR.VERSION_INCREMENT
#define VERSION_STRING_(X) #X
#define VERSION_STRING(X) VERSION_STRING_(X)

static const char* version = VERSION_STRING(VERSION);
Kissé bonyolult, de működik. Ha valakit mélyebben is érdekel a probléma, jó leírást találhat itt, akár bonyolultabb makrók irásához is.

 

3 komment

2010.03.19. 17:49 Ipari zen

Önállósul a szervíz

Címkék: service szervíz újraindítás


A letűnt idők
szoftvere zabálja a
jövő fáljait.


Ha automatikusan újrainduló windows szervízeket futtatsz, mindig légy óvatos, hogyan állítod le és cseréled ki a szervízhez tartozó végrehajthatókat. Ne ess kísértésbe, hogy task managerből lődd ki a  végrehajthatót, különben úgy jársz mint mi, újraéled egy régebbi verzió és megzabálja az újabb futáshoz előkészített input file-okat.A szervízes használat esetén nagy körültekintést igényel a végrehajtható visszatérési értékeinek megtervezése, hogy valóban csak akkor induljon újra, ha arra szükség van.

 

1 komment

2010.03.12. 13:13 Ipari zen

Új szerző

Címkék: sun oracle schwartz

A haiku projekt fertőz!

"Jonathan Schwartz, az Oracle kezébe került Sun Microsystems egykori vezérigazgatója legutóbb akkor kapott nagyobb médiafigyelmet,
amikor február elején bejelentette: otthagyja a vállalatot. A fejlemény önmagában is hírértékű lett volna, de még inkább azzá vált attól, hogy azt a Twitteren egy haikuban közölte."

Az ominózus haiku megtekinthető itt.

Forrás: Index 

Szólj hozzá!

2010.03.05. 17:38 Ipari zen

Liberté, égalité, fraternité

Címkék: filter hálókártya vlan

Szűrsz? Dobj el minden
csomagot. Nem lesz néked
egy sem becsesebb.

 

Ha VLAN filtert használsz hálókártyáidon és nem jön be rajtuk semmi, ne légy pesszimista, ne a saját szoftveredre gyanakodj először. Inkább ellenőrizd a VLAN beállításokat. Külön elővigyázatosságot igényel, hogy az eredeti teljes forgalom és a VLAN-ra szűrt forgalom két különböző logikai hálókártyaként látszik a legtöbb oprendszer alatt (linux/windows).

 

Szólj hozzá!