WillMouse

哟!这是一个Web爱好者的Blog,包含了Ruby&Rails&Mac&胡说八道&冰牛奶等

Recent notes

山口山狗熊榜记录器上线咯

地址在这里:www.wowarmory.me

UI基本没变,这几天下班后主要在修复各式各样的Bug,目前还有几个不太好解决的问题:

  1. 英雄榜上角色的造型图有时候只能获取预设图。这应该是官方为了为服务器减压,限定了某一个IP在短时间内可以请求的图片数量,这个限制在游戏角色头像上也有(当你看到头像或者造型图变成黑影时,说明此时你并未请求到该图片,官方传给了你一个预设图),目前还没想到很好的解决方法。

  2. 由于用了一张还大的背景图片,所以设置了background-size: 100%。不过由于我还用了Bootstrap的Collapse来显示角色的过去英雄榜,在进行展开和关闭操作时,如果涉及到页面上其它元素的位置发生变化,则会变的很卡。不过如果不设置background-size: 100%,则不会有问题。这可能跟Bootstrap Collapse的实现方式有关,现在只好指定父级元素为固定大小,以便避免这个问题。

写这个小项目也学了不少东西,像Nginx + Unicorn的配置,Capistrano的使用(这东西真是值得弄懂,意义重大)。

如果你希望可以记录下角色的成长历史,只要上去简单查看一次自己的角色,服务器就会记录角色每天的英雄榜了。

git repo: https://github.com/weih/armory-recorder,没什么License,各位随意。

狗熊榜 redesign!

screenshot
screenshot

加点图片发现就不一样了,PS了个Logo(PS自咬人画的格罗姆),然后用Blizzard API取人物头像地址,目前效果如上图,还算满意。

PS:我没直接用Blizzard API,用的老外写的一个wrapper github.com/BinaryMuse/battlenet,不过在处理大陆地区的数据时有些问题,仅能返回人物的基本信息,详细信息(items, talent...)获取不到,但是美服是可以,应该是编码方面有些问题,暂时用不到,也就没详细去修复这个bug。

Rails 3.2使用本地时间的正确方法

在VPS上希望ActiveRecord使用本地时间,不要将从db中取出来的数据转换为UTC,经过Google,正确的设置如下:

# config/application.rb

config.time_zone = 'Beijing'
config.active_record.default_timezone = :local
config.active_record.time_zone_aware_attributes = false # this is important!

最后一行很重要,只有加了这一行,AR才不会将date, datetime类型的行转换为UTC时间。

Deploying to a VPS

昨天晚上买了20刀一月Linode,准备体验下这个口碑最好的vps,目前感觉良好,这里作下记录。

root@li413-47:~# apt-get update
root@li413-47:~# apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf python-software-properties
root@li413-47:~# bash < <(curl -sk https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)

root@li413-47:~# adduser deployer --ingroup admin
root@li413-47:~# su deployer

root@li413-47:~# rvm install 1.9.3
root@li413-47:~# rvm use 1.9.3 --default

root@li413-47:~# rvm add-apt-repository ppa:nginx/stable
root@li413-47:~# apt-get update
root@li413-47:~# rvm apt-get install nginx
root@li413-47:~# service nginx start

root@li413-47:~# add-apt-repository ppa:chris-lea/node.js
root@li413-47:~# apt-get update
root@li413-47:~# apt-get install nodejs

root@li413-47:~# gem install bundler --no-ri --no-rdoc


contiune.....

Mysql中存储UTF8编码的设置

由于需要在Mysql中存储中文,所以需要处理utf-8编码的内容,这个解决方法不一定是最合适的,but it's work:

# 首先连接进入mysql
# mysql -u root -p
SET collation_connection = 'utf8_general_ci'

# db -> 你的数据库名
# table -> 你的表名
# 如果有多个表,则记得每个表都要执行一次
ALTER DATABASE db CHARACTER SET utf8 COLLATE utf8_general_ci
ALTER TABLE table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci

想看全部的胡说八道?这里