Mostrando postagens com marcador pt-br. Mostrar todas as postagens
Mostrando postagens com marcador pt-br. Mostrar todas as postagens

domingo, 1 de maio de 2011

Nova fase

0

Bah, falei que não ia usar mais o blogger, mas é muito melhor que minha própria ferramenta :P.

Desculpem ficar tanto tempo sem escrever, porém estava numa correria nos últimos tempos. Após 2 anos e 4 meses trabalhando na SeRHmática, saí para encaram um desafio novo, sempre gostei de trabalhar lá, mas senti que era hora de tentar algo novo diferente.

Sempre trabalhei como CLT, mas agora vou trabalhar como PJ e em Home Office, meu medo é de não me acostumar :P, amanhã (02/05/2011) é meu primeiro dia full time na Crafters, estou trabalhando já a um mês com eles em um projeto Ruby on Rails.

Me desejem sorte :)

Read more

domingo, 9 de janeiro de 2011

RSpec+Mongo+DatabaseCleaner

0

A algum tempo atrás escrevi sobre RSpec e MongoDB a versão que usei o database cleaner na época era a 0.5.2, a algum tempo atraz saiu a versão 0.6.0, e eu ainda não havia testado, bom as alterações são simples, a principal é que o orm deve vir primeiro, veja abaixo como ficaria o spec_helper.rb

RSpec.configure do |config|
  config.before(:suite) do
    DatabaseCleaner.orm = :mongoid
    DatabaseCleaner.strategy = :truncation    
    DatabaseCleaner.clean_with(:truncation)
  end  
  config.before(:each) do  
    DatabaseCleaner.start
  end
  config.after(:each) do  
    DatabaseCleaner.clean
  end
end

também foi alterado para o before, iniciar o Cleaner, e o after para limpar. :D

Read more

quarta-feira, 15 de dezembro de 2010

Dias da Semana no Ruby

0

Não sei por que ninguem nunca precisou isso no ruby, sei la, procurei na net e não encontrei nada resolvi implementar minha propria solução.

A documentação teorica está aqui: http://www.arlindo-correia.com/140101.html
Porém pra fazer a conversão, converti o codigo desse site http://www.profcardy.com/calculadoras/aplicativos.php?calc=4 do javascript para o ruby

o resultado foi esse monkey patch

class Time
  DAYS_OF_WEEK = [
    :saturday, :sunday, :monday, :tuesday, :wednesday, :thursday, :friday
  ]
  def day_of_week
    day = self.day
    month = self.month
    year = self.year
    if month == 1
      month = 13
      year -= 1
    end
    if month == 2
      month = 14
      year -= 1
    end
    phase1 = ((month + 1)*3)/5
    phase2 = (year/4)
    phase3 = (year/100)
    phase4 = (year/400)
    phase5 = day + (month*2)+phase1+year+phase2-phase3+phase4+2
    phase6 = phase5/7
    result = phase5-(phase6*7)
    DAYS_OF_WEEK[result]
  end
end

E os testes usando irb (na verdade usei o console do rails)
irb(main):001:0> t = Time.now
=> Wed Dec 15 22:05:00 -0200 2010
irb(main):002:0> t.day_of_week
=> :wednesday
irb(main):003:0> t.prev_month.day_of_week
=> :monday

Se alguem souber como recuperar o dia da semana sem o path me avisa ehhee.

Read more

quarta-feira, 14 de julho de 2010

Alterar o classpath em tempo de execução

0

Muito comum essa dúvida, porém nem tão pratica :D.

Para ferramentas baseadas em plugins o ideal é usar OSGi mesmo, que funciona muito bem.

Mas existem casos em que precisamos de um determinado jar que não está no classpath da aplicação seja adicionado de acordo com as vontades do usuário.
Existe um metodo bem simples, usando reflection que permite que isso seja feito.

File f = new File("ABSOLUTE FILE PATH");
URL url = f.toURI().toURL();
URLClassLoader classLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
Method method = URLClassLoader.class.getDeclaredMethod("addURL", URL.class);
method.setAccessible(true);
method.invoke(classLoader, url);

o metodo toURL dentro da classe file está deprecated, então usamos o toURI e depois toURL, lembrando que para criar o arquivo é necessário o caminho completo do Jar.

usando reflection pegamos o metodo protegido "addURL" dentro do URLClassLoader, e simplesmente o invocamos :D

Bem simples e funcional.

Read more

segunda-feira, 12 de julho de 2010

Testes Unitários e Metodologias Agéis

2

Bah, desculpem por não postar nada, sabe como é brasileiro em Copa do Mundo né :). Não pude deixar o fanatismo de lado.

Ultimamente estive pesquisando e lendo muito sobre testes unitários e metodologias agéis de desenvolvimento e uma parte que eu gosto muito são os testes. Gosto muito de criar testes fazer refactoring dos meus codigos sempre visando melhora-los, pois estamos sempre aprendendo e algumas coisas antigas ficam com brechas ou códigos horriveis. Porém, se existe algo chato, é criar testes, apesar de gostar existem coisas que chegam a ser ridiculas de serem testadas. e em linguagens como Java, o esquema do Antes crie o teste, depois crie o codigo não funciona, pois se o metodo não existir na classe vc nem consegue compilar.

Mas a minha decepção não é nem com os testes, que sim, são chatos de serem feitos, mas eu acho algo interessante. O que me deixou meio abismado, foi uma certa metodologia agil, o eXtreming Programming (XP). Lendo sobre o XP, parecia tudo muito bonito, muito bacana, mas aí veio um tal de Pair Programming. Puts eu queria saber quem foi o FDP que acha isso legal? Não existe nada mais chato que passar 8 horas do dia assistindo alguem programando, sim concordo nos louros dessa metodologia, é visível que alguem de fora encherga os seus erros de uma maneira mais facil, mas ninguem pensa no coitado que fica sentado ali do lado? Mesmo que haja revezamento no PC, quem não está programando, vai estar bocejando.

Dai veio o motivo de usar tal metodo...
A pressão do par! Não basta você estar o dia todo na empresa, e não podem nem olhar seus e-mails? Não vai poder se distrair 5 minutos? isso é coisa de Gerente Capataz. Numa profissão maçante como a nossa, acredito que um pouco de descontração (sem esquecer do trabalho é lógico), é fundamental. Acredito que na resolução de um problema, duas cabeças pensam melhor que uma. Mas agora para coisas básicas, acredito que cada um pode se virar, penso no Pair Programming diferente. Acredito que cada uma na sua máquina, em busca do mesmo problema, ou usando papel discutindo o problema, normalmente é mais vantajoso que passar o dia todo assistindo o outro trabalhar.

Não sou contra o Pair Programming, mas vejo mas como uma solução de problemas, por exemplo: Temos um problema vamos discutir e resolve-lo juntos. Após o problema resolvido cada uma volta as suas tarefas normais. Pelo que entendi, o par deve ficar o tempo todo do lado lendo o que o outro escreve e corrigindo os erros.

Só um desabafo.
Tem muito gente que não percebe como funciona para empresas como Google, Microsoft. Ainda acham que funcionários são recursos...

Read more

segunda-feira, 31 de maio de 2010

Especialistas dizem que faltam vagas na área de TI

8

Quem nunca ouviu falar disso? Jornais, noticiários, todo mundos gosta de enaltecer o excesso de vagas no mercado de TI, até comentam de empresas que ficam anos com vagas abertas e não conseguem preenche-las.
Existem vários tópicos no GUJ, comentando sobre essas afirmações feitas por profissionais jornalistas, não profissionais da área de TI. Partindo do suposto que estatisticamente a quantidade de vagas em aberto x o número de candidatos e o tempo que elas permanecem em aberto significam que sobram vagas, correto? Bom, não é bem esse o caminho.
Nem sempre quantidade quer dizer qualidade, o pessoal não está ciente de como é difícil achar boas vagas, e ninguém sai em busca de empresas no estilo Google de ser. Muitos só querem trabalhar ter seu dinheiro e aprender coisas novas.
Sua empresa não acha profissionais para contratar? Bom, existem algumas opções que sua empresa deve analisar:
  • Sua empresa sabe o que precisa, qual cargo pretende contratar?
  • Sabe a média salarial de profissionais desse cargo e com os conhecimentos pedidos?

Somente essas duas perguntas podem responder por que você não acha um profissional nem que seja medíocre para contratar. Por quê? Por que na maioria dos casos o que vemos são vagas em busca de mão de obra qualificada, com baixo salário e que de preferência possa ser ninja e fazer tudo o que for pedido. Já cheguei a ver vagas onde os requisitos no mínimo eram pra sênior , mas a vaga era pra um ESTÁGIARIO, leu bem? Seria a mesma coisa que pedir para um estagiário do escritório de contabilidade saber fazer metade da movimentação contábil das empresas sem ajuda, isso é completamente ridículo, e o salário é claro incompatível com os conhecimentos.
Ai vale a ressalva de que muitas dessas vagas em aberto são exclusivas, e garanto que removendo essa massa de vagas, teríamos ai um mercado equilibrado, sem esse excesso de vagas, que vemos serem veiculados por ai.
É muito simples avaliar que a anos sobram inúmeras vagas em TI, mais ai que os cegos não enxergam, sobram vagas, ou as empresas não sabem contratar profissionais?

Pensei bem se publicava ou não essa bagaça, mas que sabe, ta ai :)

Read more

sexta-feira, 23 de abril de 2010

Glassfish v3 EJB e Standalone Client

2

Não sei se muita gente usa isso, mas eu uso, um client swing, para um modulo EJB, recentemente, saiu a versão V3 do glassfish, e lá fui eu tentar comunicar com o container EJB, até a versão v2 as bibliotecas necessarias eram o JavaEE 5, appserv-rt, appserv-deployment, appserv-admin e o appserver-ext, isso devia tar entorno de uns 20MB de bibliotecas.

Seguindo ao FAQ do Glassfish eu devia adicionar somente o GF-CLIENT no classpath da applicação, um jarzinho de alguns KB, e adivinha, não funcinou, depois de uma extensiva busca não encontrei solução e cheguei a conclusão que, NÃO ACREDITE NO FAQ DO CLASSFISH. Além desse tal de gf-client, eles aconselham vc a usar o construtor sem argumentos da classe InitialContext, se vc quiser conectar SOMENTE EM LOCALHOST use o construtor sem argumetos.

Criei um projeto, adicionei todos os jars do GLASSFISHV3_HOME/glassfish/modules, a conexão funcionou 100%, agora era ver quais jars iriam manter minha conexão ativa, e fui removendo 1 a 1 os jars e testando, chegando finalmente a 6MB de jars (diminui bastante comparado com as versões anteriores), que devem estar no seu classpath, listados abaixo


  • auto-depends

  • common-util

  • config-api

  • config

  • config-types

  • dol

  • deployment-common

  • ejb.security

  • ejb-container

  • glassfish-naming

  • glassfish-api

  • glassfish-corba-orb

  • glassfish-corba-omgapi

  • glassfish-corba-orbgeneric

  • glassfish-corba-codegen

  • glassfish-corba-newtimer

  • glassfish-corba-csiv2-idl

  • glassfish-corba-asm

  • gmbal

  • hk2-core

  • internal-api

  • javax.resource

  • java.ejb

  • kernel

  • management-api

  • orb-connector

  • orb-iiop

  • security

  • tiger-types-osgi



E nenhum dos gf-QUALQUER_COISA é necessario, essa aplicação está em produção desse modo. Alguns desses jars são encontrados em repositorios maven como tiger-types-osgi, eu optei por adicionar a maioria no repositorio local e esses mesmo para não ter problema.

Read more

 
Design by ThemeShift | Bloggerized by Lasantha - Free Blogger Templates | Best Web Hosting