Using Docker: Tips and Tricks

Docker jargon

  • Image
  • Container
  • Docker Daemon
  • Docker Client
  • Docker Hub
  • DockerFile

Docker uses overlayfs filesystem architecture to manage file changes1.

Captain's log, stardate [-26]0430.00

Mon, 18 Nov 2019

vstest.console.exe is a great tool to run tests from the command line. I have been using this to automate some of my workflows. The command line arguments are a little cumbersome. One option that I found useful was /TestCaseFilter1. This option can be used to run specific tests by substring search and filter. For example,

vstest.console.exe bin\Release\MyTests.dll /TestCaseFilter:"(FullyQualifiedName~ProdTest)|(FullyQualifiedName~DevTest.SALT)"

More information about the options and usage can be found at 1 and 2.

Debugging on Linux3, 7, 8

ldd is short for list dynamic dependencies which does exactly that, it lists all the dynamic libraries that your program/library depends on. It is useful to debug symbol not found errors. Also check LD_LIBRARY_PATH if you get this type of errors.

strace lists all system calls a program makes till it stops

ltrace lists all library calls a program makes till it stops

nm lists symbols from object files

Real world applications that use popular algorithms4

Tue, 19 Nov 2019

Tia Newhall’s5 CS and Unix Links page contains a lot of useful resources for working with the Unix OS.

Early binding vs Late Binding

Binding is the process of converting identifiers6 into addresses. Binding for functions occurs either during compile time or runtime.

Early binding or compile time polymorphism is when the function call is resolved during compile time. This is done using overloading of functions or operators.

Late binding or runtime polymorphism is when the function call is resolved at runtime of the program. This is done using virtual functions.

Captain's log, stardate [-26]0395.00

Sun, 10 Nov 2019

Randy Pausch Last Lecture: Achieving Your Childhood Dreams1

Falsehoods CS students believe in2
Things They Don’t Teach You In School3

One of the best explanations of S.O.L.I.D principles I have found4

Tue, 12 Nov 2019

Capital city of Sri Lanka is Sri Jayawardenepura Kotte. It was formerly Colombo (1815 - 1982). Indian geography text book writers never got this memo.

madoko5 is one of the best online markdown and latex editors that I’ve come across. It was created by Daan Leijen from Microsoft Research. It works with Dropbox and Github.

Wed, 13 Nov 2019

There are two types of Hypervisors, commonly referred to as Type-1 and Type-2 hypervisor. Type-1 hypervisor or base metal hypervisor or native hypervisor is when the hypervisor is installed as a firmware at the BIOS level and virtual machines run on the top. Type-2 hypervisor or hosted hypervisor is when the hypervisor is installed on top of a host OS and this hypervisor virtualizes hardware for its guest OS. An example of Type-2 hypervisor is VirtualBox.

Captain's log, stardate [-26]0360.00

Sun, 03 Nov 2019

I am entering stormy seas. A lot of changes in my life at once. It is going to be interesting to see how I tackle this. I need to update this log now more than ever.

Diffee Checker1 is a website to check the visual difference between two webpages.

Mon, 04 Nov 2019

How to increase your mouse speed on Ubuntu2.

Tue, 05 Nov 2019

You cannot separate template definition from its implementation3. This is because the compiler when expanding the template definition wouldn’t know how to expand it.

Wed, 06 Nov 2019

Life lessons: start before you think you are ready4

Thu, 07 Nov 2019

To run something on startup, you can use crontab @reboot functionality.

@reboot <user> /path/to/script.sh

Google posted a really nice article on how to comment on code reviews5.

Interesting list of tutorials by Daniel Miessler6

I have, for sometime, been trying to better understand how compilers work. I plan on writing a blog post on it soon7, 8, 9.

← Newer Page 1 of 4