martes 29 de mayo de 2007

Elecciones Capital Federal

Bueno, el domingo votamos...
De todas las elecciones en la que por lo menos yo he participado, creo que esta es la que peor candidatos ofrece.
Macri no me gusta ideologicamente, me parece un hipocrita y dice un monto de propuestas piolas que ya sabemos en que van a terminar.
Filmus es el titere de K. O sea, un desastre. Creo que es el unico canditado que dice que no hay que anular la ley cafiero. Cada vez que lo escucho, me da asco.
Telerman es un chanta. No ha demostrado nada mientras fue jefe de gobierno. No me cae bien y encima tiene esa estupida obsesion de hacer peatonal las calles que bordean la plaza de mayo. Ya por eso solo, razon para no votarlo.
Despues esta la izquierda de siempre, con los mismo candidatos de siempre. Patricia Walsh (MST), Altamira (PO) y Cristian Castillo (PTS). Ni siquiera estos partidos tienen renovacion.
Zamora se digno a no presentarse esta vez (fue la tercera potencia en capital, tenia un respeto muy grande la sociedad por el y lo tiro a la basura).
Realmente es patetico que no haya un candidato digno. Lo peor de todos, que con la mayoria de la gente que hablo piensa igual. A nadie le gusta nadie. Sin embargo, no surgen nuevas alternativas. Por sera?
Porque en un districto muy dinamico, con alto nivel cultural no surge nuevos partidos o nuevos dirigentes?
No me gusta Macri para nada, pero hay que reconocerle que es unico dirigente que ha sabido incorporar nuevas caras a la politica porteña. No tiene que ser necesariamente bueno esto, pero al menos algo es algo.
En los 90 surgio el Frente Grande como una alternativa interesante. Fue un fracaso, por diversos motivos, pero nunca mas volvio a aparecer un movimiento similar.
Lo peor, que en octubre tendremos nuevas elecciones, para presidente. En fin, tendremos que votar a la misma lacra de siempre.

miércoles 23 de mayo de 2007

Accidentes de tránsito en Argentina


Entre tantas pero tantas cosas que me indignan y me sorprenden de nuestra querida Argentina, una de ellas, es la enorme cantidad de muertos en accidentes de tránsito en el pais. Mueren mas de 7500 personas por año aqui por esta causa. Todo el mundo habla de la inseguridad del pais, pero mueren mas del doble de personas en accidentes que en asesinatos.
Lo peor de todo esto, es que este tipo de muertes, son totalmente evitables. Se deben a negligencia pura.
La pagina luchemos.org, tiene unas estadisticas escalofriantes: http://www.luchemos.org.ar/espa/index.htm

Esto es un sintoma mas de lo estupidos que somos todos los argentinos. Siempre esta el idiota que le gusta correr picadas en Libertador o que anda a 180 en la ruta. Total para ellos nunca le va a pasar nada y ellos "manejan bien". Tengo amigos que suelen hacer este tipo de cosas y a veces deseo (que me perdonen) que les pase algo (no morirse, solo un sustito) para que aprendan!!!.
Me da mucha bronca esto, porque esto refleja la falta de interes de los argentinos por el projimo. Ni las leyes en la Argentina ni las multan son muy estrictas y eso obviamente tampoco ayuda.
Como puede ser que un flaco que mata a una familia corriendo picadas, se le den 2 o 3 años en suspenso??? Cual es la diferencia entre ir a 180 km en una avenida de ciudad o andar disparando un rifle en el medio de la calle?.
En la Argentina se habla mucho de la inseguridad. Es un problema real, que viene aumentando en los ultimos 20 años y uno a veces escucha casos terribles. Es innegable. Pero la solucion a este problema es muy compleja, donde el contexto social y economico del pais tiene muchisima incidencia. Y peor aun, toda solucion siempre tendra que ser forzosamente a largo plazo.
Pero en cambio, los accidentes de transito, son muertes evitables y estupidas. No pretendo llegar a 0 muertes por año, porque es imposible. Pero la cantidad de muertos en Argentina es muchisimo mayor a la cantidad de asesinatos y sin embargo, nadie dice practicamente nada.
Por Crogmañon se hizo un juicio politico al intendente de Buenos Aires. En la Argentina ocurre practicamente
un Crogmañon por quincena en el pais. Alguien dice algo? Alguien se espanta?
Porque no hay un Blumberg de la seguridad vial?
Porque Telerman, Macri y toda esta lacra hablan de la seguridad y dicen poco de este problema, a mi entender, tan o mas grave?
Sin ser un experto en vialidad, se me ocurren varias soluciones que creo que podrian disminuir la estupidez humana:
  • Se podria aplicar fuertisimas multas.
  • Incrementar la cantidad de lomo de burros o estructuras similares, que desalienten el andar a altas velocidades.
  • Se podria inhibir el registro de conducto por 5 años por ejemplo, a aquellas personas con antecedentes de reincidencia en infracciones de transito.
  • Se podria aumentar las penas por muertes (mejor dicho asesinatos).
  • Deberia limitarse por fabrica o de alguna manera, que ningun auto pueda andar a mas de 130 KM/Hora.
  • Mas educacion vial en los medios de comunicacion.
  • Una cosa muy interesante que vi en uno de mis viajes a Mexico. En las rutas nacionales, hay a proposito autos destrozados en banquina y una señal que indica la cantidad de muertos que hubo en determinada traza de la ruta. Es muy impactante la imagen. El gobierno mexicano lo hace precisamente para que la gente tome conciencia y me parece una excelente medida.
Pero claro, vivimos en la Argentina, el politico que implante estas medidas, seria muy impopular.
No solo somos un pais corrupto, ademas manejamos para el culo. Y asi nos va.

domingo 20 de mayo de 2007

Entender Plan de Ejecucion en SQL Server

Cada vez que se ejecuta una consulta en un motor de bases de datos cualquiera, internamente se ejecutan una serie de operaciones, que varían según la consulta, los datos y obviamente, el motor de base de datos. El conjunto de pasos que tiene que realizar el motor para ejecutar la consulta, se llama Plan de Ejecución. Hoy vamos a explicar como entender el plan de Ejecución de SQL Server 2000/2005. Que operaciones podemos encontrar en el plan de ejecución?

Table Scan: Significa que el motor tiene que leer toda la tabla. Cuando sucede esto, no se esta usando ningún tipo de índice. En algunos casos, cuando es una tabla chica, un Table Scan es la mejor opción, ya que produce poco overhead. De hecho la tabla puede tener índices y sin embargo el SQL elige usar un table scan porque seria más rápido.Pero cuando la tabla es más grande, no debería haber Table Scan, ya que es muy costoso. Para solucionar este problema, hay ver si la tabla tiene índices y si se están usando correctamente.Lo importante es prestarle atención cuando vemos un table Scan. Muchas veces, nuestro problemas de performace pasan por ahí.
Ejemplo de un Table Scan:

CREATE TABLE [TablaPrueba1]
(
Campo1 int IDENTITY (1, 1) NOT NULL ,
Campo2 char (3),
Campo3 char (3),
Campo4 varchar (30)
)

SELECT * FROM TablaPrueba1


Clustered Index Scan: Esta operación es muy similar a un table scan. El motor recorre toda la tabla. La diferencia entre uno y otro, es que el Clustered Index Scan se realiza en una tabla que tiene un índice Clustered.
Otra vez tenemos que evaluar si esta opción es la que realmente queremos. Muchas veces, por un mal uso de los índices, se ejecuta esta operación, cuando en realidad queríamos otra más eficiente.
Ejemplo de un Clustered Index Scan:

CREATE TABLE [TablaPrueba2]
(
Campo1 int IDENTITY (1, 1) NOT NULL ,
Campo2 char (3),
Campo3 char (3),
Campo4 varchar (30),
CONSTRAINT [PK_Campo1] PRIMARY KEY CLUSTERED
(
[Campo1]
)
)

SELECT * FROM TablaPrueba2

Clustered Index Seek: Si vemos esta operación, podemos estar contentos. Significa que el motor esta usando efectivamente el índice Clustered de la tabla.
Ejemplo de esta operación:
(Creamos una tabla con un indice Clustered, le insertamos 10000 registros para que el motor preferia usar el indice antes que un scan y filtramos por el indice).

CREATE TABLE [TablaPrueba2]
(
Campo1 int IDENTITY (1, 1) NOT NULL ,
Campo2 int,
Campo3 char (30),
Campo4 varchar (30),
CONSTRAINT [PK_Campo1] PRIMARY KEY CLUSTERED
(
[Campo1]
)
)

SET NOCOUNT ON
DECLARE @Top int
SET @Top = 0
WHILE @Top <>
BEGIN
INSERT INTO TablaPrueba2 VALUES (convert(int,rand()*20000),'P','P2')
SET @Top = @Top+1
END

SELECT * FROM TablaPrueba2 WHERE Campo1 = 2

Index Seek: Aquí tambien si vemos esta operación, podemos estar contentos. Es similar que el Clustered Index Seek, pero con la diferencia de que se usa un indice Non Clustered.
(
Creamos una tabla con un indice Non Clustered, le insertamos 10000 registros para que el motor preferia usar el indice antes que un scan y filtramos por el indice).

CREATE TABLE [TablaPrueba2]
(
Campo1 int IDENTITY (1, 1) NOT NULL ,
Campo2 int,
Campo3 char (30),
Campo4 varchar (30),
CONSTRAINT [PK_Campo1] PRIMARY KEY CLUSTERED
(
[Campo1]
)
)

CREATE INDEX [IDX_Campo2] ON [dbo].[TablaPrueba2]([Campo2]) ON [PRIMARY]

SET NOCOUNT ON
DECLARE @Top int
SET @Top = 0
WHILE @Top
<>
BEGIN
INSERT INTO TablaPrueba2 VALUES (convert(int,rand()*20000),'P','P2')
SET @Top = @Top+1
END

SELECT Campo2 FROM TablaPrueba2 WHERE Campo2 = 2

Bookmark Lookup: Hay que prestar atención cuando sucede esto. Indica que SQL Server necesitaba ejecutar un salto del puntero desde la página de índice a la página de datos de la tabla para recuperar los datos. Esto sucede siempre que tenemos un indice Non Clustered. Para evitar esta operación, hay que limitar los campos que queremos traer en la consulta.
Si el campo que vamos a extraer, esta fuera del indice, entonces se va a ejecutar esta operación y no nos queda otra. Aca reside la importancia de evitar los SELECT * FROM …
Miremos el mismo ejemplo anterior, pero con esta consulta:

SELECT * FROM TablaPrueba2 WHERE Campo2 = 2

Si vemos el plan de ejecución, se realizo la operación Index Seek, pero ademas, aparece el Bookmark Lookup. Esto pasa porque en este ejemplo en vez de traer solo el campo del indice, seleccionamos todos los campos de la tabla.

Index Scan: Esta operación se ejecuta cuando se lee el índice completo de una tabla. Es preferible a un Table Scan. Esta operación puede ser síntoma de un mal uso del índice. Aunque también puede ser que el motor haya seleccionado que esta es la mejor operación. Es muy común un Index Scan en un join o en un ORDER BY o GROUP BY.
Otra vez, usemos el mismo ejemplo pero con esta consulta:

(Como hay una instrucción WHERE, el motor debe leer toda la tabla. Pero como solo se trae el Campo2, que pertenece a un indice Non
Clustered, en vez de hacer un Table Scan, es mas optimo hacer un Index Scan.)

SELECT Campo2 FROM TablaPrueba2

Neested Loop Join: SQL tiene tres tipos de joins. Neested Loop, Merge Join y Hash Join. Dependiendo de las características de la consulta y de la cantidad de registros, el motor puede decidir uno u otro. En este caso, el Neested Loop, es por lejos el más frecuente. Esta operación ocurre cuando tenemos un join y la cantidad de registros es relativamente baja, o los campos a relacionar están indexados.

Merge Join: Otro de los tipos de join que existen. Generalmente se usa cuando la cantidades de registros a comparar son grandes y están ordenadas. Aun si no están ordenadas, el motor puede predecir que es mas rápido ordenar la tabla y hacer el merge join que hacer un Neested Loop Join.

Hash Join: Otro tipo mas de join que existe. Se usa generalmente cuando las tablas relacionadas no tienen índice en ninguna de los campos a comparar. Hay que prestar atención si vemos este tipo de operaciones, ya que puede significar un mal uso de los índices.

Sort: Otro punto para observar, es cuando vemos un sort. Como el nombre lo indica, esta operación ordena. Ahora, el Sort solo se hace cuando el campo o los campos que se desean ordenar, no están indexados. A veces esta operación se ejecuta sola, sin que nosotros hayamos puesto en la consulta el ORDER BY, porque el motor necesita ordenar los datos por alguna razón, por ejemplo, para ejecutar un Merge Join.Pero recordemos que si ordenamos por un campo indexado, no se ejecuta esta operación.
Ejemplo de esta operación:

SELECT * FROM TablaPrueba2 ORDER BY Campo3


sábado 19 de mayo de 2007

Progresismo en Argentina

Leyendo a diversos escritores y economistas liberales en Argentina, la mayoría de ellos suele culpar al populismo y al progresismo de la mayoría de nuestros males.
Solo basta con entrar al sitio de la Fundación Atlas, ir uno de los tantos blogs derechazos que hay por ahi o leer por ejemplo, a mi gran amigo Cachanosky.
Pero, yo pregunto, cuando hubo progresismo en la Argentina?

Analicemos nuestros presidentes “democráticos” que hubo desde 1930 hasta el 2001:
  • 1932-1938 – Agustin Pedro Justo (conservador)
  • 1938-1943 – Ortiz/Castillo (conservadores)
  • 1945-1955 – Juan Domingo Peron (no necesita aclaración, me imagino)
  • 1958-1962 – Frondizi (Radical, desarrollista, ¿Progresista?)
  • 1963-1966 – Arturo Illia (Radical, progresista)
  • 1973-1973 – Campora (Peronista de izquierda)
  • 1973-1976 – Matrimonio Perón
  • 1983-1989 – Alfonsin (Radical)
  • 1989-1999 – Saul Menem (otro que no necesita aclaración)
  • 1999-2001 – De la Rua (Radical)

A esto hay que sumarle entre 1930 y 1983 los 22 años aproximadamente de gobiernos militares (o sea, casi la mitad de años). Obviamente absolutamente ninguno de ellos ni populista y mucho menos, progresista, pero que si contó con la colaboración de muchos de los que se consideran “liberales”.
Ahora, de todos estos presidentes elegidos por el pueblo, los únicos que podrían ser calificados de progresistas, son Frondizi e Illia. Frondizi fue elegido como un presidente progresista, pero su gestión no lo fue. Presionado por los militares y la débil situación política imperante, con un peronismo prescripto, Frondizi fue todo menos un presidente progresista. Entre el plan CONINTES (Conmoción Interna del Estado), la prohibición del peronismo y desplazar a Rogelio Frigerio para poner a Don Álvaro Alzogaray.
El otro caso es Illia, probablemente el único presidente realmente progresista que tuvo la Argentina. Durante su presidencia, el PBI crecio con fuerza, bajo la deuda externa, bajo la desocupación y la UBA tuvo un presupuesto que nunca antes y nunca después tuvo. Según Cachanosky, el gobierno de Illia fue un fracaso. Ojala la Argentina hubiese fracasado siempre como “fracasó” Illia.
No solo eso, sino que tuvo las pelotas para eliminar las restricciones contra el peronismo. Obviamente y como dijo Tato Bores en su famoso monologo refiriéndose al gobierno de Illia, “Todo lo bueno dura poco” y los militares, sindicalistas y la prensa (especialmente el gran hipócrita argentino, Mariano Grondona) se encargaron de rajarlo.
Alguno podría decir que Ricardo Alfonsin, fue un presidente “progre”. Yo creo que se quedo en el intento nomás y solo en sus primeros años.
Por lo cual, yo pregunto a algún liberal perdido que me ande leyendo, cuando en la Argentina hubo progresismo? Y como puede ser este la culpa de todos nuestros males economitos??? Cuando hubo algún ministro de economía progre en la argentina? Juan Carlos Pugliese, Frigerio y tal vez Gelbard…
Sin embargo, tuvimos varios ministros de economía “liberales”, todos muy conocidos y la mayoría de ellos, funcionarios de alguna de las tantas dictaduras que tuvo la argentina:

  • Alsogaray,
  • Adalbert Krieger Vasena,
  • Martinez de Hoz,
  • Roberto Aleman,
  • Domingo Cavallo.
  • Roque Fernandez

Seria interesante, que los liberales que tanto critican al progresismo, hagan una buena autocrítica. Porque en la Argentina hubo mucho mas “liberalismo económico” (verdadero liberalismo en la Argentina, no creo que haya habido nunca), que progresismo.

jueves 17 de mayo de 2007

Cachanosky y su libro


Hace poco compre un libro de Roberto Cachanosky, para el que no tiene idea, es un economista liberal conservador, al mejor estilo Jorge Avila & cia. Sabia que no iba a opinar igual que el autor, pero queria saber que cosas interesantes podia aportar. Creo que fueron los 34 pesos peor desperdiciados de mi vida.
El libro es una porqueria. Pero no por su ideologia (conservadora y neoliberal), sino porque es muy superficial, prejuicioso, no dice absolutamente nada y los ejemplos que da sobre otros paises son parciales.
La tesis del autor es basicamente que estamos porque estamos por culpa de la izquierda, el estatismo, el populismo y el progresismo (que no define que es, siemplemente autocalifica de progresista a lo que el le parece y le conviene).
Critica constatemente a Peron, Alfonsin y
Kirchner. Para el autor, aparentemente solo fuimos gobernados por estos 3 presidentes, pero se olvida que desde 1930 a 1983, tuvimos mas de 20 años de gobiernos militares, que nadie podria calificarlos ni de populistas ni de progresistas. Y de la decada del 90 hace una critica muy suave (y pensar que apenas 2 años despues de la salida del turco, la Argentina entra en la peor crisis de su historia moderna).
En el libro hay varios ejemplos de parrafos realmente muy absurdos. Por ejemplo, en una parte afirma que hay mucha evasion impositiva en la Argentina porque el sistema impositivo es muy complejo y que una persona para saber todo lo que tiene que pagar, tiene que leerse 4 tomos enciclopedicos. Esto es un insulto a la inteligencia media, la enorme mayoria de la poblacion, sabe perfectamente cuanto tiene que pagar de impuestos. En la Argentina hay evasion porque un trabajador monotributista se inscribe en una categoria mas baja de la que corresponde, hay evasion porque los comercios no generan facturas para vender en negro, hay evasion porque las empresas compran facturas para pagar menos IVA, hay evasion porque se manda dinero a Suiza para no declararlo, hay evasion porque las grandes empresas contratan ejercitos de contadores para aprovechar los agujeros fiscales que pueda tener la ley.

Otra de las grandes ideas de que Cachanosky es afirmar que la destruccion del sistema educativo empezo cuando el gobierno de Alfonsin cambio el sistema de calificacion de 0 a 10. He escuchado a varios liberal afirmar lo mismo y siempre digo, "que estupidez". Se cambio el 10 por un Excelente, el 9-8 por un muy bueno, el 7-6 por un Bueno, el 5-4 por un Regular y despues un Malo. La misma mierda con diferente color como dirian por ahi.
Y luego le tira palos constantes al intervencionismo estatal. Cachanosky es economista, por lo cual no entiendo como puede afirmar que luego de 1930 los estados empezaron a intervenir menos en la economia. Es Cachanosky ignorante? Por supuesto que no, de hecho, pocas paginas despues se contradice. Critica al estatismo y lo considera progre y populista, pero se olvida que mas del 80% de las empresas estatales o parcialmente estatales mas grandes del mundo, pertenecen a paises del G7.
Uno de los parrafos que mas me indigno, es cuando califica de robo legal el sistemas de obras sociales. Critica que se nos obligue a pagar el 6% de nuestro sueldo. Es verdad que los sindicalistas son unos corruptos, ahora yo pregunto, en otras epocas, con ese 6% del sueldo, un trabajador podria darle salud a toda su familia y ademas muchas obras sociales tenian descuento en hoteles, clubes, etc. Hoy en dia, con el modelo
Cachanosky, uno tiene que pagar hasta un 25% de su sueldo para cubrir una prepaga mas o menos decente para una familia, para que te atienda un medico que le pagan 12 pesos por consulta que te despacha en 5 minutos y tenes en el mejor de los casos, un 50% de descuento en farmacia. Muy lejos del 100% de descuento que solian ofrecer algunas obras sociales a las que tanto critica y que califica de robo legal. Que sistema es mejor????
En fin, el libro es malo. Tendria que haber copiado de su amigo, Jorge Avila, economista con la misma ideologia, pero que sabe argumentar y decir cosas inteligentes. Cachanosky podria haber escrito algo muchisimo mejor, con mas datos y menos ideologia. Pero prefierio hacer populismo de derecha. Lamentable.

miércoles 16 de mayo de 2007

Calentamiento global

Hoy en dia esta de moda opinar sobre el calentamiento global. La mayoria no sabe un carajo, pero gracias a Internet, uno puede leer cualquier cosa y se la cree. Hay 10.000 links en internet donde uno puede informarse al respecto.
La ultima moda sobre el calentamiento global es precisamente no creer en el calentamiento global o por lo menos, afirmar que este hecho no es producto de la accion humana.
Desde que tengo memoria se viene hablando de efecto invernadero, pero recien con el tratado de Kyoto, se empezo a criticar esta teoria en ciertos sectores (que podrian verse perjudicados por Kyoto). Despues de Kyoto se hablo del "fundamentalismo ambientalista".
Entonces ahora para los "liberales" o ciertos liberales (no me gusta generalizar), resulta que los cientificos que afirman que el calentamiento global es culpa de la accion humana, son a groso modo, cientificos "zurditos" o peor todavia, "progres", jaja. El hecho que la mayoria de la comunidad cientifica apoye esta teoria, parece que no es importante. Para esta gente, cualquier cosa que atente contra la "libre empresa" esta mal y quien diga lo contrario es ignorante, marxista, zurdo, populista, estatista, progre, socialista, etc,etc,etc.
Desde cuando, algo que deberia ser visto desde un punto de vista 100% cientifico, se transformo en un debate ideologico???
Yo personalmente no tengo la mas minima idea cual es la teoria correcta. La mayoria de la comunidad cientifica afirma que la contaminacion ambiental esta produciendo el calentamiento global. Otros, afirman que no, que el calentamiento global es producto del sol y de que se yo...
El debate cientifico es bueno y necesario. No existe la verdad absoluta, pero yo pregunto a los opinadores ideologicos:
Que pasa si la teoria de que el calentamiento global resulta ser cierta y no se hace nada al respecto? Cuando va a parar el asunto? Cuando el "mercado" establezca que es mas ganacia que el planeta sobreviva antes de que se transforme en un caos?

Yo creo que seria conviente hacerle caso a los cientificos "progres". Si ellos se equivocan, que es lo peor que puede pasar? Ahora, si ellos resultan que tienen razon, las consecuencias podrian ser funestas para todos...
Como dice el refran, hombre precavido vale por dos.

lunes 14 de mayo de 2007

Asco

Asco me dan todo los politicos.
Asco me da el corrupto de Kirchner, y su sequito de ministros infames.
Asco me da Anibal Fernandez, que nunca demostro ninguna virtud y solo dice pelotudeses.
Asco me da Menem, corrupto, con su mayoria automatica y su asquerosa convertibilidad, que vendio todo y nos dejo endeudados.
Asco me da De la Rua, que nos llevo el pais al caos y nunca fue capaz de hacer una autocritica.
Asco me dan todos los politicos de argentina, que en el mejor de los casos, son ineficientes y en el peor de los casos, ineficientes y corruptos.
Asco me dan todos los jueces de Argentina, que cobran sueldos altisimos y se niegan a pagar el impuesto a las ganacias como el restro de los Argentinos.
Asco me dan todos los diputados, senadores, legisladores nacionales, provinciales y municipales, que cobran fortunas, tiene asegurada su muy buena jubilacion y no hacen otra cosa que robar y decir pelotudeses.
Asco me dan todos los hijos de puta que cobran jubilacion de privilegio, algunos solo por haber estado 6 meses como funcionarios.
Asco me da quienes cobran y cobraron dinero de "gastos reservados".
Asco me da la derecha Argentina, que solo se ocupo de defender sus propios intereses y cagarse en el resto del pais.
Asco me da la izquierda Argentina, con su discurso vacio.
Asco me dan los peronistas, que son una mafia enquistada en este pais.
Asco me dan los radicales, que siempre con buenas intenciones y solo hacen desastres.
Asco me dan los falsos economistas liberales argentinos, que solo se preocupan del liberalismo economico, pero no les importa si estamos en una dictadura.
Asco me dan aquellos que culpan a los EEUU y el FMI de todos nuestros males.
Asco me dan aquellos que no toleran y califican de "zurdo" y "antinorteamericano" a cualquier critica hacia ese pais.
Asco me dan los militares, que dieron 6 golpes de estado en 50 años, siempre para "salvar a la patria".
Asco me dan Montoneros y ERP que mantaban y secuestraban empresarios para hacer la revolucion que nadie les pidio.
Asco me da Firmenich, que vive en España dando clases y no se hace cargo de nada.
Asco me da Santucho, que murio en su ley, pero mientras vivio, fue un asesino "revolucionario".
Asco me da quienes defienden a estos hijos de puta.
Asco me da Videla, Massera y cia, que asesinaron, torturaron e hicieron desaperecer gente, para "salvar al pais del comunismo".
Asco me da quienes defienden a estos hijos de puta.
Asco me dan los periodistas comprados.
Asco me dan los periodistas que alentaban los golpes de estado y ahora se hacen los democraticos.
Asco me dan los Alsogaray, siempre garcando.
Asco me dan los Martinez de Hoz, siempre garcando.
Asco me dan los Aleman, siempre garcando.
Asco me dan los nazis.
Asco me dan los nazis disfrazados de "antisionistas", que no tienen las pelotas para adminitir su nazismo.
Asco me dan aquellos judios que son incapaces de hacer una critica hacia un pais como Israel y defienen a hijos de puta como Sharon o el muro con Palestina.
Asco me da los que evaden impuestos.
Asco me da los que tienen empleados en negro.
Asco me da los que andan por la ruta a 180 KM/h o corren picadas y se creen que "manejan bien". No por nada somos el pais como mayor indice de muertes por accidentes de transito EN EL MUNDO.
Asco me da los que se hacen los dormidos y no le dan el asiento del colectivo cuando corresponde a una embarazada o discapacitado.
Asco me da los "estudiantes" de la UBA que van a la facultad solo a hacer politica.
Asco me da los hijos de puta que secuestran.
Asco me da los hijos de puta que asesinan.
Asco me da Chaban que por unos pesos de mierda, hizo que se murieran cientos de chicos.
Asco me da algunos padres y victimas de Cromagñon, incapacez de hacer una autocritica y que no consideran responsable a quienes tiraron la bengala esa noche.
Asco me da el idiota que tiro la bengala.
Asco me dan los patovicas, llenos de musculo y poca cabeza, que solo saben golpear a los pibes.
Asco me dan los barrabravas, cuyo maximo objetivo pareciera ser robarle la bandera a la otra hinchada y pelearse entre ellos por nada.
Asco me da Di Zeo.
Asco me da Alan Schlenker.
Asco me da Nina Peloso, que de piquetera termindo metiendose en la farandula y bailando en el programa de Tinelli.
Asco me da D'Elia, ex piquetero, ex funcionario publico y ahora defensor de Iran.
Asco me dan los policias corruptos, mafiosos y asesinos.
Asco me dan los que en la epoca del corralito, coimeaban para sacar sus dolares ilegalmente.
Asco me dan los que coimean a la policia, para que no les ponga la multa.
Asco me dan los policias que aceptan estas multas.
Y vos, no sentis asco?

viernes 11 de mayo de 2007

GUID en SQL Server es bueno o malo?

Desde la version 7.0 (o 2000, la verdad no recuerdo), SQL Server incorpora el campo Uniqueidentifier, que es un campo computado, que suele generar un GUID (Global Unique Identifier). La caracteristica de este campo, que mediante la funcion NEWID, genera un codigo de 128 bits unico en todo el espacio y universo conocido por el hombre.
La pregunta del millon, es para que demonio queremos hacer algo asi?
Principalmente para identificar uniquivocamente un registro de otro, o sea, ser la clave primaria de la tabla.
El problema que este tipo de campos, es cuando se usa mal. El GUID es ideal en un Datawharehousing, con tablas enormes de mas de 4 mil millones de registros, donde el campo Identity no nos sirve mas, o en replicaciones de tablas con un volumen enorme. En estos casos, GUID puede ser la mejor opcion (y tal vez, la unica).
El tema pasa cuando se quiere reemplazar en bases "normales" el uso de Identity por GUID para solucionar los problemas de replicacion que tienen los Identity.
Bueno, es una PESIMA idea.
Y voy a enumerar los motivos:

  • Costo de I/O: En primer lugar, un campo Uniqueidentifier ocupa 16 bytes contra 4 bytes de un int. En una base de datos de 10 millones de registros, esto significa 8 megas de diferencia. Y como 95% probable que este campo sea tambien la PK de la tabla, el indice tambien ocuparia 8 megas mas. Con lo cual, tendriamos 16 megas de diferencia entre una tabla con un campo GUID y otra con un Identity. El problema no pasa por el espacio en disco, que hoy en dia es baratisimo, sino por el costo de I/O que representa esto. Recordemos que las operaciones de I/O son las mas lentas en una base de datos.
  • Costo de Insercion: Generalmente los campos GUID e Identity son PK y en su mayoria son un clustered index. La caracteristica de este tipo de indice, es que orden fisicamente la pagina de datos segun el valor del indice. Si tenemos un indice que se incrementa secuencialmente esto no es ningun problema, ya que el orden es automatico. Ahora, si tenemos valores aleatorios, que es el caso del GUID, estamos fritos. Porque cada vez que insertamos un registro, el SQL tiene que insertar de manera ordenada este registro, lo que genera un overhead y page spliting impresionante. Insertar un campo cuyo cluster index es un GUID tiene un costo ALTISIMO. Una solucion que que se incorporo recien en el SQL2005 es la funcion NEWSEQUENTIALID, que lo que hace es generar GUID secuenciales (en realidad no son secuenciales, sino mayores al ultimo generado), lo que nos evita los page spliting. Con lo cual, si vas a usar GUID y SQLServer 2005, USA ESTA FUNCION!!!
  • Debugueo: Bueno, esto no es un problema tanto a nivel performance, sino logico. Si tenemos que debuguear con un campo Identity, en el peor de los casos, nos tenemos que acordar 10 numeros, pero en la enorme mayoria de los casos, cuando debugueamos lidiamos con campos identity menores a 1.000.000 (generalmente), que es mas facil de recordar. En cambio, con un campo GUID SIEMPRE vamos a estar lidiando con una secuencia de numeros y letras enorme que nunca vamos a recordar.
El sito SQL-Server-Performance tiene unos benchmarks al respecto:
http://www.sql-server-performance.com/zn_guid_performance.asp

Conclusion: Si estamos preocupados por la performance de la base de datos, usar GUID no es la mejor solucion.

lunes 7 de mayo de 2007

Joe Baxter

Entre tantos personajes curiosos que ha dado la historia Argentina, sin lugar a dudas, Joe Baxter es uno de ellos.
Escuche hablar por primera vez de este individuo, cierta que vez discutia con un nazi en un foro (ven que siempre se aprende discutiendo...). Googleando por internet, no encontre mucho. Solo que fue militante de tacuara y pocos datos mas.
La casualidad (o no tanta) dio que justo en esa misma epoca, dos periodistas (Alejandra Dahdan y Silvina Heguy) publicaron una biografia sobre este personaje.

Voy a hacer un pequeño resumen de su vida:
  • En su adolescencia milito en la UNES (Union Nacionalista de Estudiantes Secundarios). Que era algo asi, como una agrupacion de estudiantes nazis, catolicos y nacionalistas.
  • Luego con otros compañeros de la UNES, funda Tacuara, conocida a principios de los 60 como una agrupacion originalmente catolica y antisemita. Aunque en realidad fue muchisimo mas que eso.
  • Mas tarde (a los 22), despues de una transformacion ideologica, Baxter con un grupo de tacuaristas se separa y crean el MNRT (Movimiento Nacionalista Revolucionario Tacuara). De corte peronista.
  • En 1963, el MNRT realiza el famoso asalto al policlinico bancario, donde matan a 2 personas y se llevan una fortuna. Fue un escandalo en su epoca y es considero el primer ataque guerrillero urbano de la Argentina.
  • En el interin, Baxter se da el lujo de ir a España y conocer a Peron, para luego hacer un miniviaje por Argelia, donde es arrestado y gracias a sus contactos con Peron, liberado.
  • A los 23 años de ve obligado a viajar al Uruguay, porque la policia lo busca por el asalto al policlinico.
  • Como tenia una vida aburrida, decide hacer una gira mundial por España (y ver nuevamente al General), luego se fue a Vietnam donde lucho contra los norteamericanos, siendo condecorado por el mismisimo Ho Chi Min.
  • En Uruguay, siguiendo su estilo tan pacifico, decide participar en la formacion de los Tupamaros, que fueron una organizacion guerrillera uruguya.
  • Se pelea con los Tupamaros (que lo acusan de cobarde) y viaja a la cuba de Fidel.
  • Mas tarde, cumpliendo los 25 años, decide que era hora de conocer la China Maoista.Se embarca con otros compañeros para China, para ser instruidos en la guerrilla revolucionaria.
  • Luego vuelve a Cuba, se casa y tiene una hija.
  • Pero como los cubanos se empezaron a cansar de Baxter, el decide visitar Paris, en pleno Mayo Frances, y conocer a un tal Mario Santucho, futuro lider de la ERP.
  • Despues de todo esto, vuelve a la Argentina (clandestinamente), se une al PRT y junto con Santucho y otros militantes, crea la ERP (Ejercito Revolucionario del Pueblo).
  • Mas tarde, se pelea con la gente del ERP y autoexilia en la Chile de Allende.
  • Pero viendose venir el golpe de Pinochet, se embarca para Francia.
  • Joe Baxter muere un misterioso accidente aereo en Francia en 1973, con tan solo 33 años.
Fundo Tacuara, se pelea con la gente de Tacuara y crea el MNRT, se exilia en Uruguay, conoció a Peron en España, fue arrestado en Argelia, lucho en Vietnam, fue guerrillero en Uruguay, se entreno en China, vivo en Cuba, estuvo en el Mayo Frances, fundo la ERP junto con Santucho y conocio en Chile al presidente Allende.
Pasó ideologicamente del antisemitismo al peronismo y del peronismo al troskismo.
Pocas personas en su vida pueden decir que hicieron tanto como este personaje.
Murio antes de tiempo, antes de ver a la Argentina sucumbida en la peor violencia. De todas maneras, de no morir por ese accidente aereo, probablemente no hubiese sobrevivido a la decada del 70 en Argentina.

Un curioso personaje que a dado la historia Argentina.

jueves 3 de mayo de 2007

El Managment Studio del SQLServer 2005

Una de las cosas nuevas que trajo el SQL Server 2005, fue el reemplazo del Enterprise Manager, por el Managment Studio, que en realidad, es lo mismo pero con otro nombre y mas lindo. Esta nueva IDE del SQL Server, traje cosas piolas, pare para algo que fue reescrito, podria ser muchisimo mejor.
Empezemos por las mejoras:
1) Integracion del viejo Analizer dentro de la misma IDE. GRAN VENTAJA. Podemos trabajar con los objetos mucho mas faciles. El poder ejecutar codigo o editar objetos de la base en distintas solapas, pero dentro de una misma ventaja es muchisimo mas comodo.
2) Poder abrir en modo de diseño varias tablas simultaneamente es muy practico.

Hasta ahi las ventajas (importantes) sobre la vieja version. Si tuviera nada mas que eso solo, ya sera un avance. Pero los chicos de MS tenian que mandarse sus cagadas y transformar una buena IDE en algo no tan bueno.
Voy a enumerar los retrocesos con respecto al viejo y querido Enterprise Manager.

1) Si quiero editar un store procedure, tengo que ir boton derecho e ir a la opcion "Modify". ES UNA GRAN MIERDA HACERLO ASI. Lo practico es el tipico dobleclick, como antes y como es logico hacerlo. Ahora si hago doble click sobre un SP, simplemente me muestra los parametros, que no me sirven para nada.
2) Intentaron ver los datos de la tabla e modificar un valor booleano? Antes era 1 o 0. Ahora hay que escribir True o False. OK, estamos de acuerdo que uno no deberia andar tocando una tabla en forma directa, pero si desarrollamos, nos puede pasar. Porque tenemos que escribir True o False???
3) Para mi la mas molesta. que garcha hicieron con el plan de ejecucion??? Antes era muy comodo de ver, con iconos bien claros, grandes. Muy entendibles.
Ahora la gente de MS puso unos lindos iconitos degrade, azules y verdes, mas chicos, y resulta muchisimo mas molesta su vista. Y para que???
Supongo que me terminare acostumbrando, pero era necesario cambiar lo que antes estaba bien...
En fin, esperaba algo mas piola por parte de los chicos de MS.
 
Search For Blogs, Submit Blogs, The Ultimate Blog Directory Add to Technorati Favorites