Crowdfunding: El Gobierno recapacita

Ante las numerosas críticas recibidas, el Ministro de Economía ha anunciado que finalmente en su nueva Ley de Fomento de la Financiación Empresarial no figurarán los límites de inversión en proyectos de Equity Crowdfunding (financiación en masa a cambio de participación accionarial) y Crowdlending (préstamos P2P) para los inversores profesionales (con renta superior a 100.000 euros), que en principio se pretendían limitar a 3.000 euros por proyecto y 6.000 por plataforma al año. No obstante, se mantiene dicho límite para los usuarios estándar que no se acrediten como inversor profesional.

Por otro lado, también se mantiene el límite referente a la recaudación de las empresas, la cuál, no podrá ser superior al millón de euros.

Las plataformas aseguraban que en el caso de limitar la inversión a 3.000 euros por operación o 6.ooo euros por plataforma las startups que recurren al crowdfunding perderían el 80% del capital invertido y el 40% de los inversores.

Realmente nos alegramos que reduzcan algunos de los límites que pretendían imponer al Crowdfunding dado que gracias a éste método se han conseguido financiar un gran número de proyectos, entre los cuales podemos destacar:

Star Citizen (Videojuego): + 43 millones de dólares.

Pebble (Reloj inteligente): + 10 millones de dólares.


CF

 

 

 

 

 

Tech Demo Day

¡Faltan 3 semanas para que empiece el Tech Demo Day!

Se celebra el 28 de mayo, es un evento organizado por la Salle Technova donde se reúnen Startups de base tecnológica, inversores, grandes empresas, agentes de innovación, medios de comunicación, estudiantes y profesorado. En total se espera una asistencia de unas 800 personas y es un evento ideal para hacer Networking y poder ver y participar en las nuevas ideas que van surgiendo en el mercado.

En Devinet ya hemos reservado entradas y si vosotros también queréis asistir podéis solicitarlas a través de este enlace: www.techdemoday.es  dónde también encontraréis más información sobre el evento.

!Nos vemos!

Tech Demo Day

 

L’Escola Nautic & Diving

¡Buenos días!

Ahora que ya se acerca el buen tiempo ya va apeteciendo ir a la playa y sí, aunque los programadores tengan fama de tener alergia al sol también les conviene salir de vez en cuando y disfrutar del mar.

Recientemente unos amigos Kevin y Nancy, profesionales en el mundo del submarinismo, han abierto una escuela de buceo en el Estartit juntamente con sus compañeros. Os lo recomendamos 100%  ya que tenéis diversión asegurada además de una experiencia única en la costa brava. Podéis encontrar más información en su página web: www.lescolanauticdiving.com que hemos desarrollado en Devinet. Las fotos son impresionantes y estar atentos puesto que van colgando novedades y ofertas que os pueden interesar!

¡Hasta pronto!

OLYMPUS DIGITAL CAMERA

Curiosidades de Javascript: Formas de invocar funciones (Parte 2)

¡Hola frikazos de la informática!

Este post es la segunda parte de la serie «Formas de invocar funciones en Javascript«, si no habéis leído el primero, ahí os dejo el link. Os recomiendo que le echéis un vistazo antes de continuar leyendo, ya que sino puede que os veáis un poco perdidos… o no… no se, pero leedlo que yo os esperaré, y nos sentaremos juntos frente al mar, y de la mano podremos camina-a-ar. Sigamos.

Siento que haya tardado tanto en salir la segunda parte del post, pero estas semanas hemos tenido mucho curro…

… y la verdad es que ha sido algo frustrante porque tenía tanto que daros, tantas cosas que contaros, tenía tanto codigóóóó… guardado para vosotros… (sé que código lleva acento en la primera «o»). Por lo visto, hoy me siento algo musical, pero ahora que ya he sacado algo inspiración de la Srta. Daconte, ahora sí, sigamos.

En el otro artículo nos quedamos en la invocación de funciones como funciones normales y «corrientes». El siguiente tipo de invocación que me toca explicar es la del constructor. Los que conozcáis la programación orientada a objetos ya sabéis lo que es un constructor , pero para los que no lo sepáis, un constructor es una función de una clase, que suele llevar el nombre de la misma clase en la que se encuentra, y sirve para instanciar una copia de la clase mediante la palabra clave new. En Javascript ocurre mas o menos lo mismo, pero como ya vimos en el artículo anterior, Javascript no tiene clases. Esto es un ejemplo de lo que me refiero:

var Pokemon = function(nombre) {
	this.nombre = nombre;
};

Pokemon.prototype.dameTuNombre = function() {
	return "Me llamo " + this.nombre;
}

var pikachu =  new Pokemon('Francisco el Rechulón Amarillo');

console.log(pikachu.dameTuNombre());
// Por consola sale: "Me llamo Francisco el Rechulón Amarillo"

Como ya había mencionado en el otro artículo, Javascript tiene un tipo de herencia que se llama prototipal,

… de ahí la palabra «prototype» que vemos en el código (es us paradigma de programación similar a la programación orientada a objetos).  Pues bien, si recordamos el post anterior, dije que las diferentes formas de invocar funciones en Javascript se diferencian por el valor que el lenguaje le asigna a «this». En este caso, cuando usamos la palabra clave «new» antes de llamar a la función, lo que hacemos es crear un objeto nuevo con un enlace al valor del prototipo de la función. Si debugáis código javascript, veréis que todos los objetos, incluidas las funciones, tienen un miembro llamado «__proto__», o algo así, pues bien, ese es el enlace al «padre» del objeto. Sé que es muy lioso, pero se entiende un poco mejor cuando toqueteas el código (yo personalmente hay cosas que sigo sin entender).  En cuanto al valor de «this», cuando se crea este enlace, el valor de «this» cambia al objeto actual, de esta forma se puede usar como el «this» de toda la vida.

Por suerte, la última forma de invocar funciones en Javascript quizá sea la más sencilla de todas, ya que tú mismo le dices a la función el valor que debe tener «this».

En Javascript, como ya hemos visto, las funciones también pueden tener métodos, y concretamente, hay un método muy interesante con el que vienen todas las funciones, y es la función «apply». Esta función recibe dos parámetros, el valor que debe recibir «this «, y un array de parámetros. Siguiendo con el ejemplo anterior: 

var Pokemon = function(nombre) {
	this.nombre = nombre;
};

Pokemon.prototype.dameTuNombre = function() {
	return "Me llamo " + this.nombre;
}

var pikachu =  new Pokemon('Francisco el Rechulón Amarillo');

console.log(pikachu.dameTuNombre());
// Por consola sale: "Me llamo Francisco el Rechulón Amarillo"

var nombre = Pokemon.prototype.dameTuNombre.apply(pikachu);
console.log(nombre);
// Por consola sale: "Me llamo Francisco el Rechulón Amarillo"

var bulbasur = new Pokemon('Jose María el Cachondo Verde');
var nombre2 = pikachu.dameTuNombre.apply(bulbasur);
console.log(nombre2);
// Por consola sale: "Me llamo Jose María el Cachondo Verde"

Como podemos ver, no importa el objeto que uses para invocar la función, con apply puedes cambiar el valor de «this» a cualquier cosa. En este ejemplo, podría haber creado un objeto nuevo que tuviese como miembro una función llamada «nombre», que devolviese una función, que devolviese otra función, que devolviese otra función, que devolviese un nombre aleatorio, con Javascript puedes complicar las cosas todo lo que quieras.

Pues eso es todo amigos, ya he demostrado que Javascript es un lenguaje mutante parasital. Para los frikis de Starcraft, Javascript es el Zerg de los lenguajes de programación, contiene bichos dentro de otros bichos y se esparce como la espuma. Y con esta imagen mental que os he dejado, me despido.

Hasta la próxima frikazos de la informática.

¡iOS 7.1 ya está aquí!

Después de 4 meses de espera desde la primera beta aparecida en diciembre del año pasado, por fin podemos decir que iOS 7.1 ya está entre nosotros. Como viene siendo habitual últimamente, podéis descargarla mediante Wi-Fi desde el propio dispositivo o utilizando iTunes.

A continuación os dejamos con el changelog de esta nueva versión extraídos directamente de la web de Apple y os animamos encarecidamente a descargarla sobre todo si utilizáis iPhone 4, ya que su rendimiento aumenta considerablemente:

  • CarPlay
    • iOS experience designed for the car
    • Simply connect your iPhone to a CarPlay enabled vehicle
    • Supports Phone, Music, Maps, Messages, and 3rd-party audio apps
    • Control with Siri and the car’s touchscreen, knobs, and buttons
  • Siri
    • Manually control when Siri listens by holding down the home button while you speak and releasing it when you’re done as an alternative to letting Siri automatically notice when you stop talking
    • New, more natural sounding male and female voices for Mandarin Chinese, UK English, Australian English, and Japanese
  • iTunes Radio
    • Search field above Featured Stations to easily create stations based on your favorite artist or song
    • Buy albums with the tap of a button from Now Playing
    • Subscribe to iTunes Match on your iPhone, iPad, or iPod touch to enjoy iTunes Radio ad-free
  • Calendar
    • Option to display events in month view
    • Country specific holidays automatically added for many countries
  • AccessibilityNew Camera setting to automatically enable HDR for iPhone 5s
    • Bold font option now includes the keyboard, calculator, and many icon glyphs
    • Reduce Motion option now includes Weather, Messages, and multitasking UI animations
    • New options to display button shapes, darken app colors, and reduce white point
  • iCloud Keychain support in additional countries
  • FaceTime call notifications are automatically cleared when you answer a call on another device
  • Fixes a bug that could occasionally cause a home screen crash
  • Improves Touch ID fingerprint recognition
  • Improved performance for iPhone 4
  • Fixes display of Mail unread badge for numbers greater than 10,000
  • Continued user interface refinements

Recordad que si tenéis vuestro dispositivo iOS con JailBreak, es recomendable esperar a realizar esta actualización, ya que de lo contrario perderíais vuestro JB.

¡Un saludo!

Curiosidades de Javascript: Formas de invocar funciones (Parte 1)

¡Hola frikazos de la informática!

Me llamo David González Shannon, soy medio español medio americano alocado, ingeniero informático (en realidad soy ingeniero multimedia), friki y amante de la programación.

En septiembre de 2013, empecé a trabajar en Devinet como el Wildcard de la empresa, en castellano, la navaja suiza. Al no estar especializado en ninguna tecnología en concreto, pero sí estar al día de todas las novedades tecnológicas, me ha tocado trabajar de: el que se dedica a lo que no se dedican los demás (hay que hacerse útil). Eso significa que me tengo que adaptar, con la mayor rapidez posible, a cualquier proyecto que requiera una tecnología que desconozcamos. Y precisamente, una de estas tecnologías es Javascript.

Personalmente, como vengo del mundo de los lenguajes compilados como C, C++, Objective-C, C#…, los lenguajes dinámicos como Javascript me fascinan, y este concretamente me fascina tanto que he decidido escribir sobre lo que voy aprendiendo del lenguaje. Más que nada, para no olvidarme de ello y, a la vez, poder ayudar a algún internauta perdido como yo.

Este artículo trata sobre las diferentes formas que hay de invocar funciones en Javascript, un tema que me pareció muy curioso cuando lo aprendí; y esta orientado a gente que tenga nociones básicas de programación y de programación orientada a objetos. Si no es vuestro caso, aprended a programar! En serio, os estáis perdiendo horas y horas de diversión. Aquí tenéis un enlace a Codeacademy http://www.codecademy.com , una web que os enseñará a programar en varios lenguajes dinámicos (Javascript, Python, Ruby), y una imagen de un gato tocando el piano:

Gato tocando piano.

Como he dicho antes, horas de diversión!

Antes de que siga, he de mencionar que lo que estoy explicando se aplica a Javascript en el navegador, para los que programáis en node.js, ya sabéis que las cosas son un poco diferentes. Bueno, empecemos.

Hay cuatro formas de llamar a funciones en javascript, pero antes de explicarlas he de hacer una pequeña introducción a cómo son las funciones en Javascript. Todas las funciones en Javascript son Objetos y como tales se pueden asignar a variables, pasar como parámetros a otras funciones, incluso crear dentro de funciones. Cuando programas en Javascript, lo más normal es pasar como parámetro a una función otra función, que a su vez tiene una función dentro, que tiene un callback que devuelve una función, que es guardada por la función anterior y es asignada como callback a otra…

Need to go deeper, INCEPTION

Vuelve a mirar la foto del gato… ya? Sigamos pues.

Además de ser objetos, todas las funciones en Javascript reciben dos parámetros ocultos, this, que contiene el contexto de la función, y arguments, que es una especie de array (digo especie porque no es una instancia de la clase Array, es una cosa rara). Pues bien, las cuatro formas de llamar a funciones en Javascript se distinguen según el valor que recibe this, y son: como método, como función normal y «corriente» (nada es corriente en Javascript), como constructor y con la función apply.

Como método

El término método debería sonarle a todo el mundo que ha programado orientado a objetos, es simplemente el nombre que recibe la función de una clase. La diferencia con Javascript es que, aunque sea orientado a objetos, no existen clases…

Tu. WTF!?

No existen clases porque tiene prototipos, otro paradigma de programación conocido por poca gente. Aún así, en Javascript, toda función que exista como propiedad de un objeto, se considera como método por convención. Por ejemplo:

// Creo un Objeto llamado superSayan con dos propiedades:
// grito que es un string y grita que es una función

var superSayan = {
    grito: "Kamehamehaaaa!!!!",
    grita: function () {
        console.log(this.grito);
    }
}

superSayan.grita(); // En consola sale "Kamehamehaaaa!!!!"

Como podemos ver, si llamamos a las funciones de esta forma, this te da acceso a las propiedades del Objeto al que pertenece la función, por lo tanto, this es el Objeto en sí, en este caso superSayan.

 

Como función normal y «corriente»

Cuando creas una función normal y corriente sin asignarla a un Objeto ni nada, piensas «yuhuuuu! mi función es libre al fin!», y yo te digo «Mentira, sigue formando parte de The Matrix», y tu respondes con un «Nooo! Quien soy… qué es real… es aire lo que respiro…?», y acabas en un estado de shock por haber estado viviendo una mentira toda tu vida.

This is too much

En realidad, cuando creas una función suelta por el código, lo que estás haciendo es añadirla como propiedad del Objeto global, la windowEsto incluso ocurre cuando creas una función dentro de un método.

var gritoSuperSayan = "Kamehamehaaaa de la window!!!!";
function kameHameHaSuelto () {
    return "Soy libre!";
}

var superSayan = {
    grito: "Kamehamehaaaa de superSayan!!!!",
    grita: function () {
        var helper = function () {
            console.log(this.gritoSuperSayan);
            console.log(this.kameHameHaSuelto());
            console.log(this.superSayan.grito);
        }
        helper();
    }
}

console.log('Tiene la window la propiedad superSayan? ', window.hasOwnProperty('superSayan'));
// true
console.log('Tiene la window la propiedad gritoSuperSayan? ', window.hasOwnProperty('gritoSuperSayan'));
// true
console.log('Tiene la window la propiedad kameHameHaSuelto? ', window.hasOwnProperty('kameHameHaSuelto'));
// true

superSayan.grita();
// Output:
// Kamehamehaaaa de la window!!!!
// Soy libre!
// Kamehamehaaaa de superSayan!!!!

Esto es un problema de diseño de javascript en sí como lenguage,  pero si se tiene en cuenta, no resulta un problema grave. Para los que estamos acostumbrados a que this siempre haga referencia al contexto en el que estás, hay una trampilla muy simple que usan los programadores de Javascript.

var superSayan = {
    grito: "Kamehamehaaaa de superSayan!!!!",
    grita: function () {
        var that = this;
        var helper = function () {
            console.log(that.grito);
        }
        helper();
    }
}

superSayan.grita();
// Output:
// Kamehamehaaaa de superSayan!!!!

Como podemos ver, usan una variable, que por convención llaman that, en la que almacenan el this deseado. Menos mal que este artículo está escrito en castellano! Sino esto sería un poco lioso.

Bueno, de momento eso es todo amigos. En la parte 2 del artículo acabaré de explicar las otras dos formas de invocar funciones en javascript. Mientras tanto, si estáis interesados en aprender Javascript y ya sois programadores, hay un libro que me ha estado ayudando mucho y que lo recomiendan todos los programadores expertos de Javascript, se llama «Javascript: The Good Parts» y esta escrito por Douglas Crockford, un gurú de la programación. Si vais a su web, veréis una foto de él con Chuck Norris de fondo que inmediatamente te dice «este tío sabe de lo que habla».

En fin, si tenéis preguntas o comentarios que hacer, por favor hacedlo en la sección de abajo o podéis mandarme un email a david.shannon@devinet.es.

¡Hasta la próxima frikazos de la informática!

¡iStick-It y su historia!

¡Buenas tardes!

Hoy os explicaremos la historia de una de nuestras primeras Apps ¡ iSick-it! , que ha conseguido más de 300.000 usuarios.

Todo comenzó una tarde en clase cuando a Raúl se le ocurrió que podría resultar muy útil crear una App que permitiese tomar notas y realizar dibujos de una manera fácil  y rápida. Entonces  desarrolló la App iPost -It .

iPost-It era una simple aplicación gratuita (sin publicidad incorporada), que estaba pensada para ser una app rápida y sencilla. Abrirla, escribir la nota  y tirar hacia arriba desde una esquina para pasar página a la siguiente nota, tal y como se haría con un tradicional paquete de post-its.

Una vez la app fue lanzada a la store y empezó a tener éxito, Raúl se encontró con problemas legales con la compañía 3MC la cual envió a Wendy Larson, la mejor abogada en temas de trademark de América en la temporada 2012-2013 la cuál contactó con Apple y le obligó a cambiar el nombre de la aplicación a iStick – It perdiendo así gran parte de los usuarios conseguidos.  Su argumento era que tenían registrado el nombre de la marca «POST-IT POPNOTES». Un argumento discutible dado que iPost-it es una frase con sentido completo en inglés y no coincide exactamente con el nombre que tienen registrado.

No obstante Raúl siguió adelante con la app, eso sí cambiando el nombre a iStick-It , para poder continuar con su proyecto. Posteriormente dada su dedicación al desarrollo de aplicaciones móviles Raúl fundó Devinet y iStick-It se ha convertido en una app de referencia para la compañía que con el equipo de desarrolladores se encargan de mantener la aplicación continuamente actualizada e incorporando nuevas funcionalidades.

Os adjuntamos los links de la store al final de la entrada por si os animáis a probarla.

screen170x1702screen170x1703screen170x1704screen170x1705screen170x170

Unknown

Presentación Devinet

¡Hola a todos!

En el post de hoy, os traemos un poco de información sobre nuestra empresa así, aquellos que todavía no nos conozcan podrán tener una visión global sobre nosotros y los servicios que ofrecemos.

Nosotros somos una consultora tecnológica especializada en el diseño y desarrollo de aplicaciones móviles y web. Nuestro objetivo es ofrecer siempre el mejor servicio y asesoramiento a nuestros clientes, así como dar soporte a nuevas ideas y proyectos de Startups.

Por otro lado, en Devinet también llevamos a cabo el desarrollo de proyectos propios de forma interna, como algunas aplicaciones móviles que podréis encontrar en la App Store y en el Android Market y de las cuales ya iremos hablando en futuros posts 😉

Bajo nuestra organización modular pretendemos aunar bajo un mismo sello a profesionales técnicos de diferentes especializaciones con artistas creativos para formar un equipo sólido, que sea capaz de ofrecer, en un solo lugar, todo aquello que el cliente necesita para llevar a cabo su proyecto.

Nuestro Equipo:

raulRaúl Vidal Muiños es el Fundador y CEO de la compañía así como el director de desarrollo de aplicaciones iOS. Raúl es ingeniero técnico titulado en informática de sistemas e informática de gestión, ingeniería superior en informática y máster en informática y gestión. Es un joven emprendedor con amplia experiencia en el desarrollo de aplicaciones móviles y el desarrollo de aplicaciones para plataformas UNIX.

CristinaCristina Rodríguez Amorós es nuestra directora de Finanzas. Después de licenciarse en economía y obtener un máster en contabilidad y auditoria ha estado trabajando durante más de dos años en una compañía multinacional, dónde ha adquirido experiencia en el campo de la auditoria. Posteriormente dada su otra vocación, la tecnología, decidió formar parte del equipo emprendedor de Devinet.

DavidDavid González Shannon, nuestro director de I+D, es un gran amante de las nuevas tecnologías. Durante estos últimos años se ha graduado en ingeniería multimedia y ha participado  en la creación  y consolidación de diversas startups. Es considerado la navaja suiza de Devinet, tiene una gran facilidad para aprender y adaptarse a cualquier tecnología rápidamente.

DavidDavid Pérez Camacho, el director de desarrollo de Android, es un apasionado de la informática y la electrónica que siempre a la última de las novedades tecnológicas. Está especializado en multimedia  con más de tres años de experiencia laboral e implicación en proyectos para grandes compañías.

VictorVíctor Grande Gálvez es nuestro artista, el director de Diseño, siempre acompañado de su tableta gráfica, está especializado en multimedia y ha trabajado en diferentes proyectos, donde ha adquirido una amplia experiencia en diseño y desarrollo de interfaces de usuario, diseño de videojuegos y realidad aumentada.

¡Un saludo!

Bienvenidos a nuestro Blog

Hoy inauguramos oficialmente el blog de Devinet, en él os mantendremos informados sobre las últimas novedades en el mundo de la tecnología. Algunas de las secciones que podréis encontrar son las siguientes:

Eventos:  Os contaremos de primera mano nuestra experiencia sobre los eventos a los que asistimos y toda la información al respecto.

Noticias: Comentaremos las novedades tecnológicas más interesantes.

Reviews: Analizaremos y comentaremos los  productos, programas y herramientas relacionadas con la tecnología.

Unboxing: Aquí podréis ver la apertura de los productos más novedosos.

Tutoriales: Realizaremos tutoriales sobre lenguajes de programación, el uso de programas y cualquier cosa relacionada sobre la tecnología.

Apps: Analizaremos en profundidad las novedades en el mundo de las aplicaciones móviles y también presentaremos los lanzamientos de nuestras propias Apps.

Y mucho más…

Esperamos que os guste el Blog, y si queréis informar sobre alguna notícia o nos queréis proponer algún tema en concreto, no dudéis en contactarnos a través de nuestro correo electrónico contacto@devinet.es.

¡¡¡¡BIENVENIDOS!!!!!