Debugging LaTeX: Fixing `\hl{}` Highlights and Dynamic `\ref{}` Errors A practical guide to resolving broken hyper-references, space swallowing, and ?? rendering bugs in academic manuscripts. When revising academic manuscripts, highlighting newly added text using the soul package's \hl{} command is standard practice. However, nesting internal dynamic cross-references like \ref{sec:label} inside \hl{} often triggers unexpected layout glitches and broken references. The Root Cause The soul package parses text character-by-character to compute line breaks and highlighting geometry. This low-level token expansion leads to two primary issues: Macro Expansion Failure: \hl{} prevents \ref{} from expanding to read section numbers from the .aux file, resulting in broken ?? symbols. Space Swallowing: Non-breaking tildes ( ~ ) and whitespace around macro definitions get stripped, running words directly into each other. ...
Posts
Showing posts from 2026
- Get link
- X
- Other Apps
How I Resolved Python Document Conversion Failures Without External Packages While generating a 24-point review response document for a journal submission, missing C-compiler tools in my local MSYS2 setup triggered ModuleNotFoundError and PEP 668 errors when installing python-docx . Here is how I bypassed the installation blockade and created the Word document using pure Python. 1. Identifying the Root Cause The library python-docx depends on lxml , which requires compilation during installation. In restricted terminal environments, pip fails to build these C-extensions, halting the entire workflow. 2. The Standard Library Strategy Instead of troubleshooting environment dependencies, I leveraged the fact that Microsoft Word natively renders HTML. Using Python's built-in html module, I built a zero-dependency script that formats data into styled HTML tables. 3. Execution Flow Escaped text content using html...
- Get link
- X
- Other Apps
The successful implementation of push notifications in our Android entertainment application—verified using the Firebase Console and successfully delivering alerts to the notification tray—relied on a clear, structured methodology. We can systematically mirror and achieve this exact same architecture for an HTML-based Blogspot platform using the following methodological steps: Platform Initialization & SDK Setup: Just as the native Android app imports Firebase libraries via Gradle and google-services.json , the HTML-based Blogspot site integrates Firebase by injecting the core JavaScript SDKs directly into the custom XML template layout <head> section. Background Handler Configuration: While native Android utilizes a subclass of FirebaseMessagingService to manage background states and payload delivery, the web-tier Blogspot architecture achieves this by deploying a dedicated firebase-messaging-sw.js service worker script to handle push events independently o...
- Get link
- X
- Other Apps
Methodical Guide to Integrating Firebase Messaging & Fixing Gradle Plugin Errors in Android Integrating Firebase Cloud Messaging (FCM) into an Android application is essential for handling push notifications. However, when working with Kotlin DSL ( build.gradle.kts ) in Android Studio, misconfiguring plugin declarations can trigger resolution errors. This tutorial provides a systematic, step-by-step approach to properly configure your build files and successfully implement Firebase Messaging. Step 1: Configure the Project-Level (Root) Build File Before any module can use the Google Services plugin, the root project must recognize it and specify its version. Open your root-level build.gradle.kts file. Inside the plugins block, add the Google Services plugin declaration with apply false : plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.android) apply false id("com.google.gms.google-servi...
- Get link
- X
- Other Apps
Android Studio: Ctrl + F9 vs. Clean & Rebuild Project If you have spent any time developing Android apps in Kotlin or Java, you have likely run into this frustrating scenario: you paste new image assets into res/drawable/ or add new view IDs in XML, but Android Studio keeps highlighting them in red with "Unresolved reference" . Understanding how Gradle builds your project—and knowing when to use Ctrl + F9 versus a full Clean & Rebuild —will save you hours of debugging phantom build errors. 1. Ctrl + F9 (Make Project) Pressing Ctrl + F9 (or Cmd + F9 on macOS) performs an incremental build . Gradle checks what changed since the last build and compiles only those specific files. Best Used For: Editing Kotlin or Java logic inside existing classes. Adjusting layout properties like padding , margin , or textColor . ...
- Get link
- X
- Other Apps
A Step-by-Step Methodological Guide to Thesis Revisions and Version Control in Microsoft Word Managing corrections following a pre-data presentation, seminar defense, or peer review is one of the most critical stages of graduate research. Maintaining internal consistency, preserving structural integrity, and providing transparent proof of corrections to supervisors require a methodical editorial workflow. This guide outlines a standard academic workflow for handling manuscript revisions using Microsoft Word's built-in version control and tracking features. Phase 1: Establishing File Architecture and Version Control Before implementing panel corrections, establish an immutable baseline file to protect against corruption or accidental loss of complex mathematical notation. Baseline Preservation: Retain the exact document submitted to the panel as [Institution]_[Degree]_Thesis_ORIGINAL_[Milestone].docx . Active Wor...
- Get link
- X
- Other Apps
How I Built an AI-Powered Anti-Counterfeit Drug Verification System with Python & Gradio A comprehensive tutorial on combining official registry lookups, TF-IDF character n-grams, Random Forest, Anomaly Detection, and barcode scanning into a real-time web application. Author: Idris Abdulhamood | Category: Machine Learning / HealthTech 1. The Problem: Counterfeit Pharmaceuticals Counterfeit and substandard medications pose a severe threat to public health worldwide, particularly in developing economies. Fraudulent actors often replicate genuine packaging while altering active ingredients, spoofing brand names, or manufacturing fake registration numbers (e.g., NAFDAC Registration Numbers). While official regulatory agencies maintain digital registries, manual verification can be slow, and traditional search engines fail when dealing with minor typos, corrupted registration formats, or novel counterfeit mutations. ...
- Get link
- X
- Other Apps
🛡️ Building a Dual-Layer AI Engine for NAFDAC Drug Verification Combining Exact Database Lookups with Machine Learning Fraud Inference for Real-Time Pharmaceutical Anti-Counterfeiting. 1. System Architecture: The Dual-Layer Verification Flow Standard verification systems rely solely on exact string matching against government registries. However, counterfeiters frequently exploit this by using slight spelling variations or reusing authentic codes on fake packaging. To solve this, we built a Dual-Layer Verification Architecture : 🟢 Layer 1: Direct Registry Lookup (Deterministic) Performs an instant hash/normalized check against official NAFDAC records. If an exact match is found, it immediately confirms the item as AUTHENTIC (100% Confidence) without triggering AI compute overhead. 🟡 Layer 2: Machine Learning Inference Engine ...
- Get link
- X
- Other Apps
Why & How We Generated Synthetic Counterfeit Data for AI Drug Verification 1. The "Why": Solving the Positive-Class Bias Problem When building an AI system to detect counterfeit pharmaceuticals, you face an immediate data challenge: official government registries (like the NAFDAC Greenbook) only record authentic, approved products. If you train a Machine Learning model exclusively on genuine drug records: The AI Learns Nothing About Fraud: It only sees "good" data, so it defaults to predicting that every drug is 100% authentic. Extreme Class Imbalance: Without negative samples (counterfeits), supervised classifiers like Random Forest cannot establish a decision boundary to separate genuine products from fraudulent ones. To teach an AI how to spot fake drugs, you must show it what fake drugs look like. Because there is no public "official database of counterfeit dr...
- Get link
- X
- Other Apps
🕷️ Scraping NAFDAC Greenbook from A to Z: How I Extracted 8,600+ Official Records into CSV Author: Idris Abdulhamood | Category: Web Scraping, Data Engineering & Automation The NAFDAC Greenbook ( greenbook.nafdac.gov.ng ) is the official public portal for all approved drugs, medical devices, herbals, and biologics registered by the Nigerian government. For data analysts, researchers, or software engineers, having this database in a clean, structured .csv format opens up endless possibilities—from fraud detection systems to market research. However, getting this data off the website and into an Excel sheet wasn't as simple as running pandas.read_html() . Here is the complete journey of how I scraped the entire portal from A to Z—including the wall I hit, why fast scripts failed, and the solution that successfully captured all 8,608 official entries . 🛑 P...
- Get link
- X
- Other Apps
How to Update a YouTube Channel Link in an Existing Android App Using Kotlin How to Update a YouTube Channel Link in an Existing Android App Using Kotlin Author: Engineer Abdulhameed Idris Adedamola Introduction One of the most common maintenance tasks in Android application development is updating external links after deployment. Businesses frequently change their official websites, YouTube channels, or social media accounts, and mobile applications must also be updated to reflect those changes. In this tutorial, we will update the YouTube channel link inside an existing Android application built with Kotlin without rebuilding the entire application. Scenario: The client migrated to a new YouTube channel and requested that the application open the new channel whenever users tap the YouTube icon. Step 1: Open the Android Project Launch Android Studio and open the existing project. Allow Gradle to finish syncing before making any modifications. S...
- Get link
- X
- Other Apps
How to Transfer Shinhan Financial Certificate from PC to SOL Global App (Step-by-Step Guide 2026) Disclaimer: This is an independent educational tutorial and is not affiliated with or endorsed by Shinhan Bank. All trademarks belong to their respective owners. Introduction Transferring your Shinhan Financial Certificate from PC to mobile allows you to securely access banking services using the SOL Global app. This guide explains the process step by step in a simple and safe way. Step 1: Login to Shinhan Internet Banking Open the official Shinhan Internet Banking website Log in with your account credentials Go to Certificate Center or Security Section Step 2: Open Certificate Management Select Financial Certificate Management Complete identity verification if required Proceed with system security checks Step 3: Complete YesKey Verification A verification code will appear on your screen You will receive an SMS on your registered phone num...
- Get link
- X
- Other Apps
Mastering Python Functions: Building a Dynamic Ticket Revenue Calculator Mastering Python Functions: Building a Dynamic Ticket Revenue Calculator Python Fundamentals • Clean Code • Tutorial When you first start learning Python, it’s easy to get comfortable writing linear, step-by-step code. You assign some variables, run a calculation, print the result, and call it a day. But what happens when your data changes? What if your theater goes from selling $7.99 matinee tickets to $16.99 IMAX blockbusters? If you hardcode your values, your code breaks—or worse, you're forced to rewrite it constantly. In this post, we’ll look at the evolution of a Theater Ticketing Calculator to see how Python functions allow you to write reusable, dynamic, and clean code. Step 1: The Basic Fixed-Price Function Let’s start simple. Imagine your theater has a flat rate of $7.99 per ticket. ...
- Get link
- X
- Other Apps
Fixing the "Python Can't Open File" Error in Windows Command Prompt While learning Python, I encountered a common error when trying to run my first Python script from the Command Prompt. Instead of executing the program, Python displayed an error message saying it could not find the file. The Problem I tried running my Python script using: python C:\Users\X1\Desktop\HelloWorld.py But Python returned an error similar to: python: can't open file '...HelloWorld.py': [Errno 2] No such file or directory This error usually means Python cannot locate the specified file path, even though the file exists on the computer. What I Did to Fix It Instead of running the script directly from the current directory, I first navigated to the folder containing the file. cd Desktop Then I executed the script: python HelloWorld.py The Result hello world The program ran successfully, confirming that Python was installed correctly and the script...
- Get link
- X
- Other Apps
I-GOA Feature Selection for Multimodal Biometrics Why I Added Feature Selection Using I-GOA in My Biometric System Introduction This article discusses the motivation behind integrating feature selection using the Improved Golf Optimization Algorithm (I-GOA) in a multimodal biometric recognition system based on fingerprint and palm vein traits. Disclaimer: This article presents general concepts and methodology discussions from an ongoing MPhil research project titled “Development of an Improved Golf-Optimization-Based Feature Selection Technique for Palm Vein and Fingerprint Recognition System.” The content is shared strictly for academic, educational, and research discussion purposes only. Detailed implementation, unpublished results, and proprietary research findings are not disclosed. Questions and Answers Why did you include a feature selection stage when some biometric system guides do not show it? Many biometric system diagrams provide simplified...
- Get link
- X
- Other Apps
🚨 How to Prevent Leaking Your Android Keystore (.jks) on GitHub One common but dangerous mistake Android developers make is accidentally committing their keystore (.jks) file to Git. This can expose your app signing key and compromise your app on the Play Store. 🔍 The Problem Even if you delete a .jks file from your project, Git may still be tracking it. That means it can still be pushed to GitHub — which is a serious security risk. ✅ Step 1: Add .jks to .gitignore Open your .gitignore file (in the root of your project) and add: *.jks This tells Git to ignore all keystore files in your project. ⚠️ Step 2: Remove Already Tracked Files Important: .gitignore does NOT remove files that Git is already tracking. You must remove them manually. git rm --cached upload-key.jks git rm --cached app/upload-key.jks This removes the files from Git tracking but keeps them on your local machine. 🔎 Step 3: Verify It Works Check if Git is still tracking any .jk...
- Get link
- X
- Other Apps
CNN-Based Biometric Recognition Blog CNN-Based Biometric Recognition Using Palmprint and Fingerprint Images Biometric recognition systems are widely used in modern security because they provide reliable identity verification based on unique human traits such as fingerprints and palmprints. However, unimodal systems often suffer from limitations such as noise sensitivity, variability in data, and reduced performance under poor image quality. Approach This work presents a Convolutional Neural Network (CNN) approach using two biometric modalities: palmprint and fingerprint images. The objective is to develop and evaluate independent CNN models for each modality as a foundation for future multimodal biometric fusion. Datasets and Preprocessing The BMPD dataset was used for palmprint recognition, while the FVC2004 DB1-B dataset was used f...
- Get link
- X
- Other Apps
Modality-Adaptive Brain Tumor Segmentation Modality-Adaptive Brain Tumor Segmentation in Medical AI Introduction Brain tumor segmentation is a key task in medical image analysis where AI models are used to detect and outline tumor regions in MRI scans. These systems often rely on multiple MRI modalities such as T1, T2, and FLAIR to achieve high accuracy. Challenge in Real Clinical Environments In real-world healthcare settings, MRI data is often incomplete. Not all imaging modalities are available for every patient. This creates a major challenge because most deep learning models depend on full multi-modal input. Need for Adaptive Models To address this limitation, modern AI systems are being designed to work with partial or single-modality MRI inputs. These models aim to maintain stable performance even when some data sources are missing. Work with single MRI modality input Handle any combination of available modalities Maintain consistent segmentation ...
- Get link
- X
- Other Apps
Feature Selection Using GA, PSO, and ACO Feature Selection Using Metaheuristic Algorithms: GA, PSO, and ACO 1. Introduction In machine learning, datasets often contain many features, but not all of them are useful. Feature selection helps identify the most relevant variables that improve model performance while reducing noise and complexity. 2. What is Feature Selection? Feature selection is the process of selecting a subset of important variables from a dataset. It helps improve accuracy, reduce overfitting, and lower computational cost. 3. Wrapper-Based Feature Selection All three methods discussed (GA, PSO, ACO) are wrapper-based approaches. This means a machine learning model is used to evaluate each feature subset using a performance metric such as AUC-ROC. 4. Genetic Algorithm (GA) Genetic Algorithm is inspired by natural evolution. It uses selection, crossover, and mutation to evolve better feature subsets over generations. 5. Particle Swarm ...
- Get link
- X
- Other Apps
Python Interpreter vs Compiler Explained Python Interpreter vs Compiler Explained Python is often described as an interpreted language, but the way it works is a bit more advanced than a simple interpreter model. 🐍 Python Interpreter Python executes code using an interpreter . This means: Code is executed line by line Errors appear during execution Programs run directly without full pre-compilation When you run a Python file, the interpreter reads and executes it immediately. ⚙️ Compiler (Traditional Meaning) A compiler works differently: It converts the entire program into machine code at once Execution happens after compilation Common in languages like C and C++ 🧠 How Python Really Works Python actually uses a hybrid approach: Your code (.py file) Compiled into bytecode (.pyc) Executed by the Python Virtual Machine (PVM) So, Python combines both compilation and interpretat...
- Get link
- X
- Other Apps
Optimizing Deep Learning Libraries for Edge-AI on Mobile GPUs Optimizing Deep Learning Libraries for Edge-AI on Mobile GPUs ⚡ Edge-AI performance is not just about models — it’s about libraries. Deploying Deep Learning (DL) models on edge devices is constrained by compute, memory, and energy efficiency. On mobile GPUs, performance often depends more on backend optimization than model architecture. Key Libraries cuBLAS (CUDA Basic Linear Algebra Subprograms) cuDNN (CUDA Deep Neural Network library) TensorRT (Tensor Runtime) from NVIDIA Key Insight There is no universal best library. Performance depends on: Input size Model type (CNN vs Vision Transformer) Layer configuration Most deep learning workloads ultimately rely on matrix operations (GEMM), making low-level optimization critical. Takeaway ...
- Get link
- X
- Other Apps
🚀 How I Successfully Submitted My App to Google Play Review (Step-by-Step Process) I just submitted my app update Hierarchy Star Reports v1.4 to Google Play, and it is now officially in review on Google Play Console. Here’s the exact step-by-step process I followed (my deployment methodology / “mergogoly” approach): 🧩 Step 1: Fixed app identity issues Ensured app name matches everywhere (Play Console + strings.xml) Verified no old names like “DALogos” remained in the project 🎨 Step 2: Fixed app icon mismatch Confirmed launcher icon in mipmap/ matches Play Store icon Checked both ic_launcher and ic_launcher_round Ensured installed app icon matches store listing 🔢 Step 3: Updated versioning Increased versionCode (4 → 5) Updated versionName (1.3 → 1.4) Prevented duplicate build upload errors 🔐 Step 4: Proper signing configuration Used correct release keystore (upload-key.jks) Built a signed release AAB 📦 Step 5: Built ...