Desenvolvedores.Net - TechBlog

Monthly Archives: agosto 2011

Skype Command Line

0
1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (2 votos, média: 5,00 de 5)
Loading...
31 de agosto de 2011

Ola Pessoal.

Tenho recebido e-mails perguntando sobre como usar o Skype por linha de comando.

Não existe uma documentação boa sobre isso no site do Skype (http://www.skype.com/intl/pt-br/) então resolvi criar esta lista com os comandos que eu conheço.

Comando Descrição
Skype.exe /nosplash Exibe o Skype sem a janela de início, conhecida como splash screen.
Skype.exe /minimized Exibe o Skype e minimiza para o system tray (onde ficam os ícones, ao lado do relógio)
Skype.exe /datapath:”caminho Troque a palavra caminho por um novo caminho de diretório que você deseja que o Skype use como caminho alternativo para salvar as configurações.
Skype.exe /removable Use com /datapath. Não usa o caminho especificado se o mesmo não estiver disponível.
Skype.exe /callto:Nome Skype ou Número de telefone Use para fazer uma ligação pelo Skype.
Skype.exe /shutdown Fecha o skype
Skype.exe /secondary Inicia uma segunda instância do Skype se uma outra estiver aberta.
Skype.exe /username:seu nome /password:sua senha Inicia o skype com nome e senha especificados.Atenção: Cuidado ao usar este comando pois aplicações iniciadas por linha de comando podem facilmente mostrar a linha completa que foram usadas, mesmo depois de iniciadas.

Se você usar um explorador de processos, como o “Process Hacker” ele exibe a linha de comando completa que foi usada para iniciar a aplicação.

Veja na imagem abaixo:

Na tabela acima, troque o comando Skype.exe pelo caminho completo do Skype em sua máquina, aqui na minha é “C:\Program Files\Skype\Phone\Skype.exe”. Para eu utilizar tenho que fazer “C:\Program Files\Skype\Phone\Skype.exe” /Comando

Uma outra dica interessante é que você pode usar protocolos Skype para criar hyperlinks apenas colocando o Skype:NomeUsuario

Se você conhece mais algum comando passe-os pelos comentários e compartilhe.


É isso ai pessoal 🙂
Até o próximo
♦ Marcelo

About Marcelo

Nascido em Juruaia/MG em uma fazenda de criação de búfalos, e residindo na região Sul do Brasil. Trabalha com desenvolvimento de aplicações desde os 17 anos. Atualmente é Arquiteto Organizacional na Unimake Software. Para saber mais ... http://desenvolvedores.net/marcelo []'s


História
Há algum tempo muito tem se falado sobre o tal Android, e muitas pessoas tem se interessado em desenvolver software e aplicativos para o mesmo, com uma plataforma de desenvolvimento do Java (JDK e SDK) é relativamente fácil desenvolver aplicativos simples para o Android.
Junto com essa facilidade o sistema foi “adotado” pelos fabricantes de clones chineses, é um ótimo sistema, grátis de vasta documentação e fácil instalação nos processadores da família MT65xx utilizados como processador desses celulares, o preço então nem se fala.
Recentemente adquiri um Hero H7000 chines, é uma cópia do HTC HD7 só que com o android 2.2.1 (froyo) instalado, e com bem menos recursos, o aparelho da empresa Hero é de muito boa qualidade, o meu já caiu umas 5 vezes só na primeira semana de uso. O objetivo era ter um aparelho novo, pois tive os meus furtados e usar como Debuger Device.
Meus problemas começaram assim que ele chegou, pois não possuí CD ou Manual, ou referência ao fabricante chines, nada que eu possa usar para chegar até os drivers, procurei na internet e achei muitos drivers para MT6516, porém somente servem para o celular “desligado” e não era esse o intuito. Depois de uma boa pesquisada em muitos sites, encontrei alguns passos e drivers para fazer e assim vou explicar como fiz funcionar no meu aparelho chines.

Como fazer

Bem, primeiro vamos aos requisitos básicos

  • Sistema Operacional Windows.
  • Eclipse instalado e rodando com o SDK da android.
  • Aparelho rodando Android 2.2.1 (não testei com outras versões).
  • Aplicativos [download id=”19″].
O processo é bem simples,
  1. Vá ao menu de seu celular -> Configurações -> Aplicativos e marque a opção Fontes Desconhecidas
  2. Entre na opção Desenvolvimento e marque os 3 itens disponíveis (Depuração USB, Permanecer ativo, Permitir locais fictícios)
  3. Faça o download do [download id=”19″] e extraia o arquivo.exe na pasta de sua preferência, segue o passo a passo da instalação

 
 
  Nesse passo precisamos parar o serviço do ADB que já foi instalado juntamente com o SDK do android Eu geralmente uso o CTRL+SHIFT+ESC para abrir o Gerenciador de Tarefas do Windows Organize por nome, o ADB geralmente é o primeiro da lista Ele vai perguntar se você deseja instalar um Device, a resposta é sim claro. Escolha a ultima opção como mostrada na imagem para celulares chineses Nessa parte você conecta o celular ao PC. Aqui ele finaliza a instalação.
Agora vamos ao nosso Eclipse para configurar o celular para rodar direto.
Abra o eclipse
 
 Vá as configurações de execução Na aba target, selecione manual e aperte em RUN. Selecione a device na parte de cima da próxima janela Pronto, aplicação rodando direto no aparelho 🙂
Espero que resolva o problema de muitas pessoas que estão tentando usar seus chineses baratinhos como debuger para o android, eu gostei muito do meu, é barato e resolve o problema, só fiquei insatisfeito com os 416Mhz que fazem dele um celular bem lento para a resolução de 800×600.
Abraços amigos e até uma próxima.

Tecnologia Wireless

0
1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (1 votos, média: 5,00 de 5)
Loading...
19 de agosto de 2011

Nos dias de hoje, com o avanço da tecnologia wireless. Podemos ver sua aplicabilidade em vários setores.

Mas temos que tomar cuidado com o este avanço, pois ele também pode prejudicar a natureza a nossa volta. Basta prestarmos atenção.

Vejam alguns exemplos:

No lazer:

No esporte:

E … A Natureza:


É isso ai pessoal 🙂
Até o próximo
♦ Marcelo

About Marcelo

Nascido em Juruaia/MG em uma fazenda de criação de búfalos, e residindo na região Sul do Brasil. Trabalha com desenvolvimento de aplicações desde os 17 anos. Atualmente é Arquiteto Organizacional na Unimake Software. Para saber mais ... http://desenvolvedores.net/marcelo []'s

Manual Editor WordPress 2.9

0
1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (2 votos, média: 5,00 de 5)
Loading...
18 de agosto de 2011

Este manual foi desenvolvido para explicar as funcionalidades básicas de gerenciamento do WordPress, sendo dividido em 7 capítulos. Você deve ter percebido que o sistema gerenciador de conteúdos oferece muitas opções no menu principal, porém com este manual acreditamos que o aprendizado será facilitado.

Este manual encontra-se completo, sendo voltado para Editores.  As demais opções que não foram citadas neste manual podem ser aprendidas facilmente com a utilização do sistema. O painel administrativo é bastante amigável e intuitivo.

É muito importante não excluir categorias do site, pois estas estão codificadas no tema WordPress. Evite ao máximo excluir logs, artigos e outras informações que possuem relevância, pois o WordPress nos permite colocar praticamente tudo em modo de rascunho ou modo privado.

Índice do Manual

3    Capítulo 1 – Introdução
3    Sobre o WordPress
3    Características principais

4    Capítulo 2 – Conceitos básicos do Painel
4    Logando no Painel de Controle
5    Painel de Controle – WordPress 2.9
6    Primeiro Login – Mudando a senha de acesso administrativo

7    Capítulo 3 – Gerenciamento de Posts (Artigos)
7    Sobre os Posts
7    Adicionar novos Posts
8    Opções de Formatação de Post
8    Adicionar fotos e Arquivos
10    Adicionar vídeos do Youtube, Google Vídeos e outros
10    Adicionar vídeos através do seu servidor web
11    Opções de Publicação
12    Sobre Tags e Categorias
13    Permitindo Comentários e Trackbacks, respondendo comentários e mudando Autoria do post
14    Editando Posts

15    Capítulo 4 – Gerenciamento de Páginas
15    Sobre as Páginas
15    Adicionando uma nova página
16    Outras características das Páginas

17    Capítulo 5 – Gerenciamento de Links
17    Sobre os Links – visão geral
17    Adicionando novo link
18    Editando Links

19    Capítulo 6 – Gerenciamento de Comentários
19    Sobre os Comentários – visão geral
19    Moderando comentários

20    Capítulo 7 – Widgets
20    Sobre os Widgets
20    Utilizando e configurando Widgets

21    Considerações finais

Pedimos ajuda para o compartilhamento deste manual. Não buscamos fins lucrativos, sendo estes diretos ou indiretos. Este material é gratuito e não deve ser vendido ou comercializado.

[download id=”18″]


É isso ai pessoal 🙂
Até o próximo
♦ Marcelo

About Marcelo

Nascido em Juruaia/MG em uma fazenda de criação de búfalos, e residindo na região Sul do Brasil. Trabalha com desenvolvimento de aplicações desde os 17 anos. Atualmente é Arquiteto Organizacional na Unimake Software. Para saber mais ... http://desenvolvedores.net/marcelo []'s

Ler XSD e Validar XML

2
1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (3 votos, média: 5,00 de 5)
Loading...
13 de agosto de 2011

Escrever este artigo surgiu da necessidade de um amigo através de uma conversa por Skype®.
A necessidade dele era ler o arquivo XSD e não apenas validar o XML contra o XSD.
Aproveitando o gancho, eu fiz as duas coisas. A leitura do XSD e a validação pelo XSD.

Se você não sabe o que é um XSD: http://pt.wikipedia.org/wiki/XML_Schema

Eu não vou ensinar aqui a criar o XSD, pois isso daria assunto para outro artigo. 🙂
Caso queiram aprender a criar o XSD: http://www.w3schools.com/schema/schema_intro.asp

Ok! Agora que já temos uma base e já sabemos do que se trata. Vamos ao que interessa.

Primeiramente iremos criar o nosso XSD de validação do XML.
Irei chamar de endereco.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
	elementFormDefault="qualified"
	attributeFormDefault="unqualified"
>

	<!--definir os tipos primários do nosso xml-->
	<xs:simpleType name="TUF">
		<xs:annotation>
			<xs:documentation>Estado para usar no endereço</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="AC"/>
			<xs:enumeration value="AL"/>
			<xs:enumeration value="AM"/>
			<xs:enumeration value="AP"/>
			<xs:enumeration value="BA"/>
			<xs:enumeration value="CE"/>
			<xs:enumeration value="DF"/>
			<xs:enumeration value="ES"/>
			<xs:enumeration value="GO"/>
			<xs:enumeration value="MA"/>
			<xs:enumeration value="MG"/>
			<xs:enumeration value="MS"/>
			<xs:enumeration value="MT"/>
			<xs:enumeration value="PA"/>
			<xs:enumeration value="PB"/>
			<xs:enumeration value="PE"/>
			<xs:enumeration value="PI"/>
			<xs:enumeration value="PR"/>
			<xs:enumeration value="RJ"/>
			<xs:enumeration value="RN"/>
			<xs:enumeration value="RO"/>
			<xs:enumeration value="RR"/>
			<xs:enumeration value="RS"/>
			<xs:enumeration value="SC"/>
			<xs:enumeration value="SE"/>
			<xs:enumeration value="SP"/>
			<xs:enumeration value="TO"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:simpleType name="TCEP">
		<xs:annotation>
			<xs:documentation>Tipo CEP</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9\-]{9}"/>
		</xs:restriction>
	</xs:simpleType>

	<!--definir a estrutura do xml-->
	<xs:element name="enderecos">
		<xs:complexType>
			<xs:sequence>
				<xs:element name ="endereco" maxOccurs="unbounded">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="logradouro" type="xs:string"></xs:element>
							<xs:element name ="numero" type="xs:integer"></xs:element>
							<xs:element name="estado" type="TUF"></xs:element>
							<xs:element name="cep" type="TCEP"></xs:element>
							<xs:element name="bairro" type="xs:string"></xs:element>
							<xs:element name="cidade" type="xs:string"></xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>

Ok! Criado o nosso xsd. Iremos criar mais dois arquivos endereco_erro.xml e endereco_ok.xml. Como os próprios nomes já dizem um com erro e um sem erro, para podermos testar nosso xsd.

endereco_erro.xml

<?xml version="1.0" encoding="utf-8" ?>
<enderecos>
	<endereco>
		<logradouro>rua nono NoNo no no </logradouro>
		<numero>123</numero>
		<estado>XX</estado>
		<cep>XXs111</cep>
		<bairro>NonnoNon</bairro>
		<cidade>Non on o nNOn</cidade>
	</endereco>
</enderecos>

endereco_ok.xml

<?xml version="1.0" encoding="utf-8" ?>
<enderecos>
	<endereco>
		<logradouro>rua nono NoNo no no </logradouro>
		<numero>123</numero>
		<estado>SP</estado>
		<cep>11111-111</cep>
		<bairro>NonnoNon</bairro>
		<cidade>Non on o nNOn</cidade>
	</endereco>
</enderecos>

Ok! Já temos os nossos xml’s e o nosso xsd. Agora precisamos do nosso aplicativo para ler o xsd e validar os xmls.

Para isso crie uma aplicação console no Visual Studio e cole o código abaixo na classe program.cs

Prestem atenção nas linhas em destaque. São nelas que iremos definir o nosso evento que irá capturar o erro do XML.

using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.Schema;

namespace XSD_XML
{
    class Program
    {
        static void Main(string[] args)
        {
            #region Ler o XSD

            WriteConsole("Lendo definição do arquivo XSD");
            //primeiro vamos ler nosso xsd. e ver suas definições
            XmlSchema schema = XmlSchema.Read(new XmlTextReader("xsd/endereco.xsd"), null);

            //lista os namespaces
            XmlQualifiedName[] namespaces = schema.Namespaces.ToArray();
            foreach (XmlQualifiedName item in namespaces)
                Console.WriteLine(string.Format("Nome: {0} Namespace: {1}", item.Name, item.Namespace));

            //lista os tipos
            string[] nomeTipo = null;

            foreach (object item in schema.Items)
            {
                nomeTipo = new string[3];

                if (item is XmlSchemaSimpleType)
                {
                    XmlSchemaSimpleType sType = item as XmlSchemaSimpleType;
                    nomeTipo[0] = sType.Name;
                    nomeTipo[1] = "SimpleType";

                    //lista as restrições deste tipo. Se houver
                    XmlSchemaSimpleTypeRestriction restriction = sType.Content as XmlSchemaSimpleTypeRestriction;
                    if (restriction != null)
                    {
                        foreach (XmlSchemaFacet facet in restriction.Facets)
                            nomeTipo[2] += facet.Value + ",";
                    }

                    Console.WriteLine(string.Format("Nome: {0} Tipo: {1} Restrição:{2} ", nomeTipo));
                }
                else if (item is XmlSchemaElement)
                {
                    //tipo elemento
                    XmlSchemaElement eType = item as XmlSchemaElement;
                    nomeTipo[0] = eType.Name;
                    nomeTipo[1] = eType.SchemaTypeName.Name;
                    nomeTipo[2] = "Não Tem";

                    Console.WriteLine(string.Format("Nome: {0} Tipo: {1} Restrição:{2} ", nomeTipo));

                    //le os itens deste elemento
                    WriteItens(eType);
                }
            }
            #endregion

            //criar o settings
            XmlReaderSettings settings = new XmlReaderSettings();

            /*
             * ATENÇÃO:
             * Aqui iremos definir o evento que será chamado se nosso xml tiver erros
             */

            settings.ValidationEventHandler += new ValidationEventHandler(validatingReader_ValidationEventHandler);
            settings.ValidationType = ValidationType.Schema;
            settings.Schemas.Add(schema);

            //abrir o xml com erro
            XmlReader validatingReader = XmlReader.Create("xml/endereco_erro.xml", settings);

            ////validar o xml
            WriteConsole("Validando o XML com erros");
            while (validatingReader.Read()) { };

            //xml sem erros
            validatingReader = XmlReader.Create("xml/endereco_ok.xml", settings);
            WriteConsole("Validando o XML sem erros");
            while (validatingReader.Read()) { };
            Console.ReadKey();
        }

        /// <summary>
        /// escreve os items de um elemento
        /// </summary>
        /// <param name="element">elemento xml</param>
        private static void WriteItens(XmlSchemaElement element)
        {
            System.Xml.Schema.XmlSchemaType type = element.SchemaType as System.Xml.Schema.XmlSchemaType;
            if (type == null) return;

            System.Xml.Schema.XmlSchemaComplexType complex = type as System.Xml.Schema.XmlSchemaComplexType;
            if (complex == null) return;

            System.Xml.Schema.XmlSchemaSequence sequence = complex.Particle as System.Xml.Schema.XmlSchemaSequence;
            if (sequence == null) return;

            WriteConsole("Linhas do tipo complexo", ConsoleColor.DarkMagenta);

            foreach (XmlSchemaElement item in sequence.Items)
            {
                Console.WriteLine(string.Format("Nome: {0}", item.Name));
            }
        }

        /// <summary>
        /// método de validação do XML. É aqui que iremos tratar o erro do nosso XML.
        /// </summary>
        /// <param name="sender">objeto que chamou o método</param>
        /// <param name="e">argumentos do evento</param>
        static void validatingReader_ValidationEventHandler(object sender, ValidationEventArgs e)
        {
            WriteConsole(e.Message, ConsoleColor.Red);
        }

        /// <summary>
        /// escreve uma linha no console
        /// </summary>
        /// <param name="message">mensagem</param>
        /// <param name="color">cor da mensagem</param>
        private static void WriteConsole(string message, ConsoleColor color)
        {
            Console.ForegroundColor = color;
            Console.WriteLine(message);
            Console.ResetColor();
        }

        /// <summary>
        /// Escreve uma linha no console. Cor padrão azul
        /// </summary>
        /// <param name="message">mensagem</param>
        private static void WriteConsole(string message)
        {
            WriteConsole(message, ConsoleColor.Blue);
        }

    }
}

Link para o download do projeto de exemplo. (formato .zip Visual Studio 2010) [download id=’16’]


É isso ai pessoal 🙂
Até o próximo
♦ Marcelo

About Marcelo

Nascido em Juruaia/MG em uma fazenda de criação de búfalos, e residindo na região Sul do Brasil. Trabalha com desenvolvimento de aplicações desde os 17 anos. Atualmente é Arquiteto Organizacional na Unimake Software. Para saber mais ... http://desenvolvedores.net/marcelo []'s

Introdução ao C# – Parte 2

0
1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (1 votos, média: 5,00 de 5)
Loading...
1 de agosto de 2011

Warning: DOMDocument::loadXML(): AttValue: " or ' expected in Entity, line: 2 in /home/desenvol/public_html/techblog/wp-content/plugins/tubepress/src/main/php/add-ons/youtube/classes/tubepress/addons/youtube/impl/provider/YouTubePluggableVideoProviderService.php on line 257

Warning: DOMDocument::loadXML(): attributes construct error in Entity, line: 2 in /home/desenvol/public_html/techblog/wp-content/plugins/tubepress/src/main/php/add-ons/youtube/classes/tubepress/addons/youtube/impl/provider/YouTubePluggableVideoProviderService.php on line 257

Warning: DOMDocument::loadXML(): Couldn't find end of Start Tag html line 2 in Entity, line: 2 in /home/desenvol/public_html/techblog/wp-content/plugins/tubepress/src/main/php/add-ons/youtube/classes/tubepress/addons/youtube/impl/provider/YouTubePluggableVideoProviderService.php on line 257

Warning: DOMDocument::loadXML(): Extra content at the end of the document in Entity, line: 2 in /home/desenvol/public_html/techblog/wp-content/plugins/tubepress/src/main/php/add-ons/youtube/classes/tubepress/addons/youtube/impl/provider/YouTubePluggableVideoProviderService.php on line 257

C

Pessoal

Segue abaixo mais vídeo da série sobre .NET Framework, C# e OOP (Programação Orientada a Objetos) e neste estamos fazendo uma introdução a linguagem C#.

Could not parse XML from YouTube