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=$?
@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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<style type="text/css">
#sampleDialog{
height:200px;
width:500px;
background:white;
@Guiorgy
Guiorgy / ASCII_TO_GEORGIAN.sql
Last active January 31, 2024 13:27
Create an SQL function that converts ASCII characters to Georgian. (Useful for storing Georgian strings in the database using the ASCII encoding to save space and improve compatibility)
CREATE FUNCTION [dbo].[ASCII_TO_GEORGIAN] (@ascii nvarchar(max))
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @ret NVARCHAR(max);
SET @ret =
REPLACE(
REPLACE(
REPLACE(
REPLACE(
@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)
@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)