terça-feira, 27 de fevereiro de 2018

Como não tratar seus cliente: Alexandre Imóveis, um estudo de caso


Empresas brasileiras precisam aprender o que é "Customer Service" (Atendimento ao Cliente). Reproduzo aqui tradução própria que fiz do artigo na Wikipedia:

"Atendimento ao cliente é a provisão de serviços ao cliente antes, durante e depois de uma compra. A percepção de sucesso dessas interações é dependente dos empregados que podem se ajustar à personalidade do cliente".

O fato é que muitas de minhas interações com empresas são péssimas e aqui utilizo o exemplo da Imobiliária Alexandre Imóveis, de São José dos Campos por 4 motivos: 

  1. O primeiro é compartilhar idéias com a galera e de repente se eu sou azarado em minhas interações, ou até mesmo se eu sou um cliente chato na visão de outras pessoas;
  2. O  segundo é uma esperança inocente de que algumas empresas possam rever suas políticas no atendimento ao cliente e passarem a lucrar mais com isso;
  3. Alertar todos meus amigos a evitarem qualquer tipo de utilização de serviço da imobiliária, já que conheço algumas pessoas que trabalham comprando e vendendo imóveis como seu negócio;
  4. Utilizar esse texto para explicar ao proprietário do imóvel que hoje alugo a razão de eu estar saindo.

Contexto
No ano de 2016 eu quitei minha primeira casa própria. Mas como viajo muito, minha esposa tinha receio de ficar em casa por conta de segurança. Tendo em vista que iríamos ter um filho, decidimos então por alugar minha casa e procurar um apartamento perto da casa dos pais dela. O aumento de gastos seria mínimo, ela teria mais segurança e ainda ficaria mais perto da família para ajudar nos dias difíceis logo após o parto.

Depois de alguma procura encontramos um proprietário por intermédio de minha sogra. Negociamos valor de aluguel interessante para ambas partes. Eu odeio intermediários mas ele insistiu que fizéssemos a burocracia com a Alexandre Imóveis.

Visitamos então o apartamente com a corretora. E essa foi a única experiência agradável que tive com a empresa.
O cliente sempre tem razão
Eu não acredito que o cliente sempre tenha razão. Mas eu acredito que o cliente, sendo aquele que detém o controle do dinheiro, é a parte forte em uma negociação. Por isso, até que ele tire o dinheiro da carteira e feche negócio, você deve fazer tudo para facilitar sua vida. Aliás, você deve procurar esse objetivo em qualquer interação, mesmo depois da venda. Mas menciono essa frase por ser a mais crítica.

Pois bem, pedi à corretora que enviasse a minuta do contrato por email para eu avaliar. Ela nunca fez isso. Um contrato determina os termos de um negócio. Por isso ambas parte assinam. Eu sempre leio contrato e bato o pé para alterar clausulas que ache inconvenientes. Essa foi a minha primeira frustração.

Mas fomos chamados apenas para assinar o contrato. Eu li o contrato por completo e tinha itens que estavam em desacordo e até com erros gramaticais. Mas como meu sogro era o fiador e minha esposa tinha muito interesse em mudar, acabei agasalhando.

Além disso, pedi a gentileza de ter uma versão digital do contrato para poder aplicar como modelo no aluguel de minha casa. A corretora se negou a fornecer. Eu ia retrucar, mas fiquei quieto. Sou engenheiro de computação mas nem precisa ser para saber escanear um documento e passar um OCR no mesmo. Ou seja, a empresa já me deixou mais frustrado pela segunda vez e ainda sim não conseguiu manter seu precioso template em privado.
O cliente não é seu empregado
Todos envolvidos assinaram o contrato. A empresa então falou para reconhecermos firma. Argumentei com minha esposa: "Um contrato de aluguel serve mais para resguardar o proprietário. Como inquilino, eu não ganho muito com ele, por que eu que tenho que ter o trabalho de reconhecer firma e arcar com seus custos? Não sou empregado imobiliária". Pensei mais uma vez e não firmar o negócio. Ela me acalmou e me relembrou da dor de cabeça que seria procurar outro imóvel. Terceira frustração.

Retornamos com duas versões de contrato, uma com firma reconhecida e outro não. Adivinha com qual a imobiliária ficou? Sim, com a versão reconhecida com seus custos pagos. Quarta frustração.

Fui informado que o primeiro aluguel teria que ser pago na própria imobiliária. Sério, em 2016 ter que me locomover para pagar uma conta? Quinta frustração.

Diminuir barreiras para o dinheiro do cliente cair em sua conta
Acho que esse título não precisa nem de descrição. Na Python Pro eu automatizei o sistema de pagamento utilizando pagseguro. Mas quando um potencial aluno me diz que teve problema no pagamento, tenho duas reações:
  1. Já matriculo o aluno no curso antes de qualquer coisa. Ele já tem acesso ao fórum de discussão e informações de acesso ao curso e fica feliz com isso;
  2. Dou opções de pagamento via depósito em pelo menos dois grande bancos, assim como patamento via boleto.

A Alexandre Imóveis pensa diferente. Todo mês eu tenho que enviar um email para eles com comprovante de condomínio para só então eles me enviarem um boleto para pagamento de aluguel.

Como bom exemplo de como poderia ser o processo, sito a Freitas e Pozzati, administradora do prédio. Eles possuem um site para eu poder baixar o boleto na hora em que quiser pagar. Além disso enviam o boleto impresso para pagamento. Esse é o caminho de qualquer empresa que se preze no ano de 2017.

Esse envio de boleto pela administradora serve para me lembrar de pagar as contas referentes a casa. Sou um cara muito esquecido e por isso otimizei o processo para nunca atrasar nada, não pagar juros e, principalmente, não perder tempo. Quando chega o boleto do condomínio eu agendo o pagamento, tiro print do comprovante e já envio para a Alexandre afim de ser abatido o valor de fundo de reserva. Eles mandam o boleto e já agendo o pagamento do aluguel com cerca de 20 dias de antecedência

Outro detalhe. Esse ano eu paguei à vista o IPTU direto no carnê. Isso para ganhar o desconto e ser menos uma coisa a ser calculada na geração do boleto.

O processo funcionou bem durante 8 meses. Mas quando as coisas começam mal, tendem a piorar. Recebi o seguinte email que gerou minha sexta frustração, no qual apaguei nomes dos envolvidos:

"Bom dia,
Tudo bem?

Peço a gentileza do senhor  nos enviar o próprio comprovante de pagamento do condomínio ( após o vencimento )  , estamos tendo alguns problemas com agendamento.

Desde já agradeço a compreensão"”

Cara, o sangue subiu muito rápido pelo acumulado da relação desgastada. Respondi de bate pronto, o que dá para perceber pelos inúmeros erros de português:

"Nunca atrasei o pagamento de condomínio nem aluguel um dia sequer. Por isso gerar mais trabalho para mim, o cliente, quando vocês tem problemas é um fator que me incomoda. Em uma empresa que estivesse seriamente preocupada com os clientes, vcs mesmo iriam verificar junto ao condominio o valor do fundo de reserva e se ele foi pago ou não, não transferir esse ônus para os clientes. Afinal, para isso que se tem uma imobiliária recebendo comissão pelo serviço.

Desde o fechamento do contrato o insensibilidade no trato com cliente me irritaram. Exemplo: eu tive que reconhecer assinaturas em um contrato, arcando com as despesas, e fiquei com  a cópia que não tinha sem reconhecimento, ou seja, eu teria que arcar de novo com os custos. Isso sendo que o interesse na validade do mesmo é da imobiliária, não meu. Afinal de contas, para mim o que interessa é estar com a chave em mãos. Depois disso, o contrato só serve para resguardar imobiliária/proprietário.

Baseado no exposto, existe alguma maneira de vcs facilitarem a minha vida em vez de complicar mais?
"

O que passou na minha cabeça: "Agora vou ter que agendar o pagamento do condomínio, esperar passar o dia do pagamento, ter que lembrar de acessar o internet banking bosta da Caixa, pegar cópia do comprovante para só então poder pagar o aluguel". Ou seja, mais trabalho para dar meu dinheiro para alguém? &*#*$()&ˆ#)&*ˆ#*&ˆ#*(&ˆ#*&ˆ#$*%.
Quando dá merda, tente entender o problemas com os olhos do cliente
Quando existe algum problema grave na Python Pro, eu ligo para o cliente. Pergunto qual é o problema, pergunto qual seria a melhor solução na visão dele. Não faço isso por email pois é impossível transmitir a idéia de que vc se importa com cliente em um texto frio. Mais do que isso, o cliente pode me dar uma solução para um problema em meu processo, que pode facilitar minha vida e a de outros futuros fregueses. Então não só estou sendo pago para servir, ainda estou recebendo consultoria grátis!

Mas depois do exposto até aqui, isso é esperar muito da Alexandro Imóveis. Eis a reposta para a pergunta em meu email:

"Boa tarde .
Sim, o senhor é um excelente cliente, e agradecemos por isso.
Só peço a gentileza de nos mandar o comprovante de condomínio após o pagamento para emissão do boleto.

Fico no aguardo
Obrigada  e bom fim de semana"

Traduzindo para o português claro e conciso: "Caguei para você".
Um cliente satisfeito indica a empresa para 1 amigo. Um insatisfeito não indica para 100.
São tempo de redes sociais. Má propaganda voa. Tentei lembrar a imobiliária disso:

"Traduzindo: não podem fazer nada. Tenho imóvel e amigos que possuem imóveis. Farei um excelente post nas redes relatando minha opinião finalizando por não indicar a Alexandre Imóveis nem para inimigos."

Parece que não acreditaram. Aqui está meu post. E toda vez que eu tiver que retirar um boleto para pagar aluguel, vou repetir esse post nas redes.

Mas aí recebo a resposta que ativa todos meus gatilhos de indignação com uma empresa.

Não ameace seu cliente com contrato
"De nenhuma forma  queremos dificultar a vida do senhor ou de qualquer cliente, só estou pedindo que o senhor nos envie o comprovante de pagamento do condomínio para emissão do boleto.

Peço desculpas se de alguma forma isso está te aborrecendo , mas eu só estou seguindo o  que está no contrato."

Já disse anteriormente e repito: não amece seu cliente com contrato. Não sou advogado  mais sou hacker. Eu vou achar algum argumento no contrato para retaliar a ameaça. Peguei minha cópia de contrato muito puto e li, respondendo em seguida:

"Excelente resposta!

Acabei de ler o contrato mais documento timbrado com instruções para pagamento (anexos). Neles há previsão de retirada de boleto por email. Mas em NENHUMA clausula diz que sou obrigado a apresentar comprovante de pagamento de condomínio. Logo a afirmação de "estar seguindo o contrato" é falaciosa. Não sou obrigado, nem por contrato, a arcar com ônus operacional de terceiro. Não sou funcionário da Alexandre Imóveis e muito menos gosto de trabalhar de graça.

Se quiserem saber a situação do pagamento do condomínio, a partir de agora, deverão entrar em contato com a administradora Freitas e Pozzati. Aproveitem para pegar uma dica sobre emissão de boleto. O deles chega todo mês em minha caixa de correio todo mês, sem necessidade sequer de email ou tomar tempo cliente.

Dito isso a partir de agora não apresentarei sequer o comprovante de agendamento do pagamento do condomínio, que vinha fazendo de boa vontade. O valor do fundo de reserva esse mês foi de R$ 20.76. Portanto preciso do boleto com valor do aluguel, descontada essa taxa: R$ 1179,24.

Minha esposa conhece o proprietário do imóvel. Queríamos ter fechado negócio direto com ele, mas preferiu, e me arrependo disso agora, utilizar os serviços da imobiliária. Enviarei cópia de toda essa conversa para ele, além de utilizar na postagem que farei nas redes sociais para ilustrar minha opinião com relação ao péssimo tratamento dado ao cliente por vocês."

Mas eu estava com tanta raiva que não li a clásula décima terceira. Pela diferença no linguajar e fonte do email, devem ter passado para outra pessoa responder:

"Prezado Sr. Renzo
Gostaria de ressaltar que não há problema algum de consultarmos a administradora quanto ao pagamento do condomínio por V.Sa. Porém, esta verificação somente será possível após o vencimento do mesmo, ou seja, a partir do dia 16 do mês corrente, data que poderemos emitir o boleto do aluguel a vencer no dia 5 do mês seguinte.
Por outro lado, para que possamos proceder com o desconto das taxas extraordionárias no boleto do aluguel, se faz necessário que V.Sa. nos envie por email ou whatsupp o extrato mensal enviado pela administradora para certificarmos do valor, fato este que acreditamos não lhe causar nenhum transtorno ou ônus operacional, especialmente também por ser de seu interesse que este desconto ocorra.
Outrossim, no intuito de não lhe causar nenhum transtorno ou dificuldade, manteremos o valor mensal do desconto em R$ 20,76. No caso de algum mês o valor for divergente deste lançamento, peço então que nos encaminhe o demonstrativo para que possamos atualizá-lo.

Segue abaixo a clausula que trata da apresentação do condomínio pago do mês em curso, para que possamos receber o aluguel. Portanto, agendamento futuro não caracteriza o pagamento."”

Sim, eles estavam corretos. No contrato sou obrigado a mostrar o comprovante. Mas dou um boi para não entrar numa briga e uma boiada para não sair:

"Aqui se encontra a parte que me interessa e o que busquei desde o primeiro contato quando pedi para facilitarem minha vida:

Outrossim, no intuito de não lhe causar nenhum transtorno ou dificuldade, manteremos o valor mensal do desconto em R$ 20,76. No caso de algum mês o valor for divergente deste lançamento, peço então que nos encaminhe o demonstrativo para que possamos atualizá-lo.


É difícil entender a necessidade do cliente que quer inclusive já agendar com antecedência o pagamento de aluguel, evitando transtornos para ambas partes?
Muito obrigado por me mostrar a cláusula. Reconheço que passei por cima durante a leitura. Mas então pergunto: vocês estão exercendo seu direito de não receber o aluguel agora? Se a resposta for sim já começo a me preparar para exercer a clausula vigésima terceira, onde posso entregar o apartamento daqui 4 meses, sem pagar multa.

Eu pretendia ficar 3 anos de duração de contrato, no mínimo. Mas me recuso a dar lucro para quem quer dificultar o próprio processo de receber o meu dinheiro. E tenho certeza que o proprietário ficará tão o mais frustrado que eu. Com essa crise é difícil encontrar quem pague aluguel em dia, quem dirá um que quer agendar o pagamento um mês antes. Aí ele vai poder conferir o boleto do condomínio todo mês, quando tiver que pagar por ele."”

Sim, fantástica uma cláusula em que vc pode se negar a receber o aluguel Alexandre imóveis! O boleto fica de refém pq vcs se negam a gerar! Ou seja, minha punição seria a de não conseguir pagar...kkk

Mas em princípio tem a cláusula da multa de 3 alugueis em caso de descumprimento de alguma cláusula. Mas te juro, não fosse o meu sogro estar de fiador, eu ia esperar o boleto e se não enviassem, deixaria ir para a justiça. Isso ia demorar um tempão para ser julgado e ainda declararia que sempre quis pagar o aluguel, pedindo boleto por email e tendo meu pedido negado.

Em mercado com forte concorrência onde vc é mero intermediário, o cliente é parte forte em queda de braço
A não ser que sua empresa tenha o monopólio em seu setor, o cliente é parte forte de qualquer negociação. E o pior, o intermediário, por receber mera comissão, não enxerga o quanto vai prejudicar seu outro cliente, nesse caso, o proprietário.

Fazendo conta de padeiro, com minha saída o proprietário deixará de receber R$ 1.200/mês. Mais ainda, vai ter que arcar o condomínio de R$ 404,00. Nessa crise, vou chutar baixo que demorarão 3 meses para alugar o apartamento. Prejuizo total de R$ 1216 por conta do condomínio mais custo de oportunidade de R$ 3.600.

Contando que aluguem para alguém que não fique inadimplente, sem contar o trabalho de ter que refazer todo processo de venda e burocracia, vão ter que alugar o apartamento por R$ 1400 (valor original do aluguel antes de eu negociar) para reaver o prejuízo em 24 meses (2 anos).

Pergunto: fizeram essas contas? Pelas resposta abaixo, duvido:

"Prezado Sr. Renzo,

Em relação a desocupação, peço a gentileza de nos avisar com 30 dias de antecedência a data de saída do imóvel."

Resumo da história: agendei no calendar a data do vencimento do contrato para avisar com 30 dias de antecedência minha saída. Do jeito que está o mercado, acredito que ainda vou baixar ainda mais o valor do aluguel.

Acho que apenas mostrando nossa insatisfação deixando de dar lucro a empresas péssimas pressionaremos para melhorar a qualidade de serviços em geral.

E você concorda com isso? Já teve problemas do gênero? Compartilhe aí ;)

Atualização: Estou saindo do apartamento em março de 2018. A partir de hj quando eu for procurar um imóvel e tiver placa da Alexandre, já estará descartado.




sexta-feira, 9 de junho de 2017

Subtle Bug: Python, Mac and Unicode

I was studying Django by doing a project. Every test was passing so apparently everything was fine. But after deploying the application and trying to save a subscription I got a 404.

I little investigation revealed that Django's template tag url was generating "/inscricao/ˆ" instead of expected "/inscricao/". So I triple checked my urls. First the my base urls.py:


And after my app urls:


Everything looked nice. So I thought: "Maybe I found a bug on Django, what a chance to contribute to a huge Python web framework!". So I wrote a test case on my application to uncover the bug and started debugging it. The test could be used latter to send a PR to Django:


So the failing test helped me to find the line where "^" is removed from pattern to build the paths:


On debugger session my p_pattern was "'ˆ$". Besides of that the conditions was returning False. I thought: WTF!. But keeping attention I spotted the issue.

The "ˆ" from my code was a bit smaller the "^" on DJango's code. The issue happens because when you configure Mac's Keyboard to international and you press SHIFT + ^ you get "ˆ". Most of times Brazilians type a letter after that so you have char like "ê" or "â". In this case If you really want only the circumflex accent you need hit space button on your keyword.

On other systems, like Linux and Windows, you get no char when typing this button, so you are visually aware that you need to take another action to make it appear. That is the reason I got the wrong char there.

I could also have spotted that paying attention to Pycharm IDE sintax highlight. On raw strings mostly used for regex it color special char with orange. Check the difference:


Wrong char

Right char

After all of this I also checked the names of the chars using python:


And off course, fixed it:

https://github.com/renzon/wttd/commit/0aebc0fbb9ff8a6ef9c38ea4215c278653404bb3

So after been a little angry for spending 2 hours at this bug I decided to write this blog post to realize the things I learned on investigation:
  1. unicode;
  2. regex;
  3. more knowledge about Django's internal code;
  4. knowing "^" char is called circumflex accent in English.

Most of times when I find myself struggling with a bug the cause was a simple (and mine) mistake which led to it. And you? Do you have a history with a bug like this? Share on the comments!

And off course, fixed it:

https://github.com/renzon/wttd/commit/0aebc0fbb9ff8a6ef9c38ea4215c278653404bb3

So after been a little angry for spending 2 hours at this bug I decided to write this blog post to realize the things I learned on investigation:
  1. unicode;
  2. regex;
  3. more knowledge about Django's internal code;
  4. knowing "^" char is called circumflex accent in English.

Most of times when I find myself struggling with a bug the cause was a simple (and mine) mistake which led to it. And you? Do you have a history with a bug like this? Share on the comments!

segunda-feira, 4 de julho de 2016

7 razões para cachorros serem felizes

Há 7 anos minha esposa ganhou uma cachorra Beagle e a batizou de Fiona.

Nos casamos em 2015 ela me perguntou se podia levar a Fiona. A priori fui contra, por que nunca tive paciência para cuidar de animais. Mas como quem pode manda e quem é esperto obedece, a Fiona veio morar com a gente. E não demorou muito para essa danadinha conquistar meu coração.
Infelizmente hoje, dia 4 julho, a Fiona nos deixou. Por isso escrevo esse texto em homenagem a ela.
Sempre reparei que a Fiona estava sempre feliz. Como o assunto me interessa muito, compartilho aqui minhas observações:
  1. Cachorros são hedonistas. Ou seja, eles vivem o presente intensamente. A Fiona estava sempre pronta para passear. Não podia nos ver mastigando que já fazia cara de coitada para ganhar uma comida diferente.
  2. Cachorros precisam de pouco. Água, comida e carinho são suficiente para ele ficar contente. Acrescentava uma bolinha para brincadeiras, a Fiona ficava no Nirvana. E uma bolinha de meia? Ficava feliz da vida mastigando na casinha. Já ouviu o ditado "Pobre não é quem não tem nada, mas sim quem precisa de tudo"? Quem mais vive isso tão intensamente?
  3. Cachorros demonstram seus sentimentos. Ela só olhar o rabo dela e carinha que vc sabia se ela estava triste, contente ou abatida. Cachorro, se não gosta de você, rosna e late. Mas Fiona nunca rosnava ou mordia, mesmo quando eu abria a boca dela para escovar os dentes ou para ingerir os remédios contra convulsão.
  4. Cachorro não tem pena de si mesmo. Quando descobrimos que a Fiona estava com metástase, ela não ficou abatida ou reclamando. Viveu mais 3 meses aproveitando a vida, ficando quieta nos dias ruins, mas brincando e correndo junto comigo pelo mato ,perto de casa, nos dias bons.
  5. Cachorros não guardam rancor. Mesmo depois de levarem uma baita bronca por conta de terem feito bagunça, basta chamar que ela vinha para mais uma brincadeira com pano.
  6. Cachorros amam intensamente. Chegou em casa, lá estava ela abando o rabo, querendo brincar e passear.
  7. Cachorros não julgam. Acho que o texto do livro Marley e Eu traduz a idéia melhor do que eu poderia: "Para um cão, você não precisa de carrões, de grandes casas ou roupas de marca. Símbolos de status não significavam nada para ele. Um pedaço de madeira já está ótimo. Um cachorro não se importa se você é rico ou pobre, inteligente ou idiota, esperto ou burro. Um cão não julga os outros por sua cor, credo ou classe, mas por quem são por dentro. Dê seu coração a ele, e ele lhe dará o dele. É realmente muito simples, mas, mesmo assim, nós humanos, tão mais sábios e sofisticados, sempre tivemos problemas para descobrir o que realmente importa ou não. De quantas pessoas você pode falar isso? Quantas pessoas fazem você se sentir raro, puro e especial? Quantas pessoas fazem você se sentir extraordinário?"
Enfim, termino esse texto feliz por você ter feito parte da minha vida em vez de triste por ter partido. Sou muito mais "cachorro" depois desses 8 meses maravilhosos. Sempre lembrarei de você quando estiver correndo pelo bairro, mas agora sem companhia. Obrigado.



quarta-feira, 24 de fevereiro de 2016

Hackeando custos no início de sua empresa: a história que contador não conta

Vou dividir o post em duas partes.  Na primeira falarei sobre a abertura da empresa. Na  segunda focarei em minimizar alguns custos iniciais.  Mas antes de abordar esses assuntos a questão importante é: o que chamo de empresa?

A definição simplista que já ouvi e gostei é de que empresa é um papel que te dá acesso ao CNPJ.  Com ele será possível abrir contas e receber pagamentos.  Ele também permitirá desfrutar da cobrança de impostos mais favorável que a da pessoa física. Sendo então a economia a principal motivação cortar custos, principalmente no início, é muito importante.

o primeiro passo então é aprender como abrir a companhia.  A primeira resposta que ouvirá será procurar um profissional conhecido como contador.  Ele conhece o emaranhado de leis brasileiras (pelo menos deveria) e atalhos para atingir esse objetivo.  Te ajuda a escolher o enquadramento da sua empresa buscando minimizar o pagamento de impostos de forma legal. Contudo seus serviços possuem um custo e é do interesse dele tê-lo como cliente.

Por essa razão pode ser que não mencione a modalidade de empresa chamada Micro Empreendedor Individual (MEI). Raramente elogio iniciativas do governo mas essa realmente é uma que deu certo.  nessa modalidade você obtém o seu CNPJ preenchendo um formulário pela internet em cerca de 10 minutos. O cadastro é simples e assim você já economiza o custo de abertura de uma empresa.

Com o cartão do Empreendedor em mãos você precisará apenas da ajuda do computador para tirar a Inscrição Municipal e respectivo alvará.  Em minha cidade isso custou R$ 110.

Mas essa não é a principal economia.  A tributação e obrigações  desse tipo de pessoa jurídica são muito simples, de tal forma que você mesmo poderá fazer a contabilidade.  Considerando um custo mensal de R$ 250 pelo contador,  você economizará R$ 3000 por ano! Acredito ainda está cotando um valor abaixo da média do mercado ;).

O imposto mensal é fixo, atualmente no valor de R$ 49,  desde que você fature até R$ 60.000 anuais.  As guias de pagamento ficam disponíveis no site. Você pode pagar em qualquer banco ou pela internet.

As obrigações são duas.  Você deve gerar um documento com todas entradas e saídas a cada mês.  Convenhamos Isso já é algo que você deveria fazer ao pensar em abrir uma empresa. A segunda obrigação é declarar o faturamento de sua empresa à Receita Federal anualmente.  Isso é feito pela internet em menos de 5 minutos.  Outra peculiaridade é que a obrigação de emissão de nota fiscal só existe se o seu serviço for prestado a outra pessoa jurídica.  Para pessoas físicas a nota é opcional.

Dessa maneira, você já consegue economia considerável.  Mas ainda é possível cortar outros custos.

Depois de obter o meu CNPJ percebi que vários fornecedores querem tirar uma casquinha do meu faturamento.  O primeiro deles foi a empresa NET.  Ao orçar o serviço de internet  recebi o valor de R$ 250 para instalação e mensalidades de R$ 129. Cotando então o serviço para em nome de minha mãe, pessoa física, o custo ficou em R$ 69,  sem taxa de instalação. Economia de R$ 720 anuais.

A extorsão não parou aqui. No PythonPro utilizo o PagSeguro para receber os pagamentos.  cadastrada a minha empresa os recursos só podem ser transferidos para uma conta bancária da respectiva pessoa jurídica.  Como só utilizaria para receber esse dinheiro procurei nos principais bancos por uma conta sem custo de manutenção. Descobri que essa opção não existe. 

Passei então a conviver  com as cobranças da Caixa Econômica Federal.  Eram R$ 29 pela cesta de serviços mais simples e outros R$ 29,50  de taxa de manutenção todo mês.  Em minha visão se já pago cesta já deveria estar inclusa manutenção.

Por conta disso fui conversar com o gerente, ver se havia alguma forma de isenção de taxas. já possuía conta há mais de um ano. Dado esse tempo é a movimentação financeira achei que conseguiria algo, pois obtive isenção integral em minha conta de pessoa física com essa estratégia.  Ledo engano,  não consegui sequer um pequeno desconto. Fiquei decepcionado e isso inclusive me motivou a escrever esse post =P.

Contudo a solução acabou aparecendo.  O PagSeguro criou um cartão de crédito pré pago. A vantagem é que posso transferir os recursos do site direto para ele.  Inclusive o processo demora muito menos que a movimentação para o banco. Sendo assim foi possível encerrar a conta na Caixa e economizar outros R$ 714 anuais. Somando valores,  consegui economizar R$ 4.434 por ano. Comparado ao faturamento máximo do microempreendedor de R$ 60.000, isso  representa 7.39%.

Se você, assim como eu,  puder se enquadrar nas categorias de microempreendedor individual e sua fonte exclusiva de pagamento for à internet, poderá fazer o mesmo. Vamos protestar hackeando o sistema, eliminando fornecedores cujo custo benefício são ridículos.

Mas e você conhece outras formas de economizar?  Compartilhe seus hacks para me ajudar a economizar ainda mais =D.

terça-feira, 5 de janeiro de 2016

Fórmula para escrever redações e dissertações

Minha motivação para escrever esse texto é a dificuldade que observei e observo em Trabalhos de Conclusão de Curso (TCC). Dou aula na Fatec de São José dos Campos e a questão fica latente nas apresentações feitas nas bancas de correção no fim do semestre. Assim vou compartilhar aqui minha fórmula para escrever textos.


Não fui eu quem criou esse método. Eu o aprendi durante o curso pré-vestibular para fazer redações. Mas ele serve muito bem para trabalhos científicos e técnicos. Seu objetivo é construir o texto em um formato bem definido. Assim o escritor só se preocupa com conteúdo.


Para redações o texto possuirá 5 parágrafos, assim distribuídos:

  1. O primeiro parágrafo introduz o assunto, citando 3 grandes temas a serem abordados;
  2. Cada um dos 3 parágrafos subsequentes descreve um dos temas mencionados na introdução;
  3. O quinto, e ultimo parágrafo, apresenta a conclusão geral do texto.
Além disso cada um dos 5 parágrafos possui o seguinte formato:

  1. É composto por 3 ou quatro frases;
  2. A primeira introduz a idéia do parágrafo;
  3. A segunda desenvolve a idéia;
  4. A terceira frase conclui, já preparando o assunto do próximo parágrafo;
  5. O próximo parágrafo utiliza conectores (Embora, Sendo assim, Porém, Apesar disso) para manter a fluidez no texto.
E assim termina a descrição do formato.


Dessa maneira, ao seguir essa fórmula, aliado à escrita formal em terceira pessoa, você irá escrever uma redação dissertativa que caberá entre 20 e 30 linhas. O texto será conciso e objetivo. Assim o formato exigido em vestibulares será cumprido e o papel do escritor é apenas preencher esse "template" com conteúdo.


Outra vantagem da regra é evitar o uso de frases longas. Elas costumam ser difíceis de entender para o leitor. Grandes sentenças também obrigam o uso de muitas vírgulas. E as regras de uso desse sinal se mostram outra grande dificuldade para alunos.


Mas o TCC de um curso de graduação é maior do que uma redação. Seu formato geral costuma ser descrito em normas ABNT. Apesar disso, ainda é possível utilizar a fórmula supracitada para escrever o texto.


Se a regra dos parágrafos for seguida, você irá obter um texto fluído. Poucas vírgulas serão usadas. Sentenças pequenas deixarão o texto claro. Haverá preocupação com uso de conectores e ligação entre assuntos de diferentes parágrafos, capítulos e subseções.


E a fórmula não se limita a esse tipo de trabalho. Esse post foi escrito utilizando o método. Cada parágrafo foi escrito para elucidar o formato:

  1. Toda introdução de parágrafo está sublinhada;
  2. Todo desenvolvimento em negrito;
  3. Toda conclusão vem depois do desenvolvimento e texto normal.


Para mim esse formato fica bem claro e objetivo. Utilizei também em todo meu livro App Engine e Python. E para você, será que ficou? Gostou do "hack" para escrever textos?

quinta-feira, 24 de dezembro de 2015

Falha no Sistema

Há certo tempo penso que algo está errado no sistema político econômico atual. São vários os indicadores que apontam isso. Comecemos pelo que está de errado na democracia atual.

Nesse sistema busca-se o ideal de se atender o interesse da maioria da população. Como antigamente inviável obter a opinião do povo, esse vota em políticos. O processo é então feito via representação. Mas sabemos que isso não é o que ocorre. Uma vez eleitos os picaretas atendem há apenas 2 interesses: os seus e o daqueles que financiam suas campanhas. É o Game of Thrones da vida real.

O papo para boi dormir é que qualquer cidadão pode se candidatar. Qualquer um pode propor lei. Isso é falacioso. A candidatura pode até ocorrer, já a eleição, não. Ela depende de campanhas publicitárias e recursos para que o candidato apresente suas propostas. Assim, quanto mais recurso em campanha, maiores as chances de eleição. Dessa forma se cria uma ilusão de liberdade e participação política.

Mas quem financia essas campanhas não o faz por acreditar no candidato. O faz por conta de seus próprios interesses. Uma vez com seus financiados na política eles influenciam toda tomada de decisão. São eles sim os verdadeiros donos da democracia. Não possuem mandato com data de expiração e não prestam contas a ninguém.

A primeira forma que pensei para tentar resolver o caso seria participação direta. Com avanço da internet poderíamos implodir os 3 poderes. O povo tomaria suas decisões diretamente. Mas não enxergando isso acontecer rapidamente, outra forma seria começar a implodir o sistema por dentro.

Contudo sempre que vc acha que teve uma idéia original descobre que alguém já pensou nisso. Depois de pouca pesquisa encontrei o conceito já sendo implantado. Veja o Demoex.

Porém isso ainda não acabaria com o maior sistema de controle: o dinheiro. É incrível como eu não entendia que esse é maior ato de fé que exercemos no dia-a-dia, sem contestar. Desde da infância pensamos que o capital possui valor intrínseco. E a única razão dele possuir esse poder é pq todos acreditam nisso.

Sendo o capital a única forma de se obter os recursos que necessitamos quem o controla domina a todos. Não é atoa que todo Estado possui seu monopólio, que é mais efetivo que o controle da violência. Podendo a qualquer momento sequestrar recursos monetários o governo impões suas vontades sem ser questionado. Somos assaltados todos dias através da cobrança de impostos. Para evitar isso seria necessário não depender desse dinheiro. Uma vez que não se faz nada sem dinheiro, a venda da força de trabalho não é opcional.

E de novo alguém já propões solução. Com a criação de moedas virtuais sem controle central, como o Bitcoin, podemos nos livrar dessa opressão. Dessa maneira um sistema que seria possível de se ter seria o Anarcocapitalismo.

A principío gostei da idéia do sistema. Mas logo veio a pergunta: como evitaríamos a formação de cartéis e monopólios? Como garantir que um médigo não vai querer me tirar um orgão para lucrar com isso?Como garantir uma distribuição mais equânime dos recursos quando ser honesto e ético atenta contra o lucro?

Comunismo não é uma solução. Basta olhar os exemplos passados e ver que esse sistema e tão corrupto e egoista como o atual.

Sem perspectiva de solução vivo há 2,5 anos o que se chama de Lifestyle Business. A ideia geral é prezar pela qualidade de vida e tempo livre. Aqui o dinheiro é meio, não fim.

Apesar de extremamente feliz durante esse tempo percebo que viver assim não é possível para todos. O que me garante esse tipo de vida a às outras pessoas que conheço e vivem assim é acesso à educação. Com essa bagagem que é possível aumentar o valor que se recebe por hora proporcionando a felicidade. Acaba que o capital acaba ainda exercendo papel muito importante.

Pensei em criar uma organização onde internamente não seja necessário dinheiro. De fato toda empresa funciona assim. Para a operação ser realizada não existe troca financeira. E se o mundo todo funcionasse assim?

Foi então que zapeando pelo Netflix vi um vídeo sensacional: Zeitgeist Addedum. Nele encontrei um resumo de tudo que já penso sobre dinheiro, democracia e capitalismo. Mas para minha grata surpresa ele apresenta uma proposta de solução: Economia de Recursos.

De fato enxergo vários desses princípios em organizações que participo ou conheço: Hacker Clubes, Open Source, comunidade de Python. Ou seja, mesmo que de forma limitada, isso já existe. Então o que deixa meu cérebro a mil é: será possível fazermos essa mudança? Já imaginou um mundo sem etiqueta de preço? Já imaginou um mundo sem políticos, burocratas, armas, polícia, juízes, advogados, despachantes, vendedores? Já imaginou um mundo conectado, onde a felicidade e qualidade de vida de todos, não o PIB, é a métrica a ser maximizada? Um mundo onde saúde, educação e segurança são a regra, não exceção? O que vc acha?

segunda-feira, 17 de agosto de 2015

Strings em Python

Eu só entendi essa questão de string depois de ver o assunto no curso PyPrático com o Luciano Ramalho. Segue o resumo do que entendi e fiquem à vontade para me corrigir ;)


Unicode é uma tabela ideal que liga números a caracteres. Pense nela como um grande dicionário onde a chave é o número e o caracter seu valor. Ela não tem nada a ver com bytes e esse é o ponto primordial para entender strings. Os números são os conceitos ideais, sem respectiva codificação em bytes.


Encodings são forma de se codificar texto em termos de bytes. Exemplos de codificações famosas: ascii e utf-8.


No Python 2 existe uma certa confusão de strings. O padrão é ascii para qualquer string literal criada. E aqui mora o problema quando se quer usar caracteres especiais. Ex:


print 'ã'


Ao tentar executar vc vai levar um erro:


SyntaxError: Non-ASCII character '\xc3' in file /Users/renzo/PycharmProjects/sandbox-python2/uni.py on line 1, but no encoding declared;


Vc está levando erro porque sua string está encodada em ascii. Portanto ele não consegue entender os bytes presentes em 'ã' e por isso dá o erro. Ascii utilizar apenas um byte e, portanto, só possui 256 (2**8) caracteres.


Ao pesquisar a solução, vc encontrará alguém dizendo para colocar na primeira linha o seguinte código:


# -*- coding: utf-8 -*
print 'ã'


Isso faz alusão ao enconding de seu arquivo py. Agora sua string literal está encodada em utf-8 e pode ser executada com ã numa boa. Mas isso com uma ressalva: se seu console utilizar encode utf-8. Isso é uma verdade para sistemas Unix. Contudo, quem usa Windows vai dizer que o problema continua ocorrendo.


Ao executar o programa no sistema do Bill Gates, se estiver em português brasileiro, vc vai visualizar o resultado 'ã'. Isso ocorre porque o encode do console não é utf-8. Para confirmar a afirmação, experimente rodar o seguinte programa para conferir o encoding:


# -*- coding: utf-8 -*


import sys
print sys.stdout.encoding


Ao executar no Unix recebi o resultado "UTF-8". Já no Windows recebi "cp1252". Ou seja, para imprimir corretamente no nesse último sistema, devemos usar o enconding de seu console. Assim, produzi o código abaixo:


# -*- coding: utf-8 -*
s='ã'
s=s.decode('utf8'# passando para 
unicodes=s.encode('cp1252') 
print s


Com ele recebi o resultado esperado no console. Apesar disso, ainda existe um problema bem grande a ser considerado. Considere o seguinte código:


s='ã'
cp=s.decode('utf8')
cp=cp.encode('cp1252')
print s+cp


O resultado no terminal unix é "ã�". Isso ocorre porque tentei concatenar bytes encodados em utf8 (variável s) com caracteres encondados em cp1252 (variável cp). Como o terminal está em utf8, ele não consegue imprimir os bytes em cp1252 do segundo caracter e coloca o sinal � em seu lugar.


Outro problema interessante é vericar o seguinte:


>>> print(len('ã'))
2
>>> print(len('ã'.decode('utf8')))
1


Será que o Python está maluco? Não, ele não está. No primeiro caso ele está considerando o número de bytes no caracter 'ã' encodado em utf8. E para ele, são necessário dois bytes. Já no segundo caso a contagem de caracter é do unicode e 'ã' é apenas um caracter nessa tabela.


Visto isso, qual a fórmula para tratar strings com sanidade? Eis meu algoritmo:


1)  Verificar com a fonte dos dados o respectivo encoding;
2) fazer o decoding para unicode;
3) fazer operações da regra de negócio (parsing, concatenação etc);
4) Ao enviar dados, encodar string e informar encoding na documentação.


Assim, se as variáveis s e cp fossem strings recebidas de um sistema externo, esse seria o tratamento:


# -*- coding: utf-8 -*


s='ã'
cp=s.decode('utf8')
cp=cp.encode('cp1252')


# colocar tudo em unicode
s=s.decode('utf8')
cp=cp.decode('cp1252')


# Fazer regra de negócio


concatenado = s+cp


# Encodar antes de enviar para console ou sistema externo


print concatenado.encode('utf8')


Se vc quiser criar uma string em código que seja unicode em Python 2, existem duas formas. A primeira é utilizar o prefixo u antes de strings. Assim o código anterior alterado ficaria:


# -*- coding: utf-8 -*


s=u'ã'  # utilizando prefixo u
cp=s.encode('cp1252')


# colocar tudo em unicode
cp=cp.decode('cp1252')


# Fazer regra de negócio


concatenado = s+cp


# Encodar antes de enviar para console ou sistema externo


print concatenado.encode('utf8')


No Python 3 essa questão foi resolvida. Toda string literal no código é unicode. Mais que isso, a classe string é unicode. Strings encodadas são do tipo bytes. Isso condiz mais com a realidade que apresentei no início desse texto. Dessa forma, em Python 3 o código anterior funcionária sem a adição do prefixo u.


É possível ter esse comportamento também no Pyhton 2. Para isso, basta acrescentar  a linha from __future__ import unicode_literals logo após o encoding. Essa é a segunda maneira de se criar string unicode. É a minha preferida:


# -*- coding: utf-8 -*
from __future__ import unicode_literals


s='ã'
cp=s.encode('cp1252')


# colocar tudo em unicode
cp=cp.decode('cp1252')


# Fazer regra de negócio


concatenado = s+cp


# Encodar antes de enviar para console ou sistema externo


print concatenado.encode('utf8')


Assim vc sempre irá criar strings unicode em seu código. Como trabalho sempre dessa forma, configurei minha IDE, o Pycharm, para sempre acrescentar as linhas de enconding e unicode_literals quando utilizo Python 2. O código funciona nas duas versões da linguagem.

Com esse artigo pretendi explicar um pouco de strings, já que perguntas sobre o assunto são recorrentes na principal lista de discussão brasileira . Será que consegui te ajudar? Deixe seu comentário abaixo =D