Category Archives: Software Livre

Licença do ExtJS

Há uma grande confusão e má interpretação da licença dual do ExtJS e de todos os produtos Sencha em geral, principalmente por causa da GPL3. Como voces deveriam saber, os produtos da Sencha são Open Source com uma licença comercial caso queira monetizar com as ferramentas.

Já discuti com diversas pessoas afirmando que se voce construir uma aplicação com ExtJS voce tem que distribuir o código fonte de sua aplicação, aí que está o grande engano.

Preciso Distribuir o Código Fonte de Minha Aplicação?

Não

Explique

ok, a licença é conhecida como viral, o que ela toca se torna Open Source e voce precisa deixar acessível.

Basicamente se algo depende de código com GPL3 esse algo se torna GPL3.

Agora uma Webapp com ExtJS não depende do ExtJS, sendo mais preciso o seu server-side  não depende da camada de apresentação se esta for feita toda no client-side como as abordagens Full Ajax utilizam. Por isso eu não uso e nunca utilizei em produção algo com a API de Direct do ExtJS, porque a fronteira dessa definição não é claro sob esse aspecto. O Direct força o seu server-side a se ajustar ao client-side quando deveria ser o contrário.

Até a versão 3 voce precisava renderizar o JSON para uma estrutura definida pelo ExtJS nos forçando a fazer coisas assim [como o Responder abaixo] e deixando a fronteira novamente ambígua.

module Sencha
class Wrapper
attr_accessor :data, :total
end
class Responder < ActionController::Responder
attr_reader :controller, :request, :format, :resource, :resources, :options
def initialize(controller, resources, options={})
super
@controller = controller
@request = @controller.request
@format = @controller.formats.first
@resource = resources.last
@resources = resources
@options = options
@only = options.delete(:only)
@include = options.delete(:include)
@methods = options.delete(:methods)
end
def to_format
to_sencha if @format == 'sencha'
super
end
def to_sencha
ActiveRecord::Base.include_root_in_json = false
total = 1
total = @resource.total_entries if @resource.respond_to?(:total_entries)
if(@resource.respond_to?(:errors) && @resource.try(:errors).size > 0)
model = @resource.class.name.camelize(:lower)
@errors = { :attributes => {}, :base => @resource.try(:errors)[:base]}
@resource.errors.each do |attr, msg|
@errors[:attributes]["#{attr}"] ||= []
@errors[:attributes]["#{attr}"] << msg
end
render :json => {:success => 'false', :message => "", :errors => @errors},
:status => :unprocessable_entity
#, :location => @resource
else
sencha = {
:data => @resource, :total => total, :success => true, :message => ""
}
@params = { :include => @include, :methods => @methods }
render :json => sencha.to_json( @params )
end
end
end
end
view raw sencha_responder.rb hosted with ❤ by GitHub

Hoje na versão 4x o Framework trabalha com JSON padrão e voce não precisa modificar o seu Responder para satisfazer o que seja.

Existem estratégias para voce contornar essa limitação ou comprar a licença comercial caso queira fechar modificações nas ferramentas sob a licença GPL3.

Mas Como a Sencha Ganha Dinheiro Então?

Treinamentos, consultorias e outros serviços já são o nicho de negócio principal, imagino. Mas…

Se voce construir uma customização ou novo componente sob a licença comercial, ninguém pode usar ou distribuir essa sua modificação, é aí que a licença comercial entra e é muito justo.

tl;dr

Resumindo, se voce usa ExtJS sob GPL3 voce tem que deixar todo o código que dependa dele sob a mesma licença, mas somente o código que dependa dele.

Typically chemist’s shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a highly complicated matter. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take recipe medications, ask your druggist to check your testosterone levels before. Sometimes the treatment options may include erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a formula is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Meu ambiente de desenvolvimento em 7 items

Recebi o convite do brother Abstractj para entrar na brincadeira, aí vai:

Máquina/Sistema Operacional

Minha máquina tanto de trabalho quanto de casa já há algum tempo é o meu mazelado Vostro 1000 que já se pagou com gosto. Comprei um MacPro 15″ que deve tá chegando por aí. Em casa uso um monitor de 24″ e no trabalho um apenas de 19″.

Uso linux já há alguns anos e ultimamente nos últimos 3 ou 4 exclusivamente Ubuntu, no momento estou com o 10.10. Próxima semana provavelmente começarei a xingar o MacOSX no twitter.

Editor e IDE

Bem, eu notei agora que estou ficando velho, quando comecei a trabalhar com Java lá em 1999 eu usava o Visual J++ que era muito superior a tudo que existia, depois usamos o Visual Café por pouco tempo até que descobrimos o Visual Age que de longe tinha o Editor ideal para a época, ou pelo menos é do que me lembro. Desde essa época do Visual Age que minha IDE para Java sempre foi Eclipse, tentei algumas vezes Netbeans, mas para Java não dá, só Eclipse mesmo. Meu Eclipse por muito tempo sempre foi o MyEclipse, acho que desde 2005, não sei como conseguem desenvolver em Java sem ele.

Para web em geral o Aptana é uma boa pedida, as vezes uso também.

Para Ruby eu uso quando posso o RubyMine (tenho uma licença) até quando falta a paciência dele consumir toda a memória do meu velho Vostro, de resto vai de Gedit ou Emacs. Quando chegar meu méqui eu vou usar só RubyMine.

Terminal

Uso sempre o Bash com algumas modificações.

Browser

Para navegar eu tenho usado o Chrome, mas para desenvolver é sempre com Firefox e os plugins Firebug (e seus complementos YSlow, Firefinder e o fantástico Illumination que encontrei há pouco tempo),  JSONView e Delicious Bookmarks (para consultar as fontes).

Software

Basicamente skype, OpenOffice e utilitários de video/musica comuns em qualquer Debian-like.

Source Code

Conta pública e privada no Github. Alguns repositórios internos em clientes no CVS, SVN e GIT. Temos uma meta de substituir tudo pelo Git em todos os clientes, até de graça.

Música

No cliente atual tentamos fazer sempre Pair Programming o tempo todo, então basicamente não dá para ouvir música nessas condições, quando estou sozinho é com o meu N95 + 3g Vivo no Last.FM em algumas rádio que gosto usando o Mobbler.

Vou repassar a brincadeira agora para o @rponte, @rodrigodealer e o @mauriciojr.

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a highly complicated question. Matters, like “coupons for viagra“, are connected numerous types of health problems. If you need to take prescription medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may include erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.

Exploit que redireciona para Bablo me uk

Dica rápida para não caírem feito um pato como eu caí.  Hoje fui pesquisar um link do meu próprio blog pelo google e descobri que meu site “/tech” inteiro havia sido removido. Pior, o cache do google apontava para um lance estranho.

Conferi na ferramenta para webmaster do google e verifiquei que o Googlebot era redirecionado para um endereço “bablo .me .uk” e as vezes esse endereço se camuflava em outros.

Usando  “curl -v -A Googlebot http://www.milfont.org/tech” eu recebia a mensagem:

...
* HTTP 1.0, assume close after body
< HTTP/1.0 301 Moved Permanently
< Date: Thu, 19 Aug 2010 23:55:13 GMT
< Server: Apache
< Location: http://bablo .me .uk/#....
...

Só depois de muita surra procurando nos .htaccess e .php da vida que encontrei nesse link o comentário que me salvou.

Procurando com find -name “*.php” | xargs grep -E “eval” eu encontrei escondido no wp-config.php, pior, estava com muitos espaços para a direita dificultando a visualização:


./wp-config.php:                                                eval(base64_decode('ZXJ....

Sei lá quanto tempo procurando essa desgraça, fica a dica se passarem pelo menos tormento. Revisei todas as permissões e atualizei o wordpress, coisa que deveria ter feito há tempos, mas o preguiçoso trabalha mais do que o esperto.

Typically chemist’s shop can sale to you with discreet treatments for various health problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about “viagra manufacturer coupon“. Maybe “viagra discount coupons” is a extremely complicated question. Matters, like “coupons for viagra“, are connected numerous types of heartiness problems. If you need to take prescription medications, ask your pharmacist to check your testosterone levels before. Sometimes the treatment options may turn on erectile disfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile disfunction drugs like Viagra without a prescription is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies.