domingo, 1 de abril de 2018

Blog Entry: Ethical Reflection on Ready Player One

Well, this is the last entry blog (apparently 馃槶) and for this one we are going to talk about a book (now on theaters) that for my opinion it's from culture if you like videogames and technology, Cline used everything at his favor to create a science fiction novel that could attract a lot of people. For me it’s a special case since recently I acquired that interest in VR and for this kind of stories related to a different world or a perspective where everybody can be free (well, with the limitations of the game) or do whatever the person decides.

Looking at this quotes as a starting point:

Morrow wrote in his autobiography that he’d left GSS because ... he felt that the OASIS had evolved into something horrible. “It had become a self-imposed prison for humanity,” he wrote. “A pleasant place for the world to hide from its problems while human civilization slowly collapses, primarily due to neglect.” (p. 120).

(Halliday speaking) “I created the OASIS because I never felt at home in the real world. I didn’t know how to connect with people there. I was afraid, for all of my life. Right up until I knew it was ending. That was when I realized, as terrifying and painful as reality can be, it’s also the only place where you can find true happiness. Because reality is real.” (p. 364).

To answer this questions:
  • Do you agree with the two previous quotations?
  • Do you personally see any virtues in a system like the OASIS?
This is pretty interesting point of view for all people, not only because both quotes tell the truth about a virtual game or environment, sometimes people tries to escape from who really is or think that they could be another person (good or bad) than IRL (In Real Life), they don't accept it's reality so they use it as an escape, but from the other side it's true that is not a "prison" for people because it's a way to look it as another place for keeping your essence (or as an entertainment), but as I previously said it depends on the person's perspective.

Now, 
  • Do you think it’s possible, technologically speaking, to have something similar to the OASIS by the years 2040 or 2050?
  • Can you envision a software architecture, using currently available technologies and tools, to build a system that could evolve to something like the OASIS?
Technology has evolved in an impressive way, not only for the society, but also for a tool where everyone can have entertainment or even have a different purpose for everyone’s life.

I don't like to change of novel (or even book), but it helps me to answer to these 2 questions, this story is a pretty one that I also estimate and like so much (and hated for a lot of people because the thematic or even the story plot got turned into something that at the end was not related -people call it Harem, and it's true, sadly- BUT I got hooked more for the possibilities about story and games that in reality we could create from that point), the story is Sword Art Online (a.k.a. SAO) created by Reki Kawahara, this one it's a pretty popular franchise that is part of ASCII Media Works on the Dengeki Bunko imprint, just as a small fact he created the story for a contest on Dengeki, the story got rejected because the limitations was a 100 page story, he did it on 200 (he try the same competition -and won!- later on with another novel that is not so popular than SAO that is Accel World, another novel that it's important to me too because he uses the same thematic, but with different character's story and more darker than SAO, this one it's years later than the events of SAO and as I said the story is unrelated to Sword Art Online, but at the same time its handled on the timeline with the same technology used for both games SAO and Brain Burst, NerveGear -later Amusphere- for the first one and it evolved on the Neuro Linker). 

Sword Art Online takes on 2022 (we are close, only 4 more years) where 10,000 players got trapped on a dead game created by Kayaba Akihiko, they use the NerveGear as the device to access the virtual world called Aincrad (it's a helmet that blocks all reactions from the real body and sends the game information and images through the brain) where the story takes place (at least the first volumes of the light novel), a player called Kirito (real name Kirigaya Kazuto) got trapped with the other players on this nightmare and the only way to finish the game and return to reality is to beat the 100 floors that Aincrad possess, the only limitation is (and turns it into the death game) that when the health (HP) of the player reaches 0 it's avatar is eliminated from SAO and the NerveGear sends a signal to the brain via microwaves that destroys it, killing the person using the device, there is no Log Out or even revive option, you only have one life and wasting it would be dumb.

This is the beginning of the series and franchise, the rest I would like to invite everyone that reads this blog entry to look at the light novels or anime (also releasing soon the 3rd season of SAO and on April an alternative story from the SAO universe is going to be transmitted on tv, Gun Gale Online Alternative).

Now with all this information (I know, it's too much information, but required), VR (Virtual Reality) and AR (Augmented Reality) are already part of human life, also the evolution of technology, I'm sure that we are far away from the creation of this kind of environments (and of course because they are only novels), but the tools to begin this are already developed, we can see the Occulus Rift that uses VR, games like Pok茅mon Go that uses the AR we are able to modify our reality already.

For this, I'm pretty sure that using Microservices it’s the best way to develop this system and to have it at the palm of the hand. 


We talk as an assumption (but it’s not!), IBM already take the advantage (and the reality is that it was only a promotional campaign, looked too real, that if they get the right sponsorship it could be a reality) for this kind of idea on 2016. With the help of SAO, IBM created a virtual world Demo, the project was called Sword Art Online: The Beginning, Sponsored by IBM. This "Alpha test" was tested by only 200 persons that even Kawahara-san try it (lucky them :( ! ) but the objective was to recreate the first levels and enemies of Aincrad (with the feared Gleam Eyes), it was a success, that I would like to share videos that demonstrates this.




The webpage is not available anymore, but they store it through these webpage, it's on Japanese, but there’s is an English page where they describe the event and the way they create it:

https://www.mugendai-web.jp/vrmmo-project/

https://www.mugendai-web.jp/vrmmo-project/archives/en01.html

I would like to talk more about these thematic, but that would be it for today. Thanks for the attention and see you online!

Oh, also I would like to leave the opening, this one is the one that began with my addiction to SAO and other animes.




References:


  • Cline, E. (2011). Ready player one. New York: Crown Publishers.

  • Kawahara, R. (2009). Sword Art Online, Aincrad. ASCII Media Works, Dengeki Bunko.
  • Kawahara, R. (2009). Accel World, Kuroyukihime's Return. ASCII Media Works, Dengeki Bunko.

mi茅rcoles, 14 de marzo de 2018

Blog Activity: Microservices

The first time I heard the term Microservice was in this reading, this term is in reference for an architectural that structures applications as a bundle or in other words the application is develop as a small service, each one runs its own process (but it still considered one) and run with mechanisms that does not waste too much resources, or runs over an API.

I consider that this kind of applications are an excellent tool for business where they look for an application that is useful for their role (and independent so it can deploy its own service) and for the price and investment they can have for, and not only for the price, it allows to stack of technology (so in the future they can grow also put a more complex structure for their services and applications) and with this deploy their technologies on their systems.

Now, this helps to accomplish objectives for the company, and to have more opportunities to choose what style of structure we want, Microservice or monolithic. Monolithic is the most common architecture because we have 3 components, the user interface, the database and the server application.

We can see that the architecture has change or evolved, in other words it evolved because all the elements from the application, instead of standalone services we get the fusion of the 3 so it can work without needing another element or something extra.

For this I look for a lot of benefits like the independence that it could have instead of the monolithic one, requiring separate equipment for each one apart that its cost is higher, you need more specialist to take care of every section.

Applications from companies from the actual time like Netflix, Amazon or even the music platform Spotify have a new way to provide their services to the customer, they try to simplify everything also because the large amount of information and data that is carried over their applications is completely huge they need to use the Microservice one to provide service to a big amount of customers, now if they have the monolithic, what we could say, let's give an example if one of the elements is under maintenance or even has an issue and needs to be repaired (but at that moment the service are offline) you leave millions or even billions of connections without service that will impact your money and also for that reason many customer will leave your platform, we do not want that, so we opt for Micro so we can avoid that.

Before I finish these blog entry, I would like to give a small mention to the man that change the way of thinking for the universe also for black holes theories, for something that we are not able to describe, but he dedicated his life to understand and discover what is beyond there. Stephen Hawking was an incredible human and a memorable scientist from the 20th century. RIP Stephen Hawking.





Because not only he dedicated to science, he also show his human side on the Big Bang theory.



Oh, almost forgot one more thing Happy Pi day!

mi茅rcoles, 7 de marzo de 2018

Blog Activity: The 4+1 View Model


When we talk about software development or even software engineering, we refer to the steps or elements that we follow to create a project, a program requested from one person, a group of people gets involved on a project, these people are on different areas of development from the programmer to the tester. Every person on the project has an important role and needs to know what he is really doing.

The previous stuff is related to what is the 4+1 View Model, you need to look far beyond the main objective of the creation, I consider that is important to get the idea of how the project, program, code, etc. works what are the elements physical, logical so it could have the correct structure and the right planning so the project or program could be a complete success.

We have the point of view from ourselves and not from the others, even if the customer or the person tells you the requirements to create what he wants we finish understanding or even creating something that is from our point of view, this needs to be fixed and is not something that for people could be annoying all the time, but it's something that needs to be corrected so at the half or even at the end of the project could leave a complete failure about the requirements of the product and request from the customer.

Now, about the reading and the other video for the blind cases, it's the same we look at our perspective and own point of view, we can say that is not correct or it could be wrong, if we talk about the same topic with a person and has the same knowledge like you the point of view could be different and that does not mean that is not correct, same thing happens when you are programming, solutions are pretty different, a problem could be solved in so many ways, but it will be different the logic from another person compared to yours, that does not mean is wrong we can look it as a different path to reach another place.

In conclusion, we need to see from different points of view to solve a problem, not only a way where we feel comfortable, but also a way where we don't get to a closed solution only, be flexible, also is important to consider everything around of what you are going to solve, create or develop.

I would like to share an image that resumes what I want to express on this entry.



mi茅rcoles, 21 de febrero de 2018

Blog Activity: Understanding the SOLID Principles

SOLID principles are a good option to provide refraction or in other word to optimize the code that were creating, these kind of tips and tools helps programmers to get the right idea and the best structure to create a program.

For the SRP it’s important to keep an eye on what is going to be removed from the code, if it provoke an issue or something important is removed then it could impact in a negative way the result or the expected exit from the program.

Now, for the OCP keeping the most important stuff as private and that could not be modified, but for some other sharing issues we find a common problem when creating a new class that inherit from another, one thing that I can use also for some programming languages are friendly classes, for me is the best answer to solve this kind of problems when we share between some classes information or content and that other class is not able to use.

LSP is another element for the code to get every class working and cooperate between each one, the only thing here is that in this principle modification is allowed, sometimes this option is a good one because you don't depend too much on inheritance and could make the code independent for each class, this does not mean that you need to discard everything of inheritance, but to reduce the amount of use.

For ISP, looks simple and to have difference classes with the function each one can call is a good idea, you avoid any issue from memory and to execute classes that now the program that is running does not require it.

Finally, for DIP, instead of making references to classes, with this principle we can create reference to interfaces or abstract classes.


Every part of the structure of a code is very important not only for the syntax, but also for the way the programmer writes the code, once we remember this and apply (of course) you are going to be able to create and design code in no time.

mi茅rcoles, 7 de febrero de 2018

Blog Entry: Software Craftsmanship

A long time the division between programmers and designers (or architects) has been marked since years and for the required job that every role needs to be implemented on a project.

It's important to distinguish again that there are traditional methods and agile methods for a project management and development. With this, the election and decision for choosing the right method to create the project depends on the requirements and the time and resources that the person/team is going to used and in terms on time the amount of inverted time for the different phases of the project.

Now, one thing that it’s important to consider is that every person on the project has its main role. from my point of view a person is not able to be architect and a programmer at the same time, you need to focus only on one thing, not because of judging or even having lack of ability, but it's more on the sense that one person needs to focus on the main role he or she has. Now, sometimes being all in one could be valid when you are a small group or you are the only element of a project is taking all the roles from a project.

Having a software strategy is important to have a method to create the right project, normally is followed by a method because once there is a team with specialized areas everyone needs to follow the right process.

Normally, Agile software (like in this case software craftsmanship) keeps quality high so the schedules should not be affected.

For me Agile software is a good tool to create projects this kind of methods are applied correctly when we are creating the project for something that is not formal or even as a student it’s nice to use it, but when we are talking about a professional and serious project the team and specially the manager needs to take the right decision about this
Oh, and for a project the adherence is important not only to keep the record of what we are doing but also to check loses or incomings from the project.

Just before I finish this blog entry I would like to leave the Agile manifesto, something that could help to make a good reflection about any project where agile software development:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Also, for more information (I used this webpage too to get more information) I recommend you to access this page to check the values and the principles.

http://www.ambysoft.com/essays/agileManifesto.html

mi茅rcoles, 31 de enero de 2018

Blog Activity: Is Design Dead?

When I begin my career, I started to check different areas of the Degree, like Databases, Networking, Operating Systems, Project Management and Programming Languages. What I'm trying to say is that the main objective here is not to only learn one thing or focus on a specific area, in this case when there is a project for a company or even for the creation of something new there has been an issue that normally makes that the projects take more time, resources or even fails or don't reach the expectations,

In this case when it's a Software project there is a lot of people behind it, but nowadays companies try to create more and more ASAP not only because of the competition that exists, but to save money and avoid any problem with it.

A working team for these cases opt for the process and rules that are in 2 ways, the classic methods and the agile method. As the names for each one tells advantages and disadvantages it’s important to identify when to use each of the programming method, sometimes using a traditional instead of an agile method takes more benefits and excellent result or vice versa with the agile method, the team needs to decide and check which one is the one that will not affect the gap between the main objective and what is being develop.

Now, another thing that everyone should keep while working on a project is to keep things simple, I think that the programmer or even the engineer logic and thoughts keep the person too far from the simplicity, that does not mean that is not correct, but sometimes the answer is easier that the story that a person could create on the head. In programming is the same, we create stuff looking for different scenarios, with details and precision but, at the same time we complicate the things looking more than the present and possible future scenarios that could happen.

It's important also to think that every person on a project (programmer, designer, tester or even another department from the company) is important and the team needs to be as one, only choosing the way to create the project (UML, Kanban, XP, SCRUM, Cascade, etc.) is what decides the failure or success from the project it needs to have the right option the project requires to save money, develop a good product and the most important one so every person on the team could work properly.

With this I can answer that Designing and Programming are evolving not on a way that only a person could be specialized on only one knowledge area, but needs guidance from each one for a successful project.


And remember, keep the code simple so any other person could understand, also you don't get confused with your own code!

mi茅rcoles, 24 de enero de 2018

Blog Activity: Who Needs an Architect?

Normally, when we hear the word Architect, for a non-IT career related we remember those persons that creates the main structure of a building or a construction. The one's that creates a model from a house, etc.

For us, programmers or in other words for IT related, the term architect and architecture gets a different meaning, especially on the part that one person who has experience is considered an architect (also, for me the term of architect is a person who has already more than 5 - 10 years on his work area, considering it for a job vacancy) and a person who can get the right authority for the development of a project.

The architect in other words is considered a very important person so a project or software could have a great amount of success. Now, this term is for the people who manage the project to have the same channel and knowledge from all the employees involved on the work, but remember that is only for the development part, because there is a person who get all the project control and that one is the project manager.

What I’m trying to say is that there are too many people who works on the development of a software, Q/A, developers, testers and other areas that conform a team. The architect is considered an important, a very important person for the project, not only for being the one with more knowledge from the other, but also to analyze the best options the team has for development, he already saw further than the team and knows where to lead the group. 

I'm still looking for options for a specific role on my career, the ones that I look interesting is network architect or even software architect, this does not mean that I won't pass the first stages from my career to become an architect, a person with experience but is a good objective to set in mind to success.


Now, according to the reading this could answer one of the most important questions, is it necessary an architect? My answer and opinion is yes, experience and knowledge are 2 important tools to have that sightseeing that some expert needs, not only to have a good development but also to consider a person with more experience inside the project, could help to get the required success for the team and the process.

mi茅rcoles, 17 de enero de 2018

Blog Activity: Software Architecture

There is a point of view that I previously had when I entered the degree, in that idea I was thinking:

 - "Well, I don't know how to program correctly, could it affect me when I enter the career?"

After making that statement I have a conclusion for that question from years ago, and the answer is yes, but at the same time no.

Why both? Well, that's simple, first, because no one born with programming knowledge/skills and second, time passes and meanwhile that time passes I'm learning new stuff to make a better performance and avoid newcomer errors.

Honestly, through the career I've been fighting to learn programming languages in a way that I could have a good technique and apply it in every language (and well also because I'm the only person from my family that I'm interested on technology and computing, so I'm going to be the first Engineer on Computing Science from my family, Hooray!), but thanks to the book that I recently discovered thanks to this subject, I checked that there is no a base strategy to handle all in one, instead you can learn different ways to understand and work with different programming languages, but that does not mean that there is a method to create code without passing through different stages.

There are things on the book that got my attention, specially this term "Defensive Language", normally on school you create programs just to finish and get the assignment complete, but we don't take some minutes to reflex or think about important steps that would make a better way to create a program, this kind of methods can save us from large hours in front the PC screen and get frustrated because we only think in accomplish the homework.

I consider that the tips from the book are a good advice to follow from now on not only for the benefit of one, but to do things correctly. Like I said, I've always struggled with the way to solve a problem, today I learned that we create correct code (or just that works), but no good code, that needs to get improvements and to be followed, it helps one to get the idea behind the way we create code and that we don't look more than the result, we need to check different scenarios, possibilities, options and check from scratch the code that we can create so the program works correctly since the beginning and just focus in the good code.

viernes, 12 de enero de 2018

Blog entry: Moon Machines

"We choose to go to the moon. We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard, because that goal will serve to organize and measure the best of our energies and skills, because that challenge is one that we are willing to accept, one we are unwilling to postpone, and one which we intend to win, and the others, too." - John F. Kennedy (1962).

Those were the words for the big challenge that was going to begin for the United States, people was going to reach the moon and with they would specially improve on technology to begin a new era on humankind, this big step is an incredible way to demonstrate what does inspiration and effort could generate. 

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

The technology always and will be an aspect of our lives that are in constant change or evolves with humankind, when the Apollo mission was issued by the US, at the beginning was considered as a suicide mission or even impossible, on that moment was viewed that way not because they were not having the technology to begin with the objective immediately, but the main reason was that no one or nobody arrived to the moon.

Their mission was not easy, they spend years and an exhaustive number of attempts to reach the final objective, some of them were reached by coincidence others they were having the right explanation to have reached to the method or mechanic to recreate the same phenomenon.

As an example, there is one thing that I’m still curious, the issue that the computer got once the Apollo crew arrived to the moon (the system overload at the arrival of the moon), the idea here is that since everything was already tested and created with the right care about the equipment, there were still times that existed a chance of failure during the expedition (in this case that did not happened). The mission could be a complete failure if the computer remained the same way, and expecting from the USD government they would try it again until they could get their objective.

The other point of view was the creations from a group of talented people from the MIT (one I would recognize and thanks to this person the progress on the creations of new technology would not be the same) like Margaret Hamilton, they were processes and specially methods that provided the right information and calculations to avoid any failure.

With this we can see that there are a lot of changes in this world since this big impact in the story of mankind, I’m sure that on the next years the humanity will get far away and could solve mysteries that are still unknown for mankind.

I'm leaving the video from this interesting event, one of the achievements that changed history and make a big evolution in the world.


martes, 9 de enero de 2018

About myself and expectations from this course.

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


I'm excited to see what new things I can learn from this course, honestly I never heard with detail about the content of the course, this is the first time I'm going to use a programming language like Ruby, but I had already got good references of the language, specially that is pretty fun and a good challenge to learn more and more.

So, i'm expecting a lot of things to learn and also to dominate on this new programming language to extend my knowledge and library.

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.

Also, I rewatched Rogue One, even as a side story is a good movie that I like so much because of the Scariff incursion. I like to recreate it on Star Wars Battlefront so I play it a lot recently,

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.