Skip to content

Instantly share code, notes, and snippets.

@lawrenceching
lawrenceching / init.vim
Created September 6, 2021 01:02
The config file for neovim
syntax on
set nu
set tabstop=4
set shiftwidth=4
set expandtab
set incsearch " Enable incremental search
set hlsearch " Enable highlight search
set splitbelow " Always split below
set mouse=a " Enable mouse drag on window splits
autocmd FileType java setlocal omnifunc=javacomplete#Complete
@lawrenceching
lawrenceching / delete-all-exited-containers.sh
Created March 27, 2021 16:28
Delete all exited containers
#!/bin/bash
containerIds=( $(docker container ls --all | grep Exited | cut -d ' ' -f 1) )
length="${#distro[@]}"
if [ "0" = "$length" ]; then
echo "No exited container"
exit 0
fi
@lawrenceching
lawrenceching / jetbrains-projector.md
Created March 27, 2021 15:58
Docker Image for JetBrains Projector

Docker Image for JetBrains Projector

registry.cn-shenzhen.aliyuncs.com/imlc/projector-idea-u:latest
@lawrenceching
lawrenceching / simplest-http-server-in-java.java
Created March 26, 2021 18:19
The build-in, simplest HTTP server in Java,
package me.imlc.demos;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
public class JavaHttpServer {
@lawrenceching
lawrenceching / RegExpTest.java
Created December 3, 2020 13:51
How to match same pattern for multiple times
package me.imlc.one;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class RegExpTest {
@lawrenceching
lawrenceching / rename.sh
Created November 8, 2020 03:46
Rename files
filter=*.out
from=.out
to=.zip
dryRun=false
for file in ./$filter
do
if [[ -f $file ]]; then
targetName=${file/$from/$to}
@lawrenceching
lawrenceching / Dockerfile
Created November 4, 2020 16:41
Start ELK
FROM openjdk
RUN useradd -ms /bin/bash app
USER app
WORKDIR /var/app
COPY elasticsearch ./elasticsearch
COPY filebeat ./filebeat
COPY kibana ./kibana
COPY logstash ./logstash
@lawrenceching
lawrenceching / MeasurableExecutorService.java
Created September 12, 2020 16:49
Measure Runnable execution time
package me.imlc.example;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.*;
public class MeasurableExecutorService extends ThreadPoolExecutor {
public MeasurableExecutorService(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue) {
super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue);
@lawrenceching
lawrenceching / Tracker.kt
Last active September 9, 2020 17:07
A util class to measure how much a operation take
package me.imlc.example
import java.lang.StringBuilder
import java.util.*
class Tracker {
data class Tick(val name:String, val timeInMillis: Long)
@lawrenceching
lawrenceching / install-frp-as-systemd-service.sh
Last active April 29, 2024 14:29
Install frp as systemd service
# Update on 2024/04/13
# 1. Improved OS compatibility: try wget and then curl for downloading files.
#
# Update on 2024/01/26
# 1. Thanks to GitHub user @aka-Ani, this script now will install latest version of frp:
# https://gist.github.com/lawrenceching/41244a182307940cc15b45e3c4997346?permalink_comment_id=4851742#gistcomment-4851742
# 2. Use .toml conf file as .ini became lagacy
#
# Update on 2023/06/19
# 1. frp no longer provide systemctl service file. This script creates frpc/fprs systemctl service file by itself