quarta-feira, 6 de janeiro de 2010

2010 - ano do ARM e do Tablet?!

Ano passado, foi o "Touch Book": http://www.alwaysinnovating.com/

Custa entre US$299 e US$399. Tablet, touch e com processador ARM.

Rumores surgiram sobre um tal tablet da Apple, mas nada concreto. A Microsoft HP parecem estar se puxando para lançar um tb. A ideia parece boa, mas não será ARM, pq Windows não funciona no ARM:

A pouco, vi a notícia do smartbook da Freescale: 7", touch, processador ARM, 10 horas de bateria:


E o preço é o menor desses: US$199. Por enquanto é só promessa, mas já me apaixonei =D

Será 2010 o ano do ARM e do Tablet?

Fontes:
http://www.meiobit.com/meio-bit/ind-stria/smartbook-da-freescale-vai-encarar-apple
http://www.liliputing.com/2010/01/freescale-introduces-sub-200-web-tablet-reference-design.html
http://www.baixaki.com.br/info/3308-microsoft-e-hp-podem-lancar-tablet.htm

domingo, 3 de janeiro de 2010

Acelerando o DNS - Google na parada?!

Bastante estardalhaço no fim de 2009 com o lançamento do Google Public DNS. A algum tempo já temos uma alternativa, o OpenDNS. Além desses, ainda teríamos o "default" da operadora, a GVT no meu caso.

A solução que imagino ser a melhor é ter um cache local para o DNS. E é simples configurar também, além de economizar uns trocos se vc usa um modem 3G.

::: Testes de performance :::

A ideia é simples: testar quanto tempo demora para resolver o nome www.google.com com cada um dos servidores DNS. 3x cada um.

O teste:
for (( i=0 ; i<3 ; i++ ));
do
time nslookup www.google.com [IP do DNS];
done

1. Google: 8.8.8.8

real    0m0.076s
user    0m0.008s
sys    0m0.008s

real    0m0.080s
user    0m0.008s
sys    0m0.008s

real    0m0.093s
user    0m0.016s
sys    0m0.004s


2. OpenDNS: 208.67.222.222

real    0m0.192s
user    0m0.012s
sys    0m0.008s

real    0m0.184s
user    0m0.004s
sys    0m0.008s

real    0m0.188s
user    0m0.008s
sys    0m0.008s


3. GVT (servidor de POA): 200.175.89.139

real    0m0.034s
user    0m0.008s
sys    0m0.004s

real    0m0.031s
user    0m0.004s
sys    0m0.012s

real    0m0.031s
user    0m0.004s
sys    0m0.000s


4. local (dnsmasq): 127.0.0.1

real    0m0.023s
user    0m0.004s
sys    0m0.016s

real    0m0.029s
user    0m0.012s
sys    0m0.008s

real    0m0.035s
user    0m0.012s
sys    0m0.004s


O resultado é o esperado, eu acredito. O OpenDNS é o mais lento, pois provavelmente é o mais distante deles.
O Google surpreende, cortando pela metade o tempo de resposta do OpenDNS.
O da GVT é bem mais rápido, pois está próximo (e por isso precisa passar por menos servidores que os demais). Isso foi testado no ADSL da GVT (1Mbps), por isso a vantagem.
O local é rápido também, mas não com tanta diferença assim para o da própria operadora. Deve mehorar a performance em conexões 3G e discadas.

Pra configurar o dnsmasq, antes é preciso instalá-lo. No debian:

apt-get install dnsmasq
E depois configurar para iniciar o serviço (use o comando sysv-rc-conf, disponível num pacote com o mesmo nome).

Para sempre usar o DNS local, mesmo usando DHCP, apenas altere o arquivo /etc/dhcp3/dhclient.conf, adicionando (ou descomentando) a linha:
prepend domain-name-servers 127.0.0.1;
Para conferir quais são os servidores DNS configurados, olhe o arquivo /etc/resolv.conf

Fontes:
http://www.vivaolinux.com.br/dica/Acelerando-conexao-discada-com-openDNS-e-Dnsmasq/
http://ubuntuforums.org/showthread.php?t=544383

sexta-feira, 1 de janeiro de 2010

Feliz ano novo!!!!

Postando do note (sim, o HP voltou), no primeiro dia de 2010. Postando do "Blogger em rascunho", pra experimentar, e está sendo divertido. Algumas coisas parecem terem vindo do Google Docs...

Mas, vamos compilar e instalar o novo ano que se inicia:
cd ano_2010/
./configure --with-saude --with-paz --without-stress --with-tempo --with-dinheiro
make
make install

E que venha 2010!

segunda-feira, 30 de novembro de 2009

nota de falecimento (do meu notebook)

Todo mundo já sabe o quanto eu ODEIO a HP. mas agora foi o cúmulo: pela 3ª vez esse ano (exatamente na reta final do semestre na faculdade), vou ficar sem meu PC principal: o notebook.

Ele veio da manutenção, dia 23 de julho (130 dias, ou 4 meses), completamente recauchutado, com 90% das peças trocadas (pq os FDP não quiseram arrumar tudo) e já era a segunda vez. Agora, de novo.

HP, nem morto.

A novela: http://ratosdelaboratorio.blogspot.com/search/label/problemas de hardware

Um artigo sobre a porcaria: http://www.artigonal.com/laptops-artigos/escandalo-da-ressolda-bga-934591.html

sexta-feira, 16 de outubro de 2009

Quando reiniciar o seu PC?

Meu recorde de tempo sem reiniciar o Desktop do trabalho: 36 dias

Não que eu deixe ligado o tempo todo (o que seria feio para a conta de luz - que nem sou eu que pago), mas usei a "hibernação" do sistema. Sim, funciona - e muito bem até agora - no Linux! =D



E porque não mais do que 36 dias? Simples: 427 pacotes atualizados no último update do Debian (eu uso a versão testing e a unstable, que recebem mais atualizações). Uma delas é o "kernel" do Linux, que precisa reiniciar para carregá-lo.

E aí? Seu desktop suporta mais tempo sem desligar?

;)

segunda-feira, 5 de outubro de 2009

Quem acredita em uma fotografia?

Ou "o poder do Photoshop".

Extensões python - Hello world

Rapidinha: criando extensão para o Python em C - Hello World:

Arquivo gphoto2py_module.c

#include <Python.h>

static PyObject *
spam(PyObject *self, PyObject *args)
{
char *hello = "Hello World\n";
return Py_BuildValue("s", hello);
}

static PyObject *SpamError;

static PyMethodDef GPhoto2pyMethods[] = {
{"spam", spam, METH_VARARGS, "spam docs?"},
{NULL, NULL, 0, NULL} /* Sentinel */
};

PyMODINIT_FUNC
initGPhoto2py(void)
{
PyObject *m;

m = Py_InitModule("GPhoto2py", GPhoto2pyMethods);
if (m == NULL)
return;

SpamError = PyErr_NewException("GPhoto2py.error", NULL, NULL);
Py_INCREF(SpamError);
PyModule_AddObject(m, "error", SpamError);

}

int
main(int argc, char *argv[])
{
/* Pass argv[0] to the Python interpreter */
Py_SetProgramName(argv[0]);

/* Initialize the Python interpreter. Required. */
Py_Initialize();

/* Add a static module */
initGPhoto2py();

return 0;
}



Arquivo setup.py


from distutils.core import setup, Extension

module1 = Extension('GPhoto2py',
sources = ['gphoto2py_module.c'])

setup (name = 'GPhoto2py',
version = '0.1',
description = 'This is a demo package',
ext_modules = [module1])



Para gerar o módulo

$ python setup.py build


Para testar:

$ cd build/lib*
$ ls
GPhoto2py.so
$ python
Python 2.5.4 (r254:67916, Feb 18 2009, 03:00:47)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import GPhoto2py
>>> GPhoto2py.spam()
'Hello World\n'
>>>


Simples assim!

Fontes:
http://docs.python.org/extending/building.html#building
http://docs.python.org/extending/extending.html

PS.: O nome do arquivo é "GPhoto2py" porque o objetivo é, mais à frente, user o GPhoto2 no Python (o bind do projeto não é atualizado desde 2007)