hongweipeng 发布的文章

开发编程语言(一):动机


起步

大学阶段,当拿到厚厚的《编译原理》书的时候,就感到了来自书里厚重的使命感,我觉得我学完后可以开发一个编译器。然而,这一学期又TM浪费了,都还没理解文法,LL0和LR1等分析就草草考试了。直到毕业,又重新燃起了开发编程语言的想法。

好处

虽然说,重新编写一个和以后语言相似的语言是“重复造轮子”,但是从以后的道路上来说这可以让我更加深刻理解编程语言的运行机制。说不定还能成为名人呢。

用什么语言来开发

C语言,因为作为高级程序语言设计的基础,相信很多人都是学过的。而且像lex/yacc这些工具就是面向C语言的,同时,使用C语言还可以降低依赖程度,性能也很优越。(其实是找的资料用的是C写的),卧槽,刚刚谁在说话。

设计怎样的语法

总的来说,应该会接近java语言吧。

运行方式

暂时未定是要编译型还是解释型


编译php源码错误集与解决


起步

服务器Ubuntu14.04已后lamp开发环境,却还是没有不能顺利编译php源码,在此整理编译过程。

获取源码与编译

确保已安装了gitsudo apt-get install git -y,因为这可以看到PHP每次修改的内容及日志信息和跟进作者的更新。

git clone https://github.com/php/php-src.git
cd php-src
sudo apt-get install build-essential
./buildconf
./configure --disable-all # 为了尽快得到可以测试的环境,我们仅编译一个最精简的PHP
make
./sapi/cli/php -v

-v参数表示输出版本号,如果命令执行完后看到输出php版本信息则说明编译成功。

20160628170052.png


用ownCloud创建私有云


起步

由于金山,微博,华为等云盘相继不再提供服务,我们用开源的ownCloud为自己创建云存储。

安装ownCloud

ownCloud内核是用PHP5写的,支持SQLite、MySQL、Oracle以及PostgreSQL等数据库。这里我的环境是lamp环境。 php5.6 apache2.4 mysql5.6

获取ownCloud

wget https://download.owncloud.org/community/owncloud-9.0.2.tar.bz2

然后解压:

tar xvf owncloud-9.0.2.tar.bz2


解决cv2.drawMatches函数不存在的问题


起步

cv2.drawMatches这个函数在OpenCV 2.4.12中不存在。3.0以后才提供。所以运行时得到这样的报错:

Traceback (most recent call last):
File "match.py", line 22, in <module>
img3 = cv2.drawMatches(img1,kp1,img2,kp2,matches[:10], flags=2)
AttributeError: 'module' object has no attribute 'drawMatches'