Kategorija: Straipsniai

Office Gridu naudojant virtualių aplinkų - 1 dalis

, penktadienis 4th Gruodis 2009 11:23 pm

Įvadas

Aš dirba įmonė, kur mes paleisti daug partijos milijonų įrašų duomenų tvarkymo darbo vietas kiekvieną dieną ir aš galvoju apie visus mašinos, sėdi aplink kiekvieną ir kiekvieną dieną keletą valandų nieko nedaryti . Ar nebūtų gerai, jei galėtume naudoti šias mašinas paremti mūsų sistemos duomenų apdorojimo galia? Į šį straipsnių rinkinį aš pažvelgti į galimą naudą įdarbinimo biuro tinklo , naudojant virtualised aplinką .

Kaip PHP programuotojo aš ketinate naudoti įrankius, kad aš naudoju kiekvieną dieną, ty, Linux , MySQL, PHP, VirtualBox ir Subversion (SVN) . Tačiau aš tikiuosi, šiame vadove bus lygiai taip pat prisitaikyti prie kitų kalbų ir technologijų.

I tirpalas bus labai silpnai pagrįstas perdirbimo mums reikia pasiekti, tačiau tai negali būti tiesa, per visą straipsnį, nes aš ką nors keisti paprastumas, arba gaminti daugiau įdomių naudojimo scenarijus.

Šie virtualised aplinkoje veiks ant langų mašinų, nes tai yra tai, ko dauguma biurų paleisti. Apdorojimo, kad biuro mašinos neturėtų trukdyti šių mašinų darbuotojų, kurie naudojasi, turėtų nereikalauja priežiūros mašinos, ir turi būti lengvai dislokuojamos į naujas mašinas, kai jie tampa prieinami. Be to, naujos virtualios mašinos neturėtų reikalauti jokios papildomos konfigūracijos, nes tai labai sumažina lankstumą ir paprastumą, tinklo sistemos gali būti pratęstas.

Kodėl reikia diegti Office Kompiuterija Tinklelis?

Pirma, jums gali būti mąstymo, kodėl gi ne tiesiog naudokite cloud computing išteklių, tokių kaip Amazon EC2 platforma? Na priežasčių gali būti keletas, pavyzdžiui:

  • Jums nereikės patikėti tam tikrus duomenis Debesis kompiuterija aplinka
  • Jūs negalite įdėti į tam tikrus duomenis dėl teisinių priežasčių (pvz., duomenis iš šalies), gali būti dėl teisinių priežasčių, pavyzdžiui, NHS įrašai Debesis kompiuterija aplinka.
  • Jūs norite išsaugoti savo perdirbimo vienetų uždaryti ir turėti pilną kontrolę aparatūros
  • Jūs neturite projekto lėšų paleisti debesis atvejais
  • Savo biuro neturi prisijungimo prie interneto, ir todėl jo negalima naudoti debesis išteklių
  • Jums nepatinka lietus, debesys rodo, lietaus, todėl jums išlaikyti ir toliau

Aš tikiu, kad sąrašą galima tęsti, bet aš manau, kad pakanka dabar.

Office Kompiuterija Tinklelis privalumai

Na, leidžia daryti kai matematikos (ir tiesa fizikos stilius leidžia padaryti keletą valymo prielaidos). Įsivaizduokite, kad turite didelių raumeningas perdirbimo serverio, kuriame veikia 100 darbo vietų per dieną. Savo biure, turite 50 mašinų, kurios yra nenaudojamas 16 valandas per parą, kiekvienai iš šių mašinų yra 10%, kaip galinga, kaip jūsų raumeningas perdirbimo Sever. (Visi rezultatai čia yra suapvalinti nepakankamai veiklos padidėjimas).

Taigi, 1 mašina * 10% * 2 / 3 = 0,067, ty 1 darbastalio apdorojimo galia prastovos laiką galėtų procesas 6 visas užduotis per dieną.

Jei dabar masto tai padaryti per 15 nenaudojamas staliniai kompiuteriai procesas kaip daug darbo vietų per dieną, kaip pagrindinė perdirbimo serveryje .

Taigi mūsų apsimesti biuro 50 mašinų galėtume padidinti mūsų duomenų apdorojimo galia nuo 1 serverio iki 4 perdirbimo serverius, ar galėtume apdoroti 400 darbo vietų per dieną, o ne 100.

Pranešimas, ne investicijos į naują įrangą jūsų bendrovė neseniai padidino savo partijos perdirbimo pajėgumus 4 kartus! Potencialiai jūs ketinate padidinti savo elektros energijos naudojimą, bet iš daugelio biurų, aš į mašinos paprastai paliekama per naktį vistiek, kad galėtumėte pamatyti šį žalia iniciatyva.

Kiti privalumai taip pat reiškia, kad investicijos į naujas (atnaujinta) perdirbimo serveriai gali būti atidėtas, jei jūsų biuro mašinos yra pakankamos ir kad, kaip jums pagerinti jūsų biuro mašinos galia jūsų biuro tinklelį tampa galinga automatiškai.

Technologijas

Ko jums reikia? (Arba tiksliau, ką aš naudoju):

  • Neveikos biuro mašinos (mano atveju atsarginių sena Windows XP nešiojamas)
  • VirtualBox (ar kitą virtualizavimo programinę įrangą kliento)
  • Virtualios mašinos su PHP, MySQL running veikia įpjovą žemyn OS, Aš skambinti šių mano Limp serverius:)
  • Darbams vykdyti
  • Darbo serveris (gali būti kitos virtualios mašinos kažkur)

Tipiška Darbas

Darbo vietų, kad ši sistema yra skirta paleisti tipų yra keičiamas taip:

  • Sistema gauna duomenis, kuriais mums reikia suderinti ir grąžinti rezultatus sąrašas
  • Suderinimas apima tikrinimo / ieško kelių (beveik nekinta) duomenų šaltinių
  • Duomenų šaltinius rezultatai gali reikalauti tolesnio patvirtinimo, sujungti, tikrinti papildomų duomenų šaltinių, kaip atsakas į rezultatus
  • Duomenys grįžo su atitinkamais įrašais, visiškai pasiteisino ir perdirbti
  • Kiekvienas įrašas per darbą yra nepriklausoma nuo likusios

Taigi mes ieškome veikia darbo vietas, kurios reikalauja duomenų bazių paieška ir kai kurių skaičius crunching, gana tipiškas scenarijus verslo aplinkoje mišinys.

Tinklelis sprendimai yra ne tik naudingas šios rūšies darbo vietų tvarkymo. Iš esmės, bet koks procesas, kuris gali būti padalytas į nepriklausomus vienetus gali būti vykdomos arba lygiagrečiai. Žiūrėti šį Wikipedia pavyzdžių ir daugiau informacijos: Tinklelis Kompiuterija , tačiau pora žinomų pavyzdžių yra SETI @ Home ir BIONC . Yra veikia kompiuterinių tinklų sistemas, ir tai verta pasidomėti.

Ką mes pasiekiame?

Iki šių dirbinių pabaigos Tikiuosi, kad parodyti, kad dislokuoti biurą tinklelį nereikia būti labai brangu arba laiko. Aš ketinu aptarti:

  • Steigiant darbo kontrolės sistema, darbo vietų konfigūracija
  • Sukurti tinkamą perdirbimą virtualios mašinos
  • Kaip sukonfigūruoti sistemą Windows kompiuteryje
  • Užtikrinti, kad esate naudojant naujausią kodą ir duomenų
  • Diegimo ir lyginamąją
  • Žvelgiant į ateitį

Aš pastatas (Gerai, Aš pastatyti, tada parašė šią) pavyzdžiui, prašymą patikrinti sąvokas vietinį kompiuterį naudojant "Windows XP" ir "mano" GridMachine "virtualioji mašina. Mano darbo kontrolė serveris bus pagrindinis mano mašina, kuri veikia "Fedora 11 .

Tai jokiu būdu nėra skirta parodyti visiškai patikima sistema, jos reiškė daugiau demonstravimo ir aptarti rodo, kad šių dalykų gali būti pasiektas per pagrįstai trumpą laiko tarpą ir nedidelių sąnaudų. Prašome atsiųsti man komentarus, pataisymai ar patobulinimai, ir aš mano geriausia laikyti atnaujintas, kad atitiktų šį straipsnį.

Kitą kartą

2 dalyje aš pradėti ieškoti darbo kontrolės sistema, ir pažvelgti į tai, kaip darbo vietų turėtų būti konfigūruojamas, kad pasiekti didžiausią sumą, kartu užtikrinant, kad kiekvienas darbas yra tvarkomi be nepavyks perdirbimo .

Office Gridu naudojant virtualių aplinkų - 2 dalis

, penktadienis 4th Gruodis 2009 11:23 pm

Įvadas

Aš dirba įmonė, kur mes paleisti daug partijos milijonų įrašų duomenų tvarkymo darbo vietas kiekvieną dieną ir aš galvoju apie visus mašinos, sėdi aplink kiekvieną ir kiekvieną dieną keletą valandų nieko nedaryti . Ar nebūtų gerai, jei galėtume naudoti šias mašinas paremti mūsų sistemos duomenų apdorojimo galia? Į šį straipsnių rinkinį aš pažvelgti į galimą naudą įdarbinimo biuro tinklo , naudojant virtualised aplinką .

1 dalyje daviau sistemos ir technologijos bus taip pat aptarti kai kurie iš galimų priežasčių, kodėl Jūs norėtumėte sukurti biuro tinklelį apžvalga .

Darbo kontrolė

Jei jūs ketinate veikia darbo vietas, tada jūs ketinate reikia kažkokiu būdu juos valdyti. Jūsų darbas kontrolės sistema (į savo darbo serveryje) turi būti tikrai gerai apgalvoti dar prieš bandant paleisti biuro tinklo. Taigi pirma, kas yra darbo kontrolės sistemos uždaviniai:

  • Iš darbuotojų prašymu ranka iš darbo vietų
  • Papasakokite darbuotojams, kokio tipo darbo vietų paleisti
  • Sekti darbo vietų
  • Užtikrinti, kad darbo vietų paleisti tik vieną kartą
  • Suteikti darbo darbuotojų duomenis, arba bent pasakykite jiems, kur jį gauti

Sistema taip pat turi būti galima pratęsti, sprendimas, kuris veikia dabar vienu atveju gali būti pratęstas paleisti kelių tipų darbo vietų, verslo mato tinklelį tirpalo verta. Pavyzdžiui, darbo vietų gali gauti prioritetus, daugiau nei vieną darbą tipas, gali egzistuoti (ty keletą kodo bazės), galų gale jūs net gali vykdyti keletas skirtingų darbuotojas mašinos, optimizuota kiekvienam darbo tipui (nors tai nėra tolti nuo generinis darbuotojas "idėja). Visada stenkitės galvoti apie ateitį, kuriant sistemas, trumpą laiką regėjimas gali sukelti ilgesnį laiką nusivylimas ir padidinti vystymosi laikas.

Darbo Serveris

Mes ketiname reikia kažkur kontroliuoti mūsų darbo vietas, tai turėtų būti tik savo tinklelį sistemą, kad fiksuoto Resource Locator, kad IP adresą, kompiuterio vardą, URL (naudojant vidinio DNS), ir tt Tai yra todėl, kad darbuotojams reikia žinoti, kur ieškoti darbo, darbuotojams reikia rasti darbo kontrolės sistema (ne darbo kontrolės sistema rasti darbuotojų).

Darbo serveris pats nėra tikrai sudėtinga užduotis (bent jau pagrindinės sistemos), ji turi saugoti darbo vietų sąrašą, darbo vietų ranką, gauti rezultatus, o vėliau juos laikyti, kad vėliau. , Kaip šios dalys (pavyzdžiui, "darbo vietų" ranką) yra apibrėžti gali būti labai paprastas. Vėliau mes galime išplėsti sistemos administravimo sąsaja, pridėti, redaguoti, trinti, sustabdyti darbo vietų, tačiau tai yra ne tik šį pratimą.

Nėra jokios priežasties, kokia, tada, kad jūsų darbo serveris negalėjo būti virtualios mašinos veikia per savo pagrindinę perdirbimo serverio, jeigu nėra nutekėjimo per daug išteklių iš. Darbo serverio, tačiau reikia didelio prieinamumo, jei jis krinta nuo penktadienio vakaro jūs ketinate prarasti visą savaitgalį perdirbimo, potencialiai jums kainuos porą savaičių verta perdirbimo metu (lyginant su jūsų pagrindinė perdirbimo serverio vien) . Galbūt norėsite apsvarstyti galimybę pradėti savo darbą serverio apkrovos subalansuotą aplinką didelio prieinamumo.

Bazinė konfigūracija

Pagrindinis mūsų darbo serverio sąranka, ką aš skambinti vienas mano Limp serverius (Li Nux m ySql, P, HP) . Kodas veikia Thea darbuotojų faktiškai dirba, kokie darbo vietų galima paleisti, sąveikaudamas su darbo kontrolės sistemos duomenų bazių. Vėliau galėtume sukurti interneto paslaugas ir iš tikrųjų darbo vietų ranką, o ne darbuotojų sunkaus darbo, bet dabar mes ir toliau naudojant principas KISS (Keep it simple, stupid!).

Taigi, leidžia sukurti tris mySQL lentelių spręsti darbo vietų. Tai bus "darbo vietų", "jobRecords", ir "jobResults".

darbo vietų lentelė Čia aš naudojant SQL Buddy labai mažai alternatyva phpMyAdmin tik todėl, kad jos lengviau įdiegti Centos (mato kiti: 10 Didžiosios alternatyvų į phpMyAdmin )

Ši lentelė susideda iš 5 paprastus laukus,

  • ID: identifikuoti darbo
  • vardas: gali būti kliento nuorodą, arba bet kitų identifikatorių
  • Statusas: Jums reikia žinoti, kur darbas yra, pvz.
    • 0: Ne pradėjo
    • 1: įlaipinami
    • 2: baigė
  • started_by: Kas yra pradėtas daryti darbą? Tai nėra visiškai būtina, bet yra malonu turėti. Norėčiau pasiūlyti stebėti savo IP adresą jūsų tinklo darbuotojų
  • started_at: Kada darbuotojui pradėti darbą? Iki stebėjimo darbo vietų, kurie nėra baigtas per x laiko, mes žinome, mes turime pasiimti darbą dar kartą ir pradėti perdirbti kito darbuotojo. Darbuotojai galėtų sustabdyti tvarkymo / atsijungti bet kokį skaičių priežasčių, elektros tiekimo gedimo, avarijos, tinklo nuostolių, ir tt

Tai lengva, kaip šioje lentelėje gali būti pratęstas keletą papildomų laukų, kad būtų galima statistikos stebėjimas, apdailos stulpelyje matyti, kiek laiko darbo ėmėsi kovos matyti, kiek darbuotojų pakėlė darbo (žinoma, tai turi tendenciją 1), darbo prioritetas, sąrašas gali eiti ir toliau. Sudėtingesnis darbas scenarijus būtų galima nurodyti, kiek atminties darbuotojas turės prieigą (ir todėl naudoti tik tinkamus darbuotojus), ar net kokio tipo darbuotojo būtų reikalaujama.

Leidžia pridėti keletą pavyzdžiui, darbo vietų:

pavyzdžiui, darbo vietų

Tolesnėje lentelėje vėl yra gana paprasta suprasti, tai yra mūsų darbas įrašus. Jie yra susiję su pagrindinių darbo vietų lentelėje skiltyje "jobs_id". Sudaro šio stalo labai daug priklauso nuo duomenų, kad jums reikia pateikti savo darbuotojų, leidžia padaryti labai paprastą pavyzdį, kur mes keturios skiltys:

  • įrašo ID numeris:
  • pavadinimas: asmens vardas
  • Adresas: Asmuo adresas
  • jobs_id: darbas ID, kad šis įrašas yra susijęs su

Trečioji ir galutinė lentelė susideda iš rezultatų lentelės, ji daug tą patį, kaip mūsų įrašų lentelės, ir su to kai kurie stulpeliai gali būti lentelės įrašus:

  • job_record_id: Link rezultatas darbo stalo
  • rezultatas: rezultatas duomenys

... Ir tai viskas, ko jums reikia darbo kontrolės! (Nors labai bazinio lygio) Mano atveju aš atkreipė dėmesį į kitą lentelę, kur buvo įsikūrusi savo duomenis procesas, bet tai gali taip pat lengvai failą, paleisti modeliavimo kodą parametrų, you name it.

Pasirinkus darbą

, Kaip nurodyta anksčiau, darbuotojams atlikti savo darbą valdymą mums dabar, todėl visi turime tikrai rasti darbą, reikia perdirbimo ir gauti informaciją. Kaip mes tai darome? Gerai pasirinkti mūsų darbo vietų atrankos kriterijus ir ieškoti darbo, SQL aš taip:

  1. Imtis bet kokių darbo vietų, kurios nėra pažymėtos kaip visiškas, bet iš mūsų darbuotojas ir iš naujo juos (pakeisti __ME__ su identifikatorius, lengviausia būtų IP adresas):
      UPDATE "darbo vietų" SET "statusas" = 0, kai "statusas" = 1 ir `started_by` = __ME__; 
  2. Naudodamiesi mūsų darbo, atrankos kriterijai, pasirinkti darbą ir pasakyti, kad šis darbuotojas yra susijusios su kontrolės sistema:
      UPDATE "darbo vietų" SET ", status` = 1, "started_by` = __ME__, "started_at` = NOW () WHERE `, status` = 0 arba
     ("Statusas" = 1 ir `started_at"> DATE_SUB (NOW (), intervalas X val.)) ORDER BY `id` ASC; 

    Greiferiniai darbo vietų, kurie nėra X laiko galime užtikrinti, kad visų darbo vietų paleisti darbuotojas kritimo ar vyksta AWOL atveju grąžina rezultatus.

  3. Kitas patraukti darbo vietų duomenys patys įrašus:
      PASIRINKITE * `darbo vietų kūrimo" kur "started_by` = __ME__ limitu 1;
     Pasirinkite * `job_records` WHERE `id` = __JOBID__; 

Baigus darbą, mes įterpti mūsų rezultatų įrašus ir pažymėti kaip užbaigti darbą. Prisiminti darbo vietas gali sustabdyti / atnaujinti bet kuriuo metu galima, kai savo scenarijų atsparumą. Tai gali būti, kad užduotis sustabdo įpusėjo atnaujinti darbo kontrolės sistema, todėl tikrinti darbą įrašų skaičių ir rezultatus, išsaugoti darbo kontrolės sistema būtų protingas žingsnis.

Be to, o tai rodo, kaip darbo vietų gali būti pasirinktas ir valdoma iš SQL užklausos rėmo, jums tikrai turėtų būti savo darbo kontrolė atsiribotų, kad jei nuspręsite pereiti prie naudodami interneto paslaugą, failų sistema , XML, ar bet kurios kitos sistemų skaičius neturi įtakos virš jo kodą.

Darbo konfigūravimas

Kitas svarstytinas aspektas - darbo vietų dydžio ir konfigūracijos. Žaisdami su darbo vietų konfigūraciją galime streikuoti puikų balansą tarp greičio, replikacijos procesas, ir patikimumą. Užtrukti keletą OFA scenarijus:

  1. Darbo pasiūlymai 1 diena kiekvieną paleisti: Tai reiškia, kad jūsų darbuotojams reikia 15 dienų, apdoroti kiekviena darbo vieta (prisimenate 10% laiko, 2/3rds galios ). Tai aiškiai nėra išmintingas konfigūracijos, savo darbą dydis yra per didelis! Tai būtų bent dvigubai daugiau laiko gauti darbą tvarkomi pradinio darbuotojas AWOL (laikas pasiimti, kad ji nėra grąžinamas rezultatas plius perdirbimo metu). Idealiai jums reikia turėti bent vieną visą darbą, lengvai pašalinamas kiekvieno ilgos prastovos laikotarpio pabaigoje, tokiu būdu jūs nuolat darbo vietų, pažymint ir blogiausiu atveju darbo imsis dvi dienas procesas turėtų būti pirmasis dingsta.
  2. Darbo pasiūlymai 1 minutę paleisti: Tai reiškia, kad jūsų darbuotojai būtų apie 15 minučių paleisti kiekvieną užduotį . Nors iš pradžių gali atrodyti idealus, jūs gaunate papildomus darbus apdorojimo metu pietų, kavos pertraukos, susitikimai ir tt, šis scenarijus kelia įtampą kitose srityse savo sistemą ir pristato savo problemas. Pavyzdžiui, pirma savo setup / perdirbimo laiko santykis bus eiti teisę žemyn, todėl praranda sistemos efektyvumą. Jūsų tinklas turi būti nuolat transliacijos informacijos apie darbo vietas įvairių darbuotojų nelinksma darbuotojai, kurie yra Dong jų kasdienį darbą. Jūs taip pat ketina skirti daugiau apkrauti savo darbą apdorojimo serverį, nes ji turi daug ir daug mažų gabalėlių darbą reguliariai patiekalas iš. Galiausiai, šioje situacijoje, jei jūsų darbas serveris krinta jūs ketinate sukurti milžinišką Atgal log kadangi didesnis darbo vietų nebaigti darbo galėtų toliau perdirbti palaimingai nežinoti, kad darbo serveris patiria sunkumų.

Iš tikrųjų ten bus niekas idealiai konfigūracijos savo tinklelį sąranką, daug kas priklauso nuo turimų išteklių, darbą, darbo apsisukimo laikas reikalavimai, tinklo pajėgumą, ir tt rūšių. Tačiau kai kurios gairės būtų:

  • Dydis darbo vietas taip, kad kiekvienas darbuotojas gali gauti per bent 3-4 darbo vietų 15 valandų laikotarpį (ilgiausiai tikėtina, tuščiosios eigos laikotarpį)
  • Žaisk su užduoties dydžiui, taip, kad diegimo metu tampa gana nereikšminga, palyginti su perdirbimo metu (turint omenyje pirmiau minėtą aspektą).
  • , Jei darbas nėra baigtas dvigubo laiko (gal mažiau) tikisi, kad jis galėtų užbaigti jį prisiimti, kad jos dingo AWOL ir pradėti ją apdoroti su kitu darbuotoju. Tai reiškia, kad jums gali tekti palaukti iki tris kartus viršijanti įprastą darbą už tai ilgis, užbaigti (galbūt ilgiau, jei vėliau darbą nepavyksta). Galbūt Jūs norite sumažinti šį laiką, bet būkite atsargūs, ne sumažinti per daug, kaip jūs gali pradėti reguliariai kartoti apdorojimo užduotis .
  • Darbo vietų turėtų būti nepriklausomi išorės reikalavimai kiek įmanoma. Serverio darbą, pavyzdžiui, turėtų būti tik susisiekti kiekvieno darbo pradžios ir pabaigos.
  • Ar ne prisigerti savo tinklą, tai turės neigiamą poveikį jūsų dienos personalas rasti naudojant tinklo varginantis ir gali būti problemų patirties su problema, kad bus tik blogiau, kaip jūs savo tinklelį skalę jungtys laiką.
  • Užtikrinti darbo vietų gali paleisti savo darbuotojus. Jei darbo vietos tampa per daug atminties intensyvaus ar diske intensyvaus darbo vietų bus pradėti nutraukimą, ir vienintelis dalykas, kurį pastebėsite yra nėra tikroji priežastis, kodėl tvarkomi su darbo vietų skaičiaus sumažėjimas.

Pateikdamos rezultatus Skelbimas

Pateikti darbo rezultatus, svarbu patikrinti, kad rezultatai nebuvo pateikti kitas darbuotojas, ypač jei darbuotojas buvo ramybės tam tikrą laiką.

Kai rezultatai pateikiami užtikrinti, kad rezultatų skaičius atitinka įrašų skaičius per darbą.

Kaip nurodyta anksčiau, ir negali būti daugiau kaip pabrėžė, kurti gedimui atsparūs į darbo paieškos ir rezultatų pateikimo. Darbuotojai gali (ir greičiausiai bus) pereiti į sustabdyti režimas labiausiai nepatogu kartų ir tai turi būti aptarnavo. Taip pat dar kartą atsiribotų nuo savo rezultatų pateikimo padės patenkinti būsimus pokyčius savo darbo kontrolės sistema daug lengviau susidoroti su.

Santrauka

Section mes pažvelgė, ką turi daryti darbo kontrolė serverio ir kaip gauti labai pagrindinės sistemos. Mes aptarė, kaip gauti iš kontrolės sistemos darbą ir kaip geriau konfigūruoti darbą dauguma mūsų savo biuro tinklo sistemos,. Norėdami baigti, pastraipą ar dvi Pateikdamos rezultatus atgal į darbo kontrolė serverio.

  • Darbo kontrolė serverių valdo darbo vietas ir užtikrina, kad visi darbo vienetų
  • Atsiribotų savo darbo select / rezultatų pateikimo, mes galime pakeisti serverio valdymo technologija, be didelių problemų
  • Konfigūruoti savo darbo vietų, siekiant užtikrinti, kad jie vykdomi greitai ir veiksmingai nesukeliant per daug spaudimo dėl savo tinklo infrastruktūrą, ir vengiant kartojimo ir perdirbimo užduotis reguliariai.
  • Užtikrinti, kad jums sukurti atsparumu gedimui ir klaidų checking į savo kasdienybe, darbuotojai gali sustabdyti ir vėl ir labiausiai nepatogu kartų. Nepamirškite patikrinti, jei rezultatai jau buvo pateiktas kito darbuotojo.

Kitą kartą

3 dalis , mes sukurti mūsų virtualios apdorojimo mašinos ir įsteigti mūsų langų mašinų tapti prastovos dieną dirbančių darbuotojų .

Office Gridu naudojant virtualių aplinkų - 5 dalis

, penktadienis 4th Gruodis 2009 11:03 pm

Įvadas

Aš dirba įmonė, kur mes paleisti daug partijos milijonų įrašų duomenų tvarkymo darbo vietas kiekvieną dieną ir aš galvoju apie visus mašinos, sėdi aplink kiekvieną ir kiekvieną dieną keletą valandų nieko nedaryti . Ar nebūtų gerai, jei galėtume naudoti šias mašinas paremti mūsų sistemos duomenų apdorojimo galia? Į šį straipsnių rinkinį aš pažvelgti į galimą naudą įdarbinimo biuro tinklo , naudojant virtualised aplinką .

4 dalyje, mes pažvelgė naudojant įvairias priemones, siekiant užtikrinti, kad mes naudojate naujausią versiją kodą ir duomenų šaltinių, kad gautus rezultatus yra visada up-to-date su naujausią verslo informaciją ir logika .

Prieš dislokuotis

Prieš dislokuoti savo energetinę sistemą, jeigu yra vienas dalykas, jūs, ir vienas dalykas, vien tai etalonas jūsų dabartinės sistemos! Nesvarbu, ką pasakyti kolegoms apie kiek papildomo darbo jūsų sistema ketinate daryti, nebent turite numeriai, šiam savo garantijas nieko. Taigi,

  • kiek įrašų galite procesas šiuo metu? Per dieną? Per valandą?
  • Kiek laiko tai paprastai užtrunka apsisukti darbo?
  • Kiek daugiau pajėgumų turite?

Yra taip pat papildomų klausimų:

  • , Jei jūsų perdirbimo serverio (ar vieną iš savo perdirbimo serveriai) krinta Kaip tai paveiks jūsų galimybes, jums reikia suluošino?
  • Kokius privalumus tikitės / tikisi gauti iš tinklelio sistemos?
  • Ar savo biuro mašinos gali veikia darbo vietas?
  • Yra (arba gali būti konvertuojamos jums darbo vietų) dirbti šį važiavimo stilius?

Paskutinis svarbus taškas, bet didelių pokyčių, pavyzdžiui, imtis savo laiką. Atnaujinkite savo duomenų apdorojimo kodą dar kartą dirbti, naudojant naują metodiką, etalonas. Galbūt steigti savo perdirbimo serveryje paleisti virtualios mašinos, po visų savo perdirbimo serverio bus tik dar vienas darbuotojas (tik labai galingas palyginti). Leisti naują procesą išspręsti.

Dislokavimo

Mano pasiūlymas būtų pop į biuro vieną savaitgalį, atlikti visų įrangos ir jos sąranka . Ar tai tik prieš dvi savaites atostogų ir atostogų, tiek kitų neturtingų vadovas spręsti pasekmes ... o gal ir ne ...

Dislokavimas kaip ši sistema turi būti lėta. Nepaisant to, kad ji yra palyginti paprasta nustatyti šios sistemos turės įtakos jūsų visą biuro infrastruktūros (ir skaitmeninio). Pirma, iškočioti mašinų pora metu, stebėti tinklo srautą, kaip darbuotojo pavaduojančius atlikti day-to-day. Jums gali tekti pakeisti savo darbo vietų konfigūracija savo išvadas.

Kai sistema turi išspręsti keletą mašinos (tarkim, 10% visų biuro mašinos, ty 5) nuolat stebėti tinklo eismo ir mašiną performance. Kitas etalonas vėl, jūs dabar turėtų būti apdoroti 33% daugiau darbo vietų negu savo pirmąjį lyginamųjų standartų. Patikrinkite, taip yra, arba, kad jūs bent jau šiame Ballpark. Jei ne, ištirti, kas vyksta prieš pereinant į. Pakartokite šį ciklą, kol jūs laimingai visi biuro mašinos veikia be žudymo individualus mašinos darbui arba šlifavimo jūsų tinklo į aklavietę.

Visą laiką laikyti gairėmis, net po visų dislokavimo. Patikrinkite, kaip naują kodą atnaujinimus įtakos jūsų sistemos greitį, patikrinti visų darbuotojų atskaitomybės ir perdirbimo darbo vietas. Lėtai (labai lėtai) prieaugio savo darbo vietų konfigūraciją, siekiant gauti geriausius iš savo darbuotojų ir tinklo.

Stop!

Ką daryti, jei norite sustabdyti savo darbuotojus veikti tam tikru metu? Jie visi ten veikia, regeneruoti, ir bando savo geriausia tvarkyti duomenis, kaip alkanas vabzdžių. Atsakymas gali atrodyti akivaizdu, bet savo vertę pridedant tik tuo atveju, jo nepastebėti. Tiesiog redaguoti savo perdirbimo scenarijų su exit (0) arba mirti () arba kai kurie kiti pareiškimą nužudyti savo perdirbimo užduotis. Svarbi priežastis, kodėl mes visada stengiamės atnaujinti į naujausią tvarkymo scenarijų prieš bet kokį paleisti!

Demonstravimo sistema

Tam, kad parašyti šį trumpą straipsnių aš sukūriau labai mažą elektros energijos perdavimo ir demonstruoti technologijas ir metodikas. Aš perskaičiau daug straipsnių, vadovėliai, ir naudoti įvairius įrankius, įdiegimo ir stebėti, kas vyksta. Jokiu būdu aš išėję ir sočiųjų visą biurą su eismo ir aš taip pat turėjo galimybę reguliariai darbuotojai PC, pamatyti, kaip priimančiosios vykdymui turėjo įtakos.

Mano demonstravimo sistema iš tiesų labai kuklus. Aš naudojamas mano reguliariai Desktop kaip darbo kontrolė serverio. Aš buvo įdiegta , mySQL serveryje įdiegta kaip kapitonas replikacijos , PHP, A ir SVN sieja Apache (prieiga per darbuotojas VM) .

Tada aš sukūriau Centos darbuotojas mašina VirtualBox 6 metų Windows XP nešiojamas. Man sukonfigūruoti numatytas užduotis, kaip nurodyta po kopijuoti VM ant mašinos ir leiskite jam eiti.

Virtuali mašina buvo įsteigtas su PHP, Subversion, ir MySQL. Aš patikrinome filialas pavadintas "darbuotojas" iš mano darbo kontrolė serverių saugykloje ir kad jis gali būti atnaujintas naudojant "svn update". Kitas man sukonfigūruoti MySQL kaip vergas, ir patikrinti, kad duomenys buvo atkartojantis iš MySQL serverio darbo kontrolė darbuotojas VM. Juk tai aš setup bash scenarijų ir cron darbą.

Mano apdorojimo scenarijų iš esmės nuėjo palei šį eilutės (labai paprasta stuff):

  • Skaityti pavadinimo lauką
  • Skaičiuojami panašių pavadinimų lentelėje iš duomenų šaltinio, įvykusioje VM
  • Skaičiuojami vardus daugiau, bet padalijimas tarpais pavadinimas (ty, vardas, viduryje, pavardė)
  • Pakartojo šį procesą 1000 kartų

Kiekvienas darbas užtruko apie 20 minučių paleisti. Vienu momentu aš atidarė keletą kopijų darbuotojas VM Windows nešiojamas ir stebėjo darbo vietų būtų tikrinama kiekvieno darbuotojo IP adresai. Šiuo metu aš taip pat patvirtino, kad replikaciją automatiškai iš naujo paleisti.

Paliekant nešiojamas į laukimo atsirado darbuotojas pradeda proceso darbo vietų iš darbo kontrolė serverio. Kai atnaujinti laptopo naudojimas buvo apie 30-60 sekundžių vėlavimas, tai nemažai laiko ir darbuotojų reikėtų žinoti, kad jų mašina gali sustoti trumpam grįždami į mašiną. Naujesni mašinos gali turėti šį ilgą pauzę. Perdirbimo metu atlieka šios mašinos prastovos laikotarpių suma naudos būtų daugiau, kad nusveria darbuotojai, turintys atvykti mašinos rytą laukti trumpą laiką (tarkim 1 minutę) (aš dažnai laukti ilgiau, kad ši "Windows Defender" atnaujinti vyksta), jei jie apie tai (naudinga patraukti ryto kava!).

Apskritai jaučiu, įsitikinęs, kad aš parodė, kad technologijų, kurios galėtų būti naudojamos sukurti tokią sistemą. Aš parodė, kad tokia sistema veikia (labai) mažos apimties ir su šiek tiek daugiau eksperimentuoti, gali būti padidinamos panaudoti biuro mašinos išteklius. ,, Jei aš negaunu tai padaryti, būtų labai įdomu žinoti / pamatyti, kai kažkas.

Išvados / VERTINIMAS

Kitas akivaizdus žingsnis būtų faktiškai gauti realaus pasaulio, pavyzdžiu ir pradėti diegti tokių kaip ši sistema biuro aplinkoje ir pamatyti, kas atsitiks. Klausia verslo įsipareigoti be takas Blazing įmonė turi įrodyti, technologiją ir efektyvumą, gali būti šiek tiek sunku. Tinklelis / Paskirstytasis skaičiavimas yra labai populiarus yra apskritimai ir yra keletas didelių programų (BIONC SETI @ Home, Folding @ Home "ir tt). Tačiau aš ne mažesnio masto ir paprasta sistema, kaip mano paieškų galėtų būti išvyniotas per biuro aplinkoje.

Aš sukūriau, iš esmės nemokamai sistemą, naudojant beveik bet kokia įstaiga, daugiausia atviro kodo programinę įrangą ir įrankius. Technologijos iš esmės buvo įrodyta ir rodo atlikti ir dirbti taip, kaip tikėtasi. Tikimės, kad turiu parodyti, kad ne per daug darbo ir labai paprastas setup, galite įdiegti biuro Gridu sistema, kuri yra galinga, pigūs, A ir pritaikyti tuo pačiu metu.

Kartą per sistema yra ir veikia ten yra beveik be galo pritaikymas ir tobulinti, galite padaryti suma. Pavyzdžiui statistika / normos gali būti lengvai įtraukti, tokia sistema verta kiekvieną dieną. Naujos mašinos gali būti dedama greitai ir lengvai, kaip ir kada jie atvyksta su turimos techninės įrangos Derindami savo perdirbimo galia atnaujinimai.

Tikiuosi, jums patiko skaityti šios serijos straipsnių ir atsižvelgiant į maisto minties veikia biuro tinklų sistemos. Atsakymas čia nebūtinai visose situacijose, bet turėtų būti pritaikomos leisti jums gauti savo duomenų tvarkymas atliekamas naudojant savo sprendimą.

Prašome atsiųsti man komentarus, pataisymai ar patobulinimai, ir aš mano geriausia laikyti atnaujintas, kad atitiktų šį straipsnį.

Zend Framework: Pagrindai - apžvalga

, šeštadienis 28 lapkričio 2009 10:42 pm

Neseniai mano darbdavys moka mums kūrėjų grupė Zend Framework: pagrindai Žinoma, čia aš apibendrinti savo mintis ir nuomones kitiems. Tiems, kurie nori sutaupyti laiko, čia mano santrauka:

Kūrėjai, kurie neturėjo laiko pažvelgti į šio kurso (Zend Framework: pagrindai) siūlo gerą bendrą vaizdą apie sistemą, įvesti jus į pagrindines sritis ir suteikti pakankamai informacijos, kad toliau Zend Framework. Tiems, kurie praleido laiko žiūri sistemą ir po vieną ar dvi samouczków šio kurso neturi pasiūlyti daug daugiau nei .

Fonas

PHP programuotojo apie 5-6 metus, ir pradėjo dirbti su Zend Framework komponento pagrindu per pastaruosius 6 mėnesius. Aš sukūriau ir / arba buvo pora mažų Zend Framework kūrėjas MVC sites. aš būsiu sąžiningas, aš neturėjo didžiulio poveikio kitų sistemų, kodavimo požiūriu, bet praleido keletą valandas tiria projekto svetainę ir vertinimo them. sistema ir supančios bendruomenės Zend Framework, tai yra gana įdomi ir, atrodo, būti milžiniškas galimybes, kai jos vyksta.

Apie kursą

Žinoma, yra pristatoma per 9 dvi valandos WebEx sesijose (per vidurį) 10 minučių pertrauką. Laiko praleido išgyvena Zend skaidrių diskusiją bet kuriuo metu. Galite naudoti mikrofoną kalbėti instruktorius, tačiau turi būti sąžiningas, aš nemačiau, kad kas nors naudoti nieko daugiau nei pokalbių lange. Be to VMware Ubuntu mašina su sąlyga, kad pavyzdžiui kodą ir projektams bandomoji versija Zend Studio. Žinoma lyderis derybų dalyviams, tiek per integruota VoIP tirpalas, arba galite surinkti naudojant vieną iš daugelio visame pasaulyje surinkti skaičiai.

Kursų metu medžiagos sudaro trumpa apžvalga pagrindų, MVC modelį, prieš antraštę į svečių knygoje taikymo pavyzdį. Diskusija parodė bootstrapping, Zend_Application, DB lenteles, prieigą prie duomenų bazės, formos, filtravimas, ACL, patvirtinimas ir tt, ir tt Iš esmės apimanti visas temas norite gauti pagrindinę svetainę up veikti visą laiką, suteikia jums įrankius eiti ir gauti daugiau pažangių sistemą (nors tai suma "svetainės" daug laiko).

Laikas kai kuriuos pavyzdžius, kodą ir kurti "svečių knygoje" ir paprasta "wiki". Asmeniškai aš pajuto, kad teikiant kodą arba kiekvieno app ir tada klausia mums plėtoti esmės yra kopija, kartu su nelabai gera mokymosi patirtis. Būčiau norėjusi sukurti taikymo panašių, bet ne identiški. Pavyzdžiui taikymo vadovas nurodyti naudos. Arba kurti programas nuo nulio parodomasis, galbūt buvo daugiau klausimų apie tai, kodėl ir kaip, ir tokiu būdu geriau suprasti sistemą, juk galite ieškoti po kurso specifiką.

Paskutinė paskaita sudarė darbo wiki pagalbos / patarimų instruktorius. Po kurso atsiliepimus buvo imtasi, buvo pabrėžta kelis kartus per Žinoma, kad Zend atsiliepimus labai rimtai, tai, matyt, mūsų kurso versija buvo gana naujas. Kai kurie kitų kūrėjų bendrovė bus žinoma, greičiau, todėl bus įdomu pamatyti, jei tai nutiko.

Žinoma stilius buvo neoficialiai leido grįžtamojo ryšio ir bendradarbiavimo tarp dalyvių ir instruktorius. Kurso vadovas buvo draugiškas, prieinamas (elektroninio pašto adresai buvo dalijamasi klausimai), ir nors jo pristatymą iš skaidrių buvo šiek tiek įtartina atrodė visiškai kompetentinga sistemą. Jis buvo aiškiai kažkas, kas naudojama sistema reguliariai, o ne kažkas, kas mokoma dėstyti kursą, man patiko "realiame pasaulyje" patirtį šiuo atžvilgiu.

Bendras jausmas

Tam tikrais būdais radau Žinoma, laiko švaistymas, kitiems tai buvo labai patogu. Tikiuosi gausite mano priežastis visoje aiškiai, o gal kai kurie maisto minties ar naudingų atsiliepimų (žinant, man tai mažai tikėtina!).

Už save Šio kurso tikslas buvo per žemas. Atsižvelgdama išgyveno Quickstart vadovas, skaityti Rob Allen veiksmų, Zend Framework, ir dirbo su sistema, šiek tiek aš tikrai ne gauti ką nors per daug. Norėčiau patiko kurso pasiimti iš Quickstart pabaigos ir sukurti papildomų įgūdžių.

Tai sakė, Modulio pavadinimas aiškiai nurodoma "Zend Framework: pagrindai" ir šiuo aspektu kursas pasiekia kas tai padaryti. Kiti nariai plėtros komanda, kurios nėra praleido laiką ieško į sistemą kiekvieną sesiją baigė su entuziazmu ir paprašė klausimus, kurie buvo tikrai malonu matyti.

Visi nebuvo prarastas, jis buvo gerai praleisti laiką, patvirtinantis, pagrindinė informacija sistemą ir gauti užduoti porą klausimų srityse, kur buvau ne 100%. Tai buvo laikas, kad aš kiekvieną dieną turime susėsti ir galvoti apie kodavimo sistemą ir būsimus projektus, naudojant ką aš nebūtų galėjo padaryti kitaip (galite įsivaizduoti, jūsų įmonė sutinka, kad:)). Paskutinis, bet ne mažiau kaip jūs taip pat gauti gražus iš Zend sertifikatas pasakyti, kad jūs dalyvavo kursą (nors ir elektroniniu paštu).

Zend Framework, sertifikavimas

Tai buvo vienas klausimas nuolat ateina į galvą kurso metu, tai pasirengti sertifikavimo manęs? Greitai, lengvai, yra aidėjimas Nr . Žinoma instruktorius buvo gana aišku, kad su papildomų patarimų, kad sertifikavimo jums tikrai turėtų būti naudojant kasdien ir jaučiasi labai patogiai ir užtikrintai, jo naudojimas ir metodikos.

Santrauka

Atsižvelgiant į viską, ką aš parašiau aukščiau, aš apibendrinti viską, kas dvi lengva kulka taškų:

  • Nauja Zend Framework: Šis kursas daro būtent tai, ko jūs tikitės, ji suteikia jums gražus įvadas į sistemą ir gerą įžeminimo pagrindus, iš kurių galite statyti. Žinoma atrodo generuoti susidomėjimą ir entuziazmą tarp kūrėjų.
  • Naudota Zend Framework: Nors jis buvo gražus kranto, kai iš pačių pagrindų, jaučiau, laiko, pastangų ir lėšų, žinoma, negalėjo geriau išleisti kitur. It will be nice to see Zend create a new higher level course to take developers to the next level – at least to the standard of certification and beyond. For that I would sign up immediately.

HTML lentelė generavimas klasės (HtmlTable.php)

, antradienis 5th Gegužė 2009 9:11 pm

Man reikia generuoti HTML lentelę iš PHP duomenų projektą, kad aš dirbau. Deja, po šiek tiek nuo "Google" paiešką aš negalėjo tikrai rasti viską, kas buvo tinkama, todėl aš nusprendė sukurti savo.

Suprantu, kad tai gali būti ne geriausias stalo generuoti klasė amžius ir tikriausiai keletą klaidų vis dar, bet norėčiau, dalintis ir jei kas nors nori geriau versiją aš pažvelgti į ją:) Aš iš pradžių norėjo sukurti stalo pastatytas atskirus objektus, pavyzdžiui, ląstelių objektas, eilutė objektą (pastatytas ląstelių objektų), bet supratau, pridėtinės tai reikštų būti didžiulis! Taigi, aš grįžo į masyvo setup.

Klasė apskaičiuoti maksimalų skaičių stulpelių antraštės, poraštės, ar įstaiga ir parašyti, kad stulpelių skaičius. Headers, Footers, and the Caption are optional. Attributes are made up of an array where the key is the attribute name and the value is the attribute value. Atributai yra taikomos iki stalo tegus (ant stalo kūrimas - klasės iniciacijos), lentelės eilutes (masyvas [eilutė] [atributas]), ir lentelės langelių (Array [eilutė] [skiltyje] [atributas]) taikoma antraščių, poraščių ir lentelėje įstaiga.

Pavyzdys

Aš visada rasti geriausias būdas pažvelgti į kažką, pavyzdžiui, čia mes einame:

 $ Table = nauji HtmlTable (array ("klasės '=>' sortable",
                'style' => 'width: 550px;'));
$header[0][0]['content'] = 'ID';
$header[0][1]['content'] = 'Title';
 $ Antraštės [0] [2] ['turinį'] = 'Data';
$header[0][3]['content'] = 'Site';

$table->addHeader($header);
 $ I = 0;
foreach ($newsList AS $newsItem) {
 $ ItemLink = "{$ newsItem ['pavadinimas']}";
 $ TableBody [$ i] = array (0 => array ("turinio" => $ newsItem ['id'],
 "Atributai" => array ("stilius '=>' Šrifto svoris: paryškinti ;')),
1 => array('content' => $itemLink),
2 => array('content' => $newsItem['date_posted']),
 3 => array ("turinio '=> $ newsItem [' svetainę ']));
$i++;
 }
$table->addBody($tableBody);
echo $table->drawTable();
ID Pavadinimas Data Svetainės
9 News 1 2009-04-04 10:40:00 site name
10 News 2 2009-04-04 12:44:11 site name

Ir HTML atrodo taip:

 < table  class =  "sortable" style =  "width: 550px;" >
< thead >
	 <Tr    >
		 <-Oji   >ID</ th > 
 < th    > Pavadinimas </ th>
		 <-Oji    > Data </ th>
		 <-Oji    > Svetainės </ th>
 </ Tr>
</ thead >
< tbody >
	 <Tr    >
		< td  style =  "font-weight: bold;" >9</ td > 
		 <Td   >News 1</ td > < td    > 2009/4/4 10:40:00 </ td> <td    > < tr > Svetainės pavadinimas </ td> </ tr> <TR   > < td style = "font-weight: bold;" >10</ td > < td    > Naujienos 2 </ td> 
  <Td    > 2009/4/4 00:40:00 </ td>
		 <Td    > Svetainės pavadinimas </ td>
 </ Tr> 
  </ Tbody>
</ table > 

Kodas

HtmlTable.php
Jei turite kokių nors pastabų, prašome jas toliau, tai būtų malonu išgirsti. Jei galų gale jį naudoti taip pat leiskite man žinoti, ir aš jį pratęsti ateityje:)

Prisijungti prie BP naudojant Zend Framework

, 2009 m. balandžio 14d, antradienis 9:06 pm

Aš sugebėjo gauti svetainėje ir veikia su Zend Framework , viskas prisijungti gražiai Firebug / FirePHP Kitas žingsnis buvo prisijungti prie DB. Aš taip pat noriu prisijungti tam tikrą papildomą informaciją, naudojant sistemą, tokių kaip vartotojo tarpininkas, datą ir laiką, GET ir POST kintamieji. Taigi, norint pratęsti vadovą, mažai čia ką aš padariau:

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

$ ColumnMapping = array ("prioritetas" => "prioritetu",
'message' => 'message',
'Datetime' => 'timestamp ",
"User_agent '=>' user_agent",
'get_vars' => 'get_vars',
"Post_vars '=>' post_vars"
"Vieta" => "svetainėje"
);

$writerDb = new Zend_Log_Writer_Db($db, 'error_logging', $columnMapping);
$ Logger = nauji Zend_Log ($ writerDb);

$logger->setEventItem('datetime',date('Ymd H:i:s'));
$ Logger-> setEventItem ("user_agent, $ _SERVER ['HTTP_USER_AGENT']);
$ Logger-> setEventItem (get_vars ", print_r ($ _GET, tiesa));
$ Logger-> setEventItem (post_vars ", print_r ($ _POST, tiesa));
$ Logger-> setEventItem ("Svetainė", svetainės);

$ Logger-> info ("Informacinė žinutė");

Where the array keys in $columnMapping are my column names. 'Priority' and 'message' are understood by Zend_Log_Writers but the additional fields were added to give me some additional information.

Obviously this assumes that you have logging working using one of the other writers first :)

UK Names Directory and Facebook Application

By , Friday 10th April 2009 9:33 am

One of the fun things I've been involved in whilst working for Tracesmart is the names directory . Basically we took our huge information database and pulled out a big pile of stats about various names.

The process is all one big SEO effort in order to draw more traffic to the site, but it also provides some interesting information and name statistics.

Here's an example for my name Lloyd Watkin , or I suppose more correctly Steven Watkin . Take a minute to look up your name on the Tracesmart site, might be interesting ;)

We've also got names statistics data on the names directory page which tells you what names have been searched and how recently. Its quite interesting to see famous people's names fly up the stats when they appear in the news. A recent example is that of Liam Neeson who's wife died from a skiing accident recently, although obviously people aren't quite right on the spelling (hence the huge numbers of hits on this name) — Liam Nilson .

Facebook

Once the names directory was created we set about creating a facebook application which we duely named ' My Name '. The facebook application is an extension of the names directory and provides some additional statistics. In order to add the names directory to your facebook account please visit:

http://apps.facebook.com/my-name/

Disabled Form Fields are not submitted…

By , Thursday 4th September 2008 11:01 am

As a quick note, as part of the ongoing estate agency software project I've gone back to editing date entry within the system. Now instead of allowing users to enter any old bit of text I've switched over to a Javascript date/time picker (for the short term) that allows user to 'pick' and date and time from a pop up window.

Now, for my old system the picker would pop up when the user clicked on the input field . This however would allow the user to ignore the text field and still go and type any old thing into the field. This wasn't ideal. So my solution was to ' disable ' the form field and put a span next to it with an onclick event calling the date/time picker. This meant that the user was almost forced into using the nice date/time picker so dates would go in with the correct format (although that still has to be validated!).

So I started passing my nicely formatted date-time(s) through the form and picking trying to pick them up with PHP 's $_GET or $_POST variables. Unfortunately'disabled' fields are not passed through form submissions This was very annoying. The solution was to enable the input element using javascript when the form was submitted using the onsubmit event.

This meant that the form data was passed through as required and was nicely formatted ready for validation…Â

Search Array Keys and Return Matches

By , Wednesday 13th August 2008 4:26 pm

I've had the need to search through an array and return the elements that have keys that match a search term. So I thought I'd share.

'W hy would I need this?' would probably be the first question you'd ask, well if I wanted to search through an array for all the elements that related to the dimensions of an item then I could pull out the appropriate keys by using this little function:

 <? function searchArrayKey($array,$search) {  $search = strtolower($search);  if (is_array($array))  {   foreach ($array as $key => $data)   {    if (strpos(strtolower($key),$search) === 0) { $returnArray[$key] = $data; }   }   return $returnArray;  } else  { // User hasn't subimitted an array...   return false;  } } ?> 

So for example if I wanted to search an array of item data for the dimension data then I could do the following (and print to screen presumably):

 $dimensions = searchArrayKeys($itemArray,'dimension'); 

Which would return something like:

 print_r($dimensions); Array ( [dimension_height] => 20 [dimension_width] => 30 [dimension_depth] => 40 ) 

Custom php.ini with Plesk

By , Wednesday 13th August 2008 3:53 pm

We have a dedicated server with ukFast  on which we run a number of domains that exist on virtual servers running under Plesk . Anyway, on most of my domains I want to hide away warnings and for security keep errors to the log files, however on some of my domains (such as those I'm developing on) I want to show every little nasty warning and error that appears.

If I edit my PHP .INI”>php.ini this affects each and every domain on the server, not a good idea especially when several of the sites are fully live versions  So in order to get around this you need to put a file called vhosts.conf in your conf directory, for example, /var/www/vhosts/<my_domain>/conf/vhost.conf .

Once you've added your additional code, again for example I included,

 php_value error_reporting E_ALL php_value display_errors On 

followed by running the following command (this reconfigures all of your domains its just quicker lazier than typing in the domain name ,

 # /usr/local/psa/admin/bin/websrvmng -a 

If you're feeling a bit nimble then you can always type out the full version which is,

 # /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=<my_domain> 

After this command if you look to httpd.include file, will see that your httpd.include will have an include line for your vhost.conf, something like this:

 Include /srv/www/vhosts/domain.com/conf/vhost.conf 












Panorama tema pagal Themocracy

6 lankytojai internete dabar
1 svečiai, 5 reklaminių žinučių, 0 nariai
Maksimalus lankytojų šiandien: 19 at 06:09 pm UTC
Šį mėnesį: 19 19-08-2011 06:09 pm UTC
Šiais metais: 130 28-03-2011 10:40 am UTC
Visą laiką: 130 28-03-2011 10:40 am UTC