"Nobody exists on purpose. Nobody belongs anywhere. Everybody's gonna die. Come watch TV." -- Morty Smith
Fun
Music
I am an amatuer musician. Learned a little bit guitar and piano but am never good at that. I compose a little also every once a while. My favorite chord progression is
- Fmaj7-Cmaj7 loop
- Cannon progression: C-G-Am-Em-F-C-F-G
Some songs I composed (or maybe I accidentally plagarized) and arranged
- A song I composed for my four years old when she was two. It is a cantonese nursery rhyme about my cats. My sister filled in some more sensible lyrics. But I like mine more (and it seems to be the same for others as well). Lazy daddy didn't make another song afterward.
- A chinese tune, kind of flat. But probably a good exercise for guitar beginner.
- Yet another guitar exercise
- A guitar arrangement of the famous banned anthem of Hong Kong
Social
My wordpress
blog and YouTube
channel (not quite regularly maintained)
Software
Disclaimer: All the codes below are provided as is. Please feel free to contact me for any questions/comments/suggestions. Unfortunately, I probably may not be able to reply each email.
Capsule networks
Image Processing
Communications/Coding
- Particle based belief propagation: this is a demo of particle based BP for channel noise and source correlation estimation
- Arithmetic Coder: this is a simple demo code I used for teaching arithmetic coding. It is in no way a productive code. Here is my short notes on arithmetic coding.
-
Trellis Soft-Decoder: this is based on belief propagation (forward/backward algorithm). I use this to teach BP. I didn't compare it with other soft decoder. I think it should work as well as BCJR.
Here is some notes describing it.
- LDPC/IRA: a demo code for me to teach LDPC. Running as a jupyter notebook.
Jupyter Notebooks for Teaching
Misc
- File Displayer: a simple Matlab tool to display a text file in a text box. I made it a while ago when I was still using Matlab 6. Maybe there are other commands to do the same thing now. I didn't check.
- Finite Field Toolbox: a toolbox for simple finite field operations.
Tools
Just want to create a list of useful (research or not) "tools" that I use both regularly and occasionally. I also kept a list that I created about a deacade ago. It is interesting to see how things change so much over the years. Maybe I will create another list of my daily used tools a decade later.
List created in 12/2016
- Platforms:
- Ubuntu: I have moved away from Windows for many years now
- VirtualBox: I need this when I need Windows stuff
- Wine: it is handy if the program can be run on wine
- Cloud storage:
- Dropbox: can't survive without this
- Google drive: I don't really like it that much but can't get rid of it because of gmail attachments
- Note-taking and reference managing:
- Write: an android app for hand-written note
- Evernote: a good tools for note. Can sync across platform
- Freeplane: a mindmap software, very handy to organize thought
- Docear: not perfect but my favorite reference manager at the moment
- Typesetting:
- BaKoMa: WYSIWYG latex editor. But it is not free. Not perfect, but it goes very well to produce nice looking slides with beamer. It is great for tikz also
- Kile: for latex editing. Free and good enough
- pdf needs:
- Kami: saving pdf annotations online
- PDF-XChange: a free pdf reader with commenting capability and works on all platforms (needs wine for linux)
- pdftk: cropping and rotating pdf
- xournal: multi-platform and convenient for signing documents
- evince/okular: basic and free readers
- Computing needs:
- SageMath: a great alternative to mathematica
- Octave: alternative to matlab
- Python: satisfies my daily scripting need
- Pycharm: a pretty good Python IDE. Better than Spyder IMHO
- Liclipse: my student told me that he likes it better than Pycharm. But didn't use it much myself yet
- Jupyter notebook: mathematica like multi-language editor. Very handy for programming notes. Not just for Python only
- Other programming tools:
- Lua: another handy scripting language, good for game programming and interface well with C
- App Inventor: a simple tool to create android app
- Corona API: another way to create android app (especially 2D game) with Lua
- Git: version control
- Website managing:
- AWS: I still prefer old school setting up my own virtual server
- Wordpress and Bootstrap: for nice looking websites
- Brackets: for html editing
- Video and audio editing:
List created 10 years ago
- Cygwin: very very powerful, pretty much includes everything one needs
- ActivePerl: an alternative to the unusable Windows batch shell
- ImageJ: a good Java library to build image processing
software
- Irfanview: a small and fast image viewer
- Eclipse: very good IDE for Java
and beyond
- NetBeans: seems even better than Eclipse but I never tried it before yet
- TortoiseSVN: subversion (version control tool) client for Windows
- Netlib:
a collection of mathematical softwares, papers, and databases
- Miktex:
Latex for Windows, can't live without it
- LaTexEditor: a very good (and free) editor for LaTex
- JabRef:
reference manager like EndNote. But is free.
Some often used Linux tricks
Some of the handy Linux tricks collected over the years.
- convert mp4 videos to mp3 audios
ls -1 *.mp4|sed 's/\(.*\)\.mp4/ffmpeg -i "\1.mp4" -vn -c:a libmp3lame -ac 2 -q:a 2 "\1.mp3"/g'|sh
- Save my virtualbox windows from command line. Very useful when the system is not responding
vboxmanage controlvm win7 savestate
- Create a screencast in Linux
ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 15 -s $(xdpyinfo|grep 'dimensions:'|cut -c14-26) -i :0.0+0,0 -acodec flac -vcodec mpeg4 -qscale 0 -y ~/out_$(date +%Y%m%d%H%M%S).mkv ;
My Cat Story
I have four cats: fatty, lucky, tiny, and foxy.
Fatty
|
Lucky
|
Tiny
|
Foxy
|
One day several years ago the mama cat knocked my back door. I let her in and a month later, I got 5 more cats. (6 were born, but one was a stillborn.) So at my peak, I had 6 cats in my home. But mama cat eventually ran away. I heard from friends that in nature mama cat always kicks her kittens out of the nest when they grew big. I guess she just can't stand that they were still there and so she left instead.
As an inexperience pet owner, I initially let them go outdoor and I think they absolutely enjoy it. Unfortunately, one of the kittens got hit and killed by a car. I was so sad and sobbed for him for an hour or so. :( My home is quite far from the main road (more than 500 feet) and it is not a very busy street. It didn't come to me that an accident like that could ever occur.
From that on, I sadly have to ban all of them from going outdoor ever. But I guess they are kind of used to it now and actually Tiny never shows much eager of going out at all. Lucky was the one who seemed to enjoy outdoor a lot. I tried to put him in a harness but he just got mad with it everytime. So eventually I just have to give up the idea of "walking" him. Now that he hasn't been out for almost a year, it seems that even he is used to be an indoor cat as well.
Btw, my cat who died young was called Eric. I sometimes think it might be a jinx that I shouldn't have given a human name to a cat. (All my other cats' names rhyme at least.) But I still think it was a perfect name---he just acted like Eric Cartman, big, fat, but also got agitated easily.
Update: as of 2022, Fatty has moved to my neighbor Brad. She ran away for a while and was not willing to come back home. She never got along with her sibling very well. Eventually, Brad is very nice and adopted her. She is now called Fatima.