La mayor necesidad que siempre tengo es encontrar buenas imágenes que pueda usar en mi sitio sin violar los derechos de autor de alguien. Así que tuve que aprender a crear el mío.
De acuerdo, hay muchos íconos gratuitos disponibles en Internet para botones y cosas simples, pero generalmente desea imágenes e imágenes adicionales en un sitio web. Entonces, lo que hice fue simple: aprendí a usar el software CGI y conseguí una cámara digital y comencé a incursionar con ambos para aprender algunos de los conceptos básicos.
La ventaja que tengo ahora es que no solo creo el back-end, el front-end y la capa de base de datos / negocios para mis proyectos, sino también la obra de arte. Si necesito, por ejemplo, un cajero detrás de un escritorio, creo esa imagen yo mismo. Si necesito una foto de un árbol, la tomo yo mismo. Y debido a esto, puedo crear sitios realmente interesantes sin depender de imágenes de terceros.
Incluso creo mi propio logotipo, si es necesario.
- ¿Cómo protegen los escritores creativos su trabajo?
- ¿La interferencia de los líderes religiosos obstaculiza el pensamiento libre? ¿Y la creatividad?
- ¿Quiénes son los jugadores SC2 más creativos?
- ¿Cuáles son algunos productos innovadores disponibles en la India?
- ¿Cómo puede alguien tradicionalmente entrenado y enseñado aprender a abrazar la creatividad y los vuelos de fantasía?
Sin embargo, hay más. Si estamos discutiendo soluciones creativas, tengo otro buen ejemplo de hace varios años.
Mi equipo y yo estábamos trabajando en una herramienta para asesores financieros y esta era básicamente una aplicación de escritorio que utilizaba una base de datos MS-Access para almacenar datos. Era una base de datos de un solo usuario, pero agregamos algo de lógica para que múltiples usuarios pudieran acceder a la misma base de datos, pero no al mismo cliente. Y funcionó bien, hasta que un cliente nos preguntó si podíamos admitir SQL Server.
Bueno, utilizamos ADO para conectarnos a la base de datos, por lo que reemplazar la cadena de conexión con una versión de SQL Server básicamente resolvió el problema. Escribí una herramienta simple que leería toda la estructura de la base de datos de Access y generaría una secuencia de comandos SQL adecuada para crear la misma base de datos en SQL Server. De esa manera, simplemente continuaríamos haciendo cambios estructurales en la base de datos de Access y usaríamos el SQL para generar bases de datos SQL coincidentes.
Las actualizaciones también se realizaron de una manera fácil, ya que simplemente respaldaríamos todos los datos en un archivo XML, reemplazaríamos la base de datos por una nueva y luego importaríamos todos los clientes nuevamente. ¡Trabajado como un encanto!
Pero luego se volvió más complicado. El cliente tenía varias docenas de oficinas y quería usar una sola base de datos de SQL Server para todas, sin embargo, a cada oficina solo se le permitía acceder a sus propios datos. Y teníamos menos de dos meses para hacerlo. Entonces, reescribir gran parte de la lógica fue un poco problemático. ¡Entonces se me ocurrió una alternativa interesante!
SQL Server admite el uso de esquemas de bases de datos para que cada grupo de tablas pueda estar en su propio esquema sin entrar en conflicto con ningún otro. Lo que hicimos fue simple. Creamos un nuevo esquema para cada oficina y dentro de ese esquema, creamos toda la estructura de la base de datos tal como estaba en la base de datos de Access. Las cuentas de usuario usarían de manera predeterminada su propio esquema de oficina, por lo que una vez que inicien sesión, usarán solo sus propios datos y no tendrán acceso a ningún otro dato.
Y, para el supervisor, creamos una vista para cada tabla en la base de datos que en realidad combinaría la tabla específica de todos los esquemas en una sola vista de solo lectura para que el supervisor pudiera iniciar sesión y recopilar datos directamente de las vistas.
Apenas tuvimos que cambiar el código de nuestro proyecto y todo lo que tuvimos que hacer fue crear una herramienta de administrador simple que pudiera administrar los diversos esquemas y recrear las vistas cuando se agregaba, borraba o modificaba una oficina. También agregaría, eliminaría o movería a los usuarios para que el cliente obtuviera lo que quería mientras nuestro código base no cambiara.
Bueno, necesitaba una página de inicio de sesión, pero eso fue todo …
¡Terminamos dos semanas antes de la fecha límite y tuvimos mucho tiempo para incluir otras funciones!