Category Archives: Kūryba

Quado brėžinukai

Sumečiau pagal brėžinius vieną quadą, gal kažkam pravers – nes tikrai paprastai išsipjauna ir pasidaro:

Dar reiks varžtelių, gabaliuko 5-6mm faneros (kojytėms įtvirtinti), velcro gabaliuko, laidelių nuo RX (bei maitinimo), 15x15mm dvipusės folijos gabaliuko (jei nesinori lituot 5 laidų į krūvą) ir savo RX. Dar galima užkabint kamerą, kad nebūtų nuobodu ;-)

Realaus aparato foto bus vėliau…

Wireframe Quadrotor drawingRealView Solidworks image - QuadRotor

Brėžiniai:

Update:

nepirkite aukščiau minėtų greičio regų. Kažkokia bloga partija papuolė, dveji susvilo per pirmą vakarą, taip ir nepakėlę quado į orą. Išsilupinėjus – panašu kad jie kažkokie “antrą kartą naudojami” – pritaškyta lydmetalio, ant FET’ų – daugybė grubių mechaninių pažeidimų  ir t.t.. Pirkit ką nors kita (geriausia – ką nors su išoriniu 16M rezonatorium, N-FET ir programming pad’ais, jei domina alternatyvus firmware).

Na ir kelios gatavo quado foto:

Quad - view from above, one ESC fried already

Quad - view from side.

Update 2012.02.04: užsisakiau iš ebay kelis ESC, foto buvo įdėta “Pentium”, gavau “Cloud”. Nu bet tiek to, pas Cloud yra ext osc, viskas puikiai susiflashino ir skrenda. Gal tik variklius su laiku reiks atsinaujint, nes jie kažkokie “natūraliai išsibalansavę” – t.y. turbūt magnetus klijuojant niekas nesistengė vienodai klijų užpilt.

Mystery Cloud 30A flashing simonk custom firmware

Atitinkamai, kelios naujos foto (kojytės iš vandentiekio apšiltinimo šlangos):

Quad on snow, before flight

Quad flying at -17°C (2012.02.04)

FS greičio palyginimas (pasenusi informacija)

Kai beveik prieš metus dariausi NAS, kartu pasidariau ir kelis FS benchmarkus. Dabar juos aptikęs pagalvojau kad būtų labai naudinga pakartoti – palyginti, kiek pasistūmėjo developinamų sistemų našumas…

Testai buvo atlikti arba su atskiru disku (aligned – nors tada su Advanced Format buvo ką veikti), arba su RAID5 masyvu (žemiau pateikta lentelė – RAID5) iš 5x WD Green serijos diskų. Žemiau pateikta lentelė – iš RAID5 masyvo (MD + LVM). Prieš kiekvieną testą – priverstinis sync’as, taip pat – įsitikinama, kad RAID’as yra pilnai susync’intas…..

Naudojau iozone (keičiasi matuojamas bloko dydis, priklausomai nuo testo): iozone -s300m -j 16 -r4k -r512k -r 4096k -i 0 -i 1 -i 2 -i 5 -i 8 -f /mnt/test/iozone.tmp -U /mnt/test


ReiserFS3

noatime

ReiserFS3

noatime, notail

ext4,

created with extents,

mounted with ‘noatime’

ext4,

created with extents,

mounted with ‘noatime’ (run2)

BTRFS,

noatime

BTRFS,

noatime,nodatasum,

nodatacow,noacl

Write
4k 99738 103121 113193 121446 98561 118036
512k 92972 108739 114122 109555 106877 119445
4096k 104672 94003 118900 113319 121980 115757
Read
4k 97811 97467 112666 116975 29040 91773
512k 62883 101031 77743 116956 84419 90599
4096k 98189 110781 81008 116983 53419 93355
Random Read
4k 832 835 845 849 725 845
512k 29321 31512 36170 34795 15297 22246
4096k 52659 55253 74076 61874 30600 42548
Random Write
4k 4073 4061 2361 2314 21761 1457
512k 78812 82143 112980 113969 95791 120782
4096k 71833 72514 97920 97447 106617 114495

Ką gi, kadangi namų NAS dažniausiai yra dirbama su sequential duomenimis – tai labiausiai aktualu didelių blokų read performance. Bent jau taip maniau tada…. Dabar daryčiau kitaip, bet apie tai – vėliau.

Sudėjus viską į vietas, grafiškai (beje, LibreOffice sucks su grafikais, kažkoks nesuvokiamas GUI), gaunam tokį 4MB blokų performance:
Comparison between ReiserFS, EXT4, BTRFS

Turint omenyje:

  • visiškai “žalią” BTRFS (kernel panic testų metu, istorijos IRC (freenode, #btrfs) apie to meto release stabilumą, taip pat kartais pamirštamą sync’ą arba nesuprantamus rezultatus (žr. BTRFS read su mažu bloko dydžiu)
  • neypatingai džiuginantį ext4 performansą su mažais bloko dydžiais (ir čia nepaminėta – spartų performanso kritimą, turint labai daug failų – o tokių katalogų aš turiu)

…vistik nusprendžiau likti prie to, ką jau patikrinau savo kailiu, aukojant kažkokį miglotą performance pliusą.

Iš kitos pusės, kadangi ta NAS dėžė 24×7 seedina torrentus (o kartais ir leechina), tai random read/write performansas su mažu bloko dydžiu (čia turėtų būt dar vienas kabliukas – kaip failinės sistemos su fiksuotais blokais prisitaikys prie diskų su AF) yra pakankamai aktualus. Turiu mintį – kai tik ZFS užaugs iki naudojamo lygio Linux’e – darysiu wipe ir būsiu “šiuolaikiškas” ;-)

Kartu bus įdomu ir palyginti, kiek ext4 bei BTRFS “paaugo” per metus/pusantrų. Progresas gi nestovi vietoje ;-)

Atsigaukim

Seniai nerašiau – visko pasitaiko ;-)
Bet va, yra proga – konstruojam naują įrenginį, dėl to tai tikrai verta parašyti atskirą postą. Viskas prasidėjo labai paprastai – prisireikė namuose vietos, kur būtų laikomi filmai – supratau, kad DVD yra labai neefektyvu. Didelė lentyna, užimanti visą kampą talpina 100 DVD. Turint omenyje, kiek vidutiniškai užpildomi diskai – gaunasi, kad 100 diskų telpa į 4 terabaitus, kas yra tikrai nedaug šiuolaikiniams HDD.
Taigi, planas paprastas:

  • ekonomiška (el. energijos požiūriu)
  • talpi (informacijos požiūriu)
  • mažytė (fiziniais gabaritais)
  • tyli – papildomas triukšmas namie nereikalingas

…dežutė, kuri talpintų daug informacijos, pakeistų esančius DVD ir krūvą kitų “gudrių” dėžučių, esančių namie (wireless, NAT ir t.t.). Rezultate susidėjo tokia schema:

  • Supermicro Atom MB (berods 12W apkrovus)
  • 5x WD Green 2TB diskai (tylūs, talpūs, ekonomiški – ko dar norėt?)
  • Bronze (80+) sertifikuotas PSU su Active PFC
  • 2x Built-In + 2x1GBe tinklo interfeisai iš papildomos Intel tinklo plokštės

Kadangi viską galima vienaip ar kitaip nusipirkti Ebay ar pas mus, tai čia problemų nekilo. Supermicro – pasirodo Elko atstovauja, tai gražiai paprašius atgabeno, diskai – ne retenybė, PSU – paėmiau vienintelį iš pigesnių ir ne popieriniais kilovatais FSP gamybos. Tinklo plokštę teko pirkti iš Ebay – mūsų kainos nelabai protingos – gavosi maždaug dvigubai pigiau nei pas mus.
Dėžės tinkančios ir patinkančios neradau, taigi – gaminausi pats. Pradžiai draftas pasiskaičiavimui, ar viskas tilps, t.p. ir minimaliai šiluminių srautų paskaičiavimas (SolidWorks + FloWorks):
Wireframe image of NAS boxShaded image of NAS box
Su PC paskaičiuot viskas paprasta, realiai darbai gaunas sudėtingesni….
Aliuminio kampuočių rėmas NAS dėžei
Gerai padirbėjus – viskas gaunas. Įvertinant tai, kad rėmo gamyba užtruko mėnesį (dirbama buvo tik po darbo, taigi – valanda-dvi, arba savaitgaliais) – nebuvo paprasta, bet tikrai padaroma. Aišku, dabar daryčiau kitaip, bet tai žinios kaip apdirbti aliuminio kampuočius neateina miegant ;-)
Nieko, dalys atkeliavo, galima pradėt montuot. Nexus ventiliatorius + testinis HDD (sugedęs, naudojamas tik pamatavimui):
Pradėta montuoti - HDD + ventiliatorius
Dėžėje buvo prigalvota keletas gan originalių, kitur nematytų sprendimų – tinklo plokštės tvirtinimas spyruoliuojančia duraliuminio juosta, HDD tvirtinimas konusiniais varžtais… Gal patentuot? =)

Sumontavus galima pažiūrėt kas gaunas….
Montuojami HDD, bendras vaizdas iš šono
o esant laiko – net ir pamėgint įjungt:Pirmas bandymas įjungti
Na tai ką, rezultatas jau yra – paskui sumontavau dar dvejus papildomus diskus (5 iš viso), atsirado šoninės sienelės, LCD viršuje (neveikiantis, nes kontroleris taip ir neatkeliavo iš Ebay). Kas gavosi – parašysiu vėliau ;-)

Kada baigiasi “padėsiu kitiems” ir prasideda “patapau eiliniu fanatiku”

Kur eit pagalbos jei nesugalvoji algoritmo? Pirmai pradžiai – turbūt į mėgstamą IRC networką, tos kalbos kanalą.
Kadangi kokiame #php sėdžiu nuo ~2001 metų, tai labai puikiai matėsi evoliucija. Pradžiai buvo padedama. Paskui padedama retai. Paskui tiesiog “padedama”. Paskui be atodairos spardomi visi, kurie tik paminėjo phpnuke ar phpbb. Dabar gi, kartu su IRC apmirimu (musėt priešmirtiniu) kartu aprimo ir tiek kanalai bent jau lietuviškame Aitvare…
Ką gi, einam į freenode. Ten dar smagiau – nueini į kokį #php – amžinas bardakas, pradinukiškais klausimais “užmušami” visi specialistai ir rimtesnio lygio klausimai lieka neatsakyti. Na, toks jau tas PHP – dėl savo paprastumo ir populiarumo gavosi taip kad daugiausia problemų turi pradedantys, kurie mėgina suklijuoti 138876621 svetainę pasaulyje apie CS ar kažką panašaus.
Nukeliaujam į #perl. Na, sakykim neklausiu “parašykit kas programą kuri darytų tą ar aną”. Paklausiu idėjos, algoritmo. Prasideda diskusijos, trunkančios pora valandų, kurių eigoje paaiškėja, kad:

  • Man to nifiga nereikia (na, per pora valandų dar ne tokių dalykų įtikint galima)
  • Mano turimos idėjos sucks
  • 90% kanale sėdinčių nieko neišmano ir jų idėjos sucks taipogi
  • Programos kuri vos sudėtingesnė už “Hello world” kodas turėtų tilpt į dvi-tris eilutes, bet dėl sąmoningo obfuscatinimo, inline subsų, magic variables, backreference ir kalno kitokio crapo jinai būtų skaitoma tik aš-dešimtus-metus-mokinuosi-perlą specialistams
  • Jei tu galvoji kitaip tai pats ir daryk. Nuo nulio. Nes tą patį dalyką galima užrašyt n būdų, bet tik vienas teisingas!

…Rezultate vis tiek neturi to ko reikia.

Kokiam nors C, C++ kanale situacija dar liūdnesnė. Neduokdie nepataikysi paklaust… ;-)

Na, nelendu aš ten prašinėt pagalbos. Bent jau stengiuosi to nedaryt dažnai, paprastai būnu pasyvus stebėtojas. Bet kad situacija tokia smagi – kuo sudėtingiau išmokt kažką – tuo didesni fanatikai sėdi ir tuo aršiau jie gina savo nuomonę ;-)

Pats turbūt irgi taip darau, tik vat mėginu save pagaut – sunkiai sekasi. Iš kitos pusės, šiandien sukėlęs eilinį fleimą iš jo pabėgau – ir visai dzin, pasidariau “ūkišku” būdu. Nesvarbu kad specams tas kodas “sucks” – svarbu man smagu pasidarė =)

Gera failinė sistema, arba istorija “Nemuškit reiserio!”

Šis varganas serveriukas buvo beveik parą offline dėl labai paprastos priežasties – prisireikė kitam Lietuvos gale pastatyt vieną silpną dėžę vien backupams, kadangi tokių kaukolinių nebepardavinėja – tai nusipirkau kai ką apyšviežio ir tuo pačiu sugalvojau upgradinti šitą dėžę. Kitaip sakant, į kitą Lietuvos galą norėjau išsiųsti puikiai veikusią tiek metų (tegu ir prasto gamintojo ir visokeriopai pasenusią) plokštę (su CPU, PSU, RAM) nei kad kažką naujo ką nusipirkau.
Rezultatas – permontuojam vietoj senučiuko Chaintech su VIA čipsetu, 800@900MHz PIII santykinai monstrą (lyginant su anuo, ne pagal šias dienas ;-) DFI LANParty UT nF3-250Gb su Athlon 64 3200. Kaip ir viskas normaliai, paleidžiant pamačiau keletą keistų dalykų, bet nekreipiau dėmesio. Parvažiuoju namo – ogi nepasiekiamas. Na, apsirengiam ir važiuojam čekinti…
Rezultate – dėka kažkokio MB+CPU nesusišnekėjimo (sunkiai dirba netgi dažniu pagal nutylėjimą) viskas ten gan stipriai grybavo. Tie “keisti dalykai” kuriuos pastebėjau vėliau peraugo į kernel panic. Kad viskas būtų smagiau – iš pradžių mėginau problemas spręsti kitu kerneliu. O ten turbūt kaip tik sutapo kad “atsijungė” ar visiškai nusišnekėjo kažkuri dalis atsakinga už failinę sistemą…
Rezultate – grub’as sako error 17. Ok, bootinamės iš ko papuolė po ranka, pasileidžiam grub shell – ogi unrecognized file system. Ok, imam kitą CD, bootinamės, su mdadm assemblinam raidą ir žiūrim kas viduj. O ten – nieko gero – superbloko nerasta, duomenų panašu kad irgi…
Na, remote backupą aš turiu, bet niekam nesinori atsistatinėt iš backupų. Kadangi patirties su reiseriu aš kaip ir turiu – imam hexeditorių, reiserfsck su visais –rebuild-sb ir –rebuild-tree. Valanda su trupučiu – ir visi duomenys savo vietoje. Tiesa, dar daugiau užtrukau pakol išsiaiškinau ko ten CPU+MB combo grybauja, bet – rezultate viskas veikia!

Girdėjau įvairiausių atsiliepimų apie reiserfs, bet kažkodėl manau kad dauguma problemų – arba dėl kreivos realizacijos (kai kurios distros tikrai persistengia bepatchindamos savo kernelius) arba dėl extreme naudojimo – belenkiek mount opcijų nesuprantant ką jos daro ir nuolatiniai reboot dėl elektros dinginėjimo ;-)

Žinau tiek – kažkada reiserfs panaudojimas vietoj ext3 buvo 6x performance boost (> 3 milijonai mažų failų, reik turėt omenyje kad tas buvo ~2003-2004 metus – taigi ir HW atitinkamai), iš reiserio aš be jokių problemų išsitraukiau failus ne kartą ir ne du esant hardwarinei problemai. Vienintelė bėda – kad FS autorius šiek tiek persistengė asmeniniame gyvenime ir dabar apie sparčią plėtrą galima pamiršti… Tiesa, nors Namesys kaipo toks panašu kad nebeegzistuoja, bet pati failinė sistema prižiūrima ir nepanašu kad nori numirt.

Turbūt pats laikas išsimėgint kokį btrfs – laikas augti, nėr čia ko vienoj vietoj užsiciklinus sėdėti =)

Kad juos kur, tuos mac’us

Nuo vakar vakaro ir taip gan gausi mano mac’ų šeimyna pasipildė dar vienu – sugalvojau kad man reikia nešiojamojo kompiuterio šalia lovos (o ne tokio, kurį reiktų dar neštis iš darbo ar pan., kaip kad buvo su mano MacBook) – ir nusipirkau iBook. Kodėl Apple, o ne Asus su savo eee? Tiesiog taip jau gavosi, kad kažkada sugebėjau labai tvarkingai susidėti Terminus šriftą, nuo tada ir negalėjau nulipt…
Viskas, dėl ko pas mane dar yra tie mac’ai – tai mielas antialiasinimas terminale ir kitur. Visa kita… Nuo pat pradžių kaip visad pradėjau lipt ant grėblių – tai ten kur nors netinstalle problemos (NFS image seekinimas – ir problemos su buggy NFS serverio implementacija), tai virvelesas neveikia kaip turėtų (pasirodo, kad su Leopoldu atėjo bjaurus bugas – po sleep/reboot ar pan. operacijos jis nebesugeba prisijungti ir prisiminti tinklų su hidden SSID. Sprendimo nėr, workaround – “Off” ir “On” virvelesui), tai dar kas nors išlenda…
Ir kai jau pagaliau kitą dieną susidėjau viską kaip noriu – paaiškėjo kad tas šriftas tiesiog šiaip neveiks, ir kad arba aš ten buvau kažką labai mandro pribūręs, ko dabar jau nebeatsimenu, arba vistik senas geras CRT ir be jokių papildomų antialiasinimų daug gražiau atvaizduoja tą fontą. Screenshotų nebus, kadangi jie bus skirtingai matomi LCD ir CRT vartotojams, geriau jau pamėginsiu kada pafotkint – kur kas daugiau naudos iš to gaunas ;-)
Reziume – būčiau žinojęs kad taip gausis su tuo terminalo šriftu – nėėė, nebūčiau dar vieno kevaliuko namo tempęs ;-)

Oi jūs vaikai, nerūkykit to ką aš rūkau…

Žodžiu taip. Krapštinėju čia vieną tokią apmokėjimo sistemą (būna gi kartais tokių užsakovų norų – iš gero daikto padarykit fufelį), tai tarp debesies užklausų kurias pagimdžiau viena buvo tokia nenormali (sudėta į perl kintamąjį):

$disk_usage = "SELECT (SELECT
                        res.value*res.multiplier AS diskspace
                        FROM ve ve
                          LEFT JOIN resource AS r
                          ON ve.platform_id = r.platform_id
                          LEFT JOIN subscr_ve AS suve
                          ON ve.ve_id = suve.ve_id
                          LEFT JOIN subscr_orders AS sord
                          ON suve.subscr_id = sord.subscr_id
                          LEFT JOIN order_res AS res
                          ON sord.ar_doc_id = res.ar_doc_id
                          AND r.res_id = res.res_id
                        WHERE   ( suve.ve_id IS NOT NULL AND
                                sord.subscr_id IS NOT NULL AND
                                res.ar_doc_id IS NOT NULL AND
                                ve.ve_id=(SELECT ve_id
                                          FROM subscr_ve
                                          WHERE subscr_id='$sid'
                                          AND ve_id IS NOT NULL)
                        AND r.short_name IN ('diskspace'))
                        ORDER BY sord.start_date LIMIT 1) as space,
            (SELECT MAX(diskusage) AS diskusage
                    FROM ve_quota_stat_history
                    WHERE ve_id=(SELECT ve_id
                                 FROM subscr_ve
                                 WHERE subscr_id='$sid'
                                 AND ve_id IS NOT NULL)
                    AND interval_type=0
                    AND time_stamp BETWEEN '$times[0]' AND '$times[1]'
                    ORDER BY diskusage DESC LIMIT 1) as used;";

Kad dar nors kalba eitų apie MySQL 5.x – tada būtų galima labai supaprastinti reikalą. Betgi dabar turiu bėdą su 4.1, kurios negalima upgradinti ar keisti. Sutinku, kad užklausa neoptimali (ir turint laiko netgi žinau ką reiktų pakeisti), bet užtat veikia! =)
Iš vienos pusės – kapanotis po nedokumentuotus sistemos vidurius kaip ir neturėtų smarkiai vežti, iš kitos – užsivedžiau, ir galutiniame rezultate gavosi 2K eilučių monstras, kuris panašu kad jau daro tai ką reikia.
Sekant skaitytom frazėm:

  • Kiekviena programa turi bent vieną bugą
  • Kiekvieną programą galima sumažinti bent viena eilute

Padarom išvadą, kad kiekvieną programą galima sumažinti iki vienos eilutės, kurioje būtinai bus bugas…

Paskaičius tokių filosofijų bei parašinėjus tokias užklausas man nebereiks ir rūkyt (ko ir taip nedarau jau gerą laiką) – nuo skriptavojimo užsivesiu. Laiku tik į klubą kokį nulėkt! ;-)

Ar terorizmas tikrai toks kokį jį piešia?

Šiandien besiterliodamas su DBD::Sybase moduliu AMD64 perlui (jo nėra RPM pavidalu Centos/RHEL 5 sistemoms, taipogi ir iš CPAN nepavyks sudėti – bet pasižaidus su ‘RPM –relocate’ arba symlinkais iš /usr/lib64 į /usr/lib nebekilo problemų) kažkaip prisiminiau žemiau pavaizduotą paveiksliuką.

…Ir po kelių valandų visokio debuginimo, strace’inimo, hexdumpų aiškinimosi supratau, kad jei reiktų dabar rinktis RDBMS, tai vistik bėgčiau pas teroristus ;-)
P.S. paveiksliuką “nukosėjau” kažkur iš interneto. Priminsit jo originalų adresą?

AJAX ir paveiksliukai

Kažkur susipainiojau… Susigaudžiau kad mano skonis labai specifinis – nesurandu sau kito tinkančio telefono, automobilio ar dar ko nors, tai dabar supratau kad ir elementarios paveikslėlių galerijos, atitinkančios mano poreikius nerasiu…

Buvo čia tokia viena. Photoframe vadinas. Problemos nedidelės… Naudoja frame’us, pagrindinis developeris jau labai seniai užsikasęs su Moodle ir nieko nejudina ta kryptim. Per paskutinius dvejus metus – tik smulkūs bugfix patchai.

Tuo tarpu, pasižvalgius aplink tikrai negalima sakyt, kad trūksta galerijų pasirinkimo. Jų yra kalnai – pradedant megagriozdais kurie daro ką tik nori, išskyrus patogų nuotraukų parodymą, bet užtat naudojančiais visas įmanomas duomenų bazes, ir turinčių kalnus skinų (ėėėė!!! Ko žmonės ateina pasižiūrėti į puslapį – naujų skinų, padailintų EXIF info ir mikroskopinio dydžio preview thumbnailso, ar fotografijų?) , tesiant lyg-ir-būtų-gerai-pagal-svorį-bet-nepatogu-naudotis, ir baigiant minimaliom galerijom, kur viskas daroma kliento pusėj ;-)

Tarkim… Paimkim eilines galerijas iš google pirmųjų rezultatų. Ir palyginkim su tuom, ko reikia tarkim, tokiam vartotojui kaip aš :

  • Jei kažkas man mestelėjo nuorodą į foto internete, tai aš ir noriu matyt tą foto internete. Ne kažkokį mega-giga-turbo aprašymą, su kalnu nieko nesakančių EXIF-info prie thumbnailso, bet būtent foto. Taigi, turėtų būt galimybė gauti nuorodą tiesiogiai į norimų gabaritų foto.
  • Aišku, jei man foto patiko (arba nepatiko) – turėtų būt galimybė palikti komentarą. Ir, savaime suprantama, be jokių registracijų – vardas, prierašas.
  • O jei man patiko… Aš noriu pasižiūrėt visą galeriją ta tema. Kaip tai turėtų būt realizuota? Geras klausimas ;-) Turi būt galimybė matyt visų foto mažas versijas (pas mane linija vis dar ne 10Gbps į visus tinklus), jei thumbnailsas sudomino – spaudžiam, matom kažkokių gabaritų, telpančių į ekraną versiją. Jei ji per maža – vėlgi, tada jau čiumpam originalą. Taigi, iš viso 3 foto variantai – mažytis thumbnailsas, vidutinių gabaritų foto, ir originalas.
  • Be abejo, galimybė keliauti per visas foto – sekanti – ankstesnė.

O daba pasižiūrėkim ką turim… Visokie didžiuliai griozdai, kurie foto resizina jau kliento pusėje, arba generuoja thumbnailsus serverio pusėje, bet tik juos ir rodo. Paspaudus ant kažkurio thumbnailso, 99% kad mes gausim vidutinių gabaritų foto, laukelį komentarams, ir tik du mygtukus – sekanti ir ankstesnė…. Bendro vaizdo, kas yra galerijoje nebeliks, o jei norėsis pamatyt visas – ilga paieška per nuorodas, pakol kuris nors nuves į galerijos indeksą, kur vėl ilgai ir nuobodžiai kraus galerijos thumbnailsus… Na, ir kas be ko, labai šaunus puslapiavimas, kad neduokdie nesusidarytum įspūdžio visas iškart pamatęs, o dar turėtum ilgai ir nuobodžiai brouzint per aplink.

Pažiūrim ko reiktų iš ‘galerijos administratoriaus pusės’ – t.y. to, kuris deda ten foto :

  • Atsikėliau iš po baliaus, nusiurbiam foto, gurkštelim kefyro, ir, kaip ir jau reiktų ir kitiems foto parodyti… Taigi, išmetam foto kurios nepraeina cenzūros, ir drebiam visą katalogą į serverį. Vartotojams tik paduodam nuorodą, ir einam toliau gurkšnot kefyro… Galerija turėtų pati pagal EXIF foto pasukti, sumažinti/padidinti, padaryti thumbnailsus ir pateikt norima forma vartotojui. Trumpai sakant – minimum konfigūravimo, maksimum rezultato.
  • Turiu aš kažkokį katalogą savo rinktinių foto. Norisi jas pateikti gražiai – na ir kągi, tada iškart kitas reikalavimas – resizinimas tik bicubic kaip minimum, galima pakeist stilių kiekvienam galerijos elementui. Trumpai – reikalui esant, tas ‘viskam tinkantis defoltas’ turi būt labai lanksčiai konfigūruojamas…
  • Viskas supaprastinta iki minimumo. Jokių duomenų bazių, jokių /lib katalogų su dešimtimis failų… Pasižiūrim į Photoframe – vienintelis failas, kuriame yra viskas.

Tiesą sakant, palaksčiau į vieną pusę, palaksčiau į kitą… Nusprendžiau kad nerasiu nieko tinkamo. Pagromuliavau savaitę idėją perrašyt photoframe šiuolaikiškai, bet, per gerą pusdienį sugebėjau su AJAX tik išgauti šiaip ne taip foto sukeitimą (click thumbnailsą – loadinam didesnį variantą), ir kaip ir nudrėbiau tą idėją. Vadinas, reikia imt kažkieno jau pradėtą darbą. Iš projektų arčiausiai idėjos pateko tik minishowcase – tik šviežiai pradėtas galerijos projektas, bet jau turintis kažką panašaus į tai ko reikia – kelių dydžių fotografijos, ajax-based atvaizdavimas, neperkrautas per daug. Parašiau autoriui, pasiteiravau dėl licenzijos ir kitų smulkmenų. Jei gausiu teigiamą atsakymą – lieka tik sėst ir lipdyt tai ko trūksta – komentarai, thumbnailsų vartymas, originalių foto pervertimas pagal EXIF data, na, ir kas be ko – kešavimas ;-)

Gal vieną gražią dieną pasaulį išvys kažkas, kas nenaudoja megabaitinio srauto atvaizduoti galerijos indeksui, kuo patogu naudotis, nereikia flash’inio pluginso, nėra apipintas skambiais šūkiais ‘web 2.0 compatible, only css and valid blablabla based!!!’ tuo tarpu prarandant funkcionalumą ir prisigaudant kalnus bugų (eee… Teko matyt daug tokių super-duper formų, meniu, lentelių ir visokio panašaus stufo, kuris yra gal ir ‘krūtas’ jei žiūrėt į tai KAIP tai padaryta, bet yra beviltiškai bugovas, jei žiūrėt iš vartotojo pusės), o bus tiesiog – paprastas ir funkcionalus. Toks, kaip dabar yra photoframe ;-)