COMMENTS

递归程序的困扰

很久没有写过递归程序,今天被一个小小的递归给困扰了。请教了CSDN的大哥们后,终于想明白了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.c>
#define LEN 3
 
char buf[LEN]={'a','b','c'};
 
void print_backward(int pos)
{
  if (pos == LEN)
    return;
  print_backward(pos+1);
  putchar(buf[pos]);
}
 
int main(void)
{
  print_backward(0);
  putchar('\n');
 
  return 0;
}

其实挺简单的,就是return是return到上次调用的,加上main里的调用,一共调用了4次,第4次时pos=3,直接返回到第三次,第三次就执行了 putchar(buf[pos]);,而此时pos=2,也就是执行了 putchar(buf[2]);,依次类推,分别输出了buf[1],buf[0],最后返回到了Main函数。
递归很强大,有时候很费解,这样的写法还是要学会的。

Windows 7的30个技巧(转载)

1. 窗口管理

你很可能已经看到了Windows7使窗口管理变容易很多:你只要拖动窗口拱到屏幕边缘,就能把它”dock”到屏幕的左半边或者右半边;类似的,你可以
Win+左箭头 和 Win+右箭头 靠左/右dock;
Win+上箭头 和 Win+下箭头 最大化和回复/最小化;
Win+Shift+上箭头 和 Win+Shift+下箭头 窗口高度最大化和恢复.
靠左/右dock的特性在宽屏上特别有用

2. 投影显示
受够了穷折腾笔记本上奇形怪状的OEM显卡驱动工具就为了接个投影吧?你会乐于知道投影在Windows 7中会很快捷:只要猛击Win+P,你会很快意的看到这个弹出窗口:
用箭头(或继续猛击Win+P)来切换”不投影”、”镜像屏”、”扩展屏”或”关内屏”的设置。你也可以用命令行的displayswitch.exe

3. 耳根清静
想丢开干扰在一个窗口中专心弄一个文档?猛击Win+Home键最小化所有其他窗口,当前窗口位置不变。再次猛击Win+Home所有窗口恢复原状。

4. 多显示器窗口管理
早先的技巧展示了如何在一个显示器上dock窗口。一个更精巧的快捷键是可以用Win+Shift+左箭头和Win+Shift+右箭头来把窗口移到另一个显示器,而保持它对显示器左上角的相对位置不变。

5. 命令行上瘾者专用
Windows XP power toys里最受欢迎的是”Open Command PromptHere”,它让你使用GUI浏览文件系统,然后用右键菜单在当前目录打开命令行。在Windows7中(顺便说一句,Vista中也有,不过知道的人不多),你可以Shift右键来取得这个效果。如果当前目录是个网络位置,会自动映射一个驱动器字母。

继续阅读

激动人心的时刻

5分钟的功夫撒了两泡尿了。女朋友的老妈一会就到了。
经过慎重考虑,不打算向未来的岳母表明关系,人家是来看女儿的,突然抛出这么大个炸弹,还不得硝烟四起,死的静悄悄了。但也不能欺骗她老人家,面上说是朋友关系,同处一个屋檐下的,厨房的一堆东西她娘就能看出来是“搭伙”吃饭的,她老妈也没多大年纪,总不至于看不出来点什么,说回来,我倒是想让她看出来。
看来我这大半个月的时间不好过了,陋习是一定要坚持隐藏的。没准还要吃顿饭,聊个天啥的。隐瞒实情总是个定时炸弹,大多数问题还是坦白交代比较好,不知道这么想对不对。
园林票特意留下了无锡有名的几个景点,打算让岳母也好好逛一圈,毕竟她老人家第一次坐这么长时间的火车,昨晚也没睡好,估计是想女儿激动的,恕不知我现在已经激动的内分泌紊乱了。

真是的,怕个鸟,以后就是一家人了。大方自在些,没准还能留个不错的印象!
但愿丈母娘她老人家和蔼可亲。
加油!祝福我们,祝福自己~

流水账

今天2009年11月19日,天气阴,温度很冷。早上7点20分爬起来习惯性的WC刷牙洗脸出门,买包子上班。上班途中8小时,期间吃了午饭,其余时间两个字概过,“无聊”。下班回来脑袋沉沉的跑去买菜,早几天听说菜要涨价,昨天同事买的大蒜7块一斤。今天果然涨价了,买了蘑菇小青菜豆腐菠菜馒头,还有昨天剩的一些,也买了好多。好冷的天,做饭的手都要冻的拿不住刀了。快做好了才发现女朋友怎么还没回来呢,拿出手机打电话才看到一条短信,说8点回来。才想起昨晚就说了今晚她们部门小聚会。做了好几盘菜都浪费了。现在都8点40了,放我鸽子,无聊记流水。

可恶的垃圾邮件

spam

很久前废弃了两个邮箱,都是因为垃圾邮件爆满。

后来申请了现在这个,发誓一定好好保护,乱七八糟的地方注册都使用的是已经废掉的邮 箱。所以仅仅有重要的信息的才留这个邮箱,比如银行,常去的或者比较重要的论坛等等。谁知防不胜防啊,也许没管住自己,有些地方还是使用了这个邮箱,但是 铺天盖地的银行促销也太扯了,再说了,用个email这么让人费心,这还怎么说email方便呢,难怪有人说email该下台了。

本来设置了手机收取我的email,早都取消了,动辄就是大幅的高质量画页,GPRS费用掏不起,真是很无奈!

PHP header发送各种类型文件下载

转载自网络,来源不详,在此感谢原作者。

<?php
header(’Content-type: application/image/pjpeg’);//输出的类型
header(’Content-Disposition: attachment; filename=”downloaded.jpg”‘); //下载显示的名字,注意格式
readfile(’my.jpg’);
// 并将这个文件以前面header发送信息设定的类型输出,从而会弹出一个下载框
// 就是把服务器上的my.jpg下载下来,下载显示和保存的名字默认是downloaded.jpg
?> 附带文档类型及服务器响应类别
一共两个版本.
文档类型   和 服务器响应HTTP的类型
上面的这个可以在上传文件的类型中对应上.下面的差了点.(原文下面的是用来写在文件头上的.来确定该文件是什么类型.)

继续阅读

linux中开启路由功能

普通家用的路由器可以称之为标准的linux嵌入式设备,所以拥有一台linux主机,也就可以具备路由器的全部功能。所需要的是可能你的linux主机需要至少两块网卡,或者还需要无线网卡。

提及一下简单的思路,具体的软件安装和配置方法可以分别从网上搜索。

编辑/etc/sysctl.conf文件中的net.ipv4.ip_forward值,将其修改为1,保存后再使用sysctl -p命令使配置即时生效。或者使用echo “1″ > /proc/sys/net/ipv4/ip_forward命令临时开启,重启后不生效的。这样就开启了Linux的路由转发功能。

再者安装DHCP,使你的linux主机成为一台DHCP服务器,DHCP的安装很简单,一般linux发行版都带有这个软件,如果默认没有安装使用安装光盘安装,或者从网上下载也可,只是版本众多,所以用光盘里的也是最省事的办法。配置文件为/etc/dhcpd.conf,具体的配置可以参考我的另一篇文章启用dhcp relay为不同子网分配IP, option domain-name-servers需要配置为本机的IP,也就是你DHCP服务器准备分配地址的网卡IP。

接下来就需要安装DNS服务器了,这里使用DNS并不是需要这台主机解析域名,仅仅是一个转发DNS请求的作用。所以安装后应该不需要配置什么。安装的组件应该是bind,bind-chroot等。 当然,如果DHCP的option domain-name-servers配置了一个可用的公网DNS,那么就不需要安装DNS了。

最后还需要iptables来开启NAT伪装,来做地址转换,开启的命令如下,iptables -t nat -A POSTROUNTING -o eth0 -j MASQUERADE ,具体网口地址就是你的外网口,视具体情况修改。可以将这条命令写入/etc/rc.d/rc.local或者用iptables-save > /root/iptables-saved来保存目前的iptables状态,再将iptables-restore /root/iptables-saved写入/etc/rc.d/rc.local,来使开机配置生效。

这样简单的就成了,工作的原理也很简单了,linux主机为客户端分配IP,分配网关、DNS,网关地址和DNS地址应该都是这台linux主机,这台linux主机的外网口接入了互联网,他的接入方式可能是局域网静态地址,也可能是动态地址,或者是PPPOE拨号接入的,这些都无所谓,我们的linux主机始终会将另一个内网口(dhcp分配地址所在的网卡)的数据转发至外网口上来,从而使客户端看起来在通过一台路由器上网了。

或者还可以安装NTP,PPPOE服务,甚至radius,如果有无线网卡,也许还应该有hostapd来配合无线网卡来加密SSID,总之就是随心所欲了。

所有的安装配置都写的很简单,旨在记录一种思路和方法,以备不时之需了。

有关PHP中类似ASP application对象的搜索整理

今天和同事讨论起怎么在PHP中实现多个客户端去修改和获得同一个服务端变量的问题,其实就是ASP中的application对象的作用了。

原来事情没有那么简单,PHP中没有提供类似application对象这样的方法,经过一番搜索,整理出网上常用的三种方法来实现。

其实都是很容易想得到的办法,存取文件,存取数据库,共享内存。若有其他方法欢迎告知。

网上还找到一个可以实现这个功能的类,没有测试,大概看了看,核心还是采用的存取文件的方法,所以就没有保存。

既然只能这样实现,就不多说了,有关共享内存可以搜索手册,手册中有详细的方法。搜索的关键词可以用shm,shmop_open,shmop_reade,shmop_write等。

整理之留备后用。

随记于上班前

每天早上8点半打开电脑,习惯性的去浏览各个新闻。不知道从什么时候起,看新闻就一直在sohu,好像大学之前就知道这个网站并且有看过了,也有七八年之久了。看来一旦起初认定了什么,更改习惯真是不容易。记得当初的购物网站有当当网,以前只卖书,好像还买过的。啧啧~感叹自己的潮流。

看看现在的sohu,真是感受非同一般了。点开新闻频道,习惯性的等几秒,因为几秒后我的屏幕会被广告淹没,我得等他们出来再一一关掉,试想我正在浏览的过程中突然冲出这么多的广告来该是多么恼火的事情。不知道没有电视广告的朝鲜朋友能不能上sohu呢?他们有没有看到这样的广告。

有时候在国外的网站查找资料,实事求是的说,真的比我们常见的网站清新了很多,很喜欢这样的感觉,无奈看起来不是太懂,要不然还想多逗留一会。

额,差不多了,时间已经走到了上班中了。

新主题 新气象

换了新的主题,庆祝几个好消息。

明天继续修改。

Page 1 of 212