HP UX默认shell是POSIX,很不好用,果断换成bash!

  1. 确认HP UX版本和架构
    运行uname -a,会显示版本号(比如B.11.31)和架构(比如ia64),然后去下面的地址搜bash
    http://hpux.connect.org.uk/hppd/hpux/
    下载与自己版本号与架构相同的bash版本,注意同时还要下载其依赖组件gettext、libiconv和termcap,这些在bash的Runtime dependencies里都有,依次下下来;
  2. 将这四个gz文件解压,得到四个depot文件,上传到服务器(比如/tmp/bash目录下),安装这些组件。最好是按照下面的顺序来:
    #swinstall –s /tmp/bash/gettext-0.18.1.1-ia64-11.31.depot
    #swinstall –s /tmp/bash/libiconv-1.13.1-ia64-11.31.depot
    #swinstall –s /tmp/bash/termcap-1.3.1-ia64-11.31.depot
    #swinstall –s /tmp/bash/bash-4.1.007-ia64.11.31.depot
    注意在swinstall –s命令后面必须输入depot文件的full path!
    swinstall可能有些童鞋不会用,命令敲进去之后会显示一个guide,按回车进入主窗口,在要装的包位置按下空格,反白显示之后再按m,然后Tab键将光标移到菜单,选择Action->Install->OK->Done。
  3. 将默认shell改为bash。修改/etc/shells文件如下:
    /sbin/sh
    /usr/bin/sh
    /usr/bin/rsh
    /usr/bin/ksh
    /usr/bin/rksh
    /usr/bin/csh
    /usr/bin/keysh
    /usr/local/bin/bash
    然后执行chsh root /usr/local/bin/bash,或者把root换成你想要更改bash的用户,就可以了。如果没有修改/etc/shells文件,就会得到一个invalid shell的错误。
posted @ 2010-11-15 16:11 Jacky Zhou 阅读(118) 评论(0) 编辑
摘要: 佳能市售镜头的发售年鉴阅读全文
posted @ 2010-05-10 11:20 Jacky Zhou 阅读(103) 评论(0) 编辑

EDM就是Entity Data Model,是EF的主要操作对象。在我理解,EDM是对数据库表的持久化和实体映射。M$提供的两个ORM技术,Linq2SQL和EF,目前大家还是用自底向上(先建表后映射实体类)的设计方法。其实我也是比较倾向于这么做的,画ER图然后往下layout的操作,我不是很感冒。。。。

在Visual Studio里创建一个EDM是非常方便的,提供了一个专门的designer,这个方法在网上也很常见,基本上也没有什么特别需要设置的地方。在创建EDM完毕之后,还是有个比较重要的事情要做,那就是把Entity Set Name改为复数形式,以及把one - many这种关系的one端的navigation properties名字也改为复数,这在后面的coding中会带来相当大的便利。

在VS的解决方案管理器中,打开EDM的方法似乎只有设计器,如果想看一看它的raw编码,可以右键->Open with->XML Editor。据说看懂这个玩意能够带来升级的EF理念,who knows....

z11111111111111111111111

这其中的SSDL、CSDL和C-S Mapping的内容都是极端重要的。

EDM中也会有数据库视图,这些视图都是只读的,即没有Insert、Update和Delete命令。

EF会自动为model生成一些实体类,这些实体类就是向model做查询用的。

OK,这就是目前我所了解的EDM。

posted @ 2010-01-06 20:46 Jacky Zhou 阅读(99) 评论(0) 编辑

一条Linq语句,比如下面用于返回一个Dinner对象集合的查询

private NerdDinnerDataContext db = new NerdDinnerDataContext();

public IQueryable<Dinner> FindUpcomingDinners()
{
    return from dinner in db.Dinners
           where dinner.EventDate > DateTime.Now
           orderby dinner.EventDate
           select dinner;
}

这条“select”只有当它在的数据被访问或者迭代,又或者是ToList()方法被调用的时候,才会真正向数据库提交。该函数必须返回IQueryable<>类型,这样方便于我们应用点连接式Linq查询,来筛选结果集中的数据。

下面我们来看看如何利用它来实现MVC的分页机制。

我们按照设定的pageSize对数据进行服务端分页,实际上就是把结果集进行窗口筛选,然后回送给用户。

public ActionResult Index(int? page)
{
    const int pageSize = 10;

    var upcomingDinners = this.dinnerRepository.FindUpcomingDinners();
    var paginatedDinners = upcomingDinners.Skip((page ?? 0) * pageSize)
                                          .Take(pageSize)
                                          .ToList();

    return View(paginatedDinners);
}

从Model传递过来的结果集,通过Skip()和Take()两个动作,筛选出我们需要的那一页结果。注意这个查询是会被进行优化的。

要想访问某一页,需要在URL中以?参数的形式给出,比如/Dinners?page=1。但这样做并非SEO最优,我们还需要将其转换成常规URL,并且将参数嵌入进去。为此,MVC强大的路由功能就派上用场了。在Global.asax的后台代码中,加入这条路由的注册:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "UpcomingDinners",
        "Dinners/Page/{page}",
        new { controller = "Dinners", action = "Index" }
    );

    routes.MapRoute(
        "Default",                                              // Route name
        "{controller}/{action}/{id}",                           // URL with parameters
        new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
    );

}

这样就可以将?参数转化为URL的一部分,至此,分页就搞定了。

posted @ 2009-12-29 19:43 Jacky Zhou 阅读(189) 评论(0) 编辑
摘要: 将一个8bit灰度位图从字节数组转换为Bitmap格式的完整示例。阅读全文
posted @ 2009-03-17 16:03 Jacky Zhou 阅读(2735) 评论(4) 编辑
摘要: 在.NET框架下,获取当前正在运行进程的HASH值的完整方法。阅读全文
posted @ 2008-11-18 15:38 Jacky Zhou 阅读(2378) 评论(14) 编辑
摘要: 初用WCF的朋友可能会对服务元数据的地址感到困惑,继而无法熟练地应用svcutil来生成客户端配置代码。本文针对两种常用的binding方式,将确定元数据地址的方法做一个浅析。阅读全文
posted @ 2008-09-07 13:03 Jacky Zhou 阅读(1618) 评论(3) 编辑
posted @ 2008-07-18 17:07 Jacky Zhou 阅读(1222) 评论(2)  编辑
摘要: WPF控件Slider的定义技巧阅读全文
posted @ 2008-07-05 19:06 Jacky Zhou 阅读(352) 评论(0) 编辑
摘要: 这是我一段时间研究Skelta BPM.NET 2006所看的一些比较基础的东西,希望对大家有用~~阅读全文
posted @ 2008-06-24 11:08 Jacky Zhou 阅读(647) 评论(1) 编辑