2009年11月11日
var fixgeometry = function() {
/* Some orientation changes leave the scroll position at something
* that isn't 0,0. This is annoying for user experience. */
scroll(0, 0);
/* Calculate the geometry that our content area should take */
var header = $(".header:visible");
var footer = $(".footer:visible");
var content = $(".content:visible");
var viewport_height = $(window).height();
var content_height = viewport_height - header.outerHeight() - footer.outerHeight();
/* Trim margin/border/padding height */
content_height -= (content.outerHeight() - content.height());
content.height(content_height);
}; /* fixgeometry */
$(document).ready(function() {
$(window).bind("orientationchange resize pageshow", fixgeometry);
});
posted @
2013-01-28 10:59 The Matrix 阅读(5170) |
评论 (1) |
编辑 收藏
http://java.dzone.com/articles/hibernate-tuning-queries-using?page=0,0
posted @
2012-05-14 14:28 The Matrix 阅读(1197) |
评论 (0) |
编辑 收藏
环境:
Centos6.2(安装在Vmware7.0中)
Magento1.6.2
Apache Httpd Server 2.2.15
MySql 5.1.61
PHP5.3.3
安装过程:
apache http、mysql、php及相关扩展安装:
其中apache http、Mysql、php都是利用centos的添加/删除软件功能进行安装。同时使用该功能安装"php-xml"、"php-gd"、"php-pdo"、"php-mbstring"、"php-mysql"扩展。
使用chkconfig配置httpd和mysql为系统服务。命令如下:
chkconfig httpd on
chkconfig -add mysqld
chkconfig mysqld on
使用chkconfig --list 可以查看所有的服务配置状态
使用service httpd start、service mysqld start启动httpd和mysqld服务。可以通过service httpd restart重启相关服务。
此时访问本机的http://localhost可以看到apache的欢迎界面,同时编辑index.php文件,其内容如下:
<?php
phpinfo();
?>
并将该文件置于/var/www/html目录下,访问http://localhost/index.php,此时应该不能看到php版本信息,仅能看到index.php的静态文本内容。
修改/etc/httpd/conf/httpd.conf文件,修改如下:
DirectoryIndex index.html index.html.var -> DirectoryIndex index.html index.htm index.php
增加:
AddType application/x-httpd-php .php
AddDefaultCharset -> AddDefaultCharset off (解决中文乱码问题)
增加一段VirtualHost描述,如下(在配置文件的最后):
<VirtualHost *:80>
DocumentRoot /var/www/smallfive
ServerName smallfive
ServerAlias smallfive.com *.smallfive.com
</VirtualHost>
此时访问http://localhost/index.php,应该一切正常
设置数据库:
使用mysqladmin -u root password 'newpassword'设置mysql数据库的默认密码
让数据库更安全:
mysql -u root -p 进入mysql
mysql> DROP DATABASE test; 删除test数据库
mysql> DELETE FROM mysql.user WHERE user = ''; 删除匿名帐户
mysql> FLUSH PRIVILEGES; 重载权限
创建magento数据库
mysql> CR 访问magento数据库,确保一切正常
配置Magento:
解压缩magento1.6.2版本至/var/www/smallfive/magento目录
解压命令:
EATE DATABASE magento;
mysql> GRANT ALL PRIVILEGES ON magento.* TO 'root'@'localhost' IDENTIFIED BY 'newpassword';
tar zxvf magento1.6.2.tar.gz
此时访问http://localhost/magento,可根据magento的设置进行配置
注意如下问题:
1、确保当前用户拥有对/var/www/smallfive/magento可读可写权限
2、还需安装mcrypt库,安装这个库比较繁琐,mcrypt依赖于Libmcrypt库和mhash库,我们需要下载Libmcrypt库和mhash库安装它们,然后再编译Mcrypt。
在编译之前,先做好如下准备工作:
a、安装phpize:yum -y install php-devel
b、安装C++脚本编译模块:
yum -y install gcc gcc-g++
yum -y install gcc gcc-c++
安装mcrypt库过程,如下:
a、下载libmcrypt和mhash库
Libmcrypt:http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459
mhash:http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636
b、将上述两个下载后,分别解压,并执行如下命令编译:
./configure
make && make install
c、下载php对应的源代码,解压,
进入php源代码的 /ext/mcrypt目录
执行phpize命令
./configure –with-php-config=/usr/bin/php-config
make && make install
d、在php.ini文件中增加如下内容:
extension=/usr/lib/php/modules/mcrypt.so
mcrypt.so文件路径在php-config文件中可以找到
e、service httpd restart
end!
参考文章:
http://www.eexu.com/article.asp?id=1730
http://www.ruiwant.com/centos-6-0%E4%B8%8Bmagento%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE%E6%80%BB%E7%BB%93.html
http://zixun.www.net.cn/qita/2344.html
http://os.qudong.com/Linux/2010/0210/64441.html
posted @
2012-04-04 17:09 The Matrix 阅读(3115) |
评论 (1) |
编辑 收藏
有时在vmware里面安装的系统或应用有License时间的限制,可以通过修改虚拟机时间的方法来防止过期,此时需在.vmx文件中加入下面的内容:
tools.syncTime = "FALSE"time.synchronize.continue = "FALSE"time.synchronize.restore = "FALSE"time.synchronize.resume.disk = "FALSE"time.synchronize.shrink = "FALSE"rtc.startTime = 1183431600 #这是用来指定虚拟机启动后的时间。数字是自1970年1月1日零时零分零秒以来的秒数,可以通过如下网址将某个时间转换为该数字(Unix时间戳):http://www.onlineconversion.com/unix_time.htm
注意:同时还需在虚拟机操作系统的服务中,停用“VMware Tools Service”的服务。
在Windows Server 2003中操作系统自身也有时间同步功能,需在时间设定中停用,同时停用“Windows Timer”服务。
posted @
2012-03-02 10:51 The Matrix 阅读(8633) |
评论 (0) |
编辑 收藏
主要参见:
http://blog.chenlb.com/2011/03/install-apache-php-wordpress-windows.html
在安装好apache http server后,如果端口不正确,则修改"apache安装目录/conf/httpd.conf"文件中的如下信息:
#ServerName localhost:80 -> ServerName localhost:8060
Apache HTTP Server版本:2.2
PHP版本:5.3.8
WordPress版本:3.2.1
posted @
2011-11-27 21:28 The Matrix 阅读(636) |
评论 (0) |
编辑 收藏
1. 打开工具Oracle SQL Plus 以dba身份登录sys用户
sqlplus /nolog
conn sys@url as sysdba
2. 创建用户并指定表空间
使用客户端工具或者Web管理控制台创建表空间以及用户
给用户赋予connect、resource、dba权限
grant connect,resource,dba to username;
注意:给oracle用户分配connect、resource角色时,此时connect 角色中有一个 UNLIMITED TABLESPACE 权限,也就是username这个用户可以在其他表空间里随意建表。
revoke unlimited tablespce from username; --撤销username用户在任意表空间建表的权限
alter user username quota 0 on users; --alter username quota 0 on Users; // 还不是很清楚具体含义???
alter user username quota unlimited on tablespacename; --赋予username用户在tablespacename表空间任意建表的权限;
3. 使用imp工具导入dmp数据文件
imp username/password@url file=c:\db.dmp fromuser=username1 touser=username log=c:\log.txt
-------------------------------------------------------------------------------------------------------------
其它命令:
select * from dba_users; --查询用户
select * from dba_tables; --查询表
select * from dba_views; --查询视图
select * from dba_tablespaces; --查询表空间
oracle 10g,查询表空间使用率
Select * from sys.DBA_TABLESPACE_USAGE_METRICS;
-------------------------------------------------------------------------------------------------------------
drop user username cascade;
ORA-01940:无法删除当前已连接的用户
select username, sid, serial# from v$session where username='username';
alter system kill session'sid,serial#'
posted @
2011-05-31 16:43 The Matrix 阅读(3880) |
评论 (0) |
编辑 收藏
环境:Windows7 professional
1、下载redmine1.1.3.zip、ruby1.8.7、rubygems-1.3.7.zip、mysql 5.0
2、安装MySQL5.0,cmd窗口下使用mysql -u root -p 登录MySQL数据库,执行如下语句创建redmine数据库及用户:
create database redmine character set utf8;
create user 'redmine'@'localhost' identified by 'my_password';
grant all privileges on redmine.* to 'redmine'@'localhost';
注:
使用MySQL5.5在后面进行初始数据时Ruby会提示连接有问题
在安装完MySQL后,先不要进行配置,至“MySQL安装路径\bin”目录下,修改MySQLInstanceConfig.exe为“以管理员成分执行此程序”,“以兼容模式运行该程序”
进行数据库配置时,选择字符集为utf8
3、运行ruby1.8.7安装包,解压至d:/ruby187,将d:/ruby187/bin添加至path环境变量中
安装后可执行 ruby -v查看ruby版本以检验安装是否正确
4、解压rubygems-1.3.7.zip至d:/rubygems-1.3.7
进入d:/rubygems-1.3.7目录,执行ruby setup.rb
注:Redmine需要rubygems 1.3.1 - 1.5.x,肯定不能用1.8.2版本
5、执行gem install rails -v=2.3.5 远程安装rails2.3.5版本
gem install mysql
gem install -v=0.4.2 i18n
6、解压缩redmine1.1.3至d:/redmine1.1.3目录
进入d:/redmine-1.1.3/config目录,修改database.yml.example文件为database.yml,并修改该文件中的production数据库连接配置为如下:
production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: my_password
encoding: utf8
进入d:/redmine1.1.3目录,执行
rake config/initializers/session_store.rb
rake db:migrate RAILS_ENV="production"
7、加载默认配置数据
rake redmine:load_default_data RAILS_ENV="production"
默认语言选择"zh"
8、运行
ruby script/server webrick -e production
9、访问:http://localhost:3000
使用admin/admin进行登入
进入设置,把默认语言设为“简体中文”,然后设置当前用户的默认语言设为“简体中文”,这样就是中文界面了
-----------------------------------------
继续,将redmine设置为windows 7的服务
1、首先需要配置mysql为windows 7的服务
2、Ruby提供一个安装Ruby程序为服务的包:mongrel_service。安装其实很简单,运行:gem install mongrel_service
3、安装redmine为服务,执行mongrel_rails service::install -N RedMine -c C:\redmine-1.1.3 -p 3000 –e production
注意:此处打开cmd窗口时,需要输入cmd后,不是直接按Enter,而是按 Ctrl+Shift+Enter打开Cmd窗口,此时以管理员身份打开,否则安装为服务时会提示拒绝访问。
4、安装服务后,需检查服务-e后的参数是不是production,如果不是production而是development,则在注册表中把参数手动改为production。修改方法是:打开“注册表编辑器”,展开分支“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”,选择redmine服务,找到ImagePath项,修改保存后在服务列表中启动服务,并把服务设置自动启动。
OK!
posted @
2011-05-20 10:25 The Matrix 阅读(2772) |
评论 (0) |
编辑 收藏
参见如下链接:
posted @
2011-03-25 21:33 The Matrix 阅读(1189) |
评论 (0) |
编辑 收藏
没仔细研究,先把项目地址记下:
http://arshaw.com/fullcalendar/
这个博客中另有几个推荐的类似项目:
http://hi.baidu.com/freezesoul/blog/item/15c5d73fe4a315c17d1e71ec.html
posted @
2010-11-09 20:37 The Matrix 阅读(1266) |
评论 (0) |
编辑 收藏
这几天在看郎咸平的《谁在谋杀中国经济》,这本书我基本看过一遍了,认为全书的重点在于中华文化的四大茫然,整本书都是围绕这四大茫然展开论述,中华文化的四大茫然如下:
茫然之一:就知道赚钱
茫然之二:不了解世界
茫然之三:不了解别人为什么那么看你
茫然之四:不了解自己的缺点
大家有时间可以看看这本书,我觉得写的不错,至少我自己看完深有感触,我觉得完全可以将这几点套用到我们生活的很多方面,比如对于我们搞IT的技术人员来说,我认为现在很多人也存在四大茫然:
茫然之一:只知道完成任务。也许是我年龄大了点,但我觉得现在很多小朋友,尤其是85年以后出生的,工作的时候只是在完成任务,事情做完了,有时也不测试,或者就是匆匆测试,匆匆结束,并没有好好的想为什么这件事老大要让我这样做,这样做有什么好处,会不会有缺点,我是不是有更好的方法。当你不去想的时候,意味着你少了很多提高的机会。
茫然之二:不追究为什么。很多人做事情就象第一条说的那样,只是完成任务,并不去想其中的原理是什么。面试过很多人,对于目前工作两三年的大部分人来说(当然我面试的不是好的学校毕业的,基本学校为中等偏下点),一旦涉及到Spring、Hibernate、Struts等框架深入点东西的时候,大都回答不上来,只是对框架能熟练应用而已。这样够么?计算机的很多知识,当你熟悉了其运作原理,框架对于你来说,只是手到擒来,看看学学就会用了。我问过好几个同事,平时晚上回去都干嘛,很多人都回答我晚上回去看看电视,稍微看看书就睡觉了。我有点惊讶,我想如果你想成为一个技术高手,一个能拿高薪的程序员,你又没有天份,又不付出超过常人的努力,凭什么你比别人强呢?
茫然之三:不善于总结。很多人(又是很多人)过着做一天和尚撞一天钟的日子,日子一天一天过去,基本不去总结,只是过了好长一段时间会发觉,原来最近我啥也没有进步,啥也没学到,还是老样子。知识在于积累,你只有不断总结,知识才能更好的积累,才能更好的为你服务。
茫然之四:没有明确的目标。一个人没有目标就决定了他不会有长足的进步。你都没有想过自己要成为一个架构师,一个项目经理,一个部门经理,一个技术总监,都没有想过要成为这样的人需要具备什么样的条件,你怎么可能知道自己欠缺什么?需要补充什么呢?长远目标要明确,然后根据长远目标进行分析,我要达到这样的目标,还有什么欠缺,据此制定短期目标,短期目标一定要可实现可操作。这样随着你目标的一步一步实现,你各方面的能力也随之提高了。
写了几点,也作为对自己的鞭策。
posted @
2010-04-14 22:05 The Matrix 阅读(6121) |
评论 (10) |
编辑 收藏
2010年已经过去一个月了,赶在农历春节前列一下今年的读书清单,不能总把精力放在工作中了,也需要补充点新知识了,否则没有新东西能贡献出来了。
1、《OSGI原理与最佳实践》,结合这本书并研究SpringDM,做一些实例。
2、《SQL语言艺术》
3、《Oracle9i&10g编程艺术》
4、《架构之美》
5、《UML和模式应用》
6、《UML彩色建模》
7、《领域驱动设计与模式实战》
8、《敏捷软件开发 原则、模式与实践》
9、《软件开发的边界》
10、《软件随想录》
11、《走出软件作坊》
就这么多了,9、10、11去年都看过一遍了,但好多地方粗粗过了一下,还要仔细阅读。
另外也对自己提个要求,看书要做读书笔记。
2010年-我的读书年!
posted @
2010-02-03 23:27 The Matrix 阅读(2754) |
评论 (6) |
编辑 收藏
摘自《软件随想录》
看了软件随想录中下面一段话,觉得非常棒,作为一名软件从业人员,不一定有机会能实现描述中的优秀软件产品,但这样的理念需要贯穿我们每个人的心田,时刻记在心中:
【创造一个有使用价值的软件,你必须时时刻刻都在奋斗,每一次的修补,每一个功能,每一处小小的改进,你都在奋斗,目的只是为了再多创造一点空间,可以再多吸引一个用户加入。没有捷径可走。你需要一点运气,但是这不取决于你是否幸运。你之所以会有好运气,那是因为你寸土必争。
每天你前进一小步,将一件东西做得比昨天好一点点。这样的改进几乎看不出可以让谁获益,几乎没有变化。但是,你前进了一小步。
有无数个要做的这样微小的改进。
为了发现可以改进的地方。你必须有一个思维定势,始终如一的用批判的眼光看世界。随便找一样东西,如果你看不出它的缺点,那么你的思维转型还没有成功。当你成功的时候,你身边亲密的人会被你逼得发疯。你的家人恨不得杀了你。当你步行上班的时候,看到一个司机漫不经心地开车,你几乎用了所有的意志力才勉强忍不住冲上去告诉那个司机,他这样开车差点儿要了旁边坐在轮椅上的那个可怜小孩的命。
当你改正了一个又一个这样的小细节后,当你磨光、定型、擦亮、修饰你的产品的每一个小边角后,就会有神奇的事情发生。厘米变成分米,分米变成米,米变成了千米。你最后拿出来的是一件真正优秀的产品。它第一眼就让人觉得震撼,出类拔萃,工作起来完全符合直觉。就算100万个用户中有一个用户某天突然要用到一个他100万次使用中才会用到一次的罕见功能,他发现了这个功能不仅能用,而且还很没:在你的软件中,即使是看门人的小屋都铺着大理石的地板,配有实心的橡木门和桃花心木的壁板。
就是在这个时候,你意识到这是一个优秀软件。】
posted @
2010-01-05 21:25 The Matrix 阅读(2270) |
评论 (11) |
编辑 收藏
http://www.insideria.com/2009/05/flex-4-custom-layouts.html
http://www.insideria.com/2009/10/easy-flex-skinning-with-firewo.html
posted @
2009-11-25 12:25 The Matrix 阅读(578) |
评论 (0) |
编辑 收藏
在Flash Builder 4 Beta 2版本中,使用mxml方式实现state的切换有了很大改进,使用起来更方便,具体可参见下文:
http://onflex.org/learn/fx4/index.php?page=States
看完这篇文章后,想到一个问题,如何用编程的方式实现切换呢,找了参考资料,实现了一个例子,代码如下:
开发环境:Flash Builder 4 Beta2
<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
creationComplete="creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.core.UIComponent;
import mx.events.FlexEvent;
import mx.states.SetProperty;
import mx.states.State;
import spark.components.Label;
import spark.components.Panel;
private var stateArray : Array;
private var state1 : State;
private var state2 : State;
protected function creationCompleteHandler(event:FlexEvent):void
{
state1 = new State();
state1.name="state1";
state2 = new State();
state2.name="state2";
var stateArray1:Array = new Array();
var stateArray2:Array = new Array();
state1.overrides = stateArray1;
state2.overrides = stateArray2;
stateArray = new Array();
stateArray.push(state1);
stateArray.push(state2);
this.states = stateArray;
var panel:Panel = new Panel();
group.addElement(panel);
var label:Label = new Label();
panel.addElement(label);
buildStates(stateArray1, stateArray2, panel, label);
this.currentState = "state1";
}
private function buildStates(stateArray1:Array, stateArray2:Array,
compenent1:UIComponent, compenent2:UIComponent) : void{
stateArray1.push(makeSetProp(compenent1, "title", "Panel1"));
stateArray1.push(makeSetProp(compenent2, "text", "One"));
stateArray2.push(makeSetProp(compenent1, "title", "Panel2"));
stateArray2.push(makeSetProp(compenent2, "text", "Two"));
}
private function makeSetProp(target:UIComponent, name:String, value:*):SetProperty{
var sp:SetProperty = new SetProperty();
sp.target = target;
sp.name = name;
sp.value = value;
return sp;
}
]]>
</fx:Script>
<s:VGroup autoLayout="true" horizontalAlign="center">
<s:HGroup horizontalCenter="0">
<s:Button label="One"
click="this.currentState='state1'"/>
<s:Button label="Two"
click="this.currentState='state2'"/>
</s:HGroup>
<s:HGroup id="group" horizontalCenter="0">
</s:HGroup>
</s:VGroup>
</s:Application>
posted @
2009-11-11 21:59 The Matrix 阅读(1611) |
评论 (0) |
编辑 收藏