Showing posts with label computador. Show all posts
Showing posts with label computador. Show all posts

May 24, 2014

Utilitário útil da semana: doskey

Read this post in English

Se você usa o console (cmd.exe) do Windows em suas tarefas diárias, você deve ser uma pessoa bem infeliz :)

Brincadeira a parte, deixe me explicar: você deveria usar um console melhor, e como eu frise, no windows temos algumas opções).

Mas o objetivo deste post é na realidade, falar sobre um utilitário que acompanha o Windows e que pode tornar sua experiência com consoles melhor; trata-se do doskey um aplicativo capaz, dentre outras coisas, de criar aliases, ou seja, "apelidos" para comandos (eu verifiquei no Windows 7 / 8 mas me lembro de utilizar um aplicativo com o mesmo nome no DOS 4.2).

No meu caso constantemente necessito abrir um arquivo texto em um editor (eu gosto muito to Sublime e também do Notepad++); para simplificar tal tarefa eu normalmente abro o console e a primeira coisa que eu digito é:
doskey subl = "%ProgramFiles%\Sublime Text 2\sublime_text.exe" $* 
a partir deste momento posso digitar o seguinte comando no console para abrir um arquivo de textos no Sublime:
subl meu-arquyivo-texto.ext

Bom fim de semana!

Happy coding.

Feb 26, 2014

Utilitário útil da semana: Clip

Se você é um usuário do Windows um pouco mais avançado e utiliza o console (cmd.exe) é provável que recorra ao menu de contexto quando necessita copiar qualquer conteúdo do console para a área de transferência (clipboard) do Windows.  

Você sabia que o Windows (pelo menos a partir do Windows  7) vem com um utilitário chamado clip que permite que você copie qualquer conteúdo passado para sua entrada padrão (stdin) para a área de transferência? Por exemplo você pode copiar o resultado de um dir para o clipboard com a seguinte linha de comando:


c:\temp>dir | clip

É claro que você também pode redirecionar a entrada padrão:

c:\temp>clip < arquivo.txt
Não sei quanto a você, mas quando eu descobri este pequeno utilitário minha vida no console ficou muito mais fácil.

(Este post em Inglês)

Sep 17, 2013

Utilitário útil da semana: ConEmu

Se você é um usuário avançado do Windows provavelmente recorre ao console (cmd.exe) para executar várias das suas tarefas diárias. Eu, em geral, tenho 2 ~ 3 consoles abertos normalmente e este fato é exatamente a motivação deste post.

Vamos ser sinceros: se você já usou algum shell (tipo bash) que acompanha uma instalação Linux moderna usar o console do Windows dá vontade de mudar para o Linux ;)


Felizmente não é necessário uma mudança tão radical (muito embora eu recomendo usar o Linux, ou qualquer outro S.O. sempre que possível). Por exemplo, a algum tempo eu vinha usando o console2 que é uma boa alternativa ao console do Windows. Recentemente eu passei a usar o ConEmu simplesmente porque o mesmo tem sido atualizado mais frequentemente que o console2 (de qualquer forma eu recomendo instalar ambos e experimentar para ver qual lhe agrada mais).

Entre outros recursos o ConEmu suporta múltiplas tabs, seleção de texto muito melhorado, uso de qualquer fonte, etc.

Quanto a mim, não pretendo voltar a usar o console do Windows (talvez, quem sabe, usar mais o power shell, mas isto já é assunto para outro post :).

(This post in English)

Jun 15, 2007

Stream de dados alternativas

Para muitos usuários (e mesmo desenvolvedores) do Windows o conceito de arquivo esta tão sedimentado que muitas vezes melhorias significativas no sistema de arquivos deste sistema operacional (no caso o NTFS) são ignoradas.

Neste post apresento um dos recursos mais desconhecidos, stream alternativas de dados ou ADS (do inglês, Alternate Data Stream).

Para compreendermos este recurso é necessário primeiro definirmos (ou relembrarmos) alguns conceitos:

  • Uma stream de dados nada mais é que um conjunto de bytes arranjados de forma seqüencial.
  • Um arquivo é composto por uma ou mais streams de dados.
  • Streams de dados possuem um nome associado através do qual a mesma é referenciada. A regra básica para formação do nome de streams é: nome-arquivo.ext:nome-stream:tipo-stream
  • O nome da stream pode conter qualquer caracter válido para um nome de arquivo.

Como o Windows não possui meios (tanto no Explorer quanto no console) para detectar / mostrar arquivos que possuem ADS, abaixo listei algumas ferramentas úteis para tal finalidade:

Usando ADSs

A forma mais simples para demonstrarmos este conceito é através do console do Windows. Abra o console (cmd.exe) e digite:

echo teste de streams > teste.txt:dados

Simples assim! O comando acima cria uma stream chamada dados com o conteúdo teste de streams.

Agora você pode conferir que o arquivo teste.txt foi criado mas o comando dir reporta o mesmo com 0 (zero) bytes.

Finalmente, para visualisar o conteúdo da stream digite

more < teste.txt:dados

Abaixo apresento um pequeno programa de exemplo para criar ADSs (note que o mesmo não possui nenhum tratamento especial, ou seja, a forma de acessar data streams alternativas é idêntica à utilizada para acessar a data stream default).

#include "stdio.h"
#include "Windows.h" 
void main(int argc, char *argv[])
{
    HANDLE handle;
    if (argc < 3)
    {
        printf("Nome da stream (formato: arquivo.ext:stream) ou dados nao especificados.\r\nUso: ads.exe nome-stream dados");
        return;
    }
    else    
    {
        printf("\r\nGravando dados em %s", argv[1]);
    }
    
    handle = CreateFile(argv[1], 
                        GENERIC_WRITE, 
                        0, 
                        NULL, 
                        OPEN_ALWAYS, 
                        0, 0);
                        
    if (handle != INVALID_HANDLE_VALUE)
    {
        DWORD numberOfBytesWritten;
        int n = WriteFile(  handle, 
                            argv[2], 
                            strlen(argv[2]), 
                            &numberOfBytesWritten, 
                            NULL);
                            
        printf("\r\n%ld bytes gravados", numberOfBytesWritten);
        
        CloseHandle(handle);
    }
    else
    {
        printf("Não foi possivel criar a stream de dados.");
    }
}
[Editado: Correção de um erros de português]

experimente executar o programa com alguns parâmetros como por exemplo:

ads teste.txt:dados "Teste de streams"

É isso ai.

Até a próxima.

May 15, 2007

Boa leitura

Em se tratando de informática, ou mais especificamente de desenvolvimento de software, existem algumas ótimas publicações que podem ser lidas online (algumas delas podem ser baixadas), e o melhor, gratuitamente. É claro, que leio pelo menos uma dúzia de blogs e outras publicações (sem contar livros :) além destas! Adriano

May 11, 2007

"COM" não esta morto (pelo menos eu espero)

Assim como a morte de linguagens de programação como Cobol, Fortram, Basic, etc. e também a extinção dos programadores já foram anunciadas várias vezes, mas nunca se concretizaram ,graças a Deus, muitos já anunciaram a morte do COM (Component Object Model), uma tecnologia da MS para a componentização de soluções. Infelizmente (para estes "gurus" !) isso não aconteceu (preciso dizer: "eu já sabia que isso não aconteceria mesmo") ? Pelo contrário, se você observar o número de sub-sistemas do Windows Vista implementado usando esta tecnologia você irá notar um aumento razoável no número de componentes neste SO. Como grande parte da minha carreira foi dedicada a esta tecnologia é natural que eu tenha interesse nesta :). Assim, a alguns anos atrás (para ser mais preciso, entre 2002 e 2004), eu escrevi (e disponibilizei gratuitamente) um utilitário (ao qual chamei de Typelib Wizard) que, entre outras coisas, permite fazer Browse do conteúdo de TLBs (quer estas TLBs estejam isoladas ou incluídas como recurso de um executável) mais ou menos nos moldes dos browsers de classes encontrados nos ambientes de desenvolvimento atuais. Se você desenvolve componentes COM (ou se utiliza ambientes tais como ASP (não ASP.NET), VB 6, VBA, Power Builder, etc., em que a chance de estar utilizando componentes COM, mesmo sem saber, é grande) esta ferramenta é de grande utilidade. A algum tempo eu não realizo nenhuma manutenção no projeto mas tenho algumas idéias e seria um prazer adicionar outros desenvolvedores para que os mesmos possam atualizar o repositório de código (que aliás, vou passar para o subversion) e ajudar a manter o projeto "andando". Para saber mais sobre o projeto visite os sites abaixo: Abraços. Adriano

Feb 28, 2007

SerialWizard: Uau! 1649 Downloads (1 Gb!)

Quando comparado com outros aplicativos pode não parecer muito, mas para mim realmente é um número expressivo: o SerialWizard já foi baixado 1649 vezes totalizando 1 Gb ! Se tiver curiosidade para saber como o SerialWizard esta neste momento click aqui.

Feb 22, 2007

COM/COM+ ? Alguém ta afim?

Você desenvolve, ou conhece alguém que desenvolva, componentes COM/COM+? Integrando com o SNA/HIS server? A algum tempo atras eu já não encontrava muitas pessoas que conhecessem e/ou desenvolvessem usando COM/COM+; agora parece mais difícil ainda! Bom, pelo menos a MS ainda utiliza estas tecnologias de forma extensiva, visto que no Windows Vista o número de componentes COM aumentou :). No meu último emprego (em uma instituição financeira) utilizávamos muito componentes COM+ integrados com o HIS Server. Motivado pela instabilidade do nosso ambiente de testes (e outras coisas mais) iniciei o desenvolvimento de um mecanismo que nos permitisse "simular" a interação com o mainframe (ou seja, passar pelo SNA/HIS server) que acabou por tomar formas mais genéricas e permitir que uma grande gama de componentes COM/COM+ fossem passíveis de ser simulados. Abaixo apresento algumas das vantagens que este mecanismo apresenta:
  • Independência do mainframe (poderíamos continuar nossos testes mesmo que nosso ambiente de testes do mainframe estivesse parado)
  • Flexibilidade para realizar unit tests uma vez que, dado um conjunto de dados de entrada, poderíamos retornar qualquer valor desejado.
  • Simplicidade de configuração
Infelizmente não tive tempo hábil para terminar este projeto (que basicamente é dividido em dois módulos: i) um componente COM/COM+ cuja responsabilidade é simular outros componente; ii) um aplicativo GUI responsável por configurar/monitorar a utilização do componente) antes de me desligar desta instituição financeira e, no momento, não estou utilizando tanto componentes COM/COM+ para justificar o investimento necessário para finalizar o projeto junto a empresa que trabalho atualmente. O objetivo deste post é definir se há pessoas interessadas em continuar o projeto; eu poderia colocar o fonte no sourceforge (qualquer um poderia baixar os fontes) e incluir os interessados como desenvolvedores do projeto (estas pessoas poderiam fazer "commit", ou seja, atualizar os fontes no sourceforge. É claro que eu daria suporte :) Se alguém tiver interesse comente neste post e podemos discutir melhor como seria o processo. Até mais. Adriano

Jan 24, 2007

User Interface Design

Se você participa do design, desenvolvimento, teste, documentação, etc. de programas não deixe de ver esta série de artigos (na realidade os capítulos do livro do autor do blog) sobre design de user interfaces. Mesmo que estando incompleto (o autor disponibilizou alguns capítulos apenas) eu recomendo a leitura do texto. Adriano

Dec 15, 2006

Não custa nada tentar...

Ao chegar hoje no trabalho carreguei o firefox e abri minha conta de email do gmail (como faço usualmente) e qual não foi minha surpresa ao ver o seguinte email:


Uhm.... mais um hacker tentando instalar um cavalo de tróia (ou qualquer coisa parecida) em minha máquina.

Certo. Nice try Mr. hacker! Mas não vai ser desta vez :)

Fico imaginando o número de usuários que ao receber um email como este (ou outro qualquer, por exemplo convidando o usuário a ver as últimas fotos nuas de uma atriz bonitona qualquer) se desesperam, ou ingenuamente, e acabam por clicar no link (observe bem, é um executável). Certamente não deve ser um número pequeno :(.

Não sou especialista em segurança, mas de qualquer forma aqui vão algumas dicas de segurança:

  • Não acredite em propostas fantásticas (que normalmente o induzem a fazer algo impensado pois a tal proposta é "válida apenas para hoje"; como minha esposa diz: "Negócio da China? deixa para o chines!"

  • Via de regra as instituições financeiras (bancos) não enviam emails com links. Se você receber algum email em nome de um banco e este possuir links e você tiver dúvida se o mesmo foi realmente enviado pelo banco ou não, entre em contato com o Banco, ou entre no site do banco.

  • NUNCA click em links dentro de emails supostamente enviados por instituições financeiras, órgãos públicos, etc. Procure sempre verificar o destino do link (no email que eu recebi o destino era um executável!!! NUNCA MESMO CLICK EM LINKS CUJO DESTINO SÃO PROGRAMAS EXECUTÁVEIS. Nem mesmo se você conheçe a pessoa que enviou o email pois é possível enviar emails se passando por uma pessoa qualquer)

  • Procure utilizar o computador com um usuário com poucos privilégios.

  • Mantenha um bom antivirus sempre atualizado em seu computador.

  • Apesar de algumas pessoas não verem como essencial, eu prefiro manter um bom firewall instalado também

  • Instale também um bom programa para verificação de rootkits, spyware e comania.

  • Utilize senhas fortes (nada de utilizar a data de nascimento, nome do cachorro ou informações facilmente deduzíveis e/ou suscetíveis a ataques de dicionário).

  • Mantenha seu SO (Windows, Linux, Mac OS X, etc.) sempre atualizado.

  • Esta dica é derivada da anterior mas considero a mesma tão importante que vou ser explícito: Mantenha seu Web Browser (Firefox, IE, Opera, etc) sempre atualizado.

  • Acho desnecessário dizer que não é seguro anotar senhas em agendas, papéis (principalmente debaixo do teclado), etc. Se for necessário armazenar várias senhas (para evitar esquecê-las) utilize um programa que guarde as mesmas de forma segura.

  • Não acesse sites duvidosos.

  • Se realmente for necessário acessar algum site duvidoso procure fazê-lo a partir de uma virtual machine (VM) (a Microsof distribui gratuitamente o Virtual PC; a VMWare distribui o VMWare Player de graça, mas neste caso você terá que criar a Virtual Machine de alguma forma [existem vários programas gratuítos que podem criar VMs para o VMWare]). Ok, reconheço que apenas usuários mais avançados possuem condições técnicas para fazer isto)

  • Cuidado com programas baixados de redes P2P (Kazza, Bit Torrent, etc.). Hackers estão utilizando estas redes para espalhar vírus, cavalos de tróia, etc.

Bom, espero que isso o ajude a tornar mais seguro seu computador ;)

Adriano.

Dec 8, 2006

Sinais dos tempos....

Eu não pretendia postar hoje mas um fato inusitado me fez mudar de idéia... Bom, hoje é sexta feira, e como sempre, eu e o pessoal da empresa, almoçamos mais rápido para jogar Counter Strike (CS). Chegando à lan-house que sempre jogamos o atendente nos informou que um vírus havia infectado as máquinas e que justamente o CS poderia não funcionar. Para evitar prejuízos financeiros aos clientes o atendente estava liberando 10 minutos para testarmos se o CS iria funcionar na máquina que cada um escolheu para jogar. Até aqui tudo bem. Então lá fui eu; escolhi uma máquina e liguei a mesma; alguns instantes depois dou um click no menu do windows, seleciono o CS e.... Bum! Este programa executou uma instrução ilegal e será finalizado! Droga! Tudo bem, pensei comigo; desliguei a máquina, me dirigi a outro computador, liguei o mesmo e.... Bum! Mesma coisa. Quando já estava quase desistindo um adolescente de uns 13 anos (compadecido com meu desespero :) virou e disse:
"Eu sei como fazer para funcionar! Quer que eu te ensine?"
Ótimo, pensei comigo mesmo! Posso ser orgulhoso e dizer que não (afinal de contas, sou mais capacitado para resolver problemas com computadores que um adolescente de 13 anos) e tentar resolver o problema (ou tentar outro computador) ou responder sim e ver no que dava. Bom, depois de infindáveis 3 segundos, respondi que sim; então o adolescente abriu um sorriso, pediu licença, pegou o teclado da minha mão e saiu pressionando o mesmo como louco (na realidade de forma ordenada :). É claro que eu entendi o que ele estava fazendo (abrindo o Windows Explorer e copiando o executável do jogo de uma pasta compartilhada na rede, que supostamente estava livre do vírus). Algumas teclas pressionadas depois e pronto! Ele vira novamente para mim e diz:
"Pronto, pode jogar!"
Eu conversei um pouco mais com ele, agradeci e tentei executar o jogo novamente... Bum! O mesmo problema! Comentei que não havia funcionado e o adolescente disse que ele havia se deparado com o mesmo problema e que este procedimento havia funcionado para ele. Pensei por alguns instantes e comentei que o vírus poderia ter infectado o programa novamente (enquanto conversávamos). Então copiei o executável do jogo novamente (é claro que ele me ajudou a encontrar a pasta da rede onde eu poderia encontrar o executável) e tentei novamente... Agora sim o jogo carregou e pude me divertir :) O que mais me chamou a atenção neste acontecimento? Um adolescente me auxiliando a solucionar problemas em um computador :) é... sinais dos tempos!!!!! Adriano

Oct 9, 2006

Windows Vista RC2

A Microsoft liberou o Release Candidate 2 (RC2) (build 5744) do Windows Vista para o público. Tanto a versão 32 bits (x86) quanto a 64 (x64) podem ser baixadas em: http://download.windowsvista.com/preview/rc2/en/download.htm Se você tem interesse baixe logo pois o download público será por tempo limitado (eu já baixei :). Adriano

Sep 20, 2006

Eficiência dos antivirus gratuitos...

Estou escrevendo este post a partir do Windows Vista RC1; não porque eu pretendia fazer desta forma mas sim porque meu Windows XP foi contaminado com o bagle_ge; e a pobre da minha esposa foi quem sofreu as primeiras consequências :(. Então, enquanto baixo as novas versões da bios, drivers do chipset etc eu aproveitei para escrever este post. Em parte o fato ocorrido foi bom pois não tenho mais dúvida que a qualidade das versões personal de alguns antivirus deixa bastante a desejar; por outro lado este problema também me fez considerar ainda mais passar a utilizar o Windows Vista (RC1) como meu SO primário. Mas para isto antes necessito fazer alguns testes (principalmente com a impressora já que a mesma já completou 7 anos de vida e o fabricante não me parece muito empolgado com a idéia de escrever um driver de 64 bits para a mesma [ps: o Windows reconheceu a impressora mas não sei se a mesma esta funcionando corretamente pois ainda não imprimi nada nela]) Adriano