quarta-feira, 27 de março de 2013

Windows Server 2008 - Conhecendo e instalando


A presente postagem tem o objetivo de fazer uma breve introdução ao sistema operacional da Microsoft – Windows Server 2008. Apresentando seus requisitos mínimos para execução, versões do mesmo e por fim o processo de instalação.


REQUISITOS MÍNIMOS
Corresponde as necessidades básicas/mínimas de hardware que o sistema operacional necessita para ser executado. No caso do não cumprimento dessas exigências, há a possibilidade de falhas de execução, intermitência de serviços, paralisações ou simplesmente à não execução do sistema operacional. Os problemas decorrente do não cumprimento dos requisitos mínimos geram perda de tempo, consequentemente gastos operacionais, reflete falta de atenção e planejamento, além de ressaltar em mau qualidade da prestação de serviço.
O ideal é sempre se reportar ao fabricante para obter informações sobre os requisitos mínimos necessário para a instalação de qualquer software, seja ele um aplicativo ou um sistema operacional. Mais adiante são apresentados os requisitos mínimos para instalação do Windows Server 2008, fornecidos no site da Microsoft. Obtenha mais informações em: http://technet.microsoft.com/pt-br/windowsserver/bb414778.aspx.


Fonte: http://technet.microsoft.com/pt-br/windowsserver/bb414778.aspx.





VERSÕES
Para evitar a subutilização de recursos, gastos e implementações desnecessárias é que existe versões diferentes do sistema operacional, objetivando atender da melhor forma possível as necessidades do usuário/empresa. Para o Windows Server 2008, foram desenvolvidas várias versões, são elas:
  • Windows Server 2008 Standard: direcionado para empresas de pequeno e médio porte;
  • Windows Server 2008 Enterprise: direcionado para empresas de grande porte;
  • Windows Server 2008 Datacenter: direcionado para grandes empresas.
  • Windows Server 2008 Standard/Enterprise/Datacenter - Core: todas as versões anteriormente citadas possuem uma versão Core. Nessas versões Core a interação é toda via linha de comando, o que reduz consumo dos recursos, implicando em um sistema um pouco mais leve, e seguro.
Maiores informações sobre as versões do Windows Server 2008, segue duas fontes para consulta:


INSTALAÇÃO
É possível obter a versão para avaliação do Windows Server 2008 no site da Microsoft. Com o instalador em mão, é possível fazer a instalação direto na máquina física via CD ou pendrive. E para aqueles que preferem realizar teste via máquina virtual, basta utilizar o instalador convertido em arquivo .iso.


Inicialmente os arquivos de instalação serão carregados, como mostra a figura abaixo:

Fonte: próprio autor.
Nessa etapa é possível escolher o idioma, hora e configurações do teclado. Interessante observar a configuração correta para o teclado que estiver usado, nesse link é possível obter dicas para fazer essa identificação. Vale lembrar também que essas configurações podem ser alteradas após a instalação do sistema operacional. Depois das opções escolhidas, clique em avançar.

Fonte: próprio autor.

Clique em instalar agora.

Fonte: próprio autor.

Selecione a versão que mais se adequa as necessidade do ambiente que deseja administrar/gerenciar e depois clique em avançar. Caso tenha dúvidas sobre as versões, volte ao início desse post e faça uma releitura.

Fonte: próprio autor.

O correto é que seja lido todos os termos da licença de uso do sistema, essa é uma informação válida para todo e qualquer software. Depois marque a opção: aceito os termos da licença. E prossiga clicando em avançar.

Fonte: próprio autor.
Há duas opções de instalação:

  • Atualização: utilizado quando já existe um sistema operacional na máquina e deseja-se apenas fazer uma atualização de versão deste, ou seja, mantém arquivos.
  • Personalizada (avançado): utilizado nos casos em que se deseja fazer a instalação pela primeira vez do sistema operacional na máquina ou formatação, ou seja, não mantém arquivos.
Obs.: em todos os casos deve-se fazer backup dos arquivos.


Fonte: próprio autor.

Nessa etapa é possível visualizar o tamanho do HD da máquina e criar partições, se desejado. Caso não haja interesse em fazer partições do HD, basta prosseguir clicando em avançar. Do contrário clique em opções de unidade (avançadas).

Sabendo que o particionamento é uma boa prática, é que neste post será feita uma demonstração desse procedimento.

Fonte: próprio autor.

Perceba que outras opções passaram a ser apresentadas.
Para criar uma partição no HD clique em novo.

Fonte: próprio autor.

Você informará qual o tamanho desejado para a criação da partição. Vale lembrar que a primeira partição será a unidade C: onde o sistema operacional será instalado. Deve-se considerar também que a partição onde será instalado o sistema operacional deve dispor de no mínimo 8 GB conforme a informação disposta no início deste post em requisitos mínimos. Depois de definir o tamanho da partição clique em aplicar.

Fonte: próprio autor.

Depois do procedimento anterior, será apresentada a partição criada.

Obervações:

  • Caso tenha interesse em estender uma partição, basta selecionar a partição que deseja aumentar, clicar em estender, e informar o tamanho total que deseja para essa partição a partir de agora (nesse caso é necessário que haja espaço em disco não alocado).
  • Para excluir uma partição, basta seleciona-la e clicar em excluir.
  • Caso tenha interesse em criar outras partições, basta continuar criando-as no espaço ainda não alocado.
  • Sugiro que essas experimentações sejam feitas.

Depois das partições criadas, prossiga em avançar.

Fonte: próprio autor.

Agora é só esperar o sistema ser instalado. Haverá um momento em que a máquina será reiniciada, mas prosseguirá a fase final da instalação.

Fonte: próprio autor.

Em seguida deverá clicar em ok, para atribuir uma senha ao usuário administrador do sistema, que possuirá esse nome por padrão.

Fonte: próprio autor.

Informe a senha que deseja atribuir ao usuário administrador e em seguida confirme-a digitando-a novamente. Tecle enter ou clique na seta para concluir.

Fonte: próprio autor.

Será retornada a mensagem de que a senha foi alterada. Clique em Ok para prosseguir.

Fonte: próprio autor.

E por fim seja muito bem-vindo a área de trabalho do Windows Server 2008.

Fonte: próprio autor.

Espero que possa ter contribuído com esse post, e mais configurações sobre o Windows Server 2008 serão postadas posteriormente.

Bons estudos!











terça-feira, 19 de março de 2013

Entendendo um pouco sobre virtualização



Para realizar uma abordagem mais explicita do que é a virtualização, é interessante fazer uma breve reflexão do que se entende por máquina e como ela atende as solicitações do usuário. É normal que um usuário comum enxergue a máquina como simplesmente um equipamento que atenda as suas solicitações, e não deveria ser diferente, o objetivo é fornecer o máximo possível de praticidade em sua utilização, sem que esse venha a ter a necessidade de conhecimentos técnicos e complexos sobre o funcionamento do hardware.
Segundo Lowe (2009), um computador compreende do trabalho em conjunto do hardware e software. Em outras palavras, o hardware e software não trabalham separadamente, pelo contrário, eles são ligados e dependentes um do outro. Como já é esperado, em nível de hardware um computador possui vários componentes, como Central Processing Unit (CPU), memória, disco rígido, entre outros elementos. Agora em se tratando de software o computador requer um sistema que tenha a capacidade de gerenciar todos os recursos que o mesmo tenha a sua disposição e o torne prático de utilizar.
Tanenbaum (2009) comenta que o sistema computacional é visto como uma série de camadas partindo da mais complexa (inferior) para a mais amigável (aplicativos). Nesse sistema hierárquico em camadas, quem se encontra na camada mais baixa é o hardware com todo o seu nível de complexidade a ser compreendido pelo sistema operacional que vem logo a acima, e mais adiante os programas de interação com o usuário e os softwares aplicativos como ilustrado na figura apresentada abaixo.

Sistema computacional em camadas

Ao lado esquerdo da figura são indicados dois modos de operação para os softwares, o primeiro equivale ao Modo Núcleo designado para o sistema operacional e para os demais softwares o Modo é Usuário. Tanenbaum (2009) diz ainda que no Modo Núcleo a CPU disponibiliza todas as instruções que pode executar, por outro lado no Modo Usuário são disponibilizados apenas um subconjunto das instruções que o mesmo pode executar. A diferenciação entre os modos de operação acontece porque o sistema operacional é um gerenciador de todos os recursos do hardware, funcionando como uma ligação entre os softwares do usuário e o hardware propriamente dito.
Quando o usuário solicita, por exemplo, salvar um arquivo, o software usuário por si só nada faz, apenas envia uma requisição ao sistema operacional o qual interage com o hardware solicitando que esse por fim atenda ao pedido. Mas enquanto o usuário continua a utilizar o computador, o mesmo usa muito pouco da capacidade dos recursos disponíveis nesse equipamento, principalmente nos dias de hoje em que dispomos de máquinas cada vez mais robustas até mesmo para uso doméstico.
Lowe (2009) explica que para compreender a ociosidade dos computadores é preciso saber os conceitos sobre Hertz (Hz). Um Hz é um cliclo de algo a cada segundo. O segundo ponteiro do relógio desloca-se na verdade de um tique por segundo. Cada movimento é um ciclo completo, portando o segundo ponteiro opera na velocidade de um ciclo por segundo ou 1 Hz.
Associando a abordagem de Lowe e a ociosidade dos computadores, suponhamos que um usuário digite um caractere por segundo o que corresponde a 8 bits, equivalendo a uma velocidade de 8 bits por segundo ou ainda 8 Hz.
Alegando que o processador do computador do usuário em questão tenha a capacidade de processar ao menos um bilhão (1.000.000.000) Hz, ou seja, 1 GHz, o mesmo estará usando apenas 0,000000008% dos seus recursos disponíveis.
Sabendo da ociosidade das máquinas e como ocorre à interação homem-máquina, é chegada a hora de questionar o que pode ser feito para melhorar ainda mais a interação, otimização e eficiência dos recursos computacionais?
Daí eis que surge o conceito de virtualização em meados de 1965 despertada pela ideia de compartilhamento de tempo entre os processos e mais ainda em 1972 quando a International Business Machines (IBM) produziu um Mainframe com capacidade de executar simultaneamente vários sistemas operacionais sendo esses controlados por um programa chamado de hypervisor.
Inicialmente a experiência em virtualização não obteve muita demanda diante dos custos exorbitantes dos equipamentos, sem falar que pouco mais adiante foi posta no mercado a Arquitetura Cliente/Servidoro que influenciou o consumo de equipamentos com menos capacidade de processamento, menor custo e podendo trabalhar interconectados independentes de sua localização geográfica por meio dos sistemas distribuídos e VPN.
O que trouxe a virtualização a ser retomada com tanto afinco nos dias de hoje, foi uma consequência da prática do padrão de utilização de máquina com apenas uma finalidade, esse procedimento é usado com o intuído de diminuir as possibilidades de falhas entre os softwares da mesma, o que pode comprometer os serviços disponíveis na rede. Lowe (2009) afirma que a prática de um serviço por máquina continuou porque ela limita os efeitos das falhas e as interrupções em um único aplicativo. Tendo por consequência a subutilização dos recursos computacionais, incentivando a indústria e retomar o foco em serviços direcionados a virtualização.
A virtualização consiste em separar o hardware do software, a Virtual Machine (VM) é constituída da combinação entre aplicativos e o sistema operacional, sendo levada a pensar que possui um hardware próprio, quando na verdade esse é compartilhado com outras máquinas.
Com a virtualização a máquina passa a usar melhor seus recursos computacionais, podendo serem executadas várias VMs e cada uma fornecendo um serviço diferente na rede. Caso uma VM venha a falhar, apenas o serviço disponibilizado por essa será paralisado e as demais permanecem funcional como se nada houvesse ocorrido, sem falar que a recuperação de problemas passa a ser resolvido em curto prazo.
Além de resolver drasticamente os problemas envolvendo ociosidade, redução de custo com hardware e tempo de recuperação de falhas, a virtualização traz outros benefícios como economia em contratos de manutenção, refrigeração e energia, além disso, diminui o espaço físico, pois uma mesma máquina pode virtualizar várias outras, ou seja, mesmo ocupando o espaço físico de uma única máquina ela poderá servir  como várias máquinas virtuais, ficando as desvantagens presa apenas ao hardware onde as VMs estão alocadas, caso não haja redundância e backups para as mesmas.


Referências bibliográficas: 


LOWE, William J. VMware Infrastructure 3 para leigos. 1 ed. Rio de Janeiro: Alta Books, 2009.

TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3 ed. São Paulo: Pearson, 2009.


sábado, 16 de março de 2013

Fish the old Chico - Peixe no Forno

Chegando a Semana Santa... época de comer bacalhau caro pra carambolas e tomar muito vinho!! Ô coisa boaaaa! mas prefiro um belo tucunaré e ou tilápia pescada no velho chico (Eita saudade da peste!!!), lógico com o vinho e velhos amigos!
Então vamos lá:

Itensbacklog - Ingredientes:

  • 2 Peixes Grandes (Utilizei um Tucunaré e uma Tilápia)
  • 2 Batatas pequenas
  • 1 Limão
  • 300g ou o suficiente de Camarão para encher a barriga dos peixes
  • 4 cabeças de alho
  • 1/2 cebola
  • Cuminho e alecrin a gosto
  • Sal a gosto
  • Azeite
  • Oregano
  • Papel Aluminio

Modo de Preparo:
Sprint 1 - Tempero:

Mamífero! Esprema o limão em um copo, adicione o sal e cuminho e alecrim a gosto e as 2 cabeças de lho amassadas.

Sprint 2 - Arrumando espaço no peixe:

Trate e lave os peixes, e aprofunde a cavidade visceral fazendo um corte junto a espinha dorsal do peixe para preencher com o camarão e batatas!
Feito isso, faça alguns talhos transversais no corpo do peixe(nos dois lados) para que o tempero penetre na carne. Cuidado para não furar os peixes!!!
Agora peque o tempero que foi feito na Sprint 1, e espalhe sobre o peixe e também dentro do mesmo, e deixe descansar....

Sprint 3 - Camarão com batatas:

Com o azeite, frite o camarão com o alho e a cebola picada, (lembre-se do sal), depois coloque-os em uma vasilha e misture com as batatas cortadas em cubos e o Orégano.

Sprint 4 - Enchendo o bucho dos peixes:

Vá empurrando a mistura de batatas e camarão no bucho e no corte feito perto da espinha dos peixes... depois , pegue o liquido do tempo que escorreu e coloque dentro tbm, e utilize palitos de dente para fecha-los.
Agora embrulhe para presente com o papel alumínio, peça uma travessa que comporte os 2 peixes a sua esposa e leve ao forno.... 
Após alguns minutos Puta que pariu esqueci o tempo que precisa ficar no forno!! ... mede pelo cheiro... abra a embalagem de alumínio, e deixe dourar.

Sprint 5 - Enchendo o Nosso Bucho:

Já que estamos na Semana Santa, pegue um bom vinho e vá testar se a receita ficou boa!!!



terça-feira, 5 de março de 2013

JTable: Como adicionar mensagem de "Não existe registros"

Pessoal! vejam como é simples adicionar uma mensagem de "Não existe(m) Registro(s)" em uma JTable.

Nesse exemplo vamos precisar usar o velho @Override (setinha verde ao lado do numero de linhas no eclipse), para reescrever o metodo paintComponent da JTable.

package com.blogspot.receitastecnologicas;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JFrame;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JViewport;
import javax.swing.table.DefaultTableModel;

public class EmptyMessage extends JFrame {

 /**
  * @receitas tecnologias
  */
 private static final long serialVersionUID = 1L;
 private JTable table;

 public EmptyMessage() {
  this.table = new JTable() {
   public boolean getScrollableTracksViewportHeight() {
    if (getParent() instanceof JViewport)
     return (((JViewport) getParent()).getHeight() > getPreferredSize().height);

    return super.getScrollableTracksViewportHeight();
   }

   /**
    * Metodo Reescrito.. quado a quantidade de linhas na tabela foir 0
    * , será pintado na JTable um icone eu um texto
    * */
   protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    if (getRowCount() == 0) {// Quando estiver usando o RowSorter
           // lembre-se do getViewRowCount()
     Graphics2D g2d = (Graphics2D) g;
     BufferedImage img = null;
     try {
      img = ImageIO.read(EmptyMessage.class
        .getResourceAsStream("icon.png"));
     } catch (IOException e) {
      System.out
        .println("Não foi possível carregar a imagem.");
     } catch (IllegalArgumentException e) {
      System.out.println("Imagem não encontrada!");
     }
     g.drawImage(img, 30, 30, 260, 160, null);
     g2d.setFont(new Font("Arial", Font.BOLD, 16));

     g2d.setColor(Color.BLACK);

     g2d.drawString("Nada por aqui!!!.", this.getWidth() / 3, 20);// Texto
                     // a
                     // ser
                     // exibido
    }
   }
  };
  this.table.setAutoCreateRowSorter(true);
  this.table.setFillsViewportHeight(true);
  // Quando for utilizar JTable Profissionalmente por favor use
  // AbstractTableModel
  this.table.setModel(new DefaultTableModel(new Object[][] { {
    "Receitas", "Tecnologicas" } }, new String[] { "Title 1",
    "Title 2" }));
  table.setComponentPopupMenu(new TablePopupMenu());
  this.add(new JScrollPane(table));
 }

 /**
  * Popup utilizado para add e remover linhas da table para mostrar o
  * funcionamento do metodo reescrito
  * */
 private class TablePopupMenu extends JPopupMenu {
  private final AbstractAction addAction = new AbstractAction("add") {
   @Override
   public void actionPerformed(ActionEvent e) {
    JTable table = (JTable) getInvoker();
    DefaultTableModel model = (DefaultTableModel) table.getModel();
    model.addRow(new Object[] { "Receitas",
      "Tecnologicas " + model.getRowCount() });
    Rectangle rect = table.getCellRect(model.getRowCount() - 1, 0,
      true);
    table.scrollRectToVisible(rect);
   }
  };
  /** Deleta linha selecionada */
  private final Action deleteAction = new AbstractAction("delete") {
   @Override
   public void actionPerformed(ActionEvent e) {
    JTable table = (JTable) getInvoker();
    DefaultTableModel model = (DefaultTableModel) table.getModel();
    int[] selection = table.getSelectedRows();
    if (selection == null || selection.length <= 0)
     return;
    for (int i = selection.length - 1; i >= 0; i--) {
     model.removeRow(table.convertRowIndexToModel(selection[i]));
    }
   }
  };

  public TablePopupMenu() {
   super();
   add(addAction);
   addSeparator();
   add(deleteAction);
  }

 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  EmptyMessage emptyMessage = new EmptyMessage();
  emptyMessage.setTitle("JTable Empty Message");
  emptyMessage.setLocation(50, 50);
  emptyMessage.setSize(300, 300);
  emptyMessage.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  emptyMessage.setVisible(true);

 }

}