11.17.2010

CLI word translation and micro parsers

There a cool little Linux CLI program, simply caled "translate", which can translate from one language to another. Simply call it, set word and direction, apply a grep command for filterung random occurences in phrases and you got your fine little, browser-less translation tool. It's quicker to find words using an already opened terminal than having to wait on a browser window to upload and load it's content. Simple delicious. Of course, it is rather senseless while browsing (you have this browser, why bother annoying copy/paste via terminal), but great when having your code editor open and terminal aside.

Also, my assignments evolve further and further. I got a little OpenGL animation system concept down for the smaller one and the PGN support begins to become reality. I'm quite happy that I was able to use my own list class efficiently. It's a nice little piece of work and you can say I'm very proud of it. To parse the PGN files with included SAN notation for the game process I designed a syntactically limited but otherwise fully multifunctional, callback-based parser class for easy access of nested pattern sets. I'm also quite proud on the small amount of code lines necessary to implement it. Something I can use for my toolkit later, too. Basically, you can reduce every syntax to sets of patterns which consist of specific words and other patterns. It is possible to nest pattern in themselfs to have a possibly endless recursion of pattern, ony limited to the actual text size you're parsing. A few modification and I'll be able to parse all kinds of syntaxes including self-defined languages and so on. Good stuff! Having a projects you'll from which not only profit ideologically is very healthy for productivity and code size reduction in general. It's good that I already practiced a lot of generalization, otherwise I wouldn't be able to pump up such comfortble and flexible to use classes. And yes, you can call me narcissistic if want - I know what I think is good.

Thinking about the rather low acceptance of a so called "boring" and "useless" programs like a 3D chess game viewer for PGN-encoded chess databases among some of my friends, I'd like to quote one of my own statements here: "In software development, there is no why, but rather a why not.". And that's true. I rather don't ask for the why, but rather the why not. I always get ideas for whynots, but not so often for a why. Asking for a why is like having a need to reducing the amount of work for a project without keeping the need for a specific task in mind. That can be said the other way, too, but it wouldn't sound like you initially planned but dropped it due to limitations.

No comments: