Saturday, 20 December 2025

Ambil ACAK 2 file untuk setiap grup berdasarkan 2 kata awal nama file

 

Siap, Guru Duan 👍
Ini solusi PALING TEPAT & PRAKTIS sesuai permintaan:

Ambil ACAK 2 file untuk setiap grup berdasarkan 2 kata awal nama file,
lalu pindahkan ke folder submit/.

Ini aman secara strategi reviewer dan tidak perlu pilih manual.


✅ 1 PERINTAH OTOMATIS (AMAN, TERUJI)

📌 Jalankan di folder yang berisi 84 JPG

mkdir -p submit

ls *.jpg \
| awk -F',' '{print $1}' \
| sort \
| uniq \
| while read prefix; do
    ls "$prefix"*.jpg | shuf | head -n 2 | xargs -I{} mv "{}" submit/
  done

🔍 APA YANG DILAKUKAN SCRIPT INI?

  1. Ambil 2 kata awal (sampai koma pertama)
    Contoh grup:

    Airport terminal
    Bus stop
    Cafe digital
    Night city
    
  2. Untuk SETIAP grup:

    • Acak file (shuf)

    • Ambil 2 file saja

  3. Pindahkan ke folder submit/

  4. File lain tetap aman di folder asal


📁 HASIL AKHIR

  • submit/file siap upload batch 1

  • folder asal → stok batch berikutnya

Biasanya hasilnya:

  • ± 25–30 file

  • Variasi scene terjaga

  • Risiko “similar content” rendah


🔎 CEK CEPAT ISI FOLDER SUBMIT

ls submit | wc -l

Kalau kebanyakan (misalnya >30), boleh, tapi idealnya:
👉 20–30 file per hari


⚠️ CATATAN PENTING

  • Script ini tidak merusak file

  • Tidak mengubah metadata

  • Aman diulang (selama file di folder asal masih ada)


🟢 OPSIONAL (JIKA MAU LEBIH RAPI)

Kalau mau copy (bukan pindah):

cp "{}" submit/

(ganti mvcp)


🎯 LANGKAH BERIKUTNYA (SETELAH FILE DI submit/)

  1. Upload ke Adobe Stock

  2. Isi title & keyword (saya bisa bantu template cepat)

  3. Tunggu approval

  4. Hari berikutnya → ulangi script

Kalau Guru Duan mau:

  • ✔️ Template title & keyword per grup

  • ✔️ Script rename final tanpa spasi & koma

  • ✔️ Checklist sebelum klik submit

Tinggal bilang 👍

Perintah upscaled jpg batch massal

 mkdir -p upscaled
for f in *.jpg; do
  convert "$f" -resize 200% -quality 95 -colorspace sRGB "upscaled/$f"
done

Rename hasil generate menghapus awalan Firefly_ saja

 

Siap, Guru Duan 👍
Kalau hanya ingin menghapus awalan Firefly_ saja, itu sangat mudah & aman. Saya kasih 2 cara: terminal (paling cepat) dan GUI.


🥇 CARA TERCEPAT (TERMINAL – REKOMENDASI)

1️⃣ Masuk ke folder file

cd /path/ke/folder/gambar

contoh:

cd ~/Pictures/firefly-mockup

2️⃣ Hapus prefix Firefly_ dari semua JPG

for f in Firefly_*.jpg; do
  mv "$f" "${f#Firefly_}"
done

✅ Aman
✅ Tidak mengubah isi file
✅ Hanya menghapus teks Firefly_ di depan nama


📌 Contoh hasil

Sebelum:

Firefly_Airport terminal digital display mockup, clean modern interior, tall vertical screen, 13209.jpg

Sesudah:

Airport terminal digital display mockup, clean modern interior, tall vertical screen, 13209.jpg

🥈 OPSI ALTERNATIF (PAKAI rename)

Kalau punya tool rename:

rename 's/^Firefly_//' *.jpg

🟢 OPSI GUI (TANPA TERMINAL)

Kalau mau klik-klik:

  1. Blok semua file

  2. Klik kanan → Rename…

  3. Pilih Search and Replace

  4. Search:

    Firefly_
    
  5. Replace: (kosong)

  6. Rename


⚠️ CATATAN PENTING (UNTUK ADOBE STOCK)

Menghapus Firefly_ ✔️ sudah benar, tapi belum cukup ideal.

🔜 Langkah SELANJUTNYA (opsional tapi disarankan):

  • buang koma ,

  • ganti spasi jadi -

  • ringkas nama file

Kalau Guru Duan mau, saya bisa:

  • ✔️ Buatkan 1 perintah lanjutan untuk membersihkan semuanya sekaligus

  • ✔️ Atau langsung rename ke format final Adobe Stock

Tinggal bilang:
👉 “lanjut bersihkan semua” atau “rename ke format final”

Friday, 19 December 2025

Upscale Jpg

 

Sip Guru 👍
Pesan merah itu jelas penyebabnya dan bukan karena JPG-nya, tapi karena RESOLUSI DI BAWAH SYARAT ADOBE STOCK.


❌ ARTI ERROR INI

couldn't be uploaded because its resolution is too small

Artinya:

  • Total piksel < 4 megapixel

  • Contoh yang DITOLAK:

    • 1500 × 1500 = 2.25 MP ❌

    • 1200 × 2000 = 2.4 MP ❌

📌 Format JPG sudah benar, tapi ukurannya belum cukup besar.


✅ SYARAT MINIMUM ADOBE STOCK (IMAGE / JPEG)

  • Minimal: 4 MP

  • Contoh AMAN:

    • 2000 × 2000 = 4 MP ✅

    • 2400 × 2400 = 5.76 MP ✅

    • 3000 × 3000 = 9 MP ✅

👉 Untuk line art / coloring book, 2400×2400 atau 3000×3000 itu ideal.


🔥 SOLUSI CEPAT UNTUK RATUSAN FILE (ImageMagick)

1️⃣ Cek ukuran file yang ditolak (opsional)

identify 001.jpg

2️⃣ Resize massal ke ukuran AMAN (REKOMENDASI)

Misal kita naikkan ke 3000 × 3000 px:

mkdir jpeg_final
convert jpeg_out/*.jpg -resize 3000x3000 -background white -gravity center -extent 3000x3000 -quality 95 jpeg_final/%03d.jpg

📌 Penjelasan penting:

  • -resize 3000x3000 → perbesar (upscale)

  • -background white → jaga putih murni

  • -extent → kanvas pas, tidak ketarik

  • File lama tetap aman


🔁 Alternatif: 2400 × 2400 (lebih ringan)

convert jpeg_out/*.jpg -resize 2400x2400 -background white -gravity center -extent 2400x2400 -quality 95 jpeg_final/%03d.jpg

⚠️ AMANKAH UPSCALE UNTUK ADOBE STOCK?

AMAN untuk:

  • Line art

  • Illustration

  • Coloring book

  • Vector-style raster

Tidak disarankan untuk foto realistis
(Tapi file Guru = ilustrasi → AMAN)


🧪 CEK TERAKHIR SEBELUM UPLOAD

Ambil 1 file:

identify jpeg_final/001.jpg

Pastikan:

  • ≥ 2000 px di sisi terpendek

  • Background putih bersih

  • Tidak pecah parah


✅ WORKFLOW FINAL YANG BENAR (RINGKAS)

  1. PNG Firefly

  2. Convert → JPG (putih)

  3. Resize ke ≥ 4MP

  4. Upload ke IMAGES (JPEG FILES)

  5. Centang Generative AI


🔥 KESIMPULAN

Masalahnya BUKAN format, tapi UKURAN.
Setelah resize → error ini hilang.

Kalau Guru mau, bilang:

  • Resolusi asli sekarang berapa?

  • Mau saya hitungkan ukuran optimal otomatis?

Saya bisa kasih 1 baris perintah final paling aman sesuai file Guru 👌

Ekspor ke JPEG dan BG putih

 

Siap, Guru 👍
Untuk ratusan file, kuncinya jangan manual satu-satu. Ini workflow PALING AMAN & CEPAT untuk:

✔️ Export ke JPEG
✔️ Background putih murni #FFFFFF
✔️ Siap upload Adobe Stock

Saya beri 2 metode utama (pilih salah satu).


🥇 METODE PALING AMAN (GIMP – Batch Export)

Rekomendasi utama untuk Adobe Stock

🔧 Persiapan (sekali saja)

  1. Buka 1 file PNG

  2. Pastikan:

    • Background layer warna #FFFFFF

    • Object di atasnya

  3. File → Export As → JPEG

  4. Set:

    • Quality: 95

    • Subsampling: 4:4:4

    • Progressive: ❌

  5. Jangan centang “Save EXIF”

👉 Ini jadi template pengaturan


🔁 Batch Export Ratusan File

  1. File → Open as Layers
    → pilih SEMUA PNG

  2. Pastikan background putih ada di bawah semua layer

  3. File → Export As

  4. Pilih:

    • Type: JPEG

    • Folder output khusus

  5. Klik Export

  6. Saat dialog muncul → Apply to All

⏱️ 100 file ≈ 2–3 menit


🥈 METODE SUPER CEPAT (Terminal – ImageMagick)

Untuk file PNG Firefly dengan background transparan / putih

1️⃣ Install

sudo apt install imagemagick

2️⃣ Masuk folder file

cd ~/firefly_png

3️⃣ Convert massal ke JPEG + putih

mkdir jpeg_out
magick *.png -background white -alpha remove -alpha off -quality 95 jpeg_out/%03d.jpg

📌 Hasil:

  • Background → putih murni

  • Transparan → diisi putih

  • JPEG kualitas tinggi


🔍 CEK CEPAT HASIL (WAJIB)

Ambil 2–3 file:

  • Zoom 100%

  • Tidak ada:

    • Garis abu-abu di pinggir

    • Shadow sisa

  • Background RGB: 255,255,255


🥉 BONUS: Rename SEO-Friendly (Opsional)

Setelah jadi JPEG:

rename 's/^/child_lineart_/' jpeg_out/*.jpg

Atau:

rename 's/.jpg/_coloring_book.jpg/' jpeg_out/*.jpg

⚠️ KESALAHAN FATAL (HINDARI)

❌ Upload PNG putih ke Transparent PNG
❌ JPEG kualitas <90
❌ Background off-white (#FAFAFA)


✅ REKOMENDASI FINAL

KondisiMetode
Mau aman 100%GIMP batch
Mau super cepatImageMagick

Kalau Guru mau, bilang:

  • PNG transparan atau putih?

  • OS (Ubuntu/Debian sudah jelas 👍)

  • Mau resize ke ukuran tertentu?

Saya bisa tuliskan 1 baris perintah final khusus untuk kondisi Guru 👌

Hapus border massal

 

Siap, Guru 👍
Kalau file banyak dan semuanya pakai border, ada 3 cara efektif hapus border secara massal, dari paling aman sampai paling cepat. Pilih sesuai kondisi file.


🥇 CARA PALING AMAN (GIMP – Semi Otomatis)

Cocok kalau:

  • Border ketebalannya sama

  • Background putih solid

  • Mau hasil rapi (untuk Adobe Stock)

Langkah:

  1. Buka GIMP

  2. File → Open as Layers
    → pilih SEMUA file PNG

  3. Pilih satu layer (gambar)

  4. Pakai Rectangle Select Tool

  5. Seleksi area di dalam border (sekali saja)

  6. Image → Crop to Selection

📌 Setelah itu:

  • Selection tetap aktif

  • Tinggal klik layer berikutnya → Crop to Selection

  • Ulangi cepat (10–20 file = ±1 menit)

👉 Ini paling aman untuk reviewer Adobe


🥈 CARA CEPAT OTOMATIS (ImageMagick – Terminal)

Cocok kalau:

  • Border hitam

  • Background putih

  • Border konsisten

  • Banyak file (puluhan–ratusan)

1️⃣ Install ImageMagick

sudo apt install imagemagick

2️⃣ Masuk folder gambar

cd ~/gambar-border

3️⃣ Jalankan batch crop otomatis

mogrify -trim -fuzz 5% *.png

📌 Penjelasan:

  • -trim → hapus area tepi warna sama

  • -fuzz 5% → toleransi warna (aman untuk hitam/putih)

⚠️ WARNING

  • Ini overwrite file asli

  • Sebaiknya backup dulu:

cp *.png backup/

🥉 CARA SUPER CEPAT (Crop Pixel Tetap)

Cocok kalau:

  • Semua ukuran sama

  • Border tebalnya sama (misal 80 px)

Contoh: hapus 80px dari tiap sisi

mogrify -crop +80+80 -crop -80-80 *.png

Atau crop manual ukuran:

mogrify -crop 2400x2400+100+100 *.png

🔍 REKOMENDASI SAYA (UNTUK ADOBE STOCK)

✅ Kalau kurang dari 100 file
GIMP (cara #1) → hasil paling rapi

✅ Kalau ratusan file & pola sama
ImageMagick -trim


⚠️ SETELAH BORDER DIHAPUS, WAJIB CEK

Sebelum upload:

  • Tidak ada sisa garis hitam di tepi

  • Background benar-benar putih (#FFFFFF)

  • Objek tidak kepotong


🔥 BONUS (Workflow Profesional)

  1. Hapus border

  2. Rename otomatis:

rename 's/borderless_/soccer_lineart_/' *.png
  1. Upload bertahap ke Adobe Stock


Kalau Guru mau:

  • Saya bisa cek 1 file hasil crop

  • Atau bantu buat script batch khusus sesuai ukuran border

Tinggal bilang:
👉 “pakai ImageMagick, border ±berapa px?”

Thursday, 18 December 2025

✅ 20 PROMPT – VERSI LEBIH AMAN (FINAL)

 ✅ 20 PROMPT – VERSI LEBIH AMAN (FINAL)
simple vector illustration of a traditional Ramadan lantern (fanous), single isolated object, flat design, solid gold color, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a jug of jallab drink with dates, single isolated object, flat design, solid glass color style, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a brass incense burner (mabkhara), single isolated object, flat design, solid brass color, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a Ramadan cannon (midfa), single isolated object, flat design, solid dark metal color, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a crescent moon and star ornament, single isolated object, flat design, solid gold color, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a mosque dome with crescent, single isolated object, flat design, solid green color, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a rolled prayer rug (sajadah), single isolated object, flat design, simple textile pattern, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of tasbih prayer beads, single isolated object, flat design, solid color beads, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of an open Quran on wooden stand (rehal), single isolated object, flat design, solid brown wood color, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a date palm branch with dates, single isolated object, flat design, solid natural colors, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of an iftar meal tray, single isolated object, flat design, solid food colors, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a zamzam water bottle, single isolated object, flat design, solid white bottle, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of an Islamic geometric star ornament, single isolated object, flat design, solid blue and gold colors, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a hanging Ramadan lantern, single isolated object, flat design, solid gold metal color, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a traditional drum (bedug), single isolated object, flat design, solid brown wood color, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a mosque minaret, single isolated object, flat design, solid light stone color, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of an Arabic coffee dallah pot, single isolated object, flat design, solid gold metal color, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a bowl of dates for iftar, single isolated object, flat design, solid warm brown colors, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of an Islamic arch window, single isolated object, flat design, simple ornamental frame, simple shapes, no gradient, no shadow, transparent background
simple vector illustration of a Ramadan greeting badge, single isolated object, flat design, simple decorative emblem, simple shapes, no gradient, no shadow, transparent background

Wednesday, 17 December 2025

Script code firefly_autodownload_firefox_blob_final.js

 const { firefox } = require('playwright');
const fs = require('fs');
const fsp = fs.promises;
const path = require('path');

const PROMPT_FILE = 'prompts.txt';
const USER_DATA_DIR = path.join(__dirname, 'firefox-profile');
const DOWNLOAD_DIR = path.join(__dirname, 'downloads');

const IMAGES_PER_PROMPT = 1;
const MAX_WAIT = 45000; // maksimal tunggu per prompt (ms)
const POLL_INTERVAL = 1000; // cek tiap 1 detik

const savedBlobs = new Set();

(async () => {
  // === Persiapan folder ===
  if (!fs.existsSync(DOWNLOAD_DIR)) fs.mkdirSync(DOWNLOAD_DIR);

  // === Launch Firefox persistent ===
  const context = await firefox.launchPersistentContext(USER_DATA_DIR, {
    headless: false
  });

  const page = context.pages()[0] || await context.newPage();

  await page.goto('https://firefly.adobe.com/generate/image', {
    waitUntil: 'domcontentloaded'
  });

  console.log('👉 Login Adobe Firefly MANUAL');
  console.log('👉 Atur Model & Aspect Ratio');
  console.log('👉 Tekan ENTER di terminal');
  await new Promise(r => process.stdin.once('data', r));

  // === Prompt box ===
  const promptBox = page.locator('textarea[aria-label="Prompt"]');
  await promptBox.waitFor({ state: 'visible', timeout: 60000 });

  // === Load prompts ===
  const prompts = fs.readFileSync(PROMPT_FILE, 'utf-8')
    .split(/\r?\n/)
    .map(l => l.trim())
    .filter(Boolean);

  console.log(`🔥 Total prompt: ${prompts.length}`);

  // === Loop prompt ===
  for (let i = 0; i < prompts.length; i++) {
    console.log(`\n▶ Prompt ${i + 1}/${prompts.length}`);
    console.log('⏳ Generating...');

    await promptBox.fill('');
    await promptBox.fill(prompts[i]);
    await page.keyboard.press('Enter');

    // ===== POLLING MANUAL (ANTI TIMEOUT) =====
    const start = Date.now();
    let foundNewBlob = false;

    while (Date.now() - start < MAX_WAIT) {
      const blobs = await page.$$eval(
        'img[src^="blob:"]',
        imgs => imgs.map(img => img.src)
      );

      for (const blob of blobs) {
        if (!savedBlobs.has(blob)) {
          foundNewBlob = true;
          break;
        }
      }

      if (foundNewBlob) break;
      await page.waitForTimeout(POLL_INTERVAL);
    }

    if (!foundNewBlob) {
      console.log('⚠️ Tidak ditemukan blob baru, skip prompt ini');
      continue;
    }

    // ===== DOWNLOAD BLOBS TERBARU =====
    const images = page.locator('img[src^="blob:"]');
    const total = await images.count();

    let saved = 0;

    // scan dari belakang (gambar terbaru)
    for (let j = total - 1; j >= 0 && saved < IMAGES_PER_PROMPT; j--) {
      const img = images.nth(j);
      const blobUrl = await img.getAttribute('src');
      if (!blobUrl || savedBlobs.has(blobUrl)) continue;

      const buffer = await page.evaluate(async (url) => {
        const res = await fetch(url);
        const blob = await res.blob();
        return new Uint8Array(await blob.arrayBuffer());
      }, blobUrl);

      savedBlobs.add(blobUrl);
      saved++;

      const safePrompt = prompts[i]
        .slice(0, 40)
        .replace(/[^a-z0-9]+/gi, '_')
        .toLowerCase();

      const filename = `firefly_${i + 1}_${safePrompt}.png`;
      await fsp.writeFile(
        path.join(DOWNLOAD_DIR, filename),
        Buffer.from(buffer)
      );

      console.log(`✅ Saved: ${filename}`);
    }

    await page.waitForTimeout(1000);
  }

  console.log('\n🎉 SEMUA PROMPT SELESAI');
})();

Workflow script autogenerate autodownload firefly_autodownload_firefox_blob_final.js

 

Ya 👍 BETUL SEKALI — dan susunannya sudah rapi & benar.
Saya ringkaskan ulang langkah demi langkah (versi final & clean) supaya bisa kamu jadikan catatan permanen.


✅ LANGKAH DEMI LANGKAH (FINAL WORKFLOW)


1️⃣ Install Playwright + Firefox

Dijalankan sekali saja:

npm install playwright
npx playwright install firefox

✔️ Mengunduh Firefox versi Playwright
✔️ Dipakai otomatis oleh script
✔️ Tidak mengganggu Firefox sistem


2️⃣ Struktur folder (SESUAI GAMBAR KAMU ✅)

fire-playwright/
├── downloads/                      ← hasil image tersimpan
├── firefox-profile/                ← profile login Firefly (persistent)
├── node_modules/
├── firefly_autodownload_firefox_blob_final.js
├── prompts.txt                     ← daftar prompt (1 baris = 1 prompt)
├── package.json
└── package-lock.json

📌 Ini struktur ideal & recommended


3️⃣ Isi prompts.txt

Contoh:

faceless child astronaut holding a flag, line art, coloring book style
faceless child baker baking bread in a kitchen, line art, coloring book
faceless child doctor checking a patient, line art illustration

📌 Satu baris = satu prompt
📌 Tidak perlu tanda kutip


4️⃣ Jalankan script

node firefly_autodownload_firefox_blob_final.js

Lalu:

  1. Firefox terbuka (1 window saja ✅)

  2. Login Adobe Firefly manual

  3. Atur:

    • Model

    • Aspect ratio

  4. Kembali ke terminal → tekan ENTER

  5. Biarkan script bekerja


5️⃣ Hasil akhir

  • Image muncul di folder downloads/

  • Nama file otomatis dari prompt

  • Tidak dobel

  • Tidak replace

  • Aman sampai ratusan prompt


🧠 KENAPA STRUKTUR INI BENAR?

KomponenFungsi
firefox-profile/Simpan login & setting Firefly
downloads/Output aman (bukan blob)
savedBlobs Set()Cegah duplikat
before/after countIsolasi hasil per prompt
Firefox PlaywrightLebih stabil untuk blob

⚠️ HAL YANG TIDAK PERLU LAGI

❌ Chrome
acceptDownloads
❌ klik tombol Download
❌ rename manual file
❌ copy-paste blob


🏁 KESIMPULAN

✔️ Langkah kamu 100% benar
✔️ Struktur folder ideal
✔️ Workflow sudah matang
✔️ Siap dipakai rutin / skala besar


Ya 👍 BENAR — dari sisi file yang kamu BUAT manual, hanya dua itu.


✅ FILE YANG KAMU BUAT SENDIRI

1️⃣ Script utama

firefly_autodownload_firefox_blob_final.js

✔️ Ini inti semuanya
✔️ Berisi seluruh logic automation
✔️ Tidak perlu file JS lain


2️⃣ Daftar prompt

prompts.txt

✔️ 1 baris = 1 prompt
✔️ Bisa diedit kapan saja
✔️ Bisa ganti, tambah, kurangi tanpa ubah script


📁 FILE / FOLDER LAIN → DIBUAT OTOMATIS

ItemDibuat olehKeterangan
node_modules/npmLibrary Playwright
package.jsonnpmMetadata project
package-lock.jsonnpmLock dependency
firefox-profile/ScriptSimpan login Firefly
downloads/ScriptHasil image

👉 Tidak perlu kamu sentuh


🧠 RINGKASAN SUPER SINGKAT

  • ✍️ Kamu hanya bikin 2 file

  • ⚙️ Sisanya otomatis

  • 🔁 Ganti prompt → tinggal edit prompts.txt

  • ▶️ Jalankan ulang script


💡 Tips kecil (best practice)

  • Backup firefox-profile/ → supaya login aman

  • Jangan hapus downloads/ saat script jalan

  • Kalau ganti akun Adobe → hapus firefox-profile/ lalu login ulang



Friday, 12 December 2025

daftar tema foto HP yang paling laris + punya nilai IMPACT tinggi di Shutterstock.

Baik, Guru Duan. Berikut saya buatkan daftar tema foto HP yang paling laris + punya nilai IMPACT tinggi di Shutterstock. Ini adalah kategori yang dicari NGO, media internasional, dan brand besar — sekaligus bisa ditangkap hanya dengan kamera HP.

Saya bagi menjadi 10 kelompok besar dan 50 subjek spesifik supaya Guru bisa langsung hunting.


🌍 1. Lingkungan & Perubahan Iklim (No.1 Paling Dicari)

Tema yang bisa diambil dengan HP:

  1. Sungai tercemar sampah
  2. Asap pembakaran sampah
  3. Kekeringan (tanah retak, sawah kering)
  4. Banjir di jalan kampung
  5. Plastik di sungai atau parit
  6. Kabut asap / polusi udara
  7. Habitat rusak (tebing longsor, hutan gundul)
  8. Energi bersih (panel surya rumah warga, lampu tenaga matahari)
  9. Petani saat kemarau
  10. Cuaca ekstrem (awan badai, petir, banjir kecil, panas terik)

Mengapa laris:
Dipakai untuk berita, kampanye lingkungan, NGO global.


👨‍👩‍👧 2. Aktivitas Sosial, Komunitas, & Kehidupan Masyarakat

  1. Gotong royong bersih-bersih
  2. Warga membantu tetangga
  3. Kegiatan posyandu
  4. Pembagian bantuan
  5. Warga menanam pohon
  6. Suasana pasar tradisional
  7. Warga kerja bakti
  8. Antrian layanan publik
  9. Transportasi umum penuh
  10. Pedagang kecil UMKM

Mengapa laris:
Jurnalis & peneliti sering membeli foto keseharian Indonesia.


🎒 3. Pendidikan & Anak-anak (Sangat Laris di Asia Tenggara)

  1. Anak belajar di kelas sederhana
  2. Guru mengajar dengan papan tulis
  3. Anak membaca buku
  4. Siswa menggunakan HP untuk belajar
  5. Kelas ramai / suasana ujian
  6. Upacara bendera
  7. Bermain di halaman sekolah
  8. Ekstrakurikuler (pramuka, olahraga)
  9. Anak pergi sekolah naik sepeda/motor
  10. Guru mengajar di ruang kelas minim fasilitas

Mengapa laris:
Banyak dipakai NGO pendidikan dan media berita.


4. Humanity & Inklusi (Tingginya Demand Internasional)

  1. Orang difabel beraktivitas
  2. Interaksi antar generasi (anak & kakek)
  3. Keberagaman budaya / suku
  4. Teman saling membantu
  5. Keluarga sederhana makan bersama
  6. Aktivitas ibadah (tanpa wajah jelas → aman legal)

Mengapa laris:
Dipakai untuk kampanye keberagaman global.


🍚 5. Ekonomi Kecil & UMKM (Sangat dicari setelah pandemi)

  1. Pedagang kaki lima
  2. Warung makan sederhana
  3. Tukang sayur keliling
  4. Proses memasak tradisional
  5. Petani memanen
  6. Kerajinan lokal (tenun, anyaman)

Mengapa laris:
Dipakai project ekonomi mikro & kampanye UMKM.


🛠 6. Infrastruktur Kehidupan Sehari-hari

  1. Jalan kampung berlubang
  2. Jembatan gantung
  3. Rumah panggung
  4. Transportasi unik (becak, klotok, perahu kecil)
  5. Antrean SPBU
  6. Antrian kesehatan / puskesmas

Mengapa laris:
Paling banyak dipakai untuk editorial internasional.


7. Foto HP Simple yang Sangat Banyak Dibeli

(Serius: sering dibeli perusahaan besar)

  1. Tangan memegang tanah/daun bibit
  2. Tangan memegang botol plastik untuk recycle
  3. Detail sampah plastik di rumput
  4. Close-up tangan belajar menulis
  5. Anak memegang pensil/buku
  6. Close-up uang rupiah dalam konteks ekonomi rakyat
  7. Tangan gotong royong mengangkat barang

🔥 Tema Spesial: Indonesia Sangat Dicari Dunia

Guru Duan berada di negara dengan permintaan foto tinggi:

  • kehidupan desa Indonesia
  • pasar tradisional
  • budaya lokal
  • seragam sekolah Indonesia
  • aktivitas gotong royong

Bahkan foto HP biasa bisa jadi bestseller internasional jika momennya kuat.


🎯 Strategi Terbaik untuk Guru Duan

Untuk 100 foto HP berikutnya, gunakan pola ini:

1. Fokus pada cerita, bukan kualitas kamera

Foto dokumenter selalu menang.

2. Ambil momen alami, bukan diatur

Impact Award mencari keaslian.

3. Cari cahaya bagus

Subuh/jam 4–5 sore → foto HP terlihat jauh lebih bagus.

4. Upload foto editorial bila perlu

Tidak perlu hapus wajah, asal tandai Editorial Only.


📌 Mau saya buatkan daftar 10 misi hunting foto per minggu agar progres Guru lebih cepat?

Misalnya:

  • Minggu ini: tema lingkungan 20 foto
  • Minggu depan: tema edukasi 20 foto

Hasilnya lebih terarah dan berpeluang masuk Impact Award.

Guru mau?

Thursday, 11 December 2025

server SiM Kamis 11 Desember 2025

 # lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME   FSTYPE     SIZE MOUNTPOINT                        LABEL
loop0  squashfs  66.8M /snap/core24/1225                 
loop1  squashfs 104.2M /snap/core/17247                  
loop2  squashfs  63.8M /snap/core20/2669                 
loop3  squashfs  66.8M /snap/core24/1196                 
loop4  squashfs   8.1M /snap/certbot-dns-cloudflare/4856 
loop5  squashfs 104.2M /snap/core/17212                  
loop6  squashfs   8.2M /snap/certbot-dns-cloudflare/4697 
loop7  squashfs  63.8M /snap/core20/2682                 
sda             931.5G                                   
├─sda1 ntfs       500M                                   System Reserved
├─sda2 ntfs     438.5G                                   
├─sda3 ntfs       521M                                   
├─sda4              1K                                   
├─sda5 ntfs     154.5G                                   New Volume
├─sda6 swap      15.3G [SWAP]                            
├─sda7 ext4      14.9G /                                 
├─sda8 ext4      27.9G /home                             
└─sda9 ext4     279.4G /var                              
sr0              1024M                    


# df -h
du -sh /var/www/
du -sh /var/lib/mysql/
du -sh /var/moodledata/
Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  1.2M  1.6G   1% /run
/dev/sda7        15G  5.2G  8.7G  38% /
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sda8        28G   52K   26G   1% /home
/dev/sda9       274G   46G  215G  18% /var
/dev/loop5      105M  105M     0 100% /snap/core/17212
/dev/loop1      105M  105M     0 100% /snap/core/17247
/dev/loop3       67M   67M     0 100% /snap/core24/1196
/dev/loop6      8.3M  8.3M     0 100% /snap/certbot-dns-cloudflare/4697
/dev/loop2       64M   64M     0 100% /snap/core20/2669
/dev/loop0       67M   67M     0 100% /snap/core24/1225
/dev/loop7       64M   64M     0 100% /snap/core20/2682
/dev/loop4      8.2M  8.2M     0 100% /snap/certbot-dns-cloudflare/4856
tmpfs           1.6G  4.0K  1.6G   1% /run/user/0
3.2G    /var/www/
1.9G    /var/lib/mysql/
297M    /var/moodledata/

# sudo lshw -short | grep disk
sudo lsblk -o NAME,SIZE,MODEL
/0/100/17/0      /dev/sda    disk           1TB WDC WD10EZEX-21W
/0/100/17/1      /dev/cdrom  disk           DVDRAM GHD0N
NAME     SIZE MODEL
loop0   66.8M 
loop1  104.2M 
loop2   63.8M 
loop3   66.8M 
loop4    8.1M 
loop5  104.2M 
loop6    8.2M 
loop7   63.8M 
sda    931.5G WDC_WD10EZEX-21WN4A0
├─sda1   500M 
├─sda2 438.5G 
├─sda3   521M 
├─sda4     1K 
├─sda5 154.5G 
├─sda6  15.3G 
├─sda7  14.9G 
├─sda8  27.9G 
└─sda9 279.4G 
sr0     1024M HL-DT-ST_DVDRAM_GHD0N

# sudo lspci | grep -i sata
00:17.0 SATA controller: Intel Corporation Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] (rev 31)


# sudo lshw -class disk -class storage
  *-sata                    
       description: SATA controller
       product: Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode]
       vendor: Intel Corporation
       physical id: 17
       bus info: pci@0000:00:17.0
       logical name: scsi0
       logical name: scsi2
       version: 31
       width: 32 bits
       clock: 66MHz
       capabilities: sata msi pm ahci_1.0 bus_master cap_list emulated
       configuration: driver=ahci latency=0
       resources: irq:126 memory:df228000-df229fff memory:df22c000-df22c0ff ioport:f090(size=8) ioport:f080(size=4) ioport:f060(size=32) memory:df22b000-df22b7ff
     *-disk
          description: ATA Disk
          product: WDC WD10EZEX-21W
          vendor: Western Digital
          physical id: 0
          bus info: scsi@0:0.0.0
          logical name: /dev/sda
          version: 1A01
          serial: WCC6Y3UNVZEY
          size: 931GiB (1TB)
          capabilities: partitioned partitioned:dos
          configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096 signature=ee238f62
     *-cdrom
          description: DVD-RAM writer
          product: DVDRAM GHD0N
          vendor: HL-DT-ST
          physical id: 1
          bus info: scsi@2:0.0.0
          logical name: /dev/cdrom
          logical name: /dev/cdrw
          logical name: /dev/dvd
          logical name: /dev/dvdrw
          logical name: /dev/sr0
          version: 1.00
          capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
          configuration: ansiversion=5 status=nodisc


# sudo grep -i ahci /sys/class/scsi_host/host*/proc_name
/sys/class/scsi_host/host0/proc_name:ahci
/sys/class/scsi_host/host1/proc_name:ahci
/sys/class/scsi_host/host2/proc_name:ahci
/sys/class/scsi_host/host3/proc_name:ahci

# ls /sys/class/ata_port
ata1  ata2  ata3  ata4

# sudo ls -l /sys/class/ata_port
total 0
lrwxrwxrwx 1 root root 0 Dec  9 13:30 ata1 -> ../../devices/pci0000:00/0000:00:17.0/ata1/ata_port/ata1
lrwxrwxrwx 1 root root 0 Dec  9 13:30 ata2 -> ../../devices/pci0000:00/0000:00:17.0/ata2/ata_port/ata2
lrwxrwxrwx 1 root root 0 Dec  9 13:30 ata3 -> ../../devices/pci0000:00/0000:00:17.0/ata3/ata_port/ata3
lrwxrwxrwx 1 root root 0 Dec  9 13:30 ata4 -> ../../devices/pci0000:00/0000:00:17.0/ata4/ata_port/ata4

Wednesday, 10 December 2025

bersihkan manual cloudflared di ubuntu

 # Hentikan dan disable service
sudo systemctl stop cloudflared.service
sudo systemctl disable cloudflared.service

# Hapus file unit yang masih tertinggal (kalau ada)
sudo rm -f /etc/systemd/system/cloudflared.service
sudo rm -f /etc/systemd/system/cloudflared-update.service
sudo rm -f /etc/systemd/system/cloudflared-update.timer

# Reload systemd biar konfigurasi baru kebaca
sudo systemctl daemon-reload