Tag Archives: 编程
学校都不教的C语言基础知识
前几天 @Paspy 问我一个C++的问题,顺便扯出了他所在的美国学校竟然教授C++的方法和我所在的国内二本大学别无二致。我还认为国外大学至少应该在这方面的教育会比国内的更好,至少要教给学生从编码到编译的本质。现在的学校都是随便找个IDE,教学生“新建一个工程,在里面写代码,然后按那个编译按钮,接着按那个运行按钮”,这样就完了。结果学生根本不知道程序是如何从代码变成可执行文件的,更不用说在编译中要涉及的头文件去哪里找,以及动态链接库方面的东西了。为此我决定写篇文来说明一下。虽然目前我对这方面也只是知道皮毛,但至少其基本过程还是知道得清楚的。
做 libantixunlei 扯出来的无聊技术之二
这回是如何高效地判断出迅雷的FTP指令序列。这里所说的FTP指令序列是指,一个FTP会话从连接开始,到开始下载文件前,发送给服务器的FTP指令的序列。另外,指令参数是不算入指令序列里面的。一个典型的FTP指令序列就是:USER->PASS->SIZE->PASV->RETR。
ytp弹幕算法说明
弹幕这个词应该不用我解释了,那么这篇文就是对ytp的算法的说明,在这里给出PDF文档和ODF文档,同时为方便阅读直接把文章内容贴上来了,不过没有排版,就看TinyMCE和OpenOffice的交流如何了。ytp弹幕算法说明.pdfytp弹幕算法说明.odt
Linux下使用被动模式调用MPlayer
首先说明,虽然我已经成功地做到了调用MPlayer并给它发送命令然后读取结果,但是具体的过程细节到底是怎样的我还不是很清楚。同样是因为这样的原因,我在文中的叙述可能有技术上的错误,欢迎指正 popen()函数用于打开一个进程,返回结果是一个FILE*类型,这个返回值根据打开方式的不同,分别指向使用popen()打开的程序的输入流或输出流,可以直接当成一个普通文件来使用。 popen()的第一个函数是命令行,就是要执行的程序的命令,第二个参数可以是”r“或”w”,这和fopen是差不多的,一个是读取,这时候返回结果可以当成打开的进程的输出流,另一个w就是输入,返回结果可以当成打开进程的输入流 popen()函数实际上是一个封装好的用于进程间管道通信的函数,可惜的是它的第二个参数不能是”rw”,只能是r或w。因为我们要从MPlayer的输出流读取返回的信息,所以这里要使用”r“参数。 这样我们就不能直接从标准输入给MPlayer输入指令了。不过没关系,MPlayer提供了被动模式,可以从一个FIFO文件中给MPlayer输入指令。只要在调用MPlayer的时候使用 -slave -input file=path 参数就可以了 因为 -input file=path 里面的path是一个FIFO文件,所以我们必须先创建一个这样的管道。使用unlink()和mkfifo()函数就可以做到。这里我们使用/tmp/cmd作为FIFO文件,代码如下
使用计算机给一个看似四色猜想的反例上色
下面这个图中有四个地图,其中图4是一个看起来很像四色猜想的反例的地图。想要手工给图4上色是很困难的,至少对我来说是很困难的。我曾经花费了应该有超过1小时的时间来尝试给这个地图上色,但最终结果是两个相邻区域的颜色相同了。此图片来源:Matrix67 手工上色失败以后,我就想用电脑进行上色,于是就有了这篇文章。
F-22's Trace
greensea 的个人主页
sky-city
极夜奁
小樱之町