Como criar sua própria distribuição Linux em Live-CD/DVD

Depois da volta das discussões em torno de distribuições nacionais, por conta das recentes citações do Big Linux no BR-Linux.org e do fim do Kurumin NG. Achei que seria interessante abordar esse assunto, já que existem várias iniciativas nacionais, em grande parte baseadas na personalização de distribuições já existentes.

Antes de começar é bom avisar que NÃO estou incentivando ninguém a seguir o caminho já traçado por dezenas de distribuições amadoras que vem e vão no cenário nacional que é o de montar um live-cd baseado na distribuição X, Y ou Z trocando o papel de parede e criando alguns scripts manjados, contratar uma hospedagem barata, registrar um domínio ^*-br.org$ e publicar o anúncio e as notícias do recém criado “site da comunidade” no BR-Linux.org.

A criação de uma nova distribuição é valida em situações onde há necessidade de personalização de uma determinada distribuição de Linux para uma grande quantidade de equipamentos, como em empresas que fabricam ou revendem equipamentos, em universidades, escolas, prefeituras, etc.

Então vamos ao que interessa:

O que é uma distribuição?

Uma distribuição de Linux é um apanhado de softwares, organizados de forma a cumprir um determinado objetivo ou atender um público específico que, somados ao kernel (Linux) dão origem a um ambiente passível de ser utilizado por outras pessoas para os mais variados fins. Dentre as distribuições mais conhecidas estão o Debian, Fedora, Ubuntu, SUSE, etc.

Uma distribuição geralmente é composta por um CD/DVD que contem o sistema básico e um conjunto de softwares mais comuns que pode ser extendida posteriormente à sua instalação através do uso de gerenciadores de pacotes que fazem o download e a instalação de softwares da distribuição que ficam em servidores (repositórios) para que o usuário final possa personalizar o seu sistema com os softwares que preferir.

Como criar a minha distribuição personalizada?

O primeiro passo para criar uma distribuição personalizada é escolher uma distribuição que possa servir de base e que conte com ferramentas e uma iniciativa que permita realizar a sua devida personalização, dentre as que contam com esse tipo de recurso é possível citar as seguintes:

Debian

O Debian é sem dúvida a base mais comum para criação de novas distribuições. O projeto conta com uma iniciativa vontada para esse fim que é o Debian Pure Blends, também conhecido como Debian Custom Distributions, que teve o seu nome alterado recentemente na tentativa de esclarecer que as distribuições resultantes continuam sendo sub-conjuntos do Debian e não outra coisa qualquer que seja.

A forma mais fácil de personalizar seu próprio Debian é usando o Simple-CDD que conta com inclusive com um Howto na documentação oficial do Debian. Trata-se de um processo razoavelmente simples e bem documentado, bem parecido com os demais que se seguem.

Os procedimentos descritos acima são para construir um CD de instalação normal do Debian, sem a possibilidade de utilizar o resultado como Live-CD, entretanto, há outra iniciativa do projeto Debian voltada especificamente para a criação de Live-CDs baseados no Debian, denominada Debian Live Project, a qual conta com documentação bastante detalhada e helpers de fácil utilização.

Fedora

No Fedora é dada a denominação de Spin para versões personalizadas do Fedora padrão criadas com o intuito de atender necessidades específicas. Existem dois meios de se criar um Live-CD, sendo a primeira delas através de um software chamado revisor, e a mais bem documentada, e segura, que é usando o livecd-creator.

O processo é bem documentado e simples de entender e seguir.

Dentre as distribuições aqui citadas o Fedora aparentemente é o que mais incentiva essa prática, sendo que a relação oficial de Spins conta inclusive com um feito por brasileiros, que é o BrOffice Spin.

Ubuntu

O Ubuntu também possui documentação sobre como personalizar o seu LiveCD, entretanto, não há uma política específica para divulgação dos projetos derivativos como há nas distribuições anteriormente citadas.

Também não há grandes dificuldades em se realizar o processo, basta seguir a documentação e caso não tenha sucesso, procurar ajuda na comunidade.

Outra forma de se criar uma versão “customizada” do Ubuntu é através do uso do UCK – Ubuntu Customization Kit, software semelhante ao Revisor do Fedora, que permite a criação de um LiveCD personalizado com alguns cliques do mouse.

SUSE

O SUSE conta com um sistema muito interessante de personalização da distribuição para criação de appliances e versões personalizadas do seu Live-CD chamada SUSE Studio. O serviço, que está em estágio Alpha, por enquanto está disponível apenas para convidados, mas promete oferecer formas de criar sua própria versão personalizada do SUSE Linux usando apenas o seu navegador, através do próprio site.

E depois?

O resultado de todos os procedimentos disponíveis nas distribuições citadas é a criação de uma imagem ISO contendo o Live-CD da distribuição, devidamente personalizada, que você acabou de criar. Os repositórios de softwares continuarão sendo os mesmos da distribuição original, a menos que sejam alteradas as configurações do gerenciador de pacotes para que ele use um repositório alternativo.

Creio que existam vários outros meios e também outras distribuições que contem com esse tipo de recurso, mas procurei versar apenas sobre as mais conhecidas. Como pode ser visto nas documentações de cada processo, não se trata de algo extremamente difícil e pode ser usado para diversos fins, sendo inclusive encorajado oficialmente por várias distribuições.

Espero ter sido útil e, só lembrando mais uma vez, não saiam por aí criando novas distribuições sem antes ter um objetivo bem definido. Leiam a documentação do Debian Pure Blends, que apresenta além da visão técnica, uma abordagem filosófica e prática, e sejam pragmáticos. Não re-inventem a roda!

Fiquem a vontade para comentar, reclamar ou sugerir algo. Até a próxima.

Atualizações: 1. Incluídas informações sobre o Debian Live Project; 2. Incluída a citação do Ubuntu Customization Kit.


Definindo Experiência de Usuário – Parte II

Então, agora que nós determinamos que uma abordagem equilibrada é necessária para fornecer uma experiência de usuário de qualidade para nossos usuários. Vamos olhar para o primeiro aspecto fundamental de uma boa experiência de usuário.

1. Apenas uma nota, note que o meu foco primário está no webdesign, e interfaces de usuário, mas esse processo pode ser aplicado para produtos baseados em web, ou a maioria dos produtos da mesma maneira.

2. Para reduzir a redundância então quando eu uso o termo cliente ele também pode se referir a aqueles para quem você trabalha em um ambiente in-house (Chefes, Departamento de Marketing, Diretores de Arte, etc.)

Usabilidade – Usabilidade é um termo usado para denotar a facilidade com a qual as pessoas podem utilizar uma ferramenta em particular, ou outro objeto feito pelo homem, de maneira a atingir um certo objetivo. A usabilidade também pode se referir aos métodos de medição de usabilidade e ao estudo dos princípios por trás da eficiência percebida de um objeto ou sua elegância. Ou simplificando – Um site/produto é disponível ou conveniente para uso, e capaz de ser usado para atingir o objetivo desejado.

Então o que faz um website, produto, ou interface de usuário Usável / Disponível ou Conveniente para Uso / Capaz de Ser Usada? O site está disponível? Ele funciona? As pessoas podem usá-lo como foi originalmente planejado? Aaron Gustafson faz uma boa observação que nós precisamos considerar para entender como as pessoas irão acessar o site/interface que estamos construindo quando ele diz:

Na web nós não sabemos nada sobre a pessoa que está visitando nosso website. Nós não sabemos qual navegador ela está usando. Nós não sabemos se ela está acessando o nosso site pelo seu celular. Nós não sabemos se ela prefere usar o seu teclado ao invés do seu mouse. Nós não sabemos se o JavaScript (e mesmo o CSS) está habilitado no aparelho que ela está usando. Nós não sabemos se ela quer imprimir a página. Nós não sabemos se ela está usando um leitor de tela. Nós realmente não sabemos nada.

Se Aaron está certo (e eu penso que ele está) então é realmente bom para nós anteciparmos o que nossos usuários precisam, o que não é sempre fácil, mas podem ser conseguido abrindo as linhas de comunicação, encontrar qual é o resultado desejado para um projeto e configurar um processo para definir como a experiência de usuário deve ser. Algumas coisas boas para se lembrar no processo, uma cortesia de Indi Young:

Ao criar algo, desligue seu solucionador de problemas interno e apenas ouça as pessoas – Thinking from the potential customer’s perspective is a Zen-like exercise. ~ Indi Young

Aqui está o que eu sugiro (esses são apenas alguns dos pontos básicos dependendo das necessidades do site eles podem ser mais):

1. Certifique-se de que o usuário pode navegar através do site para os resultados finais desejados eficientemente. A navegação é clara e fácil de seguir? Os links/botões são fáceis de clicar? (você deveria estar surpreso) O texto dos links definem apropriadamente a página para onde eles estão apontando?

2. Certifique-se de que foi dado o devido valor ao conteúdo. Ele é conciso? Ele conta a história? Ele está perdido no estilo/visual do site? Nós precisamos nos lembrar que o conteúdo é o motivo pelo qual alguém veio até o site em primeiro lugar.

3. Irá a usabilidade casar bem com o estilo? Você pode fazer do site uma grande experiência visual sem sacrificar o resultado final desejado? Ele irá funcionar bem em todos os navegadores? Ele é acessível? Se você puder casar esses dois elementos então você já tem quase garantido um grande resultado final. (Nós iremos falar mais sobre isso na parte 3 da série “Apelo Visual”)

Começar com esses três elementos como base irá oferecer uma boa fundação para construção de uma grande experiência de usuário que será muito usável e conveniente. Eu penso que a Usabilidade poderia ter sua própria série, e que eu estou realmente apenas tocando a ponta do iceberg. Entretanto isso irá nos inspirar a olhar mais aprofundadamente a definição de uma boa experiência de usuário começando com a Usabilidade, e a medida que olharmos para cada aspecto, nós poderemos construir uma boa fundação para criar experiências de usuário de alta qualidade e bem equilibradas.

Por favor, sinta-se a vontade para postar seus pensamentos, comentários e complementações e para mencionar algo que eu possa ter deixado de fora.

Fonte: http://www.thisisaaronslife.com/defining-user-experience-pt2/


Definindo Experiência de Usuário – Parte I

Tive a grata experiência de encontrar esta série escrita por Aaron Irizarry em seu Blog, a qual expôe uma visão analítica sobre a percepção do usuário, e me ocorreu que seria interessante publicá-la em português. Enviado o comentário, pedindo a devida autorização para fazê-lo, depois de algum tempo, não mais que 1 hora creio eu, obtive a liberação e o que segue abaixo é a primeira parte da série. Boa leitura.

Em meu esforço para criar uma série útil definindo o que constitui uma boa experiência de usuário, eu fiz uma enquete para ouvir das pessoas o que elas pensam sobre os ingredientes importantes para compor uma grande experiência de usuário. Aqui estão os resultados;

Resultados da Enquete

Esses resultados são muito parecidos com os que eu esperava. A usabilidade recebeu a maioria dos resultados, e todos os seguintes receberam a segunda maior quantidade de votos, você pode ver no gráfico acima que outras opções receberam consideravelmente menos votos, e alguns de vocês até curtiram um pouco comigo votando em nenhum dos acima.

Nesta série nós iremos observar os diferentes aspectos da experiência do usuário, definir seus diferentes elementos, e discutir sua importância para aqueles que interagem com aquilo que nós estamos criando. Nós iremos começar pela observação dos resultados e olhando o que eles nos dizem. Considerando que muitos dos votantes são colegas designers/desenvolvedores eu esperava que resultado mais alto fosse a usabilidade. Em primeiro lugar isso chama a minha atenção para duas coisas.

A maioria destes que votaram sabem o que é importante para um bom design.

A maioria destes que votaram sabem o que é importante para um bom design.

Não, isso não é um erro, deixe-me explicar… A maioria daqueles que votaram (incluindo eu mesmo) trabalha com algum tipo de ambiente de design/desenvolvimento todos os dias. Para alguns de nós isso tem fornecido muita experiência no desenvolvimento de websites, e outras interfaces de usuário, o que foi exibido no número de votos que a usabilidade recebeu em comparação com todo o resto (aparentemente a maioria de nós presta atenção no “Be-a-bá” do design).

Um bom design começa com a usabilidade. Então é bom ver que nós temos nossos fundamentos de um bom design alicerçando-nos. Eu acredito que a usabilidade é a prioridade quando criando um design/produto baseado no usuário… mas nós temos que ser cuidadosos ao definir usabilidade por aí da nossa maneira já que se ela é nosso Zorro os outros componentes avaliados que fazem uma boa experiência de usuário são deixados de lado (Tonto). Em tempos em que nós podemos nos aprofundar na maneira de saber o que sabemos razoavelmente bem, nós pensamos que nós sabemos o que o usuário precisa para ter uma boa experiência de usuário, e na maioria das vezes nós terminados como o pobre marido que dá uma bola de boliche para sua esposa no Natal, ele pensa que ela irá gostar do tempo juntos… jogando boliche. É claro que ele teve boas intenções, mas ele estava um pouco fora de sintonia com o que a sua esposa poderia realmente querer (uma viagem para um spa, pedicure ou simplesmente algo que demonstrasse que ele tem interesse nas suas necessidades.)

Nós devemos nos certificar do nosso crescente número de usuários, simplesmente porque nós “sabemos o que é importante para um bom design”, ou por “ser aquilo que sempre fizemos” Usabilidade é a chave… boa navegação que é fácil de seguir e leva os usuários aos resultados desejados, certificando-se de que a mensagem do projeto/produto é permeada com propósito e clareza, e outros elementos fundamentais precisam estar no lugar para o sucesso do design inicial, mas eu pessoalmente acho que a não ser que cerquemos esses elementos de um bom apelo visual, forte suporte auxiliar e uma boa quantidade de emoções (dando ao usuário as percepções secundárias) o design não será capaz de atingir seu completo potencial, e irá apenas cumprir com o mínimo proposto.

Assim como qualquer time de futebol tem uma estrela (ex.: um Ronaldinho, ou um Rivaldo) e isso definitivamente ajuda a aumentar as chances de sucesso ao ter aquele jogador chave… mas as vezes há algo que o time não consegue dominar, ou atingir altos níveis de sucesso até que seus jogadores sejam cercados de um conjunto de outros jogadores de qualidade dando-lhes apoio. Isso nos leva a entender porque “Todo o resto” recebeu o segundo montante de votos. (41 segundos para apenas 44 votos em usabilidade). Isso realmente nos remete à ideia de uma aproximação bem balanceada para nosso processo de design, nós realmente precisamos considerar o que a resposta ao usuário desejada que estamos tentando atingir é, e então, embasados na usabilidade e pelo time de apoio do apelo visual, da resposta emocional e do bom suporte auxiliar, nós seremos capazes de criar belos websites e experiências de usuário que levarão o usuário à resposta desejada, ajudando nossos clientes e funcionários a atingir um nível mais alto de sucesso.

Agora que observamos os resultados, e olhamos para a necessidade de uma aproximação equilibrada junto a todos os nossos elementos, nós iremos observar cada elemento individualmente. No próximo artigo nós iremos desenrolar a ideia de usabilidade, que nós concordamos ser vital para o processo, mas o que envolve fazer um site usável? Por onde nós devemos começar?

Eu adoraria ouvir o que você acha que é fundamental para desenvolver um site “amigável ao usuário” (compatibilidade com navegador, padrões, acessibilidade). Faça algum barulho e deixe-me saber o que você pensa. Obrigado novamente por ler e dar sua opinião,

Fonte: http://www.thisisaaronslife.com/defining-user-experience-pt1/