Translate This Blog

Monday, October 27, 2025

Resepi Gulai Kambing Kenduri Kahwin

 Bahan A

1.4 biji bawang merah

2. 3 ulas bawang putih

3. 1/2 inci lengkas

4. 1/2 inci halia

5. 3 batang serai

6. 3 biji cili kering


Bahan lain

1. daging kambing yg bercampur tulang. 1/2 kg

2. ubi kentang. 2 biji

3. kelapa goreng yg di tumbuk atau kerisik


bahan A tambah air sikit kisar sampai halus.


bahan tumis

1. 4 sekawan.

2. 3 ulas bawang merah

2 ulas bawang putih


bahan rempah

1 rempah kerutuk - 2 sudu

2. rempah gulai Kelantan - 4sudu


Tumis bahan tumis sampai keperangan. barulah masukkan bahan kisar. Tumis sampai pecah minyak.Gaul bahan rampah , campur sedikit air. gaul sampai rata. Rempah yg di gaul tadi masukkan kedlm kuali bahan yg sedang di tumis tadi yg telah pecah minyak. Gaul lagi , maskant sampai pecah minyak. masak dgn api perlahan dan selalu di kacau supaya tidak hangit. Lepas tu masukkan tulang dan daging kambing . gaul sebati. lepas tu masukkan air utk masak sampai daging empuk. masukkan 1 keeping asam keeping, 3/4 kerek gula melaka secukup rasa. selepas daging separuh empuk baru letakkan santan. santan pekat campur santan cair. masak lagi sampai daging empuk. reneh dgn api slow.tambah budu dan garam secukup rasa. bila kering sikit baru tambah kentang. tambah kelapa goreng yg di tumbuk ( atau kerisik) secukup rasa.tunggu sampai pecah minyak lagi.


Tuesday, October 21, 2025

Resepi Satar Ikan

Bahan2nya

1. 4 bawang putih

2. 9 bawang merah

3. Isi kelapa putih

4. 4 sudu kecil garam

5. 10 -12 sudu gula pasir

6. 5 cili merah

7. 20 cili api

8. isi ikan

9. Daun kesum.

10. 1/2 inci halia

11. 1 sudu  cili kering

12. 5 sudu air asam jawa

13. 

Masukkan semua termasuk ikan, kisar. Kecuali kelapa parut. Nisbah isi ikan dgn kelapa parut hendaklan sama. 1:1. 1 mangkuk isi ikan makanya 1 mangkuk kelapa parut.

Saturday, October 11, 2025

Resepi Lok Ching @ Satey Ikan

CARA BUAT LOK CHING / SATE IKAN


1.250 g isi ikan Selayang

2. 100 g tepung ubi

3. sudu kecil garam

4. 1 sudu kecil baking soda


cara. kisar isi ikan dgn ais, masukkan garam, baking soda, tepung ibi kayu.

gaul. Adunan tepung dgn ikan ini hendaklah lebik, ataupun adunan tepung dgn ikan dalam nisbah 2:1. 500g ikan dgn 250 g tepung. haa mcm tuh. tapi ikuat rasa2 sendiri. tidak pekat.lebihkan ikan dari tepung.. bentuk shape bulat2 letak dlama minyak. then goreng separuh masak.guna api sederhana. cucuk lidi satey dan bakar. 1 cucuk 5 bebola.


pembuatan sos.

1. segemgam cili padi kering

2. lima labu bawang putih jeruk

3. akar ketumbar


1-3 kisar

masukkan bahan kisar dalam kuali, 3 keeping nesan karat.masak hingga mendidih. bila mendidh masukkan gula kabung, kalua tak de guna gula biasa. masukkan garam. masukkan cuka makan. kena ada pedas manis masam, masin tu sikit je. masukkan sedikit air bancuhan tepung jagung.masakkan sampai air mcm jernih,. bila dah masak masukkan daun ketumbar.masukan sedikit pewarna merah secukup rasa supaya ccolek warna merah.


Wednesday, January 29, 2025

Ubuntu vs Truenas Scale for nextcloud

 Both TrueNAS SCALE and Ubuntu are good options for running Nextcloud, but the best choice depends on your needs and environment. Here's a comparison:


TrueNAS SCALE


✅ Best for: If you already have a TrueNAS SCALE setup and want an easy-to-manage storage solution.


Easy Deployment: Nextcloud can be installed as an app/container via TrueCharts or manually in a Docker container.


ZFS Storage Integration: TrueNAS is built around ZFS, providing excellent data protection and snapshots.


Web UI Management: Easier for non-Linux users with a built-in GUI for app management.


Efficient Storage Usage: If you plan to store large amounts of data, TrueNAS is optimized for this.


Automatic Backups & Snapshots: Built-in ZFS snapshots and backup options.



⚠️ Downsides


Limited customization compared to a full Linux server.


Containerized Nextcloud might have some configuration restrictions.


Fewer community resources for troubleshooting compared to Ubuntu.




---


Ubuntu


✅ Best for: If you need more flexibility, control, and customization over your Nextcloud setup.


Full Control: You can install Nextcloud via LAMP stack, Snap, Docker, or using Nextcloud All-in-One (AIO).


More Community Support: Easier to find guides, fixes, and updates.


Better for Advanced Users: If you want to tweak performance settings, install additional services, or optimize caching.


Supports External Storage Easily: Can integrate with ZFS, Btrfs, or traditional storage solutions.



⚠️ Downsides


Requires manual setup of Apache/Nginx, MySQL/MariaDB, PHP, Redis, and SSL.


No built-in storage management like TrueNAS (but you can use ZFS separately).


Need to handle backups and updates manually.




---


Final Recommendation


If you already have a TrueNAS SCALE server, it's easier to run Nextcloud there.


If you want full flexibility and plan to run Nextcloud as a central part of your system, Ubuntu is a better choice.



For a balance of both, you could install Ubuntu as a VM on TrueNAS SCALE and set up Nextcloud inside it. That way, you get the power of ZFS storage with full control over Nextcloud.


Installing Ubuntu as a VM on TrueNAS SCALE is a great way to have full control over Nextcloud while benefiting from TrueNAS's powerful ZFS storage. Here’s a step-by-step guide:



---


Step 1: Prepare TrueNAS SCALE for VM Creation


1. Log in to TrueNAS SCALE via your web browser.



2. Go to "Virtualization" → Click "Add"



3. Ensure Virtualization is Enabled in TrueNAS SCALE settings if needed.





---


Step 2: Download Ubuntu ISO


1. Visit: Ubuntu Official Site



2. Download the Ubuntu Server ISO (recommended for a lightweight installation).



3. Upload the ISO to TrueNAS:


Go to "Storage" → "Datasets" → Create a Dataset for ISOs.


Go to "Virtualization" → "ISO Images" → "Upload"


Select and upload the downloaded Ubuntu ISO.






---


Step 3: Create a VM in TrueNAS SCALE


1. Go to "Virtualization" → Click "Add"



2. Enter VM Name (e.g., Ubuntu-Nextcloud).



3. Set Resources:


CPU: At least 2 cores (4+ recommended).


RAM: 4GB minimum, 8GB+ recommended for Nextcloud.


Boot Method: UEFI.




4. Select Install Media:


Choose the Ubuntu ISO you uploaded earlier.




5. Create Storage (Virtual Disk):


Add a virtual disk (e.g., 50GB+ for Ubuntu, more if needed for Nextcloud).


Set it to VirtIO for better performance.




6. Networking:


Set NIC Type to VirtIO (recommended for better performance).


Ensure it connects to your network (e.g., Bridged Mode to get an IP on your LAN).




7. Confirm and Start the VM.





---


Step 4: Install Ubuntu


1. Open the VM console in TrueNAS and start the VM.



2. Follow the Ubuntu installation steps:


Select Language & Keyboard.


Choose "Install Ubuntu Server".


Select disk (use the entire virtual disk).


Configure a username/password.


Enable OpenSSH Server (optional, but recommended).


Let the installation complete.




3. Reboot the VM after installation and remove the ISO from boot options.





---


Step 5: Install Nextcloud on Ubuntu VM


Once Ubuntu is installed, you can set up Nextcloud using one of these methods:


1. Manual Install (LAMP Stack)


sudo apt update && sudo apt upgrade -y

sudo apt install apache2 mariadb-server php php-cli php-mysql php-gd php-curl php-mbstring php-xml php-zip unzip -y


Then install Nextcloud manually (Guide).



2. Nextcloud AIO (All-in-One, Docker-Based)


sudo apt install docker.io -y

sudo docker run -d --name nextcloud-aio-mastercontainer --restart always -p 8080:8080 -v nextcloud_aio:/mnt/docker_aio nextcloud/all-in-one:latest


Then visit http://<your-vm-ip>:8080 to configure.



3. Nextcloud Snap (Easy Install)


sudo snap install nextcloud


(Easiest but less flexible).





---


Final Steps


Set up external storage in Nextcloud (e.g., mount a TrueNAS dataset).


Enable SSL (Let's Encrypt or self-signed) for security.


Configure backups (TrueNAS snapshots, Nextcloud backup plugins).



Now, your Nextcloud on Ubuntu VM in TrueNAS SCALE is ready! Let me know if you need more details.



Control 5 stpper motors with arduino - chatgpt

 

Certainly! Below is an Arduino program that sequentially rotates five stepper motors with a specified speed and stops before repeating. The program uses the AccelStepper library to control stepper motors smoothly.

Hardware Requirements:

  • Arduino board (e.g., Uno, Mega)
  • 5 stepper motors (e.g., NEMA 17)
  • 5 stepper drivers (e.g., A4988, DRV8825)
  • Power supply compatible with motors
  • Connecting wires

Connections (for each motor using A4988/DRV8825 driver):

  • STEP → Any digital pin on Arduino
  • DIR → Any digital pin on Arduino
  • ENABLE → Connect to GND to enable (or control via another pin if needed)
  • VCC & GND → Power supply

Arduino Code:

#include <AccelStepper.h>

// Define stepper motor connections and interface type
#define DRIVER 1 // Use 1 for driver mode (A4988, DRV8825)

// Define stepper motor objects (Stepper Motor pin configuration)
AccelStepper stepper1(DRIVER, 2, 5);  // (STEP, DIR)
AccelStepper stepper2(DRIVER, 3, 6);
AccelStepper stepper3(DRIVER, 4, 7);
AccelStepper stepper4(DRIVER, 8, 9);
AccelStepper stepper5(DRIVER, 10, 11);

// Motor parameters
const int stepsPerRevolution = 200; // Adjust based on stepper motor specification
const int speed = 200;  // Speed in steps per second
const int acceleration = 100; // Acceleration in steps per second^2
const int rotationSteps = 2 * stepsPerRevolution; // Rotating 2 full revolutions
const int delayBetweenMotors = 1000; // Delay between each motor's activation (ms)

void setup() {
  Serial.begin(115200);
  
  // Configure each stepper motor
  stepper1.setMaxSpeed(speed);
  stepper1.setAcceleration(acceleration);

  stepper2.setMaxSpeed(speed);
  stepper2.setAcceleration(acceleration);

  stepper3.setMaxSpeed(speed);
  stepper3.setAcceleration(acceleration);

  stepper4.setMaxSpeed(speed);
  stepper4.setAcceleration(acceleration);

  stepper5.setMaxSpeed(speed);
  stepper5.setAcceleration(acceleration);
}

void loop() {
  // Sequentially rotate each motor
  runStepper(stepper1, "Motor 1");
  delay(delayBetweenMotors);
  
  runStepper(stepper2, "Motor 2");
  delay(delayBetweenMotors);
  
  runStepper(stepper3, "Motor 3");
  delay(delayBetweenMotors);
  
  runStepper(stepper4, "Motor 4");
  delay(delayBetweenMotors);
  
  runStepper(stepper5, "Motor 5");
  delay(delayBetweenMotors);

  // Pause before repeating
  Serial.println("Cycle Complete. Restarting...");
  delay(3000);
}

void runStepper(AccelStepper &motor, const char *name) {
  Serial.println(String(name) + " Running...");
  
  motor.move(rotationSteps); // Move forward
  while (motor.distanceToGo() != 0) {
    motor.run();
  }

  delay(500); // Pause before reversing

  motor.move(-rotationSteps); // Move backward
  while (motor.distanceToGo() != 0) {
    motor.run();
  }

  Serial.println(String(name) + " Completed.");
}

How it Works:

  1. Each stepper motor rotates 2 revolutions forward and then 2 backward sequentially.
  2. There is a 1-second delay between each motor’s operation.
  3. After all motors have completed their motion, the cycle repeats after a 3-second pause.

Additional Customization:

  • Change rotationSteps for different rotation amounts.
  • Adjust speed and acceleration for smoother motion.
  • Modify delayBetweenMotors to control the sequence timing.

Let me know if you need modifications!