Curso Básico IoT (Free)

      Nenhum comentário em Curso Básico IoT (Free)

Vamos iniciar o ano com uma boa dica, um curso básico online sobre IoT (Internet of things – Internet das coisas), oferecido pela Microsoft pelo programa Virtual Academy.

“A Internet das Coisas vem revolucionando o mercado da tecnologia, e neste treinamento vocë pode entender melhor sobre o conceito e suas aplicações no mundo empresarial.”

Para acessar o treinamento, entre em https://mva.microsoft.com/pt-br/training-courses/a-internet-das-coisas-fundamentos-de-iot-12622?l=WWM1gVZSB_9505192806

Desejo a todos um bom aprendizado!

O mito das “senhas longas e complexas”

      Nenhum comentário em O mito das “senhas longas e complexas”

Num mundo cada vez mais “social” e com uma demanda tão grande de serviços à sua disposição (e incrivelmente crescente, a cada dia surge algo novo pra aderir), já imaginou quantas senhas e usuários você tem? No meu atual levantamento, até o momento tenho cerca de 80 credenciais,  entre nome de usuários, logins, tokens, senhas, provenientes de sites e serviços diferentes. A maioria ativa, alguma coisa sem uso no momento.
Pela boa prática, vários lugares solicitam que ao criar uma senha você forneça uma senha longa  (no mínimo 8 caracteres) e que possua caracteres especiais (*&$#@%), letras maiúsculas e minúsculas. Essa a tão velha e tão difundida forma de manter um nível um pouco mais alto de segurança, evitando senhas obvias e simples -que pelas boas práticas isso deveria ser uma regra pra todos.

Até então, ao criar uma senha longa e complexa você pensa que está seguro. O tempo passa e a tecnologia assim como a inovação hoje está presente em todos os lugares – obviamente ao hacker idem. O descobrimento de senha não é usado apenas com o velho método de “tentativa e erro”. Hoje em dia, hackers já tem conseguido roubar banco de dados de credenciais, por exemplo. Quando um hacker se apodera de um banco de credenciais, tanto faz se sua senha seja longa e complexa; enfim, a sua credencial está em mãos erradas.

De qualquer forma, não é também uma afirmação que te faça com que você abra mão de senhas longas e complexas. A questão é que apenas isso é pouco, embora já seja alguma coisa. A boa notícia é que infelizmente hoje o correto não seja algo muito prático pra você – mas você deve fazer.

Vamos parar um pouco pra pensar em algumas situações…
De que adianta ter uma senha complexa se você usa a mesma senha em todos os lugares?
Se em algum host um hacker conseguir sua credencial, além do próprio host, indiretamente ele pode ter acesso a todo o resto com a mesma senha.

Vários sites oferecem autenticação de 2 passos, estou seguro!?
Não necessariamente, mas já é alguma coisa. Veja que normalmente além da autenticação em 2 passos em qualquer momento você pode voltar pro método convencional, porque sites que trabalham com autenticação em 2 passos também fazem do modo convencional, ou seja, dos dois modos. Existem Trojans pra isso, por pior das hipóteses bandidos podem entrar em contato com o suporte técnico e inventar uma mentira, se passando por você e alegando que trocou de celular ou que perdeu o celular. Ou pior, se o bandido tiver roubado seu celular, o token de 2 passos já era. De qualquer forma, use se houver esta possibilidade, embora não seja 100% livre de problemas, já é uma proteção a mais.

Por mais conhecido que possa ser, cuidado com sites de phishing. Uma página falsa na Internet pode fazer com que você pense ser a página oficial. Bandidos criam cópias identicas de páginas, ao inserir seus dados,  inclusive senha; na verdade estes seus dados estão sendo interceptados.
Pra isso, basta uma falta de atenção, um descuido.

Resumindo, o que pode ser feito pra minimizar ao máximo (ou evitar) os problemas é relativamente simples:
1. Mantenha senhas complexas,  mas troque suas senhas ao menos uma vez ao ano, por exemplo;
2. Não use a mesma senha em todos os lugares;
3. Evite armazenar as senhas de sites no navegador;
4. Utilize autenticação em 2 passos se houver está opção – embora não seja 100% seguro, já pode dificultar a ação de um bandido;
5. Use navegação segura, inprivate,  com plugin ou software anti phishing.

Tem mais algumas sugestões? Compartilhe.

Listando os jobs no servidor MS SQL Server

Dando continuidade na sugestão de um “book” de administração de banco de dados, onde já publiquei um script t-sql que consulta o tamanho dos bancos de dados, agora vamos ver como listar os jobs que estão presentes no servidor. A idéia central disso é ter uma query pronta, de tal forma que rapidamente as informações estejam coletadas. Nos dias atuais é sempre importante ter tudo a mão, a produtividade é fundamental.

Como resultado, a query retorna as seguintes informações:

  • Nome do Job
  • Ativo (Yes/No)
  • Nome do agendamento
  • Frequência
  • Unidade de tempo
  • Data de ativação
  • Data de término
  • Data da próxima execução
  • Horário
  • Data de criação do job

Para verificar o status de execução dos jobs por query, é um outro esquema diferente (e que apresentarei em um outro momento). A ideia principal desta query é que de uma forma visual é possível identificar todos os jobs de uma forma global: imagine um cenário onde é necessário acrescentar um novo job. Qual seria a melhor frequencia ou o melhor horário para este novo job, de tal forma que não sobrecarregue tanto seu servidor?? Execute a query e analise.

 

SELECT DISTINCT substring(a.name,1,100) AS [Job Name], 
	'Enabled'=case 
	WHEN a.enabled = 0 THEN 'No'
	WHEN a.enabled = 1 THEN 'Yes'
	end, 
    	substring(b.name,1,30) AS [Name of the schedule],
	'Frequency of the schedule execution'=case
	WHEN b.freq_type = 1 THEN 'Once'
	WHEN b.freq_type = 4 THEN 'Daily'
	WHEN b.freq_type = 8 THEN 'Weekly'
	WHEN b.freq_type = 16 THEN 'Monthly'
	WHEN b.freq_type = 32 THEN 'Monthly relative'	
	WHEN b.freq_type = 32 THEN 'Execute when SQL Server Agent starts'
	END,	
	'Units for the freq_subday_interval'=case
	WHEN b.freq_subday_type = 1 THEN 'At the specified time' 
	WHEN b.freq_subday_type = 2 THEN 'Seconds' 
	WHEN b.freq_subday_type = 4 THEN 'Minutes' 
	WHEN b.freq_subday_type = 8 THEN 'Hours' 
	END,	
	cast(cast(b.active_start_date as varchar(15)) as datetime) as active_start_date,	
	cast(cast(b.active_end_date as varchar(15)) as datetime) as active_end_date,	
	cast(cast(c.next_run_date as varchar(15)) as datetime) as next_run_date,	
	
	Stuff(Stuff(right('000000'+Cast(c.next_run_time as Varchar),6),3,0,':'),6,0,':') as Run_Time,	
	
	b.date_created
	
FROM msdb..sysjobhistory d 
INNER JOIN msdb..sysjobs a ON a.job_id = d.job_id 
INNER JOIN msdb..sysJobschedules c ON a.job_id = c.job_id 
INNER JOIN msdb..SysSchedules b on b.Schedule_id=c.Schedule_id

 

Qual o tipo de informação de seu servidor de banco de dados gostaria de acrescentar? Eu sei, existem inúmeras e tempo pra implementar as vezes é um inimigo. Que tal compartilhar uma sugestão? Deixe seu comentário, compartilhe e até a próxima!

 

Consultando o tamanho dos bancos de dados

      1 comentário em Consultando o tamanho dos bancos de dados

Uma forma rápida de consultar o tamanho dos bancos de dados do seu servidor de banco de dados pode ser através de um script.

Como administrador de banco de dados, este script pode ser utilizado diariamente, como uma das suas tarefas de checklist diário. Obviamente, pode ser interessante integrar o script para dentro de uma planilha excel, onde você pode incrementar com um acesso por tabela dinâmica, ou gráfico. Para ter algo ainda mais profissional, porque não integrar esta query no reporting services?

Bem, se juntar sua imaginação com a sua praticidade e algumas outras queries, tenho total certeza que um belo “book” de administração de banco de dados deve sair. Estarei acrescentando também em um novo post uma query para você melhorar o conteúdo da documentação do seu banco de dados: a listagem de jobs.

Duas considerações sobre a query: Quando o tamanho máximo for “ilimitado”, o max_size é -1, então para não ficar um pouco estranho, apresento como “0”(zero). Pra encerrar, é filtrado os ids de bancos 1, 2, 3 e 4 – que são os bancos de dados de sistema, msdb, master, model e tempdb. Estes, não entram no script.

 

Tem alguma sugestão para incrementar o código? Deixe sua sugestão, compartilhe.

SELECT d.name as db_name, d.state_desc as 'status', mf.name as logical_name,
ROUND(cast(mf.size as decimal(12,0)) * 8 / 1024, 0) Size_MBs,
(case	when max_size < 0 then 0 
	else ROUND(cast(mf.max_size as decimal(12,0)) * 8 / 1024, 0) end) MaxSize_MBs
FROM sys.master_files mf INNER JOIN sys.databases d ON d.database_id = mf.database_id
WHERE d.database_id > 4
ORDER BY d.name

Dica do dia: Amazon AppStore for Android

      Nenhum comentário em Dica do dia: Amazon AppStore for Android

Não é exatamente uma novidade a todos o conhecimento da existência da Amazon AppStore. Inclusive recentemente foi anunciado que a loja de aplicativos para Android da Amazon foi liberada para usuários registrados na Amazon Brasil.
A loja de aplicativos para Android da Amazon é uma boa alternativa ao google play, e um dos pontos que chama atenção é o aplicativo gratuito do dia: todos os dias um aplicativo pago é oferecido gratuitamente.

Para instalar o aplicativo da Amazon AppStore, primeiramente ative a função de instalação de fontes desconhecidas (configurações / Aplicações – ou segurança,  dependendo do seu aparelho).

Depois, de seu telefone ou tablet, visite o endereço http://www.amazon.com/getappstore
Faça o download, instale e use.

Embora seja necessário abrir mão do bloqueio de instalação de Apps de fontes desconhecidas – entendo que é uma prática não muito recomendada pelas boas práticas de segurança – o aplicativo oferecido pela Amazon pode ser interessante. Já pude constatar alguns Apps a venda na Amazon com preços melhores que na google play.  Não necessariamente esta é uma regra.

Alguma experiência boa na Amazon AppStore? Deixe seu comentário…

Palestras semana de estudo Unisa 2013

      Nenhum comentário em Palestras semana de estudo Unisa 2013

Edit: Confirmado, será apenas dia 10 de outubro de 2013 e somente para alunos. Decidi fazer uma palestra sobre administração de banco de dados e como não sei qual o publico, o conteudo pode ser um pouco menos técnico. Preparado para algo dinâmico.

Ainda não totalmente confirmado, mas provavelmente estarei apresentando algumas palestras na semana de estudo de Sistemas de Informação deste ano na Unisa, que a princípio será nos dias 07, 08, 09 e 10 de outubro, nas próprias instalações da Universidade de Santo Amaro, no campus II (Rua Isabel Schmidt, 349 – Santo Amaro – São Paulo).

Como chegar: http://www.unisa.br/contatos/campus2.shtml

Em breve as inscrições estarão abertas via site da própria Unisa e estarei divulgando o link.

Fui convidado a participar como palestrante e como serão 4 dias, passei como sugestão os seguintes temas:

++++++++++++++++++++++++++++++++++++++++

1 – Administração de Banco de Dados

1.1 Login e User

1.2 Database Roles

1.3 Recovery Model

1.4 Backup

1.5 Plano de Manutenção

1.6 Replicação de dados

=======================================

2 – Implementação de Banco de Dados

2.1 Planejamento de alocação de espaço e recurso

2.2 Trabalhando com File Groups

2.3 Sinonimos de Tabelas

2.4 Funções escalares e tabulares

2.5 User Data Types

=======================================

3 – Modelagem de dados

3.1 Introdução à modelagem de dados

3.2 Normalização de dados: o que e porque

3.3 Formas Normais para modelos transacionais

3.4 Exemplo de casos

3.5 Conceito de Datawarehouse e Datamart

3.6 Modelagem star schema e snow flake

========================================

4 – Datawarehouse x Bigdata

4.1 Review Operational Data source e Datawarehouse

4.2 Dados não estruturados

4.3 Conceito do Big Data: Os 5v’s

4.4 Aplicações práticas do Big Data

4.5 O futuro do Big Data

++++++++++++++++++++++++++++++++++++++++

 

Estes temas podem ainda sofrer algumas alterações, tanto no tema em si, como no conteúdo. São temas complexos para serem tratados em tão poucas horas, mas farei algo direto, resumido e com espaço para discussão.

 

Sugestões são bem vindas. Se houver alguma sugestão, deixe seu comentário.

Erro: The Log for Database ‘banco’ is not available

Primeiro é apresentado erros na aplicação durante transações, como por exemplo “run-time error -2147467259 (80004005)”, e aparentemente nada “suspeito” no servidor e nem no banco de dados.

A não ser no arquivo de transaction log, este sim aparenta estar corrompido. Um teste simples a ser feito é apenas requisitar a compactação do banco de dados, então a mensagem de erro é mais clara: “The log for database ‘seu_banco’ is not available”.

 

Bem, nenhuma ação mirabolante é necessária para resolver esta questão.

Se o recovery model do seu banco for full ou bulked log, nem preciso citar da importância de ter o mais recente backup do transaction log, independente de qualquer coisa. Se o banco de dados estiver configurado para recovery model simple, tudo bem, não há com o que se preocupar, uma vez que o backup do transaction log não se aplica para este caso.

Vamos para a solução.

Primeiro, se certifique que nenhum usuário está conectado no banco, se tiver, derrube. Segundo, faça um “Detach” e assim que o banco estiver desconectado, faça um “Attach”, do próprio banco de dados que foi desconectado (não sei se o termo desconectado é mais adequado didaticamente).

Com isso, o arquivo de transaction log que estava “corrompido” é restabelecido – ao anexar novamente o banco de dados o arquivos são corrigidos e todos os acessos se tornam ativos, sem nenhuma outra ação a tomar.

Não é uma situação “comum” do cotidiano, mas é algo que pode acontecer. Comigo aconteceu recentemente, então vamos compartilhar.

 

Simples, fácil e rápido.

Nexus 4: Alto consumo de bateria pelo media server

Depois da última atualização do Android 4.3 notei que o consumo de bateria aumentou consideravelmente. Então, verifiquei especificamente o que poderia estar consumindo tanto e identifiquei o serviço “mediaserver”, como o primeiro da lista de maior consumo.

Procurando na internet, encontrei vários relatos sobre o problema, cada um dando um palpite diferente, nada muito totalmente garantido que efetivamente resolve isto.
Você encontra soluções de formatação de cartão de memória, comandos root, procura de arquivos duplicados, músicas ou fotos corrompidas e por aí vai…

Até que me deparei com o site techsplurge, num artigo de 2012 e que tinha uma solução mais “coerente”: desabilitar o sincronismo do google music. Artigo original: http://techsplurge.com/13494/google-nexus-4-mediaserver-battery-drain-problem-solution/

 

image

No artigo deste site não explica muito claramente como desmarcar o sincronismo.
Então, aproveito aqui pra explicar. Não é feito diretamente pelo google music, e sim pela sua conta do google, nas configurações do aparelho (veja imagem acima).

Ainda não posso afirmar com certeza absoluta se é uma solução final, temporária (até o google corrigir isto) ou se efetivamente resolve esta questão pontual.

Depois de alguns minutos, verifiquei o consumo novamente e notei que o media server caiu (finalmente) para o segundo serviço que mais consome energia. Note que como não fiz nenhuma carga completa, esta informação contempla o histórico do dia.

image

Antes, o media server aqui era responsável por 52% do consumo do aparelho. Veja que já houve uma boa melhora. Do momento que tirei este print screen até uns 20 minutos depois (enquanto escrevia este post), o consumo do media server caiu para 24%.

Farei uma carga completa, atualizarei a informação aqui assim que possível, fique ligado.

Edit: CONFIRMADO! Problema resolvido, parou o alto consumo de bateria pelo mediaserver.

Alguma experiência sobre isto? Dicas de economia de energia? Algum palpite? Resolveu seu problema?
Participe, deixe seu comentário!

Problema Chip Micro sim – Nexus 4

      114 comentários em Problema Chip Micro sim – Nexus 4

No momento de migração de um samsung galaxy SII para um LG Nexus 4, o primeiro ponto foi deparar com o detalhe do chip GSM – o novo padrão “micro sim”. Até então, o padrão era o chip SIM comum, tamanho “grande”. Nos novos aparelhos da apple – iPhone, já estão sendo usados um modelo ainda mais novo do que o “micro sim”, o chamado “nano sim” – tendendo este para um padrão no futuro.

Padrão, me refiro, como algo mais universal.

Voltando pro caso do chip: de SIM comum (grande) para o Micro SIM (menor).

A primeira opção – e talvez a menos burocrática foi a opção de cortar o chip. Algumas pessoas tiveram como primeira opção fazer o corte manual, da forma mais simples. Há uma outra opção de corte, que é através de um alicate de corte específico para esta operação.

Na minha opção inicial, decidi pelo corte do SIM card por um alicate especifico para isto.

Se seu aparelho não tiver uma pequena “bandeja” para instalação do micro sim, é bem provável que não tenha problema. Em muitos casos, mesmo com o uso da bandeja, é até possível que não haja problema. No Nexus 4, o risco de problema é maior, principalmente se a parte metálica (contato) de seu chip for “grande”.

No começo, problemas de perda de sinal, variando da perda de sinal de voz e com muita frequência a perda do sinal do 3g. Como o chip foi cortado, houve a suspeita de que o problema era relacionado ao corte. Então, foi solicitado um novo chip para a operadora, desta vez do tipo “micro sim”- justamente para evitar o corte do chip.

Visualmente, o chip sim cortado e o chip micro sim comprado são idênticos. MAS… os problemas de sinal foram surgindo novamente, até chegar ao ponto de ficar totalmente sem sinal algum, apresentando a mensagem de que “não é possível usar a rede”.

Analisando as diferenças entre os chips – cortados e não-cortados, notei uma diferença crucial entre chips micro-sim, no caso de uma operadora para outra: A ÁREA METÁLICA!

As chances de problemas num chip de área metálica menor de dar algum problema são infinitamente menores, justamente pelo contato da bandeja.

Veja nas fotos, as diferenças dos chips, na sequencia: cortado, não-cortado área metálica grande e não-cortado área metálica menor.

Hoje, a qualidade de sinal aqui no Brasil já é sofrível. Pra complicar, algumas operadoras “empurram” um chip de qualidade inferior (ou se preferir o termo, um chip primeiro lote) ao invés de tirar do mercado estes chips.

A solução foi levar todos os chips e explicar à operadora o problema – que “faz de conta” que não existe. Mas, é real.

Até o momento parece estar mais estável. Aqui no Brasil, sinal bom de celular é uma utopia.

Minha sugestão: Tenha como solicitar sempre o uso de um micro sim de tamanho de área metálica menor, melhor compatibilidade.

 

Edição 05/11/2013 21:28 – A pedidos, acrescentada uma imagem que exemplifica onde deve ser feito o isolamento do micro sim de parte metálica grande, onde “encosta” na gaveta. Deixei a imagem com um fundo vermelho para realçar apenas.

 

Modelos de micro sim

Falta de padrão nos chips GSM micro sim

Micro sim: Diferenças nas áreas metálicas

Diferença entre micro sim. O primeiro, cortado. Os demais oferecidos pelas operadoras.

Micro sim adequado

Este micro sim fica melhor adequado na bandeja

 

Uma alternativa relatada pelos colegas é utilizar esmalte ou durex (tiras laterais de no máximo 2mm de largura) nas laterais do chip - onde é feito o contato com a parte metálica da gaveta.

Uma alternativa relatada pelos colegas é utilizar esmalte ou durex (tiras laterais de no máximo 2mm de largura) nas laterais do chip – onde é feito o contato com a parte metálica da gaveta.

Blog Invadido

      Nenhum comentário em Blog Invadido

Apesar de somente agora estar notificando, este site foi invadido. Quer dizer, noticia “nova” de um fato ocorrido há algum tempo – dia 15 de março pra ser exato.

Ok. O que eu gostaria de publicar oficialmente são alguns pontos que julgo importantes para um caso deste.

  1. Mantenha sempre seus backups em dia;
  2. Escolha um HOST que seja definitivamente parceiro seu;
  3. Sempre revise a segurança. Segurança é um ponto fundamental dentro da web.

Como nestes três pontos estava tranquilo, o problema foi solucionado rapidamente. Não posso deixar de lembrar e agradecer novamente o pessoal da owncube, que se colocou a disposição com total prioridade para ajudar naquilo que eu precisasse para fazer o site voltar ao ar, da forma que fosse mais rápida possível.

A equipe do owncube me deu todo apoio, se mostraram preocupados com a possibilidade de perda de dados e caso houvesse problema com meu backup, eles me forneceriam um backup extra completo que eles tinham guardado. A verdadeira contingência da contingência.

Meu datacenter fica na Holanda, o owncube é uma empresa Alemã e eles tem vários outros datacenters pelo mundo.

Todas as medidas preventivas de segurança foram tomadas e pra isto, novamente a equipe owncube também me apoiou – foi feito um ótimo trabalho.

Apenas voltar o backup foi pouco. Foi necessário reforçar ainda mais a segurança em alguns pontos.

Obrigado, owncube!