Wednesday, October 23, 2019

Ethical Reflection on Ready Player One

Ethical Reflection

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)


1.- Do you agree with the two previous quotations?

With the first one I agree, mostly the part that it is a place where people hide from a ever collapsing civilization, not that I see it as a prison, but indeed, OASIS users which use this alternate world more than real life, ignore the problems of the actual real world, even the problems on their own bodies, something that basically is prohibited if someone wants to keep living, while they have OASIS they believe that nothing else matters without knowing that maybe the building they are living on is going to collapse or that they will be kicked out of their houses due to some new law.

The second quote, I not particularly supporting it, yes, someone might lose their "real" life  if they are stuck on a virtual world, but that doesn't means that their life will be just a lie, that their happiness is fake, for me, they can truly be happy on that virtual world and that makes them physically, really, happy, maybe on a real environment they may not have that happiness and instead, feel sad, disconnected from reality, but that ain't a special case, even today and even before computers even existed, that kind of feeling existed, it may not be a pleasant feeling or even good, but with OASIS, that disconnected people have a chance to feel like a part of something, may feel happy, without the virtual world they may never feel happiness at all.

2.- Do you think our value system (personal and cultural values) could be altered if we spent most of our time in an OASIS like system?

Cultures come and go, so the cultural values may be altered but we can call it a natural process, something that shall happen one way or another, just another culture on a world filled with different cultures on a single house.

Personal values will have split into to categories, virtual and real values, and it is something that today is beginning to be noticed, we are ones on real life and we behave on a different on social media, however this difference seen today is not that radicall like the one that may arise with a completely different virtual world. We will end up with two different personalities on each individual, something wich will mostly be seen on individual who past most of their time on OASIS rather than the real world. This may be good or bad, there may be people that mix this two personalities bringing problems to this persons and the ones around them, it will depend on each person, on what personlities they have on this two worlds, personalities that can be similar or completely different.

3.- Do you think it’s possible, technologically speaking, to have something similar to the OASIS by the years 2040 or 2050?

A virtual world, yes, OASIS and all its characteristics, no, let me explain.

I would really like to see a virtual world, like a gamer it is like a dream to live on one of those virtual world that we use to play on. When I think about the possibility of a completely VR immersive world I see it possible and maybe even closer in time than 2040, I wouldn't be surprised (well, I would be surprised but not that much) if on 5 or 10 years we have something close to that technology.

The main issue will come with the things that made OASIS the alternative to a world, where everyone is free to do as they pleased. Governments (*coff *coff USA, China, North Korea *coff *coff) won't be happy knowing that their citizens are killing dragons while talking trash about them and they can't do something about it, they will implement control one way or another and they will motivate other governments to do it as well, such thing as OASIS and its free world without enterprises and governments won't exist, it will be owned and controlled by someone, will be prohibited or will be closed at some point.

For something like OASIS (and all what made it special) to exist may be possible but is something that won't happen in the near future, a LOT of years and changes must be done in order for such a world to exist. 

Thursday, October 17, 2019

Hidden Figures (Finally I watched this movie)

Hidden Figures

Just when on my Programming Language course we had a blog activity about women programmers, we watched this movie (got ya there professor).

I never watched this movie however I always wanted to,  it is always interesting to see how people manage to overcome what society imposes, not only do our three protagonist did something outstanding, they did it first when it was considered impossible (and they managed to shut some mouths up).

However, what I most liked of this movie, is that they accomplished all of this, they showed what they were capable of without the need for protesting or showing off, they did it using only their knowledge and their actions. I love when someone accomplishes something simply by doing it, no need for telling everyone what they are doing, their actions spoke for themselves.

I consider this a perfect example of how things are made impossible because we think they are impossible, only when we really are engaged about doing something is that we start to see that such impossible things don't really exist, there is always a way to accomplish something, hard or easy, it is there.

I would really like to see a society where everyone just do what they can do best, without having to reproach about it.

A really good movie, I don't know if I would consider it one of my favorites but one that I would definitely recommend, I'm glad to know that these three women have been well remembered and that their accomplishments are recognized and appreciated. In fact, I'm glad to know that the many things that a lot of women (specifically, programmers and engineers) have accomplished are being recognized and that, even when some of them are gone, have the attention they really deserve after all their struggle.

Wednesday, October 9, 2019

The 4+1 View Model

The 4 + 1 View Model

I have some ugly flashbacks of my FIS (Fundamentos de Ingeniería de Software) classes and its subsequent related classes as well, basically this whole thing of architecture and UML diagrams are taught on those classes and, oh boy!, it was complete boredom although necessary even though I don't like it.

When we are told to do something (in this case to program) we like to have everything so the only thing that we worry about is that our code executes correctly but when we have to do all that stuff of documenting and making diagrams or when the program can't go on like it was told and oneself has to do the changes to the diagrams, it is at this point that we really notice how important is to correctly develop this whole understanding process with its related documentation, even more when you are not the only one in the team.

One has its own point of view of each thing and each problem, so on a team the chances that everyone agrees on some model grows smaller as the team grows bigger, like with that blind people examples.

There is bound to be chaos where there is no order, however with people, to have a completely ordered system of thoughts that everyone shares is almost impossible, a common understanding however, can be possible and only then, the beginning of a project can truly start.

The result of this understanding can be seen during the planification and design steps of a project development plan, a team made of one member of each of the teams that work on a project must work unified to develop the neccessary models that the project will be based upon, more precisely, the code models must correctly identify how the system is going to be implemented, related to other systems if needed, build upon and everything that it needs to be specified from the smallest component so that there isn't any room for misunderstandings.

Wednesday, October 2, 2019

Understanding the SOLID Principles

Understanding the SOLID principles

All of this thing of how to develop and write code starts to feel repetitive, I've seen it a lot of times along my college educations that it begins to feel obvious how this principles, recommendations, better practices and all of those thing work, it is obvious now to me what they try to tell.....maybe all this over-teaching accomplished one of its goals after all.

But it is funny to me how at some point all these points seem to contradict at some point and with the flow of time, first design, planning and a lot of diagrams were needed but from the shadows emerged agile programming and f*+ck all that. With these principles, specifically the Open/Closed and the Liskov Substitution principle, inheritance (one of the main things that makes object-oriented programming ... well ... object-oriented) is seen as the bad guy.

Nobody can deny that inheritance has its good side, it exists for one reason and in practice we can say that it is useful, however, for the actual demands I think it is needed way more or something different at all.

SOLID differentiates from the rest by being applied before coding not like refactoring that are done after that, I think that SOLID is a little concise, maybe because this reading is an extract but although this principles are good to have they don't deal with all the problems that may rise on a project, it is a nice beginning though.

While designing and developing software it is critical to determine what are we gonna do and how it is going to be done, because there are a lot of recommendations and principles for good design, a lot in fact that having a control to check if all of them are accomplished is almost impossible. Every programmer and team (or company) have its way of codding, they have a defined set of principles to follow may be or may not be SOLID or an abstraction of them but I think that SOLID is like a basic to understand and follow.

Wednesday, September 25, 2019

Microservices (Hmmmm interesting)

Microservices

What I understand with the term microservices is a combination or cluster of services (not necessarily micro or small, but each one represents a small part of this cluster) and I immediately think of what Microsoft Office, Google or Amazon do, they have this services, APIs or programs that are somewhat related and can actually interact between one another; Microsoft Office is not a Microservice but works in a similar way.

We use various of this services everyday basically, we can say that life, business and relations wouldn't be the same without the existence of this services, so the development and improvement of this ones now plays an important role on software development.

However, this split is made to offer to users, various kinds of services so they can only use what they need, has its fair share of pros and cons.

On the good side, as I said, the user only uses the service that it needs instead of using a whole product which takes more resources or has added complexity; microservices look for modularity, so when a service fails it doesn't affects the others ones aside from the part where they require that failed component; a better focus for users that now can only specialize on a specific service instead of having to master a whole program; among others.

But on the bad side it has, in short, the same problem when you divide something among various teams, communication is more important, to control how the updates are applied so there are no problems with updates from the other services; basically the amount of control and coordination on this case needs to be better in order to achieve success.

As it may be a little obvious, it is only needed to have more focus on control and coordination for the managers or leaders of the teams so the drawbacks from this splits are minimized.

This is a better model personally and I dare to say that for everyone, this micorservices on cloud that exist nowadays make life way simpler because internet is the only requirement (apart from knowledge on how to use them).

Tuesday, September 24, 2019

Software Craftsmanship (No movie :c)

Software Craftsmanship

The process to design or "craft" an appropriate software is important and basically, essential to produce a successful and useful program, like it is said on the podcast, it is not only for the documentation, to fully understand a problem, to determine what to do and what to do when things don't go well (although, if the architecture was well done, there shouldn't be, theoretically, any problem or misunderstandment).

With the agile programming this seems to be left aside and the term of craftsmanship seems to be way worse than what architecture is, what I mean is that, experienced programmers and what the leaders of big and important software projects don't have the time or even the motivation for teaching and/or mentoring unexperienced members of a team, however without this teaching the number of future good programmers will be reduced and what will be left will be a crisis of programmers.

I agree with what was mentioned that teaching and mentoring are better that just reading from a book or attending a "listen-only" class, for me programming is learned better (and not just programming, everything) when you can practice and experience what you are learning and when you have someone capable to help you out when you have trouble, to show tips and tricks and to accompany the process for learning in general, is like a double prize, is a better experience and the result is a better new programmer.

Also I would like to add, that to teach some member of a team on agile programming is not a waste of time like many people might think, yes it may take some more time but like I said, the experience is a better method for learning, so when you learn on a project that must be done fast, you also learn to work under pressure, to think fast and to fix fast, which will give a better programmer that can also work quick when needed and even better when there is no rush for doing things, the main problem that I may see is that a quick learning leaves room for unsolved doubts or little comprehension of things that need to be fully understood, however when the project ends there can be time for an appropriate teaching so it is no longer a problem.

Wednesday, September 11, 2019

WarGames (Yay!!! Movie!!!!)

WarGames

I've always heard about his movie although never actually had the chance to watch it or simply forget about it, but finally managed to watch it and really enjoyed it.

The movie deals with what some people fear about technology and computing as well as the automatization and replacement of humans with machines and with AI. It may be exaggerated to use a global thermonuclear war to represent what may go wrong but it is possible.

There is no perfect solution, no way to be 100% safe from failure, humans commit mistakes or their emotions may be inadequate for a certain job (I'm not going to say that there's evil in people but as the movie suggested, there's people that simply can't turn a key for whatever reason), also, computers and programs, yes, in the end people are the ones that program a software and they decide whether to develop something good or bad, but as the system grows bigger it becomes harder to control what a system is really capable to achieve besides of what was programmed for.

I can't fully decide if automatization and technology progress is the best for humanity, although as an engineer I support it and like it but considering that not even this area is impervious to failures and to the devil that exists within all humans, sometimes I doubt whether this is the best thing or not.

People is not stupid, they wouldn't start something that they can't win, I think that this is what has stopped or at least delay another world war for now, but also this is what keeps pushing people and governments to improve their military and attack force, I don´t like to think about this kind of things, 'cause I know that it can't be stopped but to think that a simple (not so simple as in the movie) mistake or a misunderstanding can ignite war makes me feel uneasy, with enough pressure and fear. people can make stupid things.