老婆夏天在国内和汉宝儿呆了3个月。拍了不少视频,都是高清质量的mov文件。1,2分钟的视频就2,300mb。 总共拍了好几十个GiB。 这回来整理的任务就交给我了。首先得转换一下,mov的格式怪特殊的,还是avi比较好,另外文件的体积也可以相应地进行压缩一下,高清质量有时候没有必要。而且找这个情形拍下去,这硬盘肯定吃紧啊。
幸好mplayer带一个mencoder,可以执行很多视频相关的任务。 我对视频了解的也不多,只能研究man page + google, 能实现我所需要的这点功能就得了。
于是写了个小脚本,来做这个工作。 从技术上说没啥含量,就是一条命令,只不过一些参数被写死,比如bitrate, 2500 (SVCD质量), 音频,视频压缩编码(mp3, mpeg4)等;一些参数由用户给出。主要就是原始视频文件和视频尺寸(scale)。
脚本在这里:
ky_cv
要是像这种批量处理,就可以再写个脚本遍历目录里的原始视频文件,逐个转换,然后根据原始文件的日期来重命名或者分类。最后删除(可选)原始视频文件。这个脚本没什么意思就不贴了。
如果要快点,可以把要处理的目录分成2部分,分别进行批量转换同时进行并行处理。
脚本启动了以后,打开很早以前下载了但却一直没看的Pacific (血战太平洋), 看了4集。再看视频文件,所有视频的压缩转换和整理都已经完毕。
也许有更好的方法在linux里来做这种工作,谁知道的就指点一下。
btw, 上周日第一次在linux用视频语音聊天(skype),跟家人一起看汉宝儿的live show。效果还不错。 ;)
2010-11-16
要抓问题特性,少走弯路: Jboss集群下transaction-like队列管理
最近几天一直在解决一个工作上的问题。 在这里记录下来,以后用到可以参考。
有时候脑子真是就往一处使傻劲。看来直觉有时候是好的,但是有时候还是需要站在高处来看一下问题的特点,根据问题的特点来寻找解决方案。
以前做了一个项目,其实是个中间件,接受客户机的HTTP (get/post) 请求,然后按照一个比较复杂的逻辑,转换成特定格式的HTTP, SOAP或REST请求,最后发送到另外一个系统(blackbox),读取该系统的返回值,再返回给特定客户机。对那些特定的需要较长时间的请求(一个客户请求可能最终转换成包含上万个SOAP请求,并包含gpg, scp, ftp等子任务),为客户机程序提供callback接口,来查询工作状态。
简单图示:
最近,客户提出一个改动,说那个blackbox的系统,会定期down掉几个小时。这个downtime是可以提前预知的。现在要求,在黑盒子down的这段时间,对于那些不是需要长时间的请求,进行队列管理,也就是我的中间件(叫它MW)要对这些请求入队,等DOWNTIME过去以后,再dequeue,发送到黑盒子系统。
有几个需要注意的地方。
有点难的地方就是既要让集群最大发挥并行操作的作用,又要保证客户请求的transaction-like。另外还有个2个jboss的同步问题。
开始考虑可以用JBOSS的HASingleton服务来做队列管理。后来发现,HASingleton是server层上的一个服务,用于这种情况并不合适。
然后就想怎么才能解决上面提到的那个困难。2个JBOSS的同步,还是得通过数据库,否则要做的东西太多了。所以就一直打算数据库里有个全局的flag,根据它,MW来做enqueue还是直接发到黑盒子。但在细小的地方总不是太保险,主要体现在2个JBOSS状态同步上。而且,这样一来,其实同一时间,只有一个JBOSS在工作,另一个必须等它完成了才能取队列里下一个请求。 在这上费了些时间,总不能完美解决问题。
前天晚上陪儿子玩的时候一想,既然这个"transaction-like"是存在单一的客户机身上的,为什么不每个客户设2个FLAG,一个是是否enqueue,另一个是是否有JBOSS在对这个客户进行dequeue。如果一个客户的请求在队列里已经没有了,再有从这个客户来的请求,MW就可以直接发送到黑盒子了,尽管队列里可能还有其它客户发来的requests。更重要的是,这样,就可以按客户来取队列里的请求,2个JBOSS也就可以同时工作了,效率也提高了。于是就这么设计并实现了。
当然后来对一些小问题做了一些特殊的实现。
有时候脑子真是就往一处使傻劲。看来直觉有时候是好的,但是有时候还是需要站在高处来看一下问题的特点,根据问题的特点来寻找解决方案。
以前做了一个项目,其实是个中间件,接受客户机的HTTP (get/post) 请求,然后按照一个比较复杂的逻辑,转换成特定格式的HTTP, SOAP或REST请求,最后发送到另外一个系统(blackbox),读取该系统的返回值,再返回给特定客户机。对那些特定的需要较长时间的请求(一个客户请求可能最终转换成包含上万个SOAP请求,并包含gpg, scp, ftp等子任务),为客户机程序提供callback接口,来查询工作状态。
简单图示:
最近,客户提出一个改动,说那个blackbox的系统,会定期down掉几个小时。这个downtime是可以提前预知的。现在要求,在黑盒子down的这段时间,对于那些不是需要长时间的请求,进行队列管理,也就是我的中间件(叫它MW)要对这些请求入队,等DOWNTIME过去以后,再dequeue,发送到黑盒子系统。
有几个需要注意的地方。
- 对于每个客户的请求是transaction like的。要一个接一个地发送。就是说,某客户发了请求1,2,3,向黑盒子发请求的时候,要先发1,1处理完毕,再发2,2结束再发送3。因为3个请求有可能是“创建数据”,“查询数据”,"更新数据“. 【顺便说一下,尽管specification上写的是transaction-like ,但是我觉得这个词用的并不合适。因为涉及到transaction 就有ACID,就是like起码也有rollback等特性,这些在这个项目中并没体现。其实 for the same Client, a request should not be dequeued and sent to BLACKBOX until receiving the response of previous request 的描述更恰当些】
- 集群环境队列的同步以及并行dequeue的调度。
- downtime过后,因为有可能我的MW仍在处理队列中的请求,所以从客户新进的请求仍然可能会进行入队操作,而不是直接转换,发送到黑盒子。
- jboss(任一或全部)down再start,不影响整个队列操作。
有点难的地方就是既要让集群最大发挥并行操作的作用,又要保证客户请求的transaction-like。另外还有个2个jboss的同步问题。
开始考虑可以用JBOSS的HASingleton服务来做队列管理。后来发现,HASingleton是server层上的一个服务,用于这种情况并不合适。
然后就想怎么才能解决上面提到的那个困难。2个JBOSS的同步,还是得通过数据库,否则要做的东西太多了。所以就一直打算数据库里有个全局的flag,根据它,MW来做enqueue还是直接发到黑盒子。但在细小的地方总不是太保险,主要体现在2个JBOSS状态同步上。而且,这样一来,其实同一时间,只有一个JBOSS在工作,另一个必须等它完成了才能取队列里下一个请求。 在这上费了些时间,总不能完美解决问题。
前天晚上陪儿子玩的时候一想,既然这个"transaction-like"是存在单一的客户机身上的,为什么不每个客户设2个FLAG,一个是是否enqueue,另一个是是否有JBOSS在对这个客户进行dequeue。如果一个客户的请求在队列里已经没有了,再有从这个客户来的请求,MW就可以直接发送到黑盒子了,尽管队列里可能还有其它客户发来的requests。更重要的是,这样,就可以按客户来取队列里的请求,2个JBOSS也就可以同时工作了,效率也提高了。于是就这么设计并实现了。
当然后来对一些小问题做了一些特殊的实现。
- 每个jboss有个heartbeat线程,这样,一个JBOSS通过heartbeat interval可以知道另外一个是不是还“活着”。如果DOWN了并且自己空闲(没有进一步的dequeuing任务),就接管当初正被它工作的那个客户的请求。
- 当一个JBOSS着手处理一个客户的请求的时候,数据库记录下这个客户的ID。这样当这个JBOSS DOWN了,再启动后,可以知道之前的工作情况,以便继续工作 (如果还没被另一个JBOSS接管)。
- DOWNTIME的标志由quartz来负责维护。它本身就支持cluster,所以省了一些事。
Labels:
java
2010-11-10
2010-11-08
汉宝儿近况
转眼间老婆孩子从国内回来已经快两周了。和他们回国时候比较,我们的汉宝儿变化很快,长了不少本事。会爬了,会坐了,会扶着东西站了。给他东西,也有意识去抓了... 所以觉得隔一段日子,就应该把他的近期情况记录下来。
- 头顶的自来卷好像不是那么”怒发冲冠”了。 汉宝儿头发有点自来卷,但是正好在头顶。这还不要紧,卷的方向是从下向上。头发稍微长点,就形成了怒发冲冠的头型。或者说,一个punk头型呵呵。最近发现,洗过头以后,他的头发不是像以前冲天翘着了,也不知道是不是还不够长的原因。
-他应该算比较乖的孩子吧,平时基本上不哭闹,就是喜欢爬来爬去。只有当困的时候,开始叽歪。带他出去,也不像其他的孩子似的,非常兴奋,总是好奇地盯着什么东西出神地看。我心想,这也太老实了吧。可能淘气的时候还没到吧。有时候有点小脾气,有一次我抢走了他的玩具,他大拍桌子,也不哭,但表情很生气,然后我再还给他玩具,他快速摆手,把玩具打开,嘴里还不满地叫着。人家生气了。。。
-吃副食还是比较费劲。母乳已经断了1个多月了。母乳到奶粉的过渡也比较顺利。可副食不像其他孩子似的,饿了就等着妈妈喂,勺子过来就张口吃。他总是表现的,不是很饿似的,对吃的总兴趣不大,要逗着,他吃饭的时候,高椅上总摆上各种稀奇百怪的东西来吸引他,比如,小橘子,萝卜头,玩具,鸭嘴杯,锡箔纸,饭勺... 大概10分钟以内,这些东西就会全部被他划拉到地上,然后捡起,再划拉下去。很同情楼下的邻居。。。 不过今天晚上我烤了一条鱼,没什么刺。老婆挑了一点鱼肉给他,他显的很爱吃,眼睛直勾勾盯着,筷子一过来,就马上张嘴,好像有人和他抢一样。我是第一次看他这么吃东西。 要是平时都这么吃该多好阿。
-作为10个月的孩子,他出牙算挺晚的,人家都上下一对牙了,他才仅仅下面出了一个,另一个刚刚有点影子。不过医生说这正常。牙长的慢,头发和指甲却曾曾地窜。
-给他东西的时候,如果是新鲜的物件,他抓东西总是表现的很谨慎。先伸一个手指头,食指,小心地去碰碰,表情很认真。隔一会才会去真正地抓起来玩。不过当什么熟悉了以后,就不在乎了。有个小鸡的不倒翁,他总是用狠力去啪啪地打它,一下能打出去1米来远。可能因为打不倒,心里着急吧。
-爱笑! 让他笑很容易,随便逗一下就笑了。 最喜欢我从地上举起来他,高高的,或者把他扔起来再接住。往往美的嘎嘎地笑。也有时候不知道什么事触动他什么了,没怎么逗,就自己哈哈地笑,能笑挺长时间,笑的我们都肚子疼了,他傻乎乎地,还笑~ 不过也不是每次笑都那么招人喜欢。昨天夜里四点,人家精神来了,小床是不呆了,躺在我和老婆中间,嘴里念念有词,象说又像唱,时不时爬到我身上,看我,然后嘿嘿地笑。要么就爬到妈妈那里,使劲往妈妈身下钻,嘴里还哼,哼地喊着号子。 反正就是不睡了,最后跟他周旋到6点才又睡着。
-认人了! 尤其是晚上。 我基本喂不进奶去,在我怀里就会哭。到妈妈那里就老实。我不甘心,又抱过来,人家立马就又哭,眼泪哗哗地。 回到妈妈那,马上哭声就没了。是不是能闻到什么味儿? 我下次还要试试,套上我老婆的睡衣抱他看看。
-好像越长越像我老婆了。。。 :(
最近照片拍的不怎么多,发两个上来。记录一下。
最后看一下我们第一次理发以前的朋克头型,呵呵。 这个比较早了,大概3个多月的时候。
- 头顶的自来卷好像不是那么”怒发冲冠”了。 汉宝儿头发有点自来卷,但是正好在头顶。这还不要紧,卷的方向是从下向上。头发稍微长点,就形成了怒发冲冠的头型。或者说,一个punk头型呵呵。最近发现,洗过头以后,他的头发不是像以前冲天翘着了,也不知道是不是还不够长的原因。
-他应该算比较乖的孩子吧,平时基本上不哭闹,就是喜欢爬来爬去。只有当困的时候,开始叽歪。带他出去,也不像其他的孩子似的,非常兴奋,总是好奇地盯着什么东西出神地看。我心想,这也太老实了吧。可能淘气的时候还没到吧。有时候有点小脾气,有一次我抢走了他的玩具,他大拍桌子,也不哭,但表情很生气,然后我再还给他玩具,他快速摆手,把玩具打开,嘴里还不满地叫着。人家生气了。。。
-吃副食还是比较费劲。母乳已经断了1个多月了。母乳到奶粉的过渡也比较顺利。可副食不像其他孩子似的,饿了就等着妈妈喂,勺子过来就张口吃。他总是表现的,不是很饿似的,对吃的总兴趣不大,要逗着,他吃饭的时候,高椅上总摆上各种稀奇百怪的东西来吸引他,比如,小橘子,萝卜头,玩具,鸭嘴杯,锡箔纸,饭勺... 大概10分钟以内,这些东西就会全部被他划拉到地上,然后捡起,再划拉下去。很同情楼下的邻居。。。 不过今天晚上我烤了一条鱼,没什么刺。老婆挑了一点鱼肉给他,他显的很爱吃,眼睛直勾勾盯着,筷子一过来,就马上张嘴,好像有人和他抢一样。我是第一次看他这么吃东西。 要是平时都这么吃该多好阿。
-作为10个月的孩子,他出牙算挺晚的,人家都上下一对牙了,他才仅仅下面出了一个,另一个刚刚有点影子。不过医生说这正常。牙长的慢,头发和指甲却曾曾地窜。
-给他东西的时候,如果是新鲜的物件,他抓东西总是表现的很谨慎。先伸一个手指头,食指,小心地去碰碰,表情很认真。隔一会才会去真正地抓起来玩。不过当什么熟悉了以后,就不在乎了。有个小鸡的不倒翁,他总是用狠力去啪啪地打它,一下能打出去1米来远。可能因为打不倒,心里着急吧。
-爱笑! 让他笑很容易,随便逗一下就笑了。 最喜欢我从地上举起来他,高高的,或者把他扔起来再接住。往往美的嘎嘎地笑。也有时候不知道什么事触动他什么了,没怎么逗,就自己哈哈地笑,能笑挺长时间,笑的我们都肚子疼了,他傻乎乎地,还笑~ 不过也不是每次笑都那么招人喜欢。昨天夜里四点,人家精神来了,小床是不呆了,躺在我和老婆中间,嘴里念念有词,象说又像唱,时不时爬到我身上,看我,然后嘿嘿地笑。要么就爬到妈妈那里,使劲往妈妈身下钻,嘴里还哼,哼地喊着号子。 反正就是不睡了,最后跟他周旋到6点才又睡着。
-认人了! 尤其是晚上。 我基本喂不进奶去,在我怀里就会哭。到妈妈那里就老实。我不甘心,又抱过来,人家立马就又哭,眼泪哗哗地。 回到妈妈那,马上哭声就没了。是不是能闻到什么味儿? 我下次还要试试,套上我老婆的睡衣抱他看看。
-好像越长越像我老婆了。。。 :(
最近照片拍的不怎么多,发两个上来。记录一下。
再贴俩在国内时候的照片
最后看一下我们第一次理发以前的朋克头型,呵呵。 这个比较早了,大概3个多月的时候。
Labels:
myMark
2010-11-02
周末早上去散步,赶上了大雾,拍了几张照片
我喜欢汉堡2个季节,夏天和秋天。 秋天可能更偏爱一点。 今年的秋天就快要过去了,想着应该散散步,踩一踩落叶去。
上周日正好是夏时制结束的日子,气温转冷了,又逢大雾。所以即使早上8点多,路上还很清静。利用老婆正喂汉宝儿吃的时候,背上相机出去溜达了一小圈。照了几张相片。贴在这里,也算对这个秋天有交待了。
心里盘算着,要是汉宝儿会走了就好了,可以带他拍照,他摇摇晃晃地走在金黄色落叶上走,嘿嘿地坏笑着,看着旁边湖里鸭子天鹅什么的,应该会很好奇。
照片贴上来吧。
上周日正好是夏时制结束的日子,气温转冷了,又逢大雾。所以即使早上8点多,路上还很清静。利用老婆正喂汉宝儿吃的时候,背上相机出去溜达了一小圈。照了几张相片。贴在这里,也算对这个秋天有交待了。
心里盘算着,要是汉宝儿会走了就好了,可以带他拍照,他摇摇晃晃地走在金黄色落叶上走,嘿嘿地坏笑着,看着旁边湖里鸭子天鹅什么的,应该会很好奇。
照片贴上来吧。
Subscribe to:
Comments (Atom)












