Ano novo, vida nova. Mudanças no trabalho (de área) e um pouco de férias. Até dia 18, estarei aproveitando meus dias em ócio, um pouco produtivo, espero eu, uma vez que vendi minha prancha de surf e estou esperando uma outra (maior)ficar pronta.
Durante o natal e ano novo, recebi vários SMSs desejando felicidades, etc. Com meu ócio criativo à 1000, resolvi voltar um pouco aos velhos códigos de Python, com Tkinter. Criei uma interface para envio de SMSs em massa, tipo SPAM.
Terrível tentação aos SPAMMERs e melancólico sofrimento para nossos celulares. Mas felizmente utilizei uma interface interna da Ericsson para isso, então somente funcionários poderão utilizar. Fora isso, não pretendo liberar o código externamente. Talvez dentro da empresa, onde já ganhei um relógio com frequencímetro cardíaco devido às minhas contribuições em 2008.
Falando do código, muito simples, utilizando Entry(), Text(), Label() e Button(). Na verdade a facilidade é graças ao Tk mesmo. As fontes das letras anteriormente eram bem *toscas*, assim como o widget, que era todo cinza. Consegui melhorar a aparência do mesmo com o código abaixo:
root = Tk()
root.option_add("*Font", "arial")
root.option_add("*Label.Font", "helvetica 9 bold")
root.option_add("*Background", "gray")
root.option_add("*selectBackground", "light gray")
root.option_add("*selectForeground", "black")
root.config(background="gray")
Estou tentando melhorar o código adicionando um splash screen no início, e outra tela durante o envio, uma vez que ao apertar o botão para enviar, a tela "congela" e só volta ao final. Infelizmente já notei que o Tk é limitado nesse ponto... vamos ver onde chego.
Também depois de *lançamento*, descobri que somente 154 caractéres são enviados. Preciso ver se coloco algum contador pra evitar cortes. Se você recebeu uma mensagem truncada, já sabe: fui eu :-)
E feliz 2009!
Belíssimo discurso de Steve Jobs. Realmente o cara é uma cabeça excepcional.
UPDATE: link atualizado pro vídeo no youtube em 2024-11-23.
UPDATE: link atualizado pro vídeo no youtube em 2021-12-21.
Depois de ter escrito que "Infelizmente o Gaim, ou como é atualmente chamada, Pidgin, não tem uma forma para bloquear isso (não que eu saiba)", encontrei a solução.
Basta clicar no menu "Tools" e na opção "Privacy". Tentei procurar isso na documentação, FAQ, mas não encontrei. Achei por acaso. Apliquei a opção como mostrada abaixo e... no more SPAMs. Aparentemente também não recebo mais pedido de invitation para novos amigos, mas...
Recentemente tenho recebido diariamente várias mensagens como essa. Infelizmente o Gaim, ou como é atualmente chamada, Pidgin, não tem uma forma para bloquear isso (não que eu saiba).
Em Linux é possível fazer um "bypass" utilizando as regras de "string match" do iptables. Utilizando algo como:
iptables -A INPUT -j DROP -s 0/0 -d 0/0 -m string --algo kmp --string "My cam still is not working. Message me on"
é suficiente. O uso do --dport PORT poderia ajudar a regras ser mais eficiente, mas isso infelizmente pode ser burlado pelo protocolo do MSN, dependendo da forma que é usado, então a forma mais genérica funcionará (mas irá verificar todos os pacotes chegando à sua máquina).
E quanto ao FreeBSD? Foi a mesmo pergunta que me fiz. Não existe suporte para "string matching" tanto no ipfw quanto no pf (ou mesmo no ipfilter). Existem soluções utilizando os logs de firewall para decodificar, mas não achei que algum desses fossem eficiente o suficiente para aplicar. Continuo recebendo meus SPAMs diários... uns 15 por dia...
Esse é realmente um fim de semana produtivo para mim. Acho que desde que criei o meu domínio (e conseqüentemente a página web), nunca postei tanta coisa como agora. Não, não estou desempregado (ao menos não ainda).
Como algumas da pessoas mais próximas de mim já sabe, sou um feliz proprietário de um console da Nitendo: o Wii. Já fiz críticas anteriores ao mesmo devido à baixa qualidade dos gráficos, poucos jogos, etc, mas acabei comprando o mesmo por uma oportunidade que surgiu (o que inclui até um Guitar Hero 3 completo). E não estou arrependido. Os gráficos são realmente mais pobres que seus primos ricos, PS3 e X-Box 360, assim como a falta de títulos também é gritante. Mesmo assim foi uma feliz surpresa adquirir o brinquedo, que não me exigiu mais um gasto adicional: uma TV LCD (PS3 que o diga).
A primeira boa surpresa foi o gasto para "destravar" o mesmo: R$ 180,00. Quase o mesmo custo de um jogo (por volta de USD 50,00). Essa economia foi vital pois dos mais de 50 jogos que peguei com os amigos, a grande maioria não passa de porcaria. Inclusive jogos recém-lançados como "The Mummy - The Dragon Emperor". Mas alguns jogos são muito mais divertidos de jogar, como Resident Evil, Scarface e Godfather. O fato da mira ser feita através do controle todo torna a jogabilidade muito melhor se comparado ao controle do PS2 que tenho. Jogos como Medal of Honor on-line então... verdadeira guerra (sem bem que a molecada a partir de 8 anos me mata tão rápido que mal consigo mirar).
Uma coisa que falta ao Wii é o suporte à DVDs e DIVX (filmes no format AVI). Devido a um problema de custos, o suporte a DVD de filmes não foi inserido no produto. Não que isso seja realmente um problema já que adquiri uma plataforma de jogo, não um produto para assistir filmes, mas não seria nada mal se isso fosse incluido.
Buscando na rede alguma alternativa para isso, encontrei soluções bem interessantes. A primeira foi o FreeVO , uma solução baseada em Linux (atualmente um live cd) para transformar seu PC em uma estação multimídia. A idéia é criar uma plataforma em termos de interface com o usuário, mas que rode em qualquer tipo de hardware suportado por Linux: de Xbox a PS2 e... Wii!!!
A segunda solução é Projeto WiiLi , que nada mais do que o desenvolvimento do Linux para Wii.
Ambos são projetos interessantes, mas nenhum está funcionando efetivamente no Wii infelizmente. Enfim... esperança é a última que morre e mais dia, menos dia, isso irá acontecer. E quando acontecer, eu estarei lá...
Somente um "quote" enviado à lista do FreeBSD. Release 7.1 chegando logo.
Ken Smith kensmith at cse.Buffalo.EDU
Sat Sep 13 18:39:47 UTC 2008
The FreeBSD 7.1-BETA and 6.4-BETA builds are now available on the FreeBSD FTP mirror sites. This is the first step in
the release process for FreeBSD-7.1 and FreeBSD-6.4. This set of builds do not include pre-built packages. The ISOs
are available from:
ftp://ftp.freebsd.org/pub/FreeBSD/releases/${arch}/ISO-IMAGES/7.1/
ftp://ftp.freebsd.org/pub/FreeBSD/releases/${arch}/ISO-IMAGES/6.4/
where $arch is one of alpha, amd64, i386, ia64, pc98, powerpc, or sparc64. For the Tier-2 architectures ia64 and
powerpc only the 7.1-BETA builds are available. For the Tier-2 architecture alpha only the 6.4-BETA builds are
available. We encourage people to help out with the testing. Problems can be reported through Gnats or on the
freebsd-stable at freebsd.org mailing list. At this point we expect the 6.4-RC1 builds to start in about two weeks, and
the 7.1-RC1 builds a week after that.
Do meu último "make buildworld":
|
Já estamos no 7.1-PRERELEASE (ao menos eu estou). Previsão do release final para 13 de Outubro, como pode ser visto aqui na lista oficial do freebsd.
Faz tempo que não me deparo com esse tipo de problema, mas acabei vendo novamente depois que um colega de trabalho pediu ajuda nisso.
A primeira vez que trabalhei com conversão de caracteres foi em português mesmo, de ISO-8859-1 para UTF-8. Não guardei lembranças boas. Dessa vez o desafio era para converter supostos caracteres no mesmo formato para UTF-8, mas não da nossa língua pátria.
Para quem nunca viu isso, o código em Perl que faz a conversão está no pacote Encode , disponível no CPAN, da seguinte forma:
use Encode;
...
...
foreach $line () {
next if ($line =~ m/^$/);
chomp($line);
$i = Encode::decode("iso-8859-1", $line);
$line = Encode::encode("utf8", $i);
print $line."\n";
}
...
Dessa vez tive um problema com a palavra "ΑστέριαΑστέρια". Juro que não sei o que significa, mas a droga da palavra, escrita em grego (CP1253) estava junto ao restante do texto codificado em ISO-8859-1.
Apanhei pra achar o formato certo... ainda falta fazer um conversor inteligente o suficiente para usar o formato certo antes de processar, mas já é alguma coisa...
Publicado recentemente, um site interessante que conta a história da Ericsson e, por sua vez, parte da história das telecomunicações. Em inglês.
BTW fico pensando como os chineses escreverão sobre a histórias das telecomunicações no futuro. Deve ser algo: enquanto muitos gastavam criando, nós só otimizamos simplesmente copiando... ou talvez peguem a história de alguém e só falsifiquem os nomes. Se nem a cantora das olimpíadas conseguiu fugir da pirataria, quiçá o restante...
Diversas vezes preciso gerar gráficos em meu trabalho diário. Uma excelente ferramenta, que nem sempre recebe os devidos créditos, é gnuplot . Entre as facilidades do gnuplot estão a forma de enviar comandos, que pode ser via batch, o que cria a possibilidade de utilização em scripts, e a leituras de dados em arquivo texto.
Num mundo cada vez mais sedento por dados e uso massivo de bancos de dados, pode parecer ridículo o uso de aquivos textos para guardá-los. Infelizmente vários scripts que desenvolvi e uso, alguns somente para ler a porcentagem de uso de CPU, salvam em formato texto. Parte poderia ser atribuída a minha mediocridade em programação, mas nem sempre tenho disponível os pacotes de integração para comunicação com BD nas plataformas que monitoro. ??s vezes nem BD pode ser instalado para isso. Nesses casos o arquivo texto serve muitíssimo bem.
Cansado de ver as mensagens surgindo o tempo todo:
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
acpi_tz0: _CRT value is absurd, ignored (256.0C)
Fiz uma alteração nessa parte do ACPI e removi a mensagem. Acho que não vai fazer muita falta mesmo...
--- /usr/src/sys/dev/acpica/acpi_thermal.c-original 2008-06-08 17:38:40.000000000 -0300
+++ /usr/src/sys/dev/acpica/acpi_thermal.c 2008-06-08 17:39:27.000000000 -0300
@@ -677,8 +677,10 @@
acpi_tz_sanity(struct acpi_tz_softc *sc, int *val, char *what) {
if (*val != -1 && (*val < TZ_ZEROC || *val > TZ_ZEROC + 2000)) {
+ /* device_printf(sc->tz_dev,
"%s value is absurd, ignored (%d.%dC)\n",
what, TZ_KELVTOC(*val));
+ */ *val = -1;
}
}
Page 29 of 35