2012年2月27日星期一

swfupload和asp.net接合需要注意的问题

如果直接运行官方所给的示例是能够成功运行的。但如果想运行在“无dll”文件的环境里面还需要注意以下几点:

1、页面session和flash session是不相同的,所以在操作的时候还要把Global.asax里面的内容放到工程下。因为这个示例是将上传的图片存放到内存中的,所以每次都要从session中取信息,如果不在request开始前进行操作,页面跟flash取到的是两个不同的会话,这就会成就图片上传成功,但看不到上传的内容。

void Application_BeginRequest(object sender, EventArgs e)
    {
        /* Fix for the Flash Player Cookie bug in Non-IE browsers.
         * Since Flash Player always sends the IE cookies even in FireFox
         * we have to bypass the cookies by sending the values as part of the POST or GET
         * and overwrite the cookies with the passed in values.
         *
         * The theory is that at this point (BeginRequest) the cookies have not been read by
         * the Session and Authentication logic and if we update the cookies here we'll get our
         * Session and Authentication restored correctly
         */

        try
        {
            string session_param_name = "ASPSESSID";
            string session_cookie_name = "ASP.NET_SESSIONID";

            if (HttpContext.Current.Request.Form[session_param_name] != null)
            {
                UpdateCookie(session_cookie_name, HttpContext.Current.Request.Form[session_param_name]);
            }
            else if (HttpContext.Current.Request.QueryString[session_param_name] != null)
            {
                UpdateCookie(session_cookie_name, HttpContext.Current.Request.QueryString[session_param_name]);
            }
        }
        catch (Exception)
        {
            Response.StatusCode = 500;
            Response.Write("Error Initializing Session");
        }

        try
        {
            string auth_param_name = "AUTHID";
            string auth_cookie_name = FormsAuthentication.FormsCookieName;

            if (HttpContext.Current.Request.Form[auth_param_name] != null)
            {
                UpdateCookie(auth_cookie_name, HttpContext.Current.Request.Form[auth_param_name]);
            }
            else if (HttpContext.Current.Request.QueryString[auth_param_name] != null)
            {
                UpdateCookie(auth_cookie_name, HttpContext.Current.Request.QueryString[auth_param_name]);
            }

        }
        catch (Exception)
        {
            Response.StatusCode = 500;
            Response.Write("Error Initializing Forms Authentication");
        }
    }
    void UpdateCookie(string cookie_name, string cookie_value)
    {
        HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(cookie_name);
        if (cookie == null)
        {
            cookie = new HttpCookie(cookie_name);
            HttpContext.Current.Request.Cookies.Add(cookie);
        }
        cookie.Value = cookie_value;
        HttpContext.Current.Request.Cookies.Set(cookie);
    }

当然,另外还需要通过ASPSESSID参数将sessionid传递给服务端


post_params : {
    "ASPSESSID" : "<%=Session.SessionID %>"
},

2、如果将Thumbnail.cs的内容改成Thumbnail.txt然后分别引入到upload.aspx和thumbnail.aspx中,也会造成问题,因为两个页面对应是并不是同一个类,所以会造成转换失败同样取不到所上传的图片。解决方法可以是将upload.aspx和thumbnail.aspx两个页面的内容合并,也可以是使用App_Code。

3、将文件保存目录中,通过Directory.Exists来判断目录是否存在,通过Directory.CreateDirectory来创建目录

HttpPostedFile file_upload = Request.Files["Filedata"];

display_file_name = file_upload.FileName;
file_size = file_upload.ContentLength;

string dir = DateTime.Now.ToString("yyyyMMdd");
string filename = DateTime.Now.ToString("yyyyMMddHHmmssfff");

string serverpath = Server.MapPath("file/") + dir + "/";
if (!Directory.Exists(serverpath))
{
    DirectoryInfo dirinfo = Directory.CreateDirectory(serverpath);
}
string ext = file_upload.FileName.Substring(file_upload.FileName.LastIndexOf("."));
physical_file_name = filename + ext;
physical_file_path = serverpath + filename + ext;
file_upload.SaveAs(physical_file_path);

4、在用input file模拟时,还要记得在form的提交方式

<form id="form1" action="upload.aspx" method="post" enctype="multipart/form-data">

5、补充一下html头部的信息写法

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta name="author" content="tohours.com" />
        <title>后台管理登录</title>
    </head>
<body>
</body>
</html>

2012年2月24日星期五

如何在aspx文件中自定义类,自定义方法

一直知道jsp是如下的定义方法:
<%!
public string f(){
retrun “hello”;
}
%>

用“aspx 定义方法” “aspx 定义类”来搜索一直不得要领,突然间看见了<script>我才愰然,竟然不是前台脚本,竟然就是定义方法和变量的地方,我搜索了这么久只能说苍天啊,大地啊……
<%@ Page language="c#"%>
<%
System.Web.HttpContext context = this.Context;
int i = 1;
context.Response.Write(i + a() + Test.hello());
%>
<script runat="server">
public string a()
{
return "hello";
}
public class Test
{
public static string hello()
{
return "static, hello";
}
}
</script>

一定要找到这些的原因是现在一些旧项目,原来的代码与开发环境都找不到,唯一能看到的就是页面了。而php或者jsp都有保存文本代码的能力,于是我想aspx也有这个能力,功夫不负有心人,这样我又可以只用notepad来写.net程序了,爽啊

当然还要再配上include,这样就可以单独定义公共方法了
<!-- #include file="head.aspx" -->

2012年2月23日星期四

iphone使用农历

如果你不是一名开发者,能使你完全满意的软件基本上不存在的。就像我现在,始终找不到一款能够完美支持农历的在线日历,google calendar的web端做的最好,也可以设置另外写好的农历来查看,但无奈2012年的农历插件没有更新,我这里也就没办法显示了,悲剧啊。所以需要再找一个能够替代农历的工具。当然iphone有很多日历的客户端软件,有些是相当不错的,但可惜的是,web端做的不够强大,而且都是一些小公司,数据的安全性也备受质疑。QQ邮箱里面很早就推出了一个农历的提醒的功能,还支持手机短信,今天就查了一下QQ跟iphone的同步,设置了一下日历的同步,这样平常的事情和待办事项都可以在google calendar中完成,一些农历生日的问题就交给QQ提醒来完成了,还算是一件很惬意的事情。

在更新Exchange的时候,我将Google账号删掉了,所有通讯录中的信息也被我给清空了,我想反正还可以从google中同步回来。但悲剧的事情发生了,我再次加上google账号时,通讯录里面只有50个联系人,而我原来总联系人是410个呢。急忙查了一下gmail通讯 录,还好,所有人的联系方式都在,于是再次删除,又同步了一次才算成功。腾讯的农历提醒功能并不是一件一劳永逸的事情,因为有关农历的问题要经常人工来更新才可以,虽然60年一个轮回,但要一个用户存储60年数据是没人愿意干的。

2012年2月22日星期三

iphone中常用几款软件推荐

我不是一个游戏爱好者,所以手机的游戏软件不是太多,由此也常常被人“鄙视”拿着iphone浪费。但我试用了一下android和ios的几款相同的软件,如果再次让我选择,我可能还是会选择iphone的。

1、新浪微博:在这个微博重于QQ的时代,这款软件已经成了我的必备,每天时不时刷一下微博了解新闻动态成了一件常事。

2、Weico Pro:虽然不是官方客户端,但其用户体验性常常领先于官方应用,但这款软件是收费的,所以要想使用免费的版本,还需要将自己的手机“越狱”

3、有道云笔记:虽然网页版的功能非常的少,但不能否认他在iphone客户端做了很多工作,支持手写,涂鸦,拍照和相簿笔记。如果是简单的同步一些文字的话,他可以说是首选的一款文字同步工具。

4、QQ输入法:就像我现在的PC一直使用QQ五笔输入法一样,我的手机客户端也渐渐的转向QQ的五笔输入法,当然可能限于键盘的大小原因,使用起来不会想PC一样流畅,但打字的速度已经超越了拼音,因为大部分时候,你想用拼音输入法打更多的字使用的是全拼,而不是简拼。另外他也支持手写,标点符号在键盘的位置也相当的舒适。

5、Safari:之所以这款系统软件也拿出来说是因为他是我用iphone最重要的一款软件,也是有可能把其他软件统统消灭的软件。因为html5大行其道,替代本地应该是一件早晚的事情。

6、腾讯爱看:被我评为最好用的一款RSS订阅器。虽然默认会订阅一些腾讯自己的东西,但这一点也不影响其易用性,其配合google reader是一个非常完美的搭档。

7、百度地图:在塞班系统的时候,我已经开始安装google地图了,其最开始推出手机定位功能时,令我兴奋不已。但由于谷歌始终没在中国立住脚,测绘不准,定位也不是太准,于是就选择了百度地图。再加上百度地图现在也支持离线地图了,这样更省流量,如我把上海的地图全部下载下来有100多M,以后直接查看就能省不少流量。不管谷歌地图还是百度地图,这类服务出行必备。

8、Nike+Pro:我上一篇已经说过了,它能够记录你的运动路径与速度,是个人锻炼的好工具。

9、上海地铁:信息虽然不是很全,但查找地铁换乘正常是很方便的。当然如果有车了以后,这个可能就不需要了,因为就更需要一款导航软件,推荐高德导航。

10、掌上猫扑、凯迪社区:两个社区软件,基本上我常上的两个社区,但大部分时候都会使用Safari来上,只有一些特殊的图片看不了才会选择使用他们。天涯是我不太喜欢的一个地方,关键原因他太封闭,不登录不能看;太功利:不给钱不让直接看楼主。虽然有很多信息也出之那里。

11、米聊、微信:因为放弃QQ,所以微信用的也比较少,再因为微信是抄米聊的,于是对微信的好感也少了很多,但两款软件的功能几乎是差不多的,加上微信的用户比较多,所以渐渐米聊落在了后面。

12、大众点评:吃饭总找不到地方,在上海,大众点评还是比较好用的,不管你在哪里,他的推荐都有一定的参考价值。

13、金山快盘:同步文件最常使用的软件,在PC端也是开机启动的一款软件。由于DropBox不能在国内使用,只好在国内找一个替代的软件。

14、QQ阅读:TXT阅读效果还不错,但升级以后,看不到以前的效果了,翻页的速度确实快了,但感觉生硬。以前的那个阅读器去哪里了?同样,iBooks也是我每次都装的,因为有一些pdf文件还需要它来打开,不过由于他体积比较太,使用的机会少了很多。同样的阅读,Stanza是目前使用比较多的一款网络软件,主要功能是可自定义源。

比分中的“比”

受“老潘”每天跑步的影响,上周去苹果店的时候,看了一下Nike的感应器,就花了149大洋买了下来。买了感应器还不能算完,还要有Nike鞋子才能配的起来,由于这个条件我一直到现在都没能够用起来,还在朋友那里帮忙赶制“带”子呢。

老潘后来又发布了Nike + GPS,不需要那个感应器了,直接手机就可以记时,顿时我想打了“鸡血”一样,一定要把这款软件装上试用一下。本来我升级的IOS5.0.1后一直没有“越狱”,为了这款软件不花钱,我还是决定先把手机“越狱”了。装上了他以后另外又把weico,收音机闹钟等免费软件都变成收费的了,折腾了一两天时间才算搞定,又装了两个同事十分推荐的高德导航。唉,到最后一看,我手机的空间只剩下1G了。

折腾了这些天,主要还是要试一下Nike+GPS,出于什么原因,自己太胖了,缺少锻炼?是一个原因,但觉得如果自己真的是喜欢运动,跟你装不装一个软件没多大关系。明人效应?也是一个原因,因为老潘在用这个东西,每天都在发布自己运动的记录,让人想跟他比一下的感觉。但前两个都不是原因的本质,本质是我们需要在运动中进行“比”,“比”的概念如何呢?

首先,现在的人都在“比”中生活,我们跟身边的人比,不比我们就没有存在的意义了。比谁的工作好,比谁的房子大,比谁挣的钱多,比谁的名气大。“比”在我们生活的方方面面,而作为你为身体健康的运动则没有比的对象,你不可能跟刘翔比较谁跑的快,他不但跑的快,还能越障碍奔跑呢。所以你就没有动力去做这件事,而这款软件恰好了满足了自己的好胜心,你可以跟自己比,也可以拿出来跟网上同样为身体健康而锻炼的人比较,还可以记录自己的路线。首先,好奇心就可以让你坚持三天,再则,你会想人每天都要进步,进步的比较对象不是别人,而是历史的自己,于是翻出自己以前的跑步记录,就可以看到原来如此

他还有一个功能,是能够指出你消耗的卡路里,这是一个比较“功利”性的功能,就像跟你说,你跑100米,你能减掉多少斤。你做这件事情,能你多路几个馒头一样,太功利,而且准确性有待考查。

我前面说过,普通人都是在“比”中生活的,在身边几乎找不到不用“比”也能生活的人。具体到每件事,大部分人也都拿着一个“比”的心态,就像我们读书时的学习排名一样,你是第几位。可能很多人由于自己的成绩不理想,不想说出来,于是帮作深沉,变成我们所说的城府很深的人。我作为一个普通人,也逃脱不了这样一个规律,总是在比较自己跟普通人的差别,哪些地方做的还不够。即使在学习专业知识的时候,也是一种“比”过去的自己更好 的心态,拿到更高工资的心态,买更大房子的心态,让父母更有面子的心态,让朋友更多的心态,让陌生人有更多仰视的心态。做这些事情都是有其功利性的。有些人说做慈善的人呢?同样是在比啊,他们都在比谁的钱更多啊,当然这不是一件坏事,就如一个蹬三轮的老人拿着自己毕生的几十万元钱捐助学生一样,留给人的是感动,同样他也在比是谁做的慈善一更多,得到的名声更好。当然他做到了以物质生活换名声的转换,这是现在这个社会的一个主流思想,容易受到赞扬,如果哪天社会风气不是这样了,变成了人人都要自食其力,而不是接受别人的捐增,甚至把捐增列为可耻的地位,那么我想这位老人的选择又会有新的变化。

最后学得说说这款软件,利用GPS实时定位你的位置,测量你运动的距离,测量的还算是很准的。记录你行进的路线,但不知道是由于什么原因,跟地图上的显示有点错位。同样如果这款软件能够带给更多人健康的话,是成功的。

 

2012-02-22 14.18.09_060

 

2012-02-22 14.18.07_647

无所事事

这几天没什么事情好写,因为是在做整合代码的工作,比较无聊。把别人的代码整合到一起,遇到的问题就比较多,而这些问题基本上都是一些逻辑不清楚的问题,所以没有技术方面的难点。

过两天可能去海南一次,这种事情知道的人当然越少越好,因为有些钱该花,有些钱不该花,这可能就属于不该花的范围之内吧。

2012年2月17日星期五

研发平台的人与事

现将目前(时间:2012年2月17日 10:16:23)我对平台的所有人的感触记录下来(按通讯录上名单):

可能我还能全部把这些人的名字记下来,有时候还会出现短路的情况,但如果看到这个名字,对这个人的印象是清晰的。也许多年之后将会渐渐模糊起来,就像现在的初中同学、高中同学、大学同学一样。

谭瑞琮:我们中心主任,是我们这里最大的小领导吧。跟他的接触到目前为止还不是太多,因为是领导,所以也不太好拉下架子跟我们这些新时平台的人交流。看过平台宣传片上他的讲话,平衡而有腔调,也偶尔听到过他关于平台发展的一些讨论,算是比较有想法的一个人。参加组织会议的时候没见过他出席,猜测他不是中共党员?但不是党员能做到中心主任也还是不错的,复旦大学毕业生,应该算是高材生一类的人吧。年轻有朝气,但总感觉不应该在平台这样一个没有发展潜力的地方做事。

何海林:中心副主任,党支部书记,科恩迪的总经理。可能是年龄的关系吧,待人还是比较随便的,见过他的儿子,跟我们年龄差不多,在澳州留学。作为支部书记,每次组织会议都会参加,但支部会上发言比较老套,没有什么新鲜力。作为科思迪的总经理,经常需要他为我们的报销签字。据说对员工的奖罚不公,偏爱某些人,总把某些人的事情挂嘴边,当然某些人也经常讨好这位领导。个子不高,单独两间办公室,走起路来装作蛮有派头的样子。背后会遭部分人员的非议

朱悦:中心副主任,跟我们员工走的最近的一件领导,也是我最熟悉的领导之一,也是我在平台最熟悉的人之一。说话没有领导派头,跟上也经常出脏话,但一般是开玩笑性质的。经常中午领导我们三国杀,是平台嗓门最大的人之一。刚才还在我边上跟小刘讨论问题,哈哈大笑。我被招进平台的原因之一也是他跟我相对比较熟悉,三国杀水平不怎么样,但做事还是有一定的能力。他家信虹口,所以有时活动完毕回家他会开车捎我们一程。作为领导,不但要跟下属的关系要融洽,还要有一定的领导能力。这点上他做的应该算是中规中矩,平时参加一些会议的时候还是有自己独特的见解,能够抓住会议的重点。当然在平台这样一个大环境下,可能以后也难以有更大的发展了吧。由于肯跟普通员工接触,所以在员工的口碑还算不错,目前为止没有听到过有员工对他有不满的情绪。平时应该注意身体,体重是一个问题

赵燕:办公室主任,比较为中心着想的一个人,从开始跟他讨论工资的时候就能够看的出来。可能在平台的时间比较长,所以很多事情都是以中心的利益为重。昨天刚跟他讨论了关于我公积金和社保的问题,感觉她有时候比较“看不起”我们的计算能力。比如,她说:别的公司是每年工资增加一千,而我们是根据表现,三年后直接加三千,这是一样的。比如她又说:按1W和5K标准交公积金,公司不会少为你交的。但有时候真搞不清楚这是她计算有问题还是我理解有问题。她跟陈美是单独的办公室,所以每次去那里就好像读书的时候进老师的办公室一样,其实现在想想真的没什么必要。其他同事对他的议论还是比较多的,比如,我刚来的时候,他曾经跟我们说,有些人早上早来一时候,晚上就可以早走一小时,举了小蔡的例子。后来我心里一直装着这个事情,如果早来早走就可以错过上海的上班高峰了。但后来经小蔡证实,早来是有的,早走是不可能的。这说明她对我们说谎了,具体什么原因不清楚。其他同事也不单单说某个人不好,就说办公室的人说话不靠谱,说是一套,事实上又是另外一套

朱丽娜:中心财务,进入中心以来,领补贴都要跟她打交道。她也是我认识比较早的人之一,当时她跟他老公一起跟我们打球。后来加了她的微博,“被动”接受了很多关于她的消息,好像感情不怎么顺心,前一段时间党员刚转正,我了解到她是上海大学毕业的,跟小叶一个学校。

宋滔:中心接触最早的人之一,也是最不熟悉的人之一;他的主要工作是中心的管家,需要一切办公用品都可以找他要。但他给人感觉不那么近人情,不谈论自己的事情,说话相对刻薄,到处见他身影但很少跟他交流。大家表面上都叫他滔哥,实际上也只是个熟悉的陌生人罢了

袁晓霞:公司财物助理,跟朱丽娜一个办公室。人小小的,第一次有印象是在一次篮球活动的聚会上。待人很好,说话和气。

陈美:办公室职工,在万达的时候一直把她跟赵燕弄混起来,但通过了解后才知道,她们两个性格差异非常明显;赵燕相对做事说话比较利落,陈美总给人感觉比较啰嗦,但对人很有礼貌,即使啰嗦你也挑不出什么毛病。这也可能是他现在还没能升上去的原因吧。

卜云、邵士良:两位司机师傅,说话不多,跟我们坐在一起,这样还比较人性化一些。

朱金鑫:名字上“金”字最多的一个人,属于发展管理部,比较老资格员工,万达的时候没什么交道,一次体检的时候跟她同走一段路聊了蛮长时间。好像是离过婚的人,家住川沙浦东机场方向,每天上班都要好长时间,现任老公是东北人。中间有一段时间看到她大肚子,我进平台以后才休完产假回来上班,那次体检的时候还没开始正式上班,聊了一些关于工作与年轻人冲劲的话题。

王渭:跟万达邬吉萌接触比较多的,记得当时她跟邬,我跟沐宏都是业务上来往比较密切的人。所以对他的印象主要集中在她跟邬的业务交流上而。但2012年年会 的时候知道了她的另外一面,特能喝,也特能聊,整体还蛮能让人亲近的人。这种跟宋滔就形成鲜明对比,一个拒人于千里之外,一个能跟你交心。

郭新荣:只记得永远带着微笑,年会上得到的奖项不少,优秀员工,拉到的项目比较多。

孙华:小吴(吴弼人)的干妈,一直称小吴是自己儿子。微博达人,徐老师情人。有两个女儿,在万达的时候曾带过去跟我们一起参加活动。特能聊,也能开玩笑的一个人。为人开朗,大方。经常微博上互动,也拉到一些项目,和徐老师传出一些绯闻。有事没事来徐老师这里转一圈,站在他面前被我们调侃。

张贵红:小红,朱领导的专职“司机”。其实他并不是司机,只是给朱领导开车的多了,所以我们都称他是朱领导的专职司机。跟他接触比较多的是每周四的篮球活动,昨天还刚跟他打完篮球,具说他打到了6:30以后,我是6点钟左右走的。人比较老实,说话也比较少。

胡寅:拔河比赛时第一次对她有印象,那时她 已经来中心半年多了。跟小红算是一个性格的人,为人比较内向。年会的时候运气超好,抽到一等奖,还有其实优秀员工什么的奖项。曾经用我移动硬盘移动过她电脑里的资料,所以我硬盘里面还有她结婚时的照片。年会上比较失望的是他竟然不知道我到底是姓聂还是姓叶,她搞不清楚我和小叶的姓氏。

方皓:我们部门的老大,我能来平台也是他的游说。他是一个说多做少的人,涉及面也非常广。技术的知识面比我广,但某些知识的深度不如我。他也没有兴趣去研究每项技术的详情,这样倒是给了我们机会,我们可以研究更多的知识,用跟技术相匹配的硬件设施,而这些硬件都由方皓来搞定。但是他的领导和项目管理能力着实另人怀疑,我们手上现在有很多项目,他并不能人尽其用。我目前很多时候都做着不适合我做的事情,而另外一些时候空闲下来。我做自己喜欢的事情是事半功倍,而做自己不喜欢的事情是事倍功半,前后相关4倍呢。这种现象告诉我也对工作的热情不高,其中一点不能不说是方皓的责任。

徐旻昕:上下班都一起走的人,为人比较低调,也深得领导的赏识,当然也是

不能承受之重

也许有些问题一辈子也没办法想清楚,比如我们说以集体利益为重,那么我们所谓有集体范围是多少?我们说有些特自私,自私的表现又在哪里?

小时候有一年的正月十五晚上,每家都会拿自己的烟花出来放,这是每年的传统。当时我拿着一把(十根)归明弹出来。不知道我当时处于什么考虑,由于我自己不敢放,于是就把它分给了好多邻居来放,但就是不给我哥哥来放。那里还不知道什么是自己亲近的人,于是被妈妈说了一通,他是你哥哥,你应该给他放才对啊?这句话记得特别的清楚;后来又想不对啊,既然哥哥是自己亲近的人,危险的事情当然不能给他做了,于是心里坦然。后来学习了做一个人不要太自私,又想到这件事,那么我这样去保护哥哥算不算自私的范围,于是又不安起来,好像自己又做了一件不可原谅的错事一样,再后来我又想到集体的范围在哪里?于是一切又淡然了

我认为,“自私”是人的天性,这个所谓的自私就是指一个个体范围内。我们都有自己的需求,一个国家不仅仅要表现得表面繁荣,还要让每个公民有幸福感。国家强盛是虚的,个人富有才是实实在,每个个体都富有了,国家表面繁荣也就不用再苦苦追寻了。

于国如此,于人亦是如此。每个人都不要把自己的需求寄托于跟自己有关系的其他人身上,即使你已经为此付出过很多,因为这样会造成别人不可承受之重。不仅是理想,任何人都要有自己的生活目标,而这个目标不是建立在别人的痛苦之上。只有每个人都有了自己生活的目标,每个人都有了自己的幸福感,才不会受另一个人生活状况的影响,才能够对所有的事情泰然处之,同样另一个人也就能从这种重压下解脱出来。

2012年2月13日星期一

CodeIgniter初始化需要调整的文件

使用CI开发时,需要对原来的框架配置文件做少量调整,以便我们使用。由于开发时间过长,现在只能从svn调整的记录里面来找到这些东西,可能有些地方一时记不起来为什么要调整了,记录下来下次初始化时好用

1、autoload.php,加载我们需要的选项,共有两个需要调整的地方

image

2、config.php两个地方,上面用来固定路径,后面用来加密

image

image


 

3、database.php,根据自己的数据库配置情况来调整

image

ORACLE配置示例:
// oracle
$db['default']['hostname'] = '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =host.name.or.ip)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = service.name)))';
$db['default']['username'] = 'username';
$db['default']['password'] = '111111';
$db['default']['database'] = '';
$db['default']['dbdriver'] = 'oci8';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

4、routes.php将默认的首页进行调整(可选,一般不建议调整成index)

image

另外,如果是配置oracle数据库,请将system\database\drivers\oci8\oci8_result.php文件修改一下,不然会报警告

image

5、子目录配置htaccess方案

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteBase /sppt/

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ ./index.php/$1 [L]

</IfModule>

6、在每个controller前加上这段代码
function __construct(){
parent::__construct();
}

 

7、开启apache的rewrite模块
#LoadModule rewrite_module modules/mod_rewrite.so

2012年2月12日星期日

给自己一些“压力”

在学车的时候,看到有人说,开车时有一点紧张是最佳的状态。他的意思是说,一个新手开车完全不紧张是不对的,过于紧张也是不对的。我也赶忙对号入座,觉得自己目前的车技就是开车时有一些紧张的状态。

大约一年前的时候,我拿着从同事那里借来的大部头《鸟哥的私房菜》linux基础篇,在拥挤的地铁上认真研读,虽然很多时候车上的人都不能让你把书完全伸展开来,虽然有时候连掏出书的机会也不太多,但我还是坚持每天把他放到书包里,因为我知道一旦放弃,就不知道下一次会是什么时候再拿起来了。但遗憾的是,看完了shell编程以后,还是把那本书给还了,但这段时间的知识积累为我后期的服务器管理提供了扎实的基础。

同样,后来我又买了很多书,大部分都在我的办公床上“睡觉”,尽管我每天的真正干活的时间不多,但我也不想拿着一本书在那里正经的看上一眼,而当初买它们的时候可是想的好好的。如果当初能够继续Oracle培训的状态,如果能够继续正则的学习,如果能够进一步深入js的学习,也许现在的我又是另外一个境界,而不会永远只在入门的边缘,虽然我号称以知识面宽广而“闻名”

越来越发现在电脑上深入阅读是一件困难的事情,电脑适合的是查资料,我们可以通过搜索找到我们不知道的知识,但如果让你深入学习一样技术,或者了解一件历史事件,电脑显得那样的力不从心,我们在网络面前是那么容易迷失方向……所以现在出现的“厕所阅读”的现象——给你印象最深的是你在厕所阅读的东西,即使是初期的厕所广告,到后来手机阅读。网络的诱惑性太大,而最后的结果是在浪费时间。你可能一上午都在刷新你的微博页面,而当你总结上午所能列出来的成就时,你会发现,其实上午我什么也没干,同样,让你总结一天的成就时,你会发现其实我一天什么也没干。

春节回家的近10天里,上网条件不好,跟别人一起找别的方式消遣,但一遇到需要网络的时候,利用网络的效率绝对是令人瞠目结舌的!就连赶火车的空隙都不忘写下千字记事,可见天天面对网络却做不出什么成就来是一件多么可悲的事情。也许可以责怪是网络的诱惑,但到底是自己的自控力不够罢了。

曾经想过,每次上网的时候都能定一个目标,这样就不会迷茫于网络中的事情。我现在很会“跳跃”性思维,可能就是得“益”于网络——每次别人跟我谈论这件事情的时候,我总在想着另外一件事情,这是一种思维障碍。设定目标有助于改变漫无目的浏览网页的习惯,甚至有时候一遍遍刷新某个页面而不知道自己接下来又要做什么

认真实在一件事情是令人愉快的,比如认真读完了一本书,认真完成了驾照的学习与考试,认真做完了一个工程。但认真完成的过程不是那么轻松可以实现的,所以这就是一个冲突的地方。冲突的原因是兴趣,如果你有兴趣,你可以很快完成,那怕是需要花钱的,如果你没有兴趣就是比较痛苦的一件事情了,因为你会很抗拒这件事情的发生。但最终我们还是要花时间完成的,为什么不早一些时间呢?

对自己的要求从来不会减少,但真正能做到的从来不会太多,我了解我自己,只能这样碌碌无为一生罢了

2012年2月11日星期六

忽悠

出生以来,我见过的忽悠也不计其数,但像今天这样的真是少见,有点要把我肺气炸的感觉。

上几周有一次,教练不让我们去练车,我问了为什么,他就跟我讲了很多,说什么现在考试的人比较多;其实刚开始的时候是解释也没有的,只说我居住证有问题,这周的练车就取消了。刚好在此的前一周我要求周末加一天的课,他们说人多,下次有机会的时候再给我加。这些都是听起来很好的事情,但你应该明白他们每次都能以各种不同的借口不让你来学车。我当时的想法是每周一次的学车时间已经很少了,如果连这样都保证不了那以后怎么考试,于是就多说了几句,刘教练就跟我忽悠,但态度还是可以的,最终的结果是同意那周不去。但由此,这个姓刘的教练也在他的心里打了一个结。这个事情后的几周一天,他突然跟我们说,没有开班的学员现在都是非法学车的状态,碰到突击检查的时候,请配合一下——我一听就知道,这是针对我的,现在有了一个很好的借口,你现在没开班,我想什么时候说检查的会来,检查的什么时候就来了;我想那天不让你学车,你那天就最好别来学车了。但我知道根本就没这回事,因为我看到其他教练组的人该来的还是来,只是现在寄人篱下,没必要把这件事情挑明罢了。

经历过上次事后,刘教练始终对我有异样的看法,也可以认为是我对他有异样的看法。我一直不喜欢他的做法,时不时的跟我们吹一下他自己的“事迹”,也不喜欢他的教学,也就是这几次才接手我们学车罢了。同样,今天是另外一位姓陈的教练来接我们,到了共富新村,练习了约半小时,就启动去了长安驾校。今天三辆车上有两位要去模拟,上午的时候,刘教练就把车停在路边,让我们练习排档(百米加速要用到的),其实就是让我们在那里呆着,他们进去模拟桩考,也没告诉我们多少时间,我们也不便于擅自发动他的车。于是只好在车里面想像着百米加速的样子,练习排档,无聊至及,整个上午就这样过去了。到他们出来的时候大约是10:40的样子,我想如果11:30吃饭的话还有一个小时的时间来练习,因为一周毕竟只有这么几个小时,下午一般很早就放了。没想到,刘教练看时间差不多要吃饭了,就开始他自己的忽悠技术,突然说今天看到新的规定,对考试进行改革了,每次放进去车的间隔由原来的3分钟变成现在的1.5分钟,如果前一辆车出现问题,很有可能造成后面的人超时而不能通过。这本来是一个正常的讲话,介绍完以后也就行了,但他非得把这场考试描述的很难很难,还一脸委屈的样子说现在不是在考学员,是在考我们教练,又把以前重复的话123 321描述了起来……我知道上午学车时间肯定是没有了。从6点多就开始准备来学车,整整一个上午四人只练习了30分钟!重点还不在这里,你以为我们刘教练跟我们发这些牢骚是为了我们好?错了,他最后会加上,我会尽量想办法让你们的通过的。什么办法?当然是作弊,作弊就要花钱,前一次去的时候,小路作弊考出来就直接扔给他600块。也就是说,这样的学车你是不需要去的,只需要到时教600块就行了(具体的钱数我不知道,但倒桩加小路全部的价格是600)。其实现在你们练习的一切都是假的,到时候你们只要交600块就行了。不交?呵呵,跟你说,我们刘教练的本事可大了,既然可以让你过,同样能够关掉你。到时候就不是600块这么简单的事情了,你一要交罚款(每天30块)一个月就是大约900块钱,还要参考下一次的考试,让你得不偿失。你说是交还是不交?

对于新来的学员,我们教练都有自己的一句名言,我们这里开班是不限制时间的。这是一句在谎言!首先一个月资料的审核期是每个人都要经过的,他不可能为了你去加快车管所的审核过程,这一个月的时间是需要你等待的。他一直在我们中宣言,现在开班的人不够,让谁开班就是没人开班,还想再多学一些时间。我要说的是,即使你学再长时间,学的再好,到考试的时候还要会遇到我上面的问题,交钱了,即使你一次不来也能让你通过。这个问题你可想好了?当然,一个月,最多也就四次学车的机会,通过这四次的学习,很多人对考试有了新的认识,即使一些原来信心满满的人也会考虑自己啥时候开始学。你想立即报名开班?那是不可能的!只有他通知让你开班的时候,你再开班,否则就是跟他过不去,跟他过不去绝对没什么好下场的。

罢了,我们学车是学的一个安全,刘教练还是有一些比较靠谱的话:宁肯丢脸,也不要丢命;学车的目的不光光是为了一本驾照,如果是水平太烂宁愿不要那本驾照,只是看不惯他这种得了便宜还卖乖的人

2012年2月10日星期五

刀尖

W020111117465091601031分上下两部分,是最近比较火的一部书;看完上部分——刀之阳面才知道还有刀之阴面。如果这是一部纪实的作品,那么经历者的人生确实是曲折离奇的。

我一直不能明白地方:人活着是为了什么?这是一个见仁见智的话题,但我一直没弄清楚我们所做的所有事情为了名?为了利?亦或淡泊名利?刀尖的出现,给了我一种答案——让人记住。且不说记住的意义到底有多少,这至少是现在大众所追寻的一种吧。最近一段时间关注历史的事情会比较多一些,因为从历史中可以找出我们将来的样子。历史长河中,大人物已经多如牛毛,一个寻常老百姓要想让人记住简直是一件不可能的事情。于是很多人的目标就是追求名利,或者追求其中之一,当然大部分时候,这两者是一同出现的,有了利,得名就容易的多了。但也有些时候,有名无利者也大有人在,像我们刀尖的主人公,今天的这本书就是让后人记住他们,但他们确实没在物质上得到太多……

推而及之,联想到我们自己身上,我一直觉得无论追求名或追求利都是一种很势利的人生,让人活的很累;如果能够淡泊名利会不会是一件让人轻松的事情?但现在情况来看,大部分人都没能做到,同样我是大部分人中的一员。从出生之后的每一天都在别人的要求中追求上进,比别人早一天会跑,比别人早一天会说话,比别人高一点,比别人漂亮一点等等都可能成为一个自豪的资本;当然前期的资本都是让监护人来“显摆”的,因为作为婴儿,我们还没有这个意识,而监护人的这些意识有意无意中就传给了我们,我们在学校里就学会了攀比继而要上最好的学校,要考最好的成绩,要做最成功的人都成了我们的小目标。如果取得一点点可以炫耀的资本,没有把持力的人就会极力夸大,然后走上一个神坛,变成一个神人……当然,大部分人都是无法变成神人的,他们面对的还是自己“百无聊赖”的生活。如果当他们还在为吃和穿而奔波的时候,他们并不会天天思考活着为了什么,因为他们目前就是要活着;但现在大部分人又解决了生活衣食的问题,但很多人还在为住行而努力,但毕竟不会受到生命的威胁了,于是又想着挣更多的钱,买更贵的东西,享受高档的生活成了他们的另一个目标。在追求这个目标的过程中,自己的学历怎么样,能力怎么样又成为了比较的对象,能否得到领导的赏识,能否干一件大事都成了目标之所在。而这些有了一个统一的衡量标准——钱,如果你能拿的钱多,说明大家肯定你的能力,如果你拿的钱少,说明你没什么能力。这个评判标准无可厚非,也为大多数人所接受。但如果看到学历与能力均在自己之下,特别是学历,而又特别成功(能挣钱)人的时候,内心的一种酸楚涌上心来,再给自己套个知识分子的“帽子”,说他人是“土大款”,“暴发户”,没有任何文化底蕴。其醋意可见一斑。经历到此时是人生的顶峰时期,当然有很多如意的时候,也不乏不尽人意的事情出现。这个时候,每个人都形成了自己特有的优势,要么我有钱,要么我有学问,要么我做官,要么我做领导,要么我亲戚是大官,要么我孩子是白领;如果这个人真的一无是处,只能在街上乞讨为生的话,突然就会发现,团结一致的乞讨者比某些自吹的白领挣钱还多,来钱还轻松,于是他们也有了自己的经济学,自己的厚黑学……再往后,比较的对象从自己转移到自己的下辈,从他们的学习,他们的成功,他们的成就,只要比别人好就舒服一些,只要比别人差就失落一些,比别人学问高就舒服一些,孤陋寡闻的就失落一些;当一切归于黄土的时候才发现,这些都没用,可能自己的子孙连自己的名字都没记住,也没有什么事情可以让他们值得自豪的事情。祭祖的时候也只能说说我的爷爷怎么怎么样,祖爷爷怎么怎么样。但已经入土的我们真的能听得见吗?当然,孩子的另一个角色是让自己老有所养,虽然出现很多不孝的例子,但养老在中国还是一个现实面对的问题,我们不可能一百岁了还能自己坐公交上班挣钱养活自己(如果能活一百岁的话)而最后的一切一切都将归于黄土,留下来的东西只有口口相传的文字,如果能够被子孙引以为容还罢,给子孙摸黑的还要做人人像,受千万人的唾骂。

《刀尖》是翻出一段被人遗忘的历史,希望能够得到后人的永世歌颂。每个人都在刀尖上行走,而大部分人都死于刀尖之上,唯一能留下来的是记忆,唯一能做的是让后人记住。以后呢?再次进入历史的角落,不再被人提起。

《刀尖》最后说明了金深水寻找林婴婴女儿的原因,因为这个女儿是唯一需要并且能够记住并怀念他们父母的人,他必须要把这件事情告诉他们;但最终的结果也只是《刀尖》的红极一时,让后人瞻仰一时,而一切又将归寂于黄土。

2012年2月7日星期二

交规考试

学了这么长时间的车,今天才算第一次参加考试,通过了理论科目;理论考试还让我费了一些功夫的……

报名学车的时候,我也没从多渠道了解消息,简单的网上查了一下价格与驾校的介绍,就直接打电话过去报名了,梦想中应该是报名完以后,一周内基本上就要考交规了,所以报完名着实努力去记了很多理论的东西。又通过手机软件做了好些模拟题,虽然网上流传着口诀可以快速通过,但我还是本着求稳的原则多做一些模拟题目。在第一次上课前,我模拟成绩已经基本上稳定在95分以上,所以对理论考试已经有了自己的信心;

但第一堂课了解下来,基本上没有人在报名后一个月内开课考试的,所以我的请求在当时看来简直就是一个笑话。所以理论的东西也就放了下来,我想等着开课的时候再复习一下,过应该不成问题;

经历了近三个月的学习,中间很少缺过课,基本上每周一次,教练觉得我们可以开班了(其实就是我们排队到了)就帮我们预约了考试;但在资料审核的时候,我的居住证出了问题——不在有效期内!没办法,只好查一下是什么原因造成的,跑了很多地方问了很多人,得到的结论是,我们每年都要换证的,但我原来的公司没有帮我换过,只是开了一个副联,能够证明有效期是多少,但到车管所这里就不起作用了,社保中心也说没有办法;加上我新的单位办居住证又有问题,所以到现在也没解决,只好叫教练帮忙看能否给先报名;时间也就向后拖了一些时间。

今天请假了一天去考试,因为下午还要练习车,其实这一天也挺宝贵的,因为我的年假本来就不多,加上过年已经用过了一些,基本上顺利考完驾照就不再有假期了。上午还是6:45分左右出发,到驾校的时候已经近九点了。中间这么多时间都到哪了?我也不知道,等人,然后到了驾校又让一个考小路的人练了一会车,就直接去考场了;其实正式考试的时间也是九点以后,我们是第一批人,没有等太多时间;交规考试的监控真是复杂,到那里先交身份证并拍照片,注意,在报名考试前已经上交了一次照片,这是第二次;然后考试的时候有摄像头,可以在外面的电视上监控到。在每个考试的座位上都有一个小的摄像头,考试期间第隔三分钟拍一次照片,这些照片与摄像头的监控都要能对的起来,你的成绩才算有效真是复杂。

考试的过程没有什么大的波澜,但大家的答题速度着实让我佩服,且能得满分!我也跟着他们后面出去了,但错了三道题目,其中的两道大概知道错在什么地方。97分的成绩也没有太多的遗憾,通过就好;

下午的时候学习了小路考试,中间帮教练做了一些体力活(归类和整理资料),下午的时候上海又飘起了“太阳雪”,可见上海有多么的冷啊。

2012年2月6日星期一

CoreSeek和Sphinx中文全文检索备忘

1、分词词典文件地址:F:\coreseek-4.1-win32\etc\unigram.txt

2、python需要安装2.6及以下版本,上下不兼容,作用oracle万能数据源接口;安装完成后,将python.exe纳入path;安装cx_Oracle,在python命令行下面import cx_Oracle不报错证明安装完成

3、所有python的配置文件都大体相同,需要定义的如下图,定义python源文件路径,源文件的入口地址,索引数据存放地址以及数据存放格式等

image

4、python源文件代码:主要是数据连接部分和中文索引时相应编码的问题;在32位win7下测试通过,但不保证所有系统下测试能通过;
# -*- coding:utf-8 -*-
# python source演示操作oracle数据库

from os import path
import os
import sys
import cx_Oracle
import datetime

class MainSource(object):
def __init__(self, conf):
self.conf =  conf
self.idx = 0
self.data = []
self.conn = None
self.cur = None

def GetScheme(self):  #获取结构,docid、文本、整数
return [
('id' , {'docid':True, } ),
('name', { 'type':'text'} ),
('yqsize', { 'type':'text'} ),
('add_date', {'type':'integer'} ),
]

def GetFieldOrder(self): #字段的优先顺序
return [('name', 'yqsize')]

def Connected(self):   #如果是数据库,则在此处做数据库连接
if self.conn==None:
self.conn = cx_Oracle.connect('sppt/a123456@10.10.28.104/sgsttest')
self.cur = self.conn.cursor()
sql = 'SELECT id,name,yqsize,add_date FROM yqxx'
self.cur.execute(sql)
self.data = [ row for row in self.cur]
pass

def NextDocument(self, err):   #取得每一个文档记录的调用
if self.idx < len(self.data):
item = self.data[self.idx]
self.id = self.threadid = item[0] #'docid':True
            self.name = item[1].decode("GBK").encode("UTF-8")
self.yqsize = item[2].decode("GBK").encode("UTF-8")
            self.add_date = item[3]
self.idx += 1
return True
else:
return False

if __name__ == "__main__":    #直接访问演示部分
conf = {}
source = MainSource(conf)
source.Connected()

while source.NextDocument({}):
print "id=%d, subject=%s" % (source.id, source.name.decode("UTF-8"))
pass
#eof

5、运行test_python_oracle.cmd,可以查看索引的过程,最后启动searchd,监听9132端口,在服务器稳定的时候,可将其作为服务,开机自动启动

6、关于python中文编码问题:主要分为:控制台编码、文件编码、文件中文编码;解码方式主要有encode decode;如,从数据库读取到utf8文件编码转换时,显示数据中的编码是中文编码,于是先解编码GBK,然后再encode utf8;如上图红字;

7、不同的控制台,运行同一个python文件,可能会得到不同的结果,跟控制台编码有关。如:用PowerCmd运行与用cmd运行得到不同结果

还未解决的问题:

  • 得到的结果是以数组的方式返回的,但没有详细解释翻页怎么来实现,所以要想知道,还需要看其api

  • 还未查看怎么样进行增量索引的问题,能否在不停止任务的时候定时增量索引

2012年2月1日星期三

初识python

image虽然几年前因为google app engine而接触过python,但毕竟没有深入的学习,所有的东西也仅限于google提供的示例;今天又是迫不得已使用python,一看,大爱!跟js有异曲同工这秒!

  • 可单步执行
    作为解释性脚本语言的代表,当然也支持单步调试与执行,就跟js使用firebug一样舒服,可能比那还要舒服;因为js要考虑浏览器的限制,而python不需要考虑这些,可以完全拥有整个系统;
  • 类bash的编程方式
    linux shell编程在服务器端大行其道,而windows的cmd被弱化的不能再被弱化了;基于脚本编程的方式这是我见到的第一例(听说perl也是这样一种语法,没使用过);不需要其他复杂的环境,三两行代码就能完成复杂与重复的功能,真是控制系统必不可少的工具啊!
  • 强大的B/S架构的解决方案
    python目前为止在建设B/S解决方案时不输于php,两者都是解释性语言,都有庞大的用户群
  • 大量服务厂商的支持
    google app engine推出的第一个语言版本就是python,简单,人类阅读的语言;相对于java版本,gae选择python绝对是明智的,而现在的java版本又非常难用;sina app engine使用php,使用较少,暂时不做评论;

昨天写了cmd窗口的难用,当时就有朋友给了我替代方案power cmd,相当给力,打造的windows下shell编程不输于linux。python跟power cmd更加如鱼得水;