Creencias

Hoy quiero dedicar este espacio para dar una opinión personal sobre la religión y las creencias. Voy a tocar algunos puntos de por que soy ateo, etc.

Primero que nada este es un tema delicado para algunos, por eso tratare de no ofender a nadie, aunque no puedo impedir involucrar gente… Siempre cuando veo por Internet conversiones agnósticas o ateas, se ofende mucho a los religiosos por no considerar que un Dios para un ateo no es lo mismo que para un creacionista o religioso. Creo que en estos bandos debe de haber mas consideración en respetar ciertas creencias, que no es para nada de fácil.

Los primeros Dioses nacen por una necesidad. Primero por la carencia de algún elemento vital (ej. el agua) o por algo importante, tal vez mas importante que algo material (ej. la felicidad). Segundo por la abundancia de ese elemento que antes faltaba. O también en orden inverso. En este contexto la gente se empieza a preguntar ¿por que pasa esto? y la necesidad de resolver el problema es tan grade que se empieza a atribuir a cosas que no tienen por que ser ciertas.

También se cree que los primitivos inventaban dioses para mantener unida una tribu, porque en ella ya no había gente de la misma sangre (al extenderse la tribu), decían que todos habían sido creados por un dios o varios dioses.

Generalmente nace primero el monoteísmo, producto de un elemento en andancia y luego en carencia o viceversa. En la unión de uno o mas grupos surge el encuentro de Dioses diferentes con diferentes atributos, según la cultura. Luengo después de un tiempo triunfa el monoteísmo sobre el politeísmo, generalmente por inventar un dios con características mas globales, ej: “El Dios de todos los Dioses”

La ética en los Dioses es ideal, un Dios ético triunfa sobre uno carente. Los Dioses éticos son mas amigables, ofrecen buenos tratos como el cielo, para personas que intentan ser éticas y un castigo para los malos -el infierno-. Estos Dioses te sacan de los problemas, levantandote el ánimo, animándote a seguir…

La fe surge por que da resultado creer en un Dios Ej: “Dios me curo de esta enfermedad” o también “Gracias a Dios que estoy bien”. Dado que se atribuye todo a Dios incluso las injusticias o cosas malas Ej: “Dios quiso que así fuera”, “Que se haga la voluntad de Dios”. El problema de la fe es que es un circulo vicioso del cual es difícil salir, ej: “Tengo fe de que voy a estar bien”. Se puede esperar años a estar bien sin poner en duda la fe, existirán momentos de desesperación pero es conveniente tener fe, es preferible tenerla que no tenerla. Pero en la vida si se está mal es mas probable luego estar bien, que estar el resto de la vida mal. El humano fue hecho para estar bien y para afrontar todo tipo de desafíos, adaptarse al medio.

Los milagros benefician a uno o mas Dioses, los milagros existen mucho antes de que existirán los Dioses y son por que no se sabe como resulto el beneficio. No todo se puede saber en esta vida y no podemos pasar la vida atribuyendo todo a un Dios.

Se dice de que estamos hechos a imagen y semejanza de Dios pero es todo lo contrario, por que son los Dioses que están hechos a imagen y semejanza de los humanos, estos tienen las mismas emociones que nosotros, alegría, ira, felicidad, etc. Dios es como nosotros pero con una pequeña diferencia es un Dios ¿por que Dios tiene los mismos sentimientos que nosotros? ej: “Dios se enojo”, “Dios está feliz”. Ej: “Dios nos hizo a imagen y semejanza de el” ¿Y Darwin y sus teorías, que es tan valida para la ciencia?, ¿nunca fuimos monos?.

Siempre se idealiza a Dios o Dioses, muy a menudo se dice que existe sin tener fundamentos, se dice te está observando sin tener fundamentos, se dicen cosas que salen en la biblia pero que ni siquiera son necesarias leerlas para saberlas. Se guían por el sentido común, el sentido común recrea el Dios.

Dios creo la vida… Hay experimentos que señalan que la vida se puede crear en un laboratorio, mezclando ciertos elementos no orgánicos y a una temperatura adecuada. Por eso se dice que es iluso creer que no existe vida en otros planetas, por que hay mas de un par de planetas en la vía láctea con condiciones mejores para la existencia de vida.

¿Y de que sirve la religión?, para afrontar momentos difíciles, la perdida de un ser querido, una trajedia. Cosas de las cuales no estamos muy preparados. Cuando el tiempo empieza a alcanzar a una persona, esta tiende a pensar de que si no hizo mucho mal en el mundo y se arrepintió de lo malo que hizo, va a tener un puesto guardado en el cielo.

La otra vez le pregunté a un amigo, ¿cual es la razón principal de porque crees en un Dios? y me contesto: es por que alguien nos tiene que juzgar en la vida.

El humano debe especular cuando no tiene la respuesta de algo y sobre todo de algo tan candente como la existencia de Dios. Si nos fijamos todos especulamos muchas cosas, decimos cosas que no tiene sentido, fácilmente.

Frases

Es fácil juzgar sin pensar

Cuando no tengamos problemas, los inventaremos

Después del perdón no debería haber rencor

A menudo la razón de una persona se justifica con orgullo

Somos pequeños, que creemos estar al tanto de las cosas grandes

Temor, algo que no necesitamos si la razón dice que puedes avanzar

Muchas veces el camino difícil es el mejor, pensando si me sirve

¿Que tiene lo que quiero de real?, ¿lo puedo solucionar?

Aprovecha las cosas que te hagan feliz

Piensa en lo que necesitas y si de veras lo necesitas

¡Claro que es bueno creer en lo que no vez!, justifica muchas cosas…

La verdad es solo un dato

No hay bien sin mal

Lo pobres odian a los ricos y los ricos alaban a los pobres

Si niegas tu pasado cometerás los mismos errores

Ejemplo MonoDevelop: GtkDragAndDrop

Drag and drop en MonoDevelop

Hace tiempo estuve buscando pero no encontré documentación en español acerca del Drag And Drop (arrastrar y soltar) en Gtk-Sharp. Al final, consiente de los ejemplo que trae Gtk-Sharp no había encontrado uno que tratase el Drag And Drop, pero después de un tiempo lo volví a revisar y existe un ejemplo que esta en: /usr/share/gtk-sharp2-examples/TestDnd.cs (teniendo instalado Gtk-Sharp). La verdad es que me considero novato en el mundo de Mono y encontré que el ejemplo era demasiado complejo para mi asi que lo acorte, rescate las partes mas importantes del código y elimine lo no tan importante, lo adapte para que funcione en MonoDevelop. Si han leido mi blog sabrán de mi filosofía de los ejemplos, creo que estos deben ser cortos para explicar cosas esenciales.

En el ejemplo GtkDragAndDrop hay solo una ventana que contiene un botón con un label, para mostrar como se arrastra un botón a un label.

Lo mas importante:

Table table;

Label label;

Button button;

table = new Table (1, 2, false);

this.Add (table);

label = new Label (“Drop Here\n”);

// Prototipo: static void DestSet (Widget widget,

// DestDefaults flags, TargetEntry[] targets,

// Gdk.DragAction actions)

Gtk.Drag.DestSet (label, DestDefaults.All, target_table,

DragAction.Copy | DragAction.Move);

// Evento que recibe el boton “button”, para arrastrarlo hacia

// el label “label”

label.DragDataReceived += new DragDataReceivedHandler

(HandleLabelDragDataReceived);

// Posicionar a “label”

table.Attach (label, 0, 1, 0, 1, AttachOptions.Expand |

AttachOptions.Fill, AttachOptions.Expand |

AttachOptions.Fill, 0, 0);

button = new Button (“Drag Here\n”);

// Prototipo: SourceSet(Widget, Gdk.ModifierType, TargetEntry[], Gdk.DragAction)

Gtk.Drag.SourceSet (button, Gdk.ModifierType.Button1Mask |

Gdk.ModifierType.Button3Mask, Table table;

Label label;

Button button;

table = new Table (1, 2, false);

this.Add (table);

label = new Label (“Drop Here\n”);

// Prototipo: static void DestSet (Widget widget,

// DestDefaults flags, TargetEntry[] targets,

// Gdk.DragAction actions)

Gtk.Drag.DestSet (label, DestDefaults.All, target_table,

DragAction.Copy | DragAction.Move);

// Evento que recibe el boton “button”, para arrastrarlo hacia

// el label “label”

label.DragDataReceived += new DragDataReceivedHandler

(HandleLabelDragDataReceived);

// Posicionar a “label”

table.Attach (label, 0, 1, 0, 1, AttachOptions.Expand |

AttachOptions.Fill, AttachOptions.Expand |

AttachOptions.Fill, 0, 0);

button = new Button (“Drag Here\n”);

// Prototipo: SourceSet(Widget, Gdk.ModifierType, TargetEntry[], Gdk.DragAction)

Gtk.Drag.SourceSet (button, Gdk.ModifierType.Button1Mask |

Gdk.ModifierType.Button3Mask,

target_table, DragAction.Copy | DragAction.Move);

// Posiciona a “buton”

table.Attach (button, 0, 1, 1, 2,

AttachOptions.Expand | AttachOptions.Fill,

AttachOptions.Expand | AttachOptions.Fill, 0, 0);

// Conecta el evento que envia un dato desde “button”

button.DragDataGet += new DragDataGetHandler (HandleSourceDragDataGet);

this.ShowAll();

Build ();

target_table, DragAction.Copy | DragAction.Move);

// Posiciona a “buton”

table.Attach (button, 0, 1, 1, 2,

AttachOptions.Expand | AttachOptions.Fill,

AttachOptions.Expand | AttachOptions.Fill, 0, 0);

// Conecta el evento que envia un dato desde “button”

button.DragDataGet += new DragDataGetHandler (HandleSourceDragDataGet);

this.ShowAll();

Build ();

Acá el ejemplo de GtkDragAndDrop y el de tesdnd que viene con los ejemplos de Gtk-Sharp

GtkDragAndDrop
TestDnd

Todo tiene una solución

<!– @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } –

Es verdad, o por lo menos lo creo. Había pasado por alto algo que yo mismo había analizado, era si todos los problemas tienen solución. Puedo rescatar algo de mis ensayos casi esotéricos, que escribían antes, me cito a mi mismo:

Creo que el “Problema” en general, aplicándolo a todos los problemas, tienen las mismas soluciones. Creo que son cuatro, lo mostrare de manera secuencial: la aceptación, la resolución, la elección, la no-resolución. La aceptación, la utilizamos cuando vemos que el problema no tiene solución, o cuando, no queremos efectuar la resolución, este es el que le pone tope la solución, al igual que la no-resolución. La resolución, consiste en resolver el problema. La elección consiste en elegir una de las soluciones, cuando las hay. La no-resolución, esta le pone un tope a la solución, al igual que la aceptación; la no-resolución puede ser temporal o no. La solución es un proceso repetitivo, hasta que encuentra una de las dos salidas, la aceptación y la no-resolución. Es más fácil pensar, que el problema solo tiene dos soluciones, son: la aceptación y la resolución, son los más importantes. “

No es fácil de comprender en la forma como lo dije, pero ahora lo voy a corregir y lo voy a simplificar:

    • El “problema” en general tiene las mismas soluciones, creo que son dos.

      • La aceptación.

        • Es cuando aceptamos una solución al problema, o no queremos seguir efectuando la resolución y lo dejamos en margen de duda.

      • La resolución.

        • Es cuando queremos agregar mas datos al problema para llegar a una aceptación al problema.

No se si esto será perder el tiempo :S

Ejemplo MonoDevelop: CairoEjemplo002

Ahora un ejemplo recién un poco mas interesante en Mono.Cairo, que dibuja una X de colores sobre una ventana, luego esta misma imagen la pasa a un archivo de imagen PNG. Ahora la parte mas interesante:

// MainWindow.cs

using Cairo;
using System;
using Gtk;

public partial class MainWindow: Gtk.Window
{
	public MainWindow (): base (Gtk.WindowType.Toplevel)
	{
		Build ();
	}

	protected void OnDeleteEvent (object sender, DeleteEventArgs a)
	{
		Application.Quit ();
		a.RetVal = true;
	}

	protected virtual void OnButton1Clicked (object sender, System.EventArgs e)
	{
		Cairo.ImageSurface Imsf = new ImageSurface(Format.ARGB32, 200, 200);
		using (Cairo.Context Ctx = new Cairo.Context(Imsf)) {

			Ctx.LineWidth = 20;

			Ctx.SetSourceRGB(0,0,1); //Color Azul
			Ctx.MoveTo(0,0);
			Ctx.LineTo(100,100);
			Ctx.Stroke();

			Ctx.SetSourceRGB(0.66,0.44,0.33); //Color Cafe
			Ctx.MoveTo(100,100);
			Ctx.LineTo(0,200);
			Ctx.Stroke();

			Ctx.SetSourceRGB(0,1,0); //Color Verde
			Ctx.MoveTo(100,100);
			Ctx.LineTo(200,200);
			Ctx.Stroke();

			Ctx.SetSourceRGB(1,0,0); //Color Rojo
			Ctx.MoveTo(100,100);
			Ctx.LineTo(200,0);
			Ctx.Stroke();

			Imsf.WriteToPng("Dibujo.png");
		}
		Gtk.Window Win1 = new Gtk.Window("Dibujo");

		Gtk.Image Img1 = new Image("Dibujo.png");
		Console.WriteLine("Se a creado un archivo Dibujo.png");

		Gtk.HBox hbox = new HBox();
		hbox.Add(Img1);

		Win1.Add(hbox);
		Win1.ShowAll();
	}
}

 

Entonces:

  • Un objeto del tipo Cairo.ImageSurface es en el cual se dibuja.

  • Se podría decir que un objeto Cairo.Context, son las herramientas para dibujar en una surface, como por ejemplo un Cairo.ImageSurface o en un Cairo.Surface.

  • El metodo Cairo.Context.Stroke() dibuja según argumentos establecidos por otros metodos como por ejemplo: MoveTo(), LineTo(), LineWidth()

 

Una así queda:

 

Descarga aqui el ejemplo. [enlace roto]

Por favor avisenme si existe algún error ::)

Ejemplo MonoDevelop: CairoEjemplo01

A continuación voy a presentar un ejemplo simple que muestra como insertar un texto en una clase Cairo.ImageSurface, para luego guardarlo en un archivo PNG. Esta basado en la librería Mono.Cairo versión 2.0.0. Este ejemplo lo copie de MonoDoc y yo solamente lo adapte para que funcionase en MonoDevelop 1.0.

Aquí la parte en la que me quiero enfocar del código:


// Crear una clase Cairo.ImageSurface pasándole como argumentos el formato
// (Format.ARG32), el ancho de la imagen (240) y el alto (80)
Cairo.ImageSurface surface = new Cairo.ImageSurface (Format.ARGB32, 240, 80);

// Primero se crea una clase Cairo.Context y se le añade como parámetro la
// clase creada anteriormente, después se usa el espacio de nombre Cairo.ctx
// solamente dentro de un bloque.
using (Cairo.Context ctx = new Cairo.Context (surface))
{
// Se Selecciona el Font
ctx.SelectFontFace (“serif”, FontSlant.Normal, FontWeight.Bold);
ctx.SetFontSize (32.0); // El tamaño del Font

// Selecciona el color Azul
ctx.SetSourceRGB (0, 0, 1);

// Dibujar
ctx.MoveTo (10, 50);
ctx.ShowText (“Hello, World”);

// Crea una imagen en el directorio del ejecutable o en la carpeta personal (home/usuario)
surface.WriteToPng (“test2.png”);

Console.WriteLine(“Se a creado un archivo test2.png”);
}

Build ();

Esta imagen crea Cairo:

Aquí el código completo: CairoEjemplo01

El mejor compresor de archivos

Un día de ocio quise ver cual de los compresores de Ubuntu 8.10 era el mejor y si el tal compresor WinRar era el mejor para comprimir archivos. Los compresores disponibles en Ubuntu son: “tar.lzma”, “tar.bz2”, ”tar.gz”, “cbz”, “jar”, “zip”, “ar”, “tar”. Los puse a prueba a todos, mas el famoso “rar”, quise ver cual de todos es el que mas comprime, en este caso archivos html en mayoría que tengo en una carpeta.

Estos son los resultados:

tar.lzma

18,5 MiB

tar.bz2

26,4 MiB

tar.gz

34,9 MiB

rar

35,9 MiB

cbz

38,7 MiB

jar

38,7 MiB

zip

38,8 MiB

ar

56,0 MiB

tar

81,6 MiB

El tamaño de la carpeta [Html] es de 105,2 MiB

Aquí esta la imagen de los archivos comprimidos

Saludos