viernes, 24 de septiembre de 2010

Cliente Java Mysql 1.0

Se trata de un programa que interactua con el servidor MySql con el fin de facilitar al usuario la creación de tablas, insertar , borrar y modificar datos de una tabla concreta de una base de datos concreta. El cambio de tabla es facil, asi como el cambio de base de datos. En fin tiene todavia pequeños fallos pero lo estoy arreglando.


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:

viernes, 11 de junio de 2010

Escribiendo con robot en java

La libreria awt de java tiene una clase muy curiosa, la clase robot, esta la podemos incluir con la sencilla linea:

import java.awt.robot;


Con esta clase podemos mover el ratón, realizar clicks, o escribir en el teclado de forma automatica. El ratón ya lo moví gracias a la clase robot en el post anterior, ahora en este ademas voy a usar el teclado para abrir el cmd y mostrar un mensaje en pantalla:


import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.event.InputEvent;

public class teclado {

public static void main(String[] args) {

escribe();


}

public static void escribe (){
try {

Robot r = new Robot();

r.mouseMove(0, 2000);
r.mousePress(InputEvent.BUTTON1_MASK);

r.keyPress(KeyEvent.VK_C);
r.keyPress(KeyEvent.VK_M);
r.keyPress(KeyEvent.VK_D);
r.keyPress(KeyEvent.VK_ENTER);
r.delay(500);
r.keyPress(KeyEvent.VK_P);
r.keyPress(KeyEvent.VK_R);
r.keyPress(KeyEvent.VK_O);
r.keyPress(KeyEvent.VK_G);
r.keyPress(KeyEvent.VK_R);
r.keyPress(KeyEvent.VK_A);
r.keyPress(KeyEvent.VK_M);
r.keyPress(KeyEvent.VK_A);
r.keyPress(KeyEvent.VK_D);
r.keyPress(KeyEvent.VK_O);
r.keyPress(KeyEvent.VK_R);
r.keyPress(KeyEvent.VK_E);
r.keyPress(KeyEvent.VK_S);
r.keyPress(KeyEvent.VK_SPACE);
r.keyPress(KeyEvent.VK_P);
r.keyPress(KeyEvent.VK_E);
r.keyPress(KeyEvent.VK_L);
r.keyPress(KeyEvent.VK_I);
r.keyPress(KeyEvent.VK_R);
r.keyPress(KeyEvent.VK_R);
r.keyPress(KeyEvent.VK_O);
r.keyPress(KeyEvent.VK_J);
r.keyPress(KeyEvent.VK_O);
r.keyPress(KeyEvent.VK_S);


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


}

}



Con esta clase ademas de estas cosas podemos hacer capturas de pantalla y alguna cosita que otra mas. El darle un uso que sea "util" ya es cuestión de echarle algo de imaginación al asunto, sin mas me despido por hoy.

Aqui esta la descarga ya compilada


martes, 8 de junio de 2010

Ratón Loco versión Java

Todos recordais el programa de el ratón loco en C pues ahora llega una nueva versión mas divertida y mejorada, ¡si, el raton loco en java! ¡disfruta del libre albedrio de tu ratón!

Aqui dejo el codigo de la broma en java, aun asi se puede descargar el ejecutable junto al codigo en el enlace del post


import java.util.Random;
import java.awt.Robot;

public final class raton {
private static Random aleatorio;


public static void main(String[] args)
{
int x;
int y;
try{
while(1==1){
aleatorio=new Random();
x=aleatorio.nextInt(1500);
y=aleatorio.nextInt(1500);

Robot r=new Robot();
r.mouseMove(x, y);
r.mouseWheel(1);
r.mousePress(4);
}
}catch(Exception ex){
System.out.println(ex);
}
}
}


jueves, 3 de junio de 2010

The Maze: Código liberado

Este juego, hecho por los programadores pelirrojos (bueno por mi xD) ya lo comentamos hace tiempo aquí.

Tras las incesantes peticiones de nuestros lectores para liberar el codigo, ya esta aqui el archivo en 'C' completamente comentado y listo para jugar!!

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"
}
]
}
}



viernes, 14 de mayo de 2010

Yoda nos advierte sobre el lado oscuro de los navegadores

Asi es, cuando ya creia que lo habia visto todo en cuanto a marketing nos encontramos con esta nueva y original idea de microsoft para potenciar el uso de internet explorer 8

Aqui tenemos a Yoda intentando guiarme por el camino de la luz


Cuando entre en la página con mi flamante mozilla firefox, Yoda me rechazó "igual que los jedis a anakin" haciendome saber lo terriblemente malvado que es mi navegador y que por su culpa sucumbiria al lado oscuro de la fuerza algo que solo podria solucionar formateando el ordenador entero y poniendo internet explorer 8, la página esta dividida en varias secciones accesibles clikando a los personajillos que aparecen en el mismo index, en otra de las secciones te cuenta lo maravilloso que es el navegador "lo tipico que te suelta cualquiera para dar a conocer su producto, todo ventajas y cero inconvenientes" bueno, la verdad es que te regalan unas pegatinas descargables muy tentadoras o algunas que solo puedes conseguir usando el maravilloso internet explorer 8

Este es el enlace a la web de la que hablo.

¿Y tu con que navegador te quedas?

lunes, 1 de marzo de 2010

Net Invaders 2 XNA VERSION

Bueno, finalmente me he decidido a recrear net invaders 2 con las librerias XNA con el cual esperamos conseguir un juego que sea un reto y a la vez divertido, el diseño de las naves sigue de la mano de Enano007jr y la musica de Peergynt Lobogris, la versión java realmente sigue sin finalizar pero también espero que vea la luz, o al menos su codigo para que la gente pueda trastear un poco "aunque no este muy bien estructurado". Sin mas queda abierto el proyecto Net Invaders 2 XNA VERSION el cual avanza a gran velocidad y espero que pronto esté disponible para pcs con windows

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.



viernes, 12 de febrero de 2010

Programas de la semana 20

Esta entrada va a ser la última de la serie de programas de la semana, eso no quita que alguna vez cuado me encuentre con un programa curioso lo comente.
Bueno pues como es el último me he explayado un poco XD

Toucan: programa de copias de seguridad portable con muchas opciones y fácil de usar.

Mypaint: para dibujar con una tableta digital, trae muchos pinceles y es multiplataforma

Wax: de lo poco que he encontrado sobre el tema de edición de video que sea gratuito y merezca la pena, este programa es muy poco conocido

Pencil
: para hacer animaciones en flash pero gratis

IcoFX: para dibujar y modificar iconos

Winup
: actualizaciones de windows offline

Winamp: reproductor de mp3 por excelencia, ligero y practico

File Scavenger: recuperador de archivos. También funciona en particiones ntfs. Este programa es de evaluación pero seguro que alguna vez te saca de algún apuro.

DVDshrink
: copia DVD de video al disco duro, a otro DVD dando opciones para elegir audio y subtítulos que se copiaran además de comprimir las películas para que ocupen en un DVD normal

Dvddecrypter
: este también copia películas, no las comprime pero si que es mas tolerable con los errores de los DVD

VirtualDub
: para edición de video (cortar y pegar trozos) y el audio del video. Este programa esta muy extendido así que por lo menos te sonará.

Netsetman: guarda distintas configuraciones de red para cambiarlas rápidamente.

Foxit Reader
: alternativa a adobe pdf, usa pestañas para abrir varios archivos

viernes, 5 de febrero de 2010

Programas de la semana 19

Como sabéis, la semana pasada no hubo programa de la semana así que en esta toca extra de programas. Empezamos:

Picasa: busca todas las imágenes de tu disco duro para después poder verlas todas con este programa incluidos archivos psd. Además de hacer búsquedas (por palabras y también por colores) y filtros (caras, solo videos…) puedes hacer pequeños retoques, álbumes y collages de fotos.

Ipscan: escanea las ip que están en el rango de IP que indiquemos. EJ: 172.16.0.1 a la 172.16.0.254 para ver todos los de la red 172.16.0.0/24. Viene bien para saber quien anda hay conectado al wifi.


WiinRemote: para conectar por bluetooh el mando de wii al PC, en principio solo funcionan los censores de inclinación y acelerómetros. No es útil pero es curioso XD.

CCleaner: se encarga de limpiar el registro de windows y alguna cosa más.

BonkEnc: para sacar la música de un CD a archivos de audio. Tambien tiene version portable


PD: como siempre todos son gratuitos

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.



FanKit



Ya era hora de sacar un pack de firmas (con y sin URL) e imágenes para enlaces externos además del logo.
Espero que os guste y los uséis sobretodo si tenéis un sitio Web y queréis enlazar a este blog.

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.

miércoles, 27 de enero de 2010

Navegador web en Java

Bueno, aqui la verdad es que tengo poco que comentar, os dejaré el codigo para que podais compilar vuestro propio navegador web en java, realmente son 4 lineas, pero es algo muy curioso y que puede darle un buen toque a nuestras aplicaciones, como ya sabeis la usaré en la aplicación que registré en twitter y que la gente pueda usarla, sin mas dilación os dejo aqui el codigo... y tendreis algo como esto:






Aviso que el codigo está sin comentar, pero realmente es que es poca cosa y no creo que tengais complicaciones para comprenderlo.



PD: Cuando escribais una dirección no os olvideis del http://

martes, 26 de enero de 2010

Aventuras Hardcore - Java Fallout

¿ Recordáis la época dorada de los juegos de rol clásicos, en el que con solo una narración, te introducías dentro de un mundo imaginario, y con tu propio avatar sorteabas todas las dificultades que te sorprendían en tu aventura?

Pues ahora podréis disfrutar con este pequeño aperitivo creado en un applet de Java. Recuerda mucho a los viejos libros-aventura, en el que cada acción se decidía según la página a leer. Os aviso, que el juego es corto, pero bastante jodido, así que intentad recordar por donde os metéis y no moriréis demasiado xD

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

viernes, 22 de enero de 2010

Programa de la semana 18

Esta semana toca hablar sobre los distintos IDE que conozco, son gratuitos y merecen la pena.
Empezamos:

NetBeans IDE: con este IDE escribes en cualquier lenguaje; java, javafx, c++, ruby, php, hmtl , css… Lo bueno que tiene es, aparte de la cantidad de lenguajes dispuestos, la facilidad de instalación de complementos que además suelen venir con ejemplos. Lo malo según mi opinión es su lentitud, por lo demás esta genial.



Eclipse: este es el que mas utilizo, sobre todo para programar en java, se amplia igual que el NetBeans, a base de complementos pero estos son algo mas complicados de instalar, eso si hay complementos de todo tipo, hasta de diseño de interfaces visual en java como el NetBeans.



Microsoft Visual Studio express: a mi este IDE me funciona bastante bien, basicamente lo uso para pruebas programando en c# con XNA, solo comentar para quien no tenga internet en casa(como yo) y quiera instalarlo, que existe una instalación offline, descargándose un imagen de dvd que después la grabas o montas en el daemon.



Komodo Edit: mi último descubrimiento, enfocado al desarrollo web, lo bueno que tiene es el rendimiento, se nota que es un programa mas ligero, tarda menos en cargar etc…



Dev-Cpp: el tipico para programar en C…



Normalmente solo programo en java con eclipse y despues para desarrollo web y experimentos el NetBeans, mi consejo es que ya utilicéis uno u otro, instalad y tener activados los complementos justos y tener pocos proyectos abiertos para no perder rendimiento.

lunes, 18 de enero de 2010

Twitstamp - Tu twitter en una bonita firma

Hace tiempo descubrí una utilidad web que te permitía crear imágenes y firmas dinámicas con tus entradas de twitter.

Así quedó la mía.


La dirección es: http://twitstamp.com/

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

viernes, 15 de enero de 2010

Programa de la Semana 17 - borgchat

Un chat bastante mas completo que el que hice en java XD, sin duda el chat mas completo que conozco, puedes hasta mandar un mensaje a otro ordenador si que el otro tenga el chat(solo si el servicio del mensajero esta iniciado). Lastima que se abandonara el proyecto a finales del 2007.
Otra cosa buena que tiene este chat es que puedes instalarle plugins.






PD: ya solo quedan 3 entradas de programas de la semana, por si teneis alguna sugerencia.

miércoles, 13 de enero de 2010

Bingo en C


Este programa es una revisión de uno que hice hace tiempo.
Este bingo solo tiene 3 cartones aleatorios. Con solo ejecutar el programa saca bolas e indica al final en el orden que cada cartón se completó.
El código fuente esta comentado y además incluyo las librerías necesarias para compilar el código fuente.

Descargar

martes, 12 de enero de 2010

Parejas Net Invaders

Este Juego consiste en enlazar parejas mediante su imagen y sonido. Al empezar el juego tendrás unos segundos para memorizar las parejas y empezar a jugar.Para que se inicie el juego debe ir a empezar Start.




lunes, 11 de enero de 2010

Piano en C



Este programa es una revisión de uno que hice hace tiempo.
El piano solo tiene de 7 notas (del do al si) que se tocan con las teclas de los números del 1 al 7 además al tiempo que suena una nota se puede variar con las teclas + y -.
El código esta bien comentado y es sencillo de entender además incluyo todas las librerías necesarias para compilar el código fuente.

Descargar

sábado, 9 de enero de 2010

Net Invaders 2 Beta de juego




Bueno aqui dejo la versión inacabada del esperado juego Net Invaders Moral Inyector para su disfrute, en el se puede jugar con todas las naves incluyendo la extra desbloqueable a las fases 1 y 3 del mismo tanto en modo 1 jugador como en 2 jugadores, voy a comentar lo que queda por acabar del mismo juego:

- Hacer pantallas de opciones mas bellas a la vista

- Sistema de subida de puntuaciones que iran a la pagina web del juego

- Rebalancear la dificultad en algunos niveles

- Resolver un par de problemillas tecnicos "de velocidad y de petadas del juego"

- Comprimir lo máximo posible el archivo final


Sin mas dilación aqui os dejo la descarga:



Para los despistados que no tienen java instalado en su ordenador, podeis ver como hacerlo desde aqui


SE DE LOS PRIMEROS EN PROBARLO Y COMENTARLO

viernes, 8 de enero de 2010

Cuentas Premium Megaupload y Rapidshare

La Razon por la cual subimos archivos a Megaupload es por que contamos con una cuenta premium y esto garantiza que los link no sean borrados y asi no tener que estar resubiendo los archivos.

Pero como todo en la vida tiene Solucion les traemos un truco que quizas muchos no sepan creo que es la forma mas rapida y facil de conseguir una cuenta premium se trata de la pagina: http://www.freepremiumaccounts.com/. Es una pagina que te da cuenta premium por invitar a tus amigos a la misma.


Por invitar a 10 amigos te dan una cuenta premium Megaupload por una semana por invitar 25 amigos te dan cuenta Megaupload por 3 semanas lo mismo aplica para Rapidshare pero son un poco mas bajo el numero de amigos que tienes que invitar.

Espero que les sirva.. chao saludos a todos

Programa de la Semana 16 - Blender 2.5



Este programa es probablemente el mas grande de los que voy a comentar aquí, no por el tamaño en MB si no por las cosas que se pueden hacer.
Resumiendo, es un programa de edición 3d que hasta ahora, en sus anteriores versiones (2.49) su interfaz era algo complicada, pero en esta nueva versión lo han cambiado y ha mejorado mucho, antes me negaba a aprender a usarlo pero ahora ya he aprendido un poco gracias a esta genial guia para principiantes de Joaclint Istgud revisada para esta versión. Lo malo de que ha cambiado la interfaz es que todos los tutoriales anteriores a la nueva version ya sirven para poco.
Aqui os dejo el enlace para descargar blender 2.5 alpha

viernes, 1 de enero de 2010

Programa de la semana 15 - JDownloader

JDownloader es el gestor gratuito que seguramente tenga mas fama de internet, ¿por que? pues porque podemos realizar descargas simultaneas, gestionar nuestras descargas directas, etc sin pagar cuotas ni subscribirnos a tarifas premium de rapidshare o megaupload.


Pero lo verdaderamente importante de JDownloader es su facil manejo, el poder descargar desde sitios como rapishare o megaupload sin los limites que estos nos ponen, sin esos tiempos de espera, asi que si realmente aun no conocias este programa aqui dejo el enlace a su web oficial de descarga: