Xudong's Blog

Xudong's Blog

Stay naive && Keep exploring

让MDC在各种线程间穿梭自如

在Java应用中,Logback或Log4j的MDC可以帮我们实现在记录日志时携带当前上下文之外的信息。一个典型的应用场景是,当一个HTTP请求进入Spring应用后,在拦截器中向MDC写入为当前请求生成trace id / transaction id,后续业务类中打印的log都可以携带id,方便日志的定位。

MDC的实现方式

由于我们经常使用Slf4j之类的log facade,在使用时只需要关心类似org.slf4j.MDC的类提供的接口就可以。但是在具体日志库实现时,通常会实现一个MDCAdapter接口以便门面MDC类调用。不论是Logback还是Log4j,实现MDC的方式都是通过ThreadLocal来存储我们写入MDC的数据。

新手选购微单的策略

摄影 or 摄像

购买一个微单最先要考虑的问题不是画幅、品牌或者镜头,而是自己的需求。自己更想拿来拍照还是拿来拍视频,还是两者都要。

如果是想要偏向拍照,那么底大一级压死人是要着重考虑的问题,如果不是预算受限,或者对轻便有较高要求,建议一步到位买一个全画幅微单。这样以后拍不好照片不会心里碎碎念,当初要是上个全画幅我就能拍好了😌。
但是APS-C也不是没有优势,特别是对于随便玩玩的爱好者而言,APS-C机身和镜头价格相对友好,可以让爱好者以更低门槛尝试摄影。另外APS-C的机身和镜头轻便,对于旅行、街拍等场景负重更少,体验会更好。

一些让Python代码更快的技巧

更快的字符串拼接

在你的Python程序中,如果有大量字符串等待处理,字符串拼接可能会成为一个瓶颈。基本上,Python有两种字符串拼接的方式:

  1. 使用join()函数将字符串列表合并为一个字符串。

  2. 使用++=符号将每个单独的字符串添加到一个字符串中。

HTTP报文结构

HTTP 是 Web浏览器与服务器进行任何数据交换的基础协议,是一种客户端—服务器(client-server)协议。它依赖于TCP协议进行通讯,同时有可能依赖于应用层DNS协议以及通常被认为是传输层的TLS协议。

Web Protocol Stack

作为一种网络协议,了解它的报文结构通常是最基础最重要的,本文将简述HTTP报文结构。

写定向爬虫时遇到的问题

This is a [ Personal Note ]

单纯记录下这次写定向爬虫中遇到的问题。其实很多东西只是因为忘了,不是因为没学过,这次记录下来以便日后回顾。

rsync

给Hexo主题添加LaTeX公式支持

问题

使用Markdown写笔记或者文章免不了会遇到一些数学公式,许多优秀的Markdown编辑器可以完美地支持Latex书写数学公式。然而,Hexo默认是不支持识别$$ \LaTeX $$语法的。纵然有很多完善的主题,比如Next,支持了inline和block的$$ \LaTeX $$语法,但是想在让自己喜欢的主题中正确显示数学公式就需要我们自己动手了。

解决方法

Rss订阅源分享

说在前面

现在,你获取新闻的方式是什么呢?我觉得现在应该很少有人单纯地使用浏览器访问新闻门户来看新闻了。今日头条、网易新闻、腾讯新闻这样的新闻App,微信、微博这种社交应用中附加的新闻资讯,甚至各大国内厂商的浏览器,都成为了大众的新闻获取源。但是,这些App都免不了花里胡哨(乱七八糟)的UI,或者我觉得新闻来源受到监管也比较有限,或者我不喜欢根据阅读行为推送的广告。

优秀的聚合类应用相对来说就自由许多,国外如Flipboard,国内如Zaker,这些都是我曾经长时间使用的新闻聚合App,其实长时间使用体验都不错。但是总觉得有时候缺了些什么感觉,这几天,Rss又被我捡了回来,折腾了一番源,现在用的很舒心呢。

avatar
Xudong Sun
FRIENDS
TPC Triplan