Categories
blog webdev

webDEV for Nova

Screenshot 2026 02 16 at 12.31.53
Categories
blog officialstupid threejs toy box

Toy Box

13 feb update

  • Block size: 1x – 8x. The new tool allows to add tiny blocks for precise design.
  • Delete: ‘Build’ button now acts like the ‘Delete’ block when you ‘right-click + space bar’ the mouse.
  • Undo: new button with keyboard support using ‘esc’ button.

Categories
blog threejs toy box

Toy Box

What the hell is this toy box?

Just adding new logic. I donโ€™t know what Iโ€™m doing ๐Ÿ˜„

https://fun.dharan.city/toy-box/ (simple JS/HTML/CSS)

#three.js

base on: https://aistudio.google.com/apps/bundled/voxel_toy_box?showPreview=true&showAssistant=true

demo – https://www.youtube.com/watch?v=AiYuEIIn2ao

more toward mobile and her iPad base build tool. so no plan for PC drag, rotate for canvas.

8 feb 2026

  • fixing UI for more mobile friendly
  • better UX for color pallets
  • 20 presets
  • move
  • block = preset

9 feb 2026

  • more fine tunes color — new color shades
  • ‘BRUSH TOOL’ – color change of pre made blocks

Round 2

  • Web Audio
  • Auto-Save (local storage / Cookies / Cache)

Draft plan

  • ‘move preset’ button
  • block size 1x 2x
  • screenshot
  • recorded screen

Side note: Iโ€™m not a fan of r/git or r/github.

Categories
blog

Web Speech for Dummies โ€” Me and AI

Current:

const utterance = new SpeechSynthesisUtterance(name);

Change to:

const utterance = new SpeechSynthesisUtterance(name.toLowerCase());

This will make it say “m e r c u r y” instead of “CAPITAL M CAPITAL E CAPITAL R…”

Categories
blog reddit

laptop/pc buying tips

let me share MY – laptop buying tips!! (I’m not forcing anyone to follow, so don’t start arguments)

3kAxMk3XdEQHkgVq54JY5gaAscRXqgHcBPgj7STln8M

my painโ€”can’t play games on Windows. Windows getting worse by the day; even my desktop i5 13th / 580x looks shit these days. It’s been a year since I last played a game. Even if I clean format or use few SSDs or NVMe, itโ€™s always the same, so I stopped bothering myself

so if you want an all-in-one laptop that can run Windows, Linux(problems free), and macOS, then just ask chatGPT to find the best Intel processor which supports all without pain.

like, if you make a wrong choice of processor, then after breaking up with Windows you will be nowhere, with a worse relationship with Linux. and most of the time, no way to use macOS.

so use chatGPT and research more… and more….

macOS – Hackintosh if you looking easy build try EFI from olarila

Linux โ€“ Why is Linux painful?
Even a potato laptop can run Linux, but some GPUs or processors donโ€™t work well with it. So just try using ChatGPT to find out why Linux has problems with certain processors or GPUs.


#reddit post replay.

Categories
blog Design

OK!

Screenshot 2026 01 01 at 16.19.52

OK! But Iโ€™m still unhappy deep down in my mind. #UX

Categories
blog wordpress

Plugin Name: Post/Page Specific JS & CSS

/*
Plugin Name: Post/Page Specific JS & CSS
Description: Add JavaScript and CSS to individual posts/pages
Version: 2.0
*/

Download

<?php
/*
Plugin Name: Post/Page Specific JS & CSS
Description: Add JavaScript and CSS to individual posts/pages
Version: 2.0
License: No License
*/

// Add custom field to post editor
add_action('add_meta_boxes', function() {
	// JavaScript box
	add_meta_box('post_js_box', 'Post JavaScript', 'post_js_meta_box', 'post', 'normal', 'high');
	add_meta_box('post_js_box', 'Page JavaScript', 'post_js_meta_box', 'page', 'normal', 'high');
	
	// CSS box
	add_meta_box('post_css_box', 'Post CSS', 'post_css_meta_box', 'post', 'normal', 'high');
	add_meta_box('post_css_box', 'Page CSS', 'post_css_meta_box', 'page', 'normal', 'high');
});

// JavaScript meta box
function post_js_meta_box($post) {
	wp_nonce_field('post_js_nonce', 'post_js_nonce_field');
	$value = get_post_meta($post->ID, '_post_javascript', true);
	echo '<textarea name="post_javascript" style="width:100%;height:150px;font-family:monospace;" placeholder="// Enter JavaScript code here (without <script> tags)">' . esc_textarea($value) . '</textarea>';
	echo '<p><small>Enter JavaScript without <script> tags. jQuery is available if your theme loads it.</small></p>';
	
	// Show jQuery example
	echo '<details style="margin-top:10px;background:#f5f5f5;padding:10px;">';
	echo '<summary style="cursor:pointer;font-weight:bold;">jQuery Example</summary>';
	echo '<pre style="background:#fff;padding:10px;margin-top:5px;">';
	echo "jQuery(document).ready(function($) {\n";
	echo "    // Your jQuery code here\n";
	echo "    $('.post-title').css('color', 'red');\n";
	echo "});";
	echo '</pre>';
	echo '</details>';
}

// CSS meta box
function post_css_meta_box($post) {
	wp_nonce_field('post_css_nonce', 'post_css_nonce_field');
	$value = get_post_meta($post->ID, '_post_css', true);
	echo '<textarea name="post_css" style="width:100%;height:150px;font-family:monospace;" placeholder="/* Enter CSS code here (without <style> tags) */">' . esc_textarea($value) . '</textarea>';
	echo '<p><small>Enter CSS without <style> tags. Use !important if needed to override theme styles.</small></p>';
	
	// Show CSS examples
	echo '<details style="margin-top:10px;background:#f5f5f5;padding:10px;">';
	echo '<summary style="cursor:pointer;font-weight:bold;">CSS Examples</summary>';
	echo '<pre style="background:#fff;padding:10px;margin-top:5px;">';
	echo "/* Change post title color */\n";
	echo ".entry-title {\n";
	echo "    color: #ff0000 !important;\n";
	echo "}\n\n";
	echo "/* Add border to images in this post */\n";
	echo ".post-" . $post->ID . " img {\n";
	echo "    border: 2px solid #ccc;\n";
	echo "    padding: 5px;\n";
	echo "}\n\n";
	echo "/* Make paragraphs larger */\n";
	echo ".post-" . $post->ID . " p {\n";
	echo "    font-size: 18px;\n";
	echo "    line-height: 1.6;\n";
	echo "}";
	echo '</pre>';
	echo '</details>';
}

// Save custom fields
add_action('save_post', function($post_id) {
	// Save JavaScript
	if (isset($_POST['post_js_nonce_field']) && wp_verify_nonce($_POST['post_js_nonce_field'], 'post_js_nonce')) {
		if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
		if (!current_user_can('edit_post', $post_id)) return;
		
		if (isset($_POST['post_javascript'])) {
			update_post_meta($post_id, '_post_javascript', $_POST['post_javascript']);
		} else {
			delete_post_meta($post_id, '_post_javascript');
		}
	}
	
	// Save CSS
	if (isset($_POST['post_css_nonce_field']) && wp_verify_nonce($_POST['post_css_nonce_field'], 'post_css_nonce')) {
		if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
		if (!current_user_can('edit_post', $post_id)) return;
		
		if (isset($_POST['post_css'])) {
			update_post_meta($post_id, '_post_css', $_POST['post_css']);
		} else {
			delete_post_meta($post_id, '_post_css');
		}
	}
});

// Output JavaScript in footer
add_action('wp_footer', function() {
	if (is_singular()) {
		global $post;
		
		// Output JavaScript
		$js = get_post_meta($post->ID, '_post_javascript', true);
		if (!empty($js)) {
			echo "\n<!-- Post-Specific JavaScript -->\n";
			echo "<script>\n";
			echo "(function() {\n";
			echo "try {\n";
			echo stripslashes(trim($js)) . "\n";
			echo "} catch(e) {\n";
			echo "console.error('Post JS Error on post #" . $post->ID . ":', e);\n";
			echo "}\n";
			echo "})();\n";
			echo "</script>\n";
		}
		
		// Output CSS in footer (as fallback)
		$css = get_post_meta($post->ID, '_post_css', true);
		if (!empty($css)) {
			echo "\n<!-- Post-Specific CSS (in footer) -->\n";
			echo "<style>\n";
			echo stripslashes(trim($css)) . "\n";
			echo "</style>\n";
		}
	}
});

// Output CSS in header (primary location)
add_action('wp_head', function() {
	if (is_singular()) {
		global $post;
		$css = get_post_meta($post->ID, '_post_css', true);
		if (!empty($css)) {
			echo "\n<!-- Post-Specific CSS -->\n";
			echo "<style>\n";
			echo stripslashes(trim($css)) . "\n";
			echo "</style>\n";
		}
	}
});

// Add admin styles for better appearance
add_action('admin_head', function() {
	echo '<style>
	.post-js-box textarea,
	.post-css-box textarea {
		background: #f8f8f8;
		border: 1px solid #ddd;
		border-radius: 4px;
		padding: 10px;
	}
	.post-js-box textarea:focus,
	.post-css-box textarea:focus {
		background: #fff;
		border-color: #007cba;
		box-shadow: 0 0 0 1px #007cba;
	}
	.post-js-box details,
	.post-css-box details {
		border: 1px solid #ddd;
		border-radius: 4px;
	}
	</style>';
});
Categories
blog haiku

winter

Tiny dancing feet
Crush and crack dry winter leavesโ€”
Giggles warm the air ๐Ÿ‚

haiku #winter

Categories
blog haiku

AI race!

dog logs the fight,
cat scripts the joke –ย 
clouds pause.ย 

#haikuย 

Categories
blog haiku

30 Nov, 2025

Happy! Blue Beanie Dayโ€”
Everest quiet above,
old ways will come back soon

#stander #haiku

Categories
blog haiku iPhone

iPhone photography

Glass moon in their palms,
posing for the phantom crowdโ€”
๐Ÿคณ drifts like a joke.

#photography #iphone #haiku