C Resolve Tudo Clos

May 17, 2019 6 min.

Continuando nossa série, conforme sugerido pelo @colemaker do grupo C/C++/42/Império do Brasil, a próxima ideia a ser implementada em C é o sistema polimórfico de chamadas do Lisp orientado a objetos. Esse sistema permite realizar a seguinte manobra: O aspecto-chave aqui, conforme eu descobri, é implementar a estratégia de prioridades entre as sobrecargas dos métodos de acordo com os tipos passados. Analisando bem por cima devemos sempre priorizar os métodos com os tipos mais específicos e ir realizando underpromotion até chegarmos no menos específico (se houver).

C Resolve Tudo: Orientação a Objetos (com Polimorfismo)

May 17, 2019 6 min.

Como programadores há um vício em nossas cabeças que é estar constantemente buscando a bala de prata, ou seja, a solução final e única para todos os nossos problemas de implementação. Com o tempo e alguma experiência descobrimos que tal coisa não existe, mas até lá nos encantamos com esse ou aquele framework, e claro, com essa ou aquela linguagem. As linguagens que são criadas depois da revolução dos computadores pessoais querem facilitar a vida do programador médio embutindo soluções já testadas por programadores de verdade e evitando a todo custo que o código incorra em erros comuns.

Coroutines Em C: Picoro

May 8, 2019 3 min.

Tantas linguagens hoje em dia tentando implementar a abstração de corrotinas e inserindo mais camadas de abstração (fibras e cereais)… há duas implementações já no Boost, ambas dependendo de uma biblioteca de contexto de stack que é dependente de arquitetura (programada em Assembly). E aqui está a linguagem C com sua elegância, minimalismo e a filosofia “just works”, por mais ou menos 50 anos. Estava pesquisando sobre bibliotecas de corrotinas em C e encontrei a Picoro, de Tony Finch.

Visual Studio Unit Test (C++)

May 6, 2019 3 min.

Desde o Visual Studio 2015 há suporte a unit tests em C++ automatizado na IDE. Porém, a partir do VS 2017 15.5 o suporte aumentou drasticamente, vindo embutidos os suportes para as bibliotecas de teste Google Test, Boost.Test e CTest. Além, é claro, do Microsoft Unit Testing Framework for C++, o caseiro da M$. Além disso, é possível você mesmo integrar o Visual Studio com outra lib de testes. Mas para que gastar tempo?

Const Int Pointer Var

Apr 29, 2019 2 min.

A melhor forma de declarar variáveis ponteiros (constante ou não, mas segue o exemplo) é const int * var. Explicação: Quem diz o asterisco fazer parte do tipo e não da variável tem razão. Pensando dessa forma ele tem que ficar próximo do tipo. const int* var Porém, outra forma de interpretar a variável é que ela equivale a um inteiro quando usado com asterisco, o que também é verdade. Ou seja, int *var significa que *var equivale a um int (constante ou não, mas preciso dessa variável não-const para o exemplo).

OpenSSH no Windows

Apr 29, 2019 3 min.

O Secure Shell (SSH) é um protocolo de sucesso nos unixes da vida para terminal remoto e seguro por décadas, mas no Windows nunca houve uma forma simples e protegida de abrir um terminal ou copiar arquivos. A opção é instalar um cygwin com esse componente ou tentar compilar um protocolo SSL e em cima dele o SSH. Porém, há detalhes na autenticação que estão relacionadas com o Sistema Operacional e que precisa ser feito.

14o. Encontro CCPP42BR

Apr 19, 2019 1 min.

Foi definido recentemente no nosso grupo de Telegram que nosso próximo encontro será realizado na cidade de São Paulo no dia 6 de julho de 2019. Como nossa última tentativa falhou miseravelmente por falta de inscrições suficientes estaremos iniciando a organização primeiro pelas incrições, e, havendo quórum, será feita alocação de sala(s) e coffee-break. Em paralelo iniciaremos o call for papers, onde você é convidado a palestrar em nosso encontro.

Code Jam 2019 Qualification Round

Apr 7, 2019 5 min.

Estou viajando e com poucas horas de acesso a um computador, mas os dois primeiros desafios do Code Jam esse ano foram tão simples que sequer precisaram de meia-hora. Isso para um chinês, campeões em campeonatos de programação, deve ser equivalente a cinco minutos com um código C enxuto. Mas estou apenas aprendendo. Foreground Solution Resuminho: o problema é receber um número e retornar dois números cuja soma seja igual ao primeiro.

Free Pascal e VS Code

Mar 9, 2019 1 min.

Agora que o VS Code é a ferramenta universal para todas as plataformas e linguagens imagináveis, acreditem ou não, há até plugin para Pascal. Ao instalar a extensão mantida por Alessandro Fragnani você recebe o intelisense e algumas dicas durante erros de programação. A própria integração com o Free Pascal Compiler, o compilador open source de Pascal multiplataforma, já é mostrada na Home desse plugin. É só seguir os modelos e alterar de acordo com o que pede o VS Code (que está sendo atualizado constantemente).

Debug Remoto no Visual Studio 2010 ou Superior

Mar 6, 2019 2 min.

Já escrevi sobre debug remoto no finado C++ Builder, sobre como usar o msvcmon.exe no VS 2003 e o msvsmon.exe no 2010+. Sobre como depurar um serviço quando a máquina está para desligar, e até sobre depurar através de um servidor de símbolos. Está na hora de tornar a depuração mais simples para programadores de serviços Win32. Resumo dos comandos: Busca do pacote de debug: c:\>dir /s /b "Remote Debugger" Executável: C:\Tools\Remote Debugger\x64\msvsmon.