¿Cómo saber cuantas cifras tiene un número?

El logaritmo es la inversa de la potencia.

Entonces, al hallar el logaritmo en base 10 de determinado número, la parte entera representa la cantidad de cifras del número.

Por ejemplo:


Log(1) => 0
Log(9) => 0,95...
Log(10) => 1
Log(11) => 1,04...
Log(99) => 1,99...
Log(100) => 2

Así que de esta manera se puede hacer una función simple para contar las cifras. Por ejemplo en PHP se podría contar las cifras con la siguiente función:
<?php

function getCifras($number) {
   return intval(log($number, 10)) + 1;
}

echo getCifras(11);   // imprime 2
echo getCifras(100);  // imprime 3
echo getCifras(1999); // imprime 4

?>


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'></div>

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 <= Integer.MAX_VALUE); 
            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.