Vector logo of the PHP programming language wi...

Днес ще драсна едно леко четиво за php cache päälle html. Тука говорим за кеширане на изхода от кода ни а не както съм писал да кешираме скритповете до opcode ниво с eAccelerator. Така за какво иде речнека да си припомним на бързо работата на php-то. Подаваме заявка на web server-a ни той приема параметрите който подаваме след това той ги подава на php скрипта той се компилира и плюе резултат в html вариант. Това е в доста общи линии. Каква ще е идеята ни тука да прескачаме заявки, да прескачаме големи блокове или не чак толкова големи блокове като директно изрисуваме вече веднъж компилирания изход. Преимуществата са очевиднинамаляна на времето за изпълнение, по малко натоварване и потребление на ресурси. Като цяло не е откриване на топлата вода нито е нещо кой знае колко сложно. Има множество класове за тая цел като PHP Pear Cache_Lite който разполага с прекрасна функционалност но аз мисля в бъдеще да си напиша мой с доста по облекчена структура и мой си изисквания към кеширането. Сега ще разгледаме най аборигенския вариант с Output Control Functions. Така нека да кешираме нещо

//start cache all output after that will be saved

ob_start();

//generate output

echo 'Some dynamic output';

echo 'Some other dynamic output ...';

//assign output into variable

$var=ob_get_contents();

//close cache output

ob_end_flush();

Горния код е тривиален но нека да обясним какво стана. Първо декларираме от коя част в кода започва кеширането. След това си генерираме по стандартен начин изхода от кода. След това генерирания изход се присъединява към променлива която ще е достъпна по късно дали през файл някакво или през sessions това си е ваше решение. Накрая изчистваме и прекратяваме кеширането. Съвсем тривиална операция ако да речем геенрирането на кеша минава през огромни блокове от код така можем да спестим доста процесорно време като кешираме за известно време или за една сесия. Вече всичко опира то това какво искате дали да е общодостъпен кеша или да е достъпен за различен потребител.

Parannettu Zemanta

Seuraava artikkeli voi olla huippu tyhmyys, mutta kuten olen aina sanonut, että olen parempi kuin koodaaja ylläpitäjä. Eilen kun drameh ne, AJAX käsikirjoituksen ja piti lähettää joitakin tietoja, jotka et koskaan käytä hash, koska kirjoitus ei jaa $_SESSION array ja se kaikki tulee vähän hutera. En siis tee seuraavat swindin kaikki ens jotka on esitetty POSTITSE tai tehdä niistä yksi md5 hash confererence parametrit, ja sitten verrata sitä. Kaiken kaikkiaan ei ole huono järjestelmä, mielestäni. Hashirama algoritmeja tähän tarkoitukseen bol MD5 , SHA, DESC.. Jopa täällä kaikki on selvää sanoa, se käyttää MD5 hash parametrit (kuten deistvitelnost tehdä). Meillä on 3 parametri, joka palvelee SAADA, i=1, n=2 m=3 sanoa line hesione on 123 mikä tekee meistä seuraavat MD5 hash 202cb962ac59075b964b07152d234b70. Ei ole paljon mielenkiintoisia. Tämä hash laskee muutaman sekunnin mistään hyökkäys. Nyt siellä on suolaa ja pippuria minun yksinkertainen idea. Sanoa, että ensimmäinen ja viimeinen merkki merkkijono, sekä niiden osuus tilaa, joten 002cb962ac59075b964b07152d234b72 hash jo, jos joku, jos et ole lukenut koodi typeryys, se tekee asioista zagrujat kun yrität rikkoa. Todellinen hash on erilainen, ja jopa izsnifen erittäin hyödytön. Mutta miksi lopettaa siellä voimme jakaa hash useita lohkoja, MD5 tässä tapauksessa pituus on 32 - symboli, jos jaettuna 4 lohko 8 symbolit ja niiden sijainti muutos tulee jopa enemmän epämiellyttävä asema. Далеч най приятния ефект е, че визуално си е стандартен md5 хеш и злия хахор може да си чупи докато има желание. Не съм добър по криптиране и не мога да пледирам за нещо кой знае колко фундаментално и прочие но ми допада колко е семпло като идея и реализация и съвременно надеждността е критично висока не като на нормалния MD5 които с една по грамотна видео карта се чупи за норматив.

Ето и примерен код за първата идея с размяната на първия и последния символ елементарен код от 3 реда 🙂

<?php

$hash = '202cb962ac59075b964b07152d234b70';

$first = substr($hash,0,1);
$last = substr($hash,-1);
$rest = substr($hash,1,30);
$hash = $last.$rest.$first;
echo "The real hash is : $str <br> inverted hash is : $hash";

?>

http://www.youtube.com/watch?v=Fvje9dzBHPM

Siirrä projekti, joka on ohjelmoitu ilman aktiivista versionhallinta tällä hetkellä, tämä on täyttä hulluutta. Yleensä on monia vaihtoehtoja markkinoilla , mercurial , git , svn . Joten, jos aiot täytyy selittää, mitä versio valvonta on parempi, ja miksi ei. Me käytämme git. Syitä on monia – helppo säätää, erittäin joustava, kirjoittanut Linus Torvalds ylläpitää Linux-Ytimen versio, jälkimmäinen ainakin 2 syitä 😉 . Tänään minun piti luoda uusi arkisto, uusi projekti. Itse olen luonut muutaman arkistot ja se on hyvin kauan sitten, kun vietimme ja unohtaa hienovarainen pistettä, että. Luo repository ovat kohdanneet muutamia tiedostoja varastointiin aluksi kaikki meni juuri. Sam meni kauppaan, oli standardi:

git init
echo "Short project's description" > .git/description
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git commit -a
touch .git/git-daemon-export-ok

Yleisesti, mitään, että ei ole oikein. Sitten päätin tarkistaa kauko-kone syrana sisältö ja yrittää push-olen lyönyt ruma viesti:

Ajaa git://gitHost/hanke
kauko: virhe: kieltäytyy päivittää kassalla branch: refs/päät/master
kauko: virhe: Oletuksena, päivittäminen nykyinen haara ei-paljas repository
kauko: virhe: evätään, koska se tekee indeksi ja työskennellä puu epäjohdonmukainen
kauko: virhe: mitä sinä työnsit, ja vaatii &#8216;git reset –kova’ ottelu
kauko: virhe: työ puu PÄÄ.
kauko: virhe:
kauko: virhe: Voit asettaa &#8216;vastaanottaa.denyCurrentBranch’ kokoonpano muuttuja
kauko: virhe: &#8216;sivuuttaa’ tai &#8216;varoittaa’ kauko arkistoon, jotta tunkee
kauko: virhe: sen nykyinen haara; kuitenkin, tämä ei ole suositeltavaa, jos et
kauko: virhe: järjestetty päivittää työnsä puu vastaamaan mitä olet ajanut joissakin
kauko: virhe: muulla tavalla.
kauko: virhe:
kauko: virhe: Voit litinä tämä viesti ja vielä pitää oletuksena käyttäytymistä, asettaa
kauko: virhe: &#8216;vastaanottaa.denyCurrentBranch’ kokoonpano muuttuja &#8216;*&#8217;.
Git://gitHost/hanke
! [kauko-hylätty] mestari> mestari (haara on tällä hetkellä kassalla)
virhe: ei push joitakin refs &#8216;git://gitHost/hanke’

Niin, ilmeisesti, yrittää comitan tärkein projekti puu ja ohjelmisto pysäytti minut. Yleisesti ottaen olen aio tehdä ylimääräisiä osia, koska ihmiset, jotka ovat mukana hankkeissa ovat selkeät ja useita muita syitä. Тука идва момента да отбележа че съм дефинирал много некадърно заглавието но това е друг момент. Като цяло решението на проблема е тривиално в .git/config на проекта ви трябва да добавите следната директива:

[receive]
denyCurrentBranch = false

След това всичко си идва на мястото.

http://www.youtube.com/watch?v=16bRiH5zfOY

Packet Tracer

Kuvan kautta Wikisanakirja

Tänään minulla oli osoittaa simuloinnin Cisco paketti merkkiaineen avulla kone on joka ei ole asennettu. Yleensä maloumŝinata on, simulator Cisco on x86 koneita ja minulle kone saatiin x64. Kun yrität asentaa kuolee ruma viesti

Yrität asentaa paketti nyt
dpkg: Virhe käsiteltäessä PacketTracer-5.3_3.i386.deb (–asentaa):
Paketti arkkitehtuuri (i386) ei vastaa järjestelmän (amd64)
Virheitä tapahtui käsiteltäessä:
PacketTracer-5.3_3.i386.deb

Aika paljon kaikkea on tietenkin Debian-Pan Paketti haluaa asentaa, koska se on erilainen arkkitehtuuri. Siitä tässä on, on selkeä ongelma dpkg + forsirano voimme ohittaa eri alustan virheen. Bin-Pan asennusohjelma tiedosto on vain razarhiviraŝ on että arkisto purkaa osaksi/tmp/selfextract. Kansioon, jossa XXXXX XXXXX merkkijonoa. Tässä kansiossa sijaitsevat. Noudetun paketin merkkiaineen a. Asennus on valmis komennolla

dpkg -i --force-all /tmp/selfextract.XXXXX/PacketTracer-5.3_3.i386.deb

Tietysti root oikeuksilla.

Parannettu Zemanta