Skip to content

Instantly share code, notes, and snippets.

Avatar

Yoshinari Takaoka mumumu

View GitHub Profile
View sys_settrace_example_code.py
#!/usr/bin/env python
# encoding: utf-8
import sys
#
# Note: This code works on Python2 only!
#
ignore_functions = [
@mumumu
mumumu / fix-invalid-atom-log-url.md
Last active Mar 10, 2017
Mercurial へ atom feed url が違うんでね? と patch を送った
View fix-invalid-atom-log-url.md
@mumumu
mumumu / lvs_my_summary.md
Created Dec 27, 2015
LVS(Linux Virtual Server) 自分まとめ
View lvs_my_summary.md
@mumumu
mumumu / about_redis_py_3.0_compatibility.md
Last active Dec 27, 2015
redis-py の 3.0 以降に加わったコマンドへの対応について
View about_redis_py_3.0_compatibility.md

redis-py の 3.0 以降に加わったコマンドへの対応について

3.0 以降に入ったコマンドやimprovement に対する対応が一切入っていない
皆それはわかっているが、patch が投稿されていないっぽいように見える

3.2 がそろそろ出るタイミングなので、いつまでもビルド環境が 2.8 なのもどうかと思う。
よって、redis-py で 3.0 以降に対応された機能の対応状況やビルド環境について調べ、patch をどう送るかを考える

3.0 以降の機能がPRされた例

@mumumu
mumumu / redis_py_cluster_readonly_mode.md
Last active Dec 25, 2015
redis-py-cluster READONLY mode implementation considerations.
View redis_py_cluster_readonly_mode.md

redis-py-cluster READONLY モード 対応

  • Redis Cluster の Python クライアントに READONLY モードを実装する
  • http://redis.io/topics/cluster-spec#scaling-reads-using-slave-nodes
  • デフォルトでは、Redis Cluster の Slave には直接アクセスできない
  • リダイレクトされるだけ
  • それを、READONLY な接続であると宣言することで、アクセスできるようにする

考慮しなければならないこと

View ujson_for_pypy.patch
diff --git a/python/JSONtoObj.c b/python/JSONtoObj.c
index 79d9f1a..610367b 100644
--- a/python/JSONtoObj.c
+++ b/python/JSONtoObj.c
@@ -136,9 +136,9 @@ PyObject* JSONToObj(PyObject* self, PyObject *args, PyObject *kwargs)
Object_newUnsignedLong,
Object_newDouble,
Object_releaseObject,
- PyObject_Malloc,
- PyObject_Free,
@mumumu
mumumu / hg_rev_update_checker.py
Created May 6, 2015
Mercurial Repository file update checker, notify by mail
View hg_rev_update_checker.py
#!/usr/bin/env python
from email.mime.text import MIMEText
import email.utils
import os
import subprocess
import sys
import smtplib
import tempfile
View bind_port_to_zero.c
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
int sfd = socket(AF_INET, SOCK_STREAM, 0);
if (sfd == -1) {
perror("socket");
View test_fluentd.conf
<source>
type forward
port 24225
</source>
<match hoge.fuga.foo.**>
type file_alternative
path /path/to/%Y/%m/%Y-%m-%d.log
time_slice_wait 1m
utc
View inline_expansion_test.py
#!/usr/bin/env python
from benchmarker import Benchmarker
from collections import Counter
with Benchmarker(width=20) as bm:
counters = [Counter(), Counter(), Counter(), Counter()]
with bm('double loop'):