quarta-feira, 17 de dezembro de 2014

Shapefiles do Brasil atualizados

Olá galera,

Conforme prometido, estou disponibilizando shapefiles do Brasil atualizados. Os shapes foram disponibilizados dia 09/12/2014 e retirados do FTP do IBGE.

Estou disponibilizando somente alguns já que o tamanho do arquivo original era bem grande. Separei em arquivos compactados e com os nomes dos shapes para facilitar o download.

Através do link https://1drv.ms/f/s!Aq1Z5mSs_16MjU6CWivY-M5iTmpI, é possível realizar o download dos seguintes shapes: país, municípios (5.570), estados, capitais, cidades e vilas.

Caso esteja necessitando ou possua um shapefile que considere importante para a comunidade, entre em contato conosco.

Um grande abraço e até a próxima.

terça-feira, 16 de dezembro de 2014

2 Anos de CodeGeo

Olá galera,

Dia 12/12/2014, o nosso blog completou 2 anos. Estou comemorando um pouco atrasado, devido a correria com os projetos que estou trabalhando.

Gostaria de agradecer a todos os leitores pela assiduidade e pelas mensagens enviadas.

Peço desculpas por não responder no prazo ou não conseguir atender algum pedido específico.

Nosso planejamento para 2015, é realizar mais vídeos tutoriais sobre algumas tecnologias e dar uma atualizada com relação aos temas abordados no blog.

Como não poderia deixar de fazê-lo, quero agradecer mais uma vez aos amigos Luís Lopes por incentivar a criação do blog e ao Anderson Medeiros que vem apoiando e divulgando o nosso trabalho.

Para finalizar, fica aí o meu MUITO OBRIGADO a todos que incentivam e apoiam a nossa iniciativa de compartilhar o conhecimento.

Grande abraço.

sexta-feira, 5 de dezembro de 2014

Corrigindo o erro de Datetime field overflow no PostgreSQL 9.3

Olá galera,

No post de hoje iremos mostrar como corrigir um erro como este: Datetime field overflow: 7 ERROR: date\/time field value out of range: \"27\/11\/2014\"\nHINT: Perhaps you need a different \"datestyle\" setting.

No meu caso, o problema ocorreu porque as versões do PostgreSQL, no ambiente de desenvolvimento e testes, encontravam-se em idiomas diferentes.

Após muita pesquisa, encontrei uma dica que mandava executar o seguinte comando: SET datestyle = mdy;

O problema do comando acima é que ele é válido somente para aquela sessão e não resolve de forma definitiva. Para solucionar de forma permanente, é necessário alterar o arquivo /etc/postgresql/9.3/main/postgresql.conf.

Utilize um editor da sua preferência e abra o arquivo postgresql.conf. Pesquise pela palavra datestyle, no meu arquivo está na linha 506, e altere o seu valor para que fique assim datestyle = 'iso, dmy'

Agora basta reiniciar o PostgreSQL para que a atualização passe a funcionar.

Fica aí a dica. Um grande abraço a todos e até a próxima.

domingo, 30 de novembro de 2014

Bloqueando múltiplas autenticações com o mesmo usuário no Laravel 4.2

Olá galera,

Há algum tempo, precisei destruir a sessão mais antiga de um usuário caso ele efetuasse login em outra máquina ou em outro navegador. Dessa forma, queria garantir que teríamos o mesmo usuário logado somente uma única vez com a sessão mais nova.

Fiz uma implementação que acredito não ser a melhor solução mas resolveu o meu problema. Vale lembrar que a solução foi utilizando o Session Driver do tipo file.

O código abaixo foi utilizado no controller de usuário após validação dos dados de login onde foi retornado o id do usuário.

    $files = \File::allFiles(storage_path().'/sessions');
    $name = Auth::getName();

    foreach ($files as $file) {
      $session  = unserialize(\File::get($file));
      if(isset($session[$name])) {
        if($session[$name] == $usuario_id) {
          \File::delete($file);
        }
      }
    }
  

Na linha 1, são acessados todos os arquivos de sessão gerados na aplicação.

Na linha 2, é capturado o valor do identificador único da sessão.

Nas linhas 4 e 5, são capturados o conteúdo de cada arquivo da sessão e convertido para dados serializados para o formato de array.

Na linha 6, é realizada uma checagem para ver se existe algum usuário logado com aquele identificador único.

Na linha 7, é feita uma comparação entre o id do usuário retornado na consulta do login com o id da sessão já armazenada no file.

Na linha 8, é apagado o arquivo da sessão mais antiga que se encontra armazenado no diretório sessions.

OBS: Com a remoção do arquivo gerado na sessão é necessário realizar a checagem com Auth::check() e fazer o redirecionamento caso a sessão do usuário não exista mais.

Conhece outra solução ou fez de outra forma? Compartilhe conosco.

Um grande abraço a todos e até a próxima.

domingo, 9 de novembro de 2014

OpenLayers 3 - Parte 4

Olá galera,

Hoje vamos falar de estilo e popup no OL3, recursos presentes no OpenLayers 2. Abriremos uma exceção ao que foi falado nos vídeos anteriores e utilizaremos os códigos do OpenLayers 3 - Parte 3 para esse vídeo.

Os códigos utilizados podem ser baixados através do https://github.com/larsurilch/ol3

Um grande abraço a todos e até a próxima.