Skip to content

Instantly share code, notes, and snippets.

View lotusirous's full-sized avatar
💭
for { Learn() }

Kha Nguyen lotusirous

💭
for { Learn() }
View GitHub Profile
@lotusirous
lotusirous / day01.hs
Created December 3, 2025 12:01
advent of code 2025 in haskell
module Main where
data Direction = R | L deriving (Show, Eq)
data State = State {pos :: Int, hit :: Int} deriving (Show, Eq)
type Step = Int
type Instruction = (Direction, Step)
parse :: String -> Instruction
@lotusirous
lotusirous / day02.hs
Last active December 3, 2025 12:01
advent of code 2025 in haskell
module Main where
-- | Parse "11-22" into (11, 22)
parseRange :: String -> (Integer, Integer)
parseRange s = (read a, read b)
where
(a, _ : b) = break (== '-') s
-- | Split on commas: "a,b,c" -> ["a", "b", "c"]
splitCommas :: String -> [String]
-- Question: https://adventofcode.com/2015/day/3
import qualified Data.Set as S
import System.IO (readFile)
-- Move Santa according to a direction
move :: (Int, Int) -> Char -> (Int, Int)
move (x, y) c = case c of
'^' -> (x, y + 1)
'v' -> (x, y - 1)
-- Pull in the wezterm API
local wezterm = require("wezterm")
-- This will hold the configuration.
-- local config = wezterm.config_builder()
local act = wezterm.action
-- hyperlinks rules
local hyperlink_rules = wezterm.default_hyperlink_rules()
table.insert(hyperlink_rules, {
type stack []rune
func (s *stack) push(n rune) {
*s = append(*s, n)
}
func (s *stack) pop() rune {
if s.empty() {
panic("stack is empty")
@lotusirous
lotusirous / dropdown.swift
Created December 1, 2022 07:23
A elegant solution dropdown menu for SwiftUI
//
// ContentView.swift
// WeirdSheet
//
// Created by lotusirous on 28/11/2022.
//
import SwiftUI
protocol Nameable {
@lotusirous
lotusirous / auto_renew_token.swift
Last active October 22, 2022 10:56
An example of auto renew token and fetch the resource
import Combine
import Foundation
enum NetworkError: Error {
case unauthorized
case badServerResponse
case wrongType
case unknown
}
@lotusirous
lotusirous / onetime_token_server.go
Created October 22, 2022 03:37
A mock one time token
package main
import (
"fmt"
"log"
"math/rand"
"net/http"
"time"
)
@lotusirous
lotusirous / record_audio.swift
Created October 20, 2022 04:50
Live record and stream the buffer with combine Passthrough
//
// StreamRecorder.swift
// pesos
//
// Created by Gru-2019015 on 2022/08/26.
//
import AVFoundation
import Combine
import Foundation
def split_by_n(seq, n):
"""Split a sequence by n elements"""
while seq:
yield seq[:n]
seq = seq[n:]