Things seems finally getting together2023-12-29 15:41:37I am a bit excited. I have been wandering and straying during my way of learning C++. On and off I feel at a lost somehow. I have tried to explore different use cases and code bases of C++ projects. 10 C++ open source projects welcoming contributions says ClickHouse is one of them. It is a database project that unlike any other relational databases that I have learnt back to school. Read more...
It's been a while2023-12-20 15:44:07I have tried my best to complete the My First Language Frontend with LLVM tutorial as a learning path to llvm. It is quite an undertaking. I have nevertheless completed it, but without completely knowing what I am doing. So it has taken longer time that I think. I have also picked up other hobbies, so the updates has not be frequent. It involves more things that I do not know. Read more...
So that is what a column database means2023-11-30 11:44:57In the video Internals de una base de datos analĂtica de alto rendimiento: ClickHouse | T3chFest 2019, Javi presented a picture illustrating what really “column-based” database means: In the above picture, I have got a solid grasp of the concept of a column database. As a bonus, I have also know Apache Arrow. It is one of the contributing submodules in the clickhouse repository.
Clickhouse and vector databases2023-11-29 11:09:50In the video ClickHouse for AI - Vectors, Embedding, Semantic Search, and more by Alexey Milovidov, i learn a lot about databases and AI. The video started with a brief introduction of some key concepts such as semantic search, vectors and embeddings. Then proceeded with some optimization technique, such as executable pooling and chunking. the bulk of the video is on how to do query faster and faster. At the end of it, Alexey Milovidov presented some other vector databases such as Milvus/Zilliz and Weaviate. Read more...
Templates and Concepts2023-11-16 12:58:53I have played around with templates and concepts according to Nicolai Josuttis’s video on templates It is a small exercise, but it is a good example of how to apply different concepts(an English word, means ideas) in C++. In this case, templates and concepts (as a feature introduced in C++20).
Coding Standards2023-11-14 10:54:46There are different C++ coding standards. MISRA seems has a very big say in the C++ coding style. MISA stands for Motor Industry Software Reliability Association. It produces guidelines for writing software for cars. Another one is High Integrity C++. It is developed by a private company called Perforce Software. I learned about these C++ guide lines when I watched the video about the C++ Core guidelines by Rainer Grimm. Other than the guideline, another thing I learned is that pointer is broken by design. Read more...
C++ in trading systems2023-11-07 19:10:36In Trading at light speed: designing low latency systems in C++, David Gross first defines what low latency means. The trigger to target latency is 20-40ns. In order to achieve such low latency, the software is running on FPGA. Then he moved the discussion to data. Data model accounted for a substantial amount of time in his presentation. One key idea is that, if the data model is not designed with performance in mind, it will slow down the system. Read more...
Embeded SQLite in my little C++ program2023-11-02 17:24:08Embedding the enitre SQLite into C++ program is easier than I think. I have basically followed the demo code of RobertoChapa. I put everything under the subdirectory db. Then I created a subdirectory sqlite for SQLite. In sqlite, it contains the amalgamated zip file of the source code, the amalgamated source code sqlite3.c, the header file sqlite3.h. These are the two main files to interface with the entire SQLite. This is my directory tree: Read more...
the majestic brown trout2023-11-01 19:01:16The trout teaches me about data streaming which is an interesting topic. This is another brief introduction. There are more interesting things other than networking. Ho Ho Ho.
Fixing the bug of C++2023-10-31 13:33:14So probably this is an illustration of what it means by “fixing the bug in C++”? This does not compile in C++11 yet perfectly fine in C++14: constexpr int get_value () { int val = 5; int val2 = 3; return val * val2; } Based on C++ Weekly - Ep 178 - The Important Parts of C++14 In 9 Minutes(7m22s)