Solusi digital untuk bisnis dan instansi pemerintah — Web App, DevOps, Pentest, UI/UX, Cloud Hosting, LAN 🔧 Dipercaya pemerintah & bisnis di Sulawesi Utara.
Berawal dari semangat inovasi dari komunitas KawanuaDev, kami menghadirkan Kawanua ID Apps.
Sebuah kumpulan mini productivity apps untuk mempermudah berbagai kebutuhan digital dalam satu platform.
Akses sekarang:
👉 https://t.co/qQzz2w4hmt
#BuiltByKawanua
Progress sampai hari ini WenangCMS sudah berhasil terkoneksi dengan sempurna ke license system @kawanua dan karena untuk demo panel ini deploy nya di Cloudflare, jadi sekalian cronjob bawaannya dipake supaya tiap jam 1 subuh lisensinya dicek.
#wenang#webdevelopment
Dulu butuh berjam-jam cuma buat bikin CV.
Sekarang? Cuma beberapa menit.
🎨 Tinggal pilih template
📄 Sesuaikan format kertas
⚡ Proses super cepat
📥 Download PDF siap kirim
🤖 Sudah ATS-friendly
🎁 Gratis
Waktunya upgrade cara kamu melamar kerja!
👉 https://t.co/CdB1r2W1rH
Bagi para peminat Penetration Test menggunakan AI,
silahkan download buku yang baru saya tulis
https://t.co/I1RIILsANx
Buku2 lain sekitar Cyber Security bisa di ambil di
https://t.co/JMje64GEMp
https://t.co/Xs5pE3sHbA (folder CYBERSECURITY & CYBERWAR)
Per hari ini sudah ada sebanyak 21 mini apps.
- Kalkulator BMI
- Password Generator & Checker
- SEO Meta Tag Generator
- PageSpeed Checker
- Favicon Generator
- JSON ↔ CSV Converter
- Markdown Previewer
- QR Code Generator
- Regex Tester
- Image Optimizer
- dan lainnya.
Berawal dari semangat inovasi dari komunitas KawanuaDev, kami menghadirkan Kawanua ID Apps.
Sebuah kumpulan mini productivity apps untuk mempermudah berbagai kebutuhan digital dalam satu platform.
Akses sekarang:
👉 https://t.co/qQzz2w4hmt
#BuiltByKawanua
25 red flags hiding in your VIBE CODED app :
Bookmark this before your next PR !
1/ no .env.example file
> new dev joins. cant run the app. nobody knows what env vars exist.
2/ API keys in git history
> deleted from .env doesn't mean deleted from history. rotate those keys.
3/ no README with setup instructions
> three steps to run locally that only you know.
4/ functions with 500+ lines
> AI fills files. nobody splits them. untestable, unreadable, unmaintainable.
5/ catch blocks that swallow the error
> silent failures. user sees nothing. you get no alerts. bug persists.
6/ hardcoded localhost URLs
> breaks in staging. breaks in production. search "localhost" in the repo right now.
7/ no TypeScript or type definitions
> you refactor one prop and nothing tells you about the 12 places it broke.
8/ console.log statements in production
> performance overhead and sensitive data leaking into browser consoles.
9/ zero tests
> you change one utility function and don't know what broke until a user tells you.
10/ missing loading and error states in the UI
> API call takes 3 seconds. user sees blank screen and refreshes. request fires twice.
11/ dead code everywhere
> AI generates functions. AI forgets them. nobody knows whats active.
12/ no linting or formatting config
> every file has different indentation. code reviews become style arguments.
13/ mixed naming conventions
> camelCase, snake_case, PascalCase. all from AI. all in the same repo.
14/ god components doing everything
> 500-line React components handling state, data fetching, and UI simultaneously.
15/ DB queries directly in route handlers
> business logic tangled with framework code. change one thing, you touch everything.
16/ secrets in committed config files
> not .env. config.js or settings.json that didnt seem like a secret file.
17/ no CI/CD pipeline
> deploy = "i hope nothing breaks." you find out in production.
18/ direct DOM manipulation inside React
> mixing jQuery patterns with React. breaks silently on re-renders.
19/ state mutated directly
> `state.items.push(item)` instead of a new array. causes unpredictable renders.
20/ memory leaks from uncleaned intervals
> setInterval inside useEffect with no cleanup. fires after the component unmounts.
21/ blocking the event loop with sync operations
> `fs[.]readFileSync` in a request handler. one request pauses all others.
22/ no pagination on list endpoints
> fetch all 50,000 records to display 20. works fine in dev with 5 test rows.
23/ missing Content-Type headers on API responses
> clients parse JSON as text. debugging nightmare across different clients.
24/ no error boundary in React
> one uncaught error in a child component crashes the entire app.
25/ inconsistent API response shapes
> some endpoints return `{data: {}}`. others return the object directly. good luck building a client.
They're right for Japan, Korea, and Singapore. Those guys source 75% of refined products from the Persian Gulf. Hormuz closes, they bleed.
But Indonesia is a different story entirely.
Yes, Indonesia imports refined products. Pertamina's refining capacity doesn't fully cover domestic demand, so Pertalite and Solar get bridged through imports. The Hormuz shock hits that. Real exposure.
What makes Indonesia different is this.
Indonesia's actual risk from this isn't supply. It's fiscal. If oil prices spike because Hormuz stays closed, the government's subsidy bill for Pertalite and Solar expands. Wider deficit, rupiah pressure. That's the bear case for Indonesia, and even that's manageable.
The bull case is what nobody is talking about.
Indonesia runs B40 right now. 40% of every liter of diesel consumed domestically is palm oil biodiesel, not petroleum. When oil spikes, the incentive to push toward B50 or B55 gets stronger overnight. Import volume drops. Indonesia self-hedges using its own CPO supply. No other country in Asia has this. Not Korea, not Japan, not Singapore.
Then there's coal.
When Hormuz disrupts LNG and oil flows into Asia, the fastest lever available to power generators in Japan, Korea, and India is gas to coal switching. Indonesia is the world's largest seaborne thermal coal exporter. ADARO, ITMG, PTBA, BUMI don't suffer from this scenario. Export volumes go up. Realized prices go up. Royalty revenue to the government goes up.
Same logic on LNG. Indonesia exports from Bontang and Tangguh. When Middle Eastern supply gets disrupted, the spot premium on non Gulf LNG widens. Indonesian cargoes price up.
Same logic on CPO. High oil equals strong biodiesel demand globally equals strong CPO prices. Indonesia and Malaysia control 85% of global supply.
You see, Indonesia pays more for refined product imports. Fiscal subsidy pressure rises. Rupiah is a watch item. Those are real negatives.
But Indonesia earns more on coal exports, earns more on LNG spot, earns more on CPO, and reduces net petroleum import volume through accelerated biodiesel blending. The terms of trade move in Indonesia's favor, not against it.
The conventional take is "Indonesia is a net oil importer so oil shock is bad." The correct take is Indonesia is a net energy exporter in the commodities that directly substitute for disrupted Persian Gulf supply. A sustained Hormuz closure improves Indonesia's aggregate energy trade position, not deteriorates it.
Happy Sunday and Happy Easter.
Yes, learn the basics. In software dev, AI is a tool to help you code faster. You guide the AI each steps, not the other way around. Without basic knowledge, you won't understand what the AI's build for you. It will immediately turn into a black-box faster than you realize.
UI/UX Designers, this might be one of the cleanest color palette generators I’ve seen lately.
Kigen is a color generator that helps you quickly create beautiful palettes for your UI projects, making it easier to pick colors that actually work well together instead of guessing.
Bookmark it for later 💜
🚀 Kawanua OpenData adalah solusi terbaru yang merupakan platform infrastruktur open data Pemerintah berbasis teknologi modern yang aman, scalable, dan siap terintegrasi dengan platform SPLP Kementrian Komdigi dan ekosistem Satu Data Indonesia.
👉 https://t.co/X6H3jiayVI
A Github/lab profile can definitely help. However these days one can create a shell/bash execution in a cheap VPS to automatically create a random file each day and then push it.
Setelah berbulan-bulan tertunda dan berjamur di repo Git, akibat dari kesibukan project semua personil tim. Akhirnya update untuk backend dan frontend dari https://t.co/wo59R1uTJ8 publish juga, digeber selama Februari.
Form sdh berfungsi normal, dan beberapa update utk UI.
Early in my DevOps career, I deleted a 5GB log file from a production server that was running out of space.
I ran df -h expecting to see the disk usage drop. It didn’t.
Still showed 100% full.
No errors, no warnings. Just the same disk usage as before I deleted anything.
That’s when I learned that deleting a file doesn’t always free up space immediately.
In Linux, what we think of as a “file” is actually two separate things: the filename (which is just a pointer) and the inode (which contains the actual data and metadata). When you delete a filename, you’re only removing the pointer. The inode and its data remain on disk as long as any process still has the file open.
In my case, the web server was still writing to that log file. Even though I had deleted the filename, the server process kept its file handle open. The inode stayed alive, invisible to normal file listings but still consuming disk space.
The space was only freed when I restarted the web server, which closed all its file handles.
This is why you need different commands to see the full picture:
# Check filesystem usage
- df -h
# Check actual directory sizes
- du -sh /var/log/*
# Find deleted files still open by processes
- lsof +L1
The du command shows you what’s actually using space in directories, while df shows filesystem-level usage.
When they don’t match, you often have deleted files still held open by running processes.
This is also why proper log rotation doesn’t just delete files. Tools like logrotate rename files and send signals to processes so they can close and reopen their file handles cleanly.
Three key takeaways:
1. Filenames are just pointers to inodes
1. Deletion only happens when no processes reference the inode
1. Always check both df and du when troubleshooting disk space
It’s a small detail, but understanding it can save you from confusing production incidents.