Submitted by gouki on 2009, July 6, 10:52 PM
吕达嵘的博客上有这个软件。仔细看了一下内容,发现确实不错,值得收藏一下。
Instant Demo 这个应用程序帮助你创建你软件的演示和手册,使用 Flash格式,还可以声音注解,实时的声音一起捕获以及记录或者插入声音的文件在编辑期间。编辑特色包括作注解文本和交互的热点。程序自动地计算你的作 注解的文本,和图片的正确的展示时间。生成的文件尺寸比较小,每分需要动画的大概为 0.1MB。
它可用于制作演示和培训材料,主要特点如下:
实时录制 Windows 桌面活动;
提供快速、方便的屏幕录制;
适合制作基于Web的演示;
能够增强你的在线帮助文档功能;
让你的客户支持服务更加专业;
快速制作培训材料。
汉化说明:
1、此为汉化破解版,直接安装后使用。
2、感谢 CCDebuger 朋友的破解,使其具有专业版功能。
3、此汉化无捆绑。
下载:http://www.hanzify.org/?Go=Show::List&ID=9363
Tags: 演示软件
Software | 评论:0
| 阅读:16447
Submitted by gouki on 2009, July 5, 9:12 AM
最近想看看yii,也想看看他的demo,就去了demo网站:http://www.yiiframework.com/demos/,挺有意思。
创意?不知道
下载一个vm虚拟机,直接在vm里面跑起来。挺不错
我试了一下,下载下来19M,解开后,稍有点大70多M,直接放到vm server里就可以运行了。
根据官方所说,它支持:
The following components are installed on this appliance:
- PHP 5.2.3 (in fast-cgi mode)
- Lighttpd 1.4.7 (mod_rewrite and fast-cgi enable)
- Yii 1.0.6 (including demos)
- PostgreSQL 8.2.4
- phpPgAdmin 4.1.3
- Linux kernel 2.6.17.7
居然不是mysql,看来mysql太大了,而且太适合cgi之类的进程?(windows下的精简版用过,好象也不是特别大。还是说yii对postgreSql有特别的优待?)
再试了一下,居然也支持ssh连接。
但是缺点
1、无法切换到root
2、无法关机???halt不行,shutdown说没有这个命令
3、wget??不能下载?本来想装个samba看看的。。看来只能算了。只能当成普通的虚拟机玩玩吧。
最后再说一点,可以考虑象这样的打包方式进行演示。代码加密,环境配置好,windows下面用小型整合包,linux下面用这样的虚拟机,两份同时给客户展示。。
或许会有更多不同的用户体验?
也是猜猜而已。。。
Tags: yii, linux, vmserver, applications
PHP Framework | 评论:3
| 阅读:29918
Submitted by gouki on 2009, July 4, 11:15 PM
本来我以为是虚拟机,后来一看,原来是建多个目录。我是被人问过类似问题的。。这个到正好解决我当初被人问的问题
原文来自:http://xinsync.xju.edu.cn/index.php/archives/5134
更改第一个站点的根目录:在文件Apache2.2\conf\httpd.conf中查找 DocumentRoot 属性,将后面的路径改为你的主站点的路径,如:D:\www\web1
为第二个Apache服务建立配置文件:复制并重命名httpd.conf为web2.conf(举个例子而已,也可以叫my.conf等等), 修改web2.conf中的Listen 8080(原来为80)、ServerName localhost:8080(原来为80)、DocumentRoot “D:/www/web2″ (原来为web1)
添加第二个Apache服务:Apache安装目录的bin子目录下,使用如下命令将Apache安装为Windows NT服务:httpd.exe -k install -n “服务名” -f “d:\apache2.2\conf\web2.conf”
其他的命令:
将Apache安装为Windows NT服务:
httpd -k install
指定服务的名称,当你在同一机器上安装多个Apache服务时,你必须为它们指定不同的名字。
httpd -k install -n “服务名”
为不同名称的服务使用不同的配置文件,则安装时需要指定配置文件:
httpd -k install -n “服务名” -f “c:\files\my.conf” 如果你使用的是第一个命令,也就是除 -k install 外没有其它命令行参数,那么被安装的服务名称将是:Apache2 ,配置文件将使用conf\httpd.conf 。
移除一个Apache服务:
httpd -k uninstall
使用下述命令移除特定名称的Apache服务:
httpd -k uninstall -n “服务名”
通常,启动、重启、关闭Apache服务的方法是使用Apache Service Monitor工具,另外也可以使用控制台命令:NET START Apache2 和 NET STOP Apache2 或者通过Windows服务控制面板。在启动Apache服务之前,你应当使用下面的命令检查一下配置文件的正确性:
httpd -n “服务名” -t
你可以通过命令行开关来控制Apache服务。要启动一个已经安装的Apache服务,可以使用:
httpd -k start
要停止一个已经安装的Apache服务,可以使用:
httpd -k stop
或
httpd -k shutdown
要重启一个运行中的Apache服务,强制它重新读取配置文件,可以使用:
httpd -k restart
Tags: apache
PHP | 评论:0
| 阅读:22450
Submitted by gouki on 2009, July 4, 11:13 PM
最精确硬盘分区的算法如下(来自网络搜索):我是转自http://xinsync.xju.edu.cn/index.php/archives/5137
硬盘一般有255磁头,63扇区,故每柱面大小为:
512byte x 255 x 63=8225280bytes =7.84423828125 MB
如果要分40GB,那么要40×1024MB=40960MB
需要柱面数为40960÷7.84423828125=5221.66
取整数既为5222个柱面
应分M数为5222×7.84423828125=40962.6123046875MB
不管小数点后面几位都进1,也就是40963MB,windows就认为是40GB了。
这个方法NTFS和FAT32通用。
下面附10GB到200GB整10GB递增的精确计算结果:
10GB = 10245MB
20GB = 20482MB
30GB = 30726MB
40GB = 40963MB
50GB = 51208MB
60GB = 61444MB
70GB = 71681MB
80GB = 81926MB
90GB = 92162MB
100GB = 102407MB
110GB = 112644MB
120GB = 122888MB
130GB = 133125MB
140GB = 143362MB
150GB = 153606MB
160GB = 163843MB
170GB = 174088MB
180GB = 184324MB
190GB = 194561MB
此精确分区结果,在管理工具-磁盘管理界面,和Windows资源管理器里面显示的是整数,10G就是10.00GB,20G就是20.00GB,40G就是40.00GB。
Tags: 硬盘, 分区
Software | 评论:0
| 阅读:16446
Submitted by gouki on 2009, July 3, 9:40 AM
PHP更改文件编码应该算是比较简单的事情,在使用uchome项目(UTF-8)的时候,发现程序的编码好奇怪,有ANSI的,和UTF-8的。
很妖的是,我在ubuntu下面打开这些ansi的文件时,由于文件中含 有中文,结果全显示乱码,编码还显示为latin1。然后拷到另外一个目录,编码显示就正常了,为CP936。
由于编辑器没有批量转换功能,固此,只能使用PHP自带的功能了。。。(关键我也不会其他语言)
由于转换的时候会需要判断一下编码,如果编码本身是UTF-8的,再使用mb_convert_encoding($data,'utf-8','gbk'),反而会导致乱码。。
所以。。。就有了以下程序
慎重申明:Dir类的rmdir有BUG,请勿使用。。。。写的时候,我没有考虑太多,如果设定了某个目录,最终是会把这个目录也会删除的,而与我事先想的。把该目录下的内容清空有误差。(当然也可以在删除后重建,但毕竟不是原来的权限了。)
代码如下:
PHP代码
- <?php
-
- $dirName = "./uchome";
-
- $files = Dirs::read( $dirName , true);
-
- foreach( $files as $fileName )
- {
- if( is_file( $fileName ) && in_array(Files::extension( $fileName ) , array('php','html','htm'))){
- $fileData = Files::read( $fileName );
- $fileType = mb_detect_encoding($fileData , array('UTF-8','GBK','LATIN1','BIG5')) ;
- if( $fileType == 'CP936'){
- $fileData = mb_convert_encoding($fileData ,'utf-8' , 'gbk');
- if( Files::save( $fileName , $fileData )){
- echo "{$fileName} convert successed";
- echo "<br />";
- }
- }
- }
- }
-
-
-
-
- class Dirs
- {
- static function read ( $dirname , $recursive = false)
- {
- static $allInfo;
- $dirname .= subStr( $dirname, -1 ) == "/" ? "" : "/";
- $dirInfo = glob( $dirname . "*" );
- if ( $recursive == false ){
- return $dirInfo;
- }else{
- foreach ( $dirInfo as $info ){
- if ( is_dir( $info ) ){
- if ( !is_readable( $info ) ){
- chmod( $info, 0777 );
- }
-
- $allInfo[] = $info;
- self::read( $info , true);
- }else{
-
- $allInfo[] = $info;
- }
- }
- }
- return $allInfo;
- }
-
- static function rmdir ( $dirname )
- {
- if ( is_dir( $dirname ) && !is_writeable( $dirname ) ){
- if ( !chmod( $dirname , 0666 ) ){
- return false;
- }
- }else if ( !is_dir( $dirname ) ){
- return false;
- }
- $dirname .= subStr( $dirname, -1 ) == "/" ? "" : "/";
- $dirInfo = glob( $dirname . "*" );
- foreach ( $dirInfo as $info ){
- if ( is_dir( $info ) ){
- self::rmdir( $info );
- }else{
- unlink( $info );
- }
- }
- @rmdir( $dirname );
- }
-
- function mkdir($dir, $mode = 0777)
- {
- if (!is_dir($dir)){
- $ret = @mkdir($dir, $mode, true);
- if (!$ret){
- exit('function:mkdirs failed');
- }
- }
- return true;
- }
- }
-
- class Files
- {
- static function read ( $filename )
- {
- if ( !is_readable( $filename ) ){
- chmod( $filename, 0644 );
- }
- return file_get_contents( $filename );
- }
-
- static function create ( $filename , $mod = 0666 )
- {
- if ( @touch( $filename ) == false){
- $fp = fopen( $filename, "a+" );
- if ( $fp ){
- fclose( $fp );
- }
- }
- chmod( $filename, 0666 );
- }
-
- static function save ( $filename , $data , $append = false)
- {
- if ( !file_exists( $filename ) ){
- self::create($filename);
- $append = false;
- }
- if ( $append == false ){
- return file_put_contents( $filename , $data );
- }else{
- if ( !is_writeable( $filename ) ){
- chmod( $filename, 0666 );
- }
- return file_put_contents( $filename , $data , FILE_APPEND );
- }
- }
-
- static function delete ( $filename )
- {
- if ( !is_array( $filename ) ){
- $filenames = array($filename);
- }
- foreach ( $filenames as $filename ){
- if ( is_file( $filename ) ){
- if( !unlink( $filename ) ){
- chmod( $filename , 0666 );
- unlink( $filename );
- }
- }
- }
- }
-
- static function extension( $filename ){
- return strtolower(pathinfo( $filename , PATHINFO_EXTENSION ));
- }
- }
Tags: php, mbstring
PHP | 评论:1
| 阅读:27553