RSS

Edytor słownika przeniesień

Liczba odsłon: 11

Wiele cza­su w sier­pniu po­świę­ci­łem kwestii dzie­le­nia wy­ra­zów na stro­nach WWW. Opisywa­łem wte­dy stwo­rzo­ne spe­cjal­nie na po­trze­by Świata Owo­ców na­rzę­dzie ana­li­zu­ją­ce kod HTML, dzie­lą­ce tekst na po­szcze­gól­ne wy­ra­zy i wpro­wa­dza­ją­ce do nich in­for­mac­je o moż­li­wych miej­scach po­dzia­łu wier­sza. Narzędzie to ko­rzys­ta z ze­wnętrz­ne­go słow­ni­ka prze­nie­sień, za­pi­sa­ne­go w po­sta­ci tek­sto­wej.

Początko­wo słow­nik ten roz­bu­do­wy­wa­łem ręcz­nie, wpro­wa­dza­jąc no­we wpi­sy za po­mo­cą edy­to­ra tek­stu. Dzięki utrzy­my­wa­niu al­fa­be­tycz­ne­go po­rząd­ku zna­le­zie­nie miej­sca, w któ­rym po­wi­nien zna­leźć się no­wy wpis nie sta­no­wi­ło prob­le­mu. Niestety, wraz ze wzros­tem obję­toś­ci słow­ni­ka do­da­wa­nie po­zyc­ji zaj­mo­wa­ło co­raz wię­cej cza­su i sta­wa­ło się co­raz bar­dziej mo­no­ton­ne. Nie po­ma­ga­ło na­wet do­pi­sy­wa­nie przy okaz­ji wszyst­kich moż­li­wych form wy­ra­zu w na­dziei, że ko­lej­ne tek­sty bę­dą wy­ma­ga­ły nie­co mniej pra­cy: ow­szem, spraw­dza­ło się to, ale nie oszczę­dza­ło zbyt wie­le cza­su.

Rozwiąza­nie by­ło tyl­ko jed­no: na­pi­sać pro­gram, któ­ry zdej­mie ze mnie obo­wią­zek od­szu­ki­wa­nia miej­sca, w któ­rym po­wi­nien zna­leźć się no­wy wpis. Przy okaz­ji pro­gram ten po­wi­nien rów­nież dbać o po­praw­ną skład­nię pli­ku i blo­ko­wa­nie moż­li­woś­ci dwu­krot­ne­go wpro­wa­dze­nia te­go sa­me­go has­ła. Powinien też dzia­łać moż­li­wie szyb­ko, za­pi­su­jąc na dys­ku wzbo­ga­co­ną wer­sję słow­ni­ka w chwi­li na­ciś­nię­cia kla­wi­sza Enter koń­czą­ce­go wpro­wa­dza­nie has­ła.

Krótko mó­wiąc, po­trze­bo­wa­łem nie apli­kac­ji in­tra­ne­to­wej, lecz „peł­no­krwis­te­go”, okien­ko­we­go pro­gra­mu dzia­ła­ją­ce­go na­tyw­nie pod kon­tro­lą sys­te­mu opera­cyj­ne­go mo­je­go do­mo­we­go kom­pu­te­ra. Czyli Linuk­sa.

Nigdy wcześ­niej nie pro­gra­mo­wa­łem w śro­do­wis­ku GTK+. Kilkukrot­nie po­dej­mo­wa­łem pró­by, za każ­dym ra­zem zra­ża­ło mnie jed­nak kło­pot­li­we (i cza­sem ogra­ni­cza­ją­ce) pół­auto­ma­tycz­ne roz­miesz­cza­nie ele­men­tów ste­ru­ją­cych w po­lach dia­lo­go­wych. Irytowa­ło to tym bar­dziej, że edy­tor Glade – ma­ją­cy ułat­wiać pro­jek­to­wa­nie pól dia­lo­go­wych – jest wy­jąt­ko­wo ma­ło in­tui­cyj­ny w ob­słu­dze i częs­to za­wie­sza się w naj­mniej ocze­ki­wa­nych mo­men­tach.

Edytor słownika przeniesieńKilka wie­czo­rów spę­dzo­nych z GTK+ po­zwo­li­ło mi w koń­cu jed­nak prze­bić się przez pierw­sze prze­szko­dy i opra­co­wać przy­sto­so­wa­ny do GTK+ od­po­wied­nik obiek­to­wej bi­blio­te­ki okien­ko­wej Win32, od daw­na przeze mnie roz­bu­do­wy­wa­nej. Jestem już go­tów do two­rze­nia opro­gra­mo­wa­nia GTK+ — a pierw­szym moim po­waż­nym pro­gra­mem dla te­go śro­do­wis­ka stał się właś­nie edy­tor słow­ni­ka po­dzia­łów.

Efekt – na ra­zie jesz­cze nie osta­tecz­ny – wi­dać na umiesz­czo­nym po pra­wej obraz­ku. Nie wi­dać tyl­ko naj­waż­niej­sze­go: nie­sa­mo­wi­tej wy­go­dy i szyb­koś­ci wpro­wa­dza­nia no­wych ha­seł. Wystar­czy wpi­sać po­dzie­lo­ny na sy­la­by wy­raz do po­la edy­cyj­ne­go (lis­ta prze­wi­ja się w cza­sie rze­czy­wis­tym, wska­zu­jąc orien­ta­cyj­nie miej­sce, w któ­rym wy­raz się na niej po­ja­wi) i na­cis­nąć kla­wisz Enter, by no­wa wer­sja słow­ni­ka – z do­da­nym przed chwi­lą wy­ra­zem – zo­sta­ła od ra­zu za­pi­sa­na na dys­ku. Podczas uru­cha­mia­nia pro­gram two­rzy też ko­pię za­pa­so­wą słow­ni­ka na wy­pa­dek, gdy­by ja­kiś błąd w pro­gra­mie spo­wo­do­wał znisz­cze­nie go w cza­sie pra­cy. Samo wczy­ty­wa­nie słow­ni­ka i two­rze­nie je­go kopii jest zresz­tą rea­li­zo­wa­ne w od­dziel­nym wąt­ku, ani na chwi­lę nie blo­ku­jąc inter­fej­su użyt­kow­ni­ka.

Poprzed­nio peł­na ko­rek­ta tek­stu – czy­li prze­czy­ta­nie go, wpro­wa­dze­nie po­pra­wek i zaktua­li­zo­wa­nie słow­ni­ka prze­nie­sień tak, aby uwzględ­niał wszyst­kie wy­ra­zy wy­stę­pu­ją­ce w tekś­cie – zaj­mo­wa­ła do pół­to­rej go­dzi­ny. Dzięki no­we­mu na­rzę­dziu roz­sze­rze­nie słow­ni­ka o wszyst­kie no­we wy­ra­zy zaj­mu­je naj­wy­żej dzie­sięć mi­nut, zo­sta­wia­jąc mnóst­wo cza­su na spo­koj­ne prze­czy­ta­nie i do­pra­co­wa­nie ar­ty­ku­łu.

Najważniej­sze jest jed­nak to, że – dzię­ki po­wsta­łym fun­da­men­tom bi­blio­te­ki obiek­to­wej – stwo­rze­nie ko­lej­nych apli­kac­ji GTK+ nie bę­dzie już wal­ką z nie­zna­jo­mym API, lecz nor­mal­ną pra­cą.