Aug 26

Si te preguntas seguido porqué la mayoría de la gente sigue usando Explorer, esta es una buena oportunidad para ayudar a difundir Firefox.

Se acaba de lanzar el Mozilla Campus Reps 2008-09, un programa que nació el año pasado para tratar de promover el uso de Firefox en escuelas y universidades de todo el mundo.

La gente de Spread Firefox están buscando gente en Argentina que tengan ganas de colaborar en el proyecto y para hacerlo sólo tienen que registrarse. No es necesario ser experto en inglés aunque seguramente eso facilitará las comunicaciones con los representantes de Mozilla.

Entre los beneficios que da sumarse al programa se pueden enumerar desde tener experiencia directa en marketing, aprender sobre comunicación, tecnología, software libre y navegadores, recibir una carta de referencia de Mozilla para poner en el CV y hasta la chance de convertirte en un pasante en el area de marketing.

Fuente

Aug 21

Holas, hoy voy a hablar sobre el método de Ordenación rápida “QUICKSORT”.
Bueno hoy en la Universidad para una materia, teníamos que que dar una explicación sobre este método, así que voy a poner la información básica, código, ejemplos, etc.. Sobre el mismo, tal vez a alguien le sirve.
Bueno comencemos con un poco de teoría:


El ordenamiento rápido (quicksort en inglés) es un algoritmo basado en la técnica de divide y vencerás, que permite, en promedio, ordenar n elementos en un tiempo proporcional a n log n. Esta es la técnica de ordenamiento más rápida conocida. Fue desarrollada por C. Antony R. Hoare en 1960. El algoritmo original es recursivo, pero se utilizan versiones iterativas para mejorar su rendimiento (los algoritmos recursivos son en general más lentos que los iterativos, y consumen más recursos).
El algoritmo fundamental es el siguiente:
• Elegir un elemento de la lista de elementos a ordenar, al que llamaremos pivote.
• Resituar los demás elementos de la lista a cada lado del pivote, de manera que a un lado queden todos los menores que él, y al otro los mayores. En este momento, el pivote ocupa exactamente el lugar que le corresponderá en la lista ordenada.
• La lista queda separada en dos sublistas, una formada por los elementos a la izquierda del pivote, y otra por los elementos a su derecha.
• Repetir este proceso de forma recursiva para cada sublista mientras éstas contengan más de un elemento. Una vez terminado este proceso todos los elementos estarán ordenados. Como se puede suponer, la eficiencia del algoritmo depende de la posición en la que termine el pivote elegido.
• En el mejor caso, el pivote termina en el centro de la lista, dividiéndola en dos sublistas de igual tamaño. En este caso, el orden de complejidad del algoritmo es O(n•log n).
• En el peor caso, el pivote termina en un extremo de la lista. El orden de complejidad del algoritmo es entonces de 0(n²). El peor caso dependerá de la implementación del algoritmo, aunque habitualmente ocurre en listas que se encuentran ordenadas, o casi ordenadas.
• En el caso promedio, el orden es O(n•log n).
No es extraño, pues, que la mayoría de optimizaciones que se aplican al algoritmo se centren en la elección del pivote.

Ahora manos a la obra, el Pseudocódigo:
función quicksort
i=l
j=r
x=a[(l+r) div 2]
mientras i =< j hacer
mientras a[i]<x hacer
i=i+1
fin_mientras
mientras a[j]>x hacer
j=j-1
fin_mientras
si i =< j entonces
aux= a[i]
a[i]= a[j]
a[j]= aux
fin_si
fin_mientras
fin_funcion

Ahora el código en basic: (tiene definido un vector de pruebas)

dim a(7)
a(1)=18
a(2)=11
a(3)=27
a(4)=88
a(5)=9
a(6)=4
a(7)=16
call quickSort 1,7

for i=1 to 7
print a(i);" "
next i

sub quickSort izq,der
i=izq
j=der
pivote=a(int((izq+der)/2))
do
while a(i)<pivote
i=i+1
wend
while a(j)>pivote
j=j-1
wend
if (i<=j) then
aux=a(i)
a(i)=a(j)
a(j)=aux
i=i+1
j=j-1
end if
loop while  i<=j
if izq<j then call quickSort izq,j
if i<der then call quickSort i,der
end sub

Por ultimo el código en C: (no podía faltar):

#include <conio.h>
#include <stdio.h>
#include <stdlib.h> //libreria con el prototipo de la funcion rand()

int quicksort_iterativo(int A[],int ini,int fin){
int _ini_,_fin_,pos,aux,band;
_ini_=ini;
_fin_=fin;
pos=ini;
band=1;
while (band==1){
band=0;
while((A[pos]<=A[_fin_])&#038;&#038;(pos!=_fin_)){
_fin_--;
}
if (pos!=_fin_){
aux=A[pos];A[pos]=A[_fin_];
A[_fin_]=aux;
pos=_fin_;
while ((A[pos]>=A[_ini_])&#038;&#038;(pos!=_ini_)){
_ini_++;
}
if(pos!=_ini_){
band=1;
aux=A[pos];
A[pos]=A[_ini_];
A[_ini_]=aux;
pos=_ini_;
}
}
}
if ((pos-1)>ini){
quicksort_iterativo(A,ini,pos-1);
}
if (fin>(pos+1)){
quicksort_iterativo(A,pos+1,fin);
}
return 0;
}

void main(){
int A[10],c;
clrscr();
randomize();

for(c=1;c<=10;c++){
A[c]=rand()%10;
printf("%d, ",A[c]);
}

printf("\nValores ordenados: \n");
quicksort_iterativo(A,1,10);

for(c=1;c<=10;c++){
printf("%d, ",A[c]);
}
getch();
}

Bueno para terminar, no sacamos un 10 :D y les dejo aquí los links para que se descarguen si quieren, una presentación con un ejemplo y el código en basic.
Codigo Basic
PPS

Espero que les sea útil

Saludos dag

Parte de la informacion extraida de: Libro Fundamentos de programación – Luis Joyanes Aguilar, Mis Algoritmos

Aug 20

Utilizando este programa podremos por ejemplo manejar nuestros mensajes SMS (crear, guardar y enviar mensajes), administrar nuestra agenda agregando, editando y borrando contactos, mover archivos y administrar los ringtones entre otras funciones.

Estuve probando este software y la verdad que me funcionó de maravilla con mi teléfono Motorola V360. Se conecta perfectamente tanto por USB como por Bluetooth y es muy fácil de utilizar.

Mirando este listado, puedes ver si tu teléfono es compatible con esta aplicación.

Enlace: Wammu
Descarga:
para linux Ubuntu/Debian | otras distros

Fuente

Aug 19

Aug 14

La seguridad es una de las principales características de Linux pero descuidarla y olvidarse de pequeños detalles es algo mas frecuente de lo que se cree. Estos son 10 maneras de mantener a Linux de escritorio seguro (servidor va mucho más allá):

1. Cerrar sesión o bloquear pantalla. Cuando se termine de trabajar, cerrar sesión para evitar que otros puedan entrar al sistema y mas en entorno multiusuario. Si se necesita que otros aplicaciones sigan ejecutándose, bloquear la pantalla puede ser una buena opción.

2. Tener los permisos correctamente. muchas veces nos vemos tentado a hacer un chmod 777 para que funciona una aplicación, lo ideal es solo dar los permisos necesarios y no permisos extras.
3. La fortaleza de la contraseña. Una buena contraseña es recomendable en muchos aspectos especialmente en distribuciones como Ubuntu que ofrece mucho más acceso a los usuarios.

4. Aplicaciones para compartir archivos son un riesgo. Tal vez no lo sea tanto para compartir archivos en la casa con la familia pero si lo es para el trabajo. Personas ajenas pueden tener acceso a información delicada para usted y para su empresa. Por lo tanto no se recomienda instalar aplicaciones para compartir archivos, y si se hace asegurarse de configurarlas muy bien.

5. Actualizar con regularidad. Aprovechar la rapidez con que en Linux se corrigen fallan de seguridad e instalar las actualizaciones en el momento en que se presenten.

6. Instalar un Antivirus. Mas que por la seguridad del propio Linux es por la seguridad de otros SO en el envio de algún archivo infectado.

7. Hacer uso de SELinux. Es una colección de parches que modifican el núcleo del sistema operativo Linux, fortaleciendo los mecanismos de control.

8. /home en una partición diferente. Al encontrarse el directorio /home en su ubicación estandar (en el directorio raiz del sistema), cualquiera que acceda a tu máquina sabrá de inmediato donde están tus datos. Además en una perdida de sistema o formateada no hay problema porque los datos están en una partición diferente.

9. Dejar los servicios innecesarios. Si tu equipo no actúa como servidor entonces deshabilite ciertos servicios como httpd, ftpd y sshd.

10. evitar el exceso de confianza. Tal vez el más importante, como diría Fyodor: “Los ataques por e-mail y vía Web son con frecuencia multiplataforma. Los usuarios de Linux son tan vulnerables como los de Windows al phishing y otras formas avanzadas de fraude”

Formas sencillas pero valiosas de mantener un equipo con Linux seguro. Si consideras que faltó alguna compártela en los comentarios.

Fuente

Aug 13

1. No se cuelga

Linux es conocido como un sistema operativo muy confiable. Si bien Linux fue originalmente diseñado para servidores y frameworks, actualmente eso cambio y cada vez es mas común ver un Linux en una PC de escritorio. Incluso artefactos como celulares, PDA’s y hasta TiVo’s utilizan este sistema operativo. Raramente podemos llegar a sufrir algún kernel panic, pero no con la frecuencia con que se cuelgan otros S.O.

2. Muy pocos virus y poco dañinos

Aunque es posible crear un virus para sistemas con Linux, el diseño del sistema hace muy difícil que este logre infectarse. Un usuario local podría causar daño corriendo algún virus en sus sistema, sin embargo esto es un caso muy aislado y no algo que se podria salir de control y expandirse a otros sistemas (como sucede en Windows).

Además, prácticamente todos los distribuidores de anti-virus para Linux ofrecen actualizaciones on-line gratuitas.

3. Independencia del Hardware

Linux fue diseñado y escrito para ser fácilmente portable a diferentes arquitecturas de hardware. Para los usuarios de escritorio, esto significa que Linux ha sido siempre el primer sistema operativo en tomar ventaja de las nuevas tecnologías de hardware avanzadas como ocurrió con los procesadores AMD’s de 64 bits.

4. Libertad de decisión

Linux ofrece total libertad de decisión. Podemos elegir entre miles de programas para solucionar de la mejor manera nuestros problemas informáticos. Por ejemplo, tres conocidos procesadores de texto se encuentran disponibles. Los tres son libres y compatibles con Microsoft Word, pero cada uno ofrece ventajas y desventajas. Lo mismo para los navegadores.

5. Estándares

Linux por si mismo y muchas aplicaciones siguen los estándares abiertos. Esto significa que una actualización en un sistema no hará obsoletos otros sistemas.

6. Aplicaciones, aplicaciones y … aplicaciones

Cada distribución de Linux viene con cientos y probablemente miles de aplicaciones incluidas. Cualquier tipo de software que estes buscando como puede ser Mensajería Instantánea, herramientas de backups, diseño grafico/web, software para programación, etc. seguramente esta incluido en tu distribución de Linux.

7. InterOperabilidad

Cada vez mas computadoras se conectan a Internet. Ningún sistema estaría completo si no incluye herramientas para permitir la interoperabilidad con computadoras corriendo otros sistemas operativos. Una vez mas, Linux es muy firme en esta área.

Linux incluye Samba, un software que permite que Linux haga de cliente en una red sobre Microsoft Windows. De hecho, Samba incluye facilidades para correr tu Linux como servidor de una red con clientes Linux y Windows.

Ademas, Linux incluye software para conectarse a redes Apple y Novell’s Netware. NFS, la tecnología de networking desarrollada por UNIX también esta incluida en el sistema.

8. La Comunidad

Pertenecer a la comunidad Open Source, simplemente no tiene precio.

9. No importa que tan potente sea tu Procesador..

Debido a que Linux fue desarrollado con contribuciones de una comunidad muy diversa, este tiende a ser más prudente en el uso de los recursos del sistema. Podemos instalar distribuciones minimalistas de Linux en equipos prácticamente obsoletos sin problema, incluso en 486’s.

10. Linux es 100% configurable.

Linux realmente es un sistema operativo multi-usuario. Cada usuario puede tener su configuracion individual, todo en la misma computadora. Esto incluye el aspecto del escritorio, que iconos se muestran, que programas se inician automáticamente cuando el usuario se loguea e incluso en que idioma se encuentra el escritorio.

Fuente

Aug 9

Hola, bueno aquí estoy sábado a las 0:33 escribiendo un post, tengo mucho sueño y estoy por acostarme, no doy mas :p, bueno les comento el nuevo proyecto que he encargado y porque, luego de una noche, no recuerdo cual exactamente, necesitaba subir una imagen a internet para pasarle unas cosas a un amigo, entro a imageshack.us y la verdad tardo bastante en cargar, lo primero que hice fue echarle la culpa a mi ISP, que siempre anda para la m…. y se me ocurrió preguntarle a un amigo, y me dijo: “Ami también me nada lento”, bueno una buena para mi isp xD.
Entonces después de analizar la situación, sitio lleno por demás de publicidad y lento, pensé en programar mi propio host de imágenes, en ese momento, solo para uso personas y de amigos, pero después pensé que tal vez con un poco mas de tiempo, podría arreglar el código y hacerlo “seguro”, evitando errores y fallas de seguridad que tenia el sitio, entonces dicho y hecho quedo listo, y bueno, ahora se los presento:
El proyecto se llama TUIMG, dirección temporal y que funcionara siempre http://www.tuimg.com.ar, por ahora esta en español, pero pienso ponerlo en varios idiomas, por ejemplo ingles, francés, etc…
También esta pensado ofrecer una aplicación que permita subir imágenes con un simple “drag and drop”, que a los usuarios registrados le permita subir múltiples imágenes a la ves, que te permita elegir el tiempo de permanencia de las imágenes, borrarlas, redimensionarla, etc… Si tiene  ideas son bienvenidas :o
Esto es todo, espero comentarios de cómo quedo, si pueden ayúdenme a promocionarla, poniendo post en sus blogs, agregándola al blog roll, etc..
Una vez que haga esto, dejen un comentario con el blog :< (espero solo tener al menos uno) donde deberían dejar el link donde “linkearon” Tuimg, ya que en una parte del sitio cada vez que se cargue mostrara el link de los blogs o sitios que nos linkeen.
Bueno cambiando de tema, quería comentar que este fin de semana me pondré con el theme del blog :D lo acomodare o lo cambiare, aun no se :p pero algo voy a hacer :o (¿)

Saludos dag.

Aug 5

Hola, como andan? Hoy dejare un post cortito, porque tengo cosas que terminar. Me veía en la necesidad de poner a descargar muchos links, y lopardo, me dijo que “DownThemAll!” un addon de Firefox, que tiene la opción que al dar click derecho en una pagina te permite descargar todos los links o imágenes que se encuentre en ella, entonces lo instale, y el problema se me genero fue: tener que poner todos los enlaces en una web (con links), pensé que el dreamweaver al pegar las direcciones de los archivos en diseño, les crearía el vinculo/link solo, como no lo hiso, decidí leer y buscar un poco sobre python, que había escuchado que era simple , comencé a escribir el pequeño script y me daba fallas, así que decidí pedir ayuda en el canal #python-es de freenode, y ahí Miuler me ayudo muy gentilmente, y bueno aquí les dejo el script, por si alguien lo necesita para algo:

#!/usr/bin/env python
#Autor: dag
#Mail: dag[arroba]debian-ar[punto]com
#Blog: http://www.virtualdag.org
 from Tkinter import *
 import sys
 if len(sys.argv)>1:
    FileName = sys.argv[1]
    try:
        Source = open(FileName,’r')
        Destination = open(FileName+’.html’,'w’)
        for line in Source.readlines():
        Destination.write(’<a href=”‘+line[:-1]+’”>’+line[:-1]+’</a>\n’)
    except:
        print ‘Error al abrir o intentar guardar el archivo’, FileName
    Source.close()
    Destination.close()
 else:
    print ‘Ha ocurrido un error inesperado.’
    sys.exit()

Un ejemplo seria:
Teniendo un archivo llamado dag.txt que contenga:
http://virtualdag.org/test.rar
http://debian-ar.org/hola.rar
http://lerolero.com/ja.tar
http://www.la.com/un.rar

Al aplicar el script:
daniel@princess:~$ ./txt2link.py dag.txt

Se crearia un archivo llamado dag.txt.html con este contenido:
<a href="http://virtualdag.org/test.rar">http://virtualdag.org/test.rar</a>
<a href="http://debian-ar.org/hola.rar">http://debian-ar.org/hola.rar</a>
<a href="http://lerolero.com/ja.tar">http://lerolero.com/ja.tar</a>
<a href="http://www.la.com/un.rar">http://www.la.com/un.rar</a>

Click aquí para descargar txt2link (tar.gz)
Click aquí para descargar txt2link (rar)

Esto es todo por hoy :o
Saludos dag

Nota: Si les interesa aprender python entren aquí.

Aug 3

Hola, quería comentarles que están disponibles las cuentas de correo @debian-ar.org :D.
A los usuarios que quieran una cuenta envíen un correo a registro[arroba]debian-ar[punto]org, en el cuerpo del correo deberán poner:

Nombre: <Aquí su nombre>
Direccion: <aquí dirección>@debian-ar.org
Contraseña: <Aquí la contraseña que quieran o simplemente la dejan en blanco, se genera una contraseña random y luego ustedes la cambian.>

Las cuentas están hosteadas en google y disponen de 6Gb de espacio, webmail, o acceso a través de pop3 o imap, también podrán acceder a ICalendar, Doc, etc..

Eso es todo, si quieren también en el comentario pueden poner su correo en el formulario de comentario y en el mensaje:

Nombre: <su nombre>
Cuenta: <como quieren el correo>


Y para terminar dejo este código php que vi en el blog de bucio, en un post llamado “PHP LOVE”.
<php
if ($yourlove == true) {
while (isset($me)) {
$myLove = $mylove+YourLove+1
}
} else {
$me = null;
}
?>

Esto es todo por hoy.
Saludos DAG

Jul 28

No recuerdo de donde salió este meme, lo leí y me pareció interesante responderlo (?).
Bueno una tarde cuando estaba conectado en el canal de debian-mx.com, vi que todos tenia blog y pensé: “¿por qué no me creo un blog?”, bueno comente que me estaba por crear un blog y muy gentilmente GNDX me ofreció hosting y bueno, al momento de registrar el dominio tenía ganas de registrar dag.com/.org y estaban ocupados y al pedo como siempre que quiero registrar un dominio y está ocupado me pongo a leer las recomendaciones o posibles dominios que están libres que podría llegar a registrar que dan algunos sitios donde venden dominios, que casi siempre no tienen sentido, leí VIRTUALDAG :o y la verdad me sonó descante y bueno, de ahí salió el nombre de mi blog :P
Espero que respondan este meme si es que no lo han hecho:
th3r0rn, gndx, bucio, c0dex, kakalake, y las personas que lean este blog y tengan tiempo de sobra xD.

Saludos dag

pd: proximamente tendremos nuevo diseño!

« Previous Entries