Falta menos de um mês para completar um ano que criei esta versão do Atarefado e escrevi quase todo este artigo e ainda não tinha publicado. Então, antes de apresentar minha arma contra a procrastinação, começo ponderando: Por que procrastinadores procrastinam?
Já contei sobre o Atarefado, ferramenta que criei para dar um pouco de ordem à insanidade caótica da minha mente e conseguir realizar as minhas tarefas. Também contei que recentemente adquiri um telefone celular com sistema operacional Android. Então, nada melhor que ter as tarefas sempre a mão. No entanto, Android é baseado em Java. E já contei também o que penso de diversas linguagens de programação, e Java não está entre as minhas preferências, mas Lua está. E porque criar uma versão específica para um sistema operacional, enquanto posso criar uma que pode rodar em qualquer sistema que possua um navegador?
Foi então que resolvi criar uma versão Web do Atarefado. Mas não abandonei a versão tradicional. Agora no código fonte há um código comum e os códigos desktop e webapp. Para a interface usei HTML5 com o framework Bootstrap. No servidor usei web usei Haserl e Lua. O Haserl funciona de forma semelhante ao PHP, porém usando ou shell script ou Lua. No Meu caso, a escolha é óbvia.
Contei que comprei um leitor digital Lev recentemente. De forma que agora um de meus assuntos de interesse são eBooks. Não me satisfaz simplesmente colocar um arquivo HTML no leitor e ler do jeito que ficar. Quero algo bem feito, que seja prático de consultar. Então não poderia deixar de ter os manuais de referência da minha linguagem de programação favorita: Lua. Converti para formato ePub o Manual de Referência de Lua 5.1 bem como o Manual de Referência de Lua 5.2 ambos em português.
Graças a uma ideia idiota, que tive num momento idiota, achei a solução para os meus problemas (exceto os financeiros)... Ficou confuso? Vou explicar. Eu tenho um projeto chamado L-Bia que abandonei há alguns anos devido a umas dificuldades técnicas. Um dia desses, estava desperdiçando meu tempo lendo blogs de curiosidades (o momento idiota), quando me veio a ideia idiota: escrever, como item de curiosidade mesmo, sobre as linguagens de programação que aprendi. E pelo meio do artigo, citei meu projeto abandonado.
Foi então que me caiu de brinde a solução para os problemas que me levaram a abandonar o projeto. Estava programando na linguagem errada, eu odeio C. Era só reescrever em Pascal. O Free Pascal pode compilar para todas as plataformas relevantes, e é uma linguagem bem mais fácil de programar. Mas, do que mesmo estou falando? O que é L-Bia?
Estava lendo um desses blogs de curiosidades, abrindo aba após aba no navegador, esperando que em algum momento terminasse o ciclo vicioso, quando tive a ideia. Escrever um histórico sobre as linguagens de programação que já aprendi. Tenha em mente, que o que segue apresenta minha opinião pessoal sobre as linguagens, e minha opinião geralmente diverge do conceito de mercado em geral sobre linguagens de programação. E apesar que eu dou minhas recomendações a esta ou àquela linguagem, não estou discutindo aqui qual a melhor linguagem de programação. Vamos em ordem cronológica.
Muitas tarefas para fazer, pouco tempo para realizar. Situação comum, acha? Então some a preguiça e procrastinação. Já tentei muita coisa, Task Coach e w2do foram os melhores. Sempre combinados com o Dropbox. Mas como sempre acontece, alguma coisa com os programas prontos sempre me chateia. O Task Coach é em Python e consequentemente desnecessariamente grande. Mas o problema mesmo é que não funciona no computador do trabalho, onde preciso. O w2do também tem um problema semelhante, é em Perl. Outra coisa é que, apesar que gosto de usar a linha de comando, fazer isso no Windows é chato. Então, apresento-lhes:
Vou ser bastante sucinto, pois como pode notar não tenho tido tempo de escrever aqui no blog. Eu lido bem com fórmulas matemáticas, códigos de programação e esse tipo de coisa. Mas na hora de efetuar os cálculos mentalmente, a coisa complica. Uma simples soma ou subtração me deixa pensando por mais tempo que a maioria das pessoas. Meu atual emprego envolve trabalho como caixa, recebendo valores e dando troco. Receita de prejuízo. Para evitar prejuízo, elaborei este pequeno software.
Já faz um bom tempo que falei sobre o Premake, prometendo dar continuidade ao assunto. Em especial disse que iria falar sobre como compilar bibliotecas e arquivos não C. Pois bem, demorou, mas aqui vai. O principal motivo de ter demorado é que não usei muito a ferramenta ultimamente, não estive compilando muita coisa. E também porque não encontrei nenhuma forma prática de "compilar" arquivos não C. Por exemplo, documentação que use alguma ferramenta de conversão de formato.
Muita gente sabe que Lua é minha linguagem de programação favorita. Vivo no mundo da Lua, ou melhor, estou sempre falando de Lua. Mas há uma coisa que nunca havia reparado em Lua: não existe o comando continue como parte das estruturas de controle.
Vou explicar melhor. Eu tinha um programa com uma tabela contendo nomes de arquivos. Para cada nome na tabela eu abria o arquivo, verificava alguma coisa no conteúdo dele e fechava novamente. Por fim, passava para o próximo nome na tabela. Seria algo assim:
Por Steve Donovan - Tradução Breno Ramalho Lemes
Parte 1 | Parte 2
Mesmo scripts simples precisam dar ao usuário um retorno. Caso contrário, as pessoas ficam ansiosas e começam a se preocupar se os seus arquivos já foram salvos, por exemplo. No IUPLua isso é fácil e leva exatamente uma linha. Note que todos os scripts IUP devem ter pelo menos uma instrução require 'iuplua'
no início:
Por Steve Donovan - Tradução Breno Ramalho Lemes
Parte 1 | Parte 2
IupLua é um kit multi-plataforma para criar aplicações gráficas em Lua. Existem recursos poderosos para obter entrada do usuário que não exigem códigos complicados, por isso é particularmente bom para scripts de utilitários.Os atributos são um conceito importante no IUP. Você os define ou obtém simplesmente como campos de uma tabela. Em primeiro lugar, não há diferenciação entre maiúsculas e minúsculas, SIZE
funciona tanto quanto size
(mas tente ser coerente). Em segundo lugar, escrevendo para um atributo inexistente não lhe dará um erro, então faça com atenção. Em terceiro lugar, escrever para um atributo pode provocar uma ação, como por exemplo o atributo visible dos controles pode ser usado para escondê-lo. Pense neles como um tipo especial de chamada de função.
Compilação sem complicação com linguagem C, parece impossível, parece loucura, mas existe. Não se preocupe, se não entender é porque você não precisa disso. Se um dia precisar, vai se lembrar. Se entender, faça bom proveito - não é algo que se encontra facilmente.
Odeio programar em C, mas é necessário. Porém o pior é distribuir o código fonte de forma que seu público possa compilar. Compilar programas em C é um inferno, cada compilador tem um método diferente. Os mais comuns são os arquivos de projeto e os makefiles. Não há compatibilidade nenhuma entre compiladores e até um mesmo compilador pode ser incompatível entre versões ou sistemas operacionais diferentes. Você consegue compilar seu programa, mas as chances de que seu público consiga são reduzidas.
Theme by Breno Ramalho Lemes under Creative Commons Attribution, based on Jekyll Clean by Scott Emmons and icons by FatCow.