Skip to content

Instantly share code, notes, and snippets.

🕸
Woot

Awn awnumar

🕸
Woot
Block or report user

Report or block awnumar

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
View keybase.md

Keybase proof

I hereby claim:

  • I am awnumar on github.
  • I am awn (https://keybase.io/awn) on keybase.
  • I have a public key ASAxDPmsYUiVNAyyrHP7IlqFN2Wfzik2-CEK5DatvHpqawo

To claim this, I am signing this object:

View enquire.c
#ifndef PROGRAM
#define PROGRAM enquire.c
#define VERSION "5.1a"
#define PURPOSE Everything you wanted to know about your machine and C compiler
#define BUT didnt know who to ask
#define FOR Any OS, any C compiler
#define AUTHOR Steven Pemberton, CWI, Amsterdam; "Steven.Pemberton@cwi.nl"
#define COPYRIGHT(c) 1993-9 Steven Pemberton, CWI. All rights reserved.
#define NOTE Improvements gratefully received. Please mention the version.
#define COMPILE On Unix compile with: "sh enquire.c"; see below for details
View error.rs
/*
* Copyright 2015-2016 Ben Ashford
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
@awnumar
awnumar / python-pattern-matching.py
Created Apr 2, 2018
Patern-matching strings in python.
View python-pattern-matching.py
#!/usr/bin/python2
import hashlib
from jinja2.sandbox import SandboxedEnvironment
# We're using only the hashlib functions for demonstratin purposes
# but any algorithm can be implemented and added to the program.
# Define algorithms we support.
@awnumar
awnumar / int2bin.c
Created Dec 13, 2017
Code snippet to encode a uint32 as binary, in C.
View int2bin.c
// Encode the length into raw binary.
uint32_t rel_len = length;
unsigned char len_bytes[4];
len_bytes[0] = (rel_len >> 24) & 0xFF;
len_bytes[1] = (rel_len >> 16) & 0xFF;
len_bytes[2] = (rel_len >> 8) & 0xFF;
len_bytes[3] = rel_len & 0xFF;
@awnumar
awnumar / encoding_int64.go
Created Jul 1, 2017
A small script outlining binary encoding int64 and uint64. (https://play.golang.org/p/t_xT3PcpcK)
View encoding_int64.go
package main
import (
"fmt"
"encoding/binary"
)
func main() {
//
// Largest signed int64 in smallest byte slice.
@awnumar
awnumar / ptr2bytes.go
Created Apr 29, 2017
Go function to convert a pointer to a slice.
View ptr2bytes.go
package ptr2bytes
func GetBytesFromPtr(ptr uintptr, len int, cap int) []byte {
var sl = struct {
addr uintptr
len int
cap int
}{ptr, len, cap}
return *(*[]byte)(unsafe.Pointer(&sl))
}
@awnumar
awnumar / chunky.go
Last active Aug 14, 2019
Read data (1024) bytes at a time
View chunky.go
data := "xxx[...]xxx"
var chunk []byte
for i := 0; i < len(data); i += 1024 {
if i+1024 > len(data) {
// Remaining data <= 1024.
chunk = data[len(data)-(len(data)%1024):]
} else {
// Split into chunks of 1024 bytes and pad.
chunk = data[i:i+1024]
@awnumar
awnumar / recover_source_code.md
Created Mar 12, 2017 — forked from simonw/recover_source_code.md
How to recover lost Python source code if it's still resident in-memory
View recover_source_code.md

How to recover lost Python source code if it's still resident in-memory

I screwed up using git ("git checkout --" on the wrong file) and managed to delete the code I had just written... but it was still running in a process in a docker container. Here's how I got it back, using https://pypi.python.org/pypi/pyrasite/ and https://pypi.python.org/pypi/uncompyle6

Attach a shell to the docker container

Install GDB (needed by pyrasite)

apt-get update && apt-get install gdb
@awnumar
awnumar / latency.markdown
Created Oct 8, 2016 — forked from hellerbarde/latency.markdown
Latency numbers every programmer should know
View latency.markdown

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs
Read 1 MB sequentially from memory ..... 250,000 ns  = 250 µs
You can’t perform that action at this time.