Vídeo: Trailer de Java 4 Ever
Este vídeo foi muito bem produzido e muito engraçado se você trabalha com .Net ou Java. Em contrapartida também expões muito bem o evangelismo da maioria dos javeiros e .neteiros.
Este vídeo foi muito bem produzido e muito engraçado se você trabalha com .Net ou Java. Em contrapartida também expões muito bem o evangelismo da maioria dos javeiros e .neteiros.
No post anterior falei sobre o String.Format do .Net Framework e mostrei alguns exemplos. Agora segue uma implementação bastante interessante do String.format em JavaScript.
String.format = function() {
var args = String.format.arguments;
var ret = args[0];
for (var i = 0; i < args.length; i++) {
var find = "{" + String(i - 1) + "}";
while (ret.indexOf(find) > -1) {
ret = ret.replace(find, args[i]);
}
}
return ret;
}
Esta implementação também utiliza de forma bastante clara a propriedade arguments das funções JavaScript, que permite o tratamento de n argumentos em uma função.
Para quem não conhece, o objeto String do C# tem um método estático muito interessante que é o Format(). Utilizando o String.Format() você pode fornecer uma string com os marcadores devidos e colocar os valores a serem substituídos nestes marcadores como parâmetros, evitando várias concatenações de string deixando o código um tanto confuso. Fica mais fácil entender a utilidade deste método vendo a diferença no código.
Usando a concatenação convencional:
string nome = "Mauricio"; string sobreNome = "Fedatto"; string twitter = "mfedatto"; string mensagem = "O Twitter do " + nome + " " + sobreNome + " é " + twitter)
Usando String.Format():
string nome = "Mauricio";
string sobreNome = "Fedatto";
string twitter = "mfedatto";
string mensagem = String.Format("O Twitter do {0} {1} é @{2}", nome, sobreNome, twitter)
E levando-se em conta que o .Net Framework não manipula as strings, sempre gera novas strings, o Format.String() passa a ser uma alternativa para um código mais limpo e otimizado.
Ontem eu tive esta mensagem de erro ao tentar debugar um site no Visual Studio .Net 2003. Recentemente minha máquina precisou ser formatada e a imagem do Windows para desenvolvedores na empresa que trabalho foi aplicada. Este erro ocorre principalmente pelo fato de o .Net Framework não estar devidamente registrado no Internet Information Services (IIS). Isto é uma falha na imagem utilizada, pois o IIS foi instalado depois da instalação do Visual Studio. Se tivesse sido instalado o IIS antes de instalar o Visual Studio não haveria nenhum problema, pois a própria instalação faz este registro no IIS.

Bom, já que a instalação não foi feita na ordem devida, só nos resta registrar manualmente o .Net Framework no IIS. Para isso, basta executar o seguinte comando:
C:\Windows\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i
Pronto! Se o problema for só isso já está solucionado. Entretanto, ressalto que nunca recebi esta mensagem de erro que não fosse resolvido por este procedimento.
P.S.: Em máquinas com Windows Vista x64 é um pouco diferente, no meu note é assim:
C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i
A cerca de 2 anos atrás, cansado de ter de usar diversas funções capengas para validação de CNPJ com JavaScript e ter que ficar remendando as funções por conta dos bugs, decidi eu mesmo estudar e desenvolver uma função mais simples e funcional para tal. Segue a função com algumas explicações simples do processo.
function IsCNPJ(cnpj) {<br />
// Retornando falso para valores inválidos<br />
if (cnpj == undefined || cnpj == null || isNaN(cnpj.replace(/\D/g, ""))<br />
|| cnpj.replace(/\D/g, "").length != 14) {<br />
return false;<br />
}</p>
<p> // Definindo vetores e Dac's<br />
var cnpj = cnpj.replace(/\D/g, "").substring(0, 12).split("");<br />
var contDac1 = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];<br />
var contDac2 = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2];<br />
var dac1 = 0;<br />
var dac2 = 0;</p>
<p> // Efetuando soma da multiplicação dos valores para o primeiro dígito do Dac<br />
for (var iDac1 = 0; iDac1 < contDac1.length; iDac1++) {<br />
dac1 += cnpj[iDac1] * contDac1[iDac1];<br />
}</p>
<p> // Resgatando resto da divisão para definição do primeiro dígito do Dac<br />
dac1 = dac1 % 11;</p>
<p> // Verificando se o resto da divisão é menor que 2<br />
if (dac1 < 2) {<br />
// Atribuir 0 ao primeiro dígito do Dac se o resto da divisão for 0 ou 1<br />
dac1 = 0;<br />
}<br />
else {<br />
// Atribuir 11 subtraído do resto da divisão para o primeiro dígito do<br />
// Dac<br />
dac1 = 11 - dac1;<br />
}</p>
<p> // Adicionar ao vetor de algarismos do CNPJ o primeiro dígito do Dac<br />
cnpj.push(dac1);</p>
<p> // Efetuando soma da multiplicação dos valores para o segundo dígito do Dac<br />
for (var iDac2 = 0; iDac2 < contDac2.length; iDac2++) {<br />
dac2 += cnpj[iDac2] * contDac2[iDac2];<br />
}</p>
<p> // Resgatando resto da divisão para definição do segundo dígito do Dac<br />
dac2 = dac2 % 11;</p>
<p> // Verificando se o resto da divisão é menor que 2<br />
if (dac2 < 2) {<br />
// Atribuir 0 ao segundo dígito do Dac se o resto da divisão for 0 ou 1<br />
dac2 = 0;<br />
}<br />
else {<br />
// Atribuir 11 subtraído do resto da divisão para o segundo dígito do<br />
// Dac<br />
dac2 = 11 - dac2;<br />
}</p>
<p> // Adicionar ao vetor de algarismos do CNPJ o segundo dígito do Dac<br />
cnpj.push(dac2);</p>
<p> // Verificando se a união do CNPJ obtido se assemelha ao CNPJ fornecido<br />
return (cnpj.join("") == cnpj.replace(/\D/g, ""));<br />
}
See ya!!!
Quando estava começando com codificação JavaScript precisei diversas vezes de uma função para validar se uma determinada data é válida. Saí procurando na internet e encontrei diversas implementações gigantescas e cheias de falhas. Codificação confusa, mal feita e pouco funcional. Após usar algumas vezes algumas destas funções e me confrontar com vários bugs decidi estudar o tratamento de data do JavaScript para saber se era realmente necessário toda aquela confusão para fazer uma validação de uma data. Continue Reading »
Verifiquei em meus relatórios de acesso do Google Analytics que chegaram ao meu blog ao efetuar uma pesquisa no Google por “comando replace javascript so substitui a primeira ocorrencia” e me lembrei que este foi o motivo que me levou a descobrir e estuda expressões regulares e é um problema que realmente aflige todos os desenvolvedores web em algum momento. Para os que não têm medo de JavaScript e não tentam de tudo para resolver seus problemas apenas com a programação server isso acontece bem mais cedo. Continue Reading »
Portando mais um artigo do JavaScript House pra cá, vou postar agora um fonte JavaScript para verificar se há caracteres repetidos em uma string JavaScript utilizando expressão regular.
Indicadores utilizados:
( ) // Tag (variável) . // Qualquer caracter * // Qualquer quantidade de ocorrência \ // Indicador de variável
Uma das grandes dificuldades encontradas por programadores ASP e ASP.Net Visual Basic ao trabalhar valores no JavaScript é a falta que faz o Trim() – função que elimina os espaços em branco das extremidades dos textos - do VB (ASP, VBScript, VBA), já que não há nenhuma implementação nativa no JavaScript. Continue Reading »