网友语录 - 第14期 - 快乐的秘诀,无非就是五个字:不要太用力

这里记录我的一周分享,通常在周六发布。


马冇冇 手工作品之所以珍贵,是因为有人把他生命中的一段时间物化了给你。


米饭 有时候觉得小孩不懂事,不收拾东西,不爱惜衣服。但是,小孩懂事的时候,就是要离开父母的时候。


《里根日记》 里根非常善于写总结。作为演说家,他习惯在放在胸袋里的卡片上用速记做笔记。他的日记写作风格与此类似。从小时候起,写作就帮助他理清思路。数十年来,他自己撰写演讲稿、广播稿和报纸专栏。他曾说,写作让他"思路格外清晰"。担任总统期间,他仍亲自写(或修改)了许多演讲稿,而且他会亲自回复信件。1981年,他从白宫给一位公民回信说:"既然你要求我亲自回复,那我来了。"他喜欢阅读各类书籍。从第一篇到最后一篇日记,他的行文都充满活力,可见写日记对里根来说从来不是负担。


西瓦 三喵去临第二本的封面,临到一半崩溃了说自己画得不像。我和老爷开导她。说7岁小孩本来就不可能画得跟画家一样好;她现在觉得自己画得不好是因为有了审美判断,祝贺她;所有的大人都曾经爱画画,但大部分大人都只有7岁水平,因为他们觉得自己画得不好而停下;只要想画就要勇敢去画。

三喵的画


CarrieZ 女儿:妈妈,你猜这个世界上我最爱谁? 我:你说。 女儿:我第一爱我自己,第二爱妈妈,第三爱姥姥。 我:哈哈哈哈为什么第一爱自己? 女儿:因为想让别人爱我、想更好地爱别人,首先要爱自己! #又是女儿给我上课的一天


Marskay「普罗大众」 其实不是成语,是法语prolétariat 无产阶级的音义兼顾的神级翻译。


小青 喜欢就是我下次想和你一起玩,爱就是我总想和你一起玩。


神通四海财神奶 有些东西就是注定要被放弃的。父母的期待、他人的评判、各种纠缠不清的恶性关系、各类陈腐落后的集体意识,占据更多的时间和心血却没有让自己更快乐更自由的一切。


只有我能杀死我自己,只有我能拯救我自己,我也只能拯救我自己。(这里的自己显然是更高层面的自己,不是自己的肉身,因为肉身太容易被外界力量杀死。至于精神层面的自己,我也并不太确信这一论点,人是会受其他人或者书本或者影视品资料资料影响的,有些影响还相当大。但最终能杀死自己的,能拯救自己的,也许就只能是自己吧。因为即使他人有能力有意愿拯救你,也还要你自己同意。)


人權指的是每個人所擁有的自由、安全與幸福生活的權利。但是,什麼是自由、安全和幸福的生活?—也許就像你?頭頂上有片屋瓦,有足夠的食物,有可穿的衣物,不必害怕上街去學校,而且還有假日。你要知道,到目前為止,並不是每個人都能擁有這樣的生活。


小青 我不仅想融入狼群,我的志向甚至是尽可能多地当一只快乐小狗。人各有志,而这就是我想要的。

谁说小狗不能做大事,世上的好多难事都是快乐、质朴的人做到的。


《小银和我》

我从来没有给孩子们写过什么,将来也不会。因为,我相信孩子们可以读大人们读的书;当然,我们也可以想得到,有一些书应该除外。另外,男人们或女人们看的书也是有一些应该除外的,等等。

胡安•拉蒙•希梅内斯


闽南大翠花 快乐的秘诀,无非就是五个字:“不要太用力”。

Smart Row Selection: Maintaining Infragistics UltraGrid State After Refresh

... skipping 1000 words about bad solutions ...

The Clean/Best Solution

Here's a pattern that elegantly handles this situation:

public void RefreshGrid()
{
    // 1. Store the current entity before refresh
    SomeEntity currentEntity = null;
    if (dataGrid.ActiveRow != null)
    {
        currentEntity = dataGrid.ActiveRow.ListObject as SomeEntity;
    }

    // 2. Refresh the grid
    dataGrid.RefreshData();

    // 3. Restore selection using entity ID
    if (currentEntity != null)
    {
        dataGrid.ActiveRow = dataGrid.Rows.FirstOrDefault(r => 
            ((SomeEntity)r.ListObject).Id == currentEntity.Id);
    }
}

Why This Pattern Is Best Practice

  1. Type Safety: Using the strongly-typed entity object instead of raw values
  2. Identity-Based: Uses unique IDs instead of volatile row positions
  3. Null-Safe: Handles cases where no row is selected
  4. Concise: LINQ makes the code readable and maintainable
  5. Reliable: Works even if data order changes or rows are filtered

2010年前的我的户外活动记录

  • 2010-06-19 西胡林-火村 西枫队
  • 2009-08-29 黄安坨 - 百花山 坐隐队
  • 2006-06-23晚-06-25午 龙聚山庄-后河-泉水营地-古城河-三叉-泉水营地-龙聚山庄 领队
  • 2006-06-09晚-06-11晚 龙聚山庄-苏家河-五里坡-三叉河-苏家河-龙聚山庄 领队
  • 2005-08-12-08-14 后河-古城河-五里坡-三叉河-后河
  • 2005-07-24 刘家峪-黄草梁-柏峪 一日
  • 2005-07-17 箭扣一日
  • 2005-05-27-29 后河二日(拣垃圾) 领队
  • 20050521-22 黄安陀-百花山-百花草甸-百花林场两日 领队
  • 20050109 龙聚山庄-后河-三岔-龙庆峡 一日 领队
  • 20041106 水闸-绝石梁-圈门一日(九龙山)
  • 20040925 威海 戚家夼-石门-仙姑顶-望岛村 一日穿越 领队 1.0级
  • 20040922 威海 戚家夼-石门-通讯站-潍坊路 半日探路 领队1.0级
  • 20040912 威海 菊花顶-古陌岭-远遥村 半日穿越 领队 1.0级
  • 20040908 威海 菊花顶-古陌岭-远遥村 独行半日探路 1.0级
  • 20040815 马栏-老龙窝-煤窝一日探路 2.0组 领队
  • 20040731-0801 后龙庆峡一日一夜 领队 1.5级 领队
  • 20040725 香山邮局>快活林>香山水库>挂甲塔>打鹰洼>四棵树>植物园-->香山停车场一日穿越 1.0级 领队
  • 20040718 西大庄科-小海坨-大海坨-大海陀村一日 2.0级 领队
  • 20040711 九龙山-绝石梁-峰口庵-王平村 1.5级 领队
  • 20040702-0704 蒸汽机游游队 北京-延庆-龙聚山庄-后河-玉渡山-次仲泉-大海陀(未登顶)-小海陀-松山-延庆-北京 2.5+级
  • 20040618-0620 摩西队 北京-龙聚山庄-后河-古城河-五里坡-古城河-三岔河-龙庆峡-三岔河-后河-龙聚山庄 负重后龙庆峡探路穿越 2.0级
  • 20040612-13 变色龙yuci队 黄安陀-百花山-百花山停车场两日 2.0级
  • 20040605晚-20040606 私下带队 北京-龙聚山庄-后河-古城河-三岔河-后河-龙聚山庄 负重后龙庆峡一日穿越 2.0级
  • 20040530 私下带队 北京-龙聚山庄-后河-古城河-三岔河-后河-龙聚山庄 后龙庆峡一日穿越 2.0级
  • 20040523 西枫队 圈门-峰口庵-龙潭 一日 1.0
  • 20040522 漂流队 柏峪-黄草梁-北灵山-灵山停车场一日 2.0级
  • 20040515-0516 咕咚队雨中密云小水峪-牛盆峪穿越(雨大林密,未完成,中途折返) 1.7级
  • 20040502-0503 泰安药乡国家森林公园
  • 20040501 自驾车北京-济南->泰安
  • 20040417 变色龙队玉皇庙-无名山1-无名山2..-无名山N-连理石-妙境林场-北港沟一日疯狂抱石穿棘探路 2.0级
  • 20040411 yuci队 玉皇庙-清水尖一日F·B探路(探路未完成) 1.0级
  • 20040404 小榄队 涧沟村-庙洼-阳台山-大风口-凤凰岭-飞来石-减肥路-天梯-神泉-龙泉寺 一日穿越 2.0级
  • 20040328 小榄队 柏峪-黄草梁-留言壁-实心楼-落叶谷-椴木沟-灵山停车场一日穿越 1.5级
  • 20040321 yuci变色龙队 柏峪-十里坪-腊子口-象鼻山 一日FB 1.2级
  • 20031002 航天桥-月陀岛自驾车一日游(非绿野)
  • 20020915 高崖口-妙峰山 一日穿越(非绿野)

网友语录 - 第13期 - 人类之所以进步,是因为下一代不听上一代的话

安子 尽量多发现身边那些笑点很低,很容易满足,无论何时看起来都是喜洋洋的人,并且尽量多的跟他们在一起,你会感觉到被滋养,被激发,被启迪。它们像炭火一样煲养你的生命,给你力量,带来喜悦,他们是真正的人间天使。(更重要的,只要你贴他们足够近,他们还有能力把你转化成他们的同类)


碧螺姑娘 突然间真实感受到了“人生是旷野”的具体意义。虽然风刀霜剑严相催,但就是要热热闹闹地去活着。


奧匈帝國小説家弗朗茨·卡夫卡(Franz Kafka)寫過一則微型小説叫《法律門前》。小説講的是:有個鄉下人走到一處敞開的大門前,但是看門人不讓他進去。鄉下人問,那他以後可不可以進去呢?看門人跟他説,以後有可能,但是現在不行。看門人還暗示他說,如果他實在想進去,可以試一試,不過裏面還有更多看門人守著其他大門,這些看門人一個比一個難纏。後來這個鄉下人就在這個大門前等了一輩子,就等有機會允許他進去。等到自己快要死的時候,鄉下人問:爲什麽一直沒有其他人要求進這個大門?看門人跟他說:因爲這個大門就是專門給你一個人開的,等你死了,大門就會關起來。


人生若梦为欢几何 有句话说的很好,你把生活当游戏,把周围所有的人当npc,就不会内耗了。


CarrieZ 人类之所以进步,是因为下一代不听上一代的话


书摘 《暮色将尽》 有时我问自己,到底是什么,让我,以及我确信其他不计其数的老年夫妻或伴侣在类似情况下,能够坚持彼此照顾?我能给出的唯一答案,只能用比喻来说明,尽管一株植物的根和长在茎干顶端的花朵或果实看起来差异很大,但依然属于同一个东西的不同部分。对我来说,从爱里生长出来的责任和义务,看起来也如此不同,却也是同一个东西的不同部分。否则的话,责任如此不受欢迎,怎么还会这么不费力就和爱绑在了一起?一个人在这种情况下没有选择第二条路,因为对他来说,没有第二条路。也许一个无私的人(这样的人确实存在)会把做好事当成工作,从中获得满足;但一个自私的人,一边承担着责任,一边也许会尽力想办法逃避,或尽量补偿自己。这个办法也许不值得赞美,但我觉得我不是唯一这样做的老人。


我有个侄女,一个美丽的女人,我不想提她的名字,因为她不喜欢这样。她是三个孩子的母亲,最小的儿子也已追随哥哥们的脚步上大学去了,在整个婚姻期间她一直在工作,她的工作是修补油画。不久前,一次晚餐时她正好坐在一个外科医生身边,不经意地提起如果她能重新活过,她会选择学医。他问她今年多大了,她回答四十九岁。好吧,他说,她还有时间,他们医院收五十岁以下的学员学习接生,她一回家就报了名。我上次见她时,她自豪地告诉我,她已经带领团队接生过六个孩子了。她说有时也会问自己:“我这是在干什么啊?”但她依然无法想象在这个世界上有任何事情,比帮助、见证生命的开端更令人兴奋和战栗。她还说,最令人感动的场面,是父亲哭泣的时候(她接生的六个孩子,父亲都在场),每当此时,她总是不得不走出产房,掩饰自己想哭的冲动。她是个相当能克制自己微妙情绪的人,看到她的脸因为谈及迎接新生命的降临而闪亮,我觉得非常嫉妒。走出熟悉舒适的生活环境,走入一个全然不同的世界,她的勇气和行动让她获得了无可估量的价值。而我,从没做过类似的事情。


爱丽丝出生于布拉格,父母都是犹太人,他们并不虔信宗教,并与马勒和卡夫卡熟识。爱丽丝师从李斯特的学生,长大后成为非常出色的钢琴家,后来嫁给了一个很有才华的音乐人。1939年希特勒入侵捷克斯洛伐克时,她正沉浸在快乐、忙碌、富有创意的生活之中,当然这样的生活立刻就被摧毁了。她与丈夫、儿子一起被送往特莱西恩施塔特关押,这是一个所谓的“做秀”集中营,纳粹用它来向国际红十字会的检查人员展示其“仁慈”,所以这里活下来的人比其他集中营多一些,当然最后也死了不下几千人。爱丽丝的丈夫也在其中,他被纳粹从这里遣送出去,死于别处。战后爱丽丝和儿子返回布拉格,发现故园不再,丈夫全家、自己的大部分家人和所有朋友都已消失不见,于是她搬到了以色列,在那里养大了儿子,她儿子后来成了一名大提琴演奏家,在儿子的鼓动下,她又于二十年前来到英国。2001年她儿子六十五岁,不幸突然死亡,现在她独自住在伦敦北部的一间公寓里。在很多人的想象里,她大约会是一个阴郁可怕、孤独凄凉的老女人。

但实际情况完全不同,访谈录上刊登了她的三张照片:1931年光彩照人的新娘,战后光彩照人的年轻母亲,以及今天一百零三岁光彩照人的老妇人,三张照片中眉宇间散发的快乐神情如出一辙。看看她说的话,她说她到现在依然记得在集中营里唯一善良的纳粹邻居,在以色列感受到的令人心灵颤抖的自由,以及她如何热爱英国、热爱英国人,更重要的是,她到现在依然嗜好钢琴演奏,每天都弹三小时。她曾说过,“工作是人类最棒的发明……它让你感到快乐,因为你在做事情”,她和玛丽·路易斯·莫泰希茨基一样令人惊异,而她是天生就有创造力的典型。她沉醉于生活的美妙之中,并非由于宗教的激发,“开始是这样的,我们生来就有好的一面,也有坏的一面,每个人,每一个人都是这样的。然后你会遇到激发你内心好或坏的不同境遇,我相信,这就是为什么人们要发明宗教的原因”,因此她很尊重宗教里饱含的希望,尽管她的内心未必需要宗教的支持。她身上有一种不同寻常的好运,天生就具备强有力地朝向乐观主义的本性,不论经历了怎样的际遇,她依然会这样说:“生命是美丽的,如此美丽。而一个人越老,就越能察觉到这一点。当你老了,你思考,你记忆,你关切,你明了。你因为一切而深怀感激,为一切。”她还说:“我了解所有事情坏的一面,但我只看好的一面。”

很多人一定会对她的勇气充满敬畏,但我却怀疑爱丽丝自己会不会将这种积极的生活态度视为一种德行。因为她将自己与妹妹做过一个对比,她说妹妹是天生的悲观主义者,在这里,“天生”是关键词。她们姐妹俩天赋的气质,就像老天给她们不同颜色的头发一样偶然。对不幸深感痛苦的敏感,也许在一个人生命力活跃的岁月非常有用,但前提是它有时确能在永无休止地与人性“坏的一面”艰难作战时成为必要的能量。但当你老了,当你的关注点已经变成如何挨过每一天才能将痛苦降低,对别人叨扰更少,此时,这样的性情只会成为负担。不幸的是,像爱丽丝这样,说明老年人需要鲜活心灵和积极心态的榜样,不大可能成为有用的“课程”,因为具备这些品质的人们已然如此,而不具备的人,永远无法企及。也许我们有一些人正好处于两极之间,被她的故事激发,或许能做得比原来更好一些。

(by the way,这个老太太是捷克裔英国籍钢琴家,2014年以110岁的高龄与世长辞,是犹太人纳粹集中营幸存者里的最年长者。)


书摘《大杜鹃:大自然里的骗子》 为了争夺那些特别具有吸引力的雄鸟,雌鸟们不惜抛弃已有的配偶,这种行为被称作“婚外交配”。不同种类的雌鸟对于吸引力的诠释也存在差异。有些种类的雌鸟看重的是雄鸟鸣唱的复杂程度,有的雌鸟则更看重雄鸟鲜亮的羽色。参与婚外交配的雌鸟会去选择那些跟自己的配偶相比,鸣唱更为婉转,或者羽饰更加靓丽的雄鸟。而根据这些特征,已经与有吸引力的雄鸟配对的雌鸟,相对而言就会表现得更为忠贞。

由于精子能够在雌性鸟类生殖道上的盲端小管内保持一周或更长时间的活力,因此雌鸟就具备了存储精子的能力。所以,如果一只雌鸟跟两只以上的雄鸟交配,它的储备当中将会存在源自不同雄鸟的精子。如此一来,它的一窝雏乌通常有着多个父亲。

有些种类的雌鸟尤其开放,例如芦鸥,该种不少于一半的雏鸟都出自婚外交配。

运用 DNA标记确定亲子关系,我们发现威肯草甸沼泽里的大多数芦苇莺雌鸟都忠实于它们的配偶。仅有15%的巢内含有出自婚外交配的雏鸟,通常这样的巢当中每窝也仅有一只。总计全部的雏鸟里面只有6%来自婚外交配。

......

我们想知道,延迟拒收模型卵是不是由于只有达到满窝卵数,寄主才更容易通过比较来识别出奇怪的陌生卵。

芦苇莺父母会交替孵卵,看它们啄模型卵的样子就知道雌雄都会参与对那些不像自己卵的筛查。然而,配对的芦苇莺在这点上并非总会达成一致。在一个巢里面,雄鸟就持续孵着一窝卵,其中含有一枚很不匹配的模型卵,而雌鸟则在它下方忙着拆巢,将材料拿到附近去建新巢。观察这个旧巢很有趣,每次当雌鸟从其中扯出满嘴的巢材时,雄鸟就会凑到巢边盯着它看,好像对发生的一切若有所思。几个小时之后,旧巢几乎被完全拆散,雄鸟迫于无奈也只得搬家。

芦苇莺弃巢可能是对我们的模型卵做出的反应,也可能是对真正的大杜鹃卵做出的回应。无论是哪种情况,芦苇莺弃巢后往往会在附近再建一个新巢。但有的时候,它们会将新巢直接建在旧巢上面。这样会形成一个两层的巢,遭放弃的旧巢被新巢埋在下方。为什么会这样而不在新巢址去重建呢?或许是为了减少被再次巢寄生的概率吧。如果大杜鹃雌鸟能记住它已经寄生过的巢址,并且不再去打这些巢的主意,那么芦苇莺就能从将新巢建在旧巢之上的行为中获益。


我第一次尝试 MidJourney(文生图工具)和 Suno(文生音乐工具)时,我想知道未来是否每个人都会成为数字艺术家。

很快,我就意识到我没有"创作冲动",即使看过很多别人的创作,我也常常不清楚自己想要创作的东西。

因此,未来的 AI 即使具备无比强大的绘画和编曲能力,还是只有少数人能成为画家和音乐家。程序员也是如此,即使 AI 会编程,也无法人人成为程序员。-- 《Cursor 深度体验》


婚姻或许幸福或许不幸,但它都不是一项成就。(它只是一个选项。)


勇气,并不是闪闪发光的英雄主义,勇气中也包含怯懦,就像爱中也有不爱的时刻。这来回摇摆的踱步,斑驳的杂质,才是真相。

黎戈《茫然尘世的珍宝》


要记得:What you allow is what will continue. (不喜欢不想要不想继续一定要明确坚决地说出来,不留商量的余地。从一开始就这样做可以避免很多不必要的纠缠,甚至悲剧。)


demi 该生气就生气,该发疯就发疯,自从我不压抑天性情绪自由以后,讨厌的人都远离了我,世界变得非常美好

Implementing QuickFix/n Logging with NLog

Wen working with QuickFix/n ibrary , efficient logging is crucial for troubleshooting. Here's how to implement a custom logging solution that routes QuickFix logs through NLog to your ELK stack.

Key Components

  1. NLogAdapter: A custom adapter that implements QuickFix's ILog interface:
public class NLogAdapter(ILogger logger) : ILog
{
    private const string HeartbeatPattern = @"\x0135=0\x01";
    private static readonly Regex HeartbeatRegex = new(HeartbeatPattern, RegexOptions.Compiled);

    private static bool IsHeartBeat(string message) => HeartbeatRegex.IsMatch(message);

    public void OnIncoming(string message)
    {
        if (!IsHeartBeat(message))
        {
            logger.Info("Incoming: {Message}", message);
        }
    }
    // ... other implementations
}
  1. NLogQuickFixLogFactory: A factory class to create log instances:
public class NLogQuickFixLogFactory(ILog logger) : ILogFactory
{
    public ILog Create(SessionID sessionId) => logger;
    public ILog CreateNonSessionLog() => logger;
}

Implementation Steps

  1. Register Dependencies in your DI container:
builder.Services.AddSingleton<NLog.ILogger>(_ => LogManager.GetCurrentClassLogger());
builder.Services.AddSingleton<ILog, NLogAdapter>();
builder.Services.AddSingleton<ILogFactory, NLogQuickFixLogFactory>();
  1. Configure QuickFix to use the custom logger:
var initiator = new SocketInitiator(
    clientApp,
    storeFactory,
    sessionSettings,
    new NLogQuickFixLogFactory(quickfixLogger)  // Use custom logger injeted by ILog here 
);

Key Features

  • Heartbeat Filtering: Reduces log noise by filtering out FIX heartbeat messages
  • Structured Logging: Uses NLog's structured logging format for better parsing in ELK
  • Separation of Concerns: Cleanly separates QuickFix logging from application logging

Benefits

  1. Centralized logging in ELK stack
  2. Better debugging apabilities
  3. Reduced log volume through heartbeat filtering
  4. Consistent logging format across your application