Participación y Gestión de Proyectos de Software Libre

De m1w1k1
Ir a la navegaciónIr a la búsqueda
14 reuniones, 4 horas cada una = 56 horas - clases
2 reuniones,  4 horas cada uno = 8  horas - evaluaciones

Lista de la materia: tpi-est-proysl@listas.unq.edu.ar

Programa

* Cibercultura y cultura hacker. Nuevos modos de relacionarse en internet: cultura abierta, distribuída, libre, producción colaborativa en red.
* Idea de software libre, movimiento de software libre, principios, principales productos y logros.
* Participación en proyectos de software libre: fuentes de información, formas que puede asumir la participación.
* Creación de proyectos de software libre: de la idea a la formulación
* El sitio de la comunidad del proyecto: forjas de software libre y otros espacios de trabajo colaborativo.
* Herramientas para el desarrollo de un proyecto de software libre, en particular: herramientas de comunicación del proyecto, de análisis y diseño y desarrollo de aplicaciones, de gestión de código y control de versiones, de gestión de la documentación.
* Gestión de la admisión de contribuciones, requerimientos, errores y parches.
* Etiqueta en la comunicaciones electrónicas en el marco de los proyectos.
* Motivaciones de los desarrolladores y de los grupos de software libre.
* Roles usados más frecuentemente, mecanismos de decisión dentro del proyecto.
* Bifurcaciones de proyectos, conexiones entre proyectos, cierre de proyectos.
* Licencias para obras intelectuales, en particular para software y para su documentación técnica asociada. Licencias de software libre. BSD. GNU. Mozilla.
* Experiencia concreta de participación en al menos un proyecto existente.

Bibliografía

Lo que se pensaba del Futuro 15 años atrás

  • Camino al Futuro - Bill Gates
  • Ser Digital - Nicholas Negroponte

Peliculas

  • Nerds 1 y 2.0.1
  • Los piratas del Silicon Valley
  • Revolution OS
  • Linux Code
  • The History of hacking Documentary
  • En busca de hackers - Odisea
  • Hippies from hell

Libros

  • Internet, hackers y Software libre, Carlos Gradin Compilador [1]
  • Software libre para una sociedad libre - Richard Stallman [2]
  • Etica hacker, Pekka Himanen [3]
  • Aprender la Libertad, Ariel Vercelli [4]
  • Repensando los bienes intelectuales comunes, Ariel Vercelli [5]

Articulos

En Argentina

  • Llaneros Solitarios, Raquel Roberti y Fernando Bonsembiante [10] [11] 44-80, Argentina
  • Mendozaconch 95, Fernando Bonsembiante [12]
  • Congreso de hackers en Buenos Aires, Raquel Roberti [13]
  • HBO- hacked by owl - zine Argento [14][15][16]
  • Minotauro [17] [18] [19] [20]
  • CIA [21]

Internacional

The Architecture of Open Source Applications

Contributor covenant

Linus


Otros

Evaluación

Criterios de evaluación

* Asistencia a clase
* Horarios
* Participación en clase
* Tipo de participación en clase
* Predisposición y cumplimiento de tareas parciales
* Resultado, proceso de aprendizaje y puesta en común del Trabajo práctico
* Resultado, proceso de aprendizaje y puesta en común del Trabajo final

Temas

Para aprobar la materia se debera hacer al menos una contribución real a un proyecto de software libre. Además se deberá documentar en el proceso en un informe a presentar. ( Proyecto, Problemática, Como se resolvío, Para que, canales de comunicación utilizados, errores y/o problemas, conclusión de la participación)


* https://github.com/MunGell/awesome-for-beginners
* https://github.com/search?utf8=%E2%9C%93&q=label%3Afirst-timers-only+is%3Aissue+is%3Aopen&type=
* https://goodfirstissue.dev/
* https://github.com/yourfirstpr/yourfirstpr.github.io/issues
* https://roshanjossey.github.io/first-contributions/#project-list
* http://up-for-grabs.net/
* https://developer.pidgin.im/wiki/ThirdPartyPlugins (hacer plugin)


En clase

* https://github.com/wasdk/WebAssemblyStudio  
* https://github.com/quadra-game/quadra
* Sistema de traducción y traducción para https://github.com/taylorconor/tinytetris
* Sistema de traducción y traducción para https://github.com/seehuhn/moon-buggy
* https://myman.sourceforge.io/
* https://github.com/cymonsgames/ASCIIpOrtal
* https://github.com/hackndev/0verkill
* http://mbays.freeshell.org/intricacy/
* https://github.com/a-nikolaev/curseofwar
* https://github.com/kragen/myman
* http://rephial.org/
* https://github.com/terminal-based-games/ouroboros
* https://github.com/jimmyverdoora/locked
* Sistema de traducción y traducción para https://github.com/GrandpasCode/nInvaders
* Nuevo idioma para https://github.com/pcottle/learnGitBranching/commit/1ac4ca93a7f34999c20aaa975a541c0a45d89a7f
* https://boardgame.io/documentation/#/notable_projects
* https://github.com/gponsinet/awesome-ascii

Cocos2djs: Tutorial

https://github.com/sawady/Cocos2d-js-Tutorial

gIDEt: Convertir Gedit3 en una IDE

https://github.com/proysl/gIDEt

Bateria electrónica con Arduino: ArDrumOne

http://www.interorganic.com.ar/josx/ArDrumOne.pdf

GINGA/NCL: Taller en la UNQ

Se realizo un tutorial durante 2 reuniones sobre TV Digital

QsimpleGuitar: Colaboración de parches

https://code.google.com/p/qsimpleguitar/issues/list

AAJM: Soporte para internacionalización y traducción al español

https://github.com/proysl/jugglemaster/commit/bf68ae596c288af3325a3ee609ac99d7d547835e

Contribuciones proyectos de software libre 2018s01


Contribuciones proyectos de software libre 2019s01


Contribuciones proyectos de software libre 2020s01





Clase 1

Material previo o posterior para introducir la temática ( La idea es que hagan preguntas sobre lo que les interese)

  • Nacimiento de la cibercultura y cultura hackers, "The History of hacking Documentary" (Steve Wozniak, Kevin Mitnick, John Draper)[26]
  • "Carta Abierta de Bill Gates a los Hobbystas"[27] HOMEBREW COMPUTER CLUB [28]
  • Llaneros solitarios, Hackers, la guerrilla informática [29]("El Primer encuentro")
  • Primer congreso hacker [30] ,
  • Mendozaconch [31]
  • Revista Virus Report [32]

En clase

  1. ¿Quién soy, por que estoy aquí? ¿Como se aprueba la materia? ¿De qué se trata la materia? 2011/2018
  2. Mi historia personal (compro c64, x64, pc, años, universidad, usar coolretroterm etc)
  3. Historia en Argentina: BBS, Reuniones, Grupos, Revista electrónicas
- Ver HBO 4,5mdz [33]
- Primeros congresos y Experiencia propia (zines, tracker, tarjeta)[34] minotauro 6 (usar dosbox -fullscreen, y  mount g: . ,  para verlo) ,7, 8 (mostrar imagenes)
- Archivos en la actualidad (lo que me ocurrío con PVM y su ftp con recuerdos, probar xm con milkytracker[35]
- Flashparty[https://flashparty.rebelion.digital/)
  1. Usamos BBS en vivo con https://bbs.docksud.com.ar/ (usando syncterm [36])
  2. Mostrar lo que hay que leer item por item explicando y contextualizando

Recomendación

  • Hay que ir al Museo de informática[37]

Clase 2

  • En grupos, en función de los textos anteriores, Generamos preguntas y tratamos de responderlas 20'
  • Vemos Revistas viejas Argentinas (llevar) 20'
  • Instalamos Emulador o en maquina real C64 y copiamos un programa salido de una revista
 * Vice (The versatile commodore emulator) [38] Comando x64
 * Problema de ROMS (cat /usr/share/doc/vice/README.ROMs,[39] [40]
 * Primer ejemplo a seguir (hola mundo, grabar, leer) [41]
 * Recordar crear imagen, cargar imagen y luego hacer el save o load 
 * Bajar juego ej: 1942 [42] y iniciar vice asi: x64 -autostartprgmode 1 your_program.prg 
 * Compilar y correr Código de demos para c64, c64-the-uni-games [43],chipdisk [44], 4kindness [45] (cc65, exomizer [46])
 * Copiar programa de Revista y correrlo [47]
 * Eastern egg en basic [48]
  • Ejemplo de la actualidad proyecto unijoyticle [49]

Material posterior

Clase 3

  1. En grupos, en función de los textos anteriores, Generamos preguntas y tratamos de responderlas 20'
  1. Software y legalidad - infoleg [50]
    1. Ley de Propiedad Intelectual 11723, 25036, 24481 [51][52][53]
    2. Registro de Software [54][55][56][57]
  1. Licencias para obras intelectuales ( Ej: Creative Commons [58][59][60] )
  1. Nacimiento de la idea de software libre
    1. ¿Qué es el Software libre? [61][62]
    2. Proyecto GNU [63] ¿Qué es? ¿Por qué exsite?. Comienzo año 83 - Richard Stallman (gcc, emacs, gdb, etc)
    3. FSF (Free Software Foundation) 85 [64]
    4. Presentación de Linux (Linus Torvalds) - 25/8/91 - comp.os.minix - Ver últimos mensajes [65] [66]
    5. Historia de Linux [67]
    6. Rareza en Argentina [68]
  1. Licencias de software y documentación libres [69]
    1. Copyleft: ¿Qué?, ¿Compatibles GPL?
    2. Algunas: GPL, LGPL, AGPL, APACHE, Modified BSD License [70] [71]
  1. Contributor covenant [72]
    1. Creado Coraline Ada Ehmke [73]
    2. En Español [74]
    3. Código de conducta o Convenio de contribuyentes que adoptaron muchos proyectos libres. Code of condcut del kernel de linux [75] y su interpretacion [76]


  1. Material para complementar
    1. Revolution OS: [77]

Clase 4

  1. Formulación de proyectos Libre
  2. Motivaciones de los desarrolladores
  3. Roles (dictador benevolente)
  4. Grupos de usuarios y organizaciones
    1. Curiosidad: Dominio linux.org.ar [78]
    2. SOLAR [79] , ViaLibre [80]
    3. USLA [81], LANUX [82], QuilmesLug
    4. FLISOL [83]
  1. La prehistoria 80 y historia de las comunicaiones USENETS [84]
    1. Clientes: Knode, Thunderbird [85],PAN [86], otros [87]
    2. Servidor (nntp.aoie.org, news.aoie.org, [88] )
    3. Online: Google Groups [89], Gmane [90] Binsearch [91]
    4. Ejemplos mensajes importantes: [92]. Ver mensaje de Linus Torvalds[93] Historia de linux [94] Tanenbaum/Linus
    5. Servidores ejemplo: news2.neva.ru , nntp.aioe.org, news.aioe.org
    6. Suscribirse a comp.os.minix
  2. Herramientas comuniación y coordinación: Listas, Foros, IRC, Bug reports, Control de versiones, Manejo de proyectos
    1. Listas de Correo (publicas, desarrollo, etc)
      1. Listas varias nacionales [95][96] Anillo: [97]
      2. Netiqueta [98] - Decálogo
      3. Uso responsable de lista de correo[99]
      4. Nos suscribimos
      5. Cliente de Correo Electronico: Thunderbird [100], kmail [101]
      6. Correo Pop3, IMAP
      7. Usando gmail en thunderbird [102]
    2. Usamos el IRC para preguntar y ver algo
      1. clientes de IRC: pidgin [103], xchat [104], [105]
      2. Servidor más común para proyectos de SL [106], [107], [108] , irc.freenode.net
      3. Web chat de freenode [109] que usa qwebirc [110]
      4. Tutorial de IRC [111] /HELP /LIST /JOIN
  3. Control del versiones (cvs, svn, git, mercurial, etc)
    1. Heramientas de manejo de proyectos: launchpad [112], trac[113], redmine [114], gitlab, etc
    2. Hacer proceso de compartir y contribuir a proyecto [115] [116] [117] [118]

Clase 5

  1. Crear tu propio git https://wyag.thb.lt/
  2. https://learngitbranching.js.org/?demo=&locale=es_AR
    1. Git git init, git add, git difftool, git tags -l, git checkout tag, git format-patch, git clone, git push, git pull,
    2. Git avanzado (cherry-pick, rebase, revert, bisect, rerere)
    3. Instalar y probar Git-flow [119] [120]

Clase X

  1. Tarea para la próxima
    1. Armamos grupos
    2. Seleccionar paquete de software libre
    3. Analisis de caso particular:
      1. Detalles ( lenaguaje y librerias utilizadas, ¿necesita algun hw en particular?, cantidad de desarrolladores, etc)
      2. ¿Qué herramientas usan? ¿Comunicación? ¿gestión? ¿listas? ¿IRC? ¿HIstoria del proyectos? etc)
      3. Buenas evaluacion de software pueden encontrar en: QSOS [121][122]
      4. Listado de caracteristicas a encontrar
        1. Nombre
        2. Licencia
        3. Origen (nacioalidad de 1er desarrollador/empresa, o donde vive)
        4. Si existe Mínima Historia
        5. Tiene sitio web propio o esta en forja. ¿Cual es la direccion?
        6. Desarrolladores (pocos, muchos, etc)
        7. LIstas
        8. Canal de IRC
        9. Foros
        10. Usa algo para seguimiento de bugs o manejo de proyectos. ¿Cual?
        11. Sistema de Control de versiones: ¿Cual?
        12. Lenaguaje de programación
        13. ¿Que librerias usa?
        14. Traducciones ¿a que idiomas?
        15. Documentación en el sitio y en otro sitios
  1. Traducimos programa en C con gettext
    1. Paquetes aajm, jmldx, jmqt = jugglemaster [123] [124]
    2. Tutoriales [125] [126] [127] [128]


Clase X

Seguridad

Clase 11

  1. Forjas, contribuciones, parches
  2. ¿Donde pongo mi proyecto?: Sorceforge, googlecode, github, ourproyect, etc.
  3. Busqueda de código fuente: koders
  4. Bifurcaciones/forks de proyectos (buscar ejemplos)
  5. Seguimientos de bug - Programas BTS [129] [130]
  6. reportbug, reportbug-ng

Formas de comunicación Foros, Listas, IRC, bug reports http://wiki.debian.org/DebianPackageInformation http://wiki.debian.org/HowtoUseBTS Programas BTS

Empaquetamiento http://users.telenet.be/mydotcom/howto/linux/package.htm http://wiki.debian.org/IntroDebianPackaging https://wiki.ubuntu.com/PackagingGuide/Complete http://www.taniquetil.com.ar/plog/post/1/528


Ideas

  • Ej: de discusiones sobre formas (buenas prácticas) en desarrollo de software

https://lkml.org/lkml/2020/5/29/1038 https://linux.slashdot.org/story/20/05/31/211211/linus-torvalds-argues-against-80-column-line-length-coding-style-as-linux-kernel-deprecates-it