Tuesday, March 24, 2009

Total Cost of Ownership – TCO, uma ferramenta aplicável a todos os segmentos que utilizem TI.

Total Cost of Ownership – TCO, uma ferramenta aplicável a todos os segmentos que utilizem TI.
Estudo de caso centro de documentação histórica



Kayo Delgado Medeiros de Almeida¹, José Augusto Teixeira de Lima Júnior¹, Carlos Vítor de Alencar Carvalho¹, Magno Fonseca Borges².

1 - USS – Universidade Severino Sombra / Sistemas de Informação, Av. Expedicionário Oswaldo de Almeida Ramos 280 Vassouras - RJ, kayodelgado@gmail.com, jaugusto.junior@uol.com.br e cvitorc@gmail.com.

2 - USS – Universidade Severino Sombra / Centro de Documentação Histórica, Rua Barão do Amparo nº 02, Centro, Vassouras. Vassouras - RJ, comunidade.escrava@gmail.com

A necessidade de utilização de TI (Tecnologias da Informação) no contexto empresarial se tornou há algum tempo, inevitável e de extrema necessidade para que as organizações se mantenham vivas e competitivas no mercado. Todavia para qualquer segmento de negócios, gera-se um custo que deve ser muito bem analisado para que não seja exorbitante e pesado para os empresários.
O que mais incomoda nas empresas quando planejam a adoção de TI é o fato de qual plataforma operacional e de aplicativos utilizar no parque de hardware, afinal de contas é o software o responsável por grande parte dos gastos com infra-estrutura de TI.
Dentro deste cenário, cabe a indagação que ronda nas mentes e principalmente nos departamentos financeiros das empresas: vale a pena pagar grandes quantidades de licenças só pelo fato de estar acostumado com algum tipo de software? A realidade é que o brasileiro é condicionado a uma cultura e a mudança dessa cultura é incômoda e muitas vezes difícil de acontecer. Juntamente com esta visão, a questão econômica impulsiona o mercado diretamente para a utilização de computadores previamente preparados com ambientes operacionais piratas, que consigo, trazem outros aplicativos tais como editores de textos, planilhas de cálculos, editores de apresentações, pequenos bancos de dados, editores de imagens dentre muitos outros existentes.
A grande questão, é que aos poucos, os órgãos de proteção contra a pirataria atuam de maneira mais rígida forçando empresas a licenciarem seus softwares ou recorrer, para solucionar tais problemas financeiros e legais, à cultura do “software livre”.
Software Livre, segundo a definição criada pela Free Software Foundation é qualquer programa de computador que pode ser usado, copiado, estudado, modificado e redistribuído sem nenhuma restrição. Portanto, além de ter uso livre do software você pode melhorá-lo, adaptando-o para sua realidade. A princípio não é uma tarefa fácil, mas tudo depende de cultura e costume.
. Atualmente, com a fiscalização mais intensa por parte da justiça, nenhuma loja que integra máquinas, instala sistemas operacionais piratas, normalmente optam por alguma distribuição do Linux ou utilizam o Windows Original, sendo que a diferença de valor entre as máquinas agregado com o valor de cada um dos sistemas é considerável.
O objetivo deste trabalho não é desmerecer ou valorizar um software ou outro e sim apresentar softwares livres como solução e redução de TCO (Custo Total de Propriedade)1 para as empresas e em específico para o Centro de Documentação Histórica da Universidade Severino Sombra.
Para este estudo de caso, foi traçado uma comparação entre dois sistemas operacionais e dois pacotes de programas de escritório sendo eles: Microsoft Windows XP Professional SP3 x Ubuntu 8.04 LTS e Microsoft Office 2007 x OpenOffice 2.4. Esses softwares são os mais conhecidos em nosso país, sendo que os pacotes da Microsoft são os mais usados e exigem pagamento de licença para uso.
A situação de simplifica quando fala-se em diferença entre dois equipamentos iguais com valores agregados pelo software de Sistema Operacional utilizado. Para ilustrar melhor o quão vantajoso e viável é a utilização do software livre como solução, foi levantado um caso real para ilustrar o que realmente acontece.
No estudo de caso foram desconsiderados valores de equipamentos, e o foco foi somente o comparativo de custo entre os softwares.
O Centro de Documentação Histórica (CDH) é um órgão mantido pela Universidade Severino Sombra que tem por finalidade a preservação, estudo, divulgação de documentos históricos da Região do Vale do Café e que recentemente vem recebido o apoio da FAPERJ (Fundação de Apoio à Pesquisa do Rio de Janeiro) para aumentar as condições de infra-estrutura de TI e pesquisa . Devido a um projeto de iniciação científica foram adquiridos 16 microcomputadores e 2 notebooks, e a primeira questão a ser tratada foi sobre quais seriam os softwares a serem utilizados, sendo que necessariamente todos deveriam ter instalados o Sistema Operacional e um Pacote Office. A primeira tarefa desenvolvida foi traçar comparativos entre os softwares para saber se os mesmos seriam equivalentes em questão usabilidade e gerenciamento. A segunda, foi a questão financeira, pois o custo da licença do Microsoft Windows XP Pro gira em torno de R$ 340,00 e do Microsoft Office 2007 está em R$ 399,00 a versão Home & Student (básica, contendo o Word2007, Excel2007, Power Point2007 e o One Note2007) e a versão full fica em R$ 1.599,00 com mais recursos inclusive o Access2007 e o Outlook2007. Levando em conta a implantação do Sistema Operacional Windos XP Pro com a utilização do Office 2007, optando assim por uma configuração dos produtos da Microsoft, o CDH teria um custo de R$ 14.502,00 equivalente a 18 vezes o valor da licença do Sistema Operacional acrescido do valor de licença de 01 licença do Office 2007 Full e 17 licenças do Office 2007 Home & Student.
Uma outra alternativa seria a implantação do Sistema Operacional Windos XP Pro com a utilização do OpenOffice, o CDH teria um custo de R$ R$ 6.120,00 equivalente a 18 vezes o valor da licença do Sistema Operacional. Através deste estudo fica claro que os valores passam a ser muito significativos para investimento de qualquer empresa, mas caso se faça necessário, em diversos aspectos, se torna inevitável. Outro ponto analisado foi que, se diante de tal investimento, haveria a possibilidade de reduzir esse custo ao mínimo possível ou até mesmo a zero com resultados equivalentes ou até mesmo superiores e como solução a custo zero teríamos a implantação do Ubuntu 8.04 LTS com a utilização do OpenOffice. Para tal análise foi colocado na balança as características do Windows XP e do Ubuntu 8.04 LTS juntamente com o OpenOffice. Chegamos a conclusão que a utilização do software livre cobriria todas as necessidades do Centro de Documentação Histórica reduzindo a zero o custo com softwares.
Mesmo sendo mais trabalhoso, no princípio, a utilização do software livre provê não só a redução de custos mas também uma mudança de cultura fazendo que profissionais e acadêmicos possam ampliar conhecimentos e experiência.

Agradecimentos: Os autores agradecem à FAPERJ pelo auxílio financeiro recebido e a pela bolsa de iniciação científica recebido pelo primeiro autor.

Saturday, May 3, 2008

Lendo e escrevendo arquivos em TXT

Lendo e escrevendo arquivos em TXT

import java.io.BufferedReader; //buffer de leitura
import java.io.BufferedWriter; // buffer de escrita
import java.io.FileReader; //ler arquivos
import java.io.FileWriter; // escreve arquivos


class RW{
private BufferedReader in; // pegar txt para ser lido
private String text, line, way;
private BufferedWriter out; //para escrever arquivos txt
private ArrayList element;

public String readRoot() throws IOException {
try {
this.setIn(new BufferedReader(new FileReader(
"arquivo.txt")));
//carrega o arquivo para leitura
this.setLine(this.getIn().readLine());
//a string line recebe a primeira linha do arquivo
while(this.getLine() != null){
this.setText(this.line);
this.setLine(this.getIn().readLine());
//line recebe a a próxima linha do arquivo txt e
//isso se repete ate o final do documento
}
this.getIn().close(); //encerra o arquivo.
}
catch (IOException e){
//tratamento do erro
}
return this.getText();
}
public void writeRoot() {
try{
this.setOut(new BufferedWriter(new FileWriter(
"arquivo.txt")));
// cria arquivo txt
this.getOut().write(variável_com_
conteúdo_a_armazenar);
}
this.getOut().close(); // encerra o arquivo
}
catch (IOException e) {
//tratamento de erro
}
}
}


É isso ae gente... qualquer dúvida, ou sejustão é soh pedir!!!

Thursday, March 27, 2008

Evento ActionListener

Bom, estou postando um código de evento para o pessoal começar a dinamizar as aplicações!

Mostrarei o uso do ActionListener.

O ActionListener é uma classe de interface que recebe um evento ou ação. O componente que utilizado com o método addActionListener dispara eventos nele programado.

Vamos ao exemplo de estrutura:

OBS: é necessário importar o ActionListener e o ActionEvent

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

O ActionEvent é responsável pela captura da ação e sua interpretação, exe: Clique no botão ou um movimento do mouse. Assim ele é tratado no ActionListener e disparando o evento desejado.


Componente.addActionListener(
new ActionListener() {
public void actionPerformed( ActionEvent event ) {
//código que deseja exucutar ao acionar o evento
}
}
);



Contextualizando:
Suponha que você tenha um JButton chamado botao e quando você clicar nele, seu desejo seja que ele some 2 + 2 e imprima o resultado.

Assim ficaria:

botao.addActionListener(
new ActionListener(){
public void actionPerformed( ActionEvent event ){
System.out.println(2 + 2);
}
}
);



Espero ter ajudado... qualquer correção de alguma explicação, favor postar nos comentários os ajustes...

Todas as opiniões e correções são bem vindas!

Monday, March 24, 2008

O Alicerce

Não adianta nada levantar paredes sem ter o alicerce!

Então vamos aos detalhes que serão suporte para você programar em plataforma JAVA!

1ºPasso:
Baixar e instalar o J2SDK, componente essencial para compilação e desenvolvimento.
Baixe aqui o J2SDK

2ºPasso:
Baixar alguma ferramenta de edição do código fonte. Caso você seja guerreiro e queira usar bloco de notas... fique a vontade!
Alguns nomes de editores FREE:
JCreator LE
NetBeans
Eclipse Europa

3ºPasso:
Está esperando o que?? É só começar a programar... não é nenhum bicho de sete cabeças!

OBS: em caso de dúvidas sobre o programa de edição, recomendo que leia sobre eles no próprio site do fabricante... ou se preferir pede ajuda ao Dr. google!

De ajuda lhes deixo um código de teste, o mais famoso em JAVA:

crie um arquivo chamado HelloWorld.java

// Ínicio do programa

public class HelloWorld {
public static void main (String [] args) {
System.out.println("Hello World");
}
}

// Fim

Obs: O JAVA é sense casitive e "//" serve para comentar a linha!

Boa sorte!

Hello World!

Quem nunca passou por isso? Hello World!
Bom por mais bobo que seja, nossa primeira experiência em Java pode ser capaz de nos levar ao amor incondicional a essa linguagem de programação ou ao ódio mortal!

Vamos à algumas definições:

Linguagem de Programação:
Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias.
Ref.: Wikipédia

JAVA:
Java é uma linguagem de programação orientada a objeto desenvolvida na década de 90 pelo programador James Gosling, na empresa Sun Microsystems. Diferentemente das linguagens convencionais, que são compiladas para código nativo, a linguagem Java é compilada para um "bytecode" que é executado por uma máquina virtual.
Ref.: Wikipédia

Máquina Virtual:
Na ciência da computação, máquina virtual é o nome dado a uma máquina, implementada através de software, que executa programas como um computador real.
Uma máquina virtual (Virtual Machine – VM) pode ser definida como “uma duplicata eficiente e isolada de uma máquina real”. A IBM define uma máquina virtual como uma cópia isolada de um sistema físico, e esta cópia está totalmente protegida.
Ref.: Wikipédia

Bytecode:
Em ciência da computação, bytecode (traduzindo ao pé da letra, código em bytes - não confundir com código-máquina) é o resultado de um processo semelhante ao dos compiladores de código-fonte que não é imediatamente executável. Em oposição, o bytecode irá ser interpretado numa máquina virtual, que fará a execução. Assim, o bytecode é um estágio intermédio entre o código-fonte (escrito numa linguagem de programação específica) e a aplicação final, sendo a sua vantagem principal a dualidade entre a portabilidade — o bytecode irá produzir o mesmo resultado em qualquer arquitectura — e a ausência da necessidade do pré-processamento típico dos compiladores — o bytecode é encarado como um produto final, cuja validação da sintaxe e tipos de dados (entre outras funções dos compiladores) não será necessária.
Ref.: Wikipédia

Orientação a Objetos:
A orientação a objetos, também conhecida como Programação Orientada a Objetos (POO) ou ainda em inglês Object-Oriented Programming (OOP) é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos.
Ref.: Wikipédia