Postagens

Mostrando postagens de fevereiro, 2011

Postagem em destaque

Código Limpo: Nomes Significativos

Imagem
Às vezes fico com um assunto na cabeça por semanas, até achar uma situação ou um exemplo que esclareça a situação. Explico: estava querendo já a algum tempo escrever sobre boas práticas de programação, e pensei em iniciar por "Nomes Significativos", para seguir a nomenclatura utilizada pelo ótimo livro Código Limpo , de Robert C. Martin.  Entretanto, ficava sempre amarrado em exemplos que pareciam ser bons, mas que ainda eu não tinha visto a utilidade prática.  Antes de continuar preciso explicar que tenho um hábito de anotar num bloco de papel todas as ideias que surgem, pois elas desaparecem com a mesma velocidade que aparecem. Para isso tenho um bloco e caneta na mesa de cabeceira (além de um no banheiro), pois esses são os lugares onde tenho mais ideias... Vai entender... Semana passada, estava com um problema bem complicado e tive uma ideia: "vou criar uma variável para indicar que quando um arquivo tiver um certo tamanho deve gravar algumas informações no log. Pois

Exponenciação ou Potenciação

Olhando os textos que já publiquei, mais especificamente o Aplicação dos Logaritmos na Prática , lembrei de um outro uso prático para os logaritmos. Uma vez estava usando uma linguagem que não tinha exponenciação (acho que era o Delphi ou Pascal, não tenho certeza). A maneira mais prática que encontrei foi utilizar as funções EXP e LN, mais precisamente: EXP(LN(a)*n) que equivale dizer que "a" é elevado à "n-ésima" potência.

Tema para o Nokia 5310 XpressMusic

Nunca gostei dos temas dos celulares - acho que eles são muito poluídos. Por isso criei este aqui . Mais clean impossível: o fundo é todo preto sem nenhuma frescura.

Programas essenciais

Toda vez que reinstalo meu SO, tenho que reinstalar/copiar vários programas, que hoje em dia considero essenciais. Os principais estão listados abaixo, mas utilizo muito mais, é claro, incluindo aí vários arquivos BAT ou utilitários em Delphi, que me ajudam nas tarefas do dia-a-dia. Detalhe importante: são todos freeware ou open-source . 7-Zip Compactador. Ausdiskdefragportable Desfragmentador portátil. Everything Localiza arquivos e pastas pelo nome. ExamDiff Compara dois arquivos. Foxit Reader Leitor de PDFs. Free Window Registry Repair Repara as entradas inválidas do registro do Windows. HashCheck Shell Extension Calcula e verifica checksums e hashes. Notepad++ Editor de código fonte. Procexp Subistituto para o gerenciador de tarefas do Windows. PSExec Executa processos remotamente. PSKill Termina processos (locais ou remotos). PSList Lista as informações dos processos (locais ou remotos). QRegDefrag Desfragmenta o registro do Windows. Recu

Como enviar um clique para outra aplicação, em Delphi

Vou mostrar aqui como enviar um clique do mouse para uma outra aplicação. Precisei disso para automatizar um processo, já o aplicativo em questão não tinha uma opção de linha de comando para já iniciar no item que eu desejava. Além disso, ele também não aceita o controle via teclado, apenas mouse. program sendClick; uses Windows, SysUtils, Classes, Controls, ExtCtrls, StdCtrls, Messages, Dialogs; var WindowHandle : HWND; pt: TPoint; begin if (paramstr(4) > '') then begin WindowHandle := FindWindow(nil, pchar(paramstr(4))); if WindowHandle = 0 then begin ShowMessage('Program not found.'); halt;; end; end else WindowHandle := GetActiveWindow; pt.x := Round(strtoint(paramstr(2)) * (65535 / Screen.Width)); pt.y := Round(strtoint(paramstr(3)) * (65535 / Screen.Height)); Sleep(StrtoInt(paramstr(1)) * 1000); SetForegroundWindow(WindowHandle); Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, pt.x, pt.y, 0, 0);