Notes on codes, projects and everything
To test our understanding in RSA public key cryptosystem, we were being asked to develop a computer program to demonstrate the cryptosystem. The whole system consists of a random number generator, an encoding module that is able to encode characters into numbers, an encryption module as well as decryption module and finally an RSA cryptosystem cracking module.
The program is written in Microsoft® Visual C6, the reason why Visual C6 is being selected is because we wanted to do something simple. There is no GUI being implemented as we wanted to spend more time in enhancing the program.
To generate random number, we used Blum-Blum-Shub random number generator as we found it to be the easiest to implement.
I happened to find a general solution suggestion on a Wikipedia entry when I was browsing the internet around to find a solution to modular exponential problem. The code snippet posted on the wikipedia entry claimed that it came from …
RSA is a cryptosystem …
I finally put in some time and effort learning myself a bit of Rust. Though I am still struggling with ownership and lifetimes (which is essentially everything about the language, to be honest), I find it more interesting compared to Golang, which is relatively boring, though being functional (no pun intended). While learning the language, the one thing I came across often is the
Option enum, then I remembered that I read something about Monad.
array_map function is a function that I use the most in my php scripts recently. However, there are times where I want to pass some non-array into it, therefore often times I have code like the snippet shown below:
$result = array_map(
array_fill(0, count($some_array), 'some_string'),
array_fill(0, count($some_array), 'some_other_string'),
It doesn’t look good IMO, as it makes the code looks complicated. Hence, after seeing how the code may vary in all different scenarios, I created some functions to clean up the array_map call as seen above. Code snippet after the jump
This is basically a small incremental update to my script published here. For some reason, the previous version of the script didn’t really work, so this release should fix the problem. Besides fixing the problem where the daemon did not actually launched at start up, I have added a settings applet for this script as well.
It is very much expected that there will be endless stream of new (and often times better) tools introduced to solve the same set of problems. While I am slowly resuming my programming work, and in the process of reviving my very much dead postgrad project, I found some alternative to the tools I had used in the past. I suppose I shall just jot them down here so that there’s a reference for later use.
Traversing a tree structure often involves writing a recursive function. However, Python isn’t the best language for this purpose. Therefore I started flattening the tree into a key-value dictonary structure. Logically it is still a tree, but it is physically stored as a dictionary. Therefore it is now easier to write a simple loop to traverse it.