Skip to content

Instantly share code, notes, and snippets.

Working from home

Alashov Berkeli alashow

Working from home
View GitHub Profile
alashow / CalendarDateRange.kt
Created Apr 17, 2019
Kotlin Calendar/Date utils
View CalendarDateRange.kt
import java.util.Calendar
import java.util.Date
class CalendarRange(override val start: Calendar, override val endInclusive: Calendar, val field: Int = Calendar.DAY_OF_YEAR) :
ClosedRange<Calendar>, Iterable<Calendar> {
override fun iterator(): Iterator<Calendar> {
return CalendarIterator(start, endInclusive, field)
# run in "root" folder (e.g /home/datmusic/
chown -R datmusic:www-data storage .env
find storage -type f -exec chmod 664 {} \;
find storage -type d -exec chmod 775 {} \;
chgrp -R www-data storage .env
chmod -R ug+rwx storage .env
alashow /
Last active May 29, 2020 — forked from bryanstern/
An OkHttp backed HttpStack for Volley (okhttp3 version)
* The MIT License (MIT)
* Copyright (c) 2015 Circle Internet Financial
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
View QueryHighlighter.kt
import android.text.SpannableString
import android.text.TextUtils
import android.widget.TextView
import java.text.Normalizer
import java.util.Locale
import java.util.regex.Pattern
alashow / Fibonacci.kt
Created Oct 2, 2017
Fibonacci in Kotlin
View Fibonacci.kt
package tm.alashow.homework.datastructures.second.kt
import java.math.BigInteger
fun main(args: Array<String>) {
object Fibonacci {
alashow / webtextsSolver.js
Created Nov 15, 2019
Solves multiple choice question parts of webtexts/soomo learning. Just run this code on browser's console.
View webtextsSolver.js
setTimeout(resetQuestions, 1500);
setTimeout(solveQuestions, 3000);
function prepareAnswers() {
$.each($.find('.multiple-choice-question-element'), function(i, wrapper) {
wrapper = $(wrapper);
var button = wrapper.find('.save-answers');
var choice = $(wrapper.find('.question-choice')[0]).find('input');
View BaseActivity.kt
package tm.alashow.x.ui.base
import android.arch.lifecycle.ViewModel
import android.arch.lifecycle.ViewModelProvider
import android.arch.lifecycle.ViewModelProviders
import android.databinding.DataBindingUtil
import android.databinding.ViewDataBinding
import android.os.Bundle
View AppBarLifListeners.kt
// activity
private val onAppBarLiftListeners = HashSet<AppBarLiftListener>()
val appBar = findViewById<AppBarLayout>(
if (appBar != null) {
appBar.addOnOffsetChangedListener(AppBarLayout.OnOffsetChangedListener { _, verticalOffset ->
onAppBarLiftListeners.forEach { it.onAppBarLift(verticalOffset) }
alashow / DateTimePickerLocalizer.kt
Created May 4, 2019
Android Localize months in DatePickerDialog or am/pm in TimePickerDialog
View DateTimePickerLocalizer.kt
import timber.log.Timber
* Patch date picker or time picker to use custom months or am/pm
* From:
* @param picker [android.widget.DatePicker] or [android.widget.TimePicker]
* @param values months or am/pm
fun localizePicker(picker: Any, values: Array<String>) {
alashow / AppViewModelFactory.kt
Last active Apr 1, 2019
ViewModel dynamic parameters hack
View AppViewModelFactory.kt
class AppViewModelFactory @Inject constructor(
private val creators: @JvmSuppressWildcards Map<Class<out ViewModel>, Provider<ViewModel>>
) : ViewModelProvider.Factory {
var onViewModelCreate: ((viewModel: ViewModel) -> Unit)? = null
override fun <T : ViewModel> create(modelClass: Class<T>): T {
var creator: Provider<out ViewModel>? = creators[modelClass]
if (creator == null) {
for ((key, value) in creators) {