Back to Germany

I started my internship in Braunschweig… 10 years after Munich, I face different problems. Munich is a big city… Braunschweig has 250 thousand inhabitants. The structure is very good, but unlike Munich, you can’t do everything with just English :-(
10 years older, learning German isn’t as fun anymore. The lack of new things makes everything turn into routine really fast. At least it’s raining less than in Mons :-D

Read more

Genesis of Computing

As I’m almost forced to program in Java again, here’s the joke:

At the beginning, there were no computers, only machines.

The machines existed, but the logic was limited.

Man harnessed electricity and transformed it into digital signals capable of transporting information.

Everything was null, just 0 bits.

Then came the 1 bits.

Logic emerged.

But the 0 and 1 bits were alone, and the byte was created to group them together.

Read more

The Era of Javascript

My first contacts with Javascript date back to a distant era, when Netscape was the most popular browser on the Internet! I used a Sun server and studied a product called Netscape One, which came with a server-side scripting technology called LiveScript. It was also available in the browser, but it didn’t do much back then. The hot technologies were CGI and SSI. I was also interested in the novelty of the moment, PHP 3! If my memory doesn’t fail me, I’m talking about the period from 95 to 98.

Read more

Khan on TED

I’m still impressed by Khan Academy. Fantastic tool for those who need to review and learn math, physics, etc., concepts. Now he tackles problems of leveling between students with different learning rhythms. When will we have this type of initiative in Portuguese? Videos and not mini soap operas! The potential of video lessons, with playback controlled by students is interesting, even in areas without Internet or infrastructure for live video classes.

Read more

Program or Be Programmed

I saw this video last year, but since it didn’t have Portuguese subtitles… I didn’t post it here.
However, even without subtitles, these ideas couldn’t be left without a brief comment.
Watch the video:

Douglas Rushkoff presents the importance of programming knowledge in modern times.
Not that he advocates for a world of programmers or addresses a specific programming language X or Y.
What’s fantastic about the video is the relationship between the invention of writing, programming, and modern media.
From the early sharing of knowledge through writing, books, and then with the modern printing press, he compares citizen access to each of these forms of transmitting knowledge. How that knowledge was controlled and distributed among common people and how society always lagged behind in new technologies for producing and distributing this same knowledge.

Read more

Book on Introduction to Programming with Python is Now Available for Sale

There’s nothing like a cold and snowy night to get the blog up-to-date!
My programming book was published by Editora Novatec and is now available for sale.
I created a page about the book, with links to bookstores and contact emails:

https://python.nilo.pro.br

The book was written in such a way as to introduce new concepts gradually, with examples and exercises. When I started teaching, I taught Basic and Pascal. With Basic, there was the problem of line numbers. With Pascal, semicolons… it was too much to write before starting to program. In these cases, using a clear and simple pseudo-code, free from excessive symbols was interesting.
I avoided using pseudo-code or flowcharts, as I believe that when learning to program, it’s best to get straight to the point. With the Python language, everything becomes much simpler. Writing in pseudo-code can even be more complicated than writing in Python!
The reader/student needs to see something happening to continue studying. The important thing is to know how to read the program and understand what will happen when the program is executed. I really believe that the student should know if the program is correct before executing it. Execution is only a confirmation. A section on tracking was included in the book, to preserve this important step in learning programming.

Read more

How Not to Develop Software

I’ve never seen two programmers develop the same program in the same way. Saying what’s right in software development is very difficult, it all depends on the currents of thought you follow.

Object-oriented programming, script fanatics, functional programming? There’s room for everyone and no one escapes various symptoms described here.

Some things are so bad that even in a “hot” topic like software development, there can be a consensus. I’m going to report some of the worst practices I’ve seen because I believe they’re quite common, especially with new technologies, the Internet, and open-source code. The larger the development team, the more frequent these small problems become. This post aims to report some experiences with scientific rigor similar to a bar conversation. All statements are relative and depend on the reader’s mood. Everything should be taken with several pinches of salt and humor. I warned you!

Read more

Reading PDF Books

A problem I’ve always had with PDF books is marking the point where I left off reading to continue later. Over the past few years, PDF books have become popular and I primarily consume books from Pragmatic Programmers in this format. A simple 5- or 10-page PDF document can be read in a matter of minutes, but a 500- or 600-page book cannot be consumed at once. It’s in these cases that an adapted reader is necessary.

Read more

Configuring BIND to Use the Google Public DNS Server

Google recently launched the Google Public DNS, aimed at increasing the speed of Internet name resolution.

DNS (Domain Name System) resolution is responsible for converting a website’s name into an IP address (www.google.com -> 64.233.163.163). This service is used whenever your computer needs an Internet address. Every time a new name is converted into an IP address, the result of this conversion is stored in a quick access table on your computer to speed up future accesses, or simply put, a cache.

Read more