Archive

Archive for the ‘技术流’ Category

ubuntu11.10下samba的配置

December 11th, 2011 AttaCKovER 1 comment

在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就可以了。

Categories: 技术流 Tags: , , ,

使用PIL

September 3rd, 2011 AttaCKovER No comments

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确实挺好用的。

Categories: 技术流 Tags:

Ubuntu下,什么是衬线字体

July 31st, 2011 AttaCKovER 1 comment

在linux下,浏览器的字体看起来有点怪怪的,设置字体的高级里却显示衬线字体,无衬线,等宽什么的。
这些是什么呢,其实简单来说,艺术字体就是衬线,它在每一笔上都有些突起什么的。
而无衬线字体则相反,就是每一笔上就光光的,什么也没有。比如雅黑字体。在Linux中,serif就是衬线字体的意思。
Sans serif就是无衬线字体。而等宽字体是另一种类别下的,是指英文字体中,每个字母都是一样宽的。呵呵,这下明白了吧~

Categories: 技术流 Tags: ,

remote term英文显示成乱码的解决办法

December 1st, 2010 AttaCKovER No comments

说显示成乱码,其实是把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,中文乱码变成了英文显示

Categories: 技术流 Tags:

什么是类型转换

November 16th, 2010 AttaCKovER No comments

类型转换: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句名言之一做结束,”努力做好设计,但不要在设计时把聪明用尽,否则调试时就有苦头吃了。”

Categories: 技术流 Tags:

T时代的思考

July 17th, 2010 AttaCKovER 3 comments

今天去买了一块硬盘,西数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下dos换行符的问题

July 6th, 2010 AttaCKovER No comments

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 嘿嘿,可以用了。

Categories: 技术流 Tags: ,

itoa的两种实现

June 29th, 2010 AttaCKovER No comments

第一种大众,第二种装13用。转载的。

一种是linux的实现,一种是Solaris的实现,代码如下:、

namespace linux
{
void itoa( int i,char* string)
{
int power, j;
j=i;
for (power=1;j>=10;j/=10)                         // 求位数
power*=10;
for (;power>0;power/=10)                         //一格一格填数字
{
*string++=’0′+i/power; i%=power;
}
*string=’\0′;
}
}
namespace solaris
{
char * itoa(long n, int base)
{
register char *p;
register int minus;
static char buf[36];
p = &buf[36];
*–p = ’\0′;
if (n < 0) { minus = 1; n = -n; } else minus = 0;   //负号判断
if (n == 0)  *–p = ’0′;     //0判断
else while (n > 0) { *–p = ”0123456789abcdef”[n % base]; n /= base; }   //装13用,字符串数组的使用
if (minus) *–p = ’-';          //写个负号
return p;
}
}
Categories: 技术流 Tags: , , ,

zz学学SEO

June 10th, 2010 AttaCKovER No comments

在我们操作过的CMS中,基本上都千篇一律:前台生成静态HTMl、自定义页面和目录路径、还有keyword等,而功能上也大同小异,制作一个网 站也只是需要建个模板…也许这就是CMS的优势所在。但要配合SEO(搜索引擎优化)似乎还缺少点什么?

Read more…

Categories: 技术流 Tags: ,

WP微博计划 第二课 Let’s say our words in the widget!

May 17th, 2010 AttaCKovER No comments

童鞋们好,昨天花了半小时琢磨了一下Widget的干活原理。今天自然就是来练手了哈~

我们写一个最简单的Hello world。由于会写的比较多(别被吓着了~),开玩笑的话我就不写了,而且今天也有点习惯性郁闷,噫…

好!开始我们的“需求分析”:

我要在侧边栏显示一句话,话的内容是在admin控制面板里自定义的。

需求分析完了(史上最短需求分析?哈~)

开始设计:咱就不玩软件工程那一套了,直接上手。

按昨天的教程说的,widget的widget()负责页面的显示,所以这个函数只要所内容取出来,再echo就好了。

但是由于需要在admin控制面板里先写好这句话,这就要求form()函数生成一个框,这个框里可以写文字。

这个框里的文字要能够保存(update())。

好啦,明白了?还是糊涂了?

看我继续~

————–Widget 注释部分——————

当然有点题外话,一个插件是有它的注释的。在admin面板里的plugin里你会看到有什么作者之类的,我们也得按着这个来:

/* plugin name: Bulletin Board
 
* author: AttaCKovER
 
*description:  练习用
 
*当然还有好几项,要想补全,大家就自己去看那些正规的widget吧~
 
*/

Read more…

Categories: 技术流 Tags: ,