lunes, 30 de julio de 2012

Funciones embebidas en gestores de bases de datos

Cada gestor de base de datos, puede manipular sin problemas código SQL en la forma de procedimientos y funciones.
Pero , ¿cualesquier gestor acepta código en C dentro de él? o ¿código en java, .net ? etc.
Algunos lenguajes pueden "hospedarse" dentro de un gestor de base de datos ( ya hasta MsSQLServer tiene esa opción!! )

Esto permite programar al gusto del desarrollador alguna funcionalidad sobre el servidor de base de datos que puede aprovechar todo su poder! :-)

A continuación unos enlaces hacia los principales manejadores de bases de datos y sus funciones embebidas, si tienes algún otro por compartir, BIENVENIDO sea!!


Creating CLR Functions for SQL Server

Introduction to Java in Oracle Database

Writing PostgreSQL Functions in C

Supported routine programming languages ( DB2 )

jam

sábado, 28 de julio de 2012

¿soy workaholic?

Esta entrevista de radio indica que el 20% mundial es workaholic, da las características para saber si uno es adicto al trabajo ( dependientes del trabajo ), puedes hacer el test para saber si lo eres.
¿tu lo eres?

viernes, 27 de julio de 2012

Buena noticia para los amantes del VB6

Ms extendió el soporte a sus sistemas operativos ( hasta el windows 8 ) para el MsVB6, siendo que este habia sido suspendido desde el 2008.
¿porque?
Simplemente, sigue siendo utilizado por muchas empresas que no les agrado mucho el VB.NET y siguen utilizando sus aplicaciones en el viejo VB, además supongo que si MsOffice sigue dando soporte a VBA y no ha cambiado al paradigma de orientado a objetos, el mismo MsOffice le hace publicidad a ese lenguaje.
pero ¿ha pasado lo mismo con otros lenguajes?
NO
MsVisual FoxPro, murio y no lo han desenterrado, una comunidad de Foxieros en Europa le solicitó los derechos de Visual FoxPro y que sucedió???

XNA y sus alianzas para sobrevivir y superar

XNA poco a poco gracias a sus negocios y enlaces entre compañias ha ido formando un buen conjunto de herramientas que la apoyen. En la columna de Simon Jackson narra como ha sido los últimos "amarres" que ha realizado Microsoft para apoyar a XNA y la verdad son muy interesantes, se ve que la pelea por los videojuegos es dura para Micrososoft, pero por lo menos ya no esta recurriendo "tanto" a la estrategía que uso en la guerra de los navegadores.

Suerte para México en las Olimpiadas Londres 2012!

jam

jueves, 26 de julio de 2012

Como prepararte para una entrevista de trabajo!

Los reclutadores más "difíciles" cuando te entrevistan analizan 3 aspectos:
* lenguaje verbal
* lenguaje corporal
* lenguaje sensorial

En este audio (a partir del minuto 49 ) que comparto con ustedes indican muchos tips para sobrellevar una entrevista
y salir victorioso! ojo que también los reclutadores que nos ven pueden tomar tips para no ser
TIMADOS! ;-)

jam

miércoles, 25 de julio de 2012

Cursos de la Universidad de Berkeley GRATIS!!

Ahora la universidad de Berkeley se ha unido a la propuesta de EdX de ofrecer cursos gratuitos!
Ahora parece competencia!! porque otras universidades como Stanford, Princeton, etc los ofrecen también, pero estos en Coursera.
¿quien ganará?
¿quien ofrecerá más cursos gratuitos al mundo?

Pensar que quieren restringir el internet unos por medio de ACTA y otros quieren apoyar la masividad de la educación! ;-)

Eso si, el secreto es que NINGUNO da créditos reales por cursar un curso en dichas plataformas, pero es un inicio, ¿no lo creen?

jam

La evolución del javascript!

ECMA se ha decidido a generar la siguiente versión del lenguaje por excelencia para programar en clientes HTML JAVASCRIPT!

El siguiente artículo indica lo bueno, malo y feo de la anterior sintaxis y los cambios que se vienen para la nueva versión.

Su nombre código es ECMAScript 6 ( googleando lo pueden encontrar ), pero también lo conocen como Harmony. Para más información los siguientes enlaces:
* ECMA para Firefox
* la propia especificación
* articulo excelente!

jam

martes, 24 de julio de 2012

Smart Planet ( planeta inteligente ) IBM

Hay un programa interesante de IBM llamado "Smart Planet" para estudiantes. Trata de motivar el desarrollo de proyecto interdisciplinarios para aplicar las ciencias computacionales y las TI en soluciones actuales, inovadoras y aplicables a problemas reales.

La Universidad de Colima es un ejemplo mexicano de participación.
Hay varias áreas de participación que ofrece IBM, a continuación las colocaré extraidas del sitio web de Smart Planet for Students ( el número en inglés es la cantidad de proyectos que hay sobre el tema ):


  • Analytics (23)
  • Banking (2)
  • Buildings (4)
  • Cities (7)
  • Computing (14)
  • Education (56)
  • endangered species (9)
  • Energy (16)
  • Entrepreneur (5)
  • Food (3)
  • Government (4)
  • Healthcare (3)
  • Leadership (9)
  • other possible programs (7)
  • Public safety (2)
  • Retail (1)
  • Security and resilience (2)
  • Smarter Planet (84)
  • Student Projects (11)
  • Sustainability (11)
  • Transportation systems (2)
  • Updates on current projects (5)
  • Water (9)
  • Water Pressures (4)
Si hay algúna idea de participación no duden en ponerse en contacto, IBM puede apoyar con fondos y tecnología para la realización de los proyectos.
;-)
jam

sábado, 21 de julio de 2012

México firma ACTA

Triste noticia,
El poder ejecutivo de México ( lease Felipe Calderon ) firmó ACTA en Japón!!
:(
Nos chin..mos???
El único recurso que queda es que el senado de la república NO lo ratifique!!
Es decir, dependemos de los inútiles de los senadores!
Más triste!!!!
¿sáben que tipo de personas tenemos en el senado?
Los senadores RECOMENDARON NO firmar ACTA y COFETEL también!
Pero aún así, les valió ma....!!

Enlaces interesantes:
1.- Cuál es el proceso para ratificar e implementar el ACTA
2.- Aristegui firma de acta
3.- El Parlamento europeo rechaza ratificar el tratado antipiratería ACTA

jueves, 19 de julio de 2012

habla un web master de google

Este es un consejo de uno de los webmaster de google para hacer más rápido el HTML5. enlace jam

Agilizando el acceso desde moviles a un web

Este es un artículo directo desde google que indica algunos tips para agilizar la rapidez de carga de una página web en un movil.
enlace

jam

haciendo el web más rápido

Este es un artículo publicado por google sobre como hacer un sitio web más rápido. Es una implementación de una estrategia dada por Saunders.
enlace

jam

martes, 17 de julio de 2012

Tutorial en video para manejar XML usando MsSQLServer 2008 R2

A continuación unos videos que hablan sobre el manejo de XML en un gestor, en este caso MsSQL Server 2008 R2. http://www.youtube.com/watch?v=9RyF_ymzoI0 Definir un campo XML para una tabla en MsSQLServer Tutorial SQL, Ms SQL Server 2008 R2, xml 1 Tutorial SQL, Ms SQL Server 2008 R2, XML parte 2 http://www.youtube.com/watch?v=97lXeYspChE consultar el contenido de campos xml Tutorial SQL,Ms SQL Server 2008 R2, XML parte 3 http://www.youtube.com/watch?v=8615uKGBGaI consultar el contenido de campos xml jam

tutorial de XML gratuito y en línea

Estos son algunos videos de un tutorial de XML para manejar con javascript
  1. tutorial XML y JS, parte 1
  2. tutorial XML y JS, parte 2
  3. tutorial XML y JS, parte 3
  4. tutorial XML y JS, parte 4
  5. tutorial XML y JS, parte 5
  6. tutorial XML y JS, parte 6
  7. tutorial XML y JS, parte 7

Se impartirá un curso completo de XML con .NET [ Curso Manejando XML en el escritorio o en el web usando Ms VB y C# ] a partir de este próximo 24 de julio
El autor del curso dió un webinar sobre como usar el XML para agilizar un sitio web.

Nuevo documento del CSTA sobre K8

Hola colegas!

Les dejo un enlace de la organización CSTA, esta organización es parte de la ACM y trata de la enseñanza de la educación en ciencias computacionales en educación básica y media.
Acaban de publicar un compendio que en lo personal considero MUY IMPORTANTE de su trabajo.
Hablan en particular de la educación en pre-escolar, que parece que es MUY lejana para las licenciaturas o postgrados en ciencias computacionales, pero NO creo que sea así.
Creo que a NOSOTROS nos corresponde motivar a los kinders y primarias que sigan estos estándares ya que son NUESTROS niños los que saldrán beneficiados.
Actualmente ya hay escuelas que desde los kinders se pide a los estudiantes una computadora portatil ( tipo Intel ). Pero ¿se enseña adecuadamente? ¿se aprovechan todos los recursos de esa computadora?
K-8 Computer Science: Building a Solid Foundation

viernes, 13 de julio de 2012

Vuelve al ataque ACTA

Europa rechazó ACTA!! ¿porqué? Por su ambiguedad, permitiría meternos en muchos problemas Eh ahí un video que recopila este momento: jam

lunes, 9 de julio de 2012

Tutorial de SQL, desde lo básico hasta un nivel medio

Para mis alumnos de la maestría, les comparto estos enlaces que les indicarán para el gestor de base de datos Ms SQLServer 2008 R2, ejemplos del uso de los principales operadores SQL:
SELECT
FROM
WHERE
GROUP BY

Sus comentarios son necesarios para enriquecer y mejorarlos, así con confianza opinen.

http://www.youtube.com/watch?v=WGja87_isbo
Utiliza también el operador IS NULL para encontrar valores nulos en una consulta.

http://www.youtube.com/watch?v=GEHbbsXCzNo
Usando el lenguaje SQL se utiliza el comando CASE a nivel del SELECT en donde puede ejecutarse en el producto Ms SQL Server 2008 R2

http://www.youtube.com/watch?v=-JjYJqYbAM8
Uso del comando GROUP BY para consultas en el lenguaje SQL, en el Ms SQL Server 2008 R2; fue usado con funciones de agregación.


http://www.youtube.com/watch?v=a5NUcWiXO-M
Las funciones de agregación en SQL no relacionan su resultado a la fila donde lo encontraron, simplemente lo emiten y listo. Para poder encontrar esos datos relacionados se puede utilizar una subconsulta. Esto se hizo usando Ms SQL Server 2008 R2

http://www.youtube.com/watch?v=2o1IUDTXEls
Uso de las funciones de agregación en SQL, estas son: count, max, min, avg y sum ( pero esta última no se incluye en este video ya que no aplica su uso por los campos con que se cuenta). Usando Ms SQL Server 2008.

http://www.youtube.com/watch?v=NBn-t6jegLY
uso del comando LIKE 

http://www.youtube.com/watch?v=oq-jWejkqBA
uso del operador or

http://www.youtube.com/watch?v=IIxFNNX6HgE
uso del operador AND

http://www.youtube.com/watch?v=mLQ-qqccMSc
uso del operador IS para comparar NULOS

http://www.youtube.com/watch?v=r-5Nrh7ZHQc
uso del operador AS en select y from

http://www.youtube.com/watch?v=IMX1Pgp7Wp4
Trabajar con más de una tabla con SQL

http://www.youtube.com/watch?v=ncRLCxJLsu0
operaciones matemàticas con SQL

http://www.youtube.com/watch?v=lARM6QMSMi8
concatenación de cadenas en SQL

http://www.youtube.com/watch?v=8jwSGs8_cxw
conceptos básicos, select y from


Referencia
Canal: Ciencias Computacionales++
http://www.youtube.com/user/jambrizgdl

sábado, 7 de julio de 2012

Webinar gratuito:Tip para agilizar tu sitio web

Webinar: ¡Agiliza tu sitio web con XML! link jam
Steve Saunders publicó hace algunos años dos libros[1, 2] para guíar a los desarrolladores en la construcción de sitios web rápidos. El siguiente video indica la forma de usar los archivos XML para disminuir la cantidad de peticiones HTTP al servidor ( Las peticiones de este tipo son las que más afectan el rendimiento de una aplicación web).

link a video

Pero esto es solo una "probadita"; se pueden utilizar los archivos XML junto con tu base de datos para potencializar más su poder y ayudarte a administrar/actualizar un sitio web que mantiene una aplicación web, página estática o dinámica.

Inscríbete al webinar y al curso que para tratar ese tema se ha hecho para tí y participa!!

webinar: ¡Agiliza tu sitio web con XML!

Manejando XML en el escritorio o en el web usando Ms VB o C#

viernes, 6 de julio de 2012

Round Robin en Freescale Kinetis K60 512n

Objetivo
Al probar la implementación del conjunto de librerías para manejo de ETHERNET llamada RTCS, se encontró que los sockets TCP son bloqueantes ( es decir, se esperan indefinidamente hasta que se reciba una petición por el puerto ). Esto no afectará el sistema si se tiene una tarea distinta por cada socket. Desgraciadamente al probar con la calendarización predeterminada de las tareas se encontró que se realiza un FIFO y cualesquier tarea que ejecute el código bloqueante del TCP bloquea todas las actividades del micro.
La solución es quitar la aplicación FIFO en la calendarización de las tareas y usar un Round Robin.

Alcance
Este documento desarrolla la forma de aplicar el algoritmo de calendarización Round Robin a las tareas generadas en el Kinetis K60 de Freescale.

Desarrollo
MQX está habilitado por default para la generación de tareas por parte del desarrollador. En los ejemplos que vienen en su sitio web y al descargar el sistema operativo MQX en la función main es común ver código de este tipo:

TASK_TEMPLATE_STRUCT MQX_template_list[] =
{
/*  Task number, Entry point, Stack, Pri, String, Auto? */
   {MAIN_TASK,   Main_task,   2000,  9, "main",MQX_AUTO_START_TASK },
   {0,           0,           0,     0,   0,      0,      }
};


En él se define una tarea principal que es de inicio automático por parte del sistema operativo. La constante MQX_AUTO_START_TASK es la bandera que indica lo anterior al subsistema que se encarga de la calendarización de las tareas.

La estructura Task Template es usada para definir los parámetros básicos de una tarea para el MQX. La calendarización de las tareas ( el tiempo dedicado por el sistema operativo a cada tarea ) utiliza el algoritmo FIFO ( First In First Out ) de forma predeterminada. Esto puede cambiarse y en su lugar escoger la aplicación del algoritmo Round Robin ( también conocido en MQX con el nombre de time slice ). Los pasos para realizar esto son:

1.- Indicar en las tareas que se quiera trabajen de esa forma la bandera: MQX_TIME_SLICE_TASK
Por ejemplo:
TASK_TEMPLATE_STRUCT MQX_template_list[] =
{
/*  Task number, Entry point, Stack, Pri, String, Auto? */
  {MAIN_TASK,Main_task,2000,9,"main", MQX_AUTO_START_TASK | MQX_TIME_SLICE_TASK, 0L, 2 },
  {SEC_TASK,Main_task,2000,9,"sec", MQX_AUTO_START_TASK | MQX_TIME_SLICE_TASK, 0L, 2 },
   {0,           0,           0,     0,   0,      0,                 }
};


Se definen dos tareas que se inician al iniciar el MQX pero que las dos trabajan en Round Robin. El último parámetro (2) indica que el tiempo en que está vigente cada tarea es únicamente 2 milisegundos. La unidad milisegundos puede ser cambiada por ticks, en la documentación indica que de forma predeterminada la unidad de tiempo son ticks pero en esta versión del MQX ( 3.7 ) al revisar las banderas se encontró que la unidad predeterminada eran milisegundos.
La bandera MQX_TIME_SLICE_TASK esta por default deshabilitada en el archivo mqx.h con el siguiente código:
#if MQX_HAS_TIME_SLICE
#define MQX_TIME_SLICE_TASK            (0x04)
#endif


Esto se encuentra en el archivo small_ram_config.h
#ifndef MQX_HAS_TIME_SLICE
#define MQX_HAS_TIME_SLICE                  0
#endif


Este archivo es colocada en el proyecto actual por parte del CodeWarrior ( desde ahora indicado como CW )cuando se pide por medio del wizard generar un proyecto básico que use el MQX. El archivo small_ram_config.h en el proyecto es generado por lo tanto no puede modificarse.

2.- Buscar en el PSP la bandera MQX_HAS_TIME_SLICE y darle seguimiento con la tecla F3, el CW envía el control a un archivo small_ram_config.h ubicado en el PSP. Se cambia ahí la bandera MQX_HAS_TIME_SLICE de 0 a 1 y se recompila el PSP.

3.- Al colocar la bandera MQX_TIME_SLICE_TASK al momento de generar la tarea esta es respetada. Las tareas son ejecutadas de forma intercalada.

Realizado: 6 de julio del 2012
Autor: Jesús Ambriz

miércoles, 4 de julio de 2012

Abrir archivo XML sin XMLHTTPRequest

En algunos link[1] solo he encontrado la posibilidad de abrir archivos XML usando la clase XMLHTTPRequest, pero no es la única forma de hacerlo. En el siguiente código se muestra como hacerlo para varios navegadores sin usar la clase anteriormente indicada:

/*
documento xml
*/
var docXML;

/*
Abrir un archivo XML
*/
function openFile( sNameFile )
{
  try
  {
    docXML= document.implementation.createDocument("","",null);
  }
  catch ( oError )
  {
     try
    {
      docXML= new ActiveXObject("Microsoft.XMLDOM");
    }
    catch( oError )
    {
      return 0;
    }
  }
  docXML.async= false;
  docXML.load( sNameFile );
  return 1;
}


El método "openFile" regresa un 1 en caso de haber abierto el archivo sobre la variable "docXML" y 0 en caso contrario.
jam
Referencias
[1] XML DOM, w3schools.com. http://www.w3schools.com/xml/xml_dom.asp

lunes, 2 de julio de 2012

Curso para manejo de XML para web y desktop

Con Software Guru pongo a su consideración un curso para aprender la manipulación de archivos XML para web usando VB y C#.

El temario incluye:
1.- Generalidades de XML y forma de usarlos en Ms VB y C# bases
2.- ¿Cómo maneja Javascript archivos XML para aplicaciones ASP .NET? XML con ASP.NET
3.- ¿Cómo definir campos XML en la base de datos y no morir en el intento? definir campos XML en una base de datos
4.- ¿Cómo generar información XML a partir de la base de datos relacionales? La base de datos generando XML
5.- ¿Cómo consultar información sobre campos XML? uso del XPATH con SQL
6.- ¿Cómo definir funciones de tipo SQL para manipular contenido XML en el Ms SQL Server? funciones personalizadas para XML, en el servidor

Aquí la dirección de más información del curso

jam

Google Chrome gana la batalla de los navegadores!! ( por ahora )

La revista Dr Dobb's publica una serie de gráficas que indican que el navegador de google a superado a FireFox y a MsExplorer como el navegador personal preferido. Esto suponen que es por su enfoque que tiene google hacia el uso de internet y lo que debería de ser un browser. Ver estadísticas jam

domingo, 1 de julio de 2012

Mejores prácticas para tu sitio web, publicadas por Yahoo!

Yahoo! participa en la labor altruista de capacitar a los desarrolladores de sitios web para insistir en la importancia de concentrarse en el FrontEnd y NO tanto en el BackEnd. Si se concentran en el desempeño del servidor solo incidirán ( en el mayor caso de los sitios estudiados ) en casi el 20% del tiempo que requiere un browser para mostrar una página web, pero si en cambio se concentran en las prácticas que señalan el siguiente artículo afectarán el 80% restante! Se logran mejoras de más del 50% del tiempo de carga y recarga de una página web. Artículo: Best Practices for Speeding Up Your Web Site hasta luego jam canal youtube

tip para un sitio web más rápido, unir imágenes!

En uno de sus libros Steve Souders (High performance web sites ) indica que una de las formas de hacer un sitio web más rápido es DISMINUIR la cantidad de peticiones HTTP del cliente al servidor. Como es sabido por ustedes cada vez que se indica una imagen en una página web, de forma SEPARADA el cliente solictia al servidor la imagen y la coloca en el lugar adecuado. Efectivamente, primero baja el HTML (estático o generado por PHP u otro lenguaje ) y posteriormente va analizando los recursos uno por uno que tiene que pedir. De esa forma si tienen 15 imágenes en su sitio web, este realizará 16 solicitudes HTTP, una para el html y 15 para cada imagen. ¿cómo disminuirlas? Coloque en 1 imagen , las 15 imágenes! Efectivamente y por medio de CSS limiten la posibilidad de VISIÓN en cada imagen al segmento de la imagen que corresponde a la imagen que quieren visualizar. Esto puede reducir SIGNIFICATIVAMENTE el tiempo que tarda una página en cargarse! un buen artículo en la web para consultar esto es CSS Sprites: Image Slicing’s Kiss of Death, escrito por DAVE SHEA Claro que esto tiene pros y contras! ;-) espero que puedan probarlo y posteriormente pasaré un video de como realizarlo. hasta luego. jam