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")
  

 

Categories
日常应用

微单拍月亮小白教程

虽然超级月亮每年都可能出现一次到两次,但是毕竟一年就那么几天,能拍拍也不错。然而我们一般也不会为了拍月亮而特意准备什么器材——常年拍鸟的有长焦镜头自然好,可是谁没事儿扛着个长枪大炮出门啊....园主反正就一个索尼微单(还是五年前买的),以及一个标配的18-55mm镜头...就这样简陋的装备,也能拍环形山好嘛。

下面是园主的心得。

  • 首先,放弃iphone。
  • 其次,你要有个长焦。(然而园主并没有)
  • 再次,你要有个单反。(园主只有个五年前的微单凑数)

我不知道现在的相机是不是更高级了,反正园主手里的这个微单是没有星空模式,所有自动模式拍的月亮都是一团光圈, 不比iphone好到哪里去....所以,靠手动模式吧!

拍月亮一团光圈的原因不是晚上光线不足没法对焦,而是因为月亮实在是太亮了!按照其他背景风景的亮度根本没法拍月亮。所以,降光线是最重要的。

首先,我们不是拍银河,所以iso降到100或200。

然后大光圈。曝光时间1/2000秒。或者你有三角架的话可以小光圈、延长曝光时间。

最后,最最重要的,对焦无穷远。园主的微单只有一个手动模式可以实现(随便搜了张图)。

screen-shot-2016-11-15-at-1-19-35-pm

嗯、还想要背景?那就高iso长时间同一位置再曝光一次。后期,靠photoshop合二为一吧。

所以最后的成果就是...勉强可以看到环形山。

dsc03139-c2摄于Mission Bay, San Francisco.

Categories
日常应用

《Stardew Valley 星露谷物语》送礼关系网

呃,前段时间入了Stardew Valley(星露谷物语)的坑,然后发现送礼是门很讲究的事情。

然后手痒痒,职业习惯使然,就顺手分析了一下送礼策略。

原始数据:Stardew Valley的官方wiki送礼页面

然后我就是想看一下怎么简单的可以携带一堆礼物然后送给不同村民。

分析办法:把官网wiki的数据抓下来,然后看一下那些东西可以同时送给多个人,又比较容易获得,这样便于有计划的生产和携带。

结果:画了一张图...v开头的是村民,其他都是礼物。前面分析在r,画图的时候还是用了gephi...便于控制。

screen-shot-2016-11-06-at-6-52-54-pm

源代码:

gift = read.csv("stardew valley gift.csv/Sheet 1-Table 1.csv", stringsAsFactors = F)

names(gift)

expand.gift = apply(gift, 1, 
      function (x) {
        gift_list = unlist(strsplit(x[2],"\n "))
        data.frame(v = x[1], g = gift_list)
        }
      )
expand.gift = do.call(rbind, expand.gift)

expand.gift$v = gsub("\n","",expand.gift$v)
expand.gift$g = gsub("[[:space:]]","",expand.gift$g)
expand.gift$v = paste0("v.",expand.gift$v)
names(expand.gift) = c("source","target")
write.csv(expand.gift, file = "expand.gift.csv", row.names = F)
expand.gift = subset(expand.gift, ! g %in% c("Prismatic Shard","Rabbit's Foot"))

expand.gift.mul = merge(expand.gift, expand.gift,
                        by.x = "v",by.y = "v")
expand.gift.mul = subset(expand.gift.mul, g.x!= g.y)

library(igraph)
gift.n = graph_from_edgelist(as.matrix(expand.gift.mul[,2:3]), T)
gift.n = as.undirected(gift.n, mode = "mutual")
V(gift.n)$size <- 1
l <- layout_with_kk(gift.n)
plot(gift.n,layout=l, vertex.label.cex	 = 0.7)

write_graph(gift.n, file = "svgift.gml",format = "gml")

原始数据:

sheet-1-table-1.csv

矢量图形:

svgift.pdf

Categories
经济、IT观察与思考

理想国

上小学的时候,思想品德课是由我们的班主任兼语文老师兼上的。那个时候,老师最喜欢问的就是:

同学们,你们长大之后的理想是什么呀?

众口一致的,“科学家”。现在想想,那是一种惊人的一致。我不知道是一种长时间的自上而下的洗脑使然,还是一种”不能离群“的压力导致大家不说真话。

上初中的时候,已经没有了思想品德这门课程,只是在一些场合中老师还是会偶尔地问起相同的问题,却也不是必答题了。那个时候开始有了一些自我意识的萌醒,觉得大家都要当科学家我才不要当科学家呢,我要当企业家。现在想想也是另一种可笑,我至今也没搞懂企业家是什么东西。

后来继续成长,然后慢慢的知道自己喜欢的和不喜欢的事情。经历了若干次半夜灵感泉涌然后刷刷落笔,便知道什么事情可以让我更加的开心。这个时候的自我意识已经非常的强烈了,已经可以理智的区分哪些是我自己喜欢的东西,哪些是为了“融入社会”不得不做的事情。这个时候,理想和现实的分化开始越来越明显,一开始会有那种和理想渐行渐远的无比失落,而后来也就习惯了失落。这样子,我才知道,哪些是理想,哪些是幻想。

幻想大概就是一种“不劳而获”的期待,简单如明天中个彩票我就可以财务自由了。结果是美好的,自己还不用付出努力,不知道真的实现了是好是坏。理想则不同,理想是一个人一直在努力和奋斗的精神激励,虽然可能也是可望而不可及,但总是还是期盼着可以一点点的缩短这样的距离。理想太容易实现,便不是理想了,只是一个短期或者中期的目标罢了。

若干年前,买了本柏拉图的《理想国》,却没有认认真真的读完,只是偶尔打开翻翻。可能我更喜欢的是这个中译标题——《理想国》。理想国和理想的最大区别大概就是,理想是对于自己未来的描述,而理想国是对于一群人未来的描述。当我对自己的理想有了更多的认知之后,就会难以避免的发现,任何一种状态周围都是有更多的人牵连,我的理想并没有活成一种孤立的状态(比如我可以赞叹Perelman 佩雷尔曼,但却无法想象自己处于那样的生活状态)。

每个人的性格都不一样,而我对自己的认知的一面就是,对于我越得不到的东西,我就会愈加的念念不忘,甚至刻意的去放大它的优点、忽略它的缺点,产生一些不切实际的幻想。打破这种认知其实也不是很难,比如小时候特别喜欢的游戏买不到,后来长大了一口气买了许多,也只是在陈列柜里面一种仪式一般的摆放整齐,并没有时间一一安装并且通关了。过期的实现,除了一瞬间被慰藉的情怀,其实应该承认已经没有什么实质的欢喜了。所以后来渐渐的学会控制执念,明白过去的就是过去了,就算现在变出来一个一模一样的给我,那种欣喜之情已经变质了。

于是乎,关于个人的理想变得越发的简化而持久,关于社会的理想变的越来越复杂和膨胀。前者是对于自己的方向定位和鞭策,后者是带有幻想色彩的希望自己能贡献的方向。

我周围有一群很聪明且有灵性的人。这种聪明不见得是各种满分和荣誉证书,而是他们有能力做好自己喜欢的事情。每当有人因为现实的原因和理想渐行渐远,就会触发我心底的一种“同是天涯沦落人”的悲伤,这大概也是我最见不得的情形之一。当然,很多人会很快的重新找到自己喜欢的其他事情,然后得心应手的飞速发展,倒也不失为一种幸福。

在这种层次上的理想国,大致就是杜甫的“安得广厦千万间,大庇天下寒士俱欢颜”。你可以理解“厦”是一种物质层面的保障,也可以理解“广”是对于思想自由的包容。我心中的理想国,一定是一个百花绚烂色彩斑斓的世界,而不是一个黑白灰的明暗过渡或支离破碎。

然而,自省一番就会明白,就算是这种层次上的理想国,我也并没有什么可以贡献的方向。见过许多人小心翼翼的包裹起来自己曾经的理想,然后戴上一副面具曰人生如戏。只是演的久了,是不是就彻底的融入角色了,反而曾经的理想变成了期望扮演的角色。我一向珍视真实和真诚,然而也充分的意识到一些人性的恶——从来不要去考验人性。各种恶里面,最让我厌恶的大概就是“幸福源于比较”,非要把自己排到其他人上面才有优越感。然而却也不得不承认,我也常年被这种恶所困扰,不时会因为一些比较而感到失落和挫败。

所以我的理想国,在现在而言只是一个幻想国。我期冀他人可以活的真实,而我自己也并没有完全摘下自己的面具。

写了这么多,想想值得记录的大概就是,理想国的概念开始萌发。只是这样的概念稍显脆弱,而我也不必辩解自己的无力。