Posts Mentioning RSS Toggle Comment Threads | Atalhos de teclado

  • jedizone 9:10 am em March 27, 2008 Link Permanente | Responder  

    1º Fórum do Software Livre de Ribeirão Preto 

    Ontem aconteceu o 1º Fórum do Software Livre de Ribeirão Preto, uma iniciativa da do programa Ribeirão Jovem, com apoio da prefeitura e outros órgãos. O evento foi importante por ser uma iniciativa rara de divulgação do software livre na região de Ribeirão Preto. Foi composto de dois painéis onde se convidados falaram das suas experiências e de uma sessão de debate/perguntas ao final.

    Eu não tinha me programado para ir e acabei decidindo no último instante. Pra minha surpresa, descobri lá que tinha sido convocado para o segundo painel e para compor a mesa na seção de perguntas. Bom, obviamente com foco em Linux embarcado, dei o meu ‘depoimento’ e falei um pouco sobre experiências, tendências, dificuldades e mercado de trabalho. Como foi de imprevisto, sinceramente não saberia reproduzir o conteúdo aqui. Felizmente, a informalidade tradicional de eventos de software livre sempre nos ajuda nestas horas.

    Uma coisa que eu já acredito faz tempo e sempre se realça nestas situações está relacionada ao custo do software livre. Algumas pessoas, e até alguns promotores do software livre, precisam parar de usar o argumento de que ele é de graça como a principal vantagem. Isto é um detalhe. As empresas estão dispostas a pagar por algo que funcione bem e resolva satisfatoriamente o problema delas. O software livre tem que se esforçar em ser realmente bom. Só isto lhe garante posição de destaque, atrai fabricantes, cria comunidade e oportunidade de negócios reais, mesmo tendo custo. Eclipe, VirtualBox, (o kernel do) Linux, MySQL, Firefox, Gimp, JBoss, Openoffice, PHP, Apache, entre vários outros, são exemplo claros de como o software livre se firmou, não por ser barato, mas por ser realmente bom.

    Convidados, da esquerda para a direita: Francisco José Alves (mestrando de São Carlos, e moderador da lista de SL de Ribeirão ), Rui (representando o prefeito), ??? (esqueci, vou descobrir e coloco aqui), Thiago Pirola e Walter Nagai (Barão de Mauá), Edson (Serviço Federal de Processamento de Dados – SERPRO), Alessandro Maraca (Ribeirão Jovem) e eu (tirando a foto). E, já quase esquecendo, parabéns ao Helder Carvalho pela organização do evento.

     
    • Franz 8:11 am em Março 28, 2008 Link Permanente

      Ótima iniciativa. Tem que permanecer.
      Já está na agenda.

      [ ]’s

    • Alan 7:37 am em Abril 7, 2008 Link Permanente

      Uma cidade do porte de RP já deveria ter realizado foruns como este antes não é?
      Tomara que este evento se repita mais vezes.
      []’s

  • jedizone 9:52 am em March 25, 2008 Link Permanente | Responder  

    N95 à prova d’água 

    Uma novidade do CBIT 2008. Bastante útil para estes churrascos à beira da piscina … Falando sério agora, seria interessante suportar bem respingos, imersões rápidas e poeira. Já pensou se todos celulares fossem IP67 ?

     
  • jedizone 2:09 am em March 25, 2008 Link Permanente | Responder  

    Eee PC – hands on 

    Não dá pra dormir sem comentar o evento do dia: devo ter passado uma meia hora com um eee pc, fuçando tudo que eu podia. A impressão geral é muito positiva. O sistema responde bem, não é lerdo como eu pensei que fosse. O software que vem junto, a tal distro xandros, está muito bem portada e comportada, suportando cada detalhe do hardware. Sem problemas na rede sem fim, hibernação, câmera ou som.

    Em especial, gostei do particionamento. Eles usam unionfs para ter um esquema legal de restauração. O sistema básico está em flash mas como read only. Daí fazem overlay com uma partição com direito de escrita, onde estão os dados do usuário, usando unionfs. Deste modo, quando se altera o file system principal, no fundo se mexe na parte do usuário. Isto permite uma restauração fácil do sistema original, que está sempre preservado.

    O efeito colateral é que, se você atualiza o skype, por exemplo, no fundo não apaga a cópia original, apenas adiciona uma nova e o unionfs faz o sistema ‘esquecer’ a outra. Espaço perdido.

    Idéia boa pra colocar num equipamento de controle. Se o operador errar no update, daria para recuperar o estado original. Super ! ;-)

     
    • Jeronimo 9:35 am em Março 25, 2008 Link Permanente

      Marcelo , voce compraria o Eee PC para usar no seu dia a dia ?
      Tenho a impressão que ele tem um nicho bem delimitado: ser usado como substituto dos palmtops sem o desconforto e falta de agilidade dos micro-teclados ou teclados virtuais acionados por stylus.

    • jedizone 9:40 am em Março 25, 2008 Link Permanente

      Não, no dia a dia não dá. É para entrar neste nicho mesmo e algumas coisinhas a mais, como ir dar aula de noite, navegar sem rumo de noite e passar o tempo na casa da sogra sem ter que carregar uma mochila enorme… :-D
      Também gostaria de andar sempre com o meu notebook pessoal mas o peso desanima. Seria mais fácil resolver problemas como este e de viagens esporádicas.

    • Tiago Maluta 3:51 pm em Março 25, 2008 Link Permanente

      Eu ainda não tive a oportunidade de ter uma experiência em mãos. Mas tentei no site do Eee PC, na seção de downloads
      carregar os arquivos do sistema para ver se brincava com alguma coisa. Tentei em vão fazer o donwload de todos os arquivos. Só consegui o kernel e o lan driver, pois os outros links estavam quebrados.

      Mandei um e-mail para Asus e recebo aquela mensagem auto-formatada padrão:

      We apologize that you have encountered this problem.
      Please kindly check whether your browser is Microsoft IE Explorer for
      maximum browsing quality.

      Uma ótima resposta para um sistema que roda GNU/Linux…
      Repliquei e até agora nada. Até hoje os links continuam fora.

    • jedizone 5:14 pm em Março 25, 2008 Link Permanente

      Que coisa … Vi no Eee que tinha um programa de update e cheguei a rodar, mas não me atentei para o local do repositório.

  • jedizone 1:36 am em March 25, 2008 Link Permanente | Responder  

    Mais sobre a comunicação do PC Suite e o N95 

    Muita informação desencontrada, muitos protocolos, um inferno. Foi esta a minha impressão ao procurar por uma decodificação dos frames que eu citei aqui ontem. Pelo que entendi, para as séries novas da Nokia, é usado SyncML sobre Obex. SyncML é uma especificação em XML da Open Mobile Alliance. Como XML é um saco muito ‘verbose’, emprega-se uma codificação ‘tokenizada’ em binário, chamada WBXML. Obex (OBject EXchange), por sua vez, é uma especificação para troca de objetos binários entre dispostivos (este, quem já usou bluetooth, com certeza já conhecia).

    Ótimo, e daí ? Onde está o formato dos frames, a especificação (não em XML, por favor) do protocolo ? Ainda não achei, mas chegarei lá …

    A explicação mais branda e bem organizada sobre o assunto foi encontrada aqui:

    http://www.traud.de/gsm/SyncML.htm

    No fundo, tenho minhas dúvidas se foi isto mesmo que temos lá. Os documentos citados neste link tem formatos de frames que se assemelham bem ao vistos aqui. Fazem parte do projeto Gnokii. Convém olhar também sobre o projeto Gammu.

     
    • RodrigoMendes 5:14 pm em Abril 1, 2008 Link Permanente

      Oi Marcelo.
      Me lembrei de passar por aqui.
      Comecei a trabalhar com SyncML na m*, muito superficialmente, é verdade, mais como integrador arghh, da coisa.
      Uma das principais aplicações é mesmo a atualização do firmware, que pode ser até “over the air” (FOTA), mas como sempre, depende muito da operadora e do fabricante do phone quererem disponibilizar um update. Quanto a padronização do tal SyncML, tenho minhas dúvidas se podemos chamar de padrão. No caso da m* a coisa era baseada em http e xml, e o resto creio que seja um tanto proprietário mesmo, reservado ao fabricante da solução de server FOTA e ao fabricante do fone.
      O agente de update FOTA no phone fica no bootloader propriamente, até porque não dá para fechar uma gaveta com a chave dentro.
      Vou pesquisar o que tenho em backup sobre SyncML e te passo, é interessante mesmo.
      sds
      Rodrigo

    • jedizone 5:29 pm em Abril 1, 2008 Link Permanente

      Nossa, comentário valioso, Rodrigo ! Estou sedento pra ter uma cópia binária deste firmware e o elo mais fraco parece ser justamente a conexão com o telefone. Vou aguardar as dicas sobre SyncML, na internet a coisa está meio confusa.

  • jedizone 1:21 am em March 24, 2008 Link Permanente | Responder  

    N95 versão v21.0.016 ! Será que dá para hackear ? 

    No meu último update, versão v20.0.015, logo após ao acabar fiquei pensando que tinha perdido uma oportunidade de tentar capturar a imagem binária do firmware. Procurei na Internet e não vi ninguém fazendo isto ou disponibilizando em lugar nenhum, o que deixava claro que isto deveria ser difícil. Em breve teremos a versão v21.0.016 disponível para o Brasil e estou coçando para saber se é possível ou não ter uma cópia deste firmware.

    Hoje dei uma inspecionada no que acontece no momento do update. Vi que o Nokia Update se conecta via SSL no site http://www.dsut.online.nokia.com, troca certificados e pega a informação da versão atual. Tudo com criptografia e sem chance aparente de tentar interceptar o conteúdo da mensagem.

    O outro ponto fraco é a conexão USB com o programa de atualização. Não resisti e investi alguns minutos fazendo um sniffer também, agora no USB. O caminho pareceu mais promissor por estas bandas … dá para ver claramente o número de série, o IMEI (International Mobile Equipment Identity) e a versão de firmware passando. Também dá para notar alguma coerência nos buffers:

    • Todos os frames que vi começavam com 0×1B. Uma marca de início ou tipo de protocolo usado ?
    • Os dois bytes seguintes são sempre 0×1000 ou 0×0010. Para mim isto indica os nodos de origem e destino (0×10 e 0×00). Os frames abaixo são somente respostas (0×1000) , mas os pedidos são sempre com 0×0010.
    • Seria o quarto byte o comando usado ? Parece consistente com o que vi.
    • O sexto byte é sempre o tamanho dos dados, contando a partir do sétimo byte. Eu chutaria que o quinto e o sexto, na realidade, indicam isso (16 bits), já que o quinto é sempre zero. De quebra, nos daria a dica de que o alinhamento é big endian, comum em chips ARM.

    Mas não dá pra saber se durante o update de firmware não teremos algums encriptação envolvida. De qualquer forma, pode deixar que eu vou ficar atento quando for fazer o update firmware !

    Exemplos de frames capturados:

    Número de serie, devidamente apagado.

    Versão de firmware.

    IMEI, também apagado, mas batendo perfeitamente.

    ??? Os FFs são muito sugestivos … flash ! Seria uma área de memória ?

     
    • Tiago Maluta 11:50 am em Março 24, 2008 Link Permanente

      Marcelo, muito interessante essas informações.

      Espero tentar fazer o mesmo com meu Nokia E62, mas pelo que eu andei vendo no site da Nokia (há apenas para os modelos E61 e E61i) e fuçando no Google, não há disponível a atualização. Mesmo sendo recente, anunciado no final de 2006.

      Procurando um pouco mais nesse blog, pude constatar a prova de fidelidade que a Nokia tem com as operadoras.

      Espero que tenha sucesso em obter o firmware do seu N95.

    • jedizone 3:20 pm em Março 24, 2008 Link Permanente

      Oi Thiago ! Pena não liberarem nada para o E62, que é um aparelho bem legal. No meu caso, a gente gostaria mesmo era de usar o hardware pra colocar outro S.O. (qual ? ;-) ) e a Nokia trava tudo. Um cara da Rússia chegou a conseguir algo com um modelo SX1 da Siemens, mas ele explorou um furo de segurança numa chamada do sistema e teve privilégios para poder colocar um bootloader com Linux. Este furo não existe para o N95. Eu quero ter acesso a imagem para ver se existe alguma coisa nela que evidencie a forma de operação do celular. Se o update se faz via USB, de alguma forma é lida e escrita a flash … vamos ver … Abraço !

    • Jeronimo 9:41 am em Março 25, 2008 Link Permanente

      Marcelo ,
      Que ferramenta voce usou para sniffar a conexão via USB ?

    • jedizone 10:00 am em Março 25, 2008 Link Permanente

      Eu fui muito pragmático, baixei o primeiro que vi com ‘cara boa’ e fácil de usar. No caso, era um shareware com 15 dias de avaliação e captura limitada a 250k.

      http://www.hhdsoftware.com/Products/home/usb-monitor.html

      Não investiguei as opções abertas, como um tal usbsnoop. No fundo, o projeto parecia meio parado.

      http://sourceforge.net/projects/usbsnoop/

  • jedizone 11:25 pm em March 23, 2008 Link Permanente | Responder  

    Es ist nicht einfach 

    Num mundo dominado pelo inglês, resolvi trocar o idioma do meu sistema para alemão, tentando aumentar a minha exposição à língua e aprender alguma coisa. O engraçado são as situações que ando me metendo. Outro dia, tive que colocar um dicionário do lado para usar o OpenOffice, já que não sei todos os menus de cor, como em outras aplicações. Desde ontem ando tendo problemas com o meu sistema. E chovem mensagens “germânicas” toda hora para decifrar, enigmáticas como o produto da própria invenção alemã ! A última foi esta aqui, quando o sistema não partiu o GDM:

    Notem a falta de suporte no sistema para as letras adicionais do idioma, como ü, ö, ä e ß, pra piorar tudo. Bom, deve dar pra entender o que aconteceu, né ? O X-server não partiu devido a “erros internos” e pediram para eu verificar os logs (já que eu sou o admin!), reparar o erro e tentar de novo.

    Não é fácil esta vida … O Ubuntu tá realmente me ajudando a aprender alemão. Será que se eu mudar pro Vista aprendo ainda mais ? :-D

     
    • Ronaldo 11:21 am em Março 24, 2008 Link Permanente

      Sehr gut, Herr Barros.
      Agora eu já sei que X-Server é masculino. E que ele é um bom garoto e te trata formalmente (Bitte starten Sie)…

    • jedizone 11:31 am em Março 24, 2008 Link Permanente

      Fehler é legal … erro ! E starten é regular, note o gestartet !

  • jedizone 10:34 am em March 20, 2008 Link Permanente | Responder  

    Pthreads II – Portando do Win32 Threads e documentação 

    A melhor referência que encontrei sobre compatibilidade e migração entre Win32 Threads e Pthreads foi escrita por dois engenheiros da IBM, Rinivasan Muthuswamy e Kavitha Varadarajan, numa série de três artigos:

    Em alguns momentos são usados outros serviços do kernel, como na parte de semáforos, ao invés das Pthreads. A melhor referência para a API de Pthreads foi POSIX Threads Programming, de Blaise Barney.

    Um fato positivo em usar Pthreads é o suporte no gdb. Se estiver usando uma outra biblioteca, talvez não seja possível fazer uma inspeção do contexto de cada thread, de forma simples. No gdb, experimente info threads para listar todas as threads e thread n para mudar o contexto para a thread n (o número será informado no info thread). Depois, use bt (backtrace) pode mostrar o contexto da thread selecionada.

     
    • John Spartan 10:20 am em Setembro 2, 2009 Link Permanente

      Pode postar algum link de configuração do gdb com o pthread-win32, por favor?
      Fiz a linkagem e compilei. Mas não consigo debugar com o gdb.

  • jedizone 10:49 pm em March 19, 2008 Link Permanente | Responder  

    Pthreads I – Pthreads x Win32 Threads e ThreadX 

    Nada como usar um sistema para entender bem as diferenças, vantagens e desvantagens. Tenho investido um bom tempo nas últimas semanas em usar pthreads no Linux. Confesso que achei o suporte oferecido um pouco básico demais. Parece um conjunto canônico, ortogonal, de onde se pode fazer o resto mas sempre com um pouco de trabalho adicional. Já usei alguns sistemas operacionais de tempo real (RTOS) e também fiz alguns programas com Win32 Threads e todos eram mais flexíveis e com vários recursos. Algumas diferenças:

    • Não existem, por exemplo, eventos como no ThreadX ou Win32 Threads. Isto é, se você deseja ter um bando de tarefas esperando a sinalização de um evento por outra tarefa, você vai ter que implementar isso usando estruturas do Pthreads conhecidas como conditions e mutexes. Para piorar, se você quiser que esta espera seja temporizada, ou seja, que tenha um tempo máximo definido, vai ter que programar um pouquinho mais usando as funções básicas. No Win32 isto se resolve facilmente com chamadas para CreateEvent(), SetEvent() e WaitForSingleObjetct(). No ThreadX, com tx_event_flags_create(), tx_event_flags_set() e tx_event_flags_get().
    • O mutex das Pthreads não tem contagem. E também não aceitam opções de temporização. Sim, foi isso mesmo que você leu. Leia também que terá que implementar tudo isso com mutexes e conditions, mais uma vez. A única coisa temporizada que existe são as tais conditions.
    • Outra coisa que pode atrapalhar está relacionado ao fato de que, se você emitir um sinal e não tiver nenhuma tarefa esperando por este sinal, ele é perdido, provavelmente indo para o limbo, o primeiro círculo do inferno de Dante, por não acreditar que a tarefa existe. Este comportamente é bem diferente do ThreadX e do Win32, onde os eventos não se perdem. Isto pode gerar muitos efeitos colaterais ao se portar um sistema para Pthreadas. É bom ficar atento.
    • Espera por eventos múltiplos, como o WaitForMultipleObjects() do Win32 ou esperar por um conjuntos de eventos do ThreadX via tx_event_flags_get() também não existe. E dá-lhe código pra fazer. Nada impossível, mas precisa ser feito.

    A filosofia que permeia a implementação das posix threads é simplicidade, visando atingir um grande número de sistemas operacionais. Entender o motivo eu até entendo. Mas gostar, eu não gostei muito. É como tomar remédio com gosto ruim. Acabei implementando um mutex com espera e contagem e um evento com espera, já que a minha aplicação dependia inteiramente destes dois tipos de chamadas.

    Em posts futuros detalharei um pouco mais sobre como fazer isto e tentar chegar no purgatório, pelo menos.

     
    • Franz 7:23 am em Março 20, 2008 Link Permanente

      Mr. Marcelo, já está funcionando?
      E o LiveShow que me prometeu?!
      :-)

      Não tive a sorte de usar PThreads, ainda (sic). _beginthreadex() e _endthreadex() ou CreateThread(), EndThread() e seus wait, faz parte do meu show da vida.

      Post futuro interessante. Vai ajudar a aparar certas arestas em implementações futuras.

      [ ]’s

    • jedizone 8:11 am em Março 20, 2008 Link Permanente

      O live show já é possível, inclusive cross compilado. Mas é um show meio capenga ainda … tem uns ‘contornos técnicos’ necessários …

    • Pedro Lamarão 4:25 am em Outubro 11, 2008 Link Permanente

      Parei nesta página buscando por “win32 pthread”. As críticas feitas a pthreads me parecem inadequadas.

      Em primeiro lugar, você está correto no seu primeiro ponto: pthreads não possui um mecanismo de notificação de eventos. pthreads é uma coleção de primitivas de threads e sincronização entre threads.

      Neste ponto, você afirma que pthreads não tem suporte a “espera temporizada”. Estou assumido que você está falando de uma tentativa de travar um mutex com limite de tempo. Procure a documentação de pthread_mutex_timedwait.

      No ponto seguinte, você diz que “pthread não tem contagem”. Não compreendo completamente o que seria esta “contagem”; duas interpretações possíveis me ocorrem.

      A primeira é a de que um thread seja capaz de travar o mesmo mutex N vezes, mantendo a contagem de travas e esperando que ele seja destravado N vezes correspondentes. Para criar mutexes recursivos em pthreads você deve definir um atributo de mutex com pthread_mutexattr_settype para PTHREAD_MUTEX_RECURSIVE e usá-lo na criação do mutex.

      A segunda é a de que você quer um semáforo tradicional. Procure a documetação de sem_init.

      No seu terceiro ponto, você fala em “emitir um sinal pelo qual ninguém está esperando” e como este sinal é “perdido”. Não compreendo o que exatamene é um “sinal” neste contexto; estou assumido que estamos falando de pthread_cond_notify ou pthread_cond_broadcast.

      condition variables não são ferramentas de comunicação entre threads; são ferramentas de sincronização de threads. Esta ferramenta, em particular, serve ao caso de um thread desejar perceber uma mudança de estado no programa, e desejar fazer isso atomicamente.

      Suponha que haja uma função utilitária pred que inspeciona o estado do programa e retora true quando o estado se tornou interessante. A forma de usar condition variables para perceber essa transição de estados atomicamente é:

      extern pthread_mutex_t mutex;
      extern pthread_cond_t cond;

      pthread_mutex_lock(&mutex);
      while (!pred())
      pthread_cond_wait(&cond, &mutex);

      Quando o controle sair do loop, pred() == true e o mutex está travado.

      De fato, POSIX não especifica um mecanismo universal de observação de “eventos” em todo tipo de fontes de “eventos” presentes no sistema; seria desejável que houvesse uma função análoga a poll capaz de esperar pela expiração de timers, pelo destravamento de mutexes, pela notificação de condition variables etc.

      Porém, sugiro comprar um bom livro sobre primitivas de threads e consultar a documentação do POSIX antes de fazer comentários sobre a qualidade desta API.

      http://www.opengroup.org/onlinepubs/009695399/toc.htm

    • jedizone 3:26 pm em Outubro 11, 2008 Link Permanente

      Segundo esta documentação:

      https://computing.llnl.gov/tutorials/pthreads/

      quem tem espera temporizada são condition e não mutexes. Combinações de mutexes e conditions podem fazer a espera temporizada, com uma programação adicional.

      infelizmente a api não cobre semáforos, somente mutexes. O semáforo vem do kernel e torna a api menos portável já que terá que criar isto dependente da sistema. Semáforos com contagens são interessante em várias situações e gostaria de tê-los nas pthreads.

      A documentação fala o seguinte sobre sinais “The pthread_cond_broadcast() and pthread_cond_signal() functions shall have no
      effect if there are no threads currently blocked on cond.”. Este é o ponto. Gostaria que este sinal fosse persistente, mesmo que uma tarefa não esteja esperando por ele.

      E, ao contrário do que possa pensar, li toda a documentação e testei a maior parte das funções, antes de escrever isso aqui.

  • jedizone 4:26 pm em March 19, 2008 Link Permanente | Responder  

    Mudanças no acesso do Pidgin ao Google Talk/Jabber 

    Estranhamente a forma de conexão ao Google Talk via cliente Pidgin mudou nos últimos dias. Estou colocando o setup aqui, já que outras pessoas devem ter passado por isto também. A porta mudou, não é mais 5223.

     
    • Franz 8:28 am em Março 20, 2008 Link Permanente

      Não uso o flag para “forçar” 5223 e utilizo a porta 5222.

      [ ]’s

  • jedizone 10:51 am em March 13, 2008 Link Permanente | Responder  

    O velho Eee PC 

    Enquanto eu passo meus dias pensando em comprar um Asus Eee PC, não resisti e acabei tirando uma foto deste velho “laptop”, um Toshiba T1960C, com processador 486DX, duas horas de autonomia (dizem que o Kevin Mitnick usou um destes já, que foi apreendido pelo FBI …).

    Disquete, mouse destacável, LCD colorido, branco, MS DOS 6.20, MS Windows 3.11, 200MB de disco, 4MB de RAM (mais detalhes aqui, link muito difícil de encontrar, por sinal) … Ei, isto é um Eee PC também, apenas com menos memória !

    Confesso que quase desanimei :-D

    Update: Link com bons argumentos a favor do Eee PC: eu quero um Asus Eee PC
    e um teste de resistência e temperatura.

     
    • Franz 10:38 am em Março 14, 2008 Link Permanente

      TyTN II

      Não fui com a cara deste Asus Eee PC e equivalentes.

      [ ]’s
      Franz

    • jedizone 6:17 pm em Março 14, 2008 Link Permanente

      São aparelhos com finalidade diferentes, Franz.

      Depois de ter um N95, fica claro que, quanto a navegação, pacote office e email, ele serve para emergências. Algo mais sério ou de duração maior, só com outro dispositivo mesmo. Não tem ainda um smartphone que faça estas tarefas bem e de forma confortável. Tenho dúvidas se o TyTN II vai cobrir isto, é testar pra ver (compra logo o seu !).

      Um notebook decente de 12 a 13 polegadas custa uma fortuna. Uma fortuna pra ler email e navegar na internet. Nestes casos, um Eee PC foi uma grande sacada. Prova disso é sucesso de vendas e os vários concorrentes que estão chegando no mercado.

    • Franz 12:15 pm em Março 15, 2008 Link Permanente

      Vou esperar o TyTN II ser vendido avulso.
      Quero ver o N96 tb.
      Eu entendo o que vc deseja. Parece uma boa opção o Eee PC. Só não pode exigir muito dele; vc sabe que isto vai ocorrer, já que será sua única opção em mãos.

      [ ]’s

    • jedizone 4:43 pm em Março 15, 2008 Link Permanente

      tenho andado atento ao meu uso típico pra tomar esta decisão. Trabalho pesado somente na smar. Em casa não ando tendo nem tempo pra nada que exija poder de processamento.

c
escrever novo post
j
próxima postagem/ próximo comentário
k
postagem anterior/comentário anterior
r
responder
e
editar
o
mostrar/esconder comentários
t
voltar ao topo
l
vá para login
h
show/hide help
esc
cancelar