Skip to content

Instantly share code, notes, and snippets.

@kwatch
kwatch / gist:9a26421386d39c7c2780
Created June 25, 2014 05:43
要件:条件に一致するレコードが1件もない場合は、デフォルト値として 0 を使いたい
--
-- 要件:条件に一致するレコードが1件もない場合は、デフォルト値として 0 を使いたい
--
-- 実験1: 通常は、条件に一致するレコードが1件もない場合は 0 rows になる
psql=> select point::integer
from user_point_history
where user_id = 12595 and created_at > '2014-06-01';
point
@kwatch
kwatch / example.py
Last active August 29, 2015 14:03
[python] Is it impossible to override __init__() method of classes implemented in C?
from datetime import datetime
class Foo(datetime):
def __init__(self):
datetime.__init__(self, 2014, 7, 1, 0, 0, 0)
obj = Foo()
### result:
#
@kwatch
kwatch / CHANGES_Oktest-0.15.0.rst
Last active August 29, 2015 14:03
Oktest 0.15.0 変更点
  • [enhance] oktest.web.WSGITestクラスが、マルチパート形式をサポート ex:

    ## マルチパート形式のデータを作成
    from oktest.web import MultiPart
    mp = MultiPart()    # or boundary='abcdef'; mp = MutliPart(boundary)
    mp.add("name1", "value1")          # add string value
    with open("logo.png", 'wb') as f:  # add file value
        mp.add("file1", f.read(), "logo.png", "image/png")
    ## マルチパートデータを指定してリクエストを投げる
    
@kwatch
kwatch / cdnjs-dl.rb
Created July 3, 2014 09:13
CDNJSからライブラリをダウンロードしてくるRubyスクリプト
# -*- coding: utf-8 -*-
require 'open-uri'
require 'fileutils'
require 'json'
CDNJS_URL = "http://api.cdnjs.com/libraries?search={keyword}&fields=assets"
#
libname = 'angular.js'
@kwatch
kwatch / run-cdnjs.rb
Created July 3, 2014 10:02
CDNJS: latest version of twitter-bootstrap is expected as 3.2.0, but got 3.1.1 with API.
# -*- coding: utf-8 -*-
##
## latest version of twitter-bootstrap is expected as 3.2.0 but got 3.1.1 with API.
##
require 'open-uri'
require 'json'
libname = 'twitter-bootstrap'
@kwatch
kwatch / ex-heredoc.rb
Created July 9, 2014 16:35
ヒアドキュメントとERBとを組み合わせた例。欠点は、テンプレート内でエラーがあっても、ファイル名と行番号がうまく表示されないこと。
# -*- coding: utf-8 -*-
require 'erb'
erb = ERB.new <<'END'
<html>
<body>
<ul>
<% (1..3).each do %>
<li><%= x %></li>
@kwatch
kwatch / ex-heredoc2.rb
Created July 9, 2014 16:42
ヒアドキュメントとBabyErubisの組み合わせ例。テンプレート内のエラーでも、正確なファイル名と行番号が表示されることに注目!
# -*- coding: utf-8 -*-
require 'baby_erubis'
erb = BabyErubis::Html.new.from_str <<'END', __FILE__, __LINE__+1
<html>
<body>
<ul>
<% (1..3).each do %>
<li><%= x %></li>
@kwatch
kwatch / example.sql
Last active August 29, 2015 14:03
how to aggregate row data or complex type data?
--
-- data
--
psql=> select * from users;
id | name
----+-------
1 | Bob
2 | Alice
3 | John
(3 rows)
@kwatch
kwatch / gist:32eb6ab7bdecb5b4daaa
Last active August 29, 2015 14:04
http://cache.ruby-lang.org/pub/ruby/ にアクセスすると、「Accept-Encoding: gzip」をつけてないのに gzip 圧縮して送られてくる。とても困る。
~$ telnet cache.ruby-lang.org 80
Trying 103.245.222.184...
Connected to fallback.global-ssl.fastly.net.
Escape character is '^]'.
GET /pub/ruby/ HTTP/1.0
Host: cache.ruby-lang.org
HTTP/1.1 200 OK
Server: nginx/1.2.1
Content-Type: text/html
@kwatch
kwatch / each_slice.py
Created August 11, 2014 10:54
問題1: シーケンスを受け取り、N個ずつの配列にして返すような関数 each_slice(seq, n, default=None) を定義してください。
"""
問題1: シーケンスを受け取り、N個ずつの配列にして返すような関数 each_slice(seq, n, default=None) を定義してください。
例:
seq = [10, 20, 30, 40, 50, 60, 70]
for item in each_slice(seq, 3):
print(item)
## 結果:
[10, 20, 30]
[40, 50, 60]