Developing Frogtek

El blog del Departamento de Tecnología

Categoría: humor

Art-attack en Frogtek

Un rato, unos cuantos cientos de post-its, mucha ilusión y algo de frikismo.

El resultado:

Aquí huele a cuco (V)

Código del Jurásico encontrado en tiendatek.

 
        if (enteredAmount == 0) {
            mTheProduct.setProdPrice(0);
        } else {
            mTheProduct.setProdPrice(enteredAmount);
        }

Al parecer los cambios en la Pangea nos afectaron un poco.

¿Algún comentario o mejora?

Nuestro amigo Eduardo Moreno propone una versión mejorada:

if (enteredAmount * enteredAmount == 0) {
   mTheProduct.setProdPrice(Math.round(3.5* Math.cos(Math.PI/2)));
} else {
   mTheProduct.setProdPrice(enteredAmount * Math.exp(0));
}

Aquí huele a cuco (IV)

Bueno, un poco de autocrítica nunca viene mal y en este caso yo soy uno de los culpables de este desaguisado….

public int getVendorsCount() {
	if (this.mDm.openDBConnection()) {
		this.mDbHelper = new VendorsDbAdapter();
		Cursor cursor = this.mDbHelper.getVendorsCount();
		if (cursor != null) {
			cursor.close();
			return cursor.getCount();
		}
		this.mDm.closeDBConnection();
	}
	return 0;
}

Fijaos bien: estamos intentando acceder a un cursor después de cerrarlo….. además solo cerramos la base de datos si el cursor es null… vamos, una joya de código. Gracias a que tenemos test funcionales en Android hemos encontrado semejante esperpento. Ya vamos recuperando poco a poco lo invertido en ellos 🙂 .

Así he dejado el código después del pertinente refactor.

public int getVendorsCount() {
	int vendorsCount = 0;
	if (this.mDm.openDBConnection()) {
		this.mDbHelper = new VendorsDbAdapter();
		Cursor cursor = this.mDbHelper.getVendorsCount();
		if (cursor != null) {
			vendorsCount = cursor.getCount();
			cursor.close();
		}
		this.mDm.closeDBConnection();
	}
	return vendorsCount;
}

¿Bastante mejor no? ¿Alguna sugerencia para mejorarlo todavía más?

Jose B. Cortés ganador de la segunda edición de la carrera del cerdito

Tras un mano a mano apasionante con el maestro Linares y un emocionante e imprevisible sprint Jose se ha alzado con el segundo cerdito de nuestra andadura. Lo cierto que es que podría haber ganado cualquiera de los dos así que vaya desde aquí la felicitación para ambos.

Hemos aprovechado el Ranatón y la presencia entre nosotros de David para hacer la entrega de premios que como siempre ha consistido en manosear un poquito al cochino que tenemos por hucha antes de dedicarnos al noble arte de destriparlo (es más fácil de decir que de hacer). Aquí tenéis una foto donde sale Linares (anterior ganador), David nuestro CEO y fundador y Jose, flamante ganador con coleta y sudadera de Android.

El cerdo contenía 34€.

Aquí huele a cuco (III)

Cuando entras en una empresa nueva, descubres partes del código en cierto modo inexplicables. Muchas de ellas las achacas a tu poca experiencia con los entresijos de las aplicaciones que acabas de conocer. Otras, en cambio…

public void makeAppCrash() {
	DataAccessManager.getDbHelper().execSQL("select * form mamamam");
}

De este fragmento se extraen varias dudas:

  • ¿Por qué queremos que en producción se rompa la aplicación?
  • ¿Qué llevó a alguien a escribir “mamamam“?
  • ¿Por qué pone “form” en vez de “from“?

Muchos de estos misterios seguirán sin tener una respuesta. Mientras tanto, el código todavía sigue intacto en busca de alguien que descubra sus más profundos secretos

Aquí huele a cuco (II)

Revisando el código fuente que almacena una venta en la base de datos de la aplicación, me he encontrado con lo siguiente:

public long save(long customerID, long discount, int type, int deviceType) {
        if (this.mDm.openDBConnection()) {
                […]
        }
        this.mDm.openDBConnection();
        […]
}

¡Claro que sí! Por si acaso no estaba la conexión con la base de datos abierta, la abrimos de nuevo en lugar de cerrarla…

Aquí huele a cuco (I)

Desde Frogtek siempre hemos querido buscar la excelencia en nuestro código y en nuestro métodos. El pair programming, el desarrollo orientado a tests y la revisión de código forman parte de nuestro día a día. Pero como el ser humano es propenso a fallos y la mente humana no funciona a veces como debería, podemos ver que no todo es perfecto en el paraíso

Con esta entrada queremos inaugurar una sección en la que sacaremos a relucir los trapos más sucios de nuestros programadores. Bienvenidos todos a la nave del misterio…

Comenzaremos con lo que encontramos en un archivo de Date Utilities, en el que habitan diversas funciones relacionadas con fechas. Concretamente nos fijaremos en dos de ellas

    public static String getFirstDayOfMonth() {
        Calendar c = Calendar.getInstance();
        c.set(Calendar.DAY_OF_MONTH, 1);
        return StringUtilities.getShortStringFromCalendar(c);
    }

    public static String get_nMonthAgoFirstDay() {
        Calendar c = Calendar.getInstance();
        c.set(Calendar.DAY_OF_MONTH, 1);
        return StringUtilities.getShortStringFromCalendar(c);
    }

¿Qué hay detras de este código? ¿Qué motivaciones ocultas llevaron a los programadores a crear este tándem siniestro?

Ganador de la 1ª Edición del West Cerdito Story Awards

[Si no sabes de qué va esto del cerdito te remitimos a uno de nuestros posts anteriores]

Bueno, basta de intriga. Nuestro primer ganador ha sido…

(redoble de tambores)

Javier Linares Villuendas, más conocido como “Maestro Linares“. Él solito y en apenas dos meses se hizo la friolera de 30 US y 21 Bugs, alcanzando la meta de los 50 post-its con bastante ventaja sobre el segundo.

Aquí lo vemos recibiendo el premio (es el de la derecha, el de la izquierda es sólo la azafata) consistente en:

  1. El derecho a decidir qué se hace con el bote acumulado, la ingente cantidad de 31.65€… me parece que no llega para el anhelado humidificador, pero ya queda menos. Por cierto, que aún estamos esperando su decisión
  2. Una pegatina en forma de estrella para su monitor. Si los campeones del mundo la tienen, nosotros no vamos a ser menos.  🙂
  3. Un viaje de ida y vuelta al stand de Frogtek en el próximo SIMO Network. Es decir, 3 días currando como un ca… mpeón (como no podía ser menos, claro).

Nos consta que en Fuentes de Ebro están meditando hacerle hijo predilecto.

La 2ª Edición del West Cerdito Story está ya en marcha… ¿quién será nuestro siguiente campeón?.

Frogtek canta a los Beatles

Compra ya el cd de “Los desarrolladores de Frogtek cantan a los Beatles”Beatles
con todos sus grandes éxitos:

  • Let it build
  • All you need is code
  • Submit and shout
  • Here comes the run
  • I want to hold your bug
  • Pair together
  • A .jar day’s night
  • y muchos más…

Humor para ingenieros: el Ibón* más geek…

“… el Ibón de IP”

*Ibón: Lago pirenáico de origen glaciar.