On blogging

After reading about Ana’s stories and what her stand is on blogging, there are some thing i feel identified with like the idea that if you post something on the internet it is immediately subject to be judged and corrected by others looked at by a magnifying glass.

Blogging specifically is a good place to be able to explore and discuss ideas to a longer extent than what other social media outlets have as a norm. Twitter with its character limitations, reddit and the fact that long posts almost get overlooked as they are more interaction focused less expose.

While i agree that blogging has it good attributes and is good to explore a topic and show what it is how it works and what you think about it. I personally feel that unless you have mastery of a topic trying to explain how it works is not the best option. As there are a lot more people which they work might be to explain those things or work specifically on that area and have a better understanding they can share rather than someone that has to juggle a 100 different topics in 6 months.

The one thing i do like about blogging is the ones that revolve about discussion not about explanation. It is very different to explain something where you end up just listing off commands or code snippets than to learn about a topic so you can voice how it feels for you and maybe dig deeper into it. It also becomes easier to not feel as if you are about to be judged the moment you click publish if its a subject where the objectivity of what is right becomes blurry or even subjective smart citizens blog posts, for example, follow this idea as they open discussion about topics.

Week 9 unit Testing in Python

Python is an esay to use, ready out of the box programming language that makes a lot of things one might want to do trivial or just need to implement it for that specific case. When developing in Python one can use a tdd approach as in most other programming languages. Python comes out of the box with assertions that let us verify if a result is what is expected, this is an easy way to approach tdd development.

With the use of python tools such as PyCharm (IDE) and pytest (package) unit testing can be augmented to be able to do a lot more. A pytest tutorial can be found at inLearning. This tutorial teaches how to use pytest in different manners. With it this exercise was created which makes use of pytest features to test the testcases.

captura-de-pantalla-43.png

Overall the course was pretty easy to follow and very thorough while keeping it to the point.

captura-de-pantalla-38.png

Almost all programming languages have some implementation to allow unit testing some more intuitive than others. The ones that dont have them out of the box or in a intuitive ways are pushed by users of the language, like this post by Kent Beck which goes on about unit testing in small Talk.

captura-de-pantalla-40.png

From the last picture you might notice this page was accessed by the use of wayback machine. A site that stores previous versions of websites in a day and time for it to be stored and be viewed for the amusement of others, and to reinforce the fact that nothing can be truly removed from the internet once it has been put into it. Like this version of IBM’s webpage from 1996.

Captura de pantalla (41)

The art of DevOps

With the current trend of software development known as agile the demand for software to be always up to date and frequent is more necessary than ever. Its is seen in almost all areas of software where the only way to retain a good user base is to be able to respond to their feedback and act upon it and deliver new content as well as corrections.

While developing the code itself in agile might not be an extremely ardous process, what comes after is, or was. DevOps model is a conglomerate of practices, tools, and philosophies which objective is to accelerate the rate at which you can deliver applications or updates to them. The whole idea behind it is to merge the way the operations team and the development team work.

This is done by blurring the lines between each team in order to provide automation to the validation and verification of the generated code. By doing this the speed at which code can be revisioned and approved is accelerated by a big margin. Allowing for companies to have a faster response rate while ensuring the quality of the releases.

The main benefits of Devops practices are:

  • Speed of development
  • rapid delivery of updates
  • reliability and quality
  • improved collaboration
  • security

The most common practices when implementing DevOps model are:

  • Continuous Integration
  • Continuous Delivery
  • Microservices
  • Infrastructure as Code
  • Monitoring and Logging

TCR methodology

TCR methodology makes it easier to follow a development process for it forces you more to figure out a way to have always a functioning state. So while you might be missing some aspect of the code that you’re still not developing, taking that feature itself layer by layer, step by step, and, because when you fail the test, your code should be reverted it forces you to make smaller commits.

A problem with small commits is that when you go look at your history of changes up to your latest commit you have to scroll through 20 of them for the latest thing that you did so it’s more convenient for small teams than bigger where it can become annoying to revise all of them, but the good thing I see about it is that if it makes you have to solve and figure out so a way you can make the least amount of changes while still getting closer to your goal.

In a way it helps optimize your code and you make sure let you never go too much ahead or that you get used to the idea of “if I do too many changes without testing I’m going to lose them, if I have a simple syntax error so is it worth it to try and do everything right the first time”.