<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PcNoticias.com &#187; Programación</title>
	<atom:link href="http://www.pcnoticias.com/category/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pcnoticias.com</link>
	<description>Noticias de PC y Gatgeds a diario.</description>
	<lastBuildDate>Sat, 06 Mar 2010 01:06:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Programando con la API de Youtube</title>
		<link>http://www.pcnoticias.com/programacion/programando-con-la-api-de-youtube/</link>
		<comments>http://www.pcnoticias.com/programacion/programando-con-la-api-de-youtube/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 12:33:44 +0000</pubDate>
		<dc:creator>Moi</dc:creator>
				<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.pcnoticias.com/?p=232</guid>
		<description><![CDATA[Seguro que pocas veces habeís tenido la oportunidad de programar con la API de Youtube, y es que estamos cansados de programar con la API de Java, de C, de C# y demás, pero con la API de youtube, o bien no la conocemos, o bien no nos ha interesado nunca conocer nada de esta [...]]]></description>
			<content:encoded><![CDATA[<p>Seguro que pocas veces habeís tenido la oportunidad de programar con la API de Youtube, y es que estamos cansados de programar con la API de Java, de C, de C# y demás, pero con la API de youtube, o bien no la conocemos, o bien no nos ha interesado nunca conocer nada de esta API.</p>
<p>Cada vez más Youtube, se esta haciendo más importante en el mundo de Internet, por lo tanto cuando más conozcamos de esta poderosa página mejor que mejor, ya hicimos un videootutorial de como empezar a reproducir un video en un momento dado con Youtube, bien pues ahora vamos a empezar a programar con la API.</p>
<p>Para ello en primer lugar necesitamos información de Youtube, que nos diga que tipo de funciones podemos utilizar y que podemos hacer, para ello podemos visitar <a title="API Youtube" href="http://code.google.com/intl/es-ES/apis/youtube/getting_started.html#player_apis" onclick="javascript:pageTracker._trackPageview('/outbound/article/code.google.com');" target="_blank">esta</a> página.</p>
<p>Bien para empezar, lo que tenemos que empezar a hacer, es coger el objeto que nos dará el reproductor, es decir, debemos de hacer una llamada a Youtube, para que nos mande un objeto, con el ID del video que nosotros queramos y con ese objeto ya le mandaremos funciones que nosotros programemos.</p>
<p>En primer lugar tenemos que utilizar esta version de flash  para ello la cargamos de esta forma:</p>
<pre>&lt;script src="http://www.google.com/jsapi?key=ABQIAAAAZYFsY9N4x8d7GFVTovklJhRezDO8Kk5sLj_ZvaZ1VUrCYih76xTlA-M1A-IYRCM7llGGiGO6nfD2yg" type="text/javascript"&gt;&lt;/script&gt;
 &lt;script type="text/javascript"&gt;// &lt;![CDATA[
 google.load("swfobject", "2.1");
// ]]&gt;&lt;/script&gt;</pre>
<p>Ahora colocamos lo que serán TODAS las funciones que queramos utilizar con el video, yo por ejemplo voy a colocar estas 4, la de play, stop, inciar desde el principio, y por último mute.</p>
<p>Bien, pues vamos a ello, vamos a coger y meter todas las funciones posibles, en este caso solamente 4:</p>
<pre>&lt;script type="text/javascript"&gt;// &lt;![CDATA[
 function onYouTubePlayerReady(playerId) { rapVideo = document.getElementById("rapV");base = document.getElementById("baseV");}
 function play() { if (base) base.playVideo(); if (rapVideo) rapVideo.playVideo(); }
 function pause(){ if (base) base.pauseVideo(); if (rapVideo) rapVideo.pauseVideo();}
 function ini(){ if (base) base.seekTo(0,false); if (rapVideo) rapVideo.seekTo(0,false);}
 function mute() {
 if (base)
 {
 base.mute();
 }
 if (rapVideo)
 {
 rapVideo.mute();
 }
 }
// ]]&gt;&lt;/script&gt;</pre>
<p>En mi ejemplo, he metido para controlar dos videos, es decir, dos objetos de video, un objeto que se llama rapVideo y otro que se llama Base, los nombres se pueden cambiar a la hora de recoger el objeto, y como se recogen los objetos lo veremos ahora mismo a continuación.</p>
<p>Ahora definimos los enlaces, que utilizaremos en el video, es decir, las funciones que utilizaremos, las llamamos por medio de un enlace corriente, y normal, de HTML pero con una pequeña modificación, a continuación os enseño como hacer una llamada a las funciones antes definidas:</p>
<pre>&lt;a title="Iniciar vídeos" onclick="play();" href="#divRap"&gt;play&lt;/a&gt; | &lt;a title="Pausar vídeos" onclick="pause();" href="#divRap"&gt; pausa&lt;/a&gt; | &lt;a title="Reproducir desde el principio" onclick="ini();" href="#divRap"&gt; inicio&lt;/a&gt; | &lt;a title="Silenciar" onclick="mute();" href="#divRap"&gt; Silenciar &lt;/a&gt;
&lt;div id="divRap"&gt;You need Flash player 8+ and JavaScript enabled to view this video.&lt;/div&gt;</pre>
<p>Bien para coger el objeto de la web de Youtube, utilizamos este código:</p>
<pre>&lt;script type="text/javascript"&gt;// &lt;![CDATA[
 var params = { allowScriptAccess: "always", bgcolor: "#cccccc" };var atts = { id: "rapV" };
 swfobject.embedSWF("http://www.youtube.com/v/65ea873fF2Y&amp;amp;border=0&amp;amp;enablejsapi=1&amp;amp;playerapiid=rapVideo",
 "divRap", "460", "257", "8", null, null, params, atts);
//]]&amp;gt;
// ]]&gt;&lt;/script&gt;</pre>
<p>Una vez pegado este código donde pone la URL del video, deberemos de colocar el ID del video que nosotros queramos utilizar, es decir, hacerle un play, un stop, un mute o lo que vosotros queráis después de todas las funciones que tendreís para hacer con el video, que nos da la API de Youtube. Como he comentado anteriormente el nombre del objeto puede variar, pero entonces, tener en cuenta de cambiarlo también en los diferentes sitios.</p>
<p>A continuación en una vez que subamos al servidor, los controles de Play, y pause, e inicio, deberan de funcionar correctamente.</p>
<p>Si quereís seguir investigando aquí os dejo muchas más funciones, para que podaís seguir haciendo más cosas con este video, o con otros utilizando la API de Youtube, esta API nos deja todas estas funciones:</p>
<address id="line15"> function updateHTML(elmId, value) {</address>
<address id="line15"> document.getElementById(elmId).innerHTML = value; }</address>
<address id="line15"> function setytplayerState(newState) {</address>
<address id="line15"> updateHTML(&#8221;playerstate&#8221;, newState);</address>
<address id="line15"> }</address>
<address id="line15"> function onYouTubePlayerReady(playerId) {</address>
<address id="line15"> ytplayer = document.getElementById(&#8221;myytplayer&#8221;);</address>
<address id="line15"> setInterval(updateytplayerInfo, 250);</address>
<address id="line15"> updateytplayerInfo();</address>
<address id="line15"> ytplayer.addEventListener(&#8221;onStateChange&#8221;, &#8220;onytplayerStateChange&#8221;);</address>
<address id="line15"> ytplayer.addEventListener(&#8221;onError&#8221;, &#8220;onPlayerError&#8221;);</address>
<address id="line15"> }</address>
<address id="line15"> function onytplayerStateChange(newState) {</address>
<address id="line15"> setytplayerState(newState);</address>
<address id="line15"> }</address>
<address id="line15"> function onPlayerError(errorCode) {</address>
<address id="line15"> alert(&#8221;An error occured: &#8221; + errorCode);</address>
<address id="line15"> }</address>
<address id="line15"> function updateytplayerInfo() {</address>
<address id="line15"> updateHTML(&#8221;bytesloaded&#8221;, getBytesLoaded());</address>
<address id="line15"> updateHTML(&#8221;bytestotal&#8221;, getBytesTotal());</address>
<address id="line15"> updateHTML(&#8221;videoduration&#8221;, getDuration());</address>
<address id="line15"> updateHTML(&#8221;videotime&#8221;, getCurrentTime());</address>
<address id="line15"> updateHTML(&#8221;startbytes&#8221;, getStartBytes());</address>
<address id="line15"> updateHTML(&#8221;volume&#8221;, getVolume());</address>
<address id="line15"> }</address>
<address id="line15"> // functions for the api calls</address>
<address id="line15"> function loadNewVideo(id, startSeconds) {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> ytplayer.loadVideoById(id, parseInt(startSeconds));</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function cueNewVideo(id, startSeconds) {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> ytplayer.cueVideoById(id, startSeconds);</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function play() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> ytplayer.playVideo();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function pause() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> ytplayer.pauseVideo();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function stop() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> ytplayer.stopVideo();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function getPlayerState() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> return ytplayer.getPlayerState();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function seekTo(seconds) {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> ytplayer.seekTo(seconds, true);</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function getBytesLoaded() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> return ytplayer.getVideoBytesLoaded();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function getBytesTotal() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> return ytplayer.getVideoBytesTotal();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function getCurrentTime() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> return ytplayer.getCurrentTime();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function getDuration() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> return ytplayer.getDuration();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function getStartBytes() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> return ytplayer.getVideoStartBytes();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function mute() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> ytplayer.mute();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function unMute() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> ytplayer.unMute();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function getEmbedCode() {</address>
<address id="line15"> alert(ytplayer.getVideoEmbedCode());</address>
<address id="line15"> }</address>
<address id="line15"> function getVideoUrl() {</address>
<address id="line15"> alert(ytplayer.getVideoUrl());</address>
<address id="line15"> }</address>
<address id="line15"> function setVolume(newVolume) {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> ytplayer.setVolume(newVolume);</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function getVolume() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> return ytplayer.getVolume();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<address id="line15"> function clearVideo() {</address>
<address id="line15"> if (ytplayer) {</address>
<address id="line15"> ytplayer.clearVideo();</address>
<address id="line15"> }</address>
<address id="line15"> }</address>
<p>Espero que os sirva de ayuda, y programeís videos, para youtube.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcnoticias.com/programacion/programando-con-la-api-de-youtube/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL sobre Java</title>
		<link>http://www.pcnoticias.com/programacion/mysql-sobre-java/</link>
		<comments>http://www.pcnoticias.com/programacion/mysql-sobre-java/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 03:09:43 +0000</pubDate>
		<dc:creator>Moi</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.pcnoticias.com/?p=174</guid>
		<description><![CDATA[Seguro que mas de uno de vosotros quereís hacer una conexión MySQL sobre Java, bien esto es muy sencillo, en primer lugar, deberemos de tener instalado MySQL, en nuestro ordenador (Localhost) o en algún servidor externo, para usuarios principiantes, es recomendable la instalacion de AppServ, que hare un videotutorial de como instalarlo y dejarlo corriendo, [...]]]></description>
			<content:encoded><![CDATA[<p>Seguro que mas de uno de vosotros quereís hacer una conexión MySQL sobre Java, bien esto es muy sencillo, en primer lugar, deberemos de tener instalado MySQL, en nuestro ordenador (Localhost) o en algún servidor externo, para usuarios principiantes, es recomendable la instalacion de AppServ, que hare un videotutorial de como instalarlo y dejarlo corriendo, dentro de poco, bien para ello se instalara de golpe, los servicio de Apache + PHP 5 + MySQL + PhpAdmin</p>
<p>De acuerdo, una vez que tenemos el PHPAdmin, instalado, podemos crear la tabla por media del PhpAdmin, o bien por medio de Java, pero antes de esto hay que crear una conexión hacia la base de datos.</p>
<p>Para crear una conexión en nuestro equipo debemos de tener el driver instalado, este driver lo proporciona MySQL, y se puede descargar para la programación en Java con MySQL desde <a title="MySQL Java" href="http://dev.mysql.com/downloads/connector/j/5.0.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/dev.mysql.com');" target="_blank">aquí</a>.</p>
<p>Una vez que tenemos ese archivo, extraemos el .JAR que es el que tendrá nuestra clase que necesitamos para conectar, para importar el JAR a nuestro proyecto eclipse, vamos a propiedades del proyecto, a librerias, y dentro de hay importamos el jar donde lo hubieramos guardado.</p>
<p>De acuerdo, una vez que tenemos importado el Jar, ya solamente nos falta, generar el código, este código generado, bien puede estar en una clase, bien puede estar en main, en mi caso, lo he colocado en main, para hacer la prueba.</p>
<p>En primer lugar, debemos de establecer la conexión con la base de datos de la siguiente forma:</p>
<pre>Class.forName("com.mysql.jdbc.Driver");
Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/nombre_base_de_datos", "usuario_base_de_datos", "pass_usuario");</pre>
<p>Bien de esa forma en C, recogemos una conexión que debemos de saber de la conexión, en primer lugar, cual es el nombre de la base de datos, un usuario, que pueda administrar la base de datos, y su contraseña, si no teneís ningún usuario, lo podeís crear a traves de PhpAdmin, o bien con el usuario root de MySQL, igual el puerto, por defecto MySQL se instalá en ese puerto, pero puede ser que por necesidades,  deba de ser cambiado.</p>
<pre>Statement st = c.createStatement();</pre>
<p>Creamos un estancia de la base de datos que es la que nos va a dar el permiso para hacer una consulta, una inserción o borrado.</p>
<p>Para realizar una tabla, o creación de una tabla se haría de la siguiente forma:</p>
<pre>st.executeUpdate("CREATE TABLE empleados (id INT AUTO_INCREMENT, PRIMARY KEY(id), nombre VARCHAR(20), profesion VARCHAR(20), telefono VARCHAR(20))");</pre>
<p>Para borrar la tabla creada anteriormente:</p>
<pre>st.executeUpdate("DROP TABLE empleados");</pre>
<p>Para, generar una inserción en la tabla:</p>
<pre>st.executeUpdate("INSERT INTO empleados (id, nombre, profesion, telefono) VALUES ('0','Moisés','Informatico', 'xxxxxxxx' )");</pre>
<p>Para hacer una consulta sobre todos los registros de la base de datos:</p>
<pre>ResultSet rs = st.executeQuery("SELECT * FROM empleados");
while (rs.next())
{
System.out.println("id="+rs.getObject("id")+
", nombre="+rs.getObject("nombre")+ ", profesion="+rs.getObject("profesion")+
", direccion="+rs.getObject("direccion")+ ", edad="+rs.getObject("edad")+ ", sueldo="+rs.getObject("sueldo"));
}
rs.close();</pre>
<p>Importante hacer todos los close de los result y de los Connection.</p>
<p>Aparte por último es necesario, hacer un import de:</p>
<pre>java.sql.*;</pre>
<p>Asi a grandes rasgos he explicado de una forma rápida y sencilla como crear y generar consultas y dar unos primeros pasos con MySQL, estar atentos al videotutorial que publicaré en breve.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcnoticias.com/programacion/mysql-sobre-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Imprimiendo en Java</title>
		<link>http://www.pcnoticias.com/programacion/imprimiendo-en-java/</link>
		<comments>http://www.pcnoticias.com/programacion/imprimiendo-en-java/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 01:02:27 +0000</pubDate>
		<dc:creator>Moi</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.pcnoticias.com/?p=169</guid>
		<description><![CDATA[Siempre para mis programas, da muy buen efecto, el poder sacar cualquier información por medio de papel, bien para todo esto, se necesita código en alto nivel, pero alguno de vosotros pensará que debe de ser bastante dificil el realizar esta tarea, y la verdad es que os voy a comentar una manera muy sencilla [...]]]></description>
			<content:encoded><![CDATA[<p>Siempre para mis programas, da muy buen efecto, el poder sacar cualquier información por medio de papel, bien para todo esto, se necesita código en alto nivel, pero alguno de vosotros pensará que debe de ser bastante dificil el realizar esta tarea, y la verdad es que os voy a comentar una manera muy sencilla de hacerlo.</p>
<p>En primer lugar creamos una clase, que imprimirá lo que nosotros queremos, esta clase yo la he llamado imprimir, pero se le puede llamar de la forma que quieras:</p>
<pre>import java.awt.print.*;
import java.awt.Graphics;

class imprimir implements Printable
{
   public int print (Graphics g, PageFormat f, int pageIndex)
   {
      if (pageIndex == 0)
      {
         // Imprime "Hola mundo" en la primera pagina, en la posicion 100,100
         g.drawString("Hola mundo probando desde JAVA", 100,100);
         return PAGE_EXISTS;
      }
      else
         return NO_SUCH_PAGE;
   }
}</pre>
<p>De esta forma, hemos creado la clase que imprimira lo que nosotros queramos, como es una clase podemos tener los atributos que nosotros queramos, pero eso si, debe de tener como mínimo el método print.</p>
<p>De esta forma, cuando creemos un PrintJob, le deberemos de pasar el objeto, de la clase imprimir, como se hace en este ejemplo:</p>
<pre>import java.awt.print.*;

public class mandar {

        public static void main (String args[])
        {
            PrinterJob job = PrinterJob.getPrinterJob();
            job.setPrintable( new imprimir());
            try
            {
               job.print();
            }
            catch (PrinterException e)
            {
               e.printStackTrace();
            }

        }
}</pre>
<p>De esta forma, yo a la clase la he colocado el nombre de mandar, como si se tuviera que mandar algo a imprimir, pero una vez comprobado vemos como imprimir correctamente lo que antes le hemos colocado, un hola mundo.</p>
<p>De esta forma tan sencilla, se puede imprimir desde Java, ya que el mismo, cogerá la impresora predeterminada del sistema, he imprimirá, por ella.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcnoticias.com/programacion/imprimiendo-en-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mostrar procesos con Java</title>
		<link>http://www.pcnoticias.com/programacion/mostrar-procesos-con-java/</link>
		<comments>http://www.pcnoticias.com/programacion/mostrar-procesos-con-java/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 02:33:13 +0000</pubDate>
		<dc:creator>Moi</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programación]]></category>

		<guid isPermaLink="false">http://www.pcnoticias.com/?p=147</guid>
		<description><![CDATA[Si alguien esta buscando un código que muestre los procesos que se están ejecutando en el PC, con código Java, el código es el siguiente:
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class MiClasesita {

    public static void main(String[] args) {

	try{

	    String str_proceso = null;
	    String admin =
		System.getenv("windir") + "\\system32\\"
  [...]]]></description>
			<content:encoded><![CDATA[<p>Si alguien esta buscando un código que muestre los procesos que se están ejecutando en el PC, con código Java, el código es el siguiente:</p>
<pre style="margin: 0px; padding: 6px;" dir="ltr">import java.io.BufferedReader;
import java.io.InputStreamReader;

public class MiClasesita {

    public static void main(String[] args) {

	try{

	    String str_proceso = null;
	    String admin =
		System.getenv("windir") + "\\system32\\"
               + "tasklist.exe";
	    Process proceso =
               Runtime.getRuntime().exec(admin);
	    BufferedReader input = new BufferedReader(
		    new InputStreamReader
                       (proceso.getInputStream()));
	    while((str_proceso = input.readLine()) != null){
		System.out.println(str_proceso);
	    }
	    input.close();

	}catch(Exception e){
	    e.printStackTrace();
	}
    }
}</pre>
<p>Probado en Windows Vista y funciona perfectamente, los procesos te los muestra en consola, o en su defecto por la salida estándar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pcnoticias.com/programacion/mostrar-procesos-con-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
