domingo, 25 de abril de 2010

Programas de CNC

En febrero escribí un post en el que hablaba de un simulador de CNC para aprender lo que no se nos era enseñado en la materia de Control Numérico en la carrera de ingeniería en informática en la UPIICSA.
Entre todo eso, a manera de.... rebelión XD, subí los programas que se desarrollaron en la materia. Solo que una persona me mando decir que al momento de descargarlo, salio el siguiente mensaje

Lamentablemente, el enlace seleccionado no está disponible.
Algunas de las razones por las que esto sucede:
- Enlace no válido
- El archivo ha sido borrado porque violaba nuestras Condiciones del servicio.

El enlace fue probado, y de mi constata que no tenía errores. Entonces revisé mi cuenta, y efectivamente el archivo ya no estaba. Fue reportado. Es idiota preguntar quien fué el que reportó.

Aquí solo me deja a pensar en dos cosas:
  1. Es increible que la pereza y la mediocridad de la gente sea tan grande para no innovar si quiera en nuevos ejercicios (ya de perdida, si de todas maneras no se nos va a inculcar el uso de una máquina CNC).
  2. La materia será retirada de la carrera de ingeniería en informática. Se pierde el tiempo tratando de conservar en incógnita los resultados de unos ejercicios que al final, valdrán gorro.
Ya que!!!! Mediocridad y mamonería!!!!

Como sea.
No tengo ganas de volver a subir los archivos, por que al final, los volverán a reportar, haciendo esto que mi cuenta de megaupload se vea sancionada, incluso cancelada, obligandome a subir todo de nuevo (que pereza).

Mejor, les ofrezco que en caso de requerir los programas, vayan a la sección de "Contáctame" que se encuentra en la parte superior derecha del blog. Es un formulario con caritas girando en el que ponen sus datos y pueden pedir los programas. Con gusto se los mandaré a su correo.

No me los pidan poniendo comentarios en el post. Rara vez los reviso, en serio. Mejor con el formulario SI FUNCIONA, garantizado.

Bueno, le llego, y pues les deseo suerte en sus exámenes. Y pues.... alguien me preguntó por el calendario de examenes... puedes encontrarlo en la planta baja del edificio de inge.... perdon, desarrollo profesional específico, junto a las escaleras del lado de la tiendita de cafe y cuernitos. Chao!!!

domingo, 11 de abril de 2010

Gráficas en JSP usando la API jFreeChart

Ando feliz, dado a que el sistema que nos fué requerido en el servicio social (sistema @INDEC) ya termino su etapa de programación, ahora siguen las partes de pruebas, acabados gráficos y documentación (lo bueno que esas cosas ya no son cosa mia XD).

Este sistema concluyó con la parte de reportes y estadísticas de las encuestas generadas, como objetivo de toma de decisiones respecto a lo contestado por otras personas o eventos (la finalidad de la informática como generación de conocimiento - si chavos, no es el de programar nomás a lo bestia o quesque hacer diseños que jamás implementaras, mucho menos creerse lider que solo debe mandar).

En lo personal, ya estaba hasta el keke con esto, preferí buscar algún método para hacer más rápida la graficación (es decir, saltarme eso de crear las applets, configurar los colores, tamaños, etiquetas, posiciones, bla bla bla). Y afortunadamente si lo habían... 2 API's que automatizan las gráficas. Estas son:
  • EasyChart: Implementada por ObjectPlanet. Al incio me pareció una API genial, ya que la descargas y hasta tienen ejemplos prueba con el código que debes poner en caso de usar programación en Java, Servlets o de modo directo en una applet. Bien fácil. Pero hay un pequeño detalle... salía una etiqueta de "Evaluation copy", eso significaba que había que adquirir la versión completa, la cual te costaba mínimo 800 dolares (un insulto para el desarrollador en tecnologías open source). Descartado :(
  • jFreeChart: Implementado por jFree. API totalmente libre, la descargas y te salen las gráficas sin etiquetas roñosas. Solo que el manual de programador tiene costo :-S Por lo tanto es un poco más dificil aprender a usarlo, pero con la ayuda de foros y blogs, se puede aprender a usar fácilmente. Obviamente es la elegida.
Diran "ok, supongo que nos hablarás de como usar esa API, pero pues si ya hay tutoriales, mejor solo pegalos y te evitas problemas de hacer uno propio". En realidad, hay muy pocos tutoriales para implementar jFreeChart en JSP, y aparte, de las pocas que hay, despliega la gráfica en todo el navegador, sin permitir otro contenido en la página web.

Veamos como hacerle, y como siempre, espero les sea útil:

1.- Descargar el archivo jfreechart-1.0.13.zip de la página de jFreeChart y descomprimirlo
2.- Crear un proyecto web en Java (recomendable usando Netbeans) y agregar como librerías los archivos ".jar" del contenido de la carpeta jfreechart-1.0.13/lib.

En libraries debe de haber estas librerías

3.- Hagamos el index.jsp. Aquí generaremos los datos a graficar. Para este ejemplo, los generaremos ahí mismo, pero ustedes pueden jalarlos desde base de datos o archivos.
Aquí haremos el ejemplo de gráficar esta tabla:

Año Frecuencia en hombres Frecuencia en mujeres
2004 145 90
2005 344 123
2006 548 229
2007 649 433
2008 751 828
2009 1151 1735

Esta página tendrá una pecuriaridad, será un conjunto de frames arreglados de esta manera:

En el index, generaremos estos frames y el contenido a graficar, y se guardaran en variables de sesión, evitando así que por cada frame se tenga que hacer consultas a archivos o base de datos, haciendo la consulta solo una vez.

Codigo fuente

<%@ page contentType="text/html" pageEncoding="UTF-8" session="
true" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%
HttpSession sesionOk = request.getSession();
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<title>Consulta de estadísticas</title>
</head>
Como veran, estamos haciendo una sesión llamada "sesionOk" la cual es con la que trabajaremos.

Codigo fuente

<%
int [][] mujeres=new int [6][2];
int [][] hombres=new int [6][2];

mujeres[0][0]=2004;
mujeres[0][1]=90;
mujeres[1][0]=2005;
mujeres[1][1]=123;
mujeres[2][0]=2006;
mujeres[2][1]=229;
mujeres[3][0]=2007;
mujeres[3][1]=433;
mujeres[4][0]=2008;
mujeres[4][1]=828;
mujeres[5][0]=2009;
mujeres[5][1]=1735;

hombres[0][0]=2004;
hombres[0][1]=145;
hombres[1][0]=2005;
hombres[1][1]=344;
hombres[2][0]=2006;
hombres[2][1]=548;
hombres[3][0]=2007;
hombres[3][1]=649;
hombres[4][0]=2008;
hombres[4][1]=751;
hombres[5][0]=2009;
hombres[5][1]=1151;

sesionOk.removeAttribute("hombres");
sesionOk.removeAttribute("mujeres");
sesionOk.setAttribute("mujeres",mujeres);
sesionOk.setAttribute("hombres",hombres);
%>
Generaremos dos arreglos de enteros, uno para hombres y otro para mujeres, donde guardamos cada valor por año de los que tenemos en la tabla. Al final, ambos arreglos los guardaremos como variables de sesión (el arreglo de mujeres se llamará mujeres, y el de hombres de llamará hombres) con el método setAttibute de nuestra sesión sesionOk. Antes de ello veran que andamos ejecutando el comando sesionOk.removeAttribute, para que al refrescar la página, no hayan dobles variables y se desperdicie memoria.

Codigo fuente

<frameset rows="50%,50%" frameborder="no" border="0"
framespacing="0">
<frame src="table.jsp" name="topFrame" scrolling="No"
noresize="noresize" id="topFrame" title="topFrame" />
<frameset cols="34%,33%,33%" framespacing="0" frameborder="no"
border="0">
<frame src="bars.jsp" name="mainFrame" id="mainFrame"
title="mainFrame" />
<frame src="cake_man.jsp" name="rightFrame" scrolling="No"
noresize="noresize" id="rightFrame" title="barras_man" />
<frame src="cake_woman.jsp" name="leftFrame" scrolling="No"
noresize="noresize" id="leftFrame" title="barras_woman" />
</frameset>
</frameset>
<noframes><body>
</body>
</noframes></html>
Aqui ya ponemos los frames, del cual, el que está arriba será el que contenga la tabla (table.jsp), abajo estará al inicio una gráfica de barras (bars.jsp), en medio una gráfica de pastel para los hombres (cake_man.jsp) y al final otra gráfica de pastel para mujeres (cake_woman.jsp).
Ahora, a crear esas páginas.

4.- Crearemos table.jsp

Codigo fuente

<%@ page contentType="text/html" pageEncoding="UTF-8"
session="true" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%
HttpSession sesionOk = request.getSession();
int mujeres[][]= (int [][])sesionOk.getAttribute("mujeres");
int hombres[][]= (int [][])sesionOk.getAttribute("hombres");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>Consulta</title>

Obtenemos los arreglos de valores con el comando getAttribute de nuestra sesión. Como verán, no requerimos de buscarlos de nuevo.

Codigo fuente

</head>
<body>
Consulta de las estadísticas.
<br>
<table width="620" border="1">
<tr>
<strong> <th width="196" scope="col">Año</th>
<th width="81" scope="col">Frecuencia en hombres</th>
<th width="89" scope="col">Frecuencia en mujeres</th>
</strong>
</tr>
<%
for(int x=0;x<6;x++){
%>
<tr>
<td><% out.print(hombres[x][0]); %></td>
<td><% out.print(hombres[x][1]); %></td>
<td><% out.print(mujeres[x][1]); %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
En el cuerpo, ponemos una tabla, donde con un ciclo for desplegamos el contenido de la tabla año por año.

Al final, debe quedar una tabla así al ejecutar:


5.- Generaremos bars.jsp

Codigo fuente

<%@ page contentType="text/html"
pageEncoding="UTF-8" session="true" import="
org.jfree.chart.plot.*,
org.jfree.chart.*,
org.jfree.chart.title.TextTitle,
org.jfree.data.general.DefaultPieDataset,
org.jfree.data.general.PieDataset,
org.jfree.data.category.DefaultCategoryDataset,
org.jfree.ui.ApplicationFrame,
org.jfree.ui.RefineryUtilities,
java.io.*,
java.awt.*" %>
Ponemos el encabezado con las librerias necesarias para generar las gráficas.

Codigo fuente

<%
HttpSession sesionOk = request.getSession();
int mujeres[][]= (int [][])sesionOk.getAttribute("mujeres");
int hombres[][]= (int [][])sesionOk.getAttribute("hombres");
int x=0;
/*Se crea una variable del contenido de la gráfica
de barras*/
DefaultCategoryDataset series = new DefaultCategoryDataset();
/*Ciclo for para depositar los valores de los
seis años tanto para hombres como mujeres*/
for(x=0;x<6;x++){
series.setValue(Integer.valueOf(hombres[x][1]),
"Hombres",String.valueOf(hombres[x][0]));
series.setValue(Integer.valueOf(mujeres[x][1]),
"Mujeres",String.valueOf(mujeres[x][0]));
}
/*
Generamos la gráfica con los valores depositados
El primer argumento es para el nombre de la gráfica
El segundo para el nombre del eje "x"
El tercero para el nombre del eje "y"
El cuarto para validar si se despliegan las leyendas
El quinto para validar que se usan tooltips (no se que sean)
El sexto para validar si se jala a alguna URL
*/
JFreeChart grafico = ChartFactory.createBarChart
("Estadísticas de prueba","Año","Cantidad", series,
PlotOrientation.VERTICAL, true,true,false);
//El siguiente código es para desplegar todo en un jpeg
response.setContentType("image/jpeg");
OutputStream salida = response.getOutputStream();
ChartUtilities.writeChartAsPNG(salida,grafico,400,300);
salida.close();
%>
Como en table.jsp, se obtienen de la sesión los valores para hombres y mujeres, en el código verán todos los comandos usados comentados.

La imagen mostrada será la siguiente:
6.- Generamos cake_man.jsp

Codigo fuente

<%@ page contentType="text/html" pageEncoding="UTF-8"
session="true" import="
org.jfree.chart.plot.PiePlot,org.jfree.chart.*,
org.jfree.chart.title.TextTitle,
org.jfree.data.general.DefaultPieDataset,
org.jfree.data.general.PieDataset,
org.jfree.ui.ApplicationFrame,
org.jfree.ui.RefineryUtilities,java.io.*,java.awt.*" %>
Se usan las librerias para generar gráficas de pastel. Son otras librerias, así que tengan cuidado.


Codigo fuente

<%
//Se toma el arreglo de enteros para hombres
HttpSession sesionOk = request.getSession();
int hombres[][]= (int [][])sesionOk.getAttribute("hombres");
int x=0;
//Agregamos los valores de hombres en esta variable "series"
DefaultPieDataset series = new DefaultPieDataset();
for(x=0;x<6;x++)
series.setValue(String.valueOf(hombres[x][0]),(double)(hombres[x][1]));
/*Insertamos los valores en la gráfica
El primer argumento es para el nombre de la gráfica
El segundo argumento es para definir la variable contenedora de valores
El tercero para validar si se despliegan las leyendas
El cuarto para validar que se usan tooltips (no se que sean)
El quinto para validar si se jala a alguna URL
*/
JFreeChart grafico = ChartFactory.createPieChart
("Estadísticas hombres", series, true, true, false);
/*
Se crea un pieplot, que es como un contenedor de leyendas
para el diagrama
*/
PiePlot pieplot = (PiePlot)grafico.getPlot();
pieplot.setLabelFont(new Font("SansSerif", 0, 12));
pieplot.setCircular(false);
pieplot.setLabelGap(0.02D);
/*
Se generan la gráfica en un archivo jsp
*/
response.setContentType("image/jpeg");
OutputStream salida = response.getOutputStream();
ChartUtilities.writeChartAsPNG(salida,grafico,400,300);
salida.close();
%>
Este es el contenido para generar la gráfica de pastel usando solamente los valores para hombres. Igualmente, el código ya esta generando.

Esta sería la gráfica
7.- Generamos cake_woman.jsp
Usamos las mismas librerías que en cake_man.jsp, y casi el mismo código, solo que en vez de usar el arreglo "hombres[][]", usamos el de "mujeres[][]". La diferencia en contenido es este:

Al final, con estos archivos generados, al correr la página index.jsp, saldrá este contenido

Tenemos un estadístico más completo y modular con tabulación y gráficas. Sin costo y la verdad, muy bonito n_n

Aqui les dejo descargable este ejemplo

http://www.megaupload.com/?d=A2K346MO

Fuentes:
http://www.jfree.org/jfreechart/
http://www.java2s.com/Code/Java/Chart/JFreeChartBarChartDemo1.htm
http://javalangnullpointer.wordpress.com/2007/02/22/graficas-con-java/

viernes, 9 de abril de 2010

Mentiras spameras y de organismos con nombre de marca de coche

En un mundo con personas que invierten en idioteces como fuentes, que pierde la motivción de la mejora continua y solo buscan hacer lo que deben de hacer y de mamás actrices que cometen filicidios, ya no se me hacen raro estas dos cosas. Bueno, las puse al reves:

1) Vamos con el organismo con nombre de coche:
Vi esta noticia
http://alt1040.com/2010/04/cofetel-miente-sobre-el-registro-de-celulares-en-mexico
Si les dió flojera leer, el RENAUT tiene un contador en la página del COFETEL que según muestra el número de personas que han registrado sus celulares. Pero detectaron que ese contador era falso, ya que estaba manipulado respecto a la fecha y hora que se consultaba. ¿Cómo lo supieron? Supongo que un mono del RENAUT (DEMASIADO IMBECIL) tenía una paja emocional de haber aprendido un nuevo lenguaje llamado "JavaScript" e hizo ese contador en dicho lenguaje. Pero ¿qué creen? un detallito del JavaScript es que es un lenguaje que ejecuta sus scripts, pero no en el servidor de la página web (dijase PHP, ASP, JSP) noooo, lo traslada a la computadora donde se muestra la página (nivel cliente) y desde ahí se corre.

Para aquellos que no me entendieron ni merch, veamos lo siguiente:

Imagen 1.- Página de la COFETEL desplegada el sábado 10 de abril del 2010 a las 12:39 am y el reloj de mi laptop mostraba esa misma hora y misma fecha. RENAUT mostraa 55,846,755, siendo el 67% de los números.

Vease que todo momento estoy desplejando la hora de mi laptop (la cual modificaré), la hora exacta según la CENAM y el contador del RENAUT.

¿Pero que pasa si modifico la fecha de mi laptop?

Primero intentemos con el 8 de abril del 2010 (hace 2 días)

Imagen 2.- Página de la COFETEL desplegada el sábado 10 de abril del 2010 a las 12:40 am y el reloj de mi laptop mostraba ser 8 de abril de 2010 más o menos la misma hora. RENAUT mostraa 55,446,948, siendo el 66% de los números.

Actualizo las páginas de la hora exacta y de la COFETEL. La hora exacta es la obvia, pero el contador RETROCEDIÓ o_O

Pero pues como todo curioso, probé otra movida, ahora adelantando 2 días, osea, el 12 de abril de este año.

Imagen 3.- Página de la COFETEL desplegada el sábado 10 de abril del 2010 a las 12:42 am y el reloj de mi laptop mostraba ser 12 de abril de 2010 más o menos la misma hora. RENAUT mostraa 56,247,100, siendo el 67% de los números.

Ahora se incrementó el contador. QUE LOCOOOO!!!
Pero ambas modificaciones eran muy leves. Modificaremos más radicalmente, vamonos hasta el 23 de julio de 2010.

Imagen 4.- Página de la COFETEL desplegada el sábado 10 de abril del 2010 a las 12:47 am y el reloj de mi laptop mostraba ser 23 de julio de 2010 más o menos la misma hora. RENAUT mostraa 76,647,894, siendo el 92% de los números.

Apoco el contador ese predice el futuro???? Ya siendo técnicos ya podremos predecir a ojo de buen cubero (espero que se dija así) que el incremento es constante y uniforme. Para acabar, retrocedamos al pasado.... 25 de noviembre de 2008.

Imagen 5.- Página de la COFETEL desplegada el sábado 10 de abril del 2010 a las 12:48 am y el reloj de mi laptop mostraba ser 25 de noviembre de 2008 más o menos la misma hora. RENAUT mostraa 10,164,802, siendo el ¿122% de los números?.

Ah caray!!!! Aparte de ser un tipo que no sabe la diferencia de los lenguajes de programación para servidores y para clientes, NO SABE ESTRUCTURAS DE DATOS???? NO SABE LOS LÍMITES DE UNA VARIABLE ENTERA O DE LA REPRESENTACION DE DICHOS VALORES EN BINARIO???? Mta....

No me explico el engaño... en serio, de todas maneras esta como el chiste de Hacienda, al final, si no registras, te quitan la línea (no me preocupa por que el mio lo registre hace un año, ya que no???).

Y ya para acabar.... eviten el spam, incluso en sus mails. Cuiden quien los agrega.

No estaba seguro quien era, así que al aceptarlo, lo bloqueé luego luego. Si entran a la liga que tiene en su mensaje personal es una página donde hay chavas mostrandose con sus webcam como Dios las trajo al mundo (si si PORNOOOOO!!!, no se hagan los persinados que ya les ando viendo sus 41.4 GB de hardcore y shemales!!!). Ahora.... como ya es costumbre, igual que con el video de 2 girls 1 cup, hice que mi sobrino hablara con ese contacto, era una chava que la invitaba a ver esa página, y en cierto momento, mi sobrino empezó a insultarla, pero esa chava contestaba como si nada siguiendo invitandolo a ver esa página. Conclusión: SPAM!!!

Pues... eso es todo. Y como les dijo.... todo esto, ya no me sorprende ¬_¬

lunes, 5 de abril de 2010

Como que si la andamos regando no???

Nueva fuente decorativa simulando una cascada sobre unas rocas ubicada en el edificio de gobierno de la UPIICSA

Hagamos cuentas:
  • Fuente como esas -> 2000 y 2500 euros ($40,000 MX aprox) Fuente 1 Fuente 2 Fuente 3 Y ESO, EN OFERTA
  • Sumenle costos de instalación y mantenimiento y gasto del agua que utiliza, cierrenle en 45,000 pesos mexicanos
Esos son como:
  • 6 proyectores Dell M109S
  • 2045 paquetes de 12 rollos de papel Suavel
  • 112 cerraduras de puerta
  • 6 Access Point Exterior Cisco WAP200E
  • 1825 enchufes para toma de corriente
  • 90 meses de beca institucional de nivel superior
  • 1551 botellones de agua
  • 18 computadoras armadas de plaza de la computación
  • 90 libros de los gordotes (tipo física, química, sistemas digitales, sistemas operativos)
  • 38 programadores universales para GAL's
  • 75 programadores de PIC's
  • 13 Impresoras láser multifunción Dell 1125
En México dijamos que está medio comploteada la libertad de expresión incluso peligrosa, así que me reservaré mis palabras, pero imaginese la libertad del pensamiento que tenemos por naturaleza los humanos... sin comentarios.


No confundir mi post acerca de nuestro orgullosisimo (JAAAAAAAAAJAJAJA) 4to lugar en ing. en sistemas, se trata de estar al nivel del Tec, no de parecérseles.

Sueños prologeanos.

Es evidente que mis razones por las cuales hay que odiar el cambio de horario son lógicas.- el desequilibrio de sueño, la confusión de la hora, dormir menos :(

Ahora bien... entre todo ese desequilibrio que se tiene, sumenle que al siguiente día tienes que volver a la escuela a acabar lo que se dejó pendiente.

Y más aún, que a tu mente te lleguen ideas y pendientes que en realidad NO SON PENDIENTES, son solo cosas que nomas te andan palomeando por la cabeza sin dejarte en paz, por ejemplo, el como hacer ese asqueroso juego de ahorcado en prolog que tanto se demanda segun el StatCounter :S

Para consiliar el sueño, tuve que pensar las POSIBLES maneras de desarrollar esa aplicación, con lo poco que me acuerdo, dado a que, como lo mencioné en un post anterior, el Prolog ya no es muy rentable (hay quienes diran que si, bueno, alla ellos).

Aqui les va (ACLARACIÓN: ESTO NO ES CÓDIGO COMPLETO YA COMPILABLE EN PROLOG, ES MÁS, PUEDEN QUE HAYAN ERRORES).
  • El espacio de trabajo de nuestro programa debemos de delimitarlo a un cierto conjunto de frases posibles a que prolog adivine mediante una lista.
lista_frase(comunes,[(1,frase[el viejo y el mar]),(2,frase[alicia en el pais de las maravillas]), (3,frase[aladino])]).
%se le puede añadir más frases

Para obtener una frase de la lista para ser usada, sería algo así.
frase_trabajo(X,Y):-lista_frase(comunes,L),pertenece((comunes,(X,Y),L).

%hay que poner lo siguiente para que se efectue la búsqueda
pertenece(E,L):- L=[E_].
pertenece(E,[_T]):-pertenece(E,T).
  • Cada frase hay que descomponerla con sus parabras que esta poseé, y a su vez, en las letras que poseé. Esto por que??? Sencillo, el juego de ahorcado básicamente busca letra por letra, no palabra por palabra y prolog es un lenguaje de razonamiento por gramática, no un lenguaje que opere con comandos como C y java como el compareTo o substr.
frase[el viejo y el mar]:- palabra[el],palabra[viejo],palabra[y],palabra[el],palabra[mar].
%así con todas las frases.
%evidentemente podemos quitar una palabra[el], si así lo desean, haganlo.

palabra[el]:- letra[e],letra[l].
palabra[viejo]:-letra[v],letra[i],letra[e],letra[j],letra[o].
%y así con todas las palabras, algo tedioso
  • Hay que tener un sujeto para las oportunidades como oportunidades[8], significando que se tiene 8 oportunidades, cada vez que el prolog la riegue se hará un nuevo sujeto con una oportunidad menos:
oportunidades[n]:-oportunidades[m], m is n-1.
Queda claro que al existir un oportunidades[0] significa que el prolog perdió.
  • Al inicio del juego, no deben haber letras declaradas (obviamente, al inicio no hay palabras usadas). Cuando se use una letra, se crea su instancia
letra[a].
letra[b].
letra[h].
  • Con la existencia de ciertas instancias de letras, puede que se cumpla que la frase elegida ya se declare valida, por lo tanto, haciendose ganador
ganador(X,Y):-frase_trabajo(X,Y),not oportunidades(0).
  • La opuesta sería el perdedor.
perdedor(X,Y):- not frase_trabajo(X,Y),oportunidades(0).

Espero que todo esto les sirva de algo. En realidad aún no se me ocurre el motor de búsqueda para el programa, en caso de tener una idea, actualizaré el post.

Y pues... en caso de tener ya un programa listo, yo diría (en mi opinión, si quieren no me hagan caso) que al tener el programa, pues lo hagan público. Esto con que finalidad???? Sería compartir algo que ustedes hicieron, tal vez con mucho trabajo, pero seamos sinceros, NO LO VOLVERAN A USAR (o al menos es poco probable). Y con eso... se hace presión de que los monos estos llamados "maestros clásicos de inteligencia artificial" dejen siempre los mismos ejercicios y que se actualicen.

sábado, 3 de abril de 2010

Día de ocio.... más tags interesantes

En definitiva, esta fué una buena semana de vacaciones, descanso y preparación para acabar este último semestre.

Y pues... hoy que es mi último día de descanso antes de hacer las tareas que tengo q entregar la siguiente semana (al último dia ¬_¬), estoy realmente de ocioso. Se me ocurrió volver a ver mi contador de visitas y ver los tags con los que la gente contacta mi página.

Respecto al post anterior referente a este tema, no han cambiado mucho, siguen estando la mayoria de los mismos. Aunque surgieron unos nuevos, curiosos y graciosos:
  1. YOCO Y PUQUI.COM.- Es el tag mas raro. De hecho no se como rayos el conjunto de redes neuronales o lo que quiera que sea que haga funcionar al google ponga al blog como primer resultado. Ignoro de que sea esa página. Y solo por que en un post (el cual fue borrado para cuidar mi seguridad) use el apodo de puqui. Solo por eso. Que tonteria!!!
  2. directora de upiicsa.- El post culpable es aquel donde definia los nuesvos nombres de los edificios de la upiicsa. Lo único que se es que es una licenciada en administración industrial, que no necesitó estudiar una maestria o un doctorado para llegar al gran puesto que tiene y que cuando llegó muchos de sus compad..., perdon, sus colaboradores tomaron varios puestos de la escuela. Es lo único que se, ya ven, con eso de que la directora ha ido a recorrer la escuela y ha hecho eventos para darse a conocer y ha hecho actividades para mejorar la institución, pues creo que me siento culpable de no saber más de ella (sarcasmo ¬_¬).
  3. como le puedo hacer para no hacer mi servicio en el ipn si tengo la beca pronabes.- dala de baja o cambiate a telmex o halp helu o esperate a acabar la carrera, luego esperate un año y la podras hacer fueras. Sino, ya ni modo, te frejaste.
  4. descargar el examen de admision de nivel superior upiicsa.- a ver... dejen lo busco, esperen, OBVIO NO LO TENGO
  5. semana de proteccion civil en upiccsa.- No conozco la UPICCSA, no les puedo ayudar, yo soy de UPIICSA =D
  6. ciencias de la informatica ipn REFORMA RANKING 2010.- quedó en primer lugar, lanzen sus tangas al aire
  7. upiicsa basico 1 ingles libro.- se llama headway, adios
  8. dejar upiicsa.- ok... el orgullo upiicsiano no puede tanto como la deserción.
  9. ¿como saber los puntos que nesesito para entrar ala ingenieria en upiicsa el en poli?.- me parece que los santos ministros de la upiicsa cada 43 años se reunen en el mcdonalds a las 3:32 am con un ritual que consiste en comer 4 yemas de huevo con moho y al final revelan el número mínimo de aciertos para acceder a la escuela. Si no entienden el sarcasmo, no hay un mínimo de puntos, todo depende del promedio de los alumnos, si upiicsa fue tu primera, segunda o tercer opción, y de las vacantes disponibles. Entiendase así, si para la ingeniería en informática hay 120 lugares, los obtendrán los 120 chavos que escogieron esa ingeniería CON NÚMERO DE ACIERTOS ALTO (eso creo jaja). Ahora NO SE PREOCUPEN, en realidad es más fácil quedarse en una escuela del IPN que en una de la UNAM, incluso en la UNAM si te piden un número mínimo de aciertos (explicando así su espantosa saturación).
  10. seas upiicsa.- Igualmente lo lamento, no conozco ese sistema, solo conozco el SAES.
  11. como armar un brazo robotico de 6 grados de libertad.- con mucho cuidado, paciencia, conocimiento y, eso si, mucho dinero XD
En realidad son todos.
Y pues, con el premio ganador estan el conjunto de tags que siempre preguntan por un juego de ahorcado en prolog.

Esa aberración por siempre pedir lo mismo. SEÑORES MAESTROS DE INTELIGENCIA ARTIFIAL, SEAN ORIGINALES Y PIDAN OTRA COSAAAAA.