Skip to content

Instantly share code, notes, and snippets.

package app.data
import cats.effect.kernel.Resource
import cats.effect.std.Semaphore
import cats.effect.{Concurrent, IO, Ref, Sync, SyncIO}
import cats.implicits.{toFlatMapOps, toFunctorOps}
import cats.{Applicative, Functor, Monad, ~>}
/**
* [[Ref]] of [[A]] which relies on locking instead of compare-and-swap to provide concurrent access data safety.
@arturaz
arturaz / async.rs
Created May 5, 2023 08:58
Rust: async_trait + pin_project
use std::{pin::Pin, future::Future, task::{Context, Poll}};
use async_trait::async_trait;
use pin_project::pin_project;
use std::sync::Arc;
#[async_trait]
pub trait MyAsyncTrait: Send + Sync + Clone {
async fn my_async_fn(&self);
}
@arturaz
arturaz / gist:67d573b080798db265958ef48a912399
Created March 30, 2023 14:41
Scala compiler error on 3.3.1-RC1-bin-20230328-5c2efc5-NIGHTLY
scala.MatchError: ContextualMethodType(List(x$3), List(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class app)),object data),LogCorrelationId)), AppliedType(TypeRef(ThisType(TypeRef(NoPrefix,module class util)),class Either),List(TypeRef(TermRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),Predef),String), AppliedType(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class <root>)),object scala),Option),List(TypeRef(TermRef(ThisType(TypeRef(NoPrefix,module class data)),object steam),SteamClientId)))))) (of class dotty.tools.dotc.core.Types$CachedMethodType)
at dotty.tools.dotc.core.tasty.TreePickler.pickleNewType(TreePickler.scala:294)
at dotty.tools.dotc.core.tasty.TreePickler.pickleType(TreePickler.scala:162)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTree(TreePickler.scala:625)
at dotty.tools.dotc.core.tasty.TreePickler.pickleTpt(TreePickler.scala:319)
at dotty.tools.dotc.core.tasty.TreePickler.pickleDef(TreePickler.scala:338)
at dotty.tools.dotc.core.tasty.TreePickl
diff --git a/quill-sql/src/main/scala/io/getquill/util/Format.scala b/quill-sql/src/main/scala/io/getquill/util/Format.scala
index 31e8e7e1..040690ad 100644
--- a/quill-sql/src/main/scala/io/getquill/util/Format.scala
+++ b/quill-sql/src/main/scala/io/getquill/util/Format.scala
@@ -120,7 +120,9 @@ object Format {
linesTrimmedLast.mkString("\n")
val formatted =
- Try {
+ // We can't use `Try` here because it won't catch linking errors as those are considered
@arturaz
arturaz / gist:275a20a4eaa8e1563c46fd7acd143eab
Last active January 29, 2024 12:46
ALine XBox One build shader compilation failure for Unity
### Unity 2020.3.40f1
### -unityBuildTarget "GameCoreXboxOne"
[build|2/9/2023 8:42:11 AM|00:07:45.1588570] Compiling shader "Hidden/ALINE/Surface" pass "Pass 2" (fp)
[build|2/9/2023 8:42:11 AM|00:07:45.1591019] 1 / 1 variants left after stripping, processed in 0.00 seconds
[build|2/9/2023 8:42:11 AM|00:07:45.1593342] starting compilation...
[build|2/9/2023 8:42:11 AM|00:07:45.1596597] finished in 0.02 seconds. Local cache hits 0 (0.00s CPU time), remote cache hits 0 (0.00s CPU time), compiled 1 variants (0.02s CPU time), skipped 0 variants
[build|2/9/2023 8:42:11 AM|00:07:45.1599886] Serialized binary data for shader Hidden/ALINE/Surface in 0.00s
[build|2/9/2023 8:42:11 AM|00:07:45.1603637] gamecore_xboxone (total internal programs: 0, unique: 0)
[build|2/9/2023 8:42:11 AM|00:07:45.1607149] Shader error in 'Hidden/ALINE/Surface': unknown type name 'sampler2D'; did you mean 'sampler'? at 11(1) (on gamecore_xboxone)
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text;
using UnityEngine;
using Debug = UnityEngine.Debug;
public unsafe class TestInVsPointer : MonoBehaviour
{
// 8 * 8 = 64 bytes
@arturaz
arturaz / CallbacksSubscribable.cs
Last active December 20, 2022 15:14
A version of the Photon Quantum DebugDraw commands that last for a duration rather than a single frame only.
using System;
using FPCSharpUnity.core.dispose;
using Quantum.Game.extensions;
namespace Quantum;
/// <summary>
/// <para>Read-only interface for <see cref="CallbackDispatcher"/>.</para>
///
/// <para>
@arturaz
arturaz / plutus.scala
Created December 3, 2022 07:47
Parser for plutus transactions PDF
val src = """
Card Transaction
CRV*UAB ABUNDO, Vilnius, LT CD 0108 2022/01/12, 18:26 - €1.5
"""
import java.time.LocalDateTime
val Re = """^(.*?)(\d{4})/(\d\d)/(\d\d),\s*(\d\d):(\d\d)\s*(-)?\s*€([\d\\.]+)$""".r
val amounts = src.linesIterator.sliding(2).withPadding("").flatMap { case Seq(prevLine, line) =>
if (
line.contains("Card Deposit")
@arturaz
arturaz / FuncK.cs
Last active December 2, 2022 19:51
Practical demonstration of config diffing with higher kinded types in C#
using System;
using JetBrains.Annotations;
namespace FPCSharpUnity.core.functional.higher_kinds;
/// <summary>
/// As <see cref="Func{A,B}"/>, but transforms the functor W1[_] to W2[_], instead of transforming the value.
/// </summary>
[PublicAPI] public interface FuncK<W1, W2> {
HigherKind<W2, A> apply<A>(HigherKind<W1, A> value);
@arturaz
arturaz / Bounds1.scala
Created October 10, 2022 18:25
Code for "Scala =:= and implicits demystified " video (https://www.youtube.com/watch?v=4jrHAmKx7YE)
package app.implicit_constraints
object Bounds1 {
case class Container[A](a: A)
implicit class IntContainerExtensions(container: Container[Int]) {
def addWithExtension(other: Int): Int = container.a + other
}
val intContainer: Container[Int] = Container(5)