恶搞谷歌翻译,伤不起!

谷歌的很多应用都很棒,无意中在网站上看到有大神介绍,如何玩转谷歌翻译的语音功能~!尝试了一下,我都快笑尿了~!

这里是谷歌翻译入口(猛击一下!):http://translate.google.cn/

然后把下面的内容拷贝到谷歌翻译的对话框中,然后点击语音朗读(见上图)

继续阅读 »

ECSHOP可在后台自定义价格区间的方法

ECSHOP系统的在商品的价格区间是自动生成,用户最多能设置的是分成几个区间,而不能设置每一个区间的具体数值。

如下图:

在实际使用上几乎没什么意义,而用户只能设置多少个区间,如下图:

所以我们的目标是将这个部分该为用户可随意配置价格区间。

继续阅读 »

502 Proxy Error的错误解决方案

当前环境:
1、UBUNTU系统
2、apache2服务
3、将a.com和www.a.com域名解析到一个IP上,www.a.com为主要的域名绑定在虚拟机中。

目标
将:a.com  反向到 www.a.com
(不要问我为什么这样做,因为某些系统程序只接受一个域名)

一般的配置方案是:

  1. <VirtualHost>
  2.   ServerName a.com
  3.   ProxyPass / http://www.a.com:80/
  4.   ProxyPassReverse / http://www.a.com:80/
  5. </VirtualHost>

但是有50%的几率出现一下错误:


Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /.
Reason: DNS lookup failure for: www.a.com

之前我查到了在网上比较常见的方法来处理(这TM就是百度那破玩意搜索出来的奇葩):
1、检查过反向的代码是否以“/”结束。
2、设置新的变量SetEnv force-proxy-request-1.0 1SetEnv proxy-nokeepalive 1
3、启用pf就出这个错误,停用就正常(纯属扯蛋的方法,这说明是pf阻止了的机器和DNS服务器53端口间的通讯)

都失败了!

后来尝试了一个哥们建议的方法(成功了!):

把那个域名 www.a.com 记录加入到 /etc/hosts 避免调用 DNS 服务器来解析,调用DNS服务器解析肯定会浪费时间的;

终于成功了!那个哥们的解释是:

Apache在对这个绝对URL进行DNS解析时失败,可能的原因是你的DNS服务器突然出现故障

这里我还是要鄙视一下啃爹的BAIDU、国内的那些垃圾网站和只会Ctrl+C、Ctrl+V的垃圾博客写手们,因为你们这些奇葩才让我们的环境那么艹蛋。

给首页的促销商品增加倒计时

在ECSHOP中是可以设置商品的促销时间和倒计时效果的,但是在默认模板中却没有被提现出来。这个我在网上找到的代码,整理成实际可以使用的代码发贴出来给大家。

在第三段的代码段中,大家可以根据自己的需要修改49到58行的HTML代码,其它地方基本不用再改。

这段代码的时间显示格式为 xxx 天 xxx 小时 xxx 分 xxx 秒,如果你只打算显示小时的话可以修改一下第三段代码34行,将天数乘24在加到小时上就OK了。

这里贴出实际的样式效果:

1、打开includes/lib_goods.php,找到get_promote_goods()函数部分。

  1. $goods[$idx]['url'] = build_uri('goods', array('gid' => $row['goods_id']), $row['goods_name']);

添加如下内容:

  1. /* 促销时间倒计时 */
  2. $time = gmtime();
  3. if ($time >= $row['promote_start_date'] && $time <= $row['promote_end_date']){
  4.     $goods[$idx]['gmt_end_time']  = local_date('M d, Y H:i:s',$row['promote_end_date']);
  5. }else{
  6.     $goods[$idx]['gmt_end_time'] = 0;
  7. }

2、然后将 library/recommend_promotion.lbi 里的内容替换成以下代码:

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf8">
  2. <!-- {if $promotion_goods} -->
  3. <script >
  4. var Tday = new Array();
  5. var daysms = 24 * 60 * 60 * 1000
  6. var hoursms = 60 * 60 * 1000
  7. var Secondms = 60 * 1000
  8. var microsecond = 1000
  9. var DifferHour = -1
  10. var DifferMinute = -1
  11. var DifferSecond = -1
  12. function clock(key)
  13.   {
  14.    var time = new Date()
  15.    var hour = time.getHours()
  16.    var minute = time.getMinutes()
  17.    var second = time.getSeconds()
  18.    var timevalue = ""+((hour > 12) ? hour-12:hour)
  19.    timevalue +=((minute < 10) ? ":0":":")+minute
  20.    timevalue +=((second < 10) ? ":0":":")+second
  21.    timevalue +=((hour >12 ) ? " PM":" AM")
  22.    var convertHour = DifferHour
  23.    var convertMinute = DifferMinute
  24.    var convertSecond = DifferSecond
  25.    var Diffms = Tday[key].getTime() - time.getTime()
  26.    DifferHour = Math.floor(Diffms / daysms)
  27.    Diffms -= DifferHour * daysms
  28.    DifferMinute = Math.floor(Diffms / hoursms)
  29.    Diffms -= DifferMinute * hoursms
  30.    DifferSecond = Math.floor(Diffms / Secondms)
  31.    Diffms -= DifferSecond * Secondms
  32.    var dSecs = Math.floor(Diffms / microsecond)
  33.   
  34.    if(convertHour != DifferHour)
  35.        a="<font color=red>"+DifferHour+"</font>天";
  36.    if(convertMinute != DifferMinute) 
  37.        b="<font color=red>"+DifferMinute+"</font>时";
  38.    if(convertSecond != DifferSecond) 
  39.        c="<font color=red>"+DifferSecond+"</font>分"
  40.    d="<font color=red>"+dSecs+"</font>秒"
  41.    if (DifferHour>0) {
  42.      a=a
  43.    }else{
  44.      a=''
  45.    }
  46.    document.getElementById("leftTime"+key).innerHTML = a + b + c + d; //显示倒计时信息
  47. }
  48. </script>
  49. <div id="sales" class="f_l clearfix">
  50.     <h1><a href="../search.php?intro=promotion"><img src="images/more.gif" /></a></h1>
  51.     <div class="clearfix goodBox">
  52.     <!--{foreach from=$promotion_goods key=key item=goods name="promotion_foreach"}-->
  53.     {if $smarty.foreach.promotion_foreach.index <= 3}
  54.         <div class="goodList">
  55.             <a href="{$goods.url}"><img src="{$goods.thumb}" border="0" alt="{$goods.name|escape:html}"/></a><br />
  56.             <p><a href="{$goods.url}" title="{$goods.name|escape:html}">{$goods.short_name|escape:html}</a></p>
  57.             {$lang.promote_price}<font class="f1">{$goods.promote_price}</font><br><font class="f4" id="leftTime{$key}">{$lang.please_waiting}</font>
  58.         </div>
  59.     {/if}
  60. <script>
  61.     Tday[{$key}] = new Date("{$goods.gmt_end_time}");  
  62.     window.setInterval(function(){    
  63.         clock({$key});
  64.     }, 1000);    
  65. </script>
  66.          <!--{/foreach}-->
  67.     </div>
  68. </div>
  69. <!-- {/if} -->

在后台商品也设置促销商品,刷新首页即可看到效果!

一个黑客妈妈给儿子的便条

亲爱的儿子:

如果你看到了这张便条,那一定是你的电脑出了问题,上不了网了,你不用给咱们的网络供应商打电话,也不用反复查看浏览器了。你只要按照我说的做就行了:你先去街角那家药房给爷爷买一趟药,药方就放在玄关柜的镜子下面。顺便再到药房旁边的小商店买两袋牛奶、一袋切片面包和一包茶。路过车站旁边的菜摊时买两公斤土豆、半公斤圆葱和一个大头菜。所有的收据都要收好。

回来后你要抓紧时间做作业。尽管你今天的作业不多,只有数学,但这绝不是你一直拖到深夜的理由。打开教材第116页、第118页和第121页,一共有三道题。第三道题结尾有答案,但你要看清楚,这道题是要你列出方程。而不是要你只简单地写出计算结果。前两道题还好,没有答案。做完作业后,你再把自己的房间收拾一下。你把所有的东西都放回原位后,数一下搁架上有多少张光盘和玩具,箱子里有多少辆汽车和变形金刚。

所有这些事都处理完,你就可以上网了。你点击浏览器,界面弹出窗口需要输入密码时,你依次输入你所做的三道数学题的答案,药房、商店购物收据上的金额,以及你房间中各种玩具和光盘的总数就可以了。 我相信你一定能顺利上网。

我晚上下班回来后给你讲一个女黑客成功地袭击了微软服务器和恐怖分子的故事。

吻你!

你的妈妈

程序员最喜欢说的20句话

1.见鬼了….

2.以前重来没出过问题。

3.昨天还好好的。

4.这怎么可能?

5.一定是机器出了问题。

6.你究竟输入什么了导致它崩溃?

7.应该是数据有问题。

8.我好几个星期都没碰这块代码了!

9.你一定弄错了版本。

10.怎么会就这么巧。

11.我不可能把所有的问题都测到。

12.这不可能是因为它引起的。

13.本来好用的,只是没测试过。

14.肯定是有人改了我的代码。

15.查查你机器上有没有病毒。

16.even though it doesn’t work, how does it feel?

17.你的机器上不能使用这个版本。

18.为什么你会觉得应该出那个结果才是正确的?

19.程序出问题时你在干什么了?

20.这问题我改了呀!

《南天门破了,玉帝要招人维修》

南天门破了,玉帝要招人维修,印度人和德国人还有中国人分别去报价。

印度首先说:“我要三万元就可以修好了,一万元的材料,一万元人工,自己赚一万元。”玉帝摇摇头叫他回去等候消息。

跟着德国人报价,说:“我的材料好,我要六万元,两万元的材料,两万元的人工,自己赚两万元。”

玉帝听了也叫他回去等消息。

到中国人报价了,他说:“我要九万元,三万元给你,我自己赚三万,三万元给那个印度人做。”

玉帝听了即时拍板说:“就给你中国人承包了。”还得欠印度人50%的工程款,就说甲方没给钱!

暗中再找印度人要20%的回扣..在押20%工程保证金。

印度人一看赚不到钱,于是就去温州买了一批假冒伪劣的建筑材料,采购员弄了一大笔回扣。

由于钱少雇不起有资质的施工队伍就把工程包给了一个厨子,厨子利用快速切菜法,三上五除二,工程完工了……

于是就给玉帝手下主管工程验收的送礼最终以优良工程验收,并奖励厨子鲁班奖,现在出了问题,玉帝想要查是谁的责任于是就出现了大家踢皮球的局面。

如何保存新鲜的毛豆

最近一直自己做菜煮饭吃,难免也遇到一个问题就是如何保存新鲜的蔬菜!很长时间没有吃毛豆了,于是买了一些。因为冰箱中还有一些存菜,没办法只好先把毛豆保存起来。因为不是很懂煮毛豆和保存方法,于是百度谷歌了一下,了解毛豆的保存比较麻烦。具体步骤如下: 继续阅读 »

virtualbox 通过命令创建虚拟机

作为一款功能强大的开源虚拟机软件,VirtualBox 不仅提供有图形化的用户界面,而且也包含命令行界面。VirtualBox 的命令行界面程序为 VBoxManage,通过它你可以完成从命令行创建虚拟机、修改虚拟机的选项设置、对虚拟机进行控制等几乎所有的操作。如果在 Headless Server 上,你将发现 VirtualBox 的命令行界面非常有用。

1、在虚拟机环境中注册一个虚拟机,命令

VBoxManage createvm –name “虚拟机的名称” –register

–name后面的参数为虚拟机名称

2、为虚拟机创建一个磁盘,命令:

VBoxManage createhd –filename “windows.vdi” –size 10000 –rememberSun VirtualBox Command Line

–filename 参数为磁盘的名称,同时也可以指定路径
–size 为磁盘大小,单位为MB
–rememberSun VirtualBox Command Line 暂时不知道

3、配置虚拟机的内存和网络

VBoxManage modifyvm “虚拟机名称” –memory “512” –nic1 nat

–memory 参数为内存大小,单位为MB
–nic1 网络模式,可选参数有 nat | …..后面补充

4、配置IDE控制器

VBoxManage storagectl “虚拟机名称” –name “IDE Controller” –add ide –controller PIIX4

–name 参数标志控制器的名称,随便写即可
–controller 表示控制器的类型,PIIX4 | 。。。后面补充

action:如果漏了这部很多情况下我们在加载磁盘文件的时候会出现这个报错:

ERROR: Could not find a storage controller named ‘IDE Controller’
Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component Machine, interface IMachine, callee nsISupports
Context: “AttachDevice(Bstr(“IDE Controller”), 0, 0, DeviceType_HardDisk, uuid)” at line 556 of file VBoxManageModifyVM.cpp

5、为控制器加载端口

VBoxManage storageattach “虚拟机名称” –storagectl “IDE Controller” –port 0 –device 0 –type hdd –medium windows.vdi

–storagectl 以创建的控制名称
–port 端口号,如果只有一个直接配置为0即可
–device 设备序号,同上
–type 控制器类型, hdd【硬盘】
–medium 具体我还不清楚,从命令上理解为挂在磁盘,参数也可以写成“/home/ssf/window.vdi”

6、配置磁盘和光驱,命令

VBoxManage modifyvm “虚拟机名称” –hda “windows.vdi” –dvd /home/Downloads/windows.iso –boot1 dvd

–hda 参数为创建的磁盘文件路径和文件名,可写为”/home/dsf/window.vdi”
–dvd 配置DVD光驱驱动器,参数与磁盘相同
–boot1 配置启动优先级,例子中的代码dvd表示为从光盘启动

7、启动虚拟机

VBoxManage startvm “虚拟机名称”

8、物理机与虚拟机的端口转发

#申明协议类型
VBoxManage setextradata “【虚拟机名称】” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/【协议名称】/Protocol” TCP
#申明指向的虚拟机端口号
VBoxManage setextradata “【虚拟机名称】” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/【协议名称】/GuestPort” 22
#申明物理机的端口号
VBoxManage setextradata “【虚拟机名称】” “VBoxInternal/Devices/pcnet/0/LUN#0/Config/【协议名称】/HostPort” 2222

基本的端口申明就事由这三句话组成。

【虚拟机名称】表示这个地方换成你的实际需要配置的虚拟机名称
【协议名称】这个地方的内容随便写,类似与给这个转发规则取一个名字,注意每组规则这个地方名字必须相同

ubuntu nginx 相关配置笔记

最近的项目需要使用Nginx来搭建环境,并且通过反向代理转发到GlassFish上面。现在把相关的操作内容项记录一下,方便自己查询。 继续阅读 »

无觅相关文章插件,快速提升流量