This page shows an evaluation of the documentation of redis/redis-rb.
Each class, module, method, etc. is given a grade based on how complete the docs are.
The bar above shows the distribution of these grades.
| Seems really good | ||
|---|---|---|
|
A
|
Redis#zscan |
|
|
A
|
Redis#hscan |
|
|
A
|
Redis#sscan |
|
|
A
|
Redis#zrangebyscore |
|
|
A
|
Redis#linsert |
|
| Show 156 more ... | ||
|
A
|
Redis#bitpos |
|
|
A
|
Redis#zrange |
|
|
A
|
Redis#get |
|
|
A
|
Redis#set |
|
|
A
|
Redis#sinterstore |
|
|
A
|
Redis#sunionstore |
|
|
A
|
Redis#hscan_each |
|
|
A
|
Redis#zscan_each |
|
|
A
|
Redis#sdiffstore |
|
|
A
|
Redis#sscan_each |
|
|
A
|
Redis#scan_each |
|
|
A
|
Redis#pfmerge |
|
|
A
|
Redis#sinter |
|
|
A
|
Redis#select |
|
|
A
|
Redis#config |
|
|
A
|
Redis#sunion |
|
|
A
|
Redis#bitop |
|
|
A
|
Redis#sdiff |
|
|
A
|
Redis#hmget |
|
|
A
|
Redis#zadd |
|
|
A
|
Redis#scan |
|
|
A
|
Redis#move |
|
|
A
|
Redis#mget |
|
|
A
|
Redis#del |
|
|
A
|
Redis#zrevrangebyscore |
|
|
A
|
Redis#zrevrange |
|
|
A
|
Redis::FutureNotReady#initialize |
|
|
A
|
Redis::Pipeline#initialize |
|
|
A
|
Redis#zremrangebyscore |
|
|
A
|
Redis#zremrangebyrank |
|
|
A
|
Redis::ProtocolError |
|
|
A
|
Redis#bgrewriteaof |
|
|
A
|
Redis#mapped_hmget |
|
|
A
|
Redis#hincrbyfloat |
|
|
A
|
Redis#incrbyfloat |
|
|
A
|
Redis#mapped_mget |
|
|
A
|
Redis#zunionstore |
|
|
A
|
Redis#srandmember |
|
|
A
|
Redis#zinterstore |
|
|
A
|
Redis#brpoplpush |
|
|
A
|
Redis#sismember |
|
|
A
|
Redis#rpoplpush |
|
|
A
|
Redis#randomkey |
|
|
A
|
Redis#pexpireat |
|
|
A
|
Redis#smembers |
|
|
A
|
Redis#setrange |
|
|
A
|
Redis#renamenx |
|
|
A
|
Redis#zrevrank |
|
|
A
|
Redis#flushall |
|
|
A
|
Redis#lastsave |
|
|
A
|
Redis#getrange |
|
|
A
|
Redis#expireat |
|
|
A
|
Redis#bitcount |
|
|
A
|
Redis#slowlog |
|
|
A
|
Redis#hexists |
|
|
A
|
Redis#pfcount |
|
|
A
|
Redis#migrate |
|
|
A
|
Redis#zincrby |
|
|
A
|
Redis#hincrby |
|
|
A
|
Redis#flushdb |
|
|
A
|
Redis#persist |
|
|
A
|
Redis#hgetall |
|
|
A
|
Redis#pexpire |
|
|
A
|
Redis#exists |
|
|
A
|
Redis#zcount |
|
|
A
|
Redis#getset |
|
|
A
|
Redis#lpushx |
|
|
A
|
Redis#expire |
|
|
A
|
Redis#rename |
|
|
A
|
Redis#strlen |
|
|
A
|
Redis#append |
|
|
A
|
Redis#decrby |
|
|
A
|
Redis#msetnx |
|
|
A
|
Redis#script |
|
|
A
|
Redis#getbit |
|
|
A
|
Redis#rpushx |
|
|
A
|
Redis#lindex |
|
|
A
|
Redis#dbsize |
|
|
A
|
Redis#bgsave |
|
|
A
|
Redis#lrange |
|
|
A
|
Redis#incrby |
|
|
A
|
Redis#zscore |
|
|
A
|
Redis#hsetnx |
|
|
A
|
Redis#setbit |
|
|
A
|
Redis#pfadd |
|
|
A
|
Redis#zrank |
|
|
A
|
Redis#zcard |
|
|
A
|
Redis#hvals |
|
|
A
|
Redis#watch |
|
|
A
|
Redis#smove |
|
|
A
|
Redis#scard |
|
|
A
|
Redis#rpush |
|
|
A
|
Redis#setnx |
|
|
A
|
Redis#hkeys |
|
|
A
|
Redis#ltrim |
|
|
A
|
Redis#hmset |
|
|
A
|
Redis#zrem |
|
|
A
|
Redis#lset |
|
|
A
|
Redis#auth |
|
|
A
|
Redis#decr |
|
|
A
|
Redis#type |
|
|
A
|
Redis#sort |
|
|
A
|
Redis#ping |
|
|
A
|
Redis#sadd |
|
|
A
|
Redis#hget |
|
|
A
|
Redis#lpop |
|
|
A
|
Redis#echo |
|
|
A
|
Redis#quit |
|
|
A
|
Redis#srem |
|
|
A
|
Redis#rpop |
|
|
A
|
Redis#hdel |
|
|
A
|
Redis#incr |
|
|
A
|
Redis#dump |
|
|
A
|
Redis#info |
|
|
A
|
Redis#lrem |
|
|
A
|
Redis#spop |
|
|
A
|
Redis#llen |
|
|
A
|
Redis#save |
|
|
A
|
Redis#time |
|
|
A
|
Redis#mset |
|
|
A
|
Redis#hlen |
|
|
A
|
Redis#pttl |
|
|
A
|
Redis#hset |
|
|
A
|
Redis#keys |
|
|
A
|
Redis#ttl |
|
|
A
|
Redis::Distributed#randomkey |
|
|
A
|
Redis::Distributed#lastsave |
|
|
A
|
Redis::Distributed#flushall |
|
|
A
|
Redis::Distributed#unwatch |
|
|
A
|
Redis::Distributed#monitor |
|
|
A
|
Redis::Distributed#discard |
|
|
A
|
Redis::Distributed#flushdb |
|
|
A
|
Redis::Distributed#bgsave |
|
|
A
|
Redis::Distributed#dbsize |
|
|
A
|
Redis::Connection.drivers |
|
|
A
|
Redis::Distributed#getbit |
|
|
A
|
Redis::Distributed#multi |
|
|
A
|
Redis::Distributed#time |
|
|
A
|
Redis::Distributed#quit |
|
|
A
|
Redis::Distributed#ping |
|
|
A
|
Redis::Distributed#save |
|
|
A
|
Redis::Distributed#exec |
|
|
A
|
Redis#shutdown |
|
|
A
|
Redis#monitor |
|
|
A
|
Redis#restore |
|
|
A
|
Redis#psetex |
|
|
A
|
Redis#setex |
|
|
A
|
Redis#sync |
|
|
A
|
Redis::Subscription#initialize |
|
|
A
|
Redis#mapped_msetnx |
|
|
A
|
Redis#mapped_hmset |
|
|
A
|
Redis#mapped_mset |
|
|
A
|
Redis#discard |
|
|
A
|
Redis#unwatch |
|
|
A
|
Redis#multi |
|
|
A
|
Redis#exec |
|
| Proper documentation present | ||
|---|---|---|
|
B
|
Redis#evalsha |
|
|
B
|
Redis#eval |
|
|
B
|
Redis#blpop |
|
|
B
|
Redis#brpop |
|
|
B
|
Redis::Distributed#zrevrangebyscore |
|
| Show 126 more ... | ||
|
B
|
Redis::Distributed#zrangebyscore |
|
|
B
|
Redis::Distributed#psubscribe |
|
|
B
|
Redis::Distributed#zrevrange |
|
|
B
|
Redis::Distributed#subscribe |
|
|
B
|
Redis::Distributed#linsert |
|
|
B
|
Redis::Distributed#bitpos |
|
|
B
|
Redis::Distributed#zrange |
|
|
B
|
Redis#psubscribe |
|
|
B
|
Redis#subscribe |
|
|
B
|
Redis#lpush |
|
|
B
|
Redis::Distributed#punsubscribe |
|
|
B
|
Redis::Distributed#unsubscribe |
|
|
B
|
Redis::Distributed#sunionstore |
|
|
B
|
Redis::Distributed#sinterstore |
|
|
B
|
Redis::Distributed#sdiffstore |
|
|
B
|
Redis::Distributed#pfmerge |
|
|
B
|
Redis::Distributed#evalsha |
|
|
B
|
Redis::Distributed#script |
|
|
B
|
Redis::Distributed#select |
|
|
B
|
Redis::Distributed#sunion |
|
|
B
|
Redis::Distributed#sinter |
|
|
B
|
Redis::Distributed#msetnx |
|
|
B
|
Redis::Distributed#watch |
|
|
B
|
Redis::Distributed#hmget |
|
|
B
|
Redis::Distributed#sdiff |
|
|
B
|
Redis::Distributed#bitop |
|
|
B
|
Redis::Distributed#brpop |
|
|
B
|
Redis::Distributed#hmset |
|
|
B
|
Redis::Distributed#blpop |
|
|
B
|
Redis::Distributed#zadd |
|
|
B
|
Redis::Distributed#move |
|
|
B
|
Redis::Distributed#eval |
|
|
B
|
Redis::Distributed#mget |
|
|
B
|
Redis#without_reconnect |
|
|
B
|
Redis::Distributed#mset |
|
|
B
|
Redis::Distributed#del |
|
|
B
|
Redis#with_reconnect |
|
|
B
|
Redis#punsubscribe |
|
|
B
|
Redis#unsubscribe |
|
|
B
|
Redis::Distributed#zremrangebyscore |
|
|
B
|
Redis::Distributed#zremrangebyrank |
|
|
B
|
Redis::Distributed#hincrbyfloat |
|
|
B
|
Redis::Distributed#incrbyfloat |
|
|
B
|
Redis::Distributed#zunionstore |
|
|
B
|
Redis::Distributed#zinterstore |
|
|
B
|
Redis::Distributed#srandmember |
|
|
B
|
Redis::Distributed#brpoplpush |
|
|
B
|
Redis::Distributed#sismember |
|
|
B
|
Redis::Distributed#pexpireat |
|
|
B
|
Redis::Distributed#rpoplpush |
|
|
B
|
Redis::Distributed#getrange |
|
|
B
|
Redis::Distributed#expireat |
|
|
B
|
Redis::Distributed#bitcount |
|
|
B
|
Redis::Distributed#setrange |
|
|
B
|
Redis::Distributed#zrevrank |
|
|
B
|
Redis::Distributed#smembers |
|
|
B
|
Redis::Distributed#renamenx |
|
|
B
|
Redis::Distributed#restore |
|
|
B
|
Redis::HashRing#initialize |
|
|
B
|
Redis::Distributed#migrate |
|
|
B
|
Redis::Distributed#pexpire |
|
|
B
|
Redis::Distributed#hexists |
|
|
B
|
Redis::Distributed#hincrby |
|
|
B
|
Redis::Distributed#pfcount |
|
|
B
|
Redis::Distributed#zincrby |
|
|
B
|
Redis::Distributed#hgetall |
|
|
B
|
Redis::Distributed#publish |
|
|
B
|
Redis::Distributed#persist |
|
|
B
|
Redis::Distributed#hsetnx |
|
|
B
|
Redis::Distributed#zscore |
|
|
B
|
Redis::Distributed#decrby |
|
|
B
|
Redis::Distributed#rpushx |
|
|
B
|
Redis::Distributed#strlen |
|
|
B
|
Redis::Distributed#getset |
|
|
B
|
Redis::Distributed#incrby |
|
|
B
|
Redis::Distributed#lpushx |
|
|
B
|
Redis::Distributed#lindex |
|
|
B
|
Redis::Distributed#rename |
|
|
B
|
Redis::Distributed#psetex |
|
|
B
|
Redis::Distributed#zcount |
|
|
B
|
Redis::Distributed#lrange |
|
|
B
|
Redis::Distributed#setbit |
|
|
B
|
Redis::Distributed#append |
|
|
B
|
Redis::Distributed#exists |
|
|
B
|
Redis::Distributed#expire |
|
|
B
|
Redis::Distributed#setnx |
|
|
B
|
Redis::HashRing#get_node |
|
|
B
|
Redis::Distributed#setex |
|
|
B
|
Redis::Distributed#ltrim |
|
|
B
|
Redis::Distributed#pfadd |
|
|
B
|
Redis::HashRing#add_node |
|
|
B
|
Redis::Distributed#scard |
|
|
B
|
Redis::Distributed#smove |
|
|
B
|
Redis::Distributed#hkeys |
|
|
B
|
Redis::Distributed#hvals |
|
|
B
|
Redis::Distributed#lpush |
|
|
B
|
Redis::Distributed#zrank |
|
|
B
|
Redis::Distributed#zcard |
|
|
B
|
Redis::Distributed#rpush |
|
|
B
|
Redis::Distributed#pttl |
|
|
B
|
Redis::Distributed#hset |
|
|
B
|
Redis::Distributed#hlen |
|
|
B
|
Redis::Distributed#zrem |
|
|
B
|
Redis::Distributed#spop |
|
|
B
|
Redis::Distributed#srem |
|
|
B
|
Redis::Distributed#sadd |
|
|
B
|
Redis::Distributed#lset |
|
|
B
|
Redis::Distributed#lrem |
|
|
B
|
Redis::Distributed#rpop |
|
|
B
|
Redis::Distributed#lpop |
|
|
B
|
Redis::Distributed#llen |
|
|
B
|
Redis::Distributed#info |
|
|
B
|
Redis::Distributed#hget |
|
|
B
|
Redis::Distributed#incr |
|
|
B
|
Redis::Distributed#decr |
|
|
B
|
Redis::Distributed#type |
|
|
B
|
Redis::Distributed#sort |
|
|
B
|
Redis::Distributed#keys |
|
|
B
|
Redis::Distributed#dump |
|
|
B
|
Redis::Distributed#echo |
|
|
B
|
Redis::Distributed#hdel |
|
|
B
|
Redis::Distributed#ttl |
|
|
B
|
Redis::Distributed#set |
|
|
B
|
Redis::Distributed#get |
|
|
B
|
Redis#slaveof |
|
|
B
|
Redis#publish |
|
| Needs work | ||
|---|---|---|
|
C
|
Redis.connect |
|
| Undocumented | ||
|---|---|---|
|
U
|
Redis |
|
|
U
|
Redis#_scan |
|
|
U
|
Redis::SubscribedClient#psubscribe |
|
|
U
|
Redis::SubscribedClient#subscribe |
|
|
U
|
Redis::Connection::TCPSocket.connect_addrinfo |
|
| Show 175 more ... | ||
|
U
|
Redis::Connection::SocketMixin#initialize |
|
|
U
|
Redis::SubscribedClient#subscription |
|
|
U
|
Redis::SubscribedClient#punsubscribe |
|
|
U
|
Redis::Client#without_socket_timeout |
|
|
U
|
Redis::SubscribedClient#unsubscribe |
|
|
U
|
Redis::Client#call_without_timeout |
|
|
U
|
Redis::Pipeline#without_reconnect |
|
|
U
|
Redis::Subscription#punsubscribe |
|
|
U
|
Redis::Client#call_with_timeout |
|
|
U
|
Redis::Client#without_reconnect |
|
|
U
|
Redis::Distributed#mapped_hmget |
|
|
U
|
Redis::Subscription#unsubscribe |
|
|
U
|
Redis::Subscription#psubscribe |
|
|
U
|
Redis::Distributed#mapped_mget |
|
|
U
|
Redis::Subscription#subscribe |
|
|
U
|
Redis::Subscription#pmessage |
|
|
U
|
Redis::Subscription#message |
|
|
U
|
Redis::Pipeline#finish |
|
|
U
|
Redis::Pipeline#call |
|
|
U
|
Redis#method_missing |
|
|
U
|
Redis::Distributed |
|
|
U
|
Redis::Client#call |
|
|
U
|
Redis::Client#db= |
|
|
U
|
Redis::Client |
|
|
U
|
Redis#object |
|
|
U
|
Redis#debug |
|
|
U
|
Redis::Connection::RedisClient#connection_completed |
|
|
U
|
Redis::Connection::SocketMixin#_read_from_socket |
|
|
U
|
Redis::Distributed::CannotDistribute#initialize |
|
|
U
|
Redis::Connection::Ruby#format_multi_bulk_reply |
|
|
U
|
Redis::Connection::CommandHelper#build_command |
|
|
U
|
Redis::Distributed::CannotDistribute#message |
|
|
U
|
Redis::Connection::Ruby#format_integer_reply |
|
|
U
|
Redis::Connection::Ruby#format_status_reply |
|
|
U
|
Redis::Connection::RedisClient#receive_data |
|
|
U
|
Redis::Connection::Ruby#format_error_reply |
|
|
U
|
Redis::Connection::Ruby#get_tcp_keepalive |
|
|
U
|
Redis::Connection::Ruby#set_tcp_keepalive |
|
|
U
|
Redis::Connection::Ruby#format_bulk_reply |
|
|
U
|
Redis::Connection::RedisClient#post_init |
|
|
U
|
Redis::Connection::Synchrony#initialize |
|
|
U
|
Redis::Connection::Synchrony#disconnect |
|
|
U
|
Redis::Connection::SocketMixin#timeout= |
|
|
U
|
Redis::Connection::Hiredis#disconnect |
|
|
U
|
Redis::Connection::UNIXSocket.connect |
|
|
U
|
Redis::Connection::Hiredis#initialize |
|
|
U
|
Redis::Connection::RedisClient#unbind |
|
|
U
|
Redis::Connection::Synchrony#timeout= |
|
|
U
|
Redis::Distributed::CannotDistribute |
|
|
U
|
Redis::Connection::TCPSocket.connect |
|
|
U
|
Redis::Connection::Ruby#format_reply |
|
|
U
|
Redis::Connection::Synchrony.connect |
|
|
U
|
Redis::Connection::SocketMixin#gets |
|
|
U
|
Redis::Connection::SocketMixin#read |
|
|
U
|
Redis::Connection::RedisClient#read |
|
|
U
|
Redis::Connection::RedisClient#send |
|
|
U
|
Redis::Connection::Hiredis#timeout= |
|
|
U
|
Redis::Connection::Ruby#disconnect |
|
|
U
|
Redis::Connection::Ruby#initialize |
|
|
U
|
Redis::Connection::Hiredis.connect |
|
|
U
|
Redis::SubscribedClient#initialize |
|
|
U
|
Redis::Connection::Synchrony#write |
|
|
U
|
Redis::Connection::Synchrony#read |
|
|
U
|
Redis::Client#with_socket_timeout |
|
|
U
|
Redis::Connection::Ruby#timeout= |
|
|
U
|
Redis::Distributed#mapped_msetnx |
|
|
U
|
Redis::Connection::Hiredis#write |
|
|
U
|
Redis::Connection::CommandHelper |
|
|
U
|
Redis::Distributed#mapped_hmset |
|
|
U
|
Redis::ProtocolError#initialize |
|
|
U
|
Redis::Connection::Ruby.connect |
|
|
U
|
Redis::Connection::Hiredis#read |
|
|
U
|
Redis::Distributed#on_each_node |
|
|
U
|
Redis::Pipeline#with_reconnect |
|
|
U
|
Redis::Connection::RedisClient |
|
|
U
|
Redis::Distributed#mapped_mset |
|
|
U
|
Redis::Connection::SocketMixin |
|
|
U
|
Redis::Pipeline#call_pipeline |
|
|
U
|
Redis::Distributed#initialize |
|
|
U
|
Redis::Connection::UNIXSocket |
|
|
U
|
Redis::Subscription#callbacks |
|
|
U
|
Redis::Connection::Ruby#write |
|
|
U
|
Redis::Client#with_reconnect |
|
|
U
|
Redis::HashRing#get_node_pos |
|
|
U
|
Redis::Connection::Synchrony |
|
|
U
|
Redis::Client#call_pipelined |
|
|
U
|
Redis::Distributed#pipelined |
|
|
U
|
Redis::SubscribedClient#call |
|
|
U
|
Redis::Connection::TCPSocket |
|
|
U
|
Redis::Connection::Ruby#read |
|
|
U
|
Redis::HashRing#sorted_keys |
|
|
U
|
Redis::Client#call_pipeline |
|
|
U
|
Redis::HashRing#remove_node |
|
|
U
|
Redis::Distributed#node_for |
|
|
U
|
Redis::Distributed#add_node |
|
|
U
|
Redis::HashRing#iter_nodes |
|
|
U
|
Redis::Connection::Hiredis |
|
|
U
|
Redis::Distributed#inspect |
|
|
U
|
Redis::Client#command_map |
|
|
U
|
Redis::Client#connection |
|
|
U
|
Redis::HashRing#replicas |
|
|
U
|
Redis::Client#initialize |
|
|
U
|
Redis::Distributed#_eval |
|
|
U
|
Redis::Distributed#_bpop |
|
|
U
|
Redis::Future#initialize |
|
|
U
|
Redis::Pipeline#commands |
|
|
U
|
Redis::Client#disconnect |
|
|
U
|
Redis::Distributed#nodes |
|
|
U
|
Redis::Pipeline#futures |
|
|
U
|
Redis::Client#reconnect |
|
|
U
|
Redis::SubscribedClient |
|
|
U
|
Redis::Distributed#ring |
|
|
U
|
Redis::Client#call_loop |
|
|
U
|
Redis::Connection::Ruby |
|
|
U
|
Redis::Future#_command |
|
|
U
|
Redis::Distributed#dup |
|
|
U
|
Redis::Pipeline::Multi |
|
|
U
|
Redis::Distributed#[]= |
|
|
U
|
Redis::Client#password |
|
|
U
|
Redis::Client#location |
|
|
U
|
Redis::Distributed#[] |
|
|
U
|
Redis::FutureNotReady |
|
|
U
|
Redis::HashRing#nodes |
|
|
U
|
Redis::Client#process |
|
|
U
|
Redis::Client#connect |
|
|
U
|
Redis::Future#inspect |
|
|
U
|
Redis::Client#logger= |
|
|
U
|
Redis::Client#timeout |
|
|
U
|
Redis::Client#options |
|
|
U
|
Redis::Client#logger |
|
|
U
|
Redis::HashRing#ring |
|
|
U
|
Redis::Client#driver |
|
|
U
|
Redis::Client#scheme |
|
|
U
|
Redis::Future#class |
|
|
U
|
Redis::Pipeline#db= |
|
|
U
|
Redis::Future#value |
|
|
U
|
Redis::Subscription |
|
|
U
|
Redis::Client#write |
|
|
U
|
Redis::Client#read |
|
|
U
|
Redis::Pipeline#db |
|
|
U
|
Redis::Client#host |
|
|
U
|
Redis::Client#port |
|
|
U
|
Redis::Future#_set |
|
|
U
|
Redis::Client#path |
|
|
U
|
Redis::Connection |
|
|
U
|
Redis#synchronize |
|
|
U
|
Redis::Client#db |
|
|
U
|
Redis#initialize |
|
|
U
|
Redis::Client#id |
|
|
U
|
Redis::Client#io |
|
|
U
|
Redis.deprecate |
|
|
U
|
Redis::HashRing |
|
|
U
|
Redis::Pipeline |
|
|
U
|
Redis#pipelined |
|
|
U
|
Redis.current= |
|
|
U
|
Redis.current |
|
|
U
|
Redis#inspect |
|
|
U
|
Redis::Future |
|
|
U
|
Redis#client |
|
|
U
|
Redis#_bpop |
|
|
U
|
Redis#_eval |
|
|
U
|
Redis#dup |
|
|
U
|
Redis#id |
|
|
U
|
Redis::Connection::CommandHelper#encode |
|
|
U
|
Redis::Distributed#ensure_same_node |
|
|
U
|
Redis::Client#establish_connection |
|
|
U
|
Redis::Distributed#node_index_for |
|
|
U
|
Redis::Client#ensure_connected |
|
|
U
|
Redis::Client#_parse_options |
|
|
U
|
Redis::Client#_parse_driver |
|
|
U
|
Redis::Distributed#key_tag |
|
|
U
|
Redis::Client#logging |
|
|
U
|
Redis::Connection::UNIXSocket#_read_from_socket |
|
|
U
|
Redis::Pipeline::Multi#commands |
|
|
U
|
Redis::Pipeline::Multi#finish |
|
This page is for redis/redis-rb and is part of a project called "Inch Pages", showing documentation measurements provided by Inch.
Inch Pages also provides a badge:
(not counting low priority objects)
I really think that posting badges for documentation in READMEs will benefit you (because people can see that your project is well documented) and our community in general by improving the visibility of documentation.
Let's start a discussion, let's raise the visibility of documentation, let's talk.
Suggestions, feedback, critique: Hit me up on Twitter or via issue.