不忘初心 砥砺前行

多年以后,尝遍了各式各样的美食的你,也许会回想起那年夏天第一次踏进“面包集市”的那个下午。那时的“面包集市”才刚刚扎根在小区的街道旁,蝉鸣此起彼伏,光线非常友好,照亮了店员们充满疲惫、紧张和期待的面庞。

那时的店员们还非常年轻,面对接下来充满了忙碌和挑战的人生,微微感到不安。此前他们已经忙碌了许久,室内设计、装修、购置设备和轻工等等事情,让他们吃了不少苦头。

而付出的辛勤也即将看到回报。 终于,他们自己的店在众人紧锣密鼓的筹备下,已经初有模样了。

那个下午,他们像一个个孩子一样,满怀期待地端出了自己的作品。这是他们梦想的延续,从为大家带来亲手培养酵母、烘焙会呼吸的面包开始。

散是满天星,聚是一团火。 对梦想的坚持,是他们把所有人团聚在一起的力量。

“要把所有的夜归还给星河,把所有的春光归还给疏疏篱落,把所有的慵慵沉迷与不前,归还给过去的我。”

这些面包,要把它们所有的童真,归还给你。

周而复始 死而复生

端午是祭奠屈原的中国传统节日。

生命和死亡

最近面对的事情也挺多,突然觉得好像身边有一些同伴,遭遇了亲人生命的消逝,也有一些即将获得新的小生命。

我想起了邓珂上周说的一句话,当时准备去拍摄金鸡菊,但是遭遇大风天气没有去成,然后在讨论花是不是谢完了,有一句话比较特别,因此特地把原话翻出来了。

有死去的就有新长出来的

今天去金鸡菊聚集开放的两处,一处的花已经败完了,另一处则是别有一番景色。 花瓣已经谢掉的花株,穿插在新盛开的花朵之间,显得新花更加鲜艳和美丽。

从很早就期待科比的孩子降生于世,期待不仅在于新的生命即将来临,更加期待的是新的生命对科比他自己的影响。最近也就快出生了,祝他们一切安康。

而签哥则遭遇了祖母的去世。我曾经想过自己,从来没有经历过上上一辈亲人的离世,自己是否有些不懂得珍惜年事已高的爷爷奶奶他们。

然后就在几天前,从邓珂那里听到她爷爷去世的消息,顿时心里很沉重。

我对死亡的理解深受以前看的一本印第安土著哲学书的影响。这本书里告诉我,要像战士一样生活,而像战士一样生活,则一定要随时准备死亡,否则到达不了舍弃一切的境界。

其实对那些玄之又玄的人生哲学,我几乎都忘得差不多了。对于生命和死亡的态度,我自己也不确定了。

想起来以前看的新闻,说是人只有在自己面临死亡的时刻,才能体会到生命的重要和宝贵,也许我这就是“只有失去才知道珍惜”吧。

端午

今天仍旧不呆在家,也是想着出去转一转。直接上图吧。

今日最佳

CSharp 之 Dispose Pattern

最近再做项目代码的静态代码检查Sonar Lint清理的事情,其中有一项清理一直摸不着头脑。

静态代码检查器告诉我,我实现了一个IDispose的类需要正确实现Dispose Pattern。那么什么是正确的Dispose Pattern呢?

参考文献:

MSDN:
https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-dispose

Sonar Lint Guide:
https://rules.sonarsource.com/csharp/RSPEC-3881

Dispose Pattern 的四个原则

(推荐) 如果我在一个非基类上实现了 IDispose 接口,则需要封装此类,加 sealed 修饰词。 Dispose 必须是 public 方法。

// Sealed class
public sealed class Foo1 : IDisposable
{
    public void Dispose()
    {
        // Cleanup
    }
}

(推荐) 如果我在一个基类上实现了 IDispose 接口,则必须实现一个 Virtural 的 Dispose(bool) 方法,并且在 Dispose 的实现里调用 Dispose(true)。

// Simple implementation
public class Foo2 : IDisposable
{
    public void Dispose() // Dispose Pattern standard implementation
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    protected virtual void Dispose(bool disposing)
    {
        // Cleanup
    }
}

如果我的一个类上实现了析构器,则必须在析构器里面调用 Dispose(false)。

// Implementation with a finalizer
public class Foo3 : IDisposable
{
    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    protected virtual void Dispose(bool disposing)
    {
        // Cleanup
    }

    ~Foo3()
    {
        Dispose(false);
    }
}

如果一个类继承自实现了 IDispose 接口并且遵循 Dispose Pattern 的基类,则它在重写 Dispose(bool) 的时候必须要调用基类的 Dispose(bool) 方法。

// Base disposable class
public class Foo4 : DisposableBase
{
    protected override void Dispose(bool disposing)
    {
        // Cleanup
        // Do not forget to call base
        base.Dispose(disposing);
    }
}

那么我们应该如何实现 Dispose() 和 Dispose(bool) 方法呢?

Dispose()

Dispose() 方法必须是 public 而且是不能被重写的。在Dispose Pattern里面,它的唯一作用就是显式调用 Dispose(bool) 方法。

下面是 Dispose Pattern 对 Dispose() 方法的标准实现。

public void Dispose()
{
   // Dispose of unmanaged resources.
   Dispose(true);
   // Suppress finalization.
   GC.SuppressFinalize(this);
}

Dispose() 方法应回收所有非托管资源。调用GC.SuppressFinalize(this) 会告诉垃圾回收器我已经回收过了,因此不再调用它的析构器。

Dispose(bool)

使用一个 bool 的参数的作用是用来表示当前的调用是不是来自它的 Dispose 方法,因为析构器也同样会调用它。

Dispose(bool) 方法应该实现两个模块,分别是释放托管资源和非托管资源。

非托管资源:无论何时都应释放。

托管资源:需要释放这个对象里包含的 IDisposable 对象资源,以及申请了大量内存(例如大数组等)的资源。重要:只有参数为 true 才释放托管资源。

解释:如果从析构器调用的 Dispose(false) 只有非托管资源会被释放。因为垃圾回收器会回收该对象的时候,不确定Dispose方法调用和回收的顺序。通过传入 false 确保要回收的资源没有事先已经被回收。(有点没看懂,附上原文)

If the method call comes from a finalizer (that is, if disposing is false), only the code that frees unmanaged resources executes. Because the order in which the garbage collector destroys managed objects during finalization is not defined, calling this Disposeoverload with a value of false prevents the finalizer from trying to release managed resources that may have already been reclaimed.

// Implementation with a finalizer
public class Foo3 : IDisposable
{
    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    protected virtual void Dispose(bool disposing)
    {
        // Free unmanaged resources

        if (disposing)
        {
            // Free managed resouces
        }
    }

    ~Foo3()
    {
        Dispose(false);
    }
}

呼伦贝尔大草原之旅

出发以及抵达

其实我是第一次坐飞机,头一天晚上我变得又兴奋又焦虑。兴奋在于,对于这场旅行我还是满怀期待的;焦虑在于,我对于自己的准备是否充分,仍然持怀疑的态度。

第二天清晨三点,一夜未曾入睡的我,便翻身起床了。简单洗漱完毕后,检查行装,便出发去了机场。

中午十二点多钟下的飞机,一眼往外望去。第一感觉是这天空中的云,可真低啊,感觉就像只有层无形的托盘把云朵堪堪托住而已,我害怕它会随时掉下来。

从机场去往市区,一路上看到了呼伦贝尔郊外的各种烟囱,后来得经证实,其实是呼伦贝尔的火力发电厂。

草原迎宾

美女导游带领我们进行草原迎宾仪式,于是便乘坐了大巴车来到了金帐汗。

中午美美地吃了第一顿团餐,感觉有鸡有鸭,感觉餐饮标准可以啊。(后面几天被现实无情地打了一耳光。)

吃完饭便是短暂的自由活动时间,我们去金帐汗后面的草原上去看风景。就像没去过城市的人第一次去了城市,我们心里忍不住一声声的惊叹——这风景也太美了。

莫日格勒河

早在飞机准备降落的时候,我便通过窗户看到了一条弯弯曲曲的河流。只不过当时没有想到,那便是呼伦贝尔三大河流之一的莫日格勒河。

弯曲的程度超乎我的想象,我从未见过如此蜿蜒曲折的河流,来到了此地才叫大开眼界。

包括后面几天再次见到它,心里仍不住一声声的赞叹,这一条美丽的河流,不仅养育了这一方水土,还带了无比美妙的自然景观吸引了无数游客前来驻足。

最后一天穿越大草原的时候,我们驱车前往草原深处,对这条河流有了更深层次的观察。

恩和/室韦俄罗斯风情小镇

当晚去了恩和小镇下榻,夜晚天气非常寒冷。晚餐以俄罗斯晚餐为主。

清晨的风光自然非常亮眼,心里忍不住一声声的赞叹。

第二天中午前往室韦小镇吃中饭。团餐的水平感觉和昨天相比降低了不少,少了几样肉食,不过我依旧觉得非常美味。尤其钟爱两顿中餐都有的青椒肉片,也许是调料里面放了孜然,感觉青椒特别肥嫩、香甜美味。

这两个小镇其实给我的感觉并不是特别印象深刻,主要是商业化痕迹过于严重,没有体现出民族自有的特色。

大兴安岭

第二天一早我们便出发去往大兴安岭方向,中途沿着中俄边境额尔古纳河乘坐大巴。我也是第一次来到距离边境这么近的地方。

额尔古纳河,与对岸的俄境

先是去参观了一下一个想不起来的景点,在里面我们玩跷跷板、滑梯、锯木头等娱乐游戏玩得还挺开心的。然后我们去看驯鹿。

嗯……完全没有我想象中的那么好看,样子以人类的审美角度来说……非常丑。(眨巴眨巴的大眼都无法拯救的颜值……)

然后来到了一个又想不起名字来的森林公园。北方以针叶林为主,从这篇森林来看,这边的树木主要以松树和白桦树为主。形成了黑白分明迥然不同的树林风格。

也许是来的时机不对,大兴安岭的风景并没有我想象中的好。主要是比较喜欢山里的花朵,和山顶上的风光。

莫尔道嘎小镇

第二天晚上来到了大兴安岭深处的莫尔道嘎小镇,这个镇子原先是由当地大兴安岭的林业局的工作人员以及家属在此地聚集生活,而形成的一个镇子。

而现在随着“伐树”政策转向了“种树”政策,林业局也早已解散,然而聚拢在一起的小镇居民们已经无法分离,而孩子们更向往大城市不再回来,因此这个镇子处于一个逐渐凋敝的状态。

不过对这个镇子和镇子里的人们,我还是非常向往和喜爱。镇子的晚霞也异常的美丽动人。

让我印象深刻的是,去买牛肉干的时候,老板娘是浅蓝色的眼睛,我第一次遇到这样美丽的瞳色。但是不敢不敬,因此并未拍照留念。

额尔古纳根河湿地

湿地是大草原和大森林之间的过渡地带。森林要求的是肥沃的土地,大树才得以往深处扎根;而草原只有浅浅的一层土壤,底下都是岩石,因此只能生长矮小的青草。

而湿地便是二者的过渡,只有一些灌木丛生长在其中。这里往往是生态最为丰富的地带,因此理应景色比较多,然而还是来的时机不对,很多自然奇观没办法看到。

在这说变天就变天。前一分钟还在嫌弃阳光过于毒辣。后一分钟马上就开始下冰雹了。

而后相机就没电了,湿地的山顶上用手机拍摄了一些照片,因为质量确实比不上相机,就不修图了。

呼伦贝尔大草原与呼伦湖

湿地逛完了,我们便准备出发前往大草原了。然而等到大草原上,已经傍晚了,而且异常地寒冷,都顾不及拍照。

当然居住的蒙古包也是非常的寒冷,而且我只是喝了一口草原迎宾酒,便头疼至极,以至于错过了晚上最佳的拍摄星空的时机,这也是此次旅行最大的遗憾。

只是第二天去滑草的时候拍到了一些草原风光。

呼伦湖是中国境内第五大(四大?)淡水湖,湖的面积果真是非常辽阔,一眼望不到边。加上湖岸上的砂砾,我一度有种来到了海边的错觉。此时才能感叹,我的玻璃水晶球终于没白带。

这种辽阔单调而又壮丽的景色,用水晶球摄景,再适合不过了。

这一次的中饭,吃的是全鱼宴,对于我这种鱼肉爱好者来说,没有比这更好吃的午餐了。

满洲里

当晚准备在套娃酒店入住。

满洲里市是中俄最重要的边境城市之一,历史上曾数次在此地修立国门。中俄最重要的铁路也经过这里,火车在这里进行换轨才能继续前行。

当天下午去了套娃广场游玩,其实我是第一次玩海盗船之类的游乐设施,但是觉得非常刺激有趣,完全没有不适感。

最喜欢满洲里的夜景,我在这里也学习到了最重要的夜景拍摄技巧,那就是大光圈+对焦无穷远+ISO最低+曝光时间延长。

大光圈保证进光量,保证照片的清晰度;对焦无穷远,保证照片远处景物的细节是否清晰锐利;ISO感光度最低,保证夜空中噪点密度最低;而曝光时间用来补偿低ISO感光度下照片夜景亮度不够的问题。

意外的是,我在这次的拍摄过程中,发现了自己学会了怎么把远处的灯光拍成星芒。

晚上回酒店休息的时候,我还夜跑了两公里去买瓶装水。当时已经十点了,街边几乎所有店都已经停止营业,没办法我只好打车准备回家。抱着一丝丝的希望求助出租车司机大叔,果然大叔带我前往一个小店,买到了零度和农夫山泉。

同伴们

其实这次旅行最原始的担忧,就是我只和胡叔叔熟,其他人是别的项目组的,我担心会因此有隔阂。但是这一趟旅行下来,我特别珍惜此次旅行的同伴们。

首先致敬Leo,Leo感觉很全能(很会玩)。这次旅行过程中,很多次都是靠Leo老师的点拨我才能找到准确的取景角度,从中我也学习到了不少关于摄影的“ 奇妙姿势 ”。

那就上一张Leo的“ 掷戟 ”照。(手动斜眼)

其次是杜霞。

然后就是胡叔叔,作为东北人,大气,又不失细节。(服气)

还有贾士力。唉,娃是个不错的娃,就是不知道为啥变得有点给给的,我有点害怕,保持距离。(怕怕)

最后

导游最后说了一句话深深印在了我的脑海里。

呼伦贝尔是个不来会后悔,来了更后悔的地方。

我的感觉是,虽然满足了口腹之欲,也大饱美丽景色的眼福,但是原先设定的计划仍有未完成的。

比如,大草原星空之旅所有准备都做好了,连三脚架、远程快门的准备都做了,但是因为一口酒不省人事而留下了一个遗憾。

再者,就是在满洲里待的时间太短暂了,没有好好逛逛这座混合着俄罗斯风情的城市。

但是,有遗憾就有念想。有生之年,我还想再去一次大草原。

最后,我发现了两张很有意思的照片。一张是我刚抵达大草原的第一天,我在白桦林拍了一朵小黄花。

最后一天去草原深处越野的时候,也拍了一张小黄花。

算得上是一种首尾呼应吧,代表着这段旅行的结束。 这个过程中我也思考了不少东西,学到了摄影技术,通过修图感受摄影艺术的魅力。

再见,呼伦贝尔。

无事即为安

今天挺累的,主要是修复了一些Bug,感觉自己的思维好像比以前更锋锐了一些,但是很容易就疲惫下来。

前几天的黄昏时的云彩,一直在相机里面没有处理,今天一并调了一下。

下班的时候邓珂说去大明宫走走,于是紧赶慢赶终于一个小时后赶到了。

还看到了推推。推推圆了好多😄,不过毛发也是一场旺盛,看起来跟一只小狮子一样。

夜晚光线光线太差了,因为是定焦镜头的手动模式,所以感觉成片失败
同上
然后换上套机镜头,开启了自动模式,感觉好多了,来自多个方向的光线很有感觉

单休的周末

这周上了六天班,为的是下周末去大草原去旅游。对于公司这次的团建,我还是很期待的。

但是本着不在家里呆的目的,我还是揣上相机就出门了。计划是穿过大明宫公园,去坐四号线,然后去大唐芙蓉园站下,去书店看书去。

去的时候正好是中午。对着初夏各种拍拍拍。

分别调低高光和暗光,看着更养眼
这朵花实在太鲜艳了,因此开启了亚光纸模式便于体现纹理细节
对于这种亮光和暗光分明的照片,特别好调,拉高亮光拉低暗光就很耐看了
角度远一点感觉就没有上面那一张观感好了,有点密恐
有时候光差比较严重的时候不太需要高光差,通过调整高光暗光就可以达到平衡
无脑高对比度

然后一路坐地铁到达曲江书城。

虽然没找到上周没看完的书,但是这次直接新看完了完整的一本书(书名叫“管理就是学会提问”啥啥的)。虽然是囫囵吞枣式的阅读,但是还是有一些收获的,尤其是对我目前遇到的问题还是挺有帮助的。

值得一提的是,曲江书城现在增加了阅读座位,感觉随时都能有位置阅读,这个体验真是太棒了,以后计划每个星期去一次,每次的目标都是速读完一本“ 方法论 ”的书籍。

感觉有点着急,人都糊的不行了,其实是光圈错了,不需要虚化的场景应使用小光圈
无脑调高对比度系列……
今日最佳,挺害怕蜜蜂的,但是大胆拍
同上
这时候需要调高暗光了,体现远处数木的细节,但是发现楼宇和树木之前有白色光带……
暗光调高,体现细节

Life is interesting. Keep passion.

初夏

今天天气还是很好的,回来的路上在大明宫公园的某个视角,竟然看到了秦岭的轮廓,真叫人意外。

早上起得很晚,朋友圈都在秀今天的好天气。

中午我便出发准备去公司把昨天没做完的事情继续完成了。

天气太好,加班的时候实在是困得不要不要了。

然后四点半的时候,就准备出发去曲江书城了。

看到一本很有意思的书,叫What If,脑洞大开之作
接下来准备阅读的一本书,带团队的管理学入门书籍

今天尝试速读这本书,大约不到二十分钟看了三分之一,效果我觉得还可以,不需要精读,这类的书,速读就够了。

为了防止速读带来的快速遗忘,我计划把所有速读的书都变成思维导图。

这一水的读客空间系列……

然后坐四号线准备从大明宫穿回家。

大明宫地铁站的壁画
大明宫东门外的巨大人像
大明宫黄昏景色1
大明宫黄昏景色2
叫不上名字的小白花1
叫不上名字的小白花2
看!喷气灰机~

五月多变的天气

这几天天天晚上要做的事情还挺多的,感觉睡的挺晚,而且经常会出现忘了做一些事情。

计划做个Check List出来,每天晚上Review一遍看看这些事情做了没。

这几天天气也是多变,一天冷一天热的。昨天本来还出太阳,傍晚有云,赶紧拍了几张。

劳动节第二天出游

今天上午基本都待在家。早上去逛了早市买了一些东西,下午才出门。

约了其他小伙伴,感觉大家都比较懒散,然后我去找小哥了。

长乐公园给我的感觉就是特别闲逸(大明宫是庄重和秀气的结合)。

随手也拍了几张照片。

抓拍的时机和角度恰到好处
看到一只萌萌哒的小萝莉,就是可惜没拍到正脸

去往长乐公园的路上,看到了悠悠以前给我推荐去的益田假日世界,然后让小哥带我去逛了一下。

感觉挺不错的,下次约了人可以带过去。

卯向艺术空间,里面空间挺大的,虽然东西不多,但是感觉内容挺好的……也说不上哪里好,对于这种油画的艺术品,我从内心还是特别喜欢和向往的。

拍了这么几天的照片,突然有一点感悟,往往是不真实的东西才会有艺术感,有点理解“艺术源于生活高于生活”这句话了。

大爱这只鹿呀
调高暗部的亮度,调低亮部的亮度,达到突出主题的目的
一直狗狗1560软妹币,着实贵了
这只红皇后看着很有感觉(对得起我的跪姿摄影)

然后我和小哥说准备去西西弗书店,就在书店的旁边有一家“格物匠心”的店,里面的东西都很有古品质感。所以进去转了一下。

然后被工作人员警告了,这里不许拍照。

讲真的,这都什么年代了,酒香还要捂着?

然后去了书店,意外发现了《如果历史是一群喵》实体书了。动漫做的挺不错的,挺想支持一下,奈何能力不够呀。

劳动节第一天出街

节假日拒绝宅在家里,从迈出第一步开始。

本来揣着相机准备拍拍街景的,万万没想到,光想着拍好看的小姐姐了😆。

不过还是第一次抓拍,看到很多好看的小姐,不太敢拍。

这事情很看运气。

我现在用的定焦镜头。定焦镜头有个好处,不需要有对焦的过程,只能拍到固定距离的人和物。虽然成片率不高,但是抓拍速度非常快,再加上我的慢速三连拍,其实还不错。

只是经常对焦很模糊,不过PS可以处理这种模糊。(想处理好有点困难)

第一眼看过去有点惊艳
正面有点惊艳
现在的小姐姐都太爱玩手机了
南门捕捉到的两只爱拍照的小姐姐

还有“小”小姐姐们。

哈哈,拍得太糊了
好腼腆的小萝莉
这一张我真是太喜欢了,算是今天最成功的成片了!

依然还有街景。

还拍到了小动物。