Extra, Extra. Sai o Windows Vista

31 Janeiro, 2007

Grande coisa, ele já está para teste há algum tempo, mas como todos os jornais de hoje resolveram falar sobre isso, eu não poderia fugir ao tema. Devo confessar, estou curioso para mexer nele, porém para isso eu tenho que fazer um upgrade no meu possante, pois a configuração mínima para ele rodar é a seguinte:

Processador de 1 GHz, 32 bits (x86) ou 64 bits (x64)1.
Memória RAM – 1 GB de memória do sistema.
Suporte aos gráficos DirectX 9 com um driver WDDM, 128 MB de memória para gráficos (mínimo)2. Pixel Shader 2.0 e 32 bits por pixel.
Recurso de saída de áudio.
Recurso de acesso à Internet.
Placa de Vídeo – 128MB
HDD 40GB (espaço livre – 15GB)
Drive de DVD ROM

Pera lá meu amigo, 1GB de RAM e 128 MB de vídeo, isso é um jogo ou é um sistema operacional? Essa configuração, só para rodar um sistema operacional, é um absurdo. Sem contar com os R$450,00, em média, o valor do Windows Vista Home, e é nesse ponto que vem a boa notícia (ou nem tanto para microsoft), segundo um desses jornais o qual não recordo o nome, informou que o Brasil é o quarto país de maior falsificação do Windows Vista, de certa forma eu fiquei orgulhoso do nosso país está tão bem colocado, no entanto como dizem “O céu é o limite”, vamos objetivar a primeira colocação desse rank. :)

Não sou a favor da pirataria, porém o tio Bill, só para os mais chegados, não me deixou outra alternativa, amanhã mesmo irei providenciar o windows vista, claro, no camelô aqui perto de casa.

fuiii…

ps: Ainda não me conformei, 1GB de RAM e 128MB de vídeo, para um S.O., isso é um absurdo, onde nós vamos parar???


Título editável – Estrelando: DOM e Javascript.

24 Janeiro, 2007

Eu queria ter postado ontem, porém por motivos de força maior, não pude fazê-lo.
Depois de ter enchido a tela de explicações sobre DOM, talvez não tenha elucidado uma maneira legal o uso de DOM, lembrei-me de um site o qual gosto NetVibes, lá tem várias coisa legais, mas uma me chamou a atenção, talvez pelo fato de aparentemente ser bem simples, mas isso não vem ao caso, pois bem, quando você entra no site, pode-se editar o título da página, estou falando dos dois títulos, da página e do browser, resolvi, então arregaçar as mangas e colocar o tico-teco para funcionar. O resultado, foi o seguinte:

<html>
<title>Título editável com JavaScript</title>

<!– O css abaixo, é para o página não ficar extremamente tosca, só pra dar um estilozinho, qualquer dúvida vai no post CSS – Parte I –>
<style type=”text/css”>
#titulo {
font-size:36px;
font-face: “Comic Sans MS”;
color:#400;
}
</style>
<script type=”text/javascript”>

//Quando carregar a página ele chama essa função

window.onload = function(){
function editartitulo(){

// A linha abaixo ele procura “um” elemento que tenha a id titulo, que no nosso caso o elemento é um span

var span = document.getElementById(‘titulo’);
span.onmouseover = function(){

// ele chama essa função quando o mouse passa por cima dele (span).

this.style.background = ‘#000000′;

// troca a cor de fundo.

this.title = “Clique”

// coloca uma tag, para o usuário saber onde clicar.

}
span.onmouseout = function(){

// Função executada quando o mouse sai de cima do span.

this.style.background = ”;
}
span.onclick = function(){

// Função executado ao clicar do mouse (no span, é claro)

var texto = this.firstChild.nodeValue;

// Aqui começa a parte interessante, ele joga dentro da variável texto, o conteúdo do “primeiro filho”, do span, que no caso é o texto contido nele, através da propriedade nodevalue.

var input = ‘<input type=”text” value=”‘+texto+’”>’;

// Via código, como já disse antes, criamos um elemento input do tipo caixa de texto, por padrão é o conteúdo da variável texto.

this.innerHTML = input;

// inclui o input dentro do span

var cxtexto = this.firstChild;

// isso é uma forma que muita gente usa, inclusive eu, para não ficar chamando o elemento pelo “nome completo” (this.firstChild). como todo bom brasileiro, criamos apelidos para isso.

this.onclick = null;
this.onmouseover = null;
cxtexto.select();

// Isso é firula, é pra você não precisar selecionar tudo o que está dentro da caixa de texto, para depois digitar o que queira.

cxtexto.onblur = function(){

// Função executada quando a caixa de texto perde o foco.

this.parentNode.innerHTML = this.value;

//o pai da caixa de texto (no caso, o span), recebe o valor da caixa de texto.

document.title = this.value;

// O título do documento, recebe o valor da caixa de texto

editartitulo();

//recursividade, em outro post eu explico isso

}

//Abaixo vai um plus do código, eu vi no site do O Básico da Web, é pra você poder, apertando a tecla enter, fazer a entrada do texto que você digitou. :)
// é bem simples, toda vez que você digitar algo, verifica-se qual é o código da tecla na tabela ASCII, se foi igual ao enter, código 13, a caixa de texto perde o foco.

cxtexto.onkeypress = function(e){

var keynum;
if(window.event) // IE
keynum = window.event.keyCode;
else if(e.keyCode) // Netscape/Firefox/Opera
keynum = e.which;
if (keynum == 13) this.blur();
}
}
}
editartitulo();
}
</script>

</head>
<body>
<center><span id=”titulo”>Edite este título</span></center>

</body>
</html>

ps: Não seria necessário colocar o código no javascript para o onmouseover e onmouseout para trocar a cor de fundo do span, bastaria colocar hover no css, mas o nosso excelentissímo IEca não aceita.

Como diria a minha vovózinha, mamão-com-açúcar. Só mais uma coisa, como deve ter percebido, usa-se muito a variável this, e eu não comentei sobre o uso dela, é que isso já é um assunto, para os próximos posts.

ps: Eu não coloquei no título para não assustar, mas isso é um exemplo de DHTML.

fuiii…


DOM, Um dia você vai precisar.

18 Janeiro, 2007

Pode deixar, eu não estou falando que você não tem dom pra internet, é só mais uma ferramenta de padronização da W3C, com o DOM (Document Object Model) pode-se ter um controle dinâmico da página, a partir do DOM, junto com html, css e JavaScript é feito o tão famoso DHTML, mas isso já é um outro assunto.

DOM – Como todos sabem a W3C é a responsável pela a padronização da internet e com isso foi criado o DOM, no intuito de unificar a forma de construir a estrutura de documento HTML, foi lançado em 1998. Existem duas definições o DOM Core e o DOM HTML. O DOM Core, é reponsável pela especificações de um documento XML, já no DOM HTML, como o próprio nome diz, é responsável pelas especificações de um documento HTML. Creio, que o assunto é um tanto quanto longo para detalha-lo em apenas um post, se necessário volto a falar sobre isso, considero-o de extrema importância.

Algumas características:

  • oferece uma maneira padrão de se acessar os elementos de um documento.
  • Pode-se trabalhar com cada elemento separadamente.
  • Adicionar, Modificar e/ou remover elementos, dinâmicamente.
  • Adicionar, Modificar e/ou remover conteúdo, dinâmicamente.
  • DOM é uma api, reduzindo o uso da memória.

Citei várias características, que para mim são vantagens, no entanto, se você nunca ouviu falar em DHTML (o que eu acho difícil), ou se já ouviu falar, mas nunca usou na prática, talvez não faça muito sentido pra ti. Porém, conhecimento nunca é demais e pretendo colocar algo aqui sobre DHTML.

VAMOS À PRÁTICA

DOM – ele é composto de uma hierarquia, imagine uma tabela em html, se você abre uma coluna e depois uma linha, você não pode fechar a coluna primeiro que a linha, pois a linha está dentro da coluna e é lógico não se pode fechar a tabela antes da linha e da coluna.

<html><body>

<table>

<td><tr id=”t1″>Teste 1</tr>

<tr id=”t2″>Teste 2</tr>

</td>

</table>

</body></html>

Acima está um exemplo de um documento html padrão, os elementos abrindo e fechando sem desrespeitar a hierarquia.

Você pode acessar os elementos do documento seguindo sua estrutura na árvore. Por exemplo, você poderia acessar seus elementos da seguinte forma:

document.body.childNodes[0].childNodes[1].childNodes[1]

Explicando:

A interface raiz é o document, após vem o elemento body, e após os seus nós filhos e assim por diante. Assim, você acabou de montar a sua hierarquia DOM Core.

Pode-se também procurar por um elemento em específico sem a necessidade de usar aquela árvore para localizar o elemento. Usando:

getElementById(’id’)

getElementsByName(’name’)

O primeiro retorna uma referência para um elemento ao passar o seu id, e o segundo retorna um array de elementos que possuem o name solicitado

Lembrando:

  • Cada elemento é chamado de nó.
  • Utiliza-se o javascript, para tal.

Ufa, esse foi um pequeno resumo de DOM…

Até mais.

 

 

 


Linguagens Esotéricas…o lado negro e exótico da programação.

13 Janeiro, 2007

Pois bem…resolvi fazer meu primeiro post…apresentando-me eu sou o Leandro…e no momento tudo que vocês precisam saber…o resto sobre mim, que formem suas opiniões rsrsrs.

A princípio eu queria fazer um post sobre as peculiaridades de certas linguagens de programação, a exemplo do python onde a endentação e feita por espaços não havendo assim delimitadores de bloco, porém ao navegar pelo vasto mundo da internet, descobri que podem existir coisas mais estranhas e exóticas do que uma prática de endentação diferente e que existem um nome pra essas “loucuras”…foi assim que conheci as Linguagens Esotéricas.

Linguagens Esotéricas são linguagens criadas já na intenção de serem estranhas e ilegíveis, porém com lógica, penso que geralmente são criadas para serem motivo de piada já que não são aplicadas no mundo real.

Vou falar de algumas que mais gostei : Brainfuck, Spaghetti, Whenever.

Para aqueles que quiserem saber mais sobre o assunto podem “googolar” na web e da uma olhada nesses links:

pt.wikipedia.org/wiki/Linguagem_de_programação_esotérica

http://www.techzonept.com/archive/index.php/t-84880.html

http://www.dangermouse.net/esoteric/whenever.html

Brainfuck: Criada na intenção de fazer o menor compilador possível, essa liguagem possui apenas 8 comandos(- | + | > | < | , | . | ] | [ | ) cada um formado por apenas um caractere, qualquer coisa diferente disso será considerado como comentário. Abaixo exemplo do código HelloWorld .

++++++++++
[
>+++++++>++++++++++>+++>+<<<<-
] The initial loop to set up useful values in the array
>++. print ‘H’
>+. print ‘e’
+++++++. ‘l’
. ‘l’
+++. ‘o’
>++. space
<<+++++++++++++++. ‘W’
>. ‘o’
+++. ‘r’
——. ‘l’
——–. ‘d’
>+. ‘!’
>. newline

Spaghetti: Como diz o nome foi criada para gerar os famosos códigos-spaghetti, cada linha de código tem de terminar com um “GOTO” que aponta para qualquer linha, desde que não seja a seguinte, a ordem das linhas de código pode ser aleatória que não afetaram a execução do programa. Abaixo exemplo do código HelloWorld .

10[?100]11 ‘Hello World
9[?108]10
13[?101]2
12[?10]0
4[?111]5
8[?114]9
2[?108]3
11[?33]12
6[?87]7
3[?108]4
1[?48]13
5[?32]6
7[?111]8

Whenever: rsrsrs…essa foi a que mais gostei nesta linguagem não há sentido de urgência, as instruções são executadas “quando o compilador quiser”(whenever!), o código funciona como uma lista de tarefas a cumprir. (acho q o Burrindows funciona assim de vez enquando!)

Despeço-me e deixando um pensamento.

“Os navios ficam mais seguros nos portos, no entanto não foi para ficarem ancorados que eles foram criados.”

Até a próxima!


Vai encarar???

13 Janeiro, 2007

A google criou um campeonato, entre os programadores da América Latina, pelo que eu li existe uma série problemas e você vai resolvendo e pode até ganhar a bagatela de R$ 75000,00 e, segundo o próprio site, o respeito dos oponentes. As inscrições começaram no dia 2 e vai até o dia 23 de janeiro.

Já vou fazer a minha inscrição, o último a fazer a inscrição é a mulher do padre.

Campeonato Google


CSS – Parte I

12 Janeiro, 2007

Como prometido, volto a falar sobre css (cascading style sheets ou folhas de estilo em cascata), eu nem sei se vai ter parte II, mas se caso acontecer já estamos preparados :) . Com certeza você já ouviu falar nisso, css baseia-se praticamente em alterar o aspecto de sua página, logicamente, pode-se fazer sem css, porém facilita muito o trabalho. Existem duas formas de se fazer uso dele:

  1. Você pode criar um arquivo de extensão css e incorporar à sua página html.
  2. Criar o css na própria página html.

Eu aconselho utilizar a primeira forma, por diversos motivos, mas os principais são:

  • O código fica melhor visualmente, portanto melhor pra se entender.
  • Mais de uma página na sua web page, poderá usar o mesmo css.
  • Se por um acaso no meio do desenvolvimento necessitar fazer alguma alteração no css, não precisa ir página por página para altera-la, é só ir ao arquivo css e problema resolvido.

Agora, mãos a massa (pensando bem é melhor ficar só no teclado mesmo, que eu sou horrível na cozinha) :

Antes de tudo, vou abordar o assunto de uma forma geral, por enquanto, tenha logo em mente, que há diferenças no IEca (Internet Explorer) e o FF (firefox), seja ela por sintaxe, ou mesmo por suporte.

Sintaxe:

Seletor {propriedade: valor}

Exemplo:

p { font-family: “Times New Roman”}

olha que simples, ele declara que todos os elementos p, vão ter a fonte Times New Roman,  porém essa talvez não seja a melhor forma de usá-lo, vejamos o porque:

table { font-size: 14}

Acabei de declarar que todas as tables da minha página terão a fonte do tamanho 14, porém se eu tiver várias tables na mesma página e elas forem de tamanhos diferentes? Agora, você deve estar pensando “f…”, “calma, calma não criemos pânico”. A solução é simples, todo elemento html tem uma propriedade chamada class, pode-se dar um nome à class e depois montar no css todo o esquema, exemplo:

vamos supor que em sua página html, possua um parágrafo com a class = p_prim (parágrafo primeiro).

no css:

.p_prim { text-align: center}

percebe-se que houve uma alteração no início da linha, onde há um ponto (.), com isso vai procurar em todos elementos do html que possua a class p_prim, lembrando-se que isso se aplica a todos os elementos do seu html, logo pode ter mais de um elemento com a mesma classe, apenas tenha o cuidado de saber quais vão ser os elementos que vão conter a mesma classe. o resto da linha você já sabe, alinha o texto para o centro.

E por último, pois você deve estar de saco cheio de ler e se não tiver eu estou de saco cheio de escrever. :)

Existe outro modo de você utilizar no css os elementos html, a propriedade id não confunda com name, que também é comum à todos os elementos do html.

Exemplo:

vamos supor que no html o id do seu parágrafo também se chame p_prim

no css:

#p_prim { text-align: justify}

Percebe-se agora que o diferencial é a cerquilha, jogo-da-velha, ou seja lá o que você chame, e todo o resto se repete, a diferença entre usar a propriedade class e a id, além da pontuação ( . no caso de class e # no caso de id) é que no id só um elemento pode possuir aquele nome, pode-se também especificar qual id aquele elemento tem que pertencer , ou seja, se ele for de elemento diferente o browser não faz nada.

Exemplo:

div#p_prim { text-align: justify}

Como visto, antes de # tem a palavra div, que é um elemento de html, então ele só vai fazer alteração do alinhamento do texto, se o elemento div possuir o id p_prim, ou seja, no nosso caso não vai fazer alteração alguma, porque o nosso p_prim é um elemento p.

Alguns pontos:

tanto id quanto class são comuns à todos os elementos html

class = .

id = #

Bom eu acho que com isso, já se tenha uma boa noção de css, quem sabe até possa voltar com esse tema aqui.

abraços

ps: escrever cansa…


Pré-carregamento da imagem

10 Janeiro, 2007

Depois de muita festa, bebida a vontade, diversão. Volto à realidade, as vezes triste, como ainda estou em ritmo de festa, vou abordar um tema bem simples. Outro dia eu e o Leandro estávamos desenvolvendo um site, quando nos deparamos com uma situação simples, porém eu acho legal colocá-la aqui. Sem mais lenga, lenga, vou discorrer sobre o ocorrido, tínhamos um menu, de imagens, foi nesse momento que ocorreu o problema, pois na hora do efeito hover (mouse passar por cima), o html carregava a imagem na hora, o que demorava um tempo curto, mas necessário para aparecer, ou melhor, não aparecer nada. Fomos direto pro ajaxonline, onde tive uma idéia de como resolver, bem simples, era só colocar as imagens no css. se liga só:

na página html.

<div id=”home”></div>

isso é só para colocar a figura dentro.

no css:

#home{ background:url(../imagens/menu/home2.gif) ; }

O css carrega a imagem do efeito hover. Com isso, no momento em que você passar o mouse em cima, não vai ter mais o problema, pois o a imagem já foi carregada no css. Simples, porém genial.

Obs:

Isso pode ser usado em qualquer situação em que uma imagem está em “cima” da outra, nós usamos em um menu, mas isso abre um leque de opções, espero que você tenha gostado.

ps: eu parti do principio que você tenha noção de css, mas não se preocupe, que vou fazer alguns posts, abrangendo esse tema.

fuiiii…


E nasce mais um blog

7 Janeiro, 2007

Que rufem os tambores… (tambores ao fundo)

Depois de ler tantos blogs, sai esse, o qual espero ser bem interessante para você, antes de tudo deixa eu me apresentar, como você pode perceber o nome do blog, lembra de uma empresa, ou algo do tipo, mas no entanto não se trata disso, eu (Ramon) e meu amigo (Leandro) já queríamos criar um blog de assuntos diversos, com foco em informática, porém não tínhamos tempo, para poder atualizá-lo com frequência, então resolvemos unirmos e fazer esse, pois assim mantemos uma frequência nos posts. O nome GiGa Soluções, vem de um site que estamos desenvolvendo, aproveitamos o nome e colocamos aqui também, para consolidar o nome :) . Não vou me estender muito aqui, pois como todo nascimento, há champanhe, gente comemorando e com esse blog não iria ser diferente, já estão me chamando lá no salão, então deixo você aqui com aquele gostinho-de-quero-mais, pelo menos essa era a intenção.