New Drupal 8/9 module: Dopup
abhai 4 October 2020This module provides simple popup block like that of sumo.me. Sometimes we need to display popup blocks which interacts with the user. Example, Get a Quote, Newsletter subscription forms. Using this module, the user can and their webforms to a block which is a popup and style it as well. After this, the user can specify when to display the popup to the user. Example, 5 seconds after the user is on the page, when the user scrolls to 50% of page and so on. The user can also add custom styles to the block.A simple asynchronous reverse proxy in Rust
abhai 25 September 2020In my previous article, I had written a very simple and basic reverse proxy. It is just like Nginx but without all the usefulness. In this new code, I have used tokio.rs. Tokio provides runtimes for asynchronous programming. A runtime bundles services together and makes a single type of (for want of a better word) process, service, runtime, etc. This makes it easier to shut down, started, etc. In the code below, I have used TcpStream and TcpListener from the tokio library and not std. I have also spawned for tokio threads and within that, tokio tasks, which are sort of like green threads, but not quite because Rust does not natively support it.A simple reverse proxy server in Rust
abhai 24 September 2020I wanted the application I write to be able to run well on a raspberry pi zero. And Rust could do all this extremely well. Apart from that, Rust is the safest language ever. And it's not like when Java says that it's secure. Rust means it and has gone above and beyond to make sure you can only write safe and secure code. It does this because it has one of the most advanced and thorough compilers, that WILL NOT compile your code unless it is safe. I choose Rust. Q.E.D.A simple and fast Headless Drupal 8 solution: Acephalous
abhai 21 September 2020An API first distribution and a responsive Angular Single Page App using Angular material. Acephalous provides an Angular front-end and an API first Drupal back-end. Routing has been made simpler here by using the same routes from Drupal rather than re-inventing the wheel. Routing takes place in the Routing component in the Angular Single Page App. The purpose of this distribution is to create a fast, secure and small front end application while keeping all the Drupal 8 goodness like SEO, responsive images, routing, multilingual, easy content authoring, views. Basically Drupal acts like an smart content source and a JavaScript framework renders it.How to customize your Macbook touch bar and make it useful again
abhai 19 September 2020Even default Apple applications like Safari, provide very few useful actions from the touch bar. Even then, I mean c'mon, who uses Safari. So Apple should really re-think how to provide a more useful touch bar. Meanwhile, smart developers have provided a solution to make your Macbook touch bar more useful. The best such solution is My Touchbar My Rules (MTMR).Tags
MacBook Pro 16 for programming? Review after 1 month of usage
abhai 7 September 2020The MacBook Pro 16 is by far the best Macbook ever made. I bought an Apple Macbook only because they came up with the Macbook Pro 16. Otherwise, I would have just gone for a Thinkpad or even Dell Alienware.Tags
How to upgrade your Drupal 8 site to Drupal 9
abhai 7 September 2020Upgrading a Drupal 8 site to Drupal 9. Follow the blog written by Dries on Drupal.org: https://www.drupal.org/docs/upgrading-drupal/upgrading-from-drupal-8-to-drupal-9-or-higher to easily upgrade.How to run Behat test automation for Drupal on Lando using Acquia BLT
abhai 7 September 2020Acquia vs Platform.sh: The "better" Drupal hosting for your application
abhai 7 September 2020For hosting Drupal applications, it is better to go with a hosting platform that promises support specifically for Drupal. There are many such platforms, Platform.sh, Acquia, Pantheon. Let's compare the two leading one's from a slightly different user perspective.How to create a drop-down menu recursively using angular material button
abhai 7 September 2020Angular Material is the "Material Design" approach to making web apps in Angular. I have tried out some of this and it seems very easily doable. But I did find it difficult to get to the right way of doing things due to a lack of proper working examples. The documentation is very limited because there is a lot more you can do outside of what's described in the documentation. One such example is what I'm about demonstrate here.Things to remember when you change the domain name of your Drupal website
abhai 7 September 2020As you may have noticed, my domain name is now abh.ai. I've been wanting to change my domain name for some time now, for many reasons. People are often surprised that .xyz is a legitimate domain name despite abc.xyz. Plus, If it weren't for my friends, this change would never have happened. They, very astutely, pointed out that it sounds like the domain name of a porn site.Headless (decoupled) Drupal using Drupal 8 and angular 6
abhai 15 March 2020Headless Drupal or decoupled Drupal is when you use Drupal only as a storage for content and a frontend that gets the data from the Drupal backend via an API. The front end is usually a JavaScript framework like Angular or Vue. In this example, we use Angular 6 as a front end and we open up my website www.abhaisasidharan.xyz available as JSON objects via an API. This enabled me to create an Angular Single Page Application which pulls content from abhaisasidharan.xyz.