Kategorija: Raksti

Biroja Grid Computing izmantojot Virtual vidē - 1.daļa

Ar , piektdiena Dec 4, 2009 11:23

Ievads

Es strādāju uzņēmumā, kurā mēs palaist daudzas partijas darba vietu apstrādes miljonu ierakstu datu katru dienu, un es esmu bijis domāt nesen par visām mašīnām, kas sēž apkārt katru dienu, neko nedarot, vairākas stundas. Vai tas nebūtu labi, ja mēs varētu izmantot šos mehānismus, lai atbalstītu pārstrādes jaudu no mūsu sistēmu? Ar šo komplektu raksti Es esmu, lai aplūkotu potenciālo ieguvumu nodarbina biroja tīklu , izmantojot virtualised vidēs.

PHP attīstītājs es esmu gatavojas izmantot rīkus, ka es izmantot katru dienu, proti, Linux, MySQL , PHP, VirtualBox un apvērsumu (SVN). Tomēr es ceru, ka šī rokasgrāmata būs pielāgoties citām valodām un tehnoloģijām tikpat labi.

Risinājums Es jāsniedz, tiks ļoti brīvi balstīta uz pārstrādes veidu mēs būtu nepieciešams, lai sasniegtu tomēr tas var nebūt taisnība caur visu rakstu, kā es jums mainīt lietas pēc vienkāršības, vai radīt vairāk interesantu izmantošanas iespējām.

Šie virtualised vides darbosies uz Windows mašīnas, jo tas ir tas, ko par biroju vairākums palaist. Pārstrāde, biroju iekārtas do nedrīkst būt pretrunā ar darbiniekiem, izmantojot šo mašīnu, ja nav nepieciešama īpaša apkalpošana pie mašīnas, un ir viegli izvietojamas uz jaunām iekārtām, kā tās kļūst pieejamas. Arī jaunu virtuālo mašīnu nedrīkst pieprasīt papildu konfigurācija, jo tas ievērojami samazina mērogojamību un vieglumu, ar kādu tīkla sistēmu var paplašināt.

Kāpēc Ieviest Office Computing Grid?

Pirmkārt, jums var domāt, kāpēc ne tikai izmantot mākonis skaitļošanas resursu, piemēram, Amazon EC2 platformu ? Nu tad tā iemesli var būt vairāki, piemēram:

  • Jums nav uztic konkrētus datus mākonis skaitļošanas vidē
  • Jūs nevarat ievietot dažus datus mākonis skaitļošanas vidi juridisku iemeslu dēļ (piemēram, datu atstāj valsti), iespējams juridisku iemeslu dēļ, piemēram, NHS ierakstus.
  • Jūs vēlaties, lai jūsu procesora bloku tuvu un ir pilnīga kontrole pār aparatūras pārāk
  • Jums nav projekta līdzekļiem, lai palaistu mākonis gadījumos
  • Jūsu birojs nav savienojuma ar internetu, un tāpēc tās nav iespējams izmantot mākonis resurss
  • Tev nepatīk lietus, mākoņi liecina lietus, tāpēc jūs turēt tālu

Es esmu pārliecināts, ka sarakstu varētu turpināt, bet es domāju, ka ir pietiekami, tagad.

Priekšrocības Office Computing Grid

Nu, ļauj veikt dažas matemātikas (un patiess fizikas stilā ļauj veikt dažas slaucīšana pieņēmumi). Iedomājieties, jums ir liels gaļīgs apstrādes servera, kurā darbojas 100 darba vietas dienā. Savā birojā jums ir 50 mašīnas, kas ir idle 16 stundas dienā, katru no šīm mašīnām ir 10%, kā spēcīgs kā savu gaļīgs apstrādes atdalīt. (Visi rezultāti šeit ir noapaļotas līdz nenovērtēt veiktspējas pieaugumu).

Tātad, 1 mašīna * 10% jaudu * 2 / 3 laika = 0,067, ti, 1 desktop apstrādes dīkstāves laikā varētu apstrādāt 6 pilnas darba vietas dienā.

Ja tagad mērogu šo augšu, tā aizņem 15 dīkstāvē galddatoriem procesā, kā daudzas darbavietas katru dienu kā savu galveno apstrāde serveris.

Tātad mūsu izlikties birojā 50 mašīnu mēs varētu paaugstināt mūsu pārstrādes jaudu no 1 servera līdz 4 pilnas apstrādes serveriem, vai arī mēs varētu būt apstrāde 400 darbu dienā, nevis 100.

Paziņojumā, ne investīcijas jaunās aparatūras jūsu uzņēmums ir tikko palielinājis partijas apstrādes jaudu 4 reizes! Potenciāli jūs gatavojas palielināt savu jaudas izmantošana, bet no vairuma biroju vidēm es esmu bijis mašīnām parasti atstāj uz nakti anyway, lai jūs varētu redzēt to kā zaļo iniciatīvas.

Citas priekšrocības arī nozīmē, ka investīcijas jaunu (vai papildināts) apstrādes serveriem var aizkavēties, ja Jūsu biroja iekārtas ir pietiekamas un ka, kā jums uzlabot jaudu jūsu biroja tehnikas ofisā energosistēma kļūtu spēcīgāk automātiski.

Tehnoloģijas

Kas Jums nepieciešams? (Vai precīzāk Ko man vajadzībām):

  • Idle biroja iekārtas (manā gadījumā rezerves veco logu XP klēpjdators)
  • VirtualBox (vai citu virtualizācija klienta programmatūra)
  • Virtuālo ar PHP, MySQL running mašīna darbojas samazināt OS, es esmu aicinot šiem maniem Limp serveriem:)
  • Darbs, lai palaistu
  • Darba serveris (var būt cits virtuālo mašīnu kaut kur)

Tipiski Darbs

Darba vietu, ka šī sistēma ir izstrādāta, lai palaistu veidiem ir šāds:

  • Sistēmas saņem to datu sarakstu, uz kuriem mums ir nepieciešams, lai atbilstu un atgriezties rezultātus
  • Matching ietver pārbaudi / meklējot vairākas (samērā statisks) datu avotus
  • Rezultāti no datu avotiem var pieprasīt papildu apstiprinājums, apvienošana, pārbaudei, papildu datu avotiem, atbildot uz rezultātiem
  • Dati tiek atgriezta ar atbilstošiem ierakstiem, pilnībā validēti un apstrādāti
  • Katrs darbs ieraksts ir neatkarīga no pārējiem

Vārdu sakot, mēs meklējam tajā darbojas darbavietas, kas prasa maisījumu datubāzi lookups un daži numurs crunching, diezgan tipiski scenārijs uzņēmējdarbības vidi.

Grid risinājumi ir ne tikai izdevīgi apstrādes darbu šāda veida. Būtībā jebkurš process, ko var sadalīt neatkarīgas vienības var darboties paralēli. Skatiet šo wikipedia Piemērus un vairāk informācijas: Grid Computing , bet slavenā piemēri pāris ir Seti @ Home un BIONC . Ir sistēmas, lai darbojas skaitļošanas tīkli un šie ir labi vērts meklēt.

Ko mēs panākt?

Līdz šo pantu es ceru parādīt, ka izvietot biroju tīklā nav ļoti dārgs vai laikietilpīga. Es esmu gatavojas apspriest:

  • Izveide darba kontroles sistēmas, darba konfigurācija
  • Radīt atbilstošu apstrādi virtuālā mašīna
  • Kā setup sistēmas Windows mašīna
  • Nodrošināsim jūs izmantojat jaunāko kodu un datu
  • Izvietošanas un salīdzinošās novērtēšanas
  • Raugoties uz priekšu

Es būšu ēka (ok es būvēts, tad uzrakstīja šo) piemēru piemērošanu, lai pārbaudītu koncepcijas vietējo mašīna, lietojot Windows XP un manu "GridMachine" virtuālo mašīnu. Mans darbs kontroles serveri būs mans galvenais mašīnu, kas iet Fedora 11 .

Tas nekādā ziņā nav domāti, lai pierādītu, pilnīgi darba stabila sistēma, tās nozīmēja vairāk demonstrācijas un apspriešanas liecina, ka šīs lietas var panākt samērā īsā laika posmā un ar nelielām izmaksām. Lūdzu, jūtieties brīvi, lai nosūtītu man komentārus, korekcijas vai uzlabojumus, un es darīšu manas vislabāk, lai saglabātu šo rakstu atjaunināts, lai atbilstu.

Nākošreiz

In part 2 es sākt, aplūkojot darba kontroles sistēmas, un izvērtēs, kā darbavietas, jākonfigurē, lai sasniegtu lielāko pārstrādes apjoma, vienlaikus nodrošinot, ka katrs darbs ir apstrādāti bez neizdoties.

Biroja Grid Computing, izmantojot virtuālo vidi - 2.daļa

Ar , piektdiena Dec 4, 2009 11:23

Ievads

Es strādāju uzņēmumā, kurā mēs palaist daudzas partijas darba vietu apstrādes miljonu ierakstu datu katru dienu, un es esmu bijis domāt nesen par visām mašīnām, kas sēž apkārt katru dienu, neko nedarot, vairākas stundas. Vai tas nebūtu labi, ja mēs varētu izmantot šos mehānismus, lai atbalstītu pārstrādes jaudu no mūsu sistēmu? Ar šo komplektu raksti Es esmu, lai aplūkotu potenciālo ieguvumu nodarbina biroja tīklu , izmantojot virtualised vidēs.

In 1 daļā I sniedza pārskatu sistēmas un tehnoloģijas, man būs, izmantojot, kā arī apspriesti daži no iespējamiem iemesliem, kāpēc vēlaties izveidot biroju tīklu.

Job Control

Ja jūs būs ekspluatācijas darbu, tad jūs gatavojas ir nepieciešams zināms veids, lai pārvaldītu tos. Jūsu darbs kontroles sistēma (jūsu darbs serverī) ir jābūt ļoti labi pārdomāts līdz pat mēģināt palaist biroja tīklam. Tātad, pirmkārt, kādi ir darba kontroles sistēmas uzdevumi:

  • Izkārt darbavietas kad to pieprasa darba ņēmēju
  • Pastāstiet darbiniekiem, kāda veida darbavietas palaist
  • Track darbu
  • Nodrošināt, ka darba vietas ir rādītas tikai vienu reizi
  • Nodrošina darbu datu darbiniekiem, vai vismaz pateikt, kur to iegūt

Sistēmai arī jābūt paplašināms, risinājums, kas strādā tagad vienā gadījumā var tikt pagarināts palaist vairākas darba veidiem, kā biznesa redz vērts režģa risinājumu. Piemēram, darba vietās, var iegūt prioritātes, vairāk nekā viena darba veids var pastāvēt (ti vairākas kods bāzēm), iespējams, jums var pat palaist vairākus atšķirīgus darba ņēmēju mašīnas, kas ir optimizētas katram darba veidam (kas gan nebija virzīties prom no "sugas strādnieks "ideja). Vienmēr mēģiniet domāt par nākotni, izstrādājot sistēmu, īstermiņa redzējums var izraisīt ilgtermiņa vilšanās un palielināt izstrādes laiku.

Darba Server

Mēs ejam uz nepieciešamību kaut kur, lai kontrolētu savu darbu no, tas ir tikai sistēma jūsu režģis, kas ir noteikta resursu vietrādis, ir tā IP adresi, resursdatora nosaukumu, URL (izmantojot iekšējo DNS), uc Tas ir tāpēc, ka darbiniekiem jāzina, kur meklēt darbu, darbiniekiem ir nepieciešams atrast darbu vadības sistēmu (ne darba kontroles sistēmu atrast darbiniekus).

Darbs serveris pats nav īsti ir sarežģīts uzdevums (jo pamata sistēmas tik un tā), tai ir nepieciešama, lai saglabātu vakanču sarakstu, neizvietot darbu, saņemt rezultātus, un pēc tam saglabājiet tos turpmākai atgūt. Cik šīs detaļas (piemēram, "rokas no darbavietām") ir definēti var būt ļoti vienkāršas. Vēlāk mēs varam paplašināt sistēmu, iekļaujot administrācijas saskarni pievienot, rediģēt, dzēst, pārtraukt darba vietas, bet tas pārsniedz šo procedūru.

Nav nekādu iemeslu tam, ka jūsu darbs Serveris nevarēja būt virtuālā mašīna darbojas jūsu galveno apstrādes servera, ja tas nav aizplūšanu pārāk daudz resursu no tā. Darbs serveris Tomēr nav nepieciešams augstas pieejamības, ja tā iet uz leju piektdienas vakarā, jūs gatavojas zaudēt visu nedēļas nogali apstrādes, iespējams, maksā jums pāris nedēļas vērts apstrādes laiku (salīdzinot ar jūsu galveno apstrādes servera vien) . Jūs varētu vēlēties apsvērt savu darbu serverī slodzes līdzsvarotu vidi augstu pieejamību.

Basic Setup

Pamata setup, lai mūsu darbs serveris veidos, ko es esmu aicinot vienu no saviem Limp serveriem (tas ir Li nux, m ySql, P HP). Kods darbojas uz Teu darbiniekiem būs faktiski strādā, kādas darbavietas to var palaist, mijiedarbojoties ar ar darba kontroles sistēmu datu bāzēm. Vēlāk mēs varētu izveidot tīmekļa pakalpojumu, un faktiski rokas no darba vietas nevis darba ņēmējiem darīt smago darbu pašiem, bet tagad mēs turpināsim izmantot KISS principu (Keep it vienkāršs, stulbs!).

Tātad, ļauj izveidot trīs mySQL tabulas, lai risinātu ar darbu. Tie būs `darbu`, `jobRecords` un `jobResults`.

darbu tabulu Šeit es esmu, izmantojot SQL Buddy ļoti maz alternatīvu phpMyAdmin tikai tāpēc, ka tā vieglāk instalēt CentOS (citiem sk.: 10 Great alternatīvas phpMyAdmin )

Šī tabula sastāv no 5 vienkāršās,

  • id: identificētu darbu
  • nosaukums: Varētu būt klienta atsauksme, vai kādu citu identifikatoru skaits
  • Statuss: Jums ir jāzina, kur darbs ir, piemēram,
    • 0: Nav sākts
    • 1: pacēla
    • 2: Pabeigta
  • started_by: Kurš sāka darīt darbu? Tas nav pilnīgi nepieciešama, bet ir patīkami būt. Es gribētu ieteikt uzskaites darbinieki no to IP adresi no jūsu tīkla
  • started_at: Kad darbinieks sāk darbu? Kontrolējot darba vietas, kas nav pabeigts X laika mēs zinām, mums ir nepieciešams uzņemt darba atkal un sākt pārstrādei citā darbinieks. Darba ņēmēji varētu pārtraukt apstrādes / go bezsaistē jebkura vairāku iemeslu dēļ, enerģijas padevei, crash, tīkla zudums, utt

To ir viegli, kā šo tabulu varētu paplašināt ar dažiem papildu laukus, lai ļautu statistikas uzskaiti, finiša laiks kolonnā, lai redzētu, cik ilgi darbs paņēma counter lai redzētu, cik darba ņēmēju paņēma darbu (protams, tas ir tendence 1) darba prioritāte, sarakstu var turpināt vēl un vēl. Vairāk sarežģītu darbu scenāriji būtu iespējams noteikt, cik daudz atmiņas darba ņēmējam būtu nepieciešama piekļuve (un tādēļ tikai jāizmanto piemēroti darba ņēmēji), vai pat kāda veida darba ņēmējam būtu nepieciešama.

Lets pievieno dažus, piemēram darba vietas:

Piemēram darbu

Nākamajā tabulā atkal ir diezgan viegli saprast, šie ir mūsu darbs ierakstus. Tie ir saistīti ar galvenajām darba vietu tabulā, kolonnā `jobs_id`. Veido Šīs tabulas ir ļoti atkarīgs no datiem, kas jums ir nepieciešams piegādāt uz jūsu darbiniekiem, ļauj izdarīt ļoti vienkāršu piemēru, kad mums ir četras ailes:

  • id: ID ierakstu
  • nosaukums: Personas vārdam
  • adrese: Personas adrese
  • jobs_id: darba ID, ka šis ieraksts ir saistīts ar

Trešais un pēdējais tabula sastāv no rezultātu tabulā, tas ir līdzīgi veido kā mūsu ierakstus tabulā, un pievienojot dažas kolonnas varētu būt daļa no uzskaites tabulu:

  • job_record_id: Link rezultāts uz darba galda
  • Rezultāts: Rezultāts dati

... Un tas ir viss, kas vajadzīgs darba kontroli! (Lai gan ļoti vienkāršas) Manā gadījumā es esmu norādījis uz citu tabulu, kur mana datu apstrādei atradās, bet to var tikpat viegli ir fails, parametri, lai palaistu simulāciju kodu, jūs nosaukums tam.

Izvēloties darbu

Kā norādīts iepriekš, darba ņēmējiem do mūsu darba vadība mums tagad, lai viss, kas mums nepieciešams, lai tiešām darīt, ir atrast darbu, kas nepieciešams pārstrādes un saņemt informāciju. Kā mēs to darām? Nu uzņemt mūsu darbu atlases kritērijiem un meklēt darba vietas, jo SQL man bija šādi:

  1. Veikt darbu, kas nav atzīmēti kā pabeigta, bet no mūsu darbinieku un atjaunotu tos (aizstāt __ME__ ar identifikatoru, vienkāršākais būtu IP adreses):
      UPDATE `darbu` SET `status` = 0 WHERE `status` = 1 UN `started_by` = __ME__; 
  2. Izmantojot mūsu darbu atlases kritērijiem, izvēlieties darbu un pateikt, ka šis darba ņēmējs ir ar to nodarbojas kontroles sistēma:
      UPDATE `darbu` SET `status` = 1, `started_by` = __ME__, `started_at` = NOW () WHERE `status` = 0 vai
     (`Status` = 1 UN `started_at`> DATE_SUB (NOW (), Interval X stunda)) ORDER BY `id` ASC; 

    Ar satveršanas darba vietas, kas nav atgriezušies rezultātus X laiku mēs nodrošinām, ka visi darbi ir darboties gadījumā, ja darba ņēmēja crashing vai iet AWOL.

  3. Nākamais greifers darbavietas informāciju pēc ierakstus sevi:
      SELECT * FROM `darbu` WHERE `started_by` = __ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __JOBID__; 

Pabeidzot darbu, mēs ievietotu savu rezultātu uzskaiti un atzīmēt darbu kā pabeigtu. Atcerieties, jo darbus var pārtraukt / atjaunot jebkurā brīdī pieļautu zināmu stabilitāti, kas savu skriptu. Varētu būt, ka uzdevums atliek pusi veidā caur atjauninot darba kontroles sistēmas, lai pārbaudītu ierakstu skaits darbu un rezultātu atkal saglabātu darba kontroles sistēmu skaits varētu būt gudrs kustēties.

Turklāt, lai gan tas parāda, cik darba vietas var izvēlēties un pārvalda no SQL query rāmis jums patiešām ir, abstrahējoties Jūsu darba kontroli, lai, ja jūs nolemjat pāriet uz, izmantojot interneta pakalpojumu, failu balstītai sistēmai, XML , vai jebkuru citu vairākas sistēmas, tas neietekmē kods virs tā.

Darba konfigurācija

Nākamais aspekts, kas jāapsver, ir darba apjomu un konfigurāciju. Spēlējoties ar darbavietu konfigurācija mēs varam panākt lielisku līdzsvaru starp ātrumu, process replikāciju un uzticamību. Paņem pāris kādu teksta apstrādes scenāriji:

  1. Darbs jāveic 1 dienā katru rādīt: Tas nozīmē, ka jūsu darbinieki ir 15 dienas, lai apstrādātu katru darbu (atceros 10% no jaudas 2/3rds laika). Tas ir skaidri nav gudrs konfigurācija, jūsu darba apjomu, ir pārāk liels! Būtu nepieciešams vismaz divreiz laiku, lai iegūtu pārstrādātu darbu vajadzētu sākotnējos darbinieks aiziet AWOL (laiks uzņemt, ka tā nav atgriezies rezultāts plus pārstrādes laikā). Ir ideāla, jūs ir vismaz vienu pilnu darbu viegli noskaidroti līdz katra ilgs tukšgaitas periodu, tādā veidā jūs saglabāt darbavietas atzīmējot beidzies, un sliktākajā gadījumā darbu varētu ilgt divas dienas, lai process būtu vispirms iet missing.
  2. Darbs jāveic 1 minūti, lai palaistu: Tas nozīmē, ka jūsu darbinieki aizņems apmēram 15 minūtes, lai palaistu katru darbu. Kaut arī tas sākotnēji var likties ideāls, jūs iegūstat papildu darbs apstrādes laikā pusdienas laikā, kafijas pauzes, tikšanās, utt šis scenārijs rada spriedzi citiem jūsu sistēmas, un ievieš savas problēmas. Piemēram, vispirms jūsu setup / apstrādes laiks attiecība gatavojas iet pa labi uz leju, tādējādi saglabājot sistēmas darba efektivitāti. Jūsu tīkls būs pastāvīgi straumēšanas darba informāciju par dažādiem darba ņēmējiem nomākta darbinieki, kas ir dong viņu ikdienas darbā. Jūs esat arī gatavojas likt lielāku spriedzi jūsu darbu apstrādes servera, jo tas ir ēdiens no partijām un partijām, mazos gabaliņos, kas strādā uz regulāri. Visbeidzot, šajā situācijā, ja jūsu darbs servera iet uz leju, jūs gatavojas izveidot milzīgu atpakaļ žurnālu nepabeigtajiem darbiem tā kā lielāka darbavietu varētu turpināt apstrādes blissfully neapzinās, ka darbs serveris bija nonākusi grūtībās.

Patiesībā nebūs neviena ideāla konfigurācija tīkla setup, daudz kas ir atkarīgs no pieejamajiem līdzekļiem, darbu veidiem, darba atgriešanas laiku prasībām, tīkla jaudu, un tā tālāk. Tomēr dažas vadlīnijas būtu:

  • Izmērs darbu, lai katrs darba ņēmējs var iegūt, izmantojot vismaz 3-4 darba vietas uz 15 stundām (garākā iespējams dīkstāves laiku)
  • Spēlē ar darba apjomu tā, ka uzstādīšanas laikā kļūst samērā nenozīmīga, salīdzinot ar apstrādes laiku (ņemot vērā iepriekšējo punktu).
  • Ja darbs nav pilnīgs divreiz vairāk laika (varbūt mazāk) jūs gaidīt to, lai pabeigtu to pieņemt, ka tā gājusi AWOL un sākt tā tiek apstrādāta ar kādu citu darbinieku. Tas nozīmē, ka Jums var būt jāgaida līdz trīs reizes lielāka par parasto ilgumu darbs ir pabeigts (iespējams arī ilgāk, ja turpmāko darbu neizdodas). Jūs varat samazināt šo laiku, bet jābūt uzmanīgiem, lai samazinātu to pārāk daudz, kā jūs varat sākt dublējot apstrādes uzdevumus regulāri.
  • Darbs būtu neatkarīga no ārpus prasībām, cik vien iespējams. Darbs serveri, piemēram, tikai sazināties sākumā un beigās katru darbu.
  • Nelietojiet piesātinātās savu tīklu, tas ir divas negatīvas sekas, jūsu dienas darbinieki būs atrast, izmantojot tīklu, nomākta, un problēmas var būt pieredze ar savienojumiem laika out problēmu, ka būs tikai sliktāk, kā jūs skalu jūsu tīklam.
  • Nodrošināt darba vietas var palaist uz jūsu darbiniekiem. Ja darba vietu kļuvusi pārāk atmiņietilpīga vai diskā intensīvu darbu sāks Pārtrauc un vienīgā lieta, jūs paziņojums ir piliens darbavietu skaits apstrādāti bez reālas iemesls, kāpēc.

Iesniegšana rezultāti Darbs

Iesniedzot rezultātus, darbs ir svarīgi pārbaudīt, vai rezultāti nav iesniedzis cits darbinieks, it īpaši, ja pašreizējā darba ņēmējs ir neaktivizētas kādu laiku.

Ja rezultāti tiek iesniegti nodrošina, ka rezultāti saskan ar skaitu ierakstu, kas darbu.

Kā norādīts iepriekš, un nav iespējams novērtēt par augstu, veidot defektu pielaidi par darbu izguves un rezultātu iesniegšanu. Darbinieki var (un, visticamāk, būs) iedziļināties apturēt režīmā pie visvairāk neērta reizes, un to nepieciešams aizrādījums. Arī vēlreiz abstrahējoties prom savus rezultātus iesniegumu palīdzēs rūpēties par turpmākām izmaiņām jūsu darba kontroles sistēma daudz vieglāk tikt galā ar.

Kopsavilkums

Šajā section mums ir aplūkots, kas darba kontroles servera jādara un kā iegūt ļoti pamata sistēma izveidota. Mēs apspriedām, kā iegūt no kontroles sistēmas darbu un to, kā vislabāk konfigurēt darba vietu, lai saņemtu lielāko daļu mūsu Jūsu biroja režģa sistēmu. Lai pabeigtu, punkts vai divi Iesniedzot rezultātus atpakaļ darba kontroli serveris tika iesniegts.

  • Darba kontroli serveris pārvalda darbavietas un nodrošina, ka darba vienības ir pabeigti
  • Ar abstrahējoties Jūsu darba izvēlaties / rezultātu iesniegšanas mēs varam mainīt tehnoloģiju kontroles servera bez daudz problēmu
  • Konfigurējiet savu darbu, lai nodrošinātu, ka tie darbojas ātri un efektīvi, bez pārāk lielu spiedienu uz savu tīkla infrastruktūru, un nedublējot apstrādes uzdevumus regulāri.
  • Pārliecinieties, ka jums veidot defektu pielaidēm un kļūdu checking savā rutīnu, darbinieki var apturēt un atsākt un visvairāk neērta reizes. Neaizmirstiet pārbaudīt, vai rezultāti jau ir iesniedzis cits darbinieks.

Nākošreiz

Ar 3 daļu mēs izveidot savu virtuālo apstrādes iekārta, un izveidot mūsu logiem mašīnas kļūt dīkstāves laika darba ņēmējiem.

Biroja Grid Computing izmantojot Virtual vides - 5.daļa

Ar , piektdiena Dec 4, 2009 11:03

Ievads

Es strādāju uzņēmumā, kurā mēs palaist daudzas partijas darba vietu apstrādes miljonu ierakstu datu katru dienu, un es esmu bijis domāt nesen par visām mašīnām, kas sēž apkārt katru dienu, neko nedarot, vairākas stundas. Vai tas nebūtu labi, ja mēs varētu izmantot šos mehānismus, lai atbalstītu pārstrādes jaudu no mūsu sistēmu? Ar šo komplektu raksti Es esmu, lai aplūkotu potenciālo ieguvumu nodarbina biroja tīklu , izmantojot virtualised vidēs.

Ar 4 Part mēs skatījāmies, izmantojot līdzekļus, lai nodrošinātu, ka mēs esam darbojas jaunākā versija kodu un datu avotiem, lai iegūtie rezultāti ir vienmēr up-to-dienu ar jaunāko biznesa informāciju un loģiku.

Pirms nosūtīšanas

Pirms izvietojat savu tīklu sistēmā, ja tur ir viena lieta, ko jūs darīt, un viena lieta, tikai tas etalons jūsu pašreizējo sistēmu! Nav svarīgi, ko jūs pastāstīt kolēģiem par to, cik daudz papildu darbu jūsu sistēma gatavojas darīt, ja jums ir numuri, lai atbalstītu šo savu garantiju nekas. Tātad,

  • cik daudz ierakstu jūs varat process pašlaik? Per diena? Per Hour?
  • Cik ilgi tas parasti aizņem apgriezties darbu?
  • Cik daudz vairāk jaudas, jums ir?

Pastāv arī papildu jautājumus:

  • Ja jūsu apstrādes serveri (vai viens no jūsu apstrādes serveriem) iet uz leju, kā tas ietekmēs jūsu spējām, vai tu kropls?
  • Kādas priekšrocības jūs cerat / gaidīt, lai saņemtu no energotīklu sistēmu?
  • Vai jūsu biroja iekārtas spēj darbināt darba piedāvājumus?
  • Vai jūsu (vai jūs varat darbavietas ir pārbūvētas) darbu šajā stilā darbojas?

Pēdējais lielais punkts ir veikt savu laiku, par jebkurām būtiskām pārmaiņām, kā šis. Atjauniniet savu apstrādes kodu, strādāt, izmantojot jauno metodiku, standartu vēlreiz. Iespējams izveidot savu pārstrādes serveri palaist virtuālo mašīnu, pēc tam, kad visas jūsu apstrādes serveri būtu tikai vēl viens darbinieks (tikai ļoti spēcīgs one relatīvi). Ļauj jaunu procesu, lai norēķinātos.

Izvietošanas

Mans ieteikums būtu, lai pop uz biroju vienu nedēļas nogali veikt visas iekārtas un uzstādīšana. Vai tas tikai pirms divām nedēļām, brīvdienu un atvaļinājumu, lai citi slikts vīram tikt galā ar sekām ... varbūt arī nē ...

Izvietošanas sistēmu, piemēram, tas ir lēni. Lai gan tas ir salīdzinoši vienkārši, lai izveidotu šo sistēmu, ietekmēs visu jūsu biroja infrastruktūras (arī digitālā viens). Pirmkārt, izskrējienu līdz pāris mašīnu laikā, uzraudzīt tīkla trafiku, kā darba ņēmējs saimniekiem veiktu uz ikdienas diennaktī. Jums var būt nepieciešams mainīt savu darba vietu konfigurācijas, atbildot par saviem atklājumiem.

Kad sistēma ir apmetusies ar tikai dažas mašīnas (ļauj teikt, 10% visu biroja tehniku, ti, 5) veic uzraudzīt tīkla trafiku un uzņēmēja mašīna performance. Tālāk kritēriju atkal, jums tagad būtu pārstrāde 33% vairāk darba vietu nekā pirmās kritērijus. Pārbaudiet tas tā ir, vai ka jūs vismaz šajā ballpark. Ja nē, izmeklēt, kas notiek pirms pāriet uz. Atkārtojiet šo ciklu, līdz jūs laimīgi ir visas biroja iekārtas darbojas bez nogalināšanas atsevišķu mašīnu veiktspēju vai slīpēšanas tīkla strupceļā.

Visu laiku turēt salīdzinošo novērtēšanu, pat pēc visas izvietošana tiek veiktas. Pārbaudīt, cik jaunu kodu atjauninājumus ietekmēt ātrumu jūsu sistēmā, pārbaudiet visus strādājošos ziņošanu un apstrādes darbus. Lēnām (ļoti lēnām) pieauguma savu darbu konfigurāciju, lai iegūtu vislabāko no jūsu darbiniekiem un tīklu.

Stop!

Ko darīt, ja jūs vēlaties pārtraukt jūsu darbiniekiem no braukšanas kādu laiku? Tie visi, kas tur darbojas, reģenerējoša, un mēģina to labāko, lai apstrādātu datus, piemēram, izsalcis kukaiņiem. Atbilde var likties skaidrs, bet tā vērts pievienojot tikai gadījumā, ja tās aizmirst. Vienkārši rediģētu apstrādes skriptu ar izvešanas (0) vai die () vai kādu citu pārskatu, lai nogalinātu savu apstrādes darbu. Svarīgs iemesls, kāpēc mēs vienmēr cenšamies atjaunināt jaunāko apstrādes skriptu pirms palaist!

Demonstrācijas sistēmas

Lai rakstīt šo komplektu īsus rakstus es izveidojis ļoti maza režģi, lai pierādītu, tehnoloģijām un metodēm. Es izlasīju daudz rakstus, pamācības un izmanto dažādus instrumentus, lai setup un pārraudzīt, kas notiek. Nekādā ziņā es esmu izgājis un piesātināts viss birojs ar satiksmi un arī es esmu bijusi piekļuve regulāru personāla locekļiem PC lai redzētu, kā uzņēmējas izpildi skar.

Mana demonstrācijas sistēmas bija ļoti pazemīgs patiešām. Es izmanto manu regulāro desktop izveidota kā darba kontroli serveri. Par šo man bija instalēta MySQL serveri uzstāda izveidota kā meistars replikāciju, PHP , Â un SVN ir saistītas ar apache (par piekļuvi, izmantojot darba ņēmēju VM).

Tad es izveidojis CentOS darbinieks mašīna VirtualBox uz 6 gadus veca Windows XP klēpjdators. Es uzstādīšana plānota uzdevumus, kā noteikts pēc kopēšanas VM uz mašīnu un ļaujiet tai iet.

Virtuālā mašīna tika izveidots ar PHP, gāšanu, un MySQL. Es paņemts filiāli ar nosaukumu "darba ņēmējs" no mana darba kontroli serveriem krātuvi un ir pārliecināts, ka tas varētu atjaunināt, izmantojot "svn update". Tālāk es iestatīšanas mySQL, kā vergu un pārbauda, ​​ka dati ir replicē no MySQL uz darba kontroles servera uz leju, lai darba ņēmējam VM. Pēc visu to es setup bash skriptu un cron darbu.

Mana apstrādes skriptu pamatā gāja pa šo līniju (ļoti vienkāršs stuff):

  • Lasiet nosaukuma laukā
  • Skaitot vairākiem līdzīgiem nosaukumiem tabulu no datu avota notika VM
  • Skaitot vairākus nosaukumus kā iepriekš, bet sadalīšana nosaukums ar atstarpēm (piemēram, vārds, vidus, uzvārds)
  • Atkārtota šo procesu 1000 reizes

Katrs darbs bija aptuveni 20 minūtes, lai palaistu. Vienu brīdi es atvēru vairāki eksemplāri darba ņēmēja VM logi klēpjdatoru un vēroja darbavietas jāpārbauda pie katra darba ņēmēja IP adreses. Šajā brīdī es arī apstiprināja, ka replikācijas automātiski restartēta.

Atstājot klēpjdatoru dīkstāves rezultātā darbinieks sāk procesu, darbu no darba kontroli serveri. Kad atsākšanas klēpjdators izmantošana bija aizkavēšanās aptuveni 30-60 sekundes, tas ir godīgi daudz laika un darbiniekiem būtu jābūt informētiem, ka viņu mašīna var apstāties uz brīdi, kad atgriežoties mašīna. Jaunāka iekārtas var nebūt pauzes šo ilgi. Gada pārstrādes apjoma, ko veic šīs iekārtas laikā tukšgaitas periodos labā būtu vairāk, ka pārsniegs darbinieki, kam jāgaida neilgu laiku (teiksim, 1 minūte) par atved mašīnas rīta (es bieži ilgāk gaidīt, ka šis Windows Defender atjaunināšana, kas notiks), ja tās ir informēta par šo (noderīgs laiks, lai greifers rīta kafiju!).

Kopumā Es jūtos pārliecināts, ka man ir pierādījušas tehnoloģijas, kuras varētu izmantot, lai izveidotu šādu sistēmu. Man ir pierādījusi, ka šāda sistēma darbs (ļoti) maza apjoma un ar vēl daži eksperimentē varētu pastiprināti izmantot resursus biroja tehnika. Ja man nav nokļūt līdz punktam, kā to izdarīt es būtu ļoti ieinteresēts uzzināt / redzēt, ja kāds cits dara.

Secinājumi / novērtējums

Nākamais acīmredzams solis būtu faktiski iegūtu reālās pasaules piemērs un sākt izmantot sistēmu, piemēram, šajā laikā biroja vidē un redzēt, kas notiek. Jautā biznesa apņemties šā bez taka degošs uzņēmumam pierādīt tehnoloģiju un efektivitāti, var būt nedaudz grūti. Grid / Distributed computing ir ļoti populārs, ir dažās aprindās, un ir dažas lielas programmas (BIONC, SETI @ home, Folding @ home, utt.) Es gan nezināju, tomēr, atrast mazāka apjoma un vienkāršu sistēmu, kā šis manā meklēšanu, kas varētu būt jāizrullē robežās biroja vidē.

I izveidojis būtībā bez sistēmas, izmantojot galvenokārt atvērtā koda programmatūras un instrumenti pieejami gandrīz katrā birojā. Tehnoloģijas būtībā bija pierādīta un parādīt, lai veiktu un darba, kā gaidīts. Cerams, ka man ir jāpierāda, ka ar nav daudz darbu un ar ļoti vienkāršu setup jums varat izvietot biroju tīkla skaitļošanas sistēma, kas ir spēcīgs, lēti, Â un pielāgojamiem visi tajā pašā laikā.

Kad sistēma ir izveidota un darbojas gandrīz nav beigas summu pielāgošanu un uzlabojumus, ko Jūs varat darīt. Piemēram, statistika / etalona var viegli pievienot, kurā vērts šādas sistēmas katru dienu. Jaunas iekārtas var pievienot ātri un viegli, un, kad viņi ierodas ar šībrīža aparatūras stiprinot savu pārstrādes jaudu.

Ceru, ka jums patika lasījumā šo rakstu sērija, un tā jums dod vielu pārdomām par braukšanas biroja režģa sistēmu. Risinājums šeit ne vienmēr strādā visās situācijās, bet ir jāspēj pielāgoties, lai jūs, lai saņemtu savu datu pārstrādei, kas veikta, izmantojot savu risinājumu.

Lūdzu, jūtieties brīvi, lai nosūtītu man komentārus, korekcijas vai uzlabojumus, un es darīšu manas vislabāk, lai saglabātu šo rakstu atjaunināts, lai atbilstu.

Zend Framework: pamati - pārskats

Ar , sestdiena 28 novembris, 2009 22:42

Mans darba devējs nesen samaksājis par grupu no mums izstrādātājiem, lai Zend Framework: pamati , protams, šeit es ņemšu apkopot savas domas un viedokļi par virzību uz citiem. Tiem, kas vēlas ietaupīt laiku, šeit ir mans kopsavilkums:

Par attīstītāji, kas nav bijis laika iepazīties ar Zend Framework šajā laikā (Zend Framework: Fundamentals) piedāvā labu vispārējo priekšstatu par sistēmu ievieš jums galvenās jomas un sniedzot pietiekami daudz informācijas, lai turpinātu. Tiem, kuri pavadījuši laiku meklē sistēmā un kam viens vai divi konsultācijas šajā kursā nepiedāvā daudz tālāk.

Fona

Esmu bijis PHP attīstītājs apmēram 5-6 gadiem, un ir sākušas strādāt ar Zend Framework uz komponentu, balstoties uz pēdējiem 6 mēnešiem. Esmu izstrādājusi un / vai bijis attīstītājs par pāris mazu Zend Framework MVC sites. Es būšu godīgs, man nav bijis liels iedarbības citām sistēmām no kodēšanas viedokļa, bet ir pavadījuši vairākas stundas pētot projekta tīmekļa vietnes un novērtēt them. ietvardokumentā un Kopienas apkārtējo Zend Framework ir diezgan aizraujoša, un šķiet, ka pastāv milzīgas iespējas, ja tās turpinās.

Par Kursa

Kurss ir piegādāts pa 9 divu stundu WebEx sesijas (ar 10 minūšu pārtraukumu pa vidu). Laiks tiek pavadīts, veicot virkni slaidu, ko sniedz Zend ar diskusiju jebkurā laikā. Jūs varat izmantot mikrofonu, lai sarunātos ar instruktoru, bet ja godīgi es neredzēju izmantot kāds kaut ko vairāk nekā tērzēšanas logā. Turklāt VMWare Ubuntu mašīna ir ar nosacījumu, ka ir piemēra kods un projektus, kas izveidoti izmēģinājuma versiju Zend Studio. Protams, vadītājs sarunājas ar apmeklētājiem vai nu ar integrētu VoIP risinājumu, vai arī varat zvanīt, izmantojot vienu no daudziem pasaules ripu skaita.

Kursa laikā materiāls sastāv no īsa pamatprogrammas pārskatu un MVC modelis pirms virsraksta paraugu viesu grāmatā pieteikumu. Diskusija parādīja bootstrapping, Zend_Application, DB tabulas, datu bāzu pieejamību, Veidlapas, filtrēšana, ACL, apstiprināšana, utt, utt Būtībā aptver visas tēmas jūs nepieciešama, lai iegūtu pamata vietne izveidota darbojas visu laiku sniedzot jums instrumentus, lai iet un saņemt vairāk uzlabotas ietvaros (lai gan tas bija summa "Skatīt tīmekļa vietni 'daudz laika).

Laiks ir piešķirts kods, pat daži piemēri, kā izstrādāt "viesu grāmatas" un vienkārši "wiki" pieteikumu. Personīgi es jutu, ka sniedzot kodu vai katru app, un tad jautā mums, lai attīstītu to, kas būtībā bija kopija līdzās nav īsti nodrošina labu mācību pieredzi. Būtu gribējies, lai izstrādātu pieteikumu līdzīga, taču ne identiski. uz piemēru pieteikumu ar priekšrocības, kam guide atsaukties uz. Alternatīvi būvniecības pieteikumus no nulles ar demonstrētājs būtu par, iespējams, radīja vairāk jautājumu par to, kāpēc un kādā veidā, tādējādi sniedzot labāku izpratni par sistēmu, galu galā jūs varat meklēt specifiku pēc kursa.

Pēdējā lekcija sastāvēja no darba uz wiki pieteikumu ar palīdzību / ieteikumus no instruktora. Pēc kursa atsauksmes tika pieņemts, tika uzsvērts, vairākas reizes, izmantojot protams, ka Zend notiek atsauksmes ir ļoti nopietni, jo tas acīmredzot mūsu versiju protams, bija pavisam jaunu. Daži no citiem izstrādātājiem, kompānijas spersim gaitā drīz tāpēc būs interesanti redzēt, ja tas ir noticis.

Protams, stils bija neformāla, atļauta atgriezenisko saiti un sadarbību starp dalībniekiem un instruktors. Protams, vadītājs bija draudzīga, sasniedzams (e-pasta adreses tika dalītas uz jautājumiem), un kamēr viņa prezentāciju no slaidiem bija mazliet nestabila likās pilnībā kompetenta ietvaros. Viņš bija acīmredzami kāds, kas izmanto sistēmu, regulāri, nevis kāds, kurš tiek mācīts mācīt, protams, man patika "reālo pasauli" pieredzes šajā ziņā.

Kopumā sajūta

Savā ziņā es atklāju gaitā atkritumu laika, citiem tā bija ļoti ērts. Cerams, ka es nopirkšu savu iemeslu izteikties skaidri, un varbūt sniegt dažas pārdomas vai noderīga atgriezeniskā saite (zinot, man tas ir maz ticams!).

Par sevi Šā kursa mērķis bija pārāk zema līmeņa. Ņemot izgājušas cauri QUICKSTART rokasgrāmatu, izlasiet Rob Allen Zend Framework in Action un strādāja ar regulējumu maz Es īsti iegūt kaut ko pārāk daudz. Es par patika protams, uzņemt no beigām QUICKSTART un attīstīt papildu prasmes.

Tas nozīmē, ka kursa nosaukumā nav skaidri noteikts, "Zend Framework: Fundamentals", un šādā aspektā kurss sasniedz to, ko tā vēlas darīt. Citus locekļi izstrādes komandas, kas nav izlietoti laika ieskatu sistēmā gatavo katras sesijas ar entuziasmu un uzdeva jautājumus, kas bija tiešām jauks, lai redzētu.

Visi nebija zaudēts, tas bija labi pavadīt laiku apstiprina galvenās ziņas par sistēmu un iegūt uzdot pāris jautājumus jomās, kur es nebiju 100%. Tas bija arī laiks, ka es saņēmu apsēsties katru dienu un domāt par kodēšanas, izmantojot sistēmas un turpmākiem projektiem, ko es nebūtu par varējis rīkoties citādi (vai varat iedomāties jūsu uzņēmums piekrīt, ka:)). Pēdējais, bet ne jūs arī iegūt jauku sertifikātu no Zend teikt, ka jūs apmeklēja kursus (lai gan pa e-pastu).

Zend Framework Sertifikācija

Tas bija viens jautājums, kas tur nāk prātā laikā, vai tas sagatavotu mani sertifikācijai? Ātri, vienkārši ir milzīgs Nr. Protams, instruktors bija diezgan skaidrs, ka ar papildu ieteikumu, ka sertifikācijas jums patiešām vajadzētu būt, izmantojot regulējuma ikdienā un jūtas ļoti komfortabli un pārliecināti par tās lietošanu un metodoloģiju.

Kopsavilkums

Ņemot vērā to visu, es esmu rakstiski iepriekš, es jums apkopot visu, kas divas vienkāršas aizzīmju punktiem:

  • Jauns, lai Zend Framework: Šis kurss dara tieši to, ko jūs gaidījāt, tas dod jums jauku ievadu sistēmu un labas zināšanas par pamatus, no kuriem var būvēt. Protams, šķiet, lai radītu interesi un sistēma starp izstrādātājiem entuziasmu.
  • Lietota Zend Framework: Tā bija jauki krastā dažas no ļoti pamati sajutu laiku, pūles un līdzekļus veikt kursu varētu no bijis labāk izlietotās citur. Tas būs jauki, see Zend izveidotu jaunu augstāku līmeni, protams, lai izstrādātājiem, lai nākamajā līmenī -. Vismaz standarta sertifikāciju un ārpus Par to es varētu pierakstīties uzreiz.

HTML tabulu ģenerēšana klase (HtmlTable.php)

Ar , otrdiena 5 maijs 2009 09:11

Man nepieciešams, lai ģenerētu HTML tabulu no PHP datu projektu, kas man bija izstrādā. Diemžēl pēc mazliet Googling es nevarēju īsti atrast kaut ko, kas bija piemērots tāpēc es nolēmu izveidot savu.

Es saprotu, ka tas var nebūt labākais galda rada klasē kādreiz un tur droši vien dažas kļūdas un vēl, bet es gribētu, lai dalītos pieredzē un ja kāds vēlas labāku versiju es ar to iepazīties:) Es sākotnēji vēlējās radīt tabula izveidojuši atsevišķu objektu, piemēram, šūnu objekts rinda objektu (apbūvētā šūnu objektu), bet es sapratu, gaisvadu par šo būtu MILZĪGS! Tāpēc es esmu gājusi atpakaļ uz masīvs setup.

Klasē aprēķināt maksimālo kolonnu skaitu, ko izmanto galvene, kājene, vai organismā un rakstīt, ka kolonnu skaitu. Galvenes, kājenes un Caption ir obligāta. Atribūti ir izgatavoti no masīva, kur galvenais ir atribūta nosaukums un vērtība ir atribūta vērtību. Atribūti tiek piemērotas tabulā tag (uz galda izveide - klase inicializācijas), tabulas rindas (masīvs [rindu] [atribūts]), un tabulas šūnas (masīvs [rindu] [sleja] [atribūts]) tas attiecas uz galvenes, kājenes un tabulu struktūra.

Piemērs

Es vienmēr atrast labāko veidu, kā apskatīt kaut ko, ir izmantot piemēru tāpēc šeit mēs aiziet:

 $ Table = jauni HtmlTable (array ('klase' => 'sortable "
                 "Stils" => 'width: 550px ;'));
 $ Header [0] [0] ['saturs'] = 'ID';
 $ Header [0] [1] ['saturs'] = 'Nosaukums';
 $ Header [0] [2] ['saturs'] = 'Datums';
 $ Header [0] [3] ['saturs'] = 'Lapas';

 $ Galda> addHeader ($ header);
 $ I = 0;
 foreach ($ pastā AS newsItem $) {
 $ ItemLink = "{$ newsItem ['title']}";
 $ TableBody [$ i] = array (0 => array ('saturs' => $ newsItem ['id'],
 'Atribūti' => array ('style' => 'font-svars: bold ;')),
 1 => array ('saturs' => $ itemLink),
 2 => array ('saturs' => $ newsItem ['date_posted']),
 3 => array ('saturs' => $ newsItem ['vieta']));
 $ I + +;
 }
 $ Galda> addBody ($ tableBody);
 echo $ galda> drawTable ();
ID Nosaukums Datums Site
9 Jaunumi 1 2009-04-04 10:40:00 vietnes nosaukums
10 Jaunumi 2 2009-04-04 12:44:11 vietnes nosaukums

Un HTML izskatās šādi:

  =  "sortable" style =  "width: 550px;" > <Galda class = "sortable" style = "width: 550px;">
 <Thead>
	 <Tr    >
		 <Th    > ID </ th> 
  <Th    > Nosaukums </ th>
		 <Th    > Datums </ th>
		 <Th    > Lapas </ th>
 </ Tr>
 </ Thead>
 <Tbody>
	 <Tr    >
		 =  "font-weight: bold;" >9</ td > <Td style = "font-svars: bold;"> 9 </ td> 
		 <Td    > Jaunumi 1 </ td> <td    > 2009/4/4 10:40:00 </ td> <td    > < tr > Lapas nosaukums </ td> </ tr> <tr    = "font-weight: bold;" >10</ td > < td > <Td style = "font-svars: bold;"> 10 </ td> <td    > News 2 </ td> 
  <Td    > 2009/4/4 00:40:00 </ td>
		 <Td    > Lapas nosaukums </ td>
 </ Tr> 
  </ Tbody>
 </ Table> 

Kods

HtmlTable.php
Ja jums ir kādi komentāri, lūdzu, lai tās tālāk, tas būtu lieliski dzirdēt. Ja jūs galu galā izmantojot to arī let me know, un es ņemšu pagarināt to nākotnē:)

Pieteikties uz DB, izmantojot Zend Framework

Ar , otrdiena 14 aprīlis 2009 21:06

Esmu izdevās iegūt vietu uz augšu un darbojas ar Zend Framework , viss ir mežizstrāde labi, lai Firebug / FirePHP tāpēc nākamais solis bija, lai pieteiktos uz DB. Es arī gribēju pieteikties papildu informāciju, izmantojot sistēmu, piemēram, lietotāja aģents, datumu un laiku, GET un POST mainīgie. Tātad, lai paplašinātu pamācību, mazliet šeit ko es izdarīju:

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

$ ColumnMapping = array ('prioritāte' => "prioritāte",
'Ziņu' => 'vēstījumu ",
"Datetime '=>' laikspiedolu"
'User_agent' => 'user_agent "
'Get_vars' => 'get_vars "
'Post_vars' => 'post_vars "
"Vieta" => "vieta"
);

$ WriterDb = jauni Zend_Log_Writer_Db ($ db "error_logging ', $ columnMapping);
$ Logger = jauni Zend_Log ($ writerDb);

$ Logger-> setEventItem ("datetime", datums ("Ymd H: i: s '));
$ Logger-> setEventItem ("user_agent ', $ _SERVER [' HTTP_USER_AGENT ']);
$ Logger-> setEventItem ("get_vars", print_r ($ _GET, patiess));
$ Logger-> setEventItem ("post_vars", print_r ($ _POST, patiess));
$ Logger-> setEventItem ("vieta", SITE);

$ Logger-> info ('Informatīvais ziņojums ");

Ja masīvs atslēgas $ columnMapping ir manas kolonnu nosaukumi. 'Prioritāte' un 'ziņa "saprot, ko Zend_Log_Writers bet papildu laukus tika pievienoti sniegt man papildu informāciju.

Acīmredzot tas tiek pieņemts, ka jums ir mežizstrāde darbojas, izmantojot vienu no citiem rakstniekiem pirmā:)

Lielbritānijā vārdi Directory un Facebook pieteikums

Ar , piektdiena 10 aprīlis 2009 09:33

Viens no fun lietām, ko es esmu bijis iesaistīts, vienlaicīgi strādājot, lai Tracesmart ir nosaukumi direktorijā . Būtībā mēs ņēmām mūsu milzīgo informācijas datu bāzi un izvilka lielu kaudzi stats par dažādiem nosaukumiem.

Process ir viss viens liels SEO pūles, lai pievērstu vairāk satiksmes uz vietas, bet arī sniedz dažas interesantas informācijas un vārds statistika.

Lūk, manu vārdu, piemēram Lloyd Watkin , vai es domāju, pareizāk Steven Watkin . Veikt minūti, lai uzmeklētu savu vārdu uz Tracesmart vietas, varētu būt interesanti;)

Mēs esam arī ieguvuši nosaukumus statistikas datus par nosaukumiem directory lapu, kas stāsta jums to nosaukumi ir pārmeklēts un cik nesen. Tās diezgan interesanti redzēt slaveno cilvēku vārdus izlidot pa stats, ja tie parādās ziņas. Nesens piemērs ir tas, ka Liam Neeson , kurš sieva nomira no slēpošanas negadījums nesen, lai gan acīmredzot cilvēki nav pilnīga taisnība par pareizrakstību (tātad milzīgu skaitu apmeklētāju uz šo nosaukumu), - Liam Nilson .

Facebook pieteikumu

Kad vārdi direktorijā izveidoja mēs noteikti uztrauc facebook pieteikumu , kas mums duely nosaukumu " My Name ". Facebook pieteikumu pagarināt nosaukumu direktorijā , un sniedz dažus papildu statistiku. Lai pievienotu vārdus katalogs savā Facebook kontā, lūdzu, apmeklējiet:

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

Invalīdu veidlapas lauki nav iesniegti ...

Ar , ceturtdiena 4 Sep 2008 11:01

Kā ātri piezīmi, kā daļu no notiekošās īpašuma aģentūra programmatūras projektu es esmu gājusi atpakaļ uz rediģēšanas stāšanās dienā sistēmā. Tagad tā vietā, kas ļauj lietotājiem ievadīt jebkuru veco mazliet teksta Esmu pārslēdzas uz Javascript datuma / laika atlasītājs (par īstermiņa), kas ļauj lietotājam uz "pick" un datumu un laiku no pop up logā.

Tagad par manu veco systema lasītājs būs pop augšu, ja lietotājs noklikšķina uz ievades lauku . Tas tomēr ļautu lietotājam ignorēt teksta laukā un joprojām iet un ievadīt kādu vecajam laukā. Tas nebija ideāls. Tātad mans risinājums bija " atslēgt "veidlapas lauka un nodot span blakus ir ar onclick notikumu zvana datumu / laiku atlasītāju. Tas nozīmē, ka lietotājs bija gandrīz spiests vērā, izmantojot nice datuma / laika atlasītājs tik datumi varētu iet ar pareizā formātā (lai gan, kas vēl jāapstiprina!).

Tāpēc es sāku iet savu labi formatētus datuma-laika (s), izmantojot formu un picking mēģinot izvēlēties tos ar PHP 's $ _GET vai $ _POST mainīgos. Unfortunately'disabled "lauki nenonāk formu iesniegumi Tas bija ļoti kaitinošas. Risinājums, lai ļautu ieejas elementu, izmantojot javascript, kad veidlapa tika iesniegts, izmantojot onsubmit notikumu.

Tas nozīmēja, ka veidlapas dati tika cauri kā to pieprasa un ir labi formatēti gatavs apstiprināšanai ... Â

Meklēt Array Taustiņi un Return Sērkociņi

Ar , trešdiena 13 augusts, 2008 16:26

Man bija nepieciešams, lai meklētu, izmantojot masīvu un atgriezt elementi, kas ir atslēgas, kas atbilst meklēšanas termins. Tāpēc es domāju, ka man daļa.

"W hy man vajag šo?", Iespējams, būtu pirmais jautājums vēlaties jautāt, labi, ja es gribēju, lai meklētu caur masīvs visi elementi, kas saistīti ar objekta izmēru, tad es varētu izraut attiecīgos taustiņus pa izmantojot šo maz funkciju:

 <? 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;  } } ?> 

Tā, piemēram, ja es gribēju, lai meklētu masīvs objektu datu dimensiju datus, tad es varētu darīt šādi (un izdrukāt uz ekrāna iespējams):

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

Kurš varētu atgriezties kaut ko līdzīgu:

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

Custom php.ini ar Plesk

Ar , trešdiena 13 augusts, 2008 15:53

Mums ir veltīta servera ar ukFast Â, par kuriem mēs palaist vairākas jomās , kas pastāv uz virtuālajiem serveriem darbojas saskaņā ar Plesk . Anyway, par lielāko daļu no maniem domēniem es gribu noslēpties brīdinājumi un drošības saglabā kļūdas, lai log failus, tomēr uz dažiem no maniem domēniem (piemēram, es esmu attīstās) Es vēlos parādīt katru mazu nejauku brīdinājuma un kļūdu, kas parādās.

Ja es varu rediģēt manas PHP . INI "> php.ini tas skar katru domēnu uz ​​servera, nav laba ideja, it īpaši, ja vairākas vietas ir pilnīgi dzīvot versijas  Tātad, lai iegūtu ap šo jums nepieciešams, lai failu sauc vhosts.conf jūsu conf direktorijā, piemēram, /var/www/vhosts/<my_domain>/conf/vhost.conf .

Kad esat pievienojis savu papildu kodu, atkal piemēram, es iekļauts,

 php_value error_reporting E_ALL php_value display_errors On 

seko rādīt šādu komandu (tas reconfigures visiem jūsu domēnu tā tikai ātrāk lazier nekā rakstīt domēna nosaukumu ,

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

Ja jūs sajūta mazliet apķērīgs tad jūs vienmēr varat veids, kas pilna versija, kas ir,

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

Pēc šo komandu, ja paskatās uz httpd.include failu, redzēsiet, ka jūsu httpd.include būs iekļauts līniju jūsu vhost.conf, kaut kas līdzīgs šim:

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












Panorama Theme Themocracy

9 Apmeklētāji tiešsaistē tagad
7 viesi, 2 boti, 0 biedri
Max apmeklētāji šodien: 16 pie 04:19 UTC
Šajā mēnesī: 16 plkst 2011/04/08 12:59 UTC
Šogad: 130 plkst 28-03-2011 22:40 UTC
Visu laiku: 130 plkst 28-03-2011 10:40 UTC