RSSAmplifier

Blog

rbardini.com

Rafael Bardini's blog

rbardini.comRSS feed ↗20 posts

Latest posts

Web components initialization and lifecycle pitfalls

I've been writing some vanilla web components lately, and it has made me greatly appreciate how Lit abstracts away a lot of the quirks in the web platform. Here are a few aha! moments I've had: isConnected becomes true before connectedCallback() is called You can't rely on isConnected to determine if connectedCallback() has already been called: connectedCallback() { this.foo = 'bar' }…

How to build a TypeScript library with Vite

I recently moved a few TypeScript libraries from Microbundle , TSDX and dts-cli to Vite . I wanted more control over the build setup, and to be able to develop, build and test 1 them using the same configuration. The secret is to use Vite's library mode , and externalize all dependencies and built-in Node.js modules so that they are not bundled with your code: // vite.config.js import {…

Código-fonte do Carteiro liberado

O Carteiro agora é código aberto! Há um bom tempo considero liberar o código-fonte do aplicativo, e seu descontinuamento foi o empurrão que faltava para a mudança. Tal abertura oferece à comunidade acesso ao conhecimento acumulado durante anos de desenvolvimento. O código-fonte do Carteiro está disponível no GitHub .

Aposentando o Carteiro

Há 10 anos, eu estava ainda na faculdade. Tinha acabado de comprar meu primeiro smartphone—um Motorola Milestone usado—e queria justificar o investimento aprendendo a desenvolver aplicativos Android. Escolhi criar um rastreador de encomendas, por necessidade pessoal, por não encontrar uma alternativa satisfatória, e pelos dados dos objetos serem publicamente acessíveis 1 . Em abril de 2012, o…

Carteiro versão 5.1.0 lançado

O que há de novo: Inclusão de leitor de código de barras próprio Atualização da lista de status A nova versão do Carteiro está disponível gratuitamente no Google Play .

Carteiro versão 5.0.0 lançado

O que há de novo: Melhorias de design—novos esquemas de cores e interface mais limpa ✨ Uso do seletor de arquivos ao criar/restaurar backups Atualização da URL da página do SRO Atualização das listas de status e serviços postais Correção de bugs Remoção do suporte a Android 7.1.1 ou inferior O novo esquema de cores claro apresenta tons pastéis, enquanto a maioria dos elementos decorativos foram…

Carteiro versão 4.0.0 lançado

O que há de novo: Melhorias de design—maior contraste e tema escuro mais escuro 🌒 Adição de opção padrão do sistema à lista de temas Cópia do código de rastreamento ao pressionar e segurar texto Definida largura máxima da tela de adição de objeto Exibição da data do último backup automático realizado Correção de bugs durante adição e sincronização de objetos Remoção do suporte a Android 5.1 ou…

Hiding fully-covered files from Jest coverage report

While working on a large JavaScript codebase, one thing that bothered me was the coverage report output to the console: as most files had 100% coverage, it was difficult to spot the few exceptions in the table. Luckily, additional options can be passed to Istanbul reporters . I couldn't find documentation for the text reporter, so I digged into its code and found the skipFull option: {…

Making optional properties nullable in TypeScript

Let's say you follow the TypeScript project coding guidelines and only use undefined . Your types are defined with non-nullable optional properties (e.g., x?: number ), but the data coming from the API returns null instead. You decide to write a function to strip all these null values from the response, so that they conform to your types: function stripNullableProperties(obj) { // Return a new…

Automating tests for the GTM data layer

At Travix we are constantly analyzing application and user behavior on our websites in order to offer the best experience to our customers. One of the tools employed for this purpose is Google Tag Manager (also called GTM), alongside a data layer . A data layer is a JavaScript object that is used to pass information from the website to the Tag Manager container 1 , like product views and…

Carteiro versão 3.5.1 disponível

Uma nova versão do Carteiro acaba de ser lançada no Google Play ! As principais mudanças são: Opção de desfazer ao arquivar ou excluir objetos Correção da seleção do tema não sendo aplicada Melhorias de design, interação e desempenho A interface está mais harmoniosa, com todos os elementos alinhados à grade, e a transição entre a lista de objetos e o histórico seguindo melhor as diretrizes do…

How to add a Netlify deploy status badge to your project

Ever since I moved this blog to Netlify I wanted to add a badge to the repository's README displaying the deploy status. The Shields.io service doesn't support Netlify badges yet, but luckily I found out that you can build dynamic badges by querying structured data from any public URL. After digging into the Netlify REST API , I managed to make a badge that fetches all deploys for my site and…

Carteiro versão 3.4.0 disponível

Uma nova versão do Carteiro acaba de ser lançada no Google Play . Entre as várias mudanças estão: Melhorias no processo de sincronização automática Opção de sincronizar objetos ao iniciar Opção de falar com os Correios no menu de navegação Adição de nova categoria "em trânsito" Opção de alterar a categoria exibida ao iniciar Exibição da última sincronização no menu de navegação Opção de marcar…

Carteiro versão 3.0.4 disponível

Após um longo tempo e uma semana difícil, com a inesperada desativação do WebSRO por parte dos Correios, uma nova versão do Carteiro já se encontra no Google Play . E para compensar toda essa espera, as novidades são: Muitas melhorias de interface, novo ícone e tema escuro! Utilização do web service oficial dos Correios Opção de desabilitar teclado adaptativo Adição de múltiplos objetos facilitada…

Carteiro removido temporariamente da Play Store

Devido à inesperada desativação do serviço WebSRO por parte dos Correios, o Carteiro foi removido temporariamente da Play Store até que uma solução alternativa seja implementada. A previsão é que o aplicativo retorne à loja até o começo da semana que vem (20/06). Obrigado pela compreensão e apoio, Rafael Bardini Atualização 17/06/2016: o WebSRO está de volta, e o Carteiro também :)

Alain de Botton on Love ↗

Amazing presentation by one of the greatest thinkers of our time on how Romanticism has made our relationships difficult. Alain de Botton on Love - YouTube De Botton is one of the minds (and sometimes also the voice) behind The School of Life channel , which I highly recommend you to subscribe to. ∞ Permalink

Is forgetting a child in the backseat of a car a crime? ↗

Gene Weingarten: "Death by hyperthermia" is the official designation. When it happens to young children, the facts are often the same: An otherwise loving and attentive parent one day gets busy, or distracted, or upset, or confused by a change in his or her daily routine, and just... forgets a child is in the car. This is one of the most disturbing, eye-opening articles I've ever read, not because…

Migrating from Second Crack to Metalsmith

I've just migrated this blog from Second Crack to Metalsmith , mainly because I wanted to switch away from a PHP-based static site generator. I considered using Hugo , specially because it is pretty fast---and it would be nice to learn Go---but I found its template syntax a little off-putting. It's now being served by GitHub Pages too, with the code available here . I'll write some follow-up posts…

Carteiro versão 2.2.1 disponível

Uma nova versão do Carteiro acaba de ser publicada no Google Play . Dessa vez as novidades são: Adicionada opção de sincronização apenas via Wi-Fi Menu de navegação redesenhado Suporte a permissões individuais e backup automático de dados no Android 6.0+ Reorganização das configurações do aplicativo Lista de serviços postais atualizada Correção de bugs e melhora do desempenho Com essa atualização,…

Exercendo a não-opinião como exercício de empatia ↗

Alex Castro: Quando perguntamos a nossa amiga casada quando ela vai finalmente ter filhos ou filhas, a pergunta nos parece inócua e amigável. Afinal, só estamos perguntando porque temos intimidade, certo? Entretanto, para a pessoa que está do outro lado, o comentário é opressivo. Porque não é a primeira, nem a vigésima, nem a centésima vez que é feito. Como essa pessoa pode se sentir acolhida,…