ExtJS grid megjelenítési sebesség

Éppen egy jó kis dokumentum kezelő szoftveren dolgozunk és az ahhoz készült repository browser (azaz a tárolt node-ok megtekintéséhez készült általános felület) sebességét lestem meg több böngészőben.

A gép egy 2.4GHz-es Apple MacBook Pro, 4GB memóriával, a versenyzők pedig:

  • Mozilla FireFox v3.6.9
  • Apple Safari v5.0.2
  • Google Chrome v5.0.375

Ahogy a bal alsó sarokban látható, az 1000 rekord méretű JavaScript grid megjelenésében – a mért időben a request/response is benne van, az nagyjából megegyezik minden böngészőnél, kb. 900ms – a Safari a leggyorsabb (3586ms), a második a Chrome (4004ms) és leghátul a Firefox (5826ms) kullog. A méréseket többször elvégeztem egymás után a különbségek szinte minden esetben ugyanekkorák voltak.

ExtTranslator – a realtime text translator

Do you like foreign language translators?

ExtTranslator - online multi language text translator

Now, i would like to show you a new, realtime translator with following features:

  • ExtJS UI
  • Google Translate AJAX
  • two panels with language selectors
  • type and translate (automatic translation on enter, space, “.”, “,”, “!” and “?” keypresses)
  • nothing special, just works…

Click here to start ExtTranslator!

Quick locale translator

As a quick relaxing activity over a keyboard and a geek/coder mind – here is an automatic language/locale property file (.properties in resource bundles used in Java related technologies to store the configurable parameters of an application) translator.

Translator uses Google Translate AJAX API and ExtJS.

Quick how-to:

  1. Click on URL: QuickLocale
  2. Paste your properties file content into the top textarea (Source text), and press Load to translate,
  3. Let’s change source and destination languages by combo box over the grid,
  4. Press Translate to update values in grid,
  5. And finally, modify something in Destination column of grid to update destination textarea (Destination text) and copy back to your localized properties file.

Example properties file content:

#
# Example language file for QuickLocale
# by Lajos Nagy (LouiSe@louise.hu)
#

# English
key1=white
key2=red
key3=blue

Screenshots:
quick locale translator

quick locale translator hungarian version

ExtAlf – new features

I’ve done with brand new features in ExtAlf (ExtJS wrapper library for Alfresco ECM):

  • New login window with ticket validity timeout, and network error handling:
  • Task list for logged-in user, including attached resources (contents, files), upload/download and preview for contents and task close button:
  • Discussion forum, auto-discovered forum spaces in tree view and expandable threads/posts with quick reply button:
  • Folder tree with document preview, content download an upload buttons:
  • Search in selected folder:
  • Transform content to another document format:ExtAlf - Transform content
  • feedMART

    Az utóbbi napokban a fő projektemmel kapcsolatosan szinte semmi értékelhető ötlet nem jut az eszembe, valószínűleg ez lehet az alkotói válság egyik tünete. Ilyenkor mit tesz a magamfajta hiperaktív-agyú ember, kitalál magának valami mást, amin agyalhat, amit megcsinálhat.

    Maradva az ExtJS ágnál, összedobtam egy kereső felületet és hozzá egy indexelő és kereső motort is pihenésképpen – azért, hogy végre egy kis sikerélményhez jussak. :)

    A kereső felület szép AJAX-os csoda, dinamikus tartalommal és azonnali keresővel, míg a backend egy PHP script, ami adatbázis nélkül csinál a szabad szöveges keresést lehetővé tevő indexelést.

    A feedMART elsősorban bloggerek számára készült, de mindenképpen olyan emberek számára, akik nap mint nap a gépük előtt ülve szinte folyamatosan az Interneten lógnak és elmondható róluk, hogy szinte mindig van eladó holmijuk és ezzel párhuzamosan folyamatosan vennének is tárgyakat. Számukra egy rendkívül egyszerű “bolhapiac” megoldást nyújt a feedMART, hiszen mindössze a blogjukban kell létrehozniuk egy kategóriát, majd ebbe a kategóriába tenni a hirdetéseiket.

    A hirdetéseknek – ugyanúgy, mint a hagyományos blog bejegyzéseknek – természetesen lehetnek címkéi (tag-ek), amit a feedMART automatikusan átvesz és feldolgoz, anélkül, hogy új rendszerek használatát kéne megtanulni.

    A hirdetések feladása, módosítása és törlése nem igényel több munkát és időt, mint egy saját blog bejegyzés elkészítése, valójában pontosan ugyanannyit igényel…

    Amit a rendszer így néhány órai tákolás után tud:
    – nincs regisztráció, nem kell személyes adatokat megadni
    – feliratkozási lehetőség (Subscribe)
    – nagyon gyors kereső (próbaképpen beletettem a beszeljukMac.com friss hirdetéseit is)
    – a találatok szabadon rendezhetők (bezárható, áthelyezhető panelek)
    – többszavas keresés

    Ha segíteni szeretnél tartalommal, akkor a teendő:
    – 1. Létrehozol a blog-odban egy “EladoCuccok”, vagy hasonló nevű kategóriát
    – 2. A fenti kategóriába beleteszel egy olyan post-ot, aminek a tartalma apróhirdetés
    – 3. A kategória RSS feed-jével feliratkozol a keresőre, a “Subscribe Now!” gomb megnyomásával (fontos, hogy a hirdetések számára létrehozott kategória RSS feed-je legyen amivel feliratkozol, mert csak így lehet szűkíteni a találatokat az apróhirdetésekre), ez WordPress esetében valahogy így néz ki: http://yoursite.com/?feed=atom&cat=EladoCuccok

    Innentől a kereső periodikusan megnézi, hogy vannak-e a blogodon új post-ok az adott kategóriában, ha vannak letölti azokat és máris kereshetővé válnak.

    feedMart_logo

    Csatlakozás a feedMART-hoz

    A feedMART használatához nincs szükség személyes regisztrációra, mindössze a blogban kialakított kategória RSS vagy Atom feed-jének (XML) linkjét kell megadni, továbbá egy ország, régió és egy nyelv választót kitölteni – mind az eladandó, mind a megszerzendő tárgyak csoportjára.

    Ezen adatok ismeretében a feedMART szerver automatikusan figyeli az adott kategória változásait, majd annak megfelelően frissíti a szerveren az apróhirdetéseket.

    A feedMART szerver a beállított frissítési periódusokban átveszi az ismert blog rendszertől (pl. WordPress, Movable Type, Blogger, LiveJournal?, Blogspot.com, etc.) a hirdetéshez, illetve annak kategorizálásához szükséges összes adatot, így a bejegyzés (post) címe lesz a hirdetés címe, a tartalma a hirdetés tartalma, míg a bejegyzéshez rendelt címkék (tag-ek) adják az adott hirdetés kategorizálásához tartozó információkat. A címkéken kívül a hirdetés címéből és tartalmából is készül a keresést támogató index adatbázis, de az elsődleges kategorizálásnak minden esetben a címke az alapja.

    Ezen adatok összességéből alakul ki a strukturált és kereshető apróhirdetés adatbázis, anélkül, hogy a bloggernek – például adminisztráció miatt – be kéne lépnie a feedMART szerverre.

    A rendszer működése nagyon hasonló az RSS olvasó programok működéséhez, azokban is lehet kategorizált adatokat előállítani a feliratkozott RSS hírcsatornákból – ezt a funkcionalitást kibővítve a feedMART egy olyan hír-olvasóvá válik, ahol a hírek tartalma az apróhirdetés oldalak tartalmát jelenti, anélkül, hogy a hirdetés feladójának újabb felületeket kéne ehhez használnia. Mindez érvényes a szöveges adatok szerkesztésére, a képek feltöltésére, rendszerezésére is, hiszen minden adat a saját blogból származik, kizárólag ott kell és lehet szerkeszteni.

    A feedMART mint hirdetési oldal

    A felhasználók – érdeklődők – számára a feedMART egy hagyományos WEB felületet biztosít, amelyen az egyes blogokból átvett és naprakészen tartott hirdetéseket lehet böngészni, tartalmukban keresni.

    A feedMART szerveren tárolt adatokban vannak az aktualizált képi és szöveges tartalmak és természetesen a link is a hirdetés feladójának blogjára, pontosabban annak a hirdetést tartalmazó bejegyzésére. Ezáltal a hirdetéshez tartozó személyes adatoknak – név, e-mail cím, telefonszám – nem is szükséges a hirdetésben szerepelni, hiszen az érdeklődő egy kattintással átjut a hirdetés forrásához, azaz a személyes bloghoz.

    Ez a közvetlen kapcsolat egyfajta bizalom-erősítő funkcióval is szolgálhat, hiszen egy semmiből előtűnő üzleti partnernél mindenképpen bizalomgerjesztőbb egy olyan ember, akinek legalább a személyes blogját módunkban áll megnézni mielőtt eladunk neki, vagy veszünk tőle valamit.

    A feedMART kereső felülete az Apple Spotlight megoldásához hasonlóan a beütött karakterek után azonnal, betűnként indul a keresés és a találatokat panelek formájában meg is jeleníti. Ezek a panelek tartalmazzák az adott hirdetés címét és tartalmát, a panelek szabadon áthelyezhetők, bezárhatók és kicsinyíthetők.

    A kereső motor a felhasználó IP címe alapján határozza meg az elsődleges régiót és a találatokat ennek megfelelően rendezi, azaz a régióhoz közelebb eső találatokat veszi előre.

    A feedMART mint a jövő marketing eszköze

    A jövőben teljesen új metódusokkal történik majd az adásvétel, hiszen egy ilyen rendszer képes lesz megvalósítani azt is, hogy egy blog bejegyzésben megfogalmazott “Vennék iPhone 3G-t” szövegre válaszként egy megjegyzésben (comment) megjelenhet: “Íme itt van egy eladó iPhone: link”.

    Azaz anélkül, hogy ki kellene lépni a saját oldalunkról, vagy végig kellene böngészni számtalan apróhirdetés oldalt, akár másodperceken belül ajánlatot kaphatunk az általunk áhított készülékre, szolgáltatásra!

    Innentől egy teljesen új lehetőség nyílik a vásárló megtalálására nem csak a használt cikkek eladói, hanem értékesítéssel és marketinggel foglalkozó cégek számára is… Persze, hogy melyik értékesítő cég ajánlata jut el legelőször a vásárlóhoz, azt az adott cég által fizetett díj mértéke határozza meg, hasonlóan a Google Adwords-höz.

    ExtAlf – Alfresco by ExtJS

    ExtAlf demo in Safari

    I’m working on a new ExtJS wrapper (ExtAlf) – inspired by Opsoro – for Alfresco document and workflow management functions (by webscripts), like foldertree, document properties, preview, etc. This is not an Opsoro or FlexSpaces alternative, rather than a developer toolkit or a simple SDK what supports embedding Alfresco backend functionality into Web2.0/AJAX portals and frontends.

    Link: Collaborative Editor

    ExtAlf in Aptana

    Planned features:

    • – folder tree panel with actions (show folder contents, create new folder, move folder)
    • – document grid panel with actions (preview, download, show properties, delete, rename, move to other folder, upload new document)
    • – property grid with editing fields
    • – content preview with document transformation
    • – task list and management (close, create, forward)
    • – user interface localization
    • – limit root nodeRef to browse (just like Customer Portal engines)
    • – simple search
    • – simple discussion forum
    • – different grids to show document in a folder with custom properties
    • – integrated document editor for plain text, html and form contents

    Search dialog and results with auto-preview:
    ExtAlf Search

    Login dialog:

    ExtAlf Login window

    Floating panels on UI:
    ExtAlf Demo2 - floating panels

    Continue reading ExtAlf – Alfresco by ExtJS

    Collaborative Editor for Alfresco

    I’m working on a new, unique collaborative editor for Alfresco (ExtJS interface), with following features:
       – task/workflow based editing trigger
       – individual chapter based editing
       – automatic chapter content creation
       – WYSWYG and form based editor
       – one click version change (back for previous version of chapter)
       – one click task close process update and forward to another user
       – preview support for all chapters and complete document
       – automatic versioning (checkin, checkout, cancel)
       – multi-user editing support
       – forum support for document changes and discussion

    This editor is part of TenderWorks (eProcurement, eTendering engine) development project.