Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

4 de junio de 2008

Nueva versión , jQuery1.2.6


Hola a todos los seguidores del blog, pues les cuento que jQuery acaba de sacar su nueva versión, según lo que leí se salto de la versión 1.23 a la 1.2.6 directamente y arreglaron muchos bugs y se incremento el rendimiento en cuanto al manejo de eventos, selectores css y mucho mas....



hasta la vista...

4 de mayo de 2008

Random Color Animation con AS2

Hola quetal, bueno estaba buscando como hacer una transicion de colores con AS y lo que encontre fue el siguiente ejmplo en kirupa , pero es para flash 5 y personalmente no me gusta como organiza su codigo dentro de los clips de pelicula. A todo esto hice algo parecido con AS2, el efecto logrado es practicamente el mismo solo que usando clases de AS2 , para que lo vean es asi como queda...






Bueno el codigo para el funcionamiento de la animacion es el siguiente:



import flash.geom.ColorTransform;
import flash.geom.Transform;
import mx.transitions.*;

class ColorAnim extends MovieClip{

private var micolor:ColorTransform;
private var cambiarColor:Transform;
private var Rcolor:Tween;
private var Gcolor:Tween;
private var Bcolor:Tween;
private var segundos:Number=3;
private var tono:Number=4;

var cantidadRojo:Number;
var cantidadAzul:Number;
var cantidadVerde:Number;

public function ColorAnim(){
micolor = new ColorTransform();
cambiarColor=new Transform(this);
getColores();
Rcolor=new Tween(micolor,"redOffset",null,micolor.redOffset,cantidadRojo,segundos,true);
Gcolor=new Tween(micolor,"blueOffset",null,micolor.blueOffset,cantidadAzul,segundos,true);
Bcolor=new Tween(micolor,"greenOffset",null,micolor.greenOffset,cantidadVerde,segundos,true);
animar();
}

private function getColores():Void{
switch (tono){
case 1: // tonos claros
cantidadRojo=claros();
cantidadAzul=claros();
cantidadVerde=claros();
break;
case 2: // tonos medios
cantidadRojo=medios();
cantidadAzul=medios();
cantidadVerde=medios();
break;
case 3: // tonos oscuros
cantidadRojo=oscuros();
cantidadAzul=oscuros();
cantidadVerde=oscuros();
break;
case 4: // prevalece el rojo
cantidadRojo=claros();
cantidadAzul=oscuros();
cantidadVerde=oscuros();
break;
case 5: // prevalece el verde
cantidadRojo=oscuros();
cantidadAzul=oscuros();
cantidadVerde=claros();
break;
case 6: // prevalece el azul
//trace("azul");
cantidadRojo=oscuros();
cantidadAzul=claros();
cantidadVerde=oscuros();
break;
}
}

private function oscuros():Number{
return randRange(0,85);
}
private function medios():Number{
return randRange(85,170);
}
private function claros():Number{
return randRange(170,255);
}
private function randRange(min:Number, max:Number):Number {
var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min;
return randomNum;
}
public function animar():Void{
var clase:ColorAnim=this;
Rcolor.onMotionChanged=function() {
clase.interpolar(clase);
}
Rcolor.onMotionFinished=function () {
clase.ciclico(clase);
}
}
private function interpolar(claseBase:ColorAnim){
//trace("red="+claseBase.micolor.redOffset+" green="+claseBase.micolor.greenOffset+" blue="+claseBase.micolor.blueOffset);
claseBase.micolor.redOffset=Math.round(claseBase.micolor.redOffset);
claseBase.micolor.blueOffset=Math.round(claseBase.micolor.blueOffset);
claseBase.micolor.greenOffset=Math.round(claseBase.micolor.greenOffset);
//trace("red="+claseBase.micolor.redOffset+" green="+claseBase.micolor.greenOffset+" blue="+claseBase.micolor.blueOffset);
claseBase.cambiarColor.colorTransform = claseBase.micolor;

}
private function ciclico(claseBase:ColorAnim){
// trace(claseBase.Rcolor+" "+claseBase.Gcolor);
//trace("fin:"+claseBase.micolor);
getColores();
//trace("r="+cantidadRojo+" v="+cantidadVerde+" b="+cantidadAzul);
claseBase.Rcolor.continueTo(cantidadRojo,claseBase.segundos);
claseBase.Gcolor.continueTo(cantidadVerde,claseBase.segundos);
claseBase.Bcolor.continueTo(cantidadAzul,claseBase.segundos);
}

function set intervalo(t:Number):Void{
segundos=t;
}
function get intervalo():Number{
return segundos;
}

}


Para hacer esto cree un clip de pelicula y lo "linkee" (enlace) a la clase "ColorAnim" y listo..
bueno explicar el codigo ahorita me da fiaca, pero con gusto si tienen preguntas les respondo.
Y espero que este ejemplo le sirva a alguien o le oriente para lo que este haciendo, aqui pueden descargar el fla.

6 de octubre de 2007

Sitio Javascript manuales, código....

En la web acabo de ver un sitio interesante sobre JavaScript. En el encuentras explicaciones, manuales y código.
La dirección es:
http://www.javascriptya.com.ar

11 de septiembre de 2007

Diseña tu XHTML y CSS layout con YAML Builder

YAML fue realizado como una base para realizar maquetados o layouts flexibles, con una fuerte énfasis en los retos que resultan de trabajar con contenedores elásticos.

Las características mas importantes.

  • Un maquetado flexible y accesible con una cabecera y pie de pagina, un área de contenido con 2 o 3 columnas.
  • Vista de maquetados compatible en varios exploradores.
YAML Builder viene como una previsualizacion de como sera tu maquetado con CSS, XHTML y todo en el propio navegador, una vez que diseñes tu maquetado puedes copiar el código generado y utilizarlo con el framework yaml.


Realmente sabes como usar prototype?, aqui algunos consejos

prototype_logo.jpgMuchos o al menos la mayoria conocemos y hemos utilizado Prototype (un framework para javascript) pero ¿realmente lo estamos utilizando bien?. La siguiente es una lista de las maneras correctas de usar prototype en determinados casos.

La manera incorrecta:

  1. document.getElementById(‘foo’)

La manera correcta:

  1. $(‘foo’)

La manera incorrecta:

  1. var woot = document.getElementById(‘bar’).value

  2. var woot = $(‘bar’).value

La manera correcta:

  1. var woot = $F(‘bar’)

La manera incorrecta:

  1. $(‘footer’).style.height = ‘100px’;
  2. $(‘footer’).style.background = ‘#ffc’;

La manera correcta:

  1. $(‘footer’).setStyle({
  2. height: ‘100px’,
  3. background: ‘#ffc’
  4. })

La manera incorrecta:

  1. $(‘coolestWidgetEver’).innerHTML = ’some nifty content’

La manera correcta:

  1. $(‘coolestWidgetEver’).update(’some nifty content’)

Las 2 anteriores parecen similares pero ¿podriamos hacer esto de la primera forma?

  1. $(‘coolestWidgetEver’).update(’some nifty content’).addClassName(‘highlight’).next().hide()

La manera incorrecta:

  1. new Ajax.Request(‘ninja.php?weapon1=foo&weapon2=bar’)

La manera correcta:

  1. new Ajax.Request(‘ninja.php’, {
  2. parameters: {
  3. weapon1: ‘foo’,
  4. weapon2: ‘bar’
  5. }
  6. })

La segunda es una manera mas limpia y estructurada de nuestra definición de parametros en la llamada a AJAX.

La manera incorrecta:

  1. new Ajax.Request(‘blah.php’, {
  2. method: ‘POST’,
  3. asynchronous: true,
  4. contentType: ‘application/x-www-form-urlencoded’,
  5. encoding: ‘UTF-8′,
  6. })

La manera correcta:

  1. new Ajax.Request(‘blah.php’)

Todos esos parametros ya estan predeterminados en el objeto Ajax.Request asi que esta de mas definirlos.

La manera incorrecta:

  1. Event.observe(‘myContainer’, ‘click’, doSomeMagic)

La manera correcta:

  1. $(‘myContainer’).observe(‘click’, doSomeMagic)

Ver Lista Completa (En Ingles)

Tu propio Netvibes con "Prototype Portal Class"

Si, esta es una buena eleccion si quieres hacer una web similar a netvibes, esta libreria esta hecha con script.aculo.us y prototype, ha sido probado en Safari, Firefox, Opera and IE 6/7. La primera version esta basada en Prototype 1.5.1.1 pero la siguiente se basara en la version 1.6.


Aqui esta la demo y el autor tiene muchos mas frameworks realizados uno de ellos y el mas conocido es windows protototype

enlace: http://blog.xilinus.com/

11 de agosto de 2007

7 de agosto de 2007

10 cosas para Programar bien en PHP


Interesantes son estas 10 recomendaciones para poder programar de mejor forma en PHP espero les ayude y les parezca de utilidad.

1.- Saber programar, cómo vas a saber programar PHP sino no sabes metodologías de programación y algoritmos. Una vez uno me dijo, yo es que sólo se PHP, Java no eso es como el anuncio de la ONCE sólo que este sí que era un iluso.

2.- Domina HTML, PHP no es nada sin él y digo sin usar Dreamweaver.

3.- Crea tu código pero no olvides el de los demás, un buen programador no es el que crea el mejor código, es el que da la mejor solución en el mejor tiempo posible y los programadores PHP nos convertimos a veces en perfectos documentalistas de todo el código que anda por la red.

4.- Aprende bases de datos, es vital con MySQL, saber relacionar tablas es importante.

5.- Separa el código del diseño, usa algún sistema de templates, existen algunos como Smarty.

6.- Usa un buen editor de código como Zend Studio (de pago) o Eclipse (código abierto).
JUCA (yo aumentaria context con ese trabajo yo liviano, gratis y facil de usar en Linux utilizo gedit de igual forma muy facil y rapido para programar codigo en PHP).

7.- Reutiliza tu código, no es necesario POO pero bueno, si la sabes mejor que mejor.

8.- Ten algún amigo que pueda prestar ayuda en momentos puntuales con el tema.

9.- Ten en cuenta siempre a quien va destinado el sitio web, tanto a usuarios como a motores de búsqueda, intenta usar mod_rewrite , encapsula bien tu código para que sea rápido e intenta siempre optimizarlo al máximo, también usando algún acelerador de PHP en tu servidor.

10.- Internet no es sólo que tú sepas PHP, hay más, AJAX, Java, RoR, si PHP no es lo mejor para un determinado proyecto no lo uses, usa otra cosa, no te empecines e innovate a ti mismo.

Hay pequeñas cosas que editado o he aumentado del articulo original ya que en algunas no coincido o pense que era necesario aumentar algo adicional.

En hackecuador se mantiene las direcciones absolutas con PHP a pesar de que la navegacion en el sitio se intenta que sea 100% en Ajax todavia existen algunos limitantes con esta tecnologia.
Proximamente explicare mas a fondo estos detalles.

Fuente: avivancos.com/programar-bien-php/

3 de agosto de 2007

como generar xml con php utilizando headers

A modo de probar mi funcion para mostrar codigo he aqui un scrip de como generar xml con php utilizando headers.


<?php
/*Ejemplo de como generar xml utilizando headers, el archivo fisico xml no se genera,
solo cuando se solicita al php este devuelve xml.
*/
// header('Content-type: text/xml; charset=UTF-8'); // este indica la codificacion que esta demas
header('Content-type: text/xml;');
$imagenes =array('imagen1.jpg', 'imagen2.jpg', 'imagen3.jpg');
$titulos = array('un barco', 'un coche', 'retrato');
$enlaces = array('pagina1.html','pagina2.html','pagina3.html');

$XML="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$XML.="<album>";
for($i=0;$i<count($imagenes);$i++) {
$XML.="<elemento>";
$XML.="<src>".$imagenes[$i]."</src>";
$XML.="<titulo>".$titulos[$i]."</titulo>";
$XML.="<url>".$enlaces[$i]."</url>";
$XML.="</elemento>";
}
$XML.="</album>";
echo $XML; // devuelve el xml
?>

3 de febrero de 2007

Como hacer un contador?

Este contador esta basado en otros dos que modifique, lo comun es hacer con sesiones , pero el problema es que cuando se abre y cierra el explorador vuelve a contar como otra visita, eso no me gusto asi que lo cambie.



<?php
/*CONTADOR SIN SESIONES REALIZADO POR MI, VERIFICA IP DIA Y MES*/
$archivo = "contador3.txt";
if (file_exists($archivo)) {
$datos = file_get_contents($archivo);
$info=explode(" ",$datos);
} else {
$info=array(1,date("D"),date("M"),$_SERVER['REMOTE_ADDR']);
}

if($info[1]!=date("D") $info[2]!=date("M") $info[3]!=$_SERVER['REMOTE_ADDR']){
$info[0]++;
$info[1] = date("D");
$info[2] = date("M");
$info[3] = $_SERVER['REMOTE_ADDR'];
}

$info_nueva=implode(" ",$info);
$es = fopen($archivo,"w");
fwrite($es,$info_nueva);
fclose($es);

echo "<h1>Es el visitante numero{$info[0]}</h1>";
?>



Ahora veamos un poco el codigo, voy a explicar lo que a mi parecer es necesario si tienen dudas, postean sus dudas:

  • Primero que nada el archivo se llama contador3.txt (era mi tercer intento), guarda datos de la siguiente forma, "nvisitas dia mes ipremota" los guardo con espacio para despues separarlos.
  • explode(" ",$datos) es para separar la linea de texto por espacios en un array.
  • implode(" ",$info) es para unir los valores de un array deacuerdo a un caracter en este caso el espacio.



28 de enero de 2007

Escribir un parrafo en php muy facil

hola quetal he aqui una forma de escribir un texto con salto de lineas y caracteres especiales de forma muy facil, supongamos que copias de word o algun otro editor un texto extenso y lo copias tal como esta a tu pagina.
Ej.

Hola esta es una linea de texto.
Esta es la segunda linea.
Esta es la tercera linea.
Esta es la cuarta linea.
Esta linea con caracteres especiales, ñandú.

si copian este texto tal y como esta a una pagina sale todo seguido asi:

Hola esta es una linea de texto.Esta es la segunda linea.Esta es la tercera linea.
Esta es la cuarta linea.Esta linea con caracteres especiales, ñandú.

para solucionar esto en php existe una función que lee los saltos de linea:

echo nl2br(htmlentities("Hola esta es una linea de texto.
Esta es la segunda linea.
Esta es la tercera linea.
Esta es la cuarta linea.
Esta linea con caracteres especiales, ñandú
."));

y htmlentities es para que reconozca los caracteres especieales como acentos y la ñ.

resultado exactamente igual:

Hola esta es una linea de texto.
Esta es la segunda linea.
Esta es la tercera linea.
Esta es la cuarta linea.
Esta linea con caracteres especiales, ñandú.

23 de enero de 2007

Enlace a una parte concreta de la página

Este es un simple enlace a una pagina:
<a href="historia.html">Enlace al Tema 1</a>
Esta otra es un enlace ana parte de la misma pagina en la que nos encontramos, en este caso se usa la almohadilla (#):
<a href="#tema1">Enlace al Tema 1</a>
Y por ultimo un enlace combinando ambos seria asi, este iria a la pagina historia al lugar especifico de la almohadilla "tema1":
<a href="historia.html#tema1">Enlace al Tema 1</a>
Ahora como se crea una almohadilla? pues facil, se puede crear en un link o un div.
En un link seria algo asi, donde el atributo name indica el nombre de la almohadilla:
<A name="tema1">Tema 1</a>
Ahora en un div es parecido solo que cambia el atributo name por id:
<div id="tema1">Tema 1</div>

19 de enero de 2007

Prototype 1.5, ahora con Documentación

Esta nueva Documentación incluye:
Tips and Tutorials (e.g. Ajax, Extending the DOM)
API Reference
Blog
fuente : http://ajaxian.com/archives/prototype-15-now-with-documentation

A perderle el miedo a XML


Que es XML? eso lo puedes leer en un tutorial, lo que si te puedo decir es que es muy "Potente".
Porque? Poque es un estandar, puede ser accedido desde cualquier aplicación....

pero basta de bla bla...
Un ejemplo simple de un archivo xml es el siguiente:

<? xml version="1.0" encoding="utf-8"?> <!--Esto es un comentario-->
<!--la version actual de xml es 1.0 y el encoding puede variar-->
<correo> <!--Este es el nodo Raiz, siempre debe haber un nodo raiz-->
<nombre> Juan Perez </nombre> <!--A partir de este son nodos hijos-->
<login> JP </login>
<password> jperz </password>
<direccion> donde sea</direccion>
</correo>

y como ven se pueden crear la cantidad de nodos hijos que uno quiera, y se puede hacer mas subdiviones, un nodo hijo puede tener mas.....
Para que usar xml? bueno esto es una alternativa a usar bases de datos, siempre y cuando,se tenga en cuenta que xml es un archivo y que no podria representarse para las relaciones entre tablas.
Este ejemplo es el mas basico, un tag o nodo puede tener atributos y otras cosas pero con este se empieza, luego lo mas complicadillo es parsear(analizar sintacticamente) los xml, pero no es imposible.
Bueno eso es todo ya voy a postear en otra como parsear un xml, hasta pronto...

17 de enero de 2007

Tips php

Hola bueno todos saben, la sintaxis de php pero hay algunos tips que pueden simplicar el codigo, un if normal seria 
asi:
if (condicion){
$a="perro"
}else{
$a="gato"
}

pero en codigo reducido esto es asi:

$a=(condicion)?"perro":"gato";


tambien se puede colocar en una sola linea algo como esto:

echo $a=$a." ".$a;

y se pueden hacer muchas cosas mas

15 de enero de 2007

Skins para Java

Look and Feels, que es eso? pues asi es como se llaman a los skins que se le pueden aplicar a las 
interfaces en java en javatto se pueden encontrar varios looks que se pueden descargar, yo los que he probado y hecho funcionar son el synthetica que es muy completo y tiene como siete temas creo , despues el liquid y el TinyLaf.
Son muy Buenos, pruebenlos y me cuentan como les queda.