Skip to content

Instantly share code, notes, and snippets.

View satyrius's full-sized avatar

Anton Egorov satyrius

  • Tallinn, Estonia
View GitHub Profile
@satyrius
satyrius / intercom_export.js
Last active September 24, 2023 13:45
Export Intercom conversations/chats entire history
require("dotenv").config();
const H = require("highland");
const axios = require("axios");
const fs = require("fs").promises;
const exportDirectory = "./export";
const apiUrl = "https://api.intercom.io";
// config axios for the authorized API request
const apiClient = axios.create({

Keybase proof

I hereby claim:

  • I am satyrius on github.
  • I am satyrius (https://keybase.io/satyrius) on keybase.
  • I have a public key ASCqBYyDDIvy2Yj556khOSWkpKP3Gr-T1r71iu7RW3_9xQo

To claim this, I am signing this object:

0x65BAC2D81034ac52523fB88EfB62C2a888A756c4
@satyrius
satyrius / .tmux.conf
Last active June 20, 2016 09:39
My Tmux configuration
set-window-option -g mode-keys vi
set-option -g status-keys vi
# Start windows and panes at 1, not 0
set -g base-index 1
setw -g pane-base-index 1
# title
set -g set-titles on
set -g set-titles-string "#T"
@satyrius
satyrius / Dockerfile
Created March 28, 2016 16:41
Python 2.7 minimal Docker image (with psycopg2, nginx and supervisor)
FROM debian:jessie
ENV PYENV_ROOT=/opt/pyenv PATH=/opt/pyenv/shims:/opt/pyenv/bin:$PATH LANG=en_US.UTF-8
RUN set -x \
&& echo "LANG=$LANG" > /etc/default/locale \
&& echo "$LANG UTF-8" > /etc/locale.gen \
&& export DEBIAN_FRONTEND=noninteractive \
&& apt-get update -qq \
&& apt-get install -y locales \
&& apt-get install -y \
libpq5 \
@satyrius
satyrius / export.sh
Created April 21, 2015 16:06
Export initial process environment
for v in $(xargs --null --max-args=1 < /proc/1/environ); do export $v; done
@satyrius
satyrius / docker_clean.sh
Last active August 29, 2015 14:04
Drop stopped Docker containers and and untagged images
#!/bin/bash -e
docker ps -a -q | xargs docker rm
docker images | grep '^<none>' | awk '{print $3}' | xargs docker rmi
@satyrius
satyrius / exercise-60.go
Created October 24, 2013 20:11
A Tour of Go. Exercise: Images. Remember the picture generator you wrote earlier? Let's write another one, but this time it will return an implementation of image.Image instead of a slice of data. Define your own Image type, implement the necessary methods, and call pic.ShowImage. Bounds should return a image.Rectangle, like image.Rect(0, 0, w, …
package main
import (
"code.google.com/p/go-tour/pic"
"image"
"image/color"
)
type Image struct{
Width, Height int
@satyrius
satyrius / exercise-56.go
Created October 23, 2013 06:33
A Tour of Go. Exercise: Errors. Copy your Sqrt function from the earlier exercises and modify it to return an error value. Sqrt should return a non-nil error value when given a negative number, as it doesn't support complex numbers. Create a new type type ErrNegativeSqrt float64 and make it an error by giving it a func (e ErrNegativeSqrt) Error(…
package main
import (
"fmt"
)
type ErrNegativeSqrt float64
func (e ErrNegativeSqrt) Error() string {
return fmt.Sprintf("cannot Sqrt negative number: %v", float64(e))
@satyrius
satyrius / exercise-48.go
Created October 23, 2013 06:29
A Tour of Go. Advanced Exercise: Complex cube roots. Let's explore Go's built-in support for complex numbers via the complex64 and complex128 types. For cube roots, Newton's method amounts to repeating: Find the cube root of 2, just to make sure the algorithm works. There is a Pow function in the math/cmplx package.
package main
import (
"fmt"
"math"
"math/cmplx"
)
func Cbrt(x complex128) complex128 {
z := complex128(1)