`
qiezi
  • 浏览: 497661 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

最近比较忙

阅读更多
工作忙,学习也忙。

1、Ruby on Rails

前阵子看了一下Ruby on Rails,不禁为其深深折服,为Ruby,也为Rails。

照着Four Days on Rails做了一遍,虽然对Ruby不甚熟悉,不过一路下来感觉非常轻松,在搞明白:xxx和"xxx"是同一个意思以后,终于能看懂大部分代码了,也为这种语法叫好,要知道很多时候引号并不好用,当出现嵌套的时候。(注:在Ruby里,"hello, #{user[:name]}"表示把user["name"]的值放到那个引号里面,这样做可以不仔细去考虑是不是使用单引号)

接着试了一下typo,一个ruby写的blog程序,看到它具有登录功能,而在4 days中并没有看到,于是找了相关资料,原来Rails中已经有这东西了,简单查看了文档以后,就为4 days中的那个演示项目加上了登录功能,前后不过十来分钟。

这样看来,一个人要做一个blog程序,大概2-3小时就够了,包括编写数据库模式、生成管理者使用的MVC结构(具有添加修改删除等功能)、添加登录功能,在此基础上再生成一个Controller,简单修改就能改成供其它用户使用的阅读界面,再稍费点神就能加上评论功能了。当然离标准的blog程序还有段距离,比如还不支持RSS,不过自己用来写点东西记点笔记什么的,足够用了。

2、Ajax on Rails

接着学习了Ajax on Rails,非常好用的东东,文档并不是很多,简单看了一下,觉得离我的想法还有点距离。我希望是可以实现像Gmail一样,读取一些变量过来,在页面上动态生成元素,而不是读取其它页面并把其中的元素替换掉当前页面上的元素,或者是添加到当前页面上这么简单。我查看过Gmail界面的源代码,好像是使用过混淆器,不过还是可以看出来,它是从服务端读取一些变量,读到客户端再把它转成可视的元素。

微软的space.msn.com在注册时,有一个验证码,当你看不清时可以点击右边的按钮再换一个验证码,这时只会刷新验证码而不用刷新整个页面,这种东西使用Ajax on Rails应该很轻松就可以完成。不过我还不知道在Rails中如何生成验证码呢,应该是使用其它的库来生成吧,有空查一下看看。

3、Ruby and Rails

Ruby的语法对于我这样的初学者(实际上并未正式学习)来说,有些地方理解起来还真有点难,不过它的代码看起来却很舒服,简洁美观,似乎很多语法都是为了美观,当然满篇的end除外。

Rails同样给我简洁美观的印象,使用简单,没有什么废话,视图如果不修改的话,甚至可以不生成出来。

不知道效率如何,不过听说Ruby比Python运行效率要高,豆瓣使用Python能做出来,我想使用Ruby应该也可以做出能够接受的东西。

有空要好好学一下Ruby,为了Rails。

4、asgard

最近实在是太忙了,asgard项目起了个头又懒得动了,许多情况下使用C++都意味着要写很多代码,目前完成了异步回调函数的泛类型匹配,在编写调用函数的适配器时,虽然已经想出了解法,只是要写大量的模板,天天在模板堆里头都是痛的,只好先放一放了。


注:
1、上面提到的“异步回调函数的泛类型匹配”,指的是下面的做法:
void callback (int, short, const char*);
Method <string(in<char>, in<char>)> method;
method.async_call ('a', 'b', callback);
由于char可以转型到int, short,而out<string>可以转型到const char*,所以让它支持这种“泛”类型匹配也是理所当然的了,这个东西已经完成了。

2、“调用函数的适配器”是更复杂的一个东西,用在服务器端:
Method <void(inout<Buffer<char> >, in<string>)> my_strcat;
my_strcat.setMethod (Adapter <void(Default<1>, Default<2>, ContainerSize<1>)> (strncat) );

这是最终简化了的形式,比上次所说的简单了不少,因为很多东西是可以推导出来的,这也是测试证明可以实现的,一个简单的修改就是把Adapter从类改为一个函数,由于模板函数的参数类型可以推导出来,所以省去了strncat函数类型的描述。

实际上是把char* strncat(char*, const char*, size_t)匹配给上面这个method,Adapter承担解释角色。

它的函数类型的模板参数中,void可以推导为out<void>,strcat的调用结果赋给out<void>,可以不理会,实际上是使用偏特化来忽略它的,因为我的vector <IParameter*>中根本不包括out<void>这个对象。

后面的Default<1>表示使用默认的转换器,即直接把Buffer<char>对象转成char*类型,由于Buffer<T>中实现了operator T*,这个转换不成问题,下一个是Default<2>,在in<string>中也实现了operator const char*,所以这个转换也很顺利,再下一个是ContainerSize<1>表示从Buffer<char>对象中取容器的大小,这也是个模板。

目前一共实现了3个模板,Default<int>默认转换,Size<int>取sizeof,ContainerSize取容器大小。

写模板既有挑战,又有困难,有时甚至有放弃的想法,甚至有朋友笑话说,人家都动态语言了,你还在使用这种宏一样的语言。我也只好一笑置之,这样的功能在动态语言里多么容易呀,的确在做一种不不明智的事。。。
分享到:
评论

相关推荐

    DES加解密 MFC

    DES(Data Encryption Standard)是一种经典的对称加密算法,由IBM公司于1970年代初期设计,后来被美国国家标准局(NIST)采纳为标准。它以64位的数据块进行操作,使用56位的密钥进行加解密。DES在当时是一个强大的...

    JICQ2007 part04

    前阵子由于比较忙,所以忘了把源代码发布上去,这次为了共享的目的把源代码都发...我最近比较忙可能也算比较懒没有将它的客户端再次打包。运行该系统需要先安装好SQL补丁以及JDBC驱动,如果有疑问可以联系我的171984561

    JICQ2007_part01

    前阵子由于比较忙,所以忘了把源代码发布上去,这次为了共享的目的把源代码都...我最近比较忙可能也算比较懒没有将它的客户端再次打包。运行该系统需要先安装好SQL补丁以及JDBC驱动,感谢这段时间CSDN网站给与我的帮助!

    JICQ2007 part02

    前阵子由于比较忙,所以忘了把源代码发布上去,这次为了共享的目的把源代码都...我最近比较忙可能也算比较懒没有将它的客户端再次打包。运行该系统需要先安装好SQL补丁以及JDBC驱动,如果有疑问可以联系我的171984561

    JICQ2007 part03

    前阵子由于比较忙,所以忘了把源代码发布上去,这次为了共享的目的把源代码都...我最近比较忙可能也算比较懒没有将它的客户端再次打包。运行该系统需要先安装好SQL补丁以及JDBC驱动,如果有疑问可以联系我的171984561

    XML类(VC60下C++封装的通用XML类,并附使用说明)

    前一段时间上传了C++XML封装类的示例程序是用VS2005做的,考虑到有些朋友常常使用经典的VC60,因此把实例又改编成VC60下的版本,由于我是做对日开发的,所以从VS2005考到VC60时注释变成乱码,最近比较忙,就不改了...

    php互传站长网整站源码v1.0

    最近很多朋友来到我的网站都说很喜欢我网站的... 因为最近比较忙,也没有时间一个个去检查。所以大家务必自己检查清楚,不然到时说我怎么还留自己的链接什么的就不好了。我不图大家的外链,大家喜欢怎么使用就怎么使用

    30套WAP手机静态模板

    这次发布的这30套模板,全部是爱好者网络上收集整理的,很多是懒人模板...最近比较忙就简单的整理了下,直接打包发出来,希望对大家有所帮助。 本模板实用于手机、平板等移动终端,只含HTML文件,不包含后台,请悉知!

    FIS简单文章管理系统 v1.2.rar

    最近比较忙,暂时不做详细介绍了。 等暑假我会做一个详细的介绍。另外在后台登录出添加了一个访问密码login/login.asp?code=fisvcor 会看代码的自己改。先这样吧。。。 发布源码给有需要对其进行二次开发的朋友 ...

    DataUML Design 1.1版本 支持打开PD数据模型

    从DataUML Design正式发布到现在有两个月了,由于最近比较忙,到现在才发布1.1版本。以后本人会一直坚持不断完善DataUML Design软件,希望广大程序猿们多多支持。 1.1版本新增和改进内容如下  1、支持数据模型元...

    redis集成spring实现aop

    最近比较忙,也有些日子没有写博客了。加上自己文笔也不行,哈哈。今天就给分享下最近做的一个东西吧。 membercache已经有基于spring的aop包,并且这个包是谷歌提供的开源代码,里面代码我看了写的很不错的哈。 最近...

    21sji商家联盟 v1.1

    1.增加了在线支付的功能,后台可以查看定单,此在线支付单位是北京的网银公司(在线支付对于小金额的付费比较...5.稍微做了下美化,因为最近比较忙所以了来得及好好做美工,见谅!5.有BUG请提出,新的功能将不断的推出!

    获得缺省打印机名称(含97及2000版)access2000;access97

    说 明:获得缺省打印机名称(含97及2000版)这是针对access97/2000所做的获得缺省打印机名称的源码,只要运行程序即可获得你当前...因最近比较忙,我未做改进,网友可根据同样的方法提取,改进后别忘了EMAIL一份给我哦

    基于Python的视频网站爬虫源码.zip

    基于Python的视频网站爬虫源码.zip 此项目是利用python2.7编写爬虫将的视频网站的web_url进行一系列操作,...我们一步一步来看O(^_^)O(最新一期加入了视频评论部分,最近比较忙,等过段时间继续优化与文档说明)

    最优化算法(规划)-单纯形法MATLAB程序【原创】

    function [maxZ,X]=maxOP(Cj,A,b,f) % 作者:朱胜佳 西安理工大学 QQ 373719229 ...%这个是以前写的一个程序,本来打算加上big M 法再发布出来,但是最近比较忙。先贴出来了 有兴趣的朋友自行改进

    超简单超强大的动态生成树

    所以不用我过多解释,希望能给大家有所帮助,本来是不要分给大家分享的,但为了我也能下载本站的其他资源,所以就弄个一分吧.(注:由于我最近比较忙,里面代码可能还没写的很规范,但不影响大家理解,希望大家谅解)

    警示框模板

    大家好,最近比较忙,基本上没时间更新博客,今晚上找点时间和大家聊聊警示框问题,不知道大家有没有遇到过想制作一个警示框而这里搜搜,哪里搜搜,却一直找不到一个完整的解决方案,我最近在翻新公司官网(PHP转...

    用VC++编写的超炫QQ 2009界面的MSN

    由于MSNP协议看似简单,但其过程复杂繁锁,特别各界面之间的消息通讯以及人性化界面的处理,任何一处的功能添加都需大量的时间,该软件已耗费本人大部分的业余时间,由于最近比较忙所以暂时停止该软件的编写工作。...

Global site tag (gtag.js) - Google Analytics