sábado, 16 de novembro de 2013

[PT] Curso de C++

Irá decorrer em breve, em horário pós-laboral (19h - 23h) um curso GRATUITO de C++, num total 50h, sendo este o primeiro de um conjunto de módulos.

Serão leccionadas 6 horas por semana (duas aulas de 3 horas, Segundas e Quartas ou Terças e Quintas, a determinar de acordo com o mais conveniente para disponibilidade de todos os inscritos).

O curso só decorrerá se houver um mínimo de 12 inscritos e tem um limite de inscrições ainda a determinar.

Nas inscrições a módulos subsequentes da mesma série, será dada prioridade a quem tenha frequentado os módulos anteriores.

O curso irá ser leccionado nas instalações do CINEL Porto, Centro de Formação Profissional da Indústria Electrónica, Energia, Telecomunicações e Tecnologias da Informação. Tais instalações são na seguinte morada:

Rua de São Rosendo, 377
4300-478 Porto

Quem estiver interessado deverá enviar E-Mail o mais rapidamente possível para o endereço mail [at] ondatechnology.org a indicar o seu interesse e, oportunamente, receberá informações adicionais bem como uma ficha que deverá preencher com os dados necessários à inscrição.

Em alternativa poderá manifestar o seu interesse pela página de Facebook do Instituto em http://www.facebook.com/OndaTechnology.

Mesmo que ainda não tenha a certeza de poder participar, manifeste o seu interesse tão cedo quanto possível. Só assim será possível organizar devidamente o curso e as vagas.

quarta-feira, 17 de abril de 2013

Requirements for being a good programmer

  1. Understand, don't memorize.
    A good programmer doesn't try to memorize everything. He, or she, actually learns the logic behind the paradigms and frameworks instead of memorizing them and becomes proficient in consulting references whenever necessary. Memorizing will prevent you from correctly understand the tool and will void the next item.
  2. Generalize.
    Understand everything as if there was a Grand Unifying Theory. In the end, everything is the same with slightly, or highly, different presentations. The basic principles are the same, so learn to expand them and to create generalizations. Training your brain to do so, will greatly enhance your learning ability and your versatility.
  3. Never assume strict usage.
    Never assume that something is universaly and strictly as presented. Everything you encounter may be used in different ways than you might expect or realize at first sight. The same way Dr. House prescribed Viagra for an octagenarian LADY to treat her blood flow problems, many tools can be used to fix things they were not planned to.
  4. Do not assume the infinity of computing resources.
    Higher level programmers and teachers of those frameworks usually have the distressing policy of assuming that the computing resources are infinite and that their applications are the only ones running on a given system. Always assume a worst case scenario for your performance and plan your optimization in advance, even if you don't implement it from the start. Concede to that assumption ONLY when you need to debug something and NEVER on a production system or on a released product.
  5. Understand what's underneath.
    Understanding how the platform and frameworks you are using do what you ask them to do, will help you understand how to better make use of them, providing you with enhanced performance and stability.
  6. Computers don't make mistakes.
    A computer never makes a mistake. A computer is a matematically perfect machine that follows instructions precisely and to the letter. Mistakes outputted by a computer are nothing more than the result of an incorrect instruction given to it, coming from a) you, b) the hardware developers, c) the developers of the platform and frameworks you are using or d) the user of the application you are developing. If you want your computer to give you the correct results, give it the correct instructions.

segunda-feira, 25 de fevereiro de 2013

How to save a file

Step one, you say you need to talk,
It beeps, you say clock down it's just a talk.

It scrolls politely back at you,
You stare politely right on through.

Some sort of window on the screen,
As you drag left and it slips right

Between the lines of coding shame,
You begin to wonder why you came

Where did I go wrong,
I lost a drive,
Somewhere along those forced powerdowns
And I wouldn't have stayed up with this all night,
Had I known how to save my files...

Let it know that you're the root
Coz the shutdown you can press

Try to slip past the scandisk,
Without losing consistency

Lay down a list of broken deps
Apps you removed while alone

And play the logs to audit
And play the logs to audit

Where did I go wrong,
I lost a drive,
Somewhere along those forced shutdowns
And I wouldn't have stayed up with this all night,
Had I known how to save my files...

As it begins to overheat,
You grab some ice and give it one last try

Try until the system boots,
Or from scratch reinstall it

It will do one of two things
It will reboot and fix everything
Or it will just say it's just not as safe
And you'll begin to wonder why not a game

Where did I go wrong,
I lost a drive,
Somewhere along those forced shutdowns
And I wouldn't have stayed up with this all night,
Had I known how to save my files...

quinta-feira, 21 de fevereiro de 2013

AMD Catalyst / FGLRX on legacy graphics cards (Linux)

So, I had my share of trouble trying to revive an old workstation. The culprit? The graphics adapter, an AMD Radeon HD2600. AMD considers those legacy, as well as anything up to the HD4XXXX. The last supported version of Xorg for the latest release of drivers that support these cards is Xorg 1.12. Also, there was a problem with supporting kernel 3.7.x. Having fixed the problem, I thought it would be nice to put together a simple how to and share it with all of you. Check it out, at the Onda Technology Wiki: