Backup do Perfil do Firefox
O FileFox é a maneira mais fácil e rápida de fazer backup dos perfis do Firefox. Tenha sempre a mão suas informações como favoritos, histórico completo, senhas salvas, sessão de paginas(tabs) abertas, extensões e muito mais.
Add comment October 6, 2009
Tipagem de dados
No geral uma linguagem é um conjunto de símbolos e regras que um determinado grupo usa para comunicar-se internamente ou externamente com outros grupos distintos, por meio de uma linguagem que ambos tenham conhecimento. Com a linguagem de programação não é diferente, ela é responsável pelo intercâmbio entre o programador e o dispositivo (computador, celular, PDA1 etc) a ser programado. Pode-se resumir as principais características de uma linguagem de programação em poucas palavras, porém estas informações, expressão muito do seu funcionamento e de uma forma generalizada como um compilador trata seus aspectos intrínsecos.
Tipagem Estática: A linguagem é dita tipada de forma estática quando a verificação dos tipos de dados(variáveis, objetos), é feita em tempo de compilação.
Tipagem Dinâmica: A linguagem é dita tipada de forma dinâmica quando verificação dos tipos de dados é feito em tempo de execução(runtime).
Tipagem Fraca: É quando os tipos de dados não são bem definidos ou se misturam, não é necessário associar o tipo de dado há variável, pois o compilador/interpretador se encarrega de faze esse tipo de verificação.
Tipagem Forte: É quando os tipo de dados são bem definidos, também é necessário de forma explicita associar o tipo de dado há variável. Outra característica importante é forma do artefato gerado, em linguagens interpretadas, são gerados bytecodes2, que são interpretados por uma maquina virtual e que posteriormente serão traduzidos em linguagem de maquina.
A grande vantagem de linguagens interpretadas é escrever um código fonte para diversas plataformas com pouca ou nenhuma mudança no mesmo. Já linguagens compiladas geram arquivos executáveis especificamente para uma plataforma, isso garante uma alta performance de velocidade sobre as linguagens interpretadas porém isso impede sua portabilidade, deve-se ao fato de que o código compilado ser executado sem passar por um intermediário(maquina virtual). O numero de paradigmas que a linguagem oferece é relevante, algumas linguagens de programação tem diversas finalidades e são utilizadas para desenvolver qualquer tipo de programa, outras são bem restritas como é caso de lisp e prolog que são utilizadas na área de inteligencia artificial.
Add comment February 17, 2009
Firefox domando a raposa insassiável
As reclamações do consumo de memoria do Firefox, são bastantes, aqui deixarei umas dicas para amenizar isto
0) Abra o Firefox e na barra de endereço digite about:config
1) Diminua a quantia de paginas que são “salvas” para fazer o “avançar/voltar”, por padrão esse valor é 50, deixe algo em torno de 5 a 15. O nome da “chave” é browser.sessionhistory.max_entries
2) Force o botão de fechar a aba aparecer apenas na aba selecionada. browser.tabs.closeButtons deixando o valor dessa “chave” em zero.
3) Crie uma nova chave clicando com o botão direito sobre um espaço em branco va em “new/novo” agora escolha boolean, digite o seguinte nome “config.trim_on_minimize”, deixe seu valor true. Ao ser minimizado o Firefox vai jogar parte do seu conteúdo(memria utilizada) para o arquivo de paginação(swap ou equivalente), assim liberando boa parte da memória quando estivar “inativo”, porém não se deixe enganar constantes minimações consomem boa parte dos recursos do processador. Testei isso no windows, veja o uso de memória do Firefox ao ser minimizado, que passa de algo de 150mb para 23/40mb.
1 comment January 6, 2009
Banco de dados relacional
“O banco de dados relacional é um banco de dados visto pelos usuários como um conjunto de tabelas (e nada além de tabelas).”(DATE, 1990, pg.100). Existem três conceitos básicos empregados pelo modelo de entidade-relacionamento, são eles, conjunto de entidades (database), conjunto de relacionamentos e atributos.
-
Entidade: Consiste no processo de identificar objetos concretos ou abstratos do mundo real que tem alguma importância dentro de um contexto especifico(negócio). As entidades são “coisas” da realidade, que são transpostas(abstração) para um modelo computacional/conceitual, sendo apenas coletado suas características principais. “Defini-se entidade como aquele objeto que existe no mundo real com uma identificação distinta e com um significado próprio. São “coisas” que exitem no negócio, ou ainda descrevem o negócio em si.”(RODRIGUES, ABREU, 1996, pg.32).
-
Atributos: Também conhecidos como campos. Nada mais é que as características de um objeto ou de uma entidade, tendo como exemplo o documento CPF seus atributos são: nome do portador, número de inscrição e data de nascimento ou de modo mais clássico entidade cliente: nome, endereço, data de nascimento, rg, cpf entre outros atributos.
-
Relacionamentos: Ou cardinalidade. É a forma como duas ou mais entidades se relacionam. Existem três tipos: um-para-um: “Neste grau de relacionamento, cada elemento de uma entidade relaciona-se com um e somente um elemento de outra entidade”(RODRIGUES, ABREU, 1996, pg.54). Exemplo um filho(a) tem apenas uma única mãe biológica. Uma-para-muitos: Encontrado com maior freqüência no processo de modelagem. Um elemento da entidade “A” relaciona-se com vários outros elementos da entidade “B”. Tomando o exemplo filho/mãe, na primeira visão temos a seguinte afirmativa, uma mãe pode ter vários filho(a)s, já na segunda visão, um filho(a) pode ter somente uma única mãe biológica. E o ultimo muitos-para-muitos. Onde vários elementos da entidade “A” se relacionam com vários outros elementos de “B”. Exemplo: muitos acadêmicos cursam muitas disciplinas, mas alguns acadêmicos podem estar cursando uma única ou mais disciplinas. Uma disciplina é cursado por muitos acadêmicos, ou nenhum. O relacionamento de muitos-para-muitos, logo será “quebrado” pelas normativas e se tornara um relacionamento de um-para-muitos.
Alguns atributos podem ter certas restrições como aceitar ou não valores nulos, ter uma valor padrão caso valor seja nulo, existe também um atributo que recebe o nome de chave primaria que é capaz identificar exclusivamente cada ocorrência de uma entidade, sendo que uma chave primaria nunca pode ter um valor nulo.
* Dependência de existência.
* Dependência de identificador.
“Dizemos que uma entidade é fraca se um desses dois tipos de dependência se verificar entre uma entidade A e uma entidade B.”(COUGO, 1997, pg.53).
1 comment December 18, 2008
Orientação a objetos
O conceito de programação orientada por objetos não é novo. No final da década de 60, a linguagem Simula67, desenvolvida na Noruega, introduzia conceitos hoje encontrados nas linguagens orientadas a objetos como encapsulamento. Em meados de 1970, o Centro de Pesquisa da Xerox (PARC) desenvolveu a linguagem Smalltalk, a primeira totalmente orientada a objetos. No início da década de 80, a AT&T lançaria a Linguagem C++, uma evolução da linguagem C em direção à orientação a objetos.
A programação orientada a objetos simula atributos e comportamentos(métodos) de coisas do mundo real, tirando apenas a característica principais, dessa forma se constrói um objeto que ira se relacionar/comunicar com outros dentro de um sistema . Diferente da programação estruturada onde tudo se baseia em funções, parâmetros de retorno e a descentralização, (caso ocorra um mudança em alguma função sera necessário mudar em todas as outras que tiverem alguma dependência dessa “função subprincipal”, por exemplo onde um parâmetro era do tipo int e agora passou a ser string as mudanças serão em varias partes do código acarretando na prática mais erros ou incompatibilidades. Já na programação orientada a objetos basta apenas mudar o tipo dos atributos, pois todas as classes descendentes irão herdar a mudança de tipo ou ainda sobrecarregar o método afim de manter compatibilidade com versões antigas do mesmo.
A programação orientada a objetos tem como principais objetivos reduzir a complexidade no desenvolvimento de software e aumentar sua produtividade. A análise, projeto e programação orientadas a objetos são as respostas para o aumento da complexidade dos ambientes computacionais que se caracterizam por sistemas heterogêneos, distribuídos em redes, em camadas e baseados em interfaces gráficas.
Conceitos
-
Visibilidade/Modificadores: existem três tipos de visibilidade para atributos/métodos são eles private, protected e public.
-
Private: O mais restrito de todos, apenas a classe proprietária pode acessar seu métodos/atributos.
-
Protected: O meio termo entre private e public, somente a classe proprietária e suas descendentes pode visualizar esse tipo atributos/métodos.
-
Public: De livre acesso ou seja, qualquer classe pode acessar seus atributos/métodos.
-
Abstração: Criação de um modelo de dados abstraindo(coletando/observando) as principais características e comportamentos de um objeto do mundo real.
-
Classe: Coleção de atributos e métodos de uma abstração da realidade, que definem o objeto e seu comportamento. São divididas em dois grupos classes concretas que geram instancias e classes abstratas que não geram instancias.
-
Objeto: Em POO1 é uma instancia de classe, já na AOO2 pode ser qualquer coisa do mundo real.
-
Encapsulamento: Permite que tanto atributos e métodos sejam privados de determinada classe, sendo que somente ela terá acesso a tais, Dessa forma garante o isolando de um possível erro não propagando-o. “ O mecanismo de encapsulamento é a forma de restringir o acesso ao comportamento interno do objeto”. (BEZERA, 2003, pg.9).
-
Herança: Reutilização de atributos e métodos comum entre classes. “Existem diversas similaridades entre diferentes classes. Com muita freqüência duas ou mais classes compartilharam os mesmo atributos e/ou os mesmo métodos. Pelo fato de não querermos ter que fica escrevendo o mesmo código varias vezes, necessitamos tirar vantagens destas similaridades”. (AMBLER, 1998, pg.8).
-
Polimorfismo: A capacidade do objeto/atributo/método, de ter varias formas distintas porém pertencendo a mesma classe(sobrecarga) ou hierarquia(sobrescrita). “O polimorfismo indica a capacidade de abstrair varias implementações diferentes em uma única interface” (BEZERA, 2003, pg.10). Polimorfismo geralmente é expressado por uma relação de generalização ou especialização sobre um(a) classe/objeto/método.
-
Mensagem: A forma como os objetos comunicam-se uns com os outros.
-
Persistência: Garante a integridade (estado atual) do objeto, após ser destruído da memoria, quando o objeto foi instanciado novamente ele carregará todos os valores de atributos que tinha antes de ser destruído. Um bom exemplo é restauração de abas do firefox3. “A persistência descreve as questões de como salvar os objetos para armazenamento permanente” (AMBLER, 1998, pg.9).
-
Coesão: Ocorre quando uma classe interage com outra porém não conhece os detalhes de implementação dessa ultima.
-
Acoplamento: É a medida de quanto uma classe depende de outra. Em um projeto orientado a objetos é recomendável tem baixo acoplamento e alta coesão, pois a manutenção de código será mais fácil e flexível a algumas mudanças.
Add comment December 18, 2008