Skip to content

Instantly share code, notes, and snippets.

@jsuryahyd
jsuryahyd / useStateExample.js
Last active July 7, 2025 19:58
Simplified React `useState` implementation
/**
* Ask: Update the App component so the <h2> element gets a color
* from the COLORS array. Clicking on the Next button should cycle through the colors.
*
* Example: It should be initially blue, then red, ..., cyan, and then blue again.
*/
import ReactDOM from "react-dom";
// import { useState } from "react";
const COLORS = ["blue", "red", "green", "yellow", "black", "cyan"];
@jsuryahyd
jsuryahyd / ArrayIterator.ts
Created June 30, 2025 08:20
Array Iterator and Interleaver - iterative and queue approach
// Interview question by Fluxon (round 2)
//iterator interface
// next(): number;
// hasNext(): boolean;
class ArrayIterator<T> {
nextIdx = 0;
arr: T[] = [];
constructor(arr: T[]) {
this.arr = arr;
@jsuryahyd
jsuryahyd / commands.sh
Created September 28, 2023 10:41
disable zscaler on mac
# https://www.atpeaz.com/disable-zscaler-temporarily-on-your-mac/
# disable
sudo launchctl unload /Library/LaunchDaemons/com.zscaler.service.plist && sudo launchctl unload /Library/LaunchDaemons/com.zscaler.tunnel.plist
# Reenable
sudo launchctl load /Library/LaunchDaemons/com.zscaler.service.plist && sudo launchctl load /Library/LaunchDaemons/com.zscaler.tunnel.plist
@jsuryahyd
jsuryahyd / steps.md
Last active August 8, 2022 04:41
Set Extenal Microphone as default on Startup in Linux
  • Make sure PulseAudio is installed
  • Search for "Startup applications" in applications (click on windows menu and search)
  • click Add item
  • In Command input - pactl set-default-source 'alsa_input.usb-0c76_USB_PnP_Audio_Device-00.mono-fallback' [refer below for how to get the name of the mic]
  • Click save
  • It should run automatically from next startup
@jsuryahyd
jsuryahyd / logger.js
Last active February 14, 2022 08:56
Logging in nodejs
//log
const log4js = require("log4js");
const path = require("path");
log4js.configure({
appenders: {
info: {
type: "dateFile",
filename: path.join(__dirname, "../logs", "info.log")
},
errors: {
@jsuryahyd
jsuryahyd / Readme.md
Created September 16, 2021 15:40
Nginx config for SPA

Serve with nginx (no pm2)

server{
   listen 443 ssl;
   server_name surya.in;

   ssl_certificate /etc/nginx/sslcerts/surya.in.crt;
   ssl_certificate_key /etc/nginx/sslcerts/surya.in.rsa;

   root /var/www/my-react-app/build;
@jsuryahyd
jsuryahyd / snip.js
Created October 24, 2020 07:11
Algorithm/snippet to get odd item in two arrays
function removal(cA,bA) {
var count = 0;
for (var i = 0; i < cA.length; i++) {
if (i < 0) continue;
for (var j = 0; j < bA.length; j++) {
if (i < 0 || j < 0) continue;
count++;
console.log('comparing', i, j, cA[i], bA[j]);
if (cA[i] == bA[j]) {
console.log('removed', i, j, cA[i], bA[j]);
@jsuryahyd
jsuryahyd / clipboard-helpers.js
Last active August 13, 2020 09:48
Clipboard reading with browser js
/*
- https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read
- https://stackoverflow.com/a/23024504/7314900
- https://stackoverflow.com/a/54132144/7314900
*/
function getTextFromBlob(blob){
var reader = new FileReader();
reader.onload = function() {
console.log(reader.result);
}
@jsuryahyd
jsuryahyd / debounce.js
Created July 14, 2020 13:21
Some utils for frontend
/**
const myInput = document.getElementById("myInput");
function helloInput() {
console.log( "You typed:", myInput.value );
}
myInput.addEventListener(
"keyup",
debounce( helloInput, 1000 )
@jsuryahyd
jsuryahyd / logger.js
Created April 19, 2020 10:35
Create log files date wise using log4js in nodejs
//log
const log4js = require("log4js");
const path = require("path");
log4js.configure({
appenders: {
errors: {
type: "dateFile",
filename: path.join(__dirname, "../../logs", "errors.log")
}
},