Skip to content

Instantly share code, notes, and snippets.

View tclh123's full-sized avatar
💭
Be an artist

Harry Lee tclh123

💭
Be an artist
View GitHub Profile
ActivityPub 是一种去中心化的内容聚合协议,可以让其他用户远程订阅你的内容。它很像升级版的 RSS,但是支持远程推送,因此订阅者可以及时获取你的内容,而不必时不时从客户端进行抓取。
下面是目前支持 ActivityPub 协议的开源软件,可以在自己的服务器架设服务。
- 微博(Twitter 的替代品):[Mastodon](https://mastodon.social/),[Pleroma](https://pleroma.social/)
- 照片分享(Instagram 的替代品):[Pixelfed](https://pixelfed.social/)
- 视频分享(Youtube 的替代品):[Peertube](https://joinpeertube.org/)
- 博客(Facebook 的替代品):[WriteFreely](https://writefreely.org/),[WordPress + ActivityPub 插件](https://wordpress.org/plugins/activitypub/),[Plume](https://joinplu.me/)
- 聊天(Slack 的替代品):[Mattermost](https://mattermost.com/),[Matrix](https://matrix.org/)
- 音乐分享(Spotify 的替代品):[Funkwhale](https://funkwhale.audio/)
internal let DEFAULT_MIME_TYPE = "application/octet-stream"
internal let mimeTypes = [
"html": "text/html",
"htm": "text/html",
"shtml": "text/html",
"css": "text/css",
"xml": "text/xml",
"gif": "image/gif",
"jpeg": "image/jpeg",
@menghan
menghan / Makefile
Last active December 23, 2015 20:09
bench:
go test benchmark_test.go --bench=. | tee result
/*
* call-seq:
* Rugged::Repository.new(name, options = {}) -> repository
*
* Open a Git repository with the given +name+ and return a +Repository+ object
* representing it.
*
*/
static VALUE rb_git_repo_new(int argc, VALUE *argv, VALUE klass)
{
@tclh123
tclh123 / frange2
Created November 22, 2012 15:50
"A faster range-like function that does accept float increments" from http://wiki.woodpecker.org.cn/moin/PyCkBk-1-16
def frange2(start, end=None, inc=1.0):
"A faster range-like function that does accept float increments..."
if end == None:
end = start + 0.0
start = 0.0
else: start += 0.0 # force it to be a float
count = int((end - start) / inc)
if start + count * inc != end:
# Need to adjust the count. AFAICT, it always comes up one short.
@unionx
unionx / iter.lisp
Created July 21, 2012 01:07
Iteration in Common Lisp
;;;;;; iteration in common lisp
;;;; do
;; `do` is like `if` in c
(do ((x 1 (+ x 1))
(y 1 (* y 2)))
((> x 5) y) ;; when x is bigger than 5, return y
(print y)
@nvie
nvie / gzip_middleware.py
Created May 22, 2012 15:11
A WSGI middleware wrapper to add gzip to your WSGI app
from gzip import GzipFile
from wsgiref.headers import Headers
import re
import cStringIO as StringIO
# Precompile the regex to check for gzip headers
re_accepts_gzip = re.compile(r'\bgzip\b')
# Precompile the regex to split a comma delimitered string of Vary headers
@haschek
haschek / .jshintrc
Created May 4, 2012 16:08
JSHint Configuration, Strict Edition
{
// --------------------------------------------------------------------
// JSHint Configuration, Strict Edition
// --------------------------------------------------------------------
//
// This is a options template for [JSHint][1], using [JSHint example][2]
// and [Ory Band's example][3] as basis and setting config values to
// be most strict:
//
// * set all enforcing options to true
@kenchan
kenchan / agig
Created April 2, 2012 07:27
agig with daemontools(gentoo and rbenv)
#!/bin/bash
unset RUBYOPT
exec \
setuidgid kenchan \
/home/kenchan/.rbenv/shims/agig -p 6699 -h sakura.shu-cream.net
@fernandoaleman
fernandoaleman / Linux Static IP
Created March 23, 2012 16:20
How To Configure Static IP On CentOS 6
## Configure eth0
#
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
NM_CONTROLLED="yes"
ONBOOT=yes
HWADDR=A4:BA:DB:37:F1:04
TYPE=Ethernet
BOOTPROTO=static