Skip to content

Instantly share code, notes, and snippets.

View osipxd's full-sized avatar
💭
I may be slow to respond.

Osip Fatkullin osipxd

💭
I may be slow to respond.
View GitHub Profile
org.bukkit
org.bukkit.advancement
org.bukkit.attribute
org.bukkit.block
org.bukkit.block.banner
org.bukkit.block.data
org.bukkit.block.data.type
org.bukkit.block.structure
org.bukkit.boss
org.bukkit.command
import com.squareup.moshi.JsonClass
import com.squareup.moshi.Types
import okhttp3.ResponseBody
import retrofit2.Converter
import retrofit2.Retrofit
import java.lang.reflect.Type
/**
* Конвертер серверных ответов, построенных на принципе помещения полезной нагрузки в Json-объект data.
* Результат конвертации - содержимое data.
@osipxd
osipxd / AsyncPagingDataDifferTest.kt
Last active December 9, 2020 09:20
The snippet to show when update callback is called.
import androidx.paging.AsyncPagingDataDiffer
import androidx.paging.PagingData
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListUpdateCallback
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.runBlocking
val differ: AsyncPagingDataDiffer<String> by lazy {
AsyncPagingDataDiffer(
diffCallback = diffCallback,
@osipxd
osipxd / prepare-cache.sh
Last active March 25, 2024 15:55
Script preparing Android project cache for GitLab CI
#!/usr/bin/env bash
set -eu
BUILD_CACHE_THRESHOLD=5000
function get_gradle_slug() {
local dist
dist=$(source gradle/wrapper/gradle-wrapper.properties && echo "${distributionUrl?:}")
dist=${dist##*gradle-}
@osipxd
osipxd / idea_configs.sh
Created June 11, 2020 12:07
Simple scrimp to track/untrack .idea folder
#!/usr/bin/env bash
#
# Скрипт для работы со стандартным конфигом в папке .idea
#
# Использование:
# ./idea_configs <команда>
#
# Возможные команды:
# u, untrack - Git не будет учитывать изменения в папке .idea
# t, track - Git будет учитывать изменения в папке .idea
@osipxd
osipxd / .editorconfig
Last active March 10, 2024 22:35
EditorConfig for Android projects with mapping to IntelliJ IDEA's config
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
max_line_length = 120
@osipxd
osipxd / SharedPreferencesMigration.kt
Last active May 27, 2020 14:36
SharedPreferences migration
import android.content.SharedPreferences
import androidx.core.content.edit
/**
* Бридж для обеспечения обратной совместимости при переименовании полей или файла [SharedPreferences].
*
* @param preferences Основной [SharedPreferences].
* @param migratingPreferences Дополнительный [SharedPreferences], поля из которого будут переноситься в
* [preferences], при чтении. По умолчанию используется [preferences], что соответствует случаю
* переименования полей внутри одного [SharedPreferences].
@osipxd
osipxd / paper-versions.json
Last active April 15, 2024 08:54
Paper versions links
{
"latest": "1.20.4",
"versions": {
"1.20.4": "https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/484/downloads/paper-1.20.4-484.jar",
"1.20.2": "https://api.papermc.io/v2/projects/paper/versions/1.20.2/builds/318/downloads/paper-1.20.2-318.jar",
"1.20.1": "https://api.papermc.io/v2/projects/paper/versions/1.20.1/builds/196/downloads/paper-1.20.1-196.jar",
"1.20": "https://api.papermc.io/v2/projects/paper/versions/1.20/builds/17/downloads/paper-1.20-17.jar",
"1.19.4": "https://api.papermc.io/v2/projects/paper/versions/1.19.4/builds/550/downloads/paper-1.19.4-550.jar",
"1.19.3": "https://api.papermc.io/v2/projects/paper/versions/1.19.3/builds/448/downloads/paper-1.19.3-448.jar",
"1.19.2": "https://api.papermc.io/v2/projects/paper/versions/1.19.2/builds/307/downloads/paper-1.19.2-307.jar",
@osipxd
osipxd / Tooling.Tips&Tricks.key
Last active June 22, 2020 16:23
Tooling. Tips&Tricks - Presentation
This file has been truncated, but you can view the full file.
@osipxd
osipxd / tooling.md
Last active March 22, 2022 12:56
Tooling. Tips&Tricks - Notes

Tooling. Tips&Tricks

Материалы к докладу на митап Redmadrobot 30 апреля.

Habr | YouTube | Презентация

Git

  • Merging vs. Rebasing - сравнение подходов с merge и rebase от Atlassian. У них вообще много хороших статей, очень советую.
  • Why you should stop using Git rebase - какие сложности могут возникнуть, если чрезмерно увлечься rebase.
  • Pro Git. Git Tools - Rewriting History - глава из книги Pro Git. Подробно описывается работа с interactive rebase. Про stash, patch, cherry-pick можно почитать там же.