Wake up image

Software Engineer

AI Enthusiast

World Explorer

Welcome to my digital garden

Album

Nature Cover
Preview 1
Preview 2

Nature

Food Cover
Preview 1
Preview 2
Preview 3
Preview 4
Preview 5
Preview 6
Preview 7
Preview 8
Preview 9

Food

All Articles

Filter Tags

Many Java Codebases Are a Mess

Java

Me rant about Java and Java devs

9/14/2024

Exploring Interactivity in Astro

astro

Discovering the interactive capabilities of Astro-powered websites using MDX

9/12/2024

我的信息来源

记录信息来源, 持续修订

9/10/2024

Finding Fulfillment at Work

careerhapiness

Exploration of common workplace dissatisfaction factors and practical approaches to enhance career fulfillment.

9/9/2024

Strategies for Effortless and Impactful Writing

blogwriting

Discover practical techniques to make writing easier and more effective, including leveraging AI tools, personal note-taking systems, and identity-based habit formation for a more productive writing process.

9/6/2024

What Makes a Good Blog: Beyond Aesthetics and Technical Aspects

blog

The concept of digital gardening, ideal navigation structures, and content update challenges

9/5/2024

Build My Workout App

mobile appreactreact native

Why and How I built my workout App in 3 days

9/4/2024

Decompose task

No description available

9/3/2024

RocketMQ 磁盘满处理方式

rocketmq

An explanation of how RocketMQ handles disk full scenarios, including the error message, relevant source code, and the disk space checking mechanism.

9/3/2024

The Benefits and Challenges of Shadowing

language

An exploration of shadowing as a language learning technique, discussing its effectiveness at different proficiency levels and providing practical tips for maximizing its benefits.

8/20/2024

学习印尼语一个月总结

language

A summary of my experience learning Indonesian in one month, discussing the challenges and achievements, and providing insights into the learning process.

8/6/2024

博客使用的技术栈

astro

An overview of the technologies and tools used to create this blog, including Astro, MDX, React, Tailwind CSS, and more.

7/10/2024

ThirdTime 工作法使用一个月后的心得体会

time management

A reflection on the experience of using the ThirdTime work method for one month, discussing the challenges and achievements, and providing insights into the work method.

7/10/2024

RocketMQ 5.0 解锁任意时间延迟消息能力

rocketmq

An exploration of the new delay message feature in RocketMQ 5.0, discussing its implementation and how to set the precision parameter for optimal performance.

2/23/2023

RocketMQ MQBrokerException: CODE: 14 问题排查

rocketmq

A detailed investigation of the MQBrokerException code 14 issue in RocketMQ, discussing the causes and solutions.

2/8/2023

全链路追踪的各种概念

distribute system

An overview of distributed tracing concepts, including traces, spans, and contexts, with a focus on OpenTracing standards and their applications in system monitoring and debugging.

2/2/2023

用 MessageChannel 和 iframe 通信

javascript

An explanation of how to use MessageChannel for bidirectional communication between a parent page and an iframe, with code examples and step-by-step instructions.

1/23/2023

用clojure写个编译器, part1

clojurecompiler

A tutorial series on building a compiler in Clojure, starting with simple arithmetic expressions and progressing to more complex language features, including AST visualization and compilation to stack-based VM instructions.

1/21/2023

Lens part1 - Iso

functional programmingscala

An introduction to Iso, a type of lens in functional programming that represents isomorphisms between types. The post explains the concept, provides code examples in Scala, and demonstrates practical applications of Iso in handling unit conversions.

4/18/2019

free functor/monad

functional programmingscala

An exploration of natural transformations between functors in functional programming, introducing the concept of Free functors and demonstrating how to implement conversions between different container types like Monix Task, Scala Future, and Java CompletableFuture.

1/2/2019

akka实现logical timestamp和分布式锁, part 1-1: 问题描述和总体框架

akkadistributed systemscala

An implementation of a distributed mutex using Akka, exploring logical timestamps and consensus algorithms. This post introduces the problem, outlines the requirements for the distributed lock, and sets up the basic Akka actor structure for the solution.

12/25/2018

out of core sorting, rust实现

rust

A Rust implementation of out-of-core sorting algorithm, demonstrating how to handle datasets larger than available memory. This post covers the basic concepts of out-of-core sorting, explains the phased approach, and provides a step-by-step implementation in Rust, focusing on disk I/O operations and memory management.

12/7/2018

string search algorithm #1: 暴力枚举和Boyer–Moore算法

algorithm

An introduction to string search algorithms, focusing on the naive brute-force approach and the Boyer-Moore algorithm. This post explains the basic concepts, implementation details, and efficiency improvements of these methods for finding substrings within larger text.

12/7/2018

Profunctor

functional programmingscala

An introduction to profunctors in functional programming, explaining their definition, relationship to bifunctors, and implementation in Scala. This post covers the basic structure of profunctors, their laws, and provides examples of profunctor instances like function types.

12/5/2018

map reduce

distributed system6.824

An overview of the MapReduce distributed computing model based on the original Google paper. This post covers the MapReduce workflow, master-worker architecture, fault tolerance mechanisms, and optimization techniques like data locality and backup tasks. It also addresses common questions about task granularity and failure handling in MapReduce systems.

11/30/2018

at most once

distributed system

An explanation of how to implement at-most-once semantics in distributed systems, covering client-side XID usage, server-side result caching, and strategies for cache management and handling concurrent requests.

11/29/2018

polymorphic function value 2

scalashapeless

An exploration of polymorphic function values in Scala, focusing on natural transformations. This post discusses the limitations of standard Scala function values and introduces a more flexible approach for handling polymorphic functions, particularly useful for operations on heterogeneous lists (HLists).

11/29/2018

sort/hash超出内存大小如何处理

database

An overview of out-of-core sorting and hashing techniques for handling datasets larger than available memory. This post explains buffer usage, the process of external sorting with multiple passes, and partitioning strategies for out-of-core hashing, including analysis of memory requirements and data size limitations.

11/29/2018

applicative functor

scalafunctional programming

An introduction to applicative functors in functional programming, explaining their definition, methods, and properties with Scala code examples. The post covers the ap and pure methods, as well as the product-based definition of applicatives.

11/22/2018

lens,函数式的getter和setter

functional programmingscala

An introduction to lenses in functional programming, explaining how they serve as functional equivalents to getters and setters in object-oriented programming, with code examples in Scala.

11/22/2018

Kleisli

functional programmingscala

An introduction to Kleisli arrows in functional programming, explaining how they enable composition of functions that return monadic values. The post covers the concept of Kleisli composition, its implementation in Cats, and provides examples using the Writer monad.

11/20/2018

Contravariant Functor Intuition

scalafunctional programming

An exploration of contravariant functors in functional programming, explaining their definition, intuition, and practical applications. The post covers the contramap function, compares it with covariant functors, and provides examples using Show and Ordering types in Scala.

11/19/2018

交换机,路由器等硬件

networking

An overview of networking hardware including hubs, switches, and routers, along with traffic classification and packet capture techniques. This post explores the differences between these devices, their roles in network communication, and methods for monitoring network traffic.

11/13/2018

fault tolerence vm

distributed system6.824

An analysis of fault-tolerant virtual machine replication techniques, discussing primary-backup architectures, deterministic replay, output consistency, and failure detection mechanisms. The post also compares these approaches with log replication in the Raft consensus algorithm.

10/29/2018

GFS

distributed system6.824

An analysis of the Google File System (GFS) architecture, discussing its design assumptions, chunk-based storage, metadata management, and consistency model. The post explores the benefits and drawbacks of large chunk sizes, the role of the master server, and the system's approach to data mutations and consistency.

10/29/2018

raft

distributed system6.824

An overview of the Raft consensus algorithm, explaining its key components including leader election and log replication. This post covers the basics of how Raft ensures consistency across distributed systems, handles network partitions, and maintains a replicated state machine.

10/29/2018

网络协议七层模型

networking

An overview of the OSI and TCP/IP network models, explaining the functions of each layer and how they interact. This post also covers network topologies and protocols like CSMA and token ring used in bus networks.

9/3/2018

数据库的储存方式

database

An overview of database storage methods, including log-structured storage, indexing techniques, Sorted String Tables (SSTs), and B-trees. The post explores the advantages of each approach and discusses optimizations for improved performance and reliability.

8/30/2018