Arquivo para a Atividades profissionais categoria

Meu novo emprego em São Paulo

Postado em Atividades profissionais em 27 de Julho de 2009 por irmaodamara

Depois de meses procurando um emprego, enviando currículos e até participando de entrevistas, finalmente consegui um emprego como programador Java.

Logo no início desse mês, fui chamado para fazer umas provas a fim de averiguar se eu possuía o conhecimento teórico necessário para preencher a vaga. Fiz a prova em questão no dia 6.

Posteriormente, me chamaram para a segunda fase do processo de seleção, onde fiz uma entrevista de emprego e um teste prático. A entrevista e e este teste foram feitos no dia 10 de julho.

No dia 13, recebi um e-mail me convocando para ir no dia seguinte na empresa a fim de fazer a entrevista final de contratação. A essa altura, eu já estava com quase certeza que eu iria ser contratado. Em tal entrevista, me foram feitas algumas perguntas adicionais, me falaram como seria o cargo na empresa, as condições de trabalho e mais algumas outras coisas. Eu aceitei tais condições e fui informado que eu havia sido contratado para a vaga. Comecei a trabalhar no dia seguinte.

Nos três primeiros dias de trabalho, tive que ir e voltar de São Paulo, foi bastante corrido pelo fato de acordar de madrugada e voltar só de noite, pois o ônibus demora muito, principalmente o ônibus da volta.

Mas a partir dessa última semana, passei a ficar hospedado na casa da Tia Carmen, apesar dela morar um pouco longe do serviço (tenho que pegar ônibus e Metrô, inclusive com baldeação na estação Sé) e de não haver acesso à Internet na casa dela. Mas agora está sendo melhor do que subir e descer todo o dia, inclusive mais barato do que se eu tivesse contratado o ônibus fretado (que vai ficar mais caro do que já tá graças ao prefeito burro daquela cidade).

Nos fins de semana (ou melhor, ao término do expediente das sextas-feiras), eu retorno a Praia Grande para passar o fim de semana. Então, retorno a São Paulo na segunda-feira de manhã, já descansado.

Mas infelizmente, esta semana, acabei pegando uma gripe e passei este fim de semana meio mal, mas já estou recuperado para voltar ao trabalho. Por falar nisso, está havendo uma epidemia de gripe na capital paulista, pelo que vi no telejornal (também, né, com um monte de gente tossindo e espirrando nas estações do Metrô sem pôr a mão na boca e com todo aquele aperto principalmente na estação Sé, ainda mais com este clima frio, não tem como não pegar gripe).

Vou encerrando este post por aqui, ainda mais que eu já escrevi o que eu tinha que escrever e eu já deveria estar dormindo para amanhã eu acordar cedo para ir a São Paulo trabalhar. Até o próximo post (sabe-se lá quando será postado).

Observação: a Tia Carmen em questão é a mesma na qual eu sonhei no dia 30 de Março de 2004, sonho este postado no meu outro blog (o que eu escrevo meus sonhos) no dia 10 de Abril do mesmo ano, ainda no antigo endereço no Blig (ainda antes do blog ser transferido para o UOL Blog), na época que meus relatos de sonhos eram pequenos. Quem quiser conferir o sonho em questão, pode acessá-lo em http://sonhosdoallan.blig.ig.com.br/2004/04/ola-internautas-hoje-eu-irei.html

Robowebert Player, tocador de áudio em Java

Postado em Atividades profissionais, Lazer em 3 de Julho de 2009 por irmaodamara

Tenho desenvolvido nesses últimos meses (desde Fevereiro, para ser mais exato) um player de áudio escrito em Java no qual eu batizei de Robowebert Player. Ele reproduz áudio nos formatos MP3, OGG, Speex, FLAC e Monkey’s Audio, além dos formatos padrão do Java (AIFF, WAV e alguns outros). Suporta a leitura e salvamento de quatro formatos de playlists: M3U, PLS, XSPF e um formato próprio que estou desenvolvendo, chamado de RWPF. Além disso, possui um analizador de espectro, que é aquele monte de barrinhas que ficam subindo e descendo enquanto a música toca, além de controle de volume e de balanço, repetição de músicas, visualização dos metadados das músicas e uma barra de progresso meio capenga.

Tudo começou quando eu pesquisei pela Internet como fazer para tocar sons com Java. Encontrei um pequeno tutorial de como tocar arquivos MP3 usando a biblioteca JLayer, disponibilizada no site JavaZOOM.net e desenvolvi um minúsculo player que tocava apenas MP3 e que em sua interface possuía apenas três botões, um para selecionar a música, um para tocar a música e o último para parar de tocar a música. O player e mais a tela gráfica tinham cerca de umas cem linhas de código (ou nem isso). Com certeza, deve ser o menor player de MP3 da história.

Aí eu tive a idéia de desenvolver um player maior, que tocasse outros formatos de áudio além do MP3. Pensei em criar um subsistema para cada formato que o player fosse suportar. Entretanto, percebi o quanto isso iria ser difícil, pois a API da biblioteca JOrbis (biblioteca de suporte ao formato OGG) é completamente diferente da API do JLayer, além de mais complexa e de mais baixo nível.

Então, acessando o site do JavaZOOM acima citado, vi que os próprios desenvolvedores do JLayer desenvolveram um player em Java chamado JLGui, que suportava MP3, OGG e outros formatos de áudio. Era basicamente um clone do WinAmp e suportava os skins feitos para este. Resolvi testá-lo e não gostei muito de sua confusa interface, que além de confusa, a metade desta insistia em ficar na frente de todas as outras janelas. Para complicar, o player em si tinha uns bugs idiotas.

O JLGui é licenciado sob a LGPL, uma licença livre que me permite modificar o software de acordo com minhas necessidades. Entretanto, o código-fonte desse player é extremamente confuso, macarrônico e de extrema dificuldade de manutenção, além de ter sua camada de apresentação (o código responsável pela tela gráfica) colada na camada de negócios (o código responsável pela regra de negócios). Ou pior: todas as partes do player são coladas em várias outras partes.

Só para se ter uma idéia, se eu quisesse adicionar o suporte ao formato de playlist XSPF a este player, eu teria que fazer toda uma reengenharia no programa inteiro, praticamente.

A única parte que não era colada a nenhuma outra era o motor de execução de áudio, que foi concebido para ser aproveitado em outros softwares que desejassem tocar áudio com uma API de alto nível. Tal motor de execução era mantido em uma biblioteca separada chamada BasicPlayer.

O BasicPlayer utiliza uma API comum para todos os formatos de áudio baseada na API Java Sound, que usa Service Providers (bibliotecas especiais) que proveem o suporte aos formatos de áudio sem alterar o código-fonte que reproduz a música. Nas minhas pesquisas iniciais, eu já havia visto algo sobre a API Java Sound, entretanto, vi que ela era bastante confusa e de baixo nível. Já o BasicPlayer era de alto nível.

O que resolvi fazer? Criar um player que utilizasse o BasicPlayer como motor de execução de áudio. Aproveitei a interface simplória do minúsculo player que eu havia feito e a adaptei no BasicPlayer. A partir daí, fui implementando outras funcionalidades basicas, como controle de volume e de balanço e o botão de pausar e continuar a reprodução do áudio.

Aí o player foi evoluindo: passou a trabalhar com uma playlist na memória e a salvar e carregar um formato próprio de playlists baseado em XML, ganhou também botões de voltar à música anterior, voltar ao começo da música atual e ir para a próxima música.

Resolvi implementar o suporte à visualização dos metadados dos arquivos de áudio. O priemiro lugar onde pesquisei como fazer isso foi no macarrônico código do JLGui. Essa parte do código do JLGui não estava tão macarrônica e ligada às demais partes do player como as outras (só um pouco), então eu resolvi pegar este código e adapá-lo ao meu próprio player, fazendo alterações diversas a fim de retirar completamente a dependência das outras partes do JLGui.

Já com o suporte aos metadados das músicas e mesmo com a interface estando muito tosca, disponibilizei o player (ainda sem nome naquela época) para alguns membros da comunidade Linux versus Windows do Orkut para ver o que eles achavam. Eles emitiram suas opiniões e o que eles gostariam de ver no player.

Apartir daí, continuei a adicionar outros recursos ao player e a mudar um pouco sua interface (que ainda está tosca, mas menos do que antes). O último recurso adicionado até o momento foi o analizador de espectro, provido pela biblioteca KJ DSS.

O código-fonte do meu player, ao contrário do código do JLGui, é bastante claro e simples. O suporte à playlist na memória, por exemplo, é implementado por uma classe que gerencia um simples ArrayList contendo os objetos File, que provém acesso aos arquivos de áudio no HD. Já o JLGui implementa a mesma coisa com algumas classes, uma delas responsável por cada música na playlist (e que contém parte do código para manipular playlists no formato M3U – e manipular mal), outra cheia de métodos e mais uma interface gigantesca, além de mais algum código macarrônico colado na interface gráfica e em mais não sei onde.

Pelo fato da camada de apresentação ser completamente desacoplada da camada de negócios, será possível escrever telas gráficas alternativas ao visual atual do meu player. Inclusive, estou planejando para o futuro uma interface totalmente diferente e inovadora além da que já existe, além de uma interface alternativa usando a SwingWT, implementação alternativa (e mais leve) da API Swing baseada na biblioteca SWT.

No link abaixo, uma screenshot de como está o visual do meu player atualmente:

http://img30.imageshack.us/img30/4513/rwplayer.png

Ainda falta a grande maioria dos recursos que desejo implementar no meu player, como biblioteca de mídia, playlists dinâmicas, execução aleatória de músicas contidas numa playlist, edição de metadados das músicas, internacionalização e uma penca de outras coisas. O player vai ficar o bicho.

Entretanto, irei disponibilizar uma segunda versão pública com apenas alguns desses recursos, quando eu achar que ele está bom o suficiente para ser usado pelo público geral, ainda que incompleto. Irei disponibilizá-lo no SourceForge.net, onde já mantenho hospedado outro software que desenvolvo, o CapeTrivia.

Meu Player será licenciado sob a GPL 3, ou melhor, o código que escrevi está sob esta licença. O subsistema de leitura de metadados está sob a LGPL 2.0 pois não posso alterar a licença dessa parte, já que não fui eu que escrevi. E as demais bibliotecas estão nas suas respectivas licenças, todas compatíveis com a GPL 3.

Por falar em licenças, eu acabei tendo umas dúvidas com relação à compatibilidade destas, ainda mais por causa da bibblioteca que provê o suporte ao formato de playlist XSPF (JSpiff) estar na licença Apache 2.0 e haver código LGPL 2.0 no player. Resolvi mandar um e-mail para o Richard Stallman, presidente da Free Software Foundation (ou melhor, dois e-mails, o outro foi depois da resposta que ele me mandou). A troca de e-mails com o Stallman merece um post à parte (no próximo deste blog, quem sabe), mas resumidamente, ele respondeu que as licenças são todas compatíveis entre si.

Escolhi o nome Robowebert Player a fim de homenagear um antigo personagem das minhas histórias infantis de quando eu era criança e que eu mesmo inventei, o Robowebert. Este era um robô gigantesco ao estilo do Megazord dos Power Rangers que possuía vários componentes integrados e recursos diversos e que tinha a finalidade de lutar contra inimigos gigantescos que ameaçavam a cidade de Pret-a. O Robowebert era controlado pela Darker Webert, uma mulher que combatia o crime naquela cidade fictícia e que vivia cheia da grana. Ela também merece um post à parte, pois teve uma importância histórica na minha infância.

Não há uma previsão de quando a próxima versão pública (e desta vez disponível ao público geral e não só a alguns membros da Linux versus Windows) será disponibilizada, mas espero ver o Robowebert Player na próxima versão estável do Debian, codinome Squeeze, a ser lançada provavelmente no ano que vem.

Finalmente consegui a certificação SCJP 6.0!

Postado em Atividades profissionais, História em 5 de Maio de 2009 por irmaodamara

Enfim, no último dia 15 de Abril, fiz a prova a fim de obter a certificação SCJP 6.0 e passei no exame, com um percentual de acertos de 81% (59 questões respondidas corretamente, das 72 questões da prova).

Meu resultado detalhado foi:

Declarações, Inicialização e Escopo: 91%

Controle de Fluxo: 81%

Conteúdo da API: 80%

Concorrência: 87%

Conceitos OO: 70%

Coleções / Genéricos: 80%

Fundamentos: 81%

Tudo começou há um ano atrás, quando o David Muinos, um dos principais desenvolvedores do Perola (uma ferramenta de persistência de dados), me deu a idéia de eu obter a SCJP. Então, eu procurei saber mais acerca dessa certificação e me informei numa página do site da Sun Microsystems o que era a ditacuja e o que caía na prova. Além disso, perguntei a um ex-colega de faculdade, o Roberto Tengan (que havia obtido a SCJP 5.0 há algum tempo atrás), como ele havia procedido a fim de obter a certificação e ele me respondeu por e-mail, com todos os detalhes.

No site da Sun, eu vi que já havia disponível uma nova versão da SCJP, a 6.0, e resolvi que esta seria a melhor escolha, pois era a versão mais atual, ainda que a prova só estava disponível no idioma inglês (ao contrário da versão 5.0, que estava disponível em português).

Na ância de fazer a prova o mais rápido possível, comprei logo o voucher (cupom que dá direito a fazer qualquer certificação de Java da Sun) por R$330,00 ligando no número 0800 55 78 63, daí a atendente dá as instruções de como proceder (basicamente, ela pergunta o e-mail e o resto é feito tudo por e-mail). Depois que chegou o boleto bancário, paguei-o e então me enviaram um e-mail com o número do voucher.

Eu pretendia fazer a prova em poucos meses, mas devido a meu estágio, esforços para conseguir um emprego e principalmente por causa dos meus estudos para esta certificação, a data da prova foi adiada por vários meses, até que o final do prazo se aproximou, faltando apenas dois meses para terminá-lo (depois do prazo, o voucher expira).

Então, eu decidi por marcar a data exata da prova para o dia 15 de Abril e intensifiquei ainda mais meus estudos, lendo a versão em inglês do famigerado livro da Kathy Sierra e do Bert Bates que eu peguei emprestado. Embora eu não fale inglês, eu consigo ler normalmente textos nesse idioma, inclusive entendendo o que está escrito.

Li o livro inteiro em cerca de três semanas. Era para eu ter terminado a leitura em menos tempo, mas aconteceram uns imprevistos que me desvirtuaram dos meus estudos, incluindo a confecção de um software que minha amiga Mara encomendou (que eu tive que parar o desenvolvimento no meio para poder prosseguir com meus estudos, mas depois da certificação eu consegui terminá-lo). Terminei de ler um dia antes da prova.

No dia seguinte, acordei cedo. Isso não significa que eu dormi o suficiente, uma vez que eu demorei muito a pegar no sono (isso sempre ocorre às vésperas de algo importante, como uma entrevista de emprego). Dormi apenas 3 horas.

A prova havia sido marcada para às 13:15, então eu vi que dava tempo de fazer mais um exame simulado (já havia feito dois, obtendo um bom íncice de acertos).

Mas aí minha mãe, que ia me levar de carro até a Tecnoponta (escola profissionalizante que aplica a prova aqui na Baixada Santista), em Santos, ficou me pressionando para eu ir logo, pois não sabia quanto tempo iria demorar para chegar ao local.

A metade das questões daquele simulado eu respondi de qualquer jeito e correndo, e eu acabei tirando uma nota ruim, errando questões fáceis. Tirei 60% de acertos, 5% abaixo do mínimo necessário para a aprovação. Fiquei um pouco preocupado e um pouco mais nervoso.

Engoli o almoço com medo de me atrasar, ainda mais que minha mãe me pressionava cada vez mais para ir mais rápido, pois segundo ela (que conhece o caminho até Santos e teoricamente sabia quanto tempo demorava a ida até aquela cidade), poderia não dar tempo de chegar no horário marcado. Eu e minha mãe saímos de carro às 10:20 e, antes do meio-dia, chegamos.

Entrei no prédio e subi até o sétimo andar, onde ficava a Tecnoponta, que estava em reforma, com uma sala de aula cheia de bugigangas e um pedreiro lixando e pintando o teto. Lá, me informaram que eu havia chegado cedo demais e que eu tinha que esperar até às 13:15. Minha mãe me apressou tanto para eu ter que esperar no espaço reservado aos alunos no intervalo das aulas (se bem que não tinha ninguém além de mim). Fiquei andando e tomando café expresso de uma máquina que tinha no local.

Chegando a hora marcada, procedi como havia sido informado no e-mail que recebi no dia que marquei a prova pela Internet, no site da Prometric (empresa que aplica a prova, sendo a Tecnoponta um local credenciado por esta), mostrando um documento com foto, no caso, meu RG.

Entretanto, a moça me informou que eu precisava também apresentar o CPF, ainda que não falava nada de CPF no e-mail que eu havia recebido. Naquela hora, fiquei bastante preocupado, uma vez que talvez eu não fizesse a prova por não ter apresentado o CPF. Já preparava meu discurso de que ia processar a Prometric e a Tecnoponta por não ter avisado sobre a necessidade de apresenta o CPF e pelo fato do RG ser suficiente para me identificar, quando me liberaram de apresentar o CPF, para meu alívio.

Então, a moça que havia me pedido o CPF (uma moça bonita, mas que estava com uma cara bastante séria, como se eu tivesse cometido um crime inafiançável) pediu para eu segui-la até o local da prova, que ficava em outro andar, em um “lugar secreto”, onde ficava umas salas de aula onde estava tendo aula de algum curso, com umas alunas muito bonitas, como deu para ver pela janela. Basicamente, o local do exame era outra sala de aula, só que um pouco menor.

Chegando lá, ela me falou como eu devia proceder, inclusive disse para eu não sair do local da prova sem o papel impresso com o resultado do exame e que, em caso de emergência, que era para usar um telefone que estava no canto e ligar para o ramal informado.

E então eu comecei a fazer o exame, que foi aplicada em um computador rodando o software da prova certificatória. No início, havia umas perguntas sobre se eu trabalhava para a Sun ou para a Prometric, se eu permitia que meus dados pessoais fossem usados não sei de que forma pela Sun com fins de não sei o quê, etc, perguntas que, segundo a prova, não contava no resultado do exame. Depois, havia um texto que explicava como interpretar as questões (por exemplo, não interpretar a numeração das linhas como parte do código). A partir desse texto, o cronômetro do tempo de prova começou a ser contado. Na minha opinião, deveriam contar a partir da primeira questão, e não a partir desse texto.

A prova poderia ser feita em, no máximo, três horas e meia, bastante tempo. Fiz a prova com calma (apesar de tudo o que aconteceu, inclusive momentos antes do exame), lendo as questões atenciosamente e só depois respondendo.

Eu esperava que a prova fosse mais difícil, mas no fim, a maioria das questões estava bem fácil, algumas com respostas óbvias, principalmente as de competar os espaços em branco. As questões com mais de uma resposta certa informavam o número de respostas certas que tinha que marcar (diferente das provas simuladas, que falavam para responder todas que se aplicam). E a única questão que eu marquei para revisão foi a questão 46, que era uma sobre qual o conteúdo da String após um monte de operações com StringBuilder.

Com 40 minutos sobrando, terminei a prova e confirmei as respostas (após rever a questão 46, gastando vários minutos nela). Daí, o software da prova certificatória tentou imprimir o resultado na impressora. E advinha o que aconteceu? A impressora deu pau!

Peguei o telefone de emergência e liguei para o ramal que estava escrito na folha de rascunho (que eu usei para calcular o resultado da questão 46 e mais a ordem de um array em outra questão sobre ordenação). Minutos depois, chegou aquela moça bonita que me pediu o CPF e eu expliquei o ocorrido. Ela tentou imprimir uma segunda via, mas a impressora continuou a se negar a funcionar.

Daí ela chamou o técnico que cuida dos equipamentos e, vários minutos depois, ele chegou e tentou descobrir o que havia acontecido. Instantes depois, ele descobriu o problema: a impressora estava desligada. Não só isso: o computador no qual a impressora estava conectada também estava desligado.

Depois de ligar os equipamentos, finalmente o resultado do exame foi impresso. E então, eu soube que eu havia sido aprovado (se bem que eu meio que já sabia durante a prova).

E moça falou para eu voltar ao sétimo andar para lá carimbarem o papel impresso. Entrei no elevador e acabei indo para o andar errado, pois havia me esquecido de apertar o botão 7. Fui parar no térreo. Mas depois eu subi de volta e carimbaram o resultado do exame.

Na volta para casa, minha mãe errou o caminho e o carro acabou preso num congestionamento no centro de São Vicente,, após andar em círculos. Mas depois de bastante tempo, finalmente conseguimos chegar em casa.

Durante o tempo que fiquei esperando, fazendo prova e esperando solucionarem o problema da impressora, minha mãe ficou no carro lendo livro e fazendo as unhas.

E essa foi a conturbada história da minha certificação SCJP 6.0 (história essa com final feliz). Futuramente, penso em fazer as certificações SCWCD, SCBCD, SCDJWS, SCEA e SCJD, não necessariamente nessa ordem, e ainda não escolhi qual eu vou fazer primeiro, mas muito provavelmente irei fazer a SCEA por último.

Por hoje é só! Até o próximo post, que provavelmente deve ser menor do que este!

Procurando um emprego como programador Java

Postado em Atividades profissionais em 15 de Fevereiro de 2009 por irmaodamara

Ultimamente, tenho procurado um emprego como programador Java na cidade de São Paulo. Diariamente, mando currículos para as vagas que vão aparecendo no site APInfo.com, um site de anúncios de vagas de emprego e de postagem de currículos para profissionais da área de informática.

Dentre as várioas empresas para onde mandei currículos, algumas fazem contato comigo (por e-mail e algumas poucas vezes por telefone), fazem algumas perguntas sobre pretensão salarial, disponibilidade de início e outras coisas. Até o momento, uma empresa já me chamou para fazer a entrevista, que ocorreu no último dia 5 de fevereiro.

Naquela ocasião, fiz uma prova de Java (com as primeiras questões fáceis, mas com as questões posteriores um pouco mais difíceis, que eu acho que eu devo ter me saído bem), uma redação com o tema “como eu sou” e a entrevista propriamente dita.

Fui para São Paulo pegando um carro que vai até o terminal Jabaquara, às 8:00. O carro demorou um pouco para ir, pois ficou pegando uns passageiros adicionais, mas depois foi e chegou à capital com antecedência, dando tempo mais do que o suficiente para enfrentar a longa fila para comprar os bilhetes do metrô. Cheguei às 9:20 mais ou menos. A entrevista estava marcada para as 11:00.

Depois de comprar os bilhetes de ida e de volta, que custam cada um o mesmo preço de um bilhete de ônibus municipal aqui em Praia Grande, R$2,40 (não por lá o metrô ser barato, mas por aqui o ônibus ser caro), peguei o metrô e andei duas estações, parando na estação São Judas.

No dia anterior, eu já havia dado uma olhada no mapa dessa parte da cidade através do Google Maps, então foi fácil andar da estação até o prédio onde fica situada a empresa de recrutamento que ia fazer a entrevista. Chegando lá, havia todo um esquema de mostrar o RG para liberar o acesso ao interior do prédio, algo bem sofisticado, com catraca eletrônica de cartão inclusive, semelhante aos sistemas para guardar veículos em alguns estacionamentos.

Subi o elevador e cheguei no local da entrevista. Cheguei um tanto adiantado. Me mandaram fazer uma prova com 16 questões aproximadamente. Após a prova, fiz a redação, numa folha de papel sulfite. Após a redação, finalmente fiz a entrevista. A entrevistadora me fez várias perguntas. Eu pensei que ela fosse fazer um determinado tipo de perguntas, mas acabou fazendo outras mais informais do que costuma-se fazer em entrevistas de emprego.

Terminada a entrevista, eram umas 13:00 e eu já estava morto de fome. Fui almoçar em um restaurante situado na mesma avenida de onde ficava o prédio onde eu fui. Era um restaurante de comida por quilo. Peguei 700 gramas de comida, mais ou menos. Comi um pouco de lasanha, feijão (que tinha mais bacon gorduroso do que feijão), uns bolinhos de queijo (eram tipo uns kibes), um pedaço de carne e alface, além de um suco de maracujá, que eu pedi posteriormente, para ajudar a empurrar o final do almoço que não queria ir.

Depois do almoço, aproveitei que havia uma loja da Kalunga e comprei 100 mídias DVD, pagando com o cartão de crédito. O preço era o mesmo da loja on-line da Kalunga, só que sem o frete. A moça do caixa era muito bonita. Aliás, eu vi muitas mulheres bonitas em São Paulo, principalmente nas estações do metrô (especialmente na fila para comprar os bilhetes) e no restaurante de comida por quilo.

Depois, eu voltei à estação São Judas, andei os dois pontos até a estação Jabaquara e daí peguei um outro carro que foi até Praia Grande, parando na porta de casa. Antes de entrar no carro, cheguei a ver uns aviões da Gol e da TAM voando bem próximo de onde eu estava. Deve haver um aeroporto por perto do terminal Jabaquara.

Na volta a Praia Grande, o carro que eu estava foi parado pela polícia rodoviária, mas depois que o motorista deu algum dinheiro para o guarda (o que eu suspeito ter acontecido, pelo que vi), o carro prosseguiu até seu destino. Cheguei em Praia Grande ainda de tarde, bastante cansado, ainda mais que eu não havia dormido direito na madrugada e ainda tive que acordar às 6:00.

Até o momento, não obtive resposta acerca do resultado da entrevista e dos testes que eu fiz. Por enquanto, ainda vou continuar mandando os currículos. Uma hora, eu farei uma entrevista e serei selecionado para ocupar uma vaga de emprego como programador Java. Isto se eu não trabalhar na empresa na qual já fiz a entrevista, pois ainda poderei ser chamado por aquela empresa.

Mudando de assunto, no último dia 12 de fevereiro, reinaugurei o blog dos Sonhos do Allan, agora aqui no WordPress. No antigo blog, agora há um aviso do novo endereço, que é http://sonhsodoallan.wordpress.com e neste novo blog, já fiz o meu primeiro relato de sonho, um onde eu fui atingido por uma lixeira. Vale a pena conferir.

Estudando para a certificação SCJP 6.0

Postado em Atividades profissionais em 24 de Outubro de 2008 por irmaodamara

Após a conclusão do meu estágio, passei a dedicar meus esforços para obter a certificação Sun Certified Java Programmer 6.0 a fim de me tornar um programador Java certificado. Estou estudando como nunca as APIs do Java, lendo o Javadoc do Java 1.6 (tudo em inglês, mas dá para ler numa boa quase que como se estivesse em português) e aprendendo o uso de classes e interfaces, com seus respectivos métodos, que antes eu não sabia, mas precisarei saber para fazer a prova certificatória (e estes novos conhecimentos me serão muito úteis quando eu precisar deles a fim de programar alguma determinada rotina que precise destas APIs).

A última parte que eu estudei até o momento foi o pacote java.util.concurrent e suas classes e interfaces, ainda não terminei de ver tudo, mas já deu para sacar como são usadas as APIs de concorrência do Java, além das coleções que suportam concorrência e seus respectivos usos.

Ainda falta uma boa quantidade de APIs a estudar, mas no ritmo que estou estudando, em poucas semanas eu terei visto tudo o que preciso saber. Estou me guiando no que preciso saber por esta página, que informa o que cai na prova certificatória:

http://www.sun.com/training/catalog/courses/CX-310-065.xml

Além de ler o Javadoc do Java 1.6, estou lendo também outros materiais disponíveis na Internet e o livro Java Como Programar Sexta Edição, que, embora aborde o Java 1.5, provê uma base sobre vários conhecimentos necessários à certificação (e o que ficar faltando, eu pego pela Internet, material de estudo é o que não falta).

Pretendo fazer a prova certificatória em Dezembro, no mais tardar em Janeiro. Até lá, terei não só aprendido o necessário para a certificação como também terei feito algumas provas simuladas disponíveis na Internet (os chamados “mocks”) a fim de avaliar se estou mesmo pronto para a prova. O prazo máximo para eu efetuar o teste é em maio de 2009.

Acessando o site da Prometric, empresa responsável pelas provas certificatórias do Java, vi que eu poderei fazer a prova em Santos. Há um lugar por lá que também aplica a prova (no caso, a Tecnoponta, um centro de formação profissional), então, não precisarei ir até São Paulo apenas para fazê-la.

Estou confiante que irei passar no teste e serei um programador Java certificado pela Sun. Até lá, continuarei estudando a fundo nas APIs do Java.

Concluí meu estágio!

Postado em Atividades profissionais em 2 de Outubro de 2008 por irmaodamara

Ontem, concluí o desenvolvimento do sistema que eu estava desenvolvendo no estágio que, como eu já informei aqui, é um sistema web que tem por finalidade registrar as reservas de equipamentos (notebooks, projetores, retroprojetores, etc) e de salas (laboratórios de informática, salas de aula, auditório) para os professores ministrarem suas aulas. Falta apenas eu apresentar o sistema já pronto na reunião do Centro de Informática e instalá-lo no servidor da Intranet da FATEC (e instalar também o Tomcat e o JDK 1.6, caso não estejam instalados), de onde será acessado pelo navegador web. Após o dia de hoje, meu estágio estará concluído, uma vez que já cumpri as 400 horas mínimas já faz algum tempo e meu estágio estava dependendo apenas da conclusão do sistema para terminar.

Este sistema, posteriormente, será disponibilizado como software livre pela GNU General Public License versão 2 no Sourceforge.net para que outras faculdades (ou quaisquer instrituições onde se reservam equipamentos e salas) também possam utilizar o sistema. Antes disso, farei algumas pequenas modificações neste a fim de possibilitar seu uso por estas outras instituições, como a possibilidade de alterar o nome exibido na assinatura dos e-mails, que, por enquanto, está como “Centro de Informática – FATEC Praia Grande”, uma outra faculdade que onde este sistema seria implantado poderia incluir seu nome ao invés do da FATEC. Talvez eu faça outras alterações a fim de melhorar suas funcionalidades e talvez eu até lance versões posteriores, com mais recursos.

A partir da semana que vem, iniciarei meus estudos para obter a certificação Sun Certified Java Programmer 6.0, talvez eu faça a prova ainda esse ano, caso contrário, no começo do próximo ano eu farei.

Até o próximo post e espero que o pessoal do Centro de Informática goste do sistema que eu fiz…

Últimos dias do meu estágio

Postado em Atividades profissionais em 26 de Agosto de 2008 por irmaodamara

Meu estágio, finalmente, está em sua reta final, faltam apenas cinco dias úteis para eu concluí-lo, o sistema que estou desenvolvendo nele está quase pronto, falta basicamente o sistema de envio de e-mails aos usuários em determinados eventos, o sistema de logs para anotar o que os usuários administrativos fazem e a persistência dos dados, onde será usada a ferramenta de armazenamento em memória Perola, ferramenta essa de fácil utilização, bastando apenas seguir alguns passos básicos. Além dessas três coisas, falta também alguns ajustes, como o tema visual do sistema, correções de problemas e insersão de partes que estão faltando.

Creio que dê tempo de eu terminar tudo até a segunda que vem, mas, caso não dê tempo, eu poderei prorrogar meu estágio por mais alguns dias, entretanto, isto significará custos, não para a faculdade, mas para mim, já que o estágio é voluntário e sou eu quem pago a condução e o almoço, um custo de R$ 7,65 por dia. Ou seja, eu pago para estagiar (ainda que a faculdade seja pública) e se a conclusão do sistema atrasar, quem perderá vai ser meu bolso que custeará o atraso.

Mas tenho fé que o sistema irá ficar pronto a tempo e funcionando bem. A parte principal já funciona bem e foi declarada estável, falta só funcionalidades “periféricas”, não tão importantes num contexto geral.

Desde semana passada, eu estava pretendendo postar sobre uma pegadinha que acabou sendo feita no Centro de Informática da FATEC, a “pegadinha das BSODs”, acabou sendo muito engraçado o que aconteceu quando um dos principais PCs daquele recinto passou a ter comportamentos assustadores. Tal pegadinha será relatada provavelmente no próximo post, pois por agora meu tempo está demasiadamente curto.

Até a proxima blogada, espero que na semana que vem ou um pouco depois!

Sistema de reserva de equipamentos que estou desenvolvendo

Postado em Atividades profissionais em 9 de Julho de 2008 por irmaodamara

Olá, pessoal! Como eu já disse neste blog, estou estagiando na FATEC de Praia Grande, desenvolvendo um sistema web para registrar as reservas de equipamentos e salas da faculdade. Essa já é a terceira semana de estágio e eu já implementei quase que a primeira parte completa. Na fase de análise do software, ele foi dividido em mais de vinte casos de uso.

O primeiro caso de uso, que é o de agendar eventos (reservas), está quase que completamente implementado e ele está demandando bastante tempo para ser feito, pois é o mais complexo. Inclusive, essa parte do sistema está sendo mais complexa do que eu imaginava, principalmente porque o sistema prevê a recorrência de eventos, ou seja, o evento (uma aula cujo professor precisará de um notebook e de um projetor para exibir a matéria, por exemplo) pode acontecer várias vezes por um certo período de tempo (todas as quartas, uma vez por mês, todas as segundas e quintas, uma vez a cada três semanas na quinta e na sexta, a cada dois meses, todas as terceiras quartas-feiras do mês e outros períodos), e esse período de tempo pode durar até uma data pré-estabelecida, um certo número de recorrências ou até mesmo pode não terminar nunca, recorrenco até o evento ser excluído do sistema. Sem contar que o sistema não pode deixar um equipamento (um notebook, por exemplo) ser reservado para dois eventos que ocorrem simultaneamente. Em outras palavras, ao agendar o evento, o sistema tem que verificar em todos os eventos cadastrados se algum deles, em algum dia, no horário marcado e na duração marcada, têm reservado previamente a mesma sala ou algum dos até três equipamentos que podem ser reservados para um mesmo evento (e a situação se complica quando a recorrência de um evento não tem data de término prevista).

A boa notícia é que essa parte complexa já foi implementada e o que falta para concluir o primeiro caso de uso seria terminar as páginas JSP e terminar de implementar o fluxo alternativo do caso de uso (por exemplo, o que acontece se o evento a ser registrado usa o mesmo equipamento que um outro evento já registrado, num mesmo dia e horário e como o sistema deve proceder).

E o segundo caso de uso é até parecido com o primeiro, o segundo caso é o de solicitar agendamentos de evento, ou seja, quando um professor acessa o sistema pede que um evento seja agendado. A página JSP e o código necessário para o caso de uso funcionar é tão parecido com o do primeiro caso de uso que provavelmente eu até reaproveite o código existente, fazendo algumas alterações necessárias. E os demais casos de uso acredito que serão bem mais fáceis de implementar.

A respeito do banco de dados a ser utilizado, eu pretendia usar o MS SQL Server, que já é usado no servidor do Centro de Informática, mas o sistema está ficando tão orientado a objetos (até a recorrência é representada por uma classe, ou melhor, algumas classes que extendem a classe abstrata de recorrência, cada uma implementando um tipo de recorrência) que provavelmente não irá compensar o uso de banco de dados relacional e nem mesmo o uso de frameworks ORM como o Hibernate, que não dispensa o mapeamento das classes para tabelas. Muito provavelmente, irei usar alguma solução de armazenamento de dados orientada a objetos, talvez o Db4o, o Prevayler ou o Perola (esse último tem maior chance de ser usado).

O desenvolvimento do sistema tem também enfrentado algumas dificuldades não somente de implementação, mas também por outros inconvenientes técnicos, como a lentidão do notebook que uso no estágio (tem três SGBDs instalados: MySQL 5.0, MS SQL Server Express 2005 e Oracle Express 10, eu tenho que ficar matando alguns processos antes de abrir o Eclipse 3.4 com todos os plugins para desenvolvimento web, que é o Eclipse mais pesado de todos, isto sem contar o fato do notebook ter apenas 512 MB de memória) e os diversos vírus que aparecem e que contribuem com a lentidão do notebook velho (lembrando que o notebook está com o Windows XP instalado). Ontem, escaneei o HD do notebook com o Symantec AntiVirus Corporate Edition (outro troço pesado rodando na máquina) e este pegou mais de 40 arquivos mal-intencionados, a maioria sendo o vírus W32.Gammima.AG e trojans. E depois que eu escaneei, apareceram mais vírus! Só não formato o notebook e ponho Linux porque o notebook não é meu, é da FATEC!

Por hoje, é só! Dentro de alguns dias, estarei postando novamente, com probabilidade alta de eu escrever novamente sobre o meu estágio! Tchau e até o próximo post (embora eu tenha usado o método GET no servlet que implementei para fazer funcionar o Ajax do JSP que pega os nomes dos professores dinamicamente)!

Meu estágio na FATEC

Postado em Atividades profissionais em 23 de Junho de 2008 por irmaodamara

Olá, internautas! Desde a última sexta-feira, eu estou estagiando na FATEC de Praia Grande a fim de cumprir as 400 horas de estágo requeridas. O estágio é a única coisa que falta para eu concluir o curso superior em Tecnologia em Informática com Ênfase em Gestão de Negócios. Não é um estágio remunerado, pois nesses últimos meses, não consegui nenhum, pois as vagas anunciadas por aí pediam conhecimentos demais e exploram o estagiário, entretanto, a faculdade concedeu-me este.

Na primeira reunião do Centro de Informática que eu participei, viu-se que havia a necessidade de se desenvolver um novo sistema de reserva de equipamentos e salas da faculdade, pois o antigo estava capenga, com algumas deficiências. Então, fiquei responsável por desenvolver este sistema, que será uma aplicação web em Java com banco de dados MS SQL Server, que é o gerenciador de banco de dados usado no Centro de Informática. Confesso que será a primeira vez que desenvolvo uma aplicação web para valer, inclusive com frameworks Java e tudo mais, até então, eu só havia desenvolvido para valer em desktop. Esta será uma excelente oportunidade de aprimorar meus conhecimentos de desenvolvedor Java.

Devido a este estágio, passo a maior parte do dia na FATEC, oito horas por dia de estágio e mais o intervalo para o almoço, só volto para casa à noite e ainda assim tenho bem pouco tempo, o tempo dá só para tomar lanche e ficar bem pouco tempo na fretne do PC lendo e-mails e fazendo outras coisas, como postar neste blog. Só tenho tempo agora no fim de semana.

Este sistema que irei fazer será bem completo, nos dois dias que estou estagiando, já levantei mais de 25 casos de uso e dez páginas de documentação, e amanhã continuarei a fazer mais documentação, a parte de análise. Irei começar a implementar talvez no final da semana ou na próxima.

Apesar de ficar tanto tempo estagiando, até que não tá muito puxado meu serviço, eles deixam dar uma olhada nos e-mails, tomar cafezinho, e no primeiro dia, até comi uns negócios num coffee-break que fizeram de manhã, inclusive morangos e umas bolachas waffer esbagaçadas, que pareciam ser fim de estoque de supermercado falido, tudo soltando, mas tava bom mesmo assim.

Bom, tenho que ir dormir, numa próxima oportunidade, escreverei mais acerca do estágio! E até a próxima blogada!