-
在《UNIX操作系统设计》第11章的第6题写道:
Write a program that attaches shared memory too close to the end of its stack, and let the stack grow into the shared memory region. When does it incur a memory fault?
出于对结果的兴趣写了如下程序:
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
ch...
-
我庆幸有一班懂得爱我的朋友,令我在人生路上不再孤单孤独。爱令人年轻,爱令人变老。年轻的心的爱令我心境常青。——《我是这样长大的》
相遇
昨天听到一个非常浪漫的故事,关于我同学的奶奶和他爷爷的爱情故事。爷爷在当兵,从黑龙江来到大连的部队,见了奶奶一面后就决定非她不娶了,并且冒着被部队发现的风险坚持着,虽然最后被发现并且被开除了,但是最后也和奶奶结婚了,并且养育了5个孩子。虽然故事很短,但是我却觉得这是一个非常浪漫的故事了。因为以前听自己爷爷奶奶和父母的故事都觉得平淡无奇,竟然发现自己的同学的爷爷奶奶有如此浪漫的故事,也真觉得他非常幸运,如果没有他们的相遇也就没有了之后的所有事。...
-
很久以前,同学推荐了哈佛大学的公正课,马上就被第一堂课的辩论吸引了,所以拿业余时间看完了一遍。现在在看林达的近距离看美国系列书,对于宪法比较感兴趣了,所以又拿公正课看了一遍,觉得第一遍看很多都是看热闹去了,看他们如何辩论,但是真正学到的没什么东西,再看一遍时非常认真地做了笔记,觉得收获很大,可能这也是有目的的好处吧。总结一下,也算是梳理内容了。
关于精英制度
以前我是很喜欢精英制度的,也认为这样的制度能最大限度的激发人的创造力,对社会整体是好的,但是现在我觉得这观点值得商讨。
很多精英制度的维护者都认为努力是个人因素,和遗传无关,所以这样的制度能避免歧视,对于一些有天生缺陷的人也能...
-
JS在很长一段时间内都被认为是没什么多大用处的语言,而且JS的程序员也不被重视,常常有类似于这样的程序员鄙视图,而且JS程序员总是处在被很多其他程序员鄙视的地位。但是原因主要是由于JS只能在浏览器中使用,出了浏览器JS什么也干不了。以前学《JavaScript语言精粹》看它介绍了很多复杂的面向对象的东西,我当时就觉得奇怪,为什么一个网页上的程序要这么复杂的技术,所以当时很多东西都直接跳过。但是现在有了Node,它将JS从浏览器中解放了出来,并且用在了高性能的服务器端,这让JS有了很大的用途。所以重新复习了下《JavaScript语言精粹》,记一下笔记。
JS的面向对象
JS支持面向对...
-
线程的坏处
在理解线程和进程之前我就已经看了《Unix编程艺术》,并且被书的第7章吓得不浅。这一章大谈线程如何如何恶心,进程如何如何优秀云云。现摘抄几句:
一个操作系统,如果没有灵活的IPC(进程间通讯)和使用IPC的强大传统,程序间就得通过共享结构复杂的数据实现通讯。由于一旦有新的程序加入通讯圈,圈子里的所有程序的通讯问题都必须重新解决,所以解决方案的复杂度与协作程序数量的平方成正比。更糟糕的是,其中任何一个程序的数据结构发生变化,都说不定会给其他程序带来什么隐藏的bug。
线程成为滋生bug温床源于它们太容易知道过多彼此的内部状态。与有着独立地址空间、必须通过明确...
-
就在上个星期访问自己的博客时,发现所有页面直接跳转到/cgi-sys/suspendedpage.cgi页面,说我的帐户已经被停。
机房给的答案就是“Exploit”,这词实在是难以理解。我的主机被利用?查了半天访客记录也没有发现任何问题,主机也没有向外面发送任何垃圾邮件。最有可能的就是前几天我上传了一个自己写的传送文件的程序,就在被停的前一天晚上我还用这个程序传了几个文件。不过和一般网络程序不一样的是这个程序不是用php或者perl写的,而是纯C,直接绕过了apache和cgi进行通信,并且绑定的是8081端口。
一切的起因就是,前几个星期我突然发现一个非常有意思的东西,那就是ph...
-
最近研究了下音乐中调号的区别,写篇博客就当做是科普了(以后可以给妹子教学,至少这比编程之类的话题更吸引她们),顺便也可以证明一下一直2B的我曾经也文艺过。。
首先推荐一本书:《五线谱入门》。这书虽然自称是入门,但是只要你全看懂了基本上五线谱的所有知识都会了,所以说书名有些谦虚,而且我总是感觉这书的用词非常口语化,可能是我看计算机技术类的书看多了吧。摘一句:“过去很多人学读谱学不会,究其原因,一是方法不对头,而是下功夫不够。”这种话你是绝对不可能在其他技术书籍里看见的!
好了,不废话了,进入正题。
调号的区别
要想明白为什么调号有区别就必须知道相邻两个唱名(所谓唱名就是Do Re ...
-
在下载大文件时最重要的功能恐怕就是断点续传了。如果在一个网络环境十分不稳定的环境下使用git克隆一个大型代码库绝对是个痛苦的经历,一旦下载中断,之前下载的内容全都不复存在。
git提供断点续传的难处
根据git的传输协议,在使用非HTTP进行传输时客户端和服务器端会进行一个复杂的通信:首先服务器端会列出它的所有内容,然后客户端根据服务器端的提示找出自己需要哪些数据,再向服务器索取,之后服务器端再调用“git upload-pack”将客户端想要的commits进行打包并传输。整个过程比较复杂,而且传输协议也不像HTTP协议那么简单,并且最麻烦的就是git传输的不是静态文件而是动态生成...
-
在Linux下编程时,退出码是非常讲究的,并不能仅仅用0来表示正常,非0来表示不正常来简单地处理。这几天做了一些实验,记录下来,方便以后查看。
shell以0为真!
有下面一段C语言程序:
#include <stdio.h>
#include <stdlib.h>
int main(){
exit(1);
}
它什么事也不做,只是将1返回给调用者,编译后再写一段shell脚本:
#!/bin/bash if [ ./a.out ];then echo “shell treat 1 as true” else echo “shell treat 0 a...
-
总是有些同学会问我一些Linux的问题,而且很多情况还要教实验室低年级的同学,但是授之以鱼不如授之以渔,所以总结一下我学Linux的经验,也方便别人查看。
学习Linux的好处
我总是觉得自己很幸运,因为我接触的第一个和计算机学科有关的就是Linux,在这之前从来没有接触过编程等东西,只是用电脑玩游戏而已。因此之后所有的计算机学习全是在Linux之下,包括编程,包括系统管理。为什么这样是幸运呢?我觉得主要有这些原因:
Windows并不适合学习编程。
几乎所有的服务器都是使用Linux系统,这样一直使用Linux省去了还要学习的麻烦。
很多优秀的开源的软件都是最先支持...