miércoles, 6 de mayo de 2009

Bloquear/desbloquear página de inicio de Internet Explorer

Para bloquear la página de inicio de Intenet Explorer y que no sea modificada por cualquier persona o programa (o desbloquearla en caso de que algún programa nos lo haya bloqueado), haremos lo siguiente:


Hacemos click sobre el botón Inicio y seleccionamos Ejecutar, a continuación accedemos al editor del registro de Windosws, escribiendo Regedit y pulsaremos Aceptar. Una vez estemos en el registro buscaremos la siguiente cadena:
HKEY_CURRENT_USER –> Software –> Policies –> Microsoft
Con la carpeta Microsoft seleccionada creamos una nueva CLAVE (Botón derecho) y le daremos el nombre de Internet Explorer.

Estando sobre ésta última, creamos una nueva CLAVE de nombre Control Panel

Dentro de Control Panel, creamos un nuevo VALOR DWORD de nombre Homepage y a éste le damos el valor 1 para tener la Página de Inicio bloqueada (para poder modificar la página de inicio tendremos que entra aquí y cambiar el valor a 0).

martes, 5 de mayo de 2009

Mostrar tablas de distintas BD en un datawindow

"Si deseas mostrar varias tablas que se encuentran en distintas base de datos en un solo datawindow. Solo tienes que seguir estos pasos:


//Declarar como variables globales
transaction ltr_trans1,ltr_trans2

//en la aplicacion principal
ltr_trans1 = CREATE transaction

ltr_trans1.DBMS = "MSS Microsoft SQL Server 6.x"
ltr_trans1.Database = "BASEDEDATOS1"
ltr_trans1.LogPass = "clavebd"
ltr_trans1.ServerName = "nombreservidor"
ltr_trans1.LogId = "id"
connect USING ltr_trans1;


ltr_trans2 = CREATE transaction

ltr_trans2.DBMS = "O84 ORACLE 8.0.4"
ltr_trans2.Database = ""
ltr_trans2.LogPass = "clave2"
ltr_trans2.ServerName = "nombreservidor"
ltr_trans2.LogId = "id"
ltr_trans2.AutoCommit = False
ltr_trans2.DBParm = ""
connect USING ltr_trans2;

luego cuando levantes tu datawindow solo tienes que hacer referencia al transa que vas a leer.

//transaccion a leer con la primera base de datos
dw_1.SetTransObject(ltr_trans1)

//transaccion a leer con la segunda base de datos
dw_1.SetTransObject(ltr_trans2)

Trucos: Crear o modificar una Tabla

Como crear una tabla o modificar una tabla desde el power script.

Usa la sentencia EXECUTE IMMEDIATE. Coloca el AutoCommit a TRUE porque el DDL SQL tiene que ejecutarse fuera de la transacción.

SQLCA.AutoCommit = True
ls_sql = "create table #tmp (abc varchar(255))"
EXECUTE IMMEDIATE :ls_sql USING SQLCA;

//Para modificar una tabla se usa la misma idea:
ls_sql = 'ALTER TABLE dba.tbl_name ADD col_name'
EXECUTE IMMEDIATE :ls_sql USING SQLCA;

Avanzado: programando en visual studio.net como en powerbuilder

Despues de instalar el datawindow.net en visual studio.net tienes que instanciar el objeto sqlca para que puedas trabajar de la misma forma como lo haces en porwerbuilder es decir tengas el mismo codigo ''dw_1.settransobject(sqlca)'' el codigo es el siguiente y lo haces en el evento load de la ventana o lo puedes declarar como instancia global finalmente agregas el datawindow a la ventana desde el cuadro de componenetes sybase, el datawindow puede estar construido en powerbuilder 10 o datawindow builder


Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim SQLCA As New Sybase.DataWindow.Transaction
SQLCA.Dbms = Sybase.DataWindow.DbmsType.Odbc
SQLCA.AutoCommit = False
SQLCA.DbParameter = "ConnectString='DSN=base_cyber;UID=dba;PWD=sql'"
SQLCA.Connect()
dw_1.settransobject(sqlca)


End Sub"

Copiar datos desde un Datawindow a Celdas especificas de una Hoja de Excel

El siguiente script copia todas las filas de un datawindow a un archivo de excel existente. Con esto usted puede aprender la manera de enviar datos desde una aplicación de Power Builder a celdas especificas de un archivo de excel.

El ejemplo copia la fila 1 columna 1 del datawindow a la fila1 columna1 de una hoja existente de excel, y asi con todas las celdas. Usted puede modificar este script para enviar solamente las celdas que usted necesite.



En este ejemplo se abre un archivo localizado en c:ejemplo.xls pero usted debe modificar el directorio y el nombre del archivo para que abra un archivo existente de excel en su disco duro. En la parte final del código esta la posibilidad de descomentar las funciones para guardar el archivo, o guardarlo con otro nombre.

El código es el siguiente:

long ll_numcols , ll_numrows , ll_c, ll_r
OLEObject xlapp , xlsub
int li_ret

// Coloca el número de columnas y filas a copiar
// Este script copia todo el DW pero ud puede solo copiar las celdas que desee

ll_numcols = long(dw_1.Object.DataWindow.Column.Count)
ll_numrows = dw_1.RowCount()

// Crea el oleobject en la variable xlapp
xlApp = Create OLEObject

// Se conecta a Excel y verifica el código de retorno
li_ret = xlApp.ConnectToNewObject( "Excel.Sheet" )
if li_ret < 0 then
MessageBox("Error Conectandose a Excel !",string(li_ret))
return
end if

// Abre un archivo especifico de Excel
xlApp.Application.Workbooks.Open("c:ejemplo.xls") //,false,true

// Hace Excel visible
xlApp.Application.Visible = true
xlsub = xlapp.Application.ActiveWorkbook.Worksheets[1]

// El for/next loop copia todas las filas de cada columna
For ll_c = 1 to ll_numcols
For ll_r = 1 to ll_numrows
xlsub.cells[ll_r,ll_c] = dw_1.object.data[ll_r,ll_c]
Next
Next

// Guarda el archivo abierto
//xlApp.Application.Activeworkbook.Save()

// Guarda el arvhivo con diferente nombre
//xlApp.Application.Activeworkbook.SaveAs("c:ejemplo2.xls")

// se desconecta de excel
xlApp.DisConnectObject()
Destroy xlapp

Exportar el contenido del datawindow a Excel

"Para poder exportar el contenido de un datawindow a Excel u otros programas deberá poner este código en un botón:


Integer li_ret, li_currow,li_fh
String ls_named,ls_txtname,ls_cod_generacion,ls_ley1

String ls_defext = "xls"
String ls_filtro = "Archivo de Excel(*.xls),*.xls"
//el filtro tambien puede ser
ls_filtro = "Archivo de Texto(*.txt),*.txt"


li_ret = GetFileSaveName("Guardar Achivo",ls_txtname,ls_named,ls_defext,ls_filtro)

//si usa el filtro de xls
dw_1.SaveAs(ls_txtname, excel!, TRUE)

//si usa el filtro de txt
dw_1.SaveAs(ls_txtname, text!, TRUE)

si deseas exportarlo sin cabecera solo tienes que cambiar el true a false

Funciona muy bien en las versiones power builder 8.0 para arriba"

viernes, 1 de mayo de 2009

Comics Para Programadores

Me encantan los comics, recién y gracias a Kabytes encuentro a stackoverflow, una galería de comics destinados a todos los programadores.

Cada comic esta clasificado por su rating, el mismo se elabora en base a nuestros votos, una galería que es imperdible con la que cualquier programador se divertirá por un buen rato.

alt text

En este sitio de seguro que encontraran viejos comics ya conocidos por todos, no obstante hay tantos que lo más probable es que descubras unos cuantos. Por aquí también tenemos otras tiras cómicas muy divertidas, si no las conoces te recomiendo que te des una vuelta por la tira de Bit & Byte y por Geek in Love.

Fuente: stackoverflow

20 Tips de Programación.

Ya llevo algunos años programando, a nivel web y escritorio el lenguaje que mas me gusta o al menos el que mas domino es PHP, voy a intentar dar algunos tips que realmente me han servido mucho durante mi aprendizaje.

Libros de Lenguajes de Programacion

1. Estudia, estudia y estudia
El estudiar nos permite perfeccionarnos, cuanto mas estudiemos mas oportunidades de programar mejor tendremos, no solamente estoy hablando de universidades, ni tampoco de cursos, hoy por hoy gracias a internet existen infinidad de tutoriales y manuales, sin ir mas lejos el sitio oficial de PHP es realmente muy bueno.

2. Busca antes de preguntar
Esto es un mal común del que quiere aprender a programar, es mas fácil preguntarle a alguien que sepa, pero realmente no tiene que ser así por varias razones, primero por que es algo de muy de vago, luego que cuando alguien nos da la respuesta fácil no aprendemos nada, lo interesante cuando se nos presenta un problema es buscar la solución nosotros mismos, sino damos con la respuesta recién ahí preguntar, este ejercicio realmente es muy beneficio, nos permite preparar nuestra cabeza para solucionar futuros problemas.

3. Busca scripts ya desarrollados
Por lo general podemos encontrar muchas funciones, scripts listos para utilizar, pero lo interesante es estudiarlos, ver como funcionan, de ahí aprendemos si copiamos y pegamos vamos mal.

4. Lee el código fuente libre
Yo muchas veces descargo algunas aplicaciones para ver como están programadas, de verdad que se aprende mucho, a medida que realicemos esta practica cada vez iremos aprendiendo mas, en especial si estas aplicaciones son de uso popular en donde miles de programadores del mundo “meten” mano para mejorarla. Un buen ejemplo de esto es Wordpress.


5. No copies y pegues
Es fácil, entramos a google buscamos una función que sirva para lo estamos necesitando y listo. Pero la realidad es que no siempre lo que descargamos es correcto, y si luego tenemos que solucionar un problema lo mas probable es que no tengamos ni idea por donde empezar. Ni hablar del factor aprendizaje cero que esta practica implica.

6. Buscar el momento para programar
Estas sentado delante de tu ordenador, llaman por teléfono, tu compañero de trabajo o familiar te pregunta algo, realmente es lo mas molesto e incomodo que hay, es difícil concentrarse, es preferible hacer algo mas “Light” antes de programar algo mal y después tener que arreglarlo.

7. Ten tu propia Wiki
Esto lo recomiendo muchísimo, es muy sencillo instalar una Wiki en nuestra pc, simplemente podemos descargar el Easyphp y tener en nuestro ordenar un servidor funcional, y mejor aun si quieres hacer la instalación “a mano”. La wiki es interesante para poder almacenar rutinas que usamos frecuentemente, en mi caso suelo guardar validaciones, etc. Una vez que aprendimos a hacer algo y lo tenemos lo mejor posible es interesante tenerlo a mano para no perder tiempo escribiendo lo mismo una y otra vez.

8. Comenta todo lo que sea necesario
Escribir comentarios en el código suele ser bastante molesto y parecer innecesario, pero comentar las cosas importantes nos puede ahorrar mucho tiempo cuando tengamos que retocar el código meses después.

9. Participa en Foros/Comunidades
Es interesante para interactuar con otras personas que estén en nuestra misma sintonía, muchas veces ayudaremos nosotros y otra vez nos podrán ayudar. En línea general estas comunidades tienen muy buena onda, y la ayuda mutua es lo que abunda, unas líneas de código pueden ser útiles para muchas personas, de ahí que entre todos se puede perfeccionar. Recuerden respetar el punto 2.

10. Habla con otros programadores
Mensajería instantánea, en un café, por teléfono, etc. Es interesante tener amigos que están en lo mismo, no solamente por el tema de la ayuda mutua, estos grupos suelen ser también de ayuda “emocional” del programador, unos chistes, algún comentario puede ser una inyección de energía para continuar con un problema que no podemos resolver.

11. Tiempo libre para otras cosas
Me encanta programar, pero entendi que no es lo unico en la vida, a veces es bueno una salida, una película, realmente es necesario desenchufarnos.

12. Arma tu Sitio de Releje
Tener un espacio de trabajo acorde con tus gustos es indispensable para programar, un buen sillón que no dañe nuestra columna, un lindo escritorio que nos permita desparramar CDS, libros, etc. También hay que ser organizado, pero siempre a nuestro gusto, es bueno que sea TU espacio y que nadie meta mano, uno a la larga lo termina sintiendo como un refugio.

13. Tu equipo en condiciones
Otro punto importante, una buena computadora, que no tenga problemas, si es necesario un poco mas de RAM y aun si sueles utilizar otros lenguajes, no hace falta tener una supermáquina para programar con PHP pero si algo que no se este colgando cada 2 seg.

14. Usa herramientas gratuitas
Si no podes pagar ciertas herramientas realmente ni te gastes en bajar las versiones piratas, en PHP no se necesita mucho un navegador como Internet Explorer, Mozila Fire Fox, Eclipse, Opera, etc y realmente no vale la pena estar trucando programas.

15. Organiza tu propia biblioteca de scripts
Relacionado con el punto 7. La wiki es muy buena, pero hay que tenerla organizada, sino encontrar algo puede llevarnos mas tiempo que volverlo a escribir. Solia ser bastante desorganizado, pero con los años aprendí a manejar mi gran problema.

16. Se agradecido con los que te ayudan
Si alguien te ayuda, por favor al menos di gracias. Recuerda que las personas que te rodean no son tu soporte técnico (Al menos que les pagues). Si alguien se molesta en responder a tus consultas agradécele, para la próxima esa persona seguirá teniendo buena predisposición.

17. Se humilde
Esencial. Siempre hay alguien que sabe más que uno y mas en este “rubro” en donde hay verdaderos cráneos, Yo hace varios años que programo en PHP y sin embargo siempre aprendo algo nuevo, y en parte eso es lo que me gusta de programar, siempre se puede mejorar.

18. Siempre busca perfeccionarte
Relacionado con el punto anterior. Las tecnologías evolucionan y nosotros debemos hacer lo mismo. Una linda practica cuando tenemos un poco de tiempo libre es tratar de optimizar un código nuestro de unos meses anteriores, si aprendimos cosas nuevas de seguro que podemos hacerlo mejor que antes.

19. Intenta ser eficiente y luego inténtalo de nuevo
Que funcione no quiere decir que este bien. También una de las cosas más lindas de programar: Siempre se puede hacer una función mas eficiente, que consuma menos recursos, no hay que conformarse que arroje los resultados que queremos, probablemente lo podemos hacer mejor.

20. Programa primero lo que menos te gusta
Esto es bastante personal, pero por lo general me da buenos resultados. Cuando me siento a programar algo los primeros minutos son de “ambientación” luego tengo un periodo de concentracion digamos maxima, en ese momento las cosas que parecen o son mas complicadas son cuando mas rápido y mejor salen, luego cuando uno esta mas cansado puede dedicarse a las cosas mas sencillas y rutinarias.


Espero que les sea útil. Los Comentarios son bastantes Utiles para mejorar en el contenido de esta tu pagina amiga.

Desarrollo - Soluciones Cabezera Animada


Ver Estadisticas