Magamról

Saját fotó
Főiskolai, majd egyetemi diplomamunkáimtól kezdve világ életemben, adatok, adatbázisok, adattárházak (leginkább Oracle) környékén mozogtam. Mostanság adattárházasként, adatbányászként élem napjaimat.

2010. július 12., hétfő

Datamystic Textpipe Pro szoftverről pár szó

.
Bevallom, informatikusként (is) nagyon szeretem a kis, pici, elegáns, ergonomikusra tervezett, átlátható, könnyen és jól használható, mezei usernek is elérhető áru programokat, amiket teljes funkcionalitásban lehet kipróbálni ternmészetesen időkorlát mellett -> hány gusztustalan szoftvertermék van - persze adatbányászoknál is -, amiket kiherélten dobnak a felhasználók elé, valós tesztelés lehetőségét elvéve.

Mindig öröm olyan szoftverbe botlani ami szimplán azt tudja produkálni működése során, amit ígér, de azt tökéletesen, megbízhatóan. Az alábbi terméknél eddigi szoftverhasználatom alatt nem tudtam olyan feladatot még csak elképzelni sem, amit ne lehetne vele megcsinálni, nyílván a saját témájában, persze -> monokinis lányokat triviálisan nem fog a képernyőre rakni. ;)

És ha már van ez a nyögvenyelős blog, akkor írok egy pár sort egy ilyen fentebb vázolt típusú szoftverről, legfrissebb idevágó élményem kapcsán, amibe legutóbbi munkám során botlottam.

Datamystic TextPipe Pro v8.6.1 - Features
Pro Single licence: 400 USD.
/Alapvetően a Pro verziót érdemes nézni, nem sokkal drágább, viszont nagyságrendekkel többet tud a gyengébb lightosabb verzióknál, méghozzá lényegi dolgokban/

Húsz éves tapasztalat van a termék mögött, a gyökerek 1990-ig nyúlnak vissza. Alapvetően - terminológiám szerint - data crunch kategóriájú szoftver, amiben, text és bináris állományokat lehet csócsálni. Ilyen feladatokra a buta ;) windows-usereknek biztosít egy eggyel magasabb szintű eszközt mint egy awk, perl, stb. Megvan a kihívása és szépsége egy több kilométer hosszú például Perl reguláris-kifejezés hegesztésének, pláne, ha nekünk esetleg csak módosítani kell rajta, mivel nem mi írtuk eredetileg. Meg remek ZH-feladatokat is lehet konstruálni a témában felsőfokú tanintézetekben, sokak örömére. De, lássuk be, létezhet azért más megközelítés is. :o)

A termék honlapján többször is bele lehet botlani data mining, textmining, webmining megjelölésekre, de szó nincs itt konvencionális értelemben vett például prediktív analitikáról. Csak arról, hogy a teljes data/text/web mining folyamat egyes lépéseit lehet vele megtámogatni. Adattisztítás, információ-kivonatolás, stb.

A szoftver tehát alapvetően, (szöveges) állományok konverziójára, transzformációjára, információk kikristályosítására jó, akár ipari méretekben is.

Használata során meg kell találni az egyes transzformációs lépéseket (az ő belső terminológiája szerint "filtereket") és megfelelő sorrendben kell őket alkalmazni. Ezek a filterek lehetnek atomiak vagy rekurzívan összetettek (gyári vagy 3rdparty jellegűek). A szoftver lelke egyetlen kis 6+MB-os exe. Valamint a hozzáadott gyári atomi filterek (100-as nagyságrendben). Plusz gyári összetett minta filterek (szintén 100-as nagyságrendben). Amikor új verzió jön ki a termékből, akkor fejlődik az exe, fejlőd(het)nek az atomi filterek, fejlőd(het)nek az összetett filterek egyaránt. Ezeket a filtereket nem szabad lebecsülni, ha programból kell gyorsan például csak egy ebcdic/unicode karakterkészletet váltani, nagyon jól jöhet egy kész jó karakter-mappelés. Tudnék mesélni közelmúltbeli szívásos élményeimről a tárgyban. :o)

Mint sejthető komoly szellemi kihívás rejlik összetett filterek megírásában, amiben az a szép, hogy nem feltétlen kell hozzá programozói tudás, csak logikus, fegyelmezett, tervszerű gondolkodás. Természetesen van lehetőség 3GL típusú procedurális programozás bevezetésére is a Textpipe-ban, de a szoftver ad mintát arra is, hogy hogyan kerülhető el ez. Persze nyílván nem könnyű detektálni mihez kell már "nélkülözhetetlenül" 3GL kódolás. Hasonlóan például egy Oracle RDBMS-nél, hogy SQL avagy PlSql kell egy feladathoz (vagy mi az ami SQL-ből megy, és mihez kell már "natív" adatbányászat).

Közbeszúrásként mesélem: egy kedves régi emlékemet sok évvel ezelöttről, amikor még Oracle tanfolyamra jártam, az oktató hozott egy példát, mihez elég az SQL, mihez kell már PlSql programozás. A híres Oracle emp táblán 10% fizetés emelést eszközölni update-tel arra triviálisan elég az SQL, de 20.000 dollár "bértömeget" szétosztani a fizetések arányában már nem lehet SQL-lel. Mondta az oktató. Aztán egy kollégám megmutatta, hogy azt is lehet SQL-ben is. :o)

Az alapalkalmazás (textpipe.exe), Delphiben íródott. Ez maga után von néhény következményt.

Bár tökéletesen működik 64-bites Windows XP alatt (én ezalatt dolgoztam vele), de ha extra funkcionalitást akarunk vele kicsikarni, nem árt tisztában lenni, hogy mivel a Delphi jelen állapot szerint csak 32 bitre forduló kódot tud prezentálni, így a kiegészítőknek is 32-biteseknek kell lenni, még ha van is belőlük 64-bites kiadás.

A másik következmény egy érdekesség, hogy ne mondjam perverzitás, hogy a TextPipe belülről is sciptelhető Delphi 3GL scripttel (pl.:Dream Scripter), de kívülről szimplán Delphiből is meghajtható a TextPipe a Windows OLE-n keresztül. Egyszerre tudja az OLE Server és OLE Automation funkcionalitást. Hasonló módon a TextPipe-ból hívható külső program, de maga a TextPipe is hívható máshonnan.

Ha már itt járunk nézzük hányféleképpen hajtható ki a TextPipe Pro funkcionalitás.
- Alap GUI-n keresztül
- Comment-line Interface (CLI), akár batch-programozással megfejelve (pl.: VBScript, JScript)
- Delphin keresztül OLE-vel.
- TextPipe-ból generált teljes VBScript vagy JScript kóddal
- TextPipe-ból generált Javascriptes html-lel.

TextPipe Pro belső 3GL programozást támogató lehetőségei -> igazándiból minden olyan nyelv, amihez elkészítették a WSH(=Windows Scripting Host) környezethez szükséges (dll)interface-t. A teljesség igénye nélkül: VBScript, JScript (ezek alapból ugye), ActivePerl, ActivePython, ActiveRubyScript, ActivePHPScript, Object Rexx, Basic, Tcl, stb.
Windows Script(ing) Host

Érdekesebb TextPipe Pro lehetőségek
* Adatbáziskapcsolat kiaknázása
* File merge/join és -split
* Feltételfüggő restrikciók, subfilterek által hierarchiaképzés a transzformációs lépésekben.
* Makrók: például filenév, filedátum, clipboardtartalom, randomizálás, környezetiváltozó-függő dolgok kerülhetnek bele a file-ba outputoldalon
* c <-> pascal forrásfile konverzió. Ebben például túlmutat a szokásos Text Mining funkcionális lehetőségeken.
* XLS-ből CSV generálás, ha már egyszer van OLE
* Helyesírás-ellenőrzés inputfile-okra.
* Bináris, bináris-text vegyes állományok kezelése
* XML-transzformációk.
* HTML-manipulációk.
* ZIP-tömörítvények kezelése
* Rekurzív könyvtárbejárás
* Trial-futás begépelt demó-szövegre
* Drag and drop (bár én ennek kevéssé örülök)

TextPipe Pro felületéről pár szó:
Négy nagy fül van:
* A felhasználható atomi és összetett filterek fába szervezve, konkrétan választott filtereink rendezett fája, valamint az egyes filterek paraméterállítási lehetőségeinek panelje.
* A feldolgozandó file-okkal foglalkozó fül
* A Tria Run area két nagy dobozzal (input, output)
* Status/Log

TextPipe Pro előnyök:
* Teljes faltól-falig megoldás, ütemezéssel, jobbal, stb.
* Jól konfigurálható, testreszabható.
* Letisztult, praktikus felület/GUI.
* Ahogy ígérik tényleg nagyon gyors működésű a szoftver, Delphinek is köszönhetően. (A generált kód nyitó kommentje. :o) -> "...was generated by TextPipe Pro - the fastest search and replace tool on the planet")
* Van debug-lehetőség
* Nagyon jól dokumentált wizardokkal, tutorialokkal, samplek-kal, stb.
* Nagyon jó és gyors support, azonnal válaszolnak (és még (h)ideglelést sem kaptak a kérdéseimtől). Elvben még chat is van a programon belül, azt nem próbáltam.
* Elemi filterek: Convert, Add, Remove, Replace, Extract, Special, Maps, Restrict, stb. kategóriákban.
* Perl reguláris kifejezések mellett van egy saját fejlesztésű un. EasyPattern cucc, ami javíthatóvá meg átláthatóvá teszi a fejlesztést, miközben abszolút évezetes használni.
Példák a teljesség igénye nélkül:
"whatever" :o), "[optional digit]" "[3 digits]" "[1+ digits]", "[or]", "[not]", (letter,digit) for groups, "[hexdigit]", [uppercaseLetter], "[leftBracket]", "[leftAngle]", asc(code), "[mustNotBeginWith(...)]", "[whitespace]", "[DOSnewline]", "[MACnewline]", "[wordDelimiter]", "[lineStart]", "[controlChar]", "[printableChar]", "[typewriterChar]", "[HTMLTag]", "[EmailAddress]", "[IPAddress]" , "[QuotedString]" , "[Hyperlink]", "[PipeField]", "[Dayname]", "[Monthnumber]" és még tengernyi

TextPipe Pro hiányosságok:
Én kettőt tudok felhozni, amibe belefutottam a munkám során:
* Sajnos bináris a saját belső file-formátuma (.fll). Ha valaki metaszinten copy-pastek-kel akarna belenyúlni a vezérlő filterekbe akkor ezt itt nem tudja. De azért van némi megkerülési lehetőség. Egyfelül text-ben kiexportálható az egész, másfelöl a generált VBScript és JScriptben már lehet így (metaszinten) is dolgozni.
* EasyPattern amilyen nagyszerű, annyira furcsa és kár, hogy a Find/Replace párosban csak a Findnél használható. Én értem, hogy ez a gyakorlat másutt is. De így ugyanannak a dolognak két olvasatát kell megtanulni és használni.

A TextPipe Pro alkalmazás struktúrája:
* A gyökérkönyvtárban van maga az EXE(6.2 MB) hozzá a CHM(1.3 MB), hozzá TLB(OLE-hez szükséges állomány) egy sound.wav, ami megszólalhat vége a futásnak (első dolgom volt kikapcsolni), uninstallhoz szükséges két állomány, valamint a Delphi Zipmaster két dll-je.
* Sample állományok (txt, csv, tab, html, xml)
* (Összetett) Filterek -> 3rdparty, Coding, Conversions, Database, Email, Etext, Fun, Html, Mainframe, Publishing, Report Extraction, Script filter, Subfilters, SysAdmin, TaskMenu, Tutorial, Web site mining
* Maps -> karakterkódolásokhoz
* Wizardok html-ekben
* Languages -> ha valaki magyarítani akarná a szoftvert, egyetlen állományt kell editálnia. :o)
* Minden féle vegyes txt, rtf, doc, url, pdf, dolgok

Nincsenek megjegyzések:

Megjegyzés küldése