Python 3.13

Yesterday, Python 3.13 was released, one of the most anticipated versions of the interpreter. The main attraction for me has always been the possibility of running code in Python without GIL (Global Interpreter Lock). The GIL has haunted Python for a long time and has always been a topic of many discussions.

For a long time, there have been attempts to remove the GIL from the interpreter. But what does it block? When we run code with multiple threads in Python, the GIL ensures that common structures in the interpreter are protected between these threads, i.e., against concurrency problems. Several attempts were made, but all left Python slower or only worked for specific cases. A rant by Guido - It isn’t Easy to Remove GIL (https://www.artima.com/weblogs/viewpost.jsp?thread=214235) in response to this post Data Services and Integration, An open letter to Guido van Rossum: Mr Rossum, tear down that GIL! (http://web.archive.org/web/20080907123430/http://blog.snaplogic.org/?p=94). Nothing better than PEP-703 (https://peps.python.org/pep-0703/) to understand how these conversations ended. In reality, they didn’t end, the GIL can be enabled or disabled and each user can choose which version of the interpreter they want to use. Not all is well, as many libraries still need more time to support this option and even stabilize their codes.

Read more

Different IT Careers

As a professional in IT, you have several career options as an employee, freelancer, consultant or entrepreneur (business owner) among others. We will see the advantages and disadvantages of each option and then discuss how to combine them to test various paths before making such an important decision, like which career to follow.

Read more

Interest and Logic

One of the logic problems in programming that most break the head of those who are starting are the problems with percentage calculation or interest.

It starts like this: Calculate 10% increase on a salary of $2,500.00

Depending on the student’s math background, percentage is learned in 4th/5th grade… some concepts need to be remembered. As the name says, 10% means that for every 100 of the value, you should subtract 10. The calculation is quite simple and can be done with a multiplication. For example: 10/100 * 2500, which results in 250. So far so good, but some students ask why sometimes we do 0.1 * 2500. Well, it’s just the way of representation that changes, because 10/100 is equivalent to 0.1, alias 100/1000 also and so on. But this is the easy part and after getting the notation right, things start working again.

Read more