Vector logo of the PHP programming language wi...

Hoje eu atingiu uma luz de leitura para php esconderijo o html. Aqui falamos de cache a saída do nosso código não as've escrito para cache para skritpovete opcode nível com eAccelerator. Então, o que tem tudo a ver – vamos nos lembrar do trabalho rápido de php-lo. Nós enviar pedido web server-a ни той приема параметрите който подаваме след това той ги подава на php скрипта той се компилира и плюе резултат в html вариант. Това е в доста общи линии. Qual será a nossa idéia aqui para ignorar pedidos, para ignorar grandes blocos ou não tão grande como blocos pintados saída diretamente uma vez que já compilado. As vantagens são evidentes – reduzindo o tempo de execução, menos carga e consumo de recursos. Ele geralmente não é detectar água quente ou algo que sabe como é complicado. Há muitas classes para este efeito, como PHP Pera Cache_Lite que tem um belo recurso, mas eu acho que no futuro a escrever com a estrutura muito aliviado e mina as suas necessidades de armazenamento em cache. Сега ще разгледаме най аборигенския вариант с 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();

Горния код е тривиален но нека да обясним какво стана. Първо декларираме от коя част в кода започва кеширането. Em seguida, gerar um código de saída forma padrão. След това генерирания изход се присъединява към променлива която ще е достъпна по късно дали през файл някакво или през sessions това си е ваше решение. Finalmente Limpar e desativar caching. operação bastante trivial se dissesse cache de geenriraneto passa por enormes blocos de código para que possamos guardar um monte de tempo de CPU como um cache por um tempo ou para uma única sessão. Agora é tudo sobre o que você quer saber se é cache disponível ao público ou acessível ao usuário diferente.

Reforçada por Zemanta

O seguinte artigo pode ser o auge da estupidez, mas como eu sempre digo que eu sou um administrador melhor do que o codificador. Ontem, enquanto draŝeh o AJAX script e tinha que enviar alguns dados que eu uso para sua validação hash porque o script não compartilha a matriz de sessão $ _ e as coisas se tornam um pouco incertas. Isso é por que o seguinte mexer todos os pameri, enviado por correio ou torná-las um hash md5 de parâmetros konkateriranite e então comparar. Em geral não um regime mau eu acho. Heširaŝi algoritmos para essa finalidade Bowl MD5 , SHA, DESC e assim por diante. Aqui as coisas são claras para dizer, Ele vai usar os parâmetros de hash MD5 (como fazer factual). Temos 3 o parâmetro enviado no começ eu = 1 n = 2 m = 3 e dizer hešriane Stringé 123 O que nos faz a seguinte 202cb962ac59075b964b07152d234b70 de hash MD5. Nada aqui que sabe o que interessante. Este hash vai cair por alguns segundos em qualquer ataque. Aqui é o simples sal e pimenta a minha ideia. Vamos dizer que tomo o primeiro e o último personagem da sequência de caracteres e swap seus lugares desta forma produz um hash de 002cb962ac59075b964b07152d234b72 se alguém já se eu não tivesse lido o código nos que idiotice faz mau hacking tentativa. Hash real é outro e até mesmo para ser izsnifen é absolutamente inútil. Mas por que parar aqui, podemos dividir o hash de diversos blocos, Neste caso, é o MD5 32 Se o símbolo é dividido em 4 blocos 8 personagens e seus lugares de movimento torna-se ainda mais desconfortável posição. Далеч най приятния ефект е, че визуално си е стандартен 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

Para mover um projeto no qual ativo sem controle sobre as versões do programa hoje em dia é uma loucura. Geralmente há vários bazaar de opções , Mercurial , git , svn . Então, aqui, se você pretende explicar qual controle de versão é melhor e por que não será. Nos Estados Unidos, usamos git. Causar uma série de – fácil de configurar, É muito versátil, Foi escrito por Linus Torvalds para a versão do Linux Kernel para servir, os últimos são pelo menos 2 razões 😉 . Hoje eu tive que criar um novo repositório, Eu comecei um novo projeto. Na verdade eu criei alguns repositórios e há muito tempo atrás, quando foi preciso e esqueci o finas neste Momento. Criar múltiplas armazenamento de arquivo para a primeira loja hit que tudo correu exatamente. O cenário em si era padrão:

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

Basicamente, não se passa nada. Então eu decidi testar a partir de uma máquina remota para preservar o conteúdo e tentando empurrá-lo-com minha mensagem feia aparece:

Empurrando para git://gitHost/projeto
remoto: erro: recusando-se a atualização saiu filial: refs/heads/mestre
remoto: erro: Por padrão, Atualizando o ramo atual em um repositório não-bare
remoto: erro: é negado, Porque ele vai fazer a árvore de índice e trabalho inconsistente
remoto: erro: com o que você empurrou, e exigirá ‘ git redefinir –difícil’ a combinar
remoto: erro: a árvore de trabalho a cabeça.
remoto: erro:
remoto: erro: Você pode definir ‘ receive.denyCurrentBranch’ variável de configuração para
remoto: erro: ‘ ignorar’ ou ‘ avisar’ no repositório remoto para permitir que adentrando
remoto: erro: seu ramo atual; no entanto, Isso não é recomendado a menos que você
remoto: erro: arranjado para atualizar sua árvore de trabalho para coincidir com o que você empurrou em alguns
remoto: erro: outra maneira.
remoto: erro:
remoto: erro: Silenciar esta mensagem e ainda manter o comportamento padrão, conjunto
remoto: erro: ‘ receive.denyCurrentBranch’ variável de configuração para ‘ recusar ’.
Para git://gitHost/projeto
! [controle remoto rejeitado] Mestre-> Mestre (filial atualmente check-out)
erro: Não conseguiram empurrar alguns juízes para ‘ git://gitHost/projeto’

Então, obviamente eu tento komitvam na árvore principal do projeto e o software educadamente me cortar. No geral, eu tenho nenhuma intenção de fazer o ramo adicional porque as pessoas envolvidas nos projetos são claras e uma série de outras razões. Тука идва момента да отбележа че съм дефинирал много некадърно заглавието но това е друг момент. Като цяло решението на проблема е тривиално в .git/config на проекта ви трябва да добавите следната директива:

[receive]
denyCurrentBranch = false

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

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

Packet Tracer

Image via Wikipedia

Днес ми се наложи да демонстрирам една симулация през Cisco Packet Tracer на машина на която не беше инсталиран. В общи линии малоумщината е, че стимулатора на Cisco е за x86 машини а при мен машината беше x64. При опит за инсталация умира с грозното съобщение

Attempting to install package now
dpkg: error processing PacketTracer-5.3_3.i386.deb (–instalar o):
package architecture (i386) does not match system (amd64)
Errors were encountered while processing:
PacketTracer-5.3_3.i386.deb

Общо взето всичко е очевидно Debian-ския пакет не иска да се инсталира защото е за друга архитектура. От тук нататък проблема е ясен dpkg + форсирано инсталиране за да байпаснем грешката за различна платформа. Bin-ския файл на инсталатора реално е само разархивиращ се архив който се разархивира в /tmp/selfextract.XXXXX папка където XXXXX е произволен низ. В тази директория се намира .deb файлът на Packet Tracer-a. Инсталацията се извършва с командата

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

Естествено с root права.

Reforçada por Zemanta