Skip to content

Instantly share code, notes, and snippets.

@kui
kui / echo_server.rs
Last active August 29, 2015 14:12
tcp echo server
use std::io::net::tcp::{TcpListener, TcpStream};
use std::io::net::ip::SocketAddr;
use std::io::{Acceptor, Listener, BufferedStream, IoResult, IoError};
use std::io::IoErrorKind::EndOfFile;
use std::thread::Thread;
fn main() {
let mut acceptor = TcpListener::bind("127.0.0.1:1111").listen();
for stream in acceptor.incoming() { match stream {
@kui
kui / qiita-printer-style.user.js
Last active May 30, 2016 00:58
Qiita で印刷用スタイルがいまいち気に入らないので適当に変更するユーザスクリプト
// ==UserScript==
// @name Qiita print style
// @description Qiita の印刷用スタイルの適用
// @version 1.0.0
// @match http://qiita.com/*
// @match https://*.qiita.com/*
// ==/UserScript==
var style = [
// 消す要素
@kui
kui / detect-ua.py
Last active August 29, 2015 14:12
User Agent parser
# -*- coding: utf-8 -*-
# require: pip install ua-parser
from ua_parser import user_agent_parser as uap
import sys
def main():
n = 0
for line in sys.stdin:
l = line.strip()
@kui
kui / pixels-fortune.py
Last active August 29, 2015 14:12
Fotune script for Pixel-Art
#!/usr/bin/python
# Install script
# curl -o pixels-fortune https://gist.githubusercontent.com/kui/c0f4b48d143b7af19018/raw/pixels-fortune.py && chmod +x pixels-fortune
# How to add PIXELS.
# 1. Edit on https://kui.github.io/ansi_pixels/
# 2. Copy and paste the hash(#) in URL
#
# You can also copy PIXELS String("eAG...") and paste to
@kui
kui / load-script.js
Last active August 29, 2015 14:11
外部 js を呼ぶためのお手軽スクリプト。jQuery や RequireJS を参考にしたけど、IE 6-9 のエラーハンドリングは諦める必要がありそう。
// p: オブジェクト。以下のキーを名前付き引数として扱う。
// src: 呼び出す外部スクリプトのURL
// callback: src のスクリプトが実行し終わった時に呼ばれる関数。
// 第一引数に終了ステータス文字列を与える。
// ステータス文字列:
// loaded, load, complete:
// 問題なく終了した時に与えられる。
// error:
// 4xxや5xxステータスコードが帰ってきた時や、TCPコネクションが
// 確立できなかったときに与えられる。ただし、IE8以前ではこの検知ができず
@kui
kui / asyc-queue.js
Last active April 18, 2023 08:08
JavaScript で非同期キューの実装と、その非同期キューをタスクキューとして処理し続けるワーカをする。Promise と違うので注意。
var Latch = function(){
this._subscribers = [];
};
Latch.prototype = {
notify: function() {
var s = this._subscribers.shift();
if (s) {
s();
}
},
@kui
kui / server.rb
Last active August 29, 2015 14:11
簡易 P3P ヘッダ付き静的ファイル配信サーバ
#!/usr/bin/env ruby
require 'sinatra'
set :bind, '0.0.0.0'
set :port, 80
set :protection, false
set :protect_from_csrf, false
BASE = File.expand_path(File.dirname(__FILE__))
@kui
kui / qiita-icons.user.js
Last active August 29, 2015 14:10
Qiita のメンションなどにユーザのアイコンを表示する。
// ==UserScript==
// @name Qiita Icons
// @description Qiita のメンションなどにそのユーザのアイコンを表示する。
// @version 1.0.2
// @match http://qiita.com/*
// @match https://*.qiita.com/*
// ==/UserScript==
// アイコンのサイズ
var ICON_SIZE = 18; // px
@kui
kui / README.md
Last active August 29, 2015 14:05
a ANSI art script

In your terminal, execute this python script:

python -c "$(curl -s https://gist.githubusercontent.com/kui/1ad5065b2d5ea323c7ba/raw/ap.py)" eAGrVirIrEjNCc6sSlWyMrbQUUpKd87PyS9SslIKcndy1DDQUYAiPQtNJR2lNLh0eEZmSSpQJBnEDy5ITAYaoGRkagYUystPL8pMKVaySkvMKU7VgVgB5EZHG5rqEEKxOthUmRGryoxYVWZE2YhQSKG78KpCdxEWVWZUVIUlpPC5HkNVbC0AKQt8aw==

or:

wget https://gist.githubusercontent.com/kui/1ad5065b2d5ea323c7ba/raw/ap.py
chmod +x ap.py
./ap.py eAGrVirIrEjNCc6sSlWyMrbQUUpKd87PyS9SslIKcndy1DDQUYAiPQtNJR2lNLh0eEZmSSpQJBnEDy5ITAYaoGRkagYUystPL8pMKVaySkvMKU7VgVgB5EZHG5rqEEKxOthUmRGryoxYVWZE2YhQSKG78KpCdxEWVWZUVIUlpPC5HkNVbC0AKQt8aw==
@kui
kui / scrape.dart
Last active September 9, 2019 04:15
a web scraping script with Dart and html5lib
import 'dart:io';
import 'dart:async';
import 'package:html5lib/parser.dart';
import 'package:html5lib/dom.dart';
main() {
final url = 'http://comic-walker.com/';
getHtml(url).then((document) {
// page title