Tips for Building Your First Web App – Thnxz @sixrevisions


These tips are from a person who started out as someone who wasn’t familiar with Web programming. When I first started developing my first web app, I wasn’t a web developer. I was a business guy.

(If you want to read my story on how I built my first web app in only a few months using Ruby on Rails, check out my article: Why Making Web Apps with Rails Is Awesome.)

An assumption I’m going to make about you, the person reading this article, is that you’re already a web developer, or that you’ll be hiring one for your first web app. I’ll be discussing practical, general tips that are applicable to all web apps regardless of what Web technologies you’re using. So please don’t expect some deep-level web programming techniques in this article, because you’ll find none.

Another assumption I’m making is that you’re going to build your first web app without investing hundreds of thousands of dollars into version 1.0. I’ll assume that your budget is in the $5,000 range largely because that’s where my experience lies.

With my preface all said and done, let me share my seven tips based off my own web app development experience.

1. Think in Terms of Data Relationships

Regardless of complexity, size or feature set, you can break down any web application into this simple operational mechanics:

  1. The web app takes in data from users
  2. The web app processes and decides what to do with that data
  3. The web app produces some output for the users

All web apps work like that, so at the start, it’s best to break down your web app’s core features into data relationships to see:

  • How your web app should be built
  • How your web app might deal with user data and presentation
  • What features you need to prioritize
  • What web services and web technologies you’ll need to enlist and get familiar with

And so on. | Full article +INFO 🙂

For example, let’s take the primary feature of Instagram — posting a photo up on the photo-sharing service — and break it down into the fundamental operational mechanics above:

  1. The web app takes in a photo from users
  2. The web app processes the photo to scale it up or down to the layout of Instagram and also what photo effect the user wants to apply to the photo
  3. The web app produces a modified image and displays it for the usersI know you may not be able to think naturally like that at first whenever you look at web apps, but the more you use other web apps, and the more you think about them in all of these little pieces of data relationships, the easier it is for you to conceptualize and build your web app.

2. Keep Track of UIs and Websites That Inspire You

Do you have examples of web applications and websites that you like?
Full article +INFO 🙂

 

3. Keep the First Version as Simple as Possible

Building a minimum viable product (MVP) is a popular concept for online startups.
Full article +INFO 🙂

 

4. Focus on Behavior and Less on Look-and-Feel

Quite often, frustrations that people have with a web app come from the way it behaves, not the way it looks.
Full article +INFO 🙂

 

5. Use Free or Affordable Web Services as Much as Possible

Even if you just won the lottery and have money to burn, don’t be frivolous with your funds.
Full article +INFO 🙂

 

6. Use Third-Party APIs with Caution

An API is a way for a developer to get access to the data of an external web service. For example, Twitter’s API allows any developer to build an app that accesses public tweets and the account information of Twitter users.
Full article +INFO 🙂

 

7. Focus on the Excellent Execution of Your Idea

I can’t think of one web app that was successful based solely on being “the first.”
Full article +INFO 🙂

12 señales de que eres un mal programador


Visto en Digg. Puede que no esté de acuerdo con todas, pero es una lectura interesante.

1. Java es todo lo que necesitas.
No ves la necesidad de usar ningún otro lenguaje, ¿por qué no se puede hacer todo con Java? No te importa ver código en Python o Ruby que logra en 10 lineas lo que llevaría varias hojas de código Java. Además, seguramente las nuevas características de la próxima versión del lenguaje lo arreglaran de todas formas. (Esto es aplicable a casi cualquier lenguaje, pero ocurre que entre la comunidad Java parece estar más extendida esta forma de pensar)

2. El término “enterprisey” (NT: se trata de un término sarcástico utilizado para designar productos complejos más allá de lo necesario) no te suena a broma.
“Enterprise” no es sólo una palabra, es una filosofía, una forma de vida, un camino a la iluminación. Cualquier cosa que pueda ser escrita, desplegada o actualizada con un trabajo mínimo es descartada como un juguete que no “escalará” para futuros usos. Mientras tanto la mayor parte del trabajo real en tu oficina se hace enviando hojas de cálculo en Excel mientras esperan a que termines de construir tu nueva visión corporativa.

3.Te opones férreamente a las funciones/métodos de más de 20 líneas de código.
(o 30 o 10 o cualquier otro número) Lo siento, algunas veces una función larga es justamente lo que necesitas. Normalmente las funciones cortas son más sencillas de entender, pero algunas veces se pueden expresar más fácilmente en una sola función más larga. El código no debería hacerse más complejo sólo para adecuarse a criterios arbitrarios.

4. “¡OH DIOS MÍO! ¡PATRONES!”
Los desarrolladores que buscan constantemente la forma de aplicar patrones a cualquier problema de código con el que se encuentran están añadiendo una complejidad innecesaria. Lejos de ser algo que busques, deberías sentirte mal cada vez que tienes que utilizar un patrón de diseño, significa que estás escribiendo código que hace las cosas más complicadas y que puede ser de dudosa utilidad. Pero, ¡ey!, tu código tiene patrones, bien por ti.

5. Los ciclos de CPU son un recurso precioso y tu estilo de programación y lenguaje reflejan esas creencias.
Hay montones de problemas en los que tienes que tener muy en cuenta el consumo de CPU (modelado/simulación, procesado de señales, kernels de sistemas operativos, etc), pero no es tu caso. Para la mayor parte de los desarrolladores de software sus principales problemas de rendimiento están relacionados con las bases de datos y la entrada/salida. El único efecto de optimizar tu código para mejorar el uso de CPU será disminuir en 2 milisegundos el tiempo necesario para la próxima consulta a la base de datos. Mientras tanto el desarrollo de la aplicación se hace más lento, no puedes hacer frente a los nuevos requerimientos y te encuentras con problemas serios de calidad. Pero al menos estás ahorrándote montones de ciclos de CPU… eventualmente.

6. Piensas que ninguna función/método debería tener más de un return.
Esta la he oído alguna que otra vez, y normalmente la razón que me dan es que el código es más sencillo de analizar. ¿Según quién? Yo encuentro más fácil de leer un código más simple, y normalmente el tener más de un return simplifica el código.

7. Tus usuarios son estúpidos. Realmente estúpidos.
Simplemente no puedes creer lo estúpidos que son, olvidándose constantemente de hacer las cosas más sencillas del mundo y cometiendo errores tontos al usar tu aplicación. Nunca has considerado que quizás es tu aplicación la que es estúpida porque eres incapaz de escribir software decente.

8. Te enorgulleces enormemente del gran volumen de código que escribes. Leer más “12 señales de que eres un mal programador”

Herramientas para que los niños aprendan a programar


 

¿Cómo enseñar programación a un niño? Digamos a alguien entre 8 y 15 años de edad. No creo tener la mejor respuesta en términos pedagógicos, sin embargo, sí puedo recomendar alguna de las siguientes herramientas diseñadas especialmente para que los niños aprendan a programar, sin las complejidades teórico-prácticas de la programación profesional.

1. Alice

Código abierto. Inglés.

Ambiente de programación creado en Carnegie Mellon University, donde los niños pueden contar historias animadas con bloques 3D: “para la próxima generación de científicos de la programación.

2. Doma de Serpientes para Niños

Código abierto. Inglés y español.

Basado en el famoso “Snake Wrangling for Kids”, es un libro electrónico para enseñar programación a niños mayores de 8 años mediante el lenguaje de programación Python, disponible en cualquier sistemas operativo. Éste lenguaje, cabe mencionar, es sencillo, flexible y poderoso: soy un acérrimo fan.


3. Kids with Ruby

Código abierto. Inglés.

Es un software interactivo para aprender programación con el lenguaje Ruby: unos de los más bellos lenguajes, si me permiten decirlo, que podrán encontrar. Como dijo Yukihiro Matsumoto, creador de Ruby, “espero ayudar a que cada programador en el mundo sea productivo, disfrute y sea feliz programando. Este es el principal propósito del lenguaje Ruby”.


4. Kodu

Comercial. Inglés.

Con Kodu lo niños pueden crear juegos de manera visual desde la PC y XBox. Fue diseñado para enseñar a programar con tres conceptos eje: creatividad, resolución de problemas y narrativa.


5. LEGO MindStorms NXT

Comercial. Inglés, español.

Son robots programables, ya sea con el NXT Intelligent Brick para programas relativamente sencillos, o con alguno de entre cincuenta lenguajes de programación disponibles.


6. Hackety Hack

Código abierto. Inglés.

Sin experiencia previa en programación, por supuesto, Hackety Hack es un software ya clásico para enseñar a programar con Ruby, una lección a la vez. Creado por el no menos famoso hacker _why, Hackety Hack incluso obedece a un manifesto que en una de sus últimas líneas dice que “es libre y se mantendrá así en adelante”.


7. Petit Computer

Comercial. Inglés.

Si sentarse a programar no es opción, tal vez sí lo sea usar un Nintendo 3DS o DSi con Petit Computer, que permite crear programas en BASIC. No es que BASIC sea la mejor opción, sin embargo puede ser atractivo hacerlo desde la consola portátil.


8. Raspberry Pi

Comercial/Código abierto. Inglés.

Este ha sido uno de los mayores éxitos de la comunidad del software y hardware libres en los últimos años. Se trata de una pequeña placa que puede costar entre 25 y 35 dólares, donde cabe Linux, y está diseñado expresamente para la enseñanza de programación básica. Además de ser un gadget fabuloso para un hacker, su portabilidad y precio permiten montar talleres móviles de programación para niños con poco acceso a la tecnología.


9. RoboMind

Gratuito. Inglés.

Tenemos ante nosotros un proyecto similar a LEGO Mindstorms, pero en software: un ambiente de programación básica aplicada a un robot virtual, con la posibilidad de profundizar en temas de robótica e inteligencia artificial. Utiliza su propio lenguaje, ROBO, diseñado con una sintaxis simple.


10. Scratch

Código abierto (salvo algunas partes). Inglés.

Este proyecto ya es un clásico. Comenzó en el MIT en 2006 y hoy en día tiene una comunidad vibrante de usuarios que comparten proyectos y experiencias. Scratch se conforma de un entorno de programación visual orientada a la creación de juegos y animaciones para iniciar a los niños en los bloques básicos de la programación.

Via: alt1040

 

Chikanadas

Se define “Programar” como:  La elaboracion de programas para la resolución de problemas mediante ordenadores. El programador escribe un mensaje, el código fuente, que el ordenador recibe, entiende y ejecuta luego de una serie de traducciones. Así se establece un tipo muy especial de interacción hombre-máquina, que comienza en la mente del programador y termina en los registros del CPU.

Ver la entrada original 637 palabras más

Pon a todos esos usuarios molestos y sus tweets en la “Perrera de Twitter”


 Autor: Lincinews

Si no te gusta el deporte, pero en tu timeline está ese loco por las Olimpiadas, que no hace más que postear pseudo análisis, bromas aburridas y demases que no te interesan… O quizás tienes un amigo que está de vacaciones y no sabe de la existencia de la opción “no publicar check-ins en Twitter”… Puede que sea el momento de ponerlos en Twitter Doghouse (“Perrera de Twitter“).

Así se llama la nueva aplicación que les permite a los usuarios dejar de seguir tweets de X usuarios, por un período de tiempo determinado y no recibir más actualizaciones de eventos Twittercéntricos o no enterarse de todo lo que ve ESE usuario en la televisión.

Twitter Doghouse fue creada por los desarrolladores Elan Dubrofsky y Jure Stern, en respuesta a un desafío posteado en la plataforma de desarrollo de crowdsourcing, CloudSpokes.

Una vez que inicias sesión y autentificas tus credenciales de Twitter, se te presentará una solicitud que deberás rellenar. En ella debes indicar a quién quieres poner y por cuánto tiempo. Puede ser desde sólo un minuto o todo lo que tú quieras.

Dubrofsky codificó la app usando Ruby on Rails y posteó el código en su página de Github, por lo que otros programadores pueden revisarla y sugerir mejoras.

¿Usarías esta herramienta o prefieres dar unfollow directamente?

Pon en marcha tu startup: los mejores recursos gratuitos (programación, negocio y diseño) | BUENOS DATOS!!


 

Ellas 2.0

ellas2.org

Aprende a programar, en qué consiste el negocio del software y cómo diseñar gracias a estos recursos gratuitos (en inglés)

Por Frances Advincula (Desarrollo de Plataforma, Accenture Software)

Todos los cursos y resto de materiales que detallo a continuación no tienen coste y los encontrarás a través de iTunesU y MIT Open Courseware.

Para las que quieren aprender a programar

 

Para las emprendedoras tecnológicas… Leer más “Pon en marcha tu startup: los mejores recursos gratuitos (programación, negocio y diseño) | BUENOS DATOS!!”

La historia de los navegadores [Infografía]


Los navegadores son nuestros compañeros inseparables al usar internet, sin ellos nuestra vida digital sería un caos total, pero seguramente muchos de los usuarios nuevos de internet n oconocen la historia que hay detrás de los browsers, por eso quiero dejarles esta interesante infografía creada por la gente de Blog Mp3 donde podemos ver una brevehistoria de los navegadores.

Publicado por Juanguis

En la infografía vamos a poder enterarnos cuál fue el primer navegador creado, cuál… Leer más “La historia de los navegadores [Infografía]”

37 Things you probably haven’t heard at your software company

I was reminded the other day of the Dilbert cartoon above and it got me to thinking about what other stuff we might not hear around the office at a software company as product managers and product marketing folks.


Posted by Jon Gatrell

I was reminded the other day of the Dilbert cartoon above and it got me to thinking about what other stuff we might not hear around the office at a software company as product managers and product marketing folks. Leer más “37 Things you probably haven’t heard at your software company”