Participación y Gestión de Proyectos de Software Libre
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
Sumario
- 1 Programa
- 2 Bibliografía
- 3 Evaluación
- 4 Contribuciones proyectos de software libre 2018s01
- 5 Contribuciones proyectos de software libre 2019s01
- 6 Contribuciones proyectos de software libre 2020s01
- 7 Contribuciones proyectos de software libre 2020s02
- 8 Contribuciones proyectos de software libre 2021s01
- 9 Clase 1
- 10 Clase 2
- 11 Clase 3
- 12 Clase 4
- 13 Clase 5
- 14 Clase X
- 15 Clase X
- 16 Clase 11
- 17 Ideas
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
- ¿Por que el futuro no nos necesita? - Bill Joy [6]
- Trampa en el ciberespacio, Roberto Di Cosmo [7]
- Documentos Halloween [8]
- Anarchism Triumphant: Free software and the death of copyright [9]
- http://biblioweb.sindominio.net/telematica/hacker-como.html
- https://es.wikipedia.org/wiki/Debate_Tanenbaum%E2%80%93Torvalds
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]
- [FlashParty BBS ARGENTINA](https://www.youtube.com/watch?v=7nyc4FeLIIM)
- Todos los zines 80-90 https://vault.int256h.com/
- https://es.wikipedia.org/wiki/Hackmeeting
- ftp://rock.pungas.space/
- Revistas argentinas http://k64.bytemaniacos.com/
Internacional
- 2600 [22] [23]
- CCC ( Chaos Computer Club) [24][25]
- https://carding.network/
The Architecture of Open Source Applications
- 500 lines or less
- http://www.aosabook.org/en/
Contributor covenant
Linus
- Does not use debian: https://www.youtube.com/watch?v=qHGTs1NSB1s
- top ten rules: https://www.youtube.com/watch?v=xZRo37r70lE
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) * Soporte de veintiún en para text2num - La libreria text2num no soporta la escritura del numero 21 de manera apcopado. Lo soporta para 31, etc pero no reconoce vientiún (creo que por escribirse junto, como todos los numeros del 0 al 30). https://github.com/allo-media/text2num
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
- https://github.com/gautamkrishnar/socli/pull/142
- https://github.com/tiehuis/2048-cli/pull/22
- https://github.com/fph/bastet/pull/15
- https://github.com/alexdantas/nSnake/pull/26
- https://github.com/jubalh/nudoku/pull/12
- https://github.com/rubymonsters/speakerinnen_liste/pull/729
- https://github.com/HuayraLinux/huayra-caripela/pull/18
- https://github.com/NaturalIntelligence/imglab/pull/45
- https://github.com/alexdantas/nSnake/pull/29
- https://github.com/matiasbian/forum-downtime-funtime-adventure/pull/1
- https://github.com/Program-AR/pilas-bloques/pull/364
- https://github.com/jcbvm/i18n-editor/pull/44
- https://github.com/jcbvm/i18n-editor/pull/45
- https://github.com/playframework/playframework/pull/8494
- https://github.com/locustio/locust/pull/827
- https://github.com/patricio87209/simonPugliese/tree/migracion_godot3
- https://github.com/daboth/pagan/pull/9
- https://github.com/thedevdojo/chatter/pull/220
- https://gitlab.com/esr/greed/merge_requests/1
- https://github.com/HuayraLinux/huayra-about/pull/6
Contribuciones proyectos de software libre 2019s01
- https://core.trac.wordpress.org/attachment/ticket/45907/45907.diff
- https://github.com/ifedapoolarewaju/igdm/pull/1007
- https://github.com/ifedapoolarewaju/instagram-private-api/pull/1
- https://github.com/codetriage/codetriage/pull/802
- https://github.com/calazans10/sudoku/pull/1
- https://github.com/calazans10/sudoku/pull/2
- https://github.com/calazans10/sudoku/pull/4
- https://github.com/verlok/lazyload/pull/347
- https://github.com/verlok/lazyload/pull/354
- https://github.com/GoogleChromeLabs/puppeteer-examples/pull/30
- https://github.com/FedeLochbaum/slate-autocomplete/
- https://github.com/discourse/onebox/pull/407
- https://github.com/discourse/discourse/pull/7832
- https://github.com/CesarPZ/nba-go/pull/2
- https://forge.softwareheritage.org/D1727
- https://github.com/n1try/telegram-middleman-bot/pull/8
- https://github.com/Program-AR/pilas-bloques/pull/518
- https://github.com/jcalvento/node-games/pull/1
- https://github.com/CamilaSosa96/node-games/pull/2
- https://github.com/juanmardefago/node-games/pull/1
- https://github.com/FedeLochbaum/node-games/pull/1
- https://github.com/mevdschee/2048.c/pull/33
- https://github.com/alanmtk/node-games/pull/1
- https://github.com/LaimeJesus/nettoe/pull/1
- https://github.com/jejoivanic/nba-go/pull/1
- https://github.com/nestor-m/2048.c/pull/1
- https://github.com/CesarPZ/nba-go/pull/1
- https://github.com/mlucas94/vitetris/pull/1
- https://github.com/mlucas94/nettoe/pull/1
- https://github.com/8i8/ticTacToe/pull/1
Contribuciones proyectos de software libre 2020s01
- https://github.com/firstcontributions/firstcontributions.github.io/pull/125
- https://github.com/nb2998/DS_Algo/pull/134
- https://github.com/boutell/heic-to-jpeg-middleware/pull/3
- https://github.com/PostHog/posthog/pull/1245
- https://github.com/jayehernandez/letra-extension/pull/98
- https://github.com/uqbar-project/wollok-language/pull/54
- https://github.com/TroyTae/game-of-life/pull/867
- https://github.com/TroyTae/game-of-life/pull/868
- https://github.com/Stephcraft/Project-16x16/pull/142
- https://github.com/Stephcraft/Project-16x16/pull/143
- https://github.com/Stephcraft/Project-16x16/pull/146
- https://github.com/uqbar-project/function-laboratory/pull/28
- https://github.com/bhatvikrant/world-countries-capitals/pull/28
Contribuciones proyectos de software libre 2020s02
- https://github.com/Program-AR/pilas-bloques/pull/691
- https://github.com/adafruit/Adafruit_SSD1306/pull/190
- https://github.com/ipython/ipython/pull/12620
- https://github.com/spyder-ide/spyder/pull/14327
- https://github.com/aligg/Code-Newbie-Tweets/pull/61
- https://github.com/davet2408/Covid-19-tracker/pull/2
- https://github.com/laautarolopez/vitetris/pull/2
- https://github.com/r0hi7/TrashEmail/pull/72
- https://github.com/francoNeira/BankingApplication/pull/3
- https://github.com/francoNeira/BankingApplication/pull/4
- https://github.com/FreeTubeApp/FreeTube/pull/829
- https://github.com/ngarbezza/testy/pull/168
- https://github.com/NaturalIntelligence/imglab/pull/184
- https://github.com/firstcontributions/firstcontributions.github.io/pull/157
Contribuciones proyectos de software libre 2021s01
- https://github.com/Program-AR/pilas-bloques/pull/781
- https://github.com/odota/core/pull/2382
- https://github.com/open-horizon/anax/pull/2541
- https://github.com/odota/web/pull/2813
- https://github.com/ollelauribostrom/rebus/pull/659
- https://github.com/fullcalendar/fullcalendar/pull/6368
- https://github.com/fairlearn/farlearn/pull/860
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
- ¿Quién soy, por que estoy aquí? ¿Como se aprueba la materia? ¿De qué se trata la materia? 2011/2018
- Mi historia personal (compro c64, x64, pc, años, universidad, usar coolretroterm etc)
- 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/)
- Vemos ATDT MAGAZINE - https://www.facebook.com/atdtzine
- Usamos BBS en vivo con https://bbs.docksud.com.ar/ (usando syncterm [36])
- 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' (Historias de las revistas Argentinas, MODO HISTORIA PODCAST T3E02 https://open.spotify.com/episode/0br7nrE38O4reU78zoKup8, T3E03)
- 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 * https://pungas.space/ https://pungas.space/pvm-gapr.zip https://demozoo.org/productions/280967/ * 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] [49]
- Ejemplo de la actualidad proyecto unijoyticle [50]
Material posterior
- Porque el Futuro no nos necesita: https://www.wired.com/2000/04/joy-2/ http://www.oocities.org/es/loitaluddita/mencer/bill_joy.htm
- Trampa en el ciberespacio: http://www.dicosmo.org/Piege/trampas/
- Discusión sobre desarrollo de kernels: https://es.wikipedia.org/wiki/Debate_Tanenbaum–Torvalds
Clase 3
- En grupos, en función de los textos anteriores, Generamos preguntas y tratamos de responderlas 20'
- Software y legalidad - infoleg [51]
- Nacimiento de la idea de software libre
- ¿Qué es el Software libre? [62][63]
- Proyecto GNU [64] ¿Qué es? ¿Por qué exsite?. Comienzo año 83 - Richard Stallman (gcc, emacs, gdb, etc)
- FSF (Free Software Foundation) 85 [65]
- Presentación de Linux (Linus Torvalds) - 25/8/91 - comp.os.minix - Ver últimos mensajes [66] [67]
- Historia de Linux [68]
- Rareza en Argentina [69]
- Licencias de software y documentación libres [70]
- Contributor covenant [73]
- Material para complementar
- Revolution OS: [78]
Clase 4
- Formulación de proyectos Libre
- Motivaciones de los desarrolladores
- Roles (dictador benevolente)
- Grupos de usuarios y organizaciones
- La prehistoria 80 y historia de las comunicaiones USENETS [85]
- Clientes: Knode, Thunderbird [86],PAN [87], otros [88]
- Servidor (nntp.aoie.org, news.aoie.org, [89] )
- Online: Google Groups [90], Gmane [91] Binsearch [92]
- Ejemplos mensajes importantes: [93]. Ver mensaje de Linus Torvalds[94] Historia de linux [95] Tanenbaum/Linus
- Servidores ejemplo: news2.neva.ru , nntp.aioe.org, news.aioe.org
- Suscribirse a comp.os.minix
- Herramientas comuniación y coordinación: Listas, Foros, IRC, Bug reports, Control de versiones, Manejo de proyectos
- Listas de Correo (publicas, desarrollo, etc)
- Usamos el IRC para preguntar y ver algo
- Control del versiones (cvs, svn, git, mercurial, etc)
Clase 5
- Crear tu propio git https://www.leshenko.net/p/ugit/ y https://wyag.thb.lt/
- https://learngitbranching.js.org/?demo=&locale=es_AR
Clase X
- Tarea para la próxima
- Armamos grupos
- Seleccionar paquete de software libre
- Analisis de caso particular:
- Detalles ( lenaguaje y librerias utilizadas, ¿necesita algun hw en particular?, cantidad de desarrolladores, etc)
- ¿Qué herramientas usan? ¿Comunicación? ¿gestión? ¿listas? ¿IRC? ¿HIstoria del proyectos? etc)
- Buenas evaluacion de software pueden encontrar en: QSOS [122][123]
- Listado de caracteristicas a encontrar
- Nombre
- Licencia
- Origen (nacioalidad de 1er desarrollador/empresa, o donde vive)
- Si existe Mínima Historia
- Tiene sitio web propio o esta en forja. ¿Cual es la direccion?
- Desarrolladores (pocos, muchos, etc)
- LIstas
- Canal de IRC
- Foros
- Usa algo para seguimiento de bugs o manejo de proyectos. ¿Cual?
- Sistema de Control de versiones: ¿Cual?
- Lenaguaje de programación
- ¿Que librerias usa?
- Traducciones ¿a que idiomas?
- Documentación en el sitio y en otro sitios
- Traducimos programa en C con gettext
Clase X
Seguridad
Clase 11
- Forjas, contribuciones, parches
- ¿Donde pongo mi proyecto?: Sorceforge, googlecode, github, ourproyect, etc.
- Busqueda de código fuente: koders
- Bifurcaciones/forks de proyectos (buscar ejemplos)
- Seguimientos de bug - Programas BTS [130] [131]
- 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
- Distribuir programas del libro 500 Lines
- Hacer git [132]
- https://github.com/praqma-training/git-katas
- Git avanzado
- presentación de proyectos (vue-admin, faker, otro de cambá etc)
- tp1
- tp final
- Contributor covenant
- Linus
- https://bibliotecadigital.exactas.uba.ar/download/mensula/mensula_n019.pdf
- 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