Skip to content

Instantly share code, notes, and snippets.

View dittos's full-sized avatar
💥
뿌슝빠슝

Taeho Kim dittos

💥
뿌슝빠슝
View GitHub Profile
class Handler(BaseHandler):
@property
def db(self):
if not hasattr(self, '_db'):
self._db = Session(bind=self.app.engine)
return self._db
def teardown_request(self):
db = getattr(self, '_db', None)
if db:
@dittos
dittos / gist:60e80da8e8d11b475c9f
Created August 12, 2014 14:00
Example Upstart Configuration
start on runlevel [2345]
stop on runlevel [016]
respawn
setuid www-data
setgid www-data
env PORT=11000
chdir /home/ditto/animeta
exec env/bin/gunicorn animeta.wsgi --bind 127.0.0.1:$PORT --error-logfile -
var NewStatus = React.createClass({
render: function() {
return <div className="new-status">
<h2>New monolog</h2>
<form action="" onSubmit={this.handleSubmit}>
<textarea ref="text" /><br />
<input type="submit" value="Post" />
</form>
</div>;
},
/** @jsx React.DOM */
import React from 'react';
var popupId = 0;
function addStyle(doc, cssCode) {
var styleElement = doc.createElement("style");
styleElement.type = "text/css";
var head = doc.getElementsByTagName("head")[0];
@dittos
dittos / gist:b85564b263d637d33ee2
Created July 2, 2014 08:55
React PromiseMixin
var PENDING = 0,
FULFILLED = 1,
REJECTED = 2;
export var PromiseMixin = {
getInitialState: function() {
return {promiseState: PENDING};
},
componentWillMount: function() {
@dittos
dittos / gist:8802445
Last active August 29, 2015 13:56
Custom Twitter CSS
@namespace url(http://www.w3.org/1999/xhtml);
@-moz-document domain("twitter.com") {
.is-preview img {
transition: 0.2s linear opacity;
}
.stream-item:not(.open) .is-preview,
.stream-item:not(.open) .multi-photo {
@dittos
dittos / env.py
Created January 26, 2014 15:20
Alembic with Flask-SQLAlchemy
from __future__ import with_statement
from alembic import context
from sqlalchemy import engine_from_config, pool
from logging.config import fileConfig
# ***
import sys
sys.path.insert(0, '.')
from app import app, db
# ***

적당히 자세한 비트코인의 원리

비트코인 주소

31uEbMgunupShBVTewXjtqbBv5MndwfXhb (비트코인 주소의 예.)

비트코인을 보내거나 받을 때 사용하는 주소다. 다른 사람의 주소를 알면 그 주소로 내 비트코인을 송금할 수 있다. 반대로 다른 사람에게 내 주소를 알려주고 비트코인을 부쳐달라고 할 수도 있다. 비트코인 주소는 누구나 얼마든지 만들 수 있어서 누가 소유한 주소인지 추적하기 어렵다. 따라서 익명성을 보장해준다. 실제로 거래를 할 때마다 주소를 새로 생성해서 사용할 것을 권장하고 있다.

먼저 공개키/비밀키 쌍을 만든 뒤, 공개키를 적절한 방법으로 해싱해서 비트코인 주소를 생성한다. 물론 비밀키는 다른 사람에게 알려주면 안되고 안전하게 보관해야 한다. 비밀키로 거래 내역을 서명하면, 공개키를 알고 있는 사람들이 올바른 거래인지 검증할 수 있게 된다.

@dittos
dittos / gist:7556829
Created November 20, 2013 02:49
Poor man's New Relic (WIP)
import time
import inspect
import psycopg2
class QueryOperation(object):
def __init__(self, op, paramlist):
self.op = op
self.paramlist = paramlist
def __enter__(self):
@dittos
dittos / aheui.hs
Last active December 27, 2015 02:09
aheui.hs (r2: refactoring WIP)
import System.Exit
{-
Data Structures
-}
data Dir = SetDir Int Int | FlipX | FlipY | FlipXY | KeepDir
data Op = DivOp | AddOp | MulOp | ModOp | DupOp | SwitchOp Int | MoveOp Int
| CmpOp | BranchOp | SubOp | SwapOp | ExitOp | PrintNumOp