Skip to content

Instantly share code, notes, and snippets.

@Foadsf
Foadsf / README.md
Created May 28, 2025 19:14
A summary of the challenges faced and lessons learned while installing Heimdall on macOS Monterey, including the use of an unofficial signed version to bypass System Integrity Protection (SIP) issues.

Installing Heimdall on macOS Monterey: A Troubleshooting Guide

Background

Heimdall is a cross-platform, open-source tool used for flashing firmware onto Samsung devices. While attempting to install Heimdall Suite 1.4.0 on a MacBook Pro running macOS Monterey (12.7.6), I encountered an installation failure. The official package tried to install files into the system volume, which is protected by macOS’s System Integrity Protection (SIP), resulting in the error: "The package is attempting to install content to the system volume."

Challenges

  • SIP-Related Failure: The official Heimdall Suite 1.4.0 package (released in 2014) attempted to install files into SIP-protected directories like /System/Library/Extensions and /usr/bin. SIP, introduced in macOS El Capitan (2015), blocks such modifications, causing the installation to fail.
  • Invalid Package Path Error: When I switched to an unofficial signed version (1.4.1), I initially encountered an "invalid package path" error. This happened be
@Foadsf
Foadsf / WSL-Navigation-Guide.md
Last active May 23, 2025 08:10
Windows batch script to navigate CMD to WSL filesystem paths by converting POSIX paths to UNC and using pushd

WSL Navigation Guide

Overview

goWSLPath.cmd is a Windows batch script that allows seamless navigation from Windows Command Prompt to WSL (Windows Subsystem for Linux) filesystem paths. It automatically detects your WSL distribution, converts POSIX paths to Windows UNC paths, and uses pushd to map them to drive letters.

Usage

goWSLPath.cmd 
@Foadsf
Foadsf / openfoam-termux-installation-guide.md
Last active May 22, 2025 21:40
A concise guide documenting the steps, issues, and lessons learned when installing OpenFOAM on Termux.
@Foadsf
Foadsf / latex-windows-vscode-setup.md
Created May 11, 2025 13:18
Complete step-by-step guide for setting up LaTeX on Windows with MiKTeX, VS Code, and automatic formatting using latexindent

Complete LaTeX Setup Guide for Windows with VS Code

This guide will help you set up a complete LaTeX environment on Windows with MiKTeX, VS Code, and automatic formatting with latexindent.

Prerequisites

  • Windows 10/11
  • Package manager (Chocolatey, Winget, or Scoop)
  • VS Code (or install it during this process)
@Foadsf
Foadsf / comparing-scilab-mingw-c-integration-methods.md
Created April 25, 2025 10:25
Comparison of techniques (Gateway/addinter vs. link/call) for integrating Scilab with MinGW-w64 GCC compiled C/C++ code on Windows.

Comparison of Scilab-MinGW C/C++ Integration Methods

This Gist compares five different approaches demonstrated in various GitHub repositories for integrating C/C++ code with Scilab on Windows using the MinGW-w64 GCC compiler toolchain. The goal is to understand the trade-offs and identify potentially clean, concise, and canonical methods.

Repositories Analyzed:

  1. Foadsf/scilab-c-cpp-mingw-example
  2. Foadsf/scilab-mingw-c-gateway-mwe
  3. Foadsf/minimal-scilab-c-gateway
  4. Foadsf/scilab-mingw-module (Note: URL points to my_foo6, seems related)
@Foadsf
Foadsf / scilab-c-mingw-integration-methods.md
Created April 25, 2025 09:41
A comprehensive comparison of four approaches for integrating C code with Scilab on Windows using MinGW-w64/MSYS2, highlighting trade-offs in complexity, flexibility, and implementation details.

Scilab-C Integration Methods Comparison (MinGW/MSYS2 on Windows)

This document compares four different approaches for integrating C code with Scilab on Windows using the MinGW-w64 GCC compiler from MSYS2. Each approach offers different trade-offs in terms of complexity, flexibility, and maintainability.

Overview of the Four Approaches

  1. minimal-scilab-c-gateway: A minimalistic example of a Scilab C gateway using the modern API.
  2. scilab-mingw-c-gateway-mwe: A Minimal Working Example (MWE) for C/C++ gateways with Scilab.
  3. scilab-mingw-c-call-minimal-example: Direct DLL calling using Scilab's link and call functions.
  4. scilab-mingw-module (my_foo6): A more complex gateway example demonstrating multiple input/output types.
@Foadsf
Foadsf / taskjuggler-lessons-learned.md
Created April 18, 2025 09:32
TaskJuggler 3.8.1 Lessons Learned: Tips, Tricks, and Workarounds A comprehensive guide to using TaskJuggler 3.8.1 with modern Ruby versions, addressing common syntax issues, bugs, and report generation challenges.

TaskJuggler 3.8.1 Lessons Learned

Introduction

TaskJuggler is a powerful project management tool that uses a text-based syntax to define project plans, resources, and tasks. While the software is mature and feature-rich, its latest version (3.8.1 as of 2024) has some quirks and compatibility issues, especially with newer Ruby versions. This document shares practical lessons learned while working with TaskJuggler 3.8.1.

Basic Project Structure

TaskJuggler 3 has a specific file structure and syntax that differs significantly from version 2. Here's the basic structure of a TaskJuggler 3 project file:

using System;
public class HelloWorld
{
public static void Main(string[] args)
{
Console.WriteLine("Hello, MSBuild!");
}
}

Force Delete Files/Folders on Windows with IObit Unlocker and a CMD Batch Script

This Gist shares how to install IObit Unlocker using Chocolatey and use a CMD batch script to force delete stubborn files or folders on Windows, including a verification step. This was tested on a minimal Windows 10 setup (Tiny10) on April 14, 2025.

Step 1: Install IObit Unlocker via Chocolatey

  1. Ensure Chocolatey is installed:
    choco --version
@Foadsf
Foadsf / Install-Winget.ps1
Created April 10, 2025 12:44
Complete script to install Windows Package Manager (winget) on Tiny10/LTSC without Microsoft Store
# Complete Winget Installer for Tiny10/LTSC
# Run as Administrator
# Created on: April 10, 2025
# Ensure we're running with admin rights
if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]"Administrator")) {
Write-Host "This script requires administrative privileges. Please run as Administrator." -ForegroundColor Red
exit 1
}