Beautiful and Creative Examples of Vibrant Web Designs
Colors – it sets the tone (no pun intended) and message of a website. Designers often spend hours, even days, researching and coming up with a harmonious and usable color scheme.
In this collection, you’ll find 30 brilliant (alright – pun intended) web designs with vivid and colorful themes that evoke feelings of vivacity and dynamism – to inspire your color palette.
Colourpixel
Matt Dempsey
Fall for Tennessee
FontShop
DrupalCon
Sourcebits TangledDecals
Matt Mullenweg
CakePHP
The English Riviera Comedy Film Festival
VCU Office of Undergraduate Admissions
Miki Mottes
ZenSender
Boompa
alisa.mtv.ru
Portfolio of Adit Shukla
Maria Filó
Cheesetique
DivVoted
erguvanplatin.com
Design Disease
singularityconcepts.com
Macalicious
Radu Ceuc?
cocorino
AdaptD.com
Soundsplash 08 Eco Reggae Festival
Silverback
Sitesquared
Dulles Dodgeball
Emeril’s Holiday to Go
Fonte:Six Revisions
Video of US Airways descent into Hudson River released
Aterragem do avião da US Airways no rio Hudson
PGP Whole Disk Encryption
Proactively secure confidential data on disks and removable media
Mobile computers are quickly emerging as the industry standard for increasing user productivity. However, the portable nature of these devices increases the possibility of loss or theft. Consequent exposure of sensitive data can result in financial loss, legal ramifications, and brand damage.
PGP® Whole Disk Encryption provides enterprises with comprehensive, nonstop disk encryption for Microsoft and Apple Mac OS X, enabling quick, cost-effective protection for data on desktops, laptops, and removable media. The encrypted data is continuously safeguarded from unauthorized access, providing strong security for intellectual property, customer and partner data, and corporate brand equity.
- Easy, automatic operation–Protects data without changing the user experience.
- Enforced security policies–Automatically enforce data protection with centrally managed policies.
- Accelerated deployment–Achieves full disk encryption using the existing infrastructure.
- Reduced operational costs–Result from centrally automating encryption policies.
Technical Specifications
Supported Operating Systems
- Microsoft Windows Vista (all 32-bit and 64-bit versions, including Service Pack 1)
- Microsoft Windows XP Professional 32-bit (Service Pack 1, 2 and 3)
- Microsoft Windows XP Professional 64-bit (Service Pack 1 and 2)
- Microsoft Windows XP Tablet PC Edition 2005 (requires attached keyboard)
- Microosft Windows XP Home
- Microsoft Windows 2003 Server (Service Pack 1 and 2)*
- Microsoft Windows 2000 Professional (Service Pack 4)
- Mac OS X 10.4.10 and later (Intel-based Macs, system volumes only)
- Mac OS X 10.4.X and Mac OS X 10.5.X (Intel and PPC platforms, non-system volumes only)
* Full disk encryption functionality is not supported on Windows 2000 Server or 2003 Server.
Supported Disks
- Desktop or laptop disks (partitions in the case of Windows, or the entire disk for Windows and Mac OS X)
- External disks, excluding music devices and digital cameras
- USB flash disks
- Solid-state drives
Localization
- English
- German
- Japanese
Authentication Options
- OpenPGP RFC 4880 keys
- X.509 keys
Symmetric Key Algorithms-PGP® Whole Disk Encryption
- AES 256-bit keys
Centralized Management Requirements
- PGP Whole Disk Encryption is centrally managed by PGP Universal Server which requires a dedicated hardware server. For supported hardware and other information, please refer to the PGP Universal Server technical specifications.
Two-Factor Authentication(PGP Whole Disk Encryption for Windows Only)
Supported Pre-Boot Authentication Smart Cards and USB Tokens
The following smart card readers are supported for communicating to a smart card at pre-boot time. These readers can be used with any supported removable smart card (it is not necessary to use the same brand of smart card and reader). Any Chip/Smart Card Interface Device (CCID) smart card reader is supported. The following readers have been tested by PGP Corporation:
- OMNIKEY CardMan 3121 USB for desktop systems
- OMNIKEY CardMan 6121 USB for mobile systems
- ActivIdentity USB 2.0 reader
- Reiner SCT CyberJack pinpad
- Athena ASEDrive IIIe USB reader
PGP Whole Disk Encryption supports the following smart cards for pre-boot authentication:
- ActivIdentity ActivClient CAC cards, 2005 models
- Aladdin eToken 64K, 2048-bit RSA-capable1
- Aladdin eToken PRO USB Key 32K, 2048-bit RSA-capable1
- Aladdin eToken PRO without 2048-bit capability (older smart cards)1
- Athena ASEKey Crypto USB Token for Microsoft ILM2
- Athena ASECard Crypto Smart Card for Microsoft ILM2
- EMC RSA SecurID SID800 Token3
- Charismathics CryptoIdentity plug ‘n’ crypt Smart Card only stick
- S-Trust StarCOS smart card4
- SafeNet iKey 3000
1 Other Aladdin eTokens, such as tokens with flash, should work provided they are APDU compatible with the supported tokens. OEM versions of Aladdin eTokens, such as those issued by VeriSign, should work provided they are APDU compatible with the supported tokens.
2 Athena tokens are supported only for credential storage.
3 This token is supported only for credential storage. SecurID is not supported.
4 S-Trust SECCOS cards are not supported.
Supported Smart Cards and USB Tokens-PGP® Virtual Disk and PGP Zip
PGP Whole Disk Encryption recognizes and works with the following:
- DoD Common Access Cards (CACs) with the ActivCard Gold 2.0 profile
- Athena Smart Card Solutions smart cards, including the ASEKey USB token
- AET SafeSign smart cards, including ASEKey 1.0
- Axalto (formerly Schlumberger) smart cards, including the Cryptoflex 32K
- SafeNet smart cards, including iKey 2032
- Aladdin smart cards, including eToken PRO USB 16K, 32K, and 64K
- GemPlus smart cards, including SafesITe and GemXpresso Pro, using GemSafe Libraries 4.2.0–015 (Gold)
PGP Whole Disk Encryption also recognizes and works with smart cards from other vendors if the vendor includes a standards-based PKCS-11 library in its software drivers.
Novo Acordo Ortográfico
Pessoalmente sou contra este novo acordo ortográfico, pois torna o Português de Portugal muito relaxado e deselegante.
mas afinal o que vai mudar?
O alfabeto português passará de 23 para 26 letras, com a inclusão em definitivo do k (capa ou cá), do w (dáblio, dâblio ou duplo vê), y (ípsilon ou i grego).
O uso de maiúsculas e minúsculas obedece a novas regras:
- os meses do ano e os pontos cardeais deverão ser escritos em minúsculas (janeiro, fevereiro e norte, sul, etc.).
- poder-se-á usar maiúsculas ou minúsculas em títulos de livros, no entanto a primeira palavra será sempre maiúscula (Insustentável Leveza do Ser ou Insustentável leveza do ser)
- também é permitida dupla grafia em expressões de tratamento (Exmo. Sr. ou exmo. sr.) em sítios públicos e edifícios (Praça da República ou praça da república) e em nomes de disciplinas ou campos do saber (História ou história, Português ou português)
A supressão de consoantes mudas tal como o nome indica, vai levar ao desaparecimento de consoantes, em que o critério para tal é a sua pronúncia.
- cc - ex.: transacionado, lecionar. Mantém-se em friccionar, perfeccionismo, por se articular a consoante.
- cç – ação, ereção, reação. Mantém-se em fricção, sucção.
- ct – ato, atual, teto, projeto. Mantém-se em facto, bactéria, octogonal.
- pc – percecionar, anticoncecional. Mantém-se em núpcias, opcional.
- pç – adoção, conceção. Mantém-se em corrupção, opção.
- pt - Egito, batismo. Mantém-se em inapto, eucalipto.
Passam a ser suprimidos alguns acentos gráfico em palavras graves: crêem, vêem, lêem passam a creem, veem e leem; pára, pêra, pêlo, pólo passam a para, pera, pelo e polo. As palavras acentuadas no ditongo oi e ei passam a ser escritas sem acento: estoico, paleozoico, asteroide e boleia, plateia, ideia. Existe também a supressão completa do trema(¨): aguentar (e não agüentar), frequente (e não freqüente), linguiça (e não lingüiça). Supressão do acento circunflexo em abençoo, voo, enjoo.
O uso do hífen vai ser suprimido em:
- palavras compostas em que o prefixo termina em vogal e o sufixo começa em r ou s, dobrando essa consoante: cosseno, ultrassons, ultrarrápido.
- o prefixo termina em vogal diferente da incial do sufixo: extraescolar, autoestrada, intraósseo.
- formas monossilábicas do presente do indicativo do verbo haver: hei de, hás de.
O hífen emprega-se em:
- palavras compostas onde a última vogal do prefixo coincide com a inicial do sufixo, excepto o prefixo co– que se algutina ao sufixo iniciado por o: contra-almirante, micro-organismo, coobrigação.
- palavras que designam espécies da Biologia ou Zoologia: águia-real, couve-flor, cobra-capelo.
Pode existir dupla grafia em algumas palavras?
Sim. Isso está previsto no novo acordo por existirem diferenças na pronúncia de país para país assim temos:
| característica | caraterística |
| intersecção | interseção |
| infeccioso | infecioso |
| facto | fato |
| olfacto | olfato |
| conceção | concepção |
| súbdito | súdito |
| amnistia | anistia |
| amígdala | amídala |
| súbtil | sútil |
| académico | acadêmico |
| ingénuo | ingênuo |
| sénior | sênior |
| cómico | cômico |
| vómito | vômito |
| fémur | fêmur |
| abdómen | abdômen |
| bónus | bônus |
| bebé | bebê |
| puré | purê |
| judo | judô |
| metro | metrô |
| andámos | andamos |
Argumentos a favor
- aproximação da oralidade à escrita
- actualmente a Língua Portuguesa é a única que tem duas grafias oficiais
- simplicidade de ensino e aprendizagem
- unificação de todos os países de língua oficial portuguesa
- fortalecimento da cooperação educacional dos países da CPLP
- evolução da língua portuguesa
- pequena quantidade de vocábulos alterados (1,6% em Portugal e 0,45% no Brasil)
- o português é o 5º idioma mais falado no mundo e o 3º no mundo Ocidental. A unificação das grafias permite aumentar, ou pelo menos manter a força da Língua Portuguesa no panorama mundial
Argumentos contra
- evolução não natural da língua
- tentar resolver um “não-problema”, uma vez que as variantes escritas da língua são perfeitamente compreensíveis por todos os leitores de todos os países da CPLP
- desrespeito pela etimologia das palavras
- a não correspondência da escrita à oralidade. Por exemplo, existem consoantes cuja função é abrir vogais, mas que o novo acordo considera mudas nomeadamente em tecto, passando a escrever-se teto, dever-se-ia ler como teto (de seio)?
- processo dispendioso (revisão e nova publicação de todas as obras escritas, os materiais didáticos e dicionários tornar-se-ão obsoletos, reaprendizagem por parte de um grande número de pessoas, inclusivé crianças que estão agora a dar os primeiros passos na escrita)
- o facto de não haver acordo, facilita o dinamismo da língua, permitindo cada país divergir e evoluir naturalmente, pelas próprias pressões evolutivas dos diferentes contextos geo-sócio-culturais como no caso do Inglês ou do Castelhano
- afecto com a grafia actual
- falta de consulta de linguistas e estudo do impacto das alterações
Para quem precisar de um bom corrector clique no link abaixo e tem um excelente Conversor do
Acordo Ortográfico
http://www.portuguesexacto.pt/
fonte: ProWebPt
Social Media
Um vídeo bastante interessante e divertido que explica de uma forma clara o conceito de social media.
Também podem ver os restantes vídeos a explicarem alguns serviços web 2.0
Joomla developers toolbox
Um conjunto de Ferramentas para utilizar com o Joomla
http://www.smashingmagazine.com/2009/01/05/joomla-developers-toolbox/
SSH2 & PHP Howto Guide: SSH Connections Made Easy in PHP
PHP doesn’t come with native support for making SSH connections via the libssh2 libraries. You must use the PECL SSH2 extensions. Installing them can be tricky, but Kevin van Zonneveld does a great job explaining how to install them over here. So I won’t go there. The new version, 0.11.0, also seems to be compiling more reliably for everyone.
Unfortunately, the library is sparsely documented, and still buggy in some places. And most of the comments posted on http://www.php.net/ssh2 are just plain wrong! Kudos to Mike Sullivan for fixing some of the issues with non-blocking I/O (And let’s not forget to thank Sara Golemon for writing it to begin with!). I list the most conspicuous problems at the bottom of this blog entry for interested parties. Everyone else can use our wrappers to smooth over some of the kinks and make most common tasks trivial to perform.
Our wrapper is released under GNU license and can be used, for example, as follows:
$php_ssh2 = new SSH2('YOURHOST.COM');
$php_ssh2->loginWithPassword('YOUR_LOGIN', 'YOUR_PASSWORD');
echo $php_ssh2->execCommandBlock('find /cat/food');
All Pertinent Features:
$php_ssh2->execCommandBlockNoOutput()
allows execution of a script ignoring output. Note that without blocking execution manually, 2 ssh2_execs will execute asychronously. So it should also be used for shell scripts that have no output. Why? If you never check for data, it will never block — yes, even in blocking mode! This is subtle … until it clicks.
$php_ssh2->setLogReads($setting = true)
enables or disables read logging on the current SSH2 stream.
$php_ssh2->setLogWrites($setting = true)
enables or disables write logging on the current SSH2 stream.
$php_ssh2->getShell($set_blocking = false, $term_type = 'vt102' ... )
opens a shell for the user — generally not needed and much harder to work with.
$php_ssh2->waitPrompt($prompt_regex = '> $', &$buf = '', $timeout_secs = 0)
waits for a specified prompt $prompt_regex (expressed as a regular expression) for $timeout_secs (or 0 to block forever). Returns true or false, leaves response (whether matching or not) buffer in &$buf parameter.
$php_ssh2->writePrompt($command, $add_newline = true)
writes the specified output to stream. Returns what it was able to write.
The rest of the functions are fairly self-explanatory. Check out the library here —
http://www.seoegghead.com/software/ssh2-php-wrappers.seo
Problems/Gotchas I’ve Observed in PECL SSH2
1. Non-blocking mode buggy and/or coredumps in versions < 0.11.0. So make sure you upgrade.
2. FreeBSD Ports currently reports a patched “usr/ports/security/pecl-ssh2? version 0.10.0 as 0.11.0 (Not strictly a PECL SSH2 problem, but worth noting as it caused me grief).
3. stream_set_timeout() does not work at all with SSH2 streams — silently always returns false.
4. stream_select() does not work with SSH2 streams — but prints a warning.
5. One must pass NULL to $pty — not false (like some comments on php.net claim), not “” — otherwise LFs (“\n”) will get changed to CRLFs (“\r\n”). Text files will mostly survive this, but binary data will be corrupted! This took us a solid hour to debug and involved a hex-editor.
As a consequence of some of the above, there is no good way to do non-blocking I/O in versions < 0.11.0. Period. No timeouts, no polling, no selecting. If you need non-blocking I/O to work reliably, you must upgrade to 0.11.0.
Javascript: Regular Expression
Neste artigo eu vou usar tanto a palavra expressões regulares como Regular Expression (inglês). Eu vou usar em português para facilitar, mas esse nome não existe em português.
As expressões regulares são padrões utilizados para encontrar combinações de caracteres em Strings. É uma ferramenta muito poderosa porque consegue resumi em algumas linhas de código pesquisas altamente complexas. O principal uso de expressões regulares em Javascript seria na validação de dados.
Em JavaScript, expressões regulares também podem ser tratadas como um objeto. Esses padrões são usados com os métodos exec e test do objeto RegExp, e com os métodos match, replace, search, e split do objeto String.
Algumas das traduções deste artigo não são totalmente fieis. Espero que consigam entender o que a mensagem está passando.
Entendendo as Expressões Regulares
As expressões regulares podem ser criadas de duas formas:
- Escrevendo uma expressão regular:
seek = /padrao/
padrao é a string padrão para ser usada na pesquisa.
- Criando uma instancia do objeto RegExp:
seek = new RegExp(“padrao”);
padrao é a string padrão para ser usada na pesquisa.
Regular Expression é um padrão de texto que consiste de simples caracteres (da letra a até z, ou de 1 até 9) e de uma combinação de caracteres simples e especiais.
Os padrões para a pesquisa de caracteres estão divididos em categorias. Segue abaixo uma lista dos grupos e respectivos caracteres especiais.
Busca posicionada
|
Símbolo |
Descrição |
Exemplo |
|
^ |
Busca somente no início da string |
/^The/ encontra “The” em “The night” mas não em “In The Night” |
|
$ |
Busca somente no fim da string |
/and$/ encontra “and” em “Land” mas não em “landing” |
|
\b |
Encontra em qualquer parte da string |
/ly\b/ encontra “ly” em “This is really cool.” |
|
\B |
Encontra qualquer parte que não esteja limitada |
/\Bor/ encontra “or” em “normal” mas não em “origami.” |
Literais
|
Símbolo |
Descrição |
|
Alfanumerica |
Todos os caracteres alfabéticos e numerais se encontram literalmente. Então /2 dias/ encontrarão “2 days” dentro da string |
|
\n |
Encontra o caractere de nova linha |
|
\f |
Encontra o caractere de nova página |
|
\r |
Encontra o caractere de retorno de carro |
|
\t |
Encontra o caractere de tabulação horizontal |
|
\v |
Encontra o caractere de tabulação vertical |
|
\xxx |
Encontra o caractere ASCII expresso por um número octal xxx. |
|
\xdd |
Encontra o caractere ASCII expresso por um número hexadecimal dd. |
|
\uxxxx |
Encontra o caractere ASCII expresso por UNICODE xxxx. |
A barra invertida (\) é também usada quando você deseja encontrar um caractere especial literalmente. Por Exemplo, se você deseja encontrar o símbolo “$” ao invés de ter um sinal no final da string, use a barra invertida: /\$/
Classes de Caracteres
|
Símbolo |
Descrição |
Exemplo |
|
[xyz] |
Encontra qualquer caractere que estiver dentro do grupo. Você pode usar hífen para denotar escala. Por Exemplo. /[a-z]/ encontra qualquer letra do alfabeto alphabet, /[0–9]/ encontra qualquer dígito |
/[AN]BC/ encontra “ABC” e “NBC” mas nao “BBC” desde que a letra “B” nao estao nogrupo. |
|
[^xyz] |
Encontra qualquer caractere que não estiver dentro do grupo. O circunflexo indica que nenhuma caractere deve estar na string. |
/[^AN]BC/ encontra “BBC” mas nao “ABC” ou “NBC”. |
|
. |
(Ponto). Encontra qualquer caractere exceto o caractere de nova linha ou terminador de linha Unicode |
/b.t/ encontra “bat”, “bit”, “bet” e assim por diante |
|
\w |
Enconta qualquer caractere alfanumérico incluindo underscore. Equivalente a [a-zA-Z0-9_] |
/\w/ encontra “200″ em “200%” |
|
\W |
Encontra qualquer caractere que não se encontra na classe dos alfanuméricos. Equivalente a [^a-zA-Z0-9_] |
/\W/ encontra “%” em “200%” |
|
\d |
Encontra qualquer dígito. Equivalente a [0–9] |
|
|
\D |
Encontra qualquer caractere que não seja um digito. Equivalente a [^0–9] |
/\D/ matches “No” in “No 342222″ |
|
\s |
Encontra qualquer caractere que equivale a um espaço. Equivalente a [ \t\r\n\v\f] |
|
|
\S |
Encontra qualquer caractere que não equivale a um espaço. Equivalent to [^ \t\r\n\v\f] |
|
Repetição
|
Símbolo |
Descrição |
Exemplo |
|
{x} |
Encontra exatamente x ocorrências na regular expression |
/\d{5}/ encontra 5 digitos |
|
{x,} |
Encontra x ou mais ocorrências na regular expression |
/\s{2,}/ encontra no minimo 2 caracteres de espaço em branco |
|
{x,y} |
Encontra x para y numero de ocorrências na regular expression |
/\d{2,4}/ encontra no minimo 2 mas nao mais que 4 digitos |
|
? |
Encontra zero ou nenhuma ocorrência. Equivalente a {0,1} |
/a\s?b/ encontra “ab” ou “a b”. |
|
* |
Encontra zero ou mais ocorrências. Equivalente a {0,} |
/we*/ encontra “w” em “why” e “wee” em “between”, mas nao em “bad” |
|
+ |
Encontra uma ou mais ocorrências. Equivalente a {1,} |
/fe+d/ encontra tanto em “fed” quanto em “feed” |
Alternação & Agrupamento
|
Símbolo |
Descrição |
Exemplo |
|
( ) |
Agrupamento de caracteres para criar uma cláusula de condição. Pode estar aninhado |
/(abc)+(def)/ encontra um ou mais ocorrencias de “abc” seguido por uma ocorrencia de “def” |
|
| |
Combina cláusulas de condições dentro de uma regular expression e então encontra qualquer uma das cláusulas. Similar à expressão “OR” |
/(ab)|(cd)|(ef)/ encontra “ab” ou “cd” ou “ef”. |
Backreferences
|
Símbolo |
Descrição |
Exemplo |
|
( )\n |
Encontra uma cláusula entre parênteses. n é o número de cláusulas para a esquerda da backreference |
(\w+)\s+\1 encontra quaisquer palavras que ocorra duas vezes na mesma linha, como “hubba hubba.” O \1 denota que a primeria palavra depois do espaço deve encontrar a porção da string que foi encontrada no último commando dentro de parênteses. Se existisse mais de um comando dentro de parênteses, você deve usar \2 ou \3 para encontrar o apropriado agrupamento da esquerda da backreference. Até 9 backreferences podem ser usadas no padrão da string |
Modificadores de Padrões
Em adição aos caracteres padrões para buscar, você pode usar switches para fazer uma pesquisa global, case– insensitive (ignora minúsculas e maiúsculas) ou ambas.
|
Propriedade |
Descrição |
Exemplo |
|
i |
Ignora se é minúscula ou maiúscula |
/The/i encontra “the” e “The” e “tHe” |
|
g |
Pesquisa Global para todas as ocorrências do padrão |
/ain/g encontra os dois “ain” em “No pain no gain”, ao inves de apenas o primeiro |
|
gi |
Pesquisa Global, e ignorar caso |
/it/gi encontra todos “it” em “It is our IT department” |
|
lastIndex |
Armazena a posição da última pesquisa bem sucessida realizada na string. Se nada for encontrado, a propriedade lastIndex será colocada como –1 |
|
|
$n |
n representa o numero de 1 a 9 |
|
|
source |
Armazena a copia do padrão da regular expression |
|
Entendendo os métodos usados pelas expressões regulares
|
Método |
Descrição |
|
exec |
Um método RegExp que executa pesquisas em uma string. O mesmo retorna um array das informações obtidas |
|
test |
Um método RegExp que testa uma pesquisa em uma string. O mesmo retorna true ou false |
|
match |
Um método de String que executa uma pesquisa em uma string. O mesmo retorna um array das informações obtidas ou nulo se nada for encontrado |
|
search |
Um método de String que testa uma pesquisa em uma string. O mesmo retorna o índice do resultado, ou –1 se a pesquisa falir |
|
replace |
Um método de String que executa uma pesquisa em uma string, e substitui o resultado encontrado por uma substring |
|
split |
Um método de String que usa uma regular expression ou uma string para quebrar uma string em uma array de substrings |
Quando você quer saber se o padrão foi encontrado na string, use o método test ou search; para maiores informações (mas com execução mais lenta) use o método exec ou match. Se você usar exec ou match e se obter sucesso, esses métodos retornaram um array e atualizaram as propriedades do objeto regular expression associado e também de objetos pré-definidos, RegExp. Se a pesquisa falir, o método exec retornará nulo (no qual converterá para false).
Programando Expressões Regulares
A partir do momento que sabemos quais caracters desejamos devemos partir para a criação do padrão que sera utilizado para pesquisar a String.
Vamos, a partir de agora, criar alguns exemplos práticos de como utilizar Expressões Regulares.
No nosso primeiro exemplo vamos pesquisar na string um padrão que é composto da palavra “de”. O O resultado obtido nos mostrará onde se encontra a primeira e a ultima ocorrência das pesquisas.
Exemplo:
1 <SCRIPT LANGUAGE=”JavaScript”>
2 padrao=/de/g;
3 // padrao = new RegExp(“de”,”g”);
4 texto = “Brasil ganha a medalha de ouro no volei de praia.”;
5 document.write(“<b>padrao » </b>” + padrao + “<br>”);
6 document.write(“<b>Texto utilizado » </b>” + texto + “<br>”);
7 document.write(“O padrao utilizado foi encontrado no <b>” + texto.search(padrao) + “º </b>caractere.<br>”)
8 padrao.exec(texto);
9 document.write(“O ultimo valor encontrado e” o caractere<b> ” + padrao.lastIndex + “º </b>.”);
10 </SCRIPT>
Linha 2 – Declaração da variável padrão com a seqüência de caracteres a serem utilizados nas pesquisas.
Linha 3 – Tem o mesmo funcionamento da linha 2, porém vai criar uma instância do objeto RegExp com a seqüência de caracteres.
Linha 7 – Utilização do método search() para encontrar o padrao na variável texto.
Linha 8 – Utilização do método exec para pesquisar a seqüência padrão na variável texto.
Linha 9 – Utilização da propriedade lastIndex para retornar a última vez que a seqüência de caracteres foi encontrada na variável texto.
Clique aqui para ver o exemplo 01.
Exemplo 02
Este exemplo é um pouco mais complexo. Ele valida a entrada de dados por parte do usuário. O usuário vai digitar um número de telefone como proposto no exemplo.
1 <SCRIPT LANGUAGE = “JavaScript”>
2 padrao = /\(?\d{3}\)?\d{3}-\d{4}/;
3 function testInfo(x) {
4 a = x.Phone.value;
5 OK = padrao.exec(a);
6 if (!OK){
7 window.alert (“Este numero de telefone esta incorreto!”);
8 x.Phone.focus();
9 } else {
10 window.alert (“Obrigado, seu numero de telefone e” » ” + OK[0]);
11 }
12 }
13 </SCRIPT>
Linha 2 – Declaração da variável padrao com a seqüência de caracteres a serem utilizados nas pesquisas.
Linha 3 – Declaração da função testInfo() que recebe um parâmetro com o objeto form a ser utilizado
Linha 4 – Declaração da variável a que armazena o valor do parâmentro x (o formulário) seguido do nome do campo e respectivo valor
Linha 5 – Declaração da variável OK que recebe o valor da verificação se o padrão re está contido na variável a
Linha 6 a 11 – Verificação da negação da variável OK. Se retornar true, uma caixa de mensagem será mostrada com uma mensagem de erro e o campo em questão receberá o foco. Se retornar false uma caixa de mensagem será mostrada com uma mensagem e o número do telefone.
Com todo o código Javascript criado, vamos à criação do código HTML.
1 Digite um número de telefone, como por exemplo » (201)465‑7899.
2 <FORM onSubmit=”return false;”>
3 <INPUT TYPE=”text” NAME=”Phone” onChange=”testInfo(this.form);”>
4 <input type=”button” value=”valida” onClick=”testInfo(this.form);”>
5 </FORM>
Linha 2 – O evento onSubmit retorna false para o formulário não seja enviado.
Linha 3 – O evento onChange da caixa de texto chama a função testInfo() e envia como parâmetro o objeto form.
Linha 4 – O evento onClick do botão chama a função testInfo() e envia como parâmetro o objeto form.
Clique aqui para ver o exemplo 02.
Exemplo 03
Neste exemplo vamos trabalhar com mais métodos e entender onde podemos chegar com apenas algumas linhas de código. Aqui nos dividimos uma string, colocamos seu resultado em uma matriz e ainda ordenamos a mesma.
1 <SCRIPT LANGUAGE=”JavaScript1.2″>
2 nomes = new String (“Thiago Prado ; Bill Gates ; Steve Jobs; Michael Dell ; Chris Hand “);
3 document.write (“<b>String Original</b>” + “<br>” + “<br>”);
4 document.write (nomes + “<br>” + “<br>”);
5 padrao = /\s*;\s*/;
6 listaNomes = nomes.split (padrao);
7
8 padrao = /(\w+)\s+(\w+)/;
9 novalistaNomes = new Array;
10 document.write (“<b>Apos ter sido dividido pela Expressao Regular </b>” + “<br><br>”);
11 for ( i = 0; i < listaNomes.length; i++) {
12 document.write (listaNomes[i] + “<br>”);
13 novalistaNomes[i] = listaNomes[i].replace (padrao, “$2, $1″)
14 }
15 document.write (“<br><b>Nomes revertidos</b>” + “<br><br>”);
16 for ( i = 0; i < novalistaNomes.length; i++) {
17 document.write (novalistaNomes[i] + “<br>”)
18 }
19 novalistaNomes.sort();
20 document.write (“<br> <b>Ordenados</b>” + “<br><br>”);
21 for ( i = 0; i < novalistaNomes.length; i++) {
22 document.write (novalistaNomes[i] + “<br>”)
23 }
24 </SCRIPT>
Linha 2 – Declaração da variável nomes com alguns nomes a serem utilizados no código
Linha 3 a 4 – Mostra na tela a variável nomes sem nenhuma alteração
Linha 5 – Declaração da variável padrao com a seqüência de caracteres a serem utilizados nas pesquisas.
Linha 6 – Criação da matriz listaNomes com a divisão da string nomes a partir do padrão utilizado.
Linha 8 – A variável padrão recebe nova seqüência de caracteres a serem utilizados nas pesquisas.
Linha 10 a 14 – Mostra na tela a lista de Nomes depois da divisão
Linha 13 – A matriz novalistaNomes(indexada da variável do loop) recebe o valor da matriz listaNomes (indexada da variável do loop) que utiliza o método replace para trocar o primeiro nome pelo segundo. Isso é possível por causa do uso da expressão regular.
Linha 15 a 18 – Mostra na tela a lista de Nomes revertidos
Linha 19 – Utilização do método sort para ordernar a matriz novalistaNomes
Linha 20 a 23 – Mostra na tela a lista de Nomes Ordenados
Clique aqui para ver o exemplo 03.
Regular Expression é um assunto muito amplo, e não é possível abordá-lo em apenas alguns exemplos. Mas para o futuro eu vou preparar uma outra matéria com códigos mais poderosos para mostrar o que realmente quero dizer com “resumi em algumas linhas de código pesquisas altamente complexas”.
Fonte: Thiago Prado
comparação Windows 7 Beta1 vs Windows Vista vs Windows XP
O jornalista Adrian Kingsley-Hughes do ZDNet Hardware 2.0 comparou as versões 32 bit do Windows XP vs Windows Vista vs Windows 7 em tarefas comuns no dia a dia de um utilizador, como comprimir ficheiros, abrir docs e pdfs.
Por causa do estado de beta do Windows 7, ele não pode divulgar os dados precisos, os segundos ou milisegundos de cada um. Ele apenas diz quem ganhou, num simples 1, 2, 3. Ou seja, leve em consideração que abrir um arquivo pdf de 100 páginas em 100 milésimos, 105 milésimos e 107 milésimos significa que a diferença entre o primeiro e o terceiro lugar são apenas 7 milésimos de segundo.
Mas a vantagem dos testes, 23 ao todo, é que são simples e fáceis de reproduzir. A tabela, divulgada abaixo, mostra onde o Windows 7 ganhou.
Para o teste utilizaram-se :
- Um AMD Phenom 9700 2.4GHz com uma Placa Gráfica ATI Radeon 3850 e 4GB de Memória RAM.
- Um Intel Pentium Dual Core E2200 2.2GHz com uma Placa Gráfica NVIDIA GeForce 8400 GS e 1GB de Memória RAM.


MacBook Wheel — Adeus Teclados
Apple pretende inovar no mundo dos computadores com o seu novo MackBook Wheel acabando assim com o tradicional teclado.
Apple Introduces Revolutionary New Laptop With No Keyboard
só vai estar disponível ao público daqui a uns 15 meses e o seu preço varia de $2.599,00 a $9,960,00.
































