最无聊的几种发烧友

  1.  音响发烧友:用电饭煲的电源线接耳放可以听到米饭的香味,病得不轻
  2.  摄影器材发烧友:没学过工程光学、物理光学和几何光学的文盲聚在一起对着几张照片和几个数据瞎讨论,浪费时间
  3.  各种信用卡机票酒店类发烧友:浅尝无妨且有益,但浸淫太久就是有病。靠本事挣钱,有多少实力就享受多少的服务,整天净寻思着钻空子,徒劳。
  4.  手机等数码产品发烧友:装逼犯里的战斗机,不会造还偏要恶言恶语,“评测”是这个世界上最无聊的东西之一。

Windows 10 64 bit 编译安装 PyLucene 6, 7, 8

update 2021.09: 更新了对 PyLucene 7 和 8 的支持。

update 2017.07: 添加了对 Python 3 的支持

这可能是互联网上第一篇详细介绍 Windows 下安装新版本 Pylucene 的文章。PyLucene 4 以下原本都有提供 windows 下的安装包,但是新版本没有了。

本文允许带修改的转载,但转载时请注明原文出处: lxsay.com

本文也适用于 32 位的 Windows 系统,只要把安装的软件都改成 32 位的版本就可以了

 

前提条件:

  1. 安装 python ( 本文以 Python 2.7.13 为例,Python 3.4 以上的版本也可以 ) 环境(推荐 Anaconda,自带 gensim, numpy, scipy 等在 Windows 下比较难安装的库).
  2. 安装 JDK 1.8 ( 64 位版本) 并配置环境变量 (推荐按照这篇文章操作:http://www.cnblogs.com/shinge/p/5500002.html),并且配置JRE的环境变量(将 JAVA_HOME/jre/bin/server 这个路径也加进 path 环境变量)
  3.  安装 VC for Python 2.7 ( www.microsoft.com/en-hk/download/details.aspx?id=44266 )。  如果是 Python 3,安装 Visual Studio (安装时选择所有版本的 C/C++开发工具以及其中的VC 14.0和14.1的运行库与工具) 或者 Visual C++ 2015 Build Tools (http://landinghub.visualstudio.com/visual-cpp-build-tools),现在整合以后中文名叫作 “Visual Studio 生成工具”。

 

步骤1.   安装 Apache Ant 并配置环境变量(在 path 环境变量中添加 Ant 安装主目录下的 bin 目录路径,和后面配置的 ant 可执行文件路径不一样)

步骤2.  安装 cygwin 64 bit (用于在 windows 系统中执行 linux 的命令),安装时在选择 packages 的窗口将 “Devel” 项由 “Default” 改为 “Installed”。 并且配置 cygwin 64 的环境变量(在 path 环境变量中添加 cygwin 64 安装主目录下的 bin 目录路径),重启电脑使之生效。Devel的包占用空间比较大,也可以保持 Default,然后只查找并安装 make/cmake/gcc/g++ 相关的包。

步骤2.1  打开 Anaconda Prompt,分别输入 java, javac, ant, make, cmake, gcc, g++ 这几个命令进行测试,如果显示不存在这样的命令或程序,说明环境变量配置有问题,需要重新进行配置。

步骤3.  下载并解压 pylucene 的 源代码 (一般解压出来的文件夹叫作 pylucene-6.4.1 之类)

步骤4.   对于 PyLucene 6.5 以下(不包含 6.5)的版本,进入 pylucene 安装文件夹下的 JCC 文件夹,修改 setup.py文件, 在 CFLAGS 配置这里,在 ‘win32’ 后面添加 “/bigobj” 这个参数,如下面所示

CFLAGS = {
‘darwin’: [‘-fno-strict-aliasing’, ‘-Wno-write-strings’,
‘-mmacosx-version-min=10.5’],
‘ipod’: [‘-Wno-write-strings’],
‘linux2’: [‘-fno-strict-aliasing’, ‘-Wno-write-strings’],
‘sunos5’: [‘-features=iddollar’,
‘-erroff=badargtypel2w,wbadinitl,wvarhidemem’],
‘win32’: [“/EHsc”, “/D_CRT_SECURE_NO_WARNINGS”,”/bigobj”], # MSVC 9 (2008)
‘mingw32’: [‘-fno-strict-aliasing’, ‘-Wno-write-strings’],
‘freebsd7’: [‘-fno-strict-aliasing’, ‘-Wno-write-strings’],
}

如果不添加 “/bigobj” 参数, 在编译 pylucene 时会提示文件过大,编译器无法编译

update: 在 pylucene 6.5 中,这个问题已经被解决,不需要添加此参数

 

步骤5.   在命令行下(推荐用 Anaconda prompt,如果用 windows 命令行的话要确保设置了 python 的环境变量,不然没办法运行)进入 jcc 文件夹,输入 python setup.py build ,如果没有错误信息,继续输入 python setup.py install 安装 JCC 。重启电脑

步骤6.    进入 pylucene-6.2.0 文件夹(根据要安装的版本而定,比如 pylucene-6.4.1 之类),修改 Makefile文件

首先注释掉(通过在每行前面添加’#’符号) 这一段默认配置

# Mac OS X 10.12 (64-bit Python 2.7, Java 1.8)
PREFIX_PYTHON=/Users/vajda/apache/pylucene/_install
ANT=/Users/vajda/tmp/apache-ant-1.9.3/bin/ant
PYTHON=$(PREFIX_PYTHON)/bin/python
JCC=$(PYTHON) -m jcc.__main__ –shared –arch x86_64
NUM_FILES=8

然后插入

PREFIX_PYTHON=D:/Progra~2/Anaconda2
ANT=D:/apache-ant-1.9.7/bin/ant
JAVA_HOME=C:/Progra~1/Java/jdk1.8.0_101
PYTHON=$(PREFIX_PYTHON)/python.exe
JCC=$(PYTHON) -m jcc –shared
NUM_FILES=8

*在 pylucene 6.5 中 JCC 项不再接受 shared 参数,因此应该改为 JCC=$(PYTHON) -m jcc, 否则安装时会出错

                *对于 pylucene 7 和 8,将 NUM_FILES 设置为10

其中 PREFIX_PYTHON 是 python 的安装主目录,如果你创建了一个新的 Anaconda 环境并在该环境下编译,请将 PREFIX_PYTHON 换成该环境的根目录 (一般是 Anaconda2/envs/环境名)

ANT 是 ant 的二进制可执行文件的路径(注意不是安装目录而是可执行文件路径)

NUM_FILES 参数用于指定中间文件的分割数, 使得编译器可以处理大的文件,但是如果修改为其他数值可能会引起错误。 因此最好的办法还是在前一步指定 vc的参数 “/bigobj”

另外需要注意的是,Makefile 不接受带有空格的路径,因此如果路径带有空格的话请用命令行使用的缩写路径(又叫做 dos path, 比如上面这段就采用了这种写法)

步骤7.   运行 make 进行编译(注意:如果之前没有安装并配置 cygwin64 的话,这一步会无法进行下去)。如果是中国国内的网络,建议使用 VPN 或者能够访问外网的翻墙工具,因为这一步会从 maven 仓库上下载需要的 jar 包,可能会出现编译到一半自动中止的情况,此时应该多执行几次 make 命令,让 jar 包全部下载完成。

步骤8.   编译完成后运行 make test 进行测试,由于项目的一些 bug,有几个检测 PyLucene 异常抛出的测试不会通过,但并无大碍。

步骤9.   运行 make install 进行安装

 

常见问题:

1. 编译安装 JCC 时无法使用 MSVC 编译,python 总是自动用 gcc 进行编译:要改成用 visual studio c++ 编译的话,需要编辑 python安装主目录\Lib\distutils下的distutils.cfg文件,将文件内容修改为下面所示

[build]
compiler=msvc

[build_ext]
compiler=msvc

其实本质上就是修改 setuptools 的配置文件

第二种办法是运行 setup.py 文件安装时添加参数变为  python setup.py build –compiler=msvc   但是此方法在接下来编译安装 pylucene 时会失效,因为 make 无法指定 python 使用的 C/C++ 编译器

2. make test 给出 error 123:     linux 下出错的原因在于 Lucene 的测试代码使用了旧版 python 的异常。将 test_Pylucene.py 中的 WindowsError 改为 OSError 就可以。  Windows 下出错的原因也是如此,但是涉及的文件比较多,改起来比较麻烦,所以直接忽略

3.  make 时提示 from jcc import _jcc 找不到 dll:主要原因是 JAVA 的环境变量配置不正确,找不到 jvm.dll。将包含 jvm.dll 的 JRE 目录路径加入 path 环境变量即可(如JRE\bin\server)。如果在编译安装 JCC 这一步之前没有设定好 JDK 的系统变量,也会出现这类错误。 建议设定环境变量后重启电脑一次。如果设定环境变量后仍出现这样的错误,可以修改 JCC 目录下的 setup.py 文件,将 ‘JAVAHOME’ 修改为 JDK 的实际目录路径,然后删掉 build 目录,重新安装 jcc

4. 用 pylucene 6.2 和 6.4 建立的索引可以互相兼容 , 但 pylucene 4 建立的索引不能在 6.2 以上版本使用(需要使用 IndexUpdater 包处理)。程序代码也是,因为很多函数和定义在新版本中被移除了

NASDAQ:AMD 中国市场基本面简略分析 2016

声明:本文内容仅供参考。因消息来源有限,可能存在错误。因为阅读本文后进行相关投资引起的损益,本人不负任何责任。

AMD (Advanced Micro Devices) 就是超微半导体,俗称“农企”、“按摩店”

概况: 前两年资金短缺,卖大楼换资金。 产品线全面落后于竞争对手Intel和NVIDIA,人心惶惶。

近来Lisa Su上任后动作频频,Polaris 10/11 系列显卡的发布可视为转折点,目前情况略有好转

9月份机构估价每股8~9美元左右,目前价位10~10.6美元

(update 2017.1.10  现在的价位是10.5~12美元)

 

分析:

利:  1. RX480/470/460系列显卡发布,市场反响不俗。与竞争对手NVIDIA的GTX 1080/1070/1060/1050相比有一定性价比优势。

2. AMD积极赞助中国国内的电子竞技比赛,收获好评与市场认知度,为打开游戏市场奠定良好基础。目前中国国内电子竞技事业发展态势较为平稳,与10年前相比发展环境大有改善。预计在直播平台等自媒体推动下未来5年内仍有较大增长。

3. AMD发布GPU加速器Radeon Instinct与Rocm 工具包。开始关注学术市场。目前已有基于OpenCL的开源深度学习框架(如clTorch)出现

4. 中文舆论支持。 由于之前的劣势以及竞争对手的高价策略,目前舆论对AMD持同情态度,期待农企能推出性价比高的产品。 百度部分贴吧(显卡吧、图拉丁吧)开始大量出现使用RX480/470显卡装机的讨论内容。

5. 根据本人收集到的知乎上部分amd上海研发部员工的言论,目前产品开发有条不紊且有有效的进展。

6. 主打中低端市场的RX470D/460被发现存在“开核升级”的可能,可能会引发购买的潮流。

7. 即将上市的Zen系列CPU据传性能可与Intel i7系列抗衡

8. 由于广电总局对网络电视机顶盒的管制导致对HTPC的需求悄然上升,AMD fusion平台可能会收到潜在的红利

 

弊: 1. 资金可能仍不充裕

2. 对基于OpenCL的深度学习框架重视程度不够,无法吸引大量有稳健需求的人士,相关开源项目较少且稳定性无保证、无法跟上最新研究产生的计算需求。NVIDIA目前已赞助(收买)若干重量级框架为N卡背书

3. PC市场疲软

4. Fusion平台战略的效果仍不明显

个人估价: 一年后维持在每股15美元左右,  最高可至20美元。

深圳北站回乡证取票攻略

写在前面:深圳北站对回乡证(大陆方面叫“港澳居民通行证”)取票的政策一直在变化,所以这篇文章的时效性可能会滞后。建议所有持回乡证的乘客至少提前 2 个小时到达车站。如果文章提到的方法都无效的话,请去人工售票窗口排队取票(时间较长,请保持耐心)。

需要准备的证件:回乡证,车票订单号(一般以字母E开头,形似 E0023412 这样的字符串)

如果车票的出发站不是深圳北站,那么去人工窗口取票(叫做“异地取票”)时需要交手续费,一般是每张票 5 ~ 10 元人民币

如果不想在深圳北站排队,可以到罗湖火车站的“长途车票售票处”的人工窗口取票,但是取出来的车票一般是红色车票,也就是人工车票,持票进站的时候要走人工窗口

注:罗湖火车站有两个售票处,一个是广深线售票处,靠近关口;另一个是长途车票售票处(“长途车票”是指非高铁动车的班次,一般以 K、Z 字母开头,但是这个窗口可以取高铁动车的车票)靠近香格里拉酒店。 只要从广深线售票处往香格里拉酒店方向再走一段距离就可以看到

update 2019.04: 现在使用港澳居民居住证可以在全国大部分车站的售票和购票机上取票和购票,享受和大陆居民身份证一样的待遇,不需要专门找支持回乡证的机器。

update 2018.01: 深圳北站的大部分售票机和购票机可以使用二代(芯片式)回乡证 取票和购票,旧式的回乡证预计今后将不被支持(只能去人工窗口排队)。

update 2017.09: 深圳北站现在有专门服务持回乡证乘客的人工取票窗口,但不是每个售票厅都有这个窗口

update 2017.09: 罗湖火车站(深圳站)可以用回乡证(一二代都可以)取广深线动车票。 其他线路车票需要到靠近香格里拉酒店方向的“长途车票”人工服务窗口取票

update 2017.07: 经过观察,目前深圳北站的部分购票机可以使用回乡证取票

update 2017.03.12 :  可能由于故障不断,近期深圳北站已经将取票机上的回乡证取票功能暂时取消。 请到人工窗口取票

深圳北站一两年前已经支持在自动取票机上使用回乡证取大部分的动车票和高铁票

1. 从港铁深圳北站下扶梯后找到“竹升面”这家店(旁边还有一家“此地吴面”),左右两侧各有一排自动取票机可供取票,但只有部分取票机可以使用回乡证,细节见步骤2

1

2.  找到机器右侧有“港澳居民通行证”的取票机进行取票。

首先点击屏幕上的取票按钮,在弹出的窗口选择“港澳居民通行证”,如果窗口中没有相似的选项就应该换另一台机器,即使机器右侧有读取通行证的装置。

接着拿出回乡证,从上往下刷过扫描器的凹槽。 需要注意的是请刷得慢一点,如果刷得太快取票机会无法识别。 根据本人经验,取票机对回乡证的识别性能比较差(据说采用的是光学识别,因为不是磁卡),所以常常需要多刷几次,如果一直无法识别可以把回乡证左右或上下翻转后用另一边尝试。 如果仍然无法识别就应该到人工窗口排队取票。另外取票机偶尔会有故障,应该多加注意,避免耽误时间。

取票机识别后需要输入订单号。订单号的格式为 E-XXXXXXXX,可在订票网站或订票通知短信上找到,其中X表示数字,输入时只需要输入字母 E 后面的数字

3

历史虚无主义举例与动机分析

  1.  “我觉得其实1949年前国民党也没做错什么啊,我们只是被胜利者洗脑了而已”
  2. “为什么他们(指香港民众)为什么不能做出选择!?(指“自决”)”——一位读了一年msc的传媒爱好者这样问道

在中国,“历史虚无主义”其实是个政治术语,我对以上内容反映的价值观不感兴趣,但对说话的动机却非常好奇。据个人观察,部分有此类思想的人士,青少年时期可能受到一定的管教或遭遇变故。成年后摆脱无力感之后很容易选择用一种价值观代替原先的价值观,这对于他们来说是一种摧毁无能的过去并获得新生的仪式,并且把自身的发展归结到这种转变上,并不断自我暗示强化。

2015-2016 这一年

15年8月离开厦大,人要往前看,没有眷恋,但仍会充满感情地回忆起这里的人和事。

初来中大,像空气一样自由。

刚开始帮某师兄处理meetup的数据和做实验,最后当了两三次第二作者。据说有人评价数据集的质量不错,其实他们不知道除了写程序处理之外我花了不少时间手工查错和标注数据。

之后开始和伊朗的女博士Negin合作。

再往后就开始我自己在检索、知识图谱和Deep NLP方面的研究。

这期间去过两次昆明,一次北京,目的大概是散心和找人。

在昆明很愉快,见到了想见的人,一起走了滇池。顺便验证了知乎上一个叫 David Rand 的家伙的结论:翠湖的海鸥晚上飞回滇池睡觉。

对某些人,实在不想谈论“谁配得上谁”这种话题。有时候做得仁至义尽却屡遭伤害,最后还被扣上“负心”的帽子受到朋友圈的指责。只能期待时间让人明白。至于“朋友圈”,我并不是很在意,因为我不需要活给谁看。

英菲克 N6 网络机顶盒刷机与 Root 指南

这可能是网上第一篇关于 inphic N6 的刷机与 root 指南。

转发与修改请注明原文出处: lxsay.com

以下关于机型和固件选择的信息是通过联系英菲克的技术支持得到的,在此表示感谢。

N6 和 i10M 的芯片都是 Amlogic S805,并且经过试验 N6 目前只能刷 i10M 的固件。N6 虽然可以刷入 i6M 的固件,但是接通电源后会卡死在开机界面,并且长按电源键进入 recovery 后会提示无法挂载 /system 和 /data。 说明两个机型略有不同,不能适配。

N6的刷机方式比较奇特,需要使用“抢占”的办法,否则按照官方给出的教程,遥控器短接(或短路芯片引脚)并使机顶盒指示灯变色后,机顶盒会迅速断开连接使得刷机工具失效。

 

  1. 进入 http://www.inphic.cn/bbs/forum.php?mod=viewthread&tid=356382&page=1&extra=#pid807965 下载英菲克 i10M 的固件和刷机工具 USB Burning Tool(按教程配置好刷机工具。刷机工具也可以用自己下载的最新版本)
  2. 打开 USB Burning Tool,导入固件,此时不要将机顶盒连接到电脑上
  3. 只用 USB 数据线连接机顶盒与电脑(数据线和电脑 usb 接口的规格为 usb 2.0 或 3.0,注意不要连接电源,只用USB线供电)。 此时注意 USB Burning Tool 上的显示,一旦出现连接成功的字样,立即点击“开始”。此时刷机软件会在执行到进度4%的时候停止并提示错误。 这时注意不要点击“停止”,保持原状,以便于接下来的“抢占”
  4. 切断 USB 数据线与电脑的连接,再重新插上。此时对着机顶盒按住遥控器的电源键(注意是机顶盒的电源键不是电视的电源键) 。当刷机软件显示连接成功时立即点击“开始”并松开电源键
  5.  经过步骤1-4后即进入刷机状态,如果进度达到4%时提示错误说明该固件不匹配机顶盒,应该换一个固件。
  6.  刷机成功后断开 USB 连接,接上电源并重启机顶盒进入系统,首先需要在连接网络的情况下进入“设置”升级系统到最新版本,否则该初始版本系统存在不能打开应用中心等许多 bug
  7. 升级后重启系统并进入设置 – 设备信息 – 版权声明,按照“左键-右键”的顺序多次按下遥控器的左键和右键,此时会进入开发者模式。 开启“ USB 调试”、“调试信息收集”等选项
  8.  在手机上安装“悟空遥控”并连接机顶盒(需要手机及机顶盒连接在同一个网络的情况下),并在悟空遥控中搜索并安装“永不卸载”软件并重启机顶盒
  9.  此时用户已经可以通过“悟空遥控”搜索并安装任意软件,并且不会被系统自动卸载。使用同样的方法搜索并安装“360超级root”。使用鼠标模式操作root软件并进行root。
  10. 重新打开“ 360 超级 root ”,进入“自启管理”,根据实际情况禁止部分软件自动启动,经过本人试验这会使系统流畅度有明显的提升。
  11. 由于 N6 的内存比较小,系统运行不是很流畅,重新打开 root 工具后可能会有卡顿与黑屏重启的现象,请保持耐心。如果不需要 root 请卸载软件,因为软件本身也会占用大量资源

网件Netgear WNDA3100v3 linux驱动

项目地址: https://github.com/jurobystricky/Netgear-A6210

相关讨论:https://forums.gentoo.org/viewtopic-t-1006508-start-0.html

据作者描述,这个驱动支持基于Ralink / Mediatek mt766u, mt7632u 和 mt7612u 芯片组的大部分无线网卡,可以将网卡的VendorID和DeviceID添加到common/rtusb_dev_id.c文件中。之后进行编译(make 和 sudo make install)安装即可

经本人测试,该驱动Ubuntu 16.04 64bit系统下开机的时候会提示内核错误并且找不到热点,此时需要在命令行下输入 sudo service network-manager restart 重启服务,之后就可以正常工作

真空式管道疏通器的使用技巧

真空式管道疏通器是用来解决“马桶堵住”这种很囧的生活问题的工具。

很多人不得其法,拿到之后直接压在马桶下水道口不断抽吸,毫无效果。 其实考虑到疏通器的原理在于下水道堵住之后,堵点和疏通器的活塞之间形成了密闭空间,抽吸活塞可以移动密闭空间之内的水柱。 所以正确的使用方式是按一下马桶的冲水键后立即压住下水道口进行抽吸,此时密闭空间内充满了水,空气被尽数排除。

堵住下水道的物体一般是不规则的,堵住的位置一般不是正中间。抽吸的时候应该调整疏通器的吸盘接触的地方,正对着入水口不一定是最省力的位置,可以适当向四周移动,这样更容易奏效,否则会花费很多力气。

“克利夫兰老实人报”的英文翻译

“克利夫兰老实人报”是个很有趣的中文翻译,这家报纸因为经常报道NBA克利夫兰骑士队(拥有随队记者 Chris Haynes)的消息而受到中文体育媒体的关注。

不少人(按照中式英语思维)觉得对应的英文表达应是 “Cleveland Honest Man News” 。然而事实上对应的却是 “(Cleveland) The Plain Dealer”

这个名字的来源可参考维基百科对应词条:https://en.wikipedia.org/wiki/The_Plain_Dealer