Blog, blogging & blogger – A little piece of heart, a little piece of soul

Okay so, we had a little talk in class about what was the intention behind letting all this blogs assignments for the semester. We mentioned that some of the students did it only to get the activity points, other more actually showed that it was a real joy dedicating this time of reflexion and even fun, and leave it as a blueprint for the rest of the world.

Well, I’m not saying I have many fans on my blog. Actually I am almost sure that the only one that has read any of my post is my professor Ken Bauer. I’m sure about it because he really cares about what students think and feel. And always I give myself time to write one or two (once I even did three) blogs that I should had finish for the past week, he writes a review about it and in some of them I see he likes them more than others. It’s okay, I don’t find it personal. I actually like the feedback as hard or cool it can get.

I find cool how was Ana’s path to start writing, understand her reasons of why she stop. And admire the overcome of the pause she had when she started working. For me, its about a little talking with myself. I guess that’s why I enjoyed I cigarret once in a while riding my car at night, alone. Without anywhere to go, and anything to do. But just enjoy myself, some music, the cold wind, and the relaxation a little posion gives you.

I usually start my blogs by describing how I got the will to start writing it. I gotta say it, I usually never do them on time, sometimes because I do really don’t have the time, other times because I just can’t, don’t have the inspiration, I’m tired, or I simply don’t wanna to them. The good part on doing them when I really want it that words just start coming and coming. And I start writing and writing. I guess that’s why I must have tons of writting errors. Sorry about that, it’s also part of the beauty of it.

It’s really weird I go back once I write a word. It’s kind of when we are talking in real life. Once we say anything, it’s done. We can hurt people, or make them smile. We can teach, or we can damage. We can make someone in love, or hate us. It’s crazy the power of the word. And yeah, we could take it to the extreme and start talking about the responsability it takes, but thats not my flow. Let’s better enjoy this friendly little post.

Once again, this is me, after my monday. After a bow of cereal (crusli is the $h1T, the best cereal ever). I’m gonna be brief about it because I gotta go and study for some subjects I’m currently struggling with.

So, the last week in my rugby team whatsapp chat, they invited me to go to the national tournament. (Long story short, I have been in the team since 2nd semester, now in 8th, but haven’t been able to train as much as I like to, because of work and school, haven’t even go to Tepic, the place where I was born, since christmass) It started a fire in my heart that I was slowly loosing. I would really love to go but since we will have talent land (XR Tales – Astronaut VR experience) and other work,  I see it really dificult to go.

I talk about this great sport and how much I love it with Ken at the end of the class, after it, I had inteligent systems class at 6:30 but since we finish Ken’s class earlier, in the way to my next room I usually past by the rugby field. My schedule usually don’t match and I usually never were shorts or sports clothes at tec. That day was different. I was in the right place, at the right moment with the right clothes (kind of) and decided to go full hardcore on it. Enough to tell that I finished with a big ass morete in my right leg from one tackle (and I was the one tackling), think I should practice again my tackles. Anyway, after the training you have no idea the joy I had for steping once again the field and fight (even on a training) side to side with my brothers.

RugbyMorete

Thats why I’m happy I’m making the time of going to the trainings mondays and thursdays, and some of the other days to the gim for health. I started getting fat again and don’t like that. I do like to take care of myself and feel handsome.

At work we finally got working a new plugin that let us do live sdi input from a professional cine camera to the UE4 engine and do chromakey compositing in real time which is something crazy. The quality we manage to get even on the first day of testing is unbelievable. With the set of tools we are currently developing and I (as the CTO of XR Tales) am really proud because we will be able to start merging the sillicon valley world (technology) with the Hollywood world and do a big BOOM in the Mexican and International industry.

I will keep you tune about my crazy life. It looks like I wrote a bunch but honestly I still have lot’s more to tell. Maybe with the realtime composition I will finally be able to produce my radio or tv show 😉 who knows right?

https://www.ohhelloana.blog/blogging-and-me

 

Late night hours – DevOps 1

Okay, this is not usual but exactly in the night of the few puentes we have in the year, chilling and looking videos here and there about how will the future of the 3d industry will change getting applied engineering such as machine learning, etc.

I found a really cool video which guided me to many different cool Papers, decided to go deep on to DensePose (http://densepose.org/ leave you the link if you get interested on it) and in one of them I found that the OS I needed to work with was Ubuntu (LINUX). And guess whose harddrive with windows was faulty again. YEP, mine again, (thrid one) and I had this ubuntu on a brand new solid disk and well, it felt like all the planets aligned.

Going on with the story, I saw I needed to install Anaconda for managing my enviroments on ubuntu, and started downloading and installing it, then I saw I needed caffe2 but at the same time, for caffe2 I needed CUDA, cuDNN and some more things. And at that time, it hit my mind. If i’m allready getting my enviroments prepared for personal projects, why don’t I finish all the late schoolwork I have left in the meantime I download the heavy frameworks and libraries, so here we go with devops.

RECOMENDED MUSIC FOR THIS POST! (I usually listen a kind of music when I have this crazy episodes, this time I recommend you this song to start with)

Okay so, what the Duck is Devops?

As far as my understanding let me know, DevOps can be divided in three segments. As a whole, engineers participating in a proccess from design, to development and production stage. A constant evolution of the best practices and metodologies for it. If you look for a standarized definition of it, you will come across many of them. So the best is to try to make your own concept.

Now, from this, you don’t just need to do those practices because someone told you to. It is really important to study them concepts (extracted from: https://theagileadmin.com/what-is-devops/):

  • Infrastructure Automation – create your systems, OS configs, and app deployments as code.
  • Continuous Delivery – build, test, deploy your apps in a fast and automated manner.
  • Site Reliability Engineering – operate your systems; monitoring and orchestration, sure, but also designing for operability in the first place.

I decided to investigate about what is the most common issue in many companies where developers are involve. It results that developers are always kind of in a hurry. They focus on innovation, being fast and guide through change. On the side of Operations, they are more focus on implementing, and optimizing this blocks of code for the apropiate code stability. Always having in mind the end user.

Where is the problem in this? At the time where the Devs are generating and generating more and more functions and code and they throw it to the Operators, but since the nature of their activities depends on integrating and analizing in a different level, they usually end up in getting mad with each other.

The solution? Is there one? Well, why do we need to keep both worlds separated? Why not improve the communication between them. How about integrating tools in their pipeline which allow automation and proccess optimization.

Why do this? If their goals are aligned, the speed is increased. The operators needs to undestand the Devs code. They need to receive a playbook of how to handle their code so it can keep running. They need to know how to search for errors and make the devs understand how does the service functions. On the other hand, the developers, they need for the ops to have everything they need so they can build the whole product.

The whole idea behind DevOps its about the company’s culture, about sharing tools and OPTIMIZING PROCCESS. I know I allready said that, but thats (in my humble opinion) the key about this.

When you start doing this, you will be able to start measuring your work progress. The time it takes for fixes to get deployed, how much time does a developer took to do certain things and those are the areas of opportunity. When everybody is in sync, great things can happen.

Resultado de imagen para apes communicating

Sidenote: It’s funny how even if I started this post before than the part 2 & 3, I finnished it later. Interesting ways the procastinating brain works.

DEEEV OOOPS -3rd parts where never good…

Okay, this is the 3rd part of DevOps series. In this chapter we will continue with the setup of the tools that will help us improve our development pipeline and habilities.

This weeks activity is focused on setup of GitHub and connecting it to our server.

  1. Ensure that you have a repository created for testing. I recommend some form of web content, but you can choose your content for the testing. You should put this in the root of your web server that you created in DevOps part 2, Linux Server Setup (Individual)
  2. Setup your GitHub two-factor authentication.
  3. Setup your SSH keys (Enlaces a un sitio externo.)Enlaces a un sitio externo. so that you are able to connect to GitHub repositories using ssh (Enlaces a un sitio externo.)Enlaces a un sitio externo..
  4. Ensure that you can do a git clone (use ssh) to your server from your repository. You should do this.
  5. Make changes to your repository (you can do this any method including via the GitHub site).
  6. Ensure that you can update your server copy with a simple «git pull origin master» at the command line from the directory where you have pulled your data.
  7. Does the webpage update if you reload that this code sits in?
  8. Automate those updates using what you learned about cron in DevOps part 2, Linux Server Setup (Individual). How often should you update? How do you ensure (and you should do this) that you do not end up with two copies of your update script running at the same time?

At this point I hope we all have a github (or other source control tool) account for our now 4 years of engineering. If not, well, you don’t need to be a genius to create it. Just remember to see a few tutorials on how to use git.

https://i.kym-cdn.com/photos/images/original/000/540/816/41d.png

For this activity testing, I will use one of my engineering classes repository (compilers lecture). I recommend you to use one you already have but if you are new to this, just create a new one with some readme file on it.

We need to set the 2factor authentication on our github account. It is as easy as going to github.com, then to settings, then to security and click to enable. You might need to choose an app to handle the authentication, or use your mobile by sms. I chose an app called authenticator.

For generating an SSH key you can follow the instructions in the next link: https://help.github.com/en/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent After you generate your SSH key, you will need to add it to your SSH-Agent. The how to? is in the same link.

What goes next is to add your key to github. For copying the key just use the next commands. You shouldn’t have problems y you followed the tutorial I gave you.

$ sudo apt-get install xclip
# Downloads and installs xclip. If you don't have `apt-get`, you might need to use another installer (like `yum`)

$ xclip -sel clip < ~/.ssh/id_rsa.pub
# Copies the contents of the id_rsa.pub file to your clipboard

Then on github, got to settings

Settings icon in the user bar

then to SSH and GPG keys and click to add key.

Authentication keys

Then click to NEW SSH key. And paste the key. Remember to put a reference of your current device on the title so you know from where you are allowing the SSH communication.

The key fieldThen click on add key, and you will need to input your github password. Then you are done. To make sure that you did it all right, you will need to clone a repo you have. Then make a change, anything you want, from github.com and then from your server (computer with the SSH key) use the command git pull origin master. A message like this will appear.

SSHsuccess

En ese caso, sabemos que nuestra comunicación segura por SSH ha sido exitosa. Lo unico que queda restante es programar en cron los intervalos para realizar la actualización local de nuestro repositorio.

For that, I will let you a tutorial of the basics, and if you need, a crontab generator.

https://crontab-generator.org/

In the process of doing these activities I have met and figure out different really cool ways of augmenting my productivity and automatize  task which is really amazing because I have never done this before. Yeah, now I feel ignorant, but hey, you gotta start somewhere right?

DevOps ++ (2/5)

Hello again, its been a weird long weekend and right now it seems like I’m getting sick again. But a different kind of sickness, probably a virus. I will keep you tuned about that.

Today’s music:

In this second part of the series of activities of DevOps we will start working with our enviroment and preparing the necesary tools for a software testing and quality focus. As I already told you in the first part, my current and only OS available is linux, guess it’s the perfect time for getting use to it and it’s tools. I will guide you to the steps I followed and the final status of this part.

BASE OS

Resultado de imagen para ubuntu

First of all, we need a linux machine, it can be the host OS or a virtual machine, as you wish. In my case I have installed  UBUNTU 18.04. You can download the 18.04 version on https://www.ubuntu.com/download/desktop and if you need a virtual machine I really recommend you to use virtual box. It has been my virtualization software since I was in highschool (7 years at least). And you can download it from: https://www.virtualbox.org/wiki/Downloads

LANGUAGE ENVIROMENT

Resultado de imagen para python

What its next, we need to add support to our coding language. In my case Python 3.6 which you can install with:

$ sudo apt install python3-minimal

Simple right? (for more info look at https://linuxconfig.org/how-to-install-python-in-ubuntu-18-04-bionic-beaver-linux)

GIT

Resultado de imagen para git

Well, after we have our language, we need to install git on our linux distribution. For that we only need to put the next command in the terminal:

As it it always recommended, we start with the OS and package updates.

$ sudo apt-get update

Next goes git

$ apt-get install git-core

And to verify that  it is correctly installed we look at the installed version with:

$ git --version

Which should output something like:

$ git version 3.6

(For more info. about git on linux go to: https://www.liquidweb.com/kb/install-git-ubuntu-16-04-lts/)

Web Deployment

I chose to use nodejs since its a js engine developed by Google, famous and powerful but I have never had the chance of working hardcore on it and think this is the perfect opportunity for it.

First lets start with nodejs. I looked for some tutorials but keep crushing into issues while trying the instalation command to I simply tried with:

$ sudo apt install nodejs

and then

sudo apt install npm

Guess what? It worked like a charm so I don’t see why you would have issues with this commands. You can always verify the installation with:

$ nodejs -v
$ npm -v

I already told you i’m not really familiar with this kind of tools so I decided to go on a noobs tutorial for the basics. I recommend you this tutorial where at the end, you end up with a server deployed on the port you defined. This will help us in the future.

CRON

And finally we will need to setup this tool called CRON. This helps us for automation purposes and the next part. It works by setting custom processes and activities scheduled for their execution in linux.

Again we need to to de updates and upgrade for our server by doing

$ sudo apt-get update
$ sudo apt-get upgrade

To know if we have the package installed we use the next command:

$ dpkg -l cron

If we don’t have it, we just use:

$ sudo apt-get install cron

And verify that the service is running with

$ systemctl status cron

In order to set new jobs for cron, you can look how in the next link:

https://www.rosehosting.com/blog/ubuntu-crontab/

A BUG’S LIFE (Not the Movie)

Bueno bueno, en esta ocasión escribiré sobre un paper que vimos en la clase llamado SECRET LIFE OF BUGS.

En resumen, había un grupo de personas que les interesaba indagar sobre los bugs, como se generaban, como se almacenaban, como se enterraban y morían o si se les daba seguimiento. También, cual era el procedimiento que llevaban los ingenieros para buscar referencias que los ayudaran a solucionar problemas que posiblemente alguien más ya se habia enfrentado.

Para esto fueron a las oficinas de MICROSOFT y pidieron acceso a un bonche de registros de BUGS con la idea de rastrearlos en su proceso de vida así como a las personas involucradas para saber a donde llegaba el análisis con respecto a las mejores practicas a las  hora de buscar recursos de referencia a la hora de corregirlos y evitarlos. Muchas ramas de esta busqueda terminaron en rutas sin sentido y se generó una gran nube de puntos dispersos que se llegaron a involucrar el los diversos bugs de cierto proyecto. FIN.

Imagen relacionada

Bueno, sinceramente no se me hizo de mucho intereses ese paper. En particular algo rebuscado y con mucho relleno para mi gusto. Sin embargo lo que puedo sacar de él es: no tiene caso tratar de generar todo un pipeline o investigación robusta para solucionar problemas. Si bien la documentación de estos problemas, así como la asistencia de foros (donde generalmente se tratan los topics de ciertas tecnologías o herramientas) son aliados muy fuertes junto con la misma experiencia de la persona como con las personas que colaboran. Lo que me ha servido a mi en mi área laboral fuertemente es la investigación.

Imagen relacionada

En lo que mi experiencia trabajando me ha dictado, ademas de mis ya 3 años como estudiante técnico en programación, y 4 años en la carrera de Ingeniería en Sistemas es, el auto aprendizaje e investigación inteligente te va entrenando sobre donde y como buscar. Siempre habrán expertos en la industria y grupos (como hacker garage por ejemplo) que organizan reuniones semanales para discutir ciertas tecnologías y es una oportunidad muy grande de escuchar y aprender de personas que llevan posiblemente décadas de experiencia ante ti. Ahí es donde uno aprovecha a pedir consejos o en casos más específicos, asesorías.

Internet es una herramienta muy poderosa, en el muy rara vez no he podido encontrar apoyo en alguna etapa que he estado atorado o a solucionar bugs. Al menos una buena alternativa encontraras. Pero lo más importante, paciencia y perseverancia. Tienes estas dos, tarde que temprano seras más y más capas, más sabio. Tendrás maneras más inteligentes de hacer las cosas y cada día que te sientes en la computadora, si, habran bugs, pero tambien habrá sabiduria.

Si les interesa hechar un ojo al paper del que hablo les dejo la liga siguiente. Si necesitan algun consejo relacionado al tema no duden contactarme en redes sociales.

Haz clic para acceder a aranda-secretLifeofBugs.pdf

 

Aprovecho este blog para promocionar nuestra primer experiencia VR-OnLocation al publico por parte de XR Tales, una compañía de tecnologías de alto impacto aplicadas a la industria del entretenimiento.

Estaremos presentando en el Festival Internacional del Cine y se pueden registrar para vivir esta experiencia ÚNICA en la siguiente liga.

https://m.facebook.com/story.php?story_fbid=961505554051678&id=865486070320294

xrtales.PNG

Adler Alonso Zamora Ruiz

¿Las risas no faltaron? TC|R

En esta ocasión me di la oportunidad de escuchar el podcast 2 veces. La primer ocasión por mi cuenta de manera corrida, y la segunda ocasión acompañado haciendo pausas y (puesto que la persona con la que lo escuche es ajena a la carrera) compartiendo perspectivas y aplicaciones de algunos de los comentarios que se realizaron en la entrevista.

Al día siguiente, horas tarde en la oficina mientras avanzaba con algunos pendientes que tenia, aproveche y vi en Youtube  un vídeo sobre el creador de Dead Space que nos platicaba sobre los retos a los que se enfrento él y su equipo a la hora de realizar el juego y me di cuenta que muchos de estos problemas se resolvían por puntos híbridos tocados en el podcast.

Desde la manera de planear el problema, tenia una idea completa de cierta escena del juego y al querer resolverlo todo de un mismo jalón, las cosas simplemente no embonaban, eran como piezas de ajedrez de diferentes sets y tomó la decisión de empezar de cero (esta metodología) y desglosar las cosas por capas. Entonces (aunque me consta no igual) iban atacando punto por punto. Hacían que cierto task funcionara, seguían a partir de ahí. No seria algo, vamos para atrás pero en el pequeño ultimo punto que funcionó y así sucesivamente hasta que lograron terminar la gran escena de una lombriz zombie alienigena gigante que agarra a nuestro personaje.

Retroalimentando un poco mi idea de como muchas practicas y metodologías aplicadas al software tienen su pariente de aplicación en otras áreas de la industria platique el viernes con nuestro profesor Ken Bauer y me comenta como a el le pasaba que a pesar de ser un tema que hablaba y sugería desde hace 20 años, constantemente se encontraba con personas que recomendaban un libro donde hablaba de esta metodología. Un poco cuando en la primaria decías un chiste y nadie te escuchaba, y el compañero de al lado que si te contestó lo repite y todos se ríen. Duele pero al menos, las risas no faltaron ¿no?

Image result for las risas no faltaron monster inc

Ahora volviendo al tema, TC | R. ¿Funciona? en resumen, puedo decir que he adoptado esta metodología involuntariamente acostumbrando a trabajar modular-mente por features individuales. Sin embargo por el tipo de trabajo que realizo, no me es posible hacer commits | reverts. Lo más cercano que puedo hacer es tener mi control de versiones diaria con documentación de todos los cambios que se han ido involucrando, desgraciadamente si llegase a ocurrir algo que corrompa mi proyecto, a menos que haya hecho un zipup del proyecto recientemente por (misma precaución) algún cambio mayor, tendria que regresar a hacer los cambios hechos el mismo día. Y créanme, me ha pasado más de alguna vez, lo cual me ha obligado a constantemente mejorar mi metodología y saber cuando hacer copias extra. Mi mismo dolor y experiencia les aconseja !HÁGANLO!, más vale prevenir. Y es cierto, así se comentaba en el podcast, hay ciertas situaciones donde esta metodología no funciona tan bien como en un proyecto individual compatible con git. Hay proyectos donde se involucran equipos de personas muy grandes donde para cada cambio hay un protocolo de revisión y aprobación y si se espera a que cada uno de estos commits pase por eso, puede prolongar el tiempo de desarrollo mucho mayor. Será cuestión simplemente de ver que tan compatible es con el proyecto de cada uno pero sin duda es una metodología que vale la pena revisar. Por la parte de testing que tienes también te ayuda a saber que parte del nuevo pequeño cambio fue lo que arruino que cosas.

Por lo pronto es todo, y a las personas que no tengan acceso a ese podcast les adjunto el link.

itunes podcast

Y recuerden, si mis test pasaron, !COMMIT!

por Adler Alonso Zamora Ruiz alias Tepic Guy

Hello World! 2.0

A partir de este día retomaré mis publicaciones que involucraran toda clase de cosas que pasan en el día de Tepic Guy. Desde trabajo y escuela, amigos y trafico, noticias, opiniones y algunas publicaciones académicas. En esta ocasión simplemente me dedico a un breve párrafo porque el día de hoy a sido largo, les explicare un poco más la próxima ocasión.

Por lo pronto, !Cambio y Fuera!

Adler Zamora 18/Enero/2019

The edgy: Its not a goodbye, its a see you later

 

Well, this time its time to say Thank you. In our lives, we can regret plenty of different things. But I am sure  one of the biggest regrets you, me and I will have, are also the most difficult ones. Not saying things on time.

no ragrets.gif

Always be sure to say what you feel. Either you are happy, sad, angry, even hungry. Shout it. Never shut it up. This is really a small post but what I am feeling, what I want to say is:

THANK YOU KEN. THANK YOU FOR BEING THIS AWESOME TEACHER THAT GETS OUT THE ROUTINE TO TRY TO TEACH US SOMETHING BIGGER THAN A SIMPLE SCHOOL SUBJECT. YOU TRIED TO TEACH US A LIFE LESSON (AS IS SELF-LEARNING AND RESPONSIBILITY TO SAY AN EXAMPLE).

I CAN SAY FROM EVERYONE THAT WE ALL HAD GROWN ON A WAY. SOME PEOPLE MORE THAN OTHERS BUT AT THE END IS LEARNING AND GROWING WHICH IS THE IMPORTANT THING IN LIFE.

ALWAYS KEEP MOVING, ALWAYS KEEP LIVING, EXPLORING, LEARNING. HAVE THAT CHILD SOUL AND REMEMBER, IF THINGS ARE NOT SO GOOD; NO WORRIES. SOON EVERYTHING IS GOING TO BE ALL RIGHT.

YOU HAVE A FRIEND IN ME 😉

 

 

 

Feel romantic? You should listen to this 😉

Software verification and validation

If of testing we are talking, the verification and validations are our next targets.

The terms ‘Verification‘ and ‘Validation‘ are frequently used in the software testing world but the meaning of these terms are mostly vague and debatable. You will encounter (or have encountered) all kinds of usage and interpretations of those terms, and it is our humble attempt here to distinguish between them as clearly as possible.

First of all.

Software Verification

The process of evaluating work-products (not the actual final product) of a development phase to determine whether they meet the specified requirements for that phase. Its objective is to ensure that the product is being built according to the requirements and design specifications. In other words, to ensure that work products meet their specified requirements.

We constantly should be asking to our self: Are we building the product right? How are we going to do this? Simple, by:

  • Reviews
  • Walkthroughs
  • Inspections

And evaluating plans, requirement specs, design specs, code and test Cases

Software Validation

The process of evaluating software during or at the end of the development process to determine whether it satisfies specified business requirements. Its objective is to ensure that the product actually meets the user’s needs, and that the specifications were correct in the first place. In other words, to demonstrate that the product fulfills its intended use when placed in its intended environment.

This time we need to ask: Are we building the right product? Our evaluation item is the product (software) and the way of doing it is by testing, testing testing testing.

————————————————————————

This blog is the most relevant information extracted from the bottom source. Day by day I will try to be eliminating the source words and add my own content but for practice purposes (for now) will be as that.

For instance this is the way I will be working, using the original blogs as layouts for my post development. Thanks for the comprehension and all credits to the original authors.

Source: http://softwaretestingfundamentals.com/verification-vs-validation/

 

Beautify Me ;)

So now, lets talk about one important aspect when building software. We gotta have always in mind that helping the regular user have this intuitive way of using the app-software will lead us to a more successful development.

Here is where the User Interface Design comes to matter.

User Interface (UI) Design focuses on anticipating what users might need to do and ensuring that the interface has elements that are easy to access, understand, and use to facilitate those actions. UI brings together concepts from interaction design, visual design, and information architecture.

Users have become familiar with interface elements acting in a certain way, so try to be consistent and predictable in your choices and their layout. Doing so will help with task completion, efficiency, and satisfaction.

  • Input Controls: buttons, textfields, checkboxes, radio buttons, dropdown lists, list boxes, toggles, date field
  • Navigational Components: breadcrumb, slider, search field, pagination, slider, tags, icons
  • Informational Components: tooltips, icons, progress bar, notifications, message boxes, modal windows
  • Containers: accordion

user Interface.jpg

Everything stems from knowing your users, including understanding their goals, skills, preferences, and tendencies.  Once you know about your user, make sure to consider the following when designing your interface:

  • Keep the interface simple. The best interfaces are almost invisible to the user. They avoid unnecessary elements and are clear in the language they use on labels and in messaging.
  • Create consistency and use common UI elements. By using common elements in your UI, users feel more comfortable and are able to get things done more quickly.  It is also important to create patterns in language, layout and design throughout the site to help facilitate efficiency. Once a user learns how to do something, they should be able to transfer that skill to other parts of the site.
  • Be purposeful in page layout.  Consider the spatial relationships between items on the page and structure the page based on importance. Careful placement of items can help draw attention to the most important pieces of information and can aid scanning and readability.
  • Strategically use color and texture. You can direct attention toward or redirect attention away from items using color, light, contrast, and texture to your advantage.
  • Use typography to create hierarchy and clarity. Carefully consider how you use typeface. Different sizes, fonts, and arrangement of the text to help increase scanability, legibility and readability.
  • Make sure that the system communicates what’s happening.  Always inform your users of location, actions, changes in state, or errors. The use of various UI elements to communicate status and, if necessary, next steps can reduce frustration for your user.
  • Think about the defaults. By carefully thinking about and anticipating the goals people bring to your site, you can create defaults that reduce the burden on the user.  This becomes particularly important when it comes to form design where you might have an opportunity to have some fields pre-chosen or filled out.

This blog is the most relevant information extracted from the bottom source. Day by day I will try to be eliminating the source words and add my own content but for practice purposes (for now) will be as that.

For instance this is the way I will be working, using the original blogs as layouts for my post develoment. Thanks for the comprehension and all credits to the original authors.

Source: https://www.usability.gov/what-and-why/user-interface-design.html