31 de dez de 2013

Positivo Premium S6040 - crítica e avaliação



Comprei este laptop há umas semanas e já foi decepcionante o fato de, assim que ligar, o computador, levar um tempão para abrir o Internet Explorer (para instalar o Chrome). Após começar a usar o Chrome, notei que vídeos ficavam com atraso e muitas vezes, tarefas simples como mudar de aba, viravam um martírio. O problema é vir com 2 GB, comprando, à parte, um pente a mais de memória, somando 4 GB, fica mais agradável de usar.

Hardware do Positivo Premium S6040 (faltando chipset: HM67fonte)


Como o hardware em si não parece ruim para o meu uso (eu tinha um laptop com as mesmas configurações, praticamente, exceto que era Dual Core, em vez de I3), decidi instalar outro Sistema Operacional. Então, descobri que esses laptops vêm com um sistema de controle do sistema operacional que meio que obriga ao uso do Windows 8, como se fosse especialmente desenvolvido para ele (meio mesmo como são os celulares, apesar de que é possível fazer dual boot em celular, mas bem menos comum que em computadores). A questão é que claramente o Windows 8 não é adequado para esta máquina, pelo menos não o de 64 bits e, como o computador não acompanha um CD/DVD de instalação do Windows, só complica na hora de formatar e retornar às configurações de fábrica em caso de querer cobrar da garantia.

Parabéns, seus direitos foram eliminados
Antes de instalar outro SO, reclamei da lentidão no suporte da Positivo. Eles não disseram se era normal ou não (seria complicado admitir assim que o sistema é lento porque foi mal dimensionado), apenas falaram para eu realizar uma operação de reinstalação do sistema através do próprio Windows 8. Claro que não adiantou nada, só me fez perder tempo, porque eu quase não alterei nada da configuração de fábrica, só instalei o Chrome e olhe lá. Após uns dois dias de uso, a lentidão foi ficando menor, só com uns picos durante o uso, pode ser a  indexação, mas, mesmo assim, os picos de lerdeza davam nos nervos (e vídeos continuavam com lag).

Instalei o Ubuntu 12.04 aos trancos e barrancos aqui e está funcionando perfeitamente. Vou esperar o ano da garantia para tentar o Windows 7 ou mesmo rasgar de vez esse Windows 8 "personalizado" com vários aplicativos inúteis da Positivo (no estilo, aplicativo de impressora, que também servem mais pra atrasar do que para nossos objetivos em si).


Sobre o computador em si, achei as teclas muito pequenas, em especial, em comparação com o computador que tive antes, cujas teclas preenchiam todo o espaço do teclado, enquanto essa tem uns espaços entre as teclas que, sinceramente, não entendo o porquê. Outro detalhe aparentemente negativo da carcaça é a bateria, que não pode ser removida. O computador é fino, provavelmente, por causa disso e leve. A bandeja do dvd parece ser bem frágil, mas não é algo que se use muito em computador hoje em dia, então, se comprar, é só tomar cuidado.

Gostaria de adicionar um detalhe sobre LEDs, que são inexistentes neste computador, sendo que o único está no botão de ligar/desligar e fica azul quando a bateria está ok e vermelho quando carregando. Quem já mexeu com Dell sabe que tem LED até para a caixa alta (Caps Lock) e meu modesto Philco anterior tinha lá seus quatro LEDs (ligado, wifi, bateria e leitura no HD, além do LED ao lado da câmera) e, para mim o LED de Wifi que realmente faz falta.

Passado o ano da garantia, você poderá aumentar a memória até 16 GB (segundo o Extra), o que pode refletir num melhor desempenho no Windows 8. Uma dica válida para quem quer encarar o Windows 8 é desinstalar por completo todos os aplicativos da Positivo. O boot, que supostamente é mais rápido, pela própria tecnologia do Windows 8, acabou sendo uma maquiagem: a tela de login aparece incrivelmente rápida, mas, para você conseguir mexer no computador mesmo, vai ter que esperar uns bons 10 minutos, porque, a cada aplicativo que você carregar antes disso, ele vai ficando ainda mais congestionado. Ele abre o aplicativo (depois de um tempinho), mas funciona muito lento.



Para quem quer arriscar, a boa é o Windows 7 ou o Ubuntu 12.04 (este último permite o dual boot com o Windows 8, mas ainda não é muito estável, por conta da BIOS dedicada), lembrando que a Positivo assegura a garantia de HW independentemente de SW. A sugestão é colocar outro pente de memória de 2 GB (que não entendo por que não vem de fábrica).

12 de dez de 2013

SchemeEddy no Linux

1) Faça download do VB6
2) Tenha o winetricks

Ao abrir o SchemeEddy diretamente pelo wine, ele dá uma mensagem de erro:

:$wine SchemeEddy.exe
err:module:import_dll Library MSVBVM60.DLL (which is needed by L"Z: \\home\\Desktop\\SchemeEddy.exe") not found

Dê o comando winetricks no terminal e selecione "Select the default wineprefix" e, depois, "Install a Windows DLL or component". Selecione vb6run.


Ele dará uma mensagem de erro dizendo que você precisa baixar manualmente e abrirá uma janela do navegador com o link do download.

Executing w_do_call vb6run
Executing load_vb6run
Foi criada uma nova janela em uma sessão existente do navegador.
------------------------------------------------------
Please download VB6.0-KB290887-X86.exe from http://download.cnet.com/Service-Pack-6-for-Visual-Basic-6-0-Run-Time-Redistribution-Pack-vbrun60sp6-exe/3000-2206_4-10726557.html?tag=downloadRatingModule;summaryRatings, place it in ~/.cache/winetricks/vb6run, then re-run this script.

Baixe-o se ainda não tiver feito e mova o arquivo para a pasta ~/cache/winetricks/vb6run:

:$mv VB6.0-KB290887-X86.exe ~/.cache/winetricks/vb6run

Repita o procedimento com o winetricks. Uma janela do Windows deve aparecer para confirmar a instalação do VB6. Ao terminar, ele volta para a janela inicial do winetricks. É só cancelar. O SchemeEddy deve funcionar normalmente.


27 de nov de 2013

Mapas de Worms Armageddon no Gimp

1 - Selecione um tamanho válido (padrão: 1920 x 696)
2 - Faça sua arte
3 - Clique em Imagem .. Modo .. Indexado e selecione um número máximo de cores menor ou igual a 113.




OBS: Número de cores
até 64 - tudo ok
65 - 96 - sem as folhinhas ao fundo
97 - 112 - sem marca d'água de mapa destruído
(Fonte: Worms2d)

4 - Definir uma cor para o preto puro. É provável que, ao salvar seu png com 113 cores, o mapa fique com vários pontos pretos onde deveria ser vazio (preto puro, que é entendido como transparência para o WA). Para resolver isso (fonte: Worms2d), abra o Mapa de Cores (Janela .. Diálogos de Encaixe .. Mapa de cores)


E modifique o primeiro tom para preto puro (000000). Faça isso clicando duas vezes no tom de índice 0, modifique o seu código HTML para 000000 (ou o RGB para 0,0,0) e dê OK.




Jogar Worms Armageddon no Linux

Requisitos:
-Wine (digite no terminal wine --version para saber a versão, se não tiver instalado, instale-o)
-WA by Kaleu
-Play Worms Armageddon on linux by Lookias

Instale o WA usando o instalador do Kaleu através do Wine. Ele já vem como padrão a pasta C:/, não modifiquei isso, mas, caso modifique, esteja atento que C: corresponde à pasta /home/[seu usuário]/.wine/drive_c/ no Linux e Z: à raiz (Z:/home é o /home/)

Pode ser que você precise usar o botão direito, abrir com.. Wine.
Mas o Wine deve estar como padrão, como na figura acima
(Abrir com Carregador de aplicativos Windows Wine)
Para rodar, abra o Play WA on linux e digite a localização do WA.exe em um dos slots (veja a figura abaixo). Se tiver instalado na pasta C:, digite /home/[seu usuario]/.wine/drive_c/Team17/Worms Armageddon/WA.exe. Clique no símbolo amarelo.



Note que se você clicar nos retângulos dos slots, muda a resolução que abrirá a janela do Wine. O padrão é tela cheia (mas não se engane, ele abre uma tela cheia em branco e o jogo em si em outra tela).

 Para que a tela não fique cortada, use a resolução 800x600 dentro do jogo (a menos que sua resolução seja maior que 1024x768). Uma dica para melhorar a performance é colocar as barras de relógio e coisas do tipo como Ocultar automaticamente (no Gnome, tem que clicar com Alt+Botão direito na barra e escolher propriedades).


OBS: Para abrir a pasta do WA, vá no terminal e digite nautilus /home/[seu usuário]/.wine/drive_c/Team 17/ . Lá, você poderá adicionar mapas e esquemas. Recomendo fazer um atalho (link) para esta pasta e deixar num local mais acessível de maneira que você poderá acessar fácil sem ter que entrar pelo terminal:

PS: Rubberworm
Instalei o WormKitDS copiando os arquivos na pasta onde fica o WA.exe e, depois, instalei o Rubberworm. Funcionou parcialmente, liberando a corda ninja do w2, mas sem o /arrows.

23 de nov de 2013

w2roper

Esquemas w2 roper para Worms Armageddon (clique no link com o botão direito e salvar link como se estiver usando o Chrome)
-Padrão (13s,terreno destrutível,z55,7s de recuo, primeira rodada = posicionamento,mina aleatória)
-Com Furadeira (4 minas, furadeira com 5 estrelas)
-Xtreme W2 (12s, 5s de recuo, fd aumentado, sem mina aleatória, primeira rodada sem armas, posicionamento aleatório. ATENÇÃO: Necessita da instalação do Rubber Worm)

Sobre o Rubber Worm. Permite rodar o jogo com a gravidade do worms2 através do comando /ir no jogo online. 

















22 de nov de 2013

50 anos de Doctor Who

Google fazendo sua homenagem com um Doodle super complexo. Meus parabéns.


13 de nov de 2013

Preços de Estacionamentos no Rio

Me ajudem a atualizar essa tabela de preços de vagas de estacionamentos na cidade do Rio já que a maioria dos estabelecimentos não divulga pela internet esses preços e, para a maioria, é uma (ingrata) surpresa. Informação aliada ao planejamento é a melhor forma de se economizar dinheiro e pressionar os preços para baixo.

29 de out de 2013

Mudar TextView com aplicação em Android

No post anterior, vimos como obter um conteúdo da interface Android para dentro do processamento em Java. Agora, o objetivo é processar algo e retornar para a interface, alterando-a conforme o resultado.

3 - Processando a resposta
O processamento é um raciocínio meramente algorítmico. Temos que criar um número aleatório e verificar se é ímpar ou par.:

  1. int numero = (new Random()).nextInt(50);
  2. int resultado = numero % 2;

A variável "numero" recebe um número aleatório criado pelo método nextInt (cujo parâmetro é o número máximo somado de 1, desde 0, que poderá ser sorteado, ou seja, nextInt(50) é um número entre 0 e 50, excluindo o 50) e que precisa da importação de java.util.Random, a própria IDE deve reclamar disso, pondo um ponto de erro na linha e uma sugestão de correção com a importação.

  1. import java.util.Random;

Este código vai na MainActivity.java, conforme explicado no post anterior.

4 - Exibindo a resposta modificando a interface
Usando uma interface simples, vamos alterar o texto "Hello World!" para "Cara" ou "Coroa", se a variável "resultado" for igual a 1 ou 0, respectivamente (ou vice-versa). Para alterar o conteúdo, é preciso armazenar o "ID" do elemento da interface usando o método findViewById. O código fica o seguinte:

  1.     /** Chamado ao pressionar OK */
  2.     public void processar(View view) {
  3.         TextView editText = (TextView) findViewById(R.id.textView1);
  4.         String mensagem = editText.getText().toString();
  5.         int numero = (new Random()).nextInt(50);
  6.         int resultado = numero % 2;
  7.         if(resultado == 0){
  8.                 mensagem = "Cara";
  9.         }
  10.         else{
  11.                 mensagem = "Coroa";
  12.         }
  13.         editText.setText(mensagem);
  14.     }

A variável "mensagem" é iniciada com o conteúdo "Hello World!" só para aproveitar o código do último post. Poderia ser vazia. A "editText" identifica o elemento (como um form) que contém o texto e possui um método para alterar o texto desse elemento, que é usado na última linha, o setText().

Vamos aprimorar a interface e, em vez de mostrar o resultado com texto, vamos mostrar uma moedinha mesmo (sem animações, só a figura mesmo, mais informações sobre figuras no site do Android Developer).

Primeiro, você deverá trazer suas figuras de cara e coroa para o acervo de imagens. Para isso, copie as imagens desejadas e, no Eclipse, na pasta res/drawable-hdpi (pode ser também mdpi ou ldpi, vi aqui), clique com o botão direito e cole. Atenção ao tamanho das figuras, que deve ser pequeno. Para mais informações, existe uma série de explicações no Android Developer. Quanto à extensão, consegui com .gif e com .png como pode ser visto na figura abaixo.

ic_action_cara.png foi uma tentativa frustrada de carregar
a imagem pelo Create New Icon do Eclipse.
Só consegui mesmo copiando e colando na pasta drawable
Volte ao activity_main.xml e escolha Graphical Layout. Clique na caixa suspensa "Image & Midia" e, em seguida, arraste para a tela do aplicativo o ImageView. Selecione uma imagem qualquer para ser a imagem inicial do programa (eu usei o ícone do programa). Conforme o resultado, essa imagem mudará para a imagem de cara ou de coroa seguindo os passos a seguir.

No MainActivity.java, antes do if que avalia o resultado, crie um objeto para receber a imagem padrão.

  1. ImageView imagem = (ImageView) findViewById(R.id.imageView1);

Dentro do correspondente if/else, mude o conteúdo do objeto para a imagem de cara ou de coroa:

  1. imagem.setImageResource(R.drawable.nome_arquivo_cara_ou_coroa); //OBS: Sem o .png

O método fica, então:

  1.  /** Chamado ao pressionar OK */
  2.     public void processar(View view) {
  3.         TextView editText = (TextView) findViewById(R.id.textView1);
  4.         String mensagem = editText.getText().toString();
  5.         ImageView imagem = (ImageView) findViewById(R.id.imageView1);
  6.         int numero = (new Random()).nextInt(50);
  7.         int resultado = numero % 2;
  8.         if(resultado == 0){
  9.                 mensagem = "Cara";
  10.                 imagem.setImageResource(R.drawable.cara);
  11.         }
  12.         else{
  13.                 mensagem = "Coroa";
  14.                 imagem.setImageResource(R.drawable.coroa);
  15.         }
  16.                 editText.setText(mensagem);
  17.     }

Resultado:

Tela Inicial

Apresentação do resultado

5 - Instalando o aplicativo no celular
No Eclipse, na esquerda, onde ele mostra os diretórios, vá em bin/res e copie o caraCoroa.apk (ou o nome que você deu a seu projeto) para o celular. Abra-o no celular e instale.

Fontes de Consulta:
Stack Overflow
Mkyong.com

28 de out de 2013

Criando meu primeiro aplicativo de Android

O primeiro passo é, naturalmente, a instalação. Na página do kit de desenvolvimento do Android (developer.android.com), baixe o pacote completo (Eclipse+Máquina Virtual+ambiente Android), é um arquivo bem grande (453 MB), então demora um pouco para baixar. No Linux, a instalação consistiu somente de dezipar o arquivo. Para abrir o kit de desenvolvimento, vá na subpasta eclipse e clique duas vezes sobre o programa eclipse.




Ao abrir, ele pergunta sobre a workspace. É nesse caminho que ficarão os arquivos de código gerados e o arquivo final para rodar seu programa (o .apk). Selecione o seu caminho de preferência (dica, se usa dropbox, use uma pasta dentro do seu diretório de sincronia).

Tudo instalado e configurado, vamos partir para o desenvolvimento de um aplicativo simples. A filosofia de programação em Android é similar à de .NET ou qualquer cliente-servidor. A parte de interação com o usuário é feita com um XML (com muitos dos componentes são gerados automaticamente pela IDE, ou seja, pelo Eclipse), fazendo o papel da página web analogamente, e os cálculos  são rodados em Java, através de requisições enviadas pelo XML. Isso vai ficar mais claro com o exemplo prático.

O aplicativo consiste em um "Cara ou Coroa", com basicamente duas interfaces:
- A interface inicial, onde o usuário pode tocar em um botão para ativar o programa
- A interface de resultado, que mostra uma moeda com a cara ou o número virado para cima e um botão para repetir o procedimento.

O cálculo não é complicado, basta fazer um programa que sorteie um número aleatório e obtenha o resto da divisão dele por 2. Se o resto for 0, o resultado é cara, se for 1, coroa (ou vice-versa).



Agora, mãos à massa. Os passos seguidos aqui são um resumo do guia presente no developer.android.com. Clique em New Android Application e preencha os espaços para decidir o nome da aplicação (pode deixar os outros campos com o padrão) e avance. Na segunda janela de configurações, também deixe tudo como está e avance. A terceira janela é para decidir o ícone que vai aparecer na lista de programas no celular.



 Para se localizar, aqui vai uma explicação sobre os principais dentre vários diretórios criados automaticamente ao criar uma nova aplicação (mais informações na página oficial).

  • src: arquivos .java para a programação propriamente dita. Possui um arquivo MainActivity.java que cria a tela inicial do programa (o nome MainAcitivity pode mudar, se você alterar algumas das configurações padrão)
  • gen: possui arquivos gerados, incluindo o importante R.java, que intermedeia algumas operações.
  • res/layout: os XML que descrevem as telas do programa. Por padrão, tem um activity_main.xml. Ao abrir um dos arquivos dessa pasta, há as opções Graphical Layout e nome_do_arquivo.xml, o primeiro com uma visão gráfica, com possibilidade de arrastar e soltar forms e o segundo com o código gerado para mostrar esses forms. 
  • res/values: para entrar com valores na interface (por exemplo, activity_main.xml), é preciso cumprir a burocracia de criar uma variável e definí-la dentro dessa pasta (por exemplo, strings.xml) ou então a IDE vai dar warning. Abra no activity_main.xml a parte de código e procure pela tag TextView e confira como o texto "Hello World!" está referenciado como uma string dentro da pasta string e não diretamente (android:text="@string/hello_world").

1 - Criação de um botão
Abra o arquivo activity_main e ative o Graphical Layout. Na janela Form Widgets (veja a figura anterior), clique em Button e arraste para a área em branco ao lado. Perceba que ele vai dar Warning, pois ao botão é automaticamente atribuído o text="Button". Vá em values/strings e adicione uma string, de nome botao_ok e valor "OK". Volte ao activity_main e troque android:text="Button" por android:text="@string/botao_ok". Se o Warning não desaparecer instantaneamente, clique no menu superior em Project e selecione Clean. 

[I18N] Hardcoded string "Button", should use @string resource:
Warning caso não use uma variável para o texto
2 - Resposta do botão ao toque
No activity_main, adicione o atributo android:onClick="processar" (sim, é sensível a maiúsculas). Vá em sec/MainActivity e adicione o seguinte trecho:

/** Chamado ao pressionar OK */
public void processar(View view) {
    // codigo sera inserido aqui
}
(adaptado de Android Developers)

Ele indicará erro, clique no apontador do erro e corrija importando a classe View. Alternativamente, pressione Ctrl+Shift+o para corrigir erros de importação.


Dentro do método processar, adicione 

Intent intent = new Intent(this, Sortear.class);
A IDE deve reclamar de dois erros, um da eportação do Intent, e a inexistência da classe Sortear (View cannot be resolved to a type).

OBS - Configurando o dispositivo de debug

Para fins de teste (e para configurar o dispositivo, real ou virtual, que vai rodar nossos programas), vamos rodar um programa muito simples. Esqueça, por enquanto, o Intent.

/** Chamado ao pressionar OK */
public void processar(View view) {
       //Intent intent = new Intent(this, Sorteio.class);
     TextView editText = (TextView) findViewById(R.id.textView1);
     String mensagem = editText.getText().toString();
}
Coloque um breakpoint na linha TextView editText = (TextView) findViewById(R.id.textView1) (para quem não sabe o que é um breakpoint, é só clicar ao lado da linha (na parte laranja). Quando rodar o programa em modo debug, o programa irá parar onde você marcou).


Eu, particularmente, não consegui rodar o dispositivo virtual. Usei um celular para rodar no dispositivo real. Para fazer isso, antes, você deve ir nas configurações do seu celular, em Aplicativos e, depois, em Desenvolvimento, e ativar a opção Depuração USB. Com essa opção marcada, ao conectar seu celular ao computador pelo cabo USB, deve aparecer na área de notificações. Então, quando você mandar rodar o programa (Run, Debug (F11)), o programa irá rodar no seu celular (cria automaticamente, um ícone no seu painel de aplicativos).




Voltando ao nosso teste, clique em Run e Debug e selecione o dispositivo. A tela da interface (um texto e um botão de OK) deve abrir no celular.


Aperte no OK e a execução do programa será pausada no breakpoint (veja a IDE). Aperte em Step Over duas vezes e posicione o mouse em cima da variável "mensagem" do MainActivity.java. Perceba como a variável recebeu o texto de um elemento da interface no Android. A partir dessa ideia, podemos operar entre a interface (XML) e o processamento (Java).






OBS - Criando um dispositivo virtual (Linux)
Ao rodar o dispositivo virtual (Window, Android Virtual Device Manager), tive o seguinte erro:
Failed to load libGL.so
error libGL.so: cannot open shared object file: No such file or directory
Solucionei com o comando sudo apt-get install libgl1-mesa-de (mais informações, clique aqui). O Arquivo libGL.so pôde ser encontrado em /usr/lib/i386-linux-gnu

Para o próximo post:
3 - Processando a resposta

4 - Exibindo a resposta

26 de out de 2013

Como usar o nome do artigo como variável em linguagem Wiki (wikitext)

Para se referir ao título do artigo no meio do texto de forma genérica, basta usar o código {{FULLPAGENAME}} onde o nome deve ser escrito (funciona na Wikipédia e em Wikis na Wikia). Por exemplo:

Título: Antedeguemon
Corpo: Este é o artigo sobre {{FULLPAGENAME}}.
Resultado: Este é o artigo sobre Antedeguemon.

Fontes de consulta:
http://en.wikipedia.org/wiki/Wikipedia:Page_name
http://www.mediawiki.org/wiki/Help:Magic_words#Page_names

22 de out de 2013

So long, isoHunt, and thanks for all the fish


Hoje, tive a desagradável surpresa de ver o torrent fora do ar e a notícia pode ser encontrada no blog do criador, assim como em sites de grandes jornais... Quero agradecer aqui por toda a cultura propiciada e pelo entretenimento que, apesar de ter acesso pela TV paga, é veiculado de forma ultrapassada e com milhões de comerciais, atrasos, repetições e falta de legendas (lalalalafoxlalalanicklala). Vida longa aos torrents e ao pirate bay...

Quem sou eu

Raphael Fernandes
Carioca, Brasileiro, Estudante de Robótica
Hiperativo, Imperativo
Gosto de tecnologia, de transporte, de Rock, de reclamar e de propagandas criativas (e outras coisas que posso ter falado em um post ou não)
Musicalmente falando, sou assim.

Related Posts Plugin for WordPress, Blogger...

Veja também...