Category: Programming

  • Problem When Building Old OpenSSL Version on The New System

    Problem When Building Old OpenSSL Version on The New System

    The old OpenSSL seems to have a problem when built using a newer system. I got this problem when compiling OpenSSL 1.1.0f on my Ubuntu 22.04. For example in my case here the problem is in line 17 on Configure file and the line were like this: Some people tried changing the lines with qw/glob/ […]

  • How to Access SOM9331 Serial Console in Linux

    How to Access SOM9331 Serial Console in Linux

    I got this old hackable mini router board. It comes with OpenWRT but I can’t seem to connect this via USB Serial. It turns out that the driver is not installed. Installation is quick but there is a minor change needed in order to build the driver on a recent kernel. So will write here […]

  • How to Enable HTTPS on Your Apache Ubuntu Web Server

    How to Enable HTTPS on Your Apache Ubuntu Web Server

    I thought this is an easy task, but after searching for various ways on the internet, it is not as simple as I imagined. There are many ways to enable HTPPS on your web server depending on what server software is used, the operating system, and where the server is running. In my case, I […]

  • Now I Understand: What is Oblivious RAM?

    Now I Understand: What is Oblivious RAM?

    ORAM is the acronym of an Oblivious Random-Access Machine. The main idea is to hide the access patterns from attackers. For example, when a client tries to access data stored in the server, the server cannot gain any information about the user access pattern. Imagine data storage, where each data is inside a block, and […]

  • How to Run Linux on RISCV in Arty A7-100T FPGA

    How to Run Linux on RISCV in Arty A7-100T FPGA

    It’s been tempting for me to try running open-source software on top of open-source hardware. SiFive provides a bitstream for Arty A7 called Freedom, but it seems that the repository is dead now. The other interesting alternative to try is VexRiscv, and everyone keeps posting about Arty A7 35T while I only have the 100T […]

  • Git Pristine: How to Pristine Clean Your Dirty Git Repository

    Git Pristine: How to Pristine Clean Your Dirty Git Repository

    I found this command useful and I love this alias! git pristine, a command that will wipe any dirt on your local git copy, any untracked files, and the cache will be removed to make it pristine clean as the remote origin.

  • QEMU: How to Enable Plugin Build

    By default, QEMU does not enable the plugins. So you need to enable it on configure step by using –enable-plugins.

  • This Makes My RISC-V Trap Handler Does Not Work

    I was working on a RISCV assembly when suddenly I got a weird issue. The exception does not get caught in the trap handler. I thought this was a QEMU bug on the RISCV target because the trap handler works on my other code. Then after a day of digging, I figured out that it […]

  • The RISCV ISA Documentation Is Better than RISCV Green Card

    I hosted the RISCV ISA Documentation. This is really helpful if you want to learn about the assembly syntax or learning the RISCV itself. As a beginner, this documentation is more effective instead of constantly checking at the green card. 🙂

  • My Quick Ways to Auto Format Code in VSCode

    I don’t have much time to format my code to looks neat in VSCode (Ctrl + Shift + I), but the default formatting from Visual Code is not efficient for me. It makes the first bracket on function placed alone in one line. This makes my code longer!