November
2013
10

The results of online learning

Julius Yego

To continue talking about education, online learning and new technologies after the post about Isaac Asimov and education, I believe I could not find a better example than Julius Yego.

 

Julius Yego is a Kenyan javelin thrower. However this is not what makes him someone special. But what does makes him special is that he is a self taught javelin thrower from a poor country (HDI index of 0.519, position 145 out of 186) with absolutely no support for javelin throwing.

 

He started from nothing, no coach, no money to pay for his training, no special equipment and that did not stop him. He never gave up and recently was classified this august as 4th on the world championships in Moscow 2013. On 2012, he made history as the first African Javelin thrower to qualify for the Olympics finale in London. This is the result of his determination and online learning.

 

His method was simple: passion and technology. He is his own coach; well he and the videos available on Youtube. He circumvented the lack of proper coaches by spending hours at cyber cafes in Nairobi to improve his technique by watching and learning from his idols.

 

Here is a video of himself explaining his story. Short video (around 2 minutes).

 

 

I truly believe he earned his nickname as Mister YouTube Man.

 

This is a great example of the possibilities people can achieve by online learning nowadays. And this example is from a poor country with limited resources.… Read the rest of “The results of online learning”

October
2013
19

Isaac Asimov and Education

Isaac Asimov

I think one of the greatest minds of the last century was Isaac Asimov. He wrote more than 500 books in various genres and is considered one of the biggest science fiction writers in history. I am a big fan of his most famous work, the Foundation Series. Enough presentations for a man that needs no introductions. If you want to learn more about him, you can always start by reading his entry in Wikipedia.

 

This time I am sharing an interview of Isaac Asimov on Bill Moyers World of Ideas. One of the most interesting parts of the interview is when he speaks about education, or to be precise about his vision of the future of education. You should keep in mind that it was 1988, so no internet, no Wikipedia, no Khan Academy and no Coursera.

Here is a fragment of the interview (In English with Spanish subtitles for those who are more comfortable in that language).

 

 

If you want to see the whole interview, you can access it clicking by here on the link to Isaac Asimov on Bill Moyers World of Ideas.

 

He explains that before in old days people who wanted an education and were privileged enough needed to hire a personal tutor. We had a one-to-one relationship for the few people who were able to pay for a tutor. Then we reached a point where there was one teacher for a great number of students, organized through a curricula or syllabus to teach from.… Read the rest of “Isaac Asimov and Education”

September
2013
25

Use Version Control for software development

Git version control

Allow me to explain shortly version control first.

 

Version control or revision control consists in the management of changes of a software project. Every change made to the code and uploaded to the version control system is tracked along with who made the change and comments explaining why they made the change.

 

There usually is a central repository where the code is stored along with all the history of those files. People connect to that repository, get the files, work on their own programming environment and then submit the changes back to the central repository. That way people always know which is the most “up to date” version, instead of having to ask everybody.

 

The “standard” way of working with a version control system is:

  1. Check out the project from the central repository
  2. Make Modifications to your code
  3. Submit the changes back to the central repository

 

You also have “branches“, which are a copy of the repository  in order that you can have modifications that can happen in parallel along both branches. They are very useful for new features, testing or fixes. After you verify that the branch is working correctly than you can merge the changes to the main

 

version control branches
version control branches

 

For instance, imagine you have an Instagram like website and you would like to add a new feature consisting in new types of images where the user uploads a picture and a message and it appears written over the image.… Read the rest of “Use Version Control for software development”

September
2013
22

Development, Test and Production environments

different-environments

When you are developing something with a little more complexity than a hello world software (which should be all the time) it is REALLY important to have at least three different environments: Development, Test / Staging  and Production. This is even more important in web development as it is “fairly” easy to do in small / medium projects.

 

The Development environment is where developers live and breathe, where they make all the changes, mistakes and fixes that you need. It’s like a small lab where nobody judges you, where it does not matter if you break the CSS or your whole webpage as nobody is going to notice. Once you achieve something, like developing a new item of a list, fix a bug, or a new functionality, you should stop and move your functionality to the Testing environment.

 

The Testing / Staging environment is a little different. Actually, there is a slight difference between testing and staging environments, but to distinguish them is not the point here. You need something that acts as a copy of your corporate site, a copy of the live version. It should be EXACTLY the same, because you are going to test in this environment your new developments, you want to know how it will work and IF it will work live before going live. Only once you have verified that everything works, that your new functionality has not broken anything, you can migrate the changes to the production environment.… Read the rest of “Development, Test and Production environments”