Glaudiston's profileSite pessoal de Glaudist...PhotosBlogListsMore ![]() | Help |
|
|
June 20 Adeus propagandas Faz um tempo que quero compartilhar este plugin do firefox, que faz milagres para melhorar a experiência com a internet. por padrão, o AdBlock Plus já bloqueia a maioria das propagandas, e permite a personalização do restante. Imagine usar o windows live mail sem o banner, sem propagandas, sem perda de espaço. Por padrão depois de instalado o adblock plus, o banner do live spaces e do live mail já não vai aparecer, mas o espaço ainda vai estar lá. Para remover o espaço vazio, até então usado pelo banner do live mail, é só adicionar o filtro: #div(RadAd_Banner) Já para remover os banners do spaces.live.com, é só adicionar o filtro: #div(AdContainer) o resultado são páginas limpas mais seguras e muito menos cansativas. Pra quem quer ser feliz e testar este milagre da tecnologia é só baixar o plugin do firefox e nunca mais usar o desnecessário e obsoleto Microsoft Internet Explorer. Segue o link do addon: http://adblockplus.org/en/installation e do firefox: http://www.getfirefox.com Abraços, Ton January 04 Introdução ao Kernel Linux Para quem não entende muito bem este lance de kernel do linux, vou explicar superficialmente: O Linux em sí é um "programa" chamado kernel que controla a parte física do computador(Hardware). Estes programas do tipo kernel só podem ser usados por outros programas, e são o coração do computador. O kernel é o Sistema Operacional puro, que controla o processador, memória e instruções de hardware, entre outras coisas. Todo sistema operacional(O.S.) tem seu kernel. Claro que por causa dos infindáveis tipos de hardware, é necessário que se tenha outros programas ou informações que o kernel precisa para controlar o hardware, estes programas são chamados no windows de drivers, e no linux de modulos. Muitos tipos de hardwares são suportados diretamente pelo kernel do linux, mas se você não tem um hardware específico em seu computador, então você não precisa do módulo dele instalado pra você. No Windows você não tem saída. Todos os dispositivos de hardware que vêm com suporte nativo do windows estão lá. Querendo você ou não, e ocupando um espaço desnecessário em sua instalação. Por isto existe no linux a opção de configurar o kernel, ativando apenas o que você precisa. Assim você tem a liberdade de criar o seu sistema personalizado, enxuto e íntegro. A configuração do kernel do linux é simples. O difícil é você adquirir os conhecimentos necessários do seu hardware e das opções do kernel que você quer. É necessário que você estude muito a documentação do kernel para ter este conhecimento. As distros nada mais são, do que uma configuração compilada do kernel do linux somados a um pacote de programas. Tudo pra facilitar a vida de usuários que normalmente não têm o conhecimento necessário para criar sua própria distro, ou simplesmente acham perca de tempo reinventar a roda. Espero que esta breve e resumida informação seja útil. Abs, Ton November 21 Odisséia do Desenvolvimento de JogosOdisséia do Desenvolvimento de Jogos ==================================== Olá, meu nome é Glaudiston, atualmente sou um desenvolvedor IBM, mas sempre que sobra algum tempo tento desenvolver alguma coisa voltada à jogos e realidade virtual. Vou tentar manter este documento atualizado como um manual para os que estiverem interessados em desenvolvimento de jogos, e também para minha própria referência, afinal compartilhar é a melhor forma de não errar denovo. =) Por onde começar ================ Primeiro decidi que queria fazer jogos, e pagaria o preço por isto, então comecei a pesquisar... De início pensei que daria conta facilmente, afinal me achava muito inteligente, mas descobri que não é bem assim... é necessário muita dedicação, perseverança e ajuda. Este é quase um passo a passo, mas se você não está disposto a passar horas intermináveis quebrando a cabeça com detalhes, pode parar de ler, você ainda não está pronto. O que é necessário saber/ter para desenvolver jogos =================================================== Tudo pode ser conseguido sem custo na internet, mas o aprendizado é penoso. Para criar um jogo você precisa de: * Escrever a Lógica do seu jogo, * Escolher uma Linguagem, * Escolher a API(rotinas prontas), * interface(janelas, resolução, tela cheia, cores) * Entrada(Joysticks, Mouse, teclado) * conexão(TCP/IP, multiplayer) * audio(musicas, sons, mp3) * Detecção de colisão * Gerenciamento de gráficos 3D * Configurar o ambiente(talvez a parte mais difícil), * Fazer download certos de cada opção escolhida * Instalar e configurar corretamente * Aprender a compilar cada opção necessária no jogo Escrever a Lógica do seu jogo ============================= Você tem uma idéia do que quer que seu jogo faça, talvez até saiba de cór tudo, mas acredite, precisa colocar isto por escrito. Isto te dá um ponto de partida... e evita que você se perca em seus objetivos. Existem diagramas UML e uma estrutura muito grande que pode te confundir se vc se aprofundar nesta parte... Jogos grandes são escritos por times e tem profissionais por conta de ficar criando documentações para serem implementados por outros... isto é muito bom, mas não é o caso, pelo menos não o meu. Não tente criar "O JOGO" de primeira ==================================== Primeiro porque para ser introduzido ao desenvolvimento de jogos é necessário ser humilde. Isto mesmo, comece de baixo... crie jogos 2D simples para aprender lógica e conseguir continuar motivado, sabendo que já conseguiu fazer alguma coisa. Sem falar que criando estes joginhos 2D vc acaba tendo muitas idéias de como usá-los dentro do seu jogo, então de certa forma, você já está trabalhando "NO JOGO". Se tentar criar um jogo fantástico de primeira, vai esbarrar em muitas barreiras que já deveria ter superado quando criava joguinhos pequenos e relativamente simples, e como não conseguiu fazer nenhum jogo antes, pode chegar à falsa conclusão que não é capaz disto. Lembre-se: "Motivação é Essencial." Eu já tentei criar uma engine completa para um mundo virtual melhor que o secondlife... na verdade pegando as melhores opções de jogabilidade dele mesclando um idéias do GTA e the sims... nfsu2... etc... com certeza a engine para o Jogo de meus sonhos... O resultado é que chegou em um ponto que não consegui mais passar... então desisti por um bom tempo... ainda tenho o código, algum dia conseguirei retomá-lo. Fique tão triste por não conseguir que voltei apenas a jogar e admirar os programadores que conseguem criar tais jogos... quase venerando os desenvolvedores da EA Games dentre outras empresas que fazem coisas fantástica escovando bits. Mas depois de continuar na programação comercial por muito tempo e com mais maturidade, voltei a sonhar... Afinal se cheguei na IBM, porque não posso chegar na EA ? Mas desta vez pretendo começar realmente do zero, como tem que ser para um novato em jogos. Vou relatar tudo para entender onde estou errando, ajudar os outros será conseguência. Hoje tenho uma lógica mais aprofundada e entendo melhor a necessidade de documentar o que deve ser feito antes de começar o código em sí. Aí você diz: "Mas eu não quero fazer joguinhos... quero fazer jogos 3D!!!" Eu sei... nem eu... a pesar de que existem muitos joguinhos 2D bem melhores q 3D, estou fazendo isto pra aprender e conseguir chegar ao final do desenvolvimento de um jogo 3D. E Nem sempre fazemos oque queremos. Certo, já entendi que devo criar jogos básicos, e conseguir concluí-los antes de passar ao jogo que realmente quero concluir. Jogos que podemos criar para treinar lógica =========================================== Campo Minado, Paciência, Pong, Tetris, Tiro ao alvo, Invaders, pac-man, Damas, Lógica do nosso primeiro jogo: Campo minado =========================================== Descrição: Campo minado é um jogo muito simples de cálculos matemáticos, e muito divertido também. Funcionamento: O jogador inicia o jogo e aparece para ele uma espécie de tabuleiro de botões, e uma quantidade de bombas escondidas em alguns botões, se o jogador clica em um botão que tem uma bomba, ele perde o jogo, se clica em um botão que não tem bomba, mas está próximo(faz fronteira) com uma ou mais bombas, aparece o nr de bombas que existem nas proximidades, esta é a única pista que o jogador tem para descobrir quais quadrados têm bomba e quais não têm, e se não tem bombas nas proximidades, o jogo automaticamente abre as fonteiras até não encontrar mais fonteiras sem números. Opções e comportamento do jogo: Ao Abrir o jogo o usuário tem as opções: Novo jogo Ao clicar em novo jogo, as opções são: Novo jogo * Monta novamente um novo jogo pro usuário Esta montagem é feita criando os botões visíveis ao jogador, e espalhando as bombas aleatoriamente nestes de maneira oculta ao jogador. * Zera o cronômetro * Aguarda o primeiro clique do jogador Sair do Jogo Fecha o programa ---------------- Clicar em um botão(fazer uma nova jogada) * No primeiro clique o cronômetro é disparado e o jogo começa. * Se o jogador clicou em quadrado com uma bomba o jogo termina, ele perdeu +( * Se o jogador clicou em quadrado sem bomba, e não existe bomba de fronteira com este quadrado, o quadrado é aberto, e outros quadrados de fronteira são abertos recursivamente até esgotarem-se os quadrados que não tem bombas nas fronteiras * Se o jogador clicou em um quadrado sem bomba, mas que tem bomba em um dos quadrados de fronteira, imprime no quadrado clicado, o nr de bombas que existe nas fonteiras * Se não restam mais quadrados sem bombas, o jogo termina, ele venceu. =D Ao vencer são guardados os dados nas estatísticas. Estatísticas Ao Clicar em Estatísticas o jogo mostra uma lista em ordem de maior dificuldade e menor tempo com os dados: Nome jogador, Data, Tempo gasto, dificuldade Podemos definir a dificuldade como a possibilidade de erro em um chute, por exemplo, se ele tiver 30 bombas em um tabuleiro de 200 quadrados, dizemos q a dificuldade era (30/200)*100 = 15 então nossa fórmula será (bombas/quadrados)*100 Opções Permite ao usuário definir a quantidade de bombas e o tamanho do tabuleiro Sair do jogo Fecha o programa Analisando possíveis problemas ============================== Lendo atentamente este comportamento do jogo notei as seguintes dificuldades: Como gerenciar todos os itens e bombas em memória? Penso que a melhor opção seria trabalhar com arrays... pra quem não conhece, são como matrizes da matemática, todos já vimos isto na escola se não me engano no fim do ensino fundamental. ficaria algo como isto: int linsize=10; // Numero de colunas int colsize=10; // Numero de linhas int campo[linsize][colsize]; // int bombas=10; // As bombas não são arrays então posso colocar o valor certo após a rotina distribuir as 10 bombas randomizadas... ficaria algo como: campo[0] = {0,0,0,0,0,0,1,0,0,0}; campo[1] = {0,0,1,0,0,0,0,0,0,0}; campo[2] = {0,0,0,0,0,0,0,0,0,0}; campo[3] = {0,0,0,1,0,1,0,0,0,0}; campo[4] = {0,0,1,0,0,0,0,0,0,0}; campo[5] = {0,1,0,0,0,0,1,0,1,0}; campo[6] = {0,0,0,0,0,0,0,0,0,0}; campo[7] = {0,0,0,1,0,0,0,0,0,0}; campo[8] = {0,0,0,0,0,0,0,0,0,0}; campo[9] = {0,0,0,0,0,0,1,0,0,0}; Os zeros são onde não existem bombas e os 1 são onde existem... Observe que existem apenas dez "1" espalhados no array que é nosso tabuleiro Porém em C não é possível definir um array por variáveis... é possível em java e outras linguagens mais alto-nivel q C... Isto complica um pouco... sem isto não poderíamos permitir ao jogador definir o tamanho. No máximo conseguiríamos predefinir niveis pra ele. Uma boa saída é o malloc e trabalhar com ponteiros... vamos ver: campo = malloc(linhas*colunas * sizeof(int)); Mas como espalhar as bombas? Isto é bem simples dependendo da linguagem, na maioria tem algo como rnd ou randomize que nos permite fazer isto com muita facilidade. Mas não é o caso de C, onde a handomização é feita sempre na mesma sequência, o q deixaria nosso jogo no mínimo previsível. Neste caso da C, pensei em gerar a randomização baseada na data, hora completa incluindo os milisegundos... e me veio outro problema, por padrão não é possível pegar os milisegundos no C, não no ANSI C... e como gosto de seguir padrões de portabilidade, encontrei uma boa saída... o SDL possui uma forma de calcular o framerate que disponibiliza uma variável atualizada em milisegundos.... o SDL_GetTicks()... vamos trabalhar com ela para gerar a randomização. Primeiro faça simples, depois complique gradativamente Vamos primeiro fazer um código que permita o usuário acessar os menus em modo texto mesmo... Assim você vai aprender a base do C Iniciar um novo Jogo Sair Campo minado lógica: define tamano de campo como 10 linhas e 10 colunas num total de 100 quadrantes. int linsize=9; int colsize=9; campo[linsize][colsize] //O array começa do zero, sendo assim, se usar 10 vai gerar um array de 11 posições, por isto usamos o array de 9 usuário iniciou um novo jogo. rotina distribui 10 bombas randomizadas... algo como: campo[0][0,0,0,0,0,0,1,0,0,0] campo[1][0,0,1,0,0,0,0,0,0,0] campo[2][0,0,0,0,0,0,0,0,0,0] campo[3][0,0,0,1,0,1,0,0,0,0] campo[4][0,0,1,0,0,0,0,0,0,0] campo[5][0,1,0,0,0,0,1,0,1,0] campo[6][0,0,0,0,0,0,0,0,0,0] campo[7][0,0,0,1,0,0,0,0,0,0] campo[8][0,0,0,0,0,0,0,0,0,0] campo[9][0,0,0,0,0,0,1,0,0,0] Totaliza os quadrantes livres: int quadranteslivres = 0; for (int i=0; i<=linsize; i++) { for(int j=0; j<=colsize; j++) { if (campo[i,j]==0) quadranteslivres += campo } } usuáro seleciona um item: linhasel=3; colsel=2; caso campo[linhasel,colsel]==1 tem bomba, explode, game over. revelabombas(); caso campo[linhasel,colsel]==0 // Rotina calcula quantidade de bombas próximas: int bombasproximas = 0; for (int i=-1; i<2; i++) { if (linhasel+i>=0 && linhasel+i<linsize) { for(int j=-1; j<2; j++) { if (colsel+j>=0 && colsel<colsize) bombasproximas += campo[linhasel+i, colsel+j]; } } } caso itensproximos==0 não tem bombas na fronteira, rotina abre todos os ítens próximos recursivamente até esgotar itens de fronteira sem bombas próximas. caso itensproximos > 0 Apenas relata ao usuário a quantidade de bombas nas proximidades. // incrementa quadrantesabertos quadrantesabertos++; Verifica se existe mais algum quadrante livre, if (quadranteslivres-quadrantesabertos>0) caso exista o relata ao usuário. e aguarda a próxima jogada. else caso não exista o usuário ganhou o jogo. Parabéns pra ele =) usuário desiste do jogo: gameover; revelabombas(); A Escolha da Linguagem ====================== Teoricamente, você pode usar quase todas as linguagens para criar seu jogo, porém algumas se destacam C, C++, Java, .Net(C#, VB.NET, etc)... Eu programo em todas estas linguagens, principalmente em java, que se destaca muito pela portabilidade, que traduzindo é: você escreve um programa no linux, mas roda em qualquer outro lugar onde tenha java... mas optei por C, por querer algo mais comercial... nos jogos normalmente é usado C++, mas eu gosto de procedural. =) A Escolha das APIs ================== Claro que você pode escolher uma engine pronta como a OGRE ou irlitch, mas eu quero conhecer mais do que estou fazendo, estas APIs encapsulam muito as coisas e mesmo assim ficam complexas. Decidi montar meu próprio motor... Vou usar SDL como API principal para gerenciamento de ambiente, graficos, janelas, mouse, teclado, joys, sons, etc), bullet physics para detecção de colisão, que é algo extremamente complexo, e OpenGL para 3D. Compilando ========== gcc fonte.c -o rodar -lmingw32 -lSDLmain -lSDL Não mude a sequencia!!! logo vou atualizar isto corrigindo alguns erros e adicionando o autotools para podermos usar os famosos: ./configure ; make ; make install; ...continua... Mas só Deus sabe quando. O primeiro grande problema é aprender a compilar o SDL depois de instalar o gcc e baixar o SDL, não teria tido problemas com isto no Linux, mas no windows precisei do mingw32 e o SDLmain pra compilar um código de iniciação do SDL: gcc helloSDL.c -o helloSDL -lmingw32 -SDLmain -lSDL Isto compilou o básico, mas agora enfrento um novo desafio, a compilação do SDL para o SDL_GetTicks Programação em Camadas (MVC)Programação em Camadas (MVC) ============================ Ouve-se muito hoje em dia falar em programação em camadas ou MVC, neste artigo vou passar um pouco dos meus conhecimentos sobre o assunto, e como este conceito pode ser colocado em prática no desenvolvimento não só Orientado a Objetos(OOP) mas também no Procedural. Para começar, MVC significa Model View Controller ou Modelo Visualização Controle, isto porque é esta a divisão básica da programação em camadas, por esta razão, você encontra também o termo programação em 3 níveis. Mas pra que MVC ? Em resumo, pra você não se perder no seu código, e ter maior produtividade. Mas vou tentar sei mais específico... ================= Algumas Razões: 1. O Mercado usa e quer. E com toda razão. Saber usar MVC vai acrescentar alguns pontos no seu currículo e vários pontos na hora da entrevista. 2. Programas crescem. Quando se faz um programa pequeno é relativamente fácil gerenciar o que foi feito, então você pode criar seus programinhas sem MVC, e funcionaram muito bem... praque você vai se preocupar em seguir um padrão? Bom... Cada caso é um caso, mas na maioria das vezes esta é justamente a mente de quem pensa pequeno e não se importa muito com a qualidade do código que está escrevendo. Muitas vezes estes programas crescem e se tornam muito complexos e quase ilegíveis. Então MVC é pra quem pensa grande, pensa no futuro quando você não estiver entendendo muito o que fez no passado. Em que consiste MVC? ==================== A intenção é dividir todas as funcionalidades do seu programa de forma que fiquem organizadas nestes 3 níveis. Desta forma além do código ficar bem legível, será mais fácil dividir tarefas entre vários desenvolvedores. E a reutilização do código será muito mais simplificada. Só pra ressaltar: Quais os benefícios do MVC? =========================== * Código segue um padrão mais legível. * Menor dificuldade em encontrar e resolver problemas no código. * Vários programadores pode trabalhar em uma mesma funcionalidade facilmente. * Novos desenvolvedores que conhecem MVC terão facilidade com o código. * Reutilização do código muito facilitada. Principalmente usando Shared Objects. Mas MVC não é só para Programação Orientada a Objetos (OOP)? =========================================================== Não. Sei que posso estar começando um frame... mas estou convencido que NÃO! O que acontece, é que nas linguagens como java que usa conceitos OOP o MVC é muito enfatizado, e isto nos dá a impressão de que ele é para OOP. Mas nada impede que se use este conceito em um código procedural. E oque significa cada nível ? ============================= Model (Modelo) : ============== Nesta camada devem ser implementadas tudo que é essencial ao funcionamento do recurso... seria o célebro do código. View (Visualização) : =================== Nesta camada são implementadas as rotinas que o usuário possa interagir, mesmo que este usuário seja uma outra aplicação, qualquer forma de interação externa só pode ser feita pelas implemetações desta camada. Controller (Controle) : ===================== Esta é uma camada intermediária que traduz as informações fornecidas pela camada view para algo legível pela camada Model e vice-versa. Muitas vezes ela apenas repassa a chamada. Parece algo desnecessário mas não se engane, sem ela não seria tão simples a reutilização do código. Exemplo Teórico: ============= Vamos imaginar que a empresa onde você trabalha solicita que você desenvolva um programa que leia vários arquivos(ou um banco de dados), faça alguns cálculos complexos e retorne um vetor com as informações lidas e calculadas para o usuário. Isto pode levar algum tempo, não é? Mas não é só isto. Você também precisa criar várias formas do usuário acessar este programa: Modo texto; Modo gráfico 2D; Modo gráfico 3D; Modo Web; Mas não pára por aí. Você também tem que criar isto em um tempo que você, mesmo sendo o gênio que é, não acredita que conseguirá sozinho... você reclama disto e seu chefe/gerente diz: Até entendo, mas não posso ampliar o prazo, o que posso fazer e te disponibilizar mais desenvolvedores. "E agora José ???" "Está cansado de criar um código e ter que ficar separando fragmentos dele para copiar e colar em outro código que faz exatamente a mesma coisa mas não sabe como reutilizá-lo?" "ACABARAM SEUS PROBLEMAS!!!" "Chegou o maginífico, ultra-rápido e revolucionário: Model Viel Controller ["Programation Planification Tabajara"]. ;-)" Você se lembra do MVC... e coloca em prática. como ? Vamos dividir as tarefas: * Um primeiro programador vai criar as assinaturas de métodos do código reutilizavel e salvar em um objeto compartilhado em C podemos pensar no arquiv .h . Isto vai servir para os outros desenvolvedores criarem as chamadas de método nos seus programas. Depois este programador vai continuar trabalhando na implementação dele. Este é nossa camada Model. * Um segundo desenvolvedor, irá criar retornos falsos, para serem retornados para o código dos outros desenvolvedores enquanto este código não fica pronto. Pra isto ele vai precisar estabelescer padrões de tipo e ojetos e vai compilar nosso objeto compartilhado falso =|... Isto será nossa camada Controller (temporária). * Um terceiro desenvolvedor vai programando a interface Texto com a estrutura de menus, telas de boas vindas, ajuda, sobre, aquela frescuragem toda que o usuário quer ter, e deixando as partes de código que precisa da dita cuja funcionalidade com a assintatura do método que o segundo desenvolvedor já passou... mas lembre-se que por enquanto este método vai estar retornando um valor falso... apenas pra não ficar parado. Um exemplo prático que estou criando é o http://bombas.sf.net estou desenvolvendo baseado na lógica do campominado do windows(winmine.exe) com alguma divertidas funcionalidades adicionadas. Minha intenção era criar um jogo que tivesse 3 interfaces, Texto, 2D e 3D. como a lógica do jogo é uma só, eu pude criar um código de forma que fosse usado pelos 3 modos do jogo. Compilei este código como um Shared Object que no windows são as famosas .dll e no linux são os arquivos .so . E assim pude reutilizar este código compartilhado com os outros modos... No futuro, se eu quiser usar esta lógica como parte de um outro jogo será só adicionar esta biblioteca e pronto. Queria continuar com isto, mas está ficando muito extenso... e vocês podem se basear no código do bombas.sf.net que já postei o link acima. Também é verdade que estou sem tempo talvez eu poste futuramente uma parte 2 deste artigo. Espero que seja útil a vocês... Qualquer dúvida, usem os comentários. Até a próxima, Abs. December 16 BATCH SCRIPT!!! Batch scripts são arquivos texto com extensão bat (*.bat), são pequenos programas interpretados pelo prompt do ms-dos, são muito usados para automatizar pequenas tarefas do dia-a-dia, e por este motivo mesmo não existem tantas funções práticas para elaborar problemas complexos... mesmo assim com um pouco de criatividade pode-se fazer maravilhas com ele, lógico que não é nada que se compare com os bash scripts do *nix. A documentação não é muito boa... muito básica e os bons tópicos são espalhados pela internet. Desde modo fica difícil saber o que pode e o que não pode ser feito com batch script.
Neste artigo vou publicar minhas rotinas de batch script que podem ser úteis em diversas situações. Todos os scripts são feitos em windows xp, que usa o padrão NT para prompt do ms-dos... sendo assim, talvez alguns detalhes não funcionem em Windows 9x/ME, daí é você testar e usar a criatividade
Coisas básicas que são difíceis de encontrar:
* Como pegar uma parte da variável (substring):
caso seja um parâmetro tipo %1 ou %%i, sete este valor para uma variável temporária:
set var=variavel_a_testar
para pegar o left, por exemplo as primeiras 5 letras da variavel use %var:~0,5%
para pegar o mid, por exemplo a string da posição 9 até a 11 "_a_" letras da variavel use %var:~8,3%
para pegar o right, por exemplo as ultimas 6 letras da variavel use %var:~-6%
isto funciona muito bem pra pegar datas horas ou qualquer tipo de valor de variavel de ambiente também. Perguntas e respostas que eu tive que codificar por mim mesmo:
* Como conseguir a largura de um parâmetro ou variável em um arquivo .bat:
C:\WORKSP~2>more len.bat
:: December 16, 2006 by Glaudiston Gomes da Silva
@echo off set Len=-1 :next_for if "%Len%"=="-1" ( for /L %%i in (1,1,4096) do ( echo @echo off > getLen.bat echo SET s=%1>>getLen.bat echo if "%%s:~0,%%i%%"=="%%s%%" echo Len=%%i>>getLen.bat getlen.bat | find /c "Len" | find "0" > null IF ERRORLEVEL 1 ( echo Length=%%i set Len=%%i goto next_for ) ) ) del getlen.bat C:\WORKSP~2>len palavra_a_testar
Length=16 C:\WORKSP~2>set len
Len=16 De tempo em tempo vou atualizar este tópico...
see'ya! October 25 CMS para portais completos e sem custoNesta jornada de desenvolvimento web, sempre precisamos de mais performance, mais recursos, mais interação e tudo isto em menos, muito menos tempo. Por este motivo surgiram os CMS . Os CMS são estruturas de comunidades completas, fóruns, chats, notícias, cadastros, artigos, controle de usuários conectados... sistemas de segurança... etc...etc. Mesmo os que não conhecem o CMS podem perceber uma certa padronização nos fóruns de muitas comunidades... isto acontece porque eles usam o mesmo CMS... escolhem um estilo visual diferente e trocam as imagens... mas a estrutura é a mesma. Bom pra você aprender mais sobre o CMS nada como o google. Para mim, após muitos testes escolhe o phpbb que é um dos mais usados... na verdade o phpbb é uma estrutura completa de fórum com controle de usuários... não uma comunidade completa... porém, existem complementos, os chamados mods que adicionam recursos tornando este CMS um poderoso gerador de comunidades. Existe uma versão completa dele que já vem com todos os mods necessários para criar um portal já adicionados... basta fazer o upload para um servidor gratuito como o quickfreehost.com pra criar seu próprio portal... Esta versão do phpbb é chamada de "phpbb plus" pode ser encontrada na comunidade phpbb do brasil... na área de downloads. Bom... já dei o caminho das pedras para os que querem fazer portais web, agora é muitas horas de dedicação e muito google... Boa sorte. July 26 Teste sua competência HackerOlá a todos... já tem alguns dias que eu descobri um site fera... um tipo de jogo, que te permite descobrir em qual nível vc se encontra nos conhecimentos hackers... e até te instigar a pesquisar e aprender pra se superar e chegar ao próximo nível... o site é: http://www.try2hack.nl/ Caramba... este site é fera mesmo... muito difícil... estou no nível 7... não vou falar as senhas... perde a graça... mas vai as dicas: Existem senhas plantadas e sites espalhados na internet de maneira a enganar... e algumas destas senhas "dadas" podem te banir de acordo com as regras do site. 1º - Exibe o código fonte da página... 2º - O swf funciona sim em qualquer browser q tenha o flash instalado... mas só na primeira vez... vc não pode digitar errado... Abra o swf em um editor de textos qualquer... 3º - Javascript Debugger - in firefox 4º - JAD - Java decompiler se vc não tem java, não se preocupe pegando o trecho de código certo vc pode fazer um javascript e executar em um browser, mudando só um pouco a sintax pra ele te dar a senha pronta... ficar tentando fazer substring na mão é f*** ... e o javascript tem o mesmo princípio do substring q o java. 5º - dodi - vb3 decompiler seje criativo... um vbscript pode ajudar se vc tiver o ie instalado (no linux o ie funciona com o wine) 6º - Usando um sniffer capture os dados criptografados e a chave... a criptografia é no padrão BACONIAN... eu até fiz um script pra decodificar: basta salvar este código em um arquivo .html e executar com o firefox ou IEca: ************ Inicio do javascript (html) ************* <script>
/** * javascript para descriptografia baconian * Por Glaudiston Gomes da Silva * BACONIAN (25-letter plaintext maximum) * * A = aaaaa E = aabaa I/J= abaaa N = abbaa R = baaaa W = babaa * B = aaaab F = aabab K = abaab O = abbab S = baaab X = babba * C = aaaba G = aabba L = ababa P = abbba T = baaba Y = babba * D = aaabb H = aabbb M = ababb Q = abbbb U/V= baabb Z = babbb */ alfabeto = new Array("a","b","c","d","e","f","g","h","i","k","l","m","n","o","p","q","r","s","t","v","w","x","y","z") function replaceAll( sS, str1, str2) { while ( sS.indexOf(str1) >= 0 ) { sS = sS.replace(str1, str2); } return sS } function converteBinaryToDecimal( S ){ j=0; ret=0; while (j<S.length){ valorCasa=0; valorCasa=S.substring(S.length-1-j,S.length-j) ret += valorCasa*Math.pow(2,j); j++; } //alert('o decimal de \nS:'+S+'\nretornou:'+ret); return ret; } function converteBaconianToString( S ){ // Converte o código cryp para um array binario tmp = replaceAll( replaceAll( S,"a","0") , "b", "1"); i=0; retBin = new Array() while (tmp.indexOf(" ") >= 0 ){ retBin[i] = tmp.substring(0, tmp.indexOf(' ')); tmp = tmp.substring(tmp.indexOf(" ")+1); i++; } retBin[i] = tmp; // Converte para valores decimais retStr = ""; retDec = 0; for (i=0; i<retBin.length; i++){ retDec = converteBinaryToDecimal(retBin[i]+""); retStr += alfabeto[retDec]; // alert(retStr); } // Pega no array do alfabeto. return retStr; } usuario=""; //Coloque aqui o usuario q vc achou pelo sniffer senha=""; //Coloque aqui a senha q vc achou pelo sniffer site=""; //Coloque aqui o site q vc achou pelo sniffer usuario = converteBaconianToString( usuario ); senha = converteBaconianToString( senha ); site=converteBaconianToString( site ); document.write (('<pre>usuario: '+usuario+'\nSenha..: '+senha+'\nSite...: '+site+'</pre>'+"").toUpperCase()); </script> *******Fim do Script******** agora, quando eu tiver um tempo vou descobrir como passo pelo nível 7... mas daqui em diante as coisas ficam pretas! if (talento<destaque) {return esforço^2} //Se não puder se destacar pelo talento, vença pelo esforço.
Abs, Ton May 14 Migrando para LinuxPodemos dividir os usuários que tentam migrar para o linux de 2 formas: Usuários que se esforçam muito e se tornam usuários avançados e usuários que desistem e voltam para o Rwindows Migrar para o linux tem inúmeras vantagens ... mas também tem algumas graves desvantagens... As vantagens englobam a segurança de estar livre de vírus, spywares, adwares, não precisar de um anti-virus que deixa a máquina lentíssima, não ter q gastar tempo toda semana... só isto já é motivo pra migrar... todos os programas necessários para viver são gratuitos... e são excelentes programas... fato que nos deixa de conciência limpa. Agora vamos falar um pouco das desvantágens... o primeiro ponto é que é muito difícil para um usuário comum migrar para o linux... o problema é que o linux foi feito por profissionais e para profissionais... nos ultimos anos ele tem tentado alcançar os usuários comuns e devagar tem conquistado seu espaço... a interface já está muito interativa, até acho ele melhor e mais bonito que o Rwindows XP... mas ainda é muito complicado á um usuário entender como funciona a instalação de aplicativos (normalmente precisam ser recompilados)... não é nada do outro mundo pra quem sabe... mas pra quem nunca ouviu falar em programas fontes parece ser... E ainda por cima tem a questão das dependências... é assim... você quer instalar um programa... mas pra instalar este programa você precisa instalar outros programas... em distribuições mais interativas como o Debian ou kurumin existem ferramentas como apt-get que tentam resolver as dependências... mas muitas vezes esbarram em detalhes de configurações erradas que impedem das versões corretas das dependências serem baixadas... logo acontece um erro e complica a vida do usuário. Depois de apanhar e pesquisar muito no google começa-se a aprender como funciona o linux por dentro... isto permite ao usuário se lapidado cada vez mais aprendendo e descobrindo que nada sabe... outras pessoas passam a te considerar um profissional e vai chegar um dia que você achará que não foi tão difícil assim... mas foi Bom... "ignorando" os problemas de instalação vamos falar de outras desvantagens. A maioria dos programas são feitos apenas para rodar em Rwindows já ouvi até que a micro$oft tem contrato com empresas como a ea games e a sierra software (as 2 maiores empresas de desenvolvimento de jogos do mundo) para que elas nunca façam seus jogos para outras plataformas que não o Rwindows - mas se é verdade não sei. É claro que a comunidade open-source sabe que para conquistar usuários é necessário permitir que eles usem todos os programas que usam em windows... como os jovens podem viver sem seus jogos preferidos? não ... se não tiverem seus jogos no linux eles vão voltar para o Rwindows... eu mesmo já quase voltei por achar complicado configurá-los no linux... mas tem jeito... por isto continuarei no linux (pois eu sou brasileiro e eu não desisto nunca Já falamos logo atrás das dependências... exatamente por isto que os jogos e demais programas do Rwindows não funcionam no linux... todos os programas feitos para Rwindows são feitos usando a api do windows e tecnologias microsoft como o directX... e como são tecnologias proprietárias da microsoft é lógico que a microsoft não vai disponibilizar estas tecnologias para o linux... seria suicídio. De qualquer forma a comunidade open-source tem se esforçado e conseguido muitos avanços nesta área... em alguns anos não haverá nenhuma dificuldade em configurar nenhum programa ou jogo do windows no linux... porém hoje já funciona... mas dá muito trabalho... em outro artigo vou tentar explicar como instalar um jogo do Rwindows no linux... ainda estou tentando. March 11 Desenvolvimento WEB para iniciantesEste é o histórico de um bate-papo com meu tio (que me ensinou a programar)... acredito q finalmente ele vai se dedicar a programar para a web... neste histórico ensinei a ele como funcionam os aplicativos web... acho q será util a qualquer um: Ton: oq o sr já entendeu do desenvolvimento web? Ton: descreva como funciona um programa web pra mim. Vicente: Eu estava lendo sobre o java... já tive uma boa noção... Vicente: só como o vb tem o seu software, para gerar as aplicações, eu entendi que para programar e gerar aplicações em java, tem um software, eu entendi que um dos programas é o eclipse que gera... Vicente: estou saindo bem?hehe Vicente: _093, Ton: na verdade, pra programar em java vc não precisa de nada além do edit do DOS ou do bloco de notas do windows... o eclipse é uma dentre as muitas ferramentas que ajudam nesta tarefa Vicente: isso... Vicente: entendi... Ton: ele te fala onde está os erros, como corrigir .. etc ... só isto Ton: mas e quanto à web? como funciona? Vicente: é simples... hehe vc digita www.fontedavida.com.br e pronto... Vicente: vc tá dentro do site... viu.... Vicente: 8-|... Vicente: tô entendendo tudo...hehe Ton: vi... então vamos ver... do lado do cliente... ele digita www.fontedavida.com.br e recebe q tipo de codigo? Vicente: ouuu... para de arrochar... Vicente: eu entendo, mas não sei os termos técnicos... Ton: estou querendo ver até onde o sr entendeu. Ton: pense comigo... o usuário final acessa a internet pelo browser (ie, firefox, netscape, opera, konqueror ou qualquer outro). Vicente: :$... Vicente: sim... Ton: ele digita um endereço qualquer e recebe um código que o browser identifica e mostra o resultado da página ao usuário... este código é o HTML... sempre Vicente: ok... Vicente: quem faz a leitura, é o browser... Ton: exatamente...então o browser pegou o html e gerou uma "tela" pro usuário... com campos textos... botões etc. Vicente: sim... Ton: por isto o sr tem q conhecer html. Vicente: tô entendendo... Ton: html é simples e fácil. Vicente: todo código, independente da linguagem WEB, tem que estar no padrão HTML... Vicente: dentro daqueles parametros do HTML... exemplo <BODY>.... Ton: toda e qualquer tecnologia, ASP, PHP,ASP.NET, JSP, SERVLETS(JAVA), sempre vão mandar simplesmente um HTML pro usuário Ton: isto não muda Ton: o browser só entende isto... por isto não pode mudar. Vicente: agora o que muda é a tecnologia... Vicente: recursos da tecnologia... Ton: isso... o q muda é a forma q vc vai criar o HTML Vicente: aí onde no momento vc está vendo vantagens no JAVA?! Vicente: isso... Ton: primeiro, porq java é muito mais maduro em web q todas as outras tecnologias... foi desenvolvido à muito mais tempo e é muito mais aperfeiçoado ... depois por que ele é muito mais rápido que qualquer outro... e pra finalizar ele é independente de plataforma... vou explicar. Ton: qualquer computador (cliente) que acesse o site recebe um codigo html... mas quem envia este codigo html é o "SERVIDOR WEB"... este servidor é a ponte entre a tecnologia usada pra gerar o código HTML e o browser do cliente... entendeu? Vicente: "SERVIDOR WEB", que vc está dizendo seria como a JATAINET? Ton: não... isto é provedor de internet Ton: apesar dele poder oferecer o serviço de servidor... Ton: já ouviu falar de hospedagem? Vicente: Esse servidor fica localizado onde então? Vicente: sim... Vicente: a JATAINET, não hospeda? Ton: não sei se a jatainet hospeda... Ton: se hospedar ela será tbm um servidor web. Ton: servidor web é simplesmente hospedar o programa. Vicente: e isso, é gerado um número do IP... Ton: vamos por outro lado... Vicente: TÔ entendendo... Vicente: só estou querendo referenciar... Ton: quando vc acessa um site... por exemplo... www.google.com... internamente o browser procura o ip do google : porta 80 Vicente: e entender o papel da JATAINET... Vicente: ok... Ton: o "servidor web" está escutando a porta 80... e quando detecta alguem chamando nessa porta, ele diz ao programa q precisa de um código HTML pra devolver pra quem está chamando... entendeu? Vicente: sim... Ton: q bom... no caso de ASP e ASP.NET o servidor web se chama IIS Vicente: cada endereço tem uma porta no provedor? Ton: não... a porta web padrão sempre é a 80 Ton: o q muda é o endereço q vc está chamando no caso o ip e a pasta Vicente: entendi... Ton: e no caso de PHP e JAVA( JSP E SERVLETS ) o servidor é o tomcat Vicente: é um programa ou tecnologia? Ton: o IIS só funciona nos windows... já o tomcat funciona em windows, linux... mac... etc Ton: servidor web é um programa Ton: cada tecnologia usa um servidor web q dê suporte a ela. Ton: os 2 principais são o : IIS - Internet Information Services - Usado pela microsoft... apenas para HTML, ASP e ASP.NET.. funciona apenas em windows APACHE TOMCAT - Servidor Apache.. usado em todas as tecnologias não microsoft como JSP, SERVLETS (JAVA), PHP, CGI... etc... funciona em qualquer sistema operacional. Vicente: entendi... Ton: no nosso caso estaremos usando o servidor apache tomcat... que já instalamos em seu computador. Vicente: Agora entendi, o porque vc instalou o APACHE TOMCAT... Ton: exatamente... Vicente: o meu computador, se quiser, poderá ser um hospedador... Vicente: é isso? Ton: o certo é "hospedeiro"... mas é isso mesmo. Vicente: hehe Ton: se alquem da sua rede local digitar o ip da sua máquina vai receber o código html do nosso programa Vicente: isso quer dizer que posso ter um computador, na minha casa, com o APACHE, e ser um hospedeiro, e ganhar com isso...$SS Ton: sim... mas tem um problema com isto... a porta web é a 80... e pra sacanear, a BRASILTELECOM e todas as operadoras BLOQUEIAM a porta 80 nas ADSL residenciais... Ton: isto força o sr ter q adiquirir um ADSL empresarial Vicente: o que aumenta é o custo, certo? Ton: e outro problema é q o ip muda sempre q o modem é reiniciado... Ton: sim... o custo do ADSL empresarial é normalmente o dobro Ton: mas pra tudo tem jeito Vicente: num tem aqueles programas que mantêm ip Ton: exatamente... Ton: isto resolve o problema do ip... Ton: mas não o da porta... mas este é só chamar com o dois pontos ":" e uma porta qualquer... e configurar o tomcat pra escutar esta outra porta Ton: os programas q mantem o ip atualizado usam uma tecnologia chamada "Dinamic DNS" isto é... o sr tem um dominio ex: glaudiston.dyndns.org e este dominio redireciona pra seu ip... e este redirecionamento é atualizado sempre q seu ip muda. Ton: pra resolver o problema da porta 80 o q podemos fazer eh o seguinte: Ton: entendendo q estamos configurado com um ip dinâmico "Dinamic DNS"... o usuário pode digitar no browser nosso dominio e vai ser redirecionado pra nosso computador ex: http://glaudiston.dyndns.org mas isto levaria ele para a porta 80 (porq é a porta padrão)... então é só configurar o tomcat pra escutar outra porta (sugiro 8080) q não é bloqueada pela brasiltelecom... e os clientes podem se conectar adicionando :PORTA ao dominio... exemplo: http://glaudiston.dyndns.org:8080 Ton: entendeu? Ton: desta forma o sr pode hospedar quantos sites quiser em casa, e receber algum din din com isto... Vicente pediu sua atenção! Vicente: entendi... Vicente: Gostei da aula, e gostei do fina da aula... Ton: porq já terminou? Vicente: VC tem mais tempo? Ton: o q for necessário Vicente: uai... aqui estou até 12:00 depois fecha... Vicente: estou a sua disposição, afinal, não é qualquer um que tem um sobrinho professor...hehe Ton: ok... então baseado nisto... o sr já sabe o funcionamento básico da web... qualquer tecnologia trabalha assim... as variações começão daki pra frente... partindo da linguagem... antes de chegar no servidor web Vicente: ok... Ton: então o sr tem o eclipse que é o editor de código fonte... ele edita e compila tudo sozinho... tambem tem ferramentas para a depuração do código. Ton: agora, ainda não temos tudo o q precisamos... nos falta o banco de dados. Vicente: beleza... Vicente: vamos garoto...yes_ Ton: umagine as camadas.... vc tem a base de dados como primeira camada, o aplicativo q acessa a base como segunda camada, o servidor web como terceira camada (pode ter um firewall por segurança como quarta camada) e o cliente final acessando pelo browser como ultima camada. Vicente: (tcc) estou pronto... vamos começar... Vicente: çç Ton: para esta ultima camada anda falta escolhermos nosso banco de dados... então temos q analisar as opções: Vicente: SIM... vamos lá... Ton: Oracle = Multiplataforma, leva a fama de ser o melhor do mundo... é muitíssimo caro, teriamos q piratear MSSQL Server - O Servidor tem q ser windows, um dos melhores bancos de dados do mundo... igual com o oracle... é muito caro, teriamos q piratear Postgres = Banco de dados totalmente open source( fontes abertos) desenvolvido para ter alta performance... e se equiparar aos grandes (oracle e sqlServer)... muito bom mesmo... e totalmente de graça... e funciona em qualquer plataforma MySQL = Como o Postgres só q bem mais fraco Vicente: Lógico, veio logo a solução... POSTGRES... Ton: :D Vicente: 8-| Ton: ainda não instalamos o postgres em sua máquina... vamos ter q fazer isto. Vicente: Feito prôs crentes...hehe Ton: estou pegando o link pra te mandar... o sr ainda está usando windows né? Vicente: preciso... Ton: este: http://wwwmaster.postgresql.org/redir?ftp%3A%2F%2Fftp2.br.postgresql.org%2Fpostgresql%2Fbinary%2Fv8.1.3%2Fwin32%2Fpostgresql-8.1.3-1.zip Ton: se não der na primeira tente denovo ... faça o download e instale Ton: está fazendo o download? Vicente: não tá parando na tela, para confirmar o download... Ton: então confirme Vicente: começou Ton: são 21 Mb Vicente: beleza... já foram... 6% Ton: isto é o banco de dados em sí... existem ferramentas que facilitam a vida pra desenvolver no banco de dados.. ele já vem com uma... se chama pgAdmin... é muito boa... Vicente: Bom, eu estou entendendo que até agora, estamos apenas criando a estrutura a nível de ferramentas, para podermos começar a aprender... é isso mesmo? Ton: isto Vicente: bom_ Ton: mas esta estrutura o sr tem q saber de cor... porq na empresa q quiser o banco de dados local o sr terá q fazer esta estrutura. Ton: baixou ? Vicente: 60 % Ton: quando terminar... o sr vai descompactar em algum diretório e instalar... não tente instalar de dentro do arquivo.zip q dá erro. Vicente: ok Vicente: 79 % Vicente: terminou Ton: o conteudo do arquivo é : postgresql-8.1.msi - Instalador do postgreSQL 8.1 ... execute este primeiro pra instalar o banco de dados postgresql-8.1-int.msi - arquivo necessário para atualizar para a versão 8.1.3 do postgre... não precisa executar este arquivo... README.TXT - apenas instruções de instalação em english... upgrade.bat - um bat pra atualizar do 8.1 para o 8.1.3 Vicente: configuração do serviço... Vicente: entra aqui... Ton: espere... estou removendo aki pra reinstalar e te acompanhar. Ton: nas opções de instalação o sr marcou tudo? Vicente: não... Vicente: só brasil Vicente: entendi.. Vicente: é´prá marcar Ton: depois de selecionar brasil, passa pra contrato... e depois opções de instalação Vicente: sim... Ton: achou? Vicente: sim Vicente: marca tudo Ton: clique no primeiro item ( PostgreSQL ) e selecione Todo o recurso será instalador no disco rígido Ton: e clique em próximo Vicente: ok Vicente: ok Vicente: configuração do serviço Ton: instalar como serviço permite q o postgre seja iniciado automaticamente com o windows Vicente: sim Ton: o nome do serviço pode deixar padrão Vicente: ok Vicente: conta Ton: a conta o postgres já deixou como o padrão dele... apenas digite a senha ... Vicente: Dominio: VICENTE Vicente: Próximo? Ton: sim Vicente: iniciar o agrupamento de banco de dados Ton: deixe padrão... altere apenas a senha para uma q o sr NÃO vá esquecer. Vicente: habilitar linguagens procedurais... Vicente: deixe a unica opcao marcada? Vicente: pl/pgsql Vicente pediu sua atenção! Ton: deixe padrão Vicente: :$... Vicente: Habilitar módulos contrib Ton: daki pra frente é só avançar Ton: não precisa mexer em mais nada Ton: instalou? Vicente: ok Vicente: já executei o elefantinho...hehe Ton: pgAdmin? Vicente: sim Vicente: tá certo? Ton: claro Vicente: hehe Vicente: então tá pronto... Vicente: bom o início é estudar então... html...é isso Ton: viu como é mais fácil q o sql server pra instlar? Vicente: muito mais fácil... Vicente: muito mais leve... também... pude perceber... estou gostando... Vicente: estou perguntando... porque meu tempo está acabando... Ton: vai se impressionar com bases gigantescas Ton: aqui temos bases de milhores de registros q ele faz consultas em menos de 50 milésimos segundos Ton: agora tem q entender como funciona o html... e o java... Vicente: bem, vamos entender... o apache e o postgres... é de graça... Ton: agora seu pc está pronto Ton: isto Vicente: tem como estudar o html, dentro do eclipse Ton: claro. Vicente: o eclipse tem um run, como no vb, para testar os fontes Ton: depois q instalamos o eclipse em seu computador descobri uma versão do eclipse q já vem otimizada pra web... tem editor html e tudo. Ton: mais ou menos... é um pouco diferente... mas tem as mesmas funcionalidades. Vicente: o java que vai me ensinar é na mão... Ton: semana q vem veremos isto... afinal o sr disse q agora vai ter q sair. Ton: sim... Ton: mas é muito gostoso. Vicente: não tem, como no vb? Ton: até tem... mas não é tão fácil quanto na mão... o sr vai entender. Vicente: o eclipse, não gera nada?/ Vicente: ok... Vicente: nesta semana, o que eu posso fazer para ir adiantando... Ton: calma... por hoje vamos encerrar... senão vai ficar assunto pela metade. Vicente: pelo menos um hora por dia.... Ton: estudar html. Vicente: ok.... então... Ton: bênção tio.] Vicente: tem algum tutorial... realmente para iniciante... Vicente: pera´aí.,., Ton: opa... facil facil Ton: http://www.htmlstaff.org/iniciantes/webmaster.zip Ton: tutorial para iniciantes em webmaster Ton: http://www.apostilando.com/sessao.php?cod=5 Ton: acho q este ultimo resolve :D Vicente: ok... Ton: ainda está aí? Vicente: sim... Ton: só queria resaltar q toda a tecnologia e programas q estamos usando é totalmente gratuita... sem necessidade nenhuma de pirataria... e o melhor multiplataforma... Vicente: isso é muito bom filho... Vicente: estou verificando a última... Vicente: ultima apostila.... muito boa.. estudarei essa semana... Vicente: muito obrigado por tudo, e Deus o abençoe vc e a Lela... Ton: ok... quando estiver com dúvidas pode chamar. Vicente: um ótimo final de semana... Ton: pro sr tbm. Vicente: tudo que está fazendo por mim.... Vicente: quero que o Senhor Jesus te recompense... em Nome de Jesus... Espero q isto seja util Abs, Ton February 28 Agora sou desenvolvedor totalmente Open SourcePois é... depois de anos trabalhando com clipper, visual basic, vb.net, c#, asp.net ... etc... consegui um emprego de gerencia de desenvolvimento de sistemas que não usa tecnologia microsoft... no caso java, e sabe que gostei disto? Gostei tanto que resolvi pesquisar e me aprofundar nisto e acho difícil voltar para tecnologias microsoft. Não só por causa do java... agora estou usando o kurumin debian linux aqui no meu pc, funciona muito melhor que o windows xp... claro que é complicado por ser um usuário um pouco inesperiente... mas está muito mais rápido que o ms win xp... e o melhor ... tudo o que posso vir a precisar está aqui e é totalmente grátis... não tenho que gastar fortunas com programas e/ou piratear outros por não conseguir comprar. Atualmente estou programando web com java e desktop usando o kdevelop3 uma ide poderosa e open source :D para desenvolver em C++. Em breve tirarei um tempo para postar o projeto que estou iniciando, aliás que estou planejando à muito tempo, e agora começo a me sentir preparado para iniciar. Abraços, Ton. November 28 Controle do register em vb6Navegando na net encontrei esta bela rotina... ------------------------- August 25 RPC em ASP.NET com exemplo(chat)Olá
amigos... Uma dúvida frequente que respondo o caso do RPC(Remote
Procedule Calls)... vou tentar explicar como funciona e dar um exemplo
prático para que vocês entendam
RPC
significa Remote Procedule Calls e serve para fazer chamadas ao
servidor e retornar apenas os dados que queremos. claro que eu poderia
dar uma explicação kilométrica, mas simplificando, é isto e nos resolve
o problema do postback.
PostBack é aquela atualização que ocorre em páginas da internet, no
nosso caso ASP.NET, que é "necessária" para buscar os dados do servidor
e é uma das maiores chatices da programação web, além de tirar o foco
do controle atual normalmente move a scrollbar para o topo da página e
algumas vezes até nos faz perder dados valiosos.
Tem
várias formas de resolver isto, você pode usar um programa como o java
para criar applets que consultam o servidor para retornar os dados,
pode usar o flash que também nos permite isto ou algum outro meio como
parar de programar em asp.net
iframe e uma tag de html e seve para abrir um espaço dentro de uma página html para que outra página seja aberta.
É
bem simples... teremos um iframe oculto(mas precisa ter alguns
parâmetros definidos como as bordas, caso contrário alguns browsers
podem ignorá-lo), quando digo oculto quero dizer que terá largura e
altura zerados...
e no momento que quisermos buscar os dados alteramos o src do iframe e isto fará com que o iframe carregue a página que passarmos, mas ao invés de uma página o que será carregado vai ser um script em javascript para atualizar a página que a chamou. para isto usaremos o document.parent.
para nosso exemplo usei o VWD2005 beta2 que pode ser encontrado gratuitamente em http://lab.msdn.com/express (pelo menos até hoje). mas vcs podem usar qualquer tipo de editor asp.net que o resultado será o mesmo. também estou usando visualbasic.net para nosso exemplo.
Imports Microsoft.VisualBasic
Public Module ModChat Public TextoChat As String End Module
<%@ Page Language="VB" ValidateRequest="false" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server"> ' Criado por Glaudiston Gomes da Silva ' demonstrando o potencial do RPC via iframe ' para maiores informações glaudiston@hotmail.com Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) If Not Request.Params("RPC_campo") Is Nothing Then ' Estamos sendo chamados via RPC... ' neste caso vamos retornar apenas o necessário ModChat.TextoChat &= Now.ToString + " - " + Request.UserHostAddress + " disse: " + Request.Params("RPC_campo") & "<BR/>" ' Soma o texto na variável do chat 'Agora basta retornar o valor para a tag no formulario q chamou(owner) Response.Write("<SCR" + "IPT>") ' crio o script separando a string pra enganar a IDE do VWD2005 Response.Write("window.parent.document.getElementById('" & div1.UniqueID & "').innerHTML='" & TextoChat.Replace("'", """") & "'") ' Atualizo o conteúdo do chat por esta instrução de script Response.Write("</SCR" + "IPT>") ' Fecho o script Response.End() ' Processa o RPC End If Button1.Attributes.Add("onclick", "document.getElementById('iframeRPC').src='Chat.aspx?RPC_campo='+document.getElementById('" & TextBox1.UniqueID & "').value") ' cria um iframe para processar o RPC Response.Write("<iframe id=""iframeRPC"" style=""BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; WIDTH: 0px; BORDER-BOTTOM: 0px; HEIGHT: 0px""></iframe>") ' Agora vamos vazer o script pra enviar uma mensagem automática a cada 5 segundos ' pra isto vamos criar um segundo iframe pra não ter perigo de interferir ' no outro processo ' cria um iframe para processar o RPC Response.Write("<iframe id=""iframeRPC1"" style=""BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; WIDTH: 0px; BORDER-BOTTOM: 0px; HEIGHT: 0px""></iframe>") Response.Write("<SCR" + "IPT>") Response.Write("function AutoTimer()") Response.Write("{") Response.Write(" document.getElementById('iframeRPC').src='Chat.aspx?RPC_campo=Auto-Mensagem chamada por: " & Request.UserHostAddress & "';") Response.Write(" setTimeout('AutoTimer()',5000)") Response.Write("}") Response.Write("setTimeout('AutoTimer()',5000)") Response.Write("</SCR" + "IPT>") End Sub Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) ModChat.TextoChat = "" End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <table height="100%" width="100%" style="overflow: scroll"> <tr> <td height="90%"> <DIV ID="div1" runat="server" style="overflow: scroll; position: static; height: 500px" > Text="Digite seu texto e clique em enviar." </DIV> </td> </tr> <tr> <td style="height: 2px"> <asp:TextBox ID="TextBox1" runat="server" Width="537px">Digite seu texto aki</asp:TextBox> <input type=button ID="Button1" runat="server" value="Enviar" /> <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Reseta texto do chat" /></td> </tr> </table> </form> </body> </html> FIM DO CODIGO É eu sei... não é um chat completo... mas minha esposa está me chamando, e eu tenho que atendê-la afinal já é de madrugada... e eu não preciso desta rotina rodando 100%... Espero ter ajudado Precisando não se acanhem: glaudiston@hotmail.com Abraços pessoal. April 29 Agora sou Desenvolvedor 3 EstrelasPronto, passei em todas as provas do desenvolvedor 5 estrelas que estavam disponiveis online, agora sou 3 estrelas... e pensar q descobri isto somente a 4 dias atraz... quanto tempo eu perdi... mas deixa queto, agora e buscar as 2 que ainda faltam. Agora é que complica, até então é de graça e online, agora terei que sair daqui de jataí para ir lá em brasilia buscar a 4ª estrela e até goiânia buscar a 5ª estrela, o problema nem são as provas, sei que se estudar tiro de letra, mas o din-din q é bom nada! Ainda naum sei quanto custa, mas sei q naum é barato, pode dar uma olhada no ranking da msdn tem 209 com a 4ª estrela e 290 com a 5ª estrela, lógico, a maior parte dos que pagam a quarta estrela tem condição e conhecimento de pagar a 5ª tbm. Quando eu tiver mais informações eu postarei aqui. Abraços, Ton April 27 Tô me graduando...Isso aí... ontem mesmo começei a fazer as provas do desenvolvedor 5 estrelas da msdn... afinal as 3 primeiras estrelas são de graça... infelismente as outras 2 naum.... andei fazendo umas provas e já passei em quase todas as provas para a 1ª estrela, por enquanto está relativamente fácil, afinal existe treinamento em aprensentação/audio para o conteudo das provas... são 10 provas para a primeira estrela, já teria concluido todas, mas minha internet tah travando muito e estou ficando sem conexão demais... to vendo q vou ter q trocar de provedor... a jatainet tah horrivel mesmo!!!... Mas eu consigo... já foi liberada as provas de vb.net e c# para a 2ª estrela...provavelmente amanhã consiga minha primeira estrela completa... quanto a 2ª tem mais material pra estudar... acredito que não tenha maiores problemas com ela também, mas é melhor dar uma passada na matéria... nunca gostei de escola por que eles sempre nos forçam a aprender algo q nunca usaremos ou algo q não sabemos pra q serve ou ateh mesmo algo q naum queremos aprender, mas quando vc busca o conhecimento, vc quer e isso faz a diferença... naum porque a escola acha q eh melhor pra vc , mas porq vc quer isso, e eu quero isto. Estou no rastro de minhas estrelas, vou pegar todas 5.... observem.
Abraços, Ton |
|
|