2021-06

  • End-to-end Argument in System Design

    The “End-to-end argument” says many functions in a communication system can only be completely and correctly implemented with the help of the applications at the end points. Cases in beyond distributed systems, like the fix for CEEs, are also amenable to the argument.

  • 2019-06

  • GSoC 2019 Round 1st Evaluation

    It’s time to summarize current progress during the first round of GSoC 2019. I have finished a tool to indexing event logs into SQLite at a relative acceptable speed and worked out a prototype that can leverage SQLite to reduce the burden of memory management for large eventlog files, achieving the goal of the first round in my original proposal.

  • Einstein Summation Convention

    The Einstein summation convention, introduced by Albert Einstein, is a notational convention that represents summation over a set of indexed term in a formula, achieving notational brevity. With Einstein summation convention, many common linear algebraic operations on multi-dimensional arrays can be represented in a simple fashion.

  • 2019-04

  • Notes on Gtk2Hs

    Gtk2Hs is a GUI library for Haskell, based on GTK+, for creating graphical user interfaces. This page records some (trivial) notes about GUI programming in Haskell with the Gtk2Hs library.

  • Use vector in ThreadScope to Reduce the Memory Usage

    As described in the issue ThreadScope#29, the ThreadScope is really slow when loading a relatively huge eventlog file, and consumed an unacceptable volume of memory. High memory usage caused by using incorrect data structure is fairly common in many Haskell applications, thus at first glance, I focused on the internal data structure that ThreadScope uses when browsing the source code. I found that replacing List using Vector could bring a significant improvement.

  • 2018-08

  • Coupon Collector's Problem

    The coupon collector’s problem describes the following question: there are $n$ different types of coupons and the collector will receive a random coupon every time, what is the expected trials that the collector can collect all $n$ types of coupons? We can conclude that the expected trails grows as $\mathcal{O}(n\log{n})$.

  • 2017-09

  • Join in SQL

    join is a kind of SQL operation in relational algebra, combining columns cross tables.

  • 2017-08

  • Excluded Middle in Coq

    Excluded middle is an important theorem in classical logic. However in intuitionistic logic, the excluded middle theory doesn’t satisfy the constructive principle. The excluded middle law is provable in Coq and often confused with some other theorems in Coq.

  • 2017-05

  • CNN Meets Graphs

    Graph convolutional network is a kind of neural network that use graph data as input, developing a serials of Conv operator and Pooling theory based on graph theory, mainly the spectral graph theory.

  • 2016-12

  • Pattern Matching in List Comprehension

    After the | in list comprehension, pattern matching can be used to filter expected values.


Subscribe via RSS