[PROYECTO] LinDriver. Recopilación de drivers para GNU/Linux

1, 2, 3, 4, 5
Imagen



Muy buenas a todos.

Escribo este post para pedir vuestra colaboración en un proyecto para hacer de GNU/Linux más fácil y accesible. Como muchos sabréis, estoy haciendo unos manuales para iniciar a usuarios de Windows u otros sistemas a GNU/Linux. Planeando como organizar estos manuales, me dí cuenta de un grave problema al que se encuentran todos los novatos: La instalación y configuración de los drivers.

Mi objetivo al hacer dichos manuales es el de llevar GNU/Linux a usuarios sin conocimientos propios mediante ejemplos, metáforas e ilustraciones de explicación. Qué distribución elegir. Como grabarla en un disco. Como iniciar la instalación desde el disco. Como instalar. Como particionar. ¿Pero como explico tener el equipo listo con todos sus drivers? No existe una formula mágica. Ese paso, se consigue hoy en día mediante búsquedas, pruebas, preguntando en foros, investigando o de las maneras más rebuscadas posibles. El escalón entre como instalar y como tener el equipo listo es muy alto, y con ello solo se consigue que los usuarios vuelvan a Windows, que los usuarios se maleduquen con prácticas como el "Copy&Paste" o muertes por desesperación. Aquí es donde llega mi ídea.

El objetivo:
Un sitio de referencia donde encontrar las soluciones para hacer funcionar el hardware de nuestro equipo, independientemente de la distribución, arquitectura o de cualquier otro factor.


Como conseguirlo:
Creando un sitio web que gestione las páginas con los pasos a seguir para la instalación de los drivers, por la distro a la que está dirigida, la arquitectura, versión y driver utilizado; que guarde los archivos necesarios (drivers, por ejemplo) para evitar que estos se pierdan (¿a quién no le ha ocurrido que siguiendo un tutorial se encuentre con que el enlace a un archivo no funcione?); que permita reportar bugs y errores durante la instalación de los drivers; un sistema de comentarios y votaciones para conseguir manuales de gran calidad; que cualquiera pueda proponer una versión mejorada de una página de pasos de instalación de un driver, pero sin perder en seguridad (se crean páginas individuales pendientes de moderación); una wiki explicando los comandos más comúnes en GNU/Linux para dar explicación a aquello que aparece en los pasos a seguir en la instalación de drivers...

... Es mucho trabajo, por eso, pido vuestra ayuda.


El proyecto ya tiene nombre: LinDriver. El sitio web es: http://lindriver.com
Para el desarrollo de dicho sitio, creo que sería bueno utilizar:
  • Django: Un framework de desarrollo web en el que se escribe en python. Yo, personalmente, estoy empezando a utilizarlo, pero es muy interesante y quienes tengan experiencia con python se sentirán como en casa. Libro de Django en español: http://lindriver.com/book/ Libro de Django de la última versión en ingles: http://djangobook.com/en/2.0/
  • MySQL: Un sistema de gestión de base de datos, el cual, creo que no necesita ní presentación.
  • Apache: Servidor web de código abierto. Tampoco necesita presentación.
  • Jquery: Framework javascript. He probado varios y es el que más me ha gustado.

Esquema de la base de datos:
Este es el esquema que he pensado para la base de datos. No es un esquema definitivo, es solo mí idea, podéis hacer propuestas, por supuesto.
Borrador.



Para el proyecto necesitaremos:
Puedes apuntarte al proyecto en este hilo. No tienes que estar todo el tiempo presente, no estás obligado a permanencia y podrás trabajar cuando desees.

Diseño gráfico:
Capitanquartz
Maeseoki

Traductores (del español al ingles):
snakefd99cb
Maeseoki
Resadent
Hawk31
Jajavimo

Diseño web (Xhtml + css + Jquery):
Capitanquartz
Ncoola

Programación (Python + Django):
Capitanquartz
4evah
Feler

Relaciones públicas:
Capitanquartz
Jajavimo

Gracias a que Django cumple en cierta medida el Modelo vista Controlador, los diseñadores web junto los diseñadores gráficos no necesitan poseer conocimientos ni de python ni del uso de Django. Por lo tanto, ambos grupos pueden trabajar independientes sin problemas :)

Decir que, para los que se quieran apuntar a diseño gráfico, necesitamos para empezar un logotipo. ¡¡Proponed vuestros diseños!! ^^

Y al igual que los manuales que escribo son exclusivos para ElOtroLado, este proyecto estará organizado en un principio únicamente por gente del ElOtroLado, también porque más o menos conozco ya a mucha gente y tengo algo de confianza con vosotros :P

Un cordial saludo: Capitanquartz.
Bueno, mi opinión sobre algo privativo ya se conoce.

Pero eso de bugs, en algo privativo, ¿de qué sirve?
Snakefd99cb escribió:Bueno, mi opinión sobre algo privativo ya se conoce.

Pero eso de bugs, en algo privativo, ¿de qué sirve?


Ya sabes que mi opinión sobre los drivers privativos es la misma... :-| :-| :-| Pero que le vamos a hacer. Solo podemos presionar para que liberen esos drivers y utilizar drivers de código libre siempre que podamos. Decir que, tengo pensado que se avise en los manuales de los drivers privativos. Creo que es algo importante.

PD: Snake, espero que me pudieses ayudar como traductor... ¿qué me dices? [360º]
Alguna cosa suelta podría hacer. Pero lo que es comprometerme al 100% no puedo. Te soy sincero, bastante tengo con el trabajo y mis cosas.
Snakefd99cb escribió:Alguna cosa suelta podría hacer. Pero lo que es comprometerme al 100% no puedo. Te soy sincero, bastante tengo con el trabajo y mis cosas.


Sin compromiso, no te preocupes :p
Bueno capi, no es el primer proyecto en el que estamos juntos, espero que este vaya mejor.

Por lo pronto me apunto a diseño gráfico y a traducción. Editaré el mensaje con algun diseño de logotipo, pero hoy no....mañana XD Que tengo sueño.
Capitan, nunca he programado en python, pero no tengo problemas para aprender, en un momento dado podría ayudarte a la hora de picar código.

En realidad te podría ayudar en casi cualquier lenguaje, incluyendo html+css, javascript y php.
Saludos.
Desde luego, te (os) mereceis un monumento por facilitar toda esa información a los novatillos y encima tenerla centralizada.
AY, que me da un patatus, ojala tuviera tiempo, conocimiento y material para ayudar uff.
Esto si que es lo que hace falta, paginas centralizadas de donde sacar la información sin rebuscar en 20.000.000 y morirte cuando encuentras la informacion..., pero no es compatible con lo que tienes XD.

Aunque aun no me he tenido que pelear en un buen tiempo con drivers... (para WiFi si... para cada dia es mucho mas facil ello ^^, y para graficas paso de pijerias la verdad XD).

Ahora que caigo..., para rematar la faena ya seria hacer un pequeño programita que examinara los dispositivos de tu PC y ofreciera distintas versiones de los drivers disponibles para ellos pudiendo elegir su instalacion, avisando de su comportamiento, si son privativos y si dan conflictos con otros..., ello conectandose a la base de datos Online claro ^^, algo como Everest juntandola con varias paginas dedicadas a drivers (incluyendo las oficiales y repositorios) XD.
blackgem escribió:AY, que me da un patatus, ojala tuviera tiempo, conocimiento y material para ayudar uff.
Esto si que es lo que hace falta, paginas centralizadas de donde sacar la información sin rebuscar en 20.000.000 y morirte cuando encuentras la informacion..., pero no es compatible con lo que tienes XD.

Aunque aun no me he tenido que pelear en un buen tiempo con drivers... (para WiFi si... para cada dia es mucho mas facil ello ^^, y para graficas paso de pijerias la verdad XD).

Ahora que caigo..., para rematar la faena ya seria hacer un pequeño programita que examinara los dispositivos de tu PC y ofreciera distintas versiones de los drivers disponibles para ellos pudiendo elegir su instalacion, avisando de su comportamiento, si son privativos y si dan conflictos con otros..., ello conectandose a la base de datos Online claro ^^, algo como Everest juntandola con varias paginas dedicadas a drivers (incluyendo las oficiales y repositorios) XD.

Jejeje, me estás sacando la idea para cuando el proyecto esté más avanzado XD XD XD pero sería complejo... ya se verá. Lo primero lo primero :P


No tiene nada que ver con lo que pretendo. Dicho sitio solo te ofrece información de los controladores que se incluyen con Debian, sin dar explicación a los que no se encuentran en el.
4eVaH escribió:Capitan, nunca he programado en python, pero no tengo problemas para aprender, en un momento dado podría ayudarte a la hora de picar código.

En realidad te podría ayudar en casi cualquier lenguaje, incluyendo html+css, javascript y php.
Saludos.

Lo mismo digo, yo he hecho cuatro chapucillas en python, pero intentaré ayudar en todo lo posible si me dejas.
Borrador del diseño de la base de datos.
Si tenéis sugerencias no os cortéis, es solo un boceto. Utilizo Django para las bases de datos. Leed la documentación de Django para comprenderlo. Español. Inglés (nueva versión de Django).

# -*- coding: utf-8 -*-
from django.db import models

class component(models.Model):
   # Nombre del tipo de componente en español. Por ejemplo, "tarjeta gráfica"
   es = models.CharField(max_length=70)
   # Nombre del tipo de componente en inglés. Por ejemplo, "graphic card"
        en = models.CharField(max_length=70)
   # Una descripción de aquel tipo de componente al que se refiere en español.
   description_es = models.CharField(max_length=250)
   # Una descripción de aquel tipo de componente al que se refiere en español.
   description_en = models.CharField(max_length=250)
   # Un listado de rutas a imágenes
   images = models.ManyToManyField(image)
   
class hardware(models.Model):
   # La id del componente (padre). Es un número entero. Por ejemplo, si esta es una conceptronic C54RU (tarjeta inalámbrica USB) tendrá la id de "tarjeta inalámbrica" de la tabla componentes.
   component = models.IntegerField()
   # La marca del producto. Por ejemplo, Conceptronic.
   mark = models.CharField(max_length=100)
   # El modelo. En este caso, C54RU, aunque pueden ser más largos.
   model = models.CharField(max_length=100)
   # De un mismo modelo y marca pueden haber variantes incluso de un mismo chip. aquí se especifica.
   variant = models.CharField(max_length=50)
   # El chip, en este caso, rt73 (ralink).
   chip = models.CharField(max_length=50)
   # La salida al hacer lsusb, lspci que corresponde a este hardware.
   lsx = models.CharField(max_length=200)
   # Una descripción del hardware en español.
   description_es = models.CharField(max_length=250)
   # Una descripción del hardware en inglés.
   description_en = models.CharField(max_length=250)
   # Un listado de rutas a imágenes
   images = models.ManyToManyField(image)
   # Valor True o False. Especifica con True que la fila de datos es la que deben ver los usuarios al referirse a este articulo. Por ejemplo, puede haber una primera fila refiriendose a un articulo llamado "conceptronc C54Ru", pero que después, otro usuario envie una corrección con el nombre "conceptronic C54Ru" (notese la "i"). Un moderador da la razón a la corrección y la primera versión, deja de ser la publicada (la que ven "en primera plana" los usuarios) para pasar a verse la versión corregida.
   published = models.BooleanField()
   # Un número entero que se refiere a un id o un valor Nulo. En el caso anterior mostrado, la primera versión tendría un valor nulo, ya que no se basa en ningún articulo (es la primera versión) pero, la corrección sería hijo de la primera versión, ya que está basada en esta. En dicho caso, el valor sería la id de la fila padre.
   father = models.IntegerField()
   # Un valor numérico entero. Siguiendo el mismo ejemplo a los antes nombrados, imaginemos que se lanza una tercera versión basada en la segunda (no esta basada en la primera, es una modificación de la segunda versión). En dicho caso, "father" (el padre) sería la id de la segunda versión, pero, en todas las versiones se mantiene la id de la primera versión, la original, y se llama "first_father". De esta manera todos los comentarios y soluciones enlazarán siempre al componente independientemente de la versión en la que se encuentre.
   first_father = models.IntegerField()
   # Valoración del 0 al 4 del hardware, siendo ya la valoración calculada.
   stars = models.FloatField(max_digits=4, decimal_places=3)
   # Votos actuales en la valoración del hardware.
   stars_votes = models.IntegerField()
   # Valor numérico entero. La id de usuario que envia esta fila de información.
   user = models.IntegerField()
   # Fecha en la que se envió la fila.
   date = models.DateField(auto_now)
   
class solution(models.Model):
   ####### No debe confundirse entre "solution" y "page". La tabla "solution" incluye información sobre un procedimiento posible para hacer funcionar un determinado hardware. Por ejemplo, para nuestra Conceptronic C54RU con chip rt73 podemos usar los drivers de Serialmonkey, ndiswrapper o los drivers oficiales de ralink (privativos). Una página será la explicación de como utilizar un método en un idioma, para una arquitectura y una distribución. Por ejemplo, puede haber una página en español explicando como usar los drivers de serialmonkey para x86 en la distro Debian, otra página en inglés para como usar los drivers de serialmonkey para x86 en Debian, otra página en español de como usar ndiswrapper en x86_64 en Gentoo...
   # Valor numérico entero. Es la id de "first_father" de la tabla hardware.
   hardware = models.IntegerField()
   # Valor True o False. Sigue la misma idea que el published de la tabla hardware.
   published = models.BooleanField()
   # Un número entero que se refiere a un id o un valor Nulo. Sigue la misma idea que el "father"  de la tabla hardware.
   father = models.IntegerField()
   # Un valor numérico entero. Sigue la misma idea que el "first_father" de la tabla hardware.
   first_father = models.IntegerField()
   # El nombre del método en español.
   name_es = models.CharField(max_length=100)
   # El nombre del método en inglés.
   name_en = models.CharField(max_length=100)
   # Una descripción del método en español.
   description_es = models.CharField(max_length=250)
   # Una descripción del método en inglés.
   description_en = models.CharField(max_length=250)
   # Valoración del 0 al 4 de si es bueno el método, siendo ya la valoración calculada.
   stars = models.FloatField(max_digits=4, decimal_places=3)
   # Votos actuales en la valoración del método.
   stars_votes = models.IntegerField()
   # Valor numérico entero. La id de usuario que envia esta fila de información.
   user = models.IntegerField()
   # Fecha en la que se envió la fila.
   date = models.DateField(auto_now)
   # Valor True o False donde True indica que es un driver privativo.
   privative = models.BooleanField()
   
class page(models.Model):
   ####### Las variantes de un manual que se encuentran en el mismo idioma, para la misma arquitectura y la misma distro o distros serán propuestas de mejora, pero si por ejemplo se hace una variante de un mismo manual pero en otro idioma (una traducción) no será una mejora, sino que se hace una página nueva que será directamente hija de "solution".
   # Valor numérico entero. Es la id de "first_father" de la tabla solution.
   solution = models.IntegerField()
   # Un número entero que se refiere a un id o un valor Nulo. Sigue la misma idea que el "father"  de la tabla hardware.
   father = models.IntegerField()
   # Un valor numérico entero. Sigue la misma idea que el "first_father" de la tabla hardware.
   first_father = models.IntegerField()
   # Valor True o False. Sigue la misma idea que el published de la tabla hardware.
   published = models.BooleanField()
   # Idioma en el que está la página. Para español "es" y para inglés "en".
   lang = models.CharField(max_length=2)
   # Es la distribución o distribuciones para las que está pensado el manual.
   distros = modelsManyToManyField(distro)
   # La arquitectura (o, para decir que es valido para todas las arquitecturas, "All") para la que está pensado el manual.
   architectures = models.ManyToManyField(architecture)
   # Valor numérico entero. La id de usuario que envia esta fila de información.
   user = models.IntegerField()
   # Fecha en la que se envió la fila.
   date = models.DateField(auto_now)
   # Valoración del 0 al 4 de la calidad de esta información.
   stars = models.FloatField(max_digits=4, decimal_places=3)
   # Votos actuales en la valoración de la información.
   stars_votes = models.IntegerField()
   # El texto con los pasos a seguir para hacer funcionar el hardware.
   text = models.TextField()
   
class comment(models.Model):
   # Que tipo de comentario es. Puede ser un comentario ("comment") o un reporte de fallo o problema ("bug").
   comment_type = models.CharField(max_length=8)
   # Un valor del 0 al 4. Si es un comentario, Con el 0 no agradeces para nada la página y con el 4 mucho. Si es un reporte de fallo, con 0 no le das mucha importancia y con el 4 mucha.
   stars = models.IntegerField()
   # Un valor numérico o un valor nulo. Se refiere a la id del comentario o del bug al que responde.
   reply = models.IntegerField()
   # Valor numérico entero. La id de usuario que envia esta fila de información.
   user = models.IntegerField()
   # Fecha en la que se envió la fila.
   date = models.DateField(auto_now)
   # El titulo del comentario o bug.
   title = models.CharField(max_length=40)
   # El texto de la contestación
   text = models.TextField()
   
class attached(models.Model):
   # Nombre del adjunto.
   name = models.CharField(max_length=40)
   # Versión del adjunto.
   name = models.CharField(max_length=20)
   # Nombre del archivo en el servidor del adjunto.
   name = models.CharField(max_length=100)
   # Veces descargado el archivo.
   downloads = models.IntegerField()
   # El "first_father" de la fila en la tabla "page" donde debe aparecer la descarga.
   pages = models.ManyToManyField(page)
   # El "first_father" de la fila en la tabla "comment" donde debe aparecer la descarga.
   comments = models.ManyToManyField(comment)
   # Valor numérico entero. La id de usuario que envia esta fila de información.
   user = models.IntegerField()
   # Fecha en la que se envió la fila.
   date = models.DateField(auto_now)
He estado mirando la base de datos y en principio creo que tiene todo lo necesario, he estado mirando los comentarios ya que lo poco que he trabajado con base de datos a sido con Oracle y no entiendo muy bien la sintaxis de Django, aunque estoy mirando el manual que nos has ofrecido para enterarme un poco mejor, en definitiva creo que esta bien para empezar.
Una preguntilla, as hecho la base de datos a pelo de cabeza o has hecho algun diagrama de clases o entidad-relacion? yo he tenido que hacerme un boceto que sino no veo claras las asociaciones asi sobre el papel, lo digo porque si lo has hecho podías subirlo ya que es mas fácil revisarlo.

Un Saludo y animo, ayudaremos en lo que se pueda.
El enlace era para que copiarais ideas, se que no es lo mismo, pero igual os sirve.
rcaba escribió:He estado mirando la base de datos y en principio creo que tiene todo lo necesario, he estado mirando los comentarios ya que lo poco que he trabajado con base de datos a sido con Oracle y no entiendo muy bien la sintaxis de Django, aunque estoy mirando el manual que nos has ofrecido para enterarme un poco mejor, en definitiva creo que esta bien para empezar.
Una preguntilla, as hecho la base de datos a pelo de cabeza o has hecho algun diagrama de clases o entidad-relacion? yo he tenido que hacerme un boceto que sino no veo claras las asociaciones asi sobre el papel, lo digo porque si lo has hecho podías subirlo ya que es mas fácil revisarlo.

Un Saludo y animo, ayudaremos en lo que se pueda.


¿La escaneo? xD Tiene flechas en rojo y todo... incluso en una esquina dibujé una carita sonriente. La syntaxis es la de python.

e-Minguez escribió:El enlace era para que copiarais ideas, se que no es lo mismo, pero igual os sirve.

Gracias ;-) aunque más o menos por mí cuenta ya lo tengo todo pensado... va a ser más complejo que el del enlace que me has enseñado, pero te lo agradezco :P
capitanquartz escribió:¿La escaneo? xD Tiene flechas en rojo y todo... incluso en una esquina dibujé una carita sonriente. La syntaxis es la de python.


Sino te importa escanearla? en python todavía no he programado, lo he hecho sobretodo en c++ y algo en java, pero bueno tenía ganas de mirar python que esuchado cosas muy buenas.

Saludos.
rcaba escribió:
capitanquartz escribió:¿La escaneo? xD Tiene flechas en rojo y todo... incluso en una esquina dibujé una carita sonriente. La syntaxis es la de python.


Sino te importa escanearla? en python todavía no he programado, lo he hecho sobretodo en c++ y algo en java, pero bueno tenía ganas de mirar python que esuchado cosas muy buenas.

Saludos.


Voy a buscarla y a ver si consigo hacer funcionar el escaner, aunque decir que es una basura... creo que queda más claro con los comentarios.

PD: ¿quiéres que te apunte en programadores? :p :p
Bah pues dejalo, yo lo decía porque siempre una imagen ilustra mas, apuntame si quieres jeje pero no prometo nada, no ando sobrado de tiempo pero se hará lo que se pueda, ahora estoy instalando Django y eso para exarle un vistazo, tiene buena pinta.
Pues nada suerte, por mi parte, aunque se me ocurriera en que ayudaros :p me temo que no tengo mucho tiempo disponible, por no decir nada, pero os doy mi ánimo XD.
Si la página va a servir de pequeño-gran repositorio de drivers y dar unas indicaciones básicas perfecto, ahora si va a ser un página llena de copy&paste's que se pueden encontrar en google en 2 minutos, retiro lo del ánimo eh XD.

Un saludo.
Einy escribió:Pues nada suerte, por mi parte, aunque se me ocurriera en que ayudaros :p me temo que no tengo mucho tiempo disponible, por no decir nada, pero os doy mi ánimo XD.
Si la página va a servir de pequeño-gran repositorio de drivers y dar unas indicaciones básicas perfecto, ahora si va a ser un página llena de copy&paste's que se pueden encontrar en google en 2 minutos, retiro lo del ánimo eh XD.

Un saludo.

Vamos a luchar contra la conducta Copy&Paste y desarrollar documentación de los comandos más utilizados. Dicha documentación será automáticamente enlazada al nombrar el comando.

Un saludo.
Einy escribió:Si la página va a servir de pequeño-gran repositorio de drivers y dar unas indicaciones básicas perfecto, ahora si va a ser un página llena de copy&paste's que se pueden encontrar en google en 2 minutos, retiro lo del ánimo eh XD.

Alguien no se ha leido las intenciones de la paginaaa xD

PD: se nota que capi usa el theme blanco, ese azul con el theme verde no se acaba de ver muy bien :P
pho escribió:
Einy escribió:Si la página va a servir de pequeño-gran repositorio de drivers y dar unas indicaciones básicas perfecto, ahora si va a ser un página llena de copy&paste's que se pueden encontrar en google en 2 minutos, retiro lo del ánimo eh XD.

Alguien no se ha leido las intenciones de la paginaaa xD

PD: se nota que capi usa el theme blanco, ese azul con el theme verde no se acaba de ver muy bien :P


Es que me gustan los colores claros para los sitios web :p Es algo que se nota en todos mis diseños... creo que la vista de cualquiera lo agradece.

Estoy a la espera de la contestación de mi hosting para poder comenzar el proyecto de forma online.

Por lo que veo, nadie había probado antes Django. Debo confesar que yo estoy empezando ahora y que no me está costando demasiado... está bien documentado. Animo a que los interesados en la programación que comiencen ya a leerse el libro de Django. Quienes no tuviesen experiencia anterior con python, yo les recomendaría empezar antes con python.

Un saludo.
capitanquartz escribió:Por lo que veo, nadie había probado antes Django. Debo confesar que yo estoy empezando ahora y que no me está costando demasiado... está bien documentado. Animo a que los interesados en la programación que comiencen ya a leerse el libro de Django. Quienes no tuviesen experiencia anterior con python, yo les recomendaría empezar antes con python.

Un saludo.

Decir que yo también me estoy leyendo ese libro, y es mucho más fácil de lo que parece!!!! Has hecho una gran elección con este framework.
pho escribió:
Einy escribió:Si la página va a servir de pequeño-gran repositorio de drivers y dar unas indicaciones básicas perfecto, ahora si va a ser un página llena de copy&paste's que se pueden encontrar en google en 2 minutos, retiro lo del ánimo eh XD.

Alguien no se ha leido las intenciones de la paginaaa xD

PD: se nota que capi usa el theme blanco, ese azul con el theme verde no se acaba de ver muy bien :P


No si leerlo lo he leído bien, pero una cosa son las intenciones y otra en lo que se acaban convirtiendo algunas páginas, pero vamos si es como dice capitanquartz, con documentación de los comandos y tal, la verdad que espero que vaya muy bien ;).

Un saludo.
Apúntame a traducción y programación, que a lo mejor algo de C sirve xD.

Salu2.
hawk31 escribió:Apúntame a traducción y programación, que a lo mejor algo de C sirve xD.

Salu2.

Te apunto a la traducción, pero decir tiene que no vamos a programar en C en ningún momento del proyecto, salvo tal vez cuando hayamos acabado el sitio y pensemos en una aplicación que busque los drivers en el sitio web.

Si tienes conocimientos de html y css si que nos vendría bien :p

Un saludo.

PD: Los manuales van a ser editables por todos por lo que, si la comunidad es grande y está dispuesta a colaborar, la documentación debería ser excelente. También se me ha ocurrido que se puede impedir el copy&paste a la fuerza poniendo por ejemplo, delante de cada linea, algo como el número de la linea o "$" y "#" dependiendo de si el comando debe ejecutarse como root o no. También, como ya he dicho muchas veces, si en un comando a ejecutar se pone:
sudo aptitude install cowsay

automáticamente se enlazará con la palabra "sudo" a una explicación de lo que hace y con "aptitude install" a una documentación de aptitude al apartado "install". También se animará a visitar dicha documentación.

Hoy en día internet está infestado por blogs y posts en foros con manuales mal explicados, que enlazan a archivos que ya no existen, que les faltan pasos y no explican lo que se hace con cada comando. Propongo una comunidad en la que todos los manuales serán mejorables, se podrá reportar si algo del manual no funciona, los archivos se encontrarán en el servidor (además de enlazar al archivo original) y se explicará con todo lujo de detalles lo que hace cada comando. ¿Esta comunidad animará al Copy&Paste? No. Pero, ya si alguien decide hacer caso omiso a las explicaciones y decide copiar todo lo que aparece en los manuales sin leer nada, es culpa de la persona, no nuestra. Nosotros hemos hecho todo lo posible. Qué más podemos hacer: ¿Ir con un bate de béisbol y explicárselo con la fuerza? No. Entonces, ¿nos quedamos ante el riesgo sin hacer nada y cancelamos todo? Creo que tampoco deberíamos. Con tal de que aquellas personas que están dispuestas por lo menos a leer sean ayudadas, me doy con un canto en los dientes.

Un saludo.
Yo solo puedo ofrecer mi ánimo, no tengo ni idea de programar :( . Si acaso cuando esté en funcionamiento igual me apunto para aportar algo de información.


5*
Yo ya he hablado por jabber con capi que me voy a apuntar a programación (sé algo de python, y por lo que veo es muy fácil) y a traducción. He pensado, capi, que lo de diseño web es un poco precipitado, ya que de momento no se nada, aunque no me faltan ganas, no señor.

Saludos y podéis ir asignandome tareas en cuanto querais
Ya te he quitado de la sección diseño web :P

De momento estoy haciendo pruebas... aunque estoy teniendo dificultades con Django, como ya he dicho, estoy empezando. si alguien tiene experiencia con django o sabe de alguien que la tenga... :P Se lo agradeceré ^^

Un saludo.
resadent escribió:Saludos y podéis ir asignandome tareas en cuanto querais


Lo mismo digo.
4eVaH escribió:
resadent escribió:Saludos y podéis ir asignandome tareas en cuanto querais


Lo mismo digo.

Sera lo mejor para ir poniendo el tema en marcha.

PD: I'm in xD que capi me reclutó por jabber =P
Sigo a la espera de que los del hosting me pongan Django en el servidor... ¬¬ cosas que se pueden ir haciendo...

Diseño gráfico:
Crear un logotipo.

Traductores:
Hay que traducir el primer mensaje de este post para ponerlo en la web. También traducir el esquema de la base de datos... ya deben poder ir conociendo el proyecto personas de habla inglesa.

Diseño web:
Me habéis dejado solo... xD

Programación:
De momento hay que estar a la espera de los del hosting... pero sería lo suyo que se vaya leyendo la documentación de Django y practicando los ejemplos :P

relaciones públicas:
De momento nada hasta que no haya una versión estable del proyecto.
Me gustaria ayudarte, pero no tengo conocimientos sobre programación (de momento, porque estoy empezando con python).
Podría ayudarte como traductor, tengo un nivel medio de inglés pero ya he visto que tienes traductores.
No se a que te refieres con relaciones públicas, pero podría ayudarte en mis ratos libres.
(mensaje borrado)
jajavimo escribió:Me gustaria ayudarte, pero no tengo conocimientos sobre programación (de momento, porque estoy empezando con python).
Podría ayudarte como traductor, tengo un nivel medio de inglés pero ya he visto que tienes traductores.
No se a que te refieres con relaciones públicas, pero podría ayudarte en mis ratos libres.


entonces te pongo como traductor y en relaciones públicas :p :p
Traducción del mensaje de presentación ;)



Imagen




Hello to everybody.

I write this in order to ask for your collaboration in a project to play the role of easier and accessible GNU/Linux. As many of you know, I am doing a few manuals to initiate users of Windows or other systems to GNU/Linux. Planning how to organize these manuals, I realized a serious problem that all novicies have: The driver's installation and configuration.

My goal about making these manuals is to bring GNU/Linux to users without knowledge through examples, metaphors and illustrations. What distribution to choose? How to burn it in a disc? How to start the installation from the disk. How to install. How to partition. But how do I explain to have the computer ready, with all its drivers? There is no a magical way. This step is accomplished today by searching, testing, asking in forums, investigating or with the most far-fetched things. The space from the installation and having the computer ready is very high, and thus ensures that only users return to Windows, users get vices such as "Copy & Paste" or deaths because despair. This is where my idea comes.


The goal:
A reference site to find solutions to operate the hardware of our machine, independently of the distribution, architecture or any other factor.


How to get:
Creating a website to manage the pages with the step-by-step to install the drivers for the distribution that is geared to, architecture, version, and driver selected, saving the files (drivers, for example) to avoid they getting lost (To whom has not happened following a tutorial whith a not-working link to a file? ) Allow reporting bugs and errors during the installation of the driver; a comments' system and votes for achieve high quality textbooks, anyone can propose an improved version of a page of steps to install a driver, but without losing security (individual pages are created pending moderation), a wiki explaining the most common commands of GNU/Linux to give an explanation for what appears on the next steps in the installation of drivers...

... Much work, therefore, I ask you for help.



The project already has a name: LinDriver. The website is: http://lindriver.com
For the development of this site, I think it would be good to use:

  • Django: A Web development framework which is written in python. Personally, I'm starting to use it, but it is very interesting and those who have experience with python will feel at home. Book in Spanish Django: Django Book http://lindriver.com/book/ the latest version in English: http://djangobook.com/en/2.0/
  • MySQL: A management system database, which I think do not need presentation.
  • Apache web server open source. Nor need presentation.
  • JQuery: javascript Framework. I tried several and is the one I like
Mucha gracias maeseoki ^^ Lo pondré en el sitio web... :P
Pues ahora mismo me pongo a traducir el esquema de la base de datos. A ver si para mañana lo tengo listo, que ahora con las fiestas...
Sí, las fiestas... :-| :-| :-| Mucho ruido, es difícil trabajar. Soy ateo por cierto xD

PD: Me voy con los colegas esta noche... así que yo tampoco estaré :P

PD2: Ya he resueltos unos problemas que tenía con Django. Espero poder tener algo pronto... pero, los del hosting aún no me han contestado... :( ¿estarán de vacaciones?
A mi tampoco me gusta la semana santa, pero nunca se le dice que no a un dia de fiesta XD

Al final me he puesto y he traducido el esquema de la base de datos:

    # -*- coding: utf-8 -*-
    from django.db import models

    class component(models.Model):
       # Name of the component type in Spanish. For example, "tarjeta gráfica"
       es = models.CharField(max_length=70)
       # Name of the component type in English. For example, "graphic card"
            en = models.CharField(max_length=70)
       # A description of the component type in Spanish.
       description_es = models.CharField(max_length=250)
       # A description of the component type in English.
       description_en = models.CharField(max_length=250)
       # A list of paths to images
       images = models.ManyToManyField(image)
       
    class hardware(models.Model):
       # Component ID (father). It's a entire number. For example, if it's conceptronic C54RU (a wireless USB card) it will have the "tarjeta inalámbrica" ID of the component table.
       component = models.IntegerField()
       # The brand. For example, Conceptronic.
       mark = models.CharField(max_length=100)
       # The model. In this case, C54RU, but it can be longer.
       model = models.CharField(max_length=100)
       # There may be variants of the same model and brand, even the same chip. Here it is specified.
       variant = models.CharField(max_length=50)
       # The chip, in this case, rt73 (ralink).
       chip = models.CharField(max_length=50)
       # Lsusb output, the lspci of this hardware.
       lsx = models.CharField(max_length=200)
       # A hardware description in Spanish.
       description_es = models.CharField(max_length=250)
       # A hardware description in English.
       description_en = models.CharField(max_length=250)
       # A list of paths to images
       images = models.ManyToManyField(image)
       # Boolean True or False. True specifies that the data row is that users should see when they refer to this component. For example, there may be a first row that refers a component called "conceptronc C54Ru" (without "i"), but after, another user sends a correction with the name "conceptronic C54Ru" (with "i"). A moderator accepts the correction and the first version is no longer published (the version that users see) to go to see the corrected version.
       published = models.BooleanField()
       # A entire number that refers an ID or a Null. In the previous case, the first version had a Null so it isn't based on any component (it is the first version) but the correction is the first version's son so it is based on the first one. In this case, tha asset is la its father's row ID.
       father = models.IntegerField()
       # A entire number. Following the same example, there is a third version based on the second one (it isn't based on the first version). In this case, "father" is the second version's ID id, but in all versions remains the first version's id, the original, and it's called "first_father". In this way all the comments and solutions will always link to the component regardless of the version which  is.
       first_father = models.IntegerField()
       # Hardware valuation (0-4), Being already calculated the valuation.
       stars = models.FloatField(max_digits=4, decimal_places=3)
       # Current votes in the hardware valuation.
       stars_votes = models.IntegerField()
       # A entire number. The user ID who sends this information row.
       user = models.IntegerField()
       # Date when the row was sended.
       date = models.DateField(auto_now)
       
    class solution(models.Model):
       ####### You musn't get confused between "solution" and "page". Th table "solution" has information about a possible procedure to make to work a certain hardware. For example, for our Conceptronic C54RU whith rt73 chip we can use the drivers of Serialmonkey, ndiswrapper or he official drivers of ralink (privative). A page will be the explication about use a method in a language, for an architecture and a distribution. For example, there may be a página en español explicando como usar los drivers de serialmonkey para x86 en la distro Debian, otra página en inglés para como usar los drivers de serialmonkey for x86 in Debian, another page in Spanish with ndiswrapper for x86_64 in Gentoo...
       # A entire number. It is the ID of the "first_father" of the hardware's table.
       hardware = models.IntegerField()
       # Boolean True or False. It follows the same idea that the published of the hardware's table.
       published = models.BooleanField()
       # A entire number that refers an ID or Null. It follows the same idea that the "father" of the hardware's table.
       father = models.IntegerField()
       # A entire number. It follows the same idea that the "first_father" of the hardware's table.
       first_father = models.IntegerField()
       # The name of the method in Spanish.
       name_es = models.CharField(max_length=100)
       # The name of the method in English.
       name_en = models.CharField(max_length=100)
       # A description of the method in Spanish.
       description_es = models.CharField(max_length=250)
       # A description of the method in English.
       description_en = models.CharField(max_length=250)
       # Valuation (0-4) of the method, following the calculated valuation.
       stars = models.FloatField(max_digits=4, decimal_places=3)
       # Currents votes of the method's valuation.
       stars_votes = models.IntegerField()
       # A entire number. The ID of the user who sends this information.
       user = models.IntegerField()
       # Date when the row was sended.
       date = models.DateField(auto_now)
       # Boolean True or False where True refers that it's a privative driver.
       privative = models.BooleanField()
       
    class page(models.Model):
       ####### The variants of a manual that are in a the same language, for the same architecture and the same distribution or other distributions will be proposed of improvement, but if there are a variant of the same manual in other language (a translation) it won't be a improvement, rather it is made a new page that will be directly son of "solution".
       # A entire number. It is the ID of "first_father" of the solution 's table.
       solution = models.IntegerField()
       # A entire number that refers an ID or Null. It follows the same idea that the "father" of the hardware's table.
       father = models.IntegerField()
       # A entire number. It follows the same idea that the "first_father" of the hardware's table.
       first_father = models.IntegerField()
       # Boolean True or False. It follows the same idea that the published of the hardware's table.
       published = models.BooleanField()
       # Page's language. For Spanish "es" and for English "en".
       lang = models.CharField(max_length=2)
       # Distribution/s of the manual.
       distros = modelsManyToManyField(distro)
       # The architecture (if it is for all the architectures, "All") of the manual.
       architectures = models.ManyToManyField(architecture)
       # Entire number. The user Id that sends this information.
       user = models.IntegerField()
       # Date when the row was sended.
       date = models.DateField(auto_now)
       # Valuation (0-4) of the information.
       stars = models.FloatField(max_digits=4, decimal_places=3)
       # Current votes on the information's valuation.
       stars_votes = models.IntegerField()
       # The text with the steps to install the hardware (manual).
       text = models.TextField()
       
    class comment(models.Model):
       # Comment's type. It can be a comment ("comment") or a bug ("bug").
       comment_type = models.CharField(max_length=8)
       # Valuation (0-4). A comment: with 0 you don't thank the page and with the 4 you thank the page a lot. A bug: with 0 you think it isn't important and with 4 you think that it's very important.
       stars = models.IntegerField()
       # A entire number or a Null.It refers th comment or bug's ID.
       reply = models.IntegerField()
       # A entire number. The user ID that sends this information.
       user = models.IntegerField()
       # Date whe the row was sended.
       date = models.DateField(auto_now)
       # Comment or bug's title.
       title = models.CharField(max_length=40)
       # The text with the reply.
       text = models.TextField()
       
    class attached(models.Model):
       # Name of the attached.
       name = models.CharField(max_length=40)
       # Versión of the attached.
       name = models.CharField(max_length=20)
       # Name of the file on the attached's server.
       name = models.CharField(max_length=100)
       # Number of downloads.
       downloads = models.IntegerField()
       # The "first_father" of the row in the table "page" where the download should appear.
       pages = models.ManyToManyField(page)
       # The "first_father" of the row in the table "comment" where the download should appear.
       comments = models.ManyToManyField(comment)
       # A entire number. The user ID that sends this information.
       user = models.IntegerField()
       # Date when the information was sended.
       date = models.DateField(auto_now)


Traduciendo ha sido cuando realmente me he dado cuenta de lo maravilloso de este proyecto. Como salga adelante va a ser muy importante a nivel mundial, o eso espero.
Sigo esperando trabajo de traductor xD

PD: No me has añadido a la lista >//<. (Encima que te ayudo a tratar con los guiris...xD)
Hawk31 añadido a la lista de traductores, siento el descuido :P

Jajavimo, estoy haciendo algunos cambios técnicos en el esquema de la base de datos, pero no te preocupes, son meros cambios en las funciones, no va a cambiar nada de las lineas traducidas. Y por cierto, muchas gracias XD XD XD

Un saludo.
Animo con todas mis ganas este proyecto, aunque no pueda colaborar :( :( ...No se nada de programacion. Pero bueno, yo os animo desde fuera.

PD: Como sugerencia: No se si la pagina va a estar en ingles solo. Me gustaria que estuviese tambien en español, ya que asi sera mas facil comprenderlo a los que no estamos muy avanzados en el idioma...

Salu2!!!
analca3 escribió:Animo con todas mis ganas este proyecto, aunque no pueda colaborar :( :( ...No se nada de programacion. Pero bueno, yo os animo desde fuera.

PD: Como sugerencia: No se si la pagina va a estar en ingles solo. Me gustaria que estuviese tambien en español, ya que asi sera mas facil comprenderlo a los que no estamos muy avanzados en el idioma...

Salu2!!!


Si, va a estar en español y en inglés. Es más, se va a traducir muchas cosas del español al inglés... :P (me arrepiento de no haberle dado tanta importancia al inglés desde pequeño... :( )
capitanquartz escribió:
analca3 escribió:Animo con todas mis ganas este proyecto, aunque no pueda colaborar :( :( ...No se nada de programacion. Pero bueno, yo os animo desde fuera.

PD: Como sugerencia: No se si la pagina va a estar en ingles solo. Me gustaria que estuviese tambien en español, ya que asi sera mas facil comprenderlo a los que no estamos muy avanzados en el idioma...

Salu2!!!


Si, va a estar en español y en inglés. Es más, se va a traducir muchas cosas del español al inglés... :P (me arrepiento de no haberle dado tanta importancia al inglés desde pequeño... :( )



Si el proyecto tiene gran repercusión (y esperemos que así sea), seguro que será traducido a muchos mas idiomas. Por lo pronto mi hermana estudia chino xD...


Lo de aparecer en el primer mensaje es lo de menos. Colaborar es lo importante :)
A la espera de otra tarea.

Si quieres, mandame los archivos de la web y me curro algo en html con las ideas del proyecto y demas para colgarlo hasta que empieze el proyecto a funcionar.

He intentado un wget -r -k -p lindriver.com, pero no se ve bien (como ya dije, no tengo conocimientos de programación, uso programas WYSIWYG para crear/editar webs).
Me parece una gran iniciativa. Siento no poder ayudar por falta de tiempo.
Django tiene una interfaz de administración muy sencilla y fácil de usar... con ella, los traductores podrían traducir cadenas y un poco entre todos podemos ir añadiendo cosas. El problema: Los del hosting ¬¬ no esperaba que tardasen tanto... no responden las llamadas y tampoco los emails. Es como si se hubiesen muerto...

Por lo de lo archivos del sitio web, os adjunto las pruebas que he hecho... pero no es gran cosa.
http://rapidshare.com/files/219670603/templates.7z.html
MD5: B94231943B8C5E34F4501322E6E658C0
208 respuestas
1, 2, 3, 4, 5