October 01, 2014

Variable not found

Uso de miembros estáticos en C# 6, ¿una buena idea?

En posts anteriores hemos hablado del operador de navegación segura “.?” y de la inicialización de propiedades automáticas, y vamos a comentar ahora otra de las novedades de la versión de C# que viene en camino, pero que en esta ocasión no tengo claro que sea un avance en la dirección correcta. Os lo cuento y ya decidís vosotros ;-)

Hay escenarios en los que en el interior de una clase utilizamos de forma intensiva miembros estáticos de otras clases. Un ejemplo habitual podemos encontrarlo en componentes que hagan mucho uso de System.Math para la realización de cálculos matemáticos, o incluso en el conocido System.Console:




Pues bien, en C# 6 podremos indicar mediante un using que vamos a realizar llamadas a miembros estáticos de la clase que indiquemos, por lo que no será necesario especificarla en cada llamada:



Internamente, cuando el compilador encuentra esas llamadas a WriteLine() o ReadLine(), determinará que pertenecen al objeto System.Console porque no existe ningún otro candidato más apropiado que las implemente. Si la propia clase Program dispusiera de un método estático WriteLine(), se habría utilizado éste.

También se tienen en cuenta casos en los que la llamada pudiera resultar ambigua para evitar. Por ejemplo, si estamos haciendo un using de dos clases que implementan un método estático con el mismo nombre y signatura, el compilador se quejará y tendremos que referenciarlas de forma explícita, como hemos hecho hasta ahora.

Ciertamente usando esta característica podemos ahorrar muchas pulsaciones de teclas, así como hacer más claro nuestro código… ¿o no? El problema lo veo justamente ahí: en la claridad. Aunque visualmente el código resulta menos denso y más fácil de leer, estamos incluyendo un cierto grado de “ofuscación” (por llamarlo de alguna forma) que puede complicar la comprensión de lo que se hace o dónde se hace. Por ejemplo, fijaos en las llamadas que se realizan desde el siguiente método:



Podemos ver que usamos muchos métodos matemáticos y por tanto sería un caso de uso de esta nueva característica del lenguaje, pero en un vistazo no se sabríamos quién los está implementando. En versiones de C# anteriores a la 6, podríamos asegurar que Sinh(), Pow(), Sqr() o Floor() son miembros de la clase actual o algunas de sus antecesoras, pero en la nueva versión un using System.Math al principio del archivo podría invalidar esta afirmación.

De hecho, ni aún existiendo ese  using System.Math  podríamos estar seguros de dónde se encuentra definido un método, porque podríamos tener una implementación local a la clase del mismo que sería la utilizada aunque a nivel de código no quede explícitamente indicado. Y también puede dar lugar a confusiones casos como la llamada a Sqr() del código anterior porque, aunque parezca lo contrario, no existe en System.Math (el método que realmente existe es  Sqrt()).

En fin, supongo que ocurre como con muchas otras características del lenguaje, que no son de por sí buenas ni malas: todo depende del uso que se les dé. Probablemente hacer un uso razonable de esta característica en un contexto concreto y acotado podría ser útil para ahorrarnos trabajo, pero no tengo claro si el coste en términos de legibilidad compensará en muchos casos.

Ya con el tiempo, cuando vea cómo se utiliza y los problemas que crea en proyectos reales igual cambio de idea, pero de momento pienso que se podían haber ahorrado el esfuerzo.

Publicado en Variable not found.

by José M. Aguilar (noreply@blogger.com) at October 01, 2014 03:08 PM

Maestros del Web (Editorial)

¡Almacenemos el futuro Reddit en el Blockchain!

Un paso más adelante. Conectar la propiedad y los mensajes con Bitcoin

No veo tan descabellado luego de esta iniciativa que algún día, el valor que generes para cualquier proyecto online pueda no solo generarse conectado a criptomonedas. Imaginen no solo guardar la propiedad de los mensajes, sino también utilizar esa misma criptografía para distribuir la base de datos. Que muchas micro-transacciones almacenen contenido, distribuyan el material y además le sumen o resten valor a una conversación.

Ventajas inminentes:

  • Un buen sistema de distribución de contenido que nos ayuda a ir en busca de una mejor libertad de expresión.
  • Propiedad y almacenamiento de identidades digitales en las mismas wallets electrónicas donde almacenamos criptomonedas. Y que da mucha anonimidad en donde corresponda y se necesite.
  • Descentralización del hosting de una conversación. La base de datos no está en un solo lugar.

En lo técnico podríamos experimentar con una altcoin (una criptomoneda alternativa) nueva con ciertas características especiales de almacenamiento de los típicos campos que lleva una conversación (fecha, autores, participantes, título, contenidos, taxonomías, stats), pero también podría a futuro buscar conectarse directamente con el mismo Bitcoin que lidera la competencia en Criptomonedas sin una competencia fuerte. Aquí es donde veo que el proyecto Toshi de Coinbase podría ser muy conveniente.

También se podría pensar en Stellars (que me siguen encantando como la alternativa transaccional de las criptomonedas) como el camino para arrancar.

broken-reddit-2

El 10% del valor a la comunidad de reddit

En uno de los mejores ejercicios de conectar las empresas constituidas por acciones y fondos de inversión con los usuarios, Sam Altman nos recuerda una importante crítica a muchos espacios digitales:

Los usuarios crean gran parte del valor de sitios como reddit pero no son propietarios de este valor.

Por lo tanto van a compartir un 10% de ese valor a la comunidad, buscando a futuro que aumente esa propiedad. Operativamente lo quieren hacer por medio de una criptomoneda que podría nacer de la comunidad y podría ser basada en el código libre de Bitcoin. ¿Redditcoins?

¿Conexión con Bitcoin? ¿Con el Blockchain?

Somos varios los locos que confiamos en el Blockchain como tecnología. Y me encantó descubrir esta carta abierta a Reddit sobre la importancia de construir sobre Bitcoin en lugar de montarse con una altcoin.

Inversión. 50 millones en Serie B de Reddit

Reddit, la gran comunidad de Internet ha levantado 50 millones de dólares. No solo es una importante ronda de inversión en su serie B que valora le empresa en 500 millones sino que además está liderada por el actual CEO de Y Combinator, Sam Altman. Y participan muchos de los grandes fondos de inversión de tecnología en esta ronda.

¿Qué más opciones de proyectos que hoy en día usas verías con oportunidades de conexión con el Blockchain? De verdad hubiera soñado con que ello viniera con más que un manifiesto de no publicidad y un poco de esto.

Y si te gusta que escriba de criptomonedas y bitcoins, no dejes de comentar y seguir la discusión por twitter donde soy @cvander.


Christian Van Der Henst S. para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo


Síguenos en: @maestros | Fan page

by Christian Van Der Henst S. at October 01, 2014 12:36 PM

September 30, 2014

Maestros del Web (Editorial)

Mi nueva vida en un mundo lleno de emojis

Soy hija de la llamada Generación X. Crecí en un mundo en el que el Atari 2600 era una gran revolución, el juguete que todos los niños querían tener, en el que estaban de moda las Reebook, las medias calentadoras, las hombreras, y el copete de Alf (¡pero quién diablos es Alf se preguntarán muchos de ustedes!), El Chavo, Pac Man, The Cure, Soda Stereo (¡ya hasta se murió Cerati!) y Bon Jovi. En resumen, fui niña y me hice adolescente en los dorados 80.

Primera estación: Seattle ¡a la conquista del sueño americano!

Decidí, llegada mi adolescencia, explorar el mundo e irme a estudiar a USA, en la década de los noventa. Mi primera estación fue Seattle, allí acabé mi carrera en Mercadeo y Publicidad y conseguí mi primer empleo como Asistente de Mercadeo y Coordinadora de Eventos en la meca de la que en ese momento era la mayor empresa de tecnología en el mundo: Microsoft. Después de una gran experiencia personal y profesional en Seattle…

Segunda Estación: NYC, soy una ciudadana del mundo

¡Wow NYC! ¡La ciudad en la que todo se puede, la que te convierte en ciudadano del mundo por su diversidad cultural, racial y religiosa! Allí trabaje con BBDO Worldwide como Internacional Account Manager, después en ventas con Halstead Property, una de las mejores agencias de finca raíz de Nueva York y finalmente con Telefonica Internacional USA, como Asistente Ejecutiva del CEO.

En este último trabajo,debido al nivel protocolario requerido para las relaciones con embajadores, representantes de las Naciones Unidas y otras instituciones internacionales, era necesario y cotidiano el uso continuado de las expresiones Señor, Señora, Señor Don, Excelentísimo, Excelentísimo Señor, Ilustrísimo y hasta Su Majestad. Todas estas palabras eran parte de mi lenguaje diario. Palabras que aprendí durante todos esos años, que se convirtieron en mi día a día y que realmente, en esta otra parte del mundo tecnológico, están en vía de extinción.

Tercera Estación: de vuelta a Colombia, me siento como un … ¿dinosaurio?

Regresé a Colombia como una mujer vanguardista, después de 16 años de gran experiencia profesional y personal en USA.

¿Dije vanguardista? Bueno, eso creía, hasta que empecé a trabajar en el mundo digital con una empresa de educación online. Aquí he tenido uno de los shocks generacionales más interesantes y divertidos de toda mi vida.

Mi “aterrizaje” en esta empresa, dedicada a la educación online, en la que el perfil de todos mis compañeros de trabajo es muy techie, no fue por la alfombra roja de mi antigua vida entre la realeza y los diplomáticos. Me siento como un dinosaurio, les comento a mis amigas. El promedio de edad acá es de 25 años y la comunicación diaria al interior de la oficina es en un gran porcentaje a través de un servicio de comunicación corporativa llamado Slack.

A pesar de estar muy cerca unos de otros al interior de la oficina, interactuamos por diversos canales a través de este servicio, y el lenguaje y el léxico usado por todos es algo a lo que aún estoy tratando de ajustarme: expresiones como “avatar”, T_T, XD, n.n, U_U y el flujo constante de memes y emojis como forma normal de interacción (he tenido que averiguar el significado de estas palabras) son signo de una nueva realidad que no tiene revés, que para mí era completamente desconocida.

Muchos debates han surgido en esta época acerca de la decadencia del idioma como consecuencia de estas nuevas formas de comunicación digital, producto de las tecnologías emergentes de los últimos 10 años (Blackberry, iPhones, MSN y ahora Whatsapp, Line, etc…), aparatos y servicios que nos están llevando a un mundo de alguna forma más simplificado y quizás más eficiente en forma de intercambiar ideas, pensamientos, opiniones y sentimientos en ciertos contextos. Después de todo escribir en un chat sigue siendo una tarea complicada y es necesario recurrir a muchas de estas simplificaciones para una comunicación eficiente.

Gracias a este trabajo, con gente tan joven y tan involucrada en el mundo de la tecnología estoy experimentado un curso intensivo del futuro, no solo de la web, sino también de la forma de comunicación de las nuevas generaciones.

¿Próxima estación?

¯\_(ツ)_/¯


Mónica Maldonado para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo


Síguenos en: @maestros | Fan page

by Mónica Maldonado at September 30, 2014 10:01 PM

Línea de código

Insertar elementos en un ArrayList

Una vez que hemos aprendido a crear un ArrayList vamos a ver como podemos insertar elementos en un ArrayList de Java.

Para aprender a insertar elementos en un ArrayList de Java tenemos que saber es que un ArrayList implementa una lista de contenido dinámico. Es decir, según vayamos insertando elementos en el ArrayList, el tamaño del mismo se irá incrementando dinámicamente.

Lo primero que haremos será crear el ArrayList:

  1. ArrayList<String> al = new ArrayList<String>();

En este caso hemos tipado a String el ArrayList, ya que todas las colecciones tienen que ir tipadas y los elementos que vamos a insertar en el ArrayList serán cadenas.

Para insertar elementos en un ArrayList de Java vamos a apoyarnos en el método .add().

  1. al.add(Elemento);

El parámetro que recibe el método .add() del ArrayList es el elemento que queramos insertar. Como en este caso son cadenas de texto, es decir, String, realizaremos las siguientes operaciones:

  1. al.add("Victor");
  2. al.add("Luis");
  3. al.add("Elena");

Por cada una de las líneas insertaremos un elemento en el ArrayList.

Si quieres ver que elementos has insertado en el ArrayList puedes listar el contenido de dicho ArrayList.

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

Similar Posts:

La entrada Insertar elementos en un ArrayList aparece primero en Linea de Codigo.

by Víctor Cuervo at September 30, 2014 06:00 PM

Maestros del Web (Editorial)

Alibaba, el Amazon chino que conquista la bolsa de valores (y el mundo)

Jack MaHace apenas unos días tuvo lugar el IPO más grande de la historia en los mercados de Estados Unidos. Se trata de Alibaba, el sitio de comercio electrónico más grande de Asia, que muchos describen como una combinación entre Amazon y Ebay, pero más grande.

La operación convirtió de inmediato a su fundador, Jack Ma, un profesor de inglés, en multimillonario y en la primera persona de esta nacionalidad que logra llegar a la portada de Forbes.

La operación permitió que Alibaba captara capital por un valor cercano a los USD 21.800 millones, capital que permitirá a esta empresa seguir dominando la industria de comercio online del país emergente más grande del mundo, China.

El capital conseguido por Alibaba es de tal magnitud que permitió que la empresa alcanzara un valor de mercado de USD 168.000 millones, una cifra que es superior al valor de mercado de Ebay, Twitter y Linkedin juntos. Incluso, hacia fin de de año, Alibaba podría superar en valor de mercado a empresas tan icónicas como Coca-Cola, Intel y Oracle.

infograf__a_alibaba

La acción abrió a una cotización de USD 68 en su debut en la bolsa, y alcanzó una valorización del 38% a USD 93,89 al cierre de su primera sesión. Así, basados en el precio de cierre del primer día, Alibaba superó los USD 241.000 millones en valor de mercado, lo que la convierte en la segunda empresa más grandede Internet después de Google.

Las perspectivas acerca de una explosión del mercado de comercio electrónico chino sugiere un gran potencial para la empresa. No obstante, Alibaba enfrenta muchos retos relevantes a largo plazo, como el aumento en los costos en la unidad de negocios B2C (bussiness to client) y los obstáculos regulatorios por parte del Gobierno chino que restringen sus negocios operacionales.

Otro de los datos que deja el IPO es el hecho de que Yahoo, con una participación del 16,3% en Alibaba, le permitió un aumento en caja de USD 8.300 millones, una vez hizo efectiva la venta el día del debut.


Sergio Zafra para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo


Síguenos en: @maestros | Fan page

by Sergio Zafra at September 30, 2014 04:13 PM

Variable not found

Declaración de variables en expresiones de C# 6

C#Seguimos comentando novedades que encontraremos en la próxima versión de C#, y en esta ocasión vamos a ver una nueva característica que, sin resultar espectacular, sí nos va a proporcionar una fórmula más cómoda y concisa para resolver algunos escenarios bastante habituales.

Seguro que os resulta familiar el siguiente código, más que nada porque lo habréis escrito decenas o cientos de veces:


Personalmente, la introducción de parámetros out en las llamadas siempre me resulta incómodo porque me hace volver atrás para declarar una variable expresamente para la ocasión. Y hay otros casos en los que la sensación de vuelta atrás es igualmente molesta.

Pues la respuesta de C# a este frecuente escenario, y como veremos enseguida a otros más, son las llamadas declaration expressions, que vendrá a traducirse como expresiones de declaración o algo así. Esta nueva característica permite introducir declaraciones de variables en el interior de expresiones, por lo que el ejemplo anterior podría implementarse de forma más concisa:



Como podréis observar, hemos introducido la declaración de la variable en línea, justo en el lugar en el que la vamos a necesitar, lo que nos ahorra esa molesta vuelta atrás para declararla.

Veamos otro ejemplo. Esta vez vamos a utilizar una expresión declarativa con un parámetro ref que inicializamos también sobre la marcha:



¿Interesante, verdad? Pues veamos otro ejemplo bastante frecuente: el uso de variables para almacenar temporalmente el resultado de una expresión que necesitamos reutilizar más adelante. Seguro que no son pocas las veces que os encontráis con un escenario como el siguiente:



Por supuesto, a nadie se le ocurriría dejar ese código así; lo normal sería utilizar su equivalente más legible y eficiente:

image

Pues bien, usando la declaración en expresiones podríamos obtener un código como el siguiente:

image

Con esto, además de no tener que volver atrás para declarar la variable cuando estamos escribiendo el if, habremos conseguido en efecto colateral bastante interesante: no polucionar el bloque de código en el que nos encontramos con variables que sólo tienen sentido en un ámbito interior.

Es decir, en el nuevo C# la declaración de una variable en una expresión dará a ésta visibilidad únicamente en el interior del bloque de código en el que la utilizamos. Volviendo al ejemplo anterior, la variable index sólo será visible dentro del if, que es precisamente donde la necesitamos.

Como ya habréis adivinado, podemos utilizar este tipo de expresiones en cualquier punto de nuestro código: prácticamente, en todos los lugares en los que podamos introducir expresiones, podremos declarar variables. Esto quiere decir que también tendremos capacidad de usar esta característica desde el lado oscuro de la legibilidad:



Una última observación. Habréis notado que no es necesario indicar explícitamente el tipo de dato cuando declaramos variables de esta forma. Siempre que la inferencia de tipos tenga información para hacer bien su trabajo podremos usar var, mientras que en otras ocasiones tendremos que ser más explícitos. Vaya, que será exactamente igual que cuando declaramos variables de la forma tradicional.

En definitiva, creo que es una incorporación interesante al lenguaje que agilizará la codificación en esos escenarios tan frecuentes y, como efecto colateral, nos ayudará a que el ámbito de las variables sea más cercano a su punto de utilización. Pero como todo, úsese con sentido común ;-)

Y si queréis conocer más sobre el C# que se avecina, no os perdáis los posts anteriores de la serie:
Publicado en Variable not found.

by José M. Aguilar (noreply@blogger.com) at September 30, 2014 11:52 AM

September 29, 2014

Variable not found

Enlaces interesantes 171

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

.Net

ASP.NET

Azure / Cloud

Data access

Html/Css/Javascript

Cross-platform

Otros

Publicado en Variable not found

by José M. Aguilar (noreply@blogger.com) at September 29, 2014 11:55 AM

September 28, 2014

Línea de código

Crear un ArrayList en Java

Un ArrayList es una colección de Java que implementa el interface List y que por lo tanto nos puede servir como implementador de listas.

Una de las cosas que tenemos que saber a la hora de crear un ArrayList en Java es que se crean con un tamaño por defecto, que podemos de forma dinámica ir añadiendo elementos y que en el caso de que el ArrayList supere su tamaño predefinido, automáticamente se le asignará un nuevo tamaño.

Para crear un ArrayList en Java tenemos tres formas:

Crear un ArrayList vacío

Para crear un ArrayList en Java vacío solo tendremos que instanciar la clase ArrayList mediante un constructor.

  1. ArrayList<String> al = new ArrayList<String>();

Recuerda que las colecciones hay que tiparlas. En este caso hemos tipado a String el ArrayList

Crear un ArrayList con un tamaño por defecto

Para crear un ArrayList en Java con un tamaño por defecto bastará con que indiquemos en el constructor el número de elementos que queremos que tenga en ArrayList.

  1. ArrayList<String> al = new ArrayList<String>(3);

En este código hemos indicado que el ArrayList tendrá capacidad para 3 elementos.

Crear un ArrayList desde otra colección

También podremos crear un ArrayList desde los datos que contenga una colección: un vector, un conjunto,...

Para ello lo primero será crear una colección con datos. En este caso vamos a crear un Vector.

  1. Vector<String> vector = new Vector<String>();
  2. vector.add("Irene");
  3. vector.add("María");

Y ahora vamos a crear el ArrayList con el contenido de este Vector. Para ello lo pasamos como parámetro del ArrayList.

  1. ArrayList<String> al = new ArrayList<String>(vector);

Ahora ya solo te queda elegir la forma en la que quieres crear un ArrayList en Java.Similar Posts:

La entrada Crear un ArrayList en Java aparece primero en Linea de Codigo.

by Víctor Cuervo at September 28, 2014 04:52 PM

September 25, 2014

Línea de código

Webinar Perceptual Computing en Español

developer-pinchNos comparten el vídeo sobre el Webinar de Perceptual Computing en Español que se celebró dentro del marco del concurso Real Sense App Challenge 2014.

Tanto si están compitiendo en el Real Sense App Challenge 2014 como si no, no dejes la oportunidad de echarle un ojo al vídeo y ver como funciona la programación perceptual mediante el Webinar Perceptual Computing en Español.

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="360" src="http://www.youtube.com/embed/CGOa-Xi7SZw" width="640"></iframe>

Similar Posts:

La entrada Webinar Perceptual Computing en Español aparece primero en Linea de Codigo.

by Víctor Cuervo at September 25, 2014 06:00 PM

Yukei

Actualizaciones de seguridad automáticas en Ubuntu

Un tip breve pero muy útil, casi necesario: si estás a cargo de algún servidor, puedes activar la instalación automática de actualizaciones de seguridad lo que alivia bastante la carga ante anuncios de vulnerabilidades.

Para Ubuntu, puedes consultar la siguiente guía en su documentación comunitaria: Automatic Security Updates.

Las actualizaciones de seguridad se distribuyen a través de un repositorio específico, y cuando se publica una nueva versión por lo general va a estar limitada a solucionar una vulnerabilidad, por lo que el riesgo de que surja alguna incompatibilidad es muy baja.

Tags: , ,

Related posts

The post Actualizaciones de seguridad automáticas en Ubuntu appeared first on yukei.net.

by Felipe Lavín Z. at September 25, 2014 02:19 PM

September 24, 2014

Maestros del Web (Editorial)

El día en que los cuadros por segundo le ganaron a la resolución

En el mundo de los videojuegos siempre ha existido una lucha por cuál es la mejor plataforma, hay una interminable disputa entre Xbox, Sony, PC … y  ¿Nintendo? Seamos honestos,  a los seguidores de la gran N no les interesa luchar porque ya saben qué consola comprar y son fieles.

Entonces la lucha entre las otras plataformas se da por mejorar algunas características de sus juegos, por ejemplo, la resolución es uno de esos aspectos en los que últimamente se está enfocando la comunidad gamer, gracias a la llegada de la nueva generación de consolas.

Pero ¿en realidad importa la resolución? La respuesta corta es no, dentro de los límites razonables.

mario-kart-8_1920x1080

La resolución no importa (mucho), los cuadros por segundo sí

Seamos sinceros, jugar Battlefield 4 a 1080p no es muy diferente que jugarlo a 720p, a menos de que tengas un televisor de 72’’ en donde un pixel tenga el tamaño de una moneda y simplemente sea injugable a baja resolución.

En realidad que la imagen sea más grande no significa que el juego sea mejor, simplemente al escalarlo se pixelará menos, así que decidir cuál plataforma es mejor basándose solamente en la resolución es un error, pues el juego no es solo el tamaño de la imagen, y la posibilidad de jugarlo en una pantalla de 32’’ a 1080p o 720p no hace una gran diferencia.

Por otro lado los cuadros por segundo (fps) sí son importantes, esta es una de las razones por la que los desarrolladores de videojuegos hacen que un juego salga en dos plataformas con distintas resoluciones.

¿Por qué los cuadros por segundo sí importan? Simplemente porque son los que hacen que un juego sea un juego: los cuadros por segundo son la métrica que se usa para medir cuántas veces cambia la imagen de la pantalla por segundo, no es lo mismo ver la foto de un juego a un vídeo del mismo y, por eso, cuantos más cuadros por segundo tenga, más fluido se verá el juego.

Crysis 3 a 8k de resolución

La imagen anterior es del juego Crysis 3, con las gráficas configuradas en ultra-alta definición y 8k de resolución se ve increíble (aquí una galería con más fotos a 8k).

Solo imaginen el poder de la computadora que se usó para tomar la foto. Es cierto que el juego se ve increíble y se preguntarán ¿por qué no hay vídeos de gente jugando a esta resolución? pues porque a esta resolución y con ese nivel de detalle el juego funcionaría a 2 cuadros por segundo, esto significa que la pantalla se refrescaría 2 veces por segundo y sería simplemente injugable. Para que entiendan cómo se ve, aquí hay un vídeo a esa velocidad.

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="360" src="http://www.youtube.com/embed/-Qk7ZSXujRo" width="640"></iframe>

Se puede ver épico, pero simplemente no se puede jugar, puedes tener una resolución de 1080p pero si juegas a menos de 24 cuadros por segundo de nada sirve, la experiencia de juego no sería ni de cerca la misma y acabarías frustrándote.

Esta es una de las razones por la que los desarrolladores prefieren sacar juegos a una resolución de 900p a 30 cuadros por segundo que a 1080p a 24 cuadros por segundo: hay que sacrificar algo y gracias al programador no es la velocidad.

No digo que la resolución no es importante en algunos casos, no vamos a comparar jugar a 640p con hacerlo a 1080p, pero entre 720p y 1080p la diferencia no es realmente importante.

La resolución no es una gran ventaja, los cuadros por segundo sí. Si quieres verlo por ti mismo te invito a que visites 30fps vs 60fps y veas una comparación gráfica del mismo juego a 30 y 60 cuadros por segundo lado a lado.

Al final cada persona tiene sus propias opiniones ¿Prefieres sacrificar resolución o cuadros por segundo?


Link Strifer para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo


Síguenos en: @maestros | Fan page

by Link Strifer at September 24, 2014 10:25 PM

September 22, 2014

Línea de código

Perceptual Computing

developer-pinchVenimos  hablando sobre la programación perceptual con Intel y su evento de Webinar Real Sense App Challenge 2014 en el que puedes llegar a conseguir hasta 1 millón de dólares en premios.

Pero , ¿en qué consiste la programación perceptual?

Utilizando la programación perceptual podemos:

  • Identificar movimientos de la mano y de los dedos, con el SDK de Intel Real Sense se pueden identificar hasta 22 articulaciones.
  • Análisis de la cara, en este caso se identifican 78 puntos lo cual permite seguir el movimiento de la cabeza. Pero no solo eso si no que se puede llegar hasta identificar emociones y sentimientos.
  • Tener gestos por defecto, ya que el SDK viene preconfigurado con gestos como pulgares hacía arriba o hacer la ola.
  • Reconocimiento vocal, aquí se podrán ejecutar comandos pronunciados por el usuario, así como realizar dictados.
  • ...

Fíjate las cosas que se pueden llegar a realizar...

<iframe allowfullscreen="allowfullscreen" frameborder="0" height="360" src="http://www.youtube.com/embed/DYzOSCX6gp0" width="640"></iframe>

Si esto te parece interesante no deberías dejar pasar la oportunidad de apuntarte al concurso Real Sense App Challenge.

 Similar Posts:

La entrada Perceptual Computing aparece primero en Linea de Codigo.

by Víctor Cuervo at September 22, 2014 10:50 PM

Variable not found

Enlaces interesantes 170

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

Data access

Html/Css/Javascript

Visual Studio/Complementos/Herramientas

Otros

Publicado en Variable not found

by José M. Aguilar (noreply@blogger.com) at September 22, 2014 11:55 AM

September 12, 2014

Yukei

APIs simples para cuestiones básicas

La simplicidad debería ser un objetivo fundamental en el diseño de una API pública, pero sabemos que en muchos casos no es así. Hace poco encontré dos APIs que son un buen ejemplo de cómo la simplicidad es una característica gravitante a la hora de elegir un servicio:

  • mindicador.cl es un servicio desarrollado por @lee_om que resuelve un problema básico pero muy común en Chile. Es una API de indicadores económicos de Chile, que entrega los valores que más probablemente te van a solicitar integrar en alguna aplicación: UF, UTM, Dólar, Euro, etc. Funciona sin registro y entega datos en JSON. Si vas a utilizarla, se un buen ciudadano y procura utilizar algún caché local.
  • Forecast for Developers es una API de los desarrolladores de Dark Sky, una aplicación de pronóstico meteorológico para iOS bastante popular. Puedes registrar una cuenta gratuita y utilizar sus datos con la condición de dar la atribución que corresponde (un Powered by Forecast basta) para consumir sus datos. La API es muy sencilla, pero la información que trae es muy completa… al punto que para algunas ubicaciones tienen las condiciones por minuto.

La lección acá es Keep it simple, stupid: un servicio para desarrolladores debe estar pensado para poder realmente trabajar con él. Si solicitas registro, que sea automático (yo te entrego mi e-mail y tú me entregas una API key); si es de pago, que se pueda ingresar mi tarjeta de crédito o hacer un pre-pago y listo… no queremos tener que escribirle a alguien ni quiero tener una “relación” con el servicio, sólo los datos, pronto, y de la forma más fácil posible para utilizarlos.

Tags: , ,

Related posts

The post APIs simples para cuestiones básicas appeared first on yukei.net.

by Felipe Lavín Z. at September 12, 2014 11:30 AM

September 10, 2014

Davilac

Las 25 startups de Internet móvil con valoración de más de mil millones de dólares

Aplicaciones de mensajería, redes sociales, almacenamiento en la nube y juegos son algunos ejemplos de startups que han crecido a un ritmo sin precedentes en Internet móvil. Según un estudio de Digi-Capital, la valoración de estas 25 startups ha logrado superar ya los mil millones de dólares.

Diferentes sectores podemos encontrar entre estas startups: desde mensajería y redes sociales, hasta juegos, apps de transporte, productividad y ecommerce. 12 de ellas proceden de Estados Unidos, 9 de Asia y 3 de Europa.

La mayoría de ellas son muy conocidas, como WhatsApp, Twitter, Dropbox, Line o Spotify, aunque otras como Dena y Gree seguramente no tanto.

  1. Twitter
  2. WhatsApp
  3. Uber
  4. Snapchat
  5. Dropbox
  6. LINE
  7. Gungho
  8. Square
  9. Pandora
  10. Colopl
  11. King
  12. Spotify
  13. Cheetah Mobile
  14. Kakao
  15. Supercell
  16. Cyberagent
  17. DeNA
  18. GREE
  19. IGG
  20. Rocket Fuel
  21. AirWatch
  22. Waze
  23. Evernote
  24. Instagram
  25. FunPlus

startups internet móvil

El rápido crecimiento de la telefonía e Internet móvil hace que los grandes del sector, como Google, Microsoft, Facebook y Apple, estén a la espera de nuevas adquisiciones.

mobile-internet-consolidator-pyramid

El informe completo está disponible en VB Insight, así como un resumen gratuito de 43 páginas.

by Alicia at September 10, 2014 11:21 AM