Skip to content

Instantly share code, notes, and snippets.

Avatar
👀
I may be slow to respond.

Fangjun Kuang csukuangfj

👀
I may be slow to respond.
View GitHub Profile
View effective_modern_cmake.md

Effective Modern CMake

Getting Started

For a brief user-level introduction to CMake, watch C++ Weekly, Episode 78, Intro to CMake by Jason Turner. LLVM’s CMake Primer provides a good high-level introduction to the CMake syntax. Go read it now.

After that, watch Mathieu Ropert’s CppCon 2017 talk Using Modern CMake Patterns to Enforce a Good Modular Design (slides). It provides a thorough explanation of what modern CMake is and why it is so much better than “old school” CMake. The modular design ideas in this talk are based on the book [Large-Scale C++ Software Design](https://www.amazon.de/Large-Scale-Soft

@csukuangfj
csukuangfj / toggle_keybindings.tmux.conf
Created Dec 7, 2018 — forked from samoshkin/toggle_keybindings.tmux.conf
tmux.conf excerpt to toggle on/off session keybindings and prefix handling
View toggle_keybindings.tmux.conf
bind -T root F12 \
set prefix None \;\
set key-table off \;\
set status-style "fg=$color_status_text,bg=$color_window_off_status_bg" \;\
set window-status-current-format "#[fg=$color_window_off_status_bg,bg=$color_window_off_status_current_bg]$separator_powerline_right#[default] #I:#W# #[fg=$color_window_off_status_current_bg,bg=$color_window_off_status_bg]$separator_powerline_right#[default]" \;\
set window-status-current-style "fg=$color_dark,bold,bg=$color_window_off_status_current_bg" \;\
if -F '#{pane_in_mode}' 'send-keys -X cancel' \;\
refresh-client -S \;\
bind -T off F12 \
@csukuangfj
csukuangfj / BingConvert.cs
Created Jul 28, 2018 — forked from RosaryMala/BingConvert.cs
Functions to convert between WGS84 and bing mercator
View BingConvert.cs
using System;
public class BingConvert
{
public static double[] WGS84toGoogleBing(double lon, double lat)
{
double x = lon * 20037508.34 / 180;
double y = Math.Log(Math.Tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
return new double[] { x, y };
View FindMKL.cmake
################################################################################
#
# \file cmake/FindMKL.cmake
# \author J. Bakosi
# \copyright 2012-2015, Jozsef Bakosi, 2016, Los Alamos National Security, LLC.
# \brief Find the Math Kernel Library from Intel
# \date Thu 26 Jan 2017 02:05:50 PM MST
#
################################################################################
@csukuangfj
csukuangfj / spline.c
Last active Jul 6, 2019 — forked from svdamani/spline.c
Natural Cubic Spline Interpolation in C
View spline.c
/** Numerical Analysis 9th ed - Burden, Faires (Ch. 3 Natural Cubic Spline, Pg. 149) */
#include <stdio.h>
int main() {
/** Step 0 */
int n, i, j;
scanf("%d", &n);
n--;
float x[n + 1], a[n + 1], h[n], A[n], l[n + 1],
u[n + 1], z[n + 1], c[n + 1], b[n], d[n];
View tmux-cheatsheet.markdown

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname
@csukuangfj
csukuangfj / 00-install-intel-mkl-64bit
Created May 23, 2018 — forked from pachamaltese/00-install-intel-mkl-64bit
Install Intel MKL (64 bit) on Ubuntu 17.10
View 00-install-intel-mkl-64bit
# Option 1: Use apt-get
# keys taken from https://software.intel.com/en-us/articles/installing-intel-free-libs-and-python-apt-repo
cd ~/GitHub/r-with-intel-mkl/
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB
sudo sh -c 'echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list'
sudo apt-get update && sudo apt-get install intel-mkl-64bit
@csukuangfj
csukuangfj / docker-cleanup-resources.md
Created Apr 30, 2018 — forked from bastman/docker-cleanup-resources.md
docker cleanup guide: containers, images, volumes, networks
View docker-cleanup-resources.md

Docker - How to cleanup (unused) resources

Once in a while, you may need to cleanup resources (containers, volumes, images, networks) ...

delete volumes

// see: https://github.com/chadoe/docker-cleanup-volumes

$ docker volume rm $(docker volume ls -qf dangling=true)
$ docker volume ls -qf dangling=true | xargs -r docker volume rm
@csukuangfj
csukuangfj / ssh-config-port-forwarding.sh
Created Apr 20, 2018 — forked from vkhatri/ssh-config-port-forwarding.sh
Configure SSH Port Forwarding via .ssh/config
View ssh-config-port-forwarding.sh
# Remote Gateway Node to Login to App Servers - 192.168.1.1
Host app_proxy1
Hostname 192.168.1.1
LocalForward 8080 192.168.1.100:8080
LocalForward 8081 192.168.1.101:8080
LocalForward 8082 192.168.1.102:8080
Host app_proxy2
Hostname 192.168.1.1
LocalForward 8090 192.168.1.100:8081
You can’t perform that action at this time.