[alluberes] power by [a52]

Entries categorized as ‘Programacion’

Como ser mejor profesional cada día

June 25, 2008 · Leave a Comment

Desde hace unos meses soy un lector recurrente de Coding Horror. A principio de semana publicaron un artículo muy interesante, de cómo ser mejor programador, que me puso a pensar sobre cómo puedo mejorar mis conocimientos, mi rendimiento y resolución de problemas.

Es interesante la comparación hecha (basada en otros artículos) con otras disciplinas como la música, el ajedrez y el golf. De igual forma muestra una lista de prácticas para mejorar el desempeño. Según Steve Yegge, un ritual de 12 prácticas serian suficiente para mejorar el desempeño de un programador. Estas son:

  1. Escribe un CV y lista todas tus habilidades. En las que eres fuertes y no tan fuerte y dale puntuaciones de 1 a 10 a cada una.
  2. Has una lista de programadores que admiras. Trata de incluir personas con las que trabajas. Escribe una nota de las cosas que hacen mejor que tu y te gustaría mejorar.
  3. Ve a wikipedia, en la sección de “Prominentes de la computación”. Selecciona una persona y lee todo sobre ella. Sigue todos los link que te parezcan interesantes.
  4. Lee el código de otra persona por 20 minutos. Alterna entre leer código bien escrito y deficiente. (si no sabes cuál es, pregunta a alguien que sepa). Enséñale a otro programador el código que viste y pregúntale que piensa.
  5. Has una lista de tus 10 herramientas de desarrollo favoritas. Las que más utilizas, las que no puedes vivir sin ellas. Toma una hora para leer la documentación de una de ellas (aleatoriamente). Trata de aprender alguna funcionalidad nueva de esta, o una forma distinta de hacer las cosas.
  6. Busca algo en lo que seas realmente bueno y que no tenga nada que ver con programación. Piensa en cómo los grandes maestros de esa disciplina hacen sus prácticas. ¿Cómo puedes aplicar esas prácticas a tu profesión?
  7. Toma un conjunto de Currículos y grupo de personas que lo analicen. Asegúrate de que cada CV sea analizado por lo menos por 3 personas y que escriban su puntuación del 1 al 3. Discutan los CVs que tengan diferencia en puntuación.
  8. Escucha una entrevista telefónica. Escribe tus consideraciones y compáralas con el entrevistador para saber si llegaron a las mismas conclusiones.
  9. Realiza una entrevista técnica con un profesional que sea un experto en un área en la que tú no lo seas. Dile que te explique todo como si tú no tuvieras conocimientos del campo. Has tantas preguntas como sean necesarias para seguirlo.
  10. Participa de una entrevista similar, esta vez como observador. Escucha y aprende. Intenta resolver las preguntas en tu mente mientras el candidato trabaja en ellas.
  11. Busca un amigo para un “trading practice questions “(????). Has el cuestionario a un programador cada semana. Dedica de 10 a 15 minutos trabajando en eso y de 10 a 15 minutos discutiéndolo, esté terminado o no.
  12. Cuando escuches una pregunta de código que no tu no hayas resuelto, envíate un email con la pregunta como un recordatorio. Resuelve el problema en la semana, en el lenguaje de tu preferencia.

Una lista muy tediosa para mi gusto. Prefiero aprender a programar en diez años. Es más realista pero se toma demasiado tiempo.

La realidad de las cosas es que a los 10 años es muy probable que ya quieras dejar de ser programador y estés agenciándote un puesto gerencial. En días pasados conversaba con un amigo, quien viene tirando código desde los 80s, de que quiero conseguir una beca para hacer un post-grado en Administración de proyectos y/o administración de empresa. El se considera retirado de la programación desde 2004, y en lo personal creo que ya estaré codeándome con otra posición al cumplir 10 años programador.

Debido a que la ciencia de la computación es una materia prácticamente nueva, comparada con carreras como arquitectura y la contabilidad, está en constante cambio, por lo que las cosas que tardarías 10 años en aprender han de estar obsoletas y probablemente, inutilizables con las nuevas tecnologías.

Categories: Estudios · Programacion · Teoria

Como manejar cursores

March 29, 2008 · 1 Comment

Es difícil recordar todo el código que uno ha de utilizar en su vida de programador, eso por no decir que es imposible. Siempre he pensado que el mejor amigo de un programador es el “F1″, y sobre todo está Google con el que siempre es posible contar al momento de una duda.

Suele pasar que los casos presentados en una empresa son muy particulares, es una ley de vida, por lo tanto, el primer link de Google no será la solución a tu problema, ni el paquete completo de la suite de la empresa X. Fue mi caso en esta semana, que aunque anteriormente había trabajado con cursores, y de hecho había realizado el procedimiento que me interesaba anteriormente, no recordaba cómo se utilizan los cursores en SQL. Por esto este post.

Entrando en materia, les dejo una lista de cuatro pasos para crear y recorrer un cursor en SQL Server. (more…)

Categories: Programacion · SQL Server

VS.Net 2005: Website and Web Application (Part II)

February 13, 2008 · Leave a Comment

I was talking about the difference between WebSite and Web Application at VS.Net 2005. Today, while I was working in a new small project, I create a Web Application in c#, make a master pages, make a web pages that use the master pages and make a user control for the left menu. the bad new was went i try to drag the user control into the master pages. The VS IDE include a link to the file. I test with the .aspx pages, but i receive the same result.

I was looking for some configuration into “Tools > Options” but i not found anything. Before write this i was testing with a Website, just for know if work different. And YES, with the website the application work very fine.

This is other stuff to add into the WebSite vs WebApplication.

To Solve the matter I include the tags manual. The header and the include tags for user control:

Header: <%@ Register src=”ctrl/ucMenu.ascx” TagName=“ucMenu” TagPrefix=”uc1″ %>

Include User Control: <uc1:ucMenu ID=”UcMenu1″ runat=”server” />

If someone know how include a user control into a webpages using webapplication, I’ll thank a lot.

Categories: General · Programacion
Tagged: , , ,

VS.Net 2005: Website and Web Application

January 16, 2008 · 1 Comment

If you has work with .net framework 2.0, developing asp.net application without Services pack for visual studio 2005 you may found that you can’t create ASP Project. If you need some website you need to make a website.
The bad with this thing is that all file into the website folder is include into a publish process.

If you install the services pack you can create ASP.Net Web Application into Visual studio installed templates. If you want to exclude file just right click and “exclude from project”. The VS IDE removes the file tags from project file. In web site the file is rename to .exclude.

There are some differences into .aspx file. Into an ASP.net Web Application (project) use “CodeBehind” to indicate where the source, while into a website .aspx file use “CodeFile”. By the way, into a website you have to use special folder to save classes and other stuff (ASP.Net Folder), into a Web Application not apply.

For website
<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”Default.aspx.cs” Inherits=”_Default” %>

For web application

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Sec.Web._Default" %>

In other case, some time we need to create a windows service, the bad news is that there aren’t templates for windows services in Visual Studio 2005. The solutions you can find in a code project article. There is the source code too.

Categories: Programacion

El final del monográfico

January 14, 2008 · Leave a Comment

Ip Converter Screen ShotLas clases han concluido exitosamente. Wilson Núñez fue nuestro último profesor. Para desgracia de nosotros como trabajo final fue realizar una practica de 20 ejercicios manuscritos, escaneados y luego enviados al correo del profesor.

Eso fue puesto un miércoles en la noche para entregar a mas tardar viernes a las 18:00:00. Para desgracia mía (no se para los otros) el jueves surge la imperiosa necesidad de tener listo ciertos procesos de un nuevo cambio de workflow (dígase 4 aplicaciones nuevas) para hoy lunes. Eso significó un jueves sin hacer absolutamente nada, la obvia solución era crear una aplicación que hiciera los cálculos por mi y de mi quedaría solo copiarlos.

Pues así fue, el jueves en la noche inicié un agotador proceso de desarrollo de hojas electrónicas para cálculos de IP y sus derivados. A las 3:00 AM del viernes terminé de hacer las funciones básicas, me faltaban dos formulas y copiarlas.

El viernes (día de entrega) tengo un programa explotando y uno por desarrollar para probar el mismo día; entre arreglar el primero, copiar los ejercicios y agregar las formulas de los últimos ejercicios me dan las 04:00 PM, Raphy pasa por mi trabajo, recoge las hojas y me hace el favor de escanearlas, convertirlas en PDF y enviármelas para enviárselas al profesor.

Meta alcanzada, y como consecuencia me tocó un fin de semana de trabajo. Sábado no pude hacer nada porque no tengo llave de la office, pero tocó el domingo y fue de hasta el sol acostarse.

Categories: Estudios · Programacion

Practica III

November 30, 2007 · Leave a Comment

Sin mucho que decir.

el profesor nos ha dejado pal de practicas que me han hecho retornar a ver Transact SQL desde abajo… muy kool e interesante…

he aqui una muestra de ello


/****************************************
* MONOGRAFICO INGENIERIA DE SISTEMAS
* MODULO II: GESTION/CONSULTA DE DATOS CON SQL
*
* NOMBRE DE ARCHIVO : PRACTICA 3.SQL
* FECHA DE CREACION : MIERCOLES 28 DE NOVIEMBRE, 2007
*
* PRACTICA: PRACTICA III
* PROFESOR: ELIN GELMAN
*
* PARTICIPANTES:
* ABNEL LLUBERES MUSTAFA
* 98-EISN-1-133
*
* PAULA FERRERAS RAMIREZ
* 00-SISM-1-050
*
* RAFAEL NUÑEZ
* 98-EISN-1-111
*
********************************************************/

-- Move to rigth Data Base
use curso

-- Create department table
CREATE TABLE DEPARTAMENTOS2
(
	DEP_NO INT,
	DNOMBRE VARCHAR(14),
	LOCALIDAD VARCHAR(10),
	CONSTRAINT PK2_DEP PRIMARY KEY (DEP_NO)
)

-- Fill the new table with data from
-- an existing table
INSERT INTO DEPARTAMENTOS2
SELECT DEP_NO, DNOMBRE, LOCALIDAD FROM DEPARTAMENTOS

-- CREATE EMPLOYEE TABLE
CREATE TABLE EMPLEADOS2
(
	EMP_NO INT,
	APELLIDO VARCHAR(8),
	OFICIO VARCHAR(15),
	DIRECTOR INT,
	FECHA_ALTA DATETIME,
	DEP_NO INT,
	CONSTRAINT PK_EMPLEADOS_EMP_NO2 PRIMARY KEY (EMP_NO),
	CONSTRAINT PK_EMP_DEP_NO2 FOREIGN KEY (DEP_NO)
		REFERENCES DEPARTAMENTOS2 (DEP_NO) ON DELETE CASCADE
)

-- INSERT VALUES INTO NEW EMPLOYEE TABLE
INSERT INTO EMPLEADOS2
SELECT EMP_NO, APELLIDO, OFICIO, DIRECTOR, FECHA_ALTA, DEP_NO FROM EMPLEADOS

-- SELECTING DATA FROM DEPARTAMENTOS2'S TABLE
SELECT * FROM DEPARTAMENTOS2

-- SELECTING DATA FROM EMPLEADOS2'S TABLE
SELECT * FROM EMPLEADOS2

-- DELETE ONE ROW FROM DEPARTAMENTOS2
DELETE FROM DEPARTAMENTOS2 WHERE DEP_NO = 10

-- SELECTING DATA FROM DEPARTAMENTOS2'S TABLE
SELECT * FROM DEPARTAMENTOS2

-- SELECTING DATA FROM EMPLEADOS2'S TABLE
SELECT * FROM EMPLEADOS2

Categories: Espacio · Programacion · SQL Server

How delete the HTML tags with SQL Server functions

May 29, 2007 · Comments Off

En aplicaciones web se suele tener campos formateados en HTML que se armacenan en base de datos. En ocaciones deseamos tener esos campos sin los tags para poder manejarlos en reportes, presentarlos sin formatos en ciertas pantallas, etc. Obviamente, muchas veces nos es un poco molesto tener que hacer eso en la clase de negocios y/o en la parte de presentacion del software, es mucho mas agradable cuando podemos traerlo limpio desde la consulta de base de datos.

Para ello aparecen esas funcioncitas super agradables que te simplifican la vida. Este post no es más que la reproduccion de esa funcioncita que nos salva de tener que comenzar a parciar informacion sacada de la base de datos antes de enviar el dataset al reporte. Espero que le sea de utilidad.

CREATE FUNCTION [dbo].[fnDelHTMLTags]
 (@HTML varchar(8000))
 Returns varchar(8000)
AS
BEGIN

 -- Variables de Control
 DECLARE @Start INT, -- inicio del tags
  @End INT,  -- Fin del tags
  @Length INT  -- Tamaño del tags a eliminar

 — Mientras existan tags en el codigo HTML
 WHILE CHARINDEX(‘<’, @HTML) > 0 And CHARINDEX(‘>’, @HTML, CHARINDEX(‘<’, @HTML)) > 0
 BEGIN
  — Determinar el inicio y el final del tags en el codigo html
  SELECT @Start = CHARINDEX(‘<’, @HTML), @End = CHARINDEX(‘>’, @HTML, CHARINDEX(‘<’, @HTML))
  — Determinar el tamaño del tags
  SELECT @Length = (@End – @Start) + 1
  — Si el tags está
  IF @Length > 0
  BEGIN
   — Reasigno el valor del HTML parametrizado eliminando de camino el Tags HTML
   SELECT @HTML = STUFF(@HTML, @Start, @Length, ”)
  END
 END

 — Remplazo los espacios codificados
 SELECT @HTML = REPLACE(CONVERT(varchar(8000), @HTML), ‘ ‘, ‘ ‘)
Â
 — Retorno el valor
 RETURN @HTML

END

Categories: General · Programacion · SQL Server

How to upload picture to Database from a URL

May 9, 2007 · 4 Comments

En ocasiones se presenta uno de esos retos aparénteme sencillos, pero que ocultan una hermenéutica un poco engorrosa.
Mi caso se resume en tener que guardar en base de datos SQL Server una foto a la que solo tengo acceso por HTTP. La aplicación es para llenar perfiles de usuarios, de esas cosas que no es bueno dejárselas al usuario. Para no aburrirlo con historias que no les importan he aquí­ el código.

Para información general, utilizo dOOdads como gestor de lógica de negocios de tablas, por lo que si no entienden mucho el código solo tienen que darse una vueltecita por mygenerationsoftware.com


Public Sub Url2DB(ByVal sURL As String)
‘ Mis variables
Dim wc As New System.Net.WebClient ‘ Cliente web para buscar la foto
Dim str As New StreamReader(wc.OpenRead(sURL)) ‘ Streaming de la foto (puede ser cualquier tipo de archivo, pero en este caso es imagen)

' Esta variable es para convertir la foto en JPG si está en otro formato
Dim img As System.Drawing.Image
img = System.Drawing.Image.FromStream(str.BaseStream) ‘ cargar imagen en la variable

‘ Variable para manipular la imagen como un archivo
Dim ms As New MemoryStream
‘ Llenar la memoria reservada con la imagen (ya formateada en JPG)
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
‘ Arreglo de byte que se grabara en base de datos
Dim Pic(ms.Length) As Byte
ms.Position = 0
‘ llenar el arreglo de byte
ms.Read(Pic, 0, Convert.ToInt32(ms.Length))

‘ Sustituye el 0 por la cantidad de bytes que quieres limitar la imagen a subir
‘ la idea es que si no quieres que subas fotos de mas de 1 mega, pues lo validas aqui
If (ms.Length > 0) Then
‘ Objeto dOOdads de la tabla de foto
Dim objFoto As New tmp_fotos

objFoto.AddNew() ‘ Agregar nuevo registro
objFoto.Foto1 = Pic ‘ Asignar el valor del campo
objFoto.Save() ‘ Grabar el registro

End If

‘/***************************
‘ * Happy coding
‘ **************************/
End Sub

Categories: General · Programacion

I Love SubVersion

December 15, 2006 · Comments Off

Logo De SVN Tengo un tiempo comparativamente corto utilizando una SVN y admito que me he enamorado de ella. Es una herramienta Open Source que hacen bien lo que está destinadas a hacer.

En días en cuando me gustaba bajar codigo y compilarlo me encontré con un pequeño programita que registraba SVN como servicio de Windows, con todas las ventajas que trae un servicio. últimamente el servicio de internet que tengo están restringido que no he podido ni bajar Atlas de Microsoft. Por lo que no pude hacer lo de siempre (bajar el programita, compilarlo y registrar el servicio de SubVersion). Fue cuando me encontré con un tips muy interesante de como registrar un servicio sin necesidad de valerme de un programita externo.

El comando sc es uno de esos comandos que solo lo conocen los administradores de sistemas windows. Me sorprendí de igual forma cuando me topé con el comando netsh.

Categories: General · Herramientas de Oficina · Open Source · Programacion