Categories
生活琐碎

便宜vs.好货 iPad mini / iPhone手机壳选购经验 —— 血的教训

便宜到底有没有好货呢?
最近几次买东西的结果告诉我,便宜可能有好货,但是需要经历好多次失败才能淘到好货。
文章里我不会隐藏任何品牌/店铺名,但我也无意做广告,因为提到的牌子是在太多了。

iPad Mini 2 壳子

因为年初买了个iPad mini2,这东西需要个东西架着,所以一直就在找最合适的壳子。至今买了一共5款壳子,价格从20到200都有,我就来列举一下各自的优缺点及问题。

a)8.8元杂牌壳

ipad_mini_case1
特点:正面是仿皮的,反面是塑料壳(不透明材质)
这个壳子买来多久就闲置了,因为有色差!老子想买正红色的,结果寄来了个粉粉哒,我一大老爷们怎么用。

b)23.06元精品国货

ipad_mini_case2
这个是仿苹果的SmartCover的壳,但是因为做工不大好,有些地方没到位
特点:外观仿的很像,是可以分离的款式(SmartCover+一个后壳),但是磁铁实在不够,老板第一次寄来的壳根本无法唤醒休眠,跟老板交流之后二话不说又寄了一个面壳儿过来,可是还是老样子…我也就放弃跟老板联系了

c)SmartCover (不知道是原装还是高仿)

ipad_mini_case3
这个壳子用了好几个月,最近才被换下去。买了红色的,真的很好看,使用也很方便,磁铁吸力足
价值70
有两个缺点:1.不能竖着支起来;2.如果不配个高仿后盖的话,有很小的几率面壳会掉下来…我遇到过一次

d)moshi的壳

ipad_mini_case4
这家保护壳最近才发现,看他iphone的壳做的不咋地,但是做ipad壳还可以。因为需要将板子竖着放,所以买了这个。价值220大洋,真是大出血
用了一个礼拜,总算琢磨透了三种折叠方式,感觉自己脑子越来越不行了。感觉这个就是用到现在最好的壳啦~缺点就是比smartcover稍微厚了一点,但是做工比较好,在横靠竖靠的位置有防滑脚垫。

e)在新加坡买的来自中国的杂牌壳

ipad_mini_case5
为了解决smartcover我买过一个廉价的壳,恩,在新加坡买的,但是很显然还是中国货。这个壳子是我买过最烂的壳子,没有之一。特点是:前面的壳太薄而且磁性太弱,后面的壳太后,颜色太恶心。买来用了五分钟后悔了,尼玛这个钱能吃两顿饭了呢!

iPhone 6/6s 壳子

我在淘宝、日本亚马逊买过一共十来个iphone 6/6s的壳子,感觉自己丧心病狂了!因为种类繁多,所以鄙人贴心地将他们分个类介绍吧…

a)TPU软壳

他们是软壳,号称TPU或者类似材料制造,便宜的我见过3块钱包邮的,一般的20左右,贵的90..
此类壳子的特点就是,能做到比较薄的厚度(0.2mm~0.4mm或许),但是因为材料问题,没办法坚持很长时间。手上油比较多的话,大约2~3个月这个壳子就会发黄,然后会变松…

b)塑料硬壳A(透明)

透明的塑料硬壳,廉价的几块钱,贵的像AirJacket一样200不到一点。硬质塑料做薄很不容易,所以越薄的越贵。
AirJacket本人买过3个(呵呵哒),第一个是Clear全透明的,但是上面因为加了坑爹的号称防刮涂层的东西,用了1个月以后后面涂层掉皮了!跟掉漆一样…然后买了第二个,是磨砂的,还是日本亚马逊原装进口,结果发现这批货开模有问题,壳子会晃动(0.5mm),也闲置了。第三个是最近买的,黑色透明的壳子,用起来感觉还不错,但是最终还是觉得有点厚,被我用某个廉价壳子代替了。顺便一提,因为是硬质壳而且这货的开孔太细致了,导致拆卸壳的时候如果方法不对很容易把壳子弄破!
便宜的壳子就厚一些了,但是处理得好的话也很棒。我推荐这款,http://www.amazon.co.jp/gp/product/B00N8JX8UO?psc=1&redirect=true&ref_=oh_aui_search_detailpage 是的只要450日元(约合25元人民币),这款厚度大概有0.5mm左右(不算薄),但是开孔很讲究,需要按键的地方开孔很舒服,按键的部位你完全感觉不到壳的厚度。之所以说便宜也有好货,也是因为这个。目前在换下来的ip6上服役,感觉良好。

c)塑料硬壳(PC材质,半透明)

PC材质的壳以前是廉价产物,现在好像大头牌(ozaki)经过各种包装把它也搞到了90块钱一个,我是没买过这么贵的。这类材质比较有韧性,然后可以做的很薄,甚至超越TPU可以变成最薄的壳,手感也不错。这类壳子因为材质的关系,全是半透明磨砂的,有各种颜色的磨砂。不论什么价位,他们都有个小缺点:有点脆,略微容易破。
最便宜:3元左右(我买过9毛9包邮的!),磨砂较为粗糙,开孔粗糙(有时候因为奇怪的开孔导致数据线插不紧),倒角粗糙。但是如果碰到天猫那种混销量混好评的店限时折扣的话,可以考虑购买,这种一般过几天会涨到20左右。
中档:20元出头。目前用的benks的壳,28元一只(貌似两只8折什么的)。开孔还不错,数据线、耳机插进去没有问题,厚薄适合。唯一不确定的是不知道什么时候会破,拆的时候要格外小心。
高档:79元?我反正没用过
 
 

Categories
软件

卸载小米随身WiFi云优盘

小米Wifi还“附送”云优盘,默默地帮你安装,真是有点不要脸。关键是还在“我的电脑”里头加快捷方式,怎么这么无耻啊!
其实这个是金快盘的东西,可以单独删除的!
请找到以下目录【64位系统】C:\Program Files (x86)\XiaoMi\MiWiFi\kuaipan【32位系统】C:\Program Files\XiaoMi\MiWiFi\kuaipan;看到里面有个叫uninstall的可执行文件,点击它,卸载云优盘(其实就是金山快盘)吧!

Categories
生活琐碎

哦,人生感悟

最有价值的东西往往最容易被忽略。
The most important thing is always the most overlooked one.

不要钱的东西往往是最贵的。

Categories
爪机爪机

Upadte your Lumia 535 to WindowsPhone 8.1 GDR2

是的,确实有一个GDR2可以升级,不是Win10,而是Win8.1.并且开启方法也相当简单
wp_8.1_gdr2_Lumia535

  1. 去应用市场,搜索一个叫“Windows预览体验”(Windows Insider)的应用,这个是微软官方出的,给大家升级成预览版Win10用的
    Install the Windows Insider app via your official App Store
  2. 下载安装完后,打开它,然后各种确认,开始选择更新版本
    Open the Insider app and accept the T&Cs
  3. 你会看到有3个可选项(至少在15年10月4日是这样的),第一个是Slow,第二个是Fast,第三个又是Slow
    You’ll see three available choices, like .. Slow- Fast- Slow. Select the “Slow” one on the bottom!
  4. 请点选第三个Slow并确认,如果你选了正确的话,程序只会稍加设置,而并不像前两个Win10升级一样要求你重启
    If you make the right choice, the phone will NOT restart.
  5. 进入手机设置,搜索更新,然后稍等3~5分钟,你会发现,真有那么个Win8.1的更新在等着,就是它了!
    Go to Settings and check for updates. You will see a 8.1.xxxx update available and that’s it!

 

Categories
生活琐碎

iTunes/AppStore切换香港区指南(下载Tumblr?嘿嘿)

转载请注明来自http://boweihe.me/?p=1626
随着越来越多的App被莫名其妙地移出大陆市场,是时候找一种方法切换到HK区了。目前iTunes更换国家/地区需要当地的信用卡或者其他支付方式,这个阻挡了一大部分人前行的脚步。不过,方法总是有的。
大致分为下面几步:

  1. 注册一个香港的虚拟信用卡;
  2. 更改iTunes的国家/地区;

注册HK区虚拟信用卡

易票连旗下的全球付提供了仅供网上消费用的虚拟万事达卡,笔者亲测开卡地区是香港的。但请注意认准地址https://www.globalcash.hk/,不要误入国内版的易票连http://www.epaylinks.cn,因为我发现国内版的拿不到卡号…不知道为什么:)

  1. 点击网址进入https://www.globalcash.hk/
  2. 点击右下角的小字,免费获取账号
    globalpay_register_1
  3. 按照网页提示一步步注册,可能需要充值100RMB,这是入门费么?反正100RMB会显示在你的余额里的,可以当余额使用
  4. 注册搞定后就进入管理页面了,如果有绑定手机的话可以用手机号登录,或者使用你的卡号也能登录,登录密码是你设置的6位数密码
  5. 进入后,可以看到你的基本信息,如下图。点击红色圈位置的详细信息,就能看到你信用卡的详细信息了QQ截图20150926174405
  6. 下图是详细信息页面。有人可能要问账单地址是什么,这个卡的一个好处是,账单地址可以乱写,应该是卡号+CVC+名字对就给付钱QQ截图20150926174428
  7. 注册卡的问题基本完成

将iTunes(AppStore)账户改至HK区

此过程可以在手机/电脑的iTunes客户端操作,下面只演示电脑iTunes如何操作改区

  1. 首先当然是打开iTunes了
  2. 点击软件上方右侧你的名字,选择“账户信息”iTunes Change Region-1
  3. 在弹出的对话框中输入你的(用户名/)密码
  4. 点击“更改国家或地区”iTunes Change Region-2
  5. 选择“香港”(中国香港特别行政区),然后填写信用卡信息
    1. 姓名、信用卡号、安全码(CVC)、信用卡有效期、电话:填写你申请到的虚拟信用卡上的信息
    2. 地址相关的街道等,请自己随便填一个
  6. 点击继续,应该就搞定啦!
Categories
生活琐碎

Singapore!

终于是有去别的国家生活的经历了,虽然只有3个多月。
新加坡一切都还不错,像是个法律极其严明的国家。路上没有乞丐,也没有吃东西的人,没有乱丢的垃圾。
但是蔬菜特别稀有的感觉,大家都不爱在家烧饭,然后餐馆里的菜都是肉啊之类的,有东南亚各地的风味,但是吃久了还是会觉得华人餐馆的东西最合胃口。其实觉得泰国菜也不错啦, 咖喱啊什么的,然后有点酸酸味道的辣酱,但是就是没蔬菜啊~
整个国家目测是没有人种地了,什么新鲜蔬果似乎都是进口的,菜跟肉差不多价钱。室内各种空调,而且开得都比较凉快,但是奇葩的是办公室在非上班时间空调都无法手动打开,差点被闷死。
SUTD的校园里WiFi覆盖充足,但是每个终端限速下载5M上传10M,有点捉急。人肉翻墙的好处是不怎么需要VPN之类的了,除非偶尔连接国内的网站速度慢。
先这样吧,还是不错的体验!

Categories
木有技术

Windows10 无法远程桌面连接 问题排查

遇到了很奇怪的事情,Win10底下竟然用内网都无法远程连接,只是显示“无法连接到主机”
经过各种搜,找到了办法,解决了问题。

1.(可选)用有线\无线网络,请开启网络发现

参考教程http://www.xitongzhijia.net/xtjc/20141216/32673.html,把你现在连的网络类型改成专用网络
如果这不是家庭网络或者企业内部网,请还是不要这样改

2.(必须)防火墙设置

Windows10自带的防火墙规则似乎禁用了远程桌面连接,至少在我的电脑上是这样的
开始菜单搜索“防火墙”,选择第二项:Windows防火墙
Windows10-Firewall
 
然后点击左侧的“允许应用或功能通过Windows防火墙”
Win10-Firewall-2
 
点击弹出窗口右上角的“更改设置”
移到最下面,把“远程桌面”勾上。如果步骤1没有设置的话,记得把“公用”下面的勾也勾上(此项有安全风险,公用网络还是尽量不要允许的好)。
Win10-Enable-Remote-Desktop

Categories
不学无术

宜送小爬虫

最近在看关于爬虫的东西,所以写了点练练手
目前还没竣工,只是到了能返回JSON数据的阶段
参考文献是:http://cuiqingcai.com/1001.html  作者写了一系列的爬虫教程,很实用!
用宜送转运的登录练练手吧,反正最近入了深圳海关坑,哎,。说多了都是泪
主要注意:

  1. 宜送登陆:HTTP头信息,Content-Type: application/x-www-form-urlencoded,不然直接提示登录失败。可能因为登录的人不多,目前没有设置验证码
  2. 获取账户订单信息:页面加载后,是AJAX向服务器二次请求JSON格式的订单信息的,而且发送的请求也是JSON格式来POST的。返回值也是JSON,直接免去了正则匹配啊!
# -*- coding: UTF-8 -*-
__author__ = 'Bowei'
import urllib
import urllib2
import cookielib
import json
class YiCrawler:
    statusCode = {
        'AIRARRDEST': '已到达',
        'DONE': '已完成',
        'CLEAR': '清关中',
        'CONFIRM': '已确认'
    }
    def __init__(self):
        self.userinfo = {'j_username': '',
                         'j_password': ''}
        self.cookie = cookielib.CookieJar()
        self.headers = {'Content-Type': 'application/x-www-form-urlencoded',
                        'Cache-Control': 'no-cache'}
        self.cookie_handler = urllib2.HTTPCookieProcessor(self.cookie)
        self.opener = urllib2.build_opener(self.cookie_handler)
        self.results = []   # 存放查询结果,队列中的元素是字典
    def get_status_str(self, status):
        if self.statusCode.has_key(status):
            return self.statusCode[status]
        else:
            return status
    def set_user_info(self, username, password):
        self.userinfo['j_username'] = username
        self.userinfo['j_password'] = password
    def login(self):
        print 'Login start'
        login_data = urllib.urlencode(self.userinfo)
        url = 'https://www.yi-express.com/login/send'
        request = urllib2.Request(url, login_data, self.headers)
        try:
            response = self.opener.open(request)
            print 'Finished login'
            return response.getcode()
        except urllib2.HTTPError, e:
            print e.code
            return e.code
    def get_page(self, pageNo=1, orderType="", warehouse=""):
        url = 'https://www.yi-express.com/customer/orderSearch'
        order_params = {"pageNo": str(pageNo), "orderNoOrName": "",
                        "warehouse": warehouse, "orderType": orderType,
                        "orderCreateStart": "", "orderCreateEnd": ""}
        request = urllib2.Request(url)
        request.add_header('Content-Type', 'application/json')
        try:
            response = self.opener.open(request, json.dumps(order_params))
            response_decoded = json.loads(response.read())
            for key, value in response_decoded.iteritems():
                # print str(key) + ': ' + str(value)
                if str(key) == 'result':
                    self.results.extend(value)
            return response_decoded['hasNext']
        except urllib2.HTTPError, e:
            print e.code
            return False
    def fetch_all(self):
        # 获取所有页面的数据
        self.results = []
        hasNext = True
        pageCount = 1
        while hasNext:
            hasNext = self.get_page(pageCount)
            pageCount += 1
    def print_results(self):
        print '========= START ==========='
        for item in self.results:
            print 'ID:\t' + item['id']
            print 'TIME:\t' + item['inDateWithFormat']
            print 'PRICE:\t' + str(item['realCost'])
            print 'WEIGHT:\t' + str(item['realWeight'])
            print 'EXP_NAME:\t' + item['expressName']
            print 'STATUS:\t' + self.get_status_str(item['statusCode'])
            print '\n'
if __name__ == '__main__':
    crawler = YiCrawler()
    print crawler.login()
    #crawler.get_page(pageNo=1)
    crawler.fetch_all()
    crawler.print_results()

 

Categories
不学无术

The Elements of Style 阅读笔记 之一 Elementary Rules of Usage

转载请注明来自http://boweihe.me/?p=1586

内容摘自《The Elements of Style (Fourth Edition)》,根据自己的理解写的,如有错误烦请指正。

Page 4 从句之前的逗号

     从句作非限定用法,用于补充主语时,需要加逗号。
     The audience, which had at first been indifferent, became more and more interested.
     这句话可以拆分成两个句子:
     The audience was at first indifferent. Later it became more and more interested.
     与之对应,用于限定时,从句前面不用加逗号
     People who live in glass houses shouldnt’t throw stones.

Page 5 不同连接词对应不同的逗号

     当两个子句对应同一个主语时,若使用but表示转折关系,前面要加逗号,但是and就不用.
     I have heard the arguments, but am still uncovinced.
     He has had several years’ expericnce and is thoroughly competent.

Page 6 分号和连接词

     如果没有连接两个子句的连接词,那么更应该使用分号将他们隔开
     It is nearly half past five; we cannot reach town before dark.
     上面的句子可以不经修改直接拆成两个独立的句子.
     或者使用连接词and,用逗号连接
     It is nearly half past five, and we cannot reach town before dark.
     但是仍要注意,如果使用副词(accordingly, besides, then, therefore, thus)而不是连接词的话,仍是需要使用分号分隔的
     I had never been in the place before; besides, it was dark as a tomb.
 

Page 6 冒号的使用

     不要用冒号将动词与补语分开来(如下句中的requires a knife)
     错误:Your dedicated whittler requires: a knife, a piece of wood, and a back proch.
     正确:Your dedicated whittler requires three props: a knife, a piece of wood, and a back porch.
     不要用冒号将介词和后面的宾语分开来(如下句中的 grows from theory)
     错误:Understanding is that penetrating quality of knowledge that grows from: theory, practice, conviction, assertion, error, and humiliation.
     正确:Understanding is that penetrating quality of knowledge that grows from theory, practice, conviction, assertion, error, and humiliation.
     如果后面的子句是对前面的补充或是解释,可以用冒号连接
     But even so, there was a directness and dispatch about animal burial: there was non stopover in the undertaker’s foul parlor, no wreath or spray.

Page 10 (谓语)动词单复数形式

     one of the …. 形势,是不用在意’one’的
     One of those people who are never ready on time.
     但是在使用each, either, everyone, everybody, neither, nobody, someone时谓语动词应当是单数形式
     Everybody thinks he has a unique sense of humor.
     使用none的时候应该注意表达的意思,如果意思是“没有,没有人..”的话用单数
     None of us is perfect.
     如果是“不止一个”的含义,那就是复数形式
     None are so fallible as those who are sure they are right.  最易犯錯者莫過於自信正確無誤之人
     使用with, as well as, in addition to, except, together with, no less than之类的连接词增加的额外部分,不作为考虑单复数的依据,即只考虑原本的主语就可以了
     His speech as well as his manner is objectionable.

Page 13 句子开头的分词短语要与后面主句的主语一致

    Walking slowly down the road, he saw a woman accompanied by two children.
     如果是要强调是那个woman慢慢走在路上,应该这么写
     He saw a waman, accompanied by two children, walking slowly down the road.
     错误:Young and inexperienced, the task seemed easy to me. 这里的主语是task,但是前面的短语确实形容me的
     正确:Young and inexperienced, I thought the task easy.
Categories
不学无术

Python numpy 按矩阵的某一列排序

可以参考我在StackOverflow上的回答
sorting arrays in numpy by column
利用numpy的argsort对需要排序的列标记序号(索引),然后直接改变原始矩阵的索引就行啦~

a = np.array([[1,2,3],[4,5,6],[0,0,1]])
a_arg = np.argsort(a[:,1]) #按第'1'列排序
a = a[a_arg]