quarta-feira, 7 de novembro de 2012

Dreamweaver, Zen Coding e arquivos diferentes

Utilize o Zen Coding para deixar o seu Dreamweaver mais esperto

Adobe Extension Manager CS4 com Zen Coding habilitado
No site http://code.google.com/p/zen-coding/, procure em downloads o arquivo Zen Coding for Dreamweaver (arquivo .mxp), execute-o usando Adobe Extension Manager.

Como fazer o Dreamweaver reconhecer códigos em arquivos .ctp, .inc, etc

Para facilitar a vida, o Dreamweaver reconhece alguns tipos de arquivos e adiciona estilos de cor para códigos (como exemplo o Php). Porém, quando tentamos editar um arquivo .ctp (view do CakePHP) ou .inc por padrão os códigos são entendidos como texto puro. Para alterar tal configuração a acesse o arquivo MMDocumentTypes.xml na pasta C:\Program Files (x86)\Adobe\Adobe Dreamweaver CS4\configuration\DocumentTypes (ou
C:\Program Files\Adobe\Adobe Dreamweaver CS4\configuration\DocumentTypes para Windows 32 bits) e  adicione a extensão no tipo de documento que deseja. Por exemplo:
<documenttype file="Default.php" id="PHP_MySQL" internaltype="Dynamic" macfileextension="php,php3,php4,php5" servermodel="PHP MySQL" winfileextension="inc,ctp,php,php3,php4,php5" writebyteordermark="false"></documenttype>
  Maiores informações no site da Adobe: http://helpx.adobe.com/dreamweaver/kb/change-add-recognized-file-extensions.html

sexta-feira, 28 de setembro de 2012

CakePHP no IIS (Locaweb)

Considerando que a instalação do CakePHP está dentro da pasta httpdocs/cake

1º - O arquivo cake/.htaccess deverá ficar assim:

RewriteEngine on
RewriteRule ^(.*)$ app/webroot/$1
RewriteCond %{APPL_PHYSICAL_PATH}cake\\app\\webroot\\$1 !-d
RewriteCond %{APPL_PHYSICAL_PATH}cake\\app\\webroot\\$1 !-f
RewriteRule ^app/webroot(.*)$ index.php?url=$1 [L]

2º - Acrescente a seguinte linha no cake/app/webroot/index.php:
$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];

3º - Apague os demais .htaccess:
delete: cake/app/.htaccess
delete: cake/app/webroot/.htaccess

sexta-feira, 22 de julho de 2011

Pacotes com destino 239.255.255.250:1900

Ao executar o Microsoft Network Monitor, numa rede de aproximadamente 900 equipamentos foi verificado a existência de vários frames que continham pacotes destinados ao endereço 239.255.255.250 porta UDP 1900. O conteúdo do pacote é formado por informações SSDP, que de acordo com o site UPnP.org trata-se de um serviço de descoberta.
O site da Microsoft também tem informações sobre este serviço e descreve o seguinte:
"O Serviço SSDP Discovery implementa o protocolo SSDP (Simple Service Discovery) como um serviço do Windows. O Serviço SSDP Discovery gerencia o recebimento de comunicados de presença de dispositivo, atualiza o seu cache e passa essas notificações para os clientes com solicitações de pesquisa pendentes. O Serviço SSDP Discovery também aceita o registro de eventos de retorno de chamadas de clientes, os transforma em solicitações de assinatura e monitora notificações de eventos. Em seguida, passa essas solicitações para os retornos de chamadas registrados. Esse serviço do sistema também fornece dispositivos hospedados com comunicados periódicos. Atualmente, o serviço de notificação de evento SSDP usa a porta TCP 5000. Ao iniciar o próximo service pack do Windows XP, ele confiará na porta TCP 2869."
Quem quiser desabilitar, o serviço é nomeado como Serviço de descoberta SSDP no Windows. Procure-o na lista de serviços (executar: services.msc) e desative-o. Se por algum motivo continuar o trafego de dados acesse este site http://support.microsoft.com/?kbid=317843.

Fontes:
Site UPnP.org, http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0.pdf em 22-07-2011;
Site Microsoft, http://support.microsoft.com/kb/832017/pt-br em 22-07-2011.

terça-feira, 19 de julho de 2011

Efeito movimento AS2

Efeito de movimento com Action Script 2. Basta criar um MovieClip e nomear a instancia de "b".
var vX = 0;
var vY = 0;
var pX;
var pY;
var soltou = false;
var arrasto = 0.999;
var xMinimo = 20;
var yMinimo = 20;
var xMaximo = 800;
var yMaximo = 600;

b.onPress = function() {
    vX = 0;
    vY = 0;
    this.startDrag(false);
}
b.onRelease = soltar;
b.onReleaseOutside = soltar;

function soltar() {
    soltou = true;
    this.stopDrag();
}

b.onEnterFrame = function() {
    if (soltou) {
        soltou = false;
        vX = this._x - pX;
        vY = this._y - pY;
    }
   
    pX = this._x;
    pY = this._y;
   
    vX = vX * arrasto;
    vY = vY * arrasto;
   
    // inverter
    if ((this._x>xMaximo && vX>0) || (this._x<xMinimo && vX<0)) {
        vX = vX * -1;
    }
    if ((this._y>yMaximo && vY>0) || (this._y<yMinimo && vY<0)) {
        vY = vY * -1;
    }
    this._x += vX;
    this._y += vY;
}