清泉逐流

做着努力,等待幸福到来
» 日志

对代码进行重写说不

时间 : 2013-04-13 22:15 标签 : 程序  

  一段从书中截取出来的文章,还是需要让自己读好多遍,避免犯下一些低级错误。

  在帮别人做网站的过程中,总会想方设法的将一些代码重用,但是很多时候总是事与愿违,总不可避免的进行机械式的“复制-粘贴-修改”,这样的工作相信每个人都不想去做。

  从上次决定对我自己使用的网站开发框架进行重写,已经过去了整整五个月之久,刚刚统计了一下代码,又已经写了有4万余行。这两天本来是没有太多的事,上次使用心得框架给这个博客添加了一个“骑行”的模块,现在运行的是两套系统,所以心里总觉得不爽,想着要不要把之前的日志、相册、作品都迁移过来重新做到这个新的框架之上。

  于是又看到了上面截取的这段文字,我不禁在想,我为什么要重写?现在这个不能满足我的要求了吗?还是说只是觉得心里的不爽追求完美?

  大概的就算了一下,从我帮别人做网站的第一个系统开始,自己使

查看全文 »

关于晚会/大赛大屏幕、声音、灯光效果的控制系统构想

时间 : 2012-12-12 00:26 标签 : 程序  软件  

  最近忙着准备期末的考试,最近忙着学习Python。

  老蔡说明年想搞个活动,类似歌手大赛什么的,问了我一些技术上的问题,主要是想到短信投票、互动的一些效果。

  于是查找了一些资料,先简单说说很可能用到的短信部分(给老蔡看)

  =================短信部分说明==================

  短信投票的刚开始考虑到了申请SP端口,但是考虑到诸多因素和复杂程度,估计这个不大现实。其次就是使用短信modem,短信modem是通过设备+SIM卡的方式收发短信。

  短信modem基本应该属于个人业务,也就是手机卡式移动给个人开的,可以用来做一些小应用不是不可以,但是性能方面明显靠不住。而短信网关是移动、电信、联通专门针对企业提供的服务,从发送质量,速度方面都有保证。

  两者的差别:

  速度:SIM卡是通过无线信号发送信息

查看全文 »

关于Windows与Linux下32位与64位开发中的数据类型长度的一点汇总

时间 : 2012-02-20 22:38 标签 : Windows  Linux  C  程序  

  32位与64位的数据类型长度是不一样的,而且windows和linux也有些许区别,下面把64位下的数据长度列表如下(无符号unsigned和有符号的长度一样):

linux64 windows64 linux32  windows32 char 88 8 8 short16 16 16 16int 32 32 32 32long 64 32 32 32long long 64

查看全文 »

for循环和while循环的效率探究

时间 : 2011-12-05 11:19 标签 : 效率  程序  C  

  先说说for循环:

  for(int i=1,n=tempUser.length;i <n;i++)与

  for(int i=1,;i <tempUser.length;i++)相比较,性能有较大的区别吗,有必要采取这种写法吗,

  习惯for(int i=1,;i <tempUser.length;i++),而且并没有发现两者的性能有较大差别,

  我当即就测试了一下,发现果然性能比较起来差别很小,甚至后者更高效一点。

  虽然得出这样的结果,但和自己心里想的确完全相反的。所有当然就回复说差不多。

  今天又发现一位前辈的blog中正好有对这个帖子的回应。他做了测试,内容大致是前面的帖子的问题应该是差不多的,但是他又更深入的进行测试,得出:在有情况for(int i=0;i<a.b.c.length;i++)的情况的时候,使用for(int i=0,n=a.b.c.length;i<n;i++)更加高效。

查看全文 »

整型数据、实型数值、双精度实型、单精度实型

时间 : 2011-12-04 22:26 标签 : C  程序  

  整型数据(integer       long)  

  Integer和Long型数值都是整数,用户有定义某一变量为整形变量后,给这一变量只能赋予整数。整数要比浮点数运算速度快并且占用内存少。Integer型的数值有一定的范围,-32768~32767,如果超出这一范围,就要用Long。  

  实型数值(single     double)  

  单精度(Single)和双精度(Double)型数值即为浮点数值,它表示的是带小数的实数。单精度型能精确到七位,而双精度能精确到15位。用户在选用这些数据类型时,要注意变量所取值的范围。并且数值为整数时,为了运算速度,不用把变量硬定义为浮点型。对于大的浮点数,可用D,E格式输入输出。

  双精度实型   double

  单精度实型   float

查看全文 »

UTF-8 GBK UTF8 GB2312

时间 : 2011-11-24 19:11 标签 : 程序  

  UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到的字符,是国际编码,通用性强。UTF-8编码的文字可以在各国支持UTF8字符集的浏览器上显示。如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,他们无需下载IE的中文语言支持包。   

  GBK是国家标准GB2312基础上扩容后兼容GB2312的标准。GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBD大。   

  GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换:   

  GBK、GB2312--Unicode--UTF8   

  UTF8--Unicode--GBK、GB2312   

查看全文 »

下载HTTP文件(字节流和字符流)

时间 : 2011-11-21 10:29 标签 : 程序  HTTP  

  文本文件(字符流)

  String urlStr="http://www.eamonning.com/index.php";

  URL url=new URL(urlStr);

  URLConnection urlConn=url.openConnection();

  //可以通过url和urlConn获取很多关于下载文件的信息

  //Host:url.getHost()

  //Port:url.getDefaultPort()

  //ContentType:urlConn.getContentType()

  //ContentLength:urlConn.getContentLength()

  //...

  InputStream is=urlConn.getInputStream();

查看全文 »

Ini配置文件的基础知识

时间 : 2011-10-28 21:51 标签 : 程序  

  INI是微软Windows操作系统中的文件扩展名(也常用在其他系统)。INI是英文“初始化(Initial)”的缩写。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参数设置。

  其格式如下:

  节

    [section]

  参数

    name=value

  注解

    注解使用分号表示(;)。在分号后面的文字,直到该行结尾都全部为注解。   ; comment text

  这样一个ini文件就可以存储应用软件的一些配置信息等内容,可以很方便的调用windows操作系统的GetPrivateProfileString和WritePrivateProfileString API函数来进行ini文件的读取和存储。

查看全文 »

RGB值转换为灰度值的算法

时间 : 2011-04-08 22:17 标签 : 程序  

  使场景或精灵以灰度的形式显示,这是一般游戏制作中常常用到的效果,如:战棋游戏中当一个角色被使用过后,通常就会变成灰色,代表本回合已不能行动了;《仙剑》中回忆彩蝶的部分是用整屏的灰色来表现的?(记的不太清楚,太久了^_^);还有很多很多例子……

  将RGB值转换为灰度的过程应该是在程序中实现的(至少我是这么认为的)。其实这是非常简单的,基本原理就是将一个点的RGB值分开来求和,然后除以3,把得到的值再分别付给RGB,用公式表示如下: 

  R = G = B = 0.3R + 0.6G + 0.1B; //第二版改正后的公式

  在实际编程应用中又可分为8位、16位和24位三种情况,下面进行一一介绍:

  一、首先说最简单的24位点的转换,24位点的RGB均匀分布,所以分离和合成都较为简单,代码如下:

  

  //=======24位转换============

  int gMa

查看全文 »

一些常用的正则表达式

时间 : 2009-05-24 16:35 标签 : 程序  正则  

正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^\x00-\xff]

评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:\n\s*\r

评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />

评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^\s*|\s*$

评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配

查看全文 »
» 日志标签