HTML5 ::: HTML5 + JavaScript ::: Geolocation API |
Como retornar a localização do usuário usando o método getCurrentPosition() da API Geolocation do HTML5Quantidade de visualizações: 2633 vezes |
O método getCurrentPosition() da API Geolocation do HTML5 nos permite obter tanto a latitude quanto a longitude do usuário que está acessando nossas páginas web. A forma mais simples deste método requer apenas uma função JavaScript que receberá o objeto de coordenadas. Veja o trecho de código a seguir: <html> <head> <title>Obtendo a latitude e longitude usando a API Geolocation</title> </head> <body> <script type="text/javascript"> function mostrarPosicao(posicao) { document.writeln("<h1>Latitude: " + posicao.coords.latitude + "; Longitude: " + posicao.coords.longitude + "</h1>"); } // não se esqueça de testar se o navegador web suporta a API // Geolocation do HTML5 if(window.navigator.geolocation) { // chamamos o método getCurrentPosition() fornecendo a função // JavaScript que receberá o objeto de coordenadas navigator.geolocation.getCurrentPosition(mostrarPosicao); } else{ document.writeln("A API Geolocation foi encontrada."); } </script> </body> </html> Ao executar este trecho de código, a primeira coisa que você verá é uma mensagem do navegador avisando que o site a partir do qual o código está sendo executado quer saber sua localização. A mensagem exibirá os botões Permitir ou Bloquear. Se você clicar no botão Permitir, a latitude e longitude serão escritas no navegador: Latitude: -16.7143838; Longitude: -49.2327622 É claro que, se você estiver executando o código em um laptop ou desktop, o resultado será muito diferente daquele mostrado no seu celular. O motivo é que, em geral, um GPS não está disponível nos laptops e desktops. Por essa razão, o navegador vai obter sua localização usando posicionamento de WI-FI e também por meio do seu endereço IP (Internet Protocol). |
C# ::: Windows Forms ::: DataGridView |
Como ocultar ou exibir os títulos das colunas de um DataGridView do C# Windows Forms usando a propriedade ColumnHeadersVisibleQuantidade de visualizações: 8040 vezes |
Os títulos das colunas de um DataGridView podem ser ocultados definindo-se o valor false para a propriedade ColumnHeadersVisible. Veja:dataGridView1.ColumnHeadersVisible = false; Para exibir os títulos das colunas novamente só precisamos fornecer o valor true. Veja: dataGridView1.ColumnHeadersVisible = true; |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar o tamanho de uma string em Ruby usando o método length da classe StringQuantidade de visualizações: 9372 vezes |
Em várias situações nós precisamos obter o tamanho, ou seja, o comprimento ou quantidade de caracteres de uma palavra, frase ou texto em Ruby. Para isso nós podemos usar a função length da classe String. Esta função é chamada em um objeto String e retorna o seu tamanho com um inteiro. Veja um exemplo completo de seu uso: # declara e inicializa uma variável string nome = "Osmar J Silva" # obtém a quantidade de caracteres na string quant = nome.length # exibe o resultado puts("A string contém " + quant.to_s + " caracteres") Ao executar este código Ruby nós teremos o seguinte resultado: A string contém 13 caracteres |
C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar ponteiros para controlar um laço while em C++Quantidade de visualizações: 9515 vezes |
É possível usar ponteiros para controlar a execução de um laço while em C++. Comece analisando o seguinte trecho de código:// uma matriz de caracteres char nome[] = "Arquivo"; // aponta para a primeira letra char *letra = nome; if(*letra) cout << "True"; else cout << "False"; Aqui o valor "True" será exibido, visto que o ponteiro *letra está apontando para um local da matriz de caracteres nome[] que é diferente de NULL. Veja agora: // uma matriz de caracteres char nome[] = "Arquivo"; // aponta para a primeira letra char *letra = nome; // posição 0 // vamos atingir o final da matriz // de caracteres letra++; // posição 1 letra++; // posição 2 letra++; // posição 3 letra++; // posição 4 letra++; // posição 5 letra++; // posição 6 letra++; // NULL if(*letra) cout << "True"; else cout << "False"; Como sabemos que a matriz de caracteres nome[] contém sete caracteres (de 0 a 6), incrementamos o ponteiro *letra até que este aponte para o caractere que marca o fim da matriz. Assim, o valor "False" é exibido. Veja agora um laço while que tira proveito do que vimos aqui para exibir as letras da palavra "Arquivo" separadamente usando um ponteiro: #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]){ // uma matriz de caracteres char nome[] = "Arquivo"; // aponta para a primeira letra char *letra = nome; // vamos usar o laço while para // imprimir as letras separadamente while(*letra){ cout << *letra << " "; letra++; } cout << "\n\n"; system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
LISP ::: Fundamentos da Linguagem ::: Variáveis e Constantes |
Como declarar variáveis locais em Lisp usando o comando letQuantidade de visualizações: 844 vezes |
Em várias situações nós gostaríamos de declarar variáveis que serão usadas em um espaço limitado, ou seja, dentro de uma função Common Lisp ou até mesmo em um bloco de código. Entram em cena as variáveis locais. Variáveis locais, como o próprio nome indica, são visíveis apenas dentro do corpo de uma função ou dentro do bloco no qual elas são declaradas. Em Common Lisp as variáveis locais são declaradas usando-se o comando let. Veja um exemplo no qual nós declaramos três variáveis locais e que serão usadas no corpo de uma função Multiplicar(): ; vamos definir a função Multiplicar() (defun Multiplicar() ; vamos usar o comando let para declarar ; três variáveis locais (let ((a 3)(b 9)(produto)) ; agora vamos obter o produto das variáveis ; a e b (setq produto (* a b)) ; e mostramos o resultado (format t "O produto dos dois valores é ~D" produto) ) ) ; chamamos a função Multiplicar() (Multiplicar) Ao executar este código nós teremos o seguinte resultado: O produto dos dois valores é 27 Agora veja como podemos declarar variáveis locais dentro de um bloco de código em Common Lisp: ; vamos usar o comando let para declarar ; três variáveis locais (dentro de um bloco ; de código) (let ((a 7)(b 5)(produto)) ; agora vamos obter o produto das variáveis ; a e b (setq produto (* a b)) ; e mostramos o resultado (format t "O produto dos dois valores é ~D" produto) ) Execute este código e você terá o seguinte resultado: O produto dos dois valores é 35 Nos dois trechos de código, se tentarmos acessar as variáveis locais fora de seus escopos, nós teremos o seguinte erro: The variable PRODUTO is unbound. |
C# ::: Dicas & Truques ::: Data e Hora |
Datas e horas em C# - Como obter a data atual no formato curto usando C#Quantidade de visualizações: 305 vezes |
Nesta dica mostrarei como obter a data atual usando a propriedade Now da classe DateTime e exibí-la no formato curto, ou seja, DD/MM/AAAA. Veja o código C# completo para o exemplo: using System; namespace Estudos{ class Program{ static void Main(string[] args) { // data atual no formato curto DateTime hoje = DateTime.Now; System.Console.WriteLine("A data hoje é: {0:d}", hoje); Console.WriteLine("\n\nPressione uma tecla para sair..."); Console.ReadKey(); } } } Ao executar este código nós teremos o seguinte resultado: A data hoje é: 23/03/2021 |
MySQL ::: Dicas & Truques ::: Data e Hora |
Como usar a função NOW() para obter a data e hora atual do servidor MySQLQuantidade de visualizações: 28095 vezes |
As funções CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP, LOCALTIME(), LOCALTIME, LOCALTIMESTAMP e LOCALTIMESTAMP() são sinônimos da função NOW(). A função NOW() pode ser usada para obter a data e hora atual do servidor MySQL como um valor no formato 'YYYY-MM-DD HH:MM:SS' ou YYYYMMDDHHMMSS.uuuuuu, dependendo se a função é usada em um contexto string ou numérico. O valor retornado é expresso no fuso horário atual do servidor. Veja: SELECT NOW() O valor retornado é algo como 2008-03-30 23:18:34. Observe agora uma chamada a esta função em um contexto numérico: SELECT NOW() + 0 O resultado será algo como 20080430232607.000000. |
Django ::: Dicas de Estudo e Anotações ::: Passos Iniciais |
Como criar um novo projeto Django usando o comando django-admin startprojectQuantidade de visualizações: 649 vezes |
Quando estamos desenvolvendo aplicações web usando o framework Django do Python, é comum encontrarmos os termos projetos e aplicações. Um projeto é uma instalação do Django com algumas configurações específicas, enquanto uma aplicação (ou app) é um conjunto de models, views, templates e URLs. Nesta dica mostrarei como criar um novo projeto Django. Para isso usaremos o comando django-admin startproject. Assim, crie um diretório para o seu projeto, entre nela via janela de terminal e dispare o seguinte comando: c:\>cd c:\estudos_python c:\estudos_python>django-admin startproject estudos Note que criei um projeto chamado "estudos" dentro do diretório "c:\estudos_python". Veja agora os arquivos que a ferramenta django-admin criou para nós: estudos/ manage.py estudos/ __init__.py asgi.py wsgi.py settings.py urls.py O arquivo manage.py é um utilitário de linha comando que usamos para interagir com o nosso projeto. Este arquivo, que serve como um wrapper para a ferramenta django-admin.py, não precisa ser editado. O arquivo __init__.py, já dentro do diretório do projeto, é um arquivo vazia que informa ao Python para tratar o diretório "estudos" como um módulo Python. O arquivo settings.py serve para definirmos ajustes e configurações para o nosso projeto. Ele contém as configurações iniciais, tais como LANGUAGE_CODE, DATABASES, TEMPLATES, ALLOWED_HOSTS, DEBUG, etc. O arquivo urls.py é o local qual ficamos os padrões de URL. Cada URL deste arquivo é mapeada para uma view (página de apresentação). O arquivo wsgi.py contém as configurações para rodarmos o nosso projeto como uma aplicação Web Server Gateway Interface (WSGI). Para finalizar, o arquivo asgi.py contém as configurações para rodarmos o nosso projeto como ASGI. Este é um padrão recente para servidores web e aplicações assíncronas. Agora que o projeto já foi criado, para rodar ele no navegador, basta entrar no diretório principal e disparar o comando abaixo: c:\estudos_python>cd estudos c:\estudos_python\estudos>python manage.py runserver Se tudo correr bem, abra seu navegador na URL http://127.0.0.1:8000 e você verá seu projeto Django em execução. Em mais dicas do site você verá como criar aplicações Django dentro do seu projeto. |
PHP ::: Dicas & Truques ::: Arquivos e Diretórios |
Como excluir um diretório usando a função rmdir() do PHPQuantidade de visualizações: 15981 vezes |
Diretórios podem ser excluídos usando-se a função rmdir(). Esta função recebe o nome do diretório a ser excluído e retorna um valor boolean informando o sucesso ou não da operação. Veja que só é possível excluir um diretório se este estiver vazio e se você tiver as permissões necessárias para tal tarefa. Veja um trecho de código no qual excluimos um diretório no diretório public_html: <?php // exclui o diretório "imagens" $diretorio = "/site/public_html/imagens"; if(rmdir($diretorio)){ echo "Diretório excluído com sucesso."; } else{ echo "Não foi possível excluir o diretório."; } ?> Ao executar este código PHP nós teremos o seguinte resultado: Diretório excluído com sucesso. Seja cuidadoso. Se você não tiver as permissões adequadas para excluir um diretório, a seguinte mensagem de erro será exibida: Warning: rmdir(/home/public_html/imagens) [function.rmdir]: Permission denied in /home/public_html/testes.php on line 6 Não foi possível excluir o diretório. |
Java ::: Design Patterns (Padrões de Projeto) ::: Singleton Pattern |
Padrões de projeto para iniciantes - Como usar o padrão de projeto Singleton em suas aplicações JavaQuantidade de visualizações: 12007 vezes |
O padrão de projeto Singleton (ou Singleton Pattern) é um dos padrões de projeto mais conhecidos e implementado extensivamente nas linguagens que suportam programação orientada a objetos, tais como Java e C#. Nesta dica eu mostrarei como implementá-lo. Uma das situações nas quais usamos o padrão Singleton é quando queremos que somente uma instância de uma determinada classe seja criada e que esta esteja disponível para todas as demais classes do sistema. Um exemplo disso é uma classe responsável por registrar logs do sistema, uma classe responsável por obter conexões com o banco de dados, ou ainda uma classe que concentra dados de configuração da aplicação. Assim, a chave do padrão Singleton é um método estático, geralmente chamado de getInstance(), que retorna uma nova instância da classe se esta ainda não foi instanciada. Se a classe já tiver sido instanciada, o método getInstance() retorna a instância já existente. Vamos ver um exemplo deste padrão em Java. Observe o código a seguir: Código para Logger.java: package estudos; // Uma classe Singleton responsável por gravar // logs no sistema public class Logger { // variável estática e privada que guarda a instância // atual da classe private static Logger instancia = null; // Método estático que retorna uma instância já existente, ou // cria uma nova instância public static Logger getInstance() { if (instancia == null) { instancia = new Logger(); } return instancia; } // Construtor privado para evitar que instâncias sejam // criadas usando new private Logger() { // não precisamos fazer nada aqui } // método usado para registrar logs public void registrarLog(String dados) { System.out.println("Vou registrar o log: " + dados); } } Veja agora como podemos chamar o método getInstance(), obter um objeto da classe Logger e "registrar um log": Código para Main.java: package estudos; public class Main { public static void main(String[] args) { // vamos registrar um novo log usando a classe Singleton Logger.getInstance().registrarLog("Novo usuário cadastrado."); } } Ao executar esta aplicação teremos a seguinte saída: Vou registrar o log: Novo usuário cadastrado. |
Nossas 20 dicas & truques de programação mais populares |
JavaScript - Como usar objetos Set em seus códigos JavaScript Java - Exercícios Resolvidos de Java - Como converter decimal em binário em Java usando o laço while |
Você também poderá gostar das dicas e truques de programação abaixo |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |