获取来访用户地理位置
原理:google ajax api自动生成google.loader.ClientLocation 函数/数组,包含地理信息。
实现:
1. 引入js:
<script type="text/javascript" src="http://www.google.com/jsapi?key=API_KEY_GOES_HERE"></script>
2. 加入以下代码
if(google.loader.ClientLocation)
{
visitor_lat = google.loader.ClientLocation.latitude;
visitor_lon = google.loader.ClientLocation.longitude;
visitor_city = google.loader.ClientLocation.address.city;
visitor_region = google.loader.ClientLocation.address.region;
visitor_country = google.loader.ClientLocation.address.country;
visitor_countrycode = google.loader.ClientLocation.address.country_code;
}
else
{
// ClientLocation not found or not populated
// so perform error handling
}
3. 实际页面效果
继承上述代码后用下列输出
document.getElementById('yourinfo').innerHTML = '<p>Lat/Lon: ' + visitor_lat + ' / ' + visitor_lon + '</p><p>Location: ' + visitor_city + ', ' + visitor_region + ', ' + visitor_country + ' (' + visitor_countrycode + ')</p>';
Lat/Lon: 49.3 / 7.067
Location: Sulzbach/Saar, Saar, Germany (DE)
计算两地距离
1. 初始化geocoder函数:
var geocoder= new GClientGeocoder();
2. 转换string到地理坐标:
var location1;
geocoder.getLocations(document.forms[0].address1.value, function (response){
location1 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address};
}
同理得到location2;
geocoder.getLocations(document.forms[0].address2.value, function (response) {
location2 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address};
}
3. 开始计算
function calculateDistance()
{
try
{
var glatlng1 = new GLatLng(location1.lat, location1.lon);
var glatlng2 = new GLatLng(location2.lat, location2.lon);
var miledistance = glatlng1.distanceFrom(glatlng2, 3959).toFixed(1);
var kmdistance = (miledistance * 1.609344).toFixed(1);
document.getElementById('results').innerHTML = '<strong>Address 1: </strong>' + location1.address + ' (' + location1.lat + ':' + location1.lon + ')<br /><strong>Address 2: </strong>' + location2.address + ' (' + location2.lat + ':' + location2.lon + ')<br /><strong>Distance: </strong>' + miledistance + ' miles (or ' + kmdistance + ' kilometers)';
}
catch (error)
{
alert(error);
}
}
4. 实际效果
Address 1: Peking, China (39.9081726:116.3979471)
Address 2: Frankfurt am Main, Deutschland (50.1115118:8.6805059)
Distance: 4834.5 miles (or 7780.4 kilometers)
最后送几张我关注的Jorge Colombo在iphone上的作品


Michael Armstrong的书一直是实用速成派的代表。我们这把年龄已经禁不起风险了,领导任何一个中小型Proj之前都要经济搭台,技术唱戏。而场景与场景之间,各种真假面的转换,资源的合理利用,更是成为我每天都需要面对的经典问题。这里,我需要的不是教条,而是可以量化和科学运用的东西。
这个月,事情很多,闲暇期间读完这本《how to be an even better manager》,很多问题迎刃而解,毕竟我做的不是不够好,只是要做的比别人更好。
和几个同学讨论,关于软件定价,纷纷不解,我为什么要卖那么贵?同样的东西,你只有脚踏实地从客户的角度出发,帮他设计,优化流程,确立规范,从灵感到实施全程参与,才能真正的赢得客户,同时也提高了自己。这个时候脑子里完全没有价钱,有的只是客户的利益。毕竟,只要客户赠钱了,那你的一切都没有问题。而我向来认为,我们先是伙伴,再是买卖。
以前做项目,卖的是技术。现在,更多的是卖的思想,技术可以复制,思想不能。也只有有了这个,你做的东西才经的起考验。
同时:强烈推荐所有立志于做Consulting, Proj Leader,CXO的同学通读马克思的《1844年经济学哲学手稿》,我人生第一次有这么强烈的愿望去读这样一篇以前读书时死记硬背的东西,也确实,提高了不少认识。。。读完之后,相信你会和我一样在控制、运营项目,评估、保证软件质量,平衡社会关系,逻辑等方面有不少新的认识。。。
个人心得:我认为老马认为,这世界的逻辑建立在掠夺之上,而掠夺者和被掠夺者都同样不自由。只有超越了对物的臣服,落实到对人之为人的关怀,才有人的自由。同理,我们在采用Object Adapter或者Decorator模式的时候,也会有Object和object之间的继承,实现与依赖。这关系着系统设计出来是否健壮。而只有全盘超越了单纯的oo,把面向过程在恰当的时候融入进来,才会让object之间的互动更为良好,功能更加清晰,整个程序的动态结构也就更有弹性。

这本书很有名,在此号召大家都看看。
不要以为是老瓶装老酒,html5,canvas,js里的oo,闭包,js在各大浏览器里的异常策略,利用BEA的ECMAScript来构建xml,以及新兴的Client-Side storage都是很有趣的东西,值得关注。最后不要忘了就是js的性能和调优迟早成为未来面试中的难题!
她虽然没有家世、没有背景、甚至于没有过人的容貌和骄傲的身材,却有着一样女人最为强大的武器--善良。
戴爱玲-空港
整首歌像一滩安安静静的湖水突然汹涌澎湃,把一个女人的无助、悲伤扩张到几乎歇斯底里的地步。
它让人了解到,即便是伤感的失恋情歌也能够唱的如此坦荡...
再加上是我一直培养关注的蒋怡mm的首次荧幕演出。。。
附上整首歌的MV和歌词
话 已经讲晚 爱已风干
心 不再摇晃 梦早已存档
谁在寂寞的空港 催促这离去的航班
只能这样 删去你的影响 就没有遗憾
这次我很坚强 不再有幻想
你的梦不够宽敞 装不下我的泪两行
今夜我就要离航
冰凉月光 走进没有爱情的空港
忘掉感伤 忘掉所有替你圆的谎
无力伪装 天塌下来就让别人去扛
没有你那又怎样 你真的不必再勉强
我不会再有期望 今夜就要把你释放
乘着月光 航向没有梦想的空港
面对忧伤 面对明天我会更勇敢
不怕风霜 告诉自己就在这里松绑
没有你 就是这样
沉沦月光 停在没有回忆的空港
独自流觞 抱着自己好好哭一场
不再迷惘 不再给你再有任何想象
没有你 不会怎样
就把你遗忘 (把你遗忘)
梁咏琪-爱得起
只为怀旧!
江湖乐队-以为
这年头有别样的孤独伤感的声音着实少见
下载:http://cid-9615fb50ffdbcfd3.skydrive.live.com/self.aspx/Public/Music/03.%E4%BB%A5%E4%B8%BA.mp3
T.STONE-没人爱
这孩子的歌词很有意思。:D
词曲:T.STONE
嘿 这是T.STONE
这首歌就当作是零八年的总结
一年的时间过得很快 有喜有忧 但是生活还要继续
节奏还要继续 check~
听他们说我唱的太菜
姑娘们说我太坏
我唱到何时才能让我名声开始在外
把孩子们都带坏 这时间过得太快
这歌词没有停止意思就是不能败
兄弟们看见我的笑
麦也跟着我在叫
骂我的声音不曾停歇 当作治我病的药
寂寞的人们还在莫名其妙把那马子吊
有为者亦若是
为了回头把那马子笑
脚下的路要自己走着 成败看你走位)
走错的路也不回头
因为已无所谓
做好了检讨自己看一遍是为了准备
下面的节目演完能够 少一点后悔
时间快的很棘手
多年来都自己走
虚幻的幸福在我身边也曾奢侈拥有
h纷纷扰扰 到底纠缠会到什么时候;
分分合合 才发现从没走的这个节奏
NO ABCD
and FG 说得到 做不到 把英文都摘去
节奏在 伴奏在 可是歌曲没人爱
难道就是因为换了中文 英文不存在
FUCK ABCD and FG
说得到 做不到 把英文摘去
节奏在 伴奏在 可是歌曲没人爱
难道就是因为换了中文 英文不存在 shit~
可能我们走得慢
但是请你们走着看
不知道怎么办你握着纸笔 但手都颤
零八年我回头望去看
都有多难)
现在我坚持在这里是为了明天煮的饭
但是错过的事情曾经逼我不停回头
努力去挽留 才发现往事不堪回首
该往哪里走
这个问题在你心里有没有
这个问题还会在你心里停留有多久
放下了问题 就听着这个声音
发现我开始
有方向了所以抬起胸襟
前方的路不再迷茫 因为有了信心
身边的朋友们不必再 为我担心
M走过了一些坎坷
生活的像在赶车
面对着身边的人有些话你总爱反说
藏心底 找自己 感觉有些忐忑
希望本该正确的事 你不要反做
说得到 做不到
把英文都摘去
节奏在 伴奏在 可是歌曲没人爱
难道就是因为换了中文 英文不存在
说得到 做不到 把英文摘去
节奏在 伴奏在
可是歌曲没人爱
Z难道就是因为换了中文 英文不存在
你们说ABCDEFG
我们说abcdefg
你来到中国坐上中国人的火车
那就请你安静坐好然后来听我说
没有伟大的人就没有伟大的路
建立的伟大的路现在有我帮你维护
用我的BEAT我的FLOW我的风格我来秀
这条路的走法何时才能被我们看透
说得到
做不到 把英文都摘去:
节奏在 伴奏在 可是歌曲没人爱
难道就是因为换了中文 英文不存在
说得到 做不到 把英文摘去
节奏在 伴奏在
可是歌曲没人爱
难道就是因为换了中文 英文不存在 YEAH!
下载:http://cid-9615fb50ffdbcfd3.skydrive.live.com/self.aspx/Public/Music/T.STONE-%E6%B2%A1%E4%BA%BA%E7%88%B1.mp3
ps:下载请复制地址到浏览器地址栏!
为了加速我们的页面下载,除了把import语句从放在页面底部,删除多余的TAB,空格,简短函数/变量名这这俩方法之外,还可以像gmail那样按需延迟加载。下面的代码验证函数是否被加载:
if (myfunction){
// The function has been loaded
}
else{ // Function has not been loaded yet, so load the javascript.
$import('http://www.xxx.com/myfile.js');
}
验证完毕后,动态加载
function import(src){
var scriptElem = document.createElement('script');
scriptElem.setAttribute('src',src);
scriptElem.setAttribute('type','text/javascript');
document.getElementsByTagName('head')[0].appendChild(scriptElem);
}
// import with a random query parameter to avoid caching
function importNoCache(src){
var ms = new Date().getTime().toString();
var seed = "?" + ms;
$import(src + seed);
}
声明:这不是恶搞。。。一句话总结widerbug就是firebug的宽屏版。。。。
官网:http://www.command-tab.com/2008/01/19/widerbug-widescreen-firebug/
截图:
网上已经有如何在eclipse里集成的教程了,鉴于eclipse已经成为肥猪流/非主流。。。现特上idea集成javarebel指南。
1. 避免idea每次改动后重新打包war
2. 在编译器设置里取消改动后重新部署,并选中编译depenencies
3. 在服务器的VM Parameters里填写如下行:
-noverify
-javaagent:E:/MyJavaLibs/javarebel/javarebel.jar
-Drebel.struts2-plugin=true
-Drebel.spring_plugin=true
-Drebel.dirs=E:/Idea.Workspace/HikingWS/out/exploded/HikingWSWeb/WEB-INF/classes //自行添加多处需要监视改动的路径
现在改程序那速度,杠杠滴!
Album: H3M
Artist: Eason Chen
Genre: Chinese pop
Release Date: 2009-03-23
六年前我无意中喜欢上了陈奕迅,原因似乎是因为看过他演的某个电影,或者是其他,这都早已不重要了。我只记得那是《十年》大行其道的年代,大街小巷到处飘扬着“十年之前,你不认识我,我不认识你……”,而我只刚刚走过人生的第14年而已。记得当年一直在反复听《七》这张精选集,14岁之前我从来没有喜欢过某个艺人,我从小不是喜欢追逐潮流的人。可是,生活并不是那么Dramatic或Romantic。陈奕迅并没有一直陪伴我6年的时光,事实是,当我听腻了《七》这张专辑之后,我也就把陈奕迅抛在岁月的尘埃中,再也想不起来了。
六年之后,又是很无意地,我下载了陈奕迅的新专辑《H3M》,我只是很封面党地选择了这张专辑而已,与陈奕迅无关,很有可能我早已经忘记14岁的时候对于陈奕迅的迷恋。可是很奇怪的,当我一听到陈奕迅的声音,一种熟悉的感觉涌上心头,于是眼睛一红,尽滴下几滴泪来。于是那些关于陈奕迅的爱恋又一丝一丝从记忆的深处被挖掘出来。我急忙去找当年那张专辑《七》,反复地听《兄妹》《圣诞结》《Shall we talk》《全世界失眠》……这些歌,当年总是在夜晚伴我入眠,我用我第一个mp3,在夜晚的被窝里静静地听着。这些歌,抚慰着年少时的忧愁与寂寞,承载着年少时的爱恋。这些歌,虽然当时我从来不明白那些歌词的意义,但一样听的如痴如醉。对比6年前,陈奕迅唱功提高了,更加纯熟了。而回想6年前的自己,也有失败,也有遗憾,也有失落,也有迷茫,但如今,一切都成记忆。
这只是6年,不是十年。6年前我与陈奕迅的歌声相识,之后又把它抛弃在记忆中。6年后我又与它偶遇,于是那时的心情从记忆的深处,从陈奕迅的歌声中被召回。陈奕迅的歌声或许一如以往,而我却早已不是14岁的我了。可是偶尔怀旧一下又有何不可?而且这不是十年,时间仅仅走过6年而已。下次我们相约将在何时再次偶遇呢?
原帖地址:http://mingandjuan.blogbus.com/logs/37043924.html
“我不知道错过了多少的时间,我没有这样一份心情打开书页。合上MAC,闭上眼睛,脑海里放过的一幕幕都充满了感情,工作和烦躁不安的生活,似乎已经找不到那样的一丝缝隙,一个时刻来重温我们过去的日子。我,如同,这个时代所有的竞赛者一样,不停的奔跑,鞭励自己向前,甚至永不放弃。然而,这真的让我错过了不少途中的风景,也和我想要的生活渐行渐远。”
---写在前面的话
人是怀旧的动物,什么消失了就怀念什么,什么消失的越快便怀念的越迅速,就像我一样,总会在这样的夜晚,想起我在以前那段岁月里的所拥有些许东西,如一度流行的绞丝糖,蛤蟆镜,以及形散神散的写作风格。我不知道,这是否是一个恰当的类比,然而曾经和朋友调侃的“我的风格就是没有风格”却真的成为自己现在的真实写照。之所以这么多感触,归于这次中国之旅的那么一个小小的瞬间。
那天,微风,小雨,不思归。我在路边等车,百无聊奈之际,随意走进了我远离了n年的西南书城。然而初映入眼帘的确实与脑海中的映像截然不同的场景。那天,书城里面,人来人往,接踵摩肩。一楼的大厅里面堆满了各式各样的教辅,求职,网文类书刊。相辅相成的也有各式各样的人,小的大的,少的老的,男的女的,在他们之际匆匆行走,望闻问切。然而,让我感到万分可惜的是那些让我在德国倍感思念的诸散文、杂文集,却像民国间失宠的官太太们那样悄无声息的躺在一个无人问津的小小角落。这真的是一种悲哀,然而这种悲哀我想那些官老爷们儿再也无心体会,甚至,他们也真的到了只有自怨自艾的地步。
我很庆幸,这次回去能淘到2本半好书,让我在每天做完n小时各式各样繁复无比的计算后能有空沉淀清洗下自己的思想,偶尔能够真的在白纸上留下些什么,能够时不时的从Sony PRS-505,iphone等等的数字化生活中逃脱出来。人,总是会腻的。开篇有益,其实不仅仅是讲的是通过阅读而获取的知识,更是那种翻阅取代按键的乐趣。这不是生活的倒退,而是真真正正的乐趣。试想,我们在阅读的时候,我们的全身都在主动的参与着,头,颈,手和身体的各个组件都在积极主动的工作着。这不是远远比那单调的上页下页手指按键活动+转动眼球的阅读方式好多了么。。。
末了,八股一把,毕竟身在国外,想大跃进,想特庸俗都没办法。
让我们重提开卷有益!
这次回国收获不小,除了显示器和众多桌面公仔以外,就是下面这2个东西了。一个身长1.4米的绒毛白痴狗/狼,一个某家09新款手提电脑包,和我很配,开心。。。
思春!
09年新款电脑包
特此上图,纪念我的工作环境成功扩展!从此开始1080P的影像世界,爽~~~
这次度假前事情多的很,忙的不可开交,六神无主,以及心力憔悴。所幸,人好歹还是半天清醒的,能有所思,有所想,有所吃。不过突发事件着实太多,嗨。。。好久没兴奋了,谁来给我打一针鸡血啊!
恭喜自己终于战胜了恐高,战胜了对于未知世界的恐惧,成功连成180度转体5米高台跳水!
自开始游泳以来,长期以往都是“深水炸弹”式跳法,但是这种跳法跳下时眼睛平视,看不见游泳池那蔚蓝的蓝,实在鸡肋,一点乐趣都没有。
因此,今年决定开始转型走“偶像派”路线。于是乎,先于上周在网上研究了一周如何自由转体花式高台跳水,把各种角度的受力分析都研究透彻了,猛然今下午千万Dudobad一试身手。
其实刚爬上5米高台的时候还是很恐惧的,毕竟长期以往的恐高症可不是说说而已的,左看右看,深陷德国鬼子重围,此情此景,一股热气从丹田升起!一个旱地拔葱就倒下去了。现在想来,5米还是矮了点儿,滞空时间还不够我做花式的。-,=,毕竟第一次跳,肌肉还比较僵硬,大脑的反应速度也没跟上,在家里设计的很多套路都还没机会使出来,就入水了。。。可想而知,虽然水面没有凭空上涨三尺,但那水花绝对是古典的,艺术,四溅的!总而言之就快赶上当年东京上空的蘑菇云了。:D,写到这儿,心中的澎湃之情,自豪之情还是嗷嗷的,实在难以平复。。。
下周开始恢复蝶泳,进一步练习后空翻360度。。。
ps:欢迎对跳楼,跳水,跳海,跳崖,跳伞,跳机有多年的经验的同学与我深入探讨。。。
很多时候我们与生往来所缺乏的就是那么一丁点儿的坚持,当然我的意思是体力和脑力上的双从持久。其实,说起来可笑,往往振臂高呼口号的都是领导阶级,学习政策彻底执行的反而却只有无产阶级了。这里“领导阶层”和“无产阶级”词面上完全不搭噶,但实际嘛,就不用本人论证了。当然,也正因此,在人类短暂而绚烂的无产阶级革命暴力史上留下了多少成为我们学习样本的故事阿!阿!阿!阿~~~~~!
说了这么多,不是想引进据点的论证当今浮华社会背后朴素的阶级论,也不是想勾画社会主义背景下的新经济政策。归根结底,不过是我在一个又五指不见伸手的夜晚的对自己的又一次浓重反思。这几个月来,一个人风里来,雨里去,做了一个又一个的项目。程序上写的那也是花溅泪,鸟惊心。熬了这么久,才发现,其实不需要暮然回首,也应该明白:现在做事儿,不缺不怕的无所不有,无中生有。但唯一怵的就是你跟他玩命儿的死磕。是阿,咱无产阶级,要啥啥没有,拼的就是体力,耗的就是时间,赌的就是人品!打脱牙和血吞,咱大不了就无产了他,专政了他,暴力了他!初中时,我读《曾国藩》,不懂,初以为不过又是一本帝王将相如何搜齐三千后宫的风流演义。读完,宅,封闭电脑游戏5天,还是不懂。他的“一味忍耐,徐求自强”,他从屡战屡败到屡败屡战,都是我那个时代无法揣摩的东西。而今突然懂了,说来说去不就是说的“拼体力,耗时间,赌人品”的浅显道理么。只是有的东西,简单如斯,但是偏偏古往今来有那么多的道学家们,玄学家们一个劲儿的给他穿衣服,戴帽子,公然违背当今世界裸露就是美的赤果果的真理!可是,别忘了,咱无产阶级是打不到,压不死的,哪里有汽车,美女,洋房,哪里就有我们。所以嘛,我的朋友们,现在还不是发感叹的时候,任何学习/生活/工作/爱情中困难,无论看上去过的去的过不去的,咱就光了膀子和他玩儿了命的卯起来死磕,做一个纯爷们儿!
后记:从小学到初中,后高中,再大学,写作无数。最初的要求“字数”曾一度广播于校内,铭记于海内。人到青年,顿悟“写”字不如“炼”字。于是乎,一篇初稿洋洋洒洒5,6千字,然后如winrar般改的改,删的删,到本文现在如此而已。而也是正在这个精粹的过程之中,写作的乐趣抽丝剥茧般的一浪一浪汹涌而来,澎湃而至,浑身上下,万千毛孔一起吐纳养息,舒服的紧。
现在大家可以从页面直接从google那载入js啦。
<!-- Always need this javascript -->
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
//get the latest moo
google.load('mootools', '1.2.1');
//other examples
google.load('jquery', '1.3.1');
google.load('jqueryui', '1.5.3');
google.load('prototype', '1.6.0.3');
google.load('scriptaculous', '1.8.2');
google.load('mootools', '1.2.1');
google.load('dojo', '1.2.3');
google.load('swfobject', '2.1');
google.load('yui', '2.6.0');