2009年6月29日星期一

继续工作

至七月一日,我的正式工作就满一年了,算上实习正好工作一年零六个月,在这不长也不短的日子里公司由软件转向了硬件,我的工作热情也在碌碌无为中渐渐消磨,我不断的告诉自己,我要辞职,换个工作压力更大,更有氛围,更有利自己发展的工作。但是或出于天性的懒散,或出于对环境变动的不安,我迟迟没有行动。


直到某一天,积压已久的情绪还是爆发了,这个月发工资那天的早上,我向老板提出了辞职,说下个月开始就不做了,说完之后,老板说再考虑考虑吧,我不清楚是他再考虑考虑,还是要我再考虑考虑,感觉两个人都很尴尬,我答了句:那就再考虑考虑吧,转身出去,赶紧结束了尴尬,然后盘算着辞职之后的云南旅行。

之后的两天感觉异常轻松,之前的压抑心情一扫而空,满脑子都是七月的旅行计划。第三天,老板找谈话,说要我留下,除了提出加薪之外,还谈了目前我工作的问题,谈话时间不长,但是能这样和老板面对面的讨论工作,指出工作中的问题,以及对应方法,还真有些不易,于是,我那一肚子苦水也就借机倾泻了出来。至于谈话结果,自然是涛声依旧了,而且老板还允许我七月请两个星期的假去旅行,计划终于没有落空。

调整心态继续做吧,有活就干活,没活就自学,只是偶尔想起的一些离职的同事,以及无聊的工作内容,让我又增加些苦闷。

2009年5月4日星期一

五一雁荡山自助游

五一和一同学去了躺雁荡山,去之前也在网上查阅了很多资料,也算准备的很充分。

我们是从上海乘火车去的温州(其实做汽车会更快捷,可以直达雁荡山,不需要从温州中转),1号晚上8:50的火车,第二天早上6:00很准时的就到了温州火车站,然后在火车站斜对面约300米左右的汽车南站做汽车去的雁荡山,买了7:10分的首班车车票,等到7点左右检票进站。

大概8:40到了雁荡山汽车站,下车之后便有许多景区小巴来拉人去大龙湫景区,问之票价15元一人,一番杀价10元一人成交,上小巴之后售票员沿路又拉了些人,沿路风景不错,因为太阳还不是很大,山顶的雾气还是很重,看着云雾中的山峰,对接下来的行程充满了期待。

约30分钟,车行至大龙湫景区,景区门票30元一人,大龙湫为雁荡山的三大景区之一,以大龙湫瀑布闻名,一路上各种奇峰奇石不断进入我们的视野,偶尔驻足听导游的介绍,对比着这山石,却也有几分神似。渐渐的走到了景区的中心,大龙湫瀑布,但是对比着门票上的大龙湫瀑布照片,我很是失望,远远望去就没多少水,站在瀑布下面就感觉是在下雨,完全没有瀑布的那种冲击力(因为没水嘛)

大龙湫景区出来,门口又有许多小巴来拉人,20元一人送至方洞山顶,因为之前上网查过,从方洞山下做缆车上山还需要40元,一估摸20元一人还比较合算,不过还是杀价一番,杀了好长时间杀到35元两人,上车之后车很快就开了,我们坐在司机边上,司机是个中年人,很憨厚的样子,他一边驾车一边热情的向我们介绍雁荡山的情况,最后还告诫我们,方洞顶上会有和尚拉人开光,开一次要4,5百元,要我们不要上当。汽车在弯曲的上山路上飞速行驶,司机开车基本踩着油门不放,转弯口就是喇叭不断,很有漂移的味道。

方洞,门票20,其实玩完就对那栈道和吊桥有印象,其他基本就没啥感觉了,山底风景不错,山顶空气很好,不过就是人太多了,玩起来也不是非常带劲,在方洞还有一非常郁闷的事,就是精心策划的逃票计划失败,在网上看到的那个方洞到小龙湫的逃票通道入口现在已经有工作人员把守了,于是就想趁他们不注意偷偷跑过去,虽然我是跑过去了,但是我同学被抓住了。。所以我只能灰溜溜的又回来了,从通道口往上走,翻过一个石亭,下面有个小池子,池子边上有个禁止通行的牌子,但是我们还是和另一拨人走过去了,在草丛里走了好久,原以为可以走到小龙湫,但是走到头是个大约70°的斜坡,而且旁边没有任何可依附的物体,考虑到安全问题,一群人还是原路返回,正好方洞逛完,沿另条路下山,下山路很长,这里有个小技巧,就是可以从下山路开始往上爬,然后从方洞正门出来,出来的时候可能会检票,可以在上山的时候找下山的游客要票,或者低价购票,毕竟这时候门票对于他们已经没什么用了。

方洞下来,只有两辆小巴在拉人,因为方洞逛下来还有些耗体力,所以决定先去响铃头找旅馆休息,问之去响铃头票价要15元,而且杀半天都杀不下来,就决定自己走去,走了段时间,问了问路边的老伯,得知大概还有4公里左右,就这样走了大约1小时,走到了响铃头,其实到了响铃头我们还不知道,问了问路边的大妈才知道原来这就是响铃头了,大妈看我们样,问我们要不要住宿,其实我想自己去找,但是大妈实在太热情,就跟着他去看了房间,房间还比较满意,问之价钱120元一晚上,杀到100元,在付钱的时候才知道原来100元一晚上是双人标准间的价钱,也就是一人一晚上50元。

在旅馆休息了1小时左右,出发去森林公园,叫了辆小巴,一人10元,整个车就我们两人,也就懒得还价了,其实响铃头距离森林公园很近,可以步行。

森林公园,门票25元,其实还不错,因为玩的人少(至少我们玩的时候没看到多少人),而且人为开发的迹象比较少,到处都是郁郁葱葱的树木,顺石阶上爬,四处都是高山,高山上覆盖着鲜绿的植被,心情非常畅快,走到前面有个回头虎的地方,走了好久不见头,加上路边树丛里悉悉索索的声音,酷似蛇在窜动,于是干脆往回走,朝上折瀑布去了。

按说这去上折瀑布的路还真是难走(不过这一切比起后来爬朝天门根本就算不上什么了),一路上道路曲折,都是大块石块堆砌起来的石阶,路上几乎看不到人,偶尔听见相隔好远有人谈话的声音,但是看不见人,大部分的路程两边都是茂密的树林,也有些路途一边靠山,一边是陡峭的悬崖,在山上和从三折瀑布上来的两人换了门票(其实也没必要换,因为出三折瀑布景区的时候已经6点多了,售票点都下班了),继续爬,到了上折瀑布,就见一好大的洞,没见水,失望之余接着朝下着瀑布走,准备从这条路回旅馆,走了好长时间才走出景区,因为离响铃头也不远了,就直接走回去了,找了家餐馆吃饭,两人点了五盘菜,花费105元,几乎都是被我吃的,真不好意思。。

吃晚饭原打算去灵峰看夜景,想想今天一天爬山爬的也累了,而且灵峰夜景开放的景点很少,加之我不太喜欢人为灯光制造的景象,就直接回旅馆了。

第二天一早,步行至去灵峰,门票30元,其实也没多大意思,人很多,路很平坦,到处走走逛逛,看看各种奇怪的山峰,导游说像什么就像什么,其实自己一点都看不出来,无聊的很。

灵峰出来,我看到景区旁边有条小路,路口一块牌子上刻着“朝天门”,算算时间还早,而且这名字听起来也很有诱惑的,我倒是要看看这朝天门有多高,于是就和同学一起爬,初期的路还比较好走,虽然也是大块石块堆砌的石阶,但是相对较宽,但是渐渐的路就开始陡峭起来,石阶也变窄了很多,偶尔会有铁链固定在路边的石壁上,可以借力扶下,大部分的路都没有扶手,两边都是空的,一不小心就很容易滑落下去,越到高处,路就越陡峭难走,一路上就看到两个人,他们刚爬到顶下来,鼓励我们继续爬,直到最后有白栏杆的那块路相对较平整,有栏杆也叫人放心了些(估计是因为这处地势较高,为了加强安全),从石阶望出去望下看,那高度的落差足以让人心惊,如果脚一滑从栏杆下面掉下去,估计会死的很惨。。我大概爬到东天门的位置就没有往上爬了,其实也差不多快到山顶了,只不过同学不愿意往上爬,加之原先的小雨开始下大了,怕下山路滑不好走,考虑到安全问题,还是很不情愿的下山了,不过山顶的风景真是相当不错,我在这个山头和另一端相隔甚远的同学说话,仿佛声音缭绕在山谷之中,不费多大劲说话,却可以听得异常清楚,远望山峦重叠,上山小径如羊肠般曲折,一切景色尽收眼底,加之绵绵细雨,更让人精神为之一振,实在让人心旷神怡。

朝天门出来,接到盛金打来的电话(前天晚上在旅馆联系过的,订了4点的汽车票),说两点正好有班回上海的汽车,问我们要不要,正好也没什么景可玩了,干脆就直接回上海了,找了辆出租,问去返沪大巴的停靠点多少钱,司机开价30元,杀了半天杀不下来,转身准备离开,刚好有另一人乘坐出租去其他地方,于是就把我们两个带到了乘车的地方,20元。

大概9点到上海,之后和同学去中山公园吃火锅,10:30到家。

整体而言,这次行程还不错,其实雁荡山的三大景区我都感觉很一般,虽然小龙湫我没去,因为大龙湫也就如此了,小龙湫也是在没啥兴趣,更何况还是逃票被管理人员给逮住的。这三个景区人都很多,而且都是随便走走,没什么挑战,听导游介绍介绍,走马观花的逛逛就可以逛完的。就个人而言,方洞还行,虽然人也很多,体力比较好的可以从三折瀑布爬到森林公园,路途较长,景色不错,更可贵的是人少,没什么喧闹,可以从下午2点半开始爬,一直到森林公园,因为三折瀑布的门票为10元,森林公园为25元,所以从三折瀑往森林公园爬更省钱,出景区门可能会查票,最好在景区内和从森林公园往三折瀑布爬的人换票,或者6点以后出森林公园,那个时候售票处都下班了,没人查票。最后,强烈建议精力旺盛的人去爬朝天门,一是这景不要钱,二是爬到山顶的景色确实相当不错,很值得一爬,爬的时候最好带足干粮,和水,建议带足糖和盐水,我们爬朝天门的时候是无意爬的,没有很多准备,所以有些遗憾,其实在我这个位置往前走还是有相当长的距离的,决心要爬完这个景,一定要做好充足的准备,最重要的是要注意安全,因为这个景几乎没有人去爬的,出了问题想找人很难。

旅游花费清单:上海至温州火车180元,温州至雁荡山汽车28元,早饭14元,景点内公交10+35/2+10=37.5元,住宿50元,景区门票30+20+25+30=105元,晚饭105/2=52.5元,矿泉水1.5*4=6元,一个糯米团5元,一包红双喜加打火机9.5元,出租车20/2=10元,返沪大巴180元,总共花费677.5元,还算比较省了,如果,换成其他大巴,往返才加起来才300元,可省88元,从三折瀑布往森林公园走还可省15元。

最后强烈不建议乘坐盛金大巴,我买票居然连票据都没有,就直接付钱上车了,返沪的时候明明直走进入上海市区的,他偏偏绕到安亭的岔路去,在一个服务区停下来,两个司机落下一车人等着,跑去吃饭,足足等了半小时,然后进入嘉定收费站的时候,车子后面居然冒起了烟,一车人慌乱的跑下车,司机检查了下说没事,大家才战战兢兢的上了车,哪知道车上了高架就抛锚了,实在是受不了,最后上了后面那盛金车到了闸北汽车总站,正赶上北广场在修建,地铁标志都找不到了,那地方出租都不让进,理所当然的也拦不到,还有人上前问做出租否,问之去中山公园多少钱,他居然开价45,我靠,太恶心了,往前走点,几辆出租车没一辆愿意去中山公园的,最后还是找到了地铁,坐到了中山公园,回来的路上实在是闹心的很。

不过总的来说这次行程还是很不错的,特别是朝天门风景,下次有机会也许还会去爬一次。



2009年4月25日星期六

IE6下的圆角菜单问题

一般做导航只需要并排若干a标签就可以了,但是有时候在处理圆角的时候会给a标签套上无序列表ul,去年做公司网站的时候就是用的ul套a标签给导航加圆角的,按理说应该是个非常常见的办法,但是当时在IE6下测试的时候,却出现了个很奇怪的BUG:li中的a居然直接扩充到了最大宽度,而并非并排排列,如下图:


在比IE6更高级的浏览器中是这样显示的,也是我期望的样子:



由于当时老板催的很急,在诧异了下之后,干脆给每个li加了class,然后分别定义宽度定死,承认这是个非常非常恶心的方法,但是当时也没时间去多研究,只顾着赶紧弄完。(但是后来时间充裕了也没那个闲心去管那个BUG了,我真懒。。)


直到后来做另外一个站的时候我又用ul套a标签做每个tab的圆角处理,在IE6下面又出现了上述BUG,我就很纳闷了,这次调了很长时间都没有结果,直到我弃用ul套a标签的方法,而改用每个a标签内套span的方法加圆角,问题才得以解决,所以,在之后的很长一段时间,我都认为用ul套a标签做导航都会出现IE6下的那个很莫名的BUG


但是最近我却发现有很多网站同样也是用ul套a标签做导航的,却在IE6下显示正常,然后我意识到问题的存在,刚调试了很长时间(本来还打算看电影的。。),把css一样一样去掉,在IETester里测试,由于IETester不方便调试,而且vista下又不能装IE6+IE WebDeveloper来调试,于是去装了个SuperPreview,这玩意一直都没怎么认真用过,今天倒用上了。


折腾了许久,当我去掉a标签的height属性时,居然就显示正常了!这怎么看也是width的问题啊,到后来居然是因为height引起的,真是让人匪夷所思。


然后我就很莫名其妙的被雷到了。。。

2009年4月10日星期五

给公司参加展会做的两张壁纸

第一次做这种风格的东西,使用PS,AI,没有用PS的笔刷,尺寸是1600*1200,点击查看原图。



2009年4月3日星期五

方便的抽象曲线绘制AIR小程序:Fractal4D

Fractal4D是一个用来绘制抽象曲线图的AIR小程序,并且可以将绘制结果导入AI中进行编辑,对于大多数设计人员应该很有帮助。我大概试用了下,感觉还不错,这样的曲线绘制效果以前在其他flash作品里也见过,有时间去看看它的曲线绘制算法,总之用它来绘制抽象曲线来装饰背景是非常方便的啦,直接下载

这是Fractal4D的演示视频


看不见视频点这里

顺便再推荐一个在AI中绘制抽象曲线的方法,这个方法我经常用,非常不错,以后再也不用死磕着死板的PS笔刷了。 :)

2009年3月10日星期二

flash旋转菜单

工作闲于时间做了个旋转菜单,每个项目都可以添加鼠标消息,现在做的是每个项目在鼠标移上去时加了个发光滤镜,不过还是有点BUG,有关ChildIndex的问题还需要改进,然后某胖子建议我加个减速的物理引擎,说现在看上去太假了,囧。下次再改进改进。。

这里有一个演示版本,在deviantart上,但是图片都是从外部load进去的,所以我就用Sprite代替了。

预览:

主类:CircleBar3.as
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.filters.BlurFilter;
import flash.filters.GlowFilter;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.display.Loader;
import flash.net.URLRequest;
public class CircleBar3 extends Sprite
{
private var angle:Number=0;
private var centerX:Number=200;
private var centerY:Number=250;
private var menuW:Number=10;
private var menuH:Number=10;
private var radius:Number=200;
private var speed:Number=0.04;
private var menuBar:Array
private var url:Array;
private var urlLoader:Array;
var pointY:Number;
public function CircleBar3()
{
stage.align=StageAlign.TOP_LEFT;
stage.scaleMode=StageScaleMode.NO_SCALE;
init();
}
private function init():void {
menuBar=new Array();
for(var i:int=1; i<=8; i++){
var rectM:loadPic=new loadPic(i.toString()+".png");
menuBar.push(rectM);
addChild(rectM);
}
trace(menuBar.length);
addEventListener(Event.ENTER_FRAME,onEnterFrame);
}
private function onEnterFrame(ent:Event):void {
var pi:Number=Math.PI;
var angle2:Number=pi/4;
var i:int;
for(i=0; i<8;>
var rectM_C:loadPic=menuBar[i];
rectM_C.x = centerX + Math.cos(angle+i*angle2) * radius/3;
rectM_C.y = centerY + Math.sin(angle+i*angle2) * radius;
var angle3:Number=angle+i*angle2;
rectM_C.alpha=(Math.sin(angle3+pi/2)+1)/2+0.2;
rectM_C.scaleX=rectM_C.scaleY=(Math.sin(angle3+pi/2)+1)/5+0.5;
rectM_C.filters=[new BlurFilter((Math.sin(angle3- pi/2)+1)*5,(Math.sin(angle3-pi/2)*20+1),3)];
}
addEventListener(MouseEvent.MOUSE_DOWN,mouseDownHandle);
}
private function mouseDownHandle(evt:MouseEvent) {
stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandle);
stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpHandle);
pointY=mouseY;
}
private function mouseMoveHandle(evt:MouseEvent) {
if(pointY>mouseY) {
angle -= speed;
pointY=mouseY;
}
else{
angle += speed;
pointY=mouseY;
}
}
private function mouseUpHandle(evt:MouseEvent) {
stage.removeEventListener(MouseEvent.MOUSE_MOVE,mouseMoveHandle);
}
}
}

加载图片,并添加鼠标消息:loadPic .as
package {
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.filters.GlowFilter;

public class loadPic extends Sprite {
var _sprite:SingleMenu;
var _loader:Loader;
var _string:String;
public function loadPic(_string:String) {
this._string=_string;
init();
}
private function init():void {
_loader=new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loadedImage);
_loader.load(new URLRequest(_string));
}
private function loadedImage(evt:Event):void {
var loadedimg:Bitmap=Bitmap(_loader.content);
_sprite=new SingleMenu();
_sprite.addChild(loadedimg);
addChild(_sprite);
_sprite.addEventListener(MouseEvent.MOUSE_OVER,rollover);
}
private function rollover(evt:MouseEvent) {
evt.currentTarget.filters=[new GlowFilter(0xffffff,0.5,20,20,2,1,false,false)];
evt.currentTarget.addEventListener(MouseEvent.MOUSE_OUT,mouseOutHandle);
}
private function mouseOutHandle(evt:MouseEvent) {
evt.currentTarget.filters=[];
}
}
}


图片加载容器:SingleMenu.as
package {
import flash.display.Sprite;
public class SingleMenu extends Sprite {
var smenu_w:Number;
var smenu_h:Number;
var color:uint;
public function SingleMenu(smenu_w:Number=128, smenu_h:Number=128,color:uint=0xffffff) {

this.smenu_w = smenu_w;
this.smenu_h = smenu_h;
this.color = color;
init()
}
private function init():void {
graphics.beginFill(color,0);
graphics.drawRect(5, 5, smenu_w, smenu_h);
graphics.endFill();
}
}
}

2009年2月28日星期六

Vienna Teng - The Green Island Serenade

Vienna Teng,一个来自美国旧金山的华裔女创作人,五岁就开始学习钢琴,六岁写下自己的第一首歌,十六岁高中时完成个人首张创作演奏专辑。斯坦福大学计算机信息系毕业后,顺利地进入思科公司(Cisco)担任软件工程师的工作,两年之后辞去工作重新回到了音乐创作。

我第一次听到Vienna Teng的歌就一发不可收拾,这首是她翻唱的一首台湾老歌,绿岛小夜曲。