Supongamos que tenemos un formulario para subir archivos, que ése archivo es la imagen de nuestro perfil y que queremos ver como queda antes de subir la imagen y guardar nuestro perfil.
Para realizar esta tarea php no va a ir solo, va a estar acompañado por un javascript y un iframe para que esto resulte. pero es más facil de lo que parece. Mi amigo GON me facilitó este código que fuimos adaptando para nuestro trabajo. Veamos los pasos para este ejemplo:
Mostrando entradas con la etiqueta tutoriales. Mostrar todas las entradas
Mostrando entradas con la etiqueta tutoriales. Mostrar todas las entradas
jueves, 13 de enero de 2011
PHP: Previsualizar imagenes antes de subirlas al servidor
Publicado por
Chabat
el
1/13/2011
| Etiquetas:
formularios,
html,
iframe,
imagenes,
javascript,
php,
preview,
tutoriales,
vista previa
jueves, 6 de enero de 2011
PHP: Enviar convocatorias por mail desde una web a Outlook o GMail
Hace tiempo que necesitaba realizar convocatorias a reuniones, sitas desde una página web, por mail, hacia outlook o google calendar.
Me cansé de buscar y romperme la cabeza con codigos a medio hacer y que no funcinaban (no funcionaron).
Me cansé de enviar archivos a outlook que, aparecían como adjuntos .ics que al ejecutarlos me mostraba el fastidioso cartel de "elija usar calendario gregoriano en lugar de lunar!".
Y no fué hasta encontrar una función completa que funcionara que me dí cuenta que lo importante no eran los datos (estan en todos lados) que le enviara al mail, sino en el formato del mime que le pasabamos.
Así que tomé la función, la adapté a mis necesidades y acá te la publico, en formato de código, con comentarios y todo, para ponerla en un php, ejecutarla y ser feliz convocando gente a reuniones vía email.
Esta función no te crea el archivo .ics por separado sino que te envía el mail con los característicos botones de ACEPTAR, RECHAZAR, PROVISORIO. Al aceptarlo actualiza tu calendario con la cita creada.
Sin más acá va el código:
Me cansé de buscar y romperme la cabeza con codigos a medio hacer y que no funcinaban (no funcionaron).
Me cansé de enviar archivos a outlook que, aparecían como adjuntos .ics que al ejecutarlos me mostraba el fastidioso cartel de "elija usar calendario gregoriano en lugar de lunar!".
Y no fué hasta encontrar una función completa que funcionara que me dí cuenta que lo importante no eran los datos (estan en todos lados) que le enviara al mail, sino en el formato del mime que le pasabamos.
Así que tomé la función, la adapté a mis necesidades y acá te la publico, en formato de código, con comentarios y todo, para ponerla en un php, ejecutarla y ser feliz convocando gente a reuniones vía email.
Esta función no te crea el archivo .ics por separado sino que te envía el mail con los característicos botones de ACEPTAR, RECHAZAR, PROVISORIO. Al aceptarlo actualiza tu calendario con la cita creada.
Sin más acá va el código:
miércoles, 5 de enero de 2011
PHP: Descargar convocatorias a outlook desde una web
Buscando interacción entre páginas web y convocatorias a eventos de outlook, di con éste código.
Si en tu web pones un evento y te gustaría que la gente pudiera descargarlo en su MS Outlook, aquí dejo un código que funciona muy bien.
Ojo!: Este código descarga de la web un archivo .ics (calendario.ics) que, al ejecutarlo abre automáticamente la cita de outlook en formato "Convocatoria" (con los botones de Aceptar, Rechazar, Provisorio). En este otro post publiqué una función en php que genera un mail con la convocatoria y que probé sin problemas en Outlook y Gmail (calendar).
Pero volviendo a este código aquí va, sólo tenes que ponerlo dentro de un php, personalizarle los parametros de fecha de inicio, titulo y descripción y tus visitantes podrán guardarse la cita en su propio calendar para estar avisados del evento.
Acá va el código:
Si en tu web pones un evento y te gustaría que la gente pudiera descargarlo en su MS Outlook, aquí dejo un código que funciona muy bien.
Ojo!: Este código descarga de la web un archivo .ics (calendario.ics) que, al ejecutarlo abre automáticamente la cita de outlook en formato "Convocatoria" (con los botones de Aceptar, Rechazar, Provisorio). En este otro post publiqué una función en php que genera un mail con la convocatoria y que probé sin problemas en Outlook y Gmail (calendar).
Pero volviendo a este código aquí va, sólo tenes que ponerlo dentro de un php, personalizarle los parametros de fecha de inicio, titulo y descripción y tus visitantes podrán guardarse la cita en su propio calendar para estar avisados del evento.
Acá va el código:
sábado, 21 de agosto de 2010
23 Recursos esenciales para entender HTML5
El desembarco del HTML 5 es inminente, y en él no sólo se espera una lluvia de aplicaciones nuevas sino también toda una nueva metodología y entornos de desarrollo.
El siguiente artículo es una traducción del artículo publicado por Ryan Carson en su blog de desarrollo web ThinkVitamin.:
El siguiente artículo es una traducción del artículo publicado por Ryan Carson en su blog de desarrollo web ThinkVitamin.:
Publicado por
Chabat
el
8/21/2010
| Etiquetas:
artículos,
ayuda,
bloggin,
css3,
desarrollo,
drag and drop,
drag-n-drop,
html5,
recursos,
revisiones,
svg,
textos,
tutoriales,
video,
web,
WHATWG
viernes, 20 de agosto de 2010
Colecciones de Iconos de Redes Sociales Vectorizadas y gratuitas
| Una de las colecciones cuenta con 126 iconos vectorizados |
En estas galerías de íconos encontrarás vectorizados los íconos de las redes sociales más conocidas, como Twitter, Bebo, Facebook, Youtube, Flickr. Pero ademas contarás con iconos gratis de Reddit, Google, Google Buzz, RSS, Skype, Paypal, Pandora, orkut entre otras.
Cada galería de iconos cuenta con su propia estética (formas, tamaños, colores) y , por tratarse de vectores podrán ser reescalados al tamaño que desees sin perder calidad en el dibujo.
Podés acceder directamente al link de las galerías haciendo click aquí.
Publicado por
Chabat
el
8/20/2010
| Etiquetas:
colecciones,
gratis,
iconos,
illustrator,
photoshop,
redes sociales,
tutoriales,
vectores
miércoles, 9 de diciembre de 2009
ActionScript 3: Solución para problemas con la Clase Tween
Hoy te traigo un jueguito muy simple pero que tiene algunas cosas interesante para analizar como listeners para teclado y mouse, setInterval() y otras yerbas que irán apareciendo en el script.Desde ActionScript2 vengo utilizando con maravillosos resultados la clase tween para hacer animaciones pequeñas (cambiar alphas, posicion, tamaño, etc).
Por eso, cuando me mudé a ActionScript3 me puse muy contento al saber que todavía existia nuestra clase Tween.
El problema es que, entregado al Tween, de pronto me encontré haciendo algo como esto:
import fl.transitions.*;
import fl.transitions.easing.*;
function hacerAlgo():void{
var mySprite:Sprite;
for (var i:uint = 0; i <>
mySprite = new cuadrado_mc();
stage.addChild(mySprite);
mySprite.x = Math.random() * stage.stageWidth;
mySprite.y = Math.random() * stage.stageHeight;
new Tween(mySprite, 'alpha', None.easeNone, 0, 1, 1, true);
}
}
hacerAlgo();
Mientras éste código lo cargo una vez no hay problemas, pero cuando necesita rehacer el dibujo (digamos si cambio los valores desde un combo box u otra modificación en tiempo de ejecución) ocurre que a veces funciona y a veces no.
Cuando me cansé de buscar y rebuscar donde me había equivocado empecé a buscar respuestas en internet. Resulta que este problemita del tween viene de la mano de un nuevo artilugio de flash (al menos nuevo para mí): El Garbage Collector.
Lo que hace este recolector de basura es borrar las variables que flash carga en la memoria y que estan sin uso. El asunto parece ser que el tween ocupa mucho espacio en memoria y como flash termina el bucle (for) antes de que el tween termine su proceso, se borran las variables temporales y el proceso del tween queda trunco: A veces funciona, a veces funciona a medias y otras directamente no funciona.
Encontré montones de recomendaciones muy complejas. Algunas no las entendí, otras directamente no funcionaban.
La solución definitiva (hasta el momento porque nada es definitivo) la encontré con una Clase externa que se monta en tu proyecto y reemplaza a la clase tween de flash.
Esta galería de clases se llama CGSafe (algo así como seguro contra el garbage collector) y funciona muy parecido a la de flash, pero bien ;). Es gratuita y funciona muy bien.
Además sirve para problemas similarers con: Timers, Loaders y URLLoaders.
Lo que hay que hacer es:
1) Descargarse el paquete de Clases de la pagina del desarrollador. o haciendo click AQUI (es la ruta original del desarrollador).
2) Poner dentro de tu proyecto la carpeta com que contiene todas las clases CGSafe.
3) Importar las clases en actionscript:
donde antes importabas import fl.transitions.*; ahora importas import com.exanimo.transitions.GCSafeTween;.
4) En lugar crear al tween como new Tween(mySprite, 'alpha', None.easeNone, 0, 1, 1, true); ahora lo creas escribiendo new new CSafeTween(mySprite, 'alpha', None.easeNone, 0, 1, 1, true);.
Es prácticamente igual. El código de nuestro ejemplo, modificado, quedaría así:
import com.exanimo.transitions.GCSafeTween;
import fl.transitions.easing.*;
function hacerAlgo():void{
var mySprite:Sprite;
for (var i:uint = 0; i <>
mySprite = new cuadrado_mc();
stage.addChild(mySprite);
mySprite.x = Math.random() * stage.stageWidth;
mySprite.y = Math.random() * stage.stageHeight;
new CSafeTween(mySprite, 'alpha', None.easeNone, 0, 1, 1, true);
}
}
hacerAlgo();
5) Disfrutas viendo tus animaciones sin cortes abruptos ni errores incomprensibles.
Nota: Hay un monton de Clases por ahí que hacen lo mismo. Yo elegí la GCSafe porque es la más similar a la de Adobe y porque funciona muy bien.
Nota 2: Si esta información te sirvió por favor hacé click en los enlaces patrocinados para ayudarme a mantener este blog en línea.
miércoles, 25 de noviembre de 2009
ActionScript 3: Sumar dos String
Hoy te traigo un jueguito muy simple pero que tiene algunas cosas interesante para analizar como listeners para teclado y mouse, setInterval() y otras yerbas que irán apareciendo en el script.Cuando ponemos contenido dentro de una variable del tipo XML, éstos serán siempre cadenas de texto. Por Ejemplo:
Si queremos realizar alguna operació con los valores del xml tenemos al menos dos opciones:
1) Definir nuevas variables del tipo Number y cargar el contenido del xml
var numero1:Number = operadoras.children()[0].attribute("historico"); //En el primer children (0) con el atributo "historico";
var numero2:Number = operadoras.children()[1].attribute("historico"); //En el segundo children (1) con el atributo "historico"
2) Realizar la nueva operación pero "avisandole" a actionscript que debe tratar ese contenido como si fuera numérico:
suma = Number(operadoras.children()[1].attribute("historico")) + Number(operadoras.children()[0].attribute("historico"));//Toma los datos del xml pero previamente se indica que lo trate como number: Number("el string que sea"). trace(suma);
Personalmente me gusta la segunda forma. De más esta decir que en ambos casos, si el contenido del xml no es un número nos dará el famoso NaN (Not a number).
Si querés el archivo .fla de este ejemplo dejame un post con tu email.
martes, 24 de noviembre de 2009
ActionScript 3: Clase para crear un ComboBox con datos de un XML
Pues eso: Si tenés un combo box en tu biblioteca de flash y un .xml donde están sus datos puedes cargarlos dinámicamente utilizando una pequeña clase en actionscript.

for(var i:int=0;i<generalxml.children().length();i++){
Entonces:
1) Generá un archivo .fla que se llame "Ejemplo_combo_xml.fla".
1a) Poné en la biblioteca un ComboBox
1b) Definí la clase del documento como "Ejemplo_combo_xml" (en propiedades: Clase del documento: nombre de la clase)
2) Armá un archivo .xml llamado "Ejemplo_combo_xml.xml" que contiene la información para el combo de éste modo:

3) Generas un archivo llamado "Ejemplo_combo_xml.as" y acá empieza lo bueno. Este es el código que debemos escribir para crear la clase:
package{
import flash.display.*; //importo todos los displays
import flash.events.*; //eventos de movie
import flash.net.*; // clases para cargar xml
import fl.controls.ComboBox; //el combo esta previamente cargado en la biblioteca
//CLASE
public class Ejemplo_combo_xml extends MovieClip{
//CONSTRUCTOR - No me gusta poner cosas allí. Si es necesario iran variables.
public function Ejemplo_combo_xml(){
miNuevoCombo(); //llamo a la funcion mi combo
}
//FUNCION QUE CREA LOS COMBOS
function miNuevoCombo():void{
var miCombo:ComboBox = new ComboBox();
miCombo.width = 150; //ancho que quiero que tenga el combo
addChild(miCombo);
llenarCombo(miCombo);//Llamo a la funcion que va a cargar los datos en los combos
//FUNCION PARA LEER EL COMBOBOX CUANDO HAGA CLICK
miCombo.addEventListener(Event.CHANGE, cambiarCombo);
function cambiarCombo(evt:Event){
if(miCombo.value!="seleccionar"){
trace(miCombo.value);
}
}
}
//FUNCION PARA LLENAR LOS COMBOS CON EL XML DE PAIS
function llenarCombo(miCombo):void{ //RE
miCombo.addItem({label:"Seleccionar",data:"seleccionar"});
var generalXML:XML; //creo una variable tipo XML que contendrá el contenido del archivo .xml
var cargador:URLLoader=new URLLoader();//cargador del xml funciona/no funciona
cargador.addEventListener(Event.COMPLETE, cargarXML); // si todo bien con el XML llamo a la funcion que carga los datos en la variable XML
cargador.addEventListener(IOErrorEvent.IO_ERROR, errorCargarXML); //si todo mal con el XML te lo aviso
cargador.load(new URLRequest("Ejemplo_combo_xml.xml"));
//FUNCION QUE CARGA LOS DATOS DEL ARCHIVO .XML EN LA VARIABLE XML
function cargarXML(evt:Event):void {
generalXML=new XML(evt.target.data);
cargador.removeEventListener(Event.COMPLETE, cargarXML);
cargador.removeEventListener(IOErrorEvent.IO_ERROR, errorCargarXML);
for(var i:int=0;i<generalxml.children().length();i++){
miCombo.addItem( { label:generalXML.children()[i].attribute("nombre"), data:generalXML.children()[i].attribute("valor") } );
}
}
//FUNCION QUE AVISA SI HUBO UN PROBLEMA CON EL XML
function errorCargarXML(evt:IOErrorEvent):void {
trace("Error en la carga");
}
}
}
}
Si quieres el archivo fuente de este ejemplo dejame un comentario con tu mail y te lo mando.
Saludos!
lunes, 9 de noviembre de 2009
ActionScript 3: Convertir el punto decimal(.) en coma(,)
Cuando programamos, los números decimales esta siempre separados por un punto(.). Sin embargo los hispano parlantes nos vemos a veces obligados a mostrar los números decimales separados por una (,) ya que el punto, en español, es un separador de miles.
En actionscript no podemos utilizar números decimales separados por comas ya que nos da error.
Por eso es que generalmente realizo los calculos con números separados por puntos, pero los muestro con coma utilizando la siguiente acción sencilla: Separo los valores en un array y los vuelvo a juntar en una nueva variable:
1) Supongamos que tenemos la variable A que tiene un valor de 2.5
var A:Number = "2.5";
2) creo un array llamado decimal que va a contener todos los elementos de la variable A utilizando aprovechando el punto decimal como separador de elementos. De este modo, en el array decimal quedaran en la posición [0] el valor 2 y en la posición [1] el valor 5
var decimal:Array = String(A).split(".");
Ya puedo puner los valores en una nueva variable string con coma como separador decimal
var decimalComa:String = decimal[0] + "," + decimal[1];
Lo pruebo
trace(decimalComa);
y nos devolverá el número con coma: 2,5.
Cuando quiero asegurarme si el número de la variable es decimal o es un entero, para no poner una coma vacía hago un if que se asegure de que hay algo en la segunda posicion del array:
if (!decimal[1]) {
var decimalComa:String = decimal[0];
}else{
var decimalComa:String = decimal[0] + "," + decimal[1];
}
Esto mismo se puede hacer para convertir comas en puntos y funciona tanto para actionscript 3 como actionscript 2.
miércoles, 28 de octubre de 2009
Speckyboy - Design Magazine
Magazine de diseño gráfico y web, que cuenta con un monton de recursos, tutoriales, portfolios y artículos del mundo del siseño.
Abarca varias áreas del diseño web y gráfico. Desde Ajax hasta fuentes pasando por tutoriales e información sobre herramientas y tendencias. Toda la información es muy útil y tratada de manera profesional.
En cada sección recopila mucha información y de la buena relacionada al mundo del diseño, generalmente brindando recursos gratuitos e información.
Si prestas atención a todas sus secciones encontrarás una gran fuente de inspiración.
viernes, 23 de octubre de 2009
Tips de iluminación con Mental Ray
Mental ray es el motor de render profesional que viene incluído en 3d max desde hace varias versiones. Se pueden conseguir resultados similares (por no decir iguales) que con vray.
Yo generalmente no lo uso porque me encariñé con vray y ya me siento comodo utilizandolo, pero eso no quita que mental ray pueda generar iluminaciones excelentes sin poner ningun dinero encima.
Si sos entusiasta del 3d max y queres empezar a jugar con Mental Ray, estos tips son una buena base.
A ver que sale.
Iluminación de estudio Vray en 3d max
El tutorial lo encontré en CGArena.
Básicamente se compone de: Un estudio concavo donde situar nuestro modelo, El seteo de luces vray (vray lights), Una forma de crear un material base hacer un clay render y ver como dan las luces sobre nuestro modelo, las configuraciones básicas de vray para ir probando el render y una configuración final que, aunque demora un poco, presenta un resultado de increíble fotorealismo. También incluye algún retoque en photoshop.
Como todo tutorial no es una regla que haya que seguir al pié de la letra, pero es una buena base para empezar a experimentar y probar. Al menos a mí me sirvió muchisimo.
jueves, 22 de octubre de 2009
15 tips para 3d max en EjeZeta Magazine
No importa el motor de render que elijas ni las preferencias, hay cosas que necesitas saber como el abc cuando modelas, texturizas, o si simplemente tienes problemas para recorrer el escritorio de 3d max.
Par alló estos 15 tips son un recurso valiosisimo tanto para principiantes como para adentrados en 3d max. Para mí aún el mejor programa de 3d que anda dando vueltas al alcance de los simples mortales.
Espero que este aporte sirva. Para mí es una biblia.
lunes, 21 de septiembre de 2009
Infografía 3d: Anatomía de un rulemán
Es un modelo simple de poligonos a base de cilindros y esferas.
Los materiales son vRay (metales pulidos) y standard (metales pintados).
La iluminación es sencilla: 4 target spots y 1 omni.
Se renderizón con vray sin modificar los parametros por defecto.
Modelado de un ruleman en 3d max
Las bolitas son esferas comunes.
El soporte para las bolitas esta con poligonos a partir de dos esferas (exterior interior) y unido agregando planos
> Ver tamaño real
>Ver tamaño real
puesta en escena con un material base. Así pruebo las camaras, luces y sombras. a partir de aquí sólo queda texturizar.
> Ver tamaño real
Para este proyecto utilicé materiales v-ray para los metales pulidos y materiales standard para los metales pintados.
Finalmente renderícé con v-ray sin modificar los parámetros originales.
>Ver tamaño real
Suscribirse a:
Entradas (Atom)




