0%

书的示例代码在 http://pix.cs.olemiss.edu/csci561/prg561.1.html

我在Ubuntu 10.10上编译会出现错误如下错误

1
2
3
4
5
6
tcpservpoll01.c: In function ‘main’:
tcpservpoll01.c:13: error: ‘OPEN_MAX’ undeclared (first use in this function)
tcpservpoll01.c:13: error: (Each undeclared identifier is reported only once
tcpservpoll01.c:13: error: for each function it appears in.)
tcpservpoll01.c:13: warning: unused variable ‘client’
make: *** [tcpservpoll01.o] Error 1

解决方案是去定义一下OPEN_MAX它。

我们在unp.h里面加上

#define OPEN_MAX 1024

就好了。

设为1024的原因见 http://blog.chinaunix.net/space.php?uid=23242876&do=blog&id=2480261

在Android有许多ssh的工具,其中ConnectBot就是一款有趣方便的工具。

我们可以使用它来远程管理我们的主机。

ConnectBot的主界面如下:

screenshot-1328349833982

我们可以把我们的密钥复制到SD卡根目录,然后在ConnectBot里面导入,然后点击密钥右边的那个锁的图标使其变为绿色就可以了。然后我们就可以无密码登录远程主机了。

下图是我登录了远程主机的截图:

Read more »

想必大家都使用过Subversion吧,也想必大家都对SVN这种脱离了网络和服务器就寸步难行的工作方式嗤之以鼻吧。使用SVN我们看个log首要联网。

在服务器在因特网的情况下,网速让使用SVN变成一件十分蛋疼的事情。因为SVN事事都要联网,没有网络就无法工作,这个是集中式版本控制器十分大的缺陷。

好在后来Linus在BitMover在收回开源社区的BitKeeper这款分布式版本控制器的授权后,开发了Git。这款Linus又一力作又再次改变了世界。

Git有个很好的功能就是可以访问SVN服务器。这点也让我们这些SVN的使用者也稍稍改善了SVN的用户体验。

Git可以将版本先提交(commit)到本地的分支,到时机成熟之时再一次推送(push)到远程服务器。而且查看历史也不需要联网了,因为Git默认会把整个SVN版本库都克隆下来。

像我们使用Google Code来托管我们的开源代码时,我们可以在上面创建SVN的版本库,Git版本库貌似访问不了,没办法。

Google Code对一个项目有4GB的空间,有wiki等等,还可以上传文件供用户下载,这个非常的好。

例如,我的vim和emacs的配置我放到了 http://code.google.com/p/et-vim-setting/

我们可以使用如下命令克隆我们的Google Code上的项目。

git svn clone --username cedricporter@gmail.com -s https://et-vim-setting.googlecode.com/svn vim_setting

Read more »

自从有http://EverET.org/开始以来,我的留言板每天都有几十条来自世界各国的垃圾评论,好在装了Akismet,否则我的博客就就被垃圾评论塞满了。这些都是某些RP低的人用机器自动发的,毫无价值,有俄文,波兰文等等乱七八糟的语言。

仔细看看,垃圾评论都集中到留言板。我的留言板的url曾经是 http://everet.org/guestbook ,然后我改成了 http://everet.org/guestbooket 还是一样,发现原来用 http://everet.org/guestbook 也可以定向到 http://everet.org/guestbooket ,所以改了等于没改。

于是,我把它改成拼音的,改成 liuyan,果然就没有了垃圾评论。

http://everet.org/liuyana

哈哈。估计垃圾评论的发送器也是用了Google Hack吧。

想起以前在用NBSI注入的时候,也是在里面打开Google页面,然后搜 inurl:asp?= 什么的,然后就让NBSI顺着搜索结果往下测试。

对于垃圾评论发送器我们可以搜索 inurl:guestbook ,然后在搜索结果一部份中就是某些网站的留言板,就可以在那些页面发垃圾评论了。

消息记录

消息分组:讨论组

消息对象:我怎么听见喘息声。。

日期: 2012-01-30

XellOs

15:09:13

UARF0O4MI_$6HXMIHAA

XellOs

15:10:46

XellOs

15:10:56

好吧

Read more »

Gitweb是Git提供的一个基于web的版本查看工具,可以在网页浏览我们的版本库,挺像Google Code上面的网页浏览版本库。我们可以使用cgi方式,让gitweb运行在apache中,如果在nginx上,我们还需要一个包装才可以运行cgi。

使用Gitweb很方便,但是如果是一些私有的项目,谁都可以访问想必大家都不能接受吧。

所以我们可以通过apache或者nginx给虚拟主机增加一个密码。效果如:http://git.everet.org/

我们首先用htpasswd生成密码:

1
2
3
4
5
htpasswd -cb 文件名 帐号 密码

htpasswd -b 其他帐号 密码

-c代表创建一个新的,-b代表批处理。
Read more »

Imagination Factory是一款轻巧美观的图像浏览和图像处理软件。这是我们大一时的C++大作业。写下来记录一下以前做了些什么。

我们小组除了俺之外有陈可昕和康磊,两人都是天才少年。陈可昕同学巾帼不让须眉,交给她的几本数千页的WPF英文书籍她都很快就可以消化。康磊同学理科高人,复杂的数学问题他都可以轻松搞定然后去看动漫了,俺有幸可以与此神人同宿舍,只可惜神人已经转专业到了电信。

Imagination Factory的界面采用C#编写,使用了WPF作为界面库。图像处理核心使用C++编写。

项目已经开源,放到 http://code.google.com/p/imagination-factory/ ,有兴趣的同志们可以接着完善它吧。

Imagination Factory运行时的截图:

Read more »

首先,我们创建好公钥和密钥,如何创建可以参考 http://everet.org/2012/01/management-remote-host.html

然后把公钥id_rsa.pub发给Git版本库的管理员。

因为TortoiseGit使用ppk,所以我们需要用自己密钥重新创建一个ppk的密钥

image

我们首先打开 TortoiseGit 下的 puttygen,然后点击load,把自己密钥加载进来,我们之前创建的密钥,如果没做任何更改,则文件名为id_rsa。

Read more »

更详细的教程请见 《Pro Git》http://progit.org/book/zh/ch4-7.html

安装必备工具

apt-get install git gitweb gitosis

用自己的公钥来初始化Gitosis

1
2
3
root@everet:/var# sudo -H -u git gitosis-init < /tmp/authorized_keys
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

对该仓库中的post-update 脚本加上可执行权限

root@everet:/home/git/repositories/gitosis-admin.git/hooks # chmod 755 post-update

克隆 Gitosis 的控制仓库

$ git clone git@everet.org:gitosis-admin.git

这会得到一个名为 gitosis-admin 的工作目录,主要由两部分组成:

Read more »