boat+hill

·舟山詩詞·淘海洗玉集 – My Poems, and etc.

BC Trip 2016

leave a comment »

Written by Boathill

2016-01-17 at 20:40

Zhou Enlai

leave a comment »


沁園春 · 再懷周公,和毛詞原韻,並序《重訂丙辰清明詩鈔

  
久逝容光,
歲月塵封,思念遠飄。
記當年國喪,陰雲翳翳;
 人民心碎,淚雨滔滔。
萬業親躬,先憂後己,
誰比周公品質高?
一生夢,為中華崛起,
富裕妖嬈。
  
山河自古多嬌,
是烈士拋顱與折腰。
想伍毫學社,初揚文采;
 南昌黃埔,盡顯風騷。
外交和談,蜚聲宇內,
政治功夫巧射雕。
多少代,留傳奇故事,
遺唱今朝。

二零一一年一月八日於紗糸軒

Written by Boathill

2016-01-07 at 18:00

Punta Cana

leave a comment »

Written by Boathill

2016-01-01 at 22:00

Seattle 2015

leave a comment »

Written by Boathill

2015-12-25 at 20:00

Javascript: Sync JSON Data

leave a comment »


/**
 * Synchronize new data to original object and keep reference
 * Check object data type and traverse object tree to delete old key
 * as well as replace with new data:
 *
 * - if keyed data is directory (hash map) 'object', sync recursively
 * - else (including number, string, and array, etc), replace with new data
 *
 * @returns void.
 */
function syncObjectData(newData, orgData) {
  if (newData != null && orgData !== newData) {
    var sourceType = orgData.toType();
    var targetType = newData.toType();

    if (sourceType != targetType) {
      // the top level type must match

      var message = "Cannot update '" + sourceType + "' with different type " + targetType;
      throw new Error(message);
    } else if (sourceType != 'object') {
      // can only sync object type

      throw new Error("Does not support updating type of " + orgType);
    } else {
      for (var key in newData) {
        if (newData.hasOwnProperty(key)) {
          if (orgData.hasOwnProperty(key) && newData[key] != null) {
            var orgType = toType(orgData[key]);
            var newType = toType(newData[key]);

            if (newType == orgType && orgType == 'object' && orgData[key] != null) {
              syncObjectData(newData[key], orgData[key]);
            } else {
              orgData[key] = newData[key];
            }
          } else if (!orgData.hasOwnProperty(key)) {
            orgData[key] = newData[key];
          } else {
            delete orgData[key];
          }
        }
      }
      for (var key in orgData) {
        if (orgData.hasOwnProperty(key)) {
          if (!newData.hasOwnProperty(key) || newData[key] == null) {
            delete orgData[key];
          }
        }
      }
    }
  }
}

Here is the helper function to get name (string) of the exact type.

/**
 * Convert data type to string, e.g. 'undefined', 
 * or 'null', 'boolean', 'number', 'string', 'array', 'object', 'date', 'function', etc.
 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects
 */
function toType(variable) {
  return ({}).toString.call(variable).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
}

Written by Boathill

2015-12-05 at 15:00

Posted in IT, programming, study notes

Tagged with , ,

Arizona 2015

leave a comment »

Written by Boathill

2015-11-22 at 22:00

Posted in Photograghy

Tagged with , , ,

Dream

leave a comment »


  …………
  他像平时一样来了。
  瘦瘦的脸颊,神情细致。
  似乎还在高中时代,又感觉时间过去了许多年。
  昔日的同学,难得能经常聚在一起谈得来的好友。
  其实我们俩都是比较闷的,聊的无外乎書法、刻印、诗歌、古籍一类的。
  可今天不一样的是,他好像很高兴,说话也多,一直侃侃而谈。
  说着许多不靠谱的笑谈,但我很细心地听着,感觉很好。
  聊着聊着,也不知为什么就坐着他骑的车一路回家了。
  是他的家。和记忆中的不一样的街道和住宅楼。
  忘了自己的二八车放在哪里了。
  到了他家楼下,才想到天都黑了,我怎么回家啊?
  也意识到自己家不再和他家是邻居了,离得还挺远。
  心里估摸着如果走回去需要多少时间。
  周围的景致好清晰,非常有细节。
  要过一条马路,再走约莫四五站地的样子。怎么这么远?
  又想刚和父母吵了架,是回去呢还是在外面晃一夜。
  可看他聊得正热闹,不知怎么张口。
  天色已经很晚了。我也累了。
  心思飘离,慢慢走在回家的路上,倾听着黑暗中莫名的紧张。
  最终还是跟他說,借我自行车用用,要回家了。
  他很仗义地說骑车带我回家。
  这么晚了他居然还能在路上遇到熟人,客套、问好。
  於是我们又开始一路走一路往回聊。
  或者也许,我们一直站在楼下,只是我的魂儿自在地忽悠了一会儿。
  夜很深了,不得不提出是否在他家凑合一夜的想法。
  以前两家住的近,从來没出现这种情况。
  很矛盾提出超常的要求。
  我迷迷糊糊地在楼道的扶手上滑过,想當然地滑到了楼下。
  楼梯变成了物理世界奇遇记里的平面。
  难道进入的大门不是一楼吗?
  一个孩子坐在角落里告诉我找错门了。
  我只好又滑向二楼,再高些三楼……
  他站在门口等我。
  看來我适才的确离开了一会儿,是思想还是身体难以回味。
  我这才记起來问他,怎么搬到这里?
  他一边领着我进屋,一边向我解释起来。
  客厅过道处有条大狗,或是个穿着道具的小孩。
  他說,没事儿的,你轻一点,别吵醒它(他)就行。
  我不知道其所指,只惦记着怎么绕过门口和屋里堆积的箱子。
  我礼貌地问,叔叔阿姨都还好吧?
  我父母出国了一年,去的是堪培拉,他接着說。
  在非洲么,还是美洲,我心里画着世界地图。
  所以中科院的房子就不能住了,他說。
  科学院有这样的规定?我心里疑问。
  他们回国後,重新分房,就搬来了这里。
  房间里的照片,显示了住宅的主人。
  是专业记者的采访,写着著名科学家洋以亭的名字。
  我看不清字迹上写的是不是个草書的洋字。
  他接着甩给我一個爆炸消息:
  你看过新闻說洋以亭教授和咱们学校校长结婚的报道吧?
  我这会儿听着已经灵魂出窍了。
  你你你,你又不姓洋的啊?!什麽意思嘛?
  让我想想,难道分不清你的姓氏和洋字的区别了……
  當大脑越来越慢,感觉迟钝的时候,我知道自己是快醒了。
  仅是还有一层意识,试图继续去捕捉他更多的解释。
  不能就这么醒來吧?还有许多问题要问。
  可接下來的故事只能我自己圆了。
  但我必须……

2015.10.26. 凌晨記梦,於北美西雅图。

Written by Boathill

2015-10-26 at 06:00

Posted in diary, life

Tagged with , ,

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: