martes, 27 de mayo de 2014

Instalar el Framework Zend de PHP en una Mac con MAMP

El Framework de desarrollo para PHP, Zend, tiene más de 10 millones de descargas, lo cual lo hace la herramienta más difundida y potente para este lenguaje para desarrollar bajo el esquema MVC.

1. Entrar a zend.com
2. Registrarse en la página
3. Bajar el framework ver 1 o 2 en zip o tar
4. Desempaquetar y guardar el directorio en "htdocs"
5. Generalmente se renombra el directorio a un nombre más sencillo (zf)
5. Abrir el php.ini
6. Buscar el init_path
7. Aumentar la ruta hacia la librería de zf /Application/MAMP/htdocs/zf/libray/
8. Abrir la terminal de Mac /Application/utilities/terminal
9, Crear una "alias": alias zf=/Application/MAMP/htdocs/zf/bin/zf.sh
10. Probar el alias con: zf show version
11. Apaga los servicios de MAMP y vuelves a encender para que se tomen los cambios

Crear un proyecto en Zend

1. Entrar a la terminal de Mac
2. Cambiarse al directorio htdocs cd /Applications/MAMP/htdocs
3. Utiliza el alias creado en la sección anterior: zf create project miAplicacion
4. Verificar las nuevas parapetas en htdocs/miAplicacion
5. Carpetas:
applications
docs
library
public
test
6. Probar la aplicación en un navegador con localhost:8888/miAplicacion/public
7. No deberá aparecer ninguna pantalla de error.


Crear una conexión con mysql-workbench
1. Debe bajar el myslq-workbench de mysql.com. La liga puede cambiar frecuentemente: http://dev.mysql.com/downloads/tools/workbench/
2. Instalarlo en la computador (quizás haga falta bajar la utilería adicional)
3. Abrirlo y debe hacer ya la conexión a MAMP

4. Pulse sobre el recuadro "local instance 8889" y voila!!! ya tendrá el editor

miércoles, 21 de mayo de 2014

ActionScript: Flecha que se estira (AS 3.0)

Autor: Francisco Arce
Correo: fj_arce@yahoo.com.mx


Esta basado en el algorito para una lineaque se estira. Aqui el chiste es dibujar la punta de la flecha y hacer que gire en el mismo ángulo que tenga la línea. Para obtener este ángulo, contamos con los puntos de la linea (el inicial y el final) y calculamos el arco tangente, el cual nos regresa el angulo en radianes. Los convertimos a grados y aplicamos la propiedad rotación. Acuerdate que los angulos en FLash estan desplazados 90 grados , por lo que ajustamos el mismo.

Como siempre se calcula la linea y la punta solo se rota, no hay distorsión. El código de la clase Flecha es el siguiente:

package {
   import flash.display.Sprite;
   import flash.events.MouseEvent;
   import flash.utils.Timer;
   import flash.events.TimerEvent;

   public class Flecha extends Sprite {
      var flecha:Sprite = new Sprite();
      var tiempo:Timer = new Timer(60,0);
      var contenedor:Sprite;
      var cuadro1:Sprite;
      var cuadro2:Sprite;
      var ancho:uint=10;
      var alto:uint=15;
      var x1:int=0;
      var y1:int=0;
      var x2:int=100;
      var y2:int=100;
      var color:uint=0;

      public function Flecha(xx,yy,lon,color):void {
      //Sujetador
      this.color=color;
      this.x1=xx;
      this.y1=yy;
      this.x2=xx+lon;
      this.y2=yy;
      //
      flecha.graphics.beginFill(0,.7);
      flecha.graphics.moveTo(-(ancho/2),-alto);
      flecha.graphics.lineTo(ancho/2,-alto);
      flecha.graphics.lineTo(0,0);
      flecha.graphics.lineTo(-(ancho/2),-alto);
      //
      addChild(flecha);
      flecha.x=x2;
      flecha.y=y2;
   //
   //Calcula segmentos
   var dx:Number=x1-x2;
   var dy:Number=y1-y2;

   //Determina el ángulo y lo convierte
   var radianes:Number=Math.atan2(dy,dx);
   var grados = 360*(radianes/(2*Math.PI));

   // point at cursor
   flecha.rotation=grados+90;
   //
   cuadro1=new Sprite ;
   cuadro1.graphics.beginFill(0xffffff);
   cuadro1.graphics.lineStyle(1,0,1);
   cuadro1.graphics.moveTo(0,0);
   cuadro1.graphics.lineTo(0,5);
   cuadro1.graphics.lineTo(5,5);
   cuadro1.graphics.lineTo(5,0);
   cuadro1.graphics.lineTo(0,0);
   //Sujetador 2
   cuadro2=new Sprite ;
   cuadro2.graphics.beginFill(0xffffff);
   cuadro2.graphics.lineStyle(1,0,1);
   cuadro2.graphics.moveTo(0,0);
   cuadro2.graphics.lineTo(0,5);
   cuadro2.graphics.lineTo(5,5);
   cuadro2.graphics.lineTo(5,0);
   cuadro2.graphics.lineTo(0,0);
   //
   contenedor=new Sprite ;
   contenedor.graphics.lineStyle(2,color,.7);
   contenedor.graphics.moveTo(x1,y1);
   contenedor.graphics.lineTo(x2,y2);
   //contenedor.x=xx;
   //contenedor.y=yy;
   addChild(contenedor);
   addChild(cuadro1);
   addChild(cuadro2);
   //
   cuadro1.x=x1-2.5;
   cuadro1.y=y1-2.5;
   cuadro2.x=x2-2.5;
   cuadro2.y=y2-2.5;
   //
   cuadro1.addEventListener(MouseEvent.MOUSE_DOWN, onMueveCuadro1);
   cuadro2.addEventListener(MouseEvent.MOUSE_DOWN, onMueveCuadro1);
   //
   cuadro1.addEventListener(MouseEvent.MOUSE_UP, onMueveCuadro2);
   cuadro2.addEventListener(MouseEvent.MOUSE_UP, onMueveCuadro2);
   }

   function onMueveCuadro1(e:MouseEvent):void {
      e.target.startDrag();
      tiempo.start()
      tiempo.addEventListener(TimerEvent.TIMER, onPintaLinea);
      //trace("inicio",e.target.name,e.target.x, e.target.y);
   }

   function onMueveCuadro2(e:MouseEvent):void {
      //trace("fin", e.target.name, e.target.x, e.target.y);
      e.target.stopDrag();
      tiempo.stop();
      pintaLinea();
   }

   function onPintaLinea(e:TimerEvent):void {
      pintaLinea();
   }

   function pintaLinea() {
      //
      //Calcula segmentos
      var dx:Number=cuadro1.x-cuadro2.x;
      var dy:Number=cuadro1.y-cuadro2.y;
      //
      //Determina el ángulo y lo convierte
      var radianes:Number=Math.atan2(dy,dx);
      var grados = 360*(radianes/(2*Math.PI));
      flecha.rotation=grados+90;
      flecha.x = cuadro2.x+2.5;
      flecha.y = cuadro2.y+2.5;
      //
      this.removeChild(contenedor);
      contenedor=new Sprite ;
      contenedor.graphics.lineStyle(2,color,1);
      contenedor.graphics.moveTo(cuadro1.x+2.5,cuadro1.y+2.5);
      contenedor.graphics.lineTo(cuadro2.x+2.5,cuadro2.y+2.5);
      addChild(contenedor);
      swapChildrenAt(3, 0);
   }
}
}

http://www.pacoarce.com

lunes, 5 de mayo de 2014

Acentos en HTML5


Los acentos en HTML5, y en HTML en general se manejan con el atributo charset. Lo podemos definir como UTF-8 o ISO-8859-1.

Si no se tiene la etiqueta <meta>, podemos escribir los siguientes símbolos en sustitución:

á -> &aacute;
é -> &eacute;
í -> &iacute;
ó -> &oacute;
ú -> &uacute;
ñ -> &ntilde;


Algunos editores trabajan con UTF-8 y si abrimos un documento en ISO-8859-1, nos pueden traer caracteres "extraños", como cuando se trabaja en Windows y lo abrimos en una MAC.

Para XHTML podemos usar:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />o
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

Para HTML5 esta etiqueta es más sencilla:

<meta charset="UTF-8">

También debemos de verificar si nuestro servidor no tiene algún charset diferente invado, el cual tenga conflicto con neutra etiqueta <meta>.

Por lo general, en Linux el chaset se encuentra en:

/etc/apache2/conf.d/charsettambién puede cambiarse en el archivo httpd.conf

Si tienes problemas con PHP, puedes añadir un encabezado a cada página como el siguiente:



<?php
header
('Content-Type: text/html; charset=UTF-8'); ?>

http://www.pacoarce.com