Recent

Author Topic: Hola comunidad ayuda para un hobbista  (Read 8110 times)

AdaelRuiz

  • Newbie
  • Posts: 2
Hola comunidad ayuda para un hobbista
« on: March 01, 2017, 08:15:52 pm »
Hola buena tarde, saludos desde Coatzacoalcos Veracruz, soy bibliotecario, y tengo unas dudas que espero puedan ayudarme, no soy un programador pero me gusta leer sobre programación, ahorita estoy haciendo un sistema personal para la escuela y la biblioteca que dirijo, pues tendra un sitio web, donde los padres puedan entrar y ver avances y tareas de los chicos, en las computadoras de la escuela abra juegos educativos que iran sumando puntos a los muchachos y se iran subiendo a su perfil como puntos de experiencia, mientras que en la biblioteca una base de datos de todos los libros que vallan entrando y saliendo, tambien para los docentes una aplicacion en android para que ellos vallan apuntando ahi los avances.
Me tope con la problematica de que para cada cosa tengo que usar un lenguaje diferente o simplemente utilidades diferentes mi idea es utilizar menos lenguajes y enfocarme en uno solo, por decir las interfaces graficas con lazarus y pascal, para el sitio web cgi de pascal con un poco de html5 y css3, para las bases de datos conectar o ya sea a mysql o a sqlite, que los juegos los pueda desarrollar en pascal  y asi. ¿Puedo hacer todo eso y mas con Lazarus y Pascal?

Edson

  • Hero Member
  • *****
  • Posts: 1296
Re: Hola comunidad ayuda para un hobbista
« Reply #1 on: March 01, 2017, 09:30:21 pm »
Claro. Puedes hacer todo eso y más en Lazarus-FPC, todo depende de la paciencia y/o conocimiento que tengas de la herramienta/lenguaje/librerías. Sin embargo, pude ser algo penoso trabajar en web y Android, con Lazarus, pero para las aplicaciones de escritorio, no hay nada mejor.

Sería bueno que definas, primero, los requerimientos (funcionales/ no funcionales) de tu proyecto para que puedas elegir:

- Lenguaje/librerías.
- Base de datos.
- Diseño/Arquitectura.

Saludos.
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

lainz

  • Hero Member
  • *****
  • Posts: 4449
    • https://lainz.github.io/
Re: Hola comunidad ayuda para un hobbista
« Reply #2 on: March 01, 2017, 09:46:30 pm »
Si las aplicaciones van a ser de código libre con gusto podemos ayudarte.

AdaelRuiz

  • Newbie
  • Posts: 2
Re: Hola comunidad ayuda para un hobbista
« Reply #3 on: March 01, 2017, 11:57:39 pm »
Hola gracias por sus comentarios, pues en cuestion de librerias desconosco mucho sobre cuales usar, pero creo que funcionaria asi:
Sitio web: Html5 y css3 con un cgi de pascal y lazarus.
Juegos: SDL con base de datos a sqlite
Base de datos: sqlite.
Android: La building de Lazarus.
Para el sistema de la biblioteca: Lazarus con pascal y una base de datos a sqlite
Servidor princial: Linux
Clientes: Android, Windows y Linux
Todo conectado al servidor y actualizando la informacion en tiempo real
tengo 33 años espero poder hacerlo en menos de 5 años, espero, con su ayuda sera mas rapido, y si todo sera libre, creare un proyecto en github cuando tenga un  avance del 15%
Espero puedan darme consejos para manejar mas librerias y herramientas. los juegos seran educativos todos ellos sobre un juego principal tipo neopets
www.neopets.com

lainz

  • Hero Member
  • *****
  • Posts: 4449
    • https://lainz.github.io/
Re: Hola comunidad ayuda para un hobbista
« Reply #4 on: March 02, 2017, 02:57:34 am »
Si bien es posible hacer todo eso con Lazarus hay herramientas especiales para cada tarea.

Juegos: unity
Web: PHP, HTML y Javascript
Android: HTML y JavaScript sino Java

Para escritorio si te recomiendo Lazarus.

Para mi no se trata del lenguaje sino de la mejor herramienta para cada caso. El lenguaje se aprende de una u otra manera al final.

Edson

  • Hero Member
  • *****
  • Posts: 1296
Re: Hola comunidad ayuda para un hobbista
« Reply #5 on: March 02, 2017, 04:51:48 am »
Hola gracias por sus comentarios, pues en cuestion de librerias desconosco mucho sobre cuales usar, pero creo que funcionaria asi:
Sitio web: Html5 y css3 con un cgi de pascal y lazarus.
Juegos: SDL con base de datos a sqlite
Base de datos: sqlite.
Android: La building de Lazarus.
Para el sistema de la biblioteca: Lazarus con pascal y una base de datos a sqlite
Servidor princial: Linux
Clientes: Android, Windows y Linux

El proyecto que piensas desarrollar es extenso. Te recomiendo que lo dividas en módulos. Algunos, módulos son más independientes que otros así que se podrían desarrollar separadamente.

Para la base de datos no te recomiendo SQLite. No es apropiada para sistemas distribuidos y no soporta conexiones simultáneas.
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

lainz

  • Hero Member
  • *****
  • Posts: 4449
    • https://lainz.github.io/
Re: Hola comunidad ayuda para un hobbista
« Reply #6 on: March 02, 2017, 04:28:40 pm »
El proyecto que piensas desarrollar es extenso. Te recomiendo que lo dividas en módulos. Algunos, módulos son más independientes que otros así que se podrían desarrollar separadamente.

Estoy de acuerdo, los juegos pueden ser cada juego o todos en un proyecto aparte.

Para la base de datos no te recomiendo SQLite. No es apropiada para sistemas distribuidos y no soporta conexiones simultáneas.

Una duda, eso aplica solo al servidor o también al cliente para PC?

-------------------------------------------------------------------------

Esto va aparte, quizas deberías dejar el manejo de base de datos del lado del servidor y usar una api para enviar y recibir los datos. Así no necesitas una base de datos del lado del juego por ejemplo.

Edson

  • Hero Member
  • *****
  • Posts: 1296
Re: Hola comunidad ayuda para un hobbista
« Reply #7 on: March 02, 2017, 05:05:09 pm »
Para la base de datos no te recomiendo SQLite. No es apropiada para sistemas distribuidos y no soporta conexiones simultáneas.
Una duda, eso aplica solo al servidor o también al cliente para PC?

-------------------------------------------------------------------------

Esto va aparte, quizas deberías dejar el manejo de base de datos del lado del servidor y usar una api para enviar y recibir los datos. Así no necesitas una base de datos del lado del juego por ejemplo.
Solo al servidor. En los clientes, puede haber bases de datos SQLite, porque no se suele guardar grandes cantidades de datos. Lo común sería usar archivos XML, o INI, para las configuraciones locales.

Dejar la administración de datos del lado del servidor, libera al cliente de toda la lógica y recursos que se necesitaría, si tratasen los datos localmente. Esto desde luego tiene sus desventajas, como que se depende de que la conexión esté siempre activa. Un fallo en la red, dejaría inutilizables a todos los clientes.

En todo caso, el diseño depende de qué tan crítico, sería una interrupción en la conexión. Quizá para algunos módulos no afectaría mucho.

En ciertos esquemas se trabaja con una pequeña base de datos local, y luego hay una lógica de sincronización con el servidor. Esto complica un poco el sistema, pero permite más seguridad para los clientes.


Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

lainz

  • Hero Member
  • *****
  • Posts: 4449
    • https://lainz.github.io/
Re: Hola comunidad ayuda para un hobbista
« Reply #8 on: March 03, 2017, 07:30:26 pm »
Quote
Solo al servidor. En los clientes, puede haber bases de datos SQLite, porque no se suele guardar grandes cantidades de datos. Lo común sería usar archivos XML, o INI, para las configuraciones locales.

Eso pensaba, es mejor dejarlo en claro para que no tenga esa duda a la hora de armar los proyectos.

Quote
Dejar la administración de datos del lado del servidor, libera al cliente de toda la lógica y recursos que se necesitaría, si tratasen los datos localmente. Esto desde luego tiene sus desventajas, como que se depende de que la conexión esté siempre activa. Un fallo en la red, dejaría inutilizables a todos los clientes.

En todo caso, el diseño depende de qué tan crítico, sería una interrupción en la conexión. Quizá para algunos módulos no afectaría mucho.

En ciertos esquemas se trabaja con una pequeña base de datos local, y luego hay una lógica de sincronización con el servidor. Esto complica un poco el sistema, pero permite más seguridad para los clientes.

Claro en un soft de biblioteca no muy grande (que use una sola PC) no hace falta que uses un servidor si o si, pero si al menos el backup de los datos, o si se necesita mas de una PC en la biblioteca que acceda a los mismos datos actualizados ahí haría falta.

Para los juegos si la función principal es guardar el progreso, también se puede hacer de manera local en el dispositivo y de la misma forma sincronizar solamente si es necesario. Depende si va a usar login en las mismas PC de la institución, ahí si o si necesita servidor y no datos locales porque cada usuario puede usar cualquier PC cada vez que entra al juego por ejemplo y podría tener o no sus datos de juego en cada PC.

Todo depende de como quiere hacer las cosas y que recursos físicos hay disponibles (PC's, servidor).

SpyHommer

  • Newbie
  • Posts: 2
Re: Hola comunidad ayuda para un hobbista
« Reply #9 on: March 08, 2017, 12:27:43 am »

En ciertos esquemas se trabaja con una pequeña base de datos local, y luego hay una lógica de sincronización con el servidor. Esto complica un poco el sistema, pero permite más seguridad para los clientes.

Bueno, lo complica un poco el sistema... Hay aplicaciones que realizan esa tarea automaticamente (la replicación de datos). El tema es leerse (aprenderse) como se hace una vez.

Yo personalmente, y pareciendo que la red va a estar ubicada en el mismo edificio, lo guardaria en enservidor la BBDD, y con tener la precaución de que esté el servidor encendido el mismo tiempo que los clientes. El unico riesgo de corte es que no haya electricidad, y en este caso tampoco importa, ya que tampoco la habrá para los clientes... no sé si me explico.

jmm72

  • Jr. Member
  • **
  • Posts: 79
  • Very experienced in being a beginner...
Re: Hola comunidad ayuda para un hobbista
« Reply #10 on: March 08, 2017, 11:43:51 pm »
Yo personalmente recomiendo lo siguiente:
* Para el servidor, LAMP (Linux, Apache, MySQL y PHP) para generar el HTML/CSS. Hay muchas preinstalaciones que te crean un LAMP o un WAMP (sobre Windows) sin mucho esfuerzo ni necesidad de entrar en configuraciones complejas. La ventaja es que muchos sitios de alojamiento ofrecen esta configuración, que es facilísima de encontrar, por lo que hay muchísima ayuda, documentación y herramientas para construir lo que pretendes sobre esa configuración base. Con un poco de PHP y MySQL se hacen cosas muy flexibles, y bueno, el HTML/CSS es imprescindible e inevitable.

* Para el cliente, Lazarus es ideal. Windows, Linux, Android, etc. Object Pascal es un lenguage precioso y potente, y Lazarus/FPC están más que maduros como para poder acometer (casi?) cualquier proyecto. El proyecto que describes entra perfectamente en las posibilidades de Lazarus/FPC. Y disfrutarás más que con C++, creo yo.

Los juegos pueden ser programas en el cliente, o juegos en el navegador (Flash), aparte de hacer los tuyos puedes coger prestados muchos de código abierto como añadidos a tu proyecto.

Cómo guardes datos en el cliente es irrelevante, en cierto momento tendrás que interpretarlos, meterlos en memoria, y enviarlos al servidor, y viceversa. Lazarus puede conectarse sin problemas a MySQL, o enlazar a través de una página generada por PHP con POST y GET (se pueden mandar y recibir datos de manera segura también) de manera que tengas una capa que controle la base de datos independientemente del tipo de cliente o versión.

Creo que es un proyecto bonito pero extenso. Antes de escribir una línea de código para el proyecto, yo leería mucha documentación y dedicaría mucho tiempo al diseño general de cada parte: cuál va a ser su función, cómo se van a comunicar, cómo la vas a implementar, etc. Mientras mejor diseño previo hagas, menos dolores de cabeza tendrás después. Programar primero y pensar después está bien para cosas pequeñas y es divertido, pero algo de este calibre requiere planificación y estudio.

Descubrirás que hay comunidades para PHP, MySQL y esta de Lazarus en las que la gente ayuda mucho y bien (salvando al idiota de turno). Espero ir viendo como el proyecto toma forma, y ayudare(mos) en lo posible.
Lazarus 1.6.4 + FPC 3.0.2 64bits under Windows 7 64bits
Only as a hobby nowadays
Current proyect release: TBA

lainz

  • Hero Member
  • *****
  • Posts: 4449
    • https://lainz.github.io/
Re: Hola comunidad ayuda para un hobbista
« Reply #11 on: March 08, 2017, 11:48:28 pm »
Lo último que voy a agregar en este tema:

- Unity soporta WebGL, o sea que no necesariamente los juegos necesitan descargarse, también se pueden ejecutar en el navegador.

Y espero que esto no quede en la nada, sería un buen proyecto open source.

 

TinyPortal © 2005-2018