A. Zaliznyak arvostelee M. Hendleriä hyvin ainutlaatuisella tavalla ja vastustaa samalla Yu M. Lotmania - Alexander Lavrukhinia. PHP-sovellusten profilointi ja virheenkorjaus xhprof & FirePHP:n avulla Murtaudu profiilin php-tilan läpi

Tässä muistiinpanossa tarkastelen A.A. Zaliznyakin kirjaa "The Lay of Igor's Campaign": lingvistin näkemys, jonka sivuilla lingvistien välillä käydään kiistaa "Maallikon" tekstin kirjoittamisajasta: A.A on hänen näkökulmastaan ​​virheellisiä hetkiä M. Hendlerin rakenteissa, mutta hän tekee sen mielestäni lievästi sanottuna hyvin omituisella tavalla...

Handlerin rakenteiden olemus Zaliznyakin esittämänä on seuraava: Handler analysoi tilastoja imperfektien esiintymisestä "sanan" tekstissä (imperfekti on verbaalinen sanamuoto) ja suhteellisen suuren määrän imperfektiiveja, jotka löytyvät sanasta. "Word" hälytykset Käsittelijä: tällaista ilmiötä ei havaita maallinen XII-XV vuosisatojen käsikirjoitukset; epätäydellisen runsaus tekee "sanasta" samanlaisen kuin hagiografiset tekstit (tekstit, jotka kuvaavat jonkun elämää), jotka ovat kirkko tekstit ja munkkien kirjoittamat kirkon slaavilaiset; ja Handler päättelee, että "Sana" luotiin myöhemmin kuin 1100-luvulla, "kun epätäydellisen tyylillinen merkitys havaittiin eri tavalla kuin 1000-1100-luvuilla".
Handlerin tekemä johtopäätös, jonka mukaan "The Lay" kuuluu myöhempään aikaan perustuen vain teoksen kielen analyysiin, oli psykologinen haaste Zaliznyakille, jolle kielitiede, kuten Handlerille, on ainoa ja korkein argumentti. todistuksessa, mutta jo antiikin todistuksessa "Sanat", ja Zaliznyak sitoutuu kumoamaan Käsittelijän.
Samaan aikaan Zaliznyak tekee tietyn "ritariliikkeen", jonka olemuksesta puhun nyt lyhyesti, menemättä kielitieteeseen tai Handlerin ja Zaliznyakin tilastollisiin menetelmiin.

Zaliznyak kiinnittää lukijan huomion siihen, että Handler sulki muinaisten venäläisten kronikoiden tekstit tieteellisen tutkimuksen ulkopuolelle (muistakaa Yu.M. Lotman, joka teki samoin, mutta eri syistä). Handler perusteli tätä askelta sillä, että muinaisilla venäläisillä kronikoilla ei ole yhtä kirjoittajaa, vaan useita: kronikoiden tekstejä kirjoitettiin monta kertaa uudelleen, korjattiin, päivitettiin, leikattiin, lisättiin... Ja toisin kuin Handler, Zaliznyak tarjoaa lukija hänen kokemuksensa epätäydellisyyksien laskemisesta muinaisissa venäläisissä kronikoissa, erityisesti - Ipatievin kronikassa.
Zaliznyak ottaa analysoitavaksi paikan Ipatiev Chroniclessa, jossa kerrotaan tarina prinssi Igorin kampanjasta - ei kuitenkaan ole selvää, mitä tarinan osaa Zaliznyak analysoi: onko tarinan koko tekstiä vai jokin osa siitä - samaan aikaan koko tieteellinen maailma tietää varmasti, että juuri tämä kronikan tarina kiinnosti aikoinaan kirkon ideologeja, ja he editoivat tätä tarinaa kokonaisuutena ja lisäsivät kroniikkaan myöhemmin suuren palan teksti, jossa on kohtaus prinssi Igorin katuvista puheista taistelukentällä polovtseja vastaan, kun asiat olivat jo menossa häpeän tappioon.
Lukija ei voi olla kiehtova Zaliznyakin huomauttamasta tosiasiasta, että maallikon teksti ja Ipatiev-kronikassa ruhtinas Igorin kampanjaa koskevan tarinan teksti (korostan, kirkon kirjoittajien editoima) ovat läheisiä ja liittyvät toisiinsa. ja luultavasti siksi Zaliznyakin menetelmä (jota en analysoi) ja hänen johtopäätöksensä: "Handlerin väite, että SPI<«Слово о полку Игореве»>tulee lähelle vain hagiografisia teoksia ja epäonnistuu täysin” koetaan psykologisesti vakuuttavasti.

Toisin sanoen otettiin fragmentti maallisen käsikirjoituksen tekstistä, josta tiedetään, että tämä fragmentti oli kirkon editoima ja lisätty; kirkon toimittamasta ja lisäämästä katkelmasta löytyi useita kirkkokirjallisuudelle tyypillisiä puutteita, joiden perusteella pääteltiin Handlerin olevan väärässä.

Herää kysymys: miksi tieteellisessä työssä, joka väittää olevansa vankka ja arvovaltainen tutkimus, valittiin vain yksi esimerkki tilastollisiin laskelmiin? Ja miksi juuri tämä esimerkki?
Ja mitä tapahtuu, jos analysoimme epätäydellisten tilastoja edes muissa kronikoissa, vaan samassa Ipatiev-kronikassa, mutta jossain muussa (edellisessä tai myöhemmässä) tekstin fragmentissa? Kumoavatko tulokset Handlerin yhtä vakuuttavasti?

Muuten, on kummallista, että koko tätä esimerkkiä Ipatievin kroniikassa olevien epätäydellisistä tekijöistä voidaan pitää A.A.:n vastalauseena Yu.M.lle, joka puhui kirkollisista muinaisissa venäläisissä kronikoissa muista tarkalleen, että juuri se tapaus, jossa Ipatievin käsikirjoituksen alkuperäisen tekstin myöhempi käsittely ja kohtaus prinssi Igorin rukouksella lisättiin siihen.
Mutta pointti on siinä, että kaikki nämä myöhemmät lisäykset voidaan tunnistaa (ja tarvittaessa erottaa yleisestä kronikkamateriaalista) lingvistisen ja kirjallisen analyysin avulla, ei semioottisen, Lotmanin mukaan.

Joten yhdessä vaiheessa paljastettiin metodologiset ongelmat "Maallikon" tekstin "antiikkien" analyysissä sekä A. A. Zaliznyakin että Yu.M.
Mutta heidän rakenteidensa virheellisyys ei tietenkään ole vielä todiste "sanan" myöhäisestä alkuperästä...

07.01.2007.
© A.N. Lavrukhin.

Kirjallisuus:
1. Yu.M. Lotman. Venäjän kulttuurista. Artikkelit ja tutkimukset. Pietari, 2005, s. 84-106.
2. A.A. Zaliznyak. "Tarina Igorin kampanjasta": kielitieteilijän näkemys. M., 2004, s. 238-240.

En siis yllätä ketään sanomalla, että mitä enemmän ulkoisia linkkejä sivustollesi, mitä suurempi sen TCI ja mitä suurempi viittaavan sivuston TCI, sitä suurempi on tämän linkin "paino". On monia tapoja lisätä linkkien massaa sivustollesi, mutta tänään puhun vain yhdestä niistä - ulkoisten linkkien hankkiminen luottamussivustoilta.
Tässä artikkelissa en anna kaikkia linkkejä luotettaviin sivustoihin, jonka tiedän, mutta kerron sinulle vain yhdestä niistä - foorumeista.
Rekisteröitymällä foorumeille, joissa voit määrittää verkkosivuston (yleensä ne on tehty samassa moottorissa), saat ulkoisen linkin.
Selvittääksesi, mistä puhumme, katso alla oleva kuvakaappaus:

Eli sinun on yksinkertaisesti rekisteröidyttävä tällaiselle foorumille ilmoittamalla sivusto. Siinä kaikki. (No, korkeintaan sinun on vielä vahvistettava rekisteröitymisesi, joten ilmoita oikea sähköpostiosoitteesi). Sivu, jolla on linkki sivustollesi, näyttää yleensä tältä:

Puhutaanpa nyt tämän menetelmän haitoista, mielestäni niitä on kaksi:
1) Luulen, että ennemmin tai myöhemmin sinut poistetaan foorumilta passiivisuuden vuoksi (mutta periaatteessa ei ole vaikeaa rekisteröityä uudelleen).
2) Näin ollen et voi asettaa linkkiankkuria. (Tämä ei todennäköisesti ole edes miinus, vaan tosiasia, mutta silti).
No niin lista rasvaisista foorumeista. Mukavuussyistä TCI:n laskevassa järjestyksessä:
Linkki (TCI)
http://forum.igromania.ru/register.php (1700) [Rekisteröidy, ilmoita sitten sivusto profiilissasi, tallenna]
http://orphus.ru/community/register.html (1500)
http://www.novosti-kosmonavtiki.ru/phpBB2/profile.php?mode=register (1100)
http://www.rmj.ru/phpbb/profile.php?mode=register (1000)
http://www.masterkit.ru/forum/profile.php?mode=register (700)
http://www.ib.ru/forum/profile.php?mode=register (400)
http://forum.mozilla-russia.org/register.php (300) [Ilmoita verkkosivusto profiilissasi]
http://mama-tv.ru/forum/profile.php?mode=register (230)
http://www.neodrive.ru/forum/profile.php?mode=register (170)
http://www.systemaspetsnaz.ru/pforum/profile.php?mode=register (150)
http://tele-club.ru/forum/profile.php?mode=register (130)
http://forum.anastasia.ru/profile.php?mode=register (130)
http://www.shalyapin.ru/forum/profile.php?mode=register (130)
http://www.sarinfo.org/forum/profile.php?mode=register (120)
http://nelubit.ru/profile.php?mode=register (100)
http://www.antisex.info/phpbb2/profile.php?mode=register (60)
http://forum.balletfriends.ru/profile.php?mode=register (50)
http://forum.rusbani.ru/profile.php?mode=register (50)
http://zoneland.ru/forum/profile.php?mode=register (40)
http://forum.av.by/profile.php?mode=register (30)
http://forummotor.israelinfo.ru/profile.php?mode=register (30)
http://wolfson.ru/forum/profile.php?mode=register (30)
http://forum.oslik.ru/profile.php?mode=register (30)
http://data-torrents.com/profile.php?mode=register (20)
http://forum.latfutbols.net/profile.php?mode=register (20)
http://www.forum.hyip-reflection.info/profile.php?mode=register (20)
http://wap.tanchiki.ru/for/profile.php?mode=register (10)

http://www.autoplustv.ru/forum/profile.php?mode=register (500)
http://www.spomir.ru/forum/profile.php?mode=register (350)
http://www.fireman.ru/talk/profile.php?mode=register (300)
http://www.fpss.ru/forum-new/profile.php?mode=register (240)
http://www.skaters.ru/forum/profile.php?mode=register (220)
http://www.a-ivanov.ru/forum/profile.php?mode=register (190)
http://abto-acc.ru/forum/profile.php?mode=register (150)
http://www.artdj.ru/forum/profile.php?mode=register (120)
http://doom-metal.ru/room/profile.php?mode=register (100)
http://www.frisbee.by/f/profile.php?mode=register&agreed=true (80)
http://www.texinfo.ru/forum/ucp.php?mode=register (80) [Profiilissa]
http://globax.biz/forum/profile.php?mode=register (70)
http://www.gracebyte.com/forum/profile.php?mode=register (70)
http://forumjnews.israelinfo.ru/profile.php?mode=register (60)
http://yartech.ru/forum/ucp.php?mode=register (40) [Profiilissa]
http://amrita-dance.ru/forum/profile.php?mode=register (30)
http://forum.isnet.ru/profile.php?mode=register (30)
http://forum.interair.ru/profile.php?mode=register (0
___________________________________________________________________

Viimeisin tietokantapäivitys oli 16.6.11(Lista on tyhjennetty rikkinäisistä linkeistä + muutamia sivustoja on lisätty, jotka ovat viivan alapuolella)

Luottamussivuston ansiosta et voi vain lisätä TIC:tä, vaan myös lisätä sivuston liikennettä! Mutta tätä varten tarvitset paljon hyviä luottamussivustoja, ja ne yleensä myydään jo rahalla. No, päätä itse, ostatko ne vai et...

Lopuksi voin sanoa, että älä rekisteröidy kerralla, kaikilla foorumeilla kerralla, muuten sivustosi voi joutua jonkinlaisen suodattimen alle. 5-8 päivässä riittää mielestäni. Kaikki. Onnea. 😉

Huomio!
Kirjoitan tämän muistiinpanon vuonna 2015 ja haluan sanoa, että nyt, mielestäni, kun jätät linkkejä blogiisi (sivustoon) näille tai muille, uudemmille luottamussivustoille, tuhlaat vain aikaasi. Siksi, jotta vältetään toistuvia kysymyksiä kommenteissa, kirjoitan tänne - tähän luetteloon ei tehdä päivityksiä.
Suosittelen tutustumaan listaani. Viestien lähettäminen tällaisiin blogeihin ei tietenkään ole yhtä tehokasta kuin ennen, mutta jälleen kerran, subjektiivisen mielipiteeni mukaan, se on monta kertaa tehokkaampaa.

FirePHP on firebug-laajennus, joka yhdessä sen pienen php-luokan kanssa mahdollistaa tietojen lähettämisen php:stä, esimerkiksi kaikenlaisia ​​var_dump- ja muita virheenkorjaustietoja, firebug-konsoliin Kaikki virheenkorjaustiedot lähetetään otsikoiden kautta, eivätkä ne roskaa sivuja eikä riko sovelluksen logiikkaa millään tavalla: http://firephp.org/.

Pääidea.

Yleinen profilointialgoritmi on seuraava:
  1. Sivun alussa otamme profiloinnin käyttöön käyttämällä xhprof_enable()
  2. Poista sivun lopussa profilointi käytöstä komennolla xhprof_disable() ja tallenna kerätyt tiedot komennolla save_run()
  3. Seuraavaksi käytämme firephp php -luokkaa asiakasosalle linkin profilointitietoihin
  4. Firebug-konsolissa avaamme tarvitsemamme tiedot
  5. Me iloitsemme :)
Haluaisin myös sanoa, että näiden toimintojen manuaalinen lisääminen PHP-skripteihin on tietysti hienoa. Mutta haluan, että nämä tiedot ovat aina käsillä kehityksen aikana, eivätkä päädy tuotantopalvelimille. Ratkaisemme tämän ongelman seuraavasti:

Projekteissamme lähes kaikissa skripteissä kytketään alussa työtiedosto, jossa on luokkalataaja, toimintojen yhdistäminen ja muut tarpeelliset asiat. Siksi sisällytimme profiloinnin tähän tiedostoon. Ja jotta voisimme kytkeä virheenkorjaustilan päälle/pois päältä halutessasi, lisäsimme määritysvakion tarkistuksen ja käärimme nämä tarkistukset joihinkin metatageihin, jotka poistetaan automaattisesti projektin rakentamisen yhteydessä. Sama koskee profiloinnin poistamista ja tietojen kirjoittamista otsikoihin firephp:n avulla - nämä tehtävät ratkaistaan ​​yhdellä funktiolla, joka kutsutaan jokaisen PHP-skriptin lopussa ja joka on myös kääritty metatageihin. Se näyttää jotakuinkin tältä:

// Seuraavat vakiot kirjoitetaan sovelluksen asetustiedostoon

/** Ympäristön toimintatapa * */
define("APPLICATION_ENV" , "dev" ); // dev - virheenkorjaus | pro -tuotantoa
/** Polku profiloijaan */
define("XHPROF_ROOT" , __DIR__ . "/ExtProcs/debug/xhprof-0.9.2");

/***************************************************************************************
* Seuraavaksi käynnistetään profilointi tiedostossa, joka ladataan kunkin skriptin alussa
* DEV_START ja DEV_END ovat sisällönkuvauskenttiämme, kaikki niiden väliltä leikataan pois kokoonpanon aikana
***************************************************************************************/

//-- DEV_START
//-- Debug-tilassa yhdistämme virheenkorjauskirjastot

// Lataa firephp
vaatia_kerran(__DIR__ . "/includes/ExtProcs/debug/firephp/FirePHP.class.php");
//-- lataa profiloija
"/xhprof_lib/utils/xhprof_lib.php");
vaatia_kerran(XHPROF_ROOT. "/xhprof_lib/utils/xhprof_runs.php");
// Alusta profilointi tarvittavilla lipuilla. Yksityiskohtainen kuvaus lipuista
// löytyy osoitteesta php.net/manual/ru/xhprof.constants.php
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
}
//-- DEV_END

// No, tätä funktiota kutsutaan jokaisen skriptin lopussa
// Sen puhelu on myös kääritty muotoihin DEV_START ja DEV_END

/**
* Luo linkki profiloinnin tulokseen ja näytä se konsolissa
*/
funktio dev_boot_Down() (
if (APPLICATION_ENV === "kehittäjä" ) (
// Alusta firephp-ilmentymä
$firephp = FirePHP::getInstance(true);
// Poista profilointi käytöstä ja tallenna tiedot
$xhprof_data = xhprof_disable();
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_ajo->tallenna_ajo($xhprof_data, "xhprof_testing" );
// Luo linkki profilointitietoihin ja kirjoita se konsoliin
$link = "http://" . $_SERVER["HTTP_HOST" ] . "/includes/ExtProcs/debug/xhprof-0.9.2/xhprof_html/index.php?run=($run_id)&source=xhprof_testing\n";
$firephp->info($link, "profilointitiedot" );
}
}


* Tämä lähdekoodi korostettiin Source Code Highlighterilla.

En mene yksityiskohtiin näiden laajennusten asentamisesta, koska kaikki on yksinkertaista. Kerron vain joistakin asennuksen näkökohdista. xhproofilla on vain yksi konfiguraatiomuuttuja - xhprof.output_dir, joka osoittaa kansioon, johon profilointitiedot tallennetaan. Siksi varmista, että käyttäjällä, jolla PHP-skriptit suoritetaan, on kirjoitusoikeudet määritettyyn hakemistoon. Joten kirjoita jotain tällaista php.ini-tiedostoon:


extension=xhprof.so
xhprof.output_dir="/var/tmp/xhprof"

Ei myöskään ole huono idea asentaa jotain, kuten dot tai Graphviz, piirtämään puhelukaavioita. Minulla on Graphviz MacOS X:ssä.

Suoritettuamme yllä kuvatut toimenpiteet, pystyimme milloin tahansa avaamaan ja katsomaan minkä tahansa skriptimme profiloinnin suoraan selaimessa.