Add ed25519 ssh key to keychain with passphrase
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Modify ~/.ssh/config
Host *
import androidx.lifecycle.DefaultLifecycleObserver | |
import androidx.lifecycle.Lifecycle | |
import androidx.lifecycle.LifecycleOwner | |
import de.check24.profis.partner.shared.logger.ProfiLogger | |
import kotlinx.coroutines.ExperimentalCoroutinesApi | |
import kotlinx.coroutines.suspendCancellableCoroutine | |
@OptIn(ExperimentalCoroutinesApi::class) | |
suspend fun Lifecycle.waitForLifecycleEvent(event: Lifecycle.Event) = suspendCancellableCoroutine { continuation -> |
import Foundation | |
public extension Thread { | |
public static var callStack : [String] { | |
Thread | |
.callStackSymbols // drop Thread.callStack | |
.dropFirst( | |
).map { line in | |
let parts = line.split(separator:" ") |
Add ed25519 ssh key to keychain with passphrase
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Modify ~/.ssh/config
Host *
import Foundation | |
class Queue { | |
private var counter = 0.0 | |
private let queue = DispatchQueue(label: "counter") | |
func increment() { | |
queue.sync { | |
counter += 1.2 |
/** | |
* A modifier that clips the composable content using a circular reveal animation. The circle will | |
* expand or shrink whenever [isVisible] changes. | |
* | |
* For more control over the transition, consider using this method's variant which allows passing | |
* a [State] object to control the progress of the reveal animation. | |
* | |
* By default, the circle is centered in the content. However, custom positions can be specified using |
#!/bin/bash | |
# https://stackoverflow.com/a/76070326/1006741 | |
# Set the version and build numbers | |
VERSION_NUMBER="2.1.0" | |
BUILD_NUMBER="29" | |
APP_NAME="MyApp" | |
TEAM_ID="ABCDEFGH" |
#!/bin/bash | |
let upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)" | |
let secs=$((${upSeconds}%60)) | |
let mins=$((${upSeconds}/60%60)) | |
let hours=$((${upSeconds}/3600%24)) | |
let days=$((${upSeconds}/86400)) | |
UPTIME=`printf "%d days, %02dh%02dm%02ds" "$days" "$hours" "$mins" "$secs"` | |
# get the load averages | |
read one five fifteen rest < /proc/loadavg |
https://blog.gradle.org/wrapper-attack-report
you can check the checksum on mac with
shasum -a 256 gradle/wrapper/gradle-wrapper.jar
and verify against the release versions on https://gradle.org/release-checksums/
so for current 7.6 it would be
c5a643cf80162e665cc228f7b16f343fef868e47d3a4836f62e18b7e17ac018a
which means your project is not affected
import android.graphics.Canvas | |
import android.graphics.Rect | |
import android.support.v7.widget.RecyclerView | |
import android.view.LayoutInflater | |
import android.view.View | |
import android.view.ViewGroup | |
/** | |
* Created with Android Studio | |
* User: Sergey Petrov s.a.petrov.spb@gmail.com |
/** | |
* Task to generate build.json and puts it into assets/meta folder within the app. | |
*/ | |
preBuild.dependsOn tasks.register("generateBuildJson") { | |
// note: file can't be named 'build.json' otherwise it will not be bundled into the app. | |
outputs.file(project.rootProject.file('app/src/main/assets/meta.json')) | |
// need to remember configuration variables for later task execution |