Blog

๐Ÿ’ป Tech๐Ÿ•น๏ธ Off-topic

Translating an application is not trivial but it shouldn't be complicated. Using existing tools, we can flag the text that needs to be translated and extract it into resource files. Such files will be populated, either by human translators or machine generated content, and then the translation software will transparently do the rest. ยกVamos alla!

Re-writing a legacy web API takes time and the exercise will probably span across several releases. We will most likely be facing a scenario were both APIs run in parallel, having the old system servicing endpoints that haven't been migrated yet. But it turns out such an scenario can be achieved painlessly by using the good old http-proxy library and 404 responses! Here is how.

Apps that allow users to generate data while being offline (Trello, for example) generally provide a better user experience. They must resolve a challenge however: because the database schema naturally changes as the app evolves, the server must support incoming data generated on an old schema version. How? Here is one way of doing it.

Writing a web app in Typescript provides type safety in both the client and the server but, what about the communication between the two sides? The payload of network requests remains untyped by default, boycotting our attempts to keep a consistent code base. With that idea in mind I wrote @typed-web-api, a minimalist approach to adding type safety to fetch requests. Here is how to use it.

A couple years ago I wrote a piece about sharing code in Typescript monorepos, focusing mainly on npm workspaces, and I left out an important aspect of the software development lifecycle: shipping the compiled files to production environments. Because that is such a fundamental part of software development, I'll be addressing it in this second piece of writing.

WebRTC allows for real-time communication between two peers using only the browser's built-in functionalities, with no need for a communications server. That's AWESOME. But turns out that the browser API is complex, and I find the official samples repository a bit confusing. Here is an attempt to provide a clearer example.

Even though choosing Typescript to develop an express web app provides type safety in both client and server, the network requests data remains untyped on both ends, complicating our attempts to keep a consistent code base ๐Ÿคฌ With that idea in mind I wrote @express-typed-api, a library to help creating a type declaration for an express API so that it can be used to automatically infer the network requests' return type from the client side. Here is how to use it.

Writing a web server on node.js means using the same programming languages on both sides of a web app. Which should allow for sharing a good amount of code between the client and the server apps. Which should be easy when both apps are part of the same monorepo. Then, why do things get complicated when we add Typescript to the mix?

So the time has come for your brilliant Expo app to start delivering push notifications. You've had a look at the multiple options available and still you are unsure which one to go for. Regardless where you are at now this is all you need to know before implementing push notifications on your managed Expo app and how to do so in August 2021.

I choose React Native to develop mobile apps because it simplifies development so I want user authentication to be as simple as possible too. Firebase provides backend services and client side SDKs for authentication purposes and it's built by Google. That's a match! This is how to authenticate users with email and password in React Native apps using Firebase Authentication.

So you heard that Apple is rather picky when it comes to accepting apps in App Store. And indeed, Apple does make it much harder than Google when it comes to publishing apps. This doesn't mean it's impossible however. All you will need is patience and, if possible, following the advice of somebody who has done it before. This is what it looks like to upload an iOS to App Store in January 2021.

So you just had that amazing idea for a killer mobile app. You know how to develop it and you have the motivation but you are not sure how hard it's gonna be to get it published on Play Store. Or maybe you don't have the idea yet, but still you wonder about how publishing a mobile app works. You came to the right article. This is what it looks like to upload an Android app to Play Store in January 2021.

Need somewhere to host your WordPress site? Google Cloud Platform makes it specially easy, providing pre-configured virtual machines. Your site will be up and running in under an hour, using your custom domain, accepting HTTPS traffic and being able to send emails from contact forms.

Web developers owe a great deal to npm JavaScript libraries. npm packages resolve common web problems in elegant ways, are free to use, rock solid (potentially tested by thousands of users) and save development efforts. No doubt npm makes our lives easier but... who are those anonymous open source heroes? Well, you can be the next one!

So you have just finished your splendid new node.js express app, it runs smoothly in your local environment and you are ready to make it available to the users who are eagerly awaiting for the release. The question now is... where to deploy it? Search no more! Google Cloud Platform is the place you've been looking for. Seamlessly deploy your app with a single command and let Google handle the scaling your app needs according to the users traffic.

Build a wheel of fortune in CSS... is that even possible!? I had never thought about it until I met a group of entrepreneurs who were building a savings application based on video games. They were using React Native and a couple of graphics libraries which, in my opinion, seemed to be too much overhead for just a roulette. I immediately started to dig in the internet and I found a way to implement it in pure CSS3 and HTML. The CSS property that makes it possible? Meet your new best friend: linear-gradient ๐Ÿ•ถ๏ธ

When building a web on my own I generally face two challenges: what to put in it and how to put it. Usually the urge of getting the job done pushes me to start developing after visualizing the global picture, and I don't spend enough time trying to solve those challenges properly. As a consequence of this haste, I sometimes feel my web sites are lacking something... but what exactly? Here are the bad decisions I made while developing my old website and how I approached them on this new version of my web page.

My mother has always been a fervent newspaper reader and, throughout the years, she developed the habit of solving the puzzles that come in the last pages. Between those puzzles you can always find a game called sudoku. Two actually; a reasonably difficult one and an evil one. So she was in the middle of filling the first sudoku when I interrupted her. I don't remember what for but I do remember that we talked about sudoku and it was the difference between the two sudoku levels that caught my attention.

Despite I do not work at Sage anymore, some of the tools I discovered there still are a very wise choice when it comes to web development. Since they did not fit in the first post of this series, I'll briefly describe them in this second one. Don't worry: I promise not to write a third part.

Perhaps steroids is too much saying, but you can definitely get more out of web development. In this post I will explain some of the techniques we use at Sage to develop our web platforms, both front end and back end, which I've later on exported to my personal projects too. Keep reading to streamline your own development experience!

As a content writer you owe a great deal to your readers. No matter whether you are a blogger, a writer, a coach or an author, being able to reach your audience will help you get them more engaged with your activity and provides a good way to start selling your products or services in some point in the future. In addition it will keep you motivated to keep writing. Is there anything more pleasant than knowing that someone cares about your ideas?

If you are visiting this website from a mobile device, you might have seen the following message at the bottom of the screen. No, I am not trying to hack you. I have made my website a progressive web app and, as such, it can be accessed offline and it can be installed in Android and iOS devices. Keep reading and turn your website into a PWA in less than 15 minutes!

Few days ago I received the following email from Google Cloud Platform. Apparently, I was publishing my Google Maps API key to a public Github repository (for the non-technical audience, I was uploading some kind of password to a social network public wall), allowing any smart-ass clever enough to find it to spend my Google Maps quota on his behalf.