Skip to content

Instantly share code, notes, and snippets.

View AliAlmasi's full-sized avatar
:bowtie:
Learning JS, TS and some other things

Ali Almasi AliAlmasi

:bowtie:
Learning JS, TS and some other things
View GitHub Profile
@AliAlmasi
AliAlmasi / win11ContextMenu.py
Created March 15, 2025 16:21
Change Windows 11 context menu style (legacy style and Fluent UI style)
import time, os, sys
from sty import fg, ef, rs # pip install sty
def typing(str):
for char in str:
time.sleep(0.05)
sys.stdout.write(char)
sys.stdout.flush()
print("\n")
# USAGE: python visual_cryptography.py file_to_encrypt.png
# $ pip install Pillow
from PIL import Image, ImageDraw
import os, sys
from random import SystemRandom
random = SystemRandom()
# If you want to use the more powerful PyCrypto ($ pip install pycrypto) then uncomment the next line and comment out the previous two lines
@AliAlmasi
AliAlmasi / newtab.js
Created August 12, 2024 23:33
A good way to navigate the user to a new tab (without using `location.replace` or `window.open`) in JS
function newtab(href) {
let a = document.createElement("a");
a.href = href;
a.setAttribute("target", "_blank");
a.click();
a.remove();
}
// You can use it like this:
document.querySelector("span").addEventListener("click", () => newtab("http://al1almasi.ir"));
@AliAlmasi
AliAlmasi / str_reverse.js
Last active October 24, 2024 21:45
Reverse a string in JS & PHP using this `str_reverse()` function
const readline = require("node:readline");
const input = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const str_reverse = (string) => {
let reverse = "";
for (let index = string.length; index > 0; index--)
@AliAlmasi
AliAlmasi / NegativeIndex.js
Last active October 24, 2024 21:47
A simple function to help you access array values from the end. Source: https://stackoverflow.com/a/64296726
const nIndex = (array, nIndex) => array.slice(nIndex)[0];
// Example:
const arr = [1,2,3,5,7,9];
console.log(nIndex(arr, -2)); // output: 7
console.log(nIndex(arr, -4)); // output: 3
@AliAlmasi
AliAlmasi / FormMove.cs
Last active June 23, 2024 17:46
Makes a Windows Form Application program movable when user drags any part of the form.
namespace WindowsFormApplication1 {
public partial class Form1: Form {
public Form1() {
InitializeComponent();
}
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[System.Runtime.InteropServices.DllImport("user32.dll")]
@AliAlmasi
AliAlmasi / IrIdNumberCheck.js
Created June 17, 2024 15:49
Iranian ID number checker, implemented with JS
function IrIdCheck(code) {
var L = code.length;
if (L < 8 || parseInt(code, 10) === 0) return false;
code = ('0000' + code).substr(L + 4 - 10);
if (parseInt(code.substr(3, 6), 10) === 0) return false;
int c = parseInt(code.substr(9, 1), 10);
int s = 0;
for (int i = 0; i < 9; i++)
s += parseInt(code.substr(i, 1), 10) * (10 - i);
s = s % 11;
@AliAlmasi
AliAlmasi / PersianDate.js
Created December 15, 2023 23:00
A better way to use Persian Calendar in JS.
class PersianDate extends Date {
constructor(...args) {
super(...args);
}
toLocaleDateString = () => super.toLocaleDateString("fa-IR-u-nu-latn");
getParts = () => this.toLocaleDateString().split("/");
getDay = () => (super.getDay() === 6 ? 0 : super.getDay() + 1);
getDate = () => this.getParts()[2];
getMonth = () => this.getParts()[1] - 1;
@AliAlmasi
AliAlmasi / Preload CSS - Not blocking CSS.html
Created November 24, 2023 21:10 — forked from thedaviddias/Preload CSS - Not blocking CSS.html
Preload CSS and don't block the DOM with your CSS file request.
<link rel="preload" href="css/global.min.css" as="style" onload="this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="css/global.min.css"></noscript>
<script>
/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
!function(a){"use strict";var b=function(b,c,d){function j(a){if(e.body)return a();setTimeout(function(){j(a)})}function l(){f.addEventListener&&f.removeEventListener("load",l),f.media=d||"all"}var g,e=a.document,f=e.createElement("link");if(c)g=c;else{var h=(e.body||e.getElementsByTagName("head")[0]).childNodes;g=h[h.length-1]}var i=e.styleSheets;f.rel="stylesheet",f.href=b,f.media="only x",j(function(){g.parentNode.insertBefore(f,c?g:g.nextSibling)});var k=function(a){for(var b=f.href,c=i.length;c--;)if(i[c].href===b)return a();setTimeout(function(){k(a)})};return f.addEventListener&&f.addEventListener("load",l),f.onloadcssdefined=k,k(l),f};"undefined"!=typeof exports?exports.loadCSS=b:a.loadCSS=b}("undefined"!=typeof global?global:this);
/*! loadCSS rel=preload po
@AliAlmasi
AliAlmasi / Counter.js.html
Created October 17, 2023 00:27
Simple counter w/ JS
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Counter.Js</title>
<style>
*,
*::before,
*::after {