LangInteger

Home

From Turing Machine to Lambda Calculus

In the past first semester of my Ph.D. in computer science, my attention was attracted by the study of Alonzo Church and Alan Turing, specifically, the Turing Machine developed by Alan Turing in 1936, and the lambda calculus developed by Alonzo Church in 1930, which turns out to be Turing complete and is equivalent in omputational power with Turing Machine.

Apache ZooKeeper's Strategy for Handling Network Partition

TL;DR

  • Zookeeper always avoids Split Brain problem with it’s majority rule for quorum
  • When network partition happens, the group with the majority of nodes (if it exists) can continue to serve read and write requests
  • When network partition happens, the group with minority nodes can not continue to serve write requests but can continue to serve read requests with client and server properly configured. It is obvious that read requests in this case will return stale values.

An Odessey of Push Notification to Untiy Mobile App

Push notification is a killer feature for engaging users and keeping them informed. In recent development of a mobile app, we integrate APNS(Apple Push Notification service) and FCM(Firebase Cloud Messaging) to our iOS/Android app based on Untiy after overcoming several obstacles which I want to share with you here.

An Odessey of Connecting to Amazon Redis Cluster

Nowadays, Redis is an indispensable middleware in building the backend service of an app. As an ambitious team, we bought a Redis cluster under Amazon ElastiCache with the following features:

  • Clustered with several shards, and each shard owns 3 nodes (each shard performs primary-replica)
  • Encryption in transit enabled (or TLS) to assure no man-in-the-middle attack
  • Redis AUTH enabled (of course we do not want a door without a key)

So far so good, it seems that we can concentrate on developing our product now. But wait, as the title says, the way is too long to get there!

An Odyssey of Solving Online Database Problems

Since joining one of the most renowned technology companies in 2021, my journey has been a whirlwind of challenges and triumphs. While it’s an honor to work for such a prestigious organization, I soon discovered that it came with a price. In this article, I want to share with you the up and downs of my adventure.

PlantUML Workflow Hand by Hand

接触 PlantUML 好一阵子了,一直以来也经常向周围的朋友安利。每次都会丢出去一堆链接和教程,于是想着整理整理,这样下次再安利的时候就直接把博客甩出去就好,便有了这篇手摸手教程,讲一讲日常工作中使用 PlantUML 的方法。PlantUML 基础语法相关内容在本文中先按下不表,大家可以自行前往官网或者 REAL WORLD PlantUML 学习。

Spring Web Data Binding and Validation Corner Case

This Stackoverflow Topic
comes up with two questions.

  • Q1: how to distinguish exceptions between
    • data binding when conversion http request body to object
    • customized validation defined as annotation on that object
  • Q2: how to display valuable information when data binding fails

Tuning Development Process with Flyway

There are embarassing situations when developing a mono project with multiple environments.

process

Like git for code repository, flyway aims to take version control to database. This article introduces how to use flyway in a spring boot project environment with existing dataset.