Blog sobre informatica, fotografia y un poco de lo que hago en la vida que me apasiona

builtwithbootstrap:

RankMyCode
@rankmycode is a community project to allow developers to share code in a social way

builtwithbootstrap:

RankMyCode

@rankmycode is a community project to allow developers to share code in a social way

Source: builtwithbootstrap

Clients From Hell: At 3am, after finishing a website template for a client who had to...

clientsfromhell:

At 3am, after finishing a website template for a client who had to have it “by 6am their time,” I sent an email letting her know that it was finished. The next day I get a call:

Client: I don’t appreciate you staying out all night when you should be working on my project.

Me: I’m sorry? I was…

Source: clientsfromhell

(via puria)

(via puria)

Source: puria

Text

So, I’ve started another little project and should be launching it once i get the time to brush up some details, It’s not something that will change the world but it was helpful to dig in some concepts i’ve been thinking about.

Some of the ideas behind it:

  • allowing users create content with their information and minimizing security risks
  • determin how can we make sites that doesnt required (almost any) storage
  • create content that users can find helpful with minimun user information and creating complex data from it.

The answers to some of this questins:

  • One way of minimising security problem is to remove aunthentication and  disabling user ownership of content.  I know this is not always possible, and it dependes on what kind of software you are creating, but in some cases it can be helpful.
  • The storage was kinda tricky becase there is now way to store information in… nowhere. The twist is to use get variables (yep like in the old times), as less descriptive as possible (each character counts), and javascript to parse them ( here is some kind that might be helpful Parse HTTP GET parameters with Javascript) and make them available.
  • The content part is where i’ll let your imagination fly, try to figure out how can you help others but trying to keep user input at minimun

I’ll try to keep this updated and hopefully with a link to the project!

"I’m not paying for hosting. My website doesn’t need hosting, it just hosts itself on the internet."

-
Source: clientsfromhell

LAMP Replacement: The Jason Stack

nosql:

Janos stands for: JavaScript, Node.js, and a NoSQL database. Dr. Axel Rauschmayer:

It is very fortunate for JavaScript programmers that two things have become popular: JSON as a data transfer format (for web services etc.) and NoSQL databases. Both are perfect fits for JavaScript: JSON uses JavaScript syntax. Schema-less databases make things as flexible on the database side as they are on the programming language side; you get the advantages of object-oriented databases without their messiness.

Even if I’m collecting some more interesting examples of Node.js + NoSQL database, I’m still not convinced that Node’s event-oriented approach is meant to replace the Apache + Perl/Python/PHP/Ruby or the heavy lifting Tomcat + Java server side components. But I can see it used in the “small- to medium-scale” apps.

Original title and link: LAMP Replacement: The Jason Stack (NoSQL database©myNoSQL)

Source: nosql

"These days, I’m using the Mozzarella one… With the fire."

- Client, when asked what internet browser he’s been using
Source: clientsfromhell

Text

Tipos genericos en una lista, 2 ejemplos y 2 precauciones:

  • <?> willcard que permite recibir cuaqluier tipo
  • <? extends T> toda la familia de todos los tipos que son subtipos de T. T es la cota superior
  • <? super T> toda la familia de todos los tipos que son supertipos de T. T es la cota inferior

Ejemplos:

A)

List<Number> ln = new ArrayList<Number>();

List<Integer> li = new ArrayList<Integer>();

li.add(2);

ln  = li; //ESTO NO SE PUEDE HACER

B)

List<? extends Number> ln = new ArrayList<Integer>();

List<Integer> li = new ArrayList<Integer>();

li.add(2);

ln  = li; //ESTO SI SE PUEDE HACER porque Integer extends Number

Precauciones:

  • si usamos <? extends T> para una coleccion, solamente se puede leer de la coleccion
  • si usamos <? super T> para una coleccion, solamente se puede escribir de la coleccion

Los tipos genericos se pueden usar en clases, y como todo es una clase se lo pueden aplicar a cualquier cosa que no sea un tipo Basico

Text

clientsfromhell:

Client: “I took a photo with the colours I want for my home page, I’ll send it to you, but I can’t seem to find my damn phone.”

Me: “Wait, so what are you calling me from?”

Client: “…”

Me: “…”

Client: “You can’t let ANYONE know about this!”

Source: clientsfromhell

Text

Bueno, despues de meditarlo un poco con la almohada y con un par de personas, termine haciendo una modificación a el widget alWidgetFormTimepicker para symfony que hace unos pocos dias habia hecho.

Este widget utiliza el jQuery UI Timepicker (pagina) y me gusto que dentro de unos de los ejemplos de utilización en la pagina antes mencionada, mostraba como se podía hacer un rango de tiempos donde el valor que se toma en el primero hace el segundo solamente permita elegir un horario mayor al primero.

Esto resulta sumamente util cuando se trata de tiempos, es ampliamente utilizado y ademas lo iba a necesitar para la aplicación que estoy desarrollando así que lo agregue.

Tanto el widget como el validador (alValidatorTimepicker) incorporaron un nuevo parametro de configuración  llamado ‘enable_timerange’. Por defecto toma el valor false, pero si se lo setea en true genera algo asi:

Widget Range

El validador se encarga de verificar que el rango de tiempos sea correcto (que el primero sea mas chico que es segundo) y devuelve un string con la forma “HH:MM-HH:MM”.

Espero que dentro de poco este en dcReloadedFormExtraPlugin y al alcance de todos lo interesados.

Saludos y prometo que no le voy a hacer mas nada salvo que me lo pidan o encuentre algo mas copado que agregarle :P.