Desculpa para aprender? [POST RÁPIDO]

Uma lista bem legal…

For C Tutorials.
http://www.codevdo.com/Languages/C
For C++ Tutorials.
http://www.codevdo.com/Languages/CPP
For C#.NET Tutorials.
http://www.codevdo.com/Languages/CSharp_Dotnet
For VB.NET Tutorials.
http://www.codevdo.com/Languages/VB_Dotnet
For Java Tutorials.
http://www.codevdo.com/Languages/Java
For Perl Tutorials.
http://www.codevdo.com/Languages/Perl
For MS Access Tutorials.
http://www.codevdo.com/Database/Ms_Access
For SQL Server Tutorials.
http://www.codevdo.com/Database/SQL_Server
For MySQL Tutorials.
http://www.codevdo.com/Database/MySQL
For Oracle Tutorials.
http://www.codevdo.com/Database/Oracle
For iPhone Apps Tutorials.
http://www.codevdo.com/Mobile/iPhone_Apps
For Android Apps Tutorials.
http://www.codevdo.com/Mobile/Android_Apps
For HTML/DHTML Tutorials.
http://www.codevdo.com/Web/HTML_DHTML
For jQuery Tutorials.
http://www.codevdo.com/Web/jQuery
For PHP Tutorials.
http://www.codevdo.com/Web/PHP

Anúncios

Criando um jogo da forca em 80 linhas com javascript puro [ nada de framework! ;-) ]

Esse artigo é básicamente para mostrar como é fácil desenvolver coisas legais em javascript, em apenas algumas linhas de código, sem depender de frameworks, basta colocar a caixóla para funcionar.

Então vamos ao código, simples e fácil! 😉

Diagrama de nossa ‘classe’:

function Forca(params){

var root = this,elemento = params.Elemento || document.body;
this.Palavras = params.Palavras || []; // vetor de palavras
this.Palavra = “”;  // palavra corrente
this.Erros = 0; // número de errros
this.Boneco = “”; // desenho do boneco

this.Teclado = function(){ // metodo responsável por montar o teclado.
var teclado = document.getElementById(“forca_teclado”);
if(!teclado){
teclado = document.createElement(“div”);
teclado.setAttribute(“id”,”forca_teclado”);
teclado.setAttribute(“class”,”teclado”);
for(var i = 65; i < 91; i++){
var tecla = document.createElement(“div”);
tecla.setAttribute(“class”,”tecla”);
tecla.innerHTML = String.fromCharCode(i);
tecla.setAttribute(“title”,String.fromCharCode(i));
if(tecla.addEventListener )
tecla.addEventListener(‘click’,function(){ root.Validar(this); },false);
else
tecla.attachEvent(‘onclick’,function(e){ root.Validar(event.srcElement);  });
teclado.appendChild(tecla);
}
elemento.appendChild(teclado);
}
}
this.Sorteio = function(){ //Método responsável pelo sorteio de uma nova palavra.
var novoIndice = Math.ceil(Math.random()*params.Palavras.length-1)
root.Palavra = params.Palavras[novoIndice];
var painel = document.getElementById(“forca_painel”);
if(!painel){
painel = document.createElement(“div”);
painel.setAttribute(“id”,”forca_painel”);
painel.setAttribute(“class”,”painel”);
elemento.appendChild(painel)
}
painel.innerHTML = “”;
for(var i = 0; i < root.Palavra.length;i++){
var letra = document.createElement(“div”);
letra.setAttribute(“id”,root.Palavra.substr(i,1));
letra.setAttribute(“class”,”letra”);
letra.innerHTML = “”;//root.Palavra.substr(i,1);
painel.appendChild(letra);
}
}
this.Validar = function(letra){   // Método responsável por validar e desenhar o boneco.
var desenho = document.getElementById(“forca_desenho”);
if(!desenho){
desenho = document.createElement(“div”);
desenho.setAttribute(“id”,”forca_desenho”);
elemento.appendChild(desenho);
}
var boneco;
if(root.Palavra.indexOf(letra.title) == -1){
this.Erros++;
switch(this.Erros){
case 1: root.Boneco += “\n   o”; break;
case 2: root.Boneco += “\n  \/”; break;
case 3: root.Boneco += “|”; break;
case 4: root.Boneco += “\\”; break;
case 5: root.Boneco += “\n  /”; break;
case 6: root.Boneco += ” \\\n <button onclick=’window.location.reload(true);’ style=’padding:0px;width:85px;border:1px solid black;’>GAME OVER</button>”; break;
}
desenho.innerHTML = ” <pre> “+root.Boneco+” </pre> “;
}
else
{
var indices = [];
for(var i = 0; i < root.Palavra.length;i++)
if(root.Palavra.substr(i,1) == letra.title) indices.push(i);
painel = document.getElementById(“forca_painel”).getElementsByTagName(“div”);
for(var i = 0; i < indices.length; i++)
painel[indices[i]].innerHTML =  letra.title;
}
}
this.Comecar = function(){ // Método responsável por iniciar tudo, criado só para deixar a chamada mais organizada!  😉
root.Teclado();
root.Sorteio();
}
}

A chamada do jogo ficará assim:

var parametros = { Elemento:/*algum elemento (div,e etc…)*/, Palavras:[/* um vetor de palavras, exemplo: “BRASIL”,”PADRE” */] }

var forca = new Forca(parametros);
forca.Comecar();

literalmente simples assim…

Para ver o jogo funcionando, acesse : http://migre.me/5ld1V

enviar SMS em suas applicações (C#,Java,Php e etc..)

          Você conhece o IPIPI?

O ipipi.com possui alguns serviços bem bacanas, entre eles o que se destaca é o de envio de mensagens SMS para praticamente para qualquer pessoa do mundo.

Para saber mais sobre, acesse o site http://www.ipipi.com/Home.do

Como enviar SMS através de sua aplicação:

1) Se cadastrar no IPIPI…
1.1 Cadastro – http://www.ipipi.com/RegEditNonLogon.do

2) Enviando SMS…
Para enviar sms é bem simples, basta saber os sequintes dados:
2.1 – SMTP :  ipipi.com  (porta 25), lembrando que você deverá se autenticar com seu LOGIN e SENHA.
2.2 – No From de seu envio você deverá colocar seu LOGIN@ipipi.com.
2.3 -No To deverá ser informado o [código do país] + [código do estado] + celular > 5521XXXXXXXX@sms.ipipi.com.

3.0) Enviar, simples assim!

Animação com javascript puro em 45 linhas

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…. 😛 ),  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/

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

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!

Microsoft DreamSpark – Software profissional grátis para os estudantes

A Microsoft lançou um programa “novo” de oferta de software profissional a todos os estudantes.

Para aderir a este programa basta fazer login com a conta live, registar, dizer em que escola e país é que estudam. Depois disso a Microsoft confirma que são alunos dessa escola e disponibiliza as versões profissionais gratuitamente.

Exemplos de Software incluídos neste programa:

  • Visual Studio 2005 Professional Edition
  • Studio 2008 Professional Edition
  • XNA Game Studio 2.0
  • Expression Studio
  • SQL Server 2005
  • Windows Server

Ou seja incluem tudo o que é necessário para um profissional deste área, grátis para todos os estudantes. Com este programa a Microsoft aposta numa adopção em grande escala das suas ferramentas de desenvolvimento, pelos profissionais de amanhã.

mais informações:
https://www.dreamspark.com/default.aspx

Gravando no arquivo web.config

Configuration webConfig = WebConfigurationManager.OpenWebConfiguration(“~”);

ConnectionStringsSection dbConnString = webConfig.ConnectionStrings;

//Alterando
dbConnString.ConnectionStrings[“GUSMAO”].ConnectionString = “TAY,BRUNO,LUIZ”;

//Adicionando
dbConnString.ConnectionStrings.Add(new ConnectionStringSettings(“LERO”, “ConnString”, “System.Data.OleDb”));