<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog da Hostweb &#187; Lino</title>
	<atom:link href="http://blog.hostweb.com.br/author/lino/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.hostweb.com.br</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 23 Aug 2010 15:01:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cairo Dock &#8211; Barra estilo MacOS no Ubuntu</title>
		<link>http://blog.hostweb.com.br/cairo-dock-barra-estilo-macos-no-ubuntu/hostweb</link>
		<comments>http://blog.hostweb.com.br/cairo-dock-barra-estilo-macos-no-ubuntu/hostweb#comments</comments>
		<pubDate>Wed, 21 Jul 2010 12:34:21 +0000</pubDate>
		<dc:creator>Lino</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sem Categoria]]></category>

		<guid isPermaLink="false">http://blog.hostweb.com.br/?p=696</guid>
		<description><![CDATA[
Para quem não sabe, um dock é uma barra de aplicativos no desktop. Originalmente criada no sistema MacOS da Apple, ela é muito linda e se tornou muito popular. O pessoal do mundo Tux gostou e aperfeiçoou se tornando um ítem essencial para quem gosta de um desktop bem personalizado.
Eu testei alguns docks anteriormente e [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.hostweb.com.br/wp-content/uploads/2010/07/1.png" alt="1" title="1" width="528" height="283" class="aligncenter size-full wp-image-697" /><br />
Para quem não sabe, um dock é uma barra de aplicativos no desktop. Originalmente criada no sistema MacOS da Apple, ela é muito linda e se tornou muito popular. O pessoal do mundo Tux gostou e aperfeiçoou se tornando um ítem essencial para quem gosta de um desktop bem personalizado.</p>
<p>Eu testei alguns docks anteriormente e nenhum eu achei funcional ou com bugs que não me incomodassem. No entanto, testei essa semana o Cairo-dock. Achei muito funcional, com pouquíssimos bugs e simples de configurar. Vale a pena testar.</p>
<p>Bom&#8230; mão na massa!</p>
<p>Preparando-se para instalar:</p>
<p>Devemos adicionar ao final do arquivo<strong> sources.list</strong> algumas linhas.</p>
<p>Para abrir o arquivo, digite no terminal: <strong>sudo gedit /etc/apt/sources.list</strong></p>
<p>Ao final adicione, conforme sua distribuição:</p>
<p>Gutsy: deb http://repository.cairo-dock.org/ubuntu gutsy cairo-dock<br />
Hardy: deb http://repository.cairo-dock.org/ubuntu hardy cairo-dock<br />
Intrepid Ibex: deb http://repository.cairo-dock.org/ubuntu intrepid cairo-dock</p>
<p>Salve e feche o gedit.</p>
<p>Instalando:</p>
<p>Agora digite: <strong>sudo apt-get update</strong></p>
<p>E depois: <strong>sudo apt-get install cairo-dock cairo-dock-plug-ins</strong></p>
<p>Usando e configurando:</p>
<p>Ele deve aparecer em <strong>iniciar &#8211; sistema.</strong> (Ou chame pelo terminal: cairo-dock)</p>
<p>Para ele iniciar automaticamente siga desta forma (ex. no ubuntu 8.10):</p>
<p>Vá em<strong> iniciar &#8211; sistema &#8211; preferências</strong> e configure conforme abaixo:<br />
<img src="http://blog.hostweb.com.br/wp-content/uploads/2010/07/2.png" alt="2" title="2" width="595" height="495" class="aligncenter size-full wp-image-698" /><br />
Logo que abrir ele vai pedir que você escolha um tema. É só escolher e depois customizar! Clicando com o botão esquerdo nele você encontrará as opções.</p>
<p>Outra coisa. Ele tem um bug ao buscar os icones dos temas quando você vai adicionar algo. Os ícones estão em /usr/share/cairo-dock/themes<br />
<img src="http://blog.hostweb.com.br/wp-content/uploads/2010/07/3.png" alt="3" title="3" width="830" height="174" class="aligncenter size-full wp-image-699" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hostweb.com.br/cairo-dock-barra-estilo-macos-no-ubuntu/hostweb/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Comandos para FTP através de Linux</title>
		<link>http://blog.hostweb.com.br/comandos-para-ftp-atraves-de-linux/hostweb</link>
		<comments>http://blog.hostweb.com.br/comandos-para-ftp-atraves-de-linux/hostweb#comments</comments>
		<pubDate>Tue, 06 Jul 2010 17:54:52 +0000</pubDate>
		<dc:creator>Lino</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>

		<guid isPermaLink="false">http://blog.hostweb.com.br/?p=690</guid>
		<description><![CDATA[Começaremos com os comandos mais importantes terminando com os menos utilizados ao nosso entender.
OPEN
Com este comando se abre uma sessão com o ftp selecionado. Este comando não funcionaria sem previamente ter estabelecido conexão com o servidor FTP mediante a seguinte sintaxe:
    ftp 212.152.1.22
Podendo substituir o endereço pelo nome do ftp do domínio [...]]]></description>
			<content:encoded><![CDATA[<p>Começaremos com os comandos mais importantes terminando com os menos utilizados ao nosso entender.</p>
<p><strong>OPEN</strong></p>
<p>Com este comando se abre uma sessão com o ftp selecionado. Este comando não funcionaria sem previamente ter estabelecido conexão com o servidor FTP mediante a seguinte sintaxe:<br />
    ftp 212.152.1.22<br />
Podendo substituir o endereço pelo nome do ftp do domínio ao que deseja acessar.</p>
<p><strong>CLOSE</strong></p>
<p>Como é evidente, com este comando se fecha sessão.</p>
<p><strong>GET</strong></p>
<p>Este comando provavelmente é o mais utilizado já que é o que se utiliza para baixar os arquivos do servidor remoto de FTP. Você tem que estar no diretório do servidor remoto onde está o arquivo que quiser receber. Será copiado no diretório local no qual estiver.<br />
    get arquivo.txt</p>
<p><strong>PUT</strong></p>
<p>Este como o segundo é muito utilizado fazendo justamente o contrário, transferindo os arquivos ao servidor de FTP. Os arquivos de origem são tomados do computador local, do diretório onde estiver situado em local. Transfere-se ao diretório remoto onde estiver situado.<br />
    put arquivo.txt</p>
<p><strong>LCD</strong></p>
<p>Especifica o diretório local sobre o qual vamos trabalhar, ou seja, onde colocaremos os arquivos que queremos compartilhar com o servidor remoto.</p>
<p><strong>CD</strong></p>
<p>Este comando age da mesma forma que em MS-DOS, ou seja, se utiliza para se mover através dos diretórios do servidor de FTP.</p>
<p><strong>LCD</strong></p>
<p>Tem a mesma função que o anterior, porém este aplicado a seus diretórios locais.</p>
<p><strong>LS</strong></p>
<p>Com este comando tiramos uma lista de diretórios e arquivos encontrados no servidor, age da mesma forma que no intérprete de comandos em Linux.</p>
<p><strong>DELETE</strong></p>
<p>Cuidado com este comando, que só se pode aplicar ao servidor remoto, já que se utiliza para apagar arquivos que se encontre em tal servidor com o qual estamos conectados. Só poderão utilizá-los, usuários que tiverem as permissões adequadas.</p>
<p><strong>APPEND</strong></p>
<p>Permite renovar um download que por qualquer motivo tiver sido interrompido. Este comando pode ser muito útil quando tentamos downloads de arquivos bastante pesados, que demorem muito tempo, já que pode renovar o download no ponto que você a deixou.</p>
<p><strong>MPUT</strong></p>
<p>Este comando nos permite transferir vários arquivos de uma vez ao servidor remoto, é bastante útil quando se necessita transferir vários arquivos.</p>
<p><strong>MGET</strong></p>
<p>Faz a operação inversa que o anterior, ou seja, baixa vários arquivos do servidor em remoto, de uma só vez.</p>
<p><strong>USER</strong></p>
<p>Com este comando mudamos de usuário e iniciamos sessão com outro usuário diferente.</p>
<p><strong>BYE</strong></p>
<p>Por último, há um comando que fecha a sessão e sai do programa de ftp de forma que todas as sessões abertas se fecham.</p>
<p>Todos estes comandos se utilizam no console, ou seja, no modo texto de Linux.<br />
Em MS-DOS (e o console de comandos de Windows) funcionam praticamente todos os comandos da mesma forma, por tanto se não tiver Linux e quiser provar, simplesmente terá que instalar um cliente ftp para MS-DOS em seu sistema. Geralmente, os sistemas Windows já têm instalado o cliente FTP pela linha de comandos, por isso, o mais provável é que não necessite instalar nada. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hostweb.com.br/comandos-para-ftp-atraves-de-linux/hostweb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter como ferramenta de marketing</title>
		<link>http://blog.hostweb.com.br/twitter-como-ferramenta-de-marketing/hostweb</link>
		<comments>http://blog.hostweb.com.br/twitter-como-ferramenta-de-marketing/hostweb#comments</comments>
		<pubDate>Mon, 17 May 2010 12:43:59 +0000</pubDate>
		<dc:creator>Lino</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>

		<guid isPermaLink="false">http://blog.hostweb.com.br/?p=686</guid>
		<description><![CDATA[A inglesa Sky News nomeou uma ‘correspondente Twitter’. Encarregou Ruth Barnett de vasculhar o serviço de microblogging em busca de informações e pautas &#8211; e também de publicar tweets no perfil do canal de notícias. A novidade foi anunciada internamente através de um memorando que convidava os funcionários que não entendiam o Twitter, ou queriam [...]]]></description>
			<content:encoded><![CDATA[<p>A inglesa Sky News nomeou uma ‘correspondente Twitter’. Encarregou Ruth Barnett de vasculhar o serviço de microblogging em busca de informações e pautas &#8211; e também de publicar tweets no perfil do canal de notícias. A novidade foi anunciada internamente através de um memorando que convidava os funcionários que não entendiam o Twitter, ou queriam ver uma demostração da força do site, a assistir uma palestra na empresa.</p>
<p>Para quem não sabe a “Zappos” (<a href="http://twitter.com/zappos">http://twitter.com/zappos</a>) mantém mais de 400 funcionários encarregados de atualizações e pesquisas relacionadas ao Twitter.</p>
<p>Para as empresas que estão pensando em aderir a este site, sugiro que inicialmente acompanhem o que as pessoas estão falando sobre a sua marca no Twitter, através do site: <a href="http://search.twitter.com">http://search.twitter.com</a>. Digite o nome da sua empresa e depois clique no botão “Search”. </p>
<p>Dúvidas? Podem enviar seus comentários e siga-nos no Twitter em: <a href="http://twitter.com/hostwebinternet">http://twitter.com/hostwebinternet</a></p>
<p><strong>Para mais informações acesse:</strong><a href="http://okm.me/1UMh"> http://okm.me/1UMh</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hostweb.com.br/twitter-como-ferramenta-de-marketing/hostweb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erros comuns em ASP e suas possíveis soluções</title>
		<link>http://blog.hostweb.com.br/erros-comuns-em-asp-e-suas-possiveis-solucoes/hostweb</link>
		<comments>http://blog.hostweb.com.br/erros-comuns-em-asp-e-suas-possiveis-solucoes/hostweb#comments</comments>
		<pubDate>Tue, 30 Mar 2010 12:23:39 +0000</pubDate>
		<dc:creator>Lino</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>

		<guid isPermaLink="false">http://blog.hostweb.com.br/?p=648</guid>
		<description><![CDATA[Abaixo listamos alguns erros comuns de ASP e suas possíveis soluções:
* [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
O nome da DSN utilizada não existe ou está incorreto. Sugerimos que verifique em sua programação se o nome está mesmo correto.
* [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key [...]]]></description>
			<content:encoded><![CDATA[<p>Abaixo listamos alguns erros comuns de ASP e suas possíveis soluções:</p>
<p><strong>* [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified</strong></p>
<p>O nome da DSN utilizada não existe ou está incorreto. Sugerimos que verifique em sua programação se o nome está mesmo correto.</p>
<p><strong>* [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key ‘Temporary (volatile) Jet DSN for process’.</strong></p>
<p>-Geralmente o banco de dados encontra-se em uma pasta que não possui permissão de “Escrita”, neste caso basta aplicar esta permissão no diretório onde a base encontra-se conforme descrito em Alterando_a_permissão_de_pastas_em_Windows;</p>
<p>-Este problema também ocorre em alguns casos quando a base de dados não existe ou o caminho esta errado;</p>
<p>Do contrário, procure alterar o driver de conexão para OLEDB como neste artigo String’s_de_conexão_para_ASP_e_ASP.NET#ACE_OLEDB_12.0 exemplo;</p>
<p><strong>* [Microsoft][ODBC SQL Server Driver][DBMSSOCN] General network error. Check your network document.</strong></p>
<p>Verifique se o endereço da base de dados está mesmo correto em sua programação. Persistindo o problema, abra um chamado em nosso Help-Desk na categoria SQL, mencionando a localização exata (link/URL) da página que contém este erro para que possamos identificar o motivo da falha.</p>
<p><strong>* [Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.</strong></p>
<p>Este erro ocorre quando o diretório ou o arquivo não tem permissão de escrita. Você pode alterar as permissões através do Painel de Controle, saiba como consultando esse artigo.</p>
<p><strong>* [Microsoft][ODBC Microsoft Access Driver] Too many client tasks.</strong></p>
<p>Recomendamos a utilização do driver OLEDB.</p>
<p><strong>* [Microsoft][ODBC Driver Manager] Data source name too long</strong></p>
<p>Este erro ocorre quando o tipo do campo na base de dados é pequeno para os dados informados. Portanto será necessário alterar a estrutura da base de dados ou alocar menos dados no campo com problemas.</p>
<p><strong>* [Microsoft][ODBC SQL Server Driver][SQL Server]Could not allocate space for object ’Nome_Tabela’ in database ’Nome_BasedeDados’ because the ’PRIMARY’ filegroup is full.</strong></p>
<p>Este erro ocorre quando o tamanho da base de dados é excedido. Sugerimos que compacte sua base de dados utilizando a Query: dbcc shrinkdatabase ()</p>
<p><strong>* [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. /default.asp, line 10</strong></p>
<p>Este erro ocorre quando há um excesso de parâmetros informados em uma instrução à base de dados.</p>
<p><strong>* Microsoft ADODB.Field error ’800a0bcd’ Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record</strong></p>
<p>Este erro ocorre quando o campo do objeto recordset consultado está vazio ou quando ele está no final.</p>
<p><strong>* Microsoft JET Database Engine error ’80004005’ Could not find installable ISAM. servicos/data.asp, line 10</strong><br />
A string de conexão pode está com a palavra datasource (juntos), altere para: data source.</p>
<p><strong>* ConnectionWrite(GetOverLappedResult)</strong></p>
<p>Este erro pode ocorrer ao tentar inserir mais dados do que é permitido em um campo (por exemplo, se tentar inserir 26 caracteres em um campo formatado para aceitar somente 25 caracteres). Neste caso verifique a estrutura de sua base de dados ou sua programação.</p>
<p><strong>* Microsoft OLE DB Provider for ODBC Drivers error ADODB.Fields error ’800a0cb3’ Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.</strong></p>
<p>O LockType que está utilizando em seu objeto recordset não permite edição nos dados do mesmo, sugerimos que utilize outro tipo de LockType.</p>
<p><strong>* Microsoft VBScript runtime error ’800a01f4’ Variable is undefined: ‘VAR1’ /site/teste.asp, line 38<br />
</strong><br />
O erro ocorre se na programação do arquivo estiver usando a opção Option Explicit, o que força a declaração das variáveis usadas, e a variável VAR1 não foi declarada.</p>
<p><strong>* Server.CreateObject Failed ’ASP 0177 : 800401f3’</strong></p>
<p>Ocorre quando o componente que está sendo instanciado não está instalado no servidor. Consulte nossa lista de componentes para verificar algum similar ou que realize o processo desejado.</p>
<p><strong>* Error ’8004020e’ /Locaweb/ASP/cdosys_lw.asp, line 144</strong></p>
<p>Ocorre quando seu objeto de envio de e-mail tenta enviar um e-mail mal formatado, ou seja, um e-mail com caracteres inválidos ou acentuação.</p>
<p><strong>* Active Server Pages error ‘ASP 0126′ – Include file not found</strong></p>
<p>Será apresentado esta mensagem de erro em casos onde o arquivo de include declarado em sua programação não seja localizado no diretório da área de hospedagem, verifique se o arquivo se encontra no local informado ou verifique se o nome do arquivo na linha de include está correto.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hostweb.com.br/erros-comuns-em-asp-e-suas-possiveis-solucoes/hostweb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Os 10 Melhores Wordpress SEO Plugins</title>
		<link>http://blog.hostweb.com.br/os-10-melhores-wordpress-seo-plugins/hostweb</link>
		<comments>http://blog.hostweb.com.br/os-10-melhores-wordpress-seo-plugins/hostweb#comments</comments>
		<pubDate>Tue, 23 Mar 2010 09:58:48 +0000</pubDate>
		<dc:creator>Lino</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>

		<guid isPermaLink="false">http://blog.hostweb.com.br/?p=626</guid>
		<description><![CDATA[O Wordpress é uma excelente plataforma de blogs, melhor ainda para aqueles que usam ou gostariam de usar técnicas de SEO (Search Engine Optimization). Você pode encontrar uma variedade de Wordpress Plugins desenvolvidos especificadamente para o propósito de SEO. Aqui estão os links para download ou se preferir você pode instalá-los diretamente pelo painel administrativo [...]]]></description>
			<content:encoded><![CDATA[<p>O Wordpress é uma excelente plataforma de blogs, melhor ainda para aqueles que usam ou gostariam de usar técnicas de SEO (Search Engine Optimization). Você pode encontrar uma variedade de Wordpress Plugins desenvolvidos especificadamente para o propósito de SEO. Aqui estão os links para download ou se preferir você pode instalá-los diretamente pelo painel administrativo do seu Blog Wordpress.<br />
Veja a seguir os 10 Melhores<strong> Wordpress SEO Plugins</strong> para Otimização de seu blog:</p>
<p>1.<a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/"> All in One SEO Pack</a> – Com este Plugin você pode otimizar o título, descrição e palavra-chave, tanto da página inicial (home), quanto das páginas internas (posts, page);</p>
<p>2. <a href="http://wordpress.org/extend/plugins/seo-image/">SEO Friendly Images</a> – Desenvolvido pelo Vladmir Prelovac, SEO Friendly Images é um Wordpress SEO Plugin de otimização, no que automaticamente inclui nas imagens os atributos de ALT e TITLE, sendo uma das técnicas de SEO recomendadas pelos profissionais do ramo;</p>
<p>3. <a href="http://wordpress.org/extend/plugins/broken-links-remover/">Broken Links Remover</a> – Este plugin ajuda a consertar links quebrados (broken links), tanto como links de texto (anchor tags) quanto links de imagem (img tags), bloqueando tais tipos de links de serem incluidos em seus posts ou páginas de seu Wordpress blog;</p>
<p>4. <a href="http://wordpress.org/extend/plugins/google-sitemap-generator/">Google XML Sitemaps</a> – Este Wordpress Plugin gera XML-Sitemap (Mapa do Site) compilado para o seu Wordpress blog. O formato gerado é compatível com os seguintes motores de busca: Ask.com, Google, YAHOO e MSN Search;</p>
<p>5. <a href="http://www.maxblogpress.com/plugins/mpo/">MaxBlogPress Ping Optimizer </a>– Pingar somente na hora necessária é a função deste Wordpress Plugin. Toda vez que você adiciona, atualiza ou modifica seus posts e páginas do seu blog, o Wordpress automaticamente alerta os serviços de pings. MaxBlogPress Ping Optimizer previni que o seu blog seja banido pelos serviços de pings por excesso de pings;</p>
<p>6. <a href="http://wordpress.org/extend/plugins/seo-automatic-links/">SEO Smart Links </a>– Este plugin automaticamente gera links nos post e páginas do seu blog. Os links são gerados de acordo com o título correspondente de cada post;</p>
<p>Exemplo -> Se você cria uma página com o nome de CONTATO, e se num outro post você escrever a palavra “contato”, SEO Smart Links irá criar um link nesta palavra que irá direcionar para a página CONTATO que você criou anteriormente;</p>
<p>7. <a href="http://wordpress.org/extend/plugins/sociable/">Sociable </a>– Desenvolvido pelo Yoast, Sociable é um Wordpress plugin que adiciona botões dos serviços de Social Media / Social Bookmarking automaticamente nos seus posts e páginas;</p>
<p>8. <a href="http://wordpress.org/extend/plugins/wp-pagenavi/">WP-PageNavi</a> – Google, Yahoo e os outros moteres de busca as vezes tem dificuldade de indexar algumas das páginas do seu blog por serem difíceis de chegar até elas. O plugin WP-PageNavi melhora e organiza a forma com o seu blog lida com o paginamento tornando os posts e páginas mais visíveis;</p>
<p>9.<a href="http://wordpress.org/extend/plugins/permalink-redirect/"> Permalink Redirect </a>– Este plugin remove todos os tipos de letra/sinais estranhos adicionados nas URLs automaticamente usando o redirecionamento 301 para o permalink dos posts, páginas, categorias e tags do seu blog;</p>
<p>10. <a href="http://wordpress.org/extend/plugins/404-notifier/">404 Notifier</a> – Este plugin notifica administradores de blogs via e-mail, qualquer tipo de erro 404 (páginas não encontradas) encontrado em seu blog;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hostweb.com.br/os-10-melhores-wordpress-seo-plugins/hostweb/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ruby &#8211; Strings, Números, Métodos e Condicionais</title>
		<link>http://blog.hostweb.com.br/ruby-strings-numeros-metodos-e-condicionais/hostweb</link>
		<comments>http://blog.hostweb.com.br/ruby-strings-numeros-metodos-e-condicionais/hostweb#comments</comments>
		<pubDate>Mon, 15 Mar 2010 11:58:08 +0000</pubDate>
		<dc:creator>Lino</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Sem Categoria]]></category>

		<guid isPermaLink="false">http://blog.hostweb.com.br/?p=609</guid>
		<description><![CDATA[Eu assumirei que você já tem o Ruby instalado. Se não, você precisa fazer isto antes de mais nada. Vamos começar a codificar. Abra o seu editor e escreva o seguinte:
puts &#8216;hello world&#8217;
Salve o programa como &#8216;helloworld.rb&#8217; e agora rode o programa. Se tudo ocorreu bem, o Ruby deveria mostrar “hello world”. Se  você [...]]]></description>
			<content:encoded><![CDATA[<p>Eu assumirei que você já tem o Ruby instalado. Se não, você precisa fazer isto antes de mais nada. Vamos começar a codificar. Abra o seu editor e escreva o seguinte:</p>
<p><strong>puts &#8216;hello world&#8217;</strong></p>
<p>Salve o programa como &#8216;helloworld.rb&#8217; e agora rode o programa. Se tudo ocorreu bem, o Ruby deveria mostrar “hello world”. Se  você  estiver usando um  editor  sem  uma  console interativa,   você deverá rodar  seus  programas  a  partir  do  prompt  de  comandos  do  sistema operacional.  Para  isto  abra  um  prompt  de  comandos  (Windows)  ou  um terminal  (Linux)  e  navegue  até  o  diretório contendo  o  código  fonte  e  então digite ruby seguido pelo nome do programa, assim: ruby helloworld.rb</p>
<p><strong> puts( &#8220;hello world&#8221;.upcase )</strong></p>
<p>Este deve ser o menor ‘hello world’ programa da história da programação, então vamos avançar modificando-o para pedir que o usuário digite algo &#8230;<br />
O próximo passo, então, é &#8217;solicitar&#8217; ao usuário uma string (conjunto de caracteres). O método para fazer isso em Ruby é gets. </p>
<p><strong>print(&#8217;Enter your name: &#8216; )<br />
name = gets()<br />
puts( &#8220;Hello #{name}&#8221; )<br />
</strong></p>
<p>O programa helloname.rb pergunta ao usuário o seu nome – vamos supor que é “Fred” -e então mostra uma saudação: “Hello Fred”.<br />
Enquanto isso ainda é muito simples, existem alguns detalhes importantes que precisam ser explicados.   Primeiro, note que eu usei print em vez de puts para mostrar a pergunta. Isto foi feito porque o puts adiciona uma nova linha no final e o print não; neste exemplo eu quero que o cursor permaneça na mesma linha da pergunta.</p>
<p>Na linha seguinte eu usei o gets() para ler a informação digitada pelo usuário emuma string quando for pressionada a tecla Enter. Esta string é armazenada na variável, name. Eu não pré-declarei esta variável, nem especifiquei seu tipo. Em Ruby você pode criar variáveis como e quando precisar delas e o Ruby deduz o tipo correspondente.  Neste caso eu atribui uma string para a variável name, logo o Ruby sabe que o tipo de name deve ser uma string.<br />
<span id="more-609"></span></p>
<p><strong>Objetos e Métodos</strong></p>
<p>        Ruby  é  uma  linguagem  altamente  OOP  (Programação  Orientada  por  Objetos).  Tudo  desde um inteiro até uma string é considerado um objeto. E cada objeto é constituído de &#8216;métodos&#8217; os quais podem fazer muitas coisas. Para usar um método, você precisa colocar um ponto após o objeto,  então  adicionar  o  nome  do  método.  Por    exemplo,  aqui  eu  estou  usando  o  método<br />
<strong><br />
      upcase para mostrar a string “hello world” em  maiúsculas:<br />
      puts( &#8220;hello world&#8221;.upcase )</strong></p>
<p>       Alguns métodos como o puts e o gets estão disponíveis em todo o lugar e não necessitam ser associados a um objeto específico. Tecnicamente falando, estes métodos são fornecidos pelo módulo Kernel do Ruby e eles estão presentes em todos os objetos Ruby. Quando você roda uma aplicação Ruby, um objeto chamado main é automaticamente criado e este objeto fornece acesso aos métodos do Kernel.</p>
<p>Nota: O Ruby é sensível a maiúsculas e minúsculas (caixa alta/baixa).<br />
          Uma variável chamada myvar é diferente de outra chamada myVar.<br />
          Uma variável como &#8216;name&#8217; no nosso exemplo deve iniciar com uma<br />
          letra minúscula ( em caixa baixa )</p>
<p>O símbolo de parênteses no final de gets() é opcional assim como os parênteses que envolvem as strings após o print e o puts; o código deveria rodar igualmente se você removesse os parênteses. Contudo, o Ruby está movendo-se gradualmente na direção do uso dos parênteses – particularmente quando passa-se argumentos para métodos. Os parênteses ajudam a evitar possíveis ambigüidades no código e , em alguns casos, o interpretador do Ruby irá avisá-lo se você omiti-los.</p>
<p><strong>Strings e Avaliação embutida</strong></p>
<p>A última linha no programa helloname.rb é bem interessante:</p>
<p><strong>puts( &#8220;Hello #{name}&#8221; )</strong></p>
<p>Aqui a variável name está embutida numa string. Isto é feito colocando a variável dentro do sinal de chaves {} precedido do caracter #, assim: #{variável}. Este tipo de avaliação embutida somente funciona com strings delimitadas por aspas (“”). E não é somente variáveis que podem ser embutidas entre as aspas. Você pode pode, também, embutir caracteres não imprimíveis como nova linha “\n” e tabs “\t” em strings delimitadas por aspas. Você pode até embutir pequenos códigos de programa e expressões matemáticas. Vamos assumir que você tem um método chamado showname, que retorna a string ‘Fred’. A string seguinte deveria, no processo de avaliação, chamar o método showname e, como resultado, mostrar a string “Hello Fred”:<br />
<strong><br />
puts &#8220;Hello #{showname}&#8221;</p>
<p>def showname<br />
   return &#8220;Fred&#8221;<br />
end</p>
<p>puts &#8220;Hello #{showname}&#8221;<br />
puts( &#8220;\n\t#{(1+2) * 3}&#8221; )<br />
</strong><br />
Veja se você consegue acertar o que seria mostrado pelo código seguinte:</p>
<p><strong>puts( &#8220;\n\t#{(1 + 2) * 3}&#8221; )</strong></p>
<p>Execute o programa string_eval.rb para ver se você está certo.<br />
Comentários&#8230;<br />
Linhas que começam com o caracter # são tratadas como comentários(elas são ignoradas pelo interpretador Ruby):</p>
<p>                    # This is a comment – Isto é um comentário</p>
<p><strong>Métodos</strong></p>
<p>No exemplo anterior, eu introduzi um método Ruby sem explicar precisamente o que é e a sintaxe necessária para criá-lo. Vejamos isso agora.</p>
<p><strong>class MyClass<br />
        def saysomething<br />
                puts( &#8220;Hello&#8221; )<br />
        end<br />
end</p>
<p>ob = MyClass.new<br />
ob.saysomething<br />
</strong></p>
<p>Um método é assim chamado porque ele fornece um método ( isto é, &#8216;uma forma&#8217;) para um objeto responder a mensagens. Na terminologia OOP, você envia uma mensagem para um objeto pedindo que ele faça algo. Vamos imaginar que você tem um objeto chamado ob o qual possui um método chamado saysomething, esta é a forma que você deveria enviar-lhe uma mensagem saysomething:<br />
<strong><br />
ob.saysomething</strong></p>
<p>Vamos supor que o método saysomething seja o seguinte:<br />
<strong><br />
def saysomething<br />
       puts( &#8220;Hello&#8221; )<br />
end<br />
</strong></p>
<p>Quando você envia a mensagem saysomething para o objeto ob ele responde com o método saysomething e mostra “Hello”. OK, esta a é forma ‘OOP pura’ de descrever este processo. Uma forma OOP não tão pura de descrever isso seria dizer que saysomething é como uma função que é ligada ao objeto e pode ser chamada usando a “notação de ponto”:</p>
<p><strong>ob.saysomething.</strong></p>
<p><strong>def showstring<br />
       puts( &#8220;Hello&#8221; )<br />
end<br />
def showname( aName )<br />
       puts( &#8220;Hello #{aName}&#8221; )<br />
end<br />
def return_name( aFirstName, aSecondName )<br />
       return &#8220;Hello #{aFirstName} #{aSecondName}&#8221;<br />
end<br />
def return_name2 aFirstName, aSecondName<br />
       return &#8220;Hello #{aFirstName} #{aSecondName}&#8221;<br />
end<br />
showstring<br />
showname( &#8220;Fred&#8221; )<br />
puts( return_name( &#8220;Mary Mary&#8221;, &#8220;Quite-Contrary&#8221;  ) )<br />
puts( return_name( &#8220;Little Jack&#8221;, &#8220;Horner&#8221;  ) )<br />
</strong><br />
No Ruby um método é declarado com a palavra-chave def  seguida do nome do método  o qual<br />
deveria iniciar com uma letra minúscula, como este:</p>
<p><strong>def showstring<br />
      puts( &#8220;Hello&#8221; )<br />
end<br />
</strong></p>
<p>Você pode, opcionalmente, colocar um ou mais argumentos, separados por vírgula, após o nome do<br />
método:</p>
<p><strong>def showname( aName )<br />
      puts( &#8220;Hello #{aName}&#8221; )<br />
end<br />
def return_name( aFirstName, aSecondName )<br />
      return &#8220;Hello #{aFirstName} #{aSecondName}&#8221;<br />
end<br />
</strong><br />
Os parênteses em volta dos argumentos são opcionais. A seguinte sintaxe também é permitida:</p>
<p><strong>def return_name2 aFirstName, aSecondName<br />
      return &#8220;Hello #{aFirstName} #{aSecondName}&#8221;<br />
end<br />
</strong></p>
<p>Como explicado anteriormente,  eu sou mais favorável a usar os parênteses mas você pode omiti-los<br />
se quiser.</p>
<p><strong><br />
def showstring<br />
            puts( &#8220;Hello&#8221; )<br />
end<br />
def showname( aName )<br />
            puts( &#8220;Hello #{aName}&#8221; )<br />
end<br />
def return_name( aFirstName, aSecondName )<br />
            return &#8220;Hello #{aFirstName} #{aSecondName}&#8221;<br />
end<br />
def return_name2 aFirstName, aSecondName<br />
            return &#8220;Hello #{aFirstName} #{aSecondName}&#8221;<br />
end<br />
                             </strong><br />
# so which object owns these methods, anyhow?<br />
# The following test reveals all&#8230;<br />
print( &#8220;The &#8216;free standing methods&#8217; in this code belong to an<br />
object named: &#8221; )<br />
puts( self )<br />
print( &#8220;which is an instance of the class: &#8221; )<br />
puts( self.class )<br />
#Free-standing methods (like those above which are not defined<br />
within a<br />
#specific class) are methods (strictly speaking, &#8216;private&#8217;<br />
methods) of<br />
#the main object which Ruby creates automtically. The following<br />
code<br />
#displays a list of the main object&#8217;s private methods. Look<br />
carefully and<br />
#you will find showname, return_name and return_name2 in that list<br />
puts( &#8220;It contains these private methods: &#8221; )<br />
puts( self.private_methods )</p>
<p>Se os métodos se ligam aos objetos, qual objeto possui os métodos “independentes” que você escreve no seu código? Como mencionado antes, o Ruby cria automaticamente um objeto chamado main quando você executa um programa e é a esse objeto que os métodos “independentes” se ligam.</p>
<p><strong>Números</strong></p>
<p>Números são tão fáceis de usar quanto as strings. Por exemplo, vamos supor que você quer calcular o preço de venda e o total geral de alguns itens partindo do subtotal e da taxa de imposto.Para fazer isto você precisaria multiplicar o subtotal pela taxa de imposto e adicionar o valor ao subtotal. Assumindo que o subtotal é $100 e a taxa de imposto é de 17.5%, este código Ruby faz o cálculo e mostra o resultado:</p>
<p><strong>subtotal = 100.00<br />
taxrate = 0.175<br />
tax = subtotal * taxrate<br />
puts &#8220;Tax on $#{subtotal} is $#{tax}, so grand total is<br />
$#{subtotal+tax}&#8221;<br />
</strong></p>
<p>Obviamente, seria mais útil se pudéssemos efetuar o cálculo de vários subtotais em vez de ficar fazendo o mesmo cálculo toda vez. Aqui está uma versão simples da “Calculadora de Impostos” que pergunta ao usuário o subtotal:<br />
<strong><br />
taxrate = 0.175<br />
print &#8220;Enter price (ex tax): &#8221;<br />
s = gets<br />
subtotal = s.to_f<br />
tax = subtotal * taxrate<br />
puts &#8220;Tax on $#{subtotal} is $#{tax}, so grand total is<br />
$#{subtotal+tax}&#8221;<br />
</strong></p>
<p>Aqui s.to_f é um método da classe String. Este método tenta converter a string para um número de ponto flutuante. Por exemplo, a string “145.45” seria convertida para o número de ponto flutuante 145.45. Se a string não pode ser convertida, 0.0 é retornado. Assim, por exemplo, “Hello </p>
<p><strong>world”.to_f retornaria 0.0.</strong></p>
<p><strong>Testando uma Condição: if &#8230;             then</strong></p>
<p>O problema com o código da “Calculadora de Impostos” mostrado acima é que ele aceita subtotais negativos e calcula imposto negativo sobre eles. Eu, por essa razão,  preciso checar os valores negativos e, quando encontrá-los, zerá-los.<br />
Esta é minha nova versão do código:</p>
<p><strong>taxrate = 0.175<br />
print &#8220;Enter price (ex tax): &#8221;<br />
s = gets<br />
subtotal = s.to_f<br />
if (subtotal < 0.0) then<br />
        subtotal = 0.0<br />
end<br />
tax = subtotal * taxrate<br />
puts "Tax on $#{subtotal} is $#{tax}, so grand total is<br />
$#{subtotal+tax}"<br />
</strong></p>
<p>O teste Ruby if é semelhante a um teste if em outras linguagens de programação . Note que os parênteses, mais uma vez, são opcionais, assim como a palavra-chave then. Entretanto, se você for escrever o seguinte, sem quebra de linha após a condição de teste, o then é obrigatório:</p>
<p><strong>if (subtotal < 0.0) then subtotal = 0.0 end</strong></p>
<p>Obs: Note que a palavra-chave end que termina o bloco if não é opcional. Esqueça de colocá-la e o seu código não irá rodar.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hostweb.com.br/ruby-strings-numeros-metodos-e-condicionais/hostweb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian: Arquivos sources.list</title>
		<link>http://blog.hostweb.com.br/debian-arquivos-sources-list/hostweb</link>
		<comments>http://blog.hostweb.com.br/debian-arquivos-sources-list/hostweb#comments</comments>
		<pubDate>Tue, 09 Mar 2010 12:44:51 +0000</pubDate>
		<dc:creator>Lino</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>

		<guid isPermaLink="false">http://blog.hostweb.com.br/?p=598</guid>
		<description><![CDATA[Um arquivo muito importante para o sistema APT de Debian é /etc/apt/sources.list.
 Neste arquivo são indicadas as fontes de onde serão obtidos os pacotes de software a serem instalados no sistema.
        Muitos programas são disponibilizados nos repositórios Debian e seus espelhos espalhados pelo mundo todo, mas alguns programas [...]]]></description>
			<content:encoded><![CDATA[<p>Um arquivo muito importante para o sistema APT de Debian é /<strong>etc/apt/sources.list.</strong><br />
 Neste arquivo são indicadas as fontes de onde serão obtidos os pacotes de software a serem instalados no sistema.</p>
<p>        Muitos programas são disponibilizados nos repositórios Debian e seus espelhos espalhados pelo mundo todo, mas alguns programas são disponibilizados em outras fontes (como é o caso de Picasa do Google) e freqüentemente é necessário adicionar ou remover endereços de repositórios do arquivo sources.list.</p>
<p>        As linhas neste arquivo indicam não somente o endereço do repositório, mas também apontam quais versões das distribuições Debian devem ser localizadas. A seguir, um exemplo de conteúdo de um arquivo sources.list para uma distribuição Testing. Os repositórios de pacotes podem ter seus endereços alterados, desta maneira, pode ser que algum dos endereços listados abaixo não esteja disponível quando testes forem efetuados. Basta que o usuário procure em fóruns e artigos quais repositórios estão em funcionamento e são de seu interesse.</p>
<p>O importante aqui é que se entenda a finalidade do arquivo e sua estrutura básica.</p>
<p>      <strong>  # Pacotes Debian (alguns repositórios duplicados propositalmente)</strong></p>
<p>        deb http://security.debian.org/debian-security testing/updates main</p>
<p>        deb http://ftp.us.debian.org/debian testing main contrib non-free</p>
<p>        deb http://ftp.br.debian.org/debian testing main contrib non-free</p>
<p>        deb http://www.debian-multimedia.org testing main</p>
<p>        deb http://security.debian.org/ testing/updates main contrib</p>
<p>        deb http://mirrors.kernel.org/debian/ testing main contrib non-free</p>
<p>        deb-src http://mirrors.kernel.org/debian testing main contrib non-free</p>
<p>        deb-src http://security.debian.org testing/updates main contrib</p>
<p>        deb-src http://ftp.br.debian.org/debian testing main contrib non-free</p>
<p><strong>Alguns exemplos:</strong></p>
<p>        # Google software repository</p>
<p>        deb http://dl.google.com/linux/deb/ stable main</p>
<p>        # VLC</p>
<p>        deb http://download.videolan.org/pub/videolan/debian/ sid main</p>
<p>        # Multimídia</p>
<p>        deb http://www.debian-multimedia.org sid main</p>
<p>        deb http://www.debian-multimedia.org experimental main</p>
<p>       <strong> Obs:As linhas que possuem um sinal # na frente são linhas comentadas que serão desconsideradas pelo APT.</strong></p>
<p>        A primeira palavra da linha é deb ou deb-src. No primeiro caso, indica-se um repositório de pacotes binários preparados para instalação e no segundo, código-fonte dos pacotes e alguns arquivos de controle, útil a programadores ou pessoas que gostam de (ou precisam) compilar os programas em seu próprio computador.</p>
<p>        O segundo argumento é o endereço, que pode ser acessado por protocolos http, ftp, etc.</p>
<p>        O terceiro argumento indica a distribuição, onde valem os codinomes. Por exemplo, em uma linha “deb http://ftp.br.debian.org/debian/ etch main contrib”, o codinome usado  “etch” e deve existir no endereço citado um diretório ou uma referência com o nome “etch” que aponte para os pacotes desta versão de Debian (4.0). Outra forma de indicar a distribuição é com os termos stable, testing e sid.</p>
<p>        As indicações main, contrib e non-free significam o tipo de licença dos pacotes. Os pacotes da seção main fazem parte da distribuição oficial Debian, os da seção non-free são pacotes que possuem distribuição restrita e os da seção contrib contém pacotes que podem ser livremente distribuídos mas dependem de pacotes da seção non-free.</p>
<p>        Mais informações sobre os pacotes das distribuições Debian podem ser encontradas no seguinte endereço: http://www.debian.org/distrib/packages. Outros repositórios podem ser encontrados em www.apt-get.org.</p>
<p>        Depois de alterar o arquivo sources.list, é preciso executar o comando para que sejam recuperadas as informações sobre os pacotes disponíveis nos repositórios. O comando referido é:<br />
      <strong>  # apt-get update</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hostweb.com.br/debian-arquivos-sources-list/hostweb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distribuições Linux. Qual utilizar?</title>
		<link>http://blog.hostweb.com.br/distribuicoes-linux-qual-utilizar/hostweb</link>
		<comments>http://blog.hostweb.com.br/distribuicoes-linux-qual-utilizar/hostweb#comments</comments>
		<pubDate>Tue, 02 Mar 2010 12:48:45 +0000</pubDate>
		<dc:creator>Lino</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>

		<guid isPermaLink="false">http://blog.hostweb.com.br/?p=585</guid>
		<description><![CDATA[        As pessoas podem montar seus sistemas GNU/Linux da maneira que desejarem, seja compilando os componentes do sistema (kernel e aplicativos), seja baixando imagens de instalação de sistemas compilados completamente para sua arquitetura de hardware.
       Diferente do sistema Windows, cujas versões são [...]]]></description>
			<content:encoded><![CDATA[<p>        As pessoas podem montar seus sistemas GNU/Linux da maneira que desejarem, seja compilando os componentes do sistema (kernel e aplicativos), seja baixando imagens de instalação de sistemas compilados completamente para sua arquitetura de hardware.</p>
<p>       Diferente do sistema Windows, cujas versões são produzidas por uma única empresa, as versões de Linux são disponibilizadas por muitos fornecedores diferentes. Pode-se pensar nisso como times de futebol, onde os instrumentos (bolas, chuteiras) são os mesmos, variando um pouco na marca, mas os componentes das equipes e a forma de jogar é completamente diferente para cada time. No caso de Linux, o núcleo do sistema (kernel) é o mesmo, variando um pouco na versão (2.4, 2.6, etc) mas o conjunto de programas final, ou seja, o sistema operacional de forma completa, comporta-se de maneira distinta de um fornecedor para o outro.</p>
<p>        Os fornecedores de imagens do sistema prontas para instalação são conhecidos como distribuidores e eles existem em grande número. A diferença entre as distribuições está nos objetivos para que foram criadas, os programas e padrões usados para distribuir pacotes de aplicativos aos usuários, além do sistema de instalação, praticidade de utilização e ferramentas de manutenção, documentação e suporte. Os conjuntos de software resultantes recebem o nome de Distribuições GNU/Linux.<br />
<span id="more-585"></span><br />
        Muitas distribuições são mantidas por organizações ou empresas, como é o caso de <strong>Red Hat, Mandriva, Debian e Gentoo</strong>, por exemplo. Entretanto, devido à característica de código aberto, nada impede que qualquer pessoa possa criar sua própria versão de Linux e distribuí-la, o que explica as mais de 300 distribuições disponíveis. O que faz a diferença neste caso é a qualidade do software produzido, uma vez que as organizações costumam testar muito bem seus conjuntos de software antes de torná-los disponíveis aos usuários, o que acaba tornando apenas 20 ou 30 distribuições mais conhecidas e utilizadas.</p>
<p>        Escolher qual distribuição será utilizada cabe a cada usuário, de acordo com o atendimento de suas necessidades. Em geral, recomenda-se que os usuários escolham distribuições que sejam atualizadas e suportem todo o hardware de seus equipamentos.<br />
       A escolha de uma distribuição vai além da opinião alheia sobre ela, afinal, o que é bom para um usuário pode não ser satisfatório para outro. Como base para escolha, o usuário pode definir o que espera da distribuição e pesquisar na Internet sobre cada item, por exemplo:</p>
<p>- Minhas placas de vídeo, som, rede e modem são suportadas pela distribuição?</p>
<p>- É possível instalar os programas dos quais necessito e consigo fazer isto sozinho?</p>
<p>- Se eu precisar de ajuda, existem comunidades na Internet, fóruns, suporte gratuito ou mesmo pago? </p>
<p>- Onde encontro documentação sobre o sistema para que possa aprender mais sobre a distribuição?</p>
<p>- E sobre as atualizações do sistema, o desenvolvimento dela é ativo?</p>
<p>- A distribuição é estável ou existem muitas falhas?</p>
<p>      Conforme a busca é realizada, o usuário notará que algumas distribuições providenciam certas facilidades aos usuários, mas não possuem estabilidade suficiente, outras são leves e estáveis, mas não possuem uma comunidade ativa. Portanto escolha a distribuição que melhor atende as suas necessidades. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hostweb.com.br/distribuicoes-linux-qual-utilizar/hostweb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como Instalar Google analytics no Wordpress</title>
		<link>http://blog.hostweb.com.br/como-instalar-google-analytics-no-wordpress/hostweb</link>
		<comments>http://blog.hostweb.com.br/como-instalar-google-analytics-no-wordpress/hostweb#comments</comments>
		<pubDate>Tue, 23 Feb 2010 13:10:07 +0000</pubDate>
		<dc:creator>Lino</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>

		<guid isPermaLink="false">http://blog.hostweb.com.br/?p=555</guid>
		<description><![CDATA[O Google analytics é uma ferramenta poderosa para analisar o tráfego do Site ou Blog. E o melhor de tudo isso é que ela é gratuita.
Saiba como instalar o Google Analytics no seu Blog Wordpress:
Antes de tudo você vai precisar de uma conta Google. Se você já usa algum dos serviços do Google (seja o [...]]]></description>
			<content:encoded><![CDATA[<p>O Google analytics é uma ferramenta poderosa para analisar o tráfego do Site ou Blog. E o melhor de tudo isso é que ela é gratuita.</p>
<p>Saiba como instalar o Google Analytics no seu Blog Wordpress:</p>
<p>Antes de tudo você vai precisar de uma conta Google. Se você já usa algum dos serviços do Google (seja o gMail, Orkut, e etc.) você tem uma conta Google e é só usar os mesmos dados para cadastrar o seu site no Analytics. Vamos as Dicas:</p>
<p>Primeiro acesse o site do Google Analytics: www.google.com/analytics/</p>
<p>Página inicial do Google Analytics, entre com os dados de login da sua conta Google. Se você ainda não tem uma conta Google clique no link “Inscreva-se agora” e prossiga com o seu cadastro.</p>
<p>Quando sua conta Google Analytics estiver Pronta. Vá até a Página do código de acompanhamento. Copie o código de acompanhamento e vá até o arquivo footer.php do seu site, cole-o no código fonte no HTML do seu site exatamente antes da tag<br />
<img src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/freehosting.png" alt="freehosting" title="freehosting" width="80" height="15" class="aligncenter size-full wp-image-554" /><br />
Free Web Hosting<br />
, no fim do seu site. Você precisa fazer isso antes de continuar. Sem esse passo o Google não vai poder fazer o monitoramento do seu site.</p>
<p>Depois de adicionar o código de acompanhamento no seu site, clique no botão Continuar no fim da página e você será levado para uma página pode você tera uma listagem de todos os seus sites cadastrados no Analytics (sim, você pode adicionar mais de um site).</p>
<p>Agora é só aguardar o Google começar a coletar os dados das visitas do seu site que, quando você clicar em Visualizar Relatório você já vai poder começar a visualizar os gráficos de visitas, pageviews e tudo mais sobre os visitantes do seu site.</p>
<p>O Google Analytics é a Ferramenta de Estatísticas, Mais fácil de ser Instalado no WordPress. Pois não Precisa de Instalar Plugins.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hostweb.com.br/como-instalar-google-analytics-no-wordpress/hostweb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL – Operações com SQL básico</title>
		<link>http://blog.hostweb.com.br/mysql-operacoes-com-sql-basico/hostweb</link>
		<comments>http://blog.hostweb.com.br/mysql-operacoes-com-sql-basico/hostweb#comments</comments>
		<pubDate>Thu, 18 Feb 2010 17:07:26 +0000</pubDate>
		<dc:creator>Lino</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://blog.hostweb.com.br/?p=542</guid>
		<description><![CDATA[Preparando o ambiente
Você vai precisar ter o MySQL instalado . Isto não é problema , ele é um freeware e você pode fazer o download no endereço www.mysql.com . A última versão estável disponível para Windows é a -MySQL 4.1.10 – apresentada em três pacotes :
*o essential package com 14 MB que possui os componentes [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Preparando o ambiente</strong></p>
<p>Você vai precisar ter o MySQL instalado . Isto não é problema , ele é um freeware e você pode fazer o download no endereço www.mysql.com . A última versão estável disponível para Windows é a -MySQL 4.1.10 – apresentada em três pacotes :</p>
<p>*o essential package com 14 MB que possui os componentes essenciais para rodar o Mysql Server em uma máquina Windows<br />
*o pacote com o instalador com 35.1 MB<br />
*e o pacote com o windows o windows installer com 34,9 MB</p>
<p>Nota : O MySQL utiliza o TCP/IP para fazer a conexão Cliente/Servidor , logo , você tem que ter o TCP/IP instalado na sua Máquina. Além disto você vai precisar ter o Winsock 2 instalado. Se você ter uma cópia mais antiga do Windows 95 instalada vai precisar atualizar o Winsock. (http://www.microsoft.com/.)</p>
<p>Após a instalação, para ativar o servidor MySQL você pode digitar no prompt do DOS ou no menu Iniciar!Executar o seguinte comando:</p>
<p>c:\mysql\bin\mysq</p>
<p>(O MySQL não pode ser iniciado como um serviço do Windows pois o Windows 95/98 não suporta isto. Somente o Windows NT/2000 e XP suportam o MySQL rodando como um seviço)</p>
<p>Para testar se o MySQL esta instalado corretamente , execute a seguinte linha no prompt do DOS:</p>
<p>c:\mysql\bin\mysql</p>
<p>Se tudo estiver nos seus devidos lugares você vai receber a seguinte tela:<br />
<img class="aligncenter size-full wp-image-512" title="1" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/1.gif" alt="1" width="430" height="130" /></p>
<p>Vamos então a partir daqui mostrar alguns conceitos básicos relacionados com comandos SQL para o MySQL no Windows usando o prompt de comandos. Embora existam programas com interfaces gráficas que fazem este serviço acho bom você conhecer esta opção. Vamos lá…</p>
<p>Os comandos serão digitados na linha de comando ; após o termino de cada linha tecle Enter e para executar o comando tecle ; e Enter.<br />
<span id="more-542"></span><br />
<strong>1- Para exibir os banco de dados disponíveis use o comando : Show DataBases</strong><br />
<img class="aligncenter size-full wp-image-513" title="2" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/2.gif" alt="2" width="322" height="155" /><br />
O resultado do comando esta exibindo os três banco de dados que eu tenho disponível no meu MySQL</p>
<p>Nota: O comando Select Database(); exibe o database atual.</p>
<p><strong>2- Agora eu vou criar um novo banco de dados chamado Teste usando o comando : Create Database e a seguir irei exibir os banco de dados existentes , conforme abaixo:</strong><br />
<img class="aligncenter size-full wp-image-514" title="3" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/3.gif" alt="3" width="296" height="210" /></p>
<p><strong>3- Para trabalhar com um banco de dados usamos o comando : </strong>Use  . Vamos usar o banco de dados Teste e exibir as tabelas existentes usando o comando Show Tables:<br />
<img class="aligncenter size-full wp-image-515" title="4" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/4.gif" alt="4" width="174" height="104" /><br />
O comando Show tables não encontrou nenhuma tabela no banco de dados Teste.</p>
<p>Nota: Para excluir um banco de dados use comando : DROP DATABASE</p>
<p><strong>4- Vamos criar uma tabela no banco de dados Teste. Para isto usamos o comando Create Table com a seguinte sintaxe:</strong></p>
<p>CREATE TABLE table_name (column_name1 type [modifiers]<br />
[, column_name2 type [modifiers]])</p>
<p>Vamos criar uma tabela chamada Clientes com seguinte estrutura:</p>
<p>* Codigo – chave primária<br />
* Nome – VarChar(30)<br />
* Endereco – VarChar(30)<br />
* Estado – char(2)<br />
<img class="aligncenter size-full wp-image-516" title="5" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/5.gif" alt="5" width="418" height="91" /></p>
<p>nota: Para definir a coluna como do tipo autoincremental basta acrescentar :AUTO_INCREMENT na definição da coluna. Para o exemplo acima faríamos:</p>
<p>CODIGO BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT</p>
<p><strong>5- Para inserir dados na tabela usamos o comando Insert Into:</strong></p>
<p>INSERT INTO table_name (column1, column2, …, columnN)<br />
VALUES (value1, value2, …, valueN)</p>
<p>Vamos inserir um registro na tabela usando a instrução SQL abaixo:</p>
<p>INSERT INTO CLIENTES (Codigo,Nome, endereco, estado)<br />
VALUES(1,&#8217;Macoratti&#8217;, &#8216;Av. Mirassol 100&#8242;, &#8216;SP&#8217;);</p>
<p><img class="aligncenter size-full wp-image-517" title="6" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/6.gif" alt="6" width="480" height="198" /></p>
<p><strong>6- Se quisermos obter informações detalhadas da estrutura da tabela usamos o comando : DESCRIBE (NOME DA TABELA)</strong><br />
<img class="aligncenter size-full wp-image-518" title="7" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/7.gif" alt="7" width="529" height="126" /></p>
<p>Nota: Temos abaixo os principais tipos de dados<br />
Tipo de Dados 	Descrição<br />
<strong>INT</strong> Representa um valor inteiro. Pode ser com sinal ou sem sinal<br />
<strong>REAL</strong> Representa um valor com ponto flutuante. Oferece uma grande precisão e uma extensa faixa de valores<br />
<strong>CHAR</strong>(n) 	Representa um valor caractere com tamanho fixo.<br />
<strong>TEXT</strong> Representa um valor para caractere com tamanho variável<br />
<strong>DATE</strong> Representa um valor de data padrão. Formato : YYYY-MM-DD (2001-01-01)<br />
<strong>TIME</strong> Representa um valor de tempo padrão. Armazena a hora de um dia independente de uma data particular. Formato : hh:mm:ss (06:00:00)</p>
<p><strong>7- Para excluir uma tabela basta usar o comando DROP </strong></p>
<p><strong>8- Para atualizar uma coluna podemos usar o comando : UPDATE . Abaixo uma das sintaxes possíveis onde atualizamos a coluna Endereco.</strong></p>
<p><img class="aligncenter size-full wp-image-519" title="8" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/8.gif" alt="8" width="419" height="163" /><br />
A sintaxe para o comando UPDATE é :<br />
UPDATE table_name<br />
SET column1=value1, column2=value2, …, columnN=valueN<br />
[WHERE clause]</p>
<p>9<strong> – Para excluir uma linha da tabela usamos o comando DELETE . </strong>Abaixo estou excluindo a linha inserida acima . Note que é aconselhável especificar a condição na cláusula WHERE.</p>
<p><img class="aligncenter size-full wp-image-520" title="9" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/9.gif" alt="9" width="354" height="54" /></p>
<p><strong>10 – Para encerrar este primeiro contato com as operações básicas SQL no MySQL vamos realizar uma junção de duas tabelas. </strong>Para isto vamos criar uma tabela chamada veículos que estará relacionada coma tabela teste criada acima e conterá os dados dos veículos de cada cliente:</p>
<p><img class="aligncenter size-full wp-image-521" title="10" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/10.gif" alt="10" width="423" height="87" /></p>
<p>Exibindo as tabelas existentes e a estrutura da tabela criada teremos:<br />
<img class="aligncenter size-full wp-image-522" title="11" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/11.gif" alt="11" width="532" height="259" /></p>
<p>Vamos agora incluir alguns dados na tabela teste e na tabela veículos usando INSERT INTO.</p>
<p>Obs: Podemos usar a notação Insert Into values() : Ex: insert into veiculos values( 1, &#8216;MERCEDES&#8217;, &#8216;BRANCA&#8217;, 1, 3000)</p>
<p>Abaixo temos o resultado final:<br />
<img class="aligncenter size-full wp-image-523" title="12" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/12.gif" alt="12" width="412" height="261" /><br />
Vamos fazer a nossa junção. Usamos para isto a cláusula SELECT e definimos a tabela e o nome do campo que desejamos exibir separados por um ponto ; a seguir relacionamos as tabelas de dados na cláusula FROM e definimos a condição na cláusual WHERE .</p>
<p>O resultado é exibido abaixo:<br />
<img class="aligncenter size-full wp-image-524" title="13" src="http://blog.hostweb.com.br/wp-content/uploads/2010/02/13.gif" alt="13" width="392" height="158" /></p>
<p>O que foi mostrado aqui é apenas a ponto do iceberg , mas com os conceitos expostos você pode se virar usando comandos SQL básicos na linha de comando do prompt do MySQL.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hostweb.com.br/mysql-operacoes-com-sql-basico/hostweb/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
