# Technical Notes — Abulasar Sayyad

> Practical notes from building software: production web systems, C++, systems programming, Elixir/Phoenix, databases, AI/ML, and the rabbit holes in between.

Articles are fetched from Abulasar's public Hashnode publication during the static build and served as prebuilt pages from abulasar.dev.

## All notes

- [Debugging a False-Positive Hex Advisory in an Elixir CI Pipeline](https://abulasar.dev/notes/debugging-false-positive-hex-advisory-elixir-ci/): Introduction
Recently, while working on a personal project in Elixir/Phoenix, I was performing what looked like a routine dependency update in an Elixir/Phoenix project:
mix deps.update mint

The comm (7 min read; Elixir, Erlang, vulnerability, mix, hex , audit, Security)
- [Understanding Eigenvalues and Eigenvectors: A Visual Introduction](https://abulasar.dev/notes/understanding-eigenvalues-and-eigenvectors-a-visual-introduction/): Introduction
A matrix represents a linear transformation. In other words, a matrix represents a transformation that you apply to the vectors in your coordinate space.
Say, you apply the matrix:
$$A =  (5 min read; linear algebra , Machine Learning, Mathematics, eigenvalues, eigenvectors)
- [How to Set Up Multipass with VS Code on Mac: A Step-by-Step Guide](https://abulasar.dev/notes/how-to-set-up-multipass-with-vs-code-on-mac-a-step-by-step-guide/): Motivation
Recently, I tried to learn some low-level system programming stuff. I am a Mac user, and I thought that everything that works on Linux should also work on Mac. After all, Mac is a Unix-based system 😊. I guess we all heard this. Oh boy! I ... (6 min read; #Multipass, systemprogramming, c programming)
- [TIL: Debugging "Column Cannot Be Null" Error in MySQL despite nullable column definition](https://abulasar.dev/notes/til-debugging-column-cannot-be-null-error-in-mysql-despite-nullable-column-definition/): Problem Statement
While working on a Nestjs project, I encountered a weird problem related to the database column. I was trying to insert a record into a MySQL table using TypeORM. The error I was experiencing stated that a specific column “cannot be... (2 min read; Databases, MySQL, Null Safety, Database triggers)
- [Understand and implement Builder Design Pattern in Javascript and C++](https://abulasar.dev/notes/understand-and-implement-builder-design-pattern-in-javascript-and-c/): Recently, I was exploring design patterns courses on my LinkedIn Learning subscription. I came across a course, Node.js: Design Patterns by Alex Banks. It is a wonderful, easy-to-understand course. I started with the Builder Pattern, and the explanat... (4 min read; design patterns, C++, builder pattern)
- [Implement Table DOM Search in Phoenix LiveView](https://abulasar.dev/notes/implement-table-dom-search-in-phoenix-liveview/): Suppose you are working on a table in a LiveView project. This table has limited static data of not more than one page (you can avoid questions about pagination in the comment section 😊). From a user's point of view, it becomes hard to look into the... (6 min read; phoenix liveview, Phoenix framework, DOM, JavaScript, HTML)
- [Creating Tabular Representation of Database Indexes using Elixir Mix Task](https://abulasar.dev/notes/creating-tabular-representation-of-database-indexes-using-elixir-mix-task/): Recently, while working on one of my personal Elixir projects. I came across a scenario where I needed to make some changes to the database schema.The changes mainly revolve around adding and removing indexes due to changes in the business requiremen... (9 min read; Elixir, tasks)
- [Adding PDF generate feature in Phoenix LiveView app](https://abulasar.dev/notes/adding-pdf-generate-feature-in-phoenix-liveview-app/): Generating pdf is very common in day-to-day web applications. In E-commerce websites like Amazon when we do any shopping we get the option to get the invoice. It's not an easy task to implement it people often have a hard time implementing it because... (6 min read; chromicpdf, phoenix liveview, pdf)
- [TIL: How to add a form in a table in Phoenix LiveView?](https://abulasar.dev/notes/til-how-to-add-a-form-in-a-table-in-phoenix-liveview/): Suppose, we want to add an inline edit feature on a table row. It can be a little tricky to implement. I had a hard time implementing it because I wasn't about one of the concepts of HTML that we cannot add a form tag inside a table. Something like t... (2 min read; forms, today i learn , phoenix liveview, Phoenix framework)
- [TIL: Add the "download" attribute on the link tag when calling the download endpoint](https://abulasar.dev/notes/til-add-the-download-attribute-on-the-link-tag-when-calling-the-download-endpoint/): Downloading pdf or any other documents is very common in day-to-day web applications. We often see buttons like Download, Generate Invoice, etc buttons in web applications that makes calls to a GET endpoint which does some computations and downloads ... (2 min read; today i learn , download, Phoenix framework, phoenix liveview)
- [TIL: Use the `useMaster` property to fetch data from the write pool in Sequelize.](https://abulasar.dev/notes/til-use-the-usemaster-property-to-fetch-data-from-the-write-pool-in-sequelize/): Sequelize offers support for read replication, enabling the use of multiple servers for executing SELECT queries. In this configuration, you designate one or more servers as read replicas, while appointing one server as the primary writer. The primar... (2 min read; Node.js, Sequelize, replication, SQL, TIL)
- [Creating a React component to render normal SVG in react-pdf.](https://abulasar.dev/notes/creating-a-react-component-to-render-normal-svg-in-react-pdf/): Recently, while working on a React project, I encountered a bug (or requirement) where SVG images weren't getting exported in PDF. The PDF export feature was an existing feature developed earlier by one of my colleagues in the project. He developed t... (9 min read; React, #react-pdf)
- [Installing Timescaledb on Postgres App(macOS)](https://abulasar.dev/notes/installing-timescaledb-on-postgres-appmacos/): Recently, while working on one of the projects. I came across the requirement to use Timescaledb. I use postgress.app for managing different versions of PostgreSQL for different projects. This was my first encounter with timescaledb, I had never used... (2 min read; postgres.app, PostgreSQL, timescaledb, database)
- [Creating a real-time Trello board with Phoenix LiveView-Part-2](https://abulasar.dev/notes/creating-a-real-time-trello-board-with-phoenix-liveview-part-2/): This blog is a continuation of a three-part blog series on creating a real-time Trello board. This is going to be part 2 of the series. In the previous blog, we designed and implemented the API layer  (10 min read; Elixir, liveview, Real Time, Trello, javascript interop)
- [Creating a real-time Trello board with Phoenix LiveView-Part-1](https://abulasar.dev/notes/creating-a-real-time-trello-board-with-phoenix-liveview-part-1/): Trello cards help you to collaborate, manage projects, and reach new productivity peaks(As per their official Website 😊). You may have used it earlier or some similar board like Jira to manage projects and tasks. When I joined one of my previous org... (9 min read; liveview, Elixir, Trello, Real Time, javascript interop)
- [My Elixir Mix Podcast](https://abulasar.dev/notes/my-elixir-mix-podcast/): Recently, I got the opportunity to be a guest on Elixir Mix podcast. Though I was nervous(super nervous) but the hosts of the show Sascha Wolf, Adi Iyengar, and Allen Wyma were very welcoming and made (1 min read; Elixir, liveview, podcast, Phoenix framework)
- [Adding Toaster message in Phoenix LiveView](https://abulasar.dev/notes/adding-toaster-message-in-phoenix-liveview/): This blog is about adding a Toaster message in the Phoenix LiveView application. We are going to implement this with a combination of Elixir and Javascript. Before, starting to build a toaster let's first answer the most obvious question "What is a T... (4 min read; Phoenix framework, Elixir, liveview, toast)
- [Highlighting the current page link in the Navbar menu in Phoenix LiveView](https://abulasar.dev/notes/highlighting-the-current-page-link-in-the-navbar-menu-in-phoenix-liveview/): A good user experience happens when an application is easy to use and with intuitive UI feedback. Nav menu bar is one the most important element in web applications, it helps users to navigate to different pages. It's vital that users should be aware... (5 min read; Elixir, Phoenix framework, navigation, menu, liveview)
- [Adding Infinite scroll in Phoenix LiveView App](https://abulasar.dev/notes/adding-infinite-scroll-in-phoenix-liveview-app/): In my previous blog, I explained how to query Graphql API using Neuron. Throughout the blog, I explained the working of Neuron on page 0. Whereas, there will be scenarios when users can have multiple blogs paginated on multiple pages. So, we need to ... (5 min read; infinite scrolling, Elixir, Phoenix framework, JavaScript)
- [Fetching data from external Graphql API service in Phoenix LiveView](https://abulasar.dev/notes/fetching-data-from-external-graphql-api-service-in-phoenix-liveview/): Recently while creating my personal portfolio website abulasar.dev, I added a blog page. For that, I had fetched hashnode blogs on the page. Hashnode has exposed its blog through API. You can visit api.hashnode.com and this API is in Graphql format. ... (5 min read; Elixir, Phoenix framework, GraphQL, Hashnode)
- [Building Realtime LiveView App using Phoenix PubSub](https://abulasar.dev/notes/building-realtime-liveview-app-using-phoenix-pubsub/): In my previous blog on the Note-taking app, we missed harnessing the most important feature of Phoenix LiveView i.e real-time update. What does that mean? It means to do an update in your application screen without explicitly refreshing your applicat... (4 min read; Phoenix framework, Elixir, socket)
- [Creating Note taking app using LiveView and GenServer - Part 2](https://abulasar.dev/notes/creating-note-taking-app-using-liveview-and-genserver-part-2/): This blog is a continuation of a two-part blog. This is going to be part 2. In the previous blog, we've seen the designing of the process layer (Boundary Layer) of the application. We implemented the GenServer and started it with Supervisor. We also ... (7 min read; Elixir, Phoenix framework, liveview, genserver)
- [Creating  Note taking app using LiveView and GenServer - Part 1](https://abulasar.dev/notes/creating-note-taking-app-using-liveview-and-genserver-part-1/): Phoenix Liveview is a new library that works with Phoenix and provides real-time user experiences with server-rendered HTML. The library documentation itself says LiveView provides rich, real-time user experiences with server-rendered HTML. In this b... (9 min read; Phoenix framework, Elixir, liveview, genserver)
- [Accessing Front and Rear camera on a Mobile browser in Emberjs App](https://abulasar.dev/notes/accessing-front-and-rear-camera-on-a-mobile-browser-in-emberjs-app/): Suppose, you are having a web application that has the feature to open a camera. For a Laptop or desktop machine, it is fine to access the one camera you are having. What if you are accessing the same web app on mobile or tablet, wouldn't it be cool ... (5 min read; Ember.js, video streaming, components)
- [Improving NodeJS Performance with Clustering](https://abulasar.dev/notes/improving-nodejs-performance-with-clustering/): Scaling node applications can be tricky. It isn’t an easy topic. It requires lots of expertise both in terms of knowing node nuances and how to manage resources. You can scale your application either by Vertical Scaling or horizontal scaling or by bo... (4 min read; Node.js, scaling)
- [Writing Mix Task in Elixir Phoenix](https://abulasar.dev/notes/writing-mix-task-in-elixir-phoenix/): Imagine you are working on an application that has multiple models (Tables) and each table has some columns. Your manager came up with a requirement to add a new column in one table, say User table. The new column you have asked to add is user_type o... (5 min read; Elixir, Phoenix framework, migration)
- [Creating Simple Calculator CLI app using Golang with TDD approach](https://abulasar.dev/notes/creating-simple-calculator-cli-app-using-golang-with-tdd-approach/): "Go is an open-source programming language that makes it easy to build simple, reliable, and efficient software" as advertised by Google on their official website. It is an excellent choice to develop reliable APIs, microservices, CLI apps, etc. I've... (7 min read; Go Language, cli, TDD (Test-driven development), Testing, command line application)
- [Fetching data from Graphql API in Emberjs App](https://abulasar.dev/notes/fetching-data-from-graphql-api-in-emberjs-app/): Hashnode is a great platform to get started blogging by providing you hashnode sub-domain and also give option to add your own custom domain like I have this one. Suppose you are creating a web app where you want to display blogs that you have writte... (3 min read; Hashnode, Ember.js, APIs, GraphQL)
- [API Authentication in Elixir Phoenix - Part 1](https://abulasar.dev/notes/api-authentication-in-elixir-phoenix-part-1/): Authentication is a very important aspect of any application. It restricts the unknown user to access anyone's data. We will be going to implement token-based authentication. This blog will be a continuation of our blog "JSON-API with Elixir-phoenix"... (4 min read; Elixir, Phoenix framework, authentication, REST API)
- [Creating Drop Down Component with Ember Contextual Component](https://abulasar.dev/notes/creating-drop-down-component-with-ember-contextual-component/): Note: This blog was originally written by me on kiprosh.com 
In most of the recent frameworks, you must have came across concept called Component. Component has became integral part of JS development these days. Those are independent and reusable bit... (4 min read)
- [Creating Input masking component using Ember-modifier](https://abulasar.dev/notes/creating-input-masking-component-using-ember-modifier-1/): If you are an Ember dev, you may have come across Handlebars elements like {{on}} (which was introduced in Ember Octane). It is nothing but modifiers. It is very similar to helpers in handlebars. It is available in two flavors class based and functio... (5 min read; Ember.js, ember, javascript framework, forms, Web Components)
- [Creating JSON-API in Elixir-Phoenix with ease using ja_serializer.](https://abulasar.dev/notes/creating-json-api-in-elixir-phoenix-with-ease-using-jaserializer/): Today, most of the Web application uses Modern Frontend frameworks like React, Angular, Ember, etc. These frameworks use the JSON API to interact with some back-end. JSON-API is the preferred specification for building APIs. This post will help you i... (6 min read; json, Elixir, Phoenix framework, REST API)
- [Installing CORS in Elixir-Phoenix Application](https://abulasar.dev/notes/installing-cors-in-elixir-phoenix-application/): While developing API in any framework, we often come across error related to CORS. This post will help you fixing CORS issue in Elixir-Phoenix application.
Suppose, you have an Ember(or any Frontend SPA) application that runs on port 4200 and our Pho... (2 min read; Elixir, Phoenix framework, REST API)
- [Hassle free Testing Elixir modules in iEx shell](https://abulasar.dev/notes/hassle-free-testing-elixir-modules-in-iex-shell/): While working on Elixir project, we often test our functions or modules code in iex shell. Whatever change we make in our code, we fire iex -S mix command and all of our project modules are accessible in shell. 
Suppose, we have a module say Calculat... (2 min read; Elixir)

## Publication profile

- [Abulasar on Hashnode](https://hashnode.com/@abulasar): Original publication profile.
