Tip SQLeros: Excel con Python

Bueno amigos el día de hoy me paso de rápido por el blog para compartir un tip con ustedes. Es como usar un archivo de Excel desde Python con la biblioteca

The TimeSpan could not be parsed because at least one of the numeric components is out of range or contains too many digits


Es este post , publicare la solucion de un error con el que me tope manejando horas, el cual requeria en base a un cadena en formato HH:MM:SS obtener el total de minutos,el problema fue

Comandos de Voz en C Sharp


El reconocimiento de voz es el nuevo “bum” de la programación, dispositivos como el Iphone tienen una aplicación la cual funciona con comando de voz, pero ¿Que es el reconomiento de voz?

Cambiar los Temas de Código Visual Studio 2005, 2008, 2010 y 2012

El día de hoy les mando un saludo y les comento acerca de los temas para el visual estudio la verdad tenemos un abanico de posibilidades. Para mi un tema más allá de ser el cambio de colores del IDE, es encontrar mi espacio

Enviar archivos por bluetooth con Python


Manejar dispositivos con bluetooth es bastante fácil utilizando Lightblue.
Lightblue proporciona un acceso sencillo a:
  • La detección de dispositivos y de servicios (con y sin GUI)
  • Interfaz de sockets estándar para RFCOMM y L2CAP
  • Envío y recepción de archivos a través de OBEX
  • La publicación de los servicios de RFCOMM y OBEX
  • Información sobre el dispositivo.
Consulta la documentación de la API para más detalles.
Pueden buscar esta librería en los repositorios de su distribución de linux o bajar los binarios de la pagina oficial.
El código básico para enviar una imagen es el siguiente.
import lightblue
# mac y nombre de los dispositivos detectados
lightblue.finddevices()
#devolverá la mac, canal y protocolo de comunicacion disponibles de los dispositivos, para el envio de archivos el mio es el 8, OBEX Object Push
lightblue.findservices()
#se crea la variable con la direccion mac y el canal del dispositivo
cliente = lightblue.obex.OBEXClient('xx:xx:xx:xx:xx:xx',8)
#despues de conectarse correctamente se enviara un mensaje como este..
#<OBEXResponse reason='OK' code=0x20 (0xa0) headers={}>
cliente.connect()
#lo que enviamos
putresponse = cliente.put({"name": "luis.txt"}, file("luis.txt", 'rb'))
cliente.disconnect()
Lo guardan y desde la terminal pueden ejecutarlo como:
$ python  codigo.py
Fuente: El FrameWork de Luis

Patrones de Diseño: Strategy


Ahora hablaremos un poco de arquitectura de software. Mucho se habla de patrones de diseño de software (por ejemplo en el trabajo). Pero como ejemplificar este significado? Bueno pues un patrón de diseño trata de resolver un problema en especifico. Hay muchas formas de resolver problemas planteados a la hora de desarrollar software. Seguramente en el nuevo proyecto que nos asignaron tenemos que resolver la forma en que se comportara nuestro software en ciertas condiciones, como procesara la información que tiene a su disposición o como creara nuevas instancias de objectos. Pero alto! seguramente ya hubo otras personas que tuvieron el mismo problema que tú y se dieron cuenta que ese problema se comportaba siempre de cierta forma (siguiendo un patrón) y había una forma optima de resolverlo. Aquí es donde nacen los patrones de diseño de software, vienen a resolver problemas conociendo como se comporta.
Los patrones de diseño se clasifican en:
  1. Patrones de Creación: patrones de diseño software que solucionan problemas de creación de instancias. Nos ayudan a encapsular y abstraer dicha creación.
  2. Patrones Estructurales: patrones de diseño software que solucionan problemas de composición (agregación) de clases y objetos.
  3. Patrones De Comportamiento: patrones de diseño software que ofrecen soluciones respecto a la interacción y responsabilidades entre clases y objetos, así como los algoritmos que encapsulan.
Dejaré un ejemplo del patrón Strategy (de comportamiento); Strategy permite tener diferentes comportamientos para objectos del mismo tipo, se persigue encapsular el comportamiento, se puede usar una estrategia diferente dependiendo del contexto del problema. bueno sin mas, dejo aquí un ejemplo y pronto agregaré mas patrones mientras les dejo una recomendación:  Patrones de Diseno – GOF [Gamma,Helm,Johnson,Vlissides]
 

 using System;
namespace Strategy
 {
 public interface IComportamientoFrenos
 {
 void Frenar();
 }
public class FrenadoABS : IComportamientoFrenos
 {
 public void Frenar()
 {
 Console.WriteLine("Frenado con frenos ABS");
 }
 }
public class FrenadoNormal : IComportamientoFrenos
 {
 public void Frenar()
 {
 Console.WriteLine("Frenado con frenos normales");
 }
 }
public class Coche
 {
 protected IComportamientoFrenos comportamientoFrenos { get; set; }
public void Frenado()
 {
 comportamientoFrenos.Frenar();
 }
 }
public class cocheAntiguo : Coche
 {
 public cocheAntiguo()
 {
 comportamientoFrenos = new FrenadoNormal();
 }
 }
public class cochenuevo : Coche
 {
 public cochenuevo()
 {
 comportamientoFrenos = new FrenadoABS();
 }
 }
class Program
 {
 static void Main(string[] args)
 {
 cocheAntiguo coche1 = new cocheAntiguo();
 cochenuevo nuevo = new cochenuevo();
coche1.Frenado();
 nuevo.Frenado();
 Console.Read();
 }
 }
 }
Fuente: El Framework de Luis

RESHARPER 7.0 RELEASED: Herramienta para crear mejor y mas eficiente código


Resharper es una de las mejores herramientas para Visual Studio y que todo programador debería tener (o al menos haberla  probado :D ).







Resharper paso de estar en fase de pruebas a una version estable y es compatible con visual studio 2012 y tiene integración con StyleCope.
Lo que comentan en su blog sobre las nuevas funcionalidades:
  • Full integration with Visual Studio 2012 while maintaining support for Visual Studio 2005, 2008, and 2010. For obvious reasons, we’ve been testing on Visual Studio 2012 RC and we haven’t had a chance to verify smooth integration with Visual Studio 2012 RTM. However, as soon as RTM is available to us, we’ll see if it contains any breaking changes, and if we find anything, we’ll be quick to roll out a minor update. (See How Exactly ReSharper 7 Supports Visual Studio 2012.)
  • An extensive pack of functionality for developers looking to create WinRT-based Metro style applications. (See Windows Runtime Support in ReSharper 7.)
  • New code inspections and contract annotations for a more robust .NET code quality analysis.
  • New automated code refactorings, including the top requested Extract Class to decrease code coupling.
  • Additional code exploration features helping visualize hierarchies of polymorphic members and CSS styles.
  • An extended and fine-tuned code generation toolset. (See Code Generation Improvements in ReSharper 7.)
  • INotifyPropertyChanged interface support pack to improve productivity of Windows Forms, WPF and Silverlight application developers. (See INotifyPropertyChanged Support in ReSharper 7.)
  • Removing unused assembly references across the entire solution.
  • Extended web development toolset, including improvements to JavaScript support, and initial support for ASP.NET 4.5 and ASP.NET MVC 4.
  • Addition of two previously unsupported Microsoft development technologies: LightSwitch and SharePoint.
  • ReSharper provides continuous code quality analysis in C#, VB.NET, XAML, XML, ASP.NET, ASP.NET MVC, JavaScript, HTML, and CSS, detecting errors and problems before you even compile.
Una herramienta que toda empresa de software deberia tener disponible a sus desarrolladores :D .
Dejo un link del vídeo de la propia web oficial para saber porque Resharper es impresionante!

Retrieve Current Date Time in SQL Server CURRENT_TIMESTAMP, GETDATE(), {fn NOW()}


There are three ways to retrieve the current datetime in SQL SERVER.
CURRENT_TIMESTAMP, GETDATE(), {fn NOW()}
CURRENT_TIMESTAMP
CURRENT_TIMESTAMP is a nondeterministic function. Views and expressions that reference this column cannot be indexed. CURRENT_TIMESTAMP can be used to print the current date and time every time that the report is produced.
GETDATE()
GETDATE is a nondeterministic function. Views and expressions that reference this column cannot be indexed. GETDATE can be used to print the current date and time every time that the report is produced.
{fn Now()}
The {fn Now()} is an ODBC canonical function which can be used in T-SQL since the OLE DB provider for SQL Server supports them. {fn Now()} can be used to print the current date and time every time that the report is produced.
If you run following script in Query Analyzer. I will give you same results. If you see execution plan there is no performance difference. It is same for all the three select statement.
SELECT CURRENT_TIMESTAMPGOSELECT {fn NOW()}
GO
SELECT GETDATE()GO

Performance:
There is absolutely no difference in using any of them. As they are absolutely same.
My Preference:
I like GETDATE(). Why? Why bother when they are same!!!