Strict Standards: Non-static method CodeColorerLoader::Enable() should not be called statically in /home/k6000169/public_html/wp-content/plugins/codecolorer/codecolorer.php on line 254
2013 marzo | Programador freelance argentina

Cómo asociar tipos de archivos en MAC

1. Desde el Finder hacer click sobre el archivo.

2. Presionar CMD + I

3. Seleccionar con cuál programa abrirlo

4. Hacer click en Change All.

Instalar Open SSL en Ubuntu Linux

1. Descargar Open SSL

# wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz

2. Descomprimir el archivo

# tar -xvzf openssl-0.9.8e.tar.gz

3. Ingresar al directorio

# cd openssl-0.9.8e

4. Configurar Open SSL

# ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

Cambiar “/usr/local/openssl” por la carpeta en la que querés que se copien los archivos

5. Instalarlo

# sudo make install

Download file with GWT

Esta es una manera fácil de enviar desde GWT archivos al navegador para que los usuarios se los puedan descargar.

1. Hay que agregar un frame oculto en el HTML de la hosted page:

<div id="__gwt_downloadFrame" tabIndex='-1'>

2. Para iniciar la descarga poner este código en la parte cliente (código GWT):


public static void download(String p_uuid, String p_filename) {
String fileDownloadURL = "/fileDownloadServlet"
+ "?id=" + p_uuid
+ "&filename=" +
URL.encode(p_filename);
Frame fileDownloadFrame = new Frame(fileDownloadURL);
fileDownloadFrame.setSize("0px", "0px");
fileDownloadFrame.setVisible(false);
RootPanel panel = RootPanel.get("__gwt_downloadFrame");
while (panel.getWidgetCount() > 0)
panel.remove(0);
panel.add(fileDownloadFrame);
}

3. Poner esto en el servlet que va a servir el archivo a descargar:/>


@Override
protected void doGet(HttpServletRequest p_request,
HttpServletResponse p_response)
throws ServletException, IOException {
String filename = p_request.getParameter("filename");
if (filename == null)
{
p_response.sendError(SC_BAD_REQUEST, "Missing filename");
return;
}

File file = /* however you choose to go about resolving
filename */

long length = file.length();
FileInputStream fis = new FileInputStream(file);
p_response.addHeader("Content-Disposition",
"attachment; filename=\"" + filename +
"\"");
p_response.setContentType("application/octet-stream");
if (length > 0 && length p_response.setContentLength((int)length);
ServletOutputStream out = p_response.getOutputStream();
p_response.setBufferSize(32768);
int bufSize = p_response.getBufferSize();
byte[] buffer = new byte[bufSize];
BufferedInputStream bis = new BufferedInputStream(fis,
bufSize);
int bytes;
while ((bytes = bis.read(buffer, 0, bufSize)) >= 0)
out.write(buffer, 0, bytes);
bis.close();
fis.close();
out.flush();
out.close();
}

Cómo saber si ser freelance es tu vocación :)

Copio un cuestionario que encontré por ahí y que me pareció divertido acerca del autoconocimiento acerca de si uno puede ser freelance.

1. 
Que te interesa de ser freelance?
a) Los retos
b) La libertad
c) Tiempo para vos y tu familia
2. El reto más grande al trabajar por tu cuenta sería
a) Estar solo todo el día
b) Ingresos irregulares y poco predecibles
c) Promocionarte y venderte
3. Que tan flexible sos?
a) Puedo manejar cualquier cosa que se presente cómodamente
b) Mi especialidad es controlar las emergencias pero me gusta la rutina
c) Prefiero tener una estructura predecible y prestablecida
4. La idea de no recibir ingresos durante varios meses:
a) Siento cierta ansiedad pero también me motiva.
b) No soy fan, pero puedo sobrellevarlo y asumirlo como parte del proceso.
c) Me aterra horrores y me duele el estómago.
5. Tus habilidades para negociar son:
a) Excelentes
b) Me salgo con la mía la mayoría de las veces
c) No muy buenas
6. En automotivación ¿cómo te calificas?
a) Con 9-10 porque Soy extremadamente automotivado
b) Con 8-7 porque lo soy una buena parte del tiempo, pero a veces me cuesta
c) Con 5 de reprobado porque no logro automotivarme
7. ¿Qué logra hacer que cumplas con tus tiempos de entrega?
a) Algo en mi que no se está en paz si no lo logro.
b) El jefe que está respirándome en la nuca
c) Casi nunca entrego en los tiempos acordados
8. Llegas a tu próximo día de pago:
a) Sorprendentemente bien. Siempre tengo algo en la bolsa.
b) Más o menos. Le sufro a veces. 
Llego con la tarjeta de crédito o pidiendo prestado aunque sea un poco.
c) Siempre me falta
9. ¿Te gusta venderte a ti mismo?
a) Me encanta
b) En ocasiones me inspiro y lo logro muy bien
c) Soy más tímido de lo que quisiera
10. Es casi la hora de salida en viernes, tu:
a) ¿Hora de salida?
b) Emocionado por que llegue el fin
c) Estás con un pié en la puerta
11. Te gusta tratar con personas de todo tipo (aún las difíciles)
a) Si. Rara vez alguien me cae mal o me exaspera
b) No siempre, pero logro anteponer lo que me parece más importante.
c) No me gusta tratar con gente idiota/necia/loca/emocional (osea todos)
12. Cuando alguien te pide un favor tu:
a) Lo haces sin chistar
b) Evalúas todos los factores involucrados antes de decir
c) NO haces favores. Punto
13. Alguna vez te han transado?
a) No. Mi escepticismo está de lo más sano
b) Me han engañado un par de veces, pero ahora es difícil
c) Si, caigo a menudo
14. Los tiempos y tu…
a) Nos llevamos bien. Es raro que no haga todo lo que proyecté hacer en un día
b) Hay días muy buenos y muy malos. Me organizo pero a veces el tiempo me gana
c) Nos llevamos muy mal. Nunca me da tiempo de nada y no logro averiguar porque.
Si contestaste más de 8 a
Estás preparado para ser freelance. Al menos en lo que mental, organizacional y financieramente se refiere. Hay altas posibilidades que este sea TU paraíso. Ya lo has probado,  te sientes como pez en el agua, o lo suficientemente cómodo para adoptarlo como modo de vida.
Si contestaste más de 8 b
Tienes buena madera para ser freelance. Quizá has estado demasiado tiempo en el mundo corporativo y no sabes como sería la vida fuera, pero te interesa y tienes características muy útiles para el freelanceo. Eres flexible y estás dispuesto a cambiar tu punto de vista. Te falta pulir habilidades pero eso se hace con la práctica y experiencia.
Este puede ser tu paraíso si te interesa.
Si contestaste más de 8 C
El ser freelance no es tu primera opción. No te ves trabajando solo y menos sin un sueldo fijo. Te cuesta “inventar trabajo de la nada” y  la improvisación no es tu fuerte. Sin embargo, si quisieras freelancear, no todo está perdido. Hay maneras de aprender habilidades como: vender, negociar, gastar menos de lo que ganas, tratar con gente.
También se pueden hacer “trucos” para adaptar la vida independiente a quien gusta de las estructuras: asociarte con alguien, diseñar los procedimientos. Que los días de pago siempre sean los mismos (una vez que el cliente pagó), etc. Quizá valga la pena que intentes asomarte a este paraíso para averiguar en carne propia.

Cómo eliminar el atributo com.apple.quarantine

En Mac, por cuestiones de seguridad cuando se descargan archivos, éstos son marcados con un atributo de “cuarentena“.

Esto es así para que una vez descargado el archivo al intentar abrirlo Mac nos pregunte “El archivo bla bla bla se ha descargado el día tal, desea abrirlo?”. Una vez que le damos OK no nos lo vuelve a preguntar porque le elimina este atributo (com.apple.quarantine) al archivo.

Esto normalmente no es tema escabroso. Pero en mi caso me había descargado los fuentes de WordPress y cuando lo quise ejecutar en mi apache local por este tema no se ejecutaba ya que los archivos estaban en cuarentena.

Hay unos comandos para trabajar con estos atributos (y otros).

Para ver desde consola los atributos de un archivo:

xattr filename

Para eliminar el atributo com.apple.quarantine de un archivo:

xattr -d com.apple.quarantine filename

Para eliminar el atributo com.apple.quarantine de un directorio de manera recursiva:

xattr -dr com.apple.quarantine diretoryName

Cómo ejecutar Chrome con parámetros en Mac

Hay veces en las cuales es necesario ejecutar una aplicación pasándole parámetros. Por ejemplo si se quiere abrir Chrome con alguna funcionalidad extra que no viene por defecto.

Para ello hay que abrir una terminal (Applications > Utilities > Terminal) y ejecutar lo siguiente:

# open /Applications/Google\ Chrome.app --args --enable-speech-input

Acá hay una lista de launch parameters para Chrome.

Virtual Box compartir carpetas entre host Mac y guest Debian

Esto es para poder acceder desde una máquina virtual Debian corriendo en Virtual Box a las carpetas del host (en este caso Mac, Mountain Lion).

1. Desde Virtual Box asignar las carpetas a compartir.

2. En la máquina virtual (guest) crear puntos de montaje (como root).

mkdir /mnt/share
mkdir /mnt/share/music
mkdir /mnt/share/videos
mkdir /mnt/share/pix
mkdir /mnt/share/dox
mkdir /mnt/share/down

3. Agregar lo siguiente al final del archivo /etc/sudoers:

user ALL = NOPASSWD : ALL

Reemplazar “user” con tu usuario.

4. Crear un script para montar las carpetas compartidas:

mkdir ~/scripts
nano scripts/shared-folders

#!/bin/sh
sudo mount -t vboxsf music /mnt/share/music
sudo mount -t vboxsf videos /mnt/share/videos
sudo mount -t vboxsf pix /mnt/share/pix
sudo mount -t vboxsf dox /mnt/share/dox
sudo mount -t vboxsf down /mnt/share/down

Los nombres que van luego de “vboxsf” son los que se designaron en el punto 1.

5. Agregar el script a los programas de inicio de Gnome: Desktop > Preferences > Sessions > Startup programs

Cómo evitar que Google Analytics contabilice mis propias visitas

Si Google Analytics está contabilizando tus propias visitas a tu sitio web eso puede implicar un margen de error en las estadísticas.

Si tenés un blog o sitio que no tiene muchas visitas, y vos estás visitándolo porque estás editando posts, haciendo cosas de programación, etc, puede ser que la cantidad de visitas propias esté distorcionando tus estadísticas.

Hay una manera simple de evitar que Google Analytics contabilice tus visitas y es con un plugin de Google para Chrome que lo podés descargar desde acá.

Cómo hacer un redirect 301 en blogger

Hay veces en las cuales es necesario hacer un redirect de una página o post en un sitio web.

Esto también puede ser necesario en un blog, ya que se pueden eliminar contenidos, o cambiar, actualizar, etc.

Ahora bien, para hacer un redirect hay varias maneras posibles. Puede hacerse por javascript, desde un lenguaje de servidor (PHP, Java, etc), con la etiqueta meta redirect, etc. Cada opción tiene sus pros y contras.

En Blogger no se puede hacer un redirect con lenguaje de servidor ya que no hay lenguaje de servidor 🙂

Se puede hacer con JS, pero no sirve para no perder el posicionamiento en Google.

Así que la mejor opción es hacer un redirect 301. Ahora la cuestión es cómo hacer un redirect 301 en Blogger?

Simple, hay que ir a Configuración > Preferencias para motores de búsquedas > Errores y direccionamientos > Redireccionamiento personalizado y hacer click en “Editar”. Acá hay que poner la URL antigua y la URL a la que debe redirigir. Simple!

Programador PHP Argentina

Hola.

Soy un programador freelance de Argentina que se dedica al desarrollo de aplicaciones web.

Desde hace más de 7 años que me dedico al desarrollo de aplicaciones PHP. Empecé con PHP “puro y duro” por así decirlo.

Luego estuve viendo los diferentes frameworks MVP del mercado de los cuales los que más me gustaron son Zend y Symphony.

Y finalmente comencé a trabajar con los diferentes CMS que hay para PHP para no “reinventar la rueda” 🙂

Trabajé con WordPress y Drupal a nivel CMS. Y en cuanto a tiendas online con Magento y Prestashop.

Ahora mismo, además de dedicarme al desarrollo de aplicaciones web me encuentro trabajando en el desarrollo de aplicaciones móviles. Principalmente me dedico a iOS con Objective, pero también (dependiendo del proyecto) trabajo con Android (desde 2.2 en adelante) y con jQuery Mobile (para el caso de web applications móviles).

Si tenés alguna duda o querés un presupuesto contactame acá que hoy mismo me pongo en contacto con vos.