Skip to content

Instantly share code, notes, and snippets.

View rock3r's full-sized avatar

Sebastiano Poggi rock3r

View GitHub Profile
package me.seebrock3r.util
/**
* Calls the specified function [block] as a side effect of a previous expression.
*
* This is similar to [run] in that it's used to chain side effects, but it
* doesn't return anything and the block doesn't have any parameters. If your
* side effects require either of those things, use [run] or [also] instead.
*
* @see run
@rock3r
rock3r / build.gradle.kts
Created June 21, 2019 15:43
A Gradle Kotlin DSL task to enumerate the resolved Kotlin plugin version for all subprojects
tasks.register("kotlinPluginVersions") {
description = "Shows the resolved Kotlin plugin version for all subprojects"
group = "documentation"
doLast {
subprojects.forEach { subproject ->
System.err.println("****** Project ${subproject.name} plugins ******")
subproject.plugins.filterIsInstance<KotlinBasePluginWrapper>()
.forEach {
System.err.println("Kotlin plugin ${it.kotlinPluginVersion}")
}

Keybase proof

I hereby claim:

  • I am rock3r on github.
  • I am rock3r (https://keybase.io/rock3r) on keybase.
  • I have a public key ASAFs_czYB4sp1Df7-lZ0TUdAT-5jye6IxjyE9OKPIVoIwo

To claim this, I am signing this object:

@rock3r
rock3r / findProjectGitRoot.kt
Created November 13, 2019 10:44
Extension property for Gradle's Project interface to figure out the Git root, if any
package dev.sebastiano.utils.gradle
import org.gradle.api.*
import java.io.*
// Note: you need to have a dependency on `gradleApi()` in your buildSrc project
val Project.gitRoot: File?
get() {
fun File.isGitRoot() = isDirectory && File(this, ".git").isDirectory
@rock3r
rock3r / sebs-fancy-idea-editor-colour-scheme.icls
Last active January 28, 2020 15:20
Seb's Fancy Custom IJ IDEA/AS Hipster Colour Scheme — v1.0
<scheme name="Seb's Fancy Custom Hipster Colour Scheme v1.0" version="142" parent_scheme="Darcula">
<option name="FONT_SCALE" value="1.0" />
<metaInfo>
<property name="created">2020-01-28T16:17:01</property>
<property name="ide">idea</property>
<property name="ideVersion">2020.1.0.0</property>
<property name="modified">2020-01-28T16:17:11</property>
<property name="originalScheme">Solarized Seeb</property>
</metaInfo>
<option name="LINE_SPACING" value="1.25" />
@rock3r
rock3r / ColorUtils.java
Last active February 25, 2020 09:06
ColorUtils: utilities for manipulating colours
package net.frakbot.util.color;
import android.graphics.Color;
/**
* The MIT License (MIT)
* <p/>
* Copyright (c) 2014 Sebastiano Poggi
* <p/>
* Permission is hereby granted, free of charge, to any person obtaining a copy
@rock3r
rock3r / c2webp.kts
Created July 23, 2020 10:53
Kscript program to convert a sequence of images to a webp animation, using img2webp
#!/bin/bash
//usr/bin/env echo '
/**** BOOTSTRAP kscript ****\'>/dev/null
command -v kscript >/dev/null 2>&1 || curl -L "https://git.io/fpF1K" | bash 1>&2
exec kscript $0 "$@"
\*** IMPORTANT: Any code including imports and annotations must come after this line ***/
@file:DependsOn("com.github.ajalt:clikt:2.8.0")
@rock3r
rock3r / cleanup-rtf.sh
Created September 2, 2020 16:03
Remove background from RTF text (copied from IntelliJ/Android Studio) via a simple script [macOS only]
#!/bin/sh
# Remove background from RTF text (copied from IntelliJ/Android Studio/...)
# By Sebastiano Poggi, Apache 2.0 license: https://www.apache.org/licenses/LICENSE-2.0
#
# Text is altered in-place in the clipboard. If copying from an IDE, make sure you have the
# "Copy a text fragment" preference set to "Rich text" in the IDE preferences Editor > General.
#
# Also available as a Quick Action to easily install on macOS from here:
# https://www.dropbox.com/s/8qboebourj3jkzo/Copy%20for%20Keynote.workflow.zip?dl=1
@rock3r
rock3r / find_in_dependencies.gradle
Last active July 19, 2021 18:29
Utility Gradle task to find where duplicate classes come from (for Gradle 4.1+)
// H/t to https://github.com/ethankhall/scripts/blob/master/gradle/find-file.gradle for the idea;
// this re-written version actually works in modern Gradle and Android Gradle plugins.
task findInDependencies {
doLast {
println()
def resolvableConfigs = project.getConfigurations()
.stream()
.filter { it.isCanBeResolved() }
@rock3r
rock3r / DividerItemDecorator.kt
Created September 4, 2018 11:25
A simple yet fully featured RecyclerView ItemDecorator that draws a divider line between items. Only works with vertical LinearLayoutManagers!
package me.seebrock3r.common.widget
import android.graphics.Canvas
import android.graphics.Paint
import android.graphics.Rect
import android.view.View
import androidx.annotation.ColorInt
import androidx.annotation.Px
import androidx.core.graphics.withTranslation
import androidx.core.view.children