<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-8414451965867271178</id><updated>2009-11-10T10:30:42.691-03:00</updated><title type='text'>Zero Um</title><subtitle type='html'>O mundo da informática para informatas.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>21</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-4035032769452690052</id><published>2009-09-24T18:24:00.001-04:00</published><updated>2009-11-10T10:04:17.086-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Disco'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Vista'/><category scheme='http://www.blogger.com/atom/ns#' term='Boot'/><title type='text'>"Disco" de Boot do Vista</title><content type='html'>Acho que nunca foi tão difícil fazer um "disco" de boot como no Windows Vista.&lt;br /&gt;&lt;br /&gt;Primeiro você tem que baixar um ISO de 1.3 Gb e instalar um pacote chamado "Automated Installation Kit (AIK)":&lt;br /&gt;https://www.microsoft.com/downloads/details.aspx?familyid=94BB6E34-D890-4932-81A5-5B50C657DE08&amp;displaylang=en&lt;br /&gt;&lt;br /&gt;Após seguir alguns passos meios cabulosos para marinheiros de primeira viagem (entenda-se todas as pessoas que não fizeram curso para serem técnicos no Windows Vista):&lt;br /&gt;http://windowsitpro.com/article/articleid/97797/using-a-usb-flash-drive-to-recover-windows-vista.html&lt;br /&gt;&lt;br /&gt;Que fará referencia a este post, que deve ser feito no meio do caminho dos passos anteriores (ou na verdade pode ser feito primeiro):&lt;br /&gt;http://blogs.msdn.com/winre/archive/2006/12/12/creating-winre-using-waik.aspx&lt;br /&gt;&lt;br /&gt;E aí finalmente após umas 4h de download e 1 a 2 horas apanhando, você terá um "disco" de boot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-4035032769452690052?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/4035032769452690052/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=4035032769452690052' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/4035032769452690052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/4035032769452690052'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2009/09/disco-de-boot-do-vista.html' title='&quot;Disco&quot; de Boot do Vista'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-3742336057869317327</id><published>2009-05-20T15:38:00.002-04:00</published><updated>2009-11-04T16:07:30.303-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Desligando o computador</title><content type='html'>Fiz um projeto no codexplex mais para testar como funcionava o esquema lá e coloquei um projetinho q fiz brincando outro dia.&lt;br /&gt;&lt;br /&gt;O que o "software" faz é desligar o seu Windows depois de um tempo pré-programado.&lt;br /&gt;&lt;br /&gt;Quem quiser me ajudar a melhorar o projeto, a descrição ou somente testar, fiquem a vontade.&lt;br /&gt;&lt;br /&gt;Toda ajuda é bem vinda!&lt;br /&gt;&lt;br /&gt;Para conferir acesse:&lt;br /&gt;&lt;a href="http://winshutdown.codeplex.com/"&gt;http://winshutdown.codeplex.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-3742336057869317327?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='related' href='http://winshutdown.codeplex.com/' title='Desligando o computador'/><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/3742336057869317327/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=3742336057869317327' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/3742336057869317327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/3742336057869317327'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2009/05/desligando-o-computador.html' title='Desligando o computador'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-7450022488970906497</id><published>2009-04-28T19:25:00.002-04:00</published><updated>2009-11-10T10:04:48.308-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Cookbook'/><title type='text'>C# Receita #1</title><content type='html'>&lt;p&gt;Estou usando o livro C# 3.0 Cookbook que ganhei durante o Pantanet Seminars I e ao procurar algumas receitas, vi que elas não constavam no livro, então resolvi publicar essas receitas nos mesmos moldes do livro. Claro que elas não serão tão didáticas e discutidas como no livro, mas o que vale é a intenção. Então o didatismo e a discussão dependerá dos comentários e dúvidas postados.&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Como mesclar 2 vetores&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Quando você tem um array e quer mesclar (unir) com outro array, não existe um método para isso como numa Lista, por exemplo, então é necessário fazer uma gambiarra. Nesta receita tenho 2 arrays a1 e a2, e quero uni-los no array a3:&lt;/p&gt;  &lt;p&gt;string[] a1 = { &amp;quot;dog&amp;quot;, &amp;quot;dock&amp;quot;, &amp;quot;deer&amp;quot; };    &lt;br /&gt;string[] a2 = { &amp;quot;lion&amp;quot;, &amp;quot;tiger&amp;quot; };&lt;/p&gt;  &lt;p&gt;string[] a3 = new string[a1.Length + a2.Length];    &lt;br /&gt;a1.CopyTo(a3, 0);     &lt;br /&gt;a2.CopyTo(a3, a1.Length);&lt;/p&gt;  &lt;p&gt;Simples e conciso.    &lt;br /&gt;Outro caso poderia ser se você quisesse unir a2 a a1, como no C# não há como redimensionar arrays dinamicamente como no VB.Net, ou você pode atribuir a3 a a1, ou então usar uma função auxiliar para redimensionar a1 e depois copiar os valores de a2 para a1, como abaixo:&lt;/p&gt;  &lt;p&gt;int pos = a1.Length;   &lt;br /&gt;a1&amp;#160; = RedimArray(a1, a1.Length + a2.Length);    &lt;br /&gt;a2.CopyTo(a1, pos);&lt;/p&gt;  &lt;p&gt;Abaixo uma função para expandir arrays:&lt;/p&gt;  &lt;p&gt;&lt;font color="#008040"&gt;&lt;font color="#808080"&gt;/// &amp;lt;summary&amp;gt;&lt;/font&gt;       &lt;br /&gt;/// Realoca um vetor com um novo tamanho, e copia seu&amp;#160; &lt;br /&gt;/// conteúdo para o novo vetor.       &lt;br /&gt;&lt;font color="#808080"&gt;/// &amp;lt;/summary&amp;gt;&lt;/font&gt;       &lt;br /&gt;&lt;font color="#808080"&gt;/// &amp;lt;param name=&amp;quot;oldArray&amp;quot;&amp;gt;&lt;/font&gt;o vetor antigo, a ser realocado.&amp;lt;/param&amp;gt;       &lt;br /&gt;&lt;font color="#808080"&gt;/// &amp;lt;param name=&amp;quot;newSize&amp;quot;&amp;gt;&lt;/font&gt;o tamanho do novo vetor.&amp;lt;/param&amp;gt;       &lt;br /&gt;&lt;font color="#808080"&gt;/// &amp;lt;returns&amp;gt;&lt;/font&gt;Um novo vetor com o mesmo conteúdo.&amp;lt;/returns&amp;gt;       &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000a0"&gt;public static&lt;/font&gt; System.Array RedimArray(System.Array vetor, int novoTamanho)     &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#000080"&gt;int&lt;/font&gt; tamanhoAnt = vetor.Length;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; System.&lt;font color="#0080ff"&gt;Type&lt;/font&gt; tipo = vetor.GetType().GetElementType();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; System.&lt;font color="#0080ff"&gt;Array&lt;/font&gt; novoVetor = System.&lt;font color="#0080ff"&gt;Array&lt;/font&gt;.CreateInstance(tipo, novoTamanho);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#000080"&gt;int&lt;/font&gt; tamanho = System.&lt;font color="#0080ff"&gt;Math&lt;/font&gt;.Min(tamanhoAnt, novoTamanho);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#000080"&gt;if&lt;/font&gt; (tamanho &amp;gt; 0)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; System.&lt;font color="#0080ff"&gt;Array&lt;/font&gt;.Copy(vetor, novoVetor, tamanho);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#000080"&gt;return&lt;/font&gt; novoVetor;     &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Porém caso fosse necessário fazer muitos redimensionamentos é recomendado usar uma Lista ou alguma outra coleção, especialmente se os vetores forem grandes ou com objetos de grande tamanho.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:8f2acbdf-54c4-4958-838e-65f1b9ea45d5" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/dotNet" rel="tag"&gt;dotNet&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CSharp" rel="tag"&gt;CSharp&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Receipt" rel="tag"&gt;Receipt&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Arrays" rel="tag"&gt;Arrays&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-7450022488970906497?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/7450022488970906497/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=7450022488970906497' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/7450022488970906497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/7450022488970906497'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2009/04/c-receita-1.html' title='C# Receita #1'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-1826795210788397627</id><published>2009-04-09T09:36:00.001-04:00</published><updated>2009-11-10T10:05:38.605-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='Toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><title type='text'>Como não deixar selecionar data anterior a atual no CalendarExtender</title><content type='html'>O AJAX Control Toolkit tem um controle chamado CalendarExtender, que exibe um calendário para seleção de data ao clicar em um textbox. Muitas vezes queremos que o usuário selecione somente uma data futura.&lt;br /&gt;&lt;br /&gt;Para fazer isso basta adicionar no header a seguinte função javascript:&lt;br /&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;function&lt;/span&gt; checkDate(sender,args)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt; text-indent: 0.5in;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt;(sender._selectedDate &amp;lt; &lt;span style="color: blue;"&gt;new&lt;/span&gt; Date())&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;alert(&lt;span style="color: #a31515;"&gt;"Você não pode selecionar uma data passada!"&lt;/span&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sender._selectedDate = &lt;span style="color: blue;"&gt;new&lt;/span&gt; Date();&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: green;"&gt;// seleciona a data atual novamente&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt 1in;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;sender._textbox.set_Value(sender._selectedDate.format(sender._format))&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt; text-indent: 0.5in;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E adicionar a referencia a esse função no CalendarExtender, como no exemplo abaixo:&lt;br /&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;form&lt;/span&gt;&lt;span style="color: red;"&gt;id&lt;/span&gt;&lt;span style="color: blue;"&gt;="form1"&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: #a31515;"&gt;ScriptManager&lt;/span&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="ScriptManager1"&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;div&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: #a31515;"&gt;TextBox&lt;/span&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="TextBox1"&lt;/span&gt; &lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;asp&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: #a31515;"&gt;TextBox&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515;"&gt;cc1&lt;/span&gt;&lt;span style="color: blue;"&gt;:&lt;/span&gt;&lt;span style="color: #a31515;"&gt;CalendarExtender&lt;/span&gt; &lt;span style="color: red;"&gt;ID&lt;/span&gt;&lt;span style="color: blue;"&gt;="CalendarExtender1"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style="color: red;"&gt;runat&lt;/span&gt;&lt;span style="color: blue;"&gt;="server"&lt;/span&gt; &lt;span style="color: red;"&gt;OnClientDateSelectionChanged&lt;/span&gt;&lt;span style="color: blue;"&gt;="checkDate"&lt;/span&gt; &lt;span style="color: red;"&gt;TargetControlID&lt;/span&gt;&lt;span style="color: blue;"&gt;="TextBox1"&lt;/span&gt; &lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;div&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin: 0in 0in 10pt;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"&gt;&lt;span style="color: blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515;"&gt;form&lt;/span&gt;&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-1826795210788397627?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/1826795210788397627/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=1826795210788397627' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/1826795210788397627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/1826795210788397627'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2009/04/como-nao-deixar-selecionar-data.html' title='Como não deixar selecionar data anterior a atual no CalendarExtender'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-2902282068195553960</id><published>2009-03-31T19:45:00.002-04:00</published><updated>2009-03-31T19:45:49.297-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Live'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Brinquedinhos da Microsoft</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #555555; font-family: 'Helvetica Neue'; font-size: 13px; line-height: 19px; text-align: left;"&gt;Encontrei um software da Microsoft mto útil para backups para usuários comuns, chama-se SyncToy, e pode ser baixado aqui:&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=c26efa36-98e0-4ee9-a7c5-98d0592d8c52&amp;amp;displaylang=en" style="color: #2079b9; text-decoration: underline;"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=c26efa36-9...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Outras ferramentas Microsoft que tenho testado são o Live Mesh e o Live Sync, onde pelo que vi o segundo perde o sentido devido a existencia do primeiro que faz tudo que o Live Sync faz e muito mais. Bom o Live Sync serve para sincronizar pastas entre computadores diferentes, onde os 2 PCs devem estar ligados para sincronizar, parece óbvio, mas nada prático se vc quiser sincronizar arquivos de casa e do trabalho e ter que lembrar de deixar ligado para poder sincronizar, ruim não? Porém para sincronizar entre duas pessoas (2 usuários com contas "Live") é bom.&lt;br /&gt;&lt;br /&gt;Bom, como disse o Live Mesh faz tudo que citei anteriormente com um extra, ele deixa um backup de tudo na internet, você pode logar em&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://mesh.com/" style="color: #2079b9; text-decoration: underline;"&gt;mesh.com&lt;/a&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;e acessar todos seus arquivos "sincronizados". Assim ele permite que você sincronize pastas entre 2 computadores sem que os 2 estejam ligados ao mesmo tempo e você ainda tem um backup.&lt;br /&gt;&lt;br /&gt;Recentemente andei lendo também sobre o SyncFramework que vem com o SQL Server 2008, parece ser muito legal e evita que os programadores tenham que pensar nas regras de sincronização qdo implementarem clientes desconectados. Acredito que as 3 ferramentas que citei acima usem esse framework.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-2902282068195553960?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/2902282068195553960/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=2902282068195553960' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/2902282068195553960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/2902282068195553960'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2009/03/brinquedinhos-da-microsoft.html' title='Brinquedinhos da Microsoft'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-7693962237547338900</id><published>2008-10-23T14:26:00.002-03:00</published><updated>2009-11-10T10:13:44.370-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Certificação'/><category scheme='http://www.blogger.com/atom/ns#' term='Carreira'/><title type='text'>Seja um líder... ou não!</title><content type='html'>Não existe uma receita para vida, cada pessoa é única e cada um de nós deve fazer a sua própria receita.&lt;br /&gt;&lt;br /&gt;"O mundo não foi feito para ser justo, nem igual. O mundo real é, por natureza, altamente injusto e altamente desigual."&lt;br /&gt;&lt;br /&gt;Boa (e longa) leitura sobre certificações, lideres e falsos mítos.&lt;br /&gt;&lt;a href="http://akitaonrails.com/2008/9/20/off-topic-o-poder-do-mito-redux/"&gt;http://akitaonrails.com/2008/9/20/off-topic-o-poder-do-mito-redux/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;"Thomas Edson e Alexander Graham Bell foram o que Bill Gates e Steve Jobs são hoje. Copiaram a idéia de outros e souberam como fazer dinheiro com isso."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-7693962237547338900?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/7693962237547338900/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=7693962237547338900' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/7693962237547338900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/7693962237547338900'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/10/seja-um-lder-ou-no.html' title='Seja um líder... ou não!'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-5427243198155729751</id><published>2008-10-14T13:44:00.001-04:00</published><updated>2009-11-10T10:14:30.150-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><category scheme='http://www.blogger.com/atom/ns#' term='Código'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Machucando o código por lucro e diversão</title><content type='html'>Eis uma palestra que achei muito divertida e que todo programador deveria ver:&lt;br /&gt;&lt;br /&gt;&lt;object height="302" width="400"&gt; &lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=1171415&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=1171415&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Ela chama-se &lt;a href="http://vimeo.com/1171415?pg=embed&amp;amp;sec=1171415"&gt;Machucando Código por Diversão e Lucro - Ryan Davis&lt;/a&gt; e por traduzida por &lt;a href="http://vimeo.com/akitaonrails?pg=embed&amp;amp;sec=1171415"&gt;Fabio Akita&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para quem entende inglês, recomendo ver a palestra original no endereço:&lt;br /&gt;&lt;a href="http://goruco2008.confreaks.com/04_davis.html"&gt;http://goruco2008.confreaks.com/04_davis.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bom código! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-5427243198155729751?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/5427243198155729751/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=5427243198155729751' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/5427243198155729751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/5427243198155729751'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/10/machucando-o-cdigo-por-lucro-e-diverso.html' title='Machucando o código por lucro e diversão'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-3028183554214255063</id><published>2008-09-17T20:35:00.000-04:00</published><updated>2008-09-17T21:20:15.614-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tricks'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='passwords'/><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='novidades'/><category scheme='http://www.blogger.com/atom/ns#' term='senhas'/><category scheme='http://www.blogger.com/atom/ns#' term='truques'/><title type='text'>Você salva senhas no Firefox?</title><content type='html'>Se sua resposta for sim, então você deve tomar cuidado.&lt;br /&gt;&lt;br /&gt;Essa "notícia" foi um espanto para mim, pois uso Firefox há muito tempo, e com exceção das senhas mais importantes, eu tinha o costume de salvar senhas de acesso a sites mais simplórios. Mudei de idéia ao ler sobre um recurso do Firefox 3 que permite visualizar todas as senhas salvas.&lt;br /&gt;&lt;br /&gt;Isso mesmo, além de você ver quais sites salvou a senha, sua usuário, ele ainda informa a senha.&lt;br /&gt;Eu acho isso uma brecha de segurança, pois uma coisa é a pessoa acessar um site e encontrar a senha salva, outra é ela conseguir o usuário e senha de todos os sites que você acessar.&lt;br /&gt;&lt;br /&gt;Para Visualizar as suas senhas no Firefox 3, siga os seguintes passos:&lt;br /&gt;&lt;br /&gt;1. Selecione Ferramentas, clique em Opções e depois clique no ícone de Segurança&lt;br /&gt;&lt;br /&gt;2. Na seção de Senha, clique em Senhas Memorizadas. Aparecerá uma lista com sites e nomes de usuário lembrados pelo navegador&lt;br /&gt;&lt;br /&gt;3. Clique em Exibir senhas. Uma tela de alerta questionará se você quer mesmo exibi-las. Clique em Sim. Você verá a lista de URLs, com nomes de usuário e senhas ao lado.&lt;br /&gt;&lt;br /&gt;Se você usa um computador compartilhado, em casa, por exemplo, onde toda sua familia usa, as vezes parentes, as vezes amigos, quem sabe até um estranho. Pior ainda, você leva esse seu PC para assistencia técnica por estar apresentando problemas e aí qualquer uma dessas pessoas poderá ser acesso a todas suas senhas.&lt;br /&gt;&lt;br /&gt;Eu fiquei realmente decepcionado com essa funcionalidade do Firefox.&lt;br /&gt;Porém, o mundo não acabou!&lt;br /&gt;&lt;br /&gt;Para evitar que alguém não autorizado veja suas senhas, ative a "Senha Mestra".&lt;br /&gt;Você encontrará esse botão logo acima do "Senhas Memorizadas".&lt;br /&gt;Agora para visualizar suas senhas ficou um pouco mais difícil, a pessoa terá que tentar descobrir sua senha mestra.&lt;br /&gt;&lt;br /&gt;Para ver mais novidades e truques &lt;a href="http://idgnow.uol.com.br/internet/2008/07/02/conheca-12-truques-para-o-firefox-3/"&gt;clique aqui.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cuide-se! ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-3028183554214255063?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/3028183554214255063/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=3028183554214255063' title='5 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/3028183554214255063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/3028183554214255063'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/09/voc-salva-senhas-no-firefox.html' title='Você salva senhas no Firefox?'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-8651327893316122126</id><published>2008-09-10T09:01:00.001-04:00</published><updated>2009-01-14T09:58:52.148-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Access'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Implementando Segurança de Acesso ao Código em .Net</title><content type='html'>No .Net Framework existe algo chamado Segurança de Aceso ao Código, ou simplemente CAS (Code Access Security), é um sistema de segurança que permite administradores e desenvolvedores controlar o acesso das aplicações similarmente como fazem para controlar o acesso dos usuários. O CAS está para as aplicações assim como o role-based security (RBS) está para os usuários. CAS é algo muito grande para ser abordado apenas em um artigo, então aqui tentarei dar uma breve introdução de como ele funciona e como colocar em prática. Para uma abordagem mais profunda acesse:&lt;br /&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/930b76w0%28VS.80%29.aspx"&gt;http://msdn2.microsoft.com/en-us/library/930b76w0(VS.80).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Com o CAS, você pode permitir uma aplicação ler ou gravar no registro enquanto restringe esse acesso a outras aplicações. Mas há um porém, o CAS não pode se sobresair às permissões do usuário (fornecidas pelo RBS). Por exemplo, se o usuário não tem permissão para acessar determinado recurso, a aplicação que o usuário executar também não terá.&lt;br /&gt;&lt;br /&gt;Como o CAS você divide as aplicações em 2 grupos:&lt;br /&gt;&lt;ul id="rs.r10"&gt;&lt;li id="rs.r11"&gt;Parcialmente Confiável: A aplicação poderá executar com determinadas permissões, mas sempre verificando se ele tem acesso a determinado recurso.&lt;br id="rs.r12" /&gt;&lt;/li&gt;&lt;li id="rs.r13"&gt;Completamente Confiável: A aplicação não passará por verificação de segurança e poderá acessar todos os recursos que o SO permitir.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;As permissões de uma aplicação são determinadas através do que é chamado de Evidência, que nada mais é que dados que identificam a aplicação. Alguns exemplos de evidência da aplicação são o local de onde está sendo executado e seu hash (calculado pelo .Net e que é único para cada versão da aplicação). Baseado na Evidência o .Net enquadra a aplicação em um Grupo de Código. Cada Grupo de Código estará atribuido a um conjunto de permissões, então assim será determinado o que a aplicação pode acessar. Os Grupos de Códigos e os conjuntos de permissões já vêm previamente configurados no .Net e podem ser customizados através da ferramenta de configuração do .Net localizado nas Ferramentas Administrativas do computador.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-8651327893316122126?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/8651327893316122126/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=8651327893316122126' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/8651327893316122126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/8651327893316122126'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/09/implementando-segurana-de-acesso-ao.html' title='Implementando Segurança de Acesso ao Código em .Net'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-531479675619149881</id><published>2008-09-02T08:57:00.001-04:00</published><updated>2009-11-10T10:15:00.524-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Navegadores'/><title type='text'>Saindo um browser fresquinho</title><content type='html'>O Google anunciou um novo browser que fizeram "do zero", onde cada aba terá um processo separado evitando que uma aba possa fazer o browser travar e derrubar as outras abas.&lt;br /&gt;Eles também reescreveram a engine do Javascript, chamaram de V8, e entre várias outras melhorias que possibilitarão que se criem websites melhor que não podem ser feitos com os browsers de hoje.&lt;br /&gt;O Google quer fazer a Web andar.&lt;br /&gt;Referência: &lt;a href="http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html"&gt;Blog Official do Google: A fresh take on the browser&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-531479675619149881?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/531479675619149881/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=531479675619149881' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/531479675619149881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/531479675619149881'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/09/saindo-um-browser-fresquinho.html' title='Saindo um browser fresquinho'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-107281187107487766</id><published>2008-08-21T21:26:00.001-04:00</published><updated>2009-11-10T10:15:34.943-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Software Livre'/><category scheme='http://www.blogger.com/atom/ns#' term='Eventos'/><title type='text'>Dia da Liberdade de Software em Campo Grande/MS</title><content type='html'>"O Dia da Liberdade de Software (Software Freedom Day para o resto do mundo) em Campo Grande/MS será realizado no dia 20 de setembro na Uniderp. Aqueles que desejarem apresentar algum tópico relacionado ao evento podem enviar uma proposta de trabalho. Contamos com a sua participação!"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.freedomdayms.org.br/index.php?task=trabalhos%20"&gt;http://www.freedomdayms.org.br/index.php?task=trabalhos &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-107281187107487766?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/107281187107487766/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=107281187107487766' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/107281187107487766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/107281187107487766'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/08/dia-da-liberdade-de-software-em-campo.html' title='Dia da Liberdade de Software em Campo Grande/MS'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-66237749365192465</id><published>2008-07-31T09:01:00.001-04:00</published><updated>2009-11-10T10:16:10.624-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Javascript &amp; JScript</title><content type='html'>Esses caras "autodidatas" são complicados, não estudam a parte teórica, vão direto pra pratica e depois não sabem o porque das coisas...&lt;br /&gt;&lt;br /&gt;Leituras mto interessantes sobre Javascript &amp;amp; JScript que recomendo, especialmente para quem não é guru em Javascript e JScript:&lt;br /&gt;&lt;br /&gt;http://javascript.about.com/library/bljscript.htm&lt;br /&gt;&lt;br /&gt;http://javascript.about.com/od/reference/a/jscript.htm&lt;br /&gt;&lt;br /&gt;"&lt;i&gt;Most web browsers with the exception of Internet             Explorer understand Javascript and so the original             unmodified code worked properly in all of those             browsers. Internet Explorer doesn't understand             Javascript. Instead it treats any Javascript as if it             were Microsoft's proprietary language JScript and             processes it accordingly&lt;/i&gt;" &lt;br /&gt;&lt;br /&gt;"&lt;i&gt;Since Netscape 1, Internet Explorer 2, and other early browsers didn't understand either Javascript or JScript it became a common practice to place all of the content of the script inside of an HTML comment so as to hide the script from older browsers. New browsers even if they couldn't handle scripts were designed to recognise the script tags themselves and so hiding the script by placing it in a comment was not required for any browsers released after IE3. Unfortunately by the time that the extremely early browsers ceased to be used people had forgotten the reason for the HTML comment and so many people new to Javascript still include these now completely unnecessary tags.&lt;/i&gt;"&lt;br /&gt;&lt;br /&gt;Eu sempre (até uns anos atrás :P) coloquei aqueles comentários em códigos javascript e nunca soube para qual versão de browser eu estava tentando ser compativel, hahahaha, se soubesse que era IE3 e NS2. :P&lt;br /&gt;Hj até os browsers modo texto do linux/unix suportam o XHTML.&lt;br /&gt;&lt;br /&gt;Então, eu tava pesquisando sobre o Javascript, JScript (e até VBScript), pois na verdade nunca fui programador ASP que poderia usar ambas as linguagens do lado do servidor também, e somente agora descobri (ou tive a certeza) que o JScript é apenas a implementação do javascript feita pela Microsoft (com td aquele suporte a ActiveX, etc.), mesmo que você coloque no HTML &lt;span style="color: #cc0000;"&gt;&amp;lt;script language="javascript" type="text/javascript"&amp;gt;&lt;br /&gt;&lt;/span&gt; será sempre JScript no IE, então não sei pq a porcaria do Visual Studio exibe opção de por algo como &lt;span style="color: #cc0000;"&gt;&amp;lt;script language="jscript" type="text/jscript"&amp;gt;&lt;/span&gt;, deve ser só para tornar incompativel com navegadores não-IE.&lt;br /&gt;&lt;br /&gt;E mais acabei de descobrir o JScript.Net (isso mesmo .Net), mas isso fica para uma próxima vez, para saber mais:&lt;br /&gt;http://msdn.microsoft.com/en-us/library/3bf5fs13(VS.71).aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-66237749365192465?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/66237749365192465/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=66237749365192465' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/66237749365192465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/66237749365192465'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/07/javascript-jscript.html' title='Javascript &amp; JScript'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-5467884240551880867</id><published>2008-05-16T14:42:00.001-04:00</published><updated>2008-05-16T14:44:49.855-04:00</updated><title type='text'>Celulares de ontem, hoje e amanhã</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355"&gt;&lt;br /&gt;&lt;param name="id" value="FiveminPlayer"&gt;&lt;br /&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="src" value="http://www.5min.com/Embeded/19733841/"&gt;&lt;br /&gt;&lt;embed src="http://www.5min.com/Embeded/19733841/" allowscriptaccess="always" allowfullscreen="true" id="FiveminPlayer" type="application/x-shockwave-flash" width="425" height="355"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-5467884240551880867?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/5467884240551880867/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=5467884240551880867' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/5467884240551880867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/5467884240551880867'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/05/celulares-de-ontem-hoje-e-amanh.html' title='Celulares de ontem, hoje e amanhã'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-8379451817782120901</id><published>2008-04-24T21:22:00.000-04:00</published><updated>2008-04-24T18:20:50.115-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Desabilitar'/><category scheme='http://www.blogger.com/atom/ns#' term='Button'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Botão'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Disable'/><title type='text'>Como desabilitar um botão após o clique usando ASP.Net (C#)</title><content type='html'>Depois de muita insistência vou fazer o meu primeiro post aqui no blog. Fiquei muito tempo pensando em que tipo de assunto abordar, mas acho que quando se trata de um blog de informática, mais especificamente pra quem desenvolve (assim como eu), temos que postar um tópico assim que encontramos alguma dificuldade e achamos a solução.&lt;br /&gt;Como não tenho feito muita coisa nova ultimamente, fui buscar nas soluções de problemas básicos e antigos que encontramos em projetos anteriores. Uma dessas soluções, que é resolvida basicamente com javascript, é desabilitar um botão logo após este ser clicado, para evitar que um usuário clique várias vezes neste, causando várias requisições ao servidor e quem sabe um problema inesperado.&lt;br /&gt;Nós usamos um método que fica em namespace separado, chamado Common, em que passamos o botão e o texto do botão após o clique (algo como "Aguarde"), como parâmetros.&lt;br /&gt;Veja abaixo:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;public static void&lt;/span&gt; DisableOnClick(System.Web.UI.WebControls.&lt;span style="color: rgb(153, 255, 153);"&gt;&lt;span style="color: rgb(51, 153, 153);"&gt;Button&lt;/span&gt; &lt;/span&gt;btn, &lt;span style="color: rgb(51, 51, 255);"&gt;string &lt;/span&gt;Message)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;{&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;string &lt;/span&gt;theScript = &lt;span style="color: rgb(153, 51, 0);"&gt;""&lt;/span&gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;  &lt;span style="color: rgb(51, 51, 255);"&gt;if &lt;/span&gt;( btn.CausesValidation )&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;  {&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;     theScript = &lt;span style="color: rgb(153, 51, 0);"&gt;@"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-family:courier new;font-size:100%;"  &gt;        if (typeof(Page_ClientValidate) == 'function') &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-family:courier new;font-size:100%;"  &gt;        { &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-family:courier new;font-size:100%;"  &gt;           if (Page_ClientValidate() == false )&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-family:courier new;font-size:100%;"  &gt;              return false; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 0);"&gt;        }"&lt;/span&gt;;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;   }&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;   theScript += &lt;span style="color: rgb(153, 51, 0);"&gt;@"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-family:courier new;font-size:100%;"  &gt;      this.value = '" + Message + @"';&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-family:courier new;font-size:100%;"  &gt;      this.disabled = true;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;&lt;span style="color: rgb(153, 51, 0);"&gt;      document.getElementById('"&lt;/span&gt; + btn.ClientID + &lt;span style="color: rgb(153, 51, 0);"&gt;@"')&lt;br /&gt;.disabled = true;"&lt;/span&gt; +&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;   btn.Page.ClientScript.GetPostBackEventReference(&lt;br /&gt;btn, &lt;span style="color: rgb(51, 51, 255);"&gt;string&lt;/span&gt;.Empty) + @";";&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;            &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:100%;"  &gt;   btn.Attributes[&lt;span style="color: rgb(153, 51, 0);"&gt;"onclick"&lt;/span&gt;] = theScript;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:100%;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Basicamente o que o método faz é criar um script e anexar ao evento de clique do botão. Este script verifica se o botão faz algum tipo de validação e, caso afirmativo, executa essa função, depois o botão é desabilitado, o novo texto é setado e é feita a chamada de postback que está anexada ao botão.&lt;br /&gt;&lt;br /&gt;Exemplo de uso:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-family:courier new;font-size:100%;"  &gt;private void&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt; Page_Load(object sender, System.EventArgs e)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    Common.DisableOnClick(btnRegister, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-family:courier new;font-size:100%;"  &gt;"Aguarde..."&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Simples, prático e útil... Enjoy ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-8379451817782120901?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/8379451817782120901/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=8379451817782120901' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/8379451817782120901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/8379451817782120901'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/04/depois-de-muita-insistncia-vou-fazer-o.html' title='Como desabilitar um botão após o clique usando ASP.Net (C#)'/><author><name>Johni Ecco</name><email>noreply@blogger.com</email></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-3452881723842281264</id><published>2008-04-23T13:41:00.001-04:00</published><updated>2009-11-10T10:16:37.061-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Pop-ups</title><content type='html'>O bom e velho pop-up.&lt;br /&gt;&lt;br /&gt;Sabemos que popups automáticos são bloqueados pela maioria dos navegadores atuais, mas se for aciona por um clique não há problemas.&lt;br /&gt;&lt;br /&gt;Um exemplo simples de um pop-up javascript num link:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;a&lt;/span&gt; href="http://www.blogger.com/post-edit.g?blogID=8414451965867271178&amp;amp;postID=3452881723842281264#" onclick="&lt;span style="color: rgb(0, 153, 0);"&gt;javascript&lt;/span&gt;:&lt;span style="color: rgb(0, 0, 153);"&gt;window.open('index.htm', null, 'height=200,width=400,status=yes, toolbar=no,menubar=no,location=no')&lt;/span&gt;"&amp;gt;&lt;br /&gt;Clique aqui para abrir um popup&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: Há quem recomende não usar o href="#", mas até hoje não encontrei uma justificativa plausível ou solução ideal.&lt;br /&gt;&lt;br /&gt;Ainda se o seu site é em flash, você pode abrir um pop-up com o navegador (caso tenha optado por não usar uma camada flutuante do flash) colocando o javascript em qualquer botão do flash:&lt;br /&gt;&lt;pre&gt;on (release) {&lt;br /&gt;getURL ("&lt;span style="color: rgb(0, 128, 0);"&gt;javascript:&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;NewWindow&lt;/span&gt;=&lt;span style="color: rgb(0, 0, 0);"&gt;window.open&lt;/span&gt;('index&lt;span style="color: rgb(0, 0, 255);"&gt;.php&lt;/span&gt;',&lt;span style="color: rgb(0, 0, 128);"&gt;'newWin','width=400,height=300,left=0,top=0,&lt;br /&gt;toolbar=No,location=No,scrollbars=No,status=No,resizable=No,fullscreen=No'&lt;/span&gt;);  &lt;span style="color: rgb(255, 0, 0);"&gt;NewWindow&lt;/span&gt;.focus();&lt;br /&gt;void(0);");&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Você pode encontrar mais em:&lt;br /&gt;&lt;a href="http://www.flash-db.com/PopUp/JavaScriptPopUp.php?page=2"&gt;http://www.flash-db.com/PopUp/JavaScriptPopUp.php?page=2&lt;/a&gt; (em inglês)&lt;br /&gt;&lt;br /&gt;Qualquer dúvida deixe um comentário.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-3452881723842281264?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/3452881723842281264/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=3452881723842281264' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/3452881723842281264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/3452881723842281264'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/04/pop-ups.html' title='Pop-ups'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-3075927902913500094</id><published>2008-04-02T11:15:00.001-04:00</published><updated>2008-04-02T11:15:23.470-04:00</updated><title type='text'>Adeus theSpoke!</title><content type='html'>&lt;p&gt;Depois de ficar cansado com os erros no site theSpoke.net resolvi mudar de vez de l&amp;#225;. Quando eu tiver um tempo vou dar uma revisada nas mat&amp;#233;rias que postei l&amp;#225; e publicar aqui.&lt;/p&gt;  &lt;p&gt;J&amp;#225; estou testando o Windows Live Writer, perdi uma hora tentando configurar para postar no theSpoke sem sucesso. E acessando diretamente no site s&amp;#243; d&amp;#225; erro tamb&amp;#233;m.&lt;/p&gt;  &lt;p&gt;Espero que a Microsoft ao menos tenha tirado a liga&amp;#231;&amp;#227;o do ImagineCup ao theSpoke.net que est&amp;#225; um caos. Pelo que pesquisei muitas pessoas sairam do theSpoke.net pelo mesmo motivo, acredito que ele ir&amp;#225; ficar l&amp;#225; agora apenas para hist&amp;#243;rico.&lt;/p&gt;  &lt;p&gt;Bom, logo come&amp;#231;arei a postar conte&amp;#250;do, come&amp;#231;ando por uma dor de cabe&amp;#231;a que tive e perdi dias procurando por uma solu&amp;#231;&amp;#227;o que o Asp.Net fornece incompleto (ao menos at&amp;#233; o 2.0) e n&amp;#227;o encontro nada parecido na internet, apenas pessoas procurando por solu&amp;#231;&amp;#245;es de problemas semelhantes.&lt;/p&gt;  &lt;p&gt;Abra&amp;#231;os&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-3075927902913500094?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/3075927902913500094/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=3075927902913500094' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/3075927902913500094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/3075927902913500094'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/04/adeus-thespoke.html' title='Adeus theSpoke!'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-6255609128272645244</id><published>2008-03-31T09:09:00.001-04:00</published><updated>2009-11-10T10:17:20.139-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='orkut'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='vírus'/><category scheme='http://www.blogger.com/atom/ns#' term='e-mail'/><category scheme='http://www.blogger.com/atom/ns#' term='segurança'/><category scheme='http://www.blogger.com/atom/ns#' term='myspace'/><title type='text'>Mantenha-se Seguro</title><content type='html'>Dicas para evitar infecções de vírus no seu computador:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Atenção a todos os links&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Ao receber um e-mail com links, passe o mouse sobre ele e veja, na barra de status do aplicativo usado, se o endereço é o mesmo do site que suportamente o enviou. Se o link apontar para um arquivo, desconfie, especialmente se ele tiver a extensão EXE ou SCR. Na dúvida não clique.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Valide com seu amigo&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Recebeu um e-mail ou mensagem no site de relacionamentos de um amigo indicando um site de fotos dele? Envie uma mensagem instantânea e pergunte se isso é verdade mesmo. Muitos malwares usam sites de relacionamento para se propagar.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Cuidado com anexos&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Muitas pessoas são levadas pela curiosidade ou desatenção e acabam abrindo anexos de e-mail de pessoas ou empresas que sequer ouviram falar. É bom ressaltar que hoje em dia deve-se ter o máximo de cuidado até mesmo com e-mails de pessoas conhecidas. Mais abaixo falarei sobre as formas de &lt;span class="highlight"&gt;evitar&lt;/span&gt; correr tais riscos.&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;Máximas:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Tenha sempre um anti-vírus atualizado.&lt;/li&gt;&lt;li&gt;Verifique com o anti-vírus todos arquivos provenientes da internet antes de abri-los.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Mais em:&lt;br /&gt;http://www.guiadohardware.net/comunidade/prevenir-virtuais/307452/&lt;br /&gt;http://ajuda.netmadeira.com/index.php/Seguranca/Dicas-de-Seguranca-sobre-Virus.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-6255609128272645244?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/6255609128272645244/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=6255609128272645244' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/6255609128272645244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/6255609128272645244'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2008/03/mantenha-se-seguro.html' title='Mantenha-se Seguro'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-5090039505035368724</id><published>2007-06-12T20:23:00.001-04:00</published><updated>2009-11-10T10:17:35.278-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><title type='text'>Web 2.0</title><content type='html'>Uma vídeo muito legal sobre as novidades da Web 2.0.&lt;br /&gt;"A maquina somos nós/A maquina está nos usando"&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/6gmP4nk0EOE"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/6gmP4nk0EOE" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-5090039505035368724?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/5090039505035368724/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=5090039505035368724' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/5090039505035368724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/5090039505035368724'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2007/06/web-20.html' title='Web 2.0'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-7738594552461883022</id><published>2007-06-11T09:08:00.004-04:00</published><updated>2009-11-10T10:18:08.861-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Implementando Segurança de Acesso ao Código no .Net</title><content type='html'>Segue abaixo um artigo que comecei a escrever em resposta ao seguinte post:&lt;br /&gt;http://forums.microsoft.com/msdn-br/ShowPost.aspx?postid=565879&amp;amp;siteid=21&lt;br /&gt;e no fim nunca terminei.&lt;br /&gt;Quem quiser ajudar a terminar me escreva que eu compartilho no GoogleDocs.&lt;br /&gt;&lt;br /&gt;Implementando Segurança de Acesso ao Código&lt;br /&gt;&lt;br /&gt;Segurança de Aceso ao Código, ou simplemente CAS (Code Access Security), é um sistema de segurança que permite administradores e desenvolvedores controlar o acesso das aplicações similarmente como fazem para controlar o acesso dos usuários. O CAS está para as aplicações assim como o role-based security (RBS) está para os usuários. CAS é algo muito grande para ser abordado apenas em um artigo, então aqui tentarei dar uma breve introdução de como ele funciona e como colocar em prática. Para uma abordagem mais profunda acesse:&lt;br /&gt;http://msdn2.microsoft.com/en-us/library/930b76w0(VS.80).aspx&lt;br /&gt;&lt;br /&gt;Com o CAS, você pode permitir uma aplicação ler ou gravar no registro enquanto restringe esse acesso a outras aplicações. Mas há um porém, o CAS não pode se sobresair às permissões do usuário (fornecidas pelo RBS). Por exemplo, se o usuário não tem permissão para acessar determinado recurso, a aplicação que o usuário executar também não terá.&lt;br /&gt;&lt;br /&gt;Como o CAS você divide as aplicações em 2 grupos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Parcialmente Confiável: A aplicação poderá executar com determinadas permissões, mas sempre verificando se ele tem acesso a determinado recurso.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Completamente Confiável: A aplicação não passará por verificação de segurança e poderá acessar todos os recursos que o SO permitir.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;As permissões de uma aplicação são determinadas através do que é chamado de Evidência, que nada mais é que dados que identificam a aplicação. Alguns exemplos de evidência da aplicação são o local de onde está sendo executado e seu hash (calculado pelo .Net e que é único para cada versão da aplicação). Baseado na Evidência o .Net enquadra a aplicação em um Grupo de Código. Cada Grupo de Código estará atribuido a um conjunto de permissões, então assim será determinado o que a aplicação pode acessar. Os Grupos de Códigos e os conjuntos de permissões já vêm previamente configurados no .Net e podem ser customizados através da ferramenta de configuração do .Net localizado nas Ferramentas Administrativas do computador.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-7738594552461883022?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/7738594552461883022/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=7738594552461883022' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/7738594552461883022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/7738594552461883022'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2007/06/implementando-segurana-de-acesso-ao.html' title='Implementando Segurança de Acesso ao Código no .Net'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-1681088142328072325</id><published>2007-06-11T09:08:00.003-04:00</published><updated>2009-11-10T10:17:54.475-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programação'/><title type='text'>Abstração</title><content type='html'>Dicionário:&lt;span id="lblDlpoDefinicao"&gt;&lt;dl&gt;&lt;dt&gt;&lt;span class="texto"&gt;do &lt;span title="Latim"&gt;Lat. &lt;/span&gt;&lt;i&gt;abstractione&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span class="texto"&gt;&lt;span class="categoria"&gt;&lt;span title="substantivo feminino"&gt;s. f.&lt;/span&gt;&lt;/span&gt;,  &lt;span style="" ondblclick="javascript:SeleccionaEntrada_v2(getSel(),'0')" onmouseover="style.cursor='hand'"&gt;&lt;dd&gt;acção de abstrair;&lt;br /&gt;&lt;/dd&gt;&lt;/span&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span style="" ondblclick="javascript:SeleccionaEntrada_v2(getSel(),'0')" onmouseover="style.cursor='hand'"&gt;&lt;dd&gt;&lt;span class="texto"&gt;separação mental de uma das partes de um todo;&lt;br /&gt;&lt;/span&gt;&lt;/dd&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span style="" ondblclick="javascript:SeleccionaEntrada_v2(getSel(),'0')" onmouseover="style.cursor='hand'"&gt;&lt;dd&gt;&lt;span class="texto"&gt;estado da pessoa absorta em profunda meditação, contemplação, êxtase, enlevo;&lt;br /&gt;&lt;/span&gt;&lt;/dd&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span style="" ondblclick="javascript:SeleccionaEntrada_v2(getSel(),'0')" onmouseover="style.cursor='hand'"&gt;&lt;dd&gt;&lt;span class="texto"&gt;distracção;&lt;br /&gt;&lt;/span&gt;&lt;/dd&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dt&gt;&lt;span style="" ondblclick="javascript:SeleccionaEntrada_v2(getSel(),'0')" onmouseover="style.cursor='hand'"&gt;&lt;dd&gt;&lt;span class="texto"&gt;hipótese.&lt;/span&gt;&lt;/dd&gt;&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/span&gt;&lt;b&gt;Programação:&lt;br /&gt;&lt;/b&gt; é a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-1681088142328072325?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/1681088142328072325/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=1681088142328072325' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/1681088142328072325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/1681088142328072325'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2007/06/abstrao.html' title='Abstração'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8414451965867271178.post-1594473624178907368</id><published>2007-06-11T09:07:00.000-04:00</published><updated>2007-06-11T09:08:04.081-04:00</updated><title type='text'>Real?</title><content type='html'>"A realidade, não é nada mais que nossa percepção do que já virou passado. Tudo que vivemos já passou... a sua leitura deste parágrafo tem sentido após a leitura, ou seja, o texto e a leitura está no passado e não no futuro ou presente.&lt;br /&gt;A minha realidade, talvez a sua sejam baseadas na percepção comum, ou pelo menos, o que todos dizem ser real.&lt;br /&gt;Talvez vivamos entro de uma grande ilusão coletiva, algo como um grande Matrix, como no filme, onde todos estamos conectados e devido a essa imersão, não conseguimos compreender ou sentir a diferença.&lt;br /&gt;A sensação de realidade, nos é altamente confortante, ela nos é tão importante, quando um tábua que aparece de repente, quando estamos perdidos e sozinhos no mar a noite.&lt;br /&gt;&lt;br /&gt;Os Indianos e Budistas, colocam a ilusão da realidade dentro dos contextos religiosos, onde estamos e somos parte de um todo. Já li também que algumas culturas, nos colocam como partículas de um todo, que estamos somente nos interagindo e aprendendo, para depois retornar a fonte e nos tornar uno. (...)"&lt;br /&gt;&lt;br /&gt;"Aquilo que o homem superior busca em si mesmo o homem comum busca nos outros."&lt;br /&gt;Meng Zhu&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8414451965867271178-1594473624178907368?l=zerooneworld.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zerooneworld.blogspot.com/feeds/1594473624178907368/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=8414451965867271178&amp;postID=1594473624178907368' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/1594473624178907368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8414451965867271178/posts/default/1594473624178907368'/><link rel='alternate' type='text/html' href='http://zerooneworld.blogspot.com/2007/06/real.html' title='Real?'/><author><name>Felipe V. Rigo</name><uri>http://www.blogger.com/profile/05559646141842230494</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17946587069226718336'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry></feed>