Skip to content

Instantly share code, notes, and snippets.

View Guiorgy's full-sized avatar

Guiorgy Guiorgy

  • Ecopre
  • Georgia
View GitHub Profile
// 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>
@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 / ProgressNotificationManager.kt
Last active March 23, 2020 22:39
A NotificationManagerCompat wrapper made to simplify handling of progress notifications
import android.annotation.SuppressLint
import android.annotation.TargetApi
import android.app.Notification
import android.app.NotificationChannel
import android.content.Context
import android.os.Build
import androidx.annotation.IntDef
import androidx.annotation.RequiresApi
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
@Guiorgy
Guiorgy / ReverseSeekBar.kt
Last active February 20, 2020 20:01
An Android SeekBar, that's flipped horizontally
class ReverseSeekBar : SeekBar {
constructor(context: Context) : super(context) {
init()
}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
init()
}
constructor(context: Context, attrs: AttributeSet?, defStyle: Int) : super(context, attrs, defStyle) {
init()
@Guiorgy
Guiorgy / PrimitiveContainerConverter.java
Created June 19, 2019 10:57
A simple List to primitive array, and primitive array to List converter
@SuppressWarnings({"WeakerAccess", "unused"})
public abstract class PrimitiveContainerConverter {
public interface ListByteRef extends Supplier<List<? extends Byte>> {}
/**
* Convert Lists of {@link Byte} to array of primitive type byte
*
* usage: array = toPrimitiveArray(() -> list);
*/
public static byte[] toPrimitiveArray(final ListByteRef byteListRef) {
List<? extends Byte> byteList = byteListRef.get();
@Guiorgy
Guiorgy / Xamarin.Android Manifest merging workaround.md
Last active June 12, 2019 09:32
Currently (11/1/19) Xamarin does not support merging manifest, or having different manifests for different build configurations. This is a workaround originally found by AlexanderMelchers at https://forums.xamarin.com/discussion/97461/android-manifest-file-merge-rules
  1. Download AXMLPrinter2.jar from https://code.google.com/archive/p/android4me/downloads
  2. Build your solution and create an archive (.apk) by selecting Build->Archive...
  3. After archiving is done, open folder and find the archived *.apk, open the archive (for example using 7Zip) and extract/unzip AndroidManifest.xml
  4. Open any text editor and type: start cmd.exe /c "java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.plaintext.xml" and save it as a *.bat file in the same directory
  5. Run the *.bat file and check the resulting AndroidManifest.plaintext.xml file. This is the file we will be editing using a shell script
  6. Create the shell script you need. It should target obj$configuration\android\AndroidManifest.xml for example: (Get-Content 'obj\Release*\android\AndroidManifest.xml').replace('', '') | Set-Content 'obj\Release*\android\AndroidManifest.xml' the RemoveAndroidPermission.ps1 script above finds RE
@Guiorgy
Guiorgy / FenwickTree.cpp
Created December 16, 2018 21:20
FenwickTree structure for c++
struct FenvickTree {
struct Node {
int Value;
int Sum;
int Parent;
int Next;
};
vector<Node> Tree;
@hedzr
hedzr / setup-android-build-tools.sh
Last active April 30, 2019 21:21
setup-android-build-tools-on-ubuntu-16-or-heigher
#!/bin/bash
setup-android-build-tools () {
sudo apt install -y openjdk-8-jdk
mkdir -P ~/Android/sdk
pushd ~/Android/sdk >/dev/null
[ -d tools ] || {
[ -f sdk-tools-linux-3859397.zip ] || wget -c https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
[ -d tools ] || [ -f sdk-tools-linux-3859397.zip ] && unzip sdk-tools-linux-3859397.zip
<!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;