@maxlibin - blog

November 18, 2024

Holy Shit, I Thought Bolt.new Was Amazing Until I Discovered Marblism!

After my initial experience with Bolt.new, I was blown away by its capabilities for rapidly developing web applications. But then I stumbled upon Marblism, and I have to say, it’s a game-changer. Marblism takes things to a whole new level. What is Marblism? Marblism is an AI-powered platform that streamlines the creation of full-stack applications. […]

November 07, 2024

How I Built a Web App in 5 Minutes (and Had Time for Coffee) with Bolt.new

Let’s talk about something that truly blew my mind: building a functional, deployable web app in just five minutes. Yep, you read that right. A live, working app, ready to go, faster than I can make a decent cup of coffee. As a developer, I’ve seen all kinds of tools come and go, most of […]

October 25, 2024

Building a Full-Stack Type-Safe Website with OCaml

Introduction In today’s fast-paced web development world, building reliable and maintainable applications is crucial. Type safety plays a significant role in catching errors early in the development process, reducing bugs, and improving code quality. OCaml, a statically typed functional programming language, offers robust features that make it an excellent choice for full-stack web development. This […]

October 09, 2024

Journey to Functional Programming in JavaScript

Course Outline Understand the principles of functional programming Construct pure, stateless functions Use higher-order functions such as map, filter, reduce, etc. Avoid mutation; use immutable data structures Apply these practices in your React projects Some languages that support functional programming: Haskell, OCaml, F#, Erlang, Clojure, Scala, etc. So, What Is Functional Programming and Why Is […]

October 07, 2024

Exploring React 19: New Features and How They Change the Way We Build UIs

React 19 introduces a host of new features that make building user interfaces cleaner, more efficient, and less boilerplate-heavy. Whether you’re a beginner trying to learn React or an experienced developer looking to get the most out of the latest release, this guide will break down everything you need to know. React Compiler: A New […]

September 04, 2024

learn nvim workshop

Install nvim To install Neovim, you can refer to the official installation guide: Installation Guide The easiest way to install Neovim, in my opinion, is by building it from source: Install from Source Getting Started with nvim To start using Neovim, open your terminal, navigate to your project folder, and type: nvim This command opens […]

August 06, 2024

Top 9 AI Coding Assistant Tools to Boost Your Productivity in 2024

Introduction to AI in Coding AI is revolutionizing software development by automating repetitive tasks, suggesting improvements, and generating code snippets. AI coding assistants help developers enhance productivity, reduce errors, and stay updated with best practices. These tools leverage machine learning and natural language processing to provide contextual recommendations, making coding more efficient and enjoyable. 1. […]

June 14, 2024

Why I Switched from Ngrok to Cloudflared Tunnel (and You Should Too)

If you’re like me, constantly tinkering with webhooks, testing APIs, or showcasing projects to clients, you know the pain of exposing your localhost to the internet. Ngrok has been my go-to for years, but recently, its bandwidth limitations and incessant upgrade prompts have been driving me up the wall. Enter Cloudflared Tunnel—my new best friend. […]

May 30, 2024

Install latest neovim in linux machine in 3 simple steps

Built Neovim from source. Here’s the step-by-step process: Install Dependencies: sudo apt-get install ninja-build gettext cmake unzip curl Clone the Neovim Repository: git clone https://github.com/neovim/neovim.git cd neovim Build and Install Neovim: make CMAKE_BUILD_TYPE=Release sudo make install By following these steps, you should be able to build and install Neovim successfully from source.

May 03, 2024

The Paradox of Complex Password Guidelines: A Closer Look

In our digital age, the safeguarding of personal and sensitive information has become paramount. As gatekeepers to our digital lives, passwords are ubiquitous and necessary. Yet, the guidelines for creating a "strong" password provided on many websites—requiring a mix of uppercase and lowercase letters, numbers, and special characters—may not only be overkill but could potentially […]

March 04, 2024

Why You Might Not Need Edge Computing for Your Project

In the evolving landscape of web development, edge computing has been heralded for bringing computation and data storage closer to the location where it is needed, aiming to reduce latency and improve user experience. However, it’s not a one-size-fits-all solution. Here’s why edge computing might not be necessary for your project: Database Compatibility Challenges Many […]

February 15, 2024

Transforming Project Management with Tulsk.io: A Comprehensive Guide

In the dynamic world of project management, the integration of technology, especially AI, is revolutionizing how we approach, plan, and execute projects. Tulsk.io, a cutting-edge AI-powered project management tool, is at the forefront of this revolution. This blog explores how Tulsk.io is reshaping project management methodologies, making them more efficient, adaptable, and user-friendly. Understanding Tulsk […]

June 22, 2023

Introducing Tulsk.io: My Journey in Creating an AI-Powered Project Management Tool

In the ever-evolving digital landscape, effective project management is crucial. As a software developer, I’ve always been fascinated by the potential of technology to solve everyday problems. This is what led me to embark on my latest side project, Tulsk.io, an innovative AI-powered project management platform. Over the years, I’ve worked on a variety of […]

June 06, 2023

Mastering Git: The Power of git commit –amend

One of the fundamental aspects of using version control systems, like Git, is making and managing commits. In this blog post, we’ll dive into one of the less-known, but incredibly powerful features of Git: the git commit –amend command. This command can be a real lifesaver, allowing you to tweak your most recent commit with […]

April 28, 2023

My Journey: Building and Selling an AI Itinerary App

I’ll be sharing the story of my entrepreneurial journey – from ideating and developing an AI-driven itinerary app to eventually getting it acquired. It’s a tale of passion, persistence, and learning valuable lessons along the way. The Idea and Market Research: I started by identifying a problem faced by travelers: the time-consuming and often tedious […]

March 21, 2023

Create a nextjs app with chatgpt api

OpenAI’s ChatGPT is a powerful language model that can be used to create engaging chatbots, virtual assistants, and content generators. In this blog post, we will explore how to integrate ChatGPT into a Next.js application using the OpenAI Node.js library. We will provide example code to demonstrate how to make API requests and process responses […]

February 27, 2023

Optimizing your components with useSignal

State management is a fundamental part of building React and Preact applications. The useState hook is the most common way to manage state in React components, but there’s a new kid on the block that’s worth considering: useSignal. useSignal is part of the @preact/signals library, which provides a way to manage state using reactive principles. […]

February 19, 2023

Adding lang attribute to html tag in Next.js

The lang attribute in HTML specifies the language of the content of a web page. It is important to have the lang attribute set correctly on a web page for the following reasons: Accessibility: The lang attribute helps screen readers and other assistive technologies identify the language of the content and read it correctly for […]

February 13, 2023

20 Essential Terminal Commands for Every Programmer

As a programmer, the terminal is an indispensable tool for managing files, executing commands, and automating tasks. Whether you’re working on a Linux, macOS, or Windows machine, the terminal provides a consistent interface for interacting with the underlying operating system. We’ll cover 20 essential terminal commands that every programmer should know. These commands are the […]

February 11, 2023

Passing props to props.children in a React functional component

Passing props to props.children in a React functional component is a way of passing data down to multiple child components at once. The props.children property is a reference to the child elements that are contained within the component’s JSX tag. Here’s an example of how to pass props to props.children in a functional component: import […]

February 08, 2023

Aborting a fetch request in React using AbortController

In today’s fast-paced digital world, users expect web pages to load quickly and efficiently. When making network requests, such as with the fetch API, it’s important to ensure that the request is only sent and processed when necessary. One common scenario where aborting a fetch request is important is when a user navigates away from […]

February 01, 2023

Using “currentColor” Fill in SVG

Scalable Vector Graphics (SVG) has become an essential part of modern web design, offering a wide range of features to create engaging and interactive graphics. One of these features is the "currentColor" fill option, which can simplify the process of changing the color of your graphics while maintaining a consistent look and feel. The "currentColor" […]

February 01, 2023

Remove techinasia paywall

2 Years ago, I wrote a script to remove techInAsia paywall with google chrome extension, where you can download from my repository: https://github.com/maxlibin/nopaywalltechinasia/releases/tag/v0.03-1 Surprisely still works today 2023

January 10, 2023

Use vim as default Git commit message

When you doing git merge in terminal sometime you get annoyed by the default merge message editor that git provided, most of the time is in nano and sometime because you are so pro in vim editor you type too fast and accidently append the usual comands to nano. This annoyed me alot, so you […]

July 24, 2021

How to get all Singapore startups, startups owner, investors profiles for free

Recently I was reading some article and happened to came across this website https://www.startupsg.gov.sg, right is a website to showcase startups based in Singapore. In the website, there are a few directories such as startups, investors and profiles: https://www.startupsg.gov.sg/directory/startups/ As you can see the infos are protected on UI part, when you click disclosed funding […]

May 30, 2020

Setting up fullStack web app for React and Go Lang

This is a guide on how to setup a web app with Go/GoLang, React and MongoDB Assuming you have already installed Go language and NodeJS in you machine. If not please install with the links above. A the time of writing I am using go version go1.14.2 darwin/amd64, and Nodejs v13.8.0 So the first thing […]

March 03, 2020

Alias git to pull current branch

Alias git to pull current branch Git 2.22 onwards has a current branch flag, with git branch —show-current allows you to see which brach you are at now, sometime you want to pull current branch changes, and the easiest config in my opinion is to set a alias in your bash_profile or zshrc without messing […]

January 26, 2020

Looping in bs-emotion

If you like to do a loop in bs-emotion for list of classes and do something, for example different background colors for class of name 1 – 10. .class_1 {background-color: …} .class_2 {background-color: …} .class_3 {background-color: …} .class_4 {background-color: …} here’s how: First you create a loop function with list of colors that you want […]

December 08, 2019

let%Everything ReasonML

let%Anything is a really cool module for ReasonML, Which allows you to create a module and use as with let%Module, lets take a look how to use. Since buckleScript have upgraded to 7++ by default and I am using bs-let for demo: Create a module and method that you like, with let_. Here I create […]

September 24, 2019

Built job portal web app with reasonML/ReasonReact, expressjs and mongoDB

I have added a demo on how I use ReasonMl/ReasonReact with expressJs and mongoDB, you can see how I use Atdgen for sharing types from frontend, reasonML and backend, expressjs/javascirpt types. You can see how I use bs-emotion instead of css, or sass to style the components. you can see the repo on: https://github.com/maxlibin/ParentalJobs This […]

June 14, 2019

Writing css on ReasonReact with oCaml

Recently I was working quite a bit on ReasonML / ReasonReact projects, and we moved from writing old approach of writing external CSS to inline-css with bs-emotion (using oCaml syntax directly). Its really easy to use css or sass / scss into ReasonReact components, you can import them the same way you import with from […]

March 15, 2019

Higher order component for ReasonReact

A higher order component is basically a reusable component which allows you to takes in another component and return a new component. To recap about higher component check our my older post here In ReasoML higher order function are called "Functors" which takes in a module type and returns a module type, functors are written […]

December 08, 2018

Better way to decode JSON in ReasonML/ReasonReact

Recently I was working on some reasonml/ReasonReact project which required to request data in JSON format from an API endpoint, well there are some BuckleScript decoders such https://github.com/glennsl/bs-json which is the more popular one, the way you decode is pretty easy: point = { x: int, y: int }; let point = json => Json.Decode.{ […]

October 08, 2018

fast piping in reasonml

fast piping in reasonml fast piping allow you to transform your function code into more readable syntax, imaging you have human(person(age())) this is very inconvenience to see. with piping you can do it like this: age ->person ->human which is exactly the same as human(person(age())) there are 3 different pipes as I understand you can […]

August 29, 2018

Convert React project to ReasonReact project

Recently I converted one of my old React project while studying React from Udacity sometime back, Since I am reading ReasonML recently so I thought I might as well convert to ReasonML language or ReasonReact, you can find it here. MyRead ReasonReact

August 15, 2018

optional chaining in javascript

Imaging if you need to access deep level of property and you are not sure that if such properties exists deep down, you are doing something like books && books.book && books.book.authors && books.book.authors.author This is really difficult to read and understand sometime. there is something called optional chaining in javascript proposal which you can […]

Top 6 Most Recommended Developer Books

The Pragmatic Programmer

by Dave Thomas, Andy Hunt

Check out this book on Amazon)}

The Pragmatic Programmer is one of those rare tech audiobooks you'll listen, re-listen, and listen to again over the years. Whether you're new to the field or an experienced practitioner, you'll come away with fresh insights each and every time. Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories. Now, 20 years later, this new edition re-examines what it means to be a modern programmer. Topics range from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse.

Published: 2019

Genre: Programming

Cover of The Pragmatic Programmer

The Pragmatic Programmer

Cover of Clean Code: A Handbook of Agile Software Craftsmanship

Clean Code: A Handbook of Agile Software Craftsmanship

Cover of Working Effectively with Legacy Code

Working Effectively with Legacy Code

Cover of Introduction to Algorithms

Introduction to Algorithms

Cover of Eloquent JavaScript

Eloquent JavaScript

Cover of The Road to React

The Road to React