Posts

Chapter 10: Riding the… bear?

Image
Reverse engineering was the main topic of the video (or at least, the one I found most interesting). How the company was available to replicate the ROM BIOS through this concept is something fascinating, whatever was meant to be hidden and secret, was forever known and open to the public after the reverse engineering process. This process involved two different types of employees, the ones that know how the system works, and the so called “virgins”, which knowledge of the ROM BIOS was inexistent. The journey to get to a completed product no one knew how it worked (at least the engineers in charge of building the chip) is the thing I liked the most. And that’s how Compaq made a portable computer, compatible with IBM. This was the start of the dozens of rivals IBM started acquiring thanks to the easiness to build a clone. The thing in common every clone-builder had, was its operating system, acquired thanks to Microsoft. Finally, this way the balance worked out for Microsoft...

Chapter 9: Physical wounds may heal, while damage to the soul always leaves a scar behind…

Image
Why is the Nineteen Eighty-Four novel by George Orwell relevant to a student taking the Programming Language course? To answer this question, first we should find a link between both subjects, which is lies under the “Language” concept. The title of the article is “Language as the “Ultimate Weapon” in Nineteen Eighty-Four”. And while this is aimed specifically on the book Nineteen Eighty-Four, I beg to differ; Language is the most important weapon anywhere. In politics, education, professional careers, programming… Language is something to be feared. Language can bring destruction. Language can bring enlightenment. We speak in different languages (this blog is in English, if you haven´t noticed). However, there are some things impossible to express with the knowledge we have about the English vocabulary. For example (my personal favorite), how can you say bon Appetit in English? Yeah, I thought so. There is no phrase to say that in English (we have it in Spanish). Some va...

Chapter 8: More robust, more compact, and more easily parallelizable; For an unlimited time offer, we present you: Functional Programming

Image
This blog is about how functional programming has a lot of advantages over traditional programming, such as concurrent and parallel programming. One of the first things that pops out when using Lisp is its syntax; simple yet flexible nested lists. This data structure usage is one of the principal advantages of functional programming; it allows to generate and execute other Lisp code. Now we have Clojure, which is a recent Lisp dialect that shines thanks to various features, one of which being their high optimized data structures, that offers extensive support for concurrency. A key concept in functional programming are abstractions, that expresses an algorithm in terms of concepts instead of operations. These functional languages can be grouped together in a few groups, like “Clojure and the Lisp Family” and ML family, where Standard ML, OCaml and F# are included. The difference between this two groups are that ML is statically typed (Haven’t heard of F# yet, it feels li...

Chapter 7: Clojure Podcast with our beloved friend, Hickey, Rich Hickey

Image
So… Clojure by Rich Hickey is the podcast we are covering up in today’s blog. We have seen and read about the advantages of Clojure, however, there was an interesting point that was said during the first part of the podcast (13:21) that struck me; “At the core, for instance, Clojure, is much much simpler than Java… There are two different notions of simplicity, you could say that LISP is simple because it has a very simple syntax, only consisting of a couple of abstractions… but Java is simpler because I am guided more”. This argument made me realize which of both, Java or Clojure is more “simple”. Of course, Java is more guided through the coding process, however, it is hard to comprehend what happens in each line of the code. For experienced Java developers, they may see it as something trivial, but for novice programmers, some coding standards or abstractions are put in their codes because they are told to do so. Many don’t go beyond the understanding of the logic behind ...

Chapter 6: The triumphant Nerds arise.

Image
Nothing tastes better than a great triumph, well, maybe if it wasn’t an accident, the Nerds could have felt a little better, but I guess we will never find out. I liked how the video had a different approach about the start of computing than most of all the other documentaries and videos, where they follow the same storyline (while it is impossible to change, but it can be seen from other points of view). One of the first statements was the one that struck me the most; the whole success of computing was an accident. They didn’t create (at first) the computer for scientific purposes, but for leisure and fun, especially for impressing their friends. The first personal computer had no initial purpose. It was just some group of buttons and switches paired together to make small operations. The memory was limited, the effort needed to make something was huge, but still, this was groundbreaking, because they made a successful machine capable of translating some kind of langu...

Chapter 5: Episode 3: Revenge of the Nerds

Image
You were the chosen one! It was said that you would destroy the Nerds, not join them! Bring balance to the knowledge, not leave it in darkness! You were my brother *Insert Nerd name here*! I loved you! World acclaimed article; The Revenge of the Nerds I felt I had a déjà vu reading this article, somewhat related to the article written by Paul Graham “Beating the Averages”, it almost seems they were written by the same author… Anyways, this article seems like a continuation of that said post. And Lisp is described (again) as an underrated tool, powerful enough to wipe the competition, just as ITA’s application, where the market was being dominated by Travelocity and Expedia and later was overturned to ITA’s favor, thanks to the macros in their Lisp code. One of the topics I would like to address are the pointy-haired people, with the great qualities of knowing absolutely nothing of technology and having strong opinions about it. I have met a lot of people like that thr...

Chapter 4: (or (true? (to Lisp)) (false? (to Lisp)))

Image
To Lisp or not to Lisp, that is the question. Since I first saw Lisp (and I try to avoid that topic (because I still knew nothing about programing)) I got scared of programming at all. I asked myself if all programming languages were the same, at least syntax wise. This has happened every time I saw Lisplike syntax, every day until my first class of this course. I had no choice, I had to embrace Clojure, I have to code in Clojure, I have to be Clojure … and I have loved every moment since I took that decision (Well I technically didn’t take the decision, they took the decision for me). The first we encountered was that we weren’t going to code the way we have coded in the last semesters, but we will be introduced to a new paradigm, the functional programming. The code we saw was confusing at first, but after analyzing what the code did, we understood how Clojure worked. With that in mind, I consider I started coding easier with Clojure. I noticed the difference in th...