“Un mp3 puedes conseguirlo en cualquier sitio de internet, pero lo único que obtienes es un archivo”
John Johnson, dj & productor responsable de la tienda DJ Hut
John Johnson, dj & productor responsable de la tienda DJ Hut
Estuvimos pocos (9 personas), pero creo que fue una buena experiencia para tod@s los asistentes (gracias a todos y todas por venir, en especial la gente que vino de Donosti).
Hubo contrastes de tecnologías y campos: ruby on rails, php, .net, hosting, multimedia.. y eso, junto a la experiencia de cada uno, hizo que fuese muy didáctico para todos.
He publicado los apuntes de lo que ha sido la primera quedada informal de Emprende Web en Bilbao, una iniciativa que reune profesionales y gente con ganas de aprender sobre desarrollo web e internet, con el objetivo de generar debates productivos sobre tecnologías y métodos, consejos para desarrollar ágilmente y bien este tipo de aplicaciones, generar nuevos proyectos y acercar gente con pasión o ganas de divertirse o trabajar juntos creando conceptos para internet.
Esta primera quedada nos ha servido de vitamina a Javier y a mí, para intentar mejorar la siguiente convocatoria. Dicha convocatoria será en Septiembre y después intentaremos llevar una frecuencia mensual.
Durante este tiempo notaréis cambios en el sitio web de Emprende Web y aceptamos toda sugerencia o ayuda para intentar crear un buen evento en Vizcaya (por ahora) para personas con ganas de crear cosas en internet.
Después del Emprende Web de ayer, del que tendréis hoy o mañana una crónica en forma de apuntes de lo que vimos en él, os deseo un feliz SysAdmin Day a aquellos y aquellas que os toca trabajar en el oscuro y desconocido mundo de la administración de sistemas.
Hacía bastante tiempo que no me pasaban un meme y ha sido Neokrisys quien lo ha hecho. La cuestión que se plantea es “por qué te gusta bloguear”.
Antes de responder a la pregunta, con vuestro permiso voy a comentar lo que es para mi tener un blog/sitio web y lo que, por otro lado, es para mi hacer el idiota.
Un blog no es más que un sitio web donde puedes publicar cosas, cosas que consideres oportunas con la frecuencia que tu creas oportuna, y aportar tu punto de vista personal sobre algo dejando que otros también lo hagan.
Hacer el idiota es aparentar dominar un tema que no dominas, preocuparte por el que dirán si dices algo que sientes, tener la necesidad de decir algo cuando no tienes nada que decir, creer que vas a llegar muy lejos con tus ingresos de adsense y,sobre todo, tener que escribir sobre lo que te digan a diario a cambio de una miseria y supuesto prestigio (prestigio sólo válido para la gente que hace lo mismo que tú, es decir, el idiota).
¿Por qué me gusta escribir en mi sitio web?
1 - Me gusta escribir, y mucho. A veces realmente me desahogo escribiendo
2 - Me ayuda a comunicar mejor
3 - Me sirve para apuntarme cosas técnicas (soluciones a problemas que me encuentro o recursos que puede que necesite en un futuro), me obliga a investigar un poco más sobre las mismas y afianzar/recordar conceptos
4 - Me ayuda a conocer a gente interesante y conocer su punto de vista de una forma muy cercana
5 - Me ayuda a equivocarme y que gente que sabe más que yo me corrija
6 - Mis clientes saben qué tecnologías me interesan y mi punto de vista sobre las mismas
7 - Mis clientes tienen un complemento perfecto que les da más información sobre mí que mi currículum
8 - Mis amigos y familia saben cómo me va la vida, a pesar de no verme o hablar conmigo desde hace tiempo.
9 - Me ayuda a expresar ideas que tengo en la cabeza y al escribirlas, me doy cuenta si son una tontería o realmente merecen la pena. De creer que merecen la pena las publico.
10 - Puedo quejarme de cosas
11 - Me ayuda a promocionarme
Paso el meme a… cualquiera que lea esto y quiera seguirlo ![]()
Hace algunos meses intenté organizar un evento para desarrolladores php en Bilbao. La idea era juntar a personas que desarrollasen aplicaciones web para compartir experiencias.
El problema fue que el mismo tema del evento limitaba a los asistentes y no atraía al resto de la gente que no desarrollaba en php, pero si desarrollaba en otras tecnologías web.
Emprende Web surge como una posibilidad para el que esté interesado en charlar con emprendedores y profesionales técnicos de la web de tu a tu, mientras se toman unas copas.
En Bilbao es muy difícil encontrar eventos tipo a Iniciador o First Tuesday y también lo es encontrar a profesionales y emprendedores inquietos con ganas de desarrollar y exponer sus ideas al resto.
Javi Jiménez y yo creemos que aunque los primeros eventos empiecen con pocos asistentes merecerán la pena, ya que en este tipo de cosas cada persona que conozcas es toda una experiencia.
De momento el próximo Jueves 24 a las 19:30, os esperamos en el Pub Dubliners. Nos vemos en el Emprende Web
Más información: Primera quedada Emprende Web en Bilbao
En la actual versión de symfony se usa Propel junto a Creole para crear un orm y una capa de abstracción entre la base de datos y el resto de nuestra aplicación.
Esto nos permite desarrollar aplicaciones independientes del motor de base de datos que usemos.
Php utiliza oficialmente la librería mssql para conectarse a una base de datos Sql Server y aunque existe una opción mejor por parte de Microsoft en fase CTP, Propel (y por lo tanto Symfony) la utilizan para conectarse a este tipo de motor.
Sin embargo, para conseguir conectarse y operar con éxito con Sql Server 2005 hay que hacer una serie de configuraciones en php/symfony y hacks en creole.
(Espero que no os siente esto como un cubata de Baileys con tonica : )
Vamos a verlo paso por paso:
1- Actualizar la librería ntwdblib.dll a la versión 2000.80.194.0.
2- Activar las extensiones php_mssql y php_xsl en el php.ini.
Adicionalmente debemos indicar los siguientes parámetros para php_mssql:
mssql.datetimeconvert = 0
mssql.textlimit = 2147483647
mssql.textsize = 2147483647
3- Crear nuestra base de datos en Sql Server y asignar el login y permisos adecuados al usuario que usemos para conectarnos.
4- Editar el archivo schema.yml con nuestro esquema de base de datos.
5- Configurar la conexión a la base de datos:
[ruta_completa]\symfony.bat configure:database
“mssql://usuario:password@equipo\instancia/nombre_baseDatos”
6- Construir el modelo orm de symfony:
[ruta_completa]\symfony.bat propel:build_model
7- Editar el fichero MSSQLConnection.php ubicado en \lib\plugins\sfPropelPlugin\lib\vendor\creole\drivers\mssql dentro del directorio de symfony.
En el caso de que no se especifique un puerto en el string de conexión a la base de datos, creole te inserta el valor de puerto predeterminado para sql server. Sin embargo, en Sql Server 2005 esto provoca un fallo impidiendo realizar una conexión exitosa a la base de datos.
Para evitar que creole nos meta el puerto si o si, debemos modificar la siguiente secuencia de control en MSSQLConnection.php:
if(!empty($dsninfo['port'])) {
$dbhost .= $portDelimiter.$dsninfo['port'];
}
//*else {
//$dbhost .= $portDelimiter.’1433′;
// }
Con estas modificaciones ya deberíamos poder trabajar con sql server 2005 desde symfony.
Desde hace algún tiempo he estado leyendo sobre varios frameworks de desarrollo con php, que me permitiesen de una forma fiable automatizar trabajo que, a pesar de no tener una dificultad notable para alguien que sepa programar, te hace perder un montón de tiempo si quieres hacer las cosas bien.
La opción que más me ha gustado para php es sin duda Symfony y puesto que desarrollo tanto para plataformas UNIX/Linux como para sistemas Microsoft, me interesé por hacerlo funcionar e incluso utilizarla en proyectos que actualmente me encuentro desarrollando bajo sistemas Microsoft.
Voy a detallar como es una instalación de Symfony en IIS. Yo lo tengo funcionando sobre 2003 Server SP2 con IIS6
1 - Se descarga el código fuente de Symfony y se descomprime en un directorio en una de las unidades de disco duro del servidor. (Supongamos D:\symfony)
2 - Se crea un directorio cuyo contenido será el que usemos como sitio web. (Supongamos D:\dir_proyecto)
3 - Abrimos un terminal, nos situamos en “dir_proyecto” y ejecutamos lo siguiente para crear un proyecto:
D:\symfony\data\bin\symfony.bat init-project nuevo_proyecto
Ahora creamos una primera aplicación para ese proyecto:
D:\symfony\data\bin\symfony.bat init-app nueva_aplicacion
4 - Creamos un sitio web nuevo que apunte al directorio “D:\dir_proyecto\web”.
5 - Dentro del ese nuevo sitio web, creamos un directorio virtual que apunte a “D:\symfony\data\web\sf”
6 - Si usamos isapi rewrite necesitamos ahora aplicar las reglas de redirecciones para nuestro sitio web. En la documentación oficial nos comentan una serie de reglas específicas para entornos de IIS. Esas reglas pueden darnos problemas a la hora de acceder a los archivos del directorio “D:\symfony\data\web\sf”.
Para evitar estos problemas, debemos ser fieles a las reglas definidas en el .htaccess que se ha creado en el directorio “D:\dir_proyecto\web” y añadir las reglas de seguridad relativas a entornos Microsoft.
Las reglas de redireccionamiento quedarían de la siguiente forma:
RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O]
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /index.php [L]
Con esto ya deberíamos comprobar que todo funciona correctamente.
Es increible lo que se puede hacer con un equipo de personas motivado y bien organizado.
En este caso, en Carsonified han logrado hacer Matt, una aplicación para actualizar el estado en varias cuentas de twitter, en sólo 4 días. Para ello han usado Django y Git junto a Codebase para el control de versiones.
Lecciones que han aprendido y recomendaciones para crear aplicaciones web de una forma rápida y ágil (si esto tiene que ver también con metodologías ágiles de desarrollo):
1- Reducir a 10 minutos las reuniones por la mañana y hacer una recapitulación de un máximo 10 minutos al final de cada dia. Las reuniones son el mejor método para matar la productividad y reducir la creatividad.
Este es un video de la reunión al final del primer día.
Matt Week - Day One Recap from Carsonified on Vimeo.
2- Conseguir que la gente se aleje de los ordenadores a la hora de comer. Ir a comer juntos o jugar a la WII. El entusiasmo y la creatividad se pueden deteriorar bastante si no se hace un descanso a lo largo del día.
3- Simplificar el sitio web y la aplicación lo máximo posible
4- Utilizar un buen framework. Una de las razones por las que se han decidido a usar Django es para compararlo con Ruby on Rails y Symfony. Su veredicto fue que django no es tan riguroso como RoR o Symfony y por ello, descartan usarlo en futuros proyectos.
5- Contratar buenos diseñadores y confiar en su trabajo, no puedes adivinar cómo va a quedar el diseño al final con los bocetos iniciales.
6- Ser tecnológicamente agnóstico objetivos. Si tus programadores te dicen que es mejor utilizar un determinado tipo de tecnología y no otra, dándote sólidos argumentos, hazles caso.
*Personalmente este punto para mí es muy importante (quien me conozca o haya trabajado conmigo lo sabrá de sobra). En España y Latinoamérica sobre todo, me he encontrado profesionales que critican o evitan determinadas tecnologías sin conocerlas. Como en el típico caso de descartar .net u otra tecnología de entrada simplemente porque es de Microsoft. El componente principal de JavaScript que hace posible la existencia de Ajax por ejemplo, fue creado por Microsoft en el 2002 y muchas de esas personas lo usan sin saberlo.
7- Concretar como tus programadores y diseñadores van a trabajar juntos. Los diseñadores crean páginas HTML estáticas que los programadores convierten en plantillas. Esas plantillas son accesibles desde el control de versiones de una forma centralizada para todos.
8- No es suficiente con tener sólo un programador y un diseñador. Se necesita al menos una persona de dedicada a difundir tu aplicación y obtener cobertura en los medios.
9- Implementar tu entorno de desarrollo correctamente. Que cuente con un buen control de versiones (ellos sugieren Git), una aplicación web para ver los cambios (ellos usan Codebase), una infraestructura sólida de sistemas (ellos usan Flexiscale, Grid-Service, Mosso o EC2), un sistema de deploy con un sólo click (si usas Rails ellos sugieren Capistrano) y, por último impresoras, lugares para reunirse y pizarras (ellos disponen de una pared entera que usan como pizarra)
Lo que sigue es un vídeo a cámara rápida de lo que fue el segundo día de desarrollo.
Matt Week - Day Two Time Lapse from Elliott Kember on Vimeo.
Tras haber trabajado como administrador y consultor de (y haber frikeado con) sistemas bajo entorno Microsoft, haber cursado y preparado tanto el MCSA como el MCSE con la especialidad en mensajería, el MCTS para SQLServer 2005 y ser MCP en Exchange, XP y Windows server 2003, creo que puedo criticar con poco de base y decir las cosas que más me gustan y las cosas que más odio de Microsoft.
Windows Server 2008
La opción de instalación Windows Server Core
La gestión de clusters en windows server 2008
Windows Server 2003 Enterprise/Estardar SP2
Active Directory
IIS 7 & IIS 6
c#
Powershell
La suscripción technet plus
XBox 360
Exchange Server 2007
Outlook 2003/2007
Visual Web Developer 2005 / 2008
OneNote 2003/2007
Word 2007
Sql Server 2005 o superior
Windows Live search
El diseño de las aplicaciones windows live (sobre todo spaces y hotmail)
Sharepoint
VBA (Visual Basic for Applications)
Que OWA necesite una versión aparte para poder ser accedido desde otros navegadores que no sean IE
Excel (en general, no porque sea de Microsoft, también odio las opciones open source)
Que IIS no tenga módulo de URL-Rewrite oficial, ni tampoco soporte para host headers para dominios wildcard.
Que intente abarcar tantos productos en lugar de centrarse en sus productos más importantes
Que por lo general las secciones de sus productos, en el sitio Microsoft.com, sean para personas que ya conocen el producto, no tengan capturas de pantalla de los mismos ni muestren con vídeos de lo que es capaz la aplicación en cuestión.
Que no prioricen el minimalismo a la hora de diseñar las interfaces para sus aplicaciones o sistemas operativos.
Las opciones de apagar el equipo en el menú inicio de windows vista.
Que en la instalación Server Core no se haya eliminado por completo todo rastro de entorno gráfico.
Que en la instalación Server Core no se haya integrado una versión de .net sin librerías de entorno gráfico (no debe existir esa opción en .net framework) haciendo imposible correr en él aplicaciones .net ni servidores como sql server o exchange.
Que MSN Messenger tenga publicidad en sistemas operativos con licencia legal y que no se pueda integrar con otros servicios de IM.