Skip to content

Instantly share code, notes, and snippets.

View yetimdasturchi's full-sized avatar
👨‍💻
Fisting code

Manuchehr Usmonov yetimdasturchi

👨‍💻
Fisting code
View GitHub Profile
<?php
//Tasofidiy son generatsiya qilish
function lcg(&$seed) {
//ushbu qiymatlar CSda tasodifiy son generatsiyasi uchun eng ko'p statistikalarga asoslanib aniqlangan
$a = 1664525;
$c = 1013904223;
// 2ning 32-darajasi
$m = pow(2, 32);
@yetimdasturchi
yetimdasturchi / vanilla_hater.c
Created April 2, 2024 23:27
Example code for explaining how malloc and free work in C language.
#include <sys/mman.h>
void* c_malloc(size_t size) {
void* ptr;
asm volatile (
"mov $9, %%rax\n"
"mov $0, %%rdi\n"
"mov %1, %%rsi\n"
"mov $3, %%rdx\n"
@yetimdasturchi
yetimdasturchi / smilar.c
Created March 25, 2024 05:20
Programming Classics: Implementing the World's Best Algorithms by Oliver. Smilar text implementation.
#include <stdio.h>
#include <string.h>
void similar_str( const char* txt1, int len1, const char* txt2, int len2, int* pos1, int* pos2, int* max, int* count ) {
*max = 0;
*count = 0;
for ( int i = 0; i < len1; i++ ) {
for ( int j = 0; j < len2; j++ ) {
int l = 0;
@yetimdasturchi
yetimdasturchi / huffman.php
Created March 3, 2024 02:53
Huffman coding in php
<?php
function huffmannEncode($string) {
$originalString = $string;
$occurences = array();
while (isset($string[0])) {
$occurences[] = array(substr_count($string, $string[0]), $string[0]);
$string = str_replace($string[0], '', $string);
}
@yetimdasturchi
yetimdasturchi / find.php
Created February 13, 2024 05:31
Find key from array with levenshtein distance
<?php
function findArrayWithLevenshtein( $input, $dic ) {
$minDistance = PHP_INT_MAX;
$correctedWord = $input;
foreach ( $dic as $key => $value ) {
$distance = levenshtein( $input, $key );
if ( $distance < $minDistance ) {
$minDistance = $distance;
@yetimdasturchi
yetimdasturchi / copy.sh
Created January 22, 2024 06:54
Ssh kalitlarni serverlar massiviga ko'chirish
#!/bin/bash
username="root" #ssh uchun foydalanuvchi
ssh_key_path="/home/$USER/.ssh/id_rsa.pub" #ssh kalit
# serverlar ro'yxati
servers=(
server1.domain.uz
server2.domain.uz
server3.domain.uz
@yetimdasturchi
yetimdasturchi / check.php
Created July 27, 2023 15:47
Check ip address is in tasix
<?php
function check_tasix( $ip ){
$range = @file_get_contents('tasix.json');
$range = json_decode($range, TRUE);
if( !is_array( $range ) ) return false;
ksort( $range );
$ip2long = ip2long( $ip );
if( $ip2long !== false ) {
yyyy-mm-dd: /^((((19|[2-9]\d)\d{2})\-(0[13578]|1[02])\-(0[1-9]|[12]\d|3[01]))|(((19|[2-9]\d)\d{2})\-(0[13456789]|1[012])\-(0[1-9]|[12]\d|30))|(((19|[2-9]\d)\d{2})\-02\-(0[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))\-02\-29))$/g
yyyy/mm/dd: /^((((19|[2-9]\d)\d{2})\/(0[13578]|1[02])\/(0[1-9]|[12]\d|3[01]))|(((19|[2-9]\d)\d{2})\/(0[13456789]|1[012])\/(0[1-9]|[12]\d|30))|(((19|[2-9]\d)\d{2})\/02\/(0[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))\/02\/29))$/g
mm-dd-yyyy: /^(((0[13578]|1[02])\-(0[1-9]|[12]\d|3[01])\-((19|[2-9]\d)\d{2}))|((0[13456789]|1[012])\-(0[1-9]|[12]\d|30)\-((19|[2-9]\d)\d{2}))|(02\-(0[1-9]|1\d|2[0-8])\-((19|[2-9]\d)\d{2}))|(02\-29\-((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g
mm/dd/yyyy: /^(((0[13578]|1[02])\/(0[1-9]|[12]\d|3[01])\/((19|[2-9]\d)\d{2}))|((0[13456789]|1[012])\/(0[1-9]|[12]\d|30)\/((19|[2-9]\d)\d{2}))|(02\/(0[1-9]|1\d|2[0-8])
@yetimdasturchi
yetimdasturchi / simple_chace.php
Created July 14, 2023 13:39
Simple cache system in php
<?php
function write_file( $path, $data, $mode = 'wb') {
if ( ! $fp = @fopen( $path, $mode ) ) return FALSE;
flock( $fp, LOCK_EX );
for ( $result = $written = 0, $length = strlen( $data ); $written < $length; $written += $result ) {
if ( ( $result = fwrite( $fp, substr( $data, $written ) ) ) === FALSE ) break;
}
@yetimdasturchi
yetimdasturchi / parse.js
Last active July 10, 2023 20:24
Parse javascript function from json string
if (typeof String.prototype.parseFunction != 'function') {
String.prototype.parseFunction = function () {
var funcReg = /function *\(([^()]*)\)[ \n\t]*{(.*)}/gmi;
var match = funcReg.exec(this.replace(/\n/g, ' '));
if(match) {
return new Function(match[1].split(','), match[2]);
}
return null;