Skip to content

Instantly share code, notes, and snippets.

View msakai's full-sized avatar

Masahiro Sakai msakai

View GitHub Profile
View test_psycopg2_isolation_level.py
import psycopg2
dsn = "postgresql://user:password@localhost:5432/"
db_name = "test_db"
conn = psycopg2.connect(dsn)
try:
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
with conn.cursor() as cur:
View turtle_loop_vs_nondet.hs
import Control.Monad
import Turtle
main :: IO ()
main = sh $
forM_ [(1::Int)..2] $ \i -> do
j <- select [(1::Int)..3]
liftIO $ print (i, j)
{-
View QueryInterface.hs
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
module QueryInterface where
-- Maybe (GHC.Exts.DictBox a)
data QueryIntefaceResult a where
View RWLock.hs
{-# OPTIONS_GHC -Wall #-}
-----------------------------------------------------------------------------
-- |
-- Module : RWLock
-- Copyright : (c) Masahiro Sakai 2023
-- License : BSD-3-Clause
--
-- Simple implement of various variants of RWLocks.
--
View FairLock.hs
{-# OPTIONS_GHC -Wall #-}
-----------------------------------------------------------------------------
-- |
-- Module : FairLock
-- Copyright : (c) Masahiro Sakai 2023
-- License : BSD-3-Clause
--
-- Simple Lock implemented using STM.
-- When multiple threads are blocked on a Lock, they are woken up in FIFO order.
@msakai
msakai / Main.hs
Created April 2, 2023 03:47
GHC creates too many windows threads
View Main.hs
module Main (main) where
import Control.Concurrent.Async
import Control.Concurrent
import Control.Exception
import Control.Monad
import Data.IORef
import Foreign.C
import System.Random.MWC
View list_ext_modules.py
import sys
for mname, m in sys.modules.items():
fname = getattr(m, '__file__', None)
if fname is not None and fname.endswith('.so'):
print(f"{mname}: {fname}")
View FermatsFactorizationMethod.hs
module FermatsFactorizationMethod where
import Control.Monad
import Data.List (sort)
import Math.NumberTheory.Roots -- https://hackage.haskell.org/package/integer-roots
factor :: Integer -> [Integer]
factor = sort . g
where
g 1 = []
@msakai
msakai / ruby-puzzles-2022.rb
Created September 21, 2022 03:57
My solution for "Cookpad Code Puzzle for RubyKaigi 2022" https://ruby-puzzles-2022.cookpad.tech/
View ruby-puzzles-2022.rb
# coding: utf-8
def answer1(n)
n + 1
end
def answer2(str)
str.upcase
end
def answer3(n)
View SecantMethod.hs
-- |
--
-- * [Secant method](https://en.wikipedia.org/wiki/Secant_method)
--
-- * [割線法](https://ja.wikipedia.org/wiki/%E5%89%B2%E7%B7%9A%E6%B3%95)
module SecantMethod where
secantMethod :: (Eq a, Fractional a) => (a -> a) -> a -> a -> [a]
secantMethod f x0 x1 = map fst xs
where