domingo, 8 de abril de 2018

Blog entry: Triumph of the Nerds Part II

On modern days rivalry is something common on the technology market. On previous years the competition was not as it’s right now looking fiercely a way to have the idea first, get the most amount of customers on the market or even obtain the modern technology against the rival company.

One example is the rivalry that Samsung and Apple have on wireless equipment. The devices are equipped with the most recent technology that both are with the same camera or even screen (curious detail, Samsung sells the screen to Apple and sometimes they win more money for that than the phone itself of Samsung). What I have in mind is that the competition is fierce but sometimes the other company depends from the other.

Companies like Sony handle stuff from their products to other companies (Specially the camera) that does not mean that the rivalry is high, but sometimes the other company does not have the opportunity to equip a part to their device, they need to get assist form others in that way.

This could not be considered treason or even cheat on others (just like on the video with the case of IBM and Microsoft), because they see from their benefit and also the other company gets a compensation for the same thing.

From my point of view, I prefer to see stuff that is created from the same company, not for asking the parts, the reason? Simple, they create something that is not tied to another or depend from the element of the other company. At the beginning it could be difficult, but with this you demonstrate that the devices could be independent and also could have the same balance, endurance and performance that the other one, as an example the Chinese company Huawei it’s a good example. Their business is to create a phone that is capable to analyze (with AI) your everyday activities with the phone, so they can give priority to the apps that user normally have active, they created their own processor Kirin, they still depend from another company for the camera (that is the German company Leica), but the camera company is not focused on wireless (so that could be an exception for what I said on depending on competence, they sell the lens, but their role is different and Leica focus on another kind of market, it’s certified by them but the camera is created by Huawei.

As a conclusion, technology always changes and fiercest battles are taken on the battlefield with more intensity, companies nowadays needs to be cautious to the move of the other company and also to have your own stuff for 2 reasons, saving money and to avoid that the competition could create something better than you.

domingo, 18 de marzo de 2018

Blog Entry: Language as the Ultimate Weapon

Ignorance or even the lack of knowledge something powerful to control masses, or that is the main object for novel like 1984 from George Orwell. Manipulating others in different ways without using the violence is something that puts a complete authority against people.

On the novel violence is not the way they apply this oppression for the people, Orwell created a "dystopian" world where psychology plays an important role, in Oceania a tyrannist political group known as "Big Brother" promotes to people to believe everything they provide as information is real and this motivates them to be proud of the system.

Inside the novel there is something called "Newspeak" that is a simplification of English language (they refer as Oldspeak) where vocabulary that is not necessary is eliminated. This helps to control people language and affect memories from person's (so they cannot remember most of them) or even provokes and affects the way a person could express what they think.

Why is the Nineteen Eighty-Four novel by George Orwell relevant to a student taking the Programming Language course?

This helps us to understand that language is always changing even for good or bad, in computing, programming gets updates or even newer versions, language is in constant movement and even if we have the same programming language, we get different versions where syntaxes or even libraries are different.

Clojure is the right example of the previous paragraph, LISP is the original programming language and Clojure we can call it an update or a different way to program based on LISP language.

On the other hand, we got Python where we get updates from different versions (2.x, 3.x, etc.) and the syntaxes is different, but its capability is even bigger so we can create even new programs with more features.

We need to be in constant change, adapt and also learn the new changes, it's the same as technology it evolves we can create and do more things, we get more tools and also, we are open to new languages.

As a conclusion the book and programming gets a connection between them, language is universal and something that helps to communicate, language from person to person and on the other hand programming language from person to machine have too many elements in common.

Something that I would like to add, this is not the first time I experienced (over a book, movie, series, game, etc.) this kind of oppression for a society or a country, I would like to recommend Mirror's Edge and its sequel Mirror's Edge Catalyst, even though the story is told by a person who delivers packages over rooftops (they are called runners on the game), it describes the oppression that society lives on that universe.

To finish this blog entry, I would like to add a video from a different way to suppress a person's vocabulary via nanomachines, it could be a game, but if the reality comes to this close, maybe it’s not a crazy idea to use this method. This is from the Videogame Metal Gear Solid from Hideo Kojima (previously with Konami), on the game instead of using the word "Patriots" (referred to United States government) because of the censorship of the word, the soldiers can only say "La-Li-Lu-Le-Lo".





References:
Berkes, J. (May, 2000). Language as the "Ultimate Weapon. Scientific. Programming in Nineteen Eighty-Four. Retrieve on march 18th, 2018 from:

Orwell, G. (2007) 1984. D.F., Mexico, Editorial Porrua (English version, 1949).

domingo, 4 de marzo de 2018

Blog Entry: The Roots of LISP


This blog entry is a little different to the ones that I've recently published through the course, it also helps to give a point of view of how the course has progressed from my point of view and not only for learning a new programming language but also as an opportunity to understand a different way to solve problems.

I would like to talk in this blog entry about my experience with Clojure and also that is related to LISP language (and the reading too, because most of the reading is about some expressions created by John McCarthy, in some way what I can see is that Clojure was based on an interesting language that is LISP, creating elements over Lists is something that is not normally used in traditional programming but in this case demonstrates that it can be solved with vectors and lists, I consider that solving problems with this kind of method looks like something that even with mathematical problems with traditional could be solved, but in this I think that using a language like LISP or Clojure could be easier or even faster (without consuming too many elements of the system) than programming a full program on Java or even on C, we know that these languages works closely as a high level programming, but why not use something that is dedicated to these kind of problems?

Well, it's possible and what I can see here is that learning ways to create functions where solving problems that goes from a Fibonacci sequence to a simple addition could be easier than it looks, even creating recursive functions (something that could be complicated on traditional) helps to solve the problem with more elements on the list.

It's true that we already learned the basic elements and an API to use for solving problems, I would like to learn more things about Clojure not only during this semester, but also for the next months as an opportunity to learn more stuff or even learn the original one that is LISP.



One more thing as an special mention (meanwhile I was working on this blog and reading). Congratulations to Guillermo del Toro for winning Best Movie and Best Director with the Shape of Water on the Oscar awards, something that demonstrates and shows that mexicans can supass its limits and with hard work we can create things that is something to talk here in Mexico and across the world.

domingo, 25 de febrero de 2018

Blog Entry: The Promises of Functional Programming

Traditional programming and Functional Programming work both in different ways, the programmer normally learns the traditional one, because is one of the methods that was created years ago and is the most common among the different types of programming that exist in the actual time.

The way it work the functional programming is something that I already used on semester ago, not with high detail that the traditional one like Java, C, C++ or even with Python, but before Clojure I also learned to use Mathlab and Mathematica, it definitely looks different than the other ones that I mention before, like article says this kind of programming is different to the one that we usually use, it's used on mathematical operations or even on simple programs used for statistics or create mathematical solution using recursion.

At this moment learning Clojure looks like a different point of view or in other words a good opportunity to learn a different point of view to solve mathematical problems (that does not mean that it can be used to solve any other kind of problems or create programs -like macros- all the contrary to this), because we are looking to solve problems in general, algebra or even simple operations is a good beginning to learn Clojure and then create more complex programming structure.

I can say that this is a new opportunity to learn different styles of programming, not only because it can help to solve problems that a traditional can do, but in this case, it can be used to solve it more quickly and without creating the full structure of a program because in the functional one we already have the opportunity use predefined functions to solve any mathematical problem (from what we are learning on the class).


This, as an overall answer does not replace the traditional programming but it can be used for other fields of work, I still got the idea that we are learning the basic stuff from functional programming so we are able to create more complicated programs and still get different way to use another kind of method for programming instead of still looking in one side to the traditional programming.

domingo, 18 de febrero de 2018

Blog Entry: Triumph of the Nerds

Creating something from zero nowadays is a good challenge for an entrepreneur or even for a company, normally the products or software is created from something that existed before. On modern days the updates/upgrades take some time to get new features compared with the previous one and make a big impression on the community, also that helps to get more money to get for them and more to spend on their products.

When the products were introduced, their creators did not get the idea that they were creating the future or even were marking a great event on human history, if we talk about technological stuff like the computer these machines are the exact image of the future and the creation of something that was going to be necessary on the life of every person.

Also, one thing that is really impressive as a consumer or even for one person, creating something like that requires time and effort, but most of those people spend too much time looking for ways to innovate and create new things so the consumer can be satisfied with the result, but not all the time this work, sometimes the product did not meet the requirements or even the consumer satisfaction so they can become a failed test that needs to be forgotten or modified to get again that spark and element that makes the spotlight of the product.

On the other side of the story, it's important to try everything all the time not to stay with the idea until someone else shows it and you stayed with the question (what if...), these are risky business but at the end if they are well executed they can be a complete success.

Creating Windows or even Mac shows that even if you have a computing degree you got the talent to create (or to copy with different features) new stuff. One example that I won’t forget is the PlayStation Vita, the previous device the PlayStation Portable (a.k.a. PSP) was a very successful console, but then the PS Vita was a complete failure not for the hardware it was using but for the catalog the company provided to the console, that mistake created the grave for their most recent child.


As a conclusion we can see that nothing is written some stuff could be successful, others not, the idea needs to be executed correctly in a way that nothing is the same compared with other products that already exists, but at the same time be creative so the successful rate could be higher than a product that is only an upgrade/update or even a copy from another.

domingo, 11 de febrero de 2018

Blog Entry: Rich Hickey on Clojure

Programmers are normally accustomed to OOP or even Data Structure programming, when we talk about those the most common programming languages comes to the programmer’s mind, this happens because is one of the first things you learn on the career, normally on the ITESM a student begins with Python, then it follows Java and at the half of the career you learn C too, also there are also derivates of another programming languages that a person could learn by his or her self.

Clojure for me is a different programming language compared with the traditional ones (if we can call them like that) that normally a programmer uses, Java, C, Python to say some of the most languages that companies and persons handles on. Clojure is also like Mathlab or even Wolfram Mathematica, this sounds like the knowledge or even the handling of the programming methodology seems like those two, also on the class we are using it as a Math tool too, but with the information investigated and thanks to the podcast I’m pretty sure that it can be used to a lot of implementations, because it comes from the LISP language and I remember that LISP was one of the first programming languages to create a webpage.

Now that I’m handling Clojure on the class is something different to what we use to program, this is something I like because the way you call the function by itself, then the answer could be reviewed with a test element, but also helps you to see what is wrong with the function and the content.

Something that I like from the language is that it can be handled like JavaScript, because it's asynchronous, atomic and can be received by one agent at the time, something that I like, an element to be called on any moment when you run the program.


As a conclusion for this blog I would like to say that Clojure could be handled with a different point of view from the programmer I’m pretty sure that you are able to use it for different purposes and also to solve problems that are easy or difficult, as I previously said it can be handles as JavaScript in an asynchronous way and as we already heard on the podcast we can considered as an expansion or a library for Java, that does not mean that for having Java as a base is not considered as a programming language, but this is not the case its considered a different language and is useful for a lot of stuff.

domingo, 4 de febrero de 2018

Blog Entry: Revenge of the Nerds

People thinks (and I thought the same some time ago) that one person when knows Java, even C any high-level language (that are the most common languages that you can use on a project, is like a common language and that most people can use) is able to handle or control all existing programming languages. That statement is false in some way, and I refer in that form because it’s true that when you and a team or work partners dominates one language to work it can be a great tool to achieve the objective of a project, but at the same time is false because it depends on the programming language that you can use (not all the languages could work the same way) it’s important to know that one language has a main use and some other programming languages works for another thing, as an example, if we refer to a web page the most easy way to create it is with HTML (tagging and design, and let's remember that is not a programming language) and JavaScript (for interaction and interfaces on the page) instead of a programming language like C or C++ it needs to be light and faster, instead with a high level language the system could solve too but could be more bulky and problematic for the host due the high logic process that the language can handle but maybe the host is not apt for that kind of tasks. On the other hand, if we use a high-level language we can use them to solve mathematical problems or more complex situations where is beyond the human calculations.

Now, it’s important to handle most of the programming languages that exists on the market not only because one is better that the other one, or this one is required for the job or project that you are involved, is also important in the way that not all the languages look the same or have the same structure, this is not the case is important to learn and write in different languages for your evolution as an Engineer and as a programmer.

As a conclusion, I have already the idea that programming language is important for all areas, different charges or roles are necessary and dependent from each other. I would consider to be original and leave the average behind so you can prove and have the full potential of learning different stuff and surpass expectations.