Mostrando entradas con la etiqueta tutorial. Mostrar todas las entradas
Mostrando entradas con la etiqueta tutorial. Mostrar todas las entradas

jueves, 31 de marzo de 2011

Recuperar clave por defecto de redes wifi con seguirdad wep

Pues este tutorial se basa sobre obtener la clave por defecto de las redes wifi WLAN_XX, JAZZTEL_XX, ONOxxxx, WLANxxxxxx, YACOMxxxxxx, WIFIxxxxxx, SpeedTouchxxxxxx, Thomsonxxxxxx y Dlink con autentificacion wep que tenga la contraseña por defecto(es decir la contraseña que viene en una pegatina debajo del router).

Lo necesario para poder realizar este tutorial es:
-Tarjeta wifi
-Tener al alcance una red con Cifrado WEP que anteriormente he citado
-Memoria USB de como minimo 512MB o un CD virgen

Bueno vamos ha empezar el tutorial:

Lo primero que debemos hacer es descargar el siguiente archivo:
http://www.megaupload.com/?d=QK5BGZLH


Descomprimimos el archivo y lo metemos en nuestra memoria usb o grabarl los archivos en un cd(debe estar formateada antes de meter los archivos), tendria que quedar asi:

Ahora tendríamos que reiniciar el pc y arrancarlo desde el usb.


Al cargar el usb nos saldrá el siguiente menú y seleccionamos la primera opción:

Ahora seleccionamos el idioma:
Ahora nos saldra este menu y le damos a intro:

Ya despues de este paso nos iniciara wifiway en entorno grafico.

Ahora ya cuando estemos en el entorno grafico hacemos doble clic sobre el icono llamado MultiAtack Patrones Conocidos

Ahora nos saldra la siguiente pantalla:
Esperamos unos segundos a que nos salga el menu y seleccionamos la opcion 1(poner nuestra tarjeta en modo monitor)
ponemos 1 y le damos a intro y nos saldra otra ventana y nos pone un menu despleglable para que elijamos que interfaz queremos poner en modo monitor, elegimos Wlan0
le damos ha aceptar y nos saldra otra ventana diciendonos en que interfaz esta nuestra tarjeta de red en modo monitor.
Como veis en la imagen me pone que la interfaz que esta en modo monitor es la Wlan0
Importante:
Ahi otras targetas que la interfaz se pone en modo monitor en mon0, si ese es tu caso en el siguiente paso tendras que seleccionar mon0


ahora cerramos la ultima ventana que se ha habierto y ventana chica que nos daba a elegir que interfaz queremos utilizar en modo monitor, la unica que no tienes que cerrar es la primera que habrimos (tiene de nombre Multiatack).

Cuando hayamos cerrado las ventanas que he dicho antes nos pedira que elijamos una interfaz seleccionamos la que hemos puesto en modo monitor, en mi caso Wlan0 ( si la que tu tienes en modo monitor es mon0 elije mon0)

Pulsamos 2 (Wlan0) y le damos a intro.

Ahora nos saldra el menu y seleccionamos la opcion 2 que es para escanear y capturar los paquetes de las redes a nuestro alcance
Ahora nos saldra la siguiente pantalla que la explicare mas abajo
Aqui esta ya lo importante como veis en la imagen solo podremos obtener la clave de las redes que sean WEP y su nombre sea WLAN_XX
En la columna que he marcado de azul son los datas, como minimo necesitamos tener 4 datas de la red que queremos obtener la clave, si hay alguien conectado a la red que queremos obtener la clave en unos segundos habremos capturado mas de 4 datas.

Si por desgracia no hay nadie conectado a la red que quieres obtener la clave y no consigues datas yo hago un pequeño truco: y es desde otro pc o movil que pueda conetarse a una red wifi intentar conectarnos a esa red poniendo cualquier contraseña para generar algo de trafico y asi conseguir los 4 datas necesarios para obtener la clave.

Bueno cuando ya tengamos mas de 4 datas cerramos la ventana y nos saldra los siguiente:
En Azul esta el nombre de la Red wifi, en Rojo la clave de la red wifi y en verde la ruta donde se guarda el fichero con la clave(por si quieres guardarlo).

Ya lo unico es reiniciar el pc y poner los numeritos y a navegar.
No nos hacemos responsables del mal uso de esta herramienta.
Ahora tendriamos que reiniciar el pc y arrancarlo desde el usb.

Al cargar el usb nos saldra el siguiente menu y seleccionamos la primera opcion:

Ahora seleccionamos el idioma:
Ahora nos saldra este menu y le damos a intro:

Ya despues de este paso nos iniciara wifiway en entorno grafico.

Ahora ya cuando estemos en el entorno grafico hacemos doble clic sobre el icono llamado MultiAtack Patrones Conocidos

Ahora nos saldra la siguiente pantalla:
Esperamos unos segundos a que nos salga el menu y seleccionamos la opcion 1(poner nuestra tarjeta en modo monitor)
ponemos 1 y le damos a intro y nos saldra otra ventana y nos pone un menu despleglable para que elijamos que interfaz queremos poner en modo monitor, elegimos Wlan0
le damos ha aceptar y nos saldra otra ventana diciendonos en que interfaz esta nuestra tarjeta de red en modo monitor.
Como veis en la imagen me pone que la interfaz que esta en modo monitor es la Wlan0
Importante:
Ahí otras tarjetas que la interfaz se pone en modo monitor en mon0, si ese es tu caso en el siguiente paso tendrás que seleccionar mon0



ahora cerramos la ultima ventana que se ha abierto y ventana chica que nos daba a elegir que interfaz queremos utilizar en modo monitor, la única que no tienes que cerrar es la primera que abrimos (tiene de nombre Multiatack).



Cuando hayamos cerrado las ventanas que he dicho antes nos pedirá que elijamos una interfaz seleccionamos la que hemos puesto en modo monitor, en mi caso Wlan0 ( si la que tu tienes en modo monitor es mon0 elije mon0)

Pulsamos 2 (Wlan0) y le damos a intro.

Ahora nos saldra el menu y seleccionamos la opcion 2 que es para escanear y capturar los paquetes de las redes a nuestro alcance
Ahora nos saldra la siguiente pantalla que la explicare mas abajo

Aquí esta ya lo importante como veis en la imagen solo podremos obtener la clave de las redes que sean WEP y su nombre sea WLAN_XX
En la columna que he marcado de azul son los datas, como mínimo necesitamos tener 4 datas de la red que queremos obtener la clave, si hay alguien conectado a la red que queremos obtener la clave en unos segundos habremos capturado mas de 4 datas.


Si por desgracia no hay nadie conectado a la red que quieres obtener la clave y no consigues datas yo hago un pequeño truco: y es desde otro pc o móvil que pueda conectarse a una red wifi intentar conectarnos a esa red poniendo cualquier contraseña para generar algo de trafico y así conseguir los 4 datas necesarios para obtener la clave.


Bueno cuando ya tengamos mas de 4 datas cerramos la ventana y nos saldrá los siguiente:

En Azul esta el nombre de la Red wifi, en Rojo la clave de la red wifi y en verde la ruta donde se guarda el fichero con la clave(por si quieres guardarlo).


Ya lo único es reiniciar el pc y poner los números y a navegar.
No nos hacemos responsables del mal uso de esta herramienta.

lunes, 7 de marzo de 2011

Desarrollando en equipo "SVN"

Bueno, a la hora de desarrollar entre varias personas se pueden seguir varias tecnicas organizativas, aunque como podeis imaginar si esto no se hace mediante un software puede ser realmente lioso.

Para evitar esos lios usaremos dos programas que nos facilitaran la sincronia de nuestros archivos para que todos trabajemos sobre los mismos ficheros, estos programas son VisualVSN Server y TortoiseSVN, podeis descargar las aplicaciones pulsando sobre los nombres de los programas.

Bien, lo primero es instalar en el ordenador que hará de servidor el VisualVSN Server, en este ordenador se guardará el proyecto y todos los demas trabajarán conectandose a este, la instalación es muy sencilla y se puede hacer sin problema siguiendo el asistente, finalmente y al tenerlo instalado crearemos un repositorio, que será donde guardemos todos los ficheros.

Ahora instalaremos TortoiseSVN en todos los ordenadores desde los que vayamos a trabajar, tambien podemos hacerlo desde el servidor si asi lo queremos.

Bien, digamos que tenemos que tratar ahora con la parte mas dura, asi que expondré paso a paso como podemos subir los archivos al repositorio y empezar a trabajar.

1.- Creamos el repositorio en el servidor:
Click derecho en repositories y new repositorie.


Estos pasos los haremos en todos los PC desde los que vayamos a trabajar.

2.- Creamos el directorio de trabajo en un ordenador cliente:

3.- Sincronizamos el directorio con el repositorio:

donde https://Paco-PC/svn/prueba es la dirección del repositorio, como me imagino que en vuestra red no podreis resolver nombres se quedaria tal que:

https://IPSERVIDOR/svn/NOMBREREPOSITORIO

Una vez conectados todos los ordenadores todos los ficheros que cambieis en ese directorio se verán reflejados en el servidor y por lo tanto en el resto de maquinas.

Recordad siempre que como cliente y servidor SVN podeis usar el programa que mejor os parezca y sea el mas comodo para vosotros.

martes, 22 de febrero de 2011

Recuperando el Grub despues de perderlo con Windows 7

Bueno, una cosa muy curiosa que tiene Windows 7 es la capacidad de hacernos perder el Grub y no poder iniciar linux nunca mas "estos de Microsoft..." asi que voy a exponer un metodo facil y sencillo para recuperarlo, para esto solo necesitamos un liveCD con ubuntu:

1: Iniciamos nuestro ordenador con el liveCD de ubuntu y despues pulsamos sobre probar ubuntu "no sobre la instalación"

2: Abrimos el terminal para empezar a escribir las siguientes lineas

3: Escribimos sudo fdisk -l y miramos sobre que sda tenemos montado Linux

4: sudo mount /dev/sda* /mnt montamos nuestra particion "* es el numero de la sda donde este Linux"

5: sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc

6: sudo chroot /mnt para acceder a la unidad que hemos montado

7: grub-install --recheck /dev/sda para cargar el grub donde tiene que estar


Si algun paso esta mal escribidlo en los comentarios, porque he puesto estas lineas directamente desde el editor de texto

sábado, 4 de septiembre de 2010

Obtener una cuenta trial para XNA creators club

NOTA: ESTO SOLO SIRVE SI ESTUDIAS EN LA UNIVERSIDAD O EN UN CENTRO ADJUNTO

Bueno, pongo aqui esta pequeña nota o ayuda, porque yo era de los que cada año iba esperando al evento dream build play o me aguantaba sin poder programar mis tonterias para xbox, por eso mismo os voy a dejar este enlace a la web de DreamSpark de Microsoft recordad que antes de todo esto teneis que tener un Gamertag de XboxLive / Live for windows y tener vuestra cuenta sin privilegios de creador xna una vez entramos en DreamSpark nos logeamos en el botoncito que tenemos para ello y despues pulsamos sobre get verified y seguidamente podremos escoger el centro de estudios y al haberlo escogido verificarnos entrando al sistema de nuestro centro "vamos, que no te lo puedes inventar y tienes que estar realmente en esa universidad o centro", una vez hecho todo esto podremos programar para XBOX totalmente gratis "aunque para subir los juegos al bazar si que tendremos que pagar la licencia"

jueves, 8 de julio de 2010

Twitterizer: Mandamos mensajes a twitter con C#

Bueno, ya ha llovido bastante desde que mandé mensajitos a twitter desde java, hoy estaba por casa aburrido y decidí hacer lo mismo con C#, el maravilloso google me permitió encontrar la dll twitterizer, que viene a ser el equivalente de twitter4J de java pero con la simpleza que siempre nos otorga C#, el tutorial lo hago sobre el microsoft visual C# 2008 express, aunque antes de empezar tendreis que descargaros twitterizer bien, ahora cuando lo tengais descargado abrimos el visual C# y comenzamos:

1.- Creamos una nueva aplicación de formulario standart pulsando sobre archivo-nuevo proyecto-aplicacion de windows form



2.- Ahora agregamos twitterizer a nuestro proyecto pulsando en proyecto, agregar referencia


3.-Pulsamos sobre la dll twitterizer


4.- Ponemos unos botoncistos y labels




5.- Ya tenemos nuestro formulario creado para ser usado



6.- Ahora configuramos la función que realizará el botón y con el que mandaremos el mensaje



Tranquilos y no achineis los ojos, el codigo resultante en nuestra clase lo pongo aqui:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Twitterizer.Framework; //LINEA MUY IMPORTANTE, TENEMOS QUE INCLUIR LA LIBRERIA 

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Twitter twitterman = new Twitter(textBox1.Text,textBox2.Text);
            try
            {
                twitterman.Status.Update("ESCRIBE AQUI TU MENSAJE");
            }
            catch (Exception exp) { textBox1.Text = "fail"; }
        }

 
    }
}

El código es extremadamente sencillo y habla por si solo, pronto haré como hice con la entrada de twitter4J y una vez registrada la aplicación y poder mandar mensajes desde nuestra aplicación registrada o hacer que otros la usen.


Aunque en este caso no sea muy util por la simpleza del ejemplo, dejo igualmente la descarga del proyecto:

miércoles, 26 de mayo de 2010

Imagenes en javaFX y juego simple

Bueno, ahora vamos a aprender a introducir una imagen en nuestro programa en javaFX, es muy facil y podemos hacerlo con este trozo de codigo:


ImageView {
image: Image {
url: "{__DIR__}imagen/campo.jpg"
}
}


Por supuesto sobre las imagenes podemos usar las funciones de ratón, teclado y todas las que hemos visto antes, si quereis poner la imagen en un sitio concreto solo tendreis que darle un valor a la x y la y del ImageView.

Bien, una vez visto esto decidí hacer un jueguito rapido, saldrá un plato en la pantalla al cual tendremos que disparar haciendole click con el ratón, una vez hecho esto aparecerá otro plato y asi iremos acumulando puntos, es algo cutre pero bueno, asi juntamos lo poquito que hemos ido viendo, aqui os dejo el codigo y también os dejo el proyecto para descargar "con las imagenes y todo incluido"


/*
* Main.fx
*
* Created on 26-may-2010, 10:35:52
*/

package jueguito;

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.ext.swing.SwingButton;
import javafx.scene.shape.Circle;
import javafx.scene.paint.Color;
import javafx.scene.input.MouseEvent;
import javafx.scene.input.KeyEvent;
import javafx.scene.image.ImageView;
import javafx.scene.image.Image;
import javafx.ext.swing.SwingLabel;

//Incluimos la libreria Math para poder usar numeros aleatorios
import java.lang.Math;

/**
* @author Paco
*/

Stage {
title: "Jueguito de prueba"
scene: Scene {
width: 550
height: 369
//Variables que usaremos para el centro en los ejes X e Y de nuestra mira
var x = 100
var y = 50

//variables para posicion del plato
var xplato = 50
var yplato = 50

//Puntos acumulados
var puntos = 0

//Imagen de nuestra mirilla
var miMira = ImageView {
x: bind x, y: bind y
image: Image {
url: "{__DIR__}imagen/mira.jpg"
}
}

//Variable string que pinta la puntuacion en pantalla
var puntuacion = SwingLabel {
text: "0000000"
}

//Variable que se encarga de dibujar el plato en pantalla
var plato = ImageView {
x: bind xplato, y: bind yplato
image: Image {
url: "{__DIR__}imagen/plato.jpg"
}

//Cuando le hacemos click se lanzará esta funcion
onMouseClicked: function (e: MouseEvent): Void {
puntos= puntos + 10; //suma de puntos
puntuacion.text = puntos.toString(); //refresco del marcador en pantalla
//Colocamos el plato en una nueva posición
xplato = (Math.random() * 500).intValue();
yplato = (Math.random() * 360).intValue()
}

}

//Insertamos todo en nuestro content
content: [

//Dibujamos un fondo
ImageView {
image: Image {
url: "{__DIR__}imagen/campo.jpg"
}

//Funcion para que el raton siempre este en el centro de la mira
onMouseMoved: function (e: MouseEvent): Void {

//Resto estas cantidades porque la mira mide unos 40
x=e.x-21;
y=e.y-20;
}
}

//Coloco las imagenes en el orden que quiero
plato,miMira, puntuacion

]
}
}





Si copypasteais el codigo directamente no funcionará porque no teneis las imagenes que uso en los directorios, asi que como he dicho antes, aqui os dejo la descarga del proyecto:

viernes, 21 de mayo de 2010

Usando el ratón en javaFX

Bueno, ahora vamos a interaccionar con el programita con nuestro ratón "también podemos hacerlo con el teclado de similar forma" lo unico que tenemos que hacer es coger la función que deseemos de la paleta, en este caso onMouseDragged, aqui dejo el código comentado, pero no tiene mayor complicación, aun asi siempre podeis dejarme algun comentario si surge algunda duda:


/*
* Main.fx
*
* Created on 21-may-2010, 12:23:41
*/

package botones;

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.ext.swing.SwingButton;
import javafx.scene.shape.Circle;
import javafx.scene.paint.Color;
import javafx.scene.input.MouseEvent;
import javafx.scene.input.KeyEvent;

/**
* @author Paco
*/

Stage {
title: "Aplicación de ratón"
scene: Scene {
width: 300
height: 300

var miCirculo = Circle {
//Variables que usaremos para el centro en los ejes X e Y de nuestro circulo
var x = 100
var y = 50

centerX: bind x, centerY: bind y //Posicion del circulo
radius: 20 //Tamaño del radio
fill: Color.BLACK //Color del circulo

//Esta funcion se ejecutará cuando tengamos el boton del raton pulsado y lo tengamos sobre el circulo
onMouseDragged: function (e: MouseEvent): Void {
//El centro del circulo lo situamos en la posicion x,y de nuestro ratón
x=e.x;
y=e.y;
}
}


content: [
//Ponemos el circulo en el content
miCirculo


]
}
}


Hasta otra, espero poder tener algo curiosito pronto.

martes, 18 de mayo de 2010

Añadiendo botones en javaFX

Bueno, sigo indagando poco a poco con javaFX y ahora interactuaremos con el programa, es muy simple pero asi ademas pongo en juego algún concepto nuevo como las variables y como funcionan o los metodos que tienen algunos objetos, el resultado será algo como esto:





Mas simple imposible, lo unico que hago es poner dos botones con los que podemos desplazar nuestro circulo hacia un lado o hacia otro, el código del mismo es este:


/*
* Main.fx
*
* Created on 18-may-2010, 10:44:54
*/

package botones;

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.ext.swing.SwingButton;
import javafx.scene.shape.Circle;
import javafx.scene.paint.Color;

/**
* @author Paco
*/

Stage {
title: "Aplicación con botones"
scene: Scene {
width: 300
height: 80
//Vale vamos a declarar una variable, estas en un principio no tienen un tipo asignado
//el tipo de valor que tendrá dependerá del valor que le asignemos
//declararé un circulo como variable para poder cambiar sus valores mientras se usa el programa
var miCirculo = Circle {
centerX: 100, centerY:50 //Posicion del circulo
radius: 20 //Tamaño del radio
fill: Color.BLACK //Color del circulo
}


content: [
//Vale, pondremos dos botones para poder mover nuestro circulo a la izquierda
//y a la derecha, recuerdo que se puede hacer desde la paleta de netbeans
//algo que es muy comodo
SwingButton {
//Posicion y tamaño del boton
translateX: 0
translateY: 0
width:100
text: "<<" //Texto del boton
//Bien, ahora en action: function() podemos poner lo que queremos que suceda cuando
//pulsemos en el boton
action: function()
{
miCirculo.centerX=miCirculo.centerX-5; //en este caso desplazo el circulo a la izquierda
}
}

//Este botón funciona igual pero para desplazar el circulo en la otra direccion
SwingButton {
translateX: 110
translateY: 0
width:100
text: ">>"
action: function()
{
miCirculo.centerX=miCirculo.centerX+5;
}
}
//Inserto el circulo declarado en la ventana... esto lo hacemos porque si inserto aqui
//un circulo no podria cambiar sus valores pero al tenerlos todos en una variable eso cambia
miCirculo
]
}
}


Estas variables que tenemos que declarar antes del content pueden ser numeros enteros, flotantes, circulos, botones, cadenas de caracteres, etc. Depende de nuestra creativa mente el uso que les queramos dar, comento otra cosa, los objetos que tenemos en el content se dibujaran en ese orden, es decir, en este caso primero el botón <<, después el botón >> y por ultimo el circulo, ¿que quiere decir esto? que si ambos ocupan la misma posición en pantalla el circulo seria el que se veria delante de todos los elementos y el botón << se quedaria detras y por lo tanto invisible e inutilizado.

Para el proximo post intentaré insertar en web el programita que haga con javaFX, ahora mismo netbeans me genera una página html desde la que se accede al programa, asi que no creo que vaya a tener problema para pasar ese codigo al blog y hacer alguna demostración. Hasta otra.

lunes, 17 de mayo de 2010

Tutorial javaFX: Pintando formas simples

Debido a la escasez de material sobre javafx y aun siendo un poco nuevo con el,
voy a intentar hacer un tutorial de javafx, yo usaré NetBeans como IDE, también pensé en eclipse pero me daba muchos problemas a la hora de dejarlo todo listo para usar javafx podeis descargar netbeans para usarlo con javafx de aquí lo suyo para ahorrar en espacio es coger la que incluye solo javafx, pero eso ya al gusto de cada uno.

Bien, una vez tenemos instalado netbeans "Instalarlo es la tipica pantalla siguiente siguiente, sin mas" tendremos todo lo necesario para empezar, pulsamos sobre File/New Proyect y ya tendremos este codigo que nos genera por defecto:

/*
* Main.fx
*
* Created on 17-may-2010, 13:04:09
*/

package javafxapplication1;

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;

/**
* @author Paco
*/

//Stage es el "main" de la aplicación
Stage {
//Esto es simple, es el titulo de la aplicación, es el texto que aparece
//en la parte superior de la ventanita
title: "Application title"
//La scene que incluimos dentro de la Stage es la ventana de nuestro programa
//y dentro es donde creamos todos los objetos y lo que queramos mostrar
scene: Scene {
//variables para definir el ancho y alto de nuestra ventana
width: 250
height: 80

//En el content es donde tenemos todos los elementos graficos que
//vamos a mostrar
content: [
//Con text insertamos un texto dentro de nuestro content
Text {
font : Font {
size : 16
}
x: 10
y: 30
content: "Application content"
}
]
}
}


Con este código se genera una ventana simple como esta:




Las lineas que tenemos aqui son realmente simples y las he dejado en ese mismo trozo de codigo comentadas, aunque ahora tocaremos un poquito el codigo.

Vamos a insertar en nuestra aplicación algunas formas, para eso nos vamos a la parte derecha a la paleta y pulsamos sobre basic shapes, vereis que tenemos varias formas como pueden ser lineas o circulos, podemos coger la que queramos y arrastrarla sobre el codigo, con lo que ya se genera un codigo genérico que podemos modificar para darle la forma que queramos, en mi caso he cogido el circulo y lo he arrastrado antes del text.

Ya con esto podemos poner varias formas sobre nuestra ventana y modificar tanto la ventana como las demas formas de tamaño y color


/*
* Main.fx
*
* Created on 17-may-2010, 13:04:09
*/

package javafxapplication1;

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.scene.shape.Circle;
import javafx.scene.paint.Color;

/**
* @author Paco
*/

//Stage es el "main" de la aplicación
Stage {
//Esto es simple, es el titulo de la aplicación, es el texto que aparece
//en la parte superior de la ventanita
title: "Application title"
//La scene que incluimos dentro de la Stage es la ventana de nuestro programa
//y dentro es donde creamos todos los objetos y lo que queramos mostrar
scene: Scene {
//variables para definir el ancho y alto de nuestra ventana
width: 250
height: 250

//En el content es donde tenemos todos los elementos graficos que
//vamos a mostrar
content: [

//Con circle pintamos nuestro circulo
Circle {
centerX: 100, centerY: 100 //Posición central en el eje X e Y de la ventana
radius: 40 //Tamaño del radio
fill: Color.RED //Color del relleno
}


//Con text insertamos un texto dentro de nuestro content
Text {
font : Font {
size : 16
}
x: 10
y: 30
content: "Application content"
}
]
}
}



lunes, 22 de febrero de 2010

Paso de sesiones PHP automáticamente

Como todos sabemos hay que poner el típico “session_start();” al comienzo de cada pagina para pasar la sesión, cosa que al final resulta algo cansino así que o bien hacemos un objeto que maneje las sesiones y hagamos un autocargado del objeto o ponemos “session.auto_start” del fichero php.ini a 1 y con la opción “session.use_trans_sid” también a 1 se pasan incluso cuando las cookies están desactivadas.

Nota: con “session.use_trans_sid” activado auque no tengamos “session.auto_start” activado si iniciamos la sesión manualmente hará el proceso de pasar la sesión automáticamente, al menos en php5.

Para los que tengan php5 “session.use_trans_sid” esta desactivado por defecto, si quieren pasar la sesión tendrá que ser con cookies o activando dicha propiedad.

Para php4 esta permitido por defecto pero no lo hace automático, al menos lo que he visto hasta ahora asi que para eso esta este script

if( !(navigator.cookieEnabled) ){
window.onload = function() {
//array de todos los enlaces de la pagina
var enlaces=document.getElementsByTagName('a');
//los recorro y le modifico el atributo href para que pase la sesion
for(var i=0;i var direccion=enlaces[i].getAttribute('href');
enlaces[i].setAttribute('href',nuevaURL(direccion));
}
var formularios=document.getElementsByTagName('form');
for(var i=0;i var direccion=formularios[i].getAttribute('action');
formularios[i].setAttribute('action',nuevaURL(direccion));
}
}

/*
* detecto cuando un elace es externo para no pasar la sesion y
* cuando es interno y se pasan mas parametros adadapto el codigo
*/
function nuevaURL(url){
//si es un enlace externo
if(url.substr(0, 7)=='http://' || url.substr(0, 8)=='https://' || url.substr(0, 4)=='www.'){
return url;
}else{
//si tiene argumentos
if( url.indexOf('?') >-1){
url+='&';
}else{
url+='?';
}
return url+'';
}
}

Básicamente con hacer es copy&paste o un include del fichero, problema resuelto, pero acuérdate de ponerle extensión php porque lo necesita para ejecutar un par de funciones php.

viernes, 19 de febrero de 2010

Guardar un objeto en java

En java hacer este tipo de cosas es tremendamente fácil y rápido, basta con implementar a una clase la interfaz Serializable.
Con esa interfaz conseguimos que con solo llamar al método writeObject nuestro objeto se serializa lo que permite mandar el objeto por red o guardarlo en un fichero como en este caso. Para recuperar un objeto serializado basta con utilizar el método readObject.
Cuando exista un atributo estático tendremos que guardarlo manualmente, pero igualmente es fácil, seria algo tal que así:

// guardar
private void writeObject(ObjectOutputStream stream) throws IOException{
//serializa el objeto como siempre (todos los atributos menos los estaticos)
stream.defaultWriteObject();
//ahora el atributo estático
stream.write(atributoEstatico);
}

// leer objeto
private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException{
stream.defaultReadObject();
atributoEstatico= stream.read();
}


//ahora el ejemplo para guardar los objetos en un fichero
public boolean save(Objeto obj){
try {
//fichero en el que se guardará el objeto
FileOutputStream file=new FileOutputStream("prueba");
//canal de salida del fichero
ObjectOutputStream os;
os = new ObjectOutputStream(file);
//escribimos el objeto en el fichero
os.writeObject(obj);
//cerramos el canal de salida y el fichero
os.close();
file.close();
} catch (IOException e) {
e.printStackTrace();
return false;
}

return true;
}

//Metodo para cargar el objeto anteriormente guardado
public Objeto load(){
Objeto obj;
try {
FileInputStream fis = new FileInputStream("prueba");
ObjectInputStream ois = new ObjectInputStream (fis);

obj =(Objeto) ois.readObject();

ois.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
return null;
} catch (ClassNotFoundException e) {
e.printStackTrace();
return null;
}

return obj;
}


PD: tened en cuenta que también se pueden serializar listas, arrays etc. que contengan objetos que implementen la interfaz Serializable.

lunes, 15 de febrero de 2010

Fibonacci con recursividad en C

Bueno otra cosa mas del año que aprendí a programar en C.
Aquí la función y un ejemplo de utilización:


//declaracion de librerias
#include
#include


//declaracion de funciones
int fibonachi(int limite, int numero,int anterior);


/************************************************************************
Función main
*************************************************************************/
int main(int argc, char *argv[]){
// variable en la que guardaré el el numero pedido al usuario
unsigned int numerosFibonachi;

// pedimos y recojemos un numero
printf("Introduzca hasta que numero de la serie fibonachi quiere ver: ");
scanf("%d",&numerosFibonachi);

// llamamos a la funcion pasandole el numero de numeros de la serie que queremos ver un 0 y 1
// que son los numeros con los que empezará
fibonachi(numerosFibonachi,0,1);


//fin del programa
printf("\n");
system("pause");
return 0;
}
/********************************************************************
Función fibonachi
Muestra numeros de la serie fibonachi utilizando recursividad
Argumentos de entrada
int limite - numero de numeros ha mostrar de la serie
int anterior - siempre 0 - para que tenga un punto de partida
para empezar a calcular la serie
int numero - siempre 1
********************************************************************/
int fibonachi(int limite, int anterior, int numero){
printf("\n %d \t %d",limite,numero);
if (limite!=1){
limite--;
fibonachi(limite,numero+anterior,numero);
}
return 1;
}


PD para autores: para poner código es:
<pre class=”code”>el codigo aqui</pre>

Aun no he metido los scripts Highlighter para colorear el código por no hacer mas pesada de lo que ya es la pagina así que con esto nos apañamos bien.
Esta entrada es mas una excusa para probar lo de poner código en el blog que otra cosa XD.



miércoles, 3 de febrero de 2010

Reproducir mp3 en java

Hacia tiempo que no hacia entradas aparte de las de los programas de la semana así que aquí las instrucciones para hacer un reproductor de mp3 en java.


Como algunos no sabreis agregar un libreria a un proyecto de eclipse e aqui un pequeño tutorial.

1.-Descargamos la libreria javalayer para reproducir archivos mp3 en java.
2.-Descomprimimos el archivo jl1.0.1.jar del archivo descargado


3.- Creamos un nuevo proyecto en eclipse
4.- Clic derecho sobre el proyecto y seleccionamos propiedades
5.- Seguimos los pasos de la imagen; (1) seleccionamos en el menu de la derecha "java build path" (2) depues la pestalla "libraries" y por ultimo (3) pulsamos el boton "add external jars..." y (4) seleccionamos el archivo anteriormente descomprimido, despues de esto solo queda (5) pulsar en el boton "ok" para cerrar la ventana de propiedades del proyecto.

Después de esto ya podemos agregar la clase del ejemplo que os dejo en descarga. El ejemplo es muy simple, una ventana con 3 botones, play que abre un dialogo para seleccionar un fichero mp3, stop para parar del todo la reproducción, y el pause que para pause la reproducción de la canción por donde estaba sonando, además lleva un textfield que muestra los segundos por donde va la canción. Para el reproductor y para mostrar por que segundo va la canción uso threads de una función os recomiendo que lo veáis por que es muy útil. Y como no, el código esta comentado.



jueves, 28 de enero de 2010

Usando aplicación creada en twitter con java

Bueno, ahora vamos de una vez a usar la aplicación que registramos en twitter que se quedo bien registrada... pero ahora habrá que usarla y hacer que otros usuarios la usen, bien, la verdad es que he intentado que el codigo este lo mas claro posible, ahora voy a explicar las lineas para que podais ya vosotros hacer vuestra aplicación con facilidad, la aplicación en si es una estupidez, simplemente hacemos que el usuario se logee en twitter y cuando obtengamos la confirmación de twitter a traves de un ping pues este podra enviar un mensaje desde la aplicación, pero sabiendo esto la cantidad de usos que se le pueden dar son casi infinitas.

Bueno, el resultado final será algo asi, tendremos nuestro navegador donde el usuario se logeará en twitter, alli esta pagina le devolverá un ping que pondrá en la aplicación mas el mensaje que quiera enviar a su twitter, nada complicado





Bueno, el codigo tiene tres archivos .java principalmente

Principal.java: Simplemente es la clase main desde la cual llamamos a la clase ventana "podia hacerlo directamente en ventana pero si me da por hacerla applet y eso la cosa se complicaria"

Ventana.java: Es esa ventanita simple que constituye el programa, algo sin complicación, un par de JLabel y JTextField mas el JButton con su listener, pero al pulsarlo es donde tenemos la parte de codigo que nos conecta a twitter

Navegador.java: Es nuestro navegador, en una entrada anterior ya puse como se puede montar uno aun asi en el codigo de este programa viene todo incluido


Vale, ahora voy a pasar a la unica parte de codigo que contiene algo de rareza, ya que es la que usa la libreria twitter4j

Vale, esto es lo que pasará cuando pulsemos el boton enviar, recordad que este codigo lo teneis en el descargable.


if(evt.getSource()==enviar){
try {
accessToken = twitter.getOAuthAccessToken(requestToken, pintext.getText());
twitter.setOAuthConsumer("CONSUMERKEY", "CONSUMERSECRET");

twitter.setOAuthAccessToken(accessToken);

} catch (TwitterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {

twitter.updateStatus(mensajetext.getText());
//Status status = twitter.update(mensajetext.getText()+" ");

} catch (TwitterException e) {
e.printStackTrace();
}

}

Vale, primero lo que hacemos es comprobar que el acceso esta autorizado por el usuario, para esto recogeremos el pin que este nos introduce en la ventana en el campo que está alli puesto para ello "el pin se le otorga cuando se logea en twitter desde la ventana del navegador que crea el programa" una vez estando el pin introducido en nuestro programa, este ya puede mandar mensajes, y lo hace gracias a la linea twitter.updateStatus, el mensajeText.getText() es el metodo con el que recogemos el texto escrito en el campo mensaje del JTextField de nuestro programa, lo ultimo importante a comentar es esta linea:

twitter.setOAuthConsumer("CONSUMERKEY", "CONSUMERSECRET");

En consumer key y consumer secret pondremos las que nos otorga twitter al registrar nuestra aplicación y está no funcionará si no tenemos la aplicación registrada, recuerdo que también podemos mandar mensajes a twitter desde twitter4j sin autenticar el programa "simplemente llegará a twitter como un mensaje de twitter4j", y bueno ya creo que no me dejo nada, simplemente poner la aplicación para descargar mas el codigo, podeis usar el jar ya compilado, que es la aplicación que yo mismo cree, o crear vosotros la vuestra a partir del codigo que adjunto y registrando la aplicación en twitter.

martes, 26 de enero de 2010

Registrando una aplicación en Twitter

Bueno, realmente pensé anteriormente en hacer en un mismo post este tutorial, ademas de como hacer nuestro navegador web y que nuestro programa registrado en twitter mande mensajes a través de esta autenticación, pero quedaria todo en un mismo post y algo desordenado, asi que he decidido hacerlo todo poco a poco para que quede mucho mas claro, bueno, a lo que vamos.

Ante nada os preguntareis ¿para que demonios quiero registrar una aplicación en twitter y que utilidad tendría? es muy facil, si haceis una aplicación que tenga exito obtendreis bastantes visitas a vuestro sitio web, ya que las aplicaciones de twitter linkan con estos sitios, ademas estas dandole mas seguridad al usuario que utiliza esta aplicación.

Como quiero suponer, estareis registrados en twitter "que ademas seria lo logico si queremos programar ella" asi que vamos a pasar a registrar nuestra aplicación, es realmente sencillo, pero bueno, aqui mismo os pongo la nota:

1.- Nos dirigimos una vez logeados en twitter a Configuración/Conexiones/aqui



2.- Pulsamos sobre register new aplication (wow, vaya dificultad está llevando)

3.- Vale, vamos ahora a rellenar los datos de nuestra aplicación, los campos que nos piden son los siguientes:
Application Icon: Donde subiremos el icono que tendrá nuestra aplicación
Application Name: Nombre de la aplicación
Description: Aqui podemos escribir una breve descripción de lo que hace la misma
Application Website: Aqui ponemos la web donde podrán conseguir la aplicación
Organization: Por si somos parte de una compañia/organización
Website: Para poner un enlace a nuestra website principal
Application Type:
Aqui podemos marcar de que tipo es nuestra aplicación y podemos elegir Client o Browser "cliente o navegador"
Read only o Read and write: para indicar si nuestra aplicación escribira en las cuentas de los usuarios o solo leerá de su twitter "para hacer aplicaciones que manden mensajes tendremos que escoger read and write.
Use Twitter for login: Para que se logeen a través de twitter y despues usen la aplicación, tendremos que marcar esta casilla para poder usar el sistema que comentaré proximamente.

4.- Al pulsar Guardar ya tenemos nuestra aplicación lista para ser usada, veremos una pantalla como esta:




Los datos importantes que usaremos de aqui a la hora de crear nuestra aplicación son la consumer key y consumer secret, estos dos datos los introduciremos en nuestra aplicación "asi twitter sabrá que es nuestra aplicación la que se está usando"


Sin mas dilación me despido, mañana a ser posible pondré como hacer un mininavegador web en java y posteriormente lo usaré mezclandolo un poco con la libreria twitter4J para hacer una aplicación que mande mensajes a nuestro twitter :D

domingo, 17 de enero de 2010

Twitter4J: Mandando tweets desde java

Bueno, la verdad es que esto aparte de ser un ejecutable java es un pequeño tutorial para aprender a importar librerias externas en nuestros proyectos, ademas de probar una libreria interesante, pero antes de seguir ¿que es twitter?
Twitter es una especie de microblog ¿que quiero decir con esto? pues que se pueden enviar mensajes cortos de 140 caracteres poniendo realmente lo que te de la gana, esto ha tenido mucho exito entre los internautas ultimamente, ya que desde aqui puedes comentar rapidamente cosas curiosas o lo que haces ademas de ver lo que hacen otros ¿parece una idiotez verdad? pues twitter también se usa como email, para mandar mensajes privados o como mensajeria instantanea, pero sin mas dilación paso a lo que queria comentar en este post.

Twitter4j es la API que nos permitirá conectar nuestra aplicación java con twitter, la teneis que descargar desde este enlace recordad que para que compile el codigo que pongo para descargar al final del post tendreis que incluir esta API en vuestro proyecto y se hace de una manera muy sencilla:

1.- Click derecho en nuestro proyecto y pulsamos propiedades




2.- Nos dirigimos a Java Build Path, pestaña librerias y boton añadir Jar Externos, en la ventana emergente elegimos el jar que hemos descargado anteriormente del enlace



3.- Simplemente pegad el codigo que he incluido... es muy breve lo que uso y totalmente entendible, aun asi si hay alguna duda siempre podeis comentarlas y obtendreis algo como esto "que es lo que incluyo como archivo .jar ya en el mismo descargable"



La verdad es que me hubiera gustado hacerlo como applet, pero al intentar acceder a los .class generados por eclipse me reventaba el programa "supongo que porque no podia acceder a la libreria twitter que incluí desde eclipse, asi que cuando pueda lo paso a applet, de momento esto es lo que os puedo dejar


Aqui teneis la descarga del ejecutable .jar, ademas del codigo del mismo

domingo, 15 de noviembre de 2009

Recuperar la barra de inicio rapido en Windows 7

Uno de los cambios importantes respecto a ediciones anteriores que incorpora Windows 7 es el cambio de la barra por la"superbar".Que es muy bonita pero a la mayoría de la gente no le gusta que por defecto en vez de la barra de inicio rápido se pongan los iconos que ocupan mucha barra por eso investigando e averiguado como volver a poner la barra de inicio rápido.

Para variar, Microsoft he hecho una chapuza y solo “ha ocultado” la barra de inicio rápido. Su ubicación habitual viene creada nada mas instalar el sistema operativo.

Para volverla a poner es muy fácil

1.- Botón derecho sobre la barra de herramientas nos vamos a la "Barras de herramientas" y hay seleccionamos "nueva barra de herramientas"

2.- Abajo donde nos da la opción de escribir ponemos el siguiente texto (lo mejor copiarlo y pegarlo directa mente)

%appdata%\Microsoft\Internet Explorer\Quick Launch


Una vez hecho esto ya nos aparecerá la barra pero para que sea igual a la que siempre hemos tenido hay que cambiar 2 opciones

3.-Pulsamos botón derecho sobre la barra y deseleccionamos "Mostrar texto" y "Mostrar tirulos"



Finalmente nos quedara nuestra barra de inicio rápido igual a la que siempre hemos tenido y que tanto coraje me a dado que quiten por defecto en windows 7