Categories
读书有感

笔耕不辍(?)

有的时候会问自己,这么多年一直维持着落园,是什么样的动机。似乎最好的答案就是翻翻过去的日志,然后对着过去的自己嘲笑一番。人总是会在某些时刻幡然醒悟,然后继续犯着让未来的自己嘲笑的错误。

这几天又是假期,百无聊赖,开始沉迷游戏。沉迷了两天发现玩游戏好累(打了一局《文明》真的是天都亮了...),然后改看书,穿插着饿到不行的时候抓点食物或者做点饭。可见我也不是什么上进的心态,看看闲书小说罢了,并没有心情看什么严肃文学。

看着看着书,就开始八卦心起,然后毫无理性线索的开始漫天查各种人物八卦,虽然知道过了几日或者几月就会忘了(我的脑容量好像格外小,不相干的事情忘的越来越快)。看着看着,就在想,我为什么没有成为一个文学作者。当然一方面是没有天赋,阅读量和叙事能力都有限,另一方面也是慵懒。想想要靠着不断消耗脑力来创作新的文学片段来养活自己,多少有点可怕。日常工作不需要创造性也能完成,偶尔灵光一现来点有创造性的提升,这才是比较舒服的工作状态。事情都得是勤勤恳恳的,我不觉得我有那么多灵光一现的时刻可以用来挥霍。

有的时候想,不知道作为一个专栏作家会有多么大的压力。我甚是了解自己慵懒的个性,有的时候不想写就是不想写,你逼我在电脑前一坐几个小时也写不出来什么。不知道那些日行千字的职业作家是什么做到每天都趴在电脑前面写字的,抑或很多人其实也就是流水作业流水账。着实不了解这个行业的情况,也没有人曾细细诉说此中辛秘。

Categories
我的生活状态

宅·生活

自我觉得不是一个很宅的人,比如yihui说他很享受在家办公的“宅”生活,而我属于不去上班不跟人讲话聊天就受不了的类型。周末也是如此,如果两天不出门,周一醒来就会觉得小小的期待,终于可以出门了耶。

可是我也是很享受“宅”的状态。早晨睡到自然醒,爬起来吃点东西温暖一下胃,然后决定要不要再窝一会儿。穿着最宽松的睡袍,衣冠不整,妆容凌乱,反正也不需要见任何人,这种状态最为惬意。

沙发是宅生活的最重要的地方——所有吃喝玩乐的东西都是围绕沙发摆放,不知不觉就堆成了小山。然后打开电脑,连上网,沉迷在游戏里面若干小时,不吃不喝,不闻不问。下雨的时候尤其享受,反正外面也是黑黑的,不会在日落时刻有什么罪恶感。

Categories
经济、IT观察与思考

封闭的城市角落

有时候会偶尔坐火车去50英里之外的公司上班,这途中的一个多小时就是盯着窗户发呆的时刻。火车会经过很多汽车无法经过的地方,而且也不用像开车那么专注,自然有时间和心思来琢磨一些课余话题。

三藩的历史也不算太短,而城市一直在经历着各种变化迭代。比如我所居住的potrero hill区,因为临近海湾,所以历史上是码头和仓库的聚集地,以及附带的工厂等。随便开车走走,还是能看到不少简陋的厂房和仓库。这些仓库大多被短期出租另有用途,比如开个小展览厅,或者搞个复古的工业风酒吧等等。而随着越来越多的人口涌入,很多闲置或者半闲置的仓库就被有计划的改造成新的住宅或者商业建筑。开着车在三藩兜风,就会经常注意到又有新的区域被开发起来,然后周边的区域变的越来越热闹。

很多建筑在建设的时候,是有围墙围起来的,所以开车经过看到的无非就是一块“立入禁止”的牌子。有时候围墙并不透明,所以路过的时刻很难知道里面正在发生着什么。直到有一天围墙拆除,才得以一窥内部建设的样貌。而如果建设并不迅速,这些角落就一直被不透光的墙围着,慢慢的积攒灰尘。

这个时候就感慨,若是有个会飞起来的无人机多好,就可以飞跃围墙的阻隔,窥探墙内的荒凉。我想墙内定是荒凉乃至狼藉的吧。不知道有没有流浪的猫狗在里面寄居,或许对他们来讲是个不错的安静之处。可是猫狗可以钻缝隙,那些常年露宿街头的流浪汉呢?三藩虽然还算温暖的,但再好的帐篷也毕竟比不上遮风挡雨的屋顶。

这些,都是一个发展中的城市不为人知的角落,有着自己不为人知的故事。和上海很不一样的是,上海的闹市区里面也会经常走过所谓的“棚户区”,看着摇摇欲坠的老房子里面伸出来一根根长长的晾衣杆,不耐烦的妈妈们训斥着到处顽皮的小男孩。弄堂的门口还有三五闲人要么择菜,要么听着收音机遛猫。这些场景都是鲜活的不加遮掩的,而三藩的另一面就被一堵堵墙围在看不见的区域里面,自行发酵。

不知道在那些流浪汉的眼中,三藩是不是和我生活的很是不一样。虽然大家都可以顺着山势爬到twin peaks上面看风景,只是不知道没有厚厚的冬衣包裹的他们是不是从内寒到外。越是希望探究不容易看到的区块,越是希望接触不容易沟通的人,越是觉得这个社会是那么的复杂而生动。只是我们习惯了禁锢,习惯了在自己最舒服的区域安安静静的打发时光。那些没有读懂的梦想,或许在未来很长的时间,也不会有读懂的契机。

墙,可以围起来一座城,也可以围起来一片建筑,也不知不觉的阻断了交流的声音。围墙,围城。

Categories
我的生活状态

浮生若梦

昨天约了一位好友在三藩吃饭。晚上的三藩最热闹的要数Mission区了。我们跑到一家闻名已久的tapas餐厅,配着烤鱿鱼和tacos小酌几口,听着轰轰隆隆的音乐。一旦过了八点,整个餐厅就自然而然地变身成了bar。这在Mission毫不奇怪。甚至如果这家开到晚上十点还是餐厅的话,我倒会觉得诧异。

好友的时差未解,我们便打算走出去吹吹风。沿着Valencia大街走走,不远就是一家独立书屋。三藩除了著名的City Lights,大概每个区多少都有一家这样的略有年头的书店。我们也只是信步而入,并没有什么特别的目标。书店的安静和酒吧的喧嚣形成了鲜明的对比,而这样的安静却提醒我家里还有一本上次淘到的《犹太人和阿拉伯人》的历史还没读完。无意瞄到一本Joan Miro的画集加传记,却没有收入囊中的勇气。我只是条件反射性的会想起巴塞罗那的海滩

夜晚像一只黏人的猫,悠闲的逛着却不想回家。慢慢走到标记已久的Tartine Factory,透过明亮的落地窗,看着对面维多利亚风格的小楼,打开手机查到居然是三层的loft结构...不禁和好友幻想起一个充满自由的家的模式。

Tartine的甜品每次都让我惊艳。入口即化的脆壳包裹着里面绵软的糖朵,随意一抹的热情果果酱加入了恰到好处的酸香,再配上一个看起来平淡无奇的香草冰淇淋球,中间只消再洒一点点肉桂粉...味蕾和灯光的迷离融为一体,美人的眼睛中突然绽放了光芒。或许是习惯了失去,一瞬间觉得这样的生活是这么的奢侈。奢侈的让人难以放手,只愿时光凝结,心头的颤动入画。

去过的地方越多,味蕾也变的越来越挑剔。食物总有一种神奇的力量,可以一瞬间赶走一切悲伤。身边的人走走停停,停停走走。那些借助网络的若有若无的联系,总比不上见面时刻一个温情的拥抱。一个让夜晚变得迷醉而不是寒冷的拥抱。

Categories
事儿关经济

中国地名的字频统计(县级及以上)

前几天看到微博上大家讨论县城名字:http://weibo.com/1444865141/EjcmoaykB

screen-shot-2016-11-27-at-5-44-05-pm

一时好奇,就把官方数据拿来看了一下。(2016年9月中华人民共和国县以上行政区划代码)

全部用来命名的只有1228个字,而相较于新华字典一般收录的八千到1万字,覆盖面其实挺小的。

不出意外的,这个字频分布呈现快速下降的长尾分布。看一下这个数据,还是蛮有意思的。

  • 第一名的“族”主要是有各种少数民族自治行政区划的存在。
  • 如果不看这个,则最受大家喜欢的就是“山”,“城”,“阳”,“江”,“安”,“州”。
  • 四个方向中,排序为“南”>“东”>“西”>“北”。
  • 地势描述成为了命名的主力词:山、江、河、海、川、湖、溪、林等。
  • 五行排名如下:水>金>土>木,然后没有火!看来全国人民都痛恨火灾。是不是和马伯庸提到的“雪”同理?大家都讨厌灾害。

这里贴一下前50高频词。

char_freq

完整的字频统计在这里: 中国县级及以上行政单位字频统计.txt

然后我们分区域来看一下各个区域特征。因为港澳台地区没有太多数据,所以我们只分析六大区域:华北、东北、华东、华中/华南、西南、西北。

  • 地势:除了西北地区以外,其他五个地区特别喜欢“山”。此外,东北常用“江河岭”,华北、西北常用“河”,华中/华南常用“江”,华东常用“江湖”,西南常用“江川”。
  • 四个方向:东北地区喜欢“东西”,华北地区喜欢“西”,华东地区喜欢“东南”,华中/华南常用“南”,西北常用“西”,西南常用“西南”。
  • 东北地区、西北地区、华南地区多有少数民族,故而地名含有民族名称。

region

全部数据下载:

中国县级及以上行政单位字频统计(按省份).txt

中国县级及以上行政单位字频统计(按地区划分).txt

原始数据:

town_name.csv

分析脚本:

town_name <- read_csv("~/Documents/town_name.csv")
names(town_name) = c("code","name")

town_name$name_s = gsub("市$|区$|县$|旗$|自治.*?$|盟$|省$","",town_name$name)
unique_character = unlist(strsplit(town_name$name_s,split = ""))
character_freq = as.data.frame(table(unique_character))
library(dplyr)
character_freq = character_freq %>% 
  arrange(Freq) %>% 
  mutate(rank = 1:nrow(character_freq))
write.csv(character_freq, file = "character_freq.csv", row.names = F)

library(ggplot2)
top_50 = character_freq %>% filter(Freq >= 25) 
ggplot(top_50, aes(x = as.factor(rank), y = Freq)) + 
  geom_bar(stat="identity", alpha = 0.5, fill = "grey")+
  coord_flip()+
  theme_bw(base_family = "Hei") +
  scale_x_discrete(labels = top_50$unique_character) +
  xlab("") +
  geom_text(aes(label = Freq, y =Freq/2 ), color = "deepskyblue3") +
  ylab("频次")+ggtitle("中国县级及以上行政单位字频统计")

#五行
character_freq %>% filter(unique_character %in% c("金","木","水","火","土")) 

#省

town_name$province = substr(town_name$code, 1,2)
town_name$region = substr(town_name$code, 1,1)

unique_prov =  town_name %>%  
  filter(grepl("0000",town_name$code))

char_by_prov = lapply(unique_prov$province, function(x) {
  prov = subset(town_name,province==x)
  chars = unlist(strsplit(prov$name_s,split = ""))
  freq_prov = as.data.frame(table(chars))
  freq_prov$rank = rank(-freq_prov$Freq, ties.method = "first")
  freq_prov$prov = x
  return(freq_prov)
})
char_by_prov = do.call(rbind, char_by_prov)

names(char_by_prov)
ggplot(char_by_prov %>% filter(rank<=5 & chars != "族" & ! prov %in% c(82,81)), aes(x= rank, y = Freq)) +
  geom_bar(stat="identity", alpha = 0.3)+
  facet_grid(name~.)+
  theme_bw(base_family = "Hei") +
  geom_text(aes(label = chars, y = Freq/2),family = "Hei")+
  coord_flip()+
  xlab("") +
  ylab("字频")
write.csv(char_by_prov, file = "char_by_prov.csv", row.names=F)

#by region
char_by_region = lapply(1:6, function(x) {
  prov = subset(town_name,region==x)
  chars = unlist(strsplit(prov$name_s,split = ""))
  freq_prov = as.data.frame(table(chars))
  freq_prov$rank = rank(-freq_prov$Freq, ties.method = "last")
  freq_prov$region = x
  return(freq_prov)
})
char_by_region = do.call(rbind, char_by_region)
char_by_region$region = factor(char_by_region$region)
levels(char_by_region$region)  = c("华北","东北","华东","华中/华南","西南","西北")

ggplot(char_by_region %>% filter(rank<=10 ), aes(x= rank, y = Freq)) +
  geom_bar(stat="identity", alpha = 0.3)+
  facet_grid(region~.)+
  theme_bw(base_family = "Hei") +
  geom_text(aes(label = chars, y = Freq/2),family = "Hei")+
  coord_flip()+
  xlab("") +
  ylab("字频") + ggtitle("中国县级以上行政单位字频统计(按区域划分)")

write.csv(char_by_region %>% filter(rank<=10 ), file = "freq_by_region.csv",row.names = F)
write.csv(char_by_region, file = "char_by_region.csv", row.names = F)
# draw regional map

library(ggmap)  


# find each regional center
unique_region = filter(unique_prov, substr(province,2,2)==2 & region<=6)   
location = lapply(unique_region$name,geocode)
location = do.call(rbind,location)
unique_region = cbind(unique_region,location)
unique_region$region = factor(unique_region$region)
levels(unique_region$region)  = c("华北","东北","华东","华中/华南","西南","西北")

# top 10 char for each region
top_10_region = char_by_region %>% filter(rank<=10 )
top_10_region =  top_10_region %>% 
  mutate(labels = paste0(chars," (",Freq,"次)"))

top_10_region = merge(top_10_region,unique_region, by ="region")
#adjust label positions

top_10_region_g = top_10_region %>% 
  mutate(lon_a = lon - rank %%2 *5 -3,
         lat_a = lat  - rank/2 - rank %%2 *(1/2)+5/2) %>% 
  select(c(region, rank, lon_a, lat_a, labels)) %>% 
  arrange(region,rank)

#manual adjustment
top_10_region_g = top_10_region_g %>% mutate(
  lon_a = lon_a + (region == "华东")*(7) + (region == "西南")*(-3)
)

qmap('China',color="color", zoom = 4, maptype = "satellite", alpha = 0.8) + 
  geom_text(data = top_10_region_g, aes( x = lon_a, y = lat_a, label = labels),
            family = "Hei",color = "white") +
  geom_text(data = unique_region,aes( x = lon-6+ (region == "华东")*(7)+ (region == "西南")*(-3), y = lat+3, label = paste0(region,"地区:")),
            family = "Hei",color = "white")