Buenas gente.
Hoy quiero hablarles un poquito de este recurso de Silverlight que de verdad me ha sacado de apuros en muchas ocasiones y que tanta funcionalidad le da a nuestras aplicaciones.
No pretendo hacer un tutorial, sino solo un pequeño comentario de lo mucho que IValueConverter puede hacer.
IValueConverter es una "Interfaz" que brinda la posibilidad de que podamos agregar cierta lógica (condiciones, decisiones) con los enlaces que hagamos, particularmente en Xaml.
Consiste básicamente en que cuando hagamos una "Binding" en nuestro Xaml, podamos antes de que se haga el render manipular el dato y regresar (Return) un valor de diferente tipo o formato.
Por ejemplo, si estamos enlazando el campo "sexo" a un TextBox, pero en nuestra base de datos nosotros guardamos 0 para hombre y 1 para mujer, entonces si dejamos el enlace tal cual, esos valores son los que mostrará, pero si lo enlazamos ademas con el converter, pues en la logica de este podemos decirle que haga un return de "H" cuando el valor pasado sea 0 y que regrese "M" cuando el valor sea 1, asi de sencillo.
En el XAML.
<TextBox Text="{Binding sexo, Converter={StaticResource sexoConv}}"/>
con esto hacemos el binding y ademas asignamos el converter "sexoConv"
En la Interface
Public Class convertidorSexo
Implements IValueConverter
Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.Convert
If value = 0 Then
Return "H"
Else
Return "M"
End If
End Function
Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As CultureInfo) As Object Implements IValueConverter.ConvertBack
End Function
End Class
En lo personal he utilizado esta interfaz para cambiar color de celdas, tamaño de fuentes, asignar una u otra imagen (Aplicaciones con semáforo), cambiar color a la fila de un DataGrid en dependencia de un valor.
Bueno espero esto pueda dar una idea de lo que podemos lograr con la Interface IValueConverter.
Y ustedes en que circunstancias lo han usado?
Respaldar Información Windows sin extraer Disco Duro
Saludos gente.
Hoy me llevaron una portátil Lenovo Z570, para cambiarle sistema operativa, windows 7 a windows 8.
Pues normalmente esto no tiene ningún inconveniente, como tantas veces hice un respaldo de la información que tenia en la unidad C y la pase a la unidad D.
Todo bien, luego me dispongo a formatear e instalar windows 8, elimino la partición del sistema anterior y formateo para seguir la instalación, pero en esto que me dice que el disco tiene una partición GPT y que para instalar windows 8 necesito convertir el sistema de arranque del disco, si recuerdan tengo mi respaldo en la otra mitad del disco duro, por lo que si hago el procedimiento de conversión pierdo todo, no tengo a mano un adaptador que me permita sacar el disco duro de la portatil y respaldar en otro disco, no tengo a mano un solo LiveCd que me permita arrancar y hacer el traspaso de la información, asi que "Que Hacer ??"
Un LiveCd anda por los 700 mb, con la conexión tan hermosa que tengo, tendría que esperar un día entero para descargarlo.
Así que la solución que se me vino a la mente es la siguiente:
[SOLUCION]
Arranco normal con el Dvd de win8, cuando me muestra las opciones presionamos Shift + f10, esto abre la consola de comandos, conecto mi disco duro externo, y a través de comando de DOS, realizo un Xcopy de la información de una unidad a otra y listo, con esto ya podré realizar la conversión de todo el disco duro sin problemas.
Algo que no se me olvidará más.
Espero a alguno pueda servirle.
Saludos.
Capturar combinación de Teclas (Silverlight)
Buen día, hoy anotaré la forma de como capturar una combinación de teclas (Ctrl + Enter)
Para lograr esto tenemos que controlar el evento del KeyDown, en mi caso particular lo hago a un TextBox que es el único control que recibe el enfoque, ya que lo que estoy implementando es una especia de búsqueda y selección, por lo tanto cuando el usuario de ENTER se agregará el elemento seleccionado, y cuando de CTRL + ENTER se saldrá del formulario.
public void txtBuscar_KeyDown(KeyEventArgs e)
else
{
if (e.Key == Key.ENTER)
{
agregarALista();
}
}
}
En VB
Private Sub txtBuscar_KeyDown(sender As Object, e As KeyEventArgs)
If Keyboard.Modifiers = ModifierKeys.Control And e.Key = Key.Enter Then
OKButton_Click(Nothing, Nothing)
Else
If e.Key = Key.Enter Then
agregarALista()
End If
End If
End Sub
Básicamente detectamos si se presiono alguna tecla "modificadora" (SHIFT, CTRL, ALT) en este caso CTRL en combinación con otra tecla (ENTER)
Saludos.
Cantidad de Registros en un Datagrid
Después de casi un año de no escribir nada por aqui, dejaré esta pequeña entrada, que será el inicio de muchos de los recordatorio de las cosas que voy descubriendo (Como hacerlas).
En está entrada será como saber la cantidad de registros que hay enlazados en un Datagrid, en Silverlight.
En C#
nombreDataGrid.ItemsSource.OfType<objeto>().Count();
En VB
nombreDataGrid.ItemsSource.OfType(of objeto).count()
Donde "nombreDataGrid" será obviamente el nombre de nuestro DataGrid
"objeto" será el tipo de dato (objeto) que estemos trabajando con el DataGrid
Por ejemplo si en nuestro dataGrid mostramos una lista de Clientes (de la Clase Cliente).
sería:
clienteDataGrid.ItemsSource.OfType(Of cliente).count()
Bueno espero a más de alguno le salve la busqueda (seguramente a mi mismo en par de semanas)
Curso de Maquetación y Desarrollo Web
Hola que tal a todos!!
Les cuento así rapidito, se viene una super e interesante serie de video-talleres, en los que construiremos el sitio de Autodidactas desde cero, partiremos desde la maquetación, nos vamos con el css.. Todo esto lo haremos de manera modular para que se comprenda mejor.
Una vez concluida ésta parte, nuestro experto en Django Carlos Rocha, tomará todo el template Html creado y lo convertirá en una plantilla utilizable por django, crearemos los módulos necesarios para el sitio y todo esto trataremos de hacerlo en vivo.
Ademas tenemos un par de cositas cool por ahi con nodejs que con el buen Samuel Burbano, meteremos mano al código...
como ven es una buena oportunidad para aprender desde cero, espero que puedan acompañarnos a estos talleres.
Recuerden entrar siempre a Autodidact.as
Esto está en versión Beta, pero si gustan pueden ir ayudándonos a probar XD! ---> REGISTRATE
Primeros pasos con Nodejs
En esta entrada les traigo este pequeño aporte sobre Nodejs, impresionante tecnología que ha ido creciendo como la espuma.
Nodejs es una plataforma construida sobre el Runtime JavaScript de Chrome para construcciones rápidas y fáciles, aplicaciones de red escalables.
Dale un vistazo a este video totalmente introductorio, donde se muestra desde la instalación de Nodejs, el uso de Express, algo de Jade y persistencia de datos con MongoDb
Rumbo a DrupalCampMx Puebla 2013
Este 17, 18, 19 y 20 de Abril, se llevará a cabo un grandioso evento denominado DrupalCampMx, en el cual diferentes ponentes de diferentes países estarán hablando y enseñando sobre Drupal.
Sitio web Oficial
Existe contenido para principiantes, intermedios y avanzados, es una oportunidad maravillosa para aprender un poco más de este Framewok/CMS.
En este Link puedes ver el contenido que se desarrollará durante los 4 dias del evento, como puedes ver es mucho contenido y seguramente de calidad.
En Autodidactas se está llevando a cabo una serie de talleres sobre Drupal, impartido por uno de los conferencistas en el DrupalCampMx, él es Jesús Manuel Olivas, quién durante todo el mes de Marzo nos guiará en entender y perderle el miedo a Drupal.
Puedes participar de esta colección de talleres, simplemente entrando al sitio web www.autodidact.as cada domingo y nos daremos una idea de lo que Abril nos depara en Puebla México.
Puedes revisar los dos talleres ya impartidos sobre en éste www.youtube.com/comautodidactas de youtube.
Esperamos se sumen a esta inciativa.
Saludos.
Comunidad Autodidactas
Hola que tal a todos, no he escrito mucho por esta zona ya que he estado algo ocupado con la comunidad www.autodidact.as misma de la que quiero hablarles hoy.
Saben tenemos al rededor de 8 meses desde que se inicio este proyecto, la verdad ha sido un crecimiento moderado, pero ya contamos con participación de muchos países.
La comunidad tiene por objetivo difundir el conocimiento, creando un grupo que le guste compartir y enseñar lo que ha aprendido.
En nuestro canal de Youtube www.youtube.com/comautodidactas, están los nuevos talleres y cursos que se han brindado en la comunidad, los vídeos anteriores están en mi cuenta personal www.youtube.com/lenincasco.
Estamos siempre en remodelación de nuestro sitio web, por cuestiones de tiempo pues avanzamos de a poco, pero contamos con tecnología de ultima como Django-python, Nodejs...
Contamos con ponentes reconocidos en la web, personas que desinteresadamente contribuyen con este proyecto, y también habemos otros no tan conocidos pero que entre ellos hay quienes saben un montón.
Te invito a que formes parte de nuestra comunidad, te aseguro que cada domingo que nos conectamos en vivo, para charlar, o realizar un taller, vas a aprender un poquito.
Creando un Globo con Css3 y Html5
Hola gente, les traigo este pequeño tuto de como crear un Globo (estilo contador) con Html5 y CSS3.
Deploy aplicaciones de Django con Xampp (Apache)
Hola gente...
El trabajo no me había permitido seguir escribiendo en el blog, hoy me escape para entregarles este pequeño tutorial.
Lo que vamos a hacer es permitir que nuestras paginas web hechas con Django puedan ejectuarse por medio del servidor Web, en este caso configuraremos Apache con Xampp.
Requerimientos:
- Necesitamos tener instalado, Python, Django, Xampp.
- Descargaremos el siguiente modulo mod_wsgi-win32-ap22py27-3.3.so, en ese enlace encontraran los módulos para otras versiones, escojan la apropiada para ustedes.
- Realizar una pequeña aplicación con Django para probar nuestra configuración.
Bien, lo primero vamos a "c:/python27/scripts" ahí estará el archivo django-admin.py, lo copiamos y pegamos en "c:/xampp/htdocs", para habilitar la ejecucion de los modulos python...
Luego el modulo que descargamos mod_wsgi-win32-ap22py27-3.3.so, lo copiamos y pegamos en "c:/xampp/apache/modules" y lo renombramos a "mod_wsgi.so"
Ahora abrimos el archivo de configuración de apache que esta en "c:/xampp/apache/conf", el archivo se llama "httpd.conf", lo editamos y escribimos la siguiente linea: "LoadModule wsgi_module modules/mod_wsgi.so"
Ahora creamos un proyecto django, y iniciamos una aplicacion en la carpeta htdocs.
python django-admin.py startproject sitio
python django-admin.py startapp aplicacion
esto nos creara el proyecto y la aplicación django, quedaría algo asi en la carpeta htdocs: c:/xampp/htdocs/sitio
ahora modificamos una vez mas el httd.conf del apache y colocamos las siguientes lineas al final del archivo:
Alias /media/ "c:/xampp/htdocs/sitio/media"
<Directory c:/xampp/htdocs/sitio>
Order deny,allow
Allow from all
</Directory>
import os, sys
sys.path.append('c:\\xampp\\htdocs\\sitio')
os.environ['DJANGO_SETTINGS_MODULE'] = 'sitio.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Listar videos subidos a Youtube en tu Página
Hola gente....
Hoy quiero compartir con ustedes una pequeña rutina que obtiene los vídeos que cualquier usuario de Youtube haya subido a su canal.
Utilizaremos para ello Jquery, asi que vayan haciendo referencia en la cabecera de sus paginas, para poder utilizarlo.
Lo primero que haremos sera construir la URL que nos devolverá la lista de vídeos subidos por un usuario de Youtube.
Para ello podes dar click a este link que nos llevara a la pagina de la Api de Youtube, donde hay una serie de parametros para construir nuestra URL., copian la direccion generada que sera similar a esta:
Básicamente obtiene los videos subidos por "lenincasco" ordenados por fecha de publicacion y que la metadata esté en español.
Bien ahora Jquery.
<script>
$.get("http://gdata.youtube.com/feeds/api/videos?lr=es&orderby=published&author=lenincasco",
function (xml) {
$(xml).find("entry").each(
function () {
var idd = $(this).find('id');
var $id = idd.text().substring(42);
$("#videos").append("<li><iframe type='text/html' height='100%' width='100%' src='http://www.youtube.com/embed/" + $id + "'></iframe></li>");
});
});
</script>
Explicación:
Con .get() es una función de Jquery que recibe como parámetros una URL de donde va a obtener los datos, y en este caso una función para el CallBack, la cual tiene el elemento "xml" que es la Data regresada en el request de la Url.
con jquery buscamos el elemento "entry" en el arbol de la Data regresada, y para cada uno de ellos ejecutamos otra función anonima, dentro de esta buscamos el elemento "id" que esta dentro de la "entry" y la almacenamos en la variable "idd", "idd" nos regresa una url conteniendo al final de esta el id de cada video.
http://gdata.youtube.com/feeds/api/videos/l03R-F2dhlo
Lo que haremos sera extraer ese ID del final de está URL.
Primero convertimos a texto la url con esta instrucción idd.text(), luego hacemos un substring que nos regresara una subcadena y le decimos que nos regrese los caracteres restantes a partir del indice 42 (longitud de la url sin el ID).
luego solo nos resta armar nuestra forma de presentarlo en Html, asi que concatenamos el ID obtenido con el html correspondiente del Iframe donde pondremos nuestro video.
Comenten si les resulta.
Hasta la próxima.
Cómo crear un Servidor NodeJS
Hola gente...
Hoy quiero compartirles este mini tuto, para crear un servidor Nodejs.
Lo primero es que voy a asumir que ya tienen instalado NodeJs, en sus computadoras.
Bien al grano.
Abrimos nuestro editor de texto preferido (SublimeText2), y comenzamos a codear.
//Declaramos una variable llamada http y le decimos que requiera el protocolo 'http'
var http = require('http');
//Declaramos una variable llamada servidor y le decimos que se inicialice con la creacion del servidor.
var servidor = http.createServer();
//Y le decimos que al servidor creado que almacenamos en 'server', que escuche en el puerto 8080.
server.listen(8080);
//Y para que sepamos que realemente esta corriendo, imprimimos en la consola.
console.log('Servidor inciado y escuchando en el puerto 8080');
Ahora le damos guardar a nuestro archivo, escogemos un directorio de nuestra PC, y le damos un nombre con extensión JS. (como ejemplo usaremos el nombre 'server.js')
Perfecto con esto ya está creado el servidor NodeJs, pero ahora falta iniciarlo.
Para eso vamos a la consola y buscamos el directorio donde creamos el archivo del servidor, una vez dentro ejecutamos la siguiente instrucción.
node server.js
y veremos algo como esto.
Si se fijan es el mismo mensaje que imprimimos a consola. con esto sabemos que el servidor está corriendo.
Genial, pero que pasa si vamos a nuestro servidor local 'localhost:8080'. y al puerto donde escucha nuestro server? bueno no pasa nada, precisamente porque no le dijimos a nuestro servidor que hiciera algo, solo que escuchara en ese puerto.
Bien cambiemos algo más en nuestro codigo del server, para que aparezca algo en nuestro navegador cuando entremos a 'localhost:8080'....
En la parte donde creamos nuestro servidor agregamos una función, de ésta manera.
server = http.createServer( function (request, response) {
response.writeHead(200, {"Content-Type" : "text/html"});
response.write("<div><h1>Hola Mundo</h1></div>");
response.end();
});
En pocas palabras le decimos a nuestro server que el tipo de contenido sera texto / html
ademas escribimos html con un Hola Mundo
Ahora a probar nuevamente nuestro 'localhost:8080' y veremos nuestro Hola Mundo.
Bueno todo por hoy, ya iremos viendo algunos ejemplos con NodeJs.
Ganar dinero Twiteando
Hola gente...
Hoy me recomendaron una aplicación que en pocas palabras me permitirá ganar dinero recomendado paginas, productos y demás por twits.
Bueno en principio la idea se escucha genial (quien no quiere un dinerito extra), pero como siempre las cosas no son tan sencillas.
Primer inconveniente, para poder participar de esto necesitas tener por lo menos 100 seguidores (en lo personal tengo hasta el momento 125, así que puedo participar, pero llevo como 2 meses creo para poder conseguirlos).
Segundo, tenes que ser un twitero activo, es decir que hayas mandado al menos 30 twits en los últimos dos meses (conozco personas que tienen 1 twit a lo largo de su vida digital).
Tercero, la modalidad de enviar twits que te permitan ganar dinero no es tan fácil. (pensaba suscribirme y comenzar a twitear :) ), hay tres maneras de que podas enviar twits patrocinados.
- Campañas de Tweets.
- Los patrocinadores crean sus campañas y escogen de entre todos los twiteros a los que ellos consideren pueden ofrecer mejor su producto (Como compito contra alguien que pueda tener mas de 500 seguidores y yo con 125).
- Campaña de clicks.
- De igual manera que la anterior pero te pagan por los clicks que den a tus twits (mismo inconveniente te tienen que elegir de entre tantos que esten registrados).
- Mercadillos.
- En un mercadillo, el anunciante oferta una serie de tweets a un precio fijado por él a número limitado de tuiteros determinados al azar, pero según unos criterios de búsqueda.
Taller Básico Html5 (desde cero)
Hola gente..
Este domingo 15 de julio hicimos un taller html5 en vivo, donde increiblemente tuvimos participación internacional jejeje (Colombia, México, Ecuador, Argentina...).
El objetivo era enseñar a construir una página web desde cero, utilizando html5, no es introductorio a Html5, sino a aprender a maquetar una página.
Los que se lo perdieron, estén pendiente este domingo próximo 22 de julio de 2012 haremos otro webcast (pendientes).
Aqui les dejo el webcast pasado.
Primera Parte
Como reparar arranque de Windows (Grub Rescue)
Hola gente...
Hoy temprano me llegó un cliente con una portátil en la que tenia instalado dos sistemas operativos (Windows 7 y Ubuntu).
Pues resulta señores que el cliente eliminó la partición donde tenia Ubuntu, pero como sabrán al instalar un sistema operativo Linux, este instala un gestor de arranque en el registro MBR, que existe al principio de los sectores de un disco.
Pues como se imaginan al borrar la partición bruscamente y no desinstalando el sistema, el registro MBR queda con los cambios hechos por Ubuntu, con lo que luego no arranca Windows, para solucionar este problema es necesario hacer los siguiente:
- Bootear desde el disco de instalación de Windows7.
- En la opción que se presenta de instalar, en la parte inferior sale otra opción que dice Reparar Windows.
- Se presentan varias opciones, nosotros seleccionaremos la que dice Simbolo de Sistema.
- Nos aparece la consola de windows y ahi introducimos el siguiente comando:
- bootsect /nt60 ALL /force /mbr
El comando bootsect actualiza el MBR para cambiar entre BOOTMGR Y NTLDR, está herramienta se usa para restaurar el sector de arranque de la computadora.
El parámetro /nt60 aplica el MBR compatible con BOOTMGR (Windows vista o superiores)
Con ALL le decimos que lo aplique a todas las particiones que se pueden usar como arranque.
Con Force le decimos que desmonte la unidad y la bloquee para sobrescribir
Y que todo se haga en el Master Boot Record (MBR).
Yahoo hackeado!!
Buenas gente...
Yahoo fue el blanco de un ataque por parte de hackers quienes afirman que el propósito del mismo era demostrar la vulnerabilidad de los servidores de Yahoo.
Se han posteado mas de 453,000 credenciales de yahoo para demostrar el hecho.
Como precaución amigos se sugiere cambiar de inmediato sus contraseñas no vaya a ser...
No han publicado oficialmente el link donde fueron expuestas las cuentas, debido a que son datos sensibles, así que manos a la obra a actualizar sus cuentas y cambiar contraseñas y datos de login.
Pero cual es el gran asunto sobre las credenciales??
Bueno la información sensible hackeada corresponde a respuesta a tu pregunta de seguridad, fecha de nacimiento o cualquier otra información que hayamos puesto en nuestra cuenta y el hacker puede entrar a nuestra cuenta bancaria si tenemos la misma contraseña o credenciales de seguridad (Lo más usual es que pongamos la misma password para todo).
Es importante usar diferentes preguntas de seguridad cuando hagamos nuestras cuentas online, especialmente para las bancarias.
Suerte....
"Know me" Caras en areopuerto
Hola gente...
El auge de la tecnología es increíble, con los aportes que hace Google con sus aplicaciones, se han abierto campos de acción en todos los aspectos.
Una Aerolinea "British Airway" ha desarrollado una aplicación "Know me" que se encargará de buscar el nombre del pasajero en Google y recopilar información de la persona y enviarla al personal de la Aerolinea (Reconocimiento Facial), con el objetivo de brindar un servicio más personalizado para los clientes, también enviará información referente a problemas que pudo haber tenido en viajes pasados y atenderle mejor la próxima vez.
Hay discusiones al respecto, ya que unos dicen que están cruzando la linea de la privacidad, otros que es algo innovador, en mi opinión si tenes información que está al alcance de googlear, pues no es tan privada.
Usarán el sistema de redes interno de la Aerolinea, enviarán al rededor de 4,500 mensajes al día, a los ipads del personal de Cabina de avión, puerta de embarque y servicio al cliente.
Qué opinan???
Nuevo logo Windows 8
Hola Gente...
Windows 8 viene con un estilo Metro - Retro, al menos por el logo, la siguiente imagen muestra la evolución de los logotipos que ha usado Windows, si se fijan en 1985 un diseño plano y esquinas redondeadas, ahora en 2012 "Nuevo Diseño", es bastante similar al primero, a diferencia de la disposición de las ventanas, las esquinas redondeas y el skew aplicado.
Incluso me sumo a los comentarios hechos por otras personas de que el logotipo primero es mas bonito.
Que opinan? Falta de Creatividad?, Diseño remontando a lo viejo y básico?
Adiós Yahoo Web Analitycs
Yahoo Web Analitycs, herramienta que recopila información y muestra estadísticas de los sitios web, y que lo hacia de manera gratuita, ha anunciado que cierra operaciones.
La verdad es que Yahoo ya no es lo que solía ser (que profundo), la verdad es que como buscador google lo supero, lo único creo yo que lo mantiene vivo es el uso de los correos, esto tiene a esta empresa en una de los momentos mas complicados desde su fundación.
Después del 31 de agosto, para ningún sitio web (de manera gratuita) se guardaran registros de sus actividades, únicamente se podrá seguir viendo la información ya almacenada, esto durante 2 meses más después de eso solo funcionara para clientes de Yahoo Store y clientes indeterminados de Yahoo.
Así que si tienen cuenta en YWA, ya deberían ir buscando como respaldar sus estadísticas porque después del 31 de octubre ya no habrá para más.
Ahora Google analitycs queda solo en el camino, ojala y no se duerman en el desarrollo y mejora de esta utilidad al no tener competencia.
Bueno, hasta pronto amigos y adiós Yahoo Web Analitycs.
PSD.
No olviden eliminar las Etiquetas de Yahoo Web Analitycs de sus sitios Web.
Finalizado Curso Básico de Photoshop
Hola gente...
Este sábado 30, hicimos el WebCast con Alex Rayo, diseñando con PhotoShop.
Estuvo muy bien, creo que todos aprendimos un poco, y seguro que nos abrió la mente un poco mas en cuanto a lo que podemos hacer.
Yo les invito a que posteen en la Comunidad lo que hicieron con el tutorial, eso nos dice que estamos bien, que vamos por buen camino y que lo que hacemos se aprovecha.
Si te lo perdiste aquí está el video.
Hasta pronto...




