关于闭包,要说清楚那要说半天,见我转载的文章:http://kazge.com/archives/257.html
我来说说这个经典问题:
<script language="javascript" type="text/javascript">
var li=document.getElementsByTagName("li");
for(var i=0;i<li.length;i++){
li[i].onclick=function(){alert(i);}
}
</script>
执行结果很“古怪”,每个li元素点击时都是显示相同的提示。
实际上理解了闭包的原理就很清楚了。
所谓闭包即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。
重点是它可以访问上层范围的局部变量,闭包执行时它如果访问上层变量,那么访问到的是上层变量在闭包执行时的值。
这样就好理解所谓的经典问题了:
代码中闭包中访问了i是上层变量,这个循环结束后,i值为li元素的个数,当点击li元素时执行闭包,那么自然就是固定的值了。
正是具有这种特性闭包才如此的灵活。假如访问的上层变量是定义闭包时的值,那么闭包就不是闭包了。
Continue reading javascript闭包
通过邮编获得时区可以通过http://www.geonames.org 提供的服务来做到:
首先你要注册成他的账户,激活免费服务。
然后看其文挡http://www.geonames.org/export/web-services.html
这网站是好人,免费啊。
首先调用Postal Code Search
api.geonames.org/postalCodeSearchJSON?postalcode=邮编参数&maxRows=1&username=你的用户名
此调用返回进度和纬度
{
"postalCodes" : [{
"adminName2" : "Gwinnett",//上级地区名
"adminCode2" : "135",
"adminCode1" : "GA",
"postalCode" : "
xxxxxxx",
"countryCode" : "US",
"lng" : -123.123123,
"placeName" : "xxxxxxx",
"lat" : 12.12312312,
"adminName1" : "Georgia"//上上级地区名,省
}]
}
然后调用Timezone Search
http://api.geonames.org/timezoneJSON?lat=纬度参数&lng=经度参数&username=你的用户名
此调用返回目标地区当前时间,时区
{
"time" : "2011-12-29 03:05",
"countryName" : "United States",
"sunset" : "2011-12-29 17:36",
"rawOffset" : -5,
"dstOffset" : -4,
"countryCode" : "US",
"gmtOffset" : -5,
"lng" : -123.123123,
"sunrise" : "2011-12-29 07:41",
"timezoneId" : "America/New_York",
"lat" : 12.12312312
}
Continue reading 通过邮编获得时区 fetch timezone from zip code
对于voip开发来说,测试是个麻烦事,最好是有个sip电话,且可以打得通的。
这篇文章:
10款国外免费VoIP服务 http://kazge.com/archives/714.html
里面的我都试过,首先发现iptel http://www.iptel.org/service 似乎可以用,它提供免费sip账号,可是我使用xlite和它官方推荐的jitsi都连不通。只好作罢。
关于它的配置可以参考这个 http://kazge.com/archives/715.html 写得很详细
最后还是使用gtalk2voip,它也是提供sip免费账户的。
https://www.gtalk2voip.com/gtalk_service_fromsip.shtml
只要在gtalk中添加[email protected]机器人
添加成功后你就具有一个免费的sip号码了,加入你的gtalk账号是[email protected]那么你的sip就是[email protected] 这样对这个账号的呼叫就可以转到gtalk来应答了。
另外你也可以使用sip Broker来直接使用固定电话打到gtalk上来,
见http://www.gtalk2voip.com/gtalk_service_sipbroker.shtml
这一切的前提是你必须有个gvoice账号,那就是说你要有个可以绑定的北美地区电话。
so ……, 你懂的!
Continue reading 免费的sip电话,绑定到gvoice
转自:http://www.tux89.com/telephonie/integration-google-voice-a-asterisk/?lang=zh-tw
谷歌語音集成到Asterisk
你想要使用谷歌語音, 但你不居住在美利堅合眾國, 然後知道,這是可能的. 你怎麼說 ? 簡單, 閱讀本節 ! 但是,什麼是谷歌語音 ? 下面是一個簡單的定義 維基百科
:
« 谷歌語音 是一家電信服務 (電話和 短信
) 谷歌推出的建議 11 3月 2009 美國. 這項服務通常是保留給美國居民, 但一些職能 (網絡電話
, 通話記錄) 是提供給非美國人誰 Gmail的
美國英語和 谷歌實驗室
激活. »
有趣的是,谷歌目前提供電話到北美,不需任何費用的年底 2011. 再經過 ! 為什麼不利用這個機會向谷歌整合Asterisk的語音,從而有了一種代替 MagicJack. 不同的方法存在Asterisk的語音接口到谷歌. 該方法需要,我們在這裡看到的設備命名 歐倍德
. 該設備的生產商是OBIHAI,對面就是MagicJack, 俄不需要連接到電腦操作, 因為它是一個完全獨立的設備.

歐倍德 110
國際文憑組織提供 幾種可能性
, 其中包括可以直接連接到谷歌語音使用Jabber帳戶作為協議. 這使您可以直接接聽電話,手機連接到歐. 通過手機連接的端口歐倍德一個 FXO端口到Asterisk, 我們可以做一個谷歌到Asterisk語音主幹. 通過, 我買了歐倍德 110 在eBay為 60美元.
下面是步驟,為實施此解決方案.
有Gmail帳戶
如果你還沒有一, 按照此 鏈接
與您共創一個帳戶.

為了使全谷歌語音激活, 你需要一個電話號碼與美國領土. 要做到, 你需要兩件事情, iptel一個帳戶,另一個 IPkall.
獲取公眾 iptel.org SIP帳戶
您必須先開通免費 iptel通過創建一個帳戶 iptel.org

假設我們要為用戶創建一個帳戶 «機管局 BB心跳», 輸入並繼續執行下面的參數 :
- 名字: 機管局
- 姓: BB心跳
- 電子郵件: aa.bb @ gmail.com
- 電話: Votre_#_de_téléphone
- 您的時區: Peu_importe
- 選擇你的用戶名: aa.bb
- 選擇密碼 : MOT_DE_PASSE_SÉCURE
- 確認密碼: MOT_DE_PASSE_SÉCURE


現在反悔 iptel.org
並驗證您的帳戶信息.


得到一個電話號碼在美國 (美國) IPkall
利用信息從您的新帳戶 iptel.org, 訂閱 Ipkall
以免費電話號碼在美國 (美國).

總是假定我們要創建一個帳戶為用戶節“AA BB”的, 輸入並繼續執行下面的參數 :
- 選擇帳戶類型: SIP協議
- 選擇您IPKall區號號碼: 選擇
- SIP電話號碼: aa.bb杜孔特iptel.org
- SIP代理: sip.iptel.org
- 電郵地址: aa.bb @ gmail.com
- 密碼: MOT_DE_PASSE_SÉCURE
- # 幾秒鐘響前懸掛: 120

您將通過電子郵件發送的電話號碼在美國 (美國). 這是您的第一個數字鍵啟動谷歌語音美國以外的土壤. 注意,如果您的帳戶不活動期間超過 IPkall 30 天 (沒有訪問園區), 您的帳戶將自動被禁用,您將失去的電話號碼被分配.

設置新的電話號碼與您的SIP帳戶
下載並安裝 的X位
或任何其他軟件電話, 並配置您的手機與您的帳戶資料如下所述iptel.org :
- 顯示名稱: aa.bb @ iptel.org
- 用戶名: aa.bb
- 密碼: Mot_De_Passe_iptel.org
- 授權的用戶名: aa.bb @ iptel.org
- 域名: iptel.org

你的文章現在準備接聽電話.

帶上電話與你的手,撥打電話號碼取得IPkall. 在我們的例子, 這個數字 (253) 785-0717. 發布您的X - Lite的聲音應, 然後接電話.
您現在準備著手谷歌語音激活.
語音激活的谷歌在美國以外
最繁瑣的步驟是連接到谷歌語音,並找到一個代理服務器,將啟用該帳戶之聲. 您不能激活他們的帳戶谷歌語音如果你是在美國本土, 這意味著在更具體的條款, 有一個 IP地址的地理位置是有跡可尋的美國. 你會明白,代理是第二個密鑰來激活他們的帳戶谷歌語音.
所需的標準是代理 :
您可以執行下面的搜索在谷歌 :
透明美國的SSL
在我的案例, 其中的一個環節提供的搜索引擎谷歌一直 : 網址://www.xroxy.com/proxy1698051.htm 
請注意,代理可能無法發揮作用和可供使用. 這裡有兩個代理讓您開始 :
- 173.226.153.208:8080
- 216.240.138.76:5555
如果你好奇的物理位置的代理, 使用這個鏈接找到它的地理位置 : http://www.iplocation.net/
為確保代理功能, 使用此鏈接 : http://www.myiptest.com/staticpages/index.php/http-proxy-checker-tool.html
現在調整瀏覽器的代理設置, 在我的情況歌劇院.

以前有一個谷歌帳戶, 現在就註冊谷歌語音 : https://www.google.com/voice

您應該看到的按鈕 “升級我的帳戶”. 如果你沒有看到這個按鈕, 是你的代理不工作,風鏡想你是不是在地上的美利堅合眾國.
新聞 «升級我的帳戶 “開始的過程是使谷歌語音,然後按”使用入門“.

現在指定一個或多個搜索條件,以接收的電話號碼,谷歌.

例如, 為準則 tuxme, 如下的選擇.

選擇並繼續. 在我們的例子, 任意選擇 (706) 688-9634 或706 - 6TU - XME4.
鍵入一個密碼為您的郵箱,並表明您接受這些條款的谷歌.

輸入電話號碼,收到並繼續 IPkall. 在我們的例子, 這個數字 (253) 785-0717.

在事件的數目 IPkall已分配在過去和另一個用戶將用於啟動語音 Gogle, 你將看到下面的錯誤信息.

取消您的帳戶 IPkall, 在另一重建, 然後繼續你的新號碼.

回到谷歌語音配置, 最後一步是檢查. 你會被要求指定一個有效的電話號碼在美國. 輸入號碼先前收到IPkall. 請確保您有軟電話的X - Lite和現在的功能, 只要按一下 « 現在給我打電話 ».

接聽來電的X - Lite和然後鍵入二位數的撥號鍵盤相應的代碼,您說,谷歌語音.

就是這樣 ! 大功告成.

現在你不需要使用代理連接到谷歌語音. 您可以撥打和接聽電話到新的谷歌語音號碼. 在我們的例子, 這個數字 (706) 688-9634 或706 - 6TU - XME4. 在此期間創造一條主幹在Asterisk IPkall, 確保您有客戶端上運行的X - Lite的,因為它作為一個外部鏈接,谷歌語音. 此外, 如前面提到的, 如果您的帳戶內的閒置超過 IPkall 30 天 (沒有訪問園區), 您的帳戶將自動被禁用,您將失去的電話號碼被分配. 在我們的例子, 這個數字 (253) 785-0717.
配置設置與歐比谷歌帳戶語音

這幾乎完成. 連接 Obi110在你的本地網絡,並採取電話聽筒. 現在, 通話 « ***1 ».
歐倍德將決定該 IP地址配置.
用你的瀏覽器,進入到這個地址 : 網址://adresseIP /
該密碼是 «管理 “,默認密碼是 «管理».
更改IP地址的國際文憑組織為一個靜態的IP地址,而不是主動的,做一下重新啟動 «重新啟動?.
一旦你重新啟動歐倍德, 到站點配置歐 :http://www.obihai.com/itspConfiguration/itspConfiguration-googlevoice.html
設置 IP設置的歐, 郵政編碼您的谷歌語音號碼, 在我們的例子 « 706 “ID和谷歌帳戶, 在我們的例子« aa.bb », 並點擊配置. 歐倍德重新啟動您的最後一次,一切都完成.

撥打電話, 的問題,看它是否確實有效. 大 !!!
連接到Asterisk的歐倍德
除非你希望使用谷歌帳戶,你的聲音歐倍德與模擬電話, 你必須連接的RJ11端口歐倍德 110 以一個 FXO端口的電話環境. 這可能是Digium公司的接口卡, 一個 ATA或思科路由器的FXO端口. 欲了解更多細節,如何進行, 見一下面列出的三個項目 :
當您的聲音歐倍德, 顯然,你的電話號碼從谷歌語音, 電話將被直接傳遞到你的Asterisk服務器,您可以檢索通過您的來電 RVI.Cependant, 你必須改變對谷歌語音的設置為以下介紹.

撥出電話, 你只需要設置一個退出的途徑獲得的FXO端口,電話將直接轉給你的谷歌語音由國際文憑組織誰去休息的法寶.
善用 !
Continue reading 【转】谷歌語音集成到Asterisk
转自http://dan.febird.net/2009/11/51075-10-free-voip-services-abroad.html
10款国外免费VoIP服务
什么是VoIP服务,前面归纳了两篇东东,有兴趣的可以看下。国外的VoIP服务的确比国内多,人家毕竟政策开放嘛,没那么多盘根错节的利益关系,加上地广人稀,带宽充足,VoIP服务遍地都是。这里就我玩过的,感觉用得比较顺手且支持SIP协议的一些服务拿出来分享一下。
1. Gizmo5

Gizmo5为 GizmoProject的 产物,它旨在构建全球开放的基于IP的语音系统,支持标准的SIP协议,它会为用户分配数字式的SIP ID,你可以使用任意台支持SIPde终端或者客户端软件来登陆它提供的免费VoIP服务。Gizmo5可以将你的VoIP电话转到传统的PSTN上,但 是这需要付费,你可以直接在它的网页上面通过VoIP拨打全球电话,价格是相当低廉的。同时Gizmo5提供PC端软件用来拨号、SMS甚至是IM。
PS: 本文之前已经写好,刚准备发布时,Gizmo公司已经被Google收购了。其实之前已经有了蛛丝马迹:Gizmo5是Google Voice目前唯一支持绑定的VoIP账号(其他的都必须是美国本地号码)。
2. IPKall

IPKall也是一个不错的服务,它免费提供美国本土真实的电话号码,并且帮你将拨入该号码的电话转接到你指定的VoIP服务上,目前支持 SIP和 IAX。
注意: IPKall本身并不提供VoIP账号,它只提供话音转发。注册需要审核,并且号码如果1各月内没有使用将被回收。
3. Vertual PhoneLine

Vertual PhoneLine是一个比较全面的VoIP服务,它可以将你的电话分发到 你设定的电话上以及MSN、Gtalk等IM工具上。它提供一个 美国本土号码(免费25天)。虽然不是完全免费,但是功能、性能还是不错的。
4. IPtel.org

IPtel是一个完全免费的VoIP服务,它可以给你提供SIP 账号并支持各种条件的转接以及无条件转接,Voicemail等服务。最终要的一点是:如果你有自己的域名,只要在你的域名解析中加一个 SRV记录,那么你就可以拥有完全属于自己的SIP账号,例如你有域名为 abc.com, 做好解析并在iptel.org注册之后,你就可以拥有 [email protected] 这样的SIP ID(注意SIP URI虽然形式上和Email地址相同,但他们有着本质的区别)。
5. PBXes

PBXes 是一个免费的 IP 分机系统,完全免费的服务,注册之后,他会提供一个 [email protected] 的账号,并且允许你添加N个 SIP或者传统的分机。你可以管理呼入的VoIP Call,将他们转接到需要的地方。同时你也可以管理你的呼出,特别是呼向PSTN的VoIP Call,你可以通过PBXes来选择最省钱的线路。
PBXes非常强大,用了才知道!!!
6. Gtalk2VoIP

Gtalk2Voip是非常经典的VoIP服务了,其主要业务是让接受 VoIP 呼叫并且将其转化为 Gtalk 语音。用户只需要将自己的Gmail账号关联一下(加[email protected]这个机器人为好友即可),绑定后你就拥有了一个SIP ID,SIP网络上的电话呼向了这个地址,只要你的Gtalk在线,你就可以接听电话。虽然名义上叫做 Gtalk2Voip,其实他还支持MSN,Yahoo Messenger等其他IM。同时,你也可以通过 该IM机器人来拨打 SIP电话(免费)或者PSTN电话(收费),也就是说,可以讲你的IM变成一个SIP客户端,非常有创意。
Gtalk2VoIP功能远不止这些,它也提供上面提到的虚拟号服务,不过那都是收费服务了。他还提供 自定义域名 SIP托管。众多的功能相见其服务页面。
7. Voxox

Voxox是一个集众多 IM于一身的综合性IM工具,和我们的 Pidgin差不多,但是他的语音功能更加突出,注册了一个Voxox账号之后就可以与其他用户进行语音通话,同时它也支持 PSTN Callout以及 SIP Call.
8. pfingo

这是新加坡的一个VoIP服务,功能很酷炫,不过如果要使用其 SIP ID 或者 虚拟号等服务都是需要付费的。
9. CallCentric

这也是一个老牌的VoIP服务,细节做得非常到位,免费提供 SIP ID,和 Gizmo一样,也可以通过该ID拨出电话到 传统的电话网络(收费的)。
10. Google Voice
最后不得不说一下Google Voice,这是Google之前收购的一个 VoIP公司,和其他的VoIP服务不同的是,Google Voice主要作用是给用户提供一个管理自己众多电话和SMS的界面。相当于PBX。不过目前他暂时只支持绑定美国的电话号码(也可以是Gizmo5)。
Google Voice惊人之处是: 你可以使用它来拨出电话到 传统的电话网络,并且它是免费的(目前只限于拨打美国号码,其他国家和地区需要购买信用额度)。同时你也可以免费发送SMS给全球用户。Google Voice 的语音目前不怎么走VoIP线路,但是今天,Google 受够了 Gimzo5,想必今后支持绑定 Gtalk、SIP是必然的事情。
Continue reading 【转】10款国外免费VoIP服务
想开多个skype?很简单,看看这个
https://imo.im/
注意,是网站,不是客户端软件。
这个网站是可以信赖的,放心使用,不信我的话的话就看它的about。
Continue reading 网页skype
我说的不是指ping,你网络环境不好,ping也没用。
介绍:
从世界各地方来ping
http://www.dirs.cn/
这个自己试试就知道了
http://guide.opendns.com
Continue reading 通过域名找ip
photoshop切图,7.0版即可输出为div切片
转载 PS切片导出为DIV+CSS布局
在修改好相应的文字与图象之后,我们就将PSD文件输出(X)HTML文件。
首先得先对PSD文件做切片,有两种方法:
①使用工具栏上的“切片工具”,

然后在图象上划出一块一块的区域。

②使用基于参考线的切片,按ctrl+R调出标尺栏,

把鼠标移动到标尺上,按住鼠标左键,移动到图象上,将会看到一条绿色的参考线,如图

将参考线;排好,然后点一下工具栏上的切片工具图表,然后点上面
选项栏里的“基于参考线的切片”。于是在原来的参考线上就变成了一块一块的切片了。

********************************************************************************
接下来就可以输出了:
①依次选择菜单栏上的“文件”→“存储为Web所用格式”→“存储”。
②接下来就会弹出一个“将优化结果存储为”的窗口。
在“保存类型”处有个下拉列框可以选择,因为我们要存储为网页的格式,所以选择“HTML和图象(* html)”,再选择“保存”就可以输出一个网页格式的HTML文件与一个包含图象的名为“images”的文件夹。
③如果我们需要输出“div+css的网页”我们还可以这么做:
在“设置”处的下拉列框,选择“其他”

就会弹出一个“输出设置”的窗口
在第2个下拉列框处选择“切片”,选择“生成CSS”,单击“好”→“保存”,就可以输出一个目前流行的“div+css”的HTML网页。

7.0就包含此功能
Continue reading 切图
报这种错误:PHP Parse Error: syntax error, unexpected $end。有两种可能:
1:
//$str .= "?>/n";
这种情况?>被认为是php结束标记,造成语法错误,解决办法看你自己的代码
2:
使用了短标记<? php code ?>但是没有在php.ini中配置 short_open_tag = On
3:
curly bracket 花括号{}缺失或不匹配
4:
php中类定义是不能被分段的,函数中分段除外。原文是:
as in PHP, a class definition cannot be broke up and distributed into multiple files, or into multiple PHP blocks, unless the break is within a method declaration.
Continue reading PHP Parse Error: syntax error, unexpected $end 解决方法
此文总结得较全面:
转自:http://hi.baidu.com/tian%C2%BD%C0%DA/blog/item/2569ba0337e15b034bfb5191.html
问题:You don't have permission to access / on this server.
说法一:hi.baidu.com/%D0%C7%BC%CA%C0%CB%D7%D31988/blog/item/449a1cfc676f7389b801a026.html
<Files ~>
AllowOverride AuthConfig FileInfo Indexs Limit Options
Order allow ,deny
Deny from all-----------------注意:就是这儿!!--->把这行去掉或注释掉就行!!!
</Files>
不过原httpd.conf文件中是没有这一段的。只有
<FilesMatch "^\.ht"> # 什么意思呢。匹配除.htt开头的文件?
Order allow,deny
Deny from all
</FilesMatch>
经查,这一段是属于服务器安全配置方面的。《php和mysql web开发》中写到:通过在httpd.conf中引入适当的指令,隐藏一些不希望被看到的文件。例如,要防止inc文件被看到,则:
<Files ~ “\.inc$”>
Order allow,deny
Deny from all
</Files>
上面文章还讲到怎么去解决错误的方法,值得借鉴。好了,继续说 403 forbidden
说法二:hi.baidu.com/hzw513/blog/item/ad85c0f56e5e0923bd310930.html
1、修改了httpd.conf中 documentRoot 的值;但没有修改下面不远处 <Directory "url"></Directory>中的url ;这个很好解决,直接改为一样,重启服务器就行了。
2、你没有访问这个目录的权限;不过这种情况windows下很少。一般多在linux下。 解决方法就是 chmod 701 /home/www ;如不行在参考其他情况。
不过以上都不是我遇到的情况。我的目录文件夹从ftp上下载下来。权限都是777的。所以没有这种情况。
说法三:hi.baidu.com/libk/blog/item/f9e32b34af4c90335ab5f5cd.html
经过以上验证后,确定不是以上问题。那么到底是什么原因呢。。。 忽然看到某个帖子的留言说“看apache日志” 忽然明白,到日志里面不就知道是什么问题了么! 说实话我挺笨的。
在 log/error.log中看到了
“Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: F:/www/”
这样一段话,于是搜之;得到如上解答:
1. 如果没有启用mod_rewrite,可以用Options None 来保证安全性。
2. 如果启用了mod_rewrite, 那么Options就一定要启用FollowSymLinks或者SymLinksifOwnerMatch, 否则会出现Fobidden页面禁止访问的错误。
查看错误日志会有这样的出错信息:(Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /location/to/your/rewrite/url)
查看 确认我的rewrite是打开的。可是options 却是 options indexes Multiviews ;于是改为 fllowsymlinks ;重启,真的就行了!
不得不说原来如此。要多看看log啊。options具体选项详解参见这里
Continue reading 【转】Forbidden关于无权限访问目录的问题
Pagination