Skip to content

Instantly share code, notes, and snippets.

View hkoba's full-sized avatar

Kobayasi, Hiroaki hkoba

View GitHub Profile
@ponkore
ponkore / clojure-poi-memo.md
Created December 5, 2012 15:14
Clojure から POI ってみる

Clojure から POI ってみる

この記事は、変態アドベントカレンダー 6日目の記事です。前日は はがねのつるぎさん でした。

このアドベントカレンダーは、意識もスキルも高い変態勇者がハイテクを駆使してかくもの、と思ってらっしゃる方にはちょっと申し訳ありません。若干変態度もハイテク度も低めで肩透かしを食らうことになりますが、しばしお付き合いください。

今日のネタは、私自身の日々の切実な課題である、Excel文書と戦うための準備、といったところです。

Excel ドキュメントにに対する不満

@jberger
jberger / mojo_chat.pl
Last active October 25, 2018 01:54
Mojolicious chat example
#!/usr/bin/env perl
use Mojolicious::Lite;
# storage
my $clients = {};
# helpers (methods on app/controller/template)
helper 'send_to_all' => sub {
my ($self, $message) = @_;
@soundTricker
soundTricker / datastore.js
Created May 17, 2013 11:02
Google Apps ScriptからCloud Datastore APIへのクエリ
function myFunction() {
var option = googleOAuth_();
option.method = "post";
option.contentType = 'application/json';
option.payload = JSON.stringify({
"query":
{
"kinds":
[
open Spotlib.Spot
open GapiUtils.Infix
open GapiLens.Infix
open GapiLens.StateInfix
open GapiMonad.SessionM
module OAuth2 = GapiOAuth2
module Conv = GapiConversation
module Service = GapiService
@kohyama
kohyama / puyo.clj
Last active October 19, 2017 06:08
ぷよぷよ連鎖 in Clojure
;;; Copyright (c) 2013 Yoshinori Kohyama. Distributed under the BSD 3-Clause License.
(ns puyo
(:require [clojure.test :refer (with-test run-tests are)]
[clojure.set :refer (union)]
[clojure.string :as string]))
(with-test
(defn- fall-one [b s]
(->> (reverse b)
(apply map vector)
@fujiwara
fujiwara / installed2cpanfile
Last active December 19, 2015 02:19
ExtUtils::Installedで現在インストールされているモジュールからcpanfileを作る
$ perl installed2cpanfile > cpanfile
$ cpanm --installdeps .
@Valodim
Valodim / gist:7017924
Last active July 8, 2022 21:53
zsh json parser (WIP)
#!/bin/zsh
typeset -A closings
closings=( '{' '}' '[' ']' )
# usage: find-matching strvar pos
# heart of the parser. matches one "element." matching depends on first
# character (at pos), can be " for string matching or any in closings
# associative parameter.
USE_OCAMLFIND = true
OCAMLPACKS[] =
llvm
FILES[] =
types
lambda
parser
lexer
# 私が考える安全なプログラムを書くために必要なこと
今も昔も「入力によって挙動が大幅に変わるAPI」が世の中には多数存在していて、プログラマが本来意図した挙動と異なる動作を引き起こしている。
- ファイルを開こうとしたらコマンドを実行できてしまったり
- CSSセレクタを書いてるつもりがHTMLタグを生成してしまったり
- SELECT文を発行するつもりがDELETE文を発行できてしまったり
こういったときに
- 入力値検証をしないと危険になる
@mandel59
mandel59 / Main.hs
Last active December 31, 2015 07:59
Shiba
module Main where
import Text.Peggy
import Shiba
main =
getContents >>= \code ->
(return $ parseString Shiba.expr "<stdin>" code >>= \ws -> return (Shiba.evalF' ws Shiba.empty [])) >>= print