{"id":235,"date":"2006-01-11T20:46:12","date_gmt":"2006-01-12T03:46:12","guid":{"rendered":"http:\/\/www.gubatron.com\/blog\/?p=235"},"modified":"2021-01-20T18:21:30","modified_gmt":"2021-01-20T18:21:30","slug":"open-sourcing-since-the-early-days","status":"publish","type":"post","link":"https:\/\/www.gubatron.com\/blog\/open-sourcing-since-the-early-days\/","title":{"rendered":"Open Sourcing since the early days"},"content":{"rendered":"<p>Back in 1998 I was on my first year of Software Engineering in <a href=\"http:\/\/www.ucab.edu.ve\/ucabnuevo\/index.php?load=planestudios2005.htm&amp;seccion=182\">UCAB<\/a>, our <strong>Algorithms and Programming I<\/strong> (by Prof. Omar Mendez and Alvaro Reb\u00f3n) course was dictated using a functional language which at the time sounded esoteric to us, Haskell. (I&#8217;m glad I started with Haskell, We knew how to break things into functions, and understood concepts like recursion very easily because of that head start, later on we continued with Modula, Pascal, C, C++ and Java)<\/p>\n<p>After I finished the course and my first project (A France 98 Soccer World Cup Sim), I decided to write a guide with tricks and tips to code projects in Haskell, since the course didn&#8217;t go down to the coding details as much as I would&#8217;ve wanted it. Back then I didn&#8217;t know words like &#8216;best practices&#8217;, &#8216;documentation&#8217; or &#8216;open source&#8217;, all I knew is that it was stupid hiding code since we weren&#8217;t building rockets or guns, and that everyone should make use of those things I knew would work for them.<\/p>\n<p>Of course I was a student, and broke, and I managed to sell a few of them \ud83d\ude09<\/p>\n<p>You can download it for free, you can do whatever you want with it. It&#8217;s in spanish though.<\/p>\n<p><a href=\"https:\/\/www.gubatron.com\/wedoit4you.com\/docs\/guia_de_haskell.pdf\">Free Haskell Guide by Gubatron &#8211; Oct 1998 &#8211; Spanish<\/a><\/p>\n<p>(For those who know me from UCAB, Don&#8217;t miss the &#8216;Thank You&#8217; notes at the end of the document)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Back in 1998 I was on my first year of Software Engineering in UCAB, our Algorithms and Programming I (by Prof. Omar Mendez and Alvaro Reb\u00f3n) course was dictated using a functional language which at the time sounded esoteric to us, Haskell. (I&#8217;m glad I started with Haskell, We knew how to break things into [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[33,43,68],"tags":[],"class_list":["post-235","post","type-post","status-publish","format-standard","hentry","category-gubatron","category-linux","category-random-stuff"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5Unzf-3N","jetpack-related-posts":[{"id":3942,"url":"https:\/\/www.gubatron.com\/blog\/pascal-triangle-generator-in-python-and-then-in-haskell-the-gubatron-method\/","url_meta":{"origin":235,"position":0},"title":"Pascal Triangle Generator in Python, and then in Haskell &#8211; The Gubatron Method","author":"gubatron","date":"May 6, 2021","format":false,"excerpt":"Here's in python, imperatively, and then in functional style without the need for loops. https:\/\/gist.github.com\/gubatron\/ed966ea4e614d6733715376ad5cfb85f Here's in Haskell, I call it the gubatron's method, explained in the comments. Saw it by looking at a pattern while trying to solve it in paper, it just clicked. Not sure if this is\u2026","rel":"","context":"In &quot;Code&quot;","block_context":{"text":"Code","link":"https:\/\/www.gubatron.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":382,"url":"https:\/\/www.gubatron.com\/blog\/guia-de-ejercicios-y-comandos-para-el-uso-de-haskell-1998\/","url_meta":{"origin":235,"position":1},"title":"Guia de Ejercicios y Comandos para el uso de Haskell (1998)","author":"gubatron","date":"October 20, 2006","format":false,"excerpt":"Descarga mi Guia de Ejercicios Esta guia la escribi en 3er semestre de Ingenieria Informatica despues de ver mi primer curso de Algoritmos y Programacion, para este curso la facultad decidio que era un buen experimento ensenarnos a hacer nuestros primeros programas con un lenguaje funcional llamado Haskell. Echenle un\u2026","rel":"","context":"In &quot;Code&quot;","block_context":{"text":"Code","link":"https:\/\/www.gubatron.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":234,"url":"https:\/\/www.gubatron.com\/blog\/free-haskell-guide-by-gubatron-oct-1998\/","url_meta":{"origin":235,"position":2},"title":"Free Haskell Guide by Gubatron &#8211; Oct 1998","author":"gubatron","date":"January 11, 2006","format":false,"excerpt":"","rel":"","context":"In &quot;Gubatron&quot;","block_context":{"text":"Gubatron","link":"https:\/\/www.gubatron.com\/blog\/category\/gubatron\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":446,"url":"https:\/\/www.gubatron.com\/blog\/como-es-que-convierto-de-decimal-a-binario\/","url_meta":{"origin":235,"position":3},"title":"Como es que convierto de decimal a binario?","author":"gubatron","date":"January 22, 2007","format":false,"excerpt":"Recuerdo que esto fue uno de los primeros ejercicios de programacion que me pusieron a hacer en Haskell, convertir de decimal a binario. Aqui una simple implementacion propia en python mientras estaba practicando pal google code jam (que la hice por gusto pq python tiene modulos para convertir de cualquier\u2026","rel":"","context":"In &quot;Code&quot;","block_context":{"text":"Code","link":"https:\/\/www.gubatron.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":842,"url":"https:\/\/www.gubatron.com\/blog\/the-first-multi-process-web-browser\/","url_meta":{"origin":235,"position":4},"title":"The first multi-process web browser","author":"gubatron","date":"September 2, 2008","format":false,"excerpt":"Google today releases a beta of a new multi-process web browser, which makes it look like a mini operating system in itself. Instead of the old model where you'd have web pages, scripts and plugins running on the same process memory space (with threads for certain things, like images and\u2026","rel":"","context":"In &quot;Geeklife&quot;","block_context":{"text":"Geeklife","link":"https:\/\/www.gubatron.com\/blog\/category\/geeklife\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":246,"url":"https:\/\/www.gubatron.com\/blog\/dream-flying-girl-on-the-runway\/","url_meta":{"origin":235,"position":5},"title":"Dream: Flying Girl on the runway.","author":"gubatron","date":"January 26, 2006","format":false,"excerpt":"From what I remember I was playing Capoeira in the Dream, and I would go over and over to the Roda, I guess this has to do with my teacher telling me that I have to play more in the Roda and loosen up, I gotta get more games, so\u2026","rel":"","context":"In &quot;Dreams&quot;","block_context":{"text":"Dreams","link":"https:\/\/www.gubatron.com\/blog\/category\/dreams\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts\/235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/comments?post=235"}],"version-history":[{"count":2,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts\/235\/revisions"}],"predecessor-version":[{"id":3924,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/posts\/235\/revisions\/3924"}],"wp:attachment":[{"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/media?parent=235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/categories?post=235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gubatron.com\/blog\/wp-json\/wp\/v2\/tags?post=235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}