Ejemplo de Sockets en .Net: Chat Cliente-Servidor (Parte 1)

No hay comentarios

Un tema interesante a la hora de programar es el intercambio de información entre computadoras por medio de la red, ya sea el intercambio de archivos (FTP) o simplemente el intercambio de texto entre computadoras (Chat). Esta es una aplicación Cliente-Servidor para un chat en el cual se pueden apreciar dos temas interesantes, uno el uso de sockets y dos el uso de hilos.

Primero lo que tendremos que elaborar es un Servidor que escuche a todos los clientes y cuando este reciba un mensaje lo replique hacia los clientes que están conectados. Lo primero será construir la forma:

Continue reading…

Agregar multiples Marcas con Información a Google Maps

No hay comentarios

Este tema me tomo algo de tiempo poder desarrollarlo y espero les pueda ayudar. La idea principal es extraer registros almacenados en una base de datos de MYSQL y la información de esos registros (nombre, dirección  teléfono  latitud,longitud) poder mostrarlos en una marca en Google Maps de acuerdo a la latitud y longitud del registro y una vez establecida la marca al dar clic en ella mostrar el resto de la información de ese usuario (nombre, dirección y teléfono). Después de mucha búsqueda en la red, la mejor solución que encontré fue la siguiente:

  1. Extraer la información de MYSQL y generar un archivo  XML con dicha información,aquí mismo en mi blog encontrara como generar este tipo de archivos en PHP.
  2. Una vez obtenida la información mostrarla en Google Maps con el siguiente código:

Continue reading…

Configurar driver de Arduino en Windows 8

No hay comentarios

Hace algunos días que he estado teniendo problemas para agregar los drivers de arduino en Windows 8 afortunadamente después de tantas consultas por fin pude dar con la solución en la pagina de arduteka.com, aunque ahí mismo dicen que la solución realmente viene de otra fuente que a la fecha no tenemos. Menciono esto ya que el crédito realmente no es mio pero hay que compartir la solución.

 Arduino Uno

  1. Dar de baja los controladores de arduino que tengas instalados.
  2. Bajar la nueva versión de drivers de la pagina de Arduino.
  3. Entrar a Configuración.
  4. Cambiar configuración de PC.
  5. Ir a uso General.
  6. Reiniciar ahora. (En la parte de hasta abajo de Uso General, usar barra de desplazamiento vertical.)
  7. Una vez reiniciado ir a Solucionar Problemas.
  8. Opciones Avanzadas.
  9. Configuración de Inicio.
  10. Deshabilitar el uso obligatorio de controladores firmados.
  11. Reiniciar la computadora.
  12. Instalar los drivers normalmente y listo.

Espero y les funcione.

Saludos.

Generar XML por medio de una consulta en PHP y MYSQL

No hay comentarios

En esta ocasión publicare un código para convertir en un archivo XML la información recuperada de una base de datos. El código permite agregar las columnas en nodos y mostrar el contenido de cada fila. Muchas de las veces es mucho mas sencillo  trabajar con archivos XML ya que muchas aplicaciones de terceros solicitan la información en este tipo de documentos. A continuación presento el código:

<?php  

$username="usuario";
$password="password";
$database="base_datos";

$dom = new DOMDocument("1.0");
$node = $dom->createElement("Datos");
$parnode = $dom->appendChild($node); 

// Opens a connection to a MySQL server

$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {  die('Not connected : ' . mysql_error());} 

// Set the active MySQL database

$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
} 

// Select all the rows in the markers table

$query = "SELECT * FROM datos";
$result = mysql_query($query);
if (!$result) {  
  die('Invalid query: ' . mysql_error());
} 

header("Content-type: text/xml"); 

// Iterate through the rows, adding XML nodes for each

while ($row = @mysql_fetch_assoc($result)){  
  // ADD TO XML DOCUMENT NODE  
  $node = $dom->createElement("Dato");  
  $newnode = $parnode->appendChild($node); 
  $newnode->setAttribute("nombre",$row['nombre']);
  $newnode->setAttribute("ap_paterno", $row['ap_paterno']); 
  $newnode->setAttribute("ap_materno",$row['ap_materno']);

} 

echo $dom->saveXML();

?>

Este código me generará un archivo XML como el siguiente:

<Datos>
 <Dato nombre="Luis" ap_paterno="Hernandez" ap_materno="Villaseñor" />
 <Dato nombre="Juan" ap_paterno="Perez" ap_materno="Gonzalez" />
</Datos>

Espero y les sea de utilidad.

5 Soluciones de TI imprescindibles en una organización.

No hay comentarios

 Actualmente las tecnologías de la información son sumamente esenciales en cualquier organización. El uso del Internet se ha expandido a niveles potenciales  y ya no se centra únicamente en la computadora de escritorio convencional, hoy en día tenemos desde tabletas electrónicas hasta teléfonos inteligentes los cuales nos han permitidas una comunicación constante y ha logrado acortar la distancia de la información. El uso más generalizado de  la banda ancha ha permitido el libre movimiento de grandes cantidades de información a través de la red, la publicación de noticias, las redes sociales, el correo electrónico, material multimedia, libros electrónicos, voz IP, video llamadas, etc. Se han hecho palabras comunes dentro de nuestro entorno diario. Las organizaciones tanto privadas como gubernamentales han tenido que innovar sus procesos para no quedar atrapados en el pasado.

Continue reading…

Publicar un punto con Información a Google Maps

No hay comentarios

Cuantas veces no hemos querido agregar un mapa de Google a nuestro sitio web, ademas de poner un punto con información acerca de una ubicación. Viendo la información de Google Developers podemos encontrar todo el código necesario para que esto no sea un dolor de cabeza. Aqui les dejo el codigo necesario para elaborar esto utilizando la nueva versión 3 de la API de Google.

<html>
<head>
<title>Puntos de Interes</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
  google.maps.event.addDomListener(window, 'load', function() {
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 9,
      center: new google.maps.LatLng(25.632241,-103.379288),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

    var infoWindow = new google.maps.InfoWindow;

    var onMarkerClick = function() {
      var marker = this;
      var latLng = marker.getPosition();
      infoWindow.setContent('<h5>INSTITUTO TECNOLOGICO DE LA LAGUNA</h5><font size="-3"> Blvd. Revolucion y Calz. Cuahutemoc S/N<br>Col. Centro<br>Torreon, Coah.<br>Tel. (871)7051313</font>');

      infoWindow.open(map, marker);
    };

    google.maps.event.addListener(map, 'click', function() {
      infoWindow.close();
    });

    var marker1 = new google.maps.Marker({
      map: map,
      position: new google.maps.LatLng(25.532877,-103.435299)
    });

    google.maps.event.addListener(marker1, 'click', onMarkerClick);

  });
</script>
<style type="text/css">
  body {
    font-family: sans-serif;
	background:#CCC;color:#6f6f6f;line-height:18px;min-width:960px
  }
  #map {
    width: 450px;
    height:450px;

  }
</style>
</head>
<body>

  <center><div id="map"></div></center>

</body>
</html>

 Este es un ejemplo muy sencillo de como agregar ese punto. Ademas de estos se puede integrar dicho código con PHP para poder sacar información de una base de datos y mostrarlo en la información. Ojala y les sea de utilidad.

Saludos.

Mis repositorios Debian 6 favoritos

No hay comentarios

deb http://ftp.mx.debian.org/debian squeeze main
deb-src http://ftp.mx.debian.org/debian squeeze main

deb http://ftp.mx.debian.org/debian/ squeeze-updates main
deb-src http://ftp.mx.debian.org/debian/ squeeze-updates main

deb http://ftp.mx.debian.org/debian squeeze main contrib non-free
deb-src http://ftp.mx.debian.org/debian squeeze main contrib non-free

Instalación de OpenKM en Debian 6

No hay comentarios

OpenKM es un gestor de documentos Open Source, pude ser usado por pequeñas y grandes empresas, así como universidades. Sobre todo aquellas que deseen compartir documentos entre sus empleados de manera segura. Es un gran administrador de archivos para aquellas empresas que se encuentran en proceso de certificación de calidad, ya que maneja de manera centralizada todas las formas de registros que solicitan. OpenKM ofrece una plataforma robusta, personalizable y de fácil integración con terceras aplicaciones. Entre lo que ofrece podemos decir:

Continue reading…

Comando Update en Linq

No hay comentarios

Este pequeño post trata de como actualizar las tablas de una base de datos, lo que en SQL se haría con el comando UPDATE, como se haría en LINQ?. Pues es tan fácil como el comando INSERT. Supongamos que tenemos una tabla que contiene los campos: Id, Nombre y Teléfono.  Partiré en este Post de que ya sabemos como crear una referencia hacia Linq, sino lo saben, pueden ver mi articulo anterior: Manejo de “Bases de Datos con LINQ“. Lo primero que tenemos que hacer es crear una Forma para realizar los cambios que se requieran, para no entrar tanto en detalles haré la forma de lo mas sencillo.

Continue reading…

Cadenas de Conexión a través de Archivos de Configuración en Visual Studio

No hay comentarios

En esta semana, 2 de mis residentes tenían la inquietud de saber como elaborar un instalador para sus programas y de como tomar la cadena de conexión a una base de datos, si cuando instalarán la base de datos, obviamente el origen de datos cambiaría según el nombre de la maquina donde tuvieran instalado su gestor de base de datos, y pues el programa traería otra cadena de conexión de  cuando programaron su sistema, y mas que nada su inquietud era de como actualizar esa cadena hacia el nuevo servidor?.

Pues bien todo esto se puede solucionar implementando un archivo de configuración dentro de sus sistemas o su proyectos. Si ustedes utilizan Linq ó agregan Orígenes de Datos por medio del asistente, estos automáticamente agregan archivos de configuración en sus aplicaciones, pero que hacer si su funciones de manipulación de datos las programaron de manera manual. Pues en nuestros proyectos podemos agregar el archivo dando un botón izquierdo sobre nuestros proyecto en el explorador de soluciones y agregamos el “Archivo de configuración de aplicaciones” el cual tiene la extensión .config .

Continue reading…