Como veran hace tiempo que no estoy subiendo nada en este blog y si estan viendo esta entrada les comento que me mude a wordpress.com dado que google no quiere que monetice con este blog empece a escribir en el otro, en este momento estoy aprendiendo a programar en C++ para Linux y dia a dia estoy subiendo algun post explicando lo que voy estudiando, proximamente subire sobre mySQL y seguramente sobre Linux y de a poco ire pasando parte de la informacion que subi aca.en el otro blog. No creo que en el futuro siga subiendo data aca, me da mucha pena pero ya saben si les interesa les dejo el link del blog de Tinchicus asi sin mas que comentar y recuerden mi face esta aca.
Les mando un abrazo bien grande y vere que decido mas adelante....
martes, octubre 17, 2017
jueves, febrero 09, 2017
Linux - Comando WALL
Este comando puede ser utilizado para enviar un mensaje de broadcast desde una terminal a todos los usuarios logueados en el equipo.
Se puede enviar un mensaje escrito con el comando o un mensaje desde un archivo, en este ultimo caso se debe ser root para que funcione.
Sintaxis:
wall [-n] [-t tiempo] [-V] [-h] [texto | archivo]
-n -> Suprime el banner de quien envia el mensaje (solo funciona con root)
-t tiempo -> Indica el tiempo en milisegundos que debe esperar antes de dejar intentar de enviar el mensaje a la terminal, por defecto es de 300.
-V (--version) -> Te devuelve la version del programa
-h (--help) -> Te muestra un mensaje de ayuda del comando.
texto -> El texto ha ser enviado en el broadcast
archivo -> Archivo con el texto ha ser enviado por el broadcast (solo funciona con root)
Ejemplos:
-Texto enviado como un usuario comun.
user@srvtest1:~$ wall Prueba de mensaje
Broadcast message from user@srvtest1 (pts/0) (Thu Feb 9 22:31:18 2017):
Prueba de mensaje
user@srvtest1:~$
Como ven en el ejemplo de arriba asi lo veran todos los usuarios logueados.
-Texto enviado desde un archivo con un usuario comun.
user@srvtest1:~$ wall -n mensaje
wall: --nobanner solamente está disponible para root
wall: no se puede leer mensaje - use la entrada estándar.
user@srvtest1:~$
-Texto enviado desde un archivo como root y sin banner
root@srvtest1:/home/user# wall -n mensaje
Este texto sera enviado a todos los usuarios logueados
en el equipo para poder probar el uso del comando WALL
y poder mostrar sus resultados.
Esto podria ser utilizado para notificar un reinicio o
apagado del equipo por ejemplo.
root@srvtest1:/home/user#
Y asi es como les apareceria un texto mas descriptivo desde un archivo.
Se puede enviar un mensaje escrito con el comando o un mensaje desde un archivo, en este ultimo caso se debe ser root para que funcione.
Sintaxis:
wall [-n] [-t tiempo] [-V] [-h] [texto | archivo]
-n -> Suprime el banner de quien envia el mensaje (solo funciona con root)
-t tiempo -> Indica el tiempo en milisegundos que debe esperar antes de dejar intentar de enviar el mensaje a la terminal, por defecto es de 300.
-V (--version) -> Te devuelve la version del programa
-h (--help) -> Te muestra un mensaje de ayuda del comando.
texto -> El texto ha ser enviado en el broadcast
archivo -> Archivo con el texto ha ser enviado por el broadcast (solo funciona con root)
Ejemplos:
-Texto enviado como un usuario comun.
user@srvtest1:~$ wall Prueba de mensaje
Broadcast message from user@srvtest1 (pts/0) (Thu Feb 9 22:31:18 2017):
Prueba de mensaje
user@srvtest1:~$
Como ven en el ejemplo de arriba asi lo veran todos los usuarios logueados.
-Texto enviado desde un archivo con un usuario comun.
user@srvtest1:~$ wall -n mensaje
wall: --nobanner solamente está disponible para root
wall: no se puede leer mensaje - use la entrada estándar.
user@srvtest1:~$
-Texto enviado desde un archivo como root y sin banner
root@srvtest1:/home/user# wall -n mensaje
Este texto sera enviado a todos los usuarios logueados
en el equipo para poder probar el uso del comando WALL
y poder mostrar sus resultados.
Esto podria ser utilizado para notificar un reinicio o
apagado del equipo por ejemplo.
root@srvtest1:/home/user#
Y asi es como les apareceria un texto mas descriptivo desde un archivo.
Linux - Comando WRITE
El comando write es utilizado para enviar un mensaje a otro usuario logueado en el equipo, cuando se ejecuta el mismo le empiezan a aparecer el texto que se escribe en la otra terminal y cuando se interrumpe (utilizando CTRL+C) al usuario destinatario le aparece EOF indicandole que se acabo el mensaje.
Sintaxis
write [tty]
Como se ve, al comando write se le agrega el usuario y como modo opcional se puede especificar el puerto donde esta conectado. Esto se utiliza si el mismo usuario esta logueado en 2 terminales distintas y se deben mensajear entre ellas.
Ejemplo
Terminal emisora
user@srvtest1:~$ write user pts/1
Esto es un mensaje de prueba.
Adios
^Cuser@srvtest1:~$
Terminal receptor
user@srvtest1:~$
Message from user@srvtest1 on pts/0 at 22:01 ...
Esto es un mensaje de prueba.
Adios
EOF
user@srvtest1:~$
Para poder utilizar lo unico necesario es que del otro terminal tenga habilitada la opcion de mesg y.
De otro modo este texto no llegara, salvo que lo haga el root del equipo.
Sintaxis
write
Como se ve, al comando write se le agrega el usuario y como modo opcional se puede especificar el puerto donde esta conectado. Esto se utiliza si el mismo usuario esta logueado en 2 terminales distintas y se deben mensajear entre ellas.
Ejemplo
Terminal emisora
user@srvtest1:~$ write user pts/1
Esto es un mensaje de prueba.
Adios
^Cuser@srvtest1:~$
Terminal receptor
user@srvtest1:~$
Message from user@srvtest1 on pts/0 at 22:01 ...
Esto es un mensaje de prueba.
Adios
EOF
user@srvtest1:~$
Para poder utilizar lo unico necesario es que del otro terminal tenga habilitada la opcion de mesg y.
De otro modo este texto no llegara, salvo que lo haga el root del equipo.
Linux - Comando MESG
El comando mesg es utilizado para permitir (o no) que otros usuarios puedan escribir en tu terminal. Este comando solamente activa o desactiva con los switchs que se pueden utilizar, si se ejecuta solo te devuelve el estado actual del comando. El unico que esta por arriba de este comando es root, si root te envia un mensaje via write o wall, este llega a todos los usuarios con el daemon mesg activado o desactivado.
Switchs:
Y -> Activa la escritura en tu terminal.
N -> Desactiva el comando.
Ejemplo de como lo devuelve
user@srvtest1:~$ mesg -> asi muestra el estado actual.
is y
user@srvtest1:~$ mesg n -> con este parametro lo desactiva.
user@srvtest1:~$ mesg -> si lo volvemos a ejecutar nos muestra el cambio efectuado.
is n
Switchs:
Y -> Activa la escritura en tu terminal.
N -> Desactiva el comando.
Ejemplo de como lo devuelve
user@srvtest1:~$ mesg -> asi muestra el estado actual.
is y
user@srvtest1:~$ mesg n -> con este parametro lo desactiva.
user@srvtest1:~$ mesg -> si lo volvemos a ejecutar nos muestra el cambio efectuado.
is n
miércoles, febrero 08, 2017
Cosas que se pueden y no en Ajax
En este articulo veremos que se puede hacer y que no dentro del entorno de Ajax, como les dije en otros posts, para algunas cosas es muy útil pero en otras resulta incomodo.
Vamos a ver algunos ejemplos:
1°) No se puede ejecutar javascript en el archivo remoto que se llama con Ajax
Como dije, si uds. necesitan que al final del script del servidor se ejecute algun comando de Javascript este fallara, por ejemplo el comando location.href.
Pero se puede solucionar de otra forma, lo que si se puede es llamar funciones de javascript que se declaren en la pagina desde donde se invoca a la funcion Ajax. Estas pueden ser llamadas atraves de eventos de HTML.
2°) Formularios
Los formularios tienen un inconveniente si se hacen atraves de Ajax, se debe enviar toda la data con la funcion y dependiendo la cantidad a veces puede no ser enviada en su totalidad. Otra eventualidad que surge es a la hora de cargar archivos (Sonido, video, fotos).
Y aparte, se complicaria mucho mas el envio de informacion y manipulacion de la data con elementos extras como cookies, campos ocultos, etc. Por eso yo no recomiendo que todo lo que sea formulario y/o cargas de datos.
3°) Una cosa muy buena que se puede hacer es crear funciones para enviar data a la funcion de Ajax, por ejemplo:
<script language="javascript">
function Prueba(A,B){
runAjax('Layer1','ajax.php?id=prueba&valor=' + A + '&valor2=' + B);
}
</script>
Como veran en este caso, se podria declarar una funcion que recibe 2 valores y despues los envia para su procesamiento via Ajax al server.
Pudiendo mostrar un resultado X en la pantalla.
Por ahora no recuerdo nada mas que les pueda ayudar pero estos son algunso tips de lo que se pueden encontrar y en algunos casos como solucionarlo.
Vamos a ver algunos ejemplos:
1°) No se puede ejecutar javascript en el archivo remoto que se llama con Ajax
Como dije, si uds. necesitan que al final del script del servidor se ejecute algun comando de Javascript este fallara, por ejemplo el comando location.href.
Pero se puede solucionar de otra forma, lo que si se puede es llamar funciones de javascript que se declaren en la pagina desde donde se invoca a la funcion Ajax. Estas pueden ser llamadas atraves de eventos de HTML.
2°) Formularios
Los formularios tienen un inconveniente si se hacen atraves de Ajax, se debe enviar toda la data con la funcion y dependiendo la cantidad a veces puede no ser enviada en su totalidad. Otra eventualidad que surge es a la hora de cargar archivos (Sonido, video, fotos).
Y aparte, se complicaria mucho mas el envio de informacion y manipulacion de la data con elementos extras como cookies, campos ocultos, etc. Por eso yo no recomiendo que todo lo que sea formulario y/o cargas de datos.
3°) Una cosa muy buena que se puede hacer es crear funciones para enviar data a la funcion de Ajax, por ejemplo:
<script language="javascript">
function Prueba(A,B){
runAjax('Layer1','ajax.php?id=prueba&valor=' + A + '&valor2=' + B);
}
</script>
Como veran en este caso, se podria declarar una funcion que recibe 2 valores y despues los envia para su procesamiento via Ajax al server.
Pudiendo mostrar un resultado X en la pantalla.
Por ahora no recuerdo nada mas que les pueda ayudar pero estos son algunso tips de lo que se pueden encontrar y en algunos casos como solucionarlo.
martes, febrero 07, 2017
Ajax un poco mas a fondo...
Bienvenidos a un nuevo post, hoy ahondaremos un poco mas en Ajax, veremos una breve explicación, como lo utilizo habitualmente y para que es una buena opcion y para que no.
Bueno, empecemos. Como dije en la Introduccion de Ajax, basicamente se hace un llamado atraves de Javascript a un script que se ejecuta en un servidor (P.E. PHP) y que el resultado puede ser volcado en un Div, Layer, Celda de tabla, etc. En fin todo aquello que se pueda marcar con un ID.
Sin mas preambulo, vamos a ver como lo hago yo habitualmente:
1°) La funcion de Javascript
function runAjax(objeto,server){
var xmlHttp;
xmlHttp=null;
// Aca se detecta si debe utilizar el XML de la mayoria de los navegadores o el del IE viejo
if (window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
// Aca es donde se efectua la magia!
if (xmlHttp!=null){
var obj=document.getElementById(objeto);
xmlHttp.open("GET",server);
xmlHttp.onreadystatechange=function(){
if (xmlHttp.readyState==4 && xmlHttp.status==200) {
obj.innerHTML=xmlHttp.responseText;
}
}
}
else
{
alert("Este Browser no soporta AJAX");
}
// Aca se anula el objeto para volverlo a ejecutar y liberar memoria.
xmlHttp.send(null);
}
Como veran la funcion es bastante simple, cuando se la llama desde Javascript deberia ser algo asi:
<script language="Javascript">
runAjax('< el id del contenedor >','< la pagina que se ejecuta en el server y trae el resultado >');
</script>
Esto recomiendo hacerlo al final de la pagina que esta del lado del cliente y llamar todas instancias que sean necesarias.
2°) Estructura basica de como utilizarlo:
<html>
....
<script language="javscript">
function runAjax(objeto,server){
< aca va la funcion antes mostrada >
}
</script>
....
<div id="Layer1" style="< aca usan los parametros que deseen >"></div>
....
<script language="javascipt">
runAjax('Layer1','ajax.php?id=prueba');
</script>
</html>
Como veran, las paginas las hacen como siempre pero les convendria declarar la funcion lo antes posible en la pagina, luego acomodan el receptor de la funcion de Ajax en donde mas les plazca o necesiten y por el ultimo en este ejemplo de estructura, vuelven a crear una instancia de Javascript y ahi si llaman a la funcion antes declarada.
Porque es asi, porque me ha sucedido que si llama antes no encuentra el contenedor y si declaran despues la funcion (en vez del principio) a veces el Ajax falla (no es siempre pero depende de la velocidad del enlace y del navegador).
3°) Invocando a Ajax desde un enlace:
Ahora vamos a ver otro forma de invocar una funcion de Ajax, en las paginas puede ser atraves de un link o un boton. La unica forma es atraves del evento "onclick" y la forma es asi:
Por enlace:
<a href="" onclick="runAjax('Layer1','ajax.php?id=prueba');return false">Prueba</a>
Por boton:
<button onclick="runAjax('Layer1','ajax.php?id=prueba');return false">Prueba</button>
Como veran se deberia tener una funcion runAjax en Javascript, y un Layer1 para visualizarlo, asi como les mostre en el segundo caso. Y lo otro que es fundamental es que despues de llamar a la funcion de Ajax se debe ejecutar un return false, esto es debido a que evita que se recargue la pagina y se pierda la data del Ajax.
El return false es utilizado para los eventos de interaccion del usuario con la pagina, en los casos que se lo invoca desde la pagina como en el segundo caso, no es necesaario.
4|) Ajax unido a un evento de tiempo:
Ajax tambien se puede utilizar con eventos de tiempo para que se autoejecute cada X cantidad de tiempo o despues de cierto tiempo, por ejemplo con la instruccion setInterval o setTimeout.
Por ejemplo, tienes una lista de entradas de un blog pero te gustaria que se actualice solo cada 10 minutos para que en el caso de una nueva entrada aparezca automaticamente, esto se podria hacer con un evento setInterval, un simple ejemplo:
<script language="javascript">
setInterval(function(){
runAjax('Layer1','ajax.php?id=prueba');
}, 300000);
</script>
Y esto se deberia poner al final de la pagina para que se autoejecute en cada intervalo establecido.
En fin, como veran esto es todo el secreto que tiene Ajax. Hay mas metodos y mas instancias que se pueden llegar a utilizar pero lo basico como para que funcione cualquier tipo de pagina, ya sea de listado, de entradas, de catalogo, etc. Lo ideal con esto es evitar que se refresque la pagina con cada accion que tomamos y le da ilusion de que es algo completamente dinamico.
Es una excelente opcion para evitar el uso de Flash, y esto con HTML5 y las acciones y eventos que se pueden utilizar en celulares permiten una flexibilidad unica.
Espero que les sea util y proximamente subire algunas otras acciones que he encontrado y utilizado para espero a partir de Abril empezar a estudiar C y C++ para despues ir subiendo a medida que vaya estudiando.
Gracias por haber llegado a esta ultima linea y espero que te sea util como lo fue en su momento para mi.
Bueno, empecemos. Como dije en la Introduccion de Ajax, basicamente se hace un llamado atraves de Javascript a un script que se ejecuta en un servidor (P.E. PHP) y que el resultado puede ser volcado en un Div, Layer, Celda de tabla, etc. En fin todo aquello que se pueda marcar con un ID.
Sin mas preambulo, vamos a ver como lo hago yo habitualmente:
1°) La funcion de Javascript
function runAjax(objeto,server){
var xmlHttp;
xmlHttp=null;
// Aca se detecta si debe utilizar el XML de la mayoria de los navegadores o el del IE viejo
if (window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
// Aca es donde se efectua la magia!
if (xmlHttp!=null){
var obj=document.getElementById(objeto);
xmlHttp.open("GET",server);
xmlHttp.onreadystatechange=function(){
if (xmlHttp.readyState==4 && xmlHttp.status==200) {
obj.innerHTML=xmlHttp.responseText;
}
}
}
else
{
alert("Este Browser no soporta AJAX");
}
// Aca se anula el objeto para volverlo a ejecutar y liberar memoria.
xmlHttp.send(null);
}
Como veran la funcion es bastante simple, cuando se la llama desde Javascript deberia ser algo asi:
<script language="Javascript">
runAjax('< el id del contenedor >','< la pagina que se ejecuta en el server y trae el resultado >');
</script>
Esto recomiendo hacerlo al final de la pagina que esta del lado del cliente y llamar todas instancias que sean necesarias.
2°) Estructura basica de como utilizarlo:
<html>
....
<script language="javscript">
function runAjax(objeto,server){
< aca va la funcion antes mostrada >
}
</script>
....
<div id="Layer1" style="< aca usan los parametros que deseen >"></div>
....
<script language="javascipt">
runAjax('Layer1','ajax.php?id=prueba');
</script>
</html>
Como veran, las paginas las hacen como siempre pero les convendria declarar la funcion lo antes posible en la pagina, luego acomodan el receptor de la funcion de Ajax en donde mas les plazca o necesiten y por el ultimo en este ejemplo de estructura, vuelven a crear una instancia de Javascript y ahi si llaman a la funcion antes declarada.
Porque es asi, porque me ha sucedido que si llama antes no encuentra el contenedor y si declaran despues la funcion (en vez del principio) a veces el Ajax falla (no es siempre pero depende de la velocidad del enlace y del navegador).
3°) Invocando a Ajax desde un enlace:
Ahora vamos a ver otro forma de invocar una funcion de Ajax, en las paginas puede ser atraves de un link o un boton. La unica forma es atraves del evento "onclick" y la forma es asi:
Por enlace:
<a href="" onclick="runAjax('Layer1','ajax.php?id=prueba');return false">Prueba</a>
Por boton:
<button onclick="runAjax('Layer1','ajax.php?id=prueba');return false">Prueba</button>
Como veran se deberia tener una funcion runAjax en Javascript, y un Layer1 para visualizarlo, asi como les mostre en el segundo caso. Y lo otro que es fundamental es que despues de llamar a la funcion de Ajax se debe ejecutar un return false, esto es debido a que evita que se recargue la pagina y se pierda la data del Ajax.
El return false es utilizado para los eventos de interaccion del usuario con la pagina, en los casos que se lo invoca desde la pagina como en el segundo caso, no es necesaario.
4|) Ajax unido a un evento de tiempo:
Ajax tambien se puede utilizar con eventos de tiempo para que se autoejecute cada X cantidad de tiempo o despues de cierto tiempo, por ejemplo con la instruccion setInterval o setTimeout.
Por ejemplo, tienes una lista de entradas de un blog pero te gustaria que se actualice solo cada 10 minutos para que en el caso de una nueva entrada aparezca automaticamente, esto se podria hacer con un evento setInterval, un simple ejemplo:
<script language="javascript">
setInterval(function(){
runAjax('Layer1','ajax.php?id=prueba');
}, 300000);
</script>
Y esto se deberia poner al final de la pagina para que se autoejecute en cada intervalo establecido.
En fin, como veran esto es todo el secreto que tiene Ajax. Hay mas metodos y mas instancias que se pueden llegar a utilizar pero lo basico como para que funcione cualquier tipo de pagina, ya sea de listado, de entradas, de catalogo, etc. Lo ideal con esto es evitar que se refresque la pagina con cada accion que tomamos y le da ilusion de que es algo completamente dinamico.
Es una excelente opcion para evitar el uso de Flash, y esto con HTML5 y las acciones y eventos que se pueden utilizar en celulares permiten una flexibilidad unica.
Espero que les sea util y proximamente subire algunas otras acciones que he encontrado y utilizado para espero a partir de Abril empezar a estudiar C y C++ para despues ir subiendo a medida que vaya estudiando.
Gracias por haber llegado a esta ultima linea y espero que te sea util como lo fue en su momento para mi.
miércoles, enero 04, 2017
Cara de libro
Este post es para comentarles que me pueden encontrar en mi face que es publico y si quieren agregarse y recibir las actualizaciones del blog.
Introduccion a Ajax
Hola, a todos. Este breve articulo es para hacer una leve descripción de, ¿el lenguaje de programación?, Ajax. Basicamente es una fusion entre Javascript y PHP, donde permite ejecutar acciones en el server y que se vean representadas en el cliente como si se ejecutaran localmente, un ejemplo es gmail y la mayoria de las aplicaciones web de google.
En una explicacion muy basica, pero muy basica, cuando se llama atraves de una funcion de javascript a un archivo de PHP y el resultado se puede mostrar en un layer, en una celda de una tabla, en fin todo aquello que permita mostrar el resultado en una pagina web.
De todos los metodos que busque, encontre uno que fue el mas lindo, bonito y barato porque te permite efectuar lo que describi anteriormente a traves de una funcion de javascript que puede ser llamada varias veces.
En fin, tiene sus pros y sus contras, lo mas "pro" para mostrar data "dinamicamente" en una pagina sin tener que andar refrescando la pagina entera y se actualiza lo que se puede especificar, la "contra" es para algunos tipos de paginas, como por ejemplo formularios, puede resultar poco practico o tener que recargar de informacion en las URLs o cookies.
A medida que pueda ire agregando mas informacion para que se vayan dando cuenta que en realidad es una pavada atomica y se pueden hacer cosas muy interesantes.
Suscribirse a:
Entradas (Atom)