Chat con Webcam para tu sitio Web o Blog

viernes, 21 de septiembre de 2012
En el sitio de looksharp IRC Chat Network ofrecen la posibilidad de que puedas tener un webchat con audio y video (webcam) en tu sitio web o blog. El procedimiento es muy sencillo, solo hay que ir al siguiente enlace y seleccionar un nombre para el chat y las medidas que se quieran utilizar, luego pegar el código generado en el sitio o blog.>

Así es como se ve el webchat en funcionamiento:



Get Adobe Flash player



¿Que características técnicas o requerimientos necesito?


Casi nada, el webchat funciona con Adobe Flash, es decir, requiere que el usuario cuente con el plugin instalado (actualmente todos los sistemas cuentan con el plugin pre-instalado). Si en algún caso puntual el webchat detecta la ausencia del plugin, automáticamente le indicará al usuario que debe instalarlo (proceso que demora solo unos segundos).

El webchat de looksharp NO requiere de Java para su funcionamiento. Adobe Flash cuenta con grandes ventajas para este tipo de aplicaciones ofreciendo una mayor performance, rapides, fluidez, portabilidad y escalabilidad.


Más información se ofrece en el sitio web:




Leer más...

looksharp IRC Chat Network - mIRC Script

martes, 7 de agosto de 2012
looksharp fue fundado en el año 2000 como una entidad enfocada (pero no limitada) al desarrollo de software y scripting para IRC Chat. looksharp IRC/IRCX fue el script para mIRC más popular alrededor del mundo entre los años 2000 y 2004.

Desde Agosto del 2012 hemos puesto en línea nuestros propios servidores (looksharp IRC Chat Network):

  • irc.looksharp.com.ar:6667 
  • chat.looksharp.com.ar:6667 
  • ircx.looksharp.com.ar:6667 

Todos son bienvenidos a disfrutar de nuestros servicios en donde prevalecen la seguridad y las buenas costumbres, y en donde el lema principal es EL CHAT ES PARA DIVERTIRSE. Tú y todos tus amigos estan invitados a conocernos.

¡Que tengan un lindo chat!
El staff de looksharp IRC Network

http://www.looksharp.com.ar (Español)
http://www.looksharp.com.ar/en/ (Inglés)



Leer más...

dot Emacs

domingo, 17 de mayo de 2009
GNU/Emacs es un procesador de textos potentísimo que fue creado por el mismísimo Richard Stallman en 1975 junto con sus colaboradores. Está disponible para prácticamente todas las plataformas: Windows, GNU/Linux, BSD, MacOSX, Solaris, etc.



Su potencia proviene a raiz de la capacidad de personalizarlo mediante Macros, de hecho de ahí proviene su nombre Editor MACroS. Principalmente fue un editor de modo texto (obviamente en ese año otra cosa no podía ser) pero actualmente existen "forks" del proyecto en donde lo han integrado con diferentes entornos gráficos como XEmacs.

Desde hace mucho tiempo es mi editor de preferencia, lo utilizo para simplemente configurar archivos como para desarrollar código de programación en diferentes lenguajes, me resulta de lo más cómodo y no lo cambiaría por ningún otro.

Existe una "rivalidad" entre GNU/Emacs vs Vi (o Vim), al igual que sucede con GNOME vs KDE. Mi opinión es que ambos son productos que se merecen respeto por la trayectoría que arrastran. En los últimos años he notado que GNU/Emacs ha dejado de ser el editor por defecto de muchas distribuciones en favor de Vim (algunas nano u otros editores más simples), supongo que tiene que ver con el tamaño de su paquete y la línea de aprendizaje entre ambos programas, quien adopta GNU/Emacs como su procesador de textos preferido tarda un poco más de tiempo en exprimirlo al máximo.

Si aún no le diste una oportunidad a GNU/Emacs y aún no has encontrado tu "editor ideal", te sugiero lo pruebes y les des una oportunidad, al principio por ahí es una patada en los ... pero te aseguro que cuando lo tenés bien afinado es de lo más productivo en cualquier ámbito.



Con GNU/Emacs "la magia" radica en un archivo llamado .emacs que está (o estará) en el directorio home de tu usuario que es un archivo de configuración (similar al .vim) que se autoejecutará en cada sesión que abrás (como un .bashrc). La sintáxis de este archivo puede no ser muy "familiar" dado que es una versión de lenguaje Lisp, pero existen varios sitios en internet en donde te ayudan a "entenderlo":


Yo por mi parte puedo colaborar adjuntando mi propio .emacs que es producto de varios años de modificaciones y ajustes que le fuí haciendo para ir cerrando necesidades que iban surgiendo. Mi .emacs siempre lo mantuve con comentarios (como se debe) pero en lenguaje Inglés. Espero aporte algo y que tu experiencia con GNU/Emacs sea positiva.

Nando's .emacs:


;; -------------------------------------------------------------------------
;; .emacs - Nando's dot emacs
;;
;; Hernando Furlan
;; http://www.nandox.com - http://about.nandox.com
;;
;; Must create these directories first:
;;
;; ~/.emacs.semanticdb
;; ~/.emacs.backups
;;
;; -------------------------------------------------------------------------

;; Uncomment to load installed dot emacs extensions ONLY if you're Gentoo user (I was a Gentoo user that's why)
;; (load "/usr/share/emacs/site-lisp/site-gentoo")

;; My full name
(setq user-full-name "Hernando Furlan")

;; My email
(setq user-mail-address "devnando at gmail dot com")

;; My website/s
(setq user-website "http://www.nandox.com - http://about.nandox.com")

;; Save place
(require 'saveplace)
(setq-default save-place t)

;; Indent should not insert tabs
(setq-default indent-tabs-mode nil)

;; Prevent semantic.cache into entire hard disk
(setq semanticdb-default-save-directory "~/.emacs.semanticdb")

;; Autosave
(setq auto-save-default t) ; Yes auto save good!
(setq auto-save-interval 100) ; Number of input chars between auto-saves
(setq auto-save-timeout 300) ; Number of seconds idle time before auto-save

;; Backups (This saved my life a bunch of times!)
(setq make-backup-files t)
(setq backup-by-copying t) ; Don't clobber symlinks
(setq backup-directory-alist '(("." . "~/.emacs.backups"))) ; Don't litter my fs tree
(setq delete-old-versions t) ; Clean up a little
(setq kept-new-versions 6) ; Keep 6 new
(setq kept-old-versions 2) ; Keep only 2 old
(setq version-control t) ; Use versioned backups

;; Filetypes & modes
(setq auto-mode-alist
(append '(("\\.C$" . c++-mode)
("\\.cc$" . c++-mode)
("\\.cpp$" . c++-mode)
("\\.cxx$" . c++-mode)
("\\.hxx$" . c++-mode)
("\\.hpp$" . c++-mode)
("\\.h$" . c++-mode)
("\\.hh$" . c++-mode)
("\\.idl$" . c++-mode)
("\\.ipp$" . c++-mode)
("\\.c$" . c-mode)
("\\.pl$" . perl-mode)
("\\.pm$" . perl-mode)
("\\.java$" . java-mode)
("\\.inc$" . php-mode)
("\\.php$" . php-mode)
("\\.txt$" . text-mode))
auto-mode-alist))

;; I like tabs to 4 chars :P
(setq default-tab-width 4)

;; Some edition values fine-tuning
(setq c-mode-common-hook
(function (lambda ()
(setq c-basic-offset 4)
(setq c-comment-only-line-offset 0)
(setq c-indent-level 4)
(setq c-brace-imaginary-offset 0)
(setq c-brace-offset 0)
(setq c-argdecl-indent 0)
(setq c-label-offset -2)
(setq c-continued-statement-offset 0)
(setq c-continued-brace-offset -4)
(setq c-tab-always-indent t)
(setq tab-width 4)
(line-number-mode 1)
(c-set-offset 'member-init-intro 2)
(c-set-offset 'substatement-open 0)
(c-set-offset 'case-label 2)
(c-set-offset 'access-label -2)
(c-set-offset 'label 2)
(c-set-offset 'statement-case-intro 2)
(c-set-offset 'brace-list-entry 0)
(c-set-offset 'knr-argdecl-intro 0)
))
)

;; Displays name of current function in modeline
(which-function-mode)

;; Make pgup/dn remember current line
(setq scroll-preserve-screen-position t)

;; Replace "yes or no" prompt with "y or n" prompt
(defun yes-or-no-p (arg)
"Allows letters 'y' or 'n' in response to prompts asking for either 'yes' or 'no'."
(y-or-n-p arg))

;; Don't wrap long lines
(set-default 'truncate-lines t)

;; Make searches case insensitive
(setq case-fold-search t)

;;(standard-display-european +1)
(set-input-mode (car (current-input-mode))
(nth 1 (current-input-mode))
0)

;; No sounds! visual beep for me please...
(setq visible-bell t)

;; Always end a file with a newline
(setq require-final-newline t)

;; No toolbar for X (if Xemacs of course!)
(tool-bar-mode . nil)

;; No scrollbar
;; (set-scroll-bar-mode nil)

; Hide menu bar
(menu-bar-mode -1)

;; Put column number into modeline
(column-number-mode 1)

;; Display clock on global modeline
(display-time)

;; Toggle some default configuration
(custom-set-variables
'(case-fold-search t)
'(current-language-environment "English")
'(global-font-lock-mode t nil (font-lock))
'(show-paren-mode t nil (paren))
'(transient-mark-mode t)
'(uniquify-buffer-name-style nil nil (uniquify))
)

;; Customize scheme
;(set-background-color "black") ; Uncomment to avoid transparent background and get a *nice* solid colour
(set-foreground-color "white")
(set-cursor-color "white")
(set-face-foreground 'region "black")
(set-face-background 'region "white")
(set-face-foreground 'modeline "white")
(set-face-background 'modeline "red")
(set-face-foreground 'isearch "white")
(set-face-background 'isearch "red")
(set-face-background 'isearch-lazy-highlight-face "white")
(set-face-background 'isearch-lazy-highlight-face "red")

(custom-set-faces
'(region ((t (:background "red"))))
'(font-lock-comment-face ((t (:foreground "red" :weight bold))))
'(font-lock-string-face ((t (:foreground "blue" :weight bold))))
'(font-lock-keyword-face ((t (:foreground "cyan" :weight bold))))
'(font-lock-variable-name-face ((t (:foreground "cyan"))))
'(font-lock-type-face ((t (:foreground "red" :weight bold))))
'(font-lock-function-name-face ((((class color)) (:foreground "blue" :weight bold))))
'(show-paren-match-face ((((class color)) (:foreground "white" :background "red"))))
'(font-lock-constant-face ((t (:foreground "blue" :inverse-video t))))
'(font-lock-reference-face ((t (:foreground "yellow"))))
'(font-lock-preprocessor-face ((t (:foreground "yellow"))))
'(font-lock-function-name-face ((((class color) (background light)) (:foreground "yellow"))))
'(font-lock-builtin-face ((((class color) (background light)) (:foreground "yellow"))))
)

;; Code macros
(global-unset-key "\C-z") ; Turn off this key (Go emacs to background by default)
(global-unset-key "\C-t") ; Remap this key (go-top by default)

;; Replac ordinary search keys by regexp search (if you don't known regexp no problem)
(global-set-key [(control s)] 'isearch-forward-regexp)
(global-set-key [(control meta s)] 'isearch-forward)
(global-set-key [(control r)] 'isearch-backward-regexp)
(global-set-key [(control meta r)] 'isearch-backward)

;; Insert date at this point
(global-set-key "\C-t\C-d" 'insert-date-at-this-point)
(defun insert-date-at-this-point () (interactive)
(insert (format-time-string "%a %b %e, %Y %l:%M %p")))

;; Define copyright/left C style comment
(defun insert-copyleft-cstyle () (interactive)
(insert " * " projectname " - \n")
(insert " * $Id: " (file-name-nondirectory (buffer-file-name)) ",v 1.0" (format-time-string " %Y/%m/%d %H:%M:%S ") "nando Exp $\n")
(insert " *\n")
(insert " * Copyright (C)" (format-time-string " %Y ") "by Hernando Furlan \n")
(insert " * http://www.nandox.com - http://about.nandox.com\n"))

;; Define copyright/left Bash style comment
(defun insert-copyleft-bashstyle () (interactive)
(insert "# " projectname " - \n")
(insert "# $Id: " (file-name-nondirectory (buffer-file-name)) ",v 1.0" (format-time-string " %Y/%m/%d %H:%M:%S ") "nando Exp $\n")
(insert "#\n")
(insert "# Copyright (C)" (format-time-string " %Y ") "by Hernando Furlan \n")
(insert "# http://www.nandox.com - http://about.nandox.com"))

;; Define GPL license for C style comment
(defun insert-license-gpl-multifile-cstyle () (interactive)
(insert " * This file is part of " projectname ".\n")
(insert " *\n")
(insert " * " projectname " is free software; you can redistribute it and/or modify\n")
(insert " * it under the terms of the GNU General Public License as published by\n")
(insert " * the Free Software Foundation; either version 2 of the License, or\n")
(insert " * (at your option) any later version.\n")
(insert " *\n")
(insert " * " projectname " is distributed in the hope that it will be useful,\n")
(insert " * but WITHOUT ANY WARRANTY; without even the implied warranty of\n")
(insert " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n")
(insert " * GNU General Public License for more details.\n")
(insert " *\n")
(insert " * You should have received a copy of the GNU General Public License\n")
(insert " * along with " projectname "; if not, write to the Free Software\n")
(insert " * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"))

;; Define GPL license for Bash style comment
(defun insert-license-gpl-multifile-bashstyle () (interactive)
(insert "# This file is part of " projectname ".\n")
(insert "#\n")
(insert "# " projectname " is free software; you can redistribute it and/or modify\n")
(insert "# it under the terms of the GNU General Public License as published by\n")
(insert "# the Free Software Foundation; either version 2 of the License, or\n")
(insert "# (at your option) any later version.\n")
(insert "#\n")
(insert "# " projectname " is distributed in the hope that it will be useful,\n")
(insert "# but WITHOUT ANY WARRANTY; without even the implied warranty of\n")
(insert "# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n")
(insert "# GNU General Public License for more details.\n")
(insert "#\n")
(insert "# You should have received a copy of the GNU General Public License\n")
(insert "# along with " projectname "; if not, write to the Free Software\n")
(insert "# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"))

;; C/C++ file header
(global-set-key "\C-t\C-c\C-h" 'insert-c-file-header)
(defun insert-c-file-header () (interactive)
(defvar projectname (read-string "Project name? "))
(insert "/*\n")
(insert-copyleft-cstyle)
(insert " *\n")
(insert-license-gpl-multifile-cstyle)
(insert " */\n")
(insert "\n")
(insert "#include \n")
(insert "#include \n")
(insert "#include \n")
(insert "\n")
(insert "int main(int argc, char *argv[]) {\n")
(insert "\n")
(insert "}\n"))

;; C/C++ function header
(global-set-key "\C-t\C-c\C-f" 'insert-c-function-header)
(defun insert-c-function-header () (interactive)
(insert "/*\n")
(insert " * short desc\n")
(insert " *\n")
(insert " * long desc\n")
(insert " */\n")
(insert "int function(void) {\n")
(insert "\n")
(insert "\n")
(insert " return(1);\n")
(insert "}\n")
(insert "\n"))

;; PHP file header
(global-set-key "\C-t\C-p\C-h" 'insert-php-file-header)
(defun insert-php-file-header () (interactive)
(defvar projectname (read-string "Project name? "))
(insert " - http://www.nandox.com\n")
(insert " * @todo none\n")
(insert " **/\n")
(insert "\n")
(insert "\n")
(insert "?>\n"))

;; PHP function header
(global-set-key "\C-t\C-p\C-f" 'insert-php-function-header)
(defun insert-php-function-header () (interactive)
(insert "/**\n")
(insert " * short desc\n")
(insert " *\n")
(insert " * long desc\n")
(insert " * @param void\n")
(insert " * @return null\n")
(insert " * @author Hernando Furlan - http://www.nandox.com\n")
(insert " * @todo none\n")
(insert " **/\n")
(insert "function () {\n")
(insert "\n")
(insert "\n")
(insert " return(1);\n")
(insert "}\n")
(insert "\n"))

;; Perl file header
(global-set-key "\C-t\C-e\C-h" 'insert-perl-file-header)
(defun insert-perl-file-header () (interactive)
(defvar projectname (read-string "Project name? "))
(insert "#!/usr/bin/perl -w\n")
(insert "#!/usr/local/bin/perl -w\n")
(insert "\n")
(insert "# -------------------------------------------------------------------------\n")
(insert-copyleft-bashstyle)
(insert "#\n")
(insert-license-gpl-multifile-bashstyle)
(insert "# -------------------------------------------------------------------------\n")
(insert "\n")
(insert "require 5.004;\n")
(insert "use POSIX;\n")
(insert "use strict;\n")
(insert "\n"))

;; Perl function header
(global-set-key "\C-t\C-e\C-f" 'insert-c-function-header)
(defun insert-c-function-header () (interactive)
(insert "# -------------------------------------------------------------------------\n")
(insert "# short desc\n")
(insert "#\n")
(insert "# long desc\n")
(insert "# -------------------------------------------------------------------------\n")
(insert "sub function {\n")
(insert " my (@argv) = @_;\n")
(insert "\n")
(insert "\n")
(insert " return(1);\n")
(insert "}\n")
(insert "\n"))

;; SQL Text comment
(global-set-key "\C-t\C-s\C-h" 'insert-sql-file-header)
(defun insert-sql-file-header () (interactive)
(defvar projectname (read-string "Project name? "))
(insert "-- " projectname " - \n")
(insert "-- $Id: " (file-name-nondirectory (buffer-file-name)) ",v 1.0" (format-time-string " %Y/%m/%d %H:%M:%S ") "nando Exp $\n")
(insert "--\n")
(insert "-- Hernando Furlan \n")
(insert "-- http://www.nandox.com - http://about.nandox.com\n")
(insert "\n"))

;; Plain Text header
(global-set-key "\C-t\C-t\C-h" 'insert-plaintext-file-header)
(defun insert-plaintext-file-header () (interactive)
(insert "# -------------------------------------------------------------------------\n")
(insert "# " (file-name-nondirectory (buffer-file-name)) " - \n")
(insert "# Hernando Furlan \n")
(insert "# http://www.nandox.com - http://about.nandox.com\n")
(insert "# -------------------------------------------------------------------------\n")
(insert "\n"))

(message "Loading of Nando's dot emacs OK!")



Leer más...

GNU/Linux vs BSD vs MacOSX

sábado, 16 de mayo de 2009
Fui (y soy) un ferviente usuario de GNU/Linux, BSD y software libre desde hace muchos años, utilizo ambas plataformas con fines domésticos y laborales, sin embargo la plataforma que llevo en mi laptop es un MacOSX y voy a contar un poco como fue el "switching". Si sos usuario de GNU/Linux o algún BSD, no seas prejuicioso y leé el resto que después de todo voy a hablar de una plataforma unix-like que aun a riesgo de que es comercial (muy) y es cerrada, es una plataforma estupenda y que ofrece más ventajas que desventajas cuando la adoptamos.




Lo que me llevó a una Mac fue simplemente curiosidad por algo nuevo, no hay que olvidar que MacOSX no es otra cosa que un "FreeBSD" pero cerrado, es decir que internamente es un auténtico UNIX, pero con un refinado acabado visual que hace que la experiencia del usuario sea incomparable con cualquier otra plataforma. Si sos usuario de GNU/Linux o BSD es porque seguramente te gusta que las cosas no sean del todo fácil, sobre todo si usás alguna distribución como Gentoo, Slackware o Archlinux que requieren bastante utlización de la consola Bash, a mi también me gustan los desafíos pero de repente necesite no perder más el tiempo con instalaciones, configuraciones, etc y la plataforma de Apple fue la solución. Sin embargo debo remarcar que tampoco todo es color de rosa con los productos de Steve Jobs, por eso voy a citar que hay de bueno y que hay de malo cuando nos pasamos de una plataforma GNU/Linux o BSD a MacOSX.

Lo mejor de la experiencia MacOSX:

  1. Equilibrio entre hardware y software. MacOSX esta diseñado específicamente para funcionar con el conjunto de hardware que ofrece Apple, con lo cual nos olvidamos de los problemas de compatibilidad y largas horas de configuración. Todo funciona "flawless" a 2 clicks. Su hardware viene equipado con prácticamente todo lo que vamos a necesitar, webcam, sonido, microfono, red, WIFI, USB, grabadora de DVD (Superdrive), firefire, control remoto, etc.
  2. El hardware de Apple es de primerísima calidad, todos sus componentes son lo último del mercado. Esto impacta en el precio obviamente, sin embargo armar una PC o adquirir una laptop de similares características, no nos cuesta más o menos lo mismo? Y encima debemos pagar la licencia de Windows que no vamos a utilizar y probablemente pasar largas horas configurando el hardware del que no tenemos garantía alguna de que vaya a funcionar. Es un buen punto si la productividad es un factor decisivo.
  3. Configuración de Samba, Impresoras (CUPS), etc. Digamos la verdad, Samba no es lo mas sólido que existe, no porque sea malo, sino porque su desarrollo se basa en técnicas de ingeniería inversa y demás dado que es un protocolo cerrado y guardado muy secretmente por Microsoft. Apple debe tener algún tipo de convenio con Microsoft para la correcta implementación de Samba ya que funciona de manera excelente como nunca había visto en ninguna otra plataforma, y sin editar ningun archivo, todo se hace desde el setup del sistema operativo. Agregar una impresora también suele ser un trabajo tedioso a veces, sobre todo para usuarios no avanzados. En MacOSX agregar cualquier impresora se hace con apenas un par de clicks siendo incluso que utiliza CUPS de motor al igual que los demás sistemas. Lo mismo con Apache, un servidor básico es posible tenerlo funcionando sin ni siquiera configurarlo.
  4. No hay necesidad de utilizar la consola de texto. Si bien yo personalemte no perdi la costumbre de utilizarla, en MacOSX no hay necesidad de ello, todo se puede hacer desde la interfaz. Para los usuarios un poco avanzados puede no significar nada, pero para los que no tienen mucha experiencia es un gran aporte que la mayoría de las distribuciones GNU/Linux carecen.
  5. La instalación de nuevos programas es tan simple como descargar un archivo .APP y arrastrarlo con el mouse hasta la carpeta de aplicaciones. En GNU/Linux depende de la distribución que utilicemos, puede ser también sencillo, como en el caso de SuSE o RedHat con los RPM... siempre y cuando demos con el RPM correcto para nuestra distribución y versión, y previamente se satisfagan las dependencias correspondientes. En ningún caso la instalacion de software nuevo en GNU/Linux es tan "plug & play" si nos salimos de los paquetes que proveé la distribución. Ni hablar de los BSD, aunque a mi me resulte sencillo ejecutar "pkg_add -v mozilla-firefox" para un usuario convencional no lo es.
  6. Posibilidad de utilizar software que mucha gente hecha de menos en GNU/Linux tales como los productos de Adobe (Photoshop, Illustrator, Dreamweaver, etc). Si bien es un excelente producto, muchos no se acostumbran a OpenOffice, en MacOSX es posible instalar MS Office. Flash... sí, sí ya que que existe para GNU/Linux, no se sí lo habran solucionado pero las últimas veces que habia utilizado Flash en GNU/Linux me crasheaba el Firefox cada 2 por 3, además Adobe da bastantes vueltas para sacar la versión de GNU/Linux. Muchos dirán que existe "Crossover" o "Wine", pero seamos honestos, las últimas versiones de los programas nunca estan soportadas, y el impacto en la performance es un hecho indiscutible.
  7. Posibilidad de usar software que anteriormente utilizaba en mis instalaciones de GNU/Linux o BSD. Todo el software que utilizabas antes podés seguir utilizándolo, hay un proyecto que se llama Macports que es un repositorio muy al estilo BSD en donde de manera automática podés instalar el mismo software que podías instalar con tu distribución, tan simple como ejecutar "port install nmap" y voilá!.
  8. Además de poder utilizar el software que usabas en Windows y el que usabas en GNU/Linux también existen algunos programas que son exclusivos para plataformas MacOSX, y de hecho de lo mejor en su género, como por ejemplo iLife, Aperture y Final Cut Pro.
  9. La interfaz es un placer utilizarla, lo tiene todo: Es simple, ágil, rápida, bonita. GNU/Linux cuenta con Compiz-Fusion que tiene cientos de efectos mas que MacOSX, pero digan la verdad, todos esos efectos no se tornan molestos en el transcurso de 15 minutos de usarlos? En MacOSX no se abusa de ellos, hay solo algunos muy cuidadosamente bien logrados y suaves para no convertirse en molestia a la hora de trabajar y en un estado mas que estable, "siempre imitados pero nunca igualados" es la frase correcta. Y si dejamos afuera los efectos visuales y nos enfocamos en la productividad, KDE tiende a parecerse a Windows y rara vez lo use asi que no voy a hablar de él, GNOME intenta adoptar mas bien el entorno simplista de Apple, que si bien mejoró mucho los últimos años aun muchos de sus componentes no son del todo estables y de vez en cuando algun crash nos encontramos, tampoco cuenta con todos los "chiches" que ofrece Apple sin impactar en la performance.
  10. Backups.. no existe herramienta en GNU/Linux, y ni siquiera en Windows que nos haga los backups de una manera tan sencilla como lo hace Time Machine. Es verdad que si queremos utilizarlo debemos desenbolzar unos cuantos dolares para la Time Capsule (un disco duro WIFI en donde va a parar la información via Wireless) pero ciertamente lo vale. Sin más palabras.
  11. La simple busqueda de archivos. Windows cuenta con "El buscador de archivos" (ese con el perrito) que es un chiste a la tecnología, GNOME cuenta con un buscador algo más serio que se parece mucho al de MacOSX: Spotlight que busca en todos nuestros archivos comprimidos o no (e incluso en el contenido de ellos), emails, contactos, calendar, iTunes, etc. a velocidades asombrosas, el buscador de MacOSX BUSCA Y ENCUENTRA como ningun otro.
  12. XCode. La suite de desarrollo de Apple, IDE integrado para realizar aplicaciones para MacOSX e iPhone con todas las herramientas y características que siempre quisiste tener para tus desarrollos en GNU/Linux o BSD en donde no existe producto que se le parezca ni un poquito. Solo es comparable con el software de desarrollo .NET de Microsoft. Ah pero vos sos geek y usás la consola de texto? Yo tambien uso GNU/Emacs, pero debo admitir que XCode ROCKS!
  13. Precio. Si bien son equipos "expensive" (y esto no es un punto a favor), el precio de tu Mac no va a disminuir tanto como el de tu PC con el transcurso del tiempo. Los equipos siguen valiendo muy bien incluso después de 2 o 3 años de uso.
  14. El tamaño. A algunos les parece muy pequeño, pero 13 pulgadas D-WIDE son el tamaño perfecto si andás con la notebook al hombro todo el día. Si te parece chica podés optar por la Macbook Pro de 15 o un mounstruo de 17 pulgadas que no quisiera tener que transportarla. Con respecto a las iMacs, como bien sabrán no tienen el CPU en un gabinete tower separado, esta todo integrado en lo que vendría a ser el monitor, menos espacio querés que ocupe?
  15. Batería, hubo una tanda hace algunos años de baterías que explotaban (una serie mal-manufacturada por Sony) en la cual no se vio afectada solo Apple, sino también Dell, IBM y otras marcas. El punto a favor es por la autonomia, la bateria de mi Macbook ya tine 1 año y medio y aun dura más de 5 horas haciendo trabajo "normal". Si, es cierto hay otras marcas como la Sony Vaio que cuentan con una autonomía similar, pero no son equipos baratos tampoco.

Lo peor de la experiencia MacOSX:

  1. La política que tiene Apple (muy similar a la que utiliza Microsoft) de monopolizar todo. Realiza las mismas maniobras que Microsoft (y que la mayoria de las empresas gigantes). Esto es lo que realmente me molesta de la plataforma (si bien no me afecta), me encataría que fuesen más "abiertos" y no me refiero al código del sistema operativo, sino a ser más compatibles y menos restrictivos. Por ejemplo de sus propios productos de software, algunos los han portado al sistema de Microsoft (Windows) pero ni de casualidad para otra plataforma como GNU/Linux o BSD siendo incluso que MacOSX que más UNIX que Windows, ni siquiera mensionan la palabra "Linux" por ningún lado. Otro ejemplo es en el iPhone, que no podés utilizar el dispositivo de módem, ni siquiera con otros productos de Apple! Alguien me puede explicar por que motivo?. También iTunes tiene algunas retricciones, si tus MP3s no son comprados vía Apple Store, no vas a poder ponerles portada por ejemplo (sí podes con un software de terceros "Gimme Some Tune", pero no con el propio iTunes). Como estas, hay muchas más...
  2. El hardware, si bien arriba comentaba que todos sus componentes son de primerísima calidad (y lo son), por fuera son demasiado delicadas, se rayan fácilmente y algunos modelos suelen "despintarse" (Como la Macbook blanca), también modelos anteriores han tenido problemas de rotura de bisagras (como la iBook). Lo bueno es que Apple va aprendiendo de sus errores y los contempla en nuevos productos, pero igualmente no dejan de ser delicadas.
  3. Precio. Más arriba comenté como punto positivo que su amortización es favorable, pero son equipos que no estan al alcance de cualquier bolsillo, si bien en los últimos años se abarataron mucho, uno con el mismo dinero puede comprar hasta 3 (o quizás más) laptops no-mac. Si el precio (y solamente el precio aun a riezgo de que lo valga) es un factor fundamental, entonces Apple no es para vos.
  4. Periféricos. Por ejemplo la Macbook cuenta con 2 puertos USB y la Macbook Pro con 3, A mi me alcanzan, pero a mucha gente le va a parecer poco. No cuenta con salida de TV y ni siquiera de monitor, se debe comprar un adaptador especial que no es muy económico que digamos si tenemos en cuenta lo que gastan en producirlos. Mouse podés utilizar el que te venga bien, pero si querés comprar uno marca Apple (para que haga juego) vas a tener que desenbolzar unos cuantos dólares por un mouse cheto. Todos los periféricos y accesorios son extremadamente caros. Y los repuestos ni te cuento.
  5. Juegos, si bien esto podría ser un punto de igualdad entre las plataformas, ya que ni GNU/Linux ni BSD tampoco tienen su potencial en los juegos, en Apple no hay muchos que puedas usar nativamente, no se si más o menos que en GNU/Linux porque no juego mucho, pero no hay tantos como en Windows. La parte buena, es que al igual que con GNU/Linux o BSD podés hacer una partición exclusiva para una instalación de Windows que esté dedicada a los juegos ya que es para lo único que sirve este sistema operativo de Microsoft en nuestras vidas si somos usuarios de cualquier plataforma unix-like no?

Espero haberte dado un buen pantallazo de como sería si optás por ser un "switcher" de Apple, no es mi intención convencer ni vender Apple a nadie ya que no soy empleado de Apple, pero sé que hay mucha gente pensando en el cambio, de repente muchos usuarios de GNU/Linux han migrado a Apple (conozco varios), incluso yo, y esta fue mi experiencia personal, espero te haya servido de referencia.

Fe de erratas:

  1. Es posible descargar las portadas de tus MP3 utilizando iTunes sin necesidad de comprar la música en Apple Store y sin necesidad de utilizar software de terceros. Sin embargo sigue siendo restrictivo en cuanto a que te están obligando a crear una cuenta Apple Store e introducir los datos de tu Tarjeta de Crédito para acceder a esta funcionalidad aunque no compres nada.


Leer más...

Priorización de paquetes utilizando OpenBSD

domingo, 3 de mayo de 2009
Voy a explicar como configurar la priorización de paquetes (QoS: Quality Of Service) usando una instalación OpenBSD (Packet Filter ALTQ). Es importante que tengas algunas nociones previas de Packet Filter ya que voy a ir directamente al tema y no voy a detenerme en conceptos básicos. Tené la documentación que ofrece OpenBSD a mano: Packet Filter

Para los que no saben de que se trata esto del QoS, como su nombre en Inglés lo indica, es mantener "la calidad de los servicios" de nuestra red.

Y para que quiero mantener la "calidad de los servicios"? Un caso muy clásico es cuando hacemos un donwload (de alguna página o algún torrent) de tamaño grande que tarda varios minutos en terminar y mientras tanto nuestra conexión se torna inusable para hacer otras cosas, como por ejemplo navegar. Con la priorización de paquetes podemos solucionar este problema, siempre y cuando realicemos una correcta configuración. Otro caso de uso muy útil es si contamos con telefonía IP (VOIP) que para mantener la calidad de las comunicaciones es imprescindible contar con un buen flujo de datos que no se interrumpa, con la priorización de paquetes nos aseguramos que esos datos no sean interrumpidos por otros datos de otras conexiones dándoles prioridad.


Por que OpenBSD? OpenBSD es una plataforma de libre uso muy sólida y estable que su principal enfoque es la seguridad, razón por la cual posee un firewall similar a iptables de GNU/Linux llamado Packet Filter que es muy potente y sencillo de configurar, que además de proveer funciones de filtrado, ofrece entre otras cosas, priorización de paquetes que lo denomina ALTQ (Alternate Queueing). OpenBSD puede instalarse en un equipo i386 o superior, con lo cual podemos re-utilizar cualquier equipo que ya no usemos y armar el más potente firewall con priorización de paquetes. En mi experiencia personal, la primera vez que armé un firewall con priorización de paquetes sobre OpenBSD fue hace algunos años en un i486DX2 y lo tuve funcionando alrededor de 2 años hasta que reemplacé el equipo por uno más actual y jamás sufrió un solo cuelgue.

Puedo usar GNU/Linux? No hay Packet Filter para GNU/Linux. GNU/Linux con su iptables también pueden configurarse para hacer priorización de paquetes, pero es algo más rebuscado, con Packet Filter es mucho más simple.

Puedo usar FreeBSD, NetBSD o algún otro producto de la familia BSDs? Sí, se puede tanto FreeBSD como NetBSD cuentan con un port de Packet Filter (que es un proyecto que nació de OpenBSD) pero por defecto no cuentan con soporte ALTQ, lo que nos obliga a recompilar el kernel para poder utilizarlo.

Usando ALTQ podemos encolar (Queueing) paquetes utilizando 2 modelos diferentes:

  1. CBQ (Class Based Queueing): Este modelo permite segmentar el ancho de banda en varios fragmentos que podemos asignar a los diferentes servicios. Es muy interesante pero no lo vamos a usar acá.
  2. PRIQ (Priority Queueing): Este modelo permite definir a que servicios se les debe dar "prioridad de paso" y es el que vamos a utilizar más abajo.

Lo primero que debemos hacer es decidir es a que vamos a darle prioridad para posteriormente armar las reglas que correspondan.

Supongamos que tenemos una red doméstica con un ancho de banda de 2Mbits en donde principalmente: Naveguemos, usemos mensajería instantánea, hagamos llamadas de voz sobre IP, realicemos sesiones de SSH y bajemos algunos torrents, entre otras cosas.

Nuestro objetivo es: Bajar torrents todo el día (es ejemplificativo, nadie de ustedes baja torrents todo el día no? :) y que nuestras sesiones SSH, mensajería instantánea y navegación por la web no se tornen lentas ni sean interrumpidas (timeouts). A todo esto también hacemos muchas llamadas vía VOIP que no deseamos que se entre-corten ni tengan ruidos de fondo, sino que sigan manteniendo la misma claridad como si fuesen realizadas desde un teléfono convencional, incluso si estoy bajando mi serie favorita. Suena interesante no?

Vamos a empezar con un pf.conf básico como este:


# Definimos nuestras interfaces de red
ext_if = "rl0" # Interface de red externa
int_if = "rl1" # Interface de red interna.

# Definimos estas dos variables que vamos a utilizar más abajo
bw_upload = "160Kb" # Ancho de banda que usaremos para el upload (160Kbits = 20KB)
tcp_options = "flags S/SA keep state" # Guardar el estado de la conexión (TCP)

# Definimos los puertos que vamos a manipular
port_voip = "{ 5060 5061 }" # VOIP TCP (Por ejemplo Asterisk)
port_voip_udp = "{ 5060 4569 5061 5036 10000:20000 2727 }" # VOIP UDP
port_ssh = "{ 22 }" # SSH
port_http = "{ 80 443 }" # HTTP, HTTPS
port_im = "{ 25 110 993 995 6667 7000 1863 5190 5222 }" # Mail, MSN, IRC, etc
port_p2p = "{ 6881:6999 }" # P2P (Cambiar por los puertos que correspondan en tu caso)

# Bloquear utilizando drop en lugar de deny
set block-policy drop

# Normalizado de paquetes
scrub in on $ext_if all fragment reassemble
scrub in on $int_if all no-df

A continuación debemos armar las colas de prioridad sobre la interface externa. Es posible especificar colas en otras interfaces, pero normalmente contamos con 100MB en la interface interna (algunos con más suerte incluso con 1000MB), con lo cual nos sobra ancho de banda y no necesitamos priorizar paquetes aquí ya que desde Internet jamás vamos a recibir tanto tráfico simultáneo (a no ser que cuentes con una conexión con ese increible ancho de banda). A la cola debemos decirle cuanto ancho de banda vamos a asignarle, nosotros utilizamos $bw_upload que son 160Kbits o 20KB, lo normal (cuando nuestro ISP no nos roba demaciado) es que contemos con 25KB de upload para una conexión de 2Mbits de download (256MB), los 5K sobrantes los dejamos libres para el correcto tráfico de los paquetes ACK.

altq on $ext_if priq bandwidth $bw_upload queue \
{ p2p_queue, std_queue, http_queue, im_queue, ssh_bulk_queue, ssh_login_queue, dns_queue, voip_queue, ack_queue }

A cada cola hay que asignarle un número de prioridad que tendrán los paquetes que pertenezcan a la misma. Este es el punto más importante, si están mal las prioridades, no vamos a lograr nuestro objetivo de priorizar lo mas importante. Cuanto más alto el número más prioridad van a tener los paquetes correspondientes. OpenBSD permite hasta 16 colas (de 0 a 15).

queue p2p_queue priority 2
queue std_queue priority 4 priq(default)
queue http_queue priority 8
queue im_queue priority 9
queue ssh_bulk_queue priority 10
queue ssh_login_queue priority 11 priq(red)
queue dns_queue priority 12
queue voip_queue priority 14
queue ack_queue priority 15

En primer lugar hemos definido que los programas P2P tengan el mínimo de prioridad, incluso por debajo del umbral declarado por defecto. Es decir que cualquier conexión declarada o no en nuestro pf.conf va a tener más prioridad que las descargas P2P.

La segunda cola std_out es la cola por defecto, todas las conexiones que no hayan sido explicítamente mencionadas en nuestro pf.conf serán asignadas a esa cola (por ejemplo FTP, Juegos online, etc)

La navegación web tendrá más prioridad que los P2P y la cola por defecto.

La mensajería instantánea, mail e IRC tendrán más prioridad incluso que la navegación web.

Las sesiones SSH irán por encima de las ya mensionadas. Nótese que hay 2 colas para SSH, una para transferencia (scp) y otra para login con más prioridad aún. El scheduler "RED" (Random Early Detection) es para evitar congestiones haciendo que la cola nunca se llene.

El DNS siempre debe ser un servicio con la prioridad más alta para evitar demoras al resolver dominios.

Las llamadas de voz sobre IP tienen el nivel más alto, solamente por debajo de los paquetes ACK, ya que no queremos que nada interfiera cuando tenemos una llamada en curso.

Y por último los paquetes ACK deben ser SIEMPRE la mayor prioridad.

Seguimos con las reglas de NAT:

# Acceso a internet a cualquier maquina de nuestra LAN
nat on $ext_if from $int_if:network to any -> $ext_if

Las entradas de forwarding de puertos, en este caso vamos a forwardear los puertos del torrent:

# Forwardeo de puertos
rdr on $ext_if proto tcp from any to any port $port_voip -> 192.168.0.2 # Cambiar IP destino según corresponda
rdr on $ext_if proto udp from any to any port $port_voip_udp -> 192.168.0.2 # Cambiar IP destino según corresponda
rdr on $ext_if proto { tcp udp } from any to any port $port_p2p -> 192.168.0.2 # Cambiar IP destino según corresponda

Siguen las entradas de bloqueo/acceso. No vamos a bloquear nada, si bien pudieramos, ya que no es el punto establecer un firewall, sino priorizar paquetes. Que cada uno establezca las reglas de bloqueo a su preferencia.

Los paquetes a las colas se asignan utilizando la sentencia "pass" (sí, la misma) salvo que se agrega la cláusula "queue". Vamos a ir asignando una por una.

Primero las conexiones salientes:

# Todo es standard excepto los ACK que los enviamos a ack_queue
pass out on $ext_if proto tcp from any to any \
$tcp_options queue(std_queue, ack_queue)

# Telefonia IP TCP a voip_queue
pass out on $ext_if proto tcp from any to any port $port_voip \
$tcp_options queue voip_queue

# Telefonia IP UDP a voip_queue
pass out on $ext_if proto udp from any to any port $port_voip_udp \
keep state queue voip_queue

# Consultas DNS a dns_queue
pass out on $ext_if proto { tcp udp } from any to any port domain \
keep state queue dns_queue

# Transferencias SSH a ssh_bulk_queue y login a ssh_login_queue
pass out on $ext_if proto tcp from any to any port $port_ssh \
$tcp_options queue(ssh_bulk_queue, ssh_login_queue)

# Mail, Mensajería instantanea, IRC, etc a im_queue
pass out on $ext_if proto { tcp udp } from any to any port $port_im \
$tcp_options queue im_queue

# HTTP, HTTPS a http_queue
pass out on $ext_if inet proto tcp from any to any port $port_http \
$tcp_options queue http_queue

Luego las conexiones entrantes:

# Telefonia IP TCP entrante a voip_queue
pass in on $ext_if proto tcp from any to any port $port_voip \
$tcp_options queue voip_queue

# Telefonia IP UDP a voip_queue
pass in on $ext_if proto udp from any to any port $port_voip_udp \
keep state queue voip_queue

# Conexiones P2P entrantes a p2p_queue (Estas son las que menoes prioridad tienen de todas)
pass in on $ext_if proto { udp tcp } from any to any port $port_p2p \
$tcp_options queue p2p_queue

Eso es todo, ya contamos con nuestras reglas listas, ahora debemos cargarlas:

# pfctl -f /etc/pf.conf

Para monitorear su correcto funcionanamiento podemos utilizar la herramienta pftop que se encuentra disponible para instalar en el repositorio de OpenBSD. (Tecla 8 para acceder al panel de colas)

QUEUE BW SCH PRIO PKTS BYTES DROP_P DROP_B QLEN BORROW SUSPEN P/S B/S
p2p_out priq 2 827936 267887K 317844 43731134 0 0 0
std_out priq 4 8215688 8569649K 153130 97944K 0 9 13475
http_out priq 8 2809938 634870K 10757 2688711 0 0 0
im_out priq 9 344323 73140938 90 98819 0 0 0
ssh_bulk_out priq 10 33036 45973216 0 0 0 0 0
ssh_login_out priq 11 6873 1253422 1 146 0 0 0
dns_out priq 12 102845 8951957 0 0 0 0 0
voip_out priq 14 788399 189578K 123 67892 0 0 0
ack_out priq 15 7367822 453643K 517 34254 0 0.4 23

Aquí dejo el archivo de configuración que acabamos de armar completo:

# -------------------------------------------------------------------------
# Packet Filter ALTQ rules by Hernando Furlan - Written under OpenBSD 4.5
# $Id: pf.conf,v 1.0 2009/05/02 16:14:11 nando Exp $
#
# Hernando Furlan
# http://www.nandox.com - http://about.nandox.com - http://www.ifork.com.ar
# -------------------------------------------------------------------------

# Definimos nuestras interfaces de red
ext_if = "rl0" # Interface de red externa
int_if = "rl1" # Interface de red interna.

# Definimos estas dos variables que vamos a utilizar más abajo
bw_upload = "160Kb" # Ancho de banda que usaremos para el upload (160Kbits = 20KB)
tcp_options = "flags S/SA keep state" # Guardar el estado de la conexión (TCP)

# Definimos los puertos que vamos a manipular
port_voip = "{ 5060 5061 }" # VOIP TCP (Por ejemplo Asterisk)
port_voip_udp = "{ 5060 4569 5061 5036 10000:20000 2727 }" # VOIP UDP
port_ssh = "{ 22 }" # SSH
port_http = "{ 80 443 }" # HTTP, HTTPS
port_im = "{ 25 110 993 995 6667 7000 1863 5190 5222 }" # Mail, MSN, IRC, etc
port_p2p = "{ 6881:6999 }" # P2P (Cambiar por los puertos que correspondan en tu caso)

# Bloquear utilizando drop en lugar de deny
set block-policy drop

# Normalizado de paquetes
scrub in on $ext_if all fragment reassemble
scrub in on $int_if all no-df

altq on $ext_if priq bandwidth $bw_upload queue \
{ p2p_queue, std_queue, http_queue, im_queue, ssh_bulk_queue, ssh_login_queue, dns_queue, voip_queue, ack_queue }

queue p2p_queue priority 2
queue std_queue priority 4 priq(default)
queue http_queue priority 8
queue im_queue priority 9
queue ssh_bulk_queue priority 10
queue ssh_login_queue priority 11 priq(red)
queue dns_queue priority 12
queue voip_queue priority 14
queue ack_queue priority 15

# Acceso a internet a cualquier maquina de nuestra LAN
nat on $ext_if from $int_if:network to any -> $ext_if

# Forwardeo de puertos
rdr on $ext_if proto tcp from any to any port $port_voip -> 192.168.0.2 # Cambiar IP destino según corresponda
rdr on $ext_if proto udp from any to any port $port_voip_udp -> 192.168.0.2 # Cambiar IP destino según corresponda
rdr on $ext_if proto { tcp udp } from any to any port $port_p2p -> 192.168.0.2 # Cambiar IP destino según corresponda

# Todo es standard excepto los ACK que los enviamos a ack_queue
pass out on $ext_if proto tcp from any to any \
$tcp_options queue(std_queue, ack_queue)

# Telefonia IP TCP a voip_queue
pass out on $ext_if proto tcp from any to any port $port_voip \
$tcp_options queue voip_queue

# Telefonia IP UDP a voip_queue
pass out on $ext_if proto udp from any to any port $port_voip_udp \
keep state queue voip_queue

# Consultas DNS a dns_queue
pass out on $ext_if proto { tcp udp } from any to any port domain \
keep state queue dns_queue

# Transferencias SSH a ssh_bulk_queue y login a ssh_login_queue
pass out on $ext_if proto tcp from any to any port $port_ssh \
$tcp_options queue(ssh_bulk_queue, ssh_login_queue)

# Mail, Mensajería instantanea, IRC, etc a im_queue
pass out on $ext_if proto { tcp udp } from any to any port $port_im \
$tcp_options queue im_queue

# HTTP, HTTPS a http_queue
pass out on $ext_if inet proto tcp from any to any port $port_http \
$tcp_options queue http_queue

# Telefonia IP TCP entrante a voip_queue
pass in on $ext_if proto tcp from any to any port $port_voip \
$tcp_options queue voip_queue

# Telefonia IP UDP a voip_queue
pass in on $ext_if proto udp from any to any port $port_voip_udp \
keep state queue voip_queue

# Conexiones P2P entrantes a p2p_queue (Estas son las que menoes prioridad tienen de todas)
pass in on $ext_if proto { udp tcp } from any to any port $port_p2p \
$tcp_options queue p2p_queue


Leer más...

Generar certificados SSL sin passphrase

jueves, 30 de abril de 2009
Procedimiento para generar certificados de seguridad SSL sin passphrase que puedan ser utilizados en alguno de los servicios: Apache, Lighttpd, Postfix, etc.

Debo remarcar que los certificados que vamos a generar son apropiados solamente para hacer testing y de ninguna manera deben considerarse ser utilizados en entornos productivos ya que lo adecuado es generar certificados CON passphrase, algoritmos de encriptación más fuertes y ser firmados por alguna compañia certificadora como Verisign.


1. Generar una llave privada sin passphrase de 1024 bits:

# openssl genrsa -out server.key 1024

2. Generar el CSR (Certificate Sign Request):

# openssl req -new -key server.key -out server.csr

Contestar las siguientes preguntas:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) []: (Ej: AR para Argentina)
State or Province Name (full name) []: (Ej: Buenos Aires)
Locality Name (eg, city) []: (Ej: Microcentro)
Organization Name (eg, company) []: (Ej: NandoX)
Organizational Unit Name (eg, section) []: (Ej: Desarrollo)
Common Name (eg, fully qualified host name) []: (Ej: nandox.com)
Email Address []: (Ej: ejemplo@nandox.com)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: (No ingresar nada, pulsar )
An optional company name []: (No ingresar nada, pulsar )

3. Autofirmar nuestro certificado con un año de expiración (CRT):

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

4. Por último generamos el archivo PEM:

# cat server.key server.crt > server.pem

Leer más...

Aplicaciones imprescindibles para usuarios nuevos de MacOSX

martes, 28 de abril de 2009
He confeccionado una lista de aplicaciones que creo imprescindibles (o recomendables) para cualquier usuario que se inicie en el mundo de las Macs. Solo incluyo software que sea libre o gratuito y que no venga de serie con MacOSX.


AdiumX
Mensajeria instantánea multiprotocolo (Messenger, YIM, GTalk, etc) con soporte de plugins.

aMSN
Otro producto de mensajeria instantánea muy conocido por los usuarios de GNU/Linux. Intenta parecerse más al Messenger original de Microsoft y posee soporte para videoconferencia. Además funciona de maravilla.

Boxer
Emulador de DOS con front-end. No solo útil para cuando en la facultad te fastidian con el Borland C++ sino también para correr aquellos antiguos juegos de DOS.

Chicken of the VNC
Cliente de VNC. Solo eso.

Colloquy
Muy buen cliente de IRC. Con muchas opciones y muy personalizable. No soporta "scripting" (Para los usuarios de mIRC).

Cyberduck
Cliente de FTP, SFTP y WebDAV. Yo no lo uso porque no me resulta cómodo, pero sé de mucha gente que se siente muy a gusto con este software.

Filezilla
Cliente de FTP muy clásico. Este es el que uso yo.

Firefox
No hacen falta presentaciones. Safari es muy rápido y funciona muy bien pero carece de los miles de plugins que ofrece Firefox.

Flip4Mac
Problemas para reproducir WMV? Esta es la solución.

GimmeSomeTune
Este programa te permite bajar las lyrics y portadas de discos automáticamente y las integra en los mp3 de tu colección de música de iTunes.

Google Notifier

Notifica cuando tenés correo nuevo en tu cuenta GMail.

HandBreake
Te permite pasar tus DVDs (transcoding) a formatos tales como MP4, MKV, AVI o OGM.

KisMAC

Un scanner de redes WIFI muy potente.

Linotype Font explorer
Excelente administrador de fuentes. Permite activarlas y desactivarlas según la necesidad y es totalmente integrable con productos como los de Adobe, QuarkXpress y MS Office.

MacPorts
Uno de mis proyectos favoritos. Se trata de un repositorio de aplicaciones que son muy comunes de encontrar en plataformas GNU/Linux o BSD pero no tanto en MacOSX en los cuales mediante la utilidad "port" automáticamente baja el código fuente, sus dependencias, compila e instala. Si anteriormente fuiste usuario de GNU/Linux o algun BSD esto es un "must have". Similar a lo que hacen herramientas como "emerge" (Gentoo), "pacman" (Archlinux), "port" (FreeBSD).

MPlayer
Reproductor de video también muy conocido en el ámbito GNU/Linux y BSD. Para los que no lo conocen comento que es muy rápido y reproduce prácticamente cualquier formato sin plugins adicionales.

Onyx
Herramienta para mantener tu sistema (Limpieza de caches, etc). Hay varias de este tipo pero esta me parece la mas fiable.

Perian
Problemas para reproducir algunos formatos utilizando Quicktime? Esta es la solución.

Quicksilver
Lanzador de aplicaciones (Launcher) muy potente. Yo no lo utilizo, pero se de gente que no puede vivir sin este software.

NeoOffice
Suite de ofimática similar a OpenOffice o MS Office. Se trata del proyecto OpenOffice pero basado en la API de MacOSX, dando asi como resultado un producto de mayor performance y más integrable para esta plataforma.

Remote Desktop Connection
Es un producto de Microsoft para conexión a escritorios remotos (RDC). No es opensource ni libre, pero es de uso gratuito.

Sequential
Es un visor de imágenes muy ligero y ágil. El reemplazo perfecto para Preview.

Smultron
Reemplazo para textedit (similar a notepad de Windows).

Solar Seek
Cliente de red P2P Soulseek. Hay algunas alternativas pero este es el que más me gusta.

The Unarchiver
Descompresor multiformato. Personalmente me gusta mas el UnRarX pero este descomprime el formato .sit de Stuffit, que algunos (muy pocos) aun siguen usando.

Transmission
Cliente de red P2P Bittorrent muy liviano y rápido.

UnRarX
Versión para Mac del conocidísimo descompresor de formato .RAR.

VCL
Otro reproductor de video multiformato como MPlayer.

VirtualBox
Máquina virtual similar a productos comerciales como VMWare o Parallels.

Leer más...
Add to Technorati Favorites

Blogalaxia

Programming Blogs - BlogCatalog Blog Directory

BlogESfera - Directorio de Blogs Hispanos

Bitacoras.com

My Ping in TotalPing.com

Powered by FeedBurner

http://www.wikio.es

BlogBlogs