November 25, 2014

Variable not found

Interpolación de cadenas en C# 6

imageSeguimos con esta serie sobre las novedades de C# 6, y esta vez le toca el turno a una solicitada característica que recientemente ha entrado a formar parte de las elegidas para formar parte de esta nueva versión de nuestro lenguaje favorito: la interpolación de cadenas.

Dado que aún se encuentra en desarrollo no es posible probarlo de forma sencilla, por lo que de momento tendremos que conformarnos con sacar conclusiones basándonos en la discusión de diseño en Codeplex y de la documentación existente. Avisan además que la especificación puede ser modificada, por lo que todo lo que digamos aquí aún puede variar algo, aunque mayormente será (espero) válido.

En cualquier caso, el verbo interpolar se define por la RAE como “poner algo entre cosas” o “intercalar palabras o frases en el texto de un manuscrito antiguo, o en obras y escritos ajenos”. Y esto es justamente lo que permitirá esta nueva característica: la posibilidad de introducir valores de variables o resultados de expresiones en el interior de cadenas de texto sin necesidad de usar los incómodos mecanismos habituales, como la concatenación o alguna variante de string.Format() como  en el siguiente código:



En C# 6, podríamos conseguir lo mismo de la forma que se muestra a continuación, mucho más concisa y limpia:

image

El resultado, como podremos imaginar, es idéntico a las dos alternativas mostradas anteriormente. Pero observad los dos cambios importantes que encontramos aquí:
  • Primero, los literales de texto con interpolaciones deben estar precedidos del símbolo “$”.
  • Segundo, las expresiones a incluir deben ir especificadas entre llaves.
Durante el proceso de compilación, estas cadenas y las expresiones que se encuentren en su interior serán transformadas en una llamada a string.Format(), por lo que no existen ningún tipo de penalización del rendimiento en runtime, es un mero azucarillo sintáctico destinado endulzar la vida del desarrollador.

Este paralelismo con string.Format() hace que su uso sea prácticamente idéntico, excepto que en lugar de utilizar el índice de cada parámetro utilizaríamos directamente la expresión a mostrar.

Incluso podemos usar parámetros de alineación o formato, como acostumbramos a hacer:



Si quisiéramos introducir expresiones, el único aspecto adicional a tener en cuenta es que éstas deberán estar rodeadas por paréntesis:



Como carácter de escape utilizaremos la tradicional barra invertida back-slash "\", por ejemplo, si queremos incluir un carácter de apertura de llave en la propia cadena sin que sea interpretado como el inicio de una expresión.

En definitiva, se trata de una esperada incorporación (de hecho una de las más votadas en user voice), que nos ayudará a hacer nuestro código más legible y fácil de mantener. Nada que ver, desde luego, con esas interminables llamadas a string.Format() en las que era la ordenación de los parámetros lo que determinaba en qué lugar aparecían insertados los valores.

Aún no sé cómo encajará en un escenario en el que le veo utilidad, los literales al estilo heredoc, pero supongo que conforme se vaya cerrando el desarrollo lo tendremos más claro.

Ah, y como de costumbre, me gustaría finalizar recordándoos los artículos que llevamos ya hablando de las novedades de C# 6:
Publicado en Variable not found.

by José M. Aguilar (noreply@blogger.com) at November 25, 2014 12:52 PM

November 24, 2014

Maestros del Web (Editorial)

Diseño centrado en el usuario: el gran reto de los diseñadores digitales

Noviembre ya se ha convertido en una tradición para los obsesionados por la usabilidad. Es así como para este 2014 llegó a su novena edición el Día Mundial de la Usabilidad, motivo para que en más de cuarenta países del mundo se reunieran expertos, empresarios, profesionales y estudiantes de esta importante área de trabajo, para intercambiar ideas, experiencias y estrategias en torno a una sola cosa: el usuario. El usuario común y corriente en un proyecto digital.

Como usuaria común y corriente que soy me interesó mucho entender un poco acerca de la forma en que se integra al usuario final en el proceso creativo y en el producto final de un proyecto digital, así que quise participar en la celebración de este día en Bogotá, en la Universidad Jorge Tadeo Lozano, que cuenta con una de las más reconocidas facultades de Diseño Gráfico del país.

Contó con la participación de grandes exponentes como David Cooksey, Fundador y Director de Saturdave, consultora en arquitectura de información y experiencia de usuario; Kyle Soucy, Fundadora y Directora de Usable Interface, consultora de experiencia de usuario, especializada en desarrollo de interfaces web; y Valerio Alessio Pinna, especialista en comunicación multimedia y en diseño de interacción quien actualmente trabaja para videojuegos en Mixel, en la ciudad de Milán. Desde hoy y durante toda la semana en Maestros del Web estaremos publicando, una a una, las conferencias, empezando hoy con Lorena Escandón, quien presentó su conferencia “Creatividad colaborativa: un nuevo paradigma de la innovación”.

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="480" src="http://www.youtube.com/embed/iAsAwWhI8yQ" width="853"></iframe>

El usuario, lo más importante al momento de diseñar experiencias

Una de las conclusiones generales de esta reunión fue la necesidad imperiosa de integrar al usuario en el proceso de diseño y en el user experience (UX). Si los usuarios no son parte del proceso, entonces no se está haciendo UX.

La curiosidad, la observación, la atención a lo que siente el usuario y el tiempo que se dedique a pensar sobre esto es determinante para el éxito de todo proyecto digital. Es necesario poner en práctica todos los métodos directos e indirectos que existen para evaluar a los usuarios.

Pero lo más interesante que aprendí en este evento fue que los profesionales del campo del diseño deben asumir el gran reto de crear UX centrado en el usuario, pues muchas de las experiencias tecnológicas son creadas y pensadas desde el punto de vista técnico, hechas por personas muy técnicas que, en ocasiones, dejan de lado el poner a prueba  con personas comunes y corrientes sus productos y experiencias: esa inmensa mayoría quienes seremos los que disfrutaremos o padeceremos sus productos.

The post Diseño centrado en el usuario: el gran reto de los diseñadores digitales appeared first on Maestros del Web.

by Mónica Maldonado at November 24, 2014 08:13 PM

Variable not found

Enlaces interesantes 177

Enlaces interesantesAhí van los enlaces recopilados durante la semana pasada, espero que os resulten interesantes :-)

.Net

ASP.NET

Azure / Cloud

Conceptos/Patrones/Buenas prácticas

Html/Css/Javascript

Visual Studio/Complementos/Herramientas

Otros

Publicado en Variable not found

by José M. Aguilar (noreply@blogger.com) at November 24, 2014 12:25 PM

November 21, 2014

Maestros del Web (Editorial)

Convierte tu cámara en una smart-cámara con Lumera

El crowdsourcing ha empezado a tomar fuerza en Latinoamérica. Por ejemplo, hace poco te contábamos de BlueSmart, la maleta inteligente que se conecta por bluetooth con tu smartphone, un gadget con muchas ventajas para los viajeros.

Ahora el turno es para los fotógrafos.

Si eres un fotógrafo o un aficionado a la fotografía y tienes una cámara reflex sabrás que es algo tedioso tener que conectar la cámara al computador para pasar tus fotos y poder compartirlas.

2ddda1ca485bb94b29721f15019ecc1a_large

Aún más aburrido, si no tienes un computador a la mano, tendrás que esperar a llegar a casa para poder compartir tus fotos. Y mucho peor, después tendrás que pasarlas a tu smartphone si las quieres compartir en una red social que, como Instagram, solo permite compartir desde su aplicación móvil.

Lumera es un gadget que te ayudará a solucionar este problema. Simplemente debes conectarlo a tu cámara y tendrás el poder de compartir tus fotos cuándo quieras, desde dónde quieras al alcance de un clic. Y no solo compartir sino también hacer un backup de todo tu material en cualquier momento.

<iframe frameborder="0" height="480" scrolling="no" src="https://www.kickstarter.com/projects/hpsaturn/lumera-transform-your-camera-into-the-smartest-one/widget/video.html" width="640"> </iframe>

La preventa está abierta en Kickstarter y puedes tener el dispositivo desde $125 dólares.

El proyecto ha recaudado hasta el momento alrededor de $45000 dólares, un poco más del 50% de su objetivo. Para recibir la financiación deben llegar a los $90000 CAD, es decir alrededor de 80mil dólares antes del 9 de diciembre.

Lumera

Lumera nace con la idea de conectar las cámaras con los dispositivos móviles y gracias al activismo de los fundadores del proyecto el software y el hardware será open source, totalmente abierto a contribuciones.

La idea y ejecución están a cargo de un grupo de emprendedores colombianos, entusiastas del software libre y el hardware libre. En el equipo encontramos a Olga Noguera (Productora), Stephanie Gómez (Directora de arte y fotografía), Antonio Vanegas (Ingeniero de software), Andrés Calderón (Ingeniero de hardware) y Camilo Soto (Ingeniero de software).

El dispositivo se integra totalmente al cuerpo de tu cámara sin dar problema alguno al momento de utilizar un trípode. Además de eso tendrá una aplicación móvil desde donde se podrán realizar diferentes acciones en la cámara.

Es muy motivador ver que los latinoamericanos cada vez están aumentando su nivel de innovación y comenzando proyectos como éste. Para mí es digno de admiración que gente, como los creadores de este proyecto, representen a nuestros países en el mundo del crowdsourcing de hardware.

The post Convierte tu cámara en una smart-cámara con Lumera appeared first on Maestros del Web.

by Alejandro González at November 21, 2014 07:18 PM

November 20, 2014

Línea de código

Obtener elemento de un ArrayList

Hemos visto muchos ejemplos que manipulan ArrayList, que crean iteradores o iteradores de listas sobre un ArrayList. Pero como podemos realizar una operación tan sencilla como es obtener elemento de un ArrayList.

A priori podríamos pensar que tenemos que recurrir a un iterador para recuperar los elementos mediante el método .next().

  1. Iterator<String> it = al.iterator();
  2.  
  3. while(it.hasNext())
  4. System.out.println(it.next());

Pero sería muy complicado y nos obligaría a estar iterando sobre una lista.

Por otro lado podríamos pensar que ya que es un array puede ser que tenga el operador corchete [] para acceder a sus elementos.

  1. System.out.println(al[2]);

Esto no es así y el operador corchete no existe dentro de un ArrayList.

Podríamos ser más enrevesados y convertir nuestro ArrayList en un array, para, de estar forma poder acceder mediante el operador corchete.

  1. Object[] nombres = al.toArray();
  2. System.out.println(nombres[2]);

Pero la verdad es que la respuesta es mucho más sencilla y si queremos obtener elemento de un ArrayList la clave reside en utilizar el método .get() sobre el ArrayList, indicándole el índice del elemento que quieres recuperar.

De esta forma, si queremos recuperar el segundo elemento de nuestro ArrayList, nos bastará con escribir el siguiente código:

  1. System.out.println(al.get(1));

Y es que, al igual que todas las colecciones, el ArrayList se empieza a enumerar desde el índice 0 para el primer elemento.

Así que no le des vueltas y utiliza el método .get() para obtener elemento de un ArrayList.Similar Posts:

La entrada Obtener elemento de un ArrayList aparece primero en Linea de Codigo.

by Víctor Cuervo at November 20, 2014 07:20 PM

November 19, 2014

Variable not found

¿Problemas al compilar aplicaciones MVC 3 y 4 desde hace unos días?

ASP.NET MVCPues sí, a mí me ha pasado, así que lo comento por aquí porque es posible que alguien más se vea en esta situación al ir a tocar una aplicación MVC antigua.

Resulta que hace unos días Microsoft distribuyó a través de Windows Update un parche de seguridad denominado Microsoft Security Bulletin MS14-059, clasificado como importante, y cuyo objetivo es corregir una vulnerabilidad descubierta en sistemas basados en MVC desde la versión 2 relativa a la forma en que el framework valida los datos de las peticiones entrantes, y que hacer que un atacante utilizara técnicas XSS para obtener un acceso privilegiado a sitios web.

Hasta aquí todo bien, el problema viene cuando por cualquier motivo tenemos que volver a compilar esas aplicaciones. Las versiones de MVC anteriores a la 5 referenciaban directamente a ensamblados guardados en el GAC con un número de versión determinada, que la instalación del parche de seguridad ha incrementado. Como consecuencia, al compilar estas aplicaciones obtenemos errores variopintos como el siguiente:
Could not locate the assembly "System.Web.Mvc,Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35,processorArchitecture=MSIL".
La verdad es que al principio sorprende bastante (“¿Cómooo? Pero si hace meses que no toco esta aplicación, ¿cómo es posible que no compile? ¿Quién la ha roto?”), pero buscando un poco por la red es fácil encontrar varias soluciones.

La que a mí me ha funcionado consistió simplemente en ejecutar el siguiente comando en la consola del gestor de paquetes Nuget (ojo, ¡haced antes una copia del proyecto, por si falla!):

Install-Package Microsoft.AspNet.Mvc -Version <version> -Project <YourProjectName>
En la línea anterior debéis sustituir:
  • <YourProjectName> por el nombre de vuestro proyecto. Esto es simplente para asegurar que instaláis el paquete en el proyecto correcto si estáis usando una solución con varios de ellos.

  • <Version> depende de la versión del framework usada en el proyecto y debe ser:

    • 4.0.40804.0 si usáis MVC 4

    • 3.0.50813.1 si usáis MVC 3

Tras ello, Nuget descargará varios paquetes y dejará el proyecto actualizado.

Desde el blog oficial de herramientas y desarrollo web de .NET recomiendan comprobar que la propiedad “Copia local” esté activa en la referencia del proyecto hacia el ensamblado System.Web.Mvc, pues al parecer existe un bug conocido de Nuget que puede resetear dicha propiedad, y que necesariamente debe estar activa para que éste sea copiado a la carpeta /bin tras construirse la solución.

En mi caso no fue necesario hacer nada pues estaba todo correcto, y a partir de ese momento todo volvió a la normalidad y pude comenzar a compilar de nuevo sin problema.

Ya a la hora de desplegar al servidor, simplemente tened en cuenta unos detalles:
  • Tendréis que subir los binarios de Mvc, porque probablemente hasta el momento en el servidor se utilizaban los presentes en el GAC.
  • Estad atentos al web.config, porque en la misma instalación realizada por Nuget es posible que se hayan introducido modificaciones en él, que tendréis que actualizar en el servidor.
Por si esto no os funciona, os dejo un par de enlaces donde amplían la información y ofrecen algunas alternativas a este método:
Publicado en Variable not found.

by José M. Aguilar (noreply@blogger.com) at November 19, 2014 12:58 PM

November 18, 2014

Línea de código

Reemplazar un elemento del ArrayList

Un ArrayList contiene una lista de elementos enlazados. Cuando estemos manipulando una lista es posible que necesitemos reeemplazar un elemento del ArrayList. De esta forma sustituiremos el contenido de uno de estos elementos por otro contenido.

Para ilustrar el ejemplo vamos a empezar creando un ArrayList.

  1. ArrayList<String> al = new ArrayList<String>();
  2.  
  3. al.add("Víctor");
  4. al.add("Luis");
  5. al.add("Elena");

Si recorremos y mostramos el contenido del ArrayList por pantalla utilizando un iterador:

  1. Iterator<String> it = al.iterator();
  2. while(it.hasNext())
  3. System.out.println(it.next());

Veremos que se nos muestra el contenido:

Víctor
Luis
Elena

Ahora vamos a reemplazar un elemento del ArrayList. En concreto vamos a cambiar el valor del elemento "Elena". Para ello necesitamos saber dos cosas, la primera es que el método que nos permite cambiar un valor es el método .set() y la segunda es la posición que ocupa para reemplazar un elemento del ArrayList.

Así ejecutamos el siguiente código:

  1. al.set(2,"Teresa");

Vemos que se indica el valor 2 como parámetro ya que las posiciones del ArrayList empiezan a enumerarse desde el 0.

Si ahora volvemos a mostrar el contenido del ArrayList saldrá por pantalla:

Víctor
Luis
Teresa

Ya hemos visto lo sencillo que es reemplazar un elemento del ArrayList mediante el método .set().Similar Posts:

La entrada Reemplazar un elemento del ArrayList aparece primero en Linea de Codigo.

by Víctor Cuervo at November 18, 2014 07:00 PM

Variable not found

Expresiones lambda en miembros de función de C# 6

imageSeguimos hablando de las novedades de C# 6, y en esta ocasión nos centraremos en una interesante característica cuyo nombre, sinceramente, no estoy seguro de ser capaz de traducir de forma correcta del original “Expression bodied function members”. Quizás sería algo así como “expresiones en cuerpo de miembros de función”, pero bueno, lo importante no es el nombre sino el concepto, así que vamos a centrarnos en él.

Comencemos desde el principio. Los miembros de función son aquellos miembros de un tipo que contienen código ejecutable, como métodos, propiedades, indexadores, operadores y otros. En general, todos ellos permiten implementar su comportamiento mediante la introducción de un bloque de código, tradicionalmente enmarcado entre llaves.

Pues bien, esta novedad del lenguaje permite sustituir el cuerpo de miembros de función por una concisa expresión lambda, logrando simplificar bastante el código y acelerando su creación.

Pero veámoslo con un ejemplo. Observad la siguiente clase, y más concretamente la cantidad de caracteres necesarios para implementar su propiedad de sólo lectura FullName en C# tradicional:



A partir de C# 6, podremos dejarla así de limpita:



Genial, ¿verdad? De un plumazo hemos eliminado muchísimo ruido de nuestro código, mejorando la legibilidad y evitando gran cantidad de golpes de tecla. Observad que incluso hemos eliminado el bloque get, implícito cuando usamos la sintaxis lambda en una propiedad.

Aunque la lambda del ejemplo anterior es simplemente una expresión de concatenación, al codificarla podríamos usar cualquier tipo de expresión, y desde ella tendremos acceso a cualquier miembro que también tuviéramos disponible al usar la sintaxis tradicional, como sus demás miembros de instancia o estáticos, privados o públicos.

De nuevo volviendo al ejemplo anterior, hemos mostrado cómo reescribir una propiedad, pero por supuesto podemos hacer lo mismo con métodos. Esto será especialmente interesante para simplificar aquellos cuyo cuerpo sólo tengamos una línea con un return; como muestra, fijaos que controladores MVC más bonitos podríamos escribir en escenarios simples:

image

Bueno, y como podréis imaginar también podemos usar esta sintaxis con métodos estáticos:



Quizás la única precaución que hay que tener en cuenta es que en el caso de miembros de función que retornan void también podemos utilizar las lambdas, aunque en su interior sólo podremos usar expresiones sin retorno, al igual que ocurre con las lambdas tradicionales:



También los operadores personalizados o implícitos son buenos candidatos a utilizar esta sintaxis reducida, puesto que su cuerpo  consiste muy a menudo en una simple expresión de evaluación directa:



Asimismo, otro buen sitio para utilizarlo sería en los miembros indexadores:



Aunque pueda parecer obvio, un último detalle que creo interesante resaltar es que estas expresiones, a diferencia de las lambda tradicionales, no pueden tener cuerpo, es decir, no podemos usar llaves e incluir en su interior varias instrucciones. La verdad es que esto tiene bastante sentido porque en caso de necesitar un cuerpo ya tenemos la sintaxis anterior; esta nueva fórmula viene a ayudarnos cuando el cuerpo de un miembro de función es una simple expresión de evaluación directa.



En definitiva, de nuevo se trata de una mejora del lenguaje nada espectacular, pero sin duda interesante vistas a simplificar código y evitar pulsaciones de teclas innecesarias. En mi opinión será bien recibida y pronto tendrá bastantes adeptos.

Y por último, recordaros los posts anteriores de la serie por si queréis conocer otras novedades que acompañarán a C# 6:
Publicado en Variable not found.

by José M. Aguilar (noreply@blogger.com) at November 18, 2014 12:52 PM

November 16, 2014

Línea de código

Eliminar todos los elementos de un ArrayList

En este ejemplo vamos a ver como podemos eliminar todos los elementos de un ArrayList. De esta manera dejaremos elArrayList totalmente vacío.

Empezamos creando un ArrayList sobre el que insertaremos elementos:

  1. ArrayList<String> al = new ArrayList<String>();
  2.  
  3. // Añadir elementos a un ArrayList
  4. al.add("Victor");
  5. al.add("Luis");
  6. al.add("Elena");

Si comprobamos cuántos elementos contiene el ArrayList.

  1. System.out.println("La lista contiene "+al.size()+" elementos");

Veremos que nos responde que el tamaño es de 3 elementos.

Para eliminar todos los elementos de un ArrayList bastará con que ejecutemos el método .clear(). Este método lo ejecutaremos directamente sobre el ArrayList.

  1. al.clear();

Automáticamente el ArrayList se quedará vacío de elementos. Si volvemos a validar cuántos elementos contiene el ArrayList veremos que la respuesta es que el tamaño es de 0 elementos.Similar Posts:

La entrada Eliminar todos los elementos de un ArrayList aparece primero en Linea de Codigo.

by Víctor Cuervo at November 16, 2014 07:00 PM

November 14, 2014

Maestros del Web (Editorial)

Cómo empezar a anunciarte con Twitter Ads

Antes de que Twitter anunciara su servicio de Analytics podíamos acceder a ads.twitter.com y ver un poco sobre estadísticas de la cuenta, teníamos la posibilidad de anunciarnos y dar acceso a este administrador a otros usuarios.

En ese entonces no se permitía hacer publicidad en países de Latinoamérica, no fue sino hasta el 4 septiembre de 2014 que Twitter abrió la posibilidad de anunciar en 11 países, entre ellos Argentina, Chile, Colombia, Ecuador, Guatemala, México, Perú, y algunos países de Europa.

En Mejorando.la empezamos a probar está plataforma desde el 5 de septiembre, somos parte de las primeras empresas en usar este servicio en Latinoamérica. Entramos en el programa Twitter Business que permite registrar tu empresa y te da acceso a la plataforma de anuncios de esta red social.

¿En dónde van a aparecer mis anuncios?

Todos tus anuncios tendrán una ubicación determinada o se verán en ciertos dispositivos dependiendo del objetivo de la campaña, en función de esto vas a poder seleccionar el lugar en el que quieres que aparezcan.

tendencias twitter

Por ejemplo, con los tweets promocionados sólo puedes poner anuncios en la cronología de los usuarios y, obviamente, es una opción que no puedes modificar.

Cronología Twitter

Si hablamos de dispositivos, en un principio sólo podíamos escoger anunciar en ordenadores y portátiles, dispositivos Blackberry y web móvil en otros dispositivos.

segmentar twitter ads

Hace menos de dos meses Twitter actualizó su segmentación para incluir dispositivos iOS y Android.

¿Qué necesito para empezar en Twitter Ads?

Primero, solo necesitas un contenido que quieras promocionar: un tweet, tu cuenta, un negocio, cualquier cosa funciona para empezar a probar.

Segundo, vas a necesitar una tarjeta de crédito para que tus anuncios empiecen a funcionar, el cobro será por interacción (no te preocupes, luego profundizaremos en esto).

En nuestra experiencia empresarial Twitter Ads nos sirve  para aparecer en timelines en los que se está hablando de ciertos temas,  a quienes nuestros productos pueden serles de interés, como la publicidad en display. Estos anuncios los van a ver usuarios de tráfico casual que no tienen una intención de compra, de tal modo que esta modalidad de anuncio nos permite aparecer en el momento indicado, un factor clave para tener éxito.

Entre algunas historias de éxito con esta clase de anuncios tenemos a grandes empresas como ESPN y adidasHoops, y en mediana y gran empresa AirBnB y New Relic, empresas que hacen parte o no del mundo tecnológico y cuyos productos muy posiblemente ya estás viendoen tu timeline.

Y tú, ¿con qué vas a empezar a anunciar? Cuéntanos en los comentarios y espera la próxima semana un post más al detalle sobre las alternativas que nos ofrece Twitter Ads y los valores que podemos medir con esta nueva alternativa de publicidad.

 

The post Cómo empezar a anunciarte con Twitter Ads appeared first on Maestros del Web.

by Juan Pablo Rojas at November 14, 2014 07:19 PM

Línea de código

Número de elementos en un ArrayList

Cuando estemos manipulando una lista será muy útil saber cuál es el número de elementos en un ArrayList. Ya que lo normal es que operaciones del usuario estén añadiendo y eliminando elementos de forma continua.

Lo primero, crear el ArrayList.

  1. ArrayList<String> al = new ArrayList<String>();
  2.  
  3. // Añadir elementos a un ArrayList
  4. al.add("Victor");
  5. al.add("Luis");
  6. al.add("Elena");

Podemos saber cuál es el número de elementos en un ArrayList utilizando el método .size().

  1. int tamanio = al.size();
  2. System.out.println("El número de elementos es de "+tamanio);

Una vez que sabemos cuál es el número de elementos en un ArrayList podemos realizar cosas como recorrer el ArrayList, apoyándonos en el tamaño.

  1. for(int x=0;x<tamanio;x++) {
  2. System.out.println(al.get(x));
  3. }

¿Qué otras cosas se te ocurren en las cuales es interesante saber el número de elementos en un ArrayList?Similar Posts:

La entrada Número de elementos en un ArrayList aparece primero en Linea de Codigo.

by Víctor Cuervo at November 14, 2014 07:00 PM

November 13, 2014

Maestros del Web (Editorial)

Cómo contar historias increíbles en Internet

Algunas mañanas siento que Internet está lleno de cosas estúpidas, memes, selfies, hashtags, todo tan cercano al sinsentido. Pero la vida es casi siempre bella y me devuelve la fe con personas que como Mauricio,  Daniela y Maurits  dedican su vida a  hacer cosas no estúpidas para Internet. Respiro en calma.

Cada uno de ellos, desde diferentes países, se dedica a crear contenido increíble para los proyectos en los que se han involucrado: el Laboratorio de la Biblioteca Pública de Nueva York, la Biblioteca Nacional de Chile y Manuvo, una startup de desarrollo mexicana que abordó la empresa del contenido cultural, toda una aventura si tenemos en cuenta que México es uno de los países con un índice de lectura más bajo en la región. Hacer industria cultural en el tercer mundo, desde Internet, para el tercer mundo. Inspirador.

Posibilidades narrativas para la web

“Ver, oír, tocar y colaborar: posibilidades narrativas para web”, este es el conversatorio en que los encuentro, en la Biblioteca Nacional de Colombia, con motivo de la Segunda Semana  del Libro Digital.

En mí la desconfianza habitual ante los eventos: será que otra vez me tendré que fumar la manida frase de que el contenido es el rey. Y luego un publicista va a querer vendernos una estrategia en redes sociales, un blog, fotitos en Instagram, un hashtag y posicionar tu marca en buscadores.

Y yo que me aventuré a venir al centro de la ciudad. Espero no perder el tiempo, me digo, mientras tomo un tinto, no muy bueno, (un café, un americano, para nuestros lectores no colombianos). El auditorio con capacidad para unas 200 personas se llena. El conversatorio girará en torno a estas preguntas:

  • ¿Cuáles son los retos de la migración de lo analógico a lo digital?
  • ¿Cuáles son las limitaciones del formato digital?
  • ¿Cómo sirven las herramientas tecnológicas al propósito de masificar?
  • ¿Cuáles son los retos y oportunidades de la creación de contenido digital?

La memoria futbolística de Chile

Daniela Schutte

Sigue mi escepticismo. Pero entonces Daniela empieza su presentación. Nos cuenta que trabaja para el proyecto de Biblioteca Digital de Chile con el objetivo muy general de descentralizar el acceso a todo el material almacenado en la biblioteca. Uno de sus proyectos más interesantes ha sido la digitalización de la Revista Estadio, una publicación icónica del país, que circuló durante 41 años, y fue la encargada de masificar y almacenar la historia del fútbol chileno.

Al corazón del pop desde el NYPLabs

Mauricio Giraldo

Mauricio, bogotano a juzgar por su inconfundible acento, es un Ingeniero Industrial, especialista en diseño de interacción y desarrollador, asentado en Nueva York, quien trabaja para el NYPLabs, algo así como la división creativa, experimental, de la Biblioteca Pública de Nueva York, que ha creado productos tan alucinantes como el Building Inspector, Stereogranimator, una aplicación web que permite a sus usuarios tomar una foto del archivo y crear con ella un .gif  y What’s on the menu?, proyecto de locos que almacena miles de menús de restaurantes icónicos de la ciudad, de muchos años atrás.

Del desarrollo puro y duro a los poemas de Octavio Paz

Maurits Montañez

Maurits es mexicano, ingeniero y desarrollador que decidió aventurarse con su empresa Manuvo en la difícil industria cultural del tercer mundo, creando aplicaciones para tablets que ofrecen diferentes experiencias de consumo para productos culturales. Su primera incursión en este terreno fue con el poema Blanco, de Octavio Paz.

El tiempo me resulta demasiado corto, hubiera querido poder preguntarles más cosas. Me ha gustado estar en un lugar en el que la palabra contenido se toma suficientemente en serio e implica el uso de tecnologías y conceptos que están a la base de toda la creación web: gestores de contenido, software propietario y software libre, código abierto, GitHub, RoR, Python, HTML5, PHP, Objective-C, Swift, tecnologías que desde hace ya años, casi décadas, nos ayudan a seguir construyendo cosas maravillosas para Internet. Cosas no estúpidas para Internet.

No perdí mi tiempo. Haré un post, me digo, porque sí que vale la pena destacar esta clase de trabajos, sé que la síntesis no será tan rica como mi presencia en la Biblioteca Nacional y les diré a todos que nunca pierdan la oportunidad de ponerse en contacto con gente que hace cosas maravillosas.

Tras escucharlos hablar quedo con la sensación de haber invertido un par de horas con personas que entienden la importancia de crear una memoria digital que haga justicia a toda la cultura que hasta ahora se ha almacenado en millones de libros, cintas, pinturas, revistas, una memoria digna de ser encontrada por pobladores del futuro y que esté a la altura del empeño humano, desde la Piedra de Rosetta, los primeros escribas, los juglares, hasta Guttenberg, y todos los que han venido después, por conservar nuestras mejores creaciones.

Después de mis preguntas finales: ¿qué tecnologías corren detrás de los proyectos que desarrollan? y ¿cómo aprecia y deprecia el objeto digital al objeto físico? se da por terminada la reunión. Algunos curiosos se acercan a hacerme preguntas. ¿Qué es eso de GitHub y cómo es que se escribe? Y tú ¿en dónde es que trabajas y eso para qué sirve? Todavía no se enteran en qué siglo vivimos.

 

The post Cómo contar historias increíbles en Internet appeared first on Maestros del Web.

by Aleyda Rodríguez at November 13, 2014 08:56 PM

November 08, 2014

Berriart

NumCol, mi primer juego para móvil

No, no me he vuelto un desarrollador “indie” de videojuegos, pero hacía tiempo ya que tenía ganas de hacer uno, y el finde pasado por fin me decidí. Aprovechando la facilidad que da Cordova para encapsular aplicaciones HTML5 en WevViews y publicarlas en los markets de los diferentes sistemas operativos, he creado NumCol, el juego de agilidad mental con números y colores.

Es un juego pensado para partidas ocasionales, aprender a jugar es extremadamente sencillo y la duración de las partidas es corta, por lo que es ideal para jugar mientras esperas a alguien, para viajes en metro, o incluso mientras subes en el ascensor (no requiere conexión). Tiene diferentes niveles de dificultad por lo que pueden jugar niños y mayores, y un nivel especial para que los más rápidos tampoco se aburran.

No voy a negar que también ha sido muy sencillo de desarrollar, lógicamente no pretendo crear un estudio de videojuegos ni revolucionar el mercado, ĺo que pretendo simplemente con esto es probar el tema de crear aplicaciones para móviles y probar Cordova, algo que tenía pendiente. También he aprovechado para hacerlo con Vanilla JS, porque estoy tan acostumbrado a utilizar librerías javascript que casi tengo miedo a olvidar como es escribir javascript puro y duro, y dada la simpleza del desarrollo esta era una buena oportunidad para hacer una aplicación MVC desde 0.

Solo lo he sacado para Android por una sencilla razón, me parece muy cara la licencia de desarrollador de Apple. El juego es un “experimento”, no una idea de negocio, y a pesar de que he sacado una versión de pago y otra gratis con publi, no creo que genere ni siquiera los 99$/año que cuesta ser desarrollador iOS. Una cosa es que me guste dedicar mi tiempo libre a sacar cositas de estas y de paso aprender, y otra diferente que me cueste dinero.

Si a alguien que publique sobre juegos Android o lo que sea le apetece escribir sobre ello, yo encantado. Como he comprobado otras veces que a la mayoría, bloggers, periodistas…, les gusta que la información les venga preparada he preparado una especie de nota de prena donde dejo toda la información, capturas y demás: http://www.numcol.com/es/prensa/nota1.html.

Por último, si lo queréis probar, aquí lo tenéis:

Android app on Google Play

La entrada NumCol, mi primer juego para móvil aparece primero en Berriart.

by artberri at November 08, 2014 02:07 PM

November 06, 2014

Davilac

Facebook prohíbe obligar a los usuarios a hacerse Fans de la página

Ayer, miércoles 5 de noviembre, Facebook puso en marcha una nueva normativa en lo que respecta a acciones que obliguen a dar Me Gusta a una página. A partir de ahora, las empresas no podrán obligar a sus usuarios a hacerse fans de la página para poder participar en sorteos, concursos y otras promociones.

Esta nueva norma viene acompañada con cambios a nivel técnico, ya que Facebook va a eliminar de la API  para desarrolladores las herramientas y mecanismos que hacen que una aplicación pueda determinar si un usuario es fan de la página o no.

Facebook ha dado un periodo de 90 días para que las aplicaciones se adapten a la nueva normativa.

La referencia a esta normativa se encuentra en el punto 4.5 de la normativa de Facebook.

by Alicia at November 06, 2014 10:38 AM

October 31, 2014

Davilac

Halloween llega al nuevo doodle de Google

No es extraño hacer una búsqueda en Google y que, en días especiales, nos aparezca un doodle animado en vez del típico logotipo del buscador. Pues bien, una vez más, Google nos sorprende a todos con seis doodles dinámicos para celebrar la llegada de Halloween.

Esta vez podemos ver hasta seis doodles diferentes cada vez que hagamos una búsqueda en Google, que muestran escenas tétricas pero con un punto de humor. Desde una bruja preparando una poción hasta un fantasma persiguiendo a un niño que, a su vez, es perseguido por un perro.

A continuación podéis ver las seis versiones:

doodle 6 doodle 5 doodle 4 doodle 3 doodle 2 doodle 1

by Alicia at October 31, 2014 12:18 PM