Django model self reference

abril 4th, 2013 Posted by django, python 0 thoughts on “Django model self reference”

Una autoreferencia es cuando en un modelo una entidad puede ser hija de otra de la misma clase.

Por ejemplo, con la famosa clase Persona, el padre de una Persona sería otra Persona.

Esto a nivel de base de datos se hace con un campo “parent_id” que apunta a la PK de otra tupla.

En Django esto se puede hacer de la siguiente manera:

class Person(models.Model):
name = models.CharField(max_length=200)
parent = models.ForeignKey("self", null=True, blank=True, related_name="children")

Más sobre los modelos en Django.

Instalar Django en Ubuntu 12.04

abril 4th, 2013 Posted by django, python 0 thoughts on “Instalar Django en Ubuntu 12.04”

Django es un framework de desarrollo para aplicaciones web desarrollado en Python.

Instalar Django en Ubuntu es easy cake 🙂

1. Instalar paquetes opcionales que pueden ser utilizados con Django:

$ sudo aptitude install python-imaging python-pythonmagick python-markdown python-textile python-docutils

2. Instalación de Django:

$ sudo aptitude install python-django

3. Para comprobar que está instalado correctamente:

$ django-admin

FTS y SOUNDEX de SQLite en iOS

abril 3rd, 2013 Posted by ios, objective-c, sqlite 0 thoughts on “FTS y SOUNDEX de SQLite en iOS”

Agregar tu propia versión de SQLite para tu proyecto iOS es fácil.

1. Descargá desde http://www.sqlite.org/ la última versión de sqlite almagamation.

2. Descomprimilo en tu computadora y agregá a tu proyecto iOS los archivos sqlite.c y sqlite.h.

3. Abrí el archivo sqlite.h y agregá:

# define SQLITE_SOUNDEX 1
# define SQLITE_ENABLE_FTS3

4. Compilá tu proyecto 😉

Ojo! No hay que tener agregada la lib sqlite de xcode, sino pincha. Así que si ya la tenías linkeada en tu proyecto quitala.

iOS wireframes

abril 2nd, 2013 Posted by ios 0 thoughts on “iOS wireframes”

A veces es necesario realizar wireframes para aplicaciones iOS a mano alzada.

Acá hay dos imagenes que me vinieron al pelo para un proyecto para el cual estaba haciendo el workflow con el cliente 🙂

Cómo cambiar el favicon en Blogger?

abril 1st, 2013 Posted by blogger 0 thoughts on “Cómo cambiar el favicon en Blogger?”

El favicon es el icono pequeño que se ve en el navegador al lado de la URL de un sitio.

Para cambiar el favicon en un blog de Blogger hay que hacer click en el item del menú lateral “Diseño” y luego sobre el link “Editar” que se encuentra en el recuadro del favicon.

Luego hay que seleccionar el archivo a subir y hacer click en “Guardar”.


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

marzo 31st, 2013 Posted by php 0 thoughts on “¿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

marzo 30th, 2013 Posted by mac 0 thoughts on “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

marzo 29th, 2013 Posted by linux, open ssl, ubuntu, unix 0 thoughts on “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

marzo 29th, 2013 Posted by gwt, java, servlet 0 thoughts on “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 :)

marzo 28th, 2013 Posted by freelance 0 thoughts on “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.

Copyright © 2018 programadorfreelanceargentina.com

Programador Freelance Argentina