存档

2008年4月 的存档

冲动是魔鬼之 Nikon D40购买记

2008年4月27日 评论已被关闭

       百合花可真香啊,在家里摆放了一周了,现在还是芳香依旧,想用相机留下个纪念,无奈原来的DC照出来的效果很差,无法拍摄出近距离的逼真效果来,和老婆商量了一下,决定购买单反。

       说干就干。在网上搜寻了一番,发现单反相机的可研究度还是很高的,发烧友还真多,单反相机好玩与复杂就在镜头上,光是镜头就分出了很多种类,长焦、广角、防抖、微距等等,价格也从入门级的几百元到上万元,作为像我这样的门外汉,网上的推荐就是购买入门级的单反,等到玩的熟练了,能够对镜头熟练驾驭,并且知道自己目前镜头的不足及需要在什么地方升级后在去购买新的镜头,况且,单反这东西,陷进去后可以说是个无底洞!

       本来想支持一下国货,但是在单反的领域国货还真的没有什么竞争力,除了“宾得”好像不是小日本的外,其他的基本上都是,几经选择,决定在Canon400D和NikonD40上进行选择,价格上也差不多,Canon稍微贵点。

       小品里面那个郭大脑袋说的还真对:“冲动是魔鬼”。从Idea到Action仅仅用了三天,经过慎重考虑,最后决定购买Nikon的D40。

 

nkion_01.jpg

nikon_2.jpg

      

购买的历程还是蛮曲折的,先是坐车去百脑汇,问了一圈,NikonD40报价3400,带发票3550,从以往的经验来看,买东西还要货比三家,觉得百脑汇的卖家太少,还是去村里看看,反正时间也还充裕。于是杀到中关村。

      先是科贸、后是海龙、中关村E世界、鼎好转了个遍,什么价格的也都有,从3200-3600都有,由于对村里的规矩还是比较熟悉,低价拉客到公司、然后推荐其他产品的的现象太多了,在穿越了海龙推销人员的拉拽及科贸毒眼广告的恶心之后,丫挺的总结出来,觉得3400不带发票已经是底价了。后来终于在鼎好找到一家专卖点,价格3380,加发票后也是3550(这是有点后悔了,不如在百脑汇直接买了呢),送包,加上2GSD卡,UV片,总价3740,还算可以接受。

      然而事情往往会出现一些曲折,在试机时感觉机器不像是新的,因为机身里面有一块电池,重要的是业务人员前后的解释不一样,在我们的强力要求之下,换了另外一台机器。那个业务员居然还生气了,不理我们,让我们自己在那捣鼓相机,哈哈,我笨笨咔咔的,还真把机器给组装上了。最后想去投诉丫,但是后来看丫给贴了个膜的面子上,放过丫一马,反正心理面不是很舒服。

      决定回去走四环、顺便看看“鸟巢”,不过坐特9没有抢到靠近窗户的位置,也不好那么显摆,此事作罢。

      回到家里,老婆仔仔细细的又上网查了一下行货与水货的区别,如何鉴别真伪的,如何判断是新机器等等,做的那个仔细呀,真是感动ing,不过最后的安静下来后,我们不约而同的说出了这样的话“冲动是魔鬼啊!”

      不过买了新相机,心情那是相当愉快,晚上丫非要给我拍裸照,我顿时暴汗!“艳照门”刚刚平息不久,还是注意形象为好!

      终于拍出了清晰的百合,还有毽子,黑天,光线不太足,不过还是拿出来Show一下:

my_photo3.jpg

my_photo4.jpg

 

 

分类: live 标签: ,

php得到用户浏览器类型(UA)

2008年4月26日 评论已被关闭

使用php判断用户访问的浏览器类别
判断如果得不到浏览器类型或者得到的浏览器类型为手机类型的话,页面跳转到手机可以访问的wap站点。

//add redirect to wap
$browser = $_SERVER[‘HTTP_USER_AGENT’];

if(empty($browser)||$browser==””||strpos(strtolower($browser),”mot”)||strpos(strtolower($browser),”norkia”)||strpos(strtolower($browser),”sonyericsson”)){
header(“location:http://2hei.net”);
}

if(strpos(strtolower($browser),”msie”)||strpos(strtolower($browser),”opera”)||strpos(strtolower($browser),”firefox”)){
  echo “www-access”;
  echo strlen($browser);
}

注意:使用header进行页面跳转时,前面不要有任何输出。

获得其他访问用户信息。

“HTTP_USER_AGENT”
“REMOTE_ADDR”
“REMOTE_PORT”

分类: php 标签: ,

mantis安装与使用

2008年4月23日 评论已被关闭

mantis是不错的Bug反馈系统,值得体验。

http://www.mantisbt.org/ 下载最新版本:mantis-1.1.1

http://www.mantisbt.org/manual/ 使用帮助

前提:apache+php4.4以上+mysql已经配置正确

cp config_inc.php.sample config_inc.php

vi config_inc.php
        # — database variables ———

        # set these values to match your setup
        $g_hostname      = “localhost”;
        $g_db_username   = “root”;
        $g_db_password   = “123456”;
        $g_database_name = “bugtracker”;
        $g_db_type       = “mysql”;

        $g_default_language = “chinese_simplified”;

        # — email variables ————-
        $g_administrator_email  = ‘bugtracker@yourdomain.com’;
        $g_webmaster_email      = ‘bugtracker@yourdomain.com’;

        # the “From: ” field in emails
        $g_from_email           = ‘noreply@yourdomain.com’;

        #——— own email —-
        $g_smtp_host = ‘mail.yourdomain.com’; # SMTP 服务器
        $g_smtp_username = ‘bugtracker’; # 邮箱登录用户名
        $g_smtp_password = ‘123456’; # 邮箱登录密码
        $g_use_phpMailer = ON; # 使用 PHPMailer 发送邮件
        $g_phpMailer_path =’.\core\phpmailer’; # PHPMailer 的存放路径
        $g_phpMailer_method = 2; # PHPMailer 以 SMTP 方式发送 Email

#       $g_path = “http://172.16.0.252/bugtest“;
#       $g_icon_path = $g_path.”images/”;
#       $g_absolute_path = “/home/mantis-1.1.1/”;
        $g_use_iis = OFF;       #我用的是linux
        $g_show_version = ON;

        # the return address for bounced mail
        $g_return_path_email    = ‘bugtracker@yourdomain.com’;
 $g_allow_file_upload    = ON;

 

apache的配置:

vi httpd.conf

Alias /bugtest “/home/mantis-1.1.1”

<Directory “/home/mantis-1.1.1”>
  Options Indexes MultiViews Includes FollowSymLinks +ExecCGI
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

http://172.16.0.252/bugtest/admin/install.php

after install , you can delete the admin’s dir

mantis_2.jpg

 

 

 

mantis_1.jpg

 

 

 

 

 

 

 

 

 

 

 

 

the most interesting thing is you can register in mantis and recieve a comfirm mail!

 

分类: OpenSource 标签:

date_default_timezone_set

2008年4月17日 评论已被关闭

找了一下企业网站的php程序,开源的很少,让我满意的就更少了。

找来找去,找到了深喉咙http://www.deepthroat.com.cn

网上宣传的确实不错,而且有个Deepthroat [Version 2.3 ] Php版本(开源版本) 。
果然是傻瓜式安装啊,都给打成了集成包。不过我的系统都是Linux的,所以还是手工安装了一下。
感觉开源的版本的模板少的可怜,好看的模板都是商业版本的。

安装了一下商用版本,提示让我导入授权文件,汗!既然收费了,那就不用了。

不过安装商用版3.5时,也是颇费周折,遇到了 date_default_timezone_set()的问题。

打开index.php,提示

Fatal error: Call to undefined function: date_default_timezone_set() in /home/www/deep/index.php on line 5

Google了一下,原来是我的php版本的问题,原来的版本是php5.0.5,于是把php升级到5.2就可以了。

分类: OpenSource 标签:

java 调用dll文件总结

2008年4月17日 评论已被关闭

java 调用dll文件时

几个注意点:
1. package的使用
2. javah的使用
3.path路径的设定

 

下面实例介绍java调用dll中的Max函数:

hello.java

package 2hei.net.dll;

public class hello
{
    static
    {
        //System.out.println(System.getProperties().get(“java.library.path”));
        System.loadLibrary(“Hello”);
    } 
    public native static int Max(int a,int b);
   
    public static void main(String[] args)
    {
        int maxnum = 0;
        int aa = 10;
        int bb = 11;
        hello hi= new hello();
        maxnum = hi.Max(aa,bb);
        System.out.println(“max is “+maxnum);        
    }
}

生成.h头文件

createh.bat

cd E:\src\java\2hei\net\dll  

javah hello

会生成一个2hei_net_dll_hello.h的文件

编辑编辑 2hei_net_dll_hello.h  把#include <jni.h> 改成#include “jni.h”

从jdk的目录里面找到jni.h  和 jni_md.h

下面使用VC++生成dll文件。

新建一个dll工程,比如Hello  编辑Hello.cpp

// Hello.cpp : Defines the entry point for the DLL application.
//

#include “stdafx.h”
#include “Hello.h”
#include “2hei_net_dll_hello.h”

JNIEXPORT jint JNICALL 2hei_net_dll_hello_Max
  (JNIEnv *, jclass, jint a, jint b)
{
 if(a>=b)return a;
 else
 return b;
}

编译工程后,在Debug目录中找到Hello.dll文件,放到java的path目录下面。

执行hello.java 即可以得到想要的结果。

 

分类: c, java 标签: ,

使用vbs脚本写注册表来设置Ghostscript环境

2008年4月13日 评论已被关闭

 

很多与pdf相关的开源的插件(如:imagemagick ),
一般都需要ghostscript的支持,imagemagick的一些命令行的工具非常方便,但是用户往往不希望安装多个软件,
所以需要解决绿色安装的方式,通过脚本来写注册表。

具体方式如下:

首先可以先到http://www.ghostscript.com下载最新的版本。
比如gs8.61,先安装上,然后把整个安装目录复制出来。
搜索注册表,看到gs注册了两个键值,然后我们通过直接写注册表的方式来手工注册。

关键是配置gs的lib目录和字体目录。

建立vbs文件 gs_install.vbs

Set ws = WScript.CreateObject(“WScript.Shell”)

Dim ws, n, p, itemtype

p = “HKEY_LOCAL_MACHINE\SOFTWARE\GPL Ghostscript\8.61\GS_DLL”
itemtype = “REG_SZ”
n = “E:\2hei.net\gs\gs8.61\bin\gsdll32.dll”
ws.RegWrite p,n,itemtype

p = “HKEY_LOCAL_MACHINE\SOFTWARE\GPL Ghostscript\8.61\GS_LIB”
itemtype = “REG_SZ”
n = “E:\2hei.net\gs\gs8.61\lib;E:\2hei.net\gs\fonts;E:\2hei.net\gs\gs8.61\Resource;C:/WINDOW/fonts”
ws.RegWrite p,n,itemtype

ws.Run “cmd.exe /c cmd.bat”,vbhide

说明:
cmd.bat 是你想要真正执行的脚本文件,上面的则是设置依赖的gs环境。
——————————————

 

或者写reg文件

gs.reg

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\GPL Ghostscript\8.61]
“GS_DLL”=”E:\\2hei.net\\gs\\gs8.61\\bin\\gsdll32.dll”;
“GS_LIB”=”E:\\2hei.net\\gs\gs8.61\\lib;E:\\t2hei.net\gs\fonts;E:\\2hei.net\\gs\\gs8.61\\Resource;C:/WINDOWS/fonts”;

说明:
Windows Registry Editor Version 5.00
// – 注释 (空一行)
[路径] (注意用大小写);
“键名”=”键值” (针对字符串型键值);
“键名”=hex:键值 (针对二进制型键值);
“键名”=dword:键值 (针对DWORD键值);

分类: OpenSource 标签: ,

study English everyday(5)

2008年4月9日 评论已被关闭

solicitor n.律师,法律顾问
on the next floor
I have been chased by a bull. chase n.追赶,追击;vt.追逐,追赶,雕镂
footpath 人行道,小路
bullock n.阉牛,一岁以下的小牛
a bright red anarak  anarak n.带帽兜的夹克
buck   n.元;雄鹿,公羊,公兔
pretty scared 恐惧的
jog 慢跑
bark at sb. bark n.树皮,吠声;v.吠,咆哮,剥树皮
The dog hit him in his leg.
Tom aged two. John is six months old.
Secretary General 秘书长
Prime Minister    总理,首相
President         总统
his short holiday
General Assembly 会员大会
scorecard  记分卡

分类: English 标签:

构造函数和析构函数

2008年4月8日 评论已被关闭

构造函数的作用是给每个对象的数据成员合适的初始值。构造函数的名字与类的名字相同,没有返回值。一个类可以有多个构造函数,通过不同的形参表进行区分。
创建一个类的对象时,编译器自动调用构造函数。
构造函数不能声明为const。当创建的类的对象为const时,调用普通的构造函数即可。const Item A = Item();
构造函数可以包含一个初始化列表。初始化列表以 “:”开始,以“,”分隔数据成员,每个数据成员后面是放在括号里的初始化式。(初始化式只在构造函数的定义中,不在声明中出现。)
Sales_item::sales_item(const string book):isbn(book),units_sold()0 {}
类通过默认构造函数初始化没有被显示初始化的成员变量。没有默认构造函数的类类型以及const或饮用类型的成员必须在构造函数初始化列表中进行初始化。
构造函数初始化列表仅指定用于初始化成员的值,并不指定初始化的顺序。成员被初始化的顺序就是声明成员的顺序。建议按照成员声明的顺序编写初始化列表。
如果类包含内置或复合类型(如指针、数组),应该定义自己的构造函数来初始化这些成员。
当构造函数声明为explicit时,可以防止在需要隐式转换的上下文中使用构造函数。
每个派生类构造函数除了初始化自己的数据成员以外,还要初始化基类成员,但是只能初始化直接基类的成员。直接基类就是在派生类列表中指定的类。
派生类执行构造函数时,先执行基类的构造函数,然后初始化派生类中的成员。
基类可以被包含在派生类的初始化列表中,从而被初始化。

析构函数用以完成资源释放。
只有删除指向动态分配对象的指针或实际对象(不是对象引用)超出作用域时,才会运行析构函数。
编译器总会合成一个析构函数。合成的析构函数按照对象创建时的逆序撤销每个非static成员。不删除指针成员所指的对象。
析构函数没有返回值,没有形参。

分类: c 标签:

resin jvm 性能调试

2008年4月7日 评论已被关闭

resin3.1.3+jdk1.6+hibernate+struts

配置了多个域名上去,服务器内存2G,jvm -Xmx使用1536m (1.5G)
每每重新上传了程序后必须要重新启动resin服务,虽然非常确定了类已经编译过去了,
但是hibernate还要重新初始化一下,只要2-3次,服务便会报outOfMemoryError错误。
不知道是java程序写的不好,资源没有释放,还是hibernate占用了太多的内存
如果没有上传新类,则没有outOfMemoryError的情况发生。

郁闷之中,恰好手边来了新的伙计,Dell 2950服务器,四核,4G内存,正好可以测试一下。

配置了一下Java的 Web服务。
我想新机器内存大,今儿个哥们高兴,给丫配个3G看看,谁知Resin居然不给面子,没有起来。
 
以下启动是加载的内存:

      <jvm-arg>-Xmx3072m</jvm-arg>
      <jvm-arg>-Xss1m</jvm-arg>
      <jvm-arg>-Xdebug</jvm-arg>
      <jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>

网上相关文档有介绍 Max Heap 为内存的70%的。

[2hei.net]# java -Xmx3072m -version
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

[2hei.net]# java -Xmx2560m -version
java version “1.6.0_03”
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode)

经过几番测试后,感觉4G内存加载的最大内存为2560m,也就是2.5G,再大的话,resin无法启动。

分类: resin 标签: ,

study English everyday(4)

2008年4月3日 评论已被关闭

I am still feeling pretty homesick. homesick/思乡,思乡病

It’s bound of be strainge at first.     be bound of/一定的

Can I give a lift? give a lift/免费搭乘,顺风车

I have shivery/ shivery/颤抖的,寒冷的,令人心碎的,易碎的

continental breakfast/欧式早餐

Would you prefer honey, marmalade or jam?  honey/蜂蜜 marmalade/橘子或柠檬等水果制成的果酱

Both of them took off their hetmets. hetmet/头盔

a new brand brand/商标,牌子,烙印;vt,打烙印,侮辱

We are having the house decorated. decorate/装修

I wonder wheather the dentist could fit me in early tomorrow. dentist/牙医

How do you want it? Just a trim, please. trim/a.整齐的;vt.整齐,修整

What have you got in the way of brown, suede jackets,size forty? in the way of/关于…方面 suede/小山羊皮

I am spending a few months brushing up my English. brush up/擦亮,提高,复习

cosy a.舒服的,安逸的

intimate atmosphere intimate/亲密的,隐私的;vt.宣布,表示明白;n.密友

Hid it under your mattress. mattress/床垫

If you took up burglary, you’d made a fortune. burglary/入室抢劫  burglar/夜贼

 

 

 

分类: English 标签: