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.

domingo, 28 de enero de 2018

Blog Entry: Dick Gabriel on Lisp

Artificial Intelligence is now an essential part for technology, equipment and even some electronic services uses AI, not even for remembering, but to work in a way where human is not able to work with complex issues or problems. For this, having a language like LISP is the exact reflect of that statement, a programming language helps to create wonderful things that goes from making mathematical operations to create complex programs, maybe for a web server.

LISP is a tool that shows that a programming language can be used for other things and not only to create maybe a program or a service, AI is the answer for it, we could see it with as a beginning or the origins for the Artificial Intelligence, Macros, predefined programs or even neuronal links, they tried to learn some basic patterns or even from interactions until they are able or capable to provide an answer or a precise solution.

As an example, playing chess with a computer or even with the essence of an AI is a good challenge, not only because they can make some movements that a person could not consider on his turn, but the way they can reach this kind of skill is practicing or even beginning with different games levels they start like a human learning the most basic actions followed by the most complex movements that a professional player could make, the AI learns movements and also begins with loses, but at the same time acquires experience so it’s able to become smarter and smarter with the time.

I would consider that technology with this tools already created new stuff that on a future time AI could be part for everything, to solve complex issues, even create a possible robot, a tangible one that is able to move and also to be part of everyday life, yes I sound like Asimov novel "I, Robot" but looking at what we already created I think that this is not too far away from reality, but, one thing is important, AI won't replace a person’s intelligence or even could not replace a person a human being they can help in everyday work.

As a final comment from the listened podcast, I consider that the AI create things, even work with LISP or any related programming language to this one helps to create new tools and stuff in list structure, for some time Clojure is a good way to check new options to create projects or even learn a language that could be helpful on the future.

Peace out and God wrote in LISP Code.

domingo, 21 de enero de 2018

Blog Entry: Beating the Averages

Writing code is one of the most powerful tools that could ever exist for a programmer and even more when computing and technology are evolving at an impressive speed.

The first time I looked at a programming language (My first language was python here on College) I was impressed on how complex it could be, but at the same time I saw at all the things that you can create with it. Before that the HTML language (that we could consider only a Markup Language as his name says) was my first encounter with a computer that when I wrote the first line on that moment I considered to learn more about differences for programming and that there are different kind of languages that a computer can translate.

There is something curious about the lecture, on the 90's the computer was beginning to get support from different companies and applications or interfaces were not so complex as the ones we have today. It's amazing that a group of people and a language that is LISP could create a service without using a direct client on the user’s PC. This was the beginning for the web applications that we know on the modern age. For me, this kind of work is something that I could consider creative and that with the right effort they could create on that moment what could be impossible.

Also, let's remark that on that moment there was already languages that on that time they were easier to use. what they remark on the reading is that if you use something that other can't handle that makes you unique, in the context for programming that is correct, but at the same time every company looks for programmers that knows a common language, they need a group that think the same way and having programmers that knows maybe C++ and another with Java knowledge etc. etc. you have different point of views for creating something, but they need a common language to develop something. Other companies prefer to pick employees with different knowledge because the more rare language you can handle (and also the company uses to work) more money you can win, is a two side of the coin, from one side it's good because you win money you deserve for the effort of learning complex or rare programming language that no one can handle, but at the same is good to know a common language because is what is used on actual days not only because it's cheaper, but for an easy development and to give results with a large team.

Now, about the strategy they used to differentiate from the competition is something that an entrepreneur would have in mind and is respected (in my point of view and being honest I won't consider to create a startup or a business of my own until I get the right knowledge and also worked a good amount of time in a company, my personality is that way I don't like to take that kind of risk until you have a strategy or a way to have the project a complete success), competition is getting a big challenge nowadays startups and small business are having trouble to stay on battle, if you don't have a creative idea there is a high chance of poor success.

So, as a conclusion, there are situations that being unique is really helpful, but sometimes you need to have something in common so the work or project you are going to do could have a high rate of success and in this case learning different programming languages had the two thing if you know more programming languages that others know you are able to have success (and also helps you to get different perspectives), but at the same time you need to know languages that others could handle maybe for a teamwork or to develop something because that group needs to think the same way the others do.

lunes, 15 de enero de 2018

Blog Entry: Semicolon Wars by Brian Hayes

Technology evolves at the rhythm the humanity wants, that is the way I think technology (Specially computing) follows and is part for many important achievements that humankind had reach during different periods of time.

In this blog entry, the next comments are created as critic to give a point of view of what I think from the document I read.

In this case not only evolution has shown this side, but also a variety of options or alternatives for even solving a problem we have on the actual day, but there is one thing is interesting and that divides people (not in a way of real war, but in opinion) in a way that nobody could have the same opinion, the programming language.

Previously we had a limited amount of programming languages that could help us to create the most basic thing for a computer but with this evolution and changes there are a lot of programming languages where a person can choose to work with and also to support, some of them works to solve mathematical problems, others help for taking decisions or even learn programs (or the AI) to decide by itself what is the best option for a problem, there are so much options, endless possibilities that could take to focus on a programming language and develop our skills.

Now, during this century the programming languages that we use every day on our career has suffered changes, not only on the syntax way or even portability, but on the way, we could get an "hybrid" language that could use some things from one language or other things from other programming languages.

On this time, with Python or even scripting languages the programming has really changed not for bad or good, but for the best because as I already said, evolves and adapts to the way more people could get used to it, for veteran programmers these languages help to take advantage for a what a programming language can solve or vice versa.

The conclusion for this is that there are still too much to create and learn for computing and especially on programming languages there are new ways to explore and also to get friendly with everyone, on previous times we could consider this a disadvantage because not to many people work on this are, but now the changes could help to get a better idea for this and also to even solve more complicated problems.

A way to see the evolution of programming, but still 
considering the original ones as the main base for others.
(Also, not an accurate image).

martes, 9 de enero de 2018

Programming Languages 201811 - Ready, Set, Start Programming!

Hi Everybody!

My name is Allan Ramírez, I'm 24 years old (soon 25 on January 25, already feeling old) and right now I'm studying the career in computing systems. At this moment I'm on the 8th semester of the course.

Expectations from the course
First of all i'm happy to learn new thing in this course, so what i'm expecting from the subject is to learn a new programming language. I have a special reason to have the hype about clojure language, specially because it's the first time that I heard from this one and also because my understanding is that the language has a different way or perpective to look at the programming style that normally one is used to.

I'm ready to learn a lot of stuff here in this course from the semester and be one step closer to finish my career.

At the beginning I was thinking that the programming was the same way as other languages, but i'm pretty sure that this is an exception to the rule and you need to analyze and view every kind of ideas to solve the problems that you face off

Hobbies and personal interests
Well, some of my hobbies and way to pass a good time is to listen to music (being specific Rock, Classic Rock, Grunge, Metal and also some genres as Blues and Classic music). Normally I hear artist like:

  • Metallica
  • Judas Priest
  • Pearl Jam
  • AC/DC
  • Lang Lang (Piano Music)
Soundtracks are another good option for me, so my favorite composers are:

  • Greg Edmonson
  • Hans Zimmer
  • John Williams

Also, I like to play videogames that have action and a pretty good story like:

  • Uncharted
  • Metal Gear Solid
  • Mass Effect
  • Pokémon
and many more!

My passion for cars is one of the things that would never change for nothing. Formula 1 is a proof for this pleasure, I already assisted to the 3 Grand Prixes that are on the contract with the country and I'm going for the 4th time and many more.

Books, music, movies, TV programs that you have recently enjoyed.

Recently I watched Star Wars: The Last Jedi and totally enjoyed it, I have some mixed feelings for the changes that made to the saga, but some others are for good, sometimes we need to give it a try, specially because we are already used to the legends version instead of this new canon. Also, the story needs to have a new twist and I hope that the next movie is going to solve a lot of questions that we have at the moment.

For TV series I haven't watched one recently, but I want to rewatch some anime that I really enjoy, I don't have an specific one, but there is an extense list because every anime has a short length.

About music i'm still waiting to assist a concert, the one that I was waiting with emotion was Linkin Park, but due the situation that happened with the singer Chester the fate of the group is still unknown.


Well, I think that's all at the moment, to the persons visiting this blog I wish you a nice year and always good vibes.