放假的当天晚上,凌晨1点,我终于把众神2通了。
从1月16日开始到1月27日,一共进入游戏28次,最长一次玩了54分钟,共历时25小时28分。
100个小マイマイ都集齐了,全装备全升级到最高,5个瓶子,差8块心之碎片。
########## 以下内容可能涉及剧透 ##########
Continue reading “[测评]塞尔达传说 众神的三角力量2”
Box Cat Happy Day
放假的当天晚上,凌晨1点,我终于把众神2通了。
从1月16日开始到1月27日,一共进入游戏28次,最长一次玩了54分钟,共历时25小时28分。
100个小マイマイ都集齐了,全装备全升级到最高,5个瓶子,差8块心之碎片。
########## 以下内容可能涉及剧透 ##########
Continue reading “[测评]塞尔达传说 众神的三角力量2”
老实说这是老东西了,自己之前用scala写过,用ruby写过,这次是用python第二次实现,github上这种生成脚本也挺多的,自己全当是练手。
这个脚本其实就是把apnic提供的数据过滤出指定数据并解析然后生成路由表更新脚本的程序。用途相信各位也清楚,以下是自己重复造轮子的过程:
程序的主逻辑是读取apnic数据,用正则表达式过滤和解析,用解析出来的数据生成路由表修改脚本和恢复脚本。
首先是读取apnic数据。个人的方式是查找当前目录,然后脚本所在目录,如果再没有自动下载文件到脚本所在目录并返回。这里没有read on fly,即边下载边读,也没有比对并确保最新的逻辑。之后可以考虑加上。
是一个面试题,我想了好久,果然好久不做类似算法题的话会思维迟钝。题目还有一个条件是每个点用4 bytes存储,实际上是每个点是int类型的暗示,这个矩阵就是int[][]的结构。
我是先考虑点的旋转规律的,用了一点三角函数和计算机图形学的坐标变换,实际上归纳法也是可以的,只是我没找出规律。之后是实际编码,比想象中要麻烦一些,和参考答案也是有点不同的。
首先说下变化规律,计算机坐标系下(x, y)点顺时针旋转90度后结果是(y, n – x),通过多次数据归纳也可以做,以下是图形学上的证明:
1 2 3 4 5 6 7 |
--------------------> | (x, y) | | | (y, n - x) | v |
在苹果团观望了一个多月后下手MacBook Air(MD760, 2013年款,13寸低配,128GB SSD)。总价包括苹果团的180和快递费60比国行平均7200要低,比1月10日苹果活动7000也要低一些。
个人的本职是个码农,在苹果团的帖子上看到很多码农都买了MacBook Pro比如ME865,不过考虑到自己的实际用途和在苹果实体店比对过RMBP(Retina MacBook Pro)和MacBook Air之后决定入手MD760就足够了。
周三下的单,周四晚上深圳顺丰发货,周五晚上上海这边估计是收不到了,只能改地址送家里,终于在周六上午的时候到手。到手后之前买过2012年款MacBook Air的某姐就开始帮我拆封和配系统——因为我之前把某姐的WII U给拆封了。
第一次配置系统的时候发现wifi连接不上,一直报timeout或者invalid password。google下了发现是个普遍的问题。我参照了一篇iteye上博客尝试开关wifi,问题没有解决。最后我重启笔记本后解决。
进一步配置中,我发现自己有好多地方是小白。比如安装软件优先从app store上安装,没有的话再考虑官网下载。对于码农来说terminal就是刀叉,osx自带的terminal确实不怎么样,某姐帮我装了iterm2。alfred是一个快捷入口,有些时候可以代替四指抓(我给这个手势定的名字)或者launchpad。切换程序的时候可以不用最小化,直接点击dock上的图标或者四指向上滑选择程序。配置中参考了这篇开发人员用mac配置文章。
顺便说一句,进入app store貌似是要apple id的,我是在Apple中国的官方网站上注册的,记得填写正确真实的信息。还有在另外一个页面输入序列号填写购买日期用于保修,页面我忘记是哪个了,在某个论坛中搜索到的。
最后,祝贺终于不用在周末和某姐抢台式机了。
某人威胁我说如果一个月内不写博客的话就把我的个人域名废掉
project mirai2入手也一个多月了,从入手开始就想写篇简单的测评。
因为——ミク太萌了!!!!
最初入这mirai2的时候各种犹豫,因为手头有国民级的MUG太鼓达人(虽然没怎么玩),再入款MUG多少有点重复。再者我不是V厨,V家的歌也就平时随便听听,并不非常关注。
但是一旦开始玩了就有点停不住了,奸笑社的协力确实让这款游戏在视觉上就非常吸引人。
BTW,我不是黑PSV/PSP,但是个人不是很喜欢初音F系列的建模,总觉得太细长了,而且五官有点怪,比例略纠结……个人更喜欢粘土造型的miku。
附上我最喜欢的一个表情~
Continue reading “[3ds]初音ミク Project mirai2 简单测评”
看《Python Linux Administrator》这本书时,我并不是按照从头到尾的方式读的,而是看了一遍目录,选择性地读了部分章节。以下是我选择的章节:
有GUI肯定更直观一些,特别是在一些报表展示上。书中提到主要是三种方式,基于pygtk/wxPython的桌面程序,基于cursers的CLI方式和基于django的web方式。个人觉得web方式综合下面比较好一些,而且django并不比想象中要难。我也把django作为定期学习的一个候选。
unix/linux下网络相关命令很多,python也有很多针对网络的库。书中介绍了从底层socket,到上层httplib/ftplib/paramiko(sftp),urllib/urllib2,xmlprclib/Pyro和强大的twisted。针对不同协议场景用不同的库,前提是你要了解足够多的网络库。
通用的有platform,可以用来判断操作系统。接下来都是一些指定系统下的库,比如mac的dscl/asr,windows的zenoss,还有libvert, libvirt, cobbler, virt-factory, func等。这块和系统相关,个人认为要根据实际环境选择性的学习。
较多篇幅介绍了easy_install。同时提到了buildout, virtualenv, epm。个人对virutalenv有点兴趣,因为可以多版本python共存。
一些使用python管理系统的实例。和之前介绍内容可能有交集。个人感兴趣的是python查询dns,还有python管理ldap等。
主要是操作文件。比如常用的os模块,还有glob,shutil,filecmp。用于产生摘要的hashlib等。更多的在python标准库文档中。
以下内容来自这里的学习。
理论上动态语言不建议判断类型,不过python还是有提供判断的方法。
1 2 3 4 |
import types type(1) == types.IntType isinstance(1, int) |
第一种是使用types模块,第二种是使用内建的isinstance方法。
因为Java有BigInteger和BigDecimal,所以不会陌生。
1 2 3 4 5 6 |
import decimal decimal.getcontext().prec = 7 # set precision to 7, default is 28 decimal.Decimal(1) # create from int decimal.Decimal('3.14') # create from string decimal.Decimal(1) / decimal.Decimal(7) |
默认decimal精度为28,可以通过getcontext()修改配置。带小数的建议使用字符串创建,否则你用decimal.Decimal(3.14)试试看。
就是那种几分之几的分数。
1 2 3 4 5 |
import fractions fractions.Fraction(16, -10) # - 8/5 fractions.Fraction(decimal.Decimal('1.1')) # 11/10 fractions.gcd(60, 56) # 4 |
fractions会帮你做约分,事实上这个库还有一个叫做gcd的函数。通过之前的decimal创建也是可以的。
1 2 3 4 5 6 7 8 |
import random # or os.urandom, SystemRandom random.random() # 0.0 <= x < 1.0 random.uniform(1, 10) # 1.0 <= x < 10.0 random.randint(1, 10) # [1, 10] random.randrange(0, 101, 2) # even integer from 0 to 100 random.choice('abcdefghij') # choose a random element random.shuffle([1, 2, 3, 4, 5, 6, 7]) # shuffle a list random.sample([1, 2, 3, 4, 5, 6, 7], 3) # select three items |
这块基本照搬标准库介绍的例子,因为我觉得每个方法都很有用。除了基础的随机数,还有典型的几种随机数应用。
映射标准操作。个人暂时能想到使用的地方如下:
1 2 |
import operator reduce(operator.add, [1, 2, 3, 4], 0) |
以上就是今天学习python标准库了解到的东西。
在路由器上设置pptp的初衷是为了解决类似3DS等不能设置VPN,所以必须同过带VPN的路由器或者代理等方式设置。如何使用代理设置以前有讲过,这里讲带VPN的路由器。
带VPN的路由器一般指的是用ddwrt或者openwrt刷过固件的路由器,我的路由器是tl-wr841n v7.1,ddwrt和openwrt都支持。
一开始我刷了ddwrt,虽然能够上网了,但是pptp死活连接不上。在放置了一段时间之后,看到还有openwrt,就想刷openwrt试试。
到昨天为止,把《Linux脚本攻略》看完了,全书有273页,老实说是最近少有的我能从头看到尾的书。evernote中我大概记了10个note,以下是从中抽选的一些笔记,之后有空的话还会加更多的。
1 |
ps -eo comm,pcpu --sort -pcpu | head |
ps -e 表示显示所有进程
ps -o 表示筛选显示的列,comm是可执行文件,pcpu是CPU使用量
ps –sort 表示排序依据,-pcpu表示按照CPU使用量倒排(+pcpu表示正排)
head表示截图头十行
列出所有执行的信号
1 |
kill -l |
给指定的进程发送信号
1 |
kill -s SIGNAL process_id |
常见信号
1 2 3 4 5 |
which cmd # 打印命令位置 whereis cmd # 打印命令位置和手册位置 whatis cmd # 打印命令描述 apropos word # 按照关键字从手册中查找命令(?) |
1 2 3 4 5 6 7 8 9 10 11 12 |
uname -n # 打印机器的域名 uname -a # 打印全部 uname -r # 内核版本 uname -m # 机器类型,i686, 64位等 cat /proc/cpuinfo # CPU 信息 cat /proc/cpuinfo | head -5 | tail -1 # 打印CPU型号 cat /proc/meminfo # 内存信息 cat /proc/meminfo | head -1 # 打印内存总量 cat /proc/partitions # 打印分区,或者fdisk -l lshw # 列出系统信息,包括PCI,USB等等 |