Posts

Showing posts from June, 2025

Flutter beginner roadmap

  📘 Step 2: Learn Dart Fundamentals You can try this in an online DartPad: https://dartpad.dev/ 🔹 Basic Concepts: Variables & Data types Functions Conditionals and Loops Classes and Objects Null safety Collections (List, Set, Map) Would you like me to start with Dart basics now? 📱 Step 3: Learn Flutter Basics After Dart: Understand widgets ( StatelessWidget , StatefulWidget ) Layouts: Column , Row , Container , Padding Navigation between screens Forms & Input handling HTTP calls & local storage 🔁 Step-by-Step Practice Plan Day Topic Outcome 1 Dart Basics Variables, Loops, Functions 2 OOP in Dart Classes, Constructors 3 Flutter Setup + Hello World First app on emulator 4 Widgets & Layouts Design simple UI 5 State Management (setState) Counter app, input fields 6 Navigation + Routes Multi-screen app 7 API Calls (http) Fetch & display data 8+ Project/Component Development Build real features

Creating and Publishing the text2numR Package: Step-by-Step Guide

Image
I recently tried creating a simple R package— text2numR —with the help of ChatGPT. The process was surprisingly smooth and educational, especially for someone new to R package development. You can check out the finished project here: hasindu-k/text2numR . Let’s walk through how it was done, step by step:   🔧 Step 1: Start a New Package Project Open RStudio Navigate to: File > New Project > New Directory > R Package Choose a name for your package (e.g., text2numR ) Click "Create Project" 🖋️ Step 2: Add Your Functions Create your R function files inside the /R folder: encode_text.R #' Encode a string into numeric positions #' #' @param text A character string #' @return A numeric vector #' @export encode_text <- function(text) { chars <- strsplit(tolower(text), "")[[1]] match(chars, letters) } decode_text.R #' Decode numeric positions into a string #' #' @param nums A numeric vector #' @return A character strin...

Terminal commands relared to files in the Ubuntu

 🔍 Viewing and Navigating Files Command Description ls List files and directories in the current directory ls -l Long listing (with permissions, size, date, etc.) ls -a Show hidden files (those starting with . ) cd [directory] Change directory pwd Print current working directory tree View directory structure in tree form (may need sudo apt install tree ) 📁 Creating and Managing Files Command Description touch filename Create a new empty file nano filename Edit a file using nano text editor cat filename View file contents more filename / less filename Scroll through file contents cp file1 file2 Copy a file mv oldname newname Rename or move a file rm filename Delete a file rm -i filename Delete with confirmation rm -f filename Force delete without confirmation 📂 Working with Directories Command Description mkdir directory_name Create a directory mkdir -p path/to/directory Create nested directories rmdir directory_name Remove empty directory rm -r directory_name Remove direc...

Development-Testing Workflow

Follow this cycle during development: When creating a new feature : First write the factory for any new models Then write the feature test (even before the controller) Implement the controller to make the test pass When modifying a feature : First update the relevant factory if model changes Then update/add tests for the new behavior Finally implement the code changes

Use the Google Custom Search JSON API to retrieve images

 To use the Google Custom Search JSON API to retrieve images, you need two things : ✅ 1. Google API Key 🔧 Steps: Go to the Google Cloud Console. Create a new project (or select an existing one). In the left sidebar, go to APIs & Services > Credentials . Click "Create credentials" > "API key" . Copy the API Key shown — you'll use this in your code. ✅ 2. Custom Search Engine ID (cx) 🔧 Steps: Go to the  Custom Search Engine (CSE) page. Click "Get Started" . Enter a domain to search (e.g., www.google.com or leave it as *.com to search the whole web). Click "Create" . After it's created, go to the Control Panel . Under "Search engine ID" , you'll see your cx value — copy this . 🛠 Enable Image Search: In the Custom Search Engine settings (Control Panel): Go to "Basics" > Sites to search → make sure it’s set to “Search the entire web” . Go to ...

Laravel Best Practices: Building Robust and Maintainable Applications

Image
Laravel is one of the most popular PHP frameworks due to its elegance, simplicity, and developer-friendly syntax. But to fully harness Laravel’s power, developers must adhere to certain best practices that ensure their applications are secure, maintainable, and scalable. In this article, we’ll explore typical best practices for Laravel , drawing examples from a real-world scenario—an admin system handling borrow requests. 1. Use Service Classes for Business Logic Why? Keeping your controllers thin and offloading business logic to service classes promotes separation of concerns and cleaner code. public function approveRequestAction($borrowId): JsonResponse { $this->borrowService->approve($borrowId); return response()->json(['message' => 'Request approved']); } 2. Exception Handling Graceful error handling provides better developer and user experience. Use try-catch blocks and Laravel’s built-in exceptions like ModelNotFoundException . try { $th...