Skip to content

Instantly share code, notes, and snippets.

View emrekgn's full-sized avatar
🏠
Working from home

Emre Akkaya emrekgn

🏠
Working from home
View GitHub Profile
@emrekgn
emrekgn / publishing-from-github.md
Created November 27, 2025 13:13
How to publish a Python package from Github to pypi ("Trusted Publishers" method)

Publishing to PyPI from GitHub with Trusted Publishers

This guide walks through the full workflow for publishing a Python package to PyPI using GitHub Actions and PyPI's Trusted Publishers (OIDC) feature. No long‑lived API tokens are required—PyPI issues temporary credentials to GitHub at publish time.


1. Prerequisites

  1. A PyPI account with two-factor authentication enabled.
@emrekgn
emrekgn / a-spring-cloud-config-server-application.yml
Last active July 19, 2024 18:32
Spring Cloud Config Server and Client example configuration
# application.yml file of the config server (Spring Cloud Config Server)
server:
port: 9999 # or whatever
spring:
application:
name: config-service
cloud:
config:
server:
git:
@laughinghan
laughinghan / Every possible TypeScript type.md
Last active October 18, 2025 10:00
Diagram of every possible TypeScript type

Hasse diagram of every possible TypeScript type

  • any: magic, ill-behaved type that acts like a combination of never (the proper [bottom type]) and unknown (the proper [top type])
    • Anything except never is assignable to any, and any is assignable to anything at all.
    • Identities: any & AnyTypeExpression = any, any | AnyTypeExpression = any
    • Key TypeScript feature that allows for [gradual typing].
  • unknown: proper, well-behaved [top type]
    • Anything at all is assignable to unknown. unknown is only assignable to itself (unknown) and any.
    • Identities: unknown & AnyTypeExpression = AnyTypeExpression, unknown | AnyTypeExpression = unknown
  • Prefer over any whenever possible. Anywhere in well-typed code you're tempted to use any, you probably want unknown.
@emrekgn
emrekgn / collect-sysinfo.py
Last active March 4, 2025 13:35
Collect system information (BIOS, CPU, GPU, installed packages, motherboard and more) in a cross-platform manner!
#!/usr/bin/env python
"""
Print (and write to JSON file) system information in a cross-platform manner.
Output contains information about platform, BIOS, CPU, memory, disk, GPU, network, peripheral devices, installed
packages, motherboard and users.
This script heavily relies on psutil and some other bash/powershell commands. See requirements.txt for dependency list.
@hogelog
hogelog / pyside.py
Created April 8, 2013 17:53
QSystemTrayIcon Example
#!/usr/bin/python
# Import PySide classes
import sys
from PySide.QtCore import *
from PySide.QtGui import *
class App:
def __init__(self):
@laszlomiklosik
laszlomiklosik / Maven multi-module build options
Created January 28, 2013 07:29
Maven multi-module build options
# Inspired from http://blog.akquinet.de/2010/05/26/mastering-the-maven-command-line-%E2%80%93-reactor-options/
# Build only specific modules:
mvn clean install -pl sub-module-name2
mvn clean install -pl sub-module-name2,sub-module-name3
# Build only starting from specific sub-module (resume from)
mvn clean install -rf sub-module-name2
# Build dependencies (also make)
@KartikTalwar
KartikTalwar / Documentation.md
Last active October 31, 2025 06:59
Rsync over SSH - (40MB/s over 1GB NICs)

The fastest remote directory rsync over ssh archival I can muster (40MB/s over 1gb NICs)

This creates an archive that does the following:

rsync (Everyone seems to like -z, but it is much slower for me)

  • a: archive mode - rescursive, preserves owner, preserves permissions, preserves modification times, preserves group, copies symlinks as symlinks, preserves device files.
  • H: preserves hard-links
  • A: preserves ACLs