23 noviembre 2009

Lanzamiento del sitio patopetersen.cl


Con mucho agrado quiero dar a conocer el sitio web de mi colega y amigo Patricio Petersen, el cual, lo acaba de lanzar el día de hoy. El sitio tiene como finalidad el dar a conocer los trabajos desarrollados por él.

Además, cabe mencionar que Patricio es un gran diseñador gráfico, y prueba de ello la excelente calidad de los trabajos publicados en su sitio.

Desde ya los invito a visitar patopetersen.cl


Saludos.

14 junio 2009

Ojo con las "donaciones"

Me acaba de llegar este mail, lo encontré muy interesante y lo comparto con ustedes :)

Ayer en un SUPERMERCADO, SANTA ISABEL para ser exactos, mi padre redondeó su cuenta, algo un tanto insignificante y una práctica muy común en todos y cada uno de los centros comerciales del país. El ticket de compra aparecía un 'redondeo 5 PESOS'. Esto despertó mi instinto, mi instinto legal fué que, en la pantalla de la cajera aparecía el siguiente concepto: Donación AL HOGAR DE CRISTO.
Al ver lo anterior escrito, le pregunté a la cajera que si ellos lo manejaba como una donación, a lo cual me respondió que sí, pues bueno ahora entiendo que todas y cada una de la donaciones son deducibles de impuestos, para cada contribuyente siempre y cuando se expida el pertinente comprobante fiscal.
Basado en lo anterior, le pedí a la cajera que me diera mi comprobante de donación, claramente la respuesta fue una negativa, ya que ellos sólo lo manejan como redondeo.Pedí hablar con el gerente, ya que evidentemente bajo mi razonamiento había una evasión fiscal escondida tras un redondeo.
Llegó el gerente y le dije que si podía expedirme un recibo de donación a cargo de HOGAR DE CRISTO. por todas mis compras realizadas en dicha tienda, ya que ése era el concepto y quería deducirlas (evidentemente le dije que traía conmigo mis tickets de compra, falso pero buenoooo, esa era la onda).
El gerente me negó mi comprobante (que ojo! es mi derecho), y trató de explicarme que... bueno, ellos solamente son captadores del efectivo, es decir juntan la suma de capital del redondeo y lo entregan aL HOGAR DE CRISTO. Terminé pidiéndole que me regresara mis 5 PESOS, porque no iba a participar en una defraudación fiscal y accedió.

¿Por qué fraude???
Pues es simple, ellos recaudan una cantidad específica de dinero a lo largo del mes, calculemos que de cada compra recaudan 5pesos , es claro que en un mes recaudan una muy alta cantidad de pesos, esa cantidad es recolectada en este caso por SUPERMERCADO SANTA ISABEL y entregada aL HOGAR DE CRISTO Ojo, el dinero que es de un montón de ciudadanos y cooperación de los mismos, no es entregado en nombre de todos y cada uno de los contribuyentes REALES, sino en nombre de 'SANTA ISABEL ', por lo que el recibo de donación es a nombre de " SANTA ISABEL'... ¿más claro?? Lo que donaste se lo adjudica otra persona, y ella lo deduce, es decir hace uso de tu dinero para ahorrarse impuestos, en tal sentido, defrauda a el fisco y paga con tu dinero impuestos que el debería de pagar con el suyo.
Así que la próxima vez que te pidan el redondeo, piénsalo... no te digo que no dones, para eso ahórrale y hazlo directamente ante las instituciones y no ante una empresa 'intermediaria' .
Si calculamos que en un día , por una caja pasan 100 clientes por hora, y si lo multiplicamos por 25 cajas, por 15 horas en que está abierto el SANTA ISABEL, con un supuesto de 5 PESOS de redondeo por cada compra, nos da un total de $ 187.500 por tienda. Existen 220 tiendas de SANTA ISABEL en el pais, se metieron $41.250.000 pesos al día.
¡¡Es un robo hormiga!! Si gana y ése es un milloncito diario, calcula mensualmente POR 30 DÍAS, o mejor aún, por 365 días del año nos da un total de la nada despreciable cifra de $ 451.687.500.000 que es la forma en que se deduce y nada más fíjate la gran cantidad de $$$ que no pagan... de impuestos. Que forma de robar, no tienen vergüenza! y nosotros meta pague y pague impuestos, mientras que ellos evaden al fisco, franca y descaradamente, y ¿A dónde va tanto dinero?, ¿Acaso pecan de honestidad y entregan todo el dinero? ¿Ya te lo estás preguntando? y por si fuera poco TODAVÍA TE LO METEN EN LA CABEZA POR LA TELE.
En lo que a mí respecta, ya no pienso colaborar con ese fraude. Y para finalizar, esto lo hace también LIDER, MONSERRAT, JUMBO,TOTTUS, ETC., Y TU... ¿QUÉ PIENSAS DEL REDONDEO?? ¿SEGUIRÁS DICIENDO TODAVÍA QUE SÍ? ASÍ LAS MULTINACIONALES GANA FORTUNAS Y NOS EMPOBRECEN, COMO INDIVIDUOS Y COMO PAIS.

Atte. Un ciudadano de buena fe ... MANDA ESTE MAIL, A TODOS TUS
CONTACTOSPARA QUE ESTO NO SIGA PASANDO, PIENSA Y PREOCÚPATE POR TODOS NOSOTROS.



Interesante...

24 diciembre 2008

Instalando Postgres en Fedora 10

En el presente post detallaré la instalación de Postgres (el mejor motor de base de datos open source) en Fedora 10.

NOTA: Todo el proceso se realizará a través de la consola como root.

La instalación de postgres a través de yum se realiza de la siguiente forma:

yum install postgresql postgresql-libs postgresql-contrib postgresql-server postgresql-docs

Una ves instalado, se procede a inicializar el clúster de la siguiente manera:

service postgresql initdb

Luego inicializamos el servicio de postgres:

service postgresql start

La instalación creó un usuario llamado postgres, en este momento es el único usuario autorizado para trabajar en el clúster. El usuario postgres no tiene asociado password alguna, entonces le crearemos una, para lo cual, nos conectamos de la siguiente manera:

su - postgres

con lo cual, hemos accedido al clúster y la consola queda de la siguiente manera:

-bash-3.2$

ahora escribimos lo siguiente:

psql -d template1 -U postgres

con dicha instrucción nos conectamos a template1, la base de datos por defecto (de template1 se basarán todas las bases de datos que creemos en el futuro).

Ahora seteamos la password para el usuario postgres de la siguiente manera:

alter user postgres with password 'XXX';

donde XXX es la password que se va a definir para el usuario postgres. Para desconectarnos de template1, basta con escribir \q

Por último, nos queda configurar los accesos a postgres. Para ello, debemos de modificar los archivos postgresql.conf y pg_hba.conf ubicados en /var/lib/pgsql/data/

En el archivo postgresql.conf debemos de quitar las almohadillas (#) a las siguientes lineas:

listen_addresses = '*'
port = 5432
password_encryption = on

En el archivo pg_hba.conf buscamos la sección:

# "local" is for Unix domain socket connections only

donde originalmente dice:

local all all ident sameuser

lo cambiamos por:

local all all trust

con dicha modificación se indica que todas las conexiones locales serán aceptadas. Si se desea impedir la conexión a usuarios que no están explícitamente autorizados para acceder a template1 se debe hacer lo siguiente:

# "local" is for Unix domain socket connections only
local template1 all ident sameuser
local all all trust

Con lo cual se deniega el acceso a usuarios no autorizados para conectarse a template1.

Finalmente nos queda ubicar la sección:

# All IPv4 connections from localhost

y agregar lo siguiente:


host all all 192.168.0.0/24 md5

Con todo lo anteriormente expuesto, ya nos encontramos en condiciones de poder trabajar con postgres en Fedora 10.

Algunos links interesantes...

Saludos

20 diciembre 2008

Feliz Navidad

La vida de un informático...

Creo que esa secuencia refleja fielmente la vida de cualquier informático... ¿alguna duda? al menos yo no las tengo, por lo mismo me tomé vacaciones jajajajaj


Saludos

25 noviembre 2008

Habemus Fedora 10

Tal como fue anunciado en la lista de correos de Fedora (ver mensaje) hoy fue lanzada la versión 10 de Fedora, cuyo codename es Cambridge.

Esta versión de Fedora incluye un arranque más rápido a través del sistema gráfico Plymouth, instalaciones virtuales remotas, una instalación más facil de los codecs para GStreamer, entre muchas características más.

También se incluye:
  • Kernel 2.6.27
  • RPM 4.6
  • KDE 4.1
  • GNOME 2.24
  • Firefox 3.04
  • OpenOffice.org 3.0
Otra novedad de esta versión es la presentación de los repositorios free y nonfree del proyecto RPM Fusion, en el cual se incluyen aplicaciones multimedias, codecs, drivers, juegos y diversas aplicaciones que el proyecto Fedora no ha incluído por defecto por diversas causas.

Para descargar este nuevo lanzamiento de Fedora invito a mis compatriotas descarguen la imagen desde este servidor de Chile. El listado de los mirrors lo puedes encontrar aca.


Saludos.

17 octubre 2008

Creación de backups automaticos con Oracle 10g R2

En este post voy a explicar cómo realizar un bakcup de una base de datos en Oracle 10g R2 a través de un archivo bat, el cual, se ejecuta en el servidor a través de una tarea programada.
Lo primero que se debe de realizar es conectarse al servidor de base de datos como usuario sysman y realizar las siguientes acciones:
1.- Indicarle a Oracle el directorio en el cual se almacenará el backup de la base de datos a través de la siguiente sentencia SQL:
CREATE DIRECTORY nombre_del_directorio AS 'ruta_fisica'
donde:
nombre_del_directorio es el alias para Oracle de la ruta física en donde se almacenará el bakcup.
ruta_fisica es la ruta en el servidor en donde se almacenará el backup. Esta ruta debe de ser en el mismo equipo en donde se encuentra el servidor de Oracle, por ejemplo: C:/Respaldos
2.- Dar los permisos de lectura/escritura para dicho directorio a través de la siguiente sentencia SQL:
GRANT READ,WRITE ON DIRECTORY nombre_del_directorio TO usuario
donde:
usuario es la cuenta del usuario para la cual se desea realizar el backup de su esquema.
3.- Crear el archivo bat encargado de realizar el backup. Éste se realiza a través de la siguiente sentencia SQL:
EXPDP usuario/contraseña DIRECTORY=nombre_del_directorio DUMPFILE=nombre_del_archivo
donde:
nombre_del_archivo es el nombre del backup con extensión DMP.
Finalmente, el arhivo bat queda programado de la siguiente manera:
@echo off
set FECHA=%date%_%time%
set FECHA=%FECHA:/=%
set FECHA=%FECHA: =%
set FECHA=%FECHA::=%
set FECHA=%FECHA:,=%
set FECHA=%FECHA: =%

expdp usuario/contraseña directory=nombre_del_directorio dumpfile=%FECHA%.dmp
El script crea un archivo de backup con un nombre similar a: 17102008_11243038.DMP donde la estructura del nombre del backup es: FECHA_HORA.EXTENSION. Entonces, para el ejemplo dato anteriormente, el archivo de backup fue creado el 17 de octubre del 2008 a las 11:24:30,38.
NOTA 1: Con este script hay que tener cuidado en la sección set FECHA=%FECHA:/=% ya que si el separador de fecha del sistema es '-' y no '/' el script no funcionará, sólo se debe de corregir por el caracter adecuado para su correcto funcionamiento.
NOTA 2: Si se olvidaron de los alias que han creado en la base de datos, lo pueden ver a través de la siguiente sentencia SQL:
SELECT * FROM dba_directories
NOTA 3: Para importar un backup a la base de datos, se debe de realizar a través de la siguiente instrucción en una consola de windows:
IMPDP usuario/contraseña DIRECTORY=nombre_del_directorio DUMPFILE=nombre_del_archivo
Saludos.

10 septiembre 2008

Creación de controles dinámicos en ASP.NET

Una de las cosas que siempre quise realizar en .NET fué la creación de controles dinámicos en tiempo de ejecución pero como nunca me había visto en la necesidad de crearlos no lo había hecho... hasta hoy :) que requerí generar controles dinámicos de acuerdo a las necesidades de los usuarios de cierta aplicación.


Para el siguiente ejemplo voy a explicar cómo crear cuántos textboxs y dropdownlist sean necesarios en tiempo de ejecución. Lo primero que se necesita realizar es la declaración de los arreglos de los controles requeridos de la siguiente manera:


static TextBox[] arregloTextBoxs;
static DropDownList[] arregloCombos;
static int contadorControles;


Luego defino la creación de los controles dinámicos en el evento del botón que creará dichos controles


protected void btnAgregar_Click(object sender, EventArgs e)
{
try
{
int numeroRegistro = contadorControles;
TextBox nuevoTxt = new TextBox();
nuevoTxt.ID = "txt" + numeroRegistro.ToString();
nuevoTxt.Width = 400;
arregloTextBoxs[numeroRegistro] = nuevoTxt;
DropDownList nuevoCmb = new DropDownList();
nuevoCmb.ID = "cmb" + numeroRegistro.ToString();
nuevoCmb.Items.Add("---Seleccione el Plazo---");
nuevoCmb.Items.Add("Corto Plazo");
nuevoCmb.Items.Add("Mediano Plazo");
nuevoCmb.Items.Add("Largo Plazo");
nuevoCmb.SelectedIndex = 0;
arregloCombos[numeroRegistro] = nuevoCmb;
AgregarControles(nuevoTxt, nuevoCmb);
contadorControles++;
}
catch (Exception ex)
{
lblContador.Text = ex.Message;
}
}


El método que agrega los controles dinámicos en un control Panel para que el usuario los pueda utilizar


protected void AgregarControles(TextBox txt, DropDownList cmb)
{
try
{
pnlMain.Controls.Add(txt);
pnlMain.Controls.Add(new LiteralControl(" "));
pnlMain.Controls.Add(cmb);
pnlMain.Controls.Add(new LiteralControl("
"));
}
catch (Exception ex)
{
lblContador.Text = ex.Message;
}
}


OJO: pnlMain es un control de tipo Panel en el cual voy agregando los controles dinámicos.


Finalmente, en el evento Page_Load de la página se debe "redibujar" los controles cada vez que se recargue la página:


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lblContador.Text = "";
arregloTextBoxs = new TextBox[20];
arregloCombos = new DropDownList[20];
contadorControles = 0;
}

try
{
for (int i = 0; i < contadorControles; i++)
AgregarControles(arregloTextBoxs[i], arregloCombos[i]);
}
catch (Exception ex)
{
lblContador.Text = ex.Message
}
}

Eso es todo!!!! espero que a alguien le sea útil como lo fue para mi el día de hoy :)


Saludos!!!

PD: asi queda la página...