配置 Hexo + Github 博客的若干恶心处

首先严厉批评一下 Hexo 官方,文档过于落后,导致官方提供的安装配置方法竟有很多错误,给大量用户造成极高的配置成本,而这些本来是不需要用户来承担——软件更新了文档却不改,你是要上天?
声明一下我的环境版本,如果你在网络搜索配制方法,请一定关注一下作者使用的版本,否则可能会有坑。

hexo 3.2
node.js 5.10.1
hexo-cli 1.0.1

一些常见问题的处理方案:

问题一:Mac 用户配置 Hexo 前安装 Command Line Tools

官方文档说,Mac 用户在配置 Hexo 时可能会出现一些错误,因此需要在配置前安装 Xcode,并通过 Xcode 安装 Command Line Tools。
大写的坑爹!
Xcode 自版本 5 之后,就将下载 Command Line Tools 的功能移除,而目前 Xcode 最新版本是 7.3 ,可见 Hexo 官方有多久没有更新文档了!大多数对 Xcode 没有任何需求的人,把将近 5G 的 Xcode 下载安装后发现对自己毫无帮助,该是怎样一种草泥马的心情?
苹果已向开发者单独提供 Command Line Tools,一共约 150M 大小,安装后约 450M 。

下载链接:
https://developer.apple.com/downloads/

当然咯 Command Line Tools 也可以通过 命令行 来安装:

$ xcode-select --install

问题二:npm install hexo-cli -g 后出现无写入权限问题

由于 npm install 会对 /usr/local/bin 文件夹进行修改,需要 root 权限,因此只需在命令前加 sudo 即可:

$ sudo npm install hexo-cli -g

问题三:文档中用命令行安装nvm的代码错误

由于 Github 上代码地址发生了更改,而 Hexo 官方文档提供的依旧是旧地址,因此用户如果按照官方教程进行配置就会安装失败。
官方的失效代码:

$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh (本行有错,仅供鞭尸,请勿使用)

正确代码如下:

$ curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | sh

问题四:执行 hexo 命令时的 MODULE_NOT_FOUND 问题

在按照官方说明执行 hexo init blog (或者任意 hexo 命令)时,出现三个 Error: Cannot find module的问题。

{ [Error: Cannot find module './build/Release/DTraceProviderBindings'] code: 'MODULE\_NOT\_FOUND' }
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE\_NOT\_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE\_NOT\_FOUND' }

我在 hexo 的 issue 中发现大家有几种解决方法:

  1. 先卸载 Hexo ,然后仅安装 Hexo 的核心部分,放弃可选项,代码如下:
$ npm uninstall hexo
$ npm install hexo --no-optional

同时有群众表示,新版本中需要添加 –save 参数,代码如下:

$ npm uninstall hexo
$npm install hexo --no-optional --save

两种方法我都试过,对我无效。但对你可能有用,不妨一试。

  1. 在 Github Issue 下面,有人提醒也许问题并不出在 Hexo 或者 Node.js 身上,而是错误信息中那个 DtraceProviderBindings 模块的问题。相关链接在此

问题五:部署到Github上的若干小坑

  • 要在blog目录下安装hexo-deployer-git
    这里我一直犯错,在用户根目录下安装,然后显示找不到目录云云。实际应该先进入blog目录,然后执行以下命令:
$ npm install hexo-deployer-git --save
  • 如前文所述,执行 hexo 系列命令时,module_not_found 问题始终没有解决,但是目前看来,似乎并不影响程序的执行。所以这个错误应该是 OSX 中的某个细节问题,而非 Hexo 的问题。但每次都有这么个尾巴毕竟不爽,后面我会继续跟踪学习,尽量找到解决方案。

  • 详细的安装步骤、以及写博客编辑页面等命令,都在官方文档中,不再赘述。

Tagged : /

《超小史诗王国 Ultra-Tiny Epic Kingdoms》KS众筹最后三天

我一直特别青睐『小型』产品,结果本来就已经很Tiny的Tiny Epic Kingdoms居然推出了Ultra Tiny版!写一篇文章介绍一下Gamelyn Game公司和他们的Tiny Epic系列桌游。
由桌游厂商Gamelyn Games推出的Tiny Epic系列中的Tiny Epic Kingdom近日在Kickstarter上众筹其微缩版——《Ultra Tiny Epic Kingdoms》。
1
游戏主题围绕2-5名玩家代表的不同王国,通过建造高塔、精研魔法、占领土地获得最终胜利,游戏机制为区域控制、拍卖、区域移动等,比较偏向传统德式轻策游戏。
这一『超小』版本将原版TEK缩小成了 2.5英寸* 3.5英寸 的 卡牌大小,号称『可以装进衬衣口袋的1-5人策略游戏』。相比原版,减少了探索迷你扩,增加了单人Solo模式,豪华版还赠送收纳袋和牌套,同时价格从原版的$25大幅下调至$9。
3
Gamelyn Game表示,制作这样的『超小』版本并不是未来Tiny Epic系列的发展方向,Tiny Epic系列的粉丝不用太担心。设计这样的『超小』口袋版是为了迎合大众市场缩需求的小型卡片游戏趋势。为此,Gamelyn Game还专门为门店销售设计了精美的货架版包装盒,相信凭借精美的游戏、明确的销售对象和超低价格,一定能在大众零售市场上获得不错的成绩。
5
原版Tiny Epic Kingdoms诞生于2014年,曾获得GoldenGeek 2013年最佳PnP游戏奖。『PnP-众筹-正式出版』的游戏设计生产路线图,从TEK开始正式形成。而后Gamelyn Game在2015年又连续推出了Tiny Epic Defender和Tiny Epic Galaxies,并在2016年推出了Tiny Epic Western。Tiny Epic Defender评价平平,然而同样走了『先发布PnP版本,然后KS众筹』路线的Tiny Epic Galaxies则大获成功,同时获得2015年度GoldenGeek最佳Solo游戏奖和最佳策略游戏提名。对这样一个小型卡牌策略游戏来说,不能不说是一个奇迹。
Gamelyn Game在Tiny Epic系列上的巨大成功,也给其他厂商提供了相当宝贵的经验——完成游戏机制设计后,先放出PnP版让玩家试玩,再酌情修改并进行成品设计,最终以众筹形式使之面试。这样轻量化的产品设计与生产流程,在前期考量了市场反应,又第一时间获得了玩家反馈。如Tiny Epic Kingdoms的PnP版更一举获得了GoldenGeek奖,这为后期的生产与销售都打下了坚实基础。
4
目前《超小史诗王国Ultra Tiny Epic Kingdoms》在KS上已经超额5倍完成众筹目标,进入最后3天的冲刺。单盒游戏价格$9,豪华版$12,全球邮费$9,2016年8月发货。这价格、这大小,再不下手就晚了!

Tagged :

《Automate the boring stuff》学习心得

经过一个多月的懒懒散散的学习,终于啃完这本600多页的Python实战类教科书。在《Automate the boring stuff》(以下简称Automate)中比较重要的内容是,掌握Python基本语法和数据结构,学习一些内建库,同时了解和应用一部分解决职场问题非常方便的第三方库。
由于早先已经学过了《笨方法学Python》,基本语法语法掌握告一段落,因此开头几章比较顺利。下面我标记出(对我而言)比较重要的几个章节,供参考。
《Automate》使用Python3,如果需要多版本共存,可以查看我早先写的如何安装和配置Pyenv的文章——《Mac上修改Path,及用Pyenv管理多版本Python》
Chapter 5 – Dictionaries and structureing data
Python中Dictionary的用法非常重要,从这里开始,就成为本书中最常使用的数据结构。而用来操作Dictionary的几个函数(如keys/values/get等)则需要多写几行代码来记住用法。
后半章的结构化数据我还没弄非常明白,只是跟着教程完成了Project,有机会要在看一下(写本文的时候,我又看了一遍Dictionary部分,果然忘了好多)。
Chapter 7 – Pattern Matching with Regular Expressions
本章学习正则表达式的用法,为后面批量操作文件和写爬虫打好基础。内容稍微有点不好理解,并且需要记忆的地方很多。由于Python2到Python3中升级了部分语法(例如格式化字符**%**统一变成了format.(),不再需要记忆数据类型),因此需要注意目前使用的python版本。
这一章内容多而繁琐,又比较抽象,可能需要多花点时间。
Chapter 11 – Web Scraping
爬虫是全书的核心重点之一,也是Python最常用的功能之一。requests/BeautifulSoup这两个库是这个章节中最重要的部分,前者用来下载需要的数据,后者用来解析HTML标签。这两个库构成了本书中设计的简单爬虫的发动机。
Chapter 14 – Working with CSV Files and JSON Data
标题内容虽然是CSV和JSON两类数据文件的使用,其实本章节讲的是API的使用(各类服务的API多以JSON等格式来输出数据)。章节不难,但是需要理解数据是怎样通过API来到本地、继而用一些method对数据进行加工和输出。这一章比较有趣,可以举一反三。
Chapter 18 – Controlling the Keyboard and Mouse with GUI Automation
本章对普通读者用处可能不大,但生活中却经常见到和使用。朱老师说他正在做的安卓app的向导部分,即使用了本章内容。完整学完这一章,对于类似程序会有一个新的认识,能够理解软件背后的基本原理。


 
以上五章是这本书的难点和重点,其他章节或者仅涉及Python基础语法,或者仅介绍了一些并不算常用的库(可以现用现学,不用着急背下来)。如果能将这五章内容搞懂,基本上也就理解了全书最紧要的部分。
对我而言,本书最大的收获之一,就是搞明白了一些之前不懂的原理,并且知道了Python到底能做哪些事,为后面的Flask学习打下了基础。

Tagged : / /

测评单人solo桌游《Zombie in my pocket口袋僵尸》

由于深圳朋友没几个爱玩桌游的,我对直接进入桌游圈认识新玩伴又有些抵触,因此最近一直和郭老师玩二人桌游,开的比较多的是《七大奇迹:对决》《鸡同鸭抢》和《睡皇后》。《Monopoly: Deal大富翁纸牌版》小开了半局,两人都觉得比较无趣,中途放弃。
两天前我在闲鱼丧卖掉了已经积灰2年的两辆体感独轮车,顺手向一个高三学生买来一套崭新的电兔DIY版《口袋僵尸》。想想一个人在家或图书馆时偶尔也会无聊,来试试单人solo桌游也蛮有趣的。由于早先玩过另一个单人pnp(print and play)游戏《Utopia Engine》,美术粗糙,毫无策略可言,索然无味。因此这次对美式桌游风格的《口袋僵尸》颇为期待。
电兔的DIY版本一直水准很高,做工精良,美术和翻译没有硬伤。这款《口袋僵尸》也保持了同样的水准。下图背景是让我昨天学了一整个下午的《农家乐》,复杂程度爆表(农家乐具备不同的难度、不同的牌库、并且有大量的细节规则)。相比之下《口袋僵尸》的规则非常简洁,玩家在玩实体游戏之前就可以网上读懂规则。
8.pic_meitu_1
游戏配件很简单:人物状态版图/地图木块(分室内、室外两种)/事件卡/道具木块/小羊移动标记物/一个用来标记生命值的骰子/规则书。所有这些都装在铁盒中,收纳很方便。
6.pic
由于地图展开机制是和《小黑屋》这类游戏一样的,因此可以用少量的板块实现每次都不同的随机地图。虽然我个人对美式桌游不感冒,但这种随机地图机制倒是很讨喜。玩家首先需要探索室内部分,完成任务并拿到邪恶图腾,然后通过DiningRoom进入室外部分,找到GraveYard并将邪恶图腾埋葬,而这一切必须在午夜12点之前完成,否则任务失败。当然,任务重还有随机的加血或损血事件,僵尸也会来袭击玩家,此时需要一些道具来辅助完成任务。
4.pic
这款pnp游戏的素材在网上有很多,不同的玩家还对素材进行了些许加工。任务状态卡片是改动比较大的部分,电兔使用版本做的还不错。不过用骰子记录血量虽然方便,却损失了代入感。我看到有其他玩家做成三国杀血量牌似的风格,用鲜血表示生命值,看上去触目惊心。下方第一张图为电兔版本,第二张为网友版本。
3.pic
体力及道具卡_meitu_2
事件卡上面有时间、事件和道具。根据游戏中所处的不同时间触发不同剧情,每张卡片实际上相当于4张牌(3张事件卡+1张道具卡)。这个设计很巧妙,让区区9张事件卡变换出几十种不同效果,极大压缩了纸牌量,减小了游戏体积。
5.pic
游戏整体时间大约为10分钟,游戏一局速度很快,如果运气好会早早结束游戏,运气不好则可能初期就连遇强敌,最终命丧屋中。整体难度不大,重开度却很高,确实很适合外出游玩时随身携带解闷。我游戏到手后开的前两局由于规则不熟悉,或玩村、或多拿了事件牌,虽然通关,但是其实是在无意间作弊了。晚上睡前开了三局,仔细确认了规则,最终2败1胜。
郭老师也小玩2局。第一局才摆出3个板块,即因缺乏道具又连续遭遇僵尸、掉血等事件而阵亡。第二局稍好,完成室内任务来到室外,同样因血量过低惨死于僵尸血口。郭老师表示这游戏没什么意思,不明白我为何喜欢,反正她不想玩了。
1.pic
游戏中还存在一些Bug:
Bug1:从玄关出来,有可能直接进入浴室之类封闭房间,导致游戏无法继续。
Bug2:有某些情况下,规则迫使只能将板块放置在某处、而该处有门(导致严格按照规则的话将无法放置这张板块)。
当遭遇Bug1时,触发『Zombie Door』规则,即目前所在房间发生『浴室』板块的事件——3个僵尸破墙而入,并创造了一个『Zombie Door』,玩家自行选择『Zombie Door』的位置(严格说来这不是Bug,因为已经包含在规则中)。在最新的1.75版规则中,玄关的门数从1变成了2,也可以解决这个问题。同时,作者在BGG上解释了Bug2的解决方案——『make a useless door』(问题链接:https://boardgamegeek.com/thread/900150/what-can-i-do-situation)。
其实一个人的桌游,再好玩都少了一些与人互动的乐趣。春节期间跟一些朋友聚会,向大家安利了身份猜测类游戏《阿瓦隆》,7个人(最多到9人)居然连续玩了4天,每天从下午3点开始到凌晨1点。后来有朋友告诉我,他自己也买了一套阿瓦隆。回想这半年,除了学Python之外,比较大的收获就是了解了更多桌游,并成功推广给多位朋友。我推广最成功的是郭老师的妹妹,她俨然已成为所在圈子中的桌游核心、甚至同学聚餐时都会提醒她带一套桌游来。我们还开玩笑的说,以后她找男朋友的标准之一就是『是否喜欢玩桌游』。
大约大半个月之前,我用Python写了一遍阿瓦隆的规则,不会部署,也无法完整运行,因此可以看做是用Python将游戏规则复述了一遍。时至今日,恰逢AlphaGo三胜李世石,桌游贴吧有人问『人工智能会否在桌游上完胜人类』。桌游不具备竞技性,且变化较少,恐怕连家用机都可以轻松遍历所有可能性寻求最优解,问题答案不言而喻。然而从另一个角度,计算机永远无法像人类一样从桌游中获得的大量乐趣,这样想,似乎计算机并不能算是找到桌游的『最优解』——乐趣,人类的独特也并不能被机器智能替代。

Tagged :

一刷

听从朱老师的教诲,开始刷《Automate the boring stuff with Python》,目前已经进行到Chapter 9,全书过半。
很大一个感受就是,看书都能看懂,最后的Practice Project却做起来非常困难,没有头绪。这种状态和我初学《笨方法学Python》时候一模一样,当时落后进度很多,浪费了很多时间。
前几天反省了一下,自己每天花在代码上的时间表面上有五六个小时,其实也就最多2小时在学习。因此变换了一下学习方式,从事无巨细的按顺序完成教程的每一部分,变为第一遍先读完全书、扫过课后练习,完成一刷后在读第二遍——这一边要快速浏览课程内容,重点看课后习题。
目前正在尝试这样的方法,每天集中2小时进行学习,更轻松,而且根据经验,第二遍应该会很快(目前估计应该可以7-10天解决二刷)。总的来说,会节省很多时间。
过慢的学习基础知识,看来是一种很落后的学习方法。学习变成似乎也和背单词一样,重点不在于第一遍学习时记住、吸收了多少,而在于学习的次数。这是我自己的一点经验。

Tagged : /

Mac上修改Path,及用Pyenv管理多版本Python

目前二刷《笨方法》即将结束,但是在Round1时遭遇的问题一直没有解决。问题是这样的:

在ex46中,要求安装若干个第三方库(如nose用来测试)。我按步骤安装之后,执行nosetest(nose的测试命令),反馈command not found。其他几个库问题亦然。

之前研究了很久不明白怎么回事,现在终于搞清楚,并快速修复了这个问题。
其实问题的核心就是Mac上Python的Path与第三方库(及第三方Python)的目录不统一,换句话说,当我在终端执行Python后,进入的是Mac OSX自带的Python的交互模式,而非手动安装的版本。自带的版本往往是比较旧(然而绝对绝对不能删除,手残党也尽量别去尝试更新了)的稳定版。
官方文档清晰的描述了Mac自带Python与用户手动安装Python的异同(https://docs.python.org/2.7/using/mac.html):

  1. Mac自带的Python用以支撑苹果官方及第三方软件(就是给电脑用的,不是专门给你编程用的!虽然也可以编程!),目录位置是 /System/Library/Frameworks/Python.framework 和 /usr/bin/python;
  2. 用户自行安装的第三方Python则当然用于编程,目录位置/Library/Frameworks/Python.framework 。

在官方文档中对于Mac OSX自带Python又着重强调了一句:You should never modify or delete these, as they are Apple-controlled and are used by Apple- or third-party software.
故而,问题很清晰了,只要修改日常代码所用的Python的路径为第三方Python路径即可。
修改Path的命令,我是在stackoverflow上面找到的(http://stackoverflow.com/questions/3696124/changing-python-path-on-mac)。

PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH

注意,上述路径中的2.7数字,根据你自己的安装版本进行调整。如果安装的是3.5,就改成3.5。
ps. 经测试发现,上述命令没有写入配置文件.bash_profile,因此只是临时更改了path,关闭终端(我用的iterm2)后再重启,依然会恢复老path。此时需要修改配置文件.bash_profile。执行以下命令:

open ~/.bash_profile

此时会用Mac自带的文本编辑器打开配置文件,在最后一行添加:

export PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH

具体路径参考自己的安装位置,基本应该差不多。然后保存文件并关闭。此时新Path已经被写入配置,关闭终端、重新打开,执行which python,可以查看目前的path。如果改过来了,即成功,否则请检查自己的步骤哪里有错。
注意,以上步骤仅供Mac用户参考,Mac的终端配置文件是.bash_profile,而没有很多中英文教程中提到的.bashrc,请注意。
附录:.bash_profile与.bashrc的区别:http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html


另外,我个人的下一本学习教程是朱老师推荐的《Automate the boring stuff》,教材中以Python3为标准,因此可能需要一段时间让Python2与3共存和切换,因此也记录一下知乎上推荐的Python版本切换工具,Pyenv(Github地址)。目前我还没有安装,大概这两天会试用。


报告各位,已经完成用Pyenv管理多版本的Python。中间绕过一些弯路,请各位严格按照下列顺序操作,否则可能导致前功尽弃、从头来过。
另外,强烈建议看一遍pyenv的Github说明,因为我下面的步骤仅针对Mac,如果你跟我情况不同,请按官方教程来。

首先,看看你有没有自己安装过Python,如果有,删掉!

在Python的官方文档中,并没有一章专门讲怎样卸载Python,因为放在安装章节了(这里)……懒得看英文的可以看下面。

  1. 删除Applications文件夹下面的Python文件夹。(打开Finder,点击应用程序,将Python27/Build Applet/IDLE都拖进垃圾桶)
  2. 删除/Library/Frameworks/Python.framework下面以Python版本号命名的对应文件夹。(例如你想删Python2.7,就把27这个文件夹删除。在本教程中,除了Current文件夹以外,所有版本都删掉!)
  3. 删掉上文中那句加在~/.bash_profile文件中的那行代码

然后,安装包管理工具Homebrew(已安装的跳至下一步)

  1. 进入Homebrew官网http://brew.sh/index_zh-cn.html
  2. 把首页那行代码复制到终端,然后执行
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  3. 此时已经安装好Homebrew了

用Homebrew安装Pyenv

  1. 直接用brew命令安装
    $ brew update
    $ brew install pyenv
  2. 将以下代码添加到~/.bash_profile文件的第一行(让bash运行后首先加载pyenv自己的path)
    eval "$(pyenv init -)"

用Pyenv安装需要的Python版本

  1. 查看可安装的Python版本列表,其中形如 x.x.x 这样的只有版本号的为Python官方版本,其他的形如 xxxxx-x.x.x 这种既有名称又有版本后的属于“衍生版”或发行版。
    $ pyenv install --list
  2. 截至今天2016/1/15,Python最新版本是3.5.1,以安装这个版本为例
    $ pyenv install 3.5.1
  3. 如果有其他版本需求,用同样的命令安装其他的,例如2.7.11。
  4. 最后更新数据库
    $ pyenv rehash

Pyenv切换Python版本

  1. 查看Pyenv下面已存在的Python版本
    $ pyenv versions
  2. 切换版本
    $ pyenv global 3.5.1
  3. 再执行python,看一看Python版本有没有切换过来?

删除Pyenv

我还没有删除过Pyenv,所以在此只是翻译一下官方文档:

  1. 删除之前添加在~/.bash_profile文件第一行的那行代码
  2. 如果是用git clone命令安装的,请删除pyenv的整个根目录(一般是~/.pyenv)
    rm -rf `pyenv root`
  3. 如果你是按照我上面的步骤用Homebrew安装的,直接用brew来卸载即可
    brew uninstall pyenv

 

Tagged : /

最近读的书、做的事

今天这篇又是流水账。
从上一家公司离职至今,已经一个半月了,生活的主要内容是学、看、玩——学Python,看乱七八糟的书,玩桌游。

Python

完成了《笨方法学Python》课程,但是感觉还是啥都不会,朱老师说笨方法讲基本命令、感觉啥都不会是正常的,建议我再重新做一遍。于是这几天正在二刷,效率比第一遍高很多。
开智的Python课程基本放弃。在经历了巨大的学习挫折、并被开智的工作人员冷嘲热讽技术太差后,我确实没有动力也没有能力完成这些任务,且据我观察,最终完成课程的学员似乎大部分都会编程、只是不会Python而已,而非我这种入学者。

《亚瑟王传奇》读到兰斯洛特骑士发疯后被亚瑟王找回,由于我下载的电子书不全,后面章节缺失。
《政治学通识》包刚升虽然跟我在微博上撕逼撕的厉害,但这书真是本好书,我目前读过的最好的政治学入门书。对政治科学和现实政治感兴趣的朋友,强烈建议读一遍这本书,进入一个比较规范的体系内去管窥一下啥是政治。书没有读完,但是我也收益良多,唯一的遗憾是没能在我读本科的时候看到这本书。看来复旦的政治系还是不错的,浙大差得远。
《旧约·箴言》因为在Python上遇到了不小的阻力,一度灰心丧气,长达半个月时间没碰代码。后来在看一个开智学员写的教程时,看到他页面上的一句话:『你要保守你心, 胜过保守一切 ,因为一生的果效是由心发出。箴言4:23』。突然惭愧起来,不应该因为开智课程的不合理、开智工作人员的无耻态度而损伤自己对于代码的热忱,否则我就成了箴言书中所说的『愚昧人』,甚至是远离了神。于是昨天晚上拿出有将近1年没翻过的圣经精读本,开始精读箴言书。

桌游

除了买了一堆桌游、玩了一堆桌游以外,还在注册一个新论坛,目前等论坛备案中。正式开张后会写一篇文章讲述我对桌游的理解。
另外报名了深圳本地一个龙与地下城的新手团,常识一下跑团这种特殊的桌游(跑团,桌上角色扮演游戏的俗称,了解请点击这里)。


最近对未来也想了很多,似乎每一条我期盼的道路,都需要有代码作为基础。所以我想,写代码也许是神安排给我的工作,也是一种恩赐,认真做好这件事,就是敬虔了。

Tagged : / / / / /

【硬广】推荐我的婚礼策划机构——态度私人婚礼工作室

早在办婚礼之前,我就已经答应态度私人婚礼工作室的老板娘CC,要在婚礼后为他们做一次硬广,哪怕我这个博客被墙、流量不大、读者都是政治硬核爱好者。然而由于一些因素,从8月15日婚礼结束直到今天12月16日,4个月的时间,我间断写了几篇博文都没有为态度做广告,有几个原因:
一来,由于我们的婚礼跟拍『深圳某工作室』技术很糟糕,导致婚礼后的一个月我和太太都处于维权状态,虽然最终维权成功,但是严重影响了分享婚礼内容的心情。很长一段时间内,只要想起婚礼,我就只能想起『某工作室』的不专业和他们糟糕的作品(好消息是,这个工作室的深圳公司已经于2015年10月倒闭;坏消息是,该工作室依旧有北京分部)。
二来,时间渐久,又刚好跨越我离职的这段时间,工作比较繁忙,而离职后我又开始了Python的学习,日常时间除了被电影、美剧、桌游荒废以外,基本都贡献给了代码和教材。
因此婚礼至今4个月,我才向大家隆重推荐我的策划团队,其实是略失职了。希望读到这篇文章的人,还没有在这四个月时间内结婚……
先放几张婚礼现场的照片。图片修过,但是跟现场情况差别不大。
1
签到处一角
3
签到处另一角
4
签到处又一角
2
仪式区(我非常喜欢这个十字架的设计,十字架周围用鲜花填充)
5
内场舞台
6
餐桌布置
7
照片实在太多,我不全部放上来了,如需更多可以留言,我再放上来。另外可以看一个1分钟小视频,里面有一些我们婚礼现场的镜头,或许能提供更直观的印象:http://www.meipai.com/media/393580041
据说CC的不少客户看过之后对这场布置印象很深,我想这是正常的,CC团队的敬业、我与太太(尤其是太太)对婚礼各个细节的重视,以及神的眷顾,使得婚礼顺利而完满。相较于我们曾亲眼目睹的一次『车祸婚礼』(由深圳某大型一站式策划公司布置,请大家一定警惕各种『大型』『一站式』的策划公司),CC团队的现场布置简直超越完美,完全超过我们的预期。
如果有朋友在寻找珠三角地区的婚礼策划公司,我以个人信用担保(擦,尚属首次!不知我的信用值钱否),可以放心的选择态度私人婚礼工作室,他们几乎可以在优惠的价格与最佳的服务之间达到完美平衡。这是我这个爱挑刺抠门的人非常罕有的花钱后感觉非常痛快的经历。欢迎各路新人去联系老板娘CC。
这篇『硬广』将在我博客置顶一个月。

态度私人婚礼工作室:http://www.taidu-studio.com/
老板娘CC个人微信号:cicichan322

Tagged : / / /

桌游的苦恼:卡坦岛随机骰子

最近有点迷桌游,在家里买了一大堆,又苦于周边朋友并没有对桌游很感兴趣。从买一堆自己觉得『可能好玩』的游戏而最终无人陪玩,到绝望的面对现实、挑了一堆二人桌游每日和郭老师捉对厮杀,对桌游的偏好是这样变化的——最开始觉得『无尽杀戮Zombicide』『僵尸商场Mall of Horror』『冷战热斗Twilight Struggle』『电厂大亨Power Grid』这种比较纯粹的美式剧情、德式策略比较有趣,而后转向了人数少、策略轻的德式放置游戏(当然对『我是大老板I’m the boss』和『抵抗组织Resistance』这类口炮撕逼游戏的爱,从未消失)。『卡卡颂carcassonne』『璀璨宝石Splendor』是郭老师的最爱,我们几乎每晚都要来一两局。
1.pic
今天下午,郭老师的发小张同学,抱着一堆主板、硬盘等来到我家,让我帮她把机器攒好,顺便三个人一起开了两局璀璨宝石,中间穿插了一局欢乐向的『水瓶座Aquarius』,最后以『卡坦岛Catan』收尾。
问题出在卡坦岛上。
不知是由于骰子本身质量不均、还是扔骰子的环境有问题,出来的数字总是高度集中于某几个数、似乎完全违背了骰子数随机分布的原理,并且每次轮到郭老师时,几乎有50%的概率会扔出一个7,于是按规则,强盗出动,郭老师开始抢劫另外两名玩家。
最终在完全不平衡的骰运支持下,郭老师以大比分差距赢得了本轮卡坦岛。严谨的我开始思考一个问题——如果不解决骰子的问题,估计以后都别想好好玩卡坦岛了。仔细想了想,开始动手写一个卡坦岛电子骰子。
考虑到骰子的随机性,和游戏期间的多次掷骰,一定是random模组+循环的结构。

# -*- coding:utf-8 -*-
from random import randint
from sys import exit
def roll():
    a = randint(1, 6)
    b = randint(1, 6)
    write = raw_input("Press enter to roll >>>>>")
    if write == "":
        print "Dice A = ", a
        print "Dice B = ", b
        print "Sum is >>>>>>>>> ", a + b ," <<<<<<<<<"
    elif write == "quit":
        exit(0)
    else:
        print "Press ENTER BUTTON please!"
    roll()
roll()

 
用Python来解决实际生活中的问题,编写这个十几行的小程序给自己带来很大的快乐。下次再玩卡坦岛,就不用骰子了,哼!
最后,再安利一下桌游。大学时候曾经去桌游吧玩过,没觉得有什么特别的,最近泡在百度桌游吧,才知道桌面游戏这个领域也是博大精深、能人辈出。有兴趣的朋友可以去浏览一下两个台湾90后正在众筹的一款以台湾政治生态为主题的桌游『政治风暴』(https://www.flyingv.cc/project/8972),意淫一下大陆版应该怎样设计。

Tagged : / /

Noppoo Choc Mini84机械键盘适配Mac的方法

四年前,我购买了人生中第一个机械键盘Noppoo Choc Mini84青轴(当年的测评),但来了深圳以后基本没用过,积灰状态已持续了2年。最近写字压力比较大,准备再搬出来重新用一下,突然发现mini84插上Macbook Pro之后按键完全失灵,以为硬件问题,第一时间Google了一下,才发现原来是Noppoo无Mac的驱动。
有两种解决方案:
一、硬件方案。

用两根ps2/usb转接线,连接成【Mini84】-【USB/PS2】-【PS2/USB】-【Mac】的状态,利用连接线中的芯片来完成键盘信号识别。实际效果可参考视频:http://v.youku.com/v_show/id_XMzU0MTkwMTcy.html
优点:方便,傻瓜式解决方案。
缺点:线材连接太麻烦,而且多次转接也容易发生接触不良。

二、软件方法:安装第三方驱动

在Github上,有人做出了Noppoo的第三方Mac驱动,下载dmg文件后直接安装即可。但是安装之后,仍然有部分按键无法识别(例如需要用shift打出的冒号等标点符号,Cap键也没反应)。此时需要安装KeyRemap4MacBook,即可解决剩余问题。
Github地址:https://github.com/thefloweringash/iousbhiddriver-descriptor-override
驱动下载地址:https://thefloweringash.com/iousbhiddriver-descriptor-override/downloads/IOUSBHIDDriverDescriptorOverride-2013-04-21-b545d15.pkg
KeyRemap4Macbook地址:https://pqrs.org/osx/karabiner/
优点:啥都不用买,安装个驱动了事,省钱方便。
缺点:除了按驱动,还要安装KeyRemap4Macbook,略鸡肋,而且这软件的图标一直显示在系统状态栏里,比较烦人。

除了这两种方案,还有其他的选择吗?
有!
买一个支持Mac的机械键盘!哈哈
我最近对iKBC的Poker2比较长草,虽然Poker3刚刚推出,但是无边框设计实在太丑,增强的按键编辑功能我又用不到,还比poker2贵了100。所以poker2仍然是40%键盘中的绝佳选择。最近poker2卖的太好,以致商家全部断货,等厂商生产补货中,估计大家都是被poker3丑怕了吧。