sábado, 14 de março de 2015

Recuperando Tablet que trava na tela inicial (modelos Navicity1710, 1711 e Every E700)

Recebi de um cliente um tablet Every E700 que estava travando na tela inicial do Android.
Encontrei esse vídeo abaixo no youtube que ensina como instalar uma firmware da Navicity para substituir a padrão que costuma dar problemas. Vale a pena conferir.

https://www.youtube.com/watch?v=fzZACyUjC0Q

Dica retirada do endereço:
http://www.clangsm.com.br/topic/59082-navcity-nt1711-entra-no-androide-e-n%C3%A3o-sai/

quinta-feira, 20 de novembro de 2014

Manter fork de repositorio github sincronizado com o original

No mundo do git, quando queremos contribuir com algum projeto criamos um clone deste através do comando git clone. Já no mundo github, este processo é chamado de Fork.
Uma dúvida que me ocorreu é, como manter o repositório github sincronizado com o original?
Pesquisando na Internet, encontrei um artigo que será referenciado no final que resolve isso.
Para sincronizar basta digitar os comandos abaixo:

git remote add upstream [ENDEREÇO DO REPOSITÓRIO PRINCIPAL]
git fetch upstream
git merge upstream/master

Dica retirada do endereço: http://blog.da2k.com.br/2014/01/19/manter-repositorio-github-forkado-sincronizado-com-o-original/

sábado, 30 de agosto de 2014

Adicionar o plugin emmet-vim para zencoding no editor de texto vim

Encontrei um plugin para o vim mais interessante que o sparkup, o emmet-vim.
Ele permite fazer o ZenCoding de html e css, tornando-o mais interessante.
O legal é que ele gera aquele texto, Lorem Ipsum, automaticamente, facilitando quando você ainda não tem nenhum conteúdo para sua página.

Para instalar siga os passos abaixo:

Acesse: https://github.com/mattn/emmet-vim/

Caso tenha o git instalado digite o comando
git clone https://github.com/mattn/emmet-vim.git
Caso não tenha, baixe o arquivo zip e descompacte-o

Digite os comandos abaixo:
cd emmet-vim
cp -r plugin ~/.vim/
cp -r autoload ~/.vim/ 

Após digitar os comandos, edite o arquivo de configuração do vim através do comando
vim /etc/vim/vimrc
 Insira ao final do arquivo a função abaixo:
 function! s:zen_html_tab()
            return "\<c-y>,"
 endfunction
 autocmd FileType html imap <buffer><expr><tab> <sid>zen_html_tab()
 autocmd FileType php imap <buffer><expr><tab> <sid>zen_html_tab()
 autocmd FileType css imap <buffer><expr><tab><tab> <sid>zen_html_tab()
 Feito isso, crie um arquivo html e digite html:5 e pressione a tecla tab. Isso deverá gerar o conteúdo abaixo:
   <!DOCTYPE html>
   <html lang="en">
   <head>
           <meta charset="UTF-8">
           <title></title>
   </head>
   <body>
          
   </body>
  </html>
           
Para gerar o texto Lorem ipsum, digite lorem e a tecla tab. Isso gerará o texto abaixo:

   Dolor voluptatem consectetur dolor laudantium harum quisquam. At aspernatur     ullam maxime nobis nesciunt aliquid non soluta excepturi quos officiis? Porr    o veniam nisi commodi maxime corrupti? Ullam reprehenderit culpa voluptatum     saepe?

Uma lista completa dos comandos do emmet pode ser encontrada no endereço:

http://docs.emmet.io/cheat-sheet/

Referências:
http://mattn.github.io/emmet-vim/
http://bling.github.io/blog/2013/07/21/smart-tab-expansions-in-vim-with-expression-mappings/



Instalação e utilização sparkup, similar ao ZenCoding, no editor de texto vim

O ZenCoding permite escrever código html de forma rápida, criando várias linhas de código, com tags html, digitando apenas alguns comandos chave.

O Sparkup é uma  ferramenta escrita em python que é semelhante ao ZenCoding e trás algumas melhorias, como poder retornar ao elemento pai com o comando <.

Para instalar, utilizei o sistema operacional Debian 7.

Acesse o endereço https://github.com/rstacruz/sparkup

Para quem tem o git instalado, digite o comando abaixo:
 git clone https://github.com/rstacruz/sparkup.git
Quem não tem, baixe o arquivo zip e descompacte com o unzip.

Feito isso, acesse a pasta sparkup e digite os comandos abaixo:
cp sparkup.py ~/.vim/
cd vim

cp -R ftplugin ~/.vim/
O próximo passo é configurar o editor vim para aceitar o plugin do sparkup

 Acesse o arquivo de configuração do editor vim através do comando
vim /etc/vim/vimrc
 Encontre e descomente as linhas abaixo, apagando as aspas do começo de cada linha, se houver
" if has("autocmd")
"     filetype plugin indent on
" end if
 Salve o arquivo

O sparkup está instalado e configurado e já pode ser utilizado.

Para testar, digite html5 no modo de inserção e aperte as teclas CTRL+e

Será gerada a saída abaixo:

   <!DOCTYPE html>
   <html lang="en">
   <head>
       <meta charset="UTF-8">
       <title></title>
   </head>
   <body>
          
  </body>
  </html>

No endereço abaixo há uma lista com alguns comandos úteis que podem ser utilizados no dia a dia:
http://code.google.com/p/zen-coding/wiki/ZenHTMLSelectorsEn

Abaixo alguns comando que tirei do próprio arquivo sparkup.py e que pode ser consultado no endereço:
https://github.com/rstacruz/sparkup/blob/master/sparkup.py#L268

cc:ie 
Saída: <!--[if IE]>
<![endif]-->
cc:ie8
Saída: <!--[if lte IE 8]>
<![endif]-->
cc:ie9 
Saída: <!--[if lte IE 9]>
<![endif]-->
cc:noie
Saída: <!--[if !IE]><!-->
<!--<![endif]-->
php:t
Saída:
<?php
?>

html:4t
Saída:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title></title>
</head>
<body>
</body>
</html>
html:4s
Saída:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title></title>
</head>
<body>
</body>
</html>
html:xt
Saída:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title></title>
</head>
<body>
</body>
</html>
html:xs
Saída:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title></title>
</head>
<body>
</body>
</html>
html:xxs
Saída:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title></title>
</head>
<body>
</body>
</html>
html:5
Saída:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
</body>
</html>
input:button
input:password
input:radio
input:checkbox
input:file
input:text
input:submit
input:hidden
script:src
script:jquery
script:jquery2
script:jsapi
script:jsapix
link:css
link:print
link:favicon
link:touch
link:rss
link:atom
meta:ieedge
form:get
form:g
form:post
form:p

Sinônimos: 
'php': 'php:t',
'checkbox': 'input:checkbox',
'check': 'input:checkbox',
'input:c': 'input:checkbox',
'input:b': 'input:button',
'input:h': 'input:hidden',
'hidden': 'input:hidden',
'submit': 'input:submit',
'input:s': 'input:submit',
'radio': 'input:radio',
'input:r': 'input:radio',
'text': 'input:text',
'pass': 'input:password',
'passwd': 'input:password',
'password': 'input:password',
'pw': 'input:password',
'input': 'input:text',
'input:t': 'input:text',
'linkcss': 'link:css',
'scriptsrc': 'script:src',
'jquery': 'script:jquery',
'jsapi': 'script:jsapi',
'html5': 'html:5',
'html4': 'html:4s',
'html4s': 'html:4s',
'html4t': 'html:4t',
'xhtml': 'html:xxs',
'xhtmlt': 'html:xt',
'xhtmls': 'html:xs',
'xhtml11': 'html:xxs',
'opt': 'option',
'st': 'strong',
'css': 'style',
'csss': 'link:css',
'css:src': 'link:css',
'csssrc': 'link:css',
'js': 'script',
'jss': 'script:src',
'js:src': 'script:src',
'jssrc': 'script:src',






segunda-feira, 14 de abril de 2014

Ferramenta para melhorar produtividade

Estava a procura de uma ferramenta que ajudasse a controlar as tarefas do meu setor e acabei, por recomendação do meu professor de Engenharia de Software, testando a ferramenta Trello.
É uma ótima ferramenta que ajuda a criar, compartilhar e controlar tarefas de uma maneira muito produtiva.
Vale a pena conferir, clique no link para conhecer:
https://trello.com/marcelofernandesdearaujo/recommend

segunda-feira, 20 de janeiro de 2014

Adicionar certificados digitais Firefox site da Caixa Econômica Federal Debian

Os certificado digitais da Caixa Econômica Federal não são aceitos pelo Firefox e algumas páginas são bloqueadas por segurança.
Para instalar o certificado e acessar a página siga os passos abaixo:

Para download do arquivo, acesse o link:

Após o download, descompacte o arquivo e acesse as Preferências do Firefox:
Menu >> Preferências >> Avançado >> Criptografia >> Certificados

Clique na aba "Autoridades" e em "Importar".

Navegue até o diretório onde o arquivo foi salvo e o selecione.

Marque a opção de mostrar todos os arquivos para que o arquivo seja exibido.

Na janela que abrir, marque todas as opções e confirme.

Pronto. Agora seus problemas com o certificado acabou.

Dica retiradade: http://www.vivaolinux.com.br/dica/Problema-com-Certificado-Digital-Caixa-no-Firefox-[Resolvido]

sábado, 11 de janeiro de 2014

Restaurar associação de Atalhos no Windows Vista e 7

Hoje passei por um problema de difícil solução, os atalhos para executáveis estavam sendo todos redirecionados para o Visualizador de Fotos do Windows.
Isso pode ocorrer com uma certa facilidade se o usuário clicar em Abrir Com sobre um atalho e escolher outro programa que não é o padrão do Windows.
Para restaurar basta copiar o conteúdo abaixo no bloco de notas e salvar com o nome restaura.reg

Windows Registry Editor Version 5.00
;LNK file association fix for Windows Vista.
;Updated on April 24, 2007
[HKEY_CLASSES_ROOT\.lnk]
@="lnkfile"
[HKEY_CLASSES_ROOT\.lnk\ShellEx]
[HKEY_CLASSES_ROOT\.lnk\ShellEx\{000214EE-0000-0000-C000-000000000046}]
@="{00021401-0000-0000-C000-000000000046}"
[HKEY_CLASSES_ROOT\.lnk\ShellEx\{000214F9-0000-0000-C000-000000000046}]
@="{00021401-0000-0000-C000-000000000046}"
[HKEY_CLASSES_ROOT\.lnk\ShellEx\{00021500-0000-0000-C000-000000000046}]
@="{00021401-0000-0000-C000-000000000046}"
[HKEY_CLASSES_ROOT\.lnk\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{00021401-0000-0000-C000-000000000046}"
[HKEY_CLASSES_ROOT\.lnk\ShellNew]
"Handler"="{ceefea1b-3e29-4ef1-b34c-fec79c4f70af}"
"IconPath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
  74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
  00,68,00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,2d,00,\
  31,00,36,00,37,00,36,00,39,00,00,00
"ItemName"="@shell32.dll,-30397"
"MenuText"="@shell32.dll,-30318"
"NullFile"=""
"Command"=-
[HKEY_CLASSES_ROOT\.lnk\ShellNew\Config]
"DontRename"=""
[HKEY_CLASSES_ROOT\lnkfile]
@="Shortcut"
"EditFlags"=dword:00000001
"FriendlyTypeName"="@shell32.dll,-4153"
"NeverShowExt"=""
"IsShortcut"=""
[HKEY_CLASSES_ROOT\lnkfile\CLSID]
@="{00021401-0000-0000-C000-000000000046}"
[HKEY_CLASSES_ROOT\lnkfile\shellex]
[HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers]
[HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers\OpenContainingFolderMenu]
@="{37ea3a21-7493-4208-a011-7f9ea79ce9f5}"
[HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers\{00021401-0000-0000-C000-000000000046}]
@=""
[HKEY_CLASSES_ROOT\lnkfile\shellex\DropHandler]
@="{00021401-0000-0000-C000-000000000046}"
[HKEY_CLASSES_ROOT\lnkfile\shellex\IconHandler]
@="{00021401-0000-0000-C000-000000000046}"
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice]

Depois basta executar o arquivo. O Windows deve mostrar uma mensagem de aviso dizendo que é perigoso alterar o registro, basta clicar em Sim.

Após isso reinicie o Windows e verifique se deu certo.

Dica retirada de: http://www.bitscaverna.com.br/blog/2220/tutorial-como-restaurar-associacao-de-atalhos-no-windows-vista-e-7

terça-feira, 3 de dezembro de 2013

Restaurando arquivos originais do Windows

Vou dar uma dica de como remover cracks instalados em máquinas windows que muitas vezes alteram os arquivos originais do sistema.
Isso é muito comum quando a máquina está com algum vírus ou passou por algum processo de ativação.

Como usuário administrador, abra o prompt de comando do windows. Caso não saiba onde encontrar digite a combinação de teclas Windows+R e depois digite cmd.

Digite o comando sfc /scannow e aguarde que os arquivos sejam recuperados.


domingo, 1 de dezembro de 2013

Engenharia Reversa MySQL Server - MySQL WorkBench - gerando a modelagem lógica

Para gerar a modelagem lógica automaticamente no MySQL WorkBench, siga os passos abaixo:

1-) No menu Database, selecione Reverse Engineer ou digite as teclas (CTRL + R);
2-) Em Stored Connections, selecione Manage Stored Connections;
3-) Clique em Store Vault e digite a senha de usuário root;
4-) Clique em New no canto esquerdo inferior da tela;
5-) Após criado a conexão, selecione a conexão criada e clique em Next e na próxima tela também clique em Next;
6-) Selecione a base de dados que deseja gerar a modelagem lógica e clique em Next e na próxima tela em Next novamente;
7-) Na tela que surgir clique em Execute;
8-) Depois clique em Next e na próxima tela em Finish.

No menu Model/RelationShip Notation, há outras notações de relacionamentos que podem ser utilizados como Crow's Foot, Classic, UML, etc... Selecione a que mais se adequar a sua modelagem.

Gerador de Dicionario de Dados SQL Server

Como já ouvi dizer, para que um profissional de T.I. seja bem-sucedido ele tem que ser preguiçoso, pois assim ele vai buscar sempre algo que automatize suas tarefas.

Abaixo está uma dica que encontrei que gera automaticamente um dicionário de dados.

SELECT
  T.name as Tabela,
  C.name as Coluna,
  TY.name as Tipo,
  C.max_length, -- Tamanho em bytes, para nvarchar normalmente se divide este valor por 2
  C.precision, -- Para tipos numeric e decimal (tamanho)
  C.scale -- Para tipos numeric e decimal (números após a virgula)
FROM sys.columns C
INNER JOIN sys.tables T
  ON T.object_id = C.object_id
INNER JOIN sys.types TY
  ON TY.user_type_id = C.user_type_id
ORDER BY T.name, C.name

Dica retirada do endereçohttp://sqlfromhell.wordpress.com/2009/07/11/dicionarios-de-dados-step-1/