Skip to content

Instantly share code, notes, and snippets.

View Guiorgy's full-sized avatar

Guiorgy Guiorgy

  • Ecopre
  • Georgia
View GitHub Profile
@Guiorgy
Guiorgy / build.sh
Last active April 23, 2024 13:02
Download the latest, or a specified, Fastfetch release source and build a DEB package
#!/usr/bin/env bash
# usage examples:
# $ ./build.sh
# $ ./build.sh 2.7.0
set -Eeo pipefail # exit on error
handle_error() {
error_code=$?
@Guiorgy
Guiorgy / DateTimeIsoExtensions.cs
Last active November 20, 2023 13:42
Convert a DateTime object to and from an ISO string faster than the builtin methods
namespace DateTimeIso;
public static class DateTimeIsoExtensions
{
/// <summary>
/// Converts <see cref="DateTime"/> into an ISO 8601:2004 string (<c>yyyy-MM-dd HH:mm:ss.fff</c>) faster than <see cref="DateTime.ToString"/>.
/// </summary>
/// <param name="dateTime">the <see cref="DateTime"/> to be converted.</param>
/// <param name="milliseconds">if <see langword="false"/>, milliseconds won't be shown (<c>yyyy-MM-dd HH:mm:ss</c>).</param>
/// <param name="strictDateTimeDelimiter">if <see langword="true"/>, <c>'T'</c> will be used as the delimiter between date and time as per ISO 8601-1:2019 (<c>yyyy-MM-ddTHH:mm:ss.fff</c>).</param>
@Guiorgy
Guiorgy / CheckBoxLabeled.xaml
Created August 2, 2023 15:05
A custom MAUI view that combines a CheckBox with a Label and reacts to taps to both the CheckBox and Label
<?xml version="1.0" encoding="utf-8" ?>
<HorizontalStackLayout xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiExtensions.CheckBoxLabeled"
x:Name="this">
<!-- Color="{Binding Source={x:Reference this}, Path=Color}" -->
<CheckBox
x:Name="CheckBox"
IsChecked="{Binding Source={x:Reference this}, Path=IsChecked}"
@Guiorgy
Guiorgy / ReadOnlySpan.py
Last active January 24, 2023 21:29
A Python 3.11 implementation of a Read Only Span
import collections.abc
from typing import overload, Sequence, TypeVar, Optional, Self
_T_co = TypeVar("_T_co", covariant=True)
class ReadOnlySpan(collections.abc.Sequence):
def __init__(self, source: Sequence[_T_co], start: Optional[int] = None, length: Optional[int] = None):
if not isinstance(source, collections.abc.Sequence):
@Guiorgy
Guiorgy / MutableString.cs
Last active November 24, 2022 14:53
An "evil" C# wrapper class that allows the mutation of the internal string object
/// <summary>
/// <strong>This class uses unsafe code and is only meant as a thought experiment. Do NOT use this in production!</strong>
/// <para/>
/// A wrapper to a string object that allows the mutation of the said string.
/// </summary>
public sealed class MutableString
{
/**
* We are assuming that if we allocate a char[] array and write it in a specific way that
* taking a reference to one of it's elements, we can "fool" .NET into thinking that that's
@Guiorgy
Guiorgy / StringReplaceTokensBatchFast.cs
Last active November 15, 2022 16:01
Search occurrences of specified tokens (character sequences surrounded by specified prefix and postfix delimiters) in a string and replace them with other specified strings faster and with less memory usage
public static class StringExtensionMethods
{
/**
* Returns a new string in which all occurrences of specified tokens (character sequences surrounded
* by the specified prefix and postfix delimiters) in the current string are replaced with other specified strings.
*
* All tokens must start and end with the same prefix and postfix delimiters.
* `toReplace` strings in the batch should not have those delimiters explicitly included.
*/
public static string ReplaceBatch(this string origin, char prefix, char postfix, params (string toReplace, string replaceWith)[] batch)
@Sieboldianus
Sieboldianus / README.md
Last active March 14, 2024 10:52 — forked from centic9/userDefineLang_Dockerfile.xml
Notepad++ syntax highlighting for Dockerfiles (Dark version)

Notepad++ syntax highlighting for Dockerfiles (Dark version)

Store userDefineLang_DockerfileDark.xml at %AppData%\Roaming\Notepad++\userDefineLangs\userDefineLang_DockerfileDark.xml and select Language > Dockerfile in Notepad++.

This color theme is specifically compatible with VS2015-Dark-Npp Theme.

Automatically apply style

@Guiorgy
Guiorgy / VigenereCipher.cs
Last active November 12, 2022 23:34
A simple implementation of the Vigenere Cipher in C#
// #define VERBOSE // define for debug logs
// By deafult the alphabet only includes Lowercase Latin letters and the space character
#define INCLUDE_UPPER // define to include Uppercase Latin letters
#define INCLUDE_NUMBERS // define to include numbers
#define INCLUDE_SYMBOLS // define to include other valid ASCII characters
// #define INCLUDE_GEORGIAN // define to include Georgian letters
#define IGNORE_INVALID_CHARACTERS // define to discard invalid characters without stopping the algorithm
using System;
@Guiorgy
Guiorgy / Makefile
Created April 15, 2021 14:43
C++ library Makefile template
# Makefile based on https://gist.github.com/rioki/3957339 and https://stackoverflow.com/a/12099167
PACKAGE = my_package
VERSION = 1.0.0
CXX ?= g++ -std=c++0x
CXXFLAGS += -march=native -I include -D VERSION=\"$(VERSION)\" -D MY_PACKAGE_EXPORTS
LDFLAGS +=
ifeq ($(OS),Windows_NT)
// prime calculation based on https://gist.github.com/rongjiecomputer/d52f34d27a21b8c9c9e82ca85b806640
// add increase limits or it wont compile for sieveSize = 1000000 -fconstexpr-loop-limit=2000000 -fconstexpr-ops-limit=335544320
// use debug build.
// release build will optimize most of the loop away.
#include <chrono>
#include <iostream>
#include <numeric>
#include <span>
#include <stdio.h>