artigo

Top10 Distrowatch

O DistroWatch é o principal catálogo de distribuições livres de GNU/Linux. Já se foi o tempo em que o Ubuntu era a líder absoluta do DistroWatch. Desde que eles abandonaram o GNOME completo em prol do seu Unity (que também usa GNOME. É, eu sei, é uma confusão essa história...), eles começaram a perder espaço por lá. Isso não é necessariamente ruim ou bom: era esperado. Eles vem se diferenciando cada vez mais das outras distribuições, buscando sua própria identidade. Bem, vamos dar uma olhada nas distros que compoem hoje o Top 10 do DistroWatch (que considera os 6 últimos meses).

1. Linux Mint

O Linux Mint derivou do Ubuntu, acrescentando inicialmente vários aplicativos, além de suporte a recursos complementares. Já vinha, por exemplo, com Flash. Quando houve aquela zona dos desktops livres, o pessoal do Linux Mint não gostou das opções que tinham: migrar para GNOME 3, ir para o Unity, ficar no GNOME 2 sem atualizar ou mudar o desktop de vez para outro como o KDE ou XFCE. O que eles fizeram? Criaram sua própria opção: fizeram um fork do GNOME 2, que eles chamam de MATE. A nova liderança do Linux Mint no DistroWatch talvez seja um reflexo de quão bacana e suficiente era o GNOME 2.

2. Mageia

Mandrake era distribuição francesa derivada da RedHat que tinha como objetivo tornar o ambiente de trabalho o mais simples possível para o usuário. Paralelamente, o Brasil já teve uma das 10 distribuições mais fortes do mundo no seu tempo: a Conectiva. Um dia a Mandrake comprou a Conectiva e mudou de nome para Mandriva, reunindo o que havia de melhor nas duas (talvez nem tanto, já que uma parcela enorme de usuários da Conectiva não gostou do resultado técnico da fusão). Durante uma crise da Mandriva há dois anos, um grupo de desenvolvedores e usuários, inseguros por depender de uma empresa assim, criaram um fork. Mageia é este fork e não apenas já está utilizável como já alcançou o segundo lugar no DistroWatch!

3. Ubuntu

"Linux" para seres humanos. Com esse slogan, tons de marrom e CDs enviados para a casa de quem pedisse, o Ubuntu cresceu muito e rápido. Hoje eles tem o polêmico Unity, um ambiente de trabalho alternativo criado por eles. Apesar de ser negativo por distanciar a experiência dos usuários em relação a outras distribuições e ter sido lançado com vários bugs na época (bugs hoje resolvidos), ele tem seus pontos positivos, como o fato de funcionar de maneira bacana em dispositivos sensíveis ao toque. Hoje o Ubuntu tem até um projeto para rodar em smartTVs.

4. Fedora

Fedora é uma fundação criada pela RedHat para fornecer uma versão comunitária da distribuição. Eles são bem mais antigos que o Mageia. Foram uma das primeiras distribuições a apresentar o GNOME 3 e tem como outra característica marcante o trato com distribuições adaptadas (com conjuntos próprios de pacotes pré-instalados), que eles chamam de spins.

5. OpenSUSE

Versão livre do SUSE, similar ao que acontece com Mageia/Mandriva ou Fedora/RedHat.

6. Debian

Uma das distribuições GNU/Linux mais antigas ainda em atividade (e ainda no Top 10). Foi a primeira a ser mantida por uma fundação e alcançar grande relevância, servindo de origem para muitas outras, como o próprio Ubuntu.

7. Arch Linux

Distribuição que foca na simplicidade e elegância de código, dispensando pacotes "supérfluos". Para quem é das antigas, o Arch Linux seria o "novo Slackware" (como papel que desempenha no ecossistema das distribuições).

8. PCLinuxOS

Mais uma distribuição derivada no RedHat. Uma das coisas que acho bacanas no PCLinuxOS é o uso do gerenciador de pacotes Synaptic, mesmo funcionando com pacotes RPM (o Synaptic, inclusive, foi uma das criações da extinta Conectiva).

9. CentOS

Um RedHat Enterprise mantido por uma comunidade, eis o CentOS.

10. Puppy Linux

O Puppy Linux era a distribuição que acompanhava o CyanPack antigamente (antes apenas CyanCD). Uma distribuição muito pequena (por volta de 100M), mas que traz um leque incrível de aplicativos. Hoje, pelo visto, ela já é bem utilizada.

92. Trisquel

Por falar no CyanPack, a distribuição que atualmente o acompanha está bem longe na listagem, o que é uma pena. Derivada do Ubuntu, mas com o compromisso de fornecer apenas e exclusivamente softwares livres (Linuxlibre ao invés de Linux, Gnash ao invés de Flash, etc), tem estilo próprio e é mantida por uma turma lá na Galícia.

Special: 

Crackle: Assista a filmes e séries de graça

Crackle

Lembra o Netflix, com seu catálogo bacana de programação por streaming? Pois é, eles disseram recentemente que ainda não tem interesse em fazer versão para GNU/Linux. Isso é especialmente curioso se considerarmos que ele já funciona no Android, no Chrome OS e no iOS, plataformas que não usam o tal do Microsoft Silverlight. Fica parecendo má vontade mesmo.

Mas enquanto o Netflix não vem, existe uma outra opção, dessa vez da Sony: o Crackle. Nele você pode ver produções dela também por streaming e não precisa pagar nada por isso!

O catálogo ainda está bem modesto, mas já conta com títulos bacanas como Drácula de Bram Stoker, Resident Evil (com bastidores) e Final Fantasy VII; quanto a séries, há ainda menos opções no momento, o que inclui Transformers, Jeanny é um Gênio e As Aventuras de Jackie Chan. De qualquer forma, o serviço é bastante recente e por isso o catálogo ainda é modesto. A tendência é ir se expandindo.

O lado ruim disso tudo é que o Crackle exige o Flash Player da Adobe em uma versão bem recente. Pois é, se você quer usar 100% software livre, você está de fora, já que não funciona em Gnash. A boa notícia é que existe um aplicativo para Android, a má é que até o fim de outubro ele estará disponível apenas para celulares da Sony.

De qualquer forma, fica a dica dessa alternativa gratuita ao Netflix!

Special: 

Como baixar um arquivo com Python

Se você não tem nada a ver com programação, nem tem interesse no assunto, simplesmente ignore este artigo.


Mike Driscoll tem um blog dedicado a Python chamado The Mouse vs. the Python e eventualmente há excelentes artigos por lá.

Esta é uma tradução livre do artigo Python 101: How to Download a File e modifiquei sutilmente algumas coisas, incluindo os exemplos.


Baixar arquivos da internet é o tipo de coisa que a maioria dos programadores, mais cedo ou mais tarde, vai terminar tendo que fazer. Python oferece várias formas de fazer exatamente isso, usando a biblioteca padrão. Provavelmente a forma mais popular de baixar um arquivo é sobre HTTP, usando o módulo urllib ou urllib2. Python também vem com ftplib para downloads via FTP. Para concluir, há um módulo de terceiros chamado requests que tem causando alvoroço (e está disponível no repositório padrão do Trisquel - e do Ubuntu - no pacote python-requests). Neste artigo, focaremos os módulos urllib e request.

Uma vez que se trata de uma tarefa bastante simples, mostraremos apenas um script rápido e sapecado, que baixa o mesmo arquivo com cada um dos módulos e nomeia o resultado de maneira levemente diferente. Baixaremos um arquivo PDF do cordel Fantasma d Opera, daqui do Bardo WS mesmo, para usar no nosso exemplo. Vamos dar uma sacada

# Python 2 code
import urllib
import urllib2
import requests
 
url = 'http://www.carlissongaldino.com.br/modules/pubdlcnt/pubdlcnt.php?file=http://www.carlissongaldino.com.br/sites/default/files/o-fantasma-da-opera.pdf&nid=1287'
 
print "baixando com urllib"
urllib.urlretrieve(url, "o-fantasma-da-opera-u.pdf")
 
print "baixando com urllib2"
f = urllib2.urlopen(url)
data = f.read()
with open("o-fantasma-da-opera-u2.pdf", "wb") as code:
    code.write(data)
 
print "baixando com requests"
r = requests.get(url)
with open("o-fantasma-da-opera-r.pdf", "wb") as code:
    code.write(r.content)

Como você pode ver, urllib precisa de apenas uma linha. Essa simplicidade o torna muito fácil de usar. Por outro lado, as outras duas bibliotecas também são muito simples. Para urllib2, você precisa apenas abrir a url, lê-la e escrever seus dados. Na verdade, você pode siplificar ainda mais esse script - em uma linha - fazendo o seguinte:

f = urllib2.urlopen(url)
with open("o-fantasma-da-opera-u2.pdf", "wb") as code:
    code.write(f.read())

De um jeito ou de outro, o código funciona muito bem. O método para o módulo requests é get, que corresponde ao HTTP GET. Você então pega o objeto requests e chama a propriedade content para escrever os dados onde você quiser. Nós optamos pelo statement with por ele fechar automaticamente o arquivo e simplificar o código. Note que usando siplesmente o "read()" pode ser perigoso, se o arquivo for muito grande. É melhor lê-lo aos poucos, passando um tamanho ao read.

Atualizado (8 de junho de 1012)

Como apontado por um dos leitores do The Mouse vs. The Python, o uso da urllib muda consideravelmente quando a utilizamos através do 2to3.py, no formato do Python 3. Assim, para complementar, aqui está como o código se parece:

# Python 3 code
import urllib.request, urllib.parse, urllib.error
 
url = 'http://www.carlissongaldino.com.br/modules/pubdlcnt/pubdlcnt.php?file=http://www.carlissongaldino.com.br/sites/default/files/o-fantasma-da-opera.pdf&nid=1287'
 
print("baixando com urllib")
urllib.request.urlretrieve(url, "o-fantasma-da-opera-u.pdf")
 
print("baixando com urllib2")
f = urllib.request.urlopen(url)
data = f.read()
with open("o-fantasma-da-opera-u2.pdf", "wb") as code:
    code.write(data)

Você nottará que urllib2 não existe mais e que urllib.urlretrieve e urllib2.urlopen mudou para urllib.request.urlretrieve e urllib.request.urlopen, respectivamente. O resto continua o mesmo, de modo que eu removi as outras partes.

Então está feito! Agora você pode baixar arquivos programando em Python 2 ou 3!

P. S.: Imagem do post: Python vert / Morelia Viridis, de raym5

Special: 

Netflix - Uma locadora em casa

Netflix no Wii

No início tínhamos apenas a TV aberta. Depois veio a TV por Assinatura, conhecida como TV a cabo, mas que nem sempre é transmitida dessa forma. Era comum, por exemplo, os sinais serem recebidos diretamente a partir de satélite. O tempo passou e apareceu a modalidade Pay per View, que prometia trazer programação para nós na mesma época em que seriam lançadas nas locadoras. A novidade hoje é a modalidade Sob Demanda. É exatamente nesse nicho que o Netflix está.

Primeiro, vamos voltar no tempo para os primeiros canais de TV por assinatura. Aqui no Brasil, esse evento foi marcado pela Globosat, que trouxe seus canais, incluindo o Telecine, com filmes bacanas durante todo o dia. Filmes completos e sem comerciais. Claro, o SporTV também agradava aos amantes do esporte, transmitindo jogos que não seriam transmitidos na TV aberta. Sem me prolongar pelo Multishow e os outros, o resumo é que tínhamos programação de qualidade e era por isso que pagávamos. Hoje em dia, infelizmente, a TV por Assinatura é alvo de muitas críticas. Canais de filmes poluem a tela com publicidade, enquanto outros canais colocam publicidade dentro da programação, no mínimo na mesma proporção da TV aberta. Não vale mais tanto a pena hoje em dia contratar o que se chamava de TV por assinatura.

Uma grande disputa com a TV por assinatura eram as locadoras. Podíamos locar o filme que desejássemos ou nos adequar à programação dos canais pagos. Escolher o filme, porém, exigia algum esforço adicional. Tínhamos que sair de casa para garantir o fim de semana a TV e pipoca. As locadoras se foram e apareceram os camelôs de filmes piratas (provavelmente na ordem contrária). O valor de um filme pirata era o mesmo de um alugado, então as pessoas se perguntavam: por que alugar o filme se podemos tê-lo em casa para assistir quantas vezes quisermos?

Claro, a locadora frequentemente tinha muito mais opções de filmes e, por outro lado, há a questão de adequação com o código de direito autoral vigente. É assim que surge o próximo passo na programação paga: programação sob demanda. Nele podemos assistir o que quisermos quando quisermos. É interessante quando pensamos em filme, mas é especialmente fantástico quando pensamos em séries: imagine ter acesso aos 50 episódios das 2 temporadas daquela série de que você gosta, na hora em que quiser, acessíveis com a maior praticidade! Assim é o Netflix: uma locadora completa dentro de casa, com alguns recursos adicionais até: eles sugerem filmes e programas com base no que perceberam dos nossos gostos, permitem integração com o Facebook, pontuação de filmes feita pelos próprios clientes. E o preço também é outro ponto forte. Por apenas R$ 15,00 por mês, temos acesso a todo o material do Netflix, para assistirmos quantas vezes quisermos. Isso o torna mais barato até mesmo do que a alternativa pirata! E o deixa dentro da lei.

Claro, há suas desvantagens. DRM (proteção contra cópias) é uma delas. Não podemos copiar nada, nem salvar para assistirmos em outro momento. Isso seria uma desvantagem menor se alguns itens da programação não saíssem de cena depois de algum tempo. Por exemplo, a trilogia De Volta para o Futuro estava lá e saiu na virada do mês (claro, há um campo dizendo até quando estará disponível). Certo, pelo preço é uma limitação perfeitamente aceitável. Poder copiar filmes ajudaria a contornar uma outra desvantagem: o sistema depende da conexão com a Internet. Se a Internet cai, a locadora fecha. A tendência é que esse evento se torne cada vez menos frequente, mas estamos longe de poder confiar cegamente na Internet brasileira. Outra desvantagem é que não funciona em GNU/Linux.

Por outro lado, o leque de equipamentos que suportam Netflix é bem extenso. Além de Windows e Mac, ele funciona em Android, iOS, TVs modernas e nos videogames da geração atual. Eu, em particular, conheci o Netflix - e o utilizo - a partir do Nintendo Wii. Um outro ponto forte que não mencionei antes é que ele utiliza muito bem a banda, transmitindo filmes muito mais rapidamente do que o Youtube. Funciona fluido, mesmo com a minha Internet, que não é das mais rápidas.

Alguns filmes do Netflix

A programação (que permite escolher legenda e idioma), inclui clássicos como O Mundo de Beakman e Jornada nas Estrelas e Curtindo a Vida Adoidado. E coisas menos antigas como a série animada dos Vingadores (2 temporadas), Lost, Heroes... E até novelas tem! São várias categorias, algumas inclusive vão ser criadas especialmente para você com base nas suas preferências. Há realmente muita coisa bacana por lá e realmente acho que vale a pena.

Special: 

Supers Sobrecarga

Super-heróis bonecos

Uma das coisas mais complicadas em roteiros é lidar com sobrecargas de superpoderes, o fator overpower. Quando os personagens de um mundo são capazes de destruir estrelas, que desafio existe mais?

Uma boa história tem seus componentes balanceados no cenário e isso vale para todos os elementos. Desde o roteiro, que não pode ser nem irrelevante nem muito além das forças dos personagens (sabe aquelas aventuras forçadamente épicas que simplesmente não convencem?), até os próprios personagens.

Veja alguns supercaras conhecidos, como o próprio superman: ele tem superforça, supervelocidade, visão de raio-X, visão de calor, voa, tem uma formação rígida ética e intelectual. Chegou uma época em que alguém disse: "Epa! Esse cara tá fodão demais! Temos que dar um ponto fraco!" Foi aí que veio a velha ideia da criptonita.

O super é um personagem legal de explorar pois, embora não pareça a princípio, ele tem muitos pontos fracos além da pedra verde radiotiva. O principal é o seu senso de dever. Como ele age se o vilão coloca inocentes em risco, ou pessoas que ele conhece em risco?

Tá, vamos deixar o super de lado um pouco e vamos ver o Batman, o cara sem poderes mas com treinamentos assombrosos nas áreas marciais e de investigação, contando com um arsenal de protótipos equiparável ao do Homem de Ferro (apesar de não tão colorido). O Batman é uma história ainda mais interessante, em essência, que a do super por uma razão simples: é uma história pisicológica, pessoal.

Sim, é como se o Bruce não houvesse superado a perda dos pais e, por isso, tem que enfrentar seus medos, que são transpostos para o mundo exterior na forma de seus arqui-inimigos. Ponto fraco? Acho que seria psicológico, mas a mente sagaz de Bruce dificulta que alguém consiga explorá-lo por tempo suficiente.

E temos o alienígena Ajax, o patrulheiro cósmico Lanterna Verde, o Flash e por aí vai. Cada um com sua própria cota de superpoderes, com seus próprios pontos fracos, mas com sua determinação e força de vontade para vencerem sozinhos os mais diversos vilões que aparecem, o que sempre termina acontecendo mesmo.

Agora pergunto: o que acontece se juntarmos todos num grupo? Se cada um já era forte o suficiente para lidar com seus próprios problemas, que problemas precisarão existir para que esse grupo enorme seja necessário? Isso é um problema.

A Liga da Justiça é criticada muitas vezes por coisas como o emburrecimento inexplicável de Clark Kent para que o Batman tenha seu grau de importância no time. Sem contar que o grupo é tão grande que fica impossível usar todos os heróis de uma vez, obrigando os roteiristas a saltar o foco entre alguns personagens secundários. Não gosto disso.

Os Vingadores parecem resolver melhor os problemas de um grupo superpoderoso. Os desafios no desenho recente, por exemplo, terminam levando a Asgard e aos alienígenas clássicos da Marvel. Mas peraí! Quando o devorador de mundos chega, onde estão os X-Men e os outros infinitos mutantes?

Vejam, não estou falando de grupos de heróis, mas de grupos juntados. Os próprios X-Men funcionam bem, assim como o Quarteto Fantástico na sua época. Alguns heróis criados para agir sozinhos terminam precisando mesmo de ajuda em diversos momentos, mas a maioria não. O caminho que o leva a llutar sozinho o ensina a superar seus inimigos sem ter que contar com mais ninguém. E afinal, se você tem o Super-Homem, o Thor ou o Visão, que tipo de desafio o obrigará a procurar arqueiros e animais?

P. S.: Foto do post: Super-heroes y tú quien eres, de edcarsi

Special: 

God of War - HQ

God of War HQ

Kratos é o Dante da Sony. Simples assim. Movido frequentemente por ira, o capitão espartano que se tornou o deus da Guerra tem o mesmo grau overpower do protagonista de Devil May Cry. Apesar de ser um personagem divertido de controlar, seu carisma está muito longe do de Dante.

A história de Kratos é, de um modo geral, até interessante, bem como o uso de elementos da mitologia grega. A franquia já rendeu três títulos: dois para Playstation 2 e um para Playstation 3. Certamente outros títulos virão, para a alegria dos fãs. Mas vamos falar da HQ, lançada pela DC, que vem ao Brasil, claro, pela Panini.

Para quem gosta da série, o visual é bom. Não é exatamente reealista, mas é quase isso, com uma grande camada de efeitos visuais sobre os desenhos realisticamente estáveis. É bem adequado para a série. O roteiro também é interessante, exceto por um porém. Duas coisas que me desagradam quando usam mitologia em história: maniqueísmo forçado em universos mitológicos onde não havia necessariamente essa polaridade; infantilização dos deuses. Vai ver por isso evito usar deuses de mitologias em minhas histórias, criando minhas próprias mitologias.

God of War, apesar de ser apresentada como uma franquia mais adulta, por conta da violência e dos dramas vividos por seu protagonista, em certos pontos mostra não ser tão adulta assim.

Tá, isso é uma impressão minha. De qualquer forma a HQ é interessante. Se você gosta da série ou não se incomoda tanto com certas alteraçõees na mitologia, poderá adorar o material.

Special: 

Cultura do Medo, de Barry Glassner

Por que tememos cada vez mais o que deveríamos temer cada vez menos: crime, drogas, minorias, mães adolescentes, crianças assassinas, micróbios mutantes, acidentes de avião, fúria no trânsito e muito mais. Este é o estranho e enorme subtítulo do livro Cultura do Medo, de Barry Glassner, em tradução de Laura Knapp, lançado pela editora Francis.

O subtítulo já anuncia bem o que vamos encontrar. Como a mídia, governos e grandes empresas terminam, como se diz, “botando pilha” em assuntos não tão relevantes quanto outros. Como exemplo vejamos o caso do massacre em Columbine, em 1999. Na época surgiram vários questionamentos na imprensa estadunidense prevendo uma “epidemia” de crianças assassinas. O psicólogo Peter Langman escreveu depois, em seu livro Why Kids Kill: Inside the Minds of School Shooters: “Não eram rapazes comuns que foram importunados até retaliarem. Não eram rapazes comuns que jogavam jogos de videogame demais. Não eram rapazes comuns que queriam apenas ser famosos. Eles simplesmente não eram rapazes comuns. Eram rapazes com problemas psicológicos sérios”. A incapacidade da mídia de perceber este caso como uma tragédia pontual assusta. Em casos assim, questiona-se tudo: da solidão aos videogames, do desejo de fama à falta de acompanhamento dos pais. Assim, um caso isolado vira epidemia e a imprensa nem questiona a venda de armas como um “facilitador” desse tipo de crime.

No decorrer do livro vamos vendo como as estatísticas, estudos e depoimentos de pseudoespecialistas são utilizados para dar combustível a esse tipo de distorções, que elevam casos assustadores e excêntricos ao status de epidemia, ignorando completamente riscos e epidemias reais.

Não é só no Brasil que a imprensa distorce muito as coisas (embora aqui, em especial, tenham atingido um certo talento e controle). Exemplo claro: por que o SUS é sempre representado como algo ruim na imprensa? Já li e vi depoimentos de amigos Brasil afora falando de experiências pessoais com o sistema e sei do sistema daqui. Por que a imprensa brasileira se apressa em condenar instituições públicas e não fala em investimento? Já parou pra pensar nisso?

Quanto ao livro, bem, mesmo a realidade de lá sendo um pouco diferente da realidade daqui, venho notando uma tendência de imitação, que intelectuais e líderes daqui costumam tentar reproduzir o que houve por lá, com diferença de uns anos. Desta forma, o livro é também interessante para nós. Gostei da leitura e recomendo.

Special: 

Como autopublicar um Livro

Este post é uma tradução livre do artigo How to Self Publish a Book, escrito com contribuição de diversos autores no wikiHow. Além da tradução, algumas passagens e exemplos foram adaptados à nossa realidade brasileira (ou ao menos eu tentei fazer isso. Qualquer coisa questionamento ou sugestão, comente).


A autopublicação de livros é popular por várias razões. Não importa qual sua motivação para isso, o mercado está crescendo e se tornando mais barato e acessível do que nunca. Agora é um grande momento para autopublicação.

Há muitos concursos para os quais tanto faz se o livro foi autopublicado ou lançado pela via tradicional, tornando isso uma questão pessoal. Este artigo só guiará você pelo caminho da autopublicação.

Passos

Autopublicação é um tema amplo. Há muitas formas de autopublicar: gráficas da vaidade, selos de subsídios, microeditoras, POD (impressão sob demanda, em inglês), também conhecida como impressão curto prazo, e autopublicação "verdadeira".

Gráficas da Vaidade devem ser evitadas, eles se vendem como editoras tradicionais ou de subsídio, mas cobram altas taxas e fazem muito pouco ou nenhuma publicidade/distribuição para você. Eles não fazem seleção para a maior parte, e tomam o que vem no caminho.

Selos de subsídio não são tão seletivos quanto selos tradicionais, mas funcionam de uma maneira similar na forma como eles rejeitam manuscritos. Porém, eles cobram do autor para encadernação e publicação; lado bom é que eles contribuem com publicidade e distribuição, e publicam sob seus nomes. Autores tendem a ter controle limitado sobre projeto e essas coisas, enquanto o selo recebe a maior parte do lucro.

Microeditoras de pequenos mercados ou nichos tendem - devido ao risco de falta de recurso e baixa escala econômica - a publicar eletronicamente.

POD, ou Impressão por Demanda (Prinnt on Demand), sao serviços como Clube de Autores, Bookess e Perse (ou, em inglês, Lulu e Blurb). Eles tendem a ser usados para livros de curto prazo. São úteis para pequenas quantidades de exemplares e são úteis para amostras e livros de tiragem única (um só exemplar). O preço normalmente é um tanto alto e não funciona legal para impressão em grandes quantidades. Muitos são baseados online, assim alguns oferecem números ISBN por um custo adicional, e alguns também podem expor seus livros em sites como o Amazon. Não é geralmente uma forma aconselhável de autopublicação, exceto para impressão a curto prazo. Em boa parte do tempo, editoras POD agem como Selos de Subsídios ou Gráficas da Vaidade.

Por fim, há a autopublicação "verdadeira", na qual os escritores encontram e lidam pessoalmente com a publicidade, distribuição, projeto e armazenamento, e cobrem todo o custo. Um escritor pode contratar um designer para que faça a capa  ou simplesmente fazê-la ele próprio; como resultado disso tudo, todos os lucros obtidos vão diretamente para o escritor. Os passos para a autopublicação são listados abaixo.

Através de uma Gráfica Local

  1. Esteja preparado. Autopublicação requer um bocado de iniciativa e gerenciamento. Lembre-se de que sua gana de levar o livro ao público é que vão te ajudar a lidar com as frustrações que encontrará pelo caminho. Dito isto, a autopublicação pode ser um negócio lucrativo e excitante.
  2. Elenque as razões que o levam a querer autopublicar o seu livro, e faça estimativa do quanto vai custar. Determine se o motivo que o leva a querer publicar é forte o bastante para compensar o custo, e a menos que o seja, desista.
  3. Assegure-se de que o livro está completo, bem editado e revisado. Você pode dar um manuscrito para alguns amigos de confiança para que eles o avaliem e lhe deem um feedback, e falem com você sobre os fatos, ou motivações para os personagens, ou outros detalhes sobre o seu livro. Faça as mudanças que achar necessárias e considere-o pronto!
  4. Crie um bom título. Se você já não fez isso, crie um título que chame as pessoas pra ele. O título do seu livro pode influenciar as pessoas a comprá-lo, ou não. Por exemplo, "O Consumo de Excrementos de Apídeos e  Produtos Láteos com Bactérias Controladamente Injetadas" não soa tão.atraente quanto "O Prazer de Gorgonzola, Queijo e Mel".
  5. Deixe o projeto visual com um designer de capa profissional. A menos que você seja um artista e possa fazer isso por conta própria, contrate um profissional. Eles serão rápidos, e ajudarão seu livro a ter uma boa aparência - o que é muito importante quando ele estiver em uma estante de uma livraria! Se você estiver levando isso a sério mesmo, torne a apresentação do livro o melhor possível.
  6. Tenha um número ISBN. Você precisará disso se quiser que o seu livro possa ser listado no banco de dados das livrarias. Você pode comprar um ISBN diretamente do ISBN (www.isbn.org), mas cuidado, eles só vendem ISBNs em blocos de pelo menos 10, não por unidade. Há revendedores aqui e ali, uma lista deles você encontra em http://www.isbn.org/standards/home/Pubresellers.asp. ISBN cobram cerca de 100 dólares por ISBN.
  7. Procure uma gráfica. Dê uma volta por aí e colete cotações. Preços vão variar dependendo da qualidade do papel, a forma de prender as folhas, e cores. Quanto mais cópias você imprimir, mais baixo será seu preço por livro. Considere uma tiragem de 500 a 2.000 cópias.

Através de um Website

  1. Publicação online. Publicadores online como o Lulu deixarão você publicar seu livro gratuitamente, tanto para impressão quanto no formato de ebook. A impressão é "por demanda" e você só paga quando imprime uma cópia.
  2. Configure uma conta do programa. Você precisa fazer isso para poder fazer upload do livro e gerenciar os detalhes envolvidos.
  3. Digitalize seu livro. Se você escreveu seu livro a mão, agora é hora de levá-lo ao formato digital. Com um programa de edição e processamento de textos como o Microsoft Word ou LibreOffice/OpenOffice Writer, use seu tempo para transcrever cuidadosamente seus escritos. Quando você terminar, a edição e revisão se tornarão trabalhos muito mais fáceis para você. Alguns sites de autopublicação também oferecem serviços como consultoria online, de modo que você possa fazer um livro online usando modelos de livros e imagens do próprio site.
  4. Crie um bom título. Não importa como você publicará, o título é superimportante. Ele vai atrair potenciais leitores, ou então espantá-los. O que seria de "Harry Potter" se o livro se chamasse "Hogwarts" (antes que nós soubéssemos o que era Hogwart)?
  5. Edite o seu livro. Assegure-se de que o livro está completo, bem editado e com uma boa revisão. Você pode dar o manuscrito a alguns amigos de confiança para que eles leiam e avaliem, e então falem com você sobre fatos, ou motivação dos personagens, ou outras nuances do seu livro. Faça as mudanças que considerar necessárias e está feito!
  6. Faça o upload do seu livro finalizado. Depois disso, você terá que projetar sua capa (a menos que prefira uma capa preconstruída da empresa) e escolher o preço final para o consumidor e o tipo de livro (encadernação, escolha do formato, capa dura...) Uma vez terminada a categorização pedida pelo site, escolha a opção de concluir e o seu livro já está pronto para ser impresso. Você é agora um autor publicado!

Dicas

  • Faça um protótipo do seu livro antes de imprimí-lo. Se você não gostar de como o seu livro se apresenta, pode fazer as mudanças antes de gastar muito dinheiro em uma tiragem maior.
  • Certifique-se de que seu livro foi cuidadosamente revisado. Você não desejará que seu livro receba críticas ruins devido a erros de digitação ou um leiaute pobre. Vale a pena contratar um editor profissional para ler seu livro.
  • Adicione uma descrição precisa ao seu livro. Desta forma, ele atrairá mais clientes. Use descrições concisas para atrair seu interesse.
  • Publicidade é realmente a chave. Há uma abundância de livros maravilhosos no mundo que vendem 351 cópias porque eles não foram promovidos de maneira apropriada. E há muitos horríveis que vendem 43.000 cópias por terem sido devidamente promovidos.
  • Pesquisas mostram que consumidores de livros olham três coisas: a capa frontal, as orelhas e o índice. Gaste alggum dinheiro para que esses trêslugares cantem. Se necessário, contrate um artista gráfico, mas pense nisso como uma seção "cozinha e banho" . O dinheiro gasto nessas áreas renderá considerável retorno.
  • Liste seus livros no Amazon.com. Dê-se bastante tempo para escrever "comentários do editor" e certifique-se de que é preciso, gramaticalmente impecável e bem escrito. É isso que os compradores potenciais usarão para se decidir por comprar ou não seu livro.
  • Envie duas cópias do livro para a Amazon.com (seguindo as instruções em seu site) de modo que o livro possa ser escaneado e tornado disponível no serviço de "buscas dentro do livro".
  • Escreva revisões cuidadosamente formuladas, interessantes e inteligentes sobre seu livro no amazon.com, e crie uma assinatura ou tagline como "Rosemary Thornton, author, The Houses That Sears Built." Uma tagline gera bastante publicidade gratuita para o seu mercado alvo!
  • Envie cópias gratuiutas para alguém que possa ter interesse no assunto e lhe peça para escrever um review no amazon.com. Livros sem reviews no amazon.com tem muito, muita perda no ranking de vendas. Uma vez que potenciais compradores não poderão folhear seu livro, eles terão que contar com a opinião de outras pessoas.
  • Faça um site e crie um link para a livraria Amazon. Venda seus livros através do seu site.
  • Você também pode pensar em usar serviços que ofereçam atendimento POD. Mas tenha em mente que POD (impressão por demanda) só funciona bem para escritores que encaram a escrita como um hobby, não como uma carreira rentável. Imprimir 1.000 cópias de um livro custa em média deUS $ 3.500 a US$ 5.000 ou menos que US$ 5,00 por livro. O custo para fazer a mesma coisa usando um POD será três vezes maior. Amazon (e muitos outros vendedores de livros) te repassarão 50% do preço da capa. É difícil fazer dinheiro vendendo um livro de US$ 15,00 a US$ 10,00 (considerando que o preço de capa seja US$ 19,90).
  • Não crie um grande estoque de livros, especialmente se você puder evitar isso ou se a demanda é incerta. Um grande estoque extra significa que você pagará muito e terá boas chances de não ganhar muito com isso.
  • Exponha agressivamente seu livro através de press releasees, artigos em blogs, websites e quaisquer outras formas em que você possa pensar porque a publicidade é a atividade central que garantirá que pessoas conheçam e comprem o seu livro.
  • Leve o seu livro a feiras como a BookExpo America e a London Book Fair, que lhe darão acesso à indústria de publicação tradicional - vários empresas se oferecem para terceirizar esse tipo de publicidade de livro por uma taxa.

Alertas

  • Não escreva um livro com o mesmo título de algum outro. Dê-lhe um nome único e faça buscas antes de publicá-lo. Ter o mesmo nome que outro livro pode confundir os consumidores e, em alguns casos, gerar problemas legais.
  • Navegue no isbndb.com em busca do título que pretende usar. Procure também no Google para garantir que ninguém utilizou esse título antes.
  • Para melhores resultados, o assunto (ou a categoria) do seu livro deve fazer parte do título, ou pelo menos do subtítulo. Desta forma leitores o encontrarão em catálogos e bancos de dados mesmo que não conheçam o nome do autor ou do livro.

P. S.: Foto usada no post: 315, por aeri.

Special: 

Criando QR Codes com Python

Se você não tem nada a ver com programação, nem tem interesse no assunto, simplesmente ignore este artigo.


Mike Driscoll tem um blog dedicado a Python chamado The Mouse vs. the Python e eventualmente há excelentes artigos por lá.

Esta é uma tradução livre do artigo Creating QR Codes with Python e modifiquei sutilmente algumas coisas, incluindo os exemplos.

QR Code, para quem não sabe, é um estilo de código de barras bidimensional, podendo conter um fragmento de texto, o endereço de um site, um email ou mesmo uma ficha de informações pessoais básicas (reunindo tudo isso). Veja mais sobre esses códigos na Wikipedia.


QR Porco

Outro dia eu pensei que seria divertido criar em wxPython um pequeno programa que gerasse códigos QR e os mostrasse na tela. Eu queria fazer tudo com Python, assim eu procurei e encontrei 3 candidatos:

Testei o python-qrcode e o pyqrnative uma vez já que ambos funcionam tanto no Windows quanto no Mac e no Linux. Eles também não requerem nada a não ser o Python Imaging Library. O projeto pyqrcode requer vários outros pré-requisitos e não funciona em Windows, assim eu nem quis mexer nele. Terminei pegando algum código antigo baseado na minha aplicação Photo Viewer e o modificando levemente para torná-lo um visualizador de QR Code. Se isso te interessa, então continue lendo!

Começando

Como eu disse no início, você precisará da Python Imaging Library. Usaremos o wxPython para fazer a parte gráfica, assim você precisará deles também. E você vai ter que usar o python-qrcode ou o pyqrnative. A principal diferença que achei é que o python-qrcode é muito mais rápido na geração de imagens e gera o tipo que provavelmente você vai ver por aí. Por alguma razão, pyqrnative leva mais tempo pra executar e gera QR codes de aspecto muito mais denso. Deve haver opções para esses projetos que nos permitam gerar diferentes tipos de códigos, mas a documentação para ambos é abismal. Terminei usando o código e a IDE Wingware para navegar pelo código mais do que qualquer outra coisa.

Gerando QR Codes

De qualquer forma, uma vez que você tenha os pré-requisitos, você pode executar o seguinte código e ver o que o Python pode fazer:

# coding: utf-8
import os
import wx
 
try:
    import qrcode
except ImportError:
    qrcode = None
 
try:
    import PyQRNative
except ImportError:
    PyQRNative = None
 
########################################################################
class QRPanel(wx.Panel):
    """"""
 
    #----------------------------------------------------------------------
    def __init__(self, parent):
        """Constructor"""
        wx.Panel.__init__(self, parent=parent)
        self.photo_max_size = 240
        sp = wx.StandardPaths.Get()
        self.defaultLocation = sp.GetDocumentsDir()
 
        img = wx.EmptyImage(240,240)
        self.imageCtrl = wx.StaticBitmap(self, wx.ID_ANY,
                                         wx.BitmapFromImage(img))
 
        qrDataLbl = wx.StaticText(self, label="Texto a transformar no QR Code:")
        self.qrDataTxt = wx.TextCtrl(self, value="http://www.mousevspython.com", size=(200,-1))
        instructions = "Nome do arquivo do QR Code"
        instructLbl = wx.StaticText(self, label=instructions)
        self.qrPhotoTxt = wx.TextCtrl(self, size=(200,-1))
        browseBtn = wx.Button(self, label='Change Save Location')
        browseBtn.Bind(wx.EVT_BUTTON, self.onBrowse)
        defLbl = "Default save location: " + self.defaultLocation
        self.defaultLocationLbl = wx.StaticText(self, label=defLbl)

        qrcodeBtn = wx.Button(self, label="Criar QR com qrcode")
        qrcodeBtn.Bind(wx.EVT_BUTTON, self.onUseQrcode)
        pyQRNativeBtn = wx.Button(self, label="Criar QR com PyQRNative")
        pyQRNativeBtn.Bind(wx.EVT_BUTTON, self.onUsePyQR)
 
        # Create sizer
        self.mainSizer = wx.BoxSizer(wx.VERTICAL)
        qrDataSizer = wx.BoxSizer(wx.HORIZONTAL)
        locationSizer = wx.BoxSizer(wx.HORIZONTAL)
        qrBtnSizer = wx.BoxSizer(wx.VERTICAL)

        qrDataSizer.Add(qrDataLbl, 0, wx.ALL, 5)
        qrDataSizer.Add(self.qrDataTxt, 1, wx.ALL|wx.EXPAND, 5)
        self.mainSizer.Add(wx.StaticLine(self, wx.ID_ANY),
                           0, wx.ALL|wx.EXPAND, 5)
        self.mainSizer.Add(qrDataSizer, 0, wx.EXPAND)
        self.mainSizer.Add(self.imageCtrl, 0, wx.ALL, 5)
        locationSizer.Add(instructLbl, 0, wx.ALL, 5)
        locationSizer.Add(self.qrPhotoTxt, 0, wx.ALL, 5)
        locationSizer.Add(browseBtn, 0, wx.ALL, 5)
        self.mainSizer.Add(locationSizer, 0, wx.ALL, 5)
        self.mainSizer.Add(self.defaultLocationLbl, 0, wx.ALL, 5)
 
        qrBtnSizer.Add(qrcodeBtn, 0, wx.ALL, 5)
        qrBtnSizer.Add(pyQRNativeBtn, 0, wx.ALL, 5)
        self.mainSizer.Add(qrBtnSizer, 0, wx.ALL|wx.CENTER, 10)
 
        self.SetSizer(self.mainSizer)
        self.Layout()

    #----------------------------------------------------------------------
    def onBrowse(self, event):
        """"""
        dlg = wx.DirDialog(self, "Escolher  um diretório:",
                           style=wx.DD_DEFAULT_STYLE)
        if dlg.ShowModal() == wx.ID_OK:
            path = dlg.GetPath()
            self.defaultLocation = path
            self.defaultLocationLbl.SetLabel("Local de salvamento: %s" % path)
        dlg.Destroy()
 
    #----------------------------------------------------------------------
    def onUseQrcode(self, event):
        """

https://github.com/lincolnloop/python-qrcode

        """

        qr = qrcode.QRCode(version=1, box_size=10, border=4)
        qr.add_data(self.qrDataTxt.GetValue())
        qr.make(fit=True)
        x = qr.make_image()
 
        qr_file = os.path.join(self.defaultLocation, self.qrPhotoTxt.GetValue() + ".jpg")
        img_file = open(qr_file, 'wb')
        x.save(img_file, 'JPEG')
        img_file.close()
        self.showQRCode(qr_file)
 
    #----------------------------------------------------------------------
    def onUsePyQR(self, event):
        """

http://code.google.com/p/pyqrnative/

        """

        qr = PyQRNative.QRCode(20, PyQRNative.QRErrorCorrectLevel.L)
        qr.addData(self.qrDataTxt.GetValue())
        qr.make()
        im = qr.makeImage()
 
        qr_file = os.path.join(self.defaultLocation, self.qrPhotoTxt.GetValue() + ".jpg")
        img_file = open(qr_file, 'wb')
        im.save(img_file, 'JPEG')
        img_file.close()
        self.showQRCode(qr_file)
 
    #----------------------------------------------------------------------
    def showQRCode(self, filepath):

        """"""
        img = wx.Image(filepath, wx.BITMAP_TYPE_ANY)
        # redimensionar imagem, preservando proporção
        W = img.GetWidth()
        H = img.GetHeight()
        if W > H:
            NewW = self.photo_max_size
            NewH = self.photo_max_size * H / W
        else:
            NewH = self.photo_max_size
            NewW = self.photo_max_size * W / H
        img = img.Scale(NewW,NewH)
 
        self.imageCtrl.SetBitmap(wx.BitmapFromImage(img))
        self.Refresh()
 
 
########################################################################
class QRFrame(wx.Frame):
    """"""
 
    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, title="Visualizador de QR Code", size=(550,500))
        panel = QRPanel(self)
 
if __name__ == "__main__":
    app = wx.App(False)
    frame = QRFrame()
    frame.Show()
    app.MainLoop()

O código para modificar e exibir imagens é tratado no artigo anterior que eu escrevi (e com link acima), assim as únicas partes com que você provavelmente terá que se preocupar são dois métodos para gerar códigos QR: onUseQrcode e onUsePyQR. Eu apenas peguei alguns exemplos de seus respectivos sites e os modifiquei para criar as imagens de códigos QR. Eles são muito simples, mas não são bem documentados, de modo que eu não posso realmente lhe dizer o que está acontecendo neles. Infelizmente, no momento em que escrevia este texto, o código desses projetos carece seriamente de comentários, com apenas alguns aqui e ali. Ainda assim, eu estava apto a gerar códigos QR decentes. O código a seguir foi feito usando python-qrcode.

Tela do código em execução, modo qrcode

Como vovcê podever, é um código padrão bastante simples. O próximo foi criado com PyQRNative e tem um aspecto muito mais denso:

Imagem do código em execução, modo PyQRNative

Tentei escanear ambas as imagens com o aplicativo leitor de códigos debarra do meu celular com android e ambos os códigos QR foram corretamente lidos por ele. Assim, se você precisa gerar códigos QR para o seu projeto, tenho esperanças de que ao menos um dos dois atenda às suas necessidades!

ATUALIZAÇÃO 21/05/2012

Um dos meus leitores (Mike Farmer) me contactou recentemente sobre seus experimentos com PyQRNative e me disse que "o primeiro parâmetro é o tamanho do container e o segundo é a correção de redundância/erro". Eu meio que adivinho o que o primeiro parâmetro quer dizer, mas realmente não entendi isso de correção de erro. Felizmente, Sr. Farmer me explicou isso: Se a correção de erros é menor, manchas e marcas não serão toleradas na leitura. Se aumentar o nível de erro, obviamente o código qr será aumentado, mas o que foi feito foi a duplicação dos dados dentro da etiqueta. Assim, se a etiqueta for manchada ou rasgada, ainda poderá sr possível ler e recuperar os dados restantes. Deste modo, se sua aplicação estiver criando etiquetas que podem ser danificadas, é sábio aumentar a correção de erros. Você também pode fazer coisas legais com isso, como sobrepor imagens ou textos na tag, aumentando a correção de erros, fazendo com que os dados redundantes tolerem o "dano". De qualquer forma, se você mudar o primeiro número, você pode expandir o tamanho do da imagem do código QR. Por que você faria isso? Bem, quanto mais informações você precisar guardar na imagem, maior ela precisará ser. Sr. Farmer veio com um código de testes divertido que nos ajuda a descobrir qual o tamanho mínimo que um código QR deve ter. Estou reproduzindo o código a seguir:

import PyQRNative
 
def makeQR(data_string,path,level=1):
    quality={1: PyQRNative.QRErrorCorrectLevel.L,
             2: PyQRNative.QRErrorCorrectLevel.M,
             3: PyQRNative.QRErrorCorrectLevel.Q,
             4: PyQRNative.QRErrorCorrectLevel.H}
    size=3
    while 1:
        try:
            q = PyQRNative.QRCode(size,quality[level])
            q.addData(data_string)
            q.make()
            im=q.makeImage()
            im.save(path,format="png")
            break
        except TypeError:
            size+=1

P. S.: foto usada no post: QRCode Piggy Bank, de B3OK.

Special: 

Páginas