Mensagens enviadas por: Eliezer Reis
Índice dos Fóruns » Perfil de Eliezer Reis » Mensagens enviadas por Eliezer Reis
Autor Mensagem
saim wrote:Só me digam se estou no caminho certo. Ainda vou tentar consertar o código sozinho, pra chegar no valor certo.


Ainda não, o caminho está errado. Não pode usar while, for ou outro laço de repetição.
Então, como diz no enunciado, a regra é não usar laço de repetição. O for que você usou no método calculaFibonacci é um laço de repetição. Isso quer dizer que você usou a abordagem iterativa.O exercício propõem que você use a abordagem recursiva. A abordagem recursiva tende a ser mais rápida que a abordagem iterativa, porem, custa mais memória uma vez que precisa guardar o estado de cada chamada recursiva anterior, principalmente se a linguagem nao tem um esquema de, digamos, cache para isso. Geralmente, se você sabe que não será usado um numero muito grande de chamadas recursivas, preferia recursividade senão laços de repetição. Geralmente na abordagem recursiva longos calculos geram estouro de memória.

A resolução do seu exercicio é bem a formulá que esta no link http://pt.wikipedia.org/wiki/Número_de_Fibonacci#Abordagem_recursiva

Na formula do link, quando houver o retorno de
if(n <2)
return n;

será desencadeado todas as somas pendentes das chamadas anteriores.


Esse outro link tem uma imagem que define como o um método é chamado na recursividade. http://pt.wikipedia.org/wiki/Recursividade_(ciência_da_computação)#Ordem_de_chamada_de_fun.C3.A7.C3.B5es

Melhorou ou piorou?
Depois de muitos testes, lendo as requisições http cheguei a uma conclusão que é uma limitação de browser. Infelizmente não tem como enviar mais que 2GB usando a maneira convencional em sistemas operacionais 32bits. Alguns browsers que rodam em plataforma 64bits conseguem enviar até no máximo 4GB. De uma olhada no link http://www.motobit.com/help/ScptUtl/pa98.htm , os resultados obtidos nesse link foram bem parecidos com os meus. Testei em algumas maquinas virtuais com plataformas , sistemas operacionais e linguagens diferentes, todos apresentam o mesmo problema.

No meu caso farei igual ao youtube. Se o usuario quiser enviar mais que 2GB ele precisa baixar o aplicativo AIR para a maquina local. Assim, consigo usar opções mais avançadas fora do sandbox para quebrar o arquivo, envia-lo em varias requisições menores. Dai, no servidor eu monto o arquivo original. Nos testes iniciais ficou perfeito.

É isso ai galera, se alguem tiver algo a acrescentar seria de grande valia.

Até.
No caso do upload não uso AMF porque ele não da suporte a envio de arquivos em multiplas partes. No caso do AMF teria que ler todos os bytes e enviar de uma vez. Desse jeito não daria mesmo, estouro de memória na certa. Para você ver eu ja consigo enviar ate 2GB muito acima dos 258MB do AMF.

Dai estou fazendo uma requisição normal do mvc spring. Basicamente uma requisição post de um servlet normal. Dai eu uso FileUpload da apache para ler esses fragmentos que vão chegando pelo request.


evefuji wrote:...você pode mapear até 2^32 bytes, que resulta em 4GB.

Segundo informações metade desse valor 2^32 são números negativos. Dai resulta em 2gbs.


No caso do php mesmo setando UPLOAD_MAX_FILESIZE e POST_MAX_SIZE não funcionou. Ainda sim, quando rodo no php <% echo ini_get("upload_max_filesize"); %> exibiu um valor bem acima do que eu estou enviando. Agora, como eu poderia configurar isso no meu jboss ou no tomcat para poder usar meu servidor java?

Configurei tambem o MaxLenght na tag input e nada. Não possuo proxy e desativei todos os firewalls.

Engraçado que mesmo a aplicação adobe air, que roda fora do browser, apresentou o mesmo problema, porem ela faz esse envio usando o protocolo http. Então, passo a crer que seja alguma limitação no HTTP.
Dai o que fiz, leio o arquivo, quebro ele em pedaços menores e envio. Funcionou porem não possuo os recursos para fazer isso no flex, somente no adobe air porque ele roda fora do sandbox.

Que merda cara, isso vai inviabilizar muita coisa na minha aplicação.

Mais alguma dica?

Obrigado!
Tenho o Log4J sim, porém não chega nada no meu servlet para exibir qualquer coisa. Fiz alguns testes, veja que estranho.
Achando que fosse algum problema no flex fiz um form html normal com enctype="multipart/form-data" e o mesmo erro acontece. No caso do html ele até tenta enviar, mas passa algum tempo aparece uma pagina dizendo:

Firefox: Falha de carregamento da pagina.
IE: Problema de conetividade
Chrome: Return code : 1

Porem, se o arquivo for menor que 2gb funciona legal.

Achando que o problema fosse do java , fiz um upload de arquivo usando php e html. Mesmo problema.

Testei no jboss4, jboss5. tomcat e apache (no caso do php). Pesquisei por esse tipo de configuração que você falou mas nao consegui achar nada de concreto. Como posso determinar esse maxfilesize? Na sua experiencia você tentou upload de arquivos maiores que 2gbs?

Pelo que pesquisei sistemas 32bits so consegue no maximo 2*31-1 bit (justamente os aproximados 2gbs). Agora não sei onde o sistema ser 32bits influencia no browser, talvez seja alguma variavel definidade com um tipo erradamente. Alguem sabe mais sobre esse assunto?

Obrigado.

Obrigado.
Olá,

Tenho uma aplicação flex/java que permite o upload de arquivos para o servidor. O problema é que esses arquivos podem ser grandes, acima de 2gbs. Quando envio arquivos maiores que 2gbs um erro ocorre, porem arquivos menores que isso funcionam corretamente. Sabe me dizer se tem alguma limitação no http 1.1, no brownser ou no servidor (jboss ou tomcat) relativo a isso? Tem como corrigir?

Obrigado!
Estou usando spring para gerenciar as transações com o hibernate. Porém, quando executo uma operação que cause algum erro na transação, o rollback é realizado e a transação é eliminada, porém gostaria de saber se é possível criar outra transação para tentar corrigir o problema. Veja a situação abaixo.


Caracas ViniGodoy, muito bom mesmo. Muito obrigado pelas dicas. Começei a esboçar uma grade horária dessas de escola para fazer uns testes. Logo, eu vou postar mais alguma dúvida aqui!

Vlw.
Olá, desculpa ai pela demora na respota mas é que esses dias estive avaliando e fazendo alguns testes básicos em GA.

ViniGodoy wrote:De onde surgiu esse problema? Por acaso é de alguma disciplina de IA? Ou do seu trabalho mesmo?

Foi uma necessidade que surgiu em um software que estamos fazendo, coisa do trabalho.


Estive avaliando algumas possibilidades e GA é a solução que resolve esse problema. Porém, esse é um assunto para teses de mestrado e não vai ser fácil. Apresentei as dificuldades para os supervisores e então resolvemos diminuir para umas 3 variaveis logo, alguns ifs resolveram o problema. Acho que a única que deu para entender foi como gerar a população inicial por sorteio aleatório Dai, todas as variáveis serão incluídas em uma proxima iteração.

Eu li uns 3 ou 4 teses de mestrado a respeito de GA. A lógica é show, problema é que nem tenho noção com implementar todas as etapas que visão os GA. Pior ainda que tudo que encontro sobre o assunto são exemplos banais com uma ou duas variáveis, que da até para resolver com ifs, ou somente teorias de mestrados/doutourados mas nenhum implementação aplicável à realidade, ao mercado de trabalho.

Vinny você tem algum exemplo mais realista usando GA?


Desde já agradeço a todos.


Uhm. Na verdade existem margens de erros para a geração dessa playlist então acredito que se torna possível a geração dessa playlist.
Existe alguma alternativa a algoritmos geneticos?

Você tem um exemplo com muitas variaveis usando java em um exemplo real?

Vlw.
Venho quebrando a cabeça a alguns dias para fazer um algoritmo que tem varias condições em cascata e dependendo do resultado de uma condição, poderá modificar o resultado da condição passada. Alguem tem alguma ideia para o problema abaixo?

Possuo uma lista com 10mil objetos musica. Esses objeto tem as seguintes propriedades básicas:

- nome:String
- duracao:long; //milesegundos da duração
- nacional:Boolean (indica se é nacional ou internacional)
- artista:Artista
- genero:Genero

O que tenho que fazer é fazer uma seleção de musicas para preencher 1 hora onde 70% seja nacional e 30% seja internacional. Porem um artista so pode se repetir a cada 30 minutos e uma musica a cada 60 minutos e ainda tem de ser observado uma lista de generos possíveis. Exemplo; Jazz = 30% da lista, Rock = 40% da lista, 30% dos demais generos.

Caramba, eu começo a fazer a organização de 70% e 30% de nacional e internacionais, dai os artistas começão a se repetir. Ai eu tiro os artistas repetidos mas os percentuais não se chocam mais. Pior que depois ainda tem de observar os generos. Fica um completo angu-de-caroço.

Qual a melhor maneira para se fazer esses testes condicioanis consecutivos? Existe alguma tecnica avançada para isso?

Obrigado, Eliezer
Ola,

Renzo, obrigado pela dica do URLStream. Vou fazer uns testes para ver se resolve meu problema.

Enquanto ao Flash Media Server(FMS) esse não é possível de usar porque sua versão completa custa 5mil reais. Muito mais da metade do valor que pretendemos vender o software. Existe o Red5 que é uma alternativa open-source para o FMS porém, ate onde eu sei, ele possui um Tomcat embutido e minha aplicação obrigatoriametne teria de rodar dentro desse Tomcat. Acontece que minha aplicação esta rodando em um ambiente jboss logo, fica complicado.

Att, Eliezer
Ola,

Eu tenho um arquivo mp3 em algum lugar no meu servidor. Como posso pegar esse aquivo de audio e envia-lo para o cliente flex para que ele possa ser tocado?

Estive olhando esses servers de stream porem náo poderei usa-los no meu projeto. Como posso, na unha, enviar o stream do meu arquivo de audio do java para o flex?

Desde já, obrigado.
Sei que é antigo esse topico mas eu estou com o mesmo problema. Descobriu como resolver?
 
Índice dos Fóruns » Perfil de Eliezer Reis » Mensagens enviadas por Eliezer Reis
Ir para:   
Powered by JForum 2.1.8 © JForum Team