Postagens

Mostrando postagens de julho, 2009

Postagem em destaque

A incrível velocidade do Go

Imagem
Um dos motivos que gosto do Go (a linguagem de programação, não o jogo), é que ele é extremamente rápido. E não estou falando de utilizar goroutines pois aí é covardia. Estamos migrando um sistema de Coldfusion para Go e PHP e uma das rotinas insere um registro no banco de dados no início e outra no fim do processo. Pense como se fosse um log, mas um log específico para essa rotina. Dessa forma: 2023-05-18 17:45:03. 687     ... [processaImagem] Incorporando imagem 2023-05-18 17:45:03. 688     ... [processaImagem] Imagem incorporada Entre o inicio e o final do processamento levou 1ms. Até aí, tudo bem, se não fosse o fato dessa tabela ter o campo timestamp como parte da chave primária. Se reparar, o tempo é definido em milissegundos. Com o Coldfusion esse processo dura cerca de 20ms. Simplesmente migrando para Go, o tempo caiu muito, para menos de 1ms e assim, começou a dar erro de chave duplicada. A solução? Depende, sempre depende. No nosso contexto, a mais simples foi feita, pois nã

Visualizando código fonte com SyntaxHighlighter

Já havia visto em vários blogs, o código de alguns programas bem formatado, com realce de cores, etc. Resolvi ir atrás e descobri que foram feitos utilizando a biblioteca SyntaxHighlighter . Se você quiser utilizá-lo em seu blog siga o roteiro abaixo. 1. Entre em Layout > Editar HTML e insira o seguinte código logo acima da tag </HEAD> : <link href="http://alexgorbatchev.com/pub/sh/2.1.364/styles/shCore.css" rel="stylesheet" type="text/css"> <link href="http://alexgorbatchev.com/pub/sh/2.1.364/styles/shThemeDefault.css" rel="stylesheet" type="text/css"> <script src="http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shCore.js" type="text/javascript"> <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushCpp.js' type='text/javascript'/> <script src='http://alexgorbatchev.com/pub/sh/2.1.364/scripts/shBrushJava.js' type='t

ODIN - Open Disk Image in a Nutshell

Imagem
Descobri um software muito interessante: ODIN - Open Disk Image in a Nutshell. Ele permite criar uma cópia de uma partição e restaurá-la posteriormente. É muito simples de usar e não é necessário instalá-lo, basta descompactar e executar. É muito útil para que gosta de testar, instalar, desinstalar diversos programas. Download: ODIN - Open Disk Image in a Nutshell

Lista de serviços do Windows

Esses dias fiz algumas alterações na inicialização de alguns serviços do Windows e depois não lembrava mais quais eu tinha habilitado/desabilitado. Para resolver esse problema, fiz um pequeno programa em Delphi que salva o status de inicialização de todos os serviços. Depois de compilá-lo, basta executar diretamente no Prompt de Comando. program SaveSvc; {$APPTYPE CONSOLE} uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Registry; var reg : TRegistry; list: TStringList; arq: text; i, n: integer; nomeArquivo: string; begin if paramstr(1) <> '' then nomeArquivo := paramstr(1) else nomeArquivo := 'services.reg'; // cria a lista, vazia, em memória list := TStringList.Create; // cria o registro reg := TRegistry.Create; // localização da chave reg.RootKey := HKEY_LOCAL_MACHINE; // abre a chave dos serviços reg.OpenKeyReadOnly('\SYSTEM\CurrentControlSet\Services') ; // popula a lista com todos os serviços reg.Get

Aplicação dos Logaritmos na Prática

Quando você está estudando logaritmos em Matemática, dificilmente alguém vai lhe dizer qual uma aplicação prática para isso. Mas saiba que existe: Suponha que você esteja construindo um gráfico com o número de acessos a um site. Num determinado período, de manhã por exemplo, o número máximo de acessos foi 43 às 11:00. À tarde, o número máximo de acessos foi 951. Para determinar qual o valor máximo no eixo y, basta utilizar a fórmula: maxY = 10 ^ (int(log(n)) + 1), onde n = 43 maxY = 10 ^ (int(log(n)) + 1) maxY = 10 ^ (int(1,6334) + 1) maxY = 10 ^ 2 maxY = 100 Já para o número de acessos feitos à tarde, ficaria assim: maxY = 10 ^ (int(log(n)) + 1), onde n = 951 maxY = 10 ^ (int(log(n)) + 1) maxY = 10 ^ (int(2,9781) + 1) maxY = 10 ^ 3 maxY = 1000 Pronto, de manhã o gráfico teria o eixo Y com o valor máximo igual a 100 e à tarde, com o valor máximo igual a 1000.