Skip to content

Instantly share code, notes, and snippets.

View abdivasiyev's full-sized avatar

Asliddinbek Azizovich abdivasiyev

View GitHub Profile
@abdivasiyev
abdivasiyev / NamedQueryParam.hs
Created September 9, 2026 12:37
Records as query param on Servant
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
module Metanchi.Types.Servant.NamedQueryParam
( FromQuery (..)
, Named (..)
, RecordQueryParam
, decodeQueryText
@abdivasiyev
abdivasiyev / main.go
Created August 12, 2026 09:30
Go generic event dispatcher and event bus
package main
import (
"context"
"fmt"
)
type Event any
type Handler[E Event] interface {
@abdivasiyev
abdivasiyev / main.go
Created June 2, 2026 05:18
Simple transaction processing E-DSL (vibe coded for demonstration purposes only)
// E-DSL для параллельной обработки бизнес-транзакций.
//
// Один файл, без внешних зависимостей. Инфраструктура (Redis / PostgreSQL /
// Kafka) вынесена за интерфейсы; здесь даны in-memory реализации, чтобы код
// запускался как есть. Места под реальные адаптеры помечены комментариями
// // [PG], // [Redis], // [Kafka].
//
// Что внутри:
// - AST транзакции как данные (Step: Op, Seq, Par, Await, Fee, Spawn, Emit)
// - примитивы hold / capture / void / debit / credit / refund
@abdivasiyev
abdivasiyev / 0001-feat-Add-nilaway-plugin.patch
Last active January 9, 2026 12:23
Nilaway enabled golangci-lint for pre-commit hooks
From 39a0771134cf2ebc355f94d1a402c9f061b5ee66 Mon Sep 17 00:00:00 2001
From: Asliddin Abdivasiyev <asliddin.abdivasiyev@gmail.com>
Date: Fri, 9 Jan 2026 17:04:59 +0500
Subject: [PATCH] feat: Add nilaway plugin
---
cmd/golangci-lint/plugins.go | 2 +-
go.mod | 2 ++
go.sum | 4 ++++
3 files changed, 7 insertions(+), 1 deletion(-)
@abdivasiyev
abdivasiyev / heap.hs
Created December 4, 2025 14:54
Heap implementation in Haskell
module Heap where
data Heap a = Empty | Node a (Heap a) (Heap a) deriving (Show, Eq)
merge :: (Ord a) => Heap a -> Heap a -> Heap a
merge Empty h = h
merge h Empty = h
merge h1@(Node x l1 r1) h2@(Node y l2 r2)
| x >= y = Node x (merge r1 h2) l1
| otherwise = Node y (merge r2 h1) l2
@abdivasiyev
abdivasiyev / flake.nix
Created November 29, 2025 17:51
Setup development environment for Go compiler development
{
description = "Go compiler development environment";
nixConfig = {
allow-import-from-derivation = true;
};
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
@abdivasiyev
abdivasiyev / trash.als
Created October 16, 2025 03:44
Formal verification of Trash on Alloy 6
module Trash
var sig File {}
var sig Trash in File {}
fact init {
no Trash
}
@abdivasiyev
abdivasiyev / hosts
Created August 1, 2025 13:36 — forked from anilshanbhag/hosts
Hosts file to prevent google / youtube ads Paste the contents into /etc/hosts file in linux / mac
127.0.0.1 3ad.doubleclick.net
127.0.0.1 ad-emea.doubleclick.net
127.0.0.1 ad-g.doubleclick.net
127.0.0.1 ad-yt-bfp.doubleclick.net
127.0.0.1 ad.3au.doubleclick.net
127.0.0.1 ad.ae.doubleclick.net
127.0.0.1 ad.au.doubleclick.net
127.0.0.1 ad.be.doubleclick.net
127.0.0.1 ad.br.doubleclick.net
127.0.0.1 ad.de.doubleclick.net
@abdivasiyev
abdivasiyev / resource.go
Created June 16, 2025 09:25
Resource management using bracket pattern in Go
// package resource provides bracket pattern for
// resource management
package resource
import (
"fmt"
"mime/multipart"
"net/http"
"os"
)
@abdivasiyev
abdivasiyev / errorsx.go
Created April 25, 2025 06:05
Custom error struct for Go apps
package errorsx
import (
"errors"
"fmt"
"net/http"
)
type AppError struct {
message string