- 02/03/2017 21:37
[ATTACH=CONFIG]222293[/ATTACH]
Mi nombre es Igor y desarrollé Icons8 Lunacy - un visor independiente para archivos sketch en Windows. Este proyecto exigía no sólo habilidades de programación, sino también un conocimiento de un medio visual. Y no fue el primer proyecto en el que combiné mis habilidades como programador con mi pasión de toda la vida - el dibujo. Déjame decirte cómo empezó todo.
Desde la infancia me gustaron dos cosas: la programación y los gráficos. Cuando tenía 7 años, hice un dibujo corto usando el editor de textos Lexicon. Un poco más tarde me encontré con algo que me permitió combinar dos de mis pasiones aún más orgánicamente, los juegos. Me encantan los juegos. No jugarlos, hacerlos. La forma en que los juegos combinan la programación y las artes visuales siempre me fascinó. Así llegó mi primer juego. Fue un juego de carreras, que he programado usando qbasic. Algo parecido a Tetris, sin embargo.
[ATTACH=CONFIG]222294[/ATTACH] [ATTACH=CONFIG]222294[/ATTACH] [ATTACH=CONFIG]222294[/ATTACH]
Nunca perdí mi pasión y la llevé aún más lejos en la escuela. Estudié en una escuela regular, en una clase regular. Había, sin embargo, una clase inusual en esta escuela - algo, así como entrenamiento de cadetes, o una clase pre-militar. Los chicos que estudiaron en esa clase se habían preparado para una academia militar. Y una vez al año un comité del consejo vendría a nuestra escuela para verlos marchar, entrenar y tomar sus exámenes. Yo estaba involucrado con la marcha. Mi maestro de informática (quien, por cierto, era curador de esta clase de cadetes) me pidió que creara un simulador de marcha qué mostraría las rutas alrededor de la escuela donde marcharían nuestros cadetes.
Así que modelé una escuela y agregué algunos modelos de cadete que encontré en Internet. Siendo tan inspirado por la tarea, lo tomé un poco más lejos. Agregué unos pocos vehículos blindados y un guión divertido para que, a una probabilidad muy baja (muy baja, diría yo) nuestra escuela fue atacada por las fuerzas enemigas, básicamente haciendo todo un juego de estrategia 3D en tiempo real.
Y entonces llegó el gran día. Cuando se lanzó el simulador de marcha delante de la pizarra, mi gracioso guion despegó y el patio de la escuela se convirtió rápidamente en una zona de guerra.
[ATTACH=CONFIG]222295[/ATTACH]
No puedo recordar la reacción de mi maestro, sin embargo, a juzgar por las caras del comité, estaban bastante impresionados. Esos eran momentos divertidos.
El momento en que me gradué necesitaba encontrar un trabajo. Ojalá pudiera decir que aterricé en un gran estudio de juegos A brillante, pero eso sería una terrible mentira. En mi país, la industria gamedev rusa se asemeja a la esclavitud más que ha una vocación creativa. Así que tuve la opción - buscar un trabajo de programación de rutina haciendo buen dinero y escribir programas aburridos o constantemente buscar formas de combinar mi pasión por las imágenes y mis habilidades como programador.
Elegí el segundo. Mi primer trabajo fue en la televisión. Desarrollé un software que dirigía el video de más de 20 cámaras en un cluster, luego lo montaba en una mezcla unificada qué luego sería enviada al equipo de producción.
[ATTACH=CONFIG]222296[/ATTACH]
Lentamente, pero seguramente me convertí en un experimentado ingeniero de video trabajando en Russia Today, así como otros canales de noticias locales importantes. Sin embargo, finalmente me di cuenta de que me estaba llevando demasiado lejos de la programación y mis pasiones. Así que me detuve y volví a la programación de nuevo.
Esta vez me concentré en el desarrollo de móviles / Windows, trabajando en diferentes empresas durante unos años. Entonces conocí a Iván, el fundador de Icons8.
La verdad es que conocí a Iván durante bastante tiempo antes de empezar a trabajar en Lunacy. Hace unos años envié a Iván un mensaje a través de un Facebook diciéndole que me gustaría trabajar en Icons8. Poco sabía qué se había prohibido de Facebook en ese período, por lo que no pudo responder hasta casi un mes después. Para entonces ya había conseguido otro trabajo desarrollando un cliente móvil de Windows para algún banco. Sin embargo, todavía era capaz de consultar a Iván un poco sobre la aplicación de Windows Icons8 (otra aplicación Icons8 para la gestión de iconos) e incluso hizo un prototipo de trabajo en 2 días. Eventualmente trabajar tiempo completo en el banco y tiempo parcial en Icons8 fue demasiado, por lo que nuestra asociación disminuyó gradualmente.
[ATTACH=CONFIG]222297[/ATTACH]
De vuelta al banco. En algún momento un gerente de marketing me vio demostrando un simple juego mío a uno de mis colegas. Le gustaba tanto que a partir de ese momento estaba haciendo constantemente estos pequeños juegos para él departamento de marketing. Yo estaba puliendo la aplicación de banca móvil y alrededor de 200 personas estaban jugando mis juegos cada mes. La vida era buena. La historia podría terminar fácilmente aquí, aunque no lo hiciera.
El juego sigue jugando aquí. Sin embargo, te aconsejo que reduzcas tu volumen.
Mientras trabajaba en el banco, un colega mío me sugirió que creara un clon de Sketch, pero para Windows - una idea qué me gustó mucho. Más tarde mi colega poco a poco desapareció, y el banco no le fue mucho mejor. Finalmente decidieron que ya no necesitaban un cliente móvil de Windows - se me ofreció la posibilidad de cambiar al desarrollo de iOS o al final de Ruby on Rails. A mí tampoco me gustaba.
Así fue cuando me acerqué a Iván por segunda vez, y esta vez su respuesta fue más rápida. Le gustaba mucho mi idea de Sketch for Windows y resultó que tenía las mismas ideas durante bastante tiempo. Hablamos mucho y decidimos comenzar con algo simple (engañosamente, resultó) y útil - así es como comenzó la idea de un Lunacy, como un visualizador de bosquejo independiente para Windows.
Acerca de Lunacy Development.
Pasé 3 meses desarrollando un MVP Lunacy. En ese momento todo lo que realmente podía hacer era abrir archivos sketch. Todo el proceso consistió en dos cosas: desmitificar la estructura de los archivos sketch y luego visualizarlo en Windows. Eso es lo que más me gustó de este proyecto: comprender la estructura de mis habilidades de programación y visualizar todo lo que estaba a punto de descubrir habló de mi afecto por un medio visual. Supongo que ya sabes eso de mí.
Tuve que escribir el sistema de visualización desde cero, y, para ser honesto, todavía estoy rescribiéndolo casi cada semana.
Así que hablemos primero de la estructura. Resulta qué cada archivo sketch es una base de datos SQLite con algunas cosas muy interesantes bajo el capó:
Comienza con una cadena bplist, que no es otra cosa qué un formato estándar de Mac OS para datos estructurados llamado PList. Pude convertirlo en XML, utilizando una utilidad mac.
Mi objetivo principal era la búsqueda de un método de cómo obtener estos datos sin usar un mac, porque ese era el objetivo - un visor de Windows sketch.
Traté de diferentes bibliotecas, ajustarlas para mis necesidades. Al final pude sacar esta estructura:
Parece mejor, pero todavía tenía qué escribir mi propio manejador. Al final, tengo esto:
Finalmente, algo manejable. Teniendo esto, ahora era capaz de comparar entre estos datos y diferentes partes visuales del archivo.
En cuanto al sistema de visualización, procesa cuidadosamente cada bit de los datos encontrados. En lugar de una descripción sin vida, aquí hay un desglose 4000 veces más lento de este proceso:
Hace años gané mi primer dinero haciendo un programa para algún estudiante - como si la vida me dijera - Oye, no seas arriesgado, solo ve con el flujo de la programación, eres bueno. No busque proyectos ambiciosos con algunas cosas visuales, no combine cosas que dos grupos diferentes de personas hagan, simplemente programe cosas y estará bien.
Nunca escuché ese consejo. Aprendí que es posible seguir tu pasión y hacer cosas de las que eres bueno simultáneamente. Y siguiendo esa mentalidad tuve la oportunidad de trabajar en proyectos que de otro modo nunca habría puesto en mis manos, por lo que estoy agradecido. Así que, sigue tus pasiones y la vida te recompensará. Si eres lo suficientemente terco.
Mi nombre es Igor y desarrollé Icons8 Lunacy - un visor independiente para archivos sketch en Windows. Este proyecto exigía no sólo habilidades de programación, sino también un conocimiento de un medio visual. Y no fue el primer proyecto en el que combiné mis habilidades como programador con mi pasión de toda la vida - el dibujo. Déjame decirte cómo empezó todo.
Desde la infancia me gustaron dos cosas: la programación y los gráficos. Cuando tenía 7 años, hice un dibujo corto usando el editor de textos Lexicon. Un poco más tarde me encontré con algo que me permitió combinar dos de mis pasiones aún más orgánicamente, los juegos. Me encantan los juegos. No jugarlos, hacerlos. La forma en que los juegos combinan la programación y las artes visuales siempre me fascinó. Así llegó mi primer juego. Fue un juego de carreras, que he programado usando qbasic. Algo parecido a Tetris, sin embargo.
[ATTACH=CONFIG]222294[/ATTACH] [ATTACH=CONFIG]222294[/ATTACH] [ATTACH=CONFIG]222294[/ATTACH]
Nunca perdí mi pasión y la llevé aún más lejos en la escuela. Estudié en una escuela regular, en una clase regular. Había, sin embargo, una clase inusual en esta escuela - algo, así como entrenamiento de cadetes, o una clase pre-militar. Los chicos que estudiaron en esa clase se habían preparado para una academia militar. Y una vez al año un comité del consejo vendría a nuestra escuela para verlos marchar, entrenar y tomar sus exámenes. Yo estaba involucrado con la marcha. Mi maestro de informática (quien, por cierto, era curador de esta clase de cadetes) me pidió que creara un simulador de marcha qué mostraría las rutas alrededor de la escuela donde marcharían nuestros cadetes.
Así que modelé una escuela y agregué algunos modelos de cadete que encontré en Internet. Siendo tan inspirado por la tarea, lo tomé un poco más lejos. Agregué unos pocos vehículos blindados y un guión divertido para que, a una probabilidad muy baja (muy baja, diría yo) nuestra escuela fue atacada por las fuerzas enemigas, básicamente haciendo todo un juego de estrategia 3D en tiempo real.
Y entonces llegó el gran día. Cuando se lanzó el simulador de marcha delante de la pizarra, mi gracioso guion despegó y el patio de la escuela se convirtió rápidamente en una zona de guerra.
[ATTACH=CONFIG]222295[/ATTACH]
No puedo recordar la reacción de mi maestro, sin embargo, a juzgar por las caras del comité, estaban bastante impresionados. Esos eran momentos divertidos.
El momento en que me gradué necesitaba encontrar un trabajo. Ojalá pudiera decir que aterricé en un gran estudio de juegos A brillante, pero eso sería una terrible mentira. En mi país, la industria gamedev rusa se asemeja a la esclavitud más que ha una vocación creativa. Así que tuve la opción - buscar un trabajo de programación de rutina haciendo buen dinero y escribir programas aburridos o constantemente buscar formas de combinar mi pasión por las imágenes y mis habilidades como programador.
Elegí el segundo. Mi primer trabajo fue en la televisión. Desarrollé un software que dirigía el video de más de 20 cámaras en un cluster, luego lo montaba en una mezcla unificada qué luego sería enviada al equipo de producción.
[ATTACH=CONFIG]222296[/ATTACH]
Lentamente, pero seguramente me convertí en un experimentado ingeniero de video trabajando en Russia Today, así como otros canales de noticias locales importantes. Sin embargo, finalmente me di cuenta de que me estaba llevando demasiado lejos de la programación y mis pasiones. Así que me detuve y volví a la programación de nuevo.
Esta vez me concentré en el desarrollo de móviles / Windows, trabajando en diferentes empresas durante unos años. Entonces conocí a Iván, el fundador de Icons8.
La verdad es que conocí a Iván durante bastante tiempo antes de empezar a trabajar en Lunacy. Hace unos años envié a Iván un mensaje a través de un Facebook diciéndole que me gustaría trabajar en Icons8. Poco sabía qué se había prohibido de Facebook en ese período, por lo que no pudo responder hasta casi un mes después. Para entonces ya había conseguido otro trabajo desarrollando un cliente móvil de Windows para algún banco. Sin embargo, todavía era capaz de consultar a Iván un poco sobre la aplicación de Windows Icons8 (otra aplicación Icons8 para la gestión de iconos) e incluso hizo un prototipo de trabajo en 2 días. Eventualmente trabajar tiempo completo en el banco y tiempo parcial en Icons8 fue demasiado, por lo que nuestra asociación disminuyó gradualmente.
[ATTACH=CONFIG]222297[/ATTACH]
De vuelta al banco. En algún momento un gerente de marketing me vio demostrando un simple juego mío a uno de mis colegas. Le gustaba tanto que a partir de ese momento estaba haciendo constantemente estos pequeños juegos para él departamento de marketing. Yo estaba puliendo la aplicación de banca móvil y alrededor de 200 personas estaban jugando mis juegos cada mes. La vida era buena. La historia podría terminar fácilmente aquí, aunque no lo hiciera.
El juego sigue jugando aquí. Sin embargo, te aconsejo que reduzcas tu volumen.
Mientras trabajaba en el banco, un colega mío me sugirió que creara un clon de Sketch, pero para Windows - una idea qué me gustó mucho. Más tarde mi colega poco a poco desapareció, y el banco no le fue mucho mejor. Finalmente decidieron que ya no necesitaban un cliente móvil de Windows - se me ofreció la posibilidad de cambiar al desarrollo de iOS o al final de Ruby on Rails. A mí tampoco me gustaba.
Así fue cuando me acerqué a Iván por segunda vez, y esta vez su respuesta fue más rápida. Le gustaba mucho mi idea de Sketch for Windows y resultó que tenía las mismas ideas durante bastante tiempo. Hablamos mucho y decidimos comenzar con algo simple (engañosamente, resultó) y útil - así es como comenzó la idea de un Lunacy, como un visualizador de bosquejo independiente para Windows.
Acerca de Lunacy Development.
Pasé 3 meses desarrollando un MVP Lunacy. En ese momento todo lo que realmente podía hacer era abrir archivos sketch. Todo el proceso consistió en dos cosas: desmitificar la estructura de los archivos sketch y luego visualizarlo en Windows. Eso es lo que más me gustó de este proyecto: comprender la estructura de mis habilidades de programación y visualizar todo lo que estaba a punto de descubrir habló de mi afecto por un medio visual. Supongo que ya sabes eso de mí.
Tuve que escribir el sistema de visualización desde cero, y, para ser honesto, todavía estoy rescribiéndolo casi cada semana.
Así que hablemos primero de la estructura. Resulta qué cada archivo sketch es una base de datos SQLite con algunas cosas muy interesantes bajo el capó:
Comienza con una cadena bplist, que no es otra cosa qué un formato estándar de Mac OS para datos estructurados llamado PList. Pude convertirlo en XML, utilizando una utilidad mac.
Mi objetivo principal era la búsqueda de un método de cómo obtener estos datos sin usar un mac, porque ese era el objetivo - un visor de Windows sketch.
Traté de diferentes bibliotecas, ajustarlas para mis necesidades. Al final pude sacar esta estructura:
Parece mejor, pero todavía tenía qué escribir mi propio manejador. Al final, tengo esto:
Finalmente, algo manejable. Teniendo esto, ahora era capaz de comparar entre estos datos y diferentes partes visuales del archivo.
En cuanto al sistema de visualización, procesa cuidadosamente cada bit de los datos encontrados. En lugar de una descripción sin vida, aquí hay un desglose 4000 veces más lento de este proceso:
Hace años gané mi primer dinero haciendo un programa para algún estudiante - como si la vida me dijera - Oye, no seas arriesgado, solo ve con el flujo de la programación, eres bueno. No busque proyectos ambiciosos con algunas cosas visuales, no combine cosas que dos grupos diferentes de personas hagan, simplemente programe cosas y estará bien.
Nunca escuché ese consejo. Aprendí que es posible seguir tu pasión y hacer cosas de las que eres bueno simultáneamente. Y siguiendo esa mentalidad tuve la oportunidad de trabajar en proyectos que de otro modo nunca habría puesto en mis manos, por lo que estoy agradecido. Así que, sigue tus pasiones y la vida te recompensará. Si eres lo suficientemente terco.