11 de outubro de 2013

PHP - Quebra de linha utilizando a função Echo

Para realizar a quebra da linha, o comando "\n" por vezes é ignorado pelo navegador, portanto o uso do <br /> é indispensável:

Ex:
echo("Linha1 <br />\n Linha2");

Mysql - Definir próximo número em auto incremento

Execute:
ALTER TABLE nome_tabela AUTO_INCREMENT=5;

O próximo valor que receberá o auto-incremento será 5.

5 de outubro de 2013

26 de setembro de 2013

PHP - Fazer upload de arquivos maiores que 2MB


Para aumentar a capacidade de upload é necessário alterar o arquivo php.ini:

upload_max_filesize=64M
post_max_size=64M

max_execution_time = 120
max_input_time = 120

Note que é importante aumentar o tempo de execução, no caso, em 120 segundos, pois isso será necessário para arquivos maiores.
Neste exemplo o tamanho foi aumentado de 2MB para 64MB.
Esse exemplo funciona também para o wordpress.

Não esquecer de reiniciar o servidor apache para que as modificações tenham efeito.

21 de setembro de 2013

Linux - Interface Gráfica No Ubuntu Server 12.04

Para instalar a interface gráfica basta:

# sudo apt-get install ubuntu-desktop

Para instalação mínima:

# sudo apt-get install --no-install-recommends ubuntu-desktop

Uma sugestão de interface bastante leve:

# sudo apt-get install --no-install-recommends lubuntu-desktop
ou
# sudo apt-get install lubuntu-desktop

18 de julho de 2013

Android - Como evitar erro ao abrir menu automaticamente no onCreate()

Para evitar o erro quando chamamos o método openOptionsMenu() no dentro do onCreate, basta utilizarmos um Handler().

 new Handler().postDelayed(new Runnable() {  
   public void run() {  
     openOptionsMenu();  
   }  
 }, 1000);   

Neste caso, assim que executar o método onCreate(), o menu será inflado automaticamente.

14 de julho de 2013

Android - Caixa de diálogo com botões



 import android.app.AlertDialog;  
 import android.content.DialogInterface;  

 AlertDialog.Builder builder = new AlertDialog.Builder(this);  
 builder.setMessage("Are you sure?");  
 builder.setTitle("Warning");  
 builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {  
    public void onClick(DialogInterface dialog,int which) {  
                 dialog.cancel();                           
  }});  
 builder.setNegativeButton("No", new DialogInterface.OnClickListener() {  
    public void onClick(DialogInterface dialog,int which) {  
                 dialog.cancel();                            
  }}).create().show();  

17 de junho de 2013

Excel - Como acessar a escalação de um time do Cartola FC através do VBA

No VBA é possível declarar um objeto do Intenet Explorer. Para isso acesse Ferramentas > Referências, na tela do VBA, que pode ser acessada pelo atalho (Alt+F11) no Excel.


Aparecerá a seguinte tela:


Habilite a função "Microsoft Internet Controls" e depois clique em "OK".

Insira um Módulo para facilitar o desenvolvimento:

Com um módulo, suas funções ficam visíveis para todas as planilhas.

Importante: Para a macro funcionar é necessário estar logado no Cartola: Faça o login no Internet Explorer. https://loginfree.globo.com/login/438

Insira a seguinte função no módulo recém criado:
 Sub navega_cartola_fc()  
   Dim navegador As Object  
   Dim time As String  
   Set navegador = New InternetExplorer  
   time = "chupinsco-fc" 'Digite aqui o time  
   navegador.Navigate "http://cartolafc.globo.com/#!/time/" + time  
   While navegador.Busy  
   Wend  
   Dim r, c As Integer  
   Dim elemCol as object
   Set elemCol= navegador.Document.getElementsByTagName("tbody")  
   Application.Wait TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 3)  
   For r = 0 To elemCol(0).Rows.Length - 1  
     For c = 0 To elemCol(0).Rows(r).Cells.Length - 1  
       ActiveSheet.Cells(r + 1, c + 1) = _  
        elemCol(0).Rows(r).Cells(c).innerText  
     Next c  
   Next r  
   Set elemCol = Nothing
   Set navegador = Nothing
 End Sub  

Para executar, basta pressionar F5, depois de clicar em parte interna do código.

Explicando seu funcionamento:
1. Um objeto tipo Internet Explorer é instanciado (navegador = New InternetExplorer)
2. Uma variável string time é criada, no caso o complemento do time Chupinsco FC que é (time = "chupinsco-fc"). Este é o nome do time da forma que aparece no link do Cartola. Essa variável pode ser modificada para qualquer time desejado.
3. O comando "Navegador.Navigate" é utilizado para acessar determinado link através do objeto.
4. A expressão "While navegador.busy : Wend" faz com que a aplicação aguarde até que o Internet Explorer não esteja mais ocupado carregando o link.
5. As variáveis "r" e "c" são instanciadas como inteiros. Elas representam a referência da "Coluna/Col" e "Linha/Row"
6. Um objeto elemCol é instanciado, para representar um elemento adquirido através da função método "getElementsByTagName". Com essa função, é localizado no código fonte da página todos os Elementos existentes com a palavra "tbody". Isso representa que todos os elementos tipo tabela <tbody> são armazenados no objeto "elemCol".
7. Um comando de espera, como o Aplication.wait é inserido a fim de evitar problemas na hora de carregar o objeto elemCol.
8. Dois laços tipo For são encadeados com as varíáveis "r" e "c" para correr entre o total de linhas "elemCol(0).Rows.Length" e pelo total de colunas "elemCol(0).Rows(r).Cells.Lenght".
9. O que retorna o valor de cada conjunto (linha, coluna) da tabela HTML é a função "innerText". No caso o elemCol(0) <- O primeiro elemento representado por zero, que corresponde a tabela do time.
Para representar uma linha e coluna: elemCol(0).Rows(r).Cells(c).innerText.
10. O comando ActiveSheet.Cells(r+1,c+1) representa a posição em que será atribuído o valor correspondente da tabela que está em HTML.

Neste exemplo o resultado no Excel para este fluxo é:


9 de junho de 2013

Excel - Como desabilitar avisos e aleras em macros

Quando criamos macros e não queremos que o excel exiba alertas como:
Devemos desativar no início do código o seguinte método:

Application.DisplayAlerts = False

8 de junho de 2013

Excel - Variáveis de Ambiente utilizando o comando Environ

Um comando muito útil é o Environ. Com ele é possível retornar variáveis de ambiente, como o nome de usuário por exemplo:

nome_usuario = Environ("USERNAME")

Outras variáveis como: "COMPUTERNAME", "TEMP", "USERPROFILE", "SYSTEMDRIVE" também podem ser retornadas.
Com o nome do usuário é possível, por exemplo, criar uma macro para controle de alterações em planilhas.

7 de junho de 2013

Excel - Desabilitar movimentação de tela e aumentar desempenho de macro

Se for desejado que o usuário não veja o que a macro está fazendo, ou então, para aumentar significativamente a performance da macro, é possível desativar no ínicio do código o método ScreenUpdating:

Application.ScreenUpdating = False

Assim, o usuário só verá o resultado final da Macro.

6 de junho de 2013

Excel - Mensagem ao selecionar uma célula utilizando validação de dados

Uma forma simples e útil de exibir uma mensagem ao selecionar uma célula é utilizando a validação de dados. Selecione a célula, ou conjunto de células, que deseja adicionar uma mensagem e clique no ícone de "Validação de Dados" que está na aba "Dados" do Excel 2007/10:


Uma janela irá aparecer, basta clicar na aba "Mensagem de Entrada" e digitar a mensagem desejada:


Quando se clicar na célula em que foi configurada a validação, a mensagem aparecerá:


Excel - Uso do PROCV para buscar valores em outra página

A função PROCV é extremamente útil para buscar valores correspondentes em um conjunto de dados. Existem alguns cuidados necessários para o seu uso.
Neste exemplo a "Coluna B" da "Plan1" busca valores correspondentes da "Coluna A" na aba "Plan2".
Abaixo, na "Plan2", uma simples tabela com localidades e valores.


Na "Plan1" é inserida uma fórmula com PROCV para buscar os valores correspondentes na "Plan2".


Neste exemplo é necessário inserir a fórmula na "Coluna B" para cada linha que seja necessário buscar um valor na "Plan2". Um cuidado especial para a forma de digitar, pois deve corresponder exatamente ao conteúdo da "Coluna A" da "Plan2", caso contrário, um erro de localização é apresentado:


Entendendo a fórmula PROCV:

valor_procurado: Célula que corresponde ao valor a ser buscado
matriz_tabela: Conjunto de dados, onde o valor procurado está na primeira coluna. No caso "Plan2!A:B".
núm_índice_coluna: Coluna que retorna o dado buscado. No caso "2" pois é a segunda coluna, correspondendo a "Coluna B" da "Plan2".
[procurar_intervalo]: "0" indica correspondência exata, ou seja, retornar se encontrar exatamente o valor na "Coluna A" da "Plan2"


5 de junho de 2013

Android - Função simples para fazer a aplicação aguardar

Com esta função abaixo, a aplicação fica parada até que o número de segundos seja alcançado; Funciona como comandos tipo delay ou sleep.
 void Espera (int Segundos){  
      long Tempo = System.currentTimeMillis();  //Inicializa com a hora do sistema
      while(System.currentTimeMillis() < Tempo+(Segundos*1000));  
 }  
Para chamar a função basta Espera (2); Neste caso a aplicação fica parada ou dormindo por 2 segundos.


4 de junho de 2013

Android - Intent para abrir navegador, telas e realizar chamadas

Para iniciar uma nova tela é necessário declarar uma intent, ou seja, declarar a intenção ao sistema operacional de fazer algo.

O exemplo abaixo mostra como abrir um link no navegador do sistema operacional Android
 Uri uri = Uri.parse("http://www.brandi-info.blogspot.com");  
 Intent it = new Intent(Intent.ACTION_VIEW, uri);   
 startActivity(it);   
Quando precisamos chamar outra tela (activity), neste caso, é passado como parâmetro a classe correspondente:
 Intent it = new Intent(this, OutraClasseActivity.class);  
 startActivity(it);  
Para iniciar uma ligação com o número definido podemos utilizar o seguinte exemplo:
 Uri uri = uri.parse("tel:98725432");  
 Intent it = new Intent(Intent.ACTION_CALL, uri);  
 startActivity(it);   

Esses são apenas alguns exemplos do uso de intents. Através dessas "intenções" é possível enviar e receber/recuperar dados e se relacionar com o sistema operacional. Também é possível, por exemplo, se comunicar com outra tela (enviando e recebendo parêmetros).

3 de junho de 2013

Android - Embaralhar números como forma de gerar números aleatórios não repetidos

Uma forma inteligente de gerar números aleatórios que não se repitam é criar o conjunto de dados em uma lista e depois utilizar a função shuffle para embaralhar os números.

Declaração de uma lista de inteiros:
 List<Integer> numeros = new ArrayList<Integer>();   
Inserir valores de 1 até 10 na lista e embaralhar:
 for (int i = 1; i <= 10; i++) numeros.add(i);  // Inserir valores na lista "numeros"
 Collections.shuffle(numeros); // Embaralhar os números da lista:  
Para retornar os valores embaralhados:
 Integer a = numeros.get(0); // Retorna o primeiro número aleatório não repetido da lista  
 Integer b = numeros.get(1); // Retorna o segundo número aleatório não repetido da lista   

2 de junho de 2013

Excel - Fórmula para transformar tipo hora em número decimal

Essa fórmula é muito útil para calcular o valor de horas trabalhadas. Para transformar, por exemplo (03:30) em "3,5" e poder multiplicar por um valor de hora, basta utilizar a função INT da seguinte maneira:
=(B5-INT(B5))*24*C5
Neste caso a célula com o formato hora é a "B5", e a célula com o valor da hora é a "C5". Caso o valor da célula "B5" seja "03:30" e o valor da célula "C5" seja "R$ 20,00" o resultado será "R$ 70,00" (da conta "3,5*20").

1 de junho de 2013

Android - Declarando Estrutura de Pilha (Stack - LIFO)

Para declarar uma estrutura de dados tipo pilha (LIFO - Last In, First Out), basta:
Stack<Integer> pilha = new Stack<Integer>(); //Declaração de uma pilha de inteiros
Os principais comandos para manipulação de uma pilha são:
pilha.push(10); //Insere o número 10 na pilha  
pilha.pop(); //Remove e retorna o último elemento da pilha  
pilha.lastElement(); // Retorna o valor do último elemento da pilha
pilha.empty(); // Retorna positivo se a pilha está vazia
pilha.clear(); // Remove todos os elementos inseridos na pilha 
A biblioteca necessária para declaração de uma pilha é java.util.Stack

31 de maio de 2013

Windows 8 - Criar um atalho para hibernar

Uma dica útil aos usuários do Windows 8 que desejam hibernar o computador rapidamente com um atalho na tela inicial.


Para criar um ícone que desligue o computador basta trocar shutdown -h por shutdown -s.

30 de maio de 2013

Android - Instalar driver Samsung no Windows 8

Para instalar o dispositivo Samsung e deixá-lo habilitado para depuração é necessário baixar o driver específico da Samsung disponível no site:
http://developer.samsung.com/android/tools-sdks/Samsung-Andorid-USB-Driver-for-Windows


Após instalação, desconecte e conecte novamente o aparelho que o Windows 8 reconhece o dispositivo e encontra driver para o respectivo celular:


Pronto, basta habilitar a opção em seu celular "Configurações > Aplicações > Desenvolvimento > Depuração de USB" e utilizá-lo para Desenvolvimento com Eclipse.