Skip to content

Instantly share code, notes, and snippets.

View najeira's full-sized avatar

najeira

View GitHub Profile
@najeira
najeira / memo.md
Last active August 29, 2015 13:57
Growthforecast setting up
package main
import (
"database/sql"
"errors"
"fmt"
_ "github.com/go-sql-driver/mysql"
"log"
)
# -*- coding: utf-8 -*-
import os
import datetime
import jinja2
import webapp2
from google.appengine.api import users
from google.appengine.ext import ndb
class Page(ndb.Model):
title = ndb.StringProperty(indexed=False)
@najeira
najeira / gist:b8c9d438d30b242643bc
Last active August 29, 2015 14:20
Kinesisメモ

GoでKinesis用ライブラリを作るメモ

Writer

Kinesisにデータを送るクラス。

コネクションは呼び出し側で作成してもらう。 それを引数にしてWriterを生成する。

Addメソッドで行を追加していく。

@najeira
najeira / gist:50be958f9ddf966caf28
Created May 11, 2015 02:50
ikのプラグインを作るためのメモ

in_httpを作りたい。

処理の流れを追ってみる。

インスタンス化

AddPluginでファクトリを登録する。 ikはファクトリのNewを呼び出してプラグインを生成する。 このNewでik本体と設定が渡される。

@najeira
najeira / send_goroutine
Last active August 29, 2015 14:24
fluent-logger-golang 修正メモ
## 課題
現在の実装では、送信 `f.conn.Write` の間はロックを獲得しているので、バッファ `pending` への書き込みをブロックする。ネットワークの送信は時間がかかるので、書き込みのパフォーマンスも出ない。
## 対策
Write ではロックを獲得しないようにする。
Write の前に送信するバッファを取得し、書き込み側が違うバッファを使うように差し替える。
また、Write 自体も別のgoroutineで実施する(そうでないと、ロックを回避したのに結局ブロックする)。
@najeira
najeira / test.py
Created October 3, 2011 08:03
Check mediawiki responses for Tuningathon#2
# -*- coding: utf-8 -*-
import urllib
import urllib2
import time
MASTER_SERVER = '127.0.0.1'
PAGE_FORMAT = 'http://%s/mediawiki/index.php/%s'
TARGETS = [
@najeira
najeira / gist:1341295
Created November 5, 2011 09:02
encode and decode between int,long and string by Python
import struct, base64
def long_to_str(value):
value = struct.pack('q', value)
value = base64.urlsafe_b64encode(value)
value = value.rstrip('=')
value = value.rstrip('A')
return value
@najeira
najeira / gist:1341622
Created November 5, 2011 14:55
QueryIterator for async - Google App Engine / Python
class QueryIterator(object):
def __init__(self, query, limit=None):
self.limit = limit
self.count = 0
if limit:
config = datastore_query.QueryOptions(limit=limit, prefetch_size=limit)
else:
config = None
self.iterator = query.run(config=config)
@najeira
najeira / gist:1769576
Created February 8, 2012 13:39
Get Key trough ReferenceProperty
from google.appengine.ext import db
class Foo(db.Model):
pass
class Bar(db.Model):
foo = db.ReferenceProperty(Foo)
Bar.foo.get_value_for_datastore(bar_obj) #=> Key of Foo