念头。遇见不同想法 NIANTOU.NET

在别人的文字里,遇见自己的念头。

独立书写 · 自由阅读

最新念头

按发表时间排列
3159 篇

目前为止所有提到再生一个小孩的对话都是以苦笑结束(意味深)

最近 Toddler(总算)迷上了滑梯,一旦玩起来就变成了永动机,不断重复地上去下来,不亦乐乎。看着这张没有被社会殴打过的快乐的脸,我有时候会想,真可爱啊,要不再生一个吧? 但不幸的是,在 Family planning 方面,很难找到不偏袒和没有成见的建议,来讲述生第二个小孩的经历。亲戚朋友当然都是鼓励啦;网上则是有很多鼓吹,或者自我安慰打鸡血,要么就是树人设的。结果就是,没有利益关系的人,我跟人家没有熟到可以分享这种私密性的建议;而熟人可以说说的,要不就是抱有“想要看到你们多多生小孩”这种偏心的想法,要不就是完

Golang rand 库锁竞争优化

背景 最近在实现一个随机负载均衡器的时候发现一个问题,在高并发的情况下,官方标准库 rand.Intn() 性能会急剧下降。翻了下实现以后才发现它内部居然是全局共享了同一个 globalRand 对象。 一段测试代码: func BenchmarkGlobalRand(b *testing.B) { b.RunParallel(func(pb *testing.PB) { for pb.Next() { rand.Intn(100) } }) } func BenchmarkCustomRand(b *testin

如何退出协程 goroutine (其他场景)

Go 语言/golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程(high performance go)。本文介绍了协程没有正常关闭导致内存泄漏的场景,并介绍了如何借助通道/信道(channel) 优雅地退出协程。

如何退出协程 goroutine (超时场景)

Go 语言/golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程(high performance go)。本文介绍了 Go 语言中实现超时(timeout)退出时常见的错误,即子协程(goroutine)不能正常关闭,导致内存泄漏。常见的实现超时的方式有 time.After 和 context.WithTimeout。

Go 语言陷阱 - 数组和切片

Go 语言/golang 高性能编程(high performance go),Go 语言进阶教程,Go 语言陷阱(gotchas)。这篇文章介绍了 Go 语言中数组(Array) 和切片(Slice)的常见陷阱和规避方式。例如数组作为参数,修改参数,原数组不会发生改变。

减小 Go 代码编译后的二进制体积

Go 语言/golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程(high performance go)。介绍了 2 种方式(编译选项和 UPX 工具) 来减小 Go 代码编译后的二进制文件/可执行文件的体积/大小。

Go Reflect 提高反射性能

Go 语言/golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程(high performance go)。本文介绍了反射的使用场景,并测试了反射的性能,以及某些场景下的替代方式。

读写锁和互斥锁的性能比较

Go 语言/golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程(high performance go)。介绍了读写锁(sync.RWMutex)和互斥锁(sync.Mutex)在不同的读写比情况下的性能开销。

for 和 range 的性能比较

Go 语言/golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程(high performance go)。本文比较了普通的 for 循环和 range 在不同场景下的性能,并解释了背后的原理:range 迭代时返回迭代值的拷贝,如果每个迭代值占用内存过大,性能将显著地低于 for,将元素类型改为指针,能够解决这一问题。

切片(slice)性能及陷阱

Go 语言/golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程(high performance go)。详细介绍了切片(slice) 常用的几种操作 append、copy 等的性能及原理。并且介绍了切片的陷阱,即什么情况下会产生大量内存被占用,而没法释放的情况。

字符串拼接性能及原理

Go 语言/golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程(high performance go)。详细介绍了构造字符串/拼接字符串(string concatation) 的 5 种方式:+, strings.Builder, bytes.Buffer, []byte 和 fmt.Sprintf,比较了这 5 种方式的性能,并且深入解释了背后的原理。

pprof 性能分析

Go 语言/golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程(high performance go)。详细介绍如何测试/评估 Go 代码的性能,内容包括使用 testing 库进行基准测试(benchmark),性能分析(profiling) 编译优化(compiler optimisations),内存管理(memory management)和垃圾回收(garbage collect)、pprof 等内容。同时也介绍了使用 Go 语言如何写出高性能的程序和应用,包括不限于 Go 语言标准库、

从 Vite 与 Vue 开始的 D3 数据可视化之旅

这是一个极其简单的并尽可能面向未来的新手教程,它将指导你简单地使用 Vite 启动 Vue 的脚手架,并开始 D3 数据可视化的相关开发。而你无需 Vue 相关的前置使用知识,你只需跟随教程简单地使用它。 在课后如果你仍有兴趣,那么你可以继续地深入了解它。 「简单」是不是用的太多了 访问 https://www.yunyoujun.cn/posts/vue-d3-demo 阅读全文。

关于儿童发育发展方面的焦虑

生了 Toddler 之后,意外地开启了新的一扇焦虑之门——今天为什么忽然喝奶量变少了?为什么 x 个月大了还没学会 CDC Milestone 的某某技能?这些心里的嘀咕在之前的篇章(比如 这里 和 这里 )里面虽然也有提过,但是就在前两天的夜里,因为梦到 Toddler 的发育问题而全身冷汗地醒过来之后(上一次满身冷汗地醒过来还是产后一个月的生理现象),我打算正式写写目前为止从心底产生的这些焦虑。 关于孤独症谱系障碍 # 对于1.5岁的小孩子来说,差不多已经到了可以看出社交能力和语言能力端倪的时候,也是这个时候

benchmark 基准测试

Go 语言/golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程(high performance go)。详细介绍如何测试/评估 Go 代码的性能,内容包括使用 testing 库进行基准测试(benchmark),性能分析(profiling) 编译优化(compiler optimisations),内存管理(memory management)和垃圾回收(garbage collect)、pprof 等内容。同时也介绍了使用 Go 语言如何写出高性能的程序和应用,包括不限于 Go 语言标准库、

如何找到你朋友的社交账号

A 面与 B 面 (英语:A-side 和 B-side)是流行音乐业界术语,于 1950 年代开始常用,原本指出版的 7 英寸黑胶唱片(必须是单曲)的两面。现在 A 面和 B 面通常用来辨别歌曲的重要度——放在 A 面的歌曲为主打歌,歌手会期望这些歌经常在电台等传媒渠道曝光;放在 B 面的歌曲则属于次要或附加歌目。 前奏 前些日子,其实就是咱考完教师证(10.31)的第二天,便要前往出差。 关于我打算当老师并报考教师资格证这件事 晚间也成功地错过了万圣节。但想来这种现充的节日,也本就与我无缘。故也无从惋惜。 尽管

Go 语言高性能编程

Go 语言/golang 高性能编程,Go 语言进阶教程,Go 语言高性能编程(high performance go)。详细介绍如何测试/评估 Go 代码的性能,内容包括使用 testing 库进行基准测试(benchmark),性能分析(profiling) 编译优化(compiler optimisations),内存管理(memory management)和垃圾回收(garbage collect)、pprof 等内容。同时也介绍了使用 Go 语言如何写出高性能的程序和应用,包括不限于 Go 语言标准库、

Toddler 对我的反向改造

时间默默经过,Toddler 不论在形状上,还是在行为上,都越来越像我养小孩前心目中标准“小孩”的形象。嗯,越来越像个正经人了。最近这段时间我想了想 Toddler 给我自己带来的各种变化(逆向输出!),接下来分开来说说都有什么。 关于我开车超速但是却甩锅给 Toddler 的事 # 凡事有了要以自己为优先的目的,毕竟身边有个消耗自己精力和能量的无底洞,留心给自己多一些关爱也渐渐成了习惯。 事情是这样的。自从自己生下了小孩,低速开车开得猛了很多。倒车出来以后马上轰一脚油,再在路口急打方向盘,享受自己被甩出去的小小乐

Go 接口型函数的使用场景

Go 语言/golang 中函数式接口或接口型函数的实现与价值,什么是接口型函数,为什么不直接将函数作为参数,而是封装为一个接口。Go 语言标准库 net/http 中是如何使用接口型函数的。

写写高斯模糊——从 CSS 模糊滤镜的白边说起

前言 通常我们可以很容易地使用 PhotoShop 中的「高斯模糊」来模糊图片。 这也是一种很好的艺术效果,苹果惯用的毛玻璃效果本质便是高斯模糊,而我们将图片模糊后作为网站背景,既减小了图片的体积,也能别有一番风味。(譬如咱站点的背景也是高斯模糊后的产物。) 而 CSS3 提供了滤镜 filter / backdrop-filter ,其中的模糊功能同样也是高斯模糊。(Canvas 中的 filter 亦是如此。) 只是当我们为图片背景添加 CSS 滤镜时,便会出现不和谐的白边。 虽然有一些奇技淫巧(比如放大图片再

Python 简明教程

一篇文章入门 Python/Python3,Python简明教程,Python入门教程,Python中文教程(Python 3 tutorial)。Python 是一个易于学习、功能强大的编程语言,它拥有高效高级的数据结构和一种简单有效的面向对象编程的编程方法。本文介绍了 Python 的安装、基本类型/内置类型(字符串str,整型,数组,字典 dict 等)、控制流(if, for循环, while 等)、复杂类型(类 class, 方法 method 等),函数式编程,面向对象编程,错误处理(try excep

Koa 源码阅读

koa 的核心源码只有 lib 目录下的四个文件,极其精简。

Meaningless or Meaningful

边走边想 小时候在百度知道里提过一个问题,「人活着的意义是什么」。靠这个问题赚了一些百度积分,可并没能消除我当时的困惑。长大后在王兴的一个访谈里,看到他在大学同乡迎新会的时候问了学长们一样的问题,当时他姐刚好也在,为了打破尴尬不得不模糊地回答了一句: “这个问题,要边走边想。” Nothing But Yourself 在播客《阿米小酒馆 - 【op.23】两个写作者的困顿与坚定》 中听到复旦民间校训「自由而无用」的英文翻译原来是「nothing but yourself」,瞬间被这句话击中。

如何从 Valine 迁移至 Disqus

此前我在 第三方评论系统之我见 中简要对比了使用过的一些评论系统,但仍旧没有得出一个尽善尽美的方案。 我很长一段时间评论系统都是使用的 Valine,但因为后来博客第一次收到了一些 不友好的评论 ,以至于我有一瞬间地冲动想要从 Valine 彻底迁移到 Disqus。 但是 Valine 本身加载速度确实很快,用着也挺好,且文章的访问量统计也依赖于此。又实在没有办法下定决心切换至 Disqus。 「任何可以用 JavaScript 编写的应用程序最终都将用 JavaScript 编写。」 In 2007, Jeff

ADV 游戏引擎计划

ADV.JS 又一个遥遥无期的大坑。 GitHub: https://github.com/YunYouJun/advjs Demo: https://advjs.elpsy.cn 前言 按照惯例,开坑前先来三问。是什么?为什么?怎么做? 访问 https://www.yunyoujun.cn/posts/make-an-avg-engine 阅读全文。

1岁出头的新挑战

上一篇 说到 Toddler 的新发展,现在来说说这些新发展对于我和 Colin 的挑战。——虽然想这么总结,但这次的主要目的是求救,因为 Toddler 现在夜里又哭着不让我们睡觉了! 刷牙和洗澡:平衡小人的意愿和我们照顾者的意愿 # 我们发现 Toddler 越来越想按照自己的方式来做事,是在1岁左右很难从 TA 手里翘开手指拿走东西的时候。只有自己愿意放手的时候才默默地目送,不愿意放手的东西如果拿走会大声抗议。不过这才是正常的反应吧!事实上1岁以前我们经常用的一招是用别的东西吸引一下注意力,就能轻松把 Tod

关于我打算当老师并报考教师资格证这件事

「关于加个引号就能变成轻小说标题这件事」 嘛,正如 前文 所言,我确实准备报考教师证。 并立此文章为证,( 那没考上岂不是贻笑大方 ),记录一些过程( 破事水 )。 因为标题拟的很像轻小说,并且这件事本身其实并不是什么有趣的事( 但我希望它能有趣些 ),所以我决定用我的死宅文风以轻小说的方式来记录一下。( 欢迎吐槽,但别太伤人。 ) 内容简介 成长的苦涩,日常的迷惘。 唯有长大方能看见的真相,让「死宅少年」偏移人生轨迹的事件…… 家里蹲死宅少年 —— 云游君,本作的男主角。 可爱女主角 —— 暂无( 欢迎参演 )