• PostgreSQL is the DBMS of the Year 2023

    PostgreSQL is the DBMS of the Year 2023

    E lá vamos nós novamente….

    E não é de hoje:

    Olhando o gráfico, vemos que não é um acidente, ou uma tendência passageira. O PostgreSQL é sem dúvida o bancos de dados que mais cresce de forma consistente há pelo menos uma década!

  • Sobre minha saída da Timbira

    Há 14 anos, durante o PGConf.Brasil 2009, lá na UNICAMP em Campinas/SP, 4 pessoas se reuniram e idealizaram a criação da primeira empresa dedicada exclusivamente ao PostgreSQL no Brasil. Essas pessoas eram eu, o Euler Taveira, o Dickson Guedes e o Fernando Ike. Foi esse grupo que pensou nas bases para a criação da Timbira. No final, apenas eu e o Euler entramos como sócios e os demais acabaram não se envolvendo na empresa nesse momento. Em janeiro de 2010, saiu o CNPJ da Timbira. Esse é o nome fantasia, pois já havia uma empresa com esse nome na cidade onde eu morava na época, em São Bernardo do Campo. Conforme eu fui me mudando, a empresa foi se mudando junto, primeiro para São Caetano do Sul, depois para São José dos Campos. Se bem que isso nunca fez muita diferença, acaba sendo mais uma questão burocrática, pois a empresa nunca teve uma sede física.

    A ideia inicial da Timbira era muito simples: juntar profissionais que já trabalhavam com PostgreSQL e oferecer serviços sem o intermédio de outra empresa no meio. A ideia era conseguir receber uma remuneração decente pelos nossos serviços, já que eram poucos profissionais com experiência nessa área (estamos falando de 14 anos atrás) e já acumulávamos uma certa reputação no mercado. Nessa época, estávamos organizando o terceiro evento nacional de PostgreSQL no Brasil, com um público bastante empolgado e tal. Chegamos a pensar em montar uma cooperativa ao invés de uma empresa tradicional, mas vimos que isso seria muito complicado, ainda mais com a distância geográfica entre as pessoas. Abrimos uma empresa tradicional, eu e o Euler. Alguns anos depois, o Fabrizio Mello entrou para a sociedade também e nos tornamos 3 sócios.

    A Timbira, na maior parte da sua história, consistia em 3 sócios, atendendo alguns clientes aqui e ali. Eu era o único que ainda tinha um emprego formal além de trabalhar na Timbira. Aos poucos a empresa foi se estruturando um pouco aqui e ali. Conquistamos uma carteira de clientes fixos, tínhamos um modelo de contrato, proposta comercial, etc. E os 3 sócios se revezavam nas tarefas administrativas da empresa. Eu fiquei por um bom tempo responsável pela parte comercial. Começamos a investir no marketing também. Um novo logo, um novo site e aos poucos fomos arrumando a casa. A Timbira também resolveu bancar a organização do PGConf 2018 no mesmo ano em que abandonei meu emprego numa multinacional para finalmente me dedicar em período integral na Timbira. Em 2018, demos um belo salto e começamos a crescer com mais vigor, até 2020, quando a pandemia nos encontrou prontos para crescer ainda mais. Nesse ponto, o Euler saiu da sociedade e foi para a 2ndQuadrant, que depois foi comprada pela EDB e se afastou da empresa.

    2020 foi um ano complicado, foi o ano em que eclodiu a pandemia. O PGConf.Brasil teve uma edição 100% on-line, o Euler saindo da sociedade e o Fabrízio também estava bastante inclinado a sair, mas acabou ficando. No entanto, em 2021, ele deixou de trabalhar em tempo integral na Timbira e também foi trabalhar para outra empresa fora do país. Eu fiquei com a maior parte da gestão na mão e começamos a contratar mais gente rapidamente. A equipe cresceu e se estruturou, criando processos, métricas e todo um arcabouço que se cria quando você precisa trabalhar com uma equipe maior.

    Nasceu uma nova Timbira, com uma equipe incrível, com capacidade de fazer muitas coisas bacanas. Ao mesmo tempo, algumas coisas foram ficando para trás. Não acredito que a Timbira se tornou uma empresa ruim, muito pelo contrário. Tenho orgulho de tudo o que ajudei a construir. No entanto, foi crescendo um desconforto e situações que culminaram com a minha saída da empresa no meio de 2023. Sair da Timbira não foi um processo tranquilo. Foi como um divórcio. Com advogados, negociações difíceis e tudo o mais. Não quero comentar sobre o processo. Foi ruim. Eu saí chateado, os que ficaram devem estar chateados comigo também. A coisa terminou de tal forma que eu sequer pude me despedir da equipe antes de sair definitivamente. Eu acho triste, mas separações são complicadas mesmo. A gente leva tempo para digerir tudo.

    Eu aprendi muito na Timbira. Errei muito, acertei muito também. Gosto muito da equipe e me orgulho de ter unido grandes profissionais e montado um time excepcional. A Timbira se tornou muito maior que os seus fundadores. Novas pessoas tem novas ideias e vão alcançar novos patamares. E assim a Timbira continuará crescendo e alçando novos voos. É assim que funciona.

    Vou continuar apoiando o PostgreSQL, a comunidade de Software Livre e todos que vierem somar nesse caminho. Esse ano ainda participei de alguns dos vários PGDays que a comunidade organizou brilhantemente por todo o país, entre outros eventos que fui convidado a participar. 2023 foi muito louco mesmo, definitivamente não foi um ano fácil pra muita gente, mas está terminando bem. Espero que todos os que se aventuram a trabalhar nessa área apaixonante tenham sucesso nesse ano e nos próximos que virão!

  • Split brain

    Já tem algum tempo que eu pensava em fazer isso e chegou a hora. Este blog vai se dividir em 2 partes a partir de hoje:

    Desta forma, eu quero segmentar um pouco mais meus leitores em grupos separados. O autor continua o mesmo, mas eu espero deixar as opinões correrem mais solto no novo blog e voltar a fazer mais postagens técnicas aqui no SAVEPOINT que continua firme e forte.

    Então é isso: se você é me conhece como profissional, pelas palestras, artigos e trabalho com TI, é só continuar por aqui, e pode me seguir no Instagram ou no LinkedIn também. Estou encomendando uma nova identidade visual para o blog e espero turbinar o instagram também. Aguardem!

    Se você me conhece pessoalmente ou se interessa pelas minhas divagações pelo mundo, lhe convido a me seguir lá no “Velha Roupa Colorida“. Vejo vocês por lá, e no meu instagram pessoal. No meu Instagram pessoal, eu vou me reservar ao direito de adicionar apenas pessoas que eu conheço pessoalmente.

  • Removendo colunas com OIDs no PostgreSQL

    A partir da versão 12 (já tem um tempinho…) o Postgres deixa de suportar o uso da coluna oculta “OID” ou “Object Identifier” que até então era opcional em tabelas normais, e também se torna uma coluna explícita nas tabelas do catálogo do sistema. Até a versão 11, você poderia criar uma tabela com a opção “WITH OIDS” que criava uma coluna oculta, chamada ‘oid’, que funcionava como uma chave primária (PK) artificial. Desde a versão 8.0 do Postgres (que foi lançada em janeiro de 2005!), o parâmetro “default_with_oids” está desligado por padrão, o que significa que se você não disser nada, por padrão, ao criar uma tabela, a coluna oculta oid não será criada. Então 14 anos depois, o pessoal resolveu aposentar esta opção e finalmente eliminar definitivamente esta coluna de tabelas criadas pelo usuário.

    E não é que vira e mexe ainda tem gente que usa? Bom, então como lidar com elas? Existem algumas situações diferentes.

    • Se você nem sabe que a coluna está lá na tabela ou não usa ela para nada e já tem sua própria chave primária (PK), então você só precisa remover a coluna OID com um simples comando como:
    SQL
    ALTER TABLE minha_tabela SET WITHOUT OIDS;
    • Se você usa esta coluna como uma chave artificial, seria melhor criar uma nova coluna com um nome como “ID” para a sua tabela. Isso exige alguns passos, como:
      • Criar a coluna ID
      • Ajustar a coluna para que novas linhas recebam um novo número automaticamente a partir do último número da coluna OID.
      • Popular a coluna ID com os valores da coluna OID
      • Alterar a tabela para que a coluna ID se torne uma chave primária (PK)
      • Agora sim remover a coluna OID.
    SQL
    SELECT coalesce(max(oid)::integer,0) + 1 FROM minha_tabela;
    ALTER TABLE minha_tabela ADD COLUMN id integer GENERATED BY DEFAULT AS IDENTITY (START WITH 12345);
    UPDATE minha_tabela SET id = OID;
    ALTER TABLE minha_tabela ADD PRIMARY KEY (id);
    ALTER TABLE minha_tabela SET WITHOUT OIDS;

    Algumas obervações:

    • Note que aqui eu peguei o maior valor da coluna OID na primeira consulta, e devo utilizar no comando seguinte na cláusula “START WITH”, para dizer qual será o próximo número da sequência.
    • O nome ID para a nova coluna, é absolutamente arbitrário aqui, você pode utilizar o nome que quiser.
    • O tipo de dado para a coluna ID aqui é o INTEGER, mas você pode utilizar o BIGINT se for uma tabela com muitos registros também.
    • Eu criei uma sequence com a cláusula GENERATED BY DEFAULT AS IDENTITY. Esse é o padrão ao invés de utilizar o antigo DEFAULT nextval('nome_da_sequence'), desde a versão 10 do Postgres. Tenho um artigo aqui no blog falando especificamente disso, vale a pena conferir, se estiver confuso.
    • Não é absolutamente obrigatório ter uma chave primária em toda tabela. Sim, exitem raros casos em que isso é justificável não ter, como numa tabela transitória para fazer uma carga de dados. Vamos tratar isso como uma exceção e vamos tocar o barco pensando apenas na regra geral.

    Automatizando tarefas

    Bom, tá na hora de fazer esse negócio andar de forma um pouco mais rápida. Pequei esses dias um cliente com centenas de tabelas que ainda utilizam OID. Então fiz este roteiro aqui para facilitar.

    Verificando tabelas com OID

    SQL
    SELECT relnamespace::regnamespace AS table_schema, relname AS table_name
    FROM pg_class c
    WHERE 
    	relkind IN ('r', 'm', 'p') AND
    	relhasoids = TRUE AND
    	relnamespace NOT IN 
        ('pg_catalog'::regnamespace::oid,'information_schema'::regnamespace::oid)
    ORDER BY relnamespace::regnamespace, relname;

    Criando a coluna ID em tabelas sem chave primária (PK)

    SQL
    BEGIN;
    DO $$DECLARE 
      r	    record;
      v_start integer;
    BEGIN
      FOR r IN SELECT relnamespace::regnamespace AS table_schema, relname AS table_name
        FROM pg_class c
    	  WHERE 
    	    relkind IN ('r', 'm', 'p') AND
    	    relhasoids = TRUE AND
    	    NOT EXISTS (SELECT 1 FROM pg_constraint WHERE contype = 'p' AND conrelid = c.oid) AND
    	    NOT EXISTS (SELECT 1 FROM pg_attribute a WHERE c.oid = a.attrelid AND attname = 'id') AND
    	    relnamespace NOT IN 
            ('pg_catalog'::regnamespace::oid,'information_schema'::regnamespace::oid)
    	  ORDER BY relnamespace::regnamespace, relname
    	LOOP
        EXECUTE format(
          'SELECT coalesce(max(oid)::integer,0) + 1 
           FROM %I.%I',r.table_schema, r.table_name)
    	     INTO v_start;
       	RAISE WARNING 'Creating identity column for table %.% starting with %', 
          r.table_schema, r.table_name, v_start;
      	EXECUTE format(
    	    'ALTER TABLE %I.%I ADD COLUMN id integer 
    	     GENERATED BY DEFAULT AS IDENTITY 
          (START WITH ' || v_start || ')',r.table_schema, r.table_name);
      	RAISE WARNING 'UPDATE id';
      	EXECUTE format('UPDATE %I.%I SET id = oid',r.table_schema, r.table_name);
      	RAISE WARNING 'CREATE PK';
    	  EXECUTE format('ALTER TABLE %I.%I ADD PRIMARY KEY(id)',r.table_schema, r.table_name);
      	RAISE WARNING 'REMOVE oid';
      	EXECUTE format('ALTER TABLE %I.%I SET WITHOUT OIDS',r.table_schema, r.table_name);
      END LOOP;
    END$$;
    COMMIT;

    Removendo a coluna OID em tabelas com chave primária (PK)

    SQL
    BEGIN;
    SELECT 'ALTER TABLE ' || relnamespace::regnamespace || '.' || relname || ' SET WITHOUT OIDS; --' command
    FROM pg_class c
    WHERE 
      relkind IN ('r', 'm', 'p') AND
      relhasoids = TRUE AND
      EXISTS (SELECT 1 FROM pg_constraint WHERE contype = 'p' AND conrelid = c.oid) AND
      relnamespace NOT IN 
        ('pg_catalog'::regnamespace::oid,'information_schema'::regnamespace::oid)
    ORDER BY relnamespace::regnamespace, relname
    \gexec 

    E por enquanto é isso… Espero que você não se depare com esse tipo de situação no quotidiano, mas se aparecer, isso deve quebrar um galho!

  • PostgreSQL, o banco de dados mais amado… todo ano isso?

    Então… saiu mais uma pesquisa do StackOverflow, e pra variar, só dá PostgreSQL de ponta a ponta… Não é só o DB-Engines não, geral e não é de hoje…

    O Banco de dados mais amado…

    O mais desejado (o que mais gente quer começar a usar)

    O mais utilizado por profissionais

    Sorte de principiante?

    Só que não! Veja a pesquisa de anos anteriores

  • O futuro do PGConf.Brasil

    O PGConf.Brasil 2022 está no ar, com tudo em cima para acontecer nos dias 26 e 27 de agosto:

    • Há mais de 75 dias para o evento já temos mais de 100 inscritos
    • Uma grade espetacular com 4 salas simultâneas resultado do maior CFP da nossa história, com 93 propostas recebidas
    • Temos literalmente um engarrafamento de patrocinadores, e estamos tendo que lidar com o limite de espaço físico para estandes no saguão do evento
    • Pela primeira vez vamos utilizar tradução simultânea para o auditório principal, que possui em sua maior parte palestrantes internacionais
    • O Happy Hour também está garantido com as nossas tradicionais cervejas artesanais feitas exclusivamente para o evento pela Brew Club Co
    • Estamos com um time incrível trabalhando diariamente na organização, incluindo boa parte da nossa equipe: eu, Fabrizio Melllo, Gabriel Baggio, Karin Keller, Letícia Mirapalheta, Mariana Oortman, Patrícia Muniz e Taís Bonizoli.

    Enfim, com a seca de 2 anos sem eventos presenciais, este promete ser épico.

    Em 2022, vamos será a nossa 10a Conferência Brasileira de Postgres, que já passeou um pouco por aí, já tivemos:

    • 2007: PGCon Brasil em São Paulo / SP
    • 2008: PGBR em Campinas / SP
    • 2009: PGBR em Campinas / SP
    • 2011: PGBR em São Paulo / SP
    • 2013: PGBR em Porto Velho / RO
    • 2015: PGBR em Porto Alegre / RS
    • 2017: PGBR em Porto Alegre / RS
    • 2018: PGConf Brasil em São Paulo / SP
    • 2019: PGConf Brasil em São Paulo / SP
    • 2022: PGConf Brasil em São José dos Campos / SP

    Foi um longo caminho até aqui. Em 2006 a gente estava no CONISLI em pleno Anhiembi em São Paulo, quando juntamos uma turminha que já se encontrava em outros eventos como o FISL em Porto Alegre e resolvemos fazer um evento só para o PostgreSQL. Eu já vinha da organização de 3 Fóruns regionais do PSL ABCD e juntamos grandes figuras como o Leonardo Cezar, Diogo Biazus, Euler Taveira, Fernando Ike, Dickson Guedes e muitos outras figuras que fizeram história.

    O primeiro evento em 2007 foi feito com apoio da Tempo Real Eventos, que tinha toda uma logística para fazer eventos e simplificou muito a nossa vida. A gente cuidou da grade e dos patrocínios, eles cuidaram praticamente do resto. A partir de 2008 nós resolvemos nos virar por nós mesmos, mas precisávamos de um CNPJ para receber o dinheiro das inscrições, patrocínios, e pagar os fornecedores, tudo de forma correta. Foi aí que surgiu a ideia de nos associarmos a ASL, que era a entidade responsável por organizar o FISL. Até cogitamos em criar a nossa própria entidade, mas isso daria muito trabalho e achamos mais prático nos associar a quem já estava na pista. Eles criaram uma conta bancária para nós e colocaram a disposição o pessoal da contabilidade para nos apoiar. Deu certo, apesar da burocracia, mas em 2017 o FISL estava literalmente desmoronando, precisávamos de um novo abrigo.

    Em 2018 a Timbira assumiu esse papel e partiu pra cima da organização do evento, trazendo praticamente as mesmas pessoas envolvidas na organização dos eventos anteriores. E em todo o momento, os nossos eventos foram reconhecidos pela comunidade internacional como eventos da comunidade e não eventos da Timbira. Em 2018 já haviam regras claras sobre como fazer isso e um selo de “Reconhecimento de evento da comunidade“. Isto envolve coisas como autonomia da banca avaliadora do Call For Papers, e ter a maioria dos seus membros de fora da Timbira. Prestação de contas dos gastos e definição do destino para o lucro, coisas assim.

    Estas regras para conseguir o selo foram sendo aprimoradas aos poucos e atualmente a comunidade internacional se posiciona explicitamente favorável a existência de organizações sem fins lucrativos para gerir estes eventos. Por outro lado, nos preocupamos aqui na Timbira em fortalecer a comunidade brasileira e todo o seu ecossistema em torno. A Timbira não lucra com a realização das conferências, exceto de forma indireta, assim como ganham todos os que participam. Portando no começo de 2022 a Timbira decidiu que este seria o último ano em que organizaremos o PGConf.Brasil, que devemos voltar a organizar o evento a partir da comunidade e não de uma empresa. Para isso o ideal seria caminhar para a criação de uma entidade própria para isso, uma OSCIP com as pessoas interessadas em colaborar com o PGConf.Brasil e outros eventos da comunidade.
    Aprendemos com outras experiências de outras entidades do gênero que deram certo (como Associação Python Brasil) e que não deram certo (como Open Office Brasil). Com isso a ideia será limitar o escopo da OSCIP a eventos com reconhecimento da comunidade de Postgres. Assim podemos evitar problemas futuros e focar naquilo que realmente interessa: promover a comunidade de Postgres através de eventos que promovam a troca de conhecimento e o networking.

    Pessoalmente, eu acho que um bom começo seria discutir o assunto e montar um rascunho de como seria essa OSCIP junto com os participantes do canal PGConf.Brasil do Telegram. Gostaria muito que seja qual for a decisão da comunidade, ela se concretize até o encerramento do PGConf.Brasil 2022, já visando a organização do evento para 2023. Mas isso é uma posição pessoal, o que irá acontecer a comunidade é quem decide. Seja como for, não vou deixar de contribuir como membro da comunidade (como sempre fizemos), mas sim como sócio da Timbira. A Timbira já possui hoje uma conta bancária separada para o evento e todo o saldo ao final do evento deste ano será revertido para a entidade iniciar os seus trabalhos. Então, se você tem interesse em colaborar com o evento e estar junto conosco nessa jornada, convido você a entrar no canal do Telegram e iniciar esta jornada conosco. Vamos juntos?

  • Tendências no mercado de banco de dados

    Hoje saíram os novos dados do DB-Engines com os números acumulados até o final de maio/2022. Eu estou sempre acompanhando a evolução do Ranking . Não são infalíveis, mas talvez seja hoje a fonte de informação mais confiável que temos sobre o uso de bancos de dados. Infelizmente não existem números confiáveis sobre market share, uma vez que estamos falando de um mercado liderado por soluções Open Source, ou seja, não dá para contar o número de licenças pagas neste cenário. Para resolver esse problema o DB-Engines trabalha com uma pontuação baseada em menções em sites na internet, Google Trends, discussões no Stack Overflow e DBA Stak Exchange, oferta de vagas de empregos, Perfis no LinkedIn e relevâncias em redes sociais como o Twitter. Acho bastante razoável. E mais, eles acumulam dados de uma série histórica de quase 10 anos!

    O futuro é livre?

    Então deixe-me começar pelo final. Quero mostrar um gráfico muito significativo para ilustrar a minha afirmação no parágrafo anterior, onde afirmo que o mercado de banco de dados é hoje “liderado por soluções Open Source”:

    https://db-engines.com/en/ranking_osvsc

    Você pode até dizer que no último ano há uma tendência de acomodação com os bancos de dados comerciais com 48,8% e os bancos Open Source com 51,2%. Mas é bem diferente de 10 anos atrás onde a relação era de 64,5% contra 35,5%. Não sei se a vantagem do Open Source vai aumentar pouco ou muito nos próximos anos, mas dificilmente vamos assistir uma reversão desse quadro num curto espaço de tempo. Por outro lado… crescem os bancos de dados como serviço na nuvem, que capturam softwares de código aberto, transformando em produtos fechados, como o Aurora da Amazon, fora os já tradicionais serviços como o PaaS ou DBaaS que se espalharam para praticamente todos provedores na nuvem, e agora temos novos Serveless Database na mesma linha. Então para aqueles que sonham com um mundo livre, as preocupações não são mais software de código fechado X código aberto….

    Destaques para os últimos 12 meses

    Olhando para os últimos 12 meses os destaques positivos continuam os mesmos que deram na virada do ano a medalha de ouro para o Snowflake e a medalha de prata para o PostgreSQL. Mas hoje a medalha de bronze não iria mais para o MongoDB que acumula uma baixa de 7,49 pontos nos últimos 12 meses, mas sim para o Microsoft Access! É isso mesmo, dá pra acreditar, ele cresceu 26.88 pontos no período. É claro que se você olhar para a evolução dele nos últimos 10 anos, temos uma tendência de queda, mas há uma recuperação realmente surpreendente recentemente. Alguém aí sabe me explicar? Eu esperava uma queda lenta e dolorosa para o Access, como vemos com o DB2, mas alguma coisa está empurrando o Access para cima.

    Houve quem achasse que era pegadinha de 1o de abril esses dias:

    https://twitter.com/MarkusWinand/status/1509904492304740381

    De qualquer forma, impressionante é o crescimento do Snowflake que surgiu no final de 2016 e hoje figura na 13a posição do ranking com 96,42 pontos, devendo passar em breve competidores tradicionais como MariaDB, Cassandra e SQLite. Mas será que esse crescimento acelerado vai se sustentar por muito tempo? Não é novidade algum banco ter um rápido crescimento mais não sustentar por muito tempo, como por exemplo o MariaDB, o Elasticsearch, Redis, SAP Hana, Microsoft Azure Cosmos DB e mais recentemente o Microsoft Azure SQL Database.

    Olhando o gráfico parece dizer que não… mas se eles continuarem a atrair investimentos, quem sabe? O fato é que romper a barreira dos 200 pontos e chegar no Top5 não é para qualquer um. Eu diria que a disputa até o 6o lugar permanece bem embolada:

    Top5

    Se a gente olhar apenas para o Top5, as coisas parecem bem mais estáveis. MongoDB e PostgreSQL ficaram embolados no 4o e 5o lugar por um tempo, mas há um bom tempo o PostgreSQL tem se consolidado na 4a posição. Vale notar que há 10 anos atrás o PostgreSQL estava com 195 pontos e hoje tem 620 pontos. Ou seja, triplicou de tamanho e mantem um crescimento bem sustentável. O MongoDB saiu de 101 pontos e está em 480 pontos, um crescimento maior ainda, mas não apresenta mais uma tendência de crescimento nos últimos meses.

    Oracle, MySQL e Microsoft SQL Server lideram o topo do ranking com boa folga e com oscilações, mas mantém uma boa distâncias dos demais. Embora os 3 primeiros colocados tenham uma pontuação menor que há 10 anos atrás, apenas o SQL Server tem uma tendência clara de queda, saindo de 1249 pontos para 933 pontos.

    Uma boa pergunta hoje é: Quando o PostgreSQL vai alcançar o Microsoft SQL Server? Se pensarmos que o PostgreSQL cresceu 425 pontos e Microsoft SQL Server caiu 316 pontos, a diferença atual de 313 pontos deve desaparecer nos próximos anos, com a diferença caindo mais de 100 pontos por ano. Será que em 2025 o PostgreSQL vai alcançar o 3o lugar?

    E a nuvem?

    Mas antes de dizer que a Microsoft está fora do jogo, é preciso tirar os pés do chão e ir para as nuvens… a Microsoft está investindo pesado numa série de novos produtos específicos para rodar na Azure:

    • Microsoft Azure SQL Database em 15o lugar, com 86,01 pontos
    • Microsoft Azure Cosmos DB em 27o lugar, com 40,98 pontos
    • Microsoft Azure Synapse Analytics em 36o lugar, com 21,33 pontos
    • Microsoft Azure Search em 58o lugar, com 7,61 pontos
    • Microsoft Azure Data Explorer em 59o lugar, com 7,34 pontos
    • Microsoft Azure Table Storage em 77o lugar, com 5,76 pontos

    Me parece que a Microsoft está mudando de estratégia para investir mais na nuvem. E não está sozinha, claro, a AWS, líder no segmento tem seus brinquedinhos também:

    • Amazon DynamoDB em 16o lugar com 83,88 pontos
    • Amazon Redshift em 31o lugar com 26,19 pontos
    • Amazon Aurora em 45o lugar com 13,14 pontos
    • Amazon Neptune em 108o lugar com 2,82 pontos
    • Amazon CloudSearch em 120o lugar com 2,21 pontos
    • Amazon SimpleDB em 122o lugar com 2,10 pontos
    • Amazon DocumentDB em 128o lugar com 1,87 pontos
    • Amazon Timestream em 174o lugar com 1,02 pontos
    • Amazon Keyspaces em 225o lugar com 0,58 pontos

    Uma posição peculiar, o PostgreSQL

    E a mesma estratégia pode ser verificada com o Google, Alibaba e Oracle. Notem que o PostgreSQL acaba aparecendo várias vezes no ranking com seus derivados, em diferentes situações além da 4a posição:

    • PostGIS em 28o lugar, com 31,68 pontos
    • Amazon Redshift em 31o lugar, com 26,19 pontos
    • Netezza em 37o lugar, com 19,48 pontos
    • Greenplum em 43o lugar, com 13,27 pontos
    • Amazon Aurora em 44o lugar, com 13,14 pontos
    • TimescaleDB em 83o lugar, com 4,56 pontos
    • EDB Postgres em 123o lugar, com 2,10 pontos
    • Citus em 133o lugar, com 1,74 pontos
    • Postgres-XL em 208o lugar, com 0,71 pontos
    • AgensGraph em 322o lugar, com 0,09 pontos
    • ToroDB em 340o lugar, com 0,03 pontos

    Isso torna o PostgreSQL realmente único no ranking, por ter derivações distantes como o Redshift, versões que são apenas extensões, como o PostGIS, Citus e TimescaleDB e adaptações para a nuvem, como o Aurora e agora o AlloyDB recém lançado pelo Google, que logo vai aparecer no ranking.

    Sobre a Oracle

    No meio disso tudo ainda me intriga o fato de outros produtos da Oracle não apareçam explicitamente no ranking, o que poderia até estar enviesando o resultado para cima e para baixo: se o Exadata e o Autonomous Database estiverem na conta da primeira posição, deixa a comparação com a Microsoft equivocada, se está faltando computar dados sobre eles, então a Oracle pode estar sendo subestimada no ranking, e eles terem uma influência maior do que parece. Novamente aqui, alguém tem algum palpite?

    Conclusão

    Seja como for, duas tendências parecem claras hoje em dia: Bancos de dados Open Source e baseados em OpenSource continuam ganhando tração… e sim, o futuro dos bancos de dados está na nuvem.

  • Jogando Termo com Postgres

    Esses dias, no meio do happy hour da Timbira, estava comentando da última partida de Termo, que virou mania recentemente. Aí uma colega perguntou qual a palavra você utiliza para começar o jogo? Após ver que o nosso expert Guedes já pegou o dicionário para brincar no banco de dados, resolvi responder à pergunta com um pouco de SQL e brincar também!

    Preparação

    Vejamos como começar… o jogo Termo tem uma página onde ele diz que utiliza um dicionário com licença livre, disponível aqui. Então, basta baixar o dicionário e importar no seu banco de dados (aqui estou fazendo com PostgreSQL, mas com algumas diferenças, você pode fazer em outros bancos de dados, claro):

    SQL
    CREATE TABLE palavras (p text);
    COPY palavras(p) FROM '/tmp/palavras.txt' ;

    Ou seja, criei uma tabela chamada palavras com uma única coluna chamada p e importei os dados nela. Simples e rápido.

    Depois resolvi filtrar apenas as palavras com 5 letras:
    SELECT p FROM palavras WHERE length(unaccent(p)) = 5;
    Notem aqui que eu utilizei a função unaccent, pois palavras acentuadas podem contar como mais de 1 byte.

    Brincando

    Agora como seria saber quais palavras começam com TOR e terminam com A?

    SQL
    SELECT p 
    FROM palavras
    WHERE
        length(unaccent(p)) = 5 AND
        unaccent(p) LIKE 'tor_a';
    
    p
    -----
    torda
    torba
    torga
    torma
    torna
    torra
    torsa
    torta
    torva
    torça
    tória
    (11 rows)

    Já dá pra ver que é possível brincar bastante com isso.

    Agora uma contribuição do nosso colega Guedes que eu tomei a liberdade de adaptar para o meu exemplo aqui. Quais são as letras mais utilizadas na primeira posição da palavra?

    SQL
    SELECT 
        substring(unaccent(p) FROM 1 FOR 1) letra,
        count() qt, 
        repeat('█', (count()/40)::int) "%"
    FROM palavras
    WHERE length(unaccent(p)) = 5
    GROUP BY 1
    ORDER BY 2 DESC;
    
    l |  qt  | %
    --+------+------------------------------------------------------------
    a | 2255 | ████████████████████████████████████████████████████████
    c | 1623 | ████████████████████████████████████████
    p | 1354 | █████████████████████████████████
    m | 1347 | █████████████████████████████████
    b | 1156 | ████████████████████████████
    t | 1151 | ████████████████████████████
    s | 1127 | ████████████████████████████
    r | 1007 | █████████████████████████
    f | 929  | ███████████████████████
    l | 869  | █████████████████████
    g | 86 7 | █████████████████████
    e | 746  | ██████████████████
    d | 690  | █████████████████
    v | 613  | ███████████████
    o | 610  | ███████████████
    i | 598  | ██████████████
    n | 575  | ██████████████
    u | 413  | ██████████
    j | 361  | █████████
    z | 271  | ██████
    h | 259  | ██████
    x | 160  | ████
    q | 82   | ██
    k | 11   |
    w | 5    |
    y | 3    |
    (26 rows)

    Melhor palavra para começar

    E agora, para responder à pergunta da minha colega… eu quero saber primeiro quais são as 5 letras mais utilizadas no dicionário?

    SQL
    SELECT l, count(1) AS q
    FROM
        palavras,
        (SELECT CHR(i) AS l FROM generate_series(97,122) AS l(i)) AS letra
    WHERE p ~ l
    GROUP BY l
    ORDER BY q DESC
    LIMIT 5;
    
    l | q
    ---+--------
    a | 942848
    e | 808949
    r | 720964
    s | 714080
    i | 703338
    (5 rows)

    Agora que eu já sei que são as letras A, E, R, S e I, vou procurar palavras que tenham apenas estas 5 letras:

    SQL
    SELECT p
    FROM palavras
    WHERE
        length(unaccent(p)) = 5
    AND unaccent(p) LIKE '%a%'
    AND unaccent(p) LIKE '%e%'
    AND unaccent(p) LIKE '%i%'
    AND p LIKE '%r%'
    AND p LIKE '%s%'
    ;
    
    p
    -----
    aires
    areis
    eiras
    erais
    reais
    ieras
    rasei
    raies
    sairé
    sarei
    áries
    seira
    seria
    érias
    (14 rows)

    E aí, vamos jogar?

    SQL
    SELECT p
    FROM palavras
    WHERE
        length(unaccent(p)) = 5
    and unaccent(p) LIKE 'cai_a%'
    and p not like '%s%'
    and p not like '%r%'
    and p not like '%n%'
    and p not like '%g%'
    and p not like '%m%'
    and p not like '%t%'
    and p not like '%p%'
    and p not like '%l%'
    and p not like '%f%'
    and p not like '%x%'
    and p not like '%b%';
        p
    ---------
     caída
     caiuá
     caiçá
     caíva
    (4 rows)

  • CHAR para VARCHAR

    Há muito tempo, em uma galáxia muito, muito distante… lá na era do COBOL, os dados eram armazenados de forma tabular e os dados eram armazenados em uma tabela onde cada coluna ocupava espaços fixos nessa tabela. Assim, o CEP ocupava a posição de 1 a 7, o número de 8 a 12, o logradouro de 13 a 33 e assim por diante. Quando criaram os bancos de dados relacionais foram criados, criaram tipos de dados para strings com tamanho fixo que funcionam de forma semelhante, o CHAR. Infelizmenteo CHAR armazena desnecessariamente espaços em branco e foi substituido posteriormente pelo VARCHAR que são strings com tamanho variável bem mais flexível e se tornou padrão.
    Por motivos que não vem ao caso, muita gente ainda usa CHAR em bancos de dados. Vou demonstrar aqui de forma simples, como converter numa simples tabela um campo CHAR para VARCHAR pode economizar imediatamente 40% do espaço da tabela:

    SQL
    CREATE TABLE t (n integer, v char(100));
    INSERT INTO t SELECT n, repeat('x',round(random()*100)::integer)       
        FROM generate_series(1,1000000) n;
    SELECT * FROM t limit 10;
    n | v
    --+-------------------------------------------------------------------------------------
    1 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    2 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    3 | xxxxxxx
    4 | xxxxxxxxxxxxxx
    5 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    6 | xxxxx
    7 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    8 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    9 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    10 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    (10 rows)
    
    \dt+ t
                    List of relations
    Schema | Name | Type  | Owner    | Size   | Description
    -------+------+-------+----------+--------+-------------
    public | t    | table | postgres | 135 MB |
    (1 row)
    
    ALTER TABLE t ALTER v TYPE varchar(100);
    \dt+ t
                   List of relations
    Schema | Name | Type | Owner     | Size  | Description
    -------+------+-------+----------+-------+-------------
    public | t    | table | postgres | 83 MB |
    (1 row)

    Como se vê, a tabela, mesmo sem índices, caiu de 135MB para 83MB. Agora eu montei um script rápido para listar as tabelas com colunas do tipo CHAR:

    SQL
    SELECT n.nspname, c.relname, a.attname, a.attnum, atttypmod
    FROM
        pg_type t
        JOIN pg_attribute a ON a.atttypid = t.oid
        JOIN pg_class c ON c.oid = a.attrelid
        JOIN pg_namespace n ON n.oid = c.relnamespace
    WHERE
        t.typname = 'bpchar' AND
        n.nspname NOT IN ('pg_catalog', 'pg_toast', 'information_schema')
    ORDER BY 1,2,3
    ;

    Por fim, montei um script para alterar todos os campos CHAR para VARCHAR, tomando o cuidado para alterar vários campos num único ALTER TABLE para não ter que reescrever tabelas mais de uma vez:

    SQL
    SELECT 
        'ALTER TABLE ' || n.nspname || '.' || c.relname || 
          string_agg ($$ ALTER $$ || a.attname || $$ TYPE varchar($$ || a.attnum || $$)$$,',') ||
          ';'
    FROM
        pg_type t
        JOIN pg_attribute a ON a.atttypid = t.oid
        JOIN pg_class c ON c.oid = a.attrelid
        JOIN pg_namespace n ON n.oid = c.relnamespace
    WHERE
        t.typname = 'bpchar' AND
        a.attnum > 1 AND
        n.nspname NOT IN ('pg_catalog', 'pg_toast', 'information_schema')
    GROUP BY n.nspname, c.relname
    ORDER BY n.nspname, c.relname
    ;

    Vale a recomendação: teste antes de usar isso em produção!

  • Home Office de A a Z

    Com o COVID-19, o home office veio pra muita gente que nunca trabalhou em casa. Aqui na Timbira, isso já é regra há algum tempo, cada colaborador trabalha na sua casa, ou não. Fica a critério de cada um. Mas leva um tempo até se acostumar com tudo isso e não é fácil montar um ambiente de trabalho descente em casa. No entanto, se por um lado a pandemia ainda leva um tempo, muita gente sabe que chegou o novo normal e trabalhar em casa pode não ser algo passageiro. No meu caso eu levei anos aperfeiçoando tudo. Vou contar um pouco da minha saca e a minha experiência pessoal nisso tudo.

    Home Office todo dia?

    Eu gosto muito de trabalhar em casa. Inicialmente eu comecei a trabalhar 2x ou 3x por semana quando estava ainda num emprego formal numa multinacional. Depois passei a trabalhar direto em casa só na Timbira. Vou dizer que acho que ficar 7 dias por semana em casa é ruim. Você deveria sair pelo menos 1x ou 2x por semana de casa e ir trabalhar fora. Algumas opções:

    • Procure alguma cafeteria, padaria, etc e separe uma tarde ou manhã com tarefas menos críticas para fazer e leve o seu notebook.
    • Alugue um coworking
    • Encontre a empresa de algum amigo e vá visitá-lo de vez em quando. Aproveita e marque um happy hour no final do dia. Até o início da pandemia eu estava visitando o pessoal da Necto lá no Pq Tecnológico de SJC.
    • Monte um escritório com alguns amigos, compre um frigobar e dividam o aluguel. Em cidades menores você consegue fazer isso com um custo relativamente baixo.

    Sobre a rotina do dia-a-dia

    A coisa mais fácil do mundo é virar ogro trabalhando em casa. Logo, é importante criar algumas rotinas. Tomar banho cedo, se trocar, tomar café-da-manhã, coisas assim. Nada de trabalhar com roupa de dormir. Além das conferências durante o dia, é bom separar o momento de lazer do momento de trabalho. As pessoas na sua casa também vão entender melhor o seu momento e respeitar o seu horário de trabalho.

    Outra coisa que para mim é fundamental é sair de casa todos os dias. Seja para almoçar, ir caminhar, ir na academia ou dar uma volta na praça. Saia de casa. A sua qualidade de vida agradece.

    O espaço físico

    Sem dúvida a parte mais difícil é escolher um local adequado de trabalho. Ainda mais se você tem várias pessoas morando na mesma casa, crianças, cachorro, etc. A vizinhança também é um fator que pesa, particularmente no nível de barulho.

    Eu comecei trabalhando no meu quarto mesmo, como a maioria das pessoas. Tinha uma mesa com bom tamanho, mas trabalhar no quarto está longe de ser algo desejável. Se for por pouco tempo OK, mas se for por mais tempo, melhor pensar em alternativas. A solução para mim foi me mudar. Me mudei para um apartamento maior, com um quartinho pequeno mas bem arrumado com bom espaço, armários e uma mesa enorme feita sob medida. Além disso a parede tinha um fundo falso com passagem embutida para cabos. Foi um grande avanço na época. O andar era alto, os vizinhos silenciosos e eu tinha um espaço separado no apartamento só para trabalhar.

    Meu primeiro escritório de verdade.

    Mas além do quarto não ser muito grande, havia algo que me incomodava. Não havia uma janela e o quarto era muito abafado e quente no verão. Tinha que trabalhar com um ventilador ligado direto às vezes. Foi quando eu decidi mudar para o interior de SP e ir para São José dos campos, dessa vez para morar numa casa e não num apartamento. Com o aluguel que eu pagava no apartamento e condomínio, eu podia pagar por uma casa maior num bom bairro de SJC. Assim, eu escolhi uma casa que tivesse um quarto só para o meu escritório ao invés de um quarto de empregada adaptado.

    Com mais espaço, janela, uma boa vista eu depois incorporei um ar condicionado desses quente e frio que melhorou muito minha qualidade de vida. Eu não ligo o ar condicionado o tempo todo, só quando está muito frio ou muito quente. E dificilmente o dia todo, mas ajuda muito.

    Escritório atual

    Ok, não é todo mundo que tem esse tipo de oportunidade. No entanto, durante a pandemia, vi pessoas que se mudaram para a praia por exemplo. Quando você não depende mais de ir até a empresa com frequência, algumas coisas mudam na sua forma de pensar. Foi assim que eu decidi mudar de cidade.

    Alguns critérios que eu levei em consideração foram a disponibilidade de serviços como internet, iFood, Uber, etc. Sem isso minha vida fica bem mais complicada. Algo que deixei de ter também foi um carro próprio. Estar próximo de São Paulo e de um bom aeroporto também foi importante para mim. É comum ter que viajar à trabalho e temos alguns clientes grandes em São Paulo. Não ir morar longe demais me descomplica a vida.

    Mobiliário

    Antes de pensar em equipamento, você deveria pensar nos móveis. Não adianta ter equipamentos de última geração e não ter onde enfiar tudo ou ficar desconfortável o tempo todo. Ter bons móveis faz toda a diferença.

    A mesa

    Ter uma boa mesa, com altura, profundidade e largura suficientes ajuda muito. Já tive mesas altas, mesas apertadas, etc. Eu realmente gosto da sensação de ter espaço. Isso varia para um pouco de pessoa para pessoa. A primeira coisa que eu penso ao olhar para uma mesa é o suporte dela. Existe alguma chance da mesa balançar? Você pode parafusar a mesa direto na parede para ter mais firmeza? Quanto peso ela aguenta? O suporte da mesa atrapalham a circulação das pernas? Vai por mim, antes de olhar por cima da mesa, olhe por baixo. Elimine de cara qualquer modelo que limite a circulação das pernas.

    O material e o acabamento é algo que deve ser levado em consideração. Quando eu cheguei na casa onde estou hoje, já havia um móvel de escritório antigo aqui. E eu acabei utilizando ele por um tempo até encomendar a minha própria mesa com um marceneiro. Mas logo de cara eu tive que remover o tampo de vidro sobre a mesa. Nada contra o acabamento em si, mas o mouse não funciona bem com o tampo de vidro e eu não gosto de usar mouse pads, apedar de estar na moda os desk pads, bem maiores alguns em couro, onde você coloca o teclado e o mouse. Uma opção a se considerar para a sua mesa. Alguns materiais também podem grudar na sua mão ou no seu braço se você transpirar. . Seja como for o acabamento deve ser relativamente resistente a riscos e confortável para as mãos. Bordas arredondadas no tampo também são importantes, pois os seus braços vão repousar sobre a mesa e o teclado com frequência. Será bastante desagradável se a borda da mesa machucar os seus braços ou punhos.

    Independente do tamanho, a altura é realmente importante. Uma mesa deve ter altura de até 75cm. Pode variar um pouco com a sua altura, mas essa é a medida padrão de móveis para escritório. Você pode achar outras mesas muito simpáticas, mas se forem mais altas, serão bastante desconfortáveis. Outra opção mais moderna e que vem ganhando adeptos são as mesas com altura regulável, que permitem você mudar de postura e até trabalhar de pé também. Um exemplo é a Geniodesk, uma opção bem interessante e fabricada no Brasil.

    Leve em consideração também furos para passagem de cabos, calhas organizadoras por cima ou por baixo da mesa, suporte para tomadas, etc. Existem pessoas especialistas em organizar cabos, utilizando diferentes acessórios. Pra mim, o mais importante é que os cabos não fiquem espalhados sobre a mesa e não atrapalhem a livre circulação das pernas por baixo da mesa. Um mínimo de organização será necessária. Se você tiver um desktop por exemplo, ficará bem feliz em conseguir colocar a CPU debaixo da mesa e livrar um bom espaço, mas talvez precise comprar cabos mais longos. Existem também suportes para colocar a CPU pendurada debaixo da mesa, pode ser uma opção interessante. Se você tiver um gabinete ATX como eu, talvez não se sinta muito seguro com algo tão grande e pesado pendurado debaixo da mesa…

    A cadeira

    Durante muito tempo eu utilizei cadeiras de escritório bastante razoáveis. Não duram muito mas são OK. Uma boa cadeira é mais do que uma questão de conforto, tem haver com a sua capacidade de trabalhar horas sem ficar com dores nas costas por exemplo. Tem haver com ergonomia. Existem sim boas cadeiras de escritório com boa ergonomia. A Flexform por exemplo oferece cadeiras com encosto alto e ajustes de inclinação etc e tal. Você pode optar por um modelo com revestimento couro ecológico mais conhecido como poliuretano (PU) como a Klass black leather que vai esquentar mais no verão, particularmente se você não tiver um ar condicionado. Você também tem opções como a que eu utilizei um bom tempo que são com tela mesh que prometem esquentar menos e costumam ser um pouco mais baratas.

    Se você estiver disposto a investir numa cadeira de escritório realmente incrível e tiver bala na agulha, certamente vai acabar olhando as cadeiras da Herman Miller vendidas pela Atec como a Aeron Chair ou a Embody. São cadeiras incríveis, mas com preços também incríveis, ainda mais com o dólar alto. Recentemente a Hermam Miller se juntou com a Logitech para fazerem uma versão gamer da Embody. Eu acho interessante, mas o preço…

    Enfim temos as cadeiras gamers que foram adotadas pela maioria da turma de TI. Eu resisti por muito tempo e acabei comprando uma também, um pouco mais discreta, sem cores chamativas. Mas confesso que gostei muito. No meu caso eu optei por uma Noble Chair modelo Hero, que não foi barata, mas tem uma qualidade realmente muito boa.

    Seja uma cadeira de escritório, seja uma cadeira gamer, você tem que ficar de olho mais ou menos nas mesmas coisas:

    • A altura do encosto deve cobrir toda as suas costas. O encosto para a cabeça é bem opcional, não faz muita diferença na prática
    • O material com que é revestido o encosto e o assento, faz muita diferença no conforto e no calor que você vai sentir.
    • O peso que a cadeira suporta, particularmente o mecanismo e a espuma do assento. A DX Racer por exemplo tem BOSS B121-N que eu considerei muito comprar e suporta até 200Kg. Se você está acima do peso… lembre-se disso ou sua cadeira vai para o lixo em pouco tempo.
    • Os mecanismos de ajustes como altura e inclinação do encosto são bem importantes para conseguir uma boa postura de trabalho.

    Fora isso, o seu gosto pessoal importa também claro. Cadeiras são alvo de adoração por qualquer pessoa que se interessa por design, então é bem possível que você ache algo que tenha um pouco da sua personalidade também.

    Suporte para monitores

    Não é besteira não. Além de ajudar a liberar espaço na sua mesa, suportes articulados ajudam muito a você posicionar seus monitores na altura e posição ideal. Se você tem mais de um monitor então, vai ver que sua vida muda completamente ao adotar um suporte duplo desses. E você pode utilizar um desses também para apoiar o seu notebook. Uma solução elegante que pra mim melhorou muito o meu local de trabalho. No meu caso, o meu terceiro monitor, já velho de guerra está apoiado na minha coleção de livros do “Guia do Mochileiro das Galáxias”, mas os 2 principais eu uso com suportes a gás mesmo.

    Gaveteiros, armários, estantes & Cia

    Eu tenho um certo horror a deixar papeis espalhados pela mesa. Além de me distraírem, dão a impressão constante de bagunça. Há quem diga que você será mais produtivo se tiver um ambiente de trabalho mais organizado. Então algumas gavetas, um armário, prateleiras, o que for. Tenha um lugar para guardar a papelada de forma minimamente organizada. Não precisa gastar muito nisso. Eu comprei um gaveteiro simples de madeira num desses sites de móveis para montar por um preço muito razoável. Ele fica debaixo da minha mesa e quase não aparece na minha frente. Pra mim resolve. OK, eu tenho prateleiras com bidulaques variados com canecas, livros, etc. Não é necessário. No meu caso, as prateleiras já estavam aqui quando eu cheguei.

    Outros móveis

    Eu não sei você, mas na minha lista ainda tem algumas coisas que eu gostaria de acrescentar com o tempo no meu escritório. Nada fundamental, mas sonhar não custa nada…

    • Um sofá-cama para receber pessoas e poder utilizar o escritório como um quarto de hóspedes ocasionalmente;
    • Um frigobar… esse dispensa comentários. Vai me dizer que você não gosta da ideia?
    • Uma rede… eu tenho uma varanda anexa ao escritório. A varanda já estava lá quando eu cheguei… não custa nada colocar a rede!
    • Um aparador com água e café…. eu sei que todo mundo tem sua garrafa d’água, mas uma máquina de café ou um galão de água poderia ser uma boa, não?

    Equipamentos

    Agora vem a parte mais fácil da brincadeira…. mas há alguns cuidados importantes. Se você priorizou os móveis, pode não estar com um orçamento folgado para investir em equipamentos, então vamos pensar em termos de prioridades…

    Internet

    Um link de pelo menos 50Mbps é o que se espera da maioria das pessoas que trabalham em casa. Com 10Mbps suas conferências serão um inferno. Sério. Quem tiver a graça de ter disponível uma internet como a Vivo fibra, pegue, antes que alguém pegue antes de você. É uma das melhores opções disponíveis hoje. Minha vida com Vivo fibra de 300Mbps é bemmm tranquila. Sim, eu pesquisei antes de me mudar. E não, eu não sou fã da Vivo, mas esse serviço costuma funcionar bem por um preço razoável.

    Outra coisa para se pensar é ter um plano de contingência. Eu tenho um plano de 4G de outra operadora que não a Vivo para situações de emergência. Também coloquei uma placa de Wifi no meu desktop só para poder usar o 4G do meu celular nesses casos. Em quase 2 anos, só aconteceu uma vez, mas vai que você está atendendo um cliente crítico e fica sem internet?

    Microfones, fones de ouvido e auto-falantes

    Trabalhar em casa significa muitas vezes participar de muitas conferências. A câmera pode não ser o mais importante, mas o áudio sim. Então você tem algumas opções. Se você tem um ambiente com muito barulho em volta, vai preferir certamente utilizar um headset para conseguir ouvir melhor as pessoas e para que o microfone capte a sua fala bem próximo da sua boca. Essa brincadeira pode ir longe, existem headsets com cancelamento de ruído ativo que lhe dá um excelente isolamento dos barulhos externos.

    Não utilize o microfone e o autofalante do seu notebook. Sério. O microfone do seu notebook em 99% dos casos é bem ruim e você vai ouvir bem mal as pessoas. Quebra um galho uma vez ou outra. Mas utilizar o áudio do seu notebook todo dia é um sofrimento. Você não entende direito o que as pessoas falam, as pessoas não entendem direito o que você fala e você pode ficar até com dor de cabeça no final de uma conferência com mais de 30 minutos.

    Outra opção é ter um microfone externo e caixas de som externas. Existem opções excelentes por aí. Eu comprei um microfone muito bom, o M-Audio, mas que tem um defeito grave: ele capta o som em todas as direções. Com isso ele facilmente provoca eco nas minhas conferências. É ótimo para gravar, mas ruim numa conferência. Um microfone excepcional são os microfones da Yeti. Eles tem uma qualidades excelente e você pode trocar o tipo de captador por um direcional para evitar eco por exemplo. Existe inclusive uma versão com braço articulado e suporte que elimina vibração, o Yeticaster.

    Eu realmente não faço questão de caixas de som externas. No meu caso eu uso um monitor com auto-falantes embutidos que são o suficientes para mim. Se você é um entusiasta, recomendo as caixas de som de madeira com entrada USB da Edifier que são muito boas. Você vai trocar de computador algumas vezes e suas caixas de som continuarão lá, com um som limpo e claro.

    Algo mais em conta pode ser utilizar uma câmera com microfone integrado como o famoso C920 da Logitech. Funciona bem e você não paga uma fortuna. A câmera é boa e o microfone também.

    A última opção que você pode utilizar se não está disposto a gastar muito e se não participa de muitas conferências é utilizar um fone de ouvido com microfone desses que vem junto com o seu celular. Não funciona tão bem nem é muito confortável, mas quebra o galho.

    Câmera

    Você não precisa de uma uma grande câmera. Você pode utilizar a do seu notebook. A não ser que você seja um streamer profissional, não gaste com isso. Uma C920 como citei antes, resolve bem.

    Mouse

    É impressionante como as pessoas dão pouca atenção ao mouse que utilizam. Mas quem fica mais de 4h por dia na frente de um computador, deveria se preocupar sim. Mesmo que você passe mais tempo digitando. Você não precisa de um mouse gamer super incrementado. Mas um mouse confortável, ergonômico e pra mim, sem fios. Uma mesa com menos fios é uma mesa mais saudável para se trabalhar. Hoje vou aqui fazer a propaganda da Logitech, pois 3 dos meus mouses favoritos são deles:

    • MX Ergo: Não é um mouse, é um trackball na verdade. Mas é a coisa mais ergonômica que você pode encontrar. Pode levar um tempo para se acostumar. Se você tem mais de um monitor, às vezes pode ficar meio perdido. Mas é uma experiência muito boa, particularmente usando ele inclinado.
    • MX Vertical: é inclinado como o Ergo, mas é um mouse normal. Muito confortável e ergonômico. Muito mesmo. Existem outros mouses inclinados como ele…. mas acho que a qualidade deste é muito boa.
    • MX Master 3: Não é inclinado como os anteriores, é um pouco menor e bem confortável. A roda de scroll dele é como sempre deveria ser em todo mouse.

    Eu particularmente gosto de mouses onde a mão se encaixa nele. Alguns gostam de mouses menores, ou que você possa trocar de mão facilmente. Enfim… mas experimentar mouses topo de linha é algo que vale à pena.

    Teclado

    Aqui a coisa complica um bocado. Antigamente eu gostava de dizer que as únicas coisas que eu tinha da Microsoft eram teclado e mouse. Eles tinham produtos acima da média. Quando eu aposentei o meu Microsoft Sculpt Comfort Desktop, prometi que seria o meu último teclado da Microsoft. Além de não ser tão confortável assim, a qualidade anda bem questionável. Não duraram 2 anos direito comigo. Outros não duram sequer um ano e entregam uma qualidade mais questionável ainda.

    Hoje você tem opções bem mais variadas. Os teclados mecânicos ficaram populares com os gamers. Tem teclados muito bons mesmo. Eu tive um Razer BlackWidow Lite que eu considero uma ótima opção: compacto, robusto, relativamente silencioso e confortável de usar. Existem duas coisas que me incomodavam nele: o barulho e o cabo. Mesmo os mais silenciosos fazem uma quantidade razoável de barulho e eu realmente tenho a mão pesada… sou daqueles que aprenderam a datilografar em máquinas de escrever manuais. Quando você está numa conferência e ouve alguém digitar num teclado mecânico, percebe como isso incomoda. Imagina num escritório com outras pessoas. Eu não quero um teclado competindo com a minha voz enquanto estou dando uma consultoria, uma aula ou palestrando. Mas se você tem mãos de fada, é só evitar os teclados mecânicos cherry blue (que podem ser muito agradáveis mas são realmente barulhentos).

    Se você está decidido a comprar um teclado mecânico e quer entrar nesse universo, recomendo começar com os vídeos do Fábio Akita sobre o assunto. Eu desta vez optei por um teclado mais fino, parecido com um teclado de notebook, sem fio e com bateria ao invés de pilhas. Comprei um Logitech MX Keys. Ele tem lá seus defeitos… não tem layout ABNT2, e as teclas mais largas às vezes fazem um pouco mais de barulho. Fora isso é um excelente teclado e acho que é bem confortável. OK, eu sei…. parece que eu estou fazendo propagando para a Logitech. Confesso que antigamente eu torcia o nariz para os produtos deles. Uma coisa bacana de optar por vários dispositivos da mesma família MX deles é que eu posso utilizar 2 mouses e um teclado com apenas um receptor espetado na porta USB. Menos fios e menos portas utilizadas.

    Monitor

    Ter um notebook é quase uma obrigação para quem trabalha com home office. Mas usar só a tela do notebook às vezes não é a coisa mais confortável do mundo. A ideia do notebook é permitir mobilidade: ser leve e ocupar pouco espaço. Mas para trabalhar todo santo dia nele… pode não ser a melhor opção. Ter uma segunda tela parece um pouco confuso para algumas pessoas mas é uma ótima opção em N situações. Se você estiver numa conferência por exemplo, você pode compartilhar uma tela e deixar a conferência rolando em outra.

    Se você sofre de hipermetropia ou tem vista cansada…. vai preferir uma tela maior também. Telas de 24″ para mim são um bom tamanho. Ter pelo menos uma tela com auto-falantes pode ser uma boa também, assim você não precisa de caixas de som externas. Se você pretende ter apenas um monitor principal, considere a possibilidade de utilizar um ultrawide e/ou curvo. A experiência é bem interessante. Só acho chato quando alguém compartilha uma tela ultrawide numa conferência: uma parte da tela fica cortada e as letras ficam pequenas para todos os demais que não utilizam uma tela desse tipo. Se você for fazer stream ou grava vídeos compartilhando a sua tela, também vai ter que tomar cuidados com isso.

    Não sou muito exigente com monitores, talvez esteja na hora de ficar mais… existem opções muito interessantes com preços variados. Uma opção que eu achava legal era ter um suporte que permitisse virar o monitor na posição vertical, mas com suportes a gás eu não uso mais o suporte original do monitor então isso deixou de ser um requisito para mim. Mas existem suportes de diversos tipos e com diversas regulagens. Então se você não pretende usar um suporte externo com um braço articulado à gás (que eu realmente recomendo), fique de olho no suporte que vem integrado para ver as opções disponíveis. Você vai precisar pelo menos ajustar a altura do monitor, ou então vai começar a colocar livros embaixo dele…

    Desktop / Notebook

    Acho que todo mundo deve ter um notebook à mão. Em algum momento você vai ter que participar de uma reunião externa, viajar ou mesmo trabalhar num café pra variar. No entanto eu não dispenso um bom desktop. Você tem muito mais opções de processadores, memória, placa de vídeo, etc. No entanto como boa parte de tudo que a gente roda hoje está na nuvem, eu sinto mesmo é falta de 2 coisas: discos SSD de qualidade razoável e memória. Eu não considero comprar um notebook ou desktop com menos de 16GB hoje em dia. Você se acostuma rapidamente a trabalhar com muitas abas e janelas abertas sem dificuldades. Ter máquinas virtuais e outras coisas rodando ao mesmo tempo. Enfim, com 32GB de memória você tem folga para trabalhar sem muita preocupação e testar coisas mirabolantes. Placas de vídeo não fazem muita diferença para o tipo de trabalho que eu executo. Um bom gabinete e uma boa fonte são um investimento que garantem uma longa vida para o seu conjunto, com boa ventilação e pouco barulho. Eu compro uma máquina pensando numa vida útil de 3 a 5 anos. Por isso acho que gastar um pouco mais e ter algo que dure vale à pena. Mas isso é um critério pessoal, de quem precisa de uma máquina para trabalhar, não para se exibir…

    Quando fui organizar o home office da minha mãe eu optei por um computador all-in-one. A CPU fica acoplada atrás da tela e o design disso é realmente muito bom ocupando pouco espaço na mesa. Ela realmente adora esse layout, se sente mais confortável com algo integrado sobre a mesa. Diz ela que é algo “menos assustador” que o meu ambiente de trabalho…

    Nobreak

    Mesmo que você não tenha um desktop, ter um nobreak pode salvar a sua vida. Se a luz acabar o seu roteador vai desligar, seu monitor, etc. Ter um nobreak pode dar tempo para você reagir adequadamente numa situação de emergência. Eu gosto muito dos nobreaks da SMS e APC, de preferência com pelo menos 1.2KVA. Se tiver um desktop, pode ser que algo um pouco maior seja uma boa ideia. Eu utilizo um de 2.2KVA que me dá uma autonomia de cerca de 30 minutos aqui.

    Impressora e scanner

    Eu uso cada vez menos essas coisas, mas é bom ter. O problema é que ocupam um baita espaço na mesa. Como eu uso pouco a impressora, uma jato de tinta parece uma opção mais flexível que uma laser. Minha mãe é professora, para ela eu comprei uma impressora laser pequena que dá conta de um volume maior com mais velocidade. Eu uso uma boa jato de tinta com cartuchos de tinta independentes do cabeçote de leitura. Toda vez que organizamos um evento eu levo ela e papeis fotográficos. Dá pra fazer coisas incríveis nela. Seja como for, fuja das impressoras muito baratas. Em geral os cartuchos de tinta duram muito pouco, custam caro, aguentam um volume muito pequeno de impressão além de serem bem lentas.

    Eu desisti de ter um scanner no escritório. Além de ocupar muito espaço, as opções mais simples tem uma qualidade horrível. Aquelas opções de scanner e impressora num mesmo equipamento então… são sofríveis no mínimo. Como eu uso pouco, eu optei por utilizar celular mesmo, com um bom app, o CamScanner. Mas se você realmente precisa de um scanner, uma opção que eu gosto muito são os Fujitsu ScanSnap. Compactos, robustos e precisos. Embora a as pessoas estejam mais acostumadas com outras marcas de scanners, eu vi milhares deles trabalhando na digitalização de cheques em agências bancárias. São muito bons mesmo. Claro, existem opções específicas para necessidades especiais, mas aí é outra história.

    E aí, vale à pena?

    Olha, a Timbira é uma empresa que tão cedo não terá um escritório formal. Todos os nossos colaboradores são DBAs seniores ou especialistas. A maioria trabalha em casa mesmo. Todos nós investimos um tempo e dinheiro nos nossos escritórios. Há tempos atrás eu lembro de ter que brigar para ter uma cadeira descente no local de trabalho. Agora eu escolho a que eu quero. Pago caro por isso, claro. Mas mesmo empresas maiores que estão adotando o trabalho remoto tem ajudado seus funcionários a montar um ambiente mais saio de trabalho. Nós fazemos isso com nossos colaboradores…

    Algumas pessoas podem achar esnobe ficar falando sobre opções caras ainda mais numa época em que muitas pessoas estão com pouco dinheiro, desempregadas ou fechando empresas, sem contar o dólar lá em cima. Vale lembrar que isso é um processo de longo prazo, levei cerca de 6 anos para chegar aqui. Mudei de endereço 2 vezes e por aí vai. Eu realmente acredito que sempre que possível você deve optar por qualidade e produtos que durem. Nem sempre é possível. Convivi muito tempo com opções bem longe do ideal. Fui priorizando o que eu achava mais importante e alguns itens tiveram que esperar um bom tempo até que eu tivesse condições de pagar. O ritmo de quarentena também piorou muito as condições de trabalho mesmo para quem já fazia home office. Então ter um escritório bem estruturado certamente irá amenizar estes dias turbulentos e lhe ajudar a enfrentar longos dias de trabalho.

    E você como está se adaptando? Já trabalha faz tempo em casa? Tem alguma dica para compartilhar?

plugins premium WordPress