Skip to content

Instantly share code, notes, and snippets.

View ivan-osipov's full-sized avatar
🎙️
This status is not going to be updated

Ivan Osipov ivan-osipov

🎙️
This status is not going to be updated
View GitHub Profile
@ivan-osipov
ivan-osipov / prepare-commit-msg.sh
Created January 7, 2024 11:35
Git Hook "prepare-commit-msg" to add branch name to commit body
#!/bin/sh
# get file path
COMMIT_MSG_FILE="$1"
# get file content
COMMIT_MSG=$(cat "$COMMIT_MSG_FILE")
# find the current branch name
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
# format extra content for commit message
SUFFIX=$(printf "\n\nBranch: %s" "$BRANCH_NAME")
@ivan-osipov
ivan-osipov / nginx.conf
Last active July 23, 2018 20:07
How to do proxy static content and api backend same time under same address
# ...
http {
map $http_upgrade $connection_upgrade { # ws support
default upgrade;
'' close;
}
server {
listen 8080;
location / {
@ivan-osipov
ivan-osipov / FindBestRemovingPosition.java
Created June 28, 2018 06:12
How to find best removing position to obtain the longest sequence of ones
private enum State {
NOTHING,
ZERO,
ONE,
}
public static BestPosition findBestPosition(int[] data) {
int maxChainLength = 0;
int bestRemovingIndex = -1;
@ivan-osipov
ivan-osipov / KotlinPoetSimpleExample.kt
Created January 12, 2018 16:52
KotlinPoet example: simple class with lateinit property
fun main(args: Array<String>) {
val userClass = ClassName("example", "User")
val file = FileSpec.builder("example", "model")
.addType(TypeSpec.classBuilder(userClass)
.addProperty(PropertySpec
.varBuilder("name", String::class, KModifier.LATEINIT)
.build())
.build())
.build()
file.writeTo(System.out)
@ivan-osipov
ivan-osipov / jira_aggregate.py
Created August 30, 2017 17:17
Script for aggegate some data from Jira
from jira import JIRA
from collections import Counter
jira = JIRA(server = 'url', basic_auth=('login', 'password'))
issues = jira.search_issues('<jql request>', maxResults=50, fields=["assignee","timetracking"])
originalEstimateCntr = Counter()
remainingEstimateCntr = Counter()
for issue in issues:
if hasattr(issue.fields.timetracking, 'remainingEstimateSeconds'):
@ivan-osipov
ivan-osipov / inline_example.kt
Created July 27, 2017 07:00
Kotlin inline modifiers
class Store(val lambda: () -> Unit)
inline fun someFun(inlineLambda: () -> Unit,
noinline noinlineLambda: () -> Unit,
crossinline crossinlineLambda: () -> Unit) {
Store {
//inlineLambda cannot be used
noinlineLambda() //not inlined
crossinlineLambda() //not inlined
}
@ivan-osipov
ivan-osipov / clabo_start_sample.kt
Created July 13, 2017 06:10
Clabo simple usage
fun main(args: Array<String>) {
bot("apiToken") launch {
onStart { command -> command.update.message answer "Привет!" }
}
}