Pular para o conteúdo
01/08/2010

Torna-se pobre…

por Francke Peixoto
Por se preocupar muito em ter dinheiro, muito pobre a vida pode se tornar.
Bolso cheio e o coração vazio.
Cofre rico e sentimento pobre.
Dinheiro para ter, mas sem amor para dar.
A vida é mais que trabalhar para ter dinheiro, e transpor o que tem de bom dentro de nós e dar para os outros.
E o amor e a importância que damos para nossa mulher,nossos amigos, família e para quem possamos oferecê-lo.
É dar tempo, carinho e importância para quem nós gostamos (e aproveitar muito esse tempo) que beneficie os outros, sejam eles plantas, animais ou seres humanos.
Este é o sentido da vida, pois sem isso a vida não tem sentido!
Torna-se pobre.


30/07/2010

Microsoft Certificate of Excellence

por Francke Peixoto

Após 12 dias de árduos estudos, sem ver a luz do sol ou o lindo luar…

Fiz a prova 70-561 e passei… :-)

Agora já posso ser chamado de MCTS! hu hu hullllllllllllll!!!!!!

13/07/2010

Embora ninguém possa voltar atrás…

por Francke Peixoto

Nasceste no lar que precisavas,
Vestiste o corpo físico que merecias,
Moras onde melhor Deus te proporcionou,
De acordo com teu adiantamento.
Possuis os recursos financeiros coerentes
Com as tuas necessidades, nem mais,
nem menos, mas o justo para as tuas lutas terrenas.
Teu ambiente de trabalho é o que elegeste
espontaneamente para a tua realização.
Teus parentes, amigos são as almas que atraíste,
com tua própria afinidade.
Portanto, teu destino está constantemente sob teu controle.
Tu escolhes, recolhes, eleges, atrais,
buscas, expulsas, modificas tudo aquilo
que te rodeia a existência.
Teus pensamentos e vontade são a chave de teus atos e atitudes….
São as fontes de atração e repulsão na tua jornada vivência.
Não reclames nem te faças de vítima.
Antes de tudo, analisa e observa.
A mudança está em tuas mãos.
Reprograma tua meta,
Busca o bem e viverás melhor.
Embora ninguém possa voltar atrás e
fazer um novo começo,
Qualquer Um pode Começar agora e fazer um Novo Fim.

por Chico Xavier

22/03/2010

Encriptar ConnectionString do web.config, simples e direto.

por Francke Peixoto

ANTES:

Executar o fonte:

Configuration configuration = WebConfigurationManager.OpenWebConfiguration(“~”);
ConfigurationSection configurationSection = configuration.GetSection(“connectionStrings”);
configurationSection.SectionInformation.ProtectSection(“DataProtectionConfigurationProvider”);
configurationSection.SectionInformation.ForceSave = true;
configuration.Save(ConfigurationSaveMode.Full);

DEPOIS:

Como pegar o valor da connectionString ?
Response.Write ( ConfigurationManager.ConnectionStrings["MinhaConnectionString"].ConnectionString );

Responsável pela mágica ->  DataProtectionConfigurationProvider

[]‘s

DEPOIS:

20/03/2010

Adicionar/Excluir e Ler Registro do Windows em C#, simples e direto.

por Francke Peixoto

Como disse, será simples é direto!


Gravar no Registro


string PATH = @"SOFTWARE\QX3\ROTAS\Hosts";
RegistryKey registryKey = Registry.LocalMachine.CreateSubKey(PATH);
registryKey.SetValue("Servidor SMTP", "192.169.0.121:25");
registryKey.SetValue("Servidor POP", "192.169.0.121:110");
registryKey.Close();


Resgatar valor do mesmo.


RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(PATH);
Console.WriteLine(registryKey.GetValue("Servidor POP"));


Remover Chave do registro.

Registry.LocalMachine.DeleteSubKey(PATH);

Simples e direto!
[]‘s

12/03/2010

GCTS – Gambi Certified Technology Specialist

por Francke Peixoto
Com o crescimento de novos tipos de gambiarras em meados de 2008 a Microsoft realizou também alterações em seu modelo de certificação. Visando esse público foi criado o GCTS – Gambi Certified Technology Specialist.
A certificação GCTS – é o nível mais básico de certificação entre as novas certificações.
Com esta certificação o profissional comprova seu conhecimento específico em desenvolvimento de POG ( programação orientado a gambiarra) e POT (programação orientada a trambique).
Abaixo temos um exemplo do certificado GCTS:


*Para os que não sabem o que é POT ou  POG,  aguarde…

21/12/2009

Criando efeitos em fotos no ASP.NET

por Francke Peixoto

Bom, sei que já escrevi esse artigo no linha de código e no código fonte, e também sei que não posto nada construtivo em meu blog faz tempo…  ;-)

por isso estou dando um copy+paste dele aqui em em blog!  ;P

Vamos lá….

O .Net possui uma excelente biblioteca para tratamento de imagens,  ela nos possibilita gerar efeitos,  recortes, desenhos  e etc, tudo através de uma “simples página asp.net.

Antigamente para criar efeitos em fotos precisavamos usar alguma IDE gráfica para depois publica-las na internet. Hoje podemos fazer isso on-line, sem perder tempo.

Neste momento você deve estar pensando, “isso deve ser algo MUITO DIFICIL!”

Mas acredite, não é!

Hoje teremos uma prova de como é fácil e simples brincar com fotos usando Dot.Net.

Para começar abra o Visual Studio, em seguida crie um projeto WebSite.

Em seu WebForm,  arraste 3 controles de imagem.

Defina uma imagem para o controle Image1.

Para o controle Image2 defina a ImageUrl como fotos.apx?tipo=negativo e para o controle Image3 defina a ImageUrl como fotos.apx?tipo=cinza

Exemplo:

<asp:Image ID=”Image1″ runat=”server”

ImageUrl=”foto.jpg” /><br />

<asp:Image ID=”Image2″ runat=”server”

ImageUrl=”fotos.aspx?tipo=negativo” /><br />

<asp:Image ID=”Image3″ runat=”server”

ImageUrl=”fotos.aspx?tipo=cinza” />


Acho que já deu para entender  o que vamos fazer mais adiante, certo? :-]

No .cs de sua página, adicione os namespaces System.Drawing e System.Drawing.Imaging em seguida crie o método Efeito. Este método possui a seguinte assinatura:

public void Efeito(string tipo)

Implementação:

public void Efeito(string tipo)

{

/*Aqui estamos definindo nossa imagem. Note que estamos carregando a imagem definida no Image1.
*No artigo gerando barras expliquei como funciona a classe Bitmap.*/

Bitmap bmp = new Bitmap(Server.MapPath(this.Image1.ImageUrl));

int x, y;

Byte RGB;

Color cor;

for (y = 0; y < bmp.Height; y++)

{

for (x = 0; x < bmp.Width; x++)

{

/*O metodo getPixel como o nome já diz,passa a cor do pixel nas posições de x,y.*/

cor = bmp.GetPixel(x, y);

RGB = cor.G;

/*Neste ponto escolhemos qual efeito usar. Lembrando que você pode criar seus próprios efeitos, basta modificar os valores do RGB.*/

if(tipo == ”negativo”){

// Configuração para gerar o efeito de NEGATIVO

bmp.SetPixel(x, y,

Color.FromArgb(255, 255 – cor.R,

255 – cor.G, 255 – cor.B));

}

else

{

/* ajuste para gerar efeito cinza em sua foto! */

bmp.SetPixel(x, y, Color.FromArgb(RGB, RGB, RGB));

}

}

}

/* Neste ponto você informa ao browser que o documento enviado a ele, é uma imagem;*/

Response.ContentType = ”image/jpeg”;

bmp.Save(Response.OutputStream,ImageFormat.Jpeg);

bmp.Dispose();

}

No Page_load de sua página adicione a instrução abaixo.

if(Request.QueryString["tipo"] != null)

Efeito(Request.QueryString["tipo"]);

O resultado será semelhante a imagem abaixo:

viu como a mágica acontece?  ;-)

[]‘s

07/09/2009

Animação com javascript puro em 45 linhas

por Francke Peixoto

Alguns dias atrás tirei 15 minutos de meu trabalho para fazer algo com um efeito de uma bola quicando em uma area definida no browser usando javascript ( não irei contar a verdadeira história que me levou a fazer isso, pois é algo longo…. :P ),  e como vi que ficou legal, achei bacana mostrar isso para vocês.

Espero que esse exemplo ajude alguém a ter novas ideias!  ;-)

Antes de colar o fonte + o link demo, quero dizer que somente testei esse efeito no Firefox e Chrome se alguém puder me da um feedback, ficarei feliz!  :-)

FONTE:

<script language=javascript>
var LIMITE_Y = 200,LIMITE_X = 200,LIMITE_BARRA = 0,DELAY = 10, VELOCIDADE = 2, X = 0, Y = 0;
var PAUSE = false;
var SENTIDO_Y = “D”, SENTIDO_X= “B”;
window.onload = function(){
var BOX = document.getElementById(“box”);
var BARRA = document.getElementById(“bloco”);
var AREA = document.getElementById(“area”);
BARRA.style.left = 75;
BARRA.style.top = 100;
BOX.style.left = X;
BOX.style.top = Y;
var LIMITE_BARRA_X = parseInt(BARRA.style.top.replace(“px”,”"))-parseInt(BOX.offsetHeight)-parseInt(BARRA.offsetWidth);
var LIMITE_BARRA_Y = parseInt(BARRA.style.left.replace(“px”,”"))+parseInt(BOX.offsetWidth);
window.setInterval(function() {
if(PAUSE) {
if (Y >= LIMITE_Y) SENTIDO_Y = “E”;
if (Y <= 0) SENTIDO_Y = “D”;
Y = (SENTIDO_Y == “D”) ? (Y+VELOCIDADE): (Y-VELOCIDADE);
if (X >= LIMITE_X) SENTIDO_X = “C”;
if (X <= 0) SENTIDO_X = “B”;
X = (SENTIDO_X == “B”) ? (X+VELOCIDADE) : (X-VELOCIDADE);
if((X == LIMITE_BARRA_X  && Y <= LIMITE_BARRA_Y)) SENTIDO_X = “C”;
if(X <= (LIMITE_BARRA_X+parseInt(BARRA.offsetWidth)+parseInt(BARRA.offsetHeight)) && Y <= parseInt(BOX.offsetHeight+BARRA.offsetHeight)) {
if(X == (LIMITE_BARRA_X+BARRA.offsetWidth+BARRA.offsetHeight))SENTIDO_Y = “E”;
else if (X > LIMITE_BARRA_X &&  X <= (parseInt(BOX.offsetHeight)+LIMITE_BARRA_X)){
SENTIDO_X = “B”;
SENTIDO_Y = “D”;
}
AREA.style.backgroundColor= (AREA.style.backgroundColor == ‘green’ ? ‘white’ : ‘green’);
}
BOX.style.left = Y;
BOX.style.top = X;
}
},DELAY);
}
</script>

var LIMITE_Y = 200,LIMITE_X = 200,LIMITE_BARRA = 0,DELAY = 10, VELOCIDADE = 2, X = 0, Y = 0;
var PAUSE = false;
var SENTIDO_Y = "D", SENTIDO_X= "B";
window.onload = function(){
var BOX = document.getElementById("box");
var BARRA = document.getElementById("bloco");
var AREA = document.getElementById("area");
BARRA.style.left = 75;
BARRA.style.top = 100;
BOX.style.left = X;
BOX.style.top = Y;
var LIMITE_BARRA_X = parseInt(BARRA.style.top.replace("px",""))-parseInt(BOX.offsetHeight)-parseInt(BARRA.offsetWidth);
var LIMITE_BARRA_Y = parseInt(BARRA.style.left.replace("px",""))+parseInt(BOX.offsetWidth);
window.setInterval(function() {
if(PAUSE) {
if (Y >= LIMITE_Y) SENTIDO_Y = "E";
if (Y <= 0) SENTIDO_Y = "D"; Y = (SENTIDO_Y == "D") ? (Y+VELOCIDADE): (Y-VELOCIDADE); if (X >= LIMITE_X) SENTIDO_X = "C";
if (X <= 0) SENTIDO_X = "B";
X = (SENTIDO_X == "B") ? (X+VELOCIDADE) : (X-VELOCIDADE);
if((X == LIMITE_BARRA_X && Y <= LIMITE_BARRA_Y)) SENTIDO_X = "C";
if(X <= (LIMITE_BARRA_X+parseInt(BARRA.offsetWidth)+parseInt(BARRA.offsetHeight)) && Y <= parseInt(BOX.offsetHeight+BARRA.offsetHeight)) { if(X == (LIMITE_BARRA_X+BARRA.offsetWidth+BARRA.offsetHeight))SENTIDO_Y = "E"; else if (X > LIMITE_BARRA_X && X <= (parseInt(BOX.offsetHeight)+LIMITE_BARRA_X)){
SENTIDO_X = "B";
SENTIDO_Y = "D";
}
AREA.style.backgroundColor= (AREA.style.backgroundColor == 'green' ? 'white' : 'green');
}
BOX.style.left = Y;
BOX.style.top = X;
}
},DELAY);
}

DEMO :   http://aspx.xmasters.com.br/bolinha/

29/07/2009

Geração framework (qual é a sua opinião?)

por Francke Peixoto

Tenho notado que em fóruns,comunidades e até mesmo em chats, muitos programadores (“não todo, mas na sua grande maioria os novos programadores”) estão muito dependentes do uso de frameworks para seus desenvolvimentos.

Antes que pensem que estou aqui para pregar algo do tipo “morte aos frameworks”, quero deixar bem claro que uso e adoro usar alguns frameworks do mercado, sou usuário dos seguintes frameworks:
1 – Prototype (http://www.prototypejs.org/)
2 – Script.aculo.us (http://script.aculo.us/)
3 – JQuery (http://jquery.com/)

Entre outros…

O que está me deixando preocupado é que, geralmente quando ocorre algum problema com o framework, tais como:
1 – “Não atenda na solução do problema”
2 – ”Bugs encontrado”
3 – “Problemas em usar”

Muitos programadores não sabem como resolver ou não possuem conhecimento ou esperiência para resolver esses problemas.

Será que eles esqueceram ou não sabem como realmente as coisas funcionam por dentro do framework ?

Claro que ninguém é obrigado a saber tudo, mas acredito que o básico se faz necessário nessas horas…

Na empresa que trabalho, aconteceu algo muito parecido com a questão supracitada.

Lá existe um “Programa de Qualificação Profissional”, onde os estagiários passam por um ciclo de aprendizado ou treinamento para poder entrar na fabrica de software com uma base…

Pois bem….

Certo dia um dos estágiarios estava com muita dificuldade para usar alguns recursos do Javascript (sem framework). Para ajuda-lo chamei um programador que por sinal sabe tudo de jquery tanto nas coisas básicas quanto nas coisas avançadas
(criação de plugins para jquery, utilização de seletores avançados e etc..).

Para minha surpresa, ele teve uma grande dificuldade para ajudar o estagiário, o que me deu a entender é que de tanto usar frameworks, ele não sabia mais como usar o “javascript puro”…

Será que é seguro somente usar frameworks ?

Gostaria de saber a opinião de vocês…

PS: Sei que meu português é um pouco falho, se encontrar algum erro gramatical, não se espante!

27/07/2009

Criando um carrinho de compras com javascript

por Francke Peixoto

Para implementar o carrinho de compras, usaremos como base o framework Prototype (http://www.prototypejs.org/) e script.aculo.us (http://script.aculo.us/).

Elementos :

http://aspx.xmasters.com.br/carrinho/img/1.JPG

Classe Produto:
http://aspx.xmasters.com.br/carrinho/img/2.JPG

Classe Carrinho:
http://aspx.xmasters.com.br/carrinho/img/3.1.JPG
http://aspx.xmasters.com.br/carrinho/img/3.2.JPG
http://aspx.xmasters.com.br/carrinho/img/3.3.JPG
http://aspx.xmasters.com.br/carrinho/img/3.4.JPG

Instanciando o Carrinho e os Produtos:
http://aspx.xmasters.com.br/carrinho/img/4.JPG

Segue o endereço do fonte e demo:

http://aspx.xmasters.com.br/carrinho/Carrinho.html

http://aspx.xmasters.com.br/carrinho/Carrinho.rar