Pesquisar no Programero

quinta-feira, 26 de novembro de 2009

Iniciando com o Silverlight: Parte 1 – Ferramentas e o Hello World

 

Essa é a primeira parte de uma série de posts que pretendo publicar, elas foram inicialmente feitas por Tim Heuer do Method of failed. Irei traduzir seus artigos e tentarei simplificar ao máximo esse ótimo trabalho.

O sistema que será construido tem a finalidade de procurar mensagens do twitter por meio de termos digitados pelo usuário, mas antes vamos reforçar o que será necessário para darmos inicio ao desenvolvimento.

Ferramentas

Nem todas as ferramentas sugeridas são necessárias, algumas delas não são gratuitas mas acreditamos que elas sejam as melhores para o desenvolvimento.

Visual Studio 2008

Será necessário ter o Visual Studio atualizado com o spk1, para aqueles que ainda não o tem e que não pretendem comprar uma licenca ou baixar um piratão recomendamos a versão Express que é gratuita e serve perfeitamente bem.

Silverlight Tools for Visual Studio

O Silverlight Tools for Visual Studio é tudo o que precisamos para iniciar nosso desenvolvimento, os objetos, modelos e afins.

Expression Blend

O Expression Blend é uma ferramenta de desenvolvimento interativo. É um designer visual para XAML, a tecnologia subjacente para apresentação do Silverlight e Windows Presentation Foundation (WPF). Permite fácil manipulação de layout, animações, estilos e modelos. Esta ferramenta, entretanto, não está disponível a custo zero, pode ser adquirido como parte do Expression Studio. É possível baixar uma cópia de avaliação do Expression Blend 3 aqui para começar.

Silverlight Toolkit

O Silverlight Toolkit é um conjunto de controles adicionais que estão disponíveis fora do conjunto de controle do núcleo. Estes incluem controles gráficos, controles de tempo, acordeões e muito mais. O melhor de tudo, o código fonte para esses controles (assim como todos os controles centrais) estão incluídos para que você possa aprender e extendelos.

Entendendo o ambiente de desenvolvimento

Depois de instalar o Visual Studio e o Silverlight Tools você notará um novo agrupamento na caixa de diálogo Novo Projecto VS:

New Project Dialog Box

Você verá alguns dos novos modelos sob a categoria Silverlight  que inclui, pelo menos, Silverlight Application, Silverlight Class Library e Silverlight Navigation Application. Outros podem aparecer, tudo depende do que você tiver instalado.

Inicialmente iremos escolher o template Silverlight Navigation Application e o chamaremos de TwitterSearchMonitor.
A próxima janela perguntará se desejamos criar um projeto web:

New Silverlight Application Dialog Box

É altamente recomendado criar um projeto web, já que no nosso caso estamos criando um projeto do zero, com isso evitaremos erros comuns de depuração.

A estrutura do projeto

Depois da aplicação criada termos a seguinte estrutura:

Silverlight project structure

Isso mostra nossa aplicação web (que irá hospedar o aplicativo do Silverlight) com páginas de teste pré-criadas para a aplicação, e a aplicação Silverlight em si. Vamos nos concentrar primeiro no projeto do Silverlight.
Existem alguns arquivos-chave que devemos estar cientes, e que vamos explorar nesta série:

  • App.xaml – este é o arquivo de recursos da aplicação. Se colocarmos recursos aqui (será explorado nos próximos artigos) ou eventos globais na inicialização, eles acontecerão aqui.  Esse arquivo é o ponto de entrada de nossa aplicação que diz ao Silverlight o que deve ser feito.
  • MainPage.xaml – esta página faz parte do modelo que escolhemos.  Não tem que necessariamente possuir esse nome, mas é o default, ela representa a interface inicial de nossa aplicação.
  • Assets/Views folders – Diretórios que contém arquivos, imagens, estilos e outras páginas de nossa aplicação.

Os arquivos XAML compões a interface do usuário. São apenas arquivos XML com linguagem de marcação e serão editados em breve.

Quando compilarmos a solução veremos na pasta ClientBin um novo arquivo com uma extensão XAP. Esta é a sua aplicação Silverlight compilado. É realmente um arquivo compactado (como um zip). Se renomearmos ele para . ZIP e abrirmos usando uma ferramenta de descompactação de arquivo poderemos ver o conteúdo.

O arquivo XAP é o que é entregue ao browser, o que é hospedado no servidor até ser entregue aos usuários.  Ele fica em uma página HTML padrão que hospeda a aplicação Silverlight usando a instanciação tag <object>. 

NOTA: O Silverlight é uma tecnologia de cliente e pode ser hospedado em qualquer servidor web. Pode ser qualquer tipo de servidor Web que seja capaz de entregar o arquivo XAP junto com o tipo correto de conteúdo MIME do servidor (application / x-Silverlight-app).

Páginas de teste são criadas no modelo padrão (ASP.NET e HTML), apenas uma delas é necessária, sendo assim podemos excluir a que desejarmos.

Adicionando UI para as páginas XAML

O modelo que escolhemos é uma aplicação de navegação, o que significa que tem algumas características de navegação incorporada. Esse é um recurso relativamente novo para o Silverlight e permite que tenhamos uma página "mestre". Se repararmos na pasta View, veremos About.xaml, ErrorWindow.xaml e Home.xaml. Por enquanto vamos nos concentrar em Home.xaml pois essa é a primeira página, a que é carregada.

Ao abrirmos a página Home veremos o código XAML definido com uma visão em Grid usando outros elementos de layout como o StackPanel e os TextBlocks.  Todos esses elementos fazem parte do que é oferecido pelo Silverlight. Ao executarmos a aplicação(F5 para rodar em modo debug – modificando o web.config para habilitar o debug) teremos apresentado em nosso browser o seguinte resultado:

Running Silverlight application

Em Home.xaml,  depois do segundo TextBlock, adicione um Button ussando o seguinte código XAML:

   1: <Button Content="Click me" x:Name="MyButton" FontSize="18" Width="150" Height="45" />




Observe o atributo x: Name, ele é o identificador exclusivo para esse elemento e nos ajuda a referência-lo no código. Pense nisso como o atributo de identificação do controle. Agora vamos fazê-lo executar uma ação quando clicado. No XAML para o botão em si, podemos acrescentar um atributo Click e veremos o VS IntelliSense perguntando se queremos gerar um novo manipulador de eventos:

















Podemos também conectar o manipulador de eventos no código diretamente e mantê-lo fora do nosso XAML usando este código na página Home.xaml.cs:





   1: public Home()



   2:  



   3:  



   4: {



   5:  



   6:  



   7:     InitializeComponent();



   8:  



   9:  



  10:     MyButton.Click += new RoutedEventHandler(MyButton_Click);



  11:  



  12:  



  13: }







Ambas as formas funcionam. Agora vamos finalizar nosso Hello World alterando o TextBlock HeaderText para “Hello World” quando clicarmos no botão criado:





   1: void MyButton_Click(object sender, RoutedEventArgs e)



   2:  



   3:  



   4: {



   5:  



   6:  



   7:     HeaderText.Text = "Hello World!";



   8:  



   9:  



  10: }










O resultado será esse:









finished product animation









Próximos passos



Nossa primeira aplicação nos deu uma idéia do significado de alguns novos elementos e também nos mostrou como pode ser relativamente simples desenvolver aplicações com o Silverlight.



Aguardem o próximos posts e fiquem a vontade para sugerir e comentar.



Só para finalizar vamos prestigiar esse ótimo trabalho de Tim Heuer, autor dessa série de artigos de introdução ao Silverlight.



Parte 1Parte 2





Fonte



Method ~of ~failed

terça-feira, 24 de novembro de 2009

Silverlight

image

 

Olá a todos, daremos inicio hoje ao assunto Silverlight. Pretendo publicar alguns tutoriais a respeito para todos os interessados em desenvolver aplicações com esse poderoso plug-in.

O que ele é?

Silverlight é um plug-in cross-browser, cross-platform e cross-device (roda em qualquer  lugar) com a finalidade de simplificar o design, desenvolvimento e distribuição de aplicações ricas na web.

Ele oferece o melhor dos dois mundos. Ao aproveitar a estrutura .Net, ele permite criar aplicações visualmente ricas, com todo o suporte ao rápido desenvolvimento que já estamos acostumados.

Beleza mas e agora?

Para iniciar os trabalhos com o Silverlight precisaremos do developer tools for Visual Studio 2008 spk1, Silverlight Tool Kit (projeto do Microsoft Silverlight contendo controles, componentes e utilitários que pode ser baixado e utilizado em suas aplicações Silverlight. Ele inclui código fonte completo), Expression Blend3(permite aos projetistas criar interface gráfica para aplicações Silverlight 3) e WCF Ria Services (simplifica o tradicional padrão de camada de aplicativo, reunindo o ASP.NET e plataformas Silverlight. Os Serviços RIA fornece um padrão para escrever a lógica do aplicativo que roda no mid-tier e controla o acesso aos dados para consultas, alterações e as operações de costume).

Aguardem…

Em breve iniciarei uma série de posts sobre o Silverlight, para os interessados acessem o site oficial e confiram o que pode ser feito.

Fonte

Microsoft Silverlight

domingo, 1 de novembro de 2009

Limpando objetos dinamicamente (Delphi)

 

Muitas vezes nos deparamos com situações onde devemos remover o conteúdo de determinados objetos, como por exemplo Edits ou mesmo Labels e dependendo da complexidade da tela setar manualmente cada campo pode ser trabalhoso.Sendo assim mostraremos hoje como montar um esquema automático e genérico para esse caso:

 

procedure TForm1.Button1Click(Sender: TObject); 

procedure LimparEdits(AControl: TComponent);
var
   vLoop: Integer;
begin

    { ComponentCount retorna a qtde de componentes que o parent é o AControl, ou seja, somente os componentes que
    estão ligados a ele }

    for vLoop := 0 to AControl.ComponentCount-1 do 
    begin                                                

           { Se for um componente do tipo TEdit, }     
            { então iremos limpar o conteúdo, caso }
            { contrário, iremos rechamar a procedure }
            { pois o AControl pode ser um painel e temos }
            { que limpar inclusive os edits do painel }

            if AControl.Components[vLoop].ClassType = TEdit then
               TEdit(AControl.Components[vLoop]).Clear        
                else
               LimparEdits(AControl.Components[vLoop]);  

    end;

end;  

begin  

    { O processo irá iniciar limpando os edits que estão diretamente  docados no form }

    LimparEdits(Self);

end;

terça-feira, 20 de outubro de 2009

Como acessar objetos da Master Pages (.NET)

 

Muitas vezes imaginamos rotinas genéricas a serem usadas por todas as nossa páginas, como por exemplo uma determinada mensagem em certa região, se essa região for justamente um ponto em comum a todas como um espaço da Master Page como deveríamos proceder?

image

Simples, primeiro na página a efetuar a alteração devemos colocar uma tag indicando o tipo de nossa Master Page:

<%@ MasterType VirtualPath="~/Padrao.Master" %>

Em seguida para alterar a propriedade de um Label por exemplo precisaremos de um método na Master Page (code behind) que o faça:

public void insereMsg(String msg){

Label1.Text = msg;

}

E agora para finalizar na página (code behind) apenas chamamos o método da Master Page:

this.Master.insereMsg(“Nova mensagem !!!”);

 

É isso, bem simples, agora com uma boa padronização podemos diminuir consideravelmente nosso código.

quinta-feira, 15 de outubro de 2009

Conheça um pouco mais sobre energia limpa

 

Esse post é parte do movimento Blog Action Day que nesse ano aborda as mudanças climáticas que estão afetando muitos e afetarão ainda mais num futuro próximo. A conscientização a respeito desse assunto tão importante deve chegar a todos e as discussões e ações devem ser realizadas o quanto antes.

Energia solar

image Energia solar é aquela proveniente do Sol (energia térmica e luminosa). Esta energia é captada por painéis solares, formados por células fotovoltaicas, e transformada em energia elétrica ou mecânica. A energia solar também é utilizada, principalmente em residências, para o aquecimento da água. 

No seu movimento de translação ao redor do Sol, a Terra recebe 1 410 W/m² de energia, medição feita numa superfície normal (em ângulo reto) com o Sol. Disso, aproximadamente 19% é absorvido pela atmosfera e 35% é refletido pelas nuvens. Ao passar pela atmosfera terrestre, a maior parte da energia solar está na forma de luz visível e luz ultravioleta.

As plantas utilizam diretamente essa energia no processo de fotossíntese. Nós usamos essa energia quando queimamos lenha ou combustíveis minerais. Existem técnicas experimentais para criar combustível a partir da absorção da luz solar em uma reação química de modo similar à fotossíntese vegetal - mas sem a presença destes organismos.

PRÓS: fonte inesgotável de energia; equipamentos de baixa manutenção; abastece locais aonde a rede elétrica comum não chega.
CONTRAS: produção interrompida à noite e diminuída em dias de chuva, neve ou em locais com poucas horas de sol.

 

Energia Eólica

A energia eólica é a energia cinética do deslocamentos de massas de ar, gerados pelas diferenças de temperatura   na superfície do planeta. Resultado da associação da radiação solar incidente no planeta com o movimento de rotação da terra,   fenômenos naturais que se repetem. Por isso é considerada energia renovável.image
Tudo indica que as primeiras utilizações de energia eólica deram-se com as embarcações, algumas publicações mencionam vestígios de sua existência já por volta de 4.000 a.C., recentemente testemunhado por um barco encontrado num túmulo sumeriano da época, no qual havia também remos auxiliares.

Por volta de 1.000 a.C. os fenícios, pioneiros na navegação comercial, se utilizavam de barcos movidos exclusivamente a força dos ventos. Ao longo dos anos vários tipos de embarcações a vela foram desenvolvidos, com grande destaque para as Caravelas - surgidas na Europa no século XIII e que tiveram papel destacado nas Grandes Descobertas Marítimas.
Na atualidade utiliza-se a energia eólica para mover aero geradores - grandes turbinas colocadas em lugares de muito vento. Essas turbinas têm a forma de um cata-vento ou um moinho. Esse movimento, através de um gerador, produz energia elétrica. Precisam agrupar-se em parques eólicos, concentrações de aero geradores, necessários para que a produção de energia se torne rentável, mas podem ser usados isoladamente, para alimentar localidades remotas e distantes da rede de transmissão. É possível ainda a utilização de aero geradores de baixa tensão quando se trate de requisitos limitados de energia elétrica.

PRÓS: fonte inesgotável de energia; abastece locais aonde a rede elétrica comum não chega.
CONTRAS: poluição visual (um parque eólico pode ter centenas de cata-ventos) e, às vezes, sonora (alguns cata-ventos são muito barulhentos); morte de pássaros (que, muitas vezes, se chocam com as pás dos cata-ventos).

 

Energia das marés

image Os oceanos podem ser uma fonte de energia para iluminar as nossas casas e empresas. Neste momento, o aproveitamento da energia dos mar é apenas experimental e raro.
A energia das marés: A energia da deslocação das águas do mar é outra fonte de energia. Para a transformar são construídos diques que envolvem uma praia. Quando a maré enche a água entra e fica armazenada no dique; ao baixar a maré, a água sai pelo dique como em qualquer outra barragem.
PRÓS: fonte de energia abundante capaz de abastecer milhares de cidades costeiras.
CONTRAS: a diferença de nível das mares ao longo do dia deve ser de ao menos 5 metros; produção irregular devido ao ciclo da maré, que dura 12h30.

 

Biogás

Transformação de excrementos animais e lixo orgânico, como restos de alimentos, em uma mistura gasosa, que substitui o gás de cozinha, derivado do petróleo. A matéria-prima é fermentada por bactérias num biodigestor, liberando gás e adubo.image
O biogás é um combustível gasoso com um conteúdo energético elevado semelhante ao gás natural, composto, principalmente, por hidrocarbonetos de cadeia curta e linear. Pode ser utilizado para geração de energia elétrica, térmica ou mecânica em uma propriedade rural, contribuindo para a redução dos custos de produção. No Brasil, os biodigestores rurais vêm sendo utilizados, principalmente, para saneamento rural, tendo como subprodutos o biogás e o bi fertilizante.
PRÓS: substitui diretamente o petróleo; dá um fim ecológico ao lixo orgânico; gera fertilizante; os produtores rurais podem produzir e até vender o gás, em vez de pagar por ele.
CONTRA: o gás é difícil de ser armazenado.

 

Biocombustíveis

image São fontes de energia renováveis produzidas a partir da cana-de-açúcar, plantas oleaginosas, biomassa florestal e resíduos agropecuários. Os biocombustíveis são alternativas mais baratas e eficientes no combate ao efeito estufa. A alternativa mais correta é substituir os combustíveis fósseis por biocombustíveis.
PRÓS: substitui diretamente o petróleo; os vegetais usados na fabricação absorvem CO2 em sua fase de crescimento.
CONTRA: produção da matéria-prima ocupa terras destinadas a plantio de alimentos.

 

Fonte

Wikipedia

suapesquisa.com

Planeta sustentável

Aonde vamos

Portal São Francisco

Biodieselbr

Brasil escola

segunda-feira, 12 de outubro de 2009

Blog Action Day

Blog Action Day é um evento anual que une blogueiros de todo o mundo postando mensagens sobre o mesmo assunto num mesmo dia nos seus próprios blogs, com o objetivo de provocar uma discussão em torno de uma questão de importância global. O Blog Action Day 2009 será o maior evento da história de mudanças sociais na web. Um dia. Uma causa. Milhares de vozes.

image Temos o dever de colocar assunto tão importante em pauta, quanto mais discutido mais ele entra em foco e mais ações são tomadas. Devemos iniciar as mudanças por nos mesmos, nos conscientizar sobre nosso papel nesse contexto e participar ativamente nas mudanças de comportamento.

É a partir das pessoas, inicialmente com mudanças no modo de vida, no modo de pensar e finalmente exigindo mudanças mais amplas em seus bairros, municípios, estados e finalmente nacionais para que nos mesmo não sejamos os prejudicados futuramente.

Eu participarei com postagens em meus dois blogs, espero que todos os amigos também o façam, abraços a todos e espero ler muito sobre mudanças climáticas no próximo dia 15.

terça-feira, 29 de setembro de 2009

Campanha ficha limpa

 

A Campanha Ficha Limpa foi lançada em abril de 2008 com o objetivo de melhorar o perfil dos candidatos e candidatas a cargos eletivos do país. Para isso, foi elaborado um Projeto de Lei de iniciativa popular sobre a vida pregressa dos candidatos que pretende tornar mais rígidos os critérios de inelegibilidades, ou seja, de quem não pode se candidatar.

 

O PL de iniciativa popular precisa ser votado e aprovado no Congresso Nacional para se tornar lei e passar a valer em todas as eleições brasileiras. Para isso, é preciso que 1% do eleitorado brasileiro assine esse Projeto, o equivalente a um milhão e trezentas mil assinaturas.

"Para participar da Campanha Ficha Limpa é preciso imprimir o formulário de assinatura.
Depois de assinar e registrar o número do título de eleitor no documento, basta enviá-lo para o endereço SAS, Quadra 5, Lote 2, Bloco N, 1º andar - Brasília (DF) - CEP. 70.438-900.
Acesse o formulário no link disponível logo abaixo nesta página"

ATENÇÃO
Não é possível votar eletronicamente!
O Congresso Nacional exige que os formulários sejam enviados impressos.

A iniciativa do Movimento de Combate à Corrupção Eleitoral (MCCE) em lançar essa Campanha surgiu de uma necessidade expressa na própria Constituição Federal de 1988, que determina a inclusão de novos critérios de inelegibilidades, considerando a vida pregressa dos candidatos. Assim, quando aprovado, o Projeto de Lei de iniciativa popular vai alterar a Lei Complementar nº 64, de 18 de maio de 1990, já existente, chamada Lei das Inelegibilidades.

O Projeto de Lei de iniciativa popular sobre a vida pregressa dos candidatos pretende:

- Aumentar as situações que impeçam o registro de uma candidatura, incluindo:

  • Pessoas condenadas em primeira ou única instância ou com denúncia recebida por um tribunal – no caso de políticos com foro privilegiado – em virtude de crimes graves como: racismo, homicídio, estupro, tráfico de drogas e desvio de verbas públicas.
  • Essas pessoas devem ser preventivamente afastadas das eleições ate que resolvam seus problemas com a Justiça Criminal;
  • Parlamentares que renunciaram ao cargo para evitar abertura de processo por quebra de decoro ou por desrespeito à Constituição e fugir de possíveis punições;
  • Pessoas condenadas em representações por compra de votos ou uso eleitoral da máquina administrativa.

- Estender o período que impede a candidatura, que passaria a ser de oito anos.

- Tornar mais rápidos os processos judiciais sobre abuso de poder nas eleições, fazendo com que as decisões sejam executadas imediatamente, mesmo que ainda caibam recursos.

Campanha Ficha Limpa mobiliza eleitores e eleitoras em nova fase de arrecadação de assinaturas

Após ultrapassar a arrecadação de 1 milhão de assinaturas para o Projeto de Lei de Iniciativa Popular sobre a Vida Pregressa dos Candidatos, a Campanha Ficha Limpa inicia uma nova fase de mobilização, cujo objetivo é coletar 300 mil assinaturas no período que vai de 7 de agosto a 7 de setembro.

Em cinco estados e no Distrito Federal mais de 1% dos eleitores/as já assinaram o abaixo-assinado do PL que pretende criar novos casos de inelegibilidades baseados no passado do candidato/a. O objetivo da Campanha é impedir a candidatura de políticos condenados por crimes graves. No entanto, para que seja enviado ao Congresso Nacional, são necessárias 1,3 milhões de assinaturas. Em todo o país, as 42 entidades que compõem o MCCE, além de apoiadores e voluntários, arregaçam as mangas para conseguir atingir a meta de no segundo semestre de 2009.

O Projeto de Lei defende que haja uma condenação criminal por improbidade administrativa para que ocorra a inelegibilidade. No caso dos políticos que detém foro privilegiado, a proposta é que a inelegibilidade decorra tão somente do recebimento da denúncia, já que, segundo a Constituição, muitos desses processos podem até ser suspensos por decisão do Parlamento. Além disso, as denúncias criminais, nesses casos, terão que ser recebidas por um tribunal formado por diversas pessoas, o que dá maior garantia de que o processo será iniciado com base em alegações fundamentadas e embasadas por provas.

Confira abaixo os arquivos sobre o Projeto de Lei prontos para download:

A coleta de assinaturas deve ser realizada unicamente por meio do modelo de formulário disponível neste site, pois assim será possível comprovar que as assinaturas se referem a este Projeto de Lei.  As assinaturas já coletadas devem ser enviadas à Secretaria Executiva do Comitê Nacional do MCCE para serem anexadas ao Projeto de Lei final.

Qualquer cidadão pode colaborar com a Mobilização. Basta imprimir uma cópia do formulário e coletar assinaturas em sua rua, bairro, trabalho, escola, universidade entre tantos outros locais, sempre explicando sobre o que trata a Campanha. Para quem quiser algumas sugestões, é só utilizar o Roteiro de mobilização.

Por que uma lei de iniciativa popular?

Em 1999 foi aprovada a Lei n° 9.840, que tornou possível a cassação, até o presente momento, de mais de mil políticos por compra de votos e uso eleitoral da máquina administrativa (ver pesquisas do MCCE na página principal). Foi a primeira vez que a sociedade brasileira apresentou e viu aprovado um Projeto de Lei de iniciativa popular em que se concedia à Justiça Eleitoral poderes mais amplos para aplicar punições aos que praticam atos de corrupção eleitoral. Agora, a Campanha Ficha Limpa quer manter essa vitória da sociedade, colaborando para a formação de melhores quadros políticos no país.

Atenção

Não se trata de alterar a Lei 9.840/99, que já existe, mas sim de incluir novos critérios de inelegibilidades, baseados na vida pregressa dos candidatos, na Lei Complementar nº 64/90, que a lei que determina esses critérios.

Muitos políticos foram condenados em primeira instância ou respondem a denúncias recebidas por tribunais em virtude de fatos gravíssimos, como homicídio, tráfico de drogas, violência sexual, desvios de recursos públicos etc. Isso não impede, pela legislação atual, que eles sejam candidatos. Hoje, só os que já foram condenados em definitivo ficam impedidos de participar das eleições, o que é muito pouco, pois os processos penais duram muitos anos para chegar ao fim.

Além do mais, há quem só se candidate em busca da obtenção do foro privilegiado, que os colocam praticamente “a salvo” de qualquer condenação. Neste Projeto, não pretendemos antecipar a culpa de quem ainda pode recorrer a outras instâncias. O que pretendemos é que os mesmos tenham sua candidatura impedida provisoriamente. Trata-se apenas de adotar uma postura preventiva, pois os interesses públicos devem prevalecer sobre os interesses particulares de possíveis praticantes de atos graves contrários à lei. O Projeto também impede a candidatura daqueles que renunciam a seus mandatos a fim de escapar de possíveis punições.

Pelo texto deste Projeto de Lei de iniciativa popular, serão ampliados os atuais prazos de inelegibilidades previstos na lei. Além disso, foram adotadas medidas para agilizar o andamento dos processos na Justiça Eleitoral.

terça-feira, 22 de setembro de 2009

Trabalhando com Strings no C#

 

Introdução

O tipo string apesar de se comportar como um value type é na verdade um reference type. Apesar disso, devemos considerar que estamos trabalhando com um value type quando estamos manipulando strings, tendo em vista que este tipo de dado foi programado para funcionar como tal

A classe string possui uma série de métodos estáticos e não estáticos, que são utilizamos para formatação, concatenação, desmembramento, substring, etc. Vamos analisar alguns destes métodos da classe string.

 

StringBall


O método Substring

O método substring é um método não estático que permite pegarmos uma porção de uma string. Para utilizarmos o método substring, basta chamar o método a partir de uma variável string ou mesmo de uma string literal, conforme o exemplo.

string nome = "Testando da Silva";

string sobreNome = nome.Substring(12,5);

O método substring aceita como parâmetro a posição inicial que queremos obter e quantos caracteres devem ser extraídos. Caso não seja informado o número de caracteres a ser extraído, a função retornará o restante da string a partir da posição inicial informada.

 

O método IndexOf

O método IndexOf é utilizado para localizar uma determinada palavra dentro da string. Este método retornará a posição da string desejada. Caso a string não seja encontrada, será retornado o valor -1.

string nome = "Testando da Silva";
int pos = nome.IndexOf("Silva");
//A partir do índice 5
int pos2 = nome.IndexOf("Silva", 5);

Conforme vimos no exemplo, é possível informar a posição inicial para busca como um parâmetro adicional.

 

Funções ToUpper e ToLower

As funções ToUpper e ToLower permitem colocar uma string em letra minúsculas ou maiúsculas, conforme o exemplo a seguir.

string nome = "Maurício";

nome = nome.ToUpper();
nome = nome.ToLower();

Funções StartsWith e EndsWith

As funções startswith e endswith verificam se a string começo ou termina com uma determinada palavra ou caracter. Estas funções retornam um valor booleano (true ou false).

string arquivo = "comctl32.dll";

if(nome.StartsWith("com"))
    Console.WriteLine("Começa com COM!");

if(nome.EndsWith(".dll"))
    Console.WriteLine("É uma dll!");

 

Funções TrimStart, TrimEnd e Trim

As funções de Trim servem para remover espaços em branco das strings. A função TrimStart remove os espaços em branco do início da string, já a função TrimEnd remove os espaços em branco do final da string. A função Trim remove os espaços em branco do inicio e do fim da string.

     string nome = "   MAURICIO    ";

     nome = nome.TrimEnd();
     nome = nome.TrimStart();

     nome = nome.Trim();

 

Funções PadLeft e PadRight

As funções PadLeft e PadRight servem para preencher uma string a esquerda ou a direita com um caracter especificado. Os exemplos a seguir mostra o uso das funções PadLeft e PadRight.

    string nome = "Mauricio";

    nome = nome.PadRight(10, ' ');
    // "Mauricio  "

    string codigo = "123";
    codigo = codigo.PadLeft(6, '0');
    // "000123"

 

Funções String.Join e String.Split

A função Split serve para quebrar uma string em um array de strings de acordo com um separador. Ao contrário da função split, a função Join concatena um array de string inserindo um separador.

string linha = "Teste, 10, 20, 10/06/2007";

string[] campos = linha.Split(',');

string linhaNova = String.Join(';', campos);

 

A Função String.Format

A função String.Format é uma das funções mais versáteis da classe string. Esta função permite a criação de uma string baseada em um padrão. Podemos colocar dentro do padrão da string de formatação alguns tokens que poderam ser substituídos por variáveis passadas por parâmetro no comando format.

string teste = String.Format("Vou colocar o {0} aqui.", "parâmetro");

No exemplo acima, o padrão da string (primeiro parâmetro) contém um token {0}. Este token indica que este valor deve ser substituido pelo segundo parâmetro passado para a função (neste caso a palavra “parâmetro”).

sTeste = String.Format("Formatação de string com {0} parâmetro. ",
    "Agora são {1}. Valor numérico: {2}", 1, Now(), 15.5);

No exemplo acima, temos o padrão da string com mais de um token, com números de 0 à 2. A função também recebe 3 parâmetros adicionais que correspondem aos valores que serão substituídos na string. Além de informarmos os tokens, podemos informar regras de formatação que serão utilizadas de acordo com o tipo de dado passado por parâmetro, conforme o exemplo,

sTeste = String.Format("Custom Format: {0:d/M/yyy HH:mm:ss}", dtHoje);
sTeste = String.Format("Formatação do número inteiro: {0:D}.", iNumero);
sTeste = String.Format("Formatação do número inteiro: {0:D4}.", iNumero);

 

A classe StringBuilder

Apesar da versatilidade da classe string, operações com string podem consumir muitos recursos e causar perda de desempenho. Isto ocorre porque a cada operação o framework cria um novo buffer para a string resultante da operação, ao invés de aproveitar o buffer que está sendo utilizado. Isto é mais aparente em operações de concatenação.

Para não criar este tipo de problema, podemos utilizar a classe StringBuilder, do namespace System.Text. Esta classe permite a criação de strings aproveitando o buffer utilizado, o que torna o código mais eficiente.

No exemplo a seguir temos um trecho de código com uma operação feita de forma ineficiente e outra mais eficiente usando o stringBuilder, veja a diferença.

// Codigo ineficiente
string sql;
sql =  "SELECT * FROM Products";
sql += " WHERE CategoryId=1 AND";
sql += "       AND UnitPrice>10";

// Codigo Eficiente
StringBuilder sb =
    new StringBuilder();

sb.Append("SELECT * FROM Products");
sb.Append(" WHERE CategoryId=1 AND");
sb.Append("       AND UnitPrice>10");

sql = sb.ToString();

 

Fonte 

.net Maniacs

quarta-feira, 16 de setembro de 2009

Os processos do Castelão

 

image O digníssimo dePUTAdo Edmar Castelão está movendo em minas Gerais  44 processos contra órgãos de imprensa por danos morais. Parece piada mas não é, o cara constrói um puta dum castelo (e não tenha duvidas com nosso dinheiro), a imprensa divulga essa e outras, o cara se safa (é óbvio, no meio dos bandidos ninguém nunca e condenado) e agora esse desqualificado pede indenização por uma coisa que ele se quer tem, moral.

image

Vamos concordar com uma coisa, ele é muito cara de pau, todo mundo sabe que ele é corrupto, e que só não aconteceu nada com ele porque infelizmente o cenário politico vai de mal a pior, e dia apos dia a única coisa que eles fazem são medidas para se privilegiar, quando não utilizam ações úteis para ganhar votos e se manter em suas bancadas. Será que ele acha mesmo que alguém acredita na inocência dele? Não é possível isso, é uma falta de caráter muito grande. Acredito que o pior ainda esta por vir, é bem capaz que o calhorda ainda receba a tal indenização.

 

Fonte

Folha online

terça-feira, 15 de setembro de 2009

Funções de data Oracle

 

image

Com o Oracle é possível obter uma série de resultados a partir de uma ou mais datas, como por exemplo verificar o último dia do mês ou verificar a quantidade de meses entre duas datas, então vamos a alguns exemplos:

 

Data atual do sistema: SYSDATE

Remover meses de uma data: ADD_MONTHS(SYSDATE, -1)

Adicionar meses de uma data: ADD_MONTHS(SYSDATE, +1)

Buscar o último dia do mês: LAST_DAY(SYSDATE)

Primeiro dia do mês: TRUNC(SYSDATE, ‘MONTH’)

Quantidade de meses entre duas datas: MONTHS_BETWEEN(SYSDATE, ‘27/07/1982’)

Primeiro dia do ano: TRUNC(SYSDATE, ‘YEAR’)

Dias da semana: DECODE( TO_NUMBER( TO_CHAR          (SYSDATE, ‘D’) )

,1, ‘domingo’

,2, ‘segunda-feira’

,3, ‘terça-feira’

,4, ‘quarta-feira’

,5, ‘quinta-feira’

,6, ‘sexta-feira’

,7,’sábado’

)

segunda-feira, 14 de setembro de 2009

A nuvem em alta

 

A algum tempo a cloud computing tem se mantido nas principais publicações de tecnologia, figurando como um dos (ou o) assunto de maior destaque. Vista com muita desconfiança no inicio hoje já é cotada como solução para determinados casos em grandes empresas.

Mas em que ela consiste afinal de contas ?

image Segundo a Wikipédia A nuvem computacional ou cloud computing consiste em compartilhar ferramentas computacionais pela interligação dos sistemas, semelhantes as nuvens no céu, ao invés de ter essas ferramentas localmente (mesmo nos servidores internos).

A idéia é que ao invés de termos uma estrutura local, com estações e servidores acessando aplicações em rede e/ou locais, haveria uma estrutura na internet que proveria as aplicações sendo necessário apenas estações com acesso a web e os já conhecidos dispositivos de entrada e saída.

O grande problema ainda é o fato de armazenar dados longe do alcance dos olhos, ninguém fica muito a vontade com a idéia de ter seus dados em algum lugar distante e de certo modo acessíveis a terceiros. Isso sem mencionar a disponibilidade, apesar que o tempo que já presenciamos o Google parado, por exemplo, é bem inferior ao tempo perdido muitas vezes com atualizações em servidores locais.

image

Na InformationWeek de agosto o assunto computação em nuvem foi matéria de capa e várias empresas foram citadas quanto ao uso do novo modelo, porém percebe-se que mesmo essas empresas reconhecem que apenas tarefas não vitais são colocadas em nuvem, o dia em que dados realmente importantes sejam transferidos para ela parece ainda um tanto distante, pelo menos não da maneira que conhecemos o modelo atual.

segunda-feira, 7 de setembro de 2009

Página ASP para manipular dados

 

Dando continuidade a nossos artigos sobre como se conectar a um banco de dados, montar um DataTable para mostrar os dados e como inserir, atualizar e remover dados,montaremos hoje uma página ASP que nos permita utilizar a classe criada nos artigos anteriores.

Em resumo teremos dois campos TextBox que receberão os novos dados a serem inseridos, editados ou removidos, três Buttons para executar uma das ações referidas acima e um GridView para apresentar as informações. No codebehind um método para carregar os dados no GridView, um método para cada Button e dois métodos para o GridView, um para mandar os dados selecionados para os TextBox e outro para a paginação.

Nossa página final terá o formato apresentado na imagem abaixo, o projeto final pode ser baixado aqui.

programero_asp

terça-feira, 1 de setembro de 2009

Campanha de amor a pátria

 

É certo que ate o mais alienado dos brasileiros já percebeu o que se passa no cenário politico atual, os desmandos, corrupção, cumplicidade e participação em atos ilícitos são tão óbvios quanto a temperatura do sol, mas o rabo preso impede as ações corretas e quem deveria terminar com isso, que pelo contrario faz com que se perpetue.

Meus amigos Laguardia e Thaís tiveram a iniciativa de criar um movimento para o mês de setembro para demostrar nosso descontentamento e indignação com os recentes fatos, então a partir de agora transcrevo com as mesmas palavras da Thaís as regras do movimento, espero que todos os amigos participem da campanha:

 

As regras da campanha são as seguintes:

1. Durante o período de 07 a 20 de setembro, exibia a imagem do logo como o primeiro post de seu blog ou deixe-a fixa no topo da barra lateral;

reaja_brava_gente_brasileira_7_setembro

2. O texto padrão junto ao logo deve ser:

"BRAVA GENTE BRASILEIRA, LONGE VÁ TEMOR SERVIL!
Comemoramos o Dia da Independência do Brasil, resgatando nosso patriotismo adormecido e protestando contra os abusos, a corrupção e a impunidade de uma classe política que zomba e se lixa para nós. Repasse essa campanha adiante. Nosso país agradece".

3. Exiba a imagem e o texto em todos os perfis que possuir (Orkut, twitter, gmail, facebook, myspace, MSN, etc);

4. Envie esta mensagem também para:


- Senado Federal: Alô Senado http://www.senado.gov.br/sf/senado/centralderelacionamento/sepop/?page=alo_sugestoes&area=alosenado


- Câmara Federal: Fale com o deputado: http://www2.camara.gov.br/canalinteracao/faledeputado


- Supremo Tribunal Federal – Central do Cidadão - http://www.stf.jus.br/portal/centralCidadao/enviarDadoPessoal.asp- Procuradoria Geral da União - pfdc@pgr.mpf.gov.br


- Presidência da República – Fale com o Presidente - https://sistema.planalto.gov.br/falepr2/index.php

5. Enviem essa campanha (imagem, texto e instruções) por e-mail para toda sua lista de contatos, para todos os seus conhecidos, para os seguidores de seu blog, para as autoridades de seus municípios, para os jornais, revistas, rádios e emissoras de TV, etc.

Contamos com a colaboração de todos. Nosso país agradece!

segunda-feira, 31 de agosto de 2009

Inserir, atualizar e apagar dados (ASP .NET c#)

Finalizando nossa classe (não esqueçam do método getDataTable) criaremos um método para realizar atualizações em tabelas com comando DML como INSERT, UPDATE E DELETE:
//
        //executa INSERT, UPDATE ou DELETE
        public int execSQL(String sql)
        {
            //
            //se a conexão estiver fechada abre
            if (con.State.ToString().Equals("Closed"))
            {
                abreCon();
            }
            //
            int res = 0;
            //
            //monta sql no command
            using (OleDbCommand cmd = new OleDbCommand(sql, con))
            {
                cmd.CommandType = CommandType.Text;
                //
                //executa SQL
                try
                {
                    res = cmd.ExecuteNonQuery();
                }
                catch
                {
                }
                //
                //finaliza objetos
                cmd.Dispose();
            }
            //
            return res;
        }

sábado, 29 de agosto de 2009

Pede pra sair bigode fdp !

fora_sarney_fdp
Apesar de ser praticamente uma das únicas certezas da vida (a permanência do Sarney) não podemos nos dar ao luxo de simplesmente aceitar. Ficou claro que nosso presidente esta tão sujo que é incapaz de fazer algo, ate seus companheiros de partido, sendo algum deles tidos como exemplo do que havia restado de bom no PT se mostraram impotentes e coniventes com a palhaçada geral.
Por isso cabe a nos eleitores iniciar o processo de eliminação, simplesmente não eleger o Sarney não e o bastante, devemos ter em mente que se ele ainda esta no poder depois de fazer o que bem entende é porque seu apoio politico é muito forte, ou seja, tem muito nego com o rabo preso. Precisamos excluir com nosso voto essa podridão assumida que esteve ao lado dele desde o inicio.
Estamos aderindo a campanha Não voto em quem defende Sarney do perspectiva política, nada mais obvio, quem compactua com a corrupção faz parte dela.
campanhaperspectiva

terça-feira, 18 de agosto de 2009

Montar DataTable (ASP .NET c#)

Dando continuidade a nossa classe, criaremos hoje um método que baseado em uma consulta SQL retorna um DataTable para ser utilizado por um GridView por exemplo, vamos ao código:
//
        //retorna DataTable (usado para rotinas com gridView)
        public DataTable getDataTable(String sql)
        {
            //
            //
            //monta sql no command
            OleDbCommand cmd = new OleDbCommand(sql, con);
            cmd.CommandType = CommandType.Text;
            //
            //cria DataAdapter
            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            //
            //cria datatable
            DataTable tab = new DataTable();
            //
            //carrega datatable com o resultado da consulta no dataadapter
            da.Fill(tab);
            //
            //finaliza objetos
            cmd.Dispose();
            cmd = null;
            da.Dispose();
            da = null;
            //
            //retorna o datatable  
            return tab;
        }

quinta-feira, 13 de agosto de 2009

Pen Drive espião (Stealth iBot Computer Spy)

stealth ibot Muitas vezes, seja em ambientes corporativos ou não, surge a necessidade de um monitoramento mais contundente. Existem uma serie de programas capazes de cumprir essa tarefa, um deles é o Stealth iBot, é um pen drive com um sistema automático que ao detectar a conexão com um pc dispara rotinas capazes de monitorar o computador em questão, feito isso basta retirar o pen drive e o monitoramento se inicia, para coletar os dados basta conectar o pen drive novamente.
stealth ibot 
O interessante nesse sistema é a facilidade de instalação e coleta de dados, o monitoramento cobre páginas da internet visitadas, digitação de senhas e outras atividades com a criação de screenshots constantes para serem vistos posteriormente. Ele ainda é capas de monitorar contas do Windows protegidas por senha mesmo que o usuário utilizado para a instalação não tenha permissão sobre elas.
Para todos que precisarem de um meio de monitoramento simples de utilizar e que registre tudo o que é feito no computador e que não seja percebido pelo usuário esta ai a dica.

terça-feira, 11 de agosto de 2009

Método para conexão com banco de dados (ASP .NET c#)

Mostraremos hoje como construir um método que realiza a conexão com uma base de dados Oracle, para tal criaremos na pasta App_Code nossa classe chamada manipulaBD, nos próximos artigos utilizaremos ela para criar os outros métodos, agora devemos codificá-la da seguinte forma:
        public manipulaBD()
        {
            String caminho = "";
            try
            {
                //
                //monta string de conexão
                caminho = "Provider=MSDAORA;";              //nome do provedor, que no nosso caso é Oracle
                caminho += "Data Source=ORCL;";             //nome da base
                caminho += "Persist Security Info=True;";
                caminho += "User ID=atendimento;";
                caminho += "Password=atendimento";
                //
                //cria a conexão
                con = new OleDbConnection(@caminho);
                //
                //abre a mesma
                con.Open();
            }
            catch
            {
            }
        }
        //
        //abre conexão com o banco
        public OleDbConnection abreCon()
        {
            try
            {
                con.Open();
            }
            catch { }
            return con;
        }
        //
        //fecha conexão
        public void fechaCon()
        {
            con.Close();
        }