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
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:]
@lotusirous
lotusirous / combine_http.swift
Created March 8, 2022 02:00
A good way to handle HTTP in swift combine
let url = URL(string: "https://postman-echo.com/time/valid?timestamp=2016-10-10")!
struct PostmanResponse: Decodable {
let valid: Bool
}
enum ApiError: Error {
case invalidServerResponse
}
import UIKit
let url = URL(string: "http://127.0.0.1:1234")!
var request = URLRequest(url: url)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue("you-value-goes-here", forHTTPHeaderField: "X-API-KEY")
let task = URLSession.shared.dataTask(with: request) { data, _, error in
if let data = data {
@lotusirous
lotusirous / ratelimit.go
Last active January 19, 2022 04:08
A simple rate limit for go http client
package ratelimit
import (
"context"
"net/http"
"time"
"golang.org/x/time/rate"
)
@lotusirous
lotusirous / go_luasnip.lua
Created January 16, 2022 08:30
Some go snippets for luasnip
local ls = require "luasnip"
local s = ls.snippet
local i = ls.insert_node
local t = ls.text_node
local f = ls.function_node
local function copyname(args)
return args[1]
end