Instead of the verbose setOnClickListener
:
RxView.clicks(submitButton).subscribe(o -> log("submit button clicked!"));
Observable
.just(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
# migrating from https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/git/git.plugin.zsh | |
# Aliases | |
alias g='git' | |
#compdef g=git | |
alias gst='git status' | |
#compdef _git gst=git-status | |
alias gd='git diff' | |
#compdef _git gd=git-diff | |
alias gdc='git diff --cached' |
/* | |
* Copyright (C) 2016 Jeff Gilfelt. | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software |
Wiring up a Google Form to GitHub is not that difficult with a little bit of Apps Script automation. All you need is a Google account, a GitHub account, and a web browser...
Personal access tokens provide an easy way to interact with the GitHub API without having to mess with OAuth. If you don't already have a personal access token with repo or public_repo access, visit your GitHub settings page and generate a new token.
Be sure to copy your token some place safe and keep it secure. Once generated, you will not be able to view or copy the token again.
package com.vm.trinity.common.ui; | |
import android.annotation.TargetApi; | |
import android.graphics.Canvas; | |
import android.graphics.pdf.PdfDocument; | |
import android.os.AsyncTask; | |
import android.os.Build; | |
import android.util.Log; | |
import android.view.View; |
codecov: | |
branch: master | |
bot: null | |
coverage: | |
precision: 2 | |
round: down | |
range: "70...100" | |
status: |
Uncle Bob, the well known author of Clean Code, is coming back to us with a new book called Clean Architecture which wants to take a larger view on how to create software.
Even if Clean Code is one of the major book around OOP and code design (mainly by presenting the SOLID principles), I was not totally impressed by the book.
Clean Architecture leaves me with the same feeling, even if it's pushing the development world to do better, has some good stories and present robust principles to build software.
The book is build around 34 chapters organised in chapters.
val configuration = project.configurations.getByName("prodConsumerReleaseRuntimeClasspath") | |
val artifactType = Attribute.of("artifactType", String::class.java) | |
// Some plugin can only work with configurations, while the Android Gradle Plugin (AGP) has the newer "artifact view" | |
// paradigm implemented. This makes it impossible to resolve most of the created, variant-aware | |
// configurations from AGP "by hand" without getting unmatched attribute exceptions. | |
// We now pick one artifact that holds our dependencies and add a custom compatibility rule | |
// for it which basically accepts all incoming compatibility issues as long as the produced value | |
// on "the other side" is a JAR or AAR artifact. | |
configuration.attributes { | |
attribute(artifactType, "android-classes-directory") |
@Composable | |
fun CalendarView( | |
modifier: Modifier = Modifier, | |
selectedDay: CalendarDay = CalendarDay.create(), | |
onSelectedDayChange: (CalendarDay) -> Unit = {}, | |
visibleMonth: CalendarDay = CalendarDay.create(), | |
onVisibleMonthChange: (CalendarDay) -> Unit = {}, | |
today: CalendarDay = CalendarDay.create(), | |
events: Set<CalendarDay> = emptySet() | |
) { |
- name: Cache flutter | |
uses: actions/cache@v2 | |
with: | |
path: | | |
${{ env.FLUTTER_HOME }}/bin | |
key: install-flutter-1.22.6 | |
restore-keys: | | |
install-flutter- |