在windows里用vmware装了一个ubuntu 11.10,用的是server版的,是希望越小越好。
但为了windows能和虚拟机中的ubuntu通信,还是用ubuntu吧,想想多年前还用ftp或者通过邮箱相交换文件,真有值得怀念。。。
跑题了。
1 首先安装两个东西samba与smbfs
sudo apt-get install samba smbfs
2 然后要配置一下samba
cd /etc/samba
sudo vim smb.conf
找到security,设为user。这意思是需要验证,如果是share则不用验证。
然后添加如下
[homes]
comment = HOME
browseable = yes
writable = yes
保存退出。
3 然后添加一下用户
sudo smbpasswd -a $YOUR_USER_NAME
4 最后启动服务
sudo /etc/init.d/smbd restart
5 去windows下映射网络驱动器吧~
解说:其实smb有N种使用定式,比如开个share让大家一起来访问。但我这里配的是”开发模式”,各人都通过ssh联到远程服务器上,每个人的smb帐号就同于用户名。
之前我按网上说的是配的[share]怎么也不能连接,后来改成home就可以了。
PIL = Python Image Lib
PIL是Ptyhon下的一个图形库,我对于它的机理目前理解的不是很多,毕竟只用了一个晚上,但有一些使用心得,先放上来。
首先是解决一个小bug,在win7下,使用Image对象的show功能,会提示文件不存在。这是由于PIL的show功能只是一个debug功能,不同系统不同。在win7下,PIL会在生成图片的同时显示图片并做删除。删除后,win7就显示不了图片了。解决这个bug的方法是在\Python27\Lib\site-packages\PIL下的ImageShow中,修改第99行,修改为:
return “start /wait %s && PING 127.0.0.1 -n 5 > NUL && del /f %s” % (file, file),其实就是延迟了一点点再删除。
下面说正题,PIL的功能是图片处理,也可以进行画图。
图片处理的话,可以有打开图片(open),修改剪切图片(box, crop),修改颜色等等。
但我主要用它来画点和曲线,方法:
im = Image.new(…) #new 一个,相当于初始化画布
draw = ImageDraw.Draw(im),画image对象
draw.line(…) 画坐标轴
for x in mylist:
draw.point( … ) 画点。。
发现python确实挺好用的。
在linux下,浏览器的字体看起来有点怪怪的,设置字体的高级里却显示衬线字体,无衬线,等宽什么的。
这些是什么呢,其实简单来说,艺术字体就是衬线,它在每一笔上都有些突起什么的。
而无衬线字体则相反,就是每一笔上就光光的,什么也没有。比如雅黑字体。在Linux中,serif就是衬线字体的意思。
Sans serif就是无衬线字体。而等宽字体是另一种类别下的,是指英文字体中,每个字母都是一样宽的。呵呵,这下明白了吧~
说显示成乱码,其实是把utf-8识别中文字符集了。改成英文的就行,以下转载。
———————————————————————
linux ssh telnet TeraTerm终端中文显示乱码解决方法
1.root用户登录(或su root);
2.vi /etc/sysconfig/i18n
3.将内容改为
#LANG=”zh_CN.UTF-8″
#SYSFONT=”latarcyrheb-sun16″
LANG=”zh_CN.GB18030″
LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN:en_US.UTF-8″
SUPPORTED=”zh_CN.GB18030:zh_CN.GB2312:zh_CN:en_US.UTF-8″
LC_CTYPE=”zh_CN.GB18030″
LC_TIME=”en_US.UTF-8″
SYSFONT=”latarcyrheb-sun16″
———————————————————-
1.root用户登录(或su root);
2.vi /etc/sysconfig/i18n
3.将内容改为
LANG=”zh_CN.GB18030″
LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”
SUPPORTED=”zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en”
SYSFONT=”lat0-sun16″
———————————————————-
只要修改 /etc/sysconfig/i18n
默认为:
LANG=”zh_CN.UTF-8″
SUPPORTER=”zh_CN.UTF-8:zh_CN:zh”
SYSFONT=”latarcyrheb-sun16″
修改后:
LANG=”en_US.UTF-8″
SUPPORTER=”en_US.UTF-8:en_US:zh”
SYSFONT=”latarcyrheb-sun16″
重启系统就ok,中文乱码变成了英文显示
类型转换:type convertion.
什么是类型转换,这个词是来自于强类型的语言的,(C/C++, Java…), perl等脚本里是没有这些东西的,或者说类型转换是不符合脚本的设计思想的。
那什么是类型?类型其实是数据的类别,通俗的话是说一类人一起玩,不同类的人就别一起玩了。这是最严格的类型。
进一步,在C里,却会有类型转换,因为不同类的人不能一起玩这种要求太强了,为了方便(易编程性),也允许“相似”的人一起玩,即short + double 再变成int,这大概也能接受,虽然会有“损失”,因为double会变成整数,这需要损失精度。
C++里引入了类,这就要更吐血了,其实这就叫灵活带来的可编程性的下降。子类和父类大概也算相似的类吧?void? 构造函数上的参数?总之orz由此开始。越来越多的类型转换无法编译时确定,只能在运行时做,于是运行时一定要有RTTI(运行时类型信息),(由此可以想到也许各种面试的应试考试会对这些热衷?),说了一大堆了,其实再复杂,本质却只有两种,其他全是浮云:
1 编译时转换:即,编译器说怎么转,就怎么转。小范围的类型可以是大范围的类型,反之路不通。
2 运行时转换,数据不变,随便解释。这点其实和真正的实现是有冲突的,这应该也是灵活向可编程性让步的一种体现。即double变int是要损失精度的,这其实是从语义上的解释。但是,很多转换时,由于没有这种语义,所以就是直接的转换。
下面来看看c++给出的类型转换:
dynamic_cast< T > 运行时类型转换,运行时需要带有RTTI,转换在运行时完成,显然需要保证可运行,所以是类似C-style的转换。但主要用于指针(子类父类)。由于是运行时,转换失败会怎么办?变0了,也没别的办法。
static_cast<T> 编译时强制转换,数据不变,随便解释,排除基本数据转换时的情况。转换只要不合逻辑就会失败,同时编译器会找你喝茶。
reinterpret_cast<T> 牛逼型转换,不管语义的逻辑,说是什么就是什么,我比较欣赏这种比较根本的方法,条条道道不多的。
const_cast<T> 明显是把非const变成const。
嗯,一篇文章了结类型转换。其他细节看汇编码就清楚了。
语言嘛,了解精神是最重要的,标准太多,不用记太多,出了错去查就是了。
用那个101句名言之一做结束,”努力做好设计,但不要在设计时把聪明用尽,否则调试时就有苦头吃了。”
今天去买了一块硬盘,西数SATA 32MB cache, 7200rpm 1T的硬盘。430元。
觉得有那么一点沧桑。
想想当年640MB的硬盘,悄无声息我们跨入G时代。当时那响亮的口号,2G海量硬盘。
到后来我的15G硬盘,昆腾火球大卖的20G硬盘。
再后来,进入40G时代,一时间,《电脑报》里的彩页广告中的品牌机全是40G了。(不知道电脑报还生存地好吗,前几天看着还在卖,价格仍是两块五,游戏版的小生手记依然在继续,虫虫也仍然还在网络版,时间啊。。)
后来读大学了,有了自己的80G硬盘。为这么大的硬盘激动地一个晚上都在想怎么分区。后来80G的空间也迅速地满了。
大三的暑假,淘了块昆腾火球的20G硬盘,看着上面的Quantum Fire Ball,不知道还有多少人知道这家已经被迈拓收购的公司呢(迈拓今天也不在了..),在科技发展如此的今天,就曾经的经典,终于只剩下了记忆,唯一证明它存在过的,就是手上的这块硬盘了。同样,还有voodoo和3dfx…
一度相信刻盘才是收藏的王道,买了一台先锋DVR-115刻录机,买了好些盘片,刻了一些资料,突然发现,原来DVD的4G只是这么小的容量。还是算了吧,难道一个游戏我都要分成三张碟来刻?把刻录机放家里了,这个算是真的在浪费钱了,还好不多,买的便宜货。(想想当时要是买光雕就好了,还可以做一些创意盘片送给别人做小礼物。)
很没自信地去读了研,硬盘也跳过了120G时代,直奔160G。一直不能想象160G的硬盘是什么概念,可惜还没等我回过味来,我的硬盘又满了。看着BT站里他们在说着320G.. 500G…1T…2T…
琢磨着硬盘其实我们需要这么大吗,想想现在动辄上10G的高清电影,想想以前80MB的RMVB电影,真的好笑。有了资源后,我们就懒了,能不压缩就不压缩了,能无损就不有损了。
还是出手了一块320G的移动硬盘,兴奋地把自己所有的珍藏和绝版资料都存了起来,有一种踏实落地的感觉。
时间推移,320G也只剩下了100G了。
决定给自己打造一个好的平台和环境,需要一个大硬盘。终于,我也到了T时代。
800?拿到的15G,700拿到的80G,50拿到的20G,600?拿到的160G,今天430拿到了1T。最廉价的T时代。
从昂贵走到了白菜,IT走下神坛,
何去何从,
T时代,我们好好思考。
cygwin是一个有想法的项目,同时也是比较恶心的。
不提它硕大的安装文件和奇怪的安装方式。就单讲讲这个\r command not found
term运行时会自动调一次.bashrc,所以我自己留了一个关于颜色的bashrc。自然也会想在cygwin下用。
于是乎:
. .bashrc
提示 bash: $’\r’: command not found
很明显,这是dos(windows)下的换行符是\r\n而unix的是\n,这种冲突引起的。
怎么办呢,有人说用ultraedit来改。我试了试,没发现可以转换的地方。
再找,发现有仁兄说dos2unix可以用。
试了试:dos2unix .bashrc
提示: ./.bashrc: done.
哇哦,貌似可以。
. .bashrc 嘿嘿,可以用了。
第一种大众,第二种装13用。转载的。
一种是linux的实现,一种是Solaris的实现,代码如下:、
童鞋们好,昨天花了半小时琢磨了一下Widget的干活原理。今天自然就是来练手了哈~
我们写一个最简单的Hello world。由于会写的比较多(别被吓着了~),开玩笑的话我就不写了,而且今天也有点习惯性郁闷,噫…
好!开始我们的“需求分析”:
我要在侧边栏显示一句话,话的内容是在admin控制面板里自定义的。
需求分析完了(史上最短需求分析?哈~)
开始设计:咱就不玩软件工程那一套了,直接上手。
按昨天的教程说的,widget的widget()负责页面的显示,所以这个函数只要所内容取出来,再echo就好了。
但是由于需要在admin控制面板里先写好这句话,这就要求form()函数生成一个框,这个框里可以写文字。
这个框里的文字要能够保存(update())。
好啦,明白了?还是糊涂了?
看我继续~
————–Widget 注释部分——————
当然有点题外话,一个插件是有它的注释的。在admin面板里的plugin里你会看到有什么作者之类的,我们也得按着这个来:
/* plugin name: Bulletin Board
* author: AttaCKovER
*description: 练习用
*当然还有好几项,要想补全,大家就自己去看那些正规的widget吧~
*/ |
Read more…
大伙的看法