Fechar

Mostrando postagens com marcador Software Livre. Mostrar todas as postagens
Mostrando postagens com marcador Software Livre. Mostrar todas as postagens

quinta-feira, 3 de maio de 2012

Eclipse - Waiting for xdebug session

0 comentários
Nada pior que instalar o Eclipse PDT e na hora de debugar peceber que o eclipse nunca comleta a requisição pelo xdebug. Isso pode ocorrer por configuração errada do debug, no eclipse ou no arquivo php.ini ou xdebug.ini.


Para tentar resolver tente o seguinte:


1) Verifique se o xdebug está instalado (você usar o phpinfo() para verificar)
2) Verifique se não está editando o arquivo php.ini errado (você usar o phpinfo() para verificar)
3) Reinicie o apache 
4) verifique se está usando o  executável  correto do php no Eclipse
5) Verifique se o xdebug está com as configurações corretas no Eclipse (porta, executável php,server)
6) Verifique se o path para a lib ou dll do xdegub está correto no php.ini
7) verifique se a opção   xdebug.remote_enable está ativa no php.ini


Como referencia para seu teste, pode usar este arquivo de configuração que funciona bem no windows com o wamp e no Linux:



zend_extension = "c:/wamp/bin/php/php5.3.10/zend_ext/php_xdebug-2.1.2-5.3-vc9.dll"

[xdebug]
xdebug.remote_enable = On
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/wamp/tmp"

; General
xdebug.show_local_vars=On
xdebug.dump.SERVER=HTTP_HOST, SERVER_NAME
xdebug.dump_globals=On
xdebug.collect_params=4
xdebug.auto_trace=off
xdebug.collect_includes=on
xdebug.collect_return=off
xdebug.default_enable=on
xdebug.extended_info=1
xdebug.manual_url=http://www.php.net
xdebug.show_mem_delta=1
xdebug.max_nesting_level=100
xdebug.idekey=xdebug
xdebug.collect_params = On
xdebug.collect_vars = On
xdebug.dump_globals = On

; Trace options
xdebug.trace_format=0
xdebug.trace_output_dir=/tmp/xdebug/trace
xdebug.trace_options=0
xdebug.trace_output_name=tracelog

; mostra retornos GET do browser
xdebug.dump.GET=*
;mostra retornos do campos username e password
xdebug.dump.POST=username,password

domingo, 26 de fevereiro de 2012

Preparando o Mint/Ubuntu para desenvolver com Pyqt4

0 comentários

Instalando o PyQt4 no Linux Mint/Ubuntu

Introdução

O PyQt4 é mais uma alternativa para desenvolver aplicações desktop com interface gráfica amigável ao usuário. Suporta Linux e outros sistemas Unix, bem como Mac OS X e Microsoft Windows. 
O PyQt é desenvolvido por British firm Riverbank Computing e está disponível sob termos similares aos Qt 4,5. Isto significa uma variedade de licenças, incluindo GNU General Public License (GPL) e licença comercial, mas não o GNU Lesser General Public License (LGPL).  

A melhor versão do Python atualmente para se trabalhar com PyQt4 é a 2.7 devido a algumas questões de compatibilidade, mas nada impede de se a usar uma versão acima desta.

Neste tutorial foi usado o Linux Mint 12 com Kde 4.8 rodando sobre o kernel  3.0.0-16-generic em um hardware com processador intel  pentium(R) dual CPU @240 Ghz com 4 Gb DDR 3.

Instalando o Python 2.7

Geralmente as distribuições Linux já trazem o Python instalado por padrão, você pode verificar a versão do python com o comando:

evaldo@TUX ~ $ python -vV
Python 2.7.2+


Se você não possuir a versão 2.7 pode instala-la assim:

TUX evaldo # aptitude install python2.7


Instalando as dependências

Com o Python instado, agora precisamos instalar as dependias do PyQt4:

TUX evaldo #  aptitude install python-pip python2.7-dev libxext-dev python-qt4 qt4-dev-tools build-essential qt4-designer  qt4-dev-tools libqt4-dev ibXext


Instando o PyQt4

Vá no site http://www.riverbankcomputing.co.uk/software/pyqt/download e baixe a última versão do PyQt4 e do Sip. (SIP é uma ferramenta de software de código aberto usado para conectar programas de computador ou bibliotecas escritas em C ou C + + com a linguagem Python).

Descompacte os arquivos em algum diretório:

TUX python # tar -xvf PyQt-x11-gpl-4.9.1.tar.gz 

TUX python # tar -xvf sip-4.13.2.tar.gz 

Precisamos instalar primeiro o sip. Entre o diretório onde foi descompactado o arquivo:

TUX python # cd sip-4.13.2/

Se você tiver mais de uma versão do python instalada, especifique com qual versão quer compilar com o seguinte comando:

TUX sip-4.13.2 # python2.7 configure.py ; make ; make install

A instalação do sip é rápido pouco mais de 30~60 segundos dependendo do seu pc.

Após instalar o sip podemos instalar o PyQt4. Acesse o diretório onde descompactou o arquivo e execute o mesmo comando acima:

TUX sip-4.13.2 # cd ../PyQt-x11-gpl-4.9.1/

TUX sip-4.13.2 # python2.7 configure.py ; make ; make install

A instalação do PyQt4 leva em torno de 40 minutos então pode deixar rodando e ir tomar um café :)   

Rodando um teste


Para comprovar que o PyQt4 foi instalado podemos rodar rodar um teste. Salve o codigo abaixo como teste.py:
  
#!/usr/bin/python

# teste.py

import sys
from PyQt4 import QtGui

app = QtGui.QApplication(sys.argv)

widget = QtGui.QWidget()
widget.resize(250, 150)
widget.setWindowTitle('simple')
widget.show()

sys.exit(app.exec_())
  
Agora execute:
evaldo@TUX ~ $ chmod +x teste.py 
evaldo@TUX ~ $ ./teste.py 


Resultado:



A documentação do PyQt4 pode ser encontrada aqui .

quinta-feira, 8 de julho de 2010

Software Livre

1 comentários
Software Livre


Na década de 80, quase todos os softwares que existiam eram proprietários e protegidos por leis de direitos autorais, o que impunha uma série de limitações aos usuários. Dentre essas limitações estava o problema que era o usuário que precisava se adaptar a maneira do software trabalhar não possuindo a flexibilidade de poder fazer alterações, e caso realmente precisasse dessas alterações, teria que pagar um preço alto para os desenvolvedores. Esse cenário trazia a necessidade de se criar uma forma para os usuários obter mais liberdade com o uso do software .
Em setembro de 1983, nascia o projeto GNU idealizado por Richard Stallman. Ele pretendia escrever um novo sistema operacional similar ao Unix, mas que fosse completamente livre e tivesse o código fonte aberto, de forma que pudesse ser lido por qualquer pessoa dando a liberdade de poder copiar, alterar, distribuir e contribuir para o projeto ou mesmo usá-lo para estudos, criando assim a comunidade de “software livre”.
O software livre ficou sendo definido em quatro tipos de liberdade:

Ter a liberdade de executar o programa, para qualquer finalidade.
Ter a liberdade de modificar o programa para atender às suas necessidades (Para tornar esta liberdade efetiva, na prática, você deve ter acesso ao código-fonte, uma vez que fazer alterações em um programa sem ter o código fonte é extremamente difícil).
Ter a liberdade de redistribuir cópias, cobrando uma taxa ou não.
Ter a liberdade para distribuir versões modificadas do programa, para que a comunidade pode se beneficiar de suas melhorias.


Free Software Foundation

Em outubro de 1985 foi criada a Free Software Foundation (FSF), para arrecadar recursos junto às grandes empresas e convocar programadores para ajudar no desenvolvimento e divulgação do Projeto GNU. Atualmente, a fundação ainda mantém o projeto GNU, porém atua com ênfase nos aspectos legais envolvendo software livre, incluindo a GNU General Public License (GPL), que é a licença usada no Projeto GNU e por vários outros softwares livres.
A GPL define a forma como o software Livre pode ser usado e distribuído. Sua primeira versão foi lançada em Janeiro de 1989, tratando de várias questões envolvendo um projeto de software. Com isso, devido a sua grande abrangência, em junho de 1991 foi lançada a segunda versão e em Junho de 2007 foi lançada a versão final do projeto.
A GPL está disponível apenas no idioma Inglês, não sendo reconhecida como oficial nenhuma tradução para qualquer outro idioma pela Free Software Foundation (FSF) com a alegação de que a tradução poderia mudar algum termo da licença e alterar o seu real objetivo.


GNU/Linux


O software livre mais conhecido e usado atualmente é o GNU/Linux ou simplesmente Linux, que é a combinação do kernel Linux e o sistema operacional GNU (STALLMAN, 2007). Existem várias versões do GNU/Linux que são chamadas de Distribuição Linux, e são chamadas assim porque cada uma delas traz uma lista de softwares já instalados para atender aos interesses do publico alvo. Como exemplo uma das distribuições mais conhecidas, o Ubuntu, traz softwares destinados ao usuário doméstico como tocadores de mídia e suíte para escritório. Já o Debian, vem preparado para servidores incluindo os softwares mais usados em servidores, como servidores de banco de dados, servidores de emails, servidores de firewall, dentre outros (AUGUSTO, 2006).
Um fato interessante é que algumas distribuições como as citadas, trás também software não livre como um pedaço de código do kernel ou drivers que são proprietários, etc. Estas distribuições não são reconhecidas pela Free Software Foundation como sendo completamente livres porque ferem algum dos quatros princípios da liberdade do software livre.


Comunidade de Software


Com o crescimento da comunidade de Software livre, além do GNU/Linux vários outros softwares livres para as mais diversas finalidades e sistemas operacionais são desenvolvidos pelo mundo. Uma grande prova disso é o site sourceforge.net que hospeda projetos de software livre. Segundo dados disponíveis no próprio site, em janeiro de 2009 havia mais de 2 milhões de usuários cadastrados e 230.000 projetos de software .
Além do sourceforge.net a empresa Google também hospeda e desenvolve projetos de software livre. A Google ainda fornece uma ferramenta muito interessante e eficiente para pesquisas de código fonte: Google Code Seacrh. Está ferramenta permite ao usuário realizar pesquisa de código-fonte em várias linguagens, como Java, C++, C# e PHP, dentre outras. Os resultados das pesquisas são formatados com linhas enumeradas e cores diferentes para os identificadores e comentários, exatamente como uma IDE de desenvolvimento. A ferramenta permite ainda pesquisar por códigos com diferentes tipos de Licenças de uso.
No Brasil, o governo federal criou o PORTAL DO SOFTWARE PÚBLICO BRASILEIRO, que apresenta um novo modelo de licenciamento, de gestão e de regras de disponibilização das soluções desenvolvidas pela Administração Pública e a rede de parceiros da sociedade. O objetivo é compartilhar soluções, reduzir custos, aprimorar os aplicativos disponibilizados e melhorar o atendimento à população, além de criar espaços de colaboração com a sociedade. Essa iniciativa do governo foi tão bem sucedida que o Paraguai está adotando o modelo de software público desenvolvido pelo Governo Brasileiro.
As vantagens do uso do software livre pelo governo podem ser comprovadas nos casos de sucesso como o do Tribunal Superior Eleitoral que usando software livre nas Urnas eletrônicas espera economizar de R$ 3 milhões a R$ 4 milhões e até R$ 15 milhões para os próximos 10 anos.


Mudança de Mentalidade


Algumas empresas como a SUN, a IBM e a Google não vêem o software livre como uma ideologia e sim como um modelo de negócios, matemático. Em contrapartida ao processo tradicional baseado no registro de patentes, a adoção do software livre permite que as empresas inovem e tenham acesso as inovações mais rapidamente, o que é considerado essencial para se manter competitivo no mercado.
A IBM faz grandes investimentos em software livre, são mais de 600 desenvolvedores que trabalham com a comunidade de software livre em mais de 100 projetos. A IBM incentiva e da apoio as organizações para que elas migrem para software livre, inclusive dando desconto na aquisição de hardware.


Barreiras


Dentre os problemas enfrentados pela comunidade de software livre está a falta de recursos financeiros, de pessoas para ajudar nos projetos e processos por quebras de patente, o que leva a desmotivação e ao abandono de alguns projetos. O software livre também enfrenta barreiras por parte dos usuários que muitas vezes não se adaptam a mudança de ambiente e resistem em fazerem a troca.


REFERÊNCIAS

CAMPOS, Augusto. O que é uma distribuição Linux. BR-Linux. Florianópolis, março de 2006. Disponível em http://br-linux.org/faq-distribuicao. Acesso em 03 mar. 2010.

GEORG, C. F. Greve, Admirável Mundo GNU. Disponível em http://www.gnu.org/brave-gnu-world/issue-32.pt.html Acesso em 03 mar. 2010.

GNU.ORG, GNU GENERAL PUBLIC LICENSE, Disponível em http://www.gnu.org/copyleft/gpl.html. Acesso em 01 mar. 2009.

GOOGLE, Google e código aberto: Disponível em http://code.google.com/intl/pt-BR/opensource/. Acesso em 03 mar. 2009.

IBM ,Open Source na IBM. Disponível em http://www.ibm.com/br/linux/opensource/index.phtml. Acesso em 02 mar. 2010

STALLMAN, Richard, Linux and the GNU Project. Disponível em http://www.gnu.org/gnu/linux-and-gnu.html. Acesso em 01 mar. 2009.

SOUCEFORGE.NET, About , Disponível em http://sourceforge.net/about. Acesso em 02 mar. 2010.

ZMOGINSKI, Felipe. TSE migra urnas eletrônicas para Linux. Disponível em http://info.abril.com.br/aberto/infonews/042008/08042008-11.shl. Acesso em 22 mar. 2010.




Engenharia de Software

0 comentários
Engenharia de Software


Atualmente todos os países do mundo dependem de complexos sistemas com base em computadores. Cada vez mais o software está presente em todos os lugares, ajudando a controlar processos indústrias, administração de escolas e de governos, sendo usados para educação e entretenimento. Por isso, construir softwares que apresentem uma boa relação custo benefício é essencial para a economia nacional e internacional. .
Um Software não é apenas um programa de computador, mas também toda a documentação que descreve sua estrutura juntamente com o manual de usuários e os dados de configuração necessários para fazer com que tudo opere corretamente. O software é abstrato e intangível, não é restrito por matérias e nem regido por leis físicas. Mas ainda assim os sistemas de software mais simples têm alta complexidade inerente, ocorrendo que muitos dos projetos de softwares ao longo dos anos, não conseguiram ser bem sucedidos, vários deles apresentando falhas graves e prejudicando os usuários e as empresas. Softwares, como todos os sistemas complexos, evoluem durante um período de tempo e os requisitos do negócio e do produto mudam frequentemente a medida que o desenvolvimento prossegue dificultando um caminho direto para um produto final.
A Engenharia de Software foi desenvolvida para ajudar a resolver problemas de construção de sistemas de software de grande porte e personalizados, destinados a aplicações governamentais, industriais e de defesa. A Engenharia de Software é uma disciplina da engenharia que está relacionada a todos os aspectos envolvendo a construção de software como a especificação, desenvolvimento, gerenciamento e evolução. As suas técnicas se assemelham com as utilizadas por engenheiros em automóveis, construção civil, dentre outros. Com base na Engenharia de Software, engenheiros de software podem usar métodos e teorias que sejam mais apropriados aos seus projetos para solucionar problemas e desenvolver software de maior qualidade.
Para auxiliar em uma ou várias etapas do ciclo de desenvolvimento de software a engenharia de software permite que o engenheiro faça uso de ferramentas CASE (engenharia de software com o uso do computador) com diferentes tipos de programas para apoiar as atividades de processos de software como analise de requisitos, a modelagem de sistemas, depuração e testes. Algumas delas ainda podem trazer geradores de códigos que automaticamente gera código-fonte com base nos diagramas.
Ao longo dos anos foram produzidos vários materiais relacionados à Engenharia de software contendo várias técnicas para sucesso no desenvolvimento de software. Em uma iniciativa do IEEE, um comitê foi reunido para organizar as técnicas mais relevantes em um documento com a finalidade de servir de referência em assuntos pertinentes a área de Engenharia de Software. O resultado desse trabalho foi o guia SWEBOK, que desmembra a engenharia de software em dez áreas de conhecimento:
• Requisitos de Software
• Projeto (Design) de Software
• Construção de Software
• Teste de Software
• Manutenção de software
• Gerência de Configuração de Software
• Gerência de Engenharia de Software
• Processos de Engenharia de Software
• Ferramentas e Métodos de Engenharia de Software
• Qualidade de Software

Pelo fato da engenharia de software ser uma área bastante abrangente, o SWEBOK não consegue abranger todas as áreas de conhecimento. Um dos problemas enfrentados é que a engenharia de software está em constante evolução mudando continuamente com base em novas tecnologias e praticas, fazendo com que o guia muitas das vezes fique defasado.
A Engenharia de software possui três principais desafios no século XXI :

Desafio do legado: A grande parte dos sistemas de software de hoje foram concebidos há alguns anos e, além disso, eles executam importantes funções que em sua maioria são de alta complexidade. O desafio do legado significa é poder manter estes softwares atualizados e manter os serviços essenciais ativos.

Desafio da heterogeneidade: A tendência dos sistemas de softwares de hoje é trabalhar como sistemas distribuídos, rodando em diferentes computadores com sistemas operacionais e programas auxiliares diferentes. O desafio da heterogeneidade é desenvolver sistemas confiáveis e estáveis que interajam entre se independente do ambiente.

Desafio do fornecimento: Muitas das técnicas de desenvolvimento tradicionais são muito demoradas, levando muito tempo para desenvolver sistemas de qualidade. O grande problema do desafio do fornecimento diz respeito a reduzir o tempo para fornecer sistemas complexos de qualidade em menos tempo.


REFERÊNCIAS

SOMERA, Guilherme. Treinamento Profissional em Delphi. ed. Digerati Books, São Paulo, 2007. ISBN: 978856048012-8

SOMMERVILLE, Ian. Engenharia de Software. 8a ed. Rio de Janeiro: Addison-Wesley, 2003. ISBN: 9788588639072.

SWEBOK 2004, Guide for the Software Engineering Body of Knowledge, 2004 version, IEEE Computer Society, California, EUA.






Praxis

1 comentários
Praxis


O Praxis é uma metodologia para o processo de desenvolvimento de software com enfoque educacional, criada pelo professor da Universidade Federal de Minas Gerais, Wilson de Pádua Paula Filho. Seu objetivo é demonstrar as técnicas de desenvolvimento de software mais relevantes e promover treinamento eficaz e eficiente podendo ser usado no desenvolvimento de sistemas que duram entre seis meses e um ano e ser usado por pequenas e grandes equipes. O Praxis ainda pode ser adaptado e complementado de acordo com as práticas da organização (PAULA FILHO , 2003).

A sigla “Praxis” significa PRocesso para Aplicativos eXtensíveis InterativoS, fazendo referencia a tecnologia de orientação a objetos para o desenvolvimento de sistemas gráficos interativos. Na concepção do Praxis utilizou-se muitos elementos do PROSE, assim como elementos do PSP (Personal Software Process), do TSP (Team Software Process) e do RUP (Rational Unified Process).

O Praxis não tem o objetivo de substituir e nem ser concorrente destes processos, pois tem propósitos diferentes, contanto, pode ser usado como base de aprendizado para cada um deles (PAULA FILHO, 2003).

Os fluxos gerenciais contemplam as chaves 2 e 3 do CMMI. A UML é usada em todos os passos em que pode ser aplicada. Os padrões usados no desenvolvimento do Praxis estão conforme o IEEE . (PAULA FILHO, 2003).



2.4.1 Elementos


Os elementos de trabalho que compõem um processo estão representados na Figura 1:


Figura 1 Elementos que compõem um processo.


Da mesma forma que no modelo do Processo Unificado, o Praxis abrange tanto fases quando fluxos. Uma fase é composta por uma ou mais iterações e um fluxo é dividido em uma ou mais etapas. Iterações e etapas são exemplos de passos. Figura 2.


Figura 2 - Divisões de um processo


2.4.2 Fases


A divisão das fases no Praxis segue o modelo de ciclo de vida evolutivo. O final de cada fase é determinado pelas entregas e aprovação de um conjunto de artefatos (resultados). Os elementos maiores da arquitetura do Praxis são inspirados no RUP por questões de compatibilidade e maior aceitação da indústria. A Figura 3 demonstra as fases do Praxis (PAULA FILHO, 2003).



Figura 3 Fases do Praxis


2.4.3 Fluxos


O Praxis possui dois fluxos: fluxos técnicos e fluxos gerenciais. Os fluxos técnicos demonstrado na Figura 4, abrange atividades relativas ao desenvolvimento do sistema no qual o produto de software está contido.



Figura 4 Fluxos Técnicos


Os fluxos gerenciais, Figura5, cuidam das tarefas relacionadas ao planejamento, controle do projeto, qualidade de artefatos, alem de dar suporte e melhorar o processos de software.



Figura 5 Fluxos Gerenciais


2.4.4 Iterações


O processo de desenvolvimento de software é visto como uma sucessão de iterações. Em cada iteração, são agregadas novas funcionalidades até que o produto esteja finalizado. A figura 6 demonstra o detalhamento das fases e iterações:


Figura 6 Detalhamento das fases do Praxis


2.4.5 Vantagens e Desvantagens


O Praxis é baseado na tecnologia orientada a objetos, possui como notação de análise e desenho a UML, seus padrões são conformes os do IEEE. Possui elementos do Processo Unificado e é um processo iterativo. Pode ser utilizado para fins didáticos e comerciais, ser reproduzido e alterado livremente, garante o nível 3 do CMMI.

Por ter pouca divulgação ainda não é usado em escala nacional. Também não pode ser utilizado ou considerado como uma metodologia ágil, pois exige muita documentação



REFERÊNCIAS


PAULA FILHO, Wilson de Pádua: Processo Praxis. Disponível em http://homepages.dcc.ufmg.br/~wilson/praxis/. Acesso em 11 mar. 2010.

PAULA FILHO, Wilson de Pádua. Engenharia de Software: fundamentos, métodos e padrões. 2a ed. Rio de Janeiro: LTC - Livros Técnicos Científicos. 2003. ISBN: 8521613393






Mais Populares

Seguidores

Є & V. Copyright 2011 Evaldo Avelar Marques - sprintrade network