随手挖出来的google朗读API 可以朗读任何语言 直接返回就可以调用

http://translate.google.cn/translate_tts?ie=UTF-8&q=D&tl=en&total=1&idx=0&textlen=1&prev=input

 

以上是google翻译中内嵌的朗读功能在挖掘的时候挖出来的一点小东西留作以后备用

其中q=D是要朗读的内容. tl=朗读语音 是中文就是zh-cn以此类推,中间可以做任意替换,返回的MIME类型是audio/mepg

这里tl=en就代表是调用英文语音进行朗读

项目中要用就挖掘出来了,给大家做一个参考.觉得好的话留个言吧哈哈~

 

 

两个实例

google 说 hello word:

http://translate.google.cn/translate_tts?ie=UTF-8&q=hello%20world&tl=en&total=1&idx=0&textlen=11&prev=input

google说我勒个去还能这么用: 

http://translate.google.cn/translate_tts?ie=UTF-8&q=%E6%88%91%E5%8B%92%E4%B8%AA%E5%8E%BB%E8%BF%98%E8%83%BD%E8%BF%99%E4%B9%88%E7%94%A8&tl=zh-CN&total=1&idx=0&textlen=9&prev=input

Read More

家园2012全新综合智能面试系统-办公自动化初探-第一篇 初始想法

之前和家园的童鞋们提到今年面试的时候有兴趣想尝试一个全新的领域,使用基本的web开发技术制作一整套从面试报名 -> 排队 -> 评判的综合智能化系统,也算是朝着类似OA系统开发方向做些研究.

其中这些内容在网上也是没有任何参考资料的,正好可以挑战一下整套系统的0参考开发.

虽然说手头几个项目都还在烦人地纠缠中,但是做爱好的事情是不容任何东西来改变和质疑地!!所以说开工就开工.

 

 

 

最初设计的想法是这样:

 

由于去年的招新第一轮”海面”的环节报名人数N多,导致当时晚上到场的时候异常混乱还有人插队以及找不到报名表等各种不可控的突发事件,给来参加面试的很多同学留了一个不甚佳的面试体验,所以今年着手做些改变.

目前的报名方式分为

1.线下填写报名表报名 (超炫丽的报名表由设计中心出品)

2.在线报名系统报名 http://join.redhome.cc (基于Thinkphp2.0?忘了,后台不是我做的.当时只负责了前端的内容….)

然后今年经过和各位同僚的讨论之后决定对此进行更深一步的整合,实现线上线下的一体化避免了潜在的混乱也更加正规而且效率上应该会有不错的提升.  接着自己的想法就像天马行空般的不断蹦出来蹦出来,然后自动在大脑里面进行了快速的技术分析和执行性分析后综合得出我们现在可能需要的一套系统和大致的实现方案,现特别在博客上记录一下开发过程,到时候有新人加入开发也可以作为一个参考.

本套系统没有一个很合适的名字,我就暂时叫他 家园综合智能面试系统 ,本套系统的设计最终为实现如下功能:

1.线上线下报名者的统一管理 :所有数据都统一到这套系统的数据库当中并进行统一格式统一编号的管理

2.首轮面试时远程自动排号叫号 : 海量的面试者集中到一个大的面试等待教室,大屏幕显示当前各部门的面试情况,面试者根据自己填报的不同部门和大屏幕显示的叫号进度进入不同的面试室,其中叫号过程需要语言提示.类似银行的叫号系统,当然我们这边没有VIP号,大家一视同仁,(PS:不过你愿意搬几砖给我的话,可以考虑帮你刷出一个VIP号来…偷笑.哈哈)

3.各中心面试区进度及评分管理 : 每个部门每个面试区需要标配一台电脑or大屏智能手机 (到时候电源是个问题?) 在面试完当前这位面试者之后,在系统后台有个简易快速的评分记录功能,完全抛弃传统的纸质记录模式,方便快捷.甚至可以做到科学地从几大方面来进行评判然后系统最终智能得出综合评分,对于面试者来说也是更加客观公平. 完成一个人的面试之后,敲一下键盘,系统自动叫下一位面试者.

4.首轮面试结束后的自动化统计 : 根据各中心自己不同的筛选要求,系统可以自动排序出要求的若干位入选成员.并显示出他们的相关信息方便后续联系.

5.后续面试环节的记录和评分 : 各中心的总监及副总监可以对后续的2 3轮面试过程进行系统记录,方便以后换届之后作为一个参考.此功能先YY着,不一定有时间会完成.

Read More

从ob_start()作用谈到buffer和cache的区别

在学习php的过程中,有童鞋曾经看到过不下数十次这样的写法

<?php

ob_start();

echo “xxxxx”;

$test = “xxxxx”;

….

header(“location:http://………”);

ob_end_flush();

?>

若删除ob_start()之后,php肯定报错,告知发送header函数必须作为一条执行语句,然后就有童鞋产生误区,”我要在我写的乱七八糟的代码之后突然发送一个header或者set一个cookie的时候,我就用ob_start”.那么这种做法是最佳的吗?

显然肯定不是,虽然说ob_start可以曲线救国地实现上述的效果,但是每一次开启ob都会对I/O增加负担,仅仅是为了实现发送一条不符合规矩的header,这么做显然是得不偿失的.

那么到底ob_start有什么作用呢?先不着急.我们从什么是ob_start开始说起.

ob 指的是 output buffering ,翻译成中文可以理解成 输出缓冲 .说到这里,又会有童鞋想到 cache这个东西,说实话之前我对buffer和cache的理解也有偏差和误解(谁叫我是通信的而不是计算机的呢 = =!).今天借此机会正好记录一下自己对这块知识的补漏.那么cache和buffer分别是什么又有什么区别和作用呢?

 

首先 buffer是I/O缓存,用于内存<->硬盘之间的缓存;cache是高速缓冲,主用于CPU<->内存之间的缓冲.

cache 最简单地可以理解为高速地”读”,最初始于cpu cache,因为早时候cpu的处理速度远高于内存的频率速度,就会把一些经常用到的东西存入cpu cache中,直接从cache中调用比去内存中取要快得多. 然后cpu又有L1 L2 cache,分属不同工作层级,进一步实现性能的优化.

buffer 简单地理解为高速地”写”,把即将要写入硬盘的东西先存入buffer中,等待确认指令,当确认指令下达后才进行磁盘的写操作,间接保护硬盘,同时加速了文件在保存上的效率.

那么在回到php中来,这个ob_start自然是开启输出缓冲(这里的输出是相对于php来说,对于硬盘的话其实就是输入).把此函数执行之后的所有内容都存入buffer中去,等待处置.ob操作经常用于需要进行自定义的gzip压缩/字符数据的替换/捕获页面的整体输入出然后一次性写入生成静态HTML文件的作用.其中用的最广泛的就是生成静态文件.

最后再附上一篇参考文章,想进一步了解的童鞋可以到这里继续深入 http://developer.51cto.com/art/200912/166834.htm

Read More

在nginx环境下discuz x2.5出现上传附件出错upload error:413的解决方法

实际上这条错误信息来源于nginx,而不是dz论坛程序本身设置有误.413 Request Entity Too Large 413错误是请求实体过大,那么通过修改nginx的最大整体请求大小可以解决此问题

经过调试研究给出解决方案如下

在nginx.conf增加 client_max_body_size的相关设置, 这个的默认是1m,可以增加到10m或更多,但是至少应该大于discuz后台设置的文件上传最大值;

然后再需要特别注意的是,php.ini文件中的

post_max_size = 10M
upload_max_filesize = 5M

分别需要对应改大,我现在使用的设置大小如上.

至此413错误问题解决.

Read More