Skip to content

Instantly share code, notes, and snippets.

Nayef Copty nayefc

Block or report user

Report or block nayefc

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
alphapapa /
Last active Apr 5, 2020
Run a standalone Magit editor!
# Please see the script's new home:

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](

blippy /
Created Oct 21, 2016
C++ decimal arithmetic
#include <iostream>
#include <decimal/decimal>
using std::cout;
using std::endl;
template<typename T>
void print(T d)
cout << std::decimal::decimal_to_double(d) << endl;
breiter / Install-Tarsnap.ps1
Last active Sep 5, 2018
Unattended installation of tarsnap on Windows
View Install-Tarsnap.ps1
# directory where cygwin will be installed
# choose URL from
# packages to be installed on top of the base. Comma-separated, no spaces
# version of tarsnap to install
$tarsnapdist=(Invoke-WebRequest -uri -UseBasicParsing).Content -split "`n" |
scy /
Last active Mar 31, 2020
Opening and closing an SSH tunnel in a shell script the smart way

Opening and closing an SSH tunnel in a shell script the smart way

I recently had the following problem:

  • From an unattended shell script (called by Jenkins), run a command-line tool that accesses the MySQL database on another host.
  • That tool doesn't know that the database is on another host, plus the MySQL port on that host is firewalled and not accessible from other machines.

We didn't want to open the MySQL port to the network, but it's possible to SSH from the Jenkins machine to the MySQL machine. So, basically you would do something like

ssh -L 3306:localhost:3306 remotehost
ozkatz /
Created Jun 21, 2013
generate an ~/.ssh/config file from your EC2 instances, so that you'd never have to lookup those fugly hostnames again. Use your instance name instead!
#!/usr/bin/env python
import os
import sys
import argparse
from boto.ec2.connection import EC2Connection
except ImportError:
sys.stderr.write('Please install boto ( )\n')
mattt /
Last active Apr 7, 2020
A list of methods and properties conforming to `UIAppearance` as of iOS 12 Beta 3

Generate the list yourself:

$ cd /Applications/*.sdk/System/Library/Frameworks/UIKit.framework/Headers
$ grep UI_APPEARANCE_SELECTOR ./*     | \
  sed 's/NS_AVAILABLE_IOS(.*)//g'     | \
  sed 's/NS_DEPRECATED_IOS(.*)//g'    | \
  sed 's/API_AVAILABLE(.*)//g'        | \
  sed 's/API_UNAVAILABLE(.*)//g'      | \
  sed 's/UI_APPEARANCE_SELECTOR//g'   | \
haxney / gist:3055728
Created Jul 5, 2012
List monospace fonts in Emacs
View gist:3055728
;; Display all the monospace fonts available to Emacs in a dedicated buffer
(defun font-is-mono-p (font-family)
;; with-selected-window
(let ((wind (selected-window))
m-width l-width)
(with-current-buffer "asdf"
(set-window-buffer (selected-window) (current-buffer))
(text-scale-set 4)
(insert (propertize "l l l l l" 'face `((:family ,font-family))))
jboner / latency.txt
Last active Apr 8, 2020
Latency Numbers Every Programmer Should Know
View latency.txt
Latency Comparison Numbers (~2012)
L1 cache reference 0.5 ns
Branch mispredict 5 ns
L2 cache reference 7 ns 14x L1 cache
Mutex lock/unlock 25 ns
Main memory reference 100 ns 20x L2 cache, 200x L1 cache
Compress 1K bytes with Zippy 3,000 ns 3 us
Send 1K bytes over 1 Gbps network 10,000 ns 10 us
Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD
bechu / boost_tcp_client.cpp
Created Apr 19, 2012
simple boost tcp client example
View boost_tcp_client.cpp
g++ main.cpp -lboost_system -lboost_thread -lpthread -o main
#include <boost/asio.hpp>
#include <boost/array.hpp>
#include <iostream>
void send_something(std::string host, int port, std::string message)
You can’t perform that action at this time.