sábado, 28 de junho de 2014

Empregabilidade - Linux X Windows

Não pretendo abrir qualquer discussão sobre esses dois sistemas operacionais, é como tentar discutir entre Flamengo x Fluminense, SBT x Globo ou Star Wars x Star Trek. O que pretendo com esta postagem é mostrar que o Linux vem se tornando um sistema mais fácil porém os usuários continuam complicando a vida com seus hábitos.

Primeiro vejamos a instalação, porque existem milhares de distribuições (distros)? E o pior, cada uma é tão excelente quanto sua "concorrente". Isso confunde o leigo, então vamos ficar apenas com algumas delas e faça sua escolha devido a necessidade:

  • Ubuntu, distro voltada ao "povão", ou seja, para a grande maioria dos usuários, fácil e acessível, procura se tornar a mais amigável possível.
  • Linux Mint, é a concorrente direta do Ubuntu, colocando em termos práticos digamos que procura ser a versão mais bonita e elegante. 
Em uma analogia rápida diria que o Ubuntu tenta atrair usuários Windows enquanto que o Linux Mint usuários MacOS.

  • Red Hat ou Oracle Linux, duas grandes empresas por trás dessas distribuições e voltada para um público/máquinas totalmente profissional, ou seja, exclusivamente para empresas. Pretende rodar um Servidor de Dados, montar um repositório para nuvem, gerenciar sua empresa através de um ERP, opte por uma dessas.
  • CentOS ou Fedora, ambas garantem um bom lugar no mercado graças a distribuição Red Hat, o que tem a ver? No servidor da empresa existe uma distro Red Hat só que no consultor que fornece a manutenção vai ter provavelmente uma dessas duas distribuições.
  • Slackware ou Debian, boa parte das distribuições citadas anteriormente tiveram sua origem em uma dessas duas, são as mais "geeks" e voltadas apenas para o usuário super profissional.
Para minha máquina optei pelo Ubuntu 14.04, e então começaram meus problemas. E além da distribuição, percebi que Usuários Windows e Linux são bem diferentes.
Sou um usuário Windows (desde a versão 3.0) e tive que mudar (adaptar) alguns costumes. E é neste ponto que gostaria de focar esse artigo:
  • Usuários Windows não se veem em uma única pasta dentro do Sistema Operacional, eles se veem em todas as partes. A versão 98 até tentou criar este conceito com a pasta users (minhas músicas, bibliotecas, ...) mas quase ninguém usa isso.
  • Usuários Linux possuem claramente o conceito da pasta home (existe um comando para retornar ao diretório raiz: cd ~), não que eles não possam atravessar essa fronteira, mas não existe o porquê de fazer isso.
  • Usuários Windows não sabem quem são dentro do sistema, não existe nem este conceito de "usuário", são simplesmente uma entidade no sistema e esse é a sua casa, são deuses, administradores, instalam e removem ao bel prazer.
  • Usuários Linux sabem exatamente quem são (existe um comando para isso: whoami) e só usam o super usuário em ocasiões totalmente necessárias.
  • Usuário Windows odeiam a janela de comandos, e muitos nem sabem os comandos DOS, essa janela só é usada em último dos casos e por alguém que conhece muito do sistema.
  • Usuários Linux acham que todos os problemas do sistema se resume a abrir a janela de terminal (sim, também existe um atalho para isso Ctrl+Alt+T), é muito raro perguntar algo para uma pessoa deste mundo e não receber como resposta: abra a janela de terminal e...
  • Usuários Windows instalam um software por impulso (ou para testá-lo/conhecê-lo) resultado que o sistema pode acabar contendo pastas que não são mais usadas ou lixo deixado por programas, a solução? Softwares de limpeza como o CCleaner ou Glary Utilities.
  • Usuários Linux instalam somente os programas necessários e reconhecidamente úteis. Pastas perdidas é quase uma heresia, sabem exatamente o que tem no sistema.
Não estou dizendo que um desses usuários é melhor do que o outro, quero apenas mostrar as diferenças que tive que reconhecer para passar de um mundo ao outro. E o que sei é que vários anúncios de emprego pedem pessoas com conhecimento em ambos os mundos (e se quiser conhecer o MacOS melhor ainda pois terá um diferencial). 

No meu site oficial disponibilizo várias dicas que aprendo ao longo dessa minha jornada no Ubuntu, seja muito bem vindo a desfrutá-las.

Obrigado e até a próxima
Fernando Anselmo


sábado, 21 de junho de 2014

Projeto - Metodologia SOA

Algumas postagens atrás, publiquei um artigo sobre a pós que estou cursando sobre Gestão Empresarial. É muito comum para quem possui uma empresa ouvir falar de algumas siglas da informática, tais como, ERP, CRM, ECM, BPM e SOA. Como gestores de informática devemos estar por dentro de tais conceitos (principalmente ao sermos questionados). Nesta postagem pretendo tratar especificamente de SOA.


Para aqueles que vivem apenas de linguagens de desenvolvimento, SOA é sigla para "Larga esses códigos que o mundo está mudando", só que oficialmente é sigla para "Arquitetura Orientada a Serviços". Tudo lindo e maravilhoso, mas o que isso quer dizer? Isso quer dizer que a análise será realizada de modo diferente. A metodologia de SOA envolve os seguintes passos:
  1. Inventário de todas as aplicações existentes e funcionalidades que podem ser expostas como serviço.
  2. Um modelo consistente de mensagens (Realiable Messaging - RM).
  3. Utilização (ou criação) de adaptadores para integralização dos serviços.
  4. Exposição dos serviços e/ou APIs.
  5. Governar, assegurar e medir:
    • Centralizar as políticas de acesso.
    • Aplicar segurança em todos os níveis.
    • Controlar os produtos através do versionamento.
    • Monitorar os processos (Business Activity Monitoring - BAM).
  6. Orquestrar, ou definir o fluxo de execução dos serviços.
Apenas para os mais leigos, SOA não é uma ferramenta é uma metodologia, sendo assim pode ser implementado por várias ferramentas e entre elas muitas são Open Source (não pense que tudo na vida é pago).

Obrigado e até a próxima,
Fernando Anselmo

Segue o endereço para quatro excelentes ferramentas Open Source:

BPM - Bonita Soft
ECM/CMS - Alfresco
ERP - OpenBravo
CRM - Openia (é um módulo para o OpenBravo).

terça-feira, 17 de junho de 2014

Projeto - UML - Relacionamentos

Como professor sei que uma das coisas mais confusas da UML 2.0 são os relacionamentos (obrigado a Russ Jackson pelas ideias), primeiro vejamos sua simbologia:

Para esclarecer esses 5 tipos de relacionamentos que podem ocorrer entre duas classes permita-me explicá-los através de um exemplo em linguagem Java:
  • Dependência - Ocorre quando uma classe se utiliza de outra, em um relacionamento muito fraco, sem conhecer nada do objeto de origem da classe.
public class A {
  public void doSomething(B b) { }
}
  • Agregação - Ocorre quando uma classe se utiliza de outra de modo "fraco", é também conhecido como "has a" e a classe de origem solicita as informações do objeto. É o tipo mais comum de representação do "Encapsulamento" com os métodos modificadores (Get/Set).
public class A {
  private B b;
  public void setB(B b) { this.b = b; }
  public void getB() { return b; }
}
  • Composição - Este já é um relacionamento mais "forte" entre duas classes, e é a classe hospedeira que define o objeto resultante. Normalmente os objetos são iniciados (construídos) através do construtor da classe.
public class A {
  private B b;
  public A() {
    b = new B();
  }
}
  • Herança ou Generalização - Quando uma classe herda as características de outra classe, também conhecido como relacionamento "is a".
public class A { }
public class B extends A { }
  • Realização - Ocorre na implementação de uma interface por uma classe.
public interface A { }
public class B implements A { }

Obrigado e até a próxima
Fernando Anselmo

sábado, 7 de junho de 2014

Empregabilidade - Quantos sistemas operacionais você conhece?

O blog How to geek publicou um interessante artigo sobre os 10 sistemas operacionais que podem ser utilizados em qualquer PC (não são 8 distros de Linux, Windows e Mac), provavelmente você nunca ouviu (ou utilizou) a maioria deles. O autor deste artigo é Chris Hoffman e apenas o traduzi para o português (acesse aqui o texto em inglês), então pegue sua Virtual Machine e teste os que mais lhe agradarem...


Linux, FreeBSD, e outros
Nenhuma lista de sistemas operacionais alternativos para o PC poderia estar completa sem o Linux. É o sistema operacional alternativo PC. Linux vem em muitos sabores diferentes, conhecidas como distribuições (N.T. abreviadas para distros) Linux. Ubuntu e Mint são alguns dos mais populares. Se quiser instalar um sistema operacional não-Windows em seu PC e realmente usá-lo, você provavelmente deverá escolher um Linux. Linux é um sistema operacional Unix-like, e há outros sistemas operacionais de código aberto como o FreeBSD lá fora. FreeBSD utiliza um kernel diferente, mas usa muito do mesmo software que é encontrado em uma distribuição típica. A experiência em usar o FreeBSD em um PC desktop será bastante similar.

Chrome OS
Construído sobre o kernel do Linux, mas substitui o desktop e o software na camada de interação com o usuário através de um ambiente de trabalho especializado que só pode executar o navegador Chrome e aplicativos Chrome. Chrome OS não é realmente um sistema operacional de PC de uso geral - em vez disso, é projetado para ser pré-instalado em laptops especializados, conhecidas como Chromebooks (N.T. a um preço de U$ 249,00). No entanto, existem maneiras de instalar o Chrome OS no PC.

SteamOS
SteamOS da Valve ainda está em versão beta. Tecnicamente, é apenas mais uma distribuição Linux e inclui a maior parte do software padrão do Linux. No entanto, SteamOS está sendo posicionado como um novo sistema operacional de jogos no PC. O velho desktop Linux está lá embaixo, mas a inicialização do computador a uma interface Steam foi projetada para as salas de estar. Em 2015, seremos capazes de comprar PCs que vêm com SteamOS pré-instalados, conhecidas como Steam Machines (N.T. Algo como, máquinas a vapor). A Valve deve apoiar instalando SteamOS em qualquer PC que você utiliza - não apenas em qualquer lugar perto de ser completo.

Android
Também se utiliza do kernel do Linux, mas praticamente tudo o mais sobre o Android é muito diferente das distribuições típicas de Linux. Originalmente foi projetado para os smartphones, agora é possível obter laptops com Android e até mesmo desktops. Não é de se surpreender que existe uma variedade de projetos para executar Android em PCs tradicionais - A Intel ainda desenvolve a sua própria porta do Android para o hardware do PC. Não é um sistema operacional ideal para o PC - ainda não permite a utilização de vários aplicativos ao mesmo tempo - mas é possível instalá-lo se realmente deseja isso.

Mac OS X
Da Apple, e já vem pré-instalado em Macs, mas os Macs são agora apenas um outro tipo de PC com o mesmo hardware padrão dentro. A única coisa que pode impedí-lo de instalar o Mac OS X em um PC típico é contrato de licença da Apple e a maneira como eles limitam o uso do seu software. Mac OS X pode funcionar muito bem em PCs típicos ao se contornar todas estas restrições. Há uma próspera comunidade de pessoas construindo PCs que rodam o Mac OS X - conhecido como hackintoshes - lá fora.

Haiku
BeOS foi um sistema operacional PC leve portado para a plataforma x86 da Intel em 1998, mas não foi capaz de competir com o Windows da Microsoft. Be Inc. processou a Microsoft eventualmente, acusando-os de pressionar Hitachi e Compaq para não liberar hardware BeOS. A briga com a Microsoft foi resolvida fora dos tribunais, com o pagamento de US$ 23,500,000 para Be Inc., sem admitir qualquer culpa. Be Inc. acabou sendo adquirida pela Palm Inc. E o Haiku tornou-se uma reimplementação de código aberto do BeOS que está atualmente em versão alpha. É um instantâneo do que poderia ter sido se a Microsoft não tivesse usado tais práticas de negócios implacáveis ​​na década de 90.

eComStation
OS/2 foi um sistema operacional originalmente criado por Microsoft e IBM. IBM continuou o desenvolvimento depois que a Microsoft deixou e o OS/2 competiu com o MS-DOS e as versões iniciais do Windows. A Microsoft acabou vencendo, mas ainda há caixas eletrônicos antigos, PCs e outros sistemas usando OS/2. A IBM comercializou este sistema operacional com o nome de OS/2 Warp, assim é possível que você o conheça por esse nome. IBM já não desenvolve OS/2, mas uma empresa chamada Serenity Systems tem os direitos de continuar a distribuí-lo. Chamaram seu sistema operacional eComStation. É baseado em IBM OS/2 e acrescenta outras aplicações, drivers e outras melhorias. Este é o único sistema operacional pago nesta lista, além de Mac OS X. É possível fazer download de um CD demo gratuita para verificar seu funcionamento.

ReactOS
Livre e uma reimplementação open-source da arquitetura do Windows NT. Em outras palavras, é uma tentativa de reimplementar o Windows como um sistema operacional de código aberto que é compatível com todos os aplicativos e drivers do Windows. ReactOS compartilha alguns códigos com o projeto Wine, que permite rodar aplicações Windows no Linux ou Mac OS X. Não é baseado em Linux - pois quer ser um sistema operacional de código aberto construído apenas como o Windows NT. (Versões do Modern Consumer do Windows ter sido construídas no Windows NT desde o Windows XP) Este sistema operacional ainda é considerado alfa. Seu objetivo atual é tornar-se compatível com o Windows Server 2003, então existe um longo caminho a percorrer.

Syllable
Sistema operacional open-source bifurcada do AtheOS, que foi originalmente destinado a ser um clone do AmigaOS. É um sistema operacional leve "na tradição do Amiga e BeOS, mas construído com muitas partes do projeto GNU e Linux". Como alguns dos outros sistemas operacionais menores aqui, ele tem apenas um punhado de desenvolvedores.

SkyOS
Ao contrário de muitos outros sistemas operacionais amadores aqui, o SkyOS é proprietário e não open-source. Originalmente deveria-se pagar para ter acesso, sendo possível usar somente as versões de desenvolvimento do SkyOS em seu próprio PC. O desenvolvimento em SkyOS foi terminado em 2009, mas a última versão beta foi disponibilizada para download gratuito em 2013.

Recomendo que você acesse o texto original pois possui a imagem desses 10 sistemas operacionais, e na última linha está escrito: "Também é possível instalar o FreeDOS - uma versão de código aberto do DOS - para reviver os velhos anos DOS.

Obrigado e até a próxima,
Fernando Anselmo