Skip to content

Instantly share code, notes, and snippets.

((g, o, m) => m(g(), o, next = (acc) => m(acc + g(), o, next)))(() => ['ズン', 'ドコ'][Math.round(Math.random())], console.log, (acc, o, next) => /ズンズンズンズンドコ$/.test(acc) ? o(acc + 'きよし') : next(acc))
// g: generator
// o: output
// m: main function
@krdlab
krdlab / zndk-kiyoshi-typelevel.hs
Created April 6, 2017 00:47
昨日のズンドコネタの (多分) 型レベル版
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE FlexibleContexts #-}
@krdlab
krdlab / zndk-kiyoshi.hs
Created April 5, 2017 06:38
職場の同僚に教えてもらったネタ
import System.Random (randomRIO)
zndk :: [String]
zndk = ["ズン", "ドコ"]
kiyoshi :: IO ()
kiyoshi = go 0
where
go c = rand zndk >>= \v -> putStr v >> go' c v
go' c "ズン" = go (c + 1)
{-# LANGUAGE OverloadedStrings #-}
import qualified Database.MySQL.Base as MySQL
import Database.MySQL.Base (defaultConnectInfo, ConnectInfo(..), Option(..))
test :: IO ()
test = do
let conf = defaultConnectInfo {
connectHost = "172.17.0.2"
, connectDatabase = "testapp"
@krdlab
krdlab / start-yesod.sh
Created February 21, 2015 10:36
Start yesod (use cabal sandbox)
wget http://www.stackage.org/lts/cabal.config
cabal update
cabal sandbox init
cabal install alex happy yesod-bin
export PATH=./.cabal-sandbox/bin:$PATH
yesod init --bare
cabal install -j --enable-tests --max-backjumps=-1 --reorder-goals
yesod devel
@krdlab
krdlab / test_rabbitmq.rb
Created December 4, 2012 04:56
use RabbitMQ on ruby
#!/usr/bin/env ruby
# encoding: utf-8
require "rubygems"
require "amqp"
require "msgpack"
EventMachine.run do
AMQP.connect do |conn|
channel = AMQP::Channel.new(conn)
@krdlab
krdlab / SkypeControlForm.cs
Created November 21, 2012 15:56
Skype4COM and WM_WTSESSION_CHANGE
using System;
using System.Data;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace KrdLab.Skype
{
// 画面ロックを検知して,Skype の UserStatus を Away/Online と切り換えるだけ.
public partial class SkypeControlForm : Form
{
@krdlab
krdlab / Test.hs
Created September 21, 2012 14:51
practice: Database.Cassandra (using cassy)
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Database.Cassandra.Basic
import System.Environment (getArgs)
import Control.Monad.IO.Class (liftIO)
import Control.Monad.Instances ()
import Data.Binary (encode, decode)
import qualified Data.ByteString.Lazy.Char8 as BS (putStrLn)
@krdlab
krdlab / Chat.hs
Created September 19, 2012 13:13
chat-cli by RabbitMQ
{-# LANGUAGE OverloadedStrings #-}
module Main where
import System.Environment (getArgs)
import Control.Exception (bracket)
import Network.AMQP
import qualified System.IO.UTF8 as IoU8 (getLine, putStrLn)
import qualified Data.ByteString.Lazy.UTF8 as U8
main :: IO ()
@krdlab
krdlab / Pub.hs
Created September 19, 2012 02:07
practice: Redis Pub/Sub
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Database.Redis
import Control.Monad.IO.Class (liftIO)
main :: IO ()
main = do
conn <- connect defaultConnectInfo { connectHost = "xxx.xxx.xxx.xxx" }
runRedis conn $ do